Lines Matching defs:led

15 #include <linux/led-class-flash.h>
22 #include <media/v4l2-flash-led-class.h>
89 struct mt6370_led *led = to_mt6370_led(lcdev, flash.led_cdev);
90 struct mt6370_priv *priv = led->priv;
91 u32 led_enable_mask = led->led_no == MT6370_LED_JOINT ? MT6370_FLCSEN_MASK_ALL :
92 MT6370_FLCSEN_MASK(led->led_no);
111 curr = priv->fled_torch_used | BIT(led->led_no);
113 curr = priv->fled_torch_used & ~BIT(led->led_no);
120 if (led->led_no == MT6370_LED_JOINT) {
136 ret = regmap_update_bits(priv->regmap, MT6370_REG_FLEDITOR(led->led_no),
166 struct mt6370_led *led = to_mt6370_led(fl_cdev, flash);
167 struct mt6370_priv *priv = led->priv;
172 if (led->led_no == MT6370_LED_JOINT) {
188 ret = regmap_update_bits(priv->regmap, MT6370_REG_FLEDISTRB(led->led_no),
197 struct mt6370_led *led = to_mt6370_led(fl_cdev, flash);
198 struct mt6370_priv *priv = led->priv;
201 u32 led_enable_mask = led->led_no == MT6370_LED_JOINT ? MT6370_FLCSEN_MASK_ALL :
202 MT6370_FLCSEN_MASK(led->led_no);
221 curr = priv->fled_strobe_used | BIT(led->led_no);
223 curr = priv->fled_strobe_used & ~BIT(led->led_no);
230 dev_err(lcdev->dev, "[%d] control current source %d fail\n", led->led_no, state);
240 dev_err(lcdev->dev, "[%d] Failed to set brightness\n", led->led_no);
262 struct mt6370_led *led = to_mt6370_led(fl_cdev, flash);
263 struct mt6370_priv *priv = led->priv;
266 *state = !!(priv->fled_strobe_used & BIT(led->led_no));
274 struct mt6370_led *led = to_mt6370_led(fl_cdev, flash);
275 struct mt6370_priv *priv = led->priv;
284 struct mt6370_led *led = to_mt6370_led(fl_cdev, flash);
285 struct mt6370_priv *priv = led->priv;
299 switch (led->led_no) {
347 struct mt6370_led *led = to_mt6370_led(flash, flash);
348 struct mt6370_priv *priv = led->priv;
349 u32 mask = led->led_no == MT6370_LED_JOINT ? MT6370_FLCSEN_MASK_ALL :
350 MT6370_FLCSEN_MASK(led->led_no);
361 priv->fled_strobe_used |= BIT(led->led_no);
363 priv->fled_strobe_used &= ~BIT(led->led_no);
374 static void mt6370_init_v4l2_flash_config(struct mt6370_led *led, struct v4l2_flash_config *cfg)
379 lcdev = &led->flash.led_cdev;
393 static void mt6370_init_v4l2_flash_config(struct mt6370_led *led, struct v4l2_flash_config *cfg)
403 static int mt6370_led_register(struct device *parent, struct mt6370_led *led,
410 ret = devm_led_classdev_flash_register_ext(parent, &led->flash, &init_data);
412 return dev_err_probe(parent, ret, "Couldn't register flash %d\n", led->led_no);
414 mt6370_init_v4l2_flash_config(led, &v4l2_config);
415 led->v4l2_flash = v4l2_flash_init(parent, fwnode, &led->flash, &v4l2_flash_ops,
417 if (IS_ERR(led->v4l2_flash))
418 return dev_err_probe(parent, PTR_ERR(led->v4l2_flash),
419 "Failed to register %d v4l2 sd\n", led->led_no);
421 return devm_add_action_or_reset(parent, mt6370_v4l2_flash_release, led->v4l2_flash);
435 static int mt6370_init_flash_properties(struct device *dev, struct mt6370_led *led,
438 struct led_classdev_flash *flash = &led->flash;
440 struct mt6370_priv *priv = led->priv;
446 num = fwnode_property_count_u32(fwnode, "led-sources");
449 "Not specified or wrong number of led-sources\n");
451 ret = fwnode_property_read_u32_array(fwnode, "led-sources", sources, num);
463 /* If both channels are specified in 'led-sources', joint flash output mode is used */
464 led->led_no = num == 2 ? MT6370_LED_JOINT : sources[0];
468 ret = fwnode_property_read_u32(fwnode, "led-max-microamp", &val);
519 "No child node or node count over max led number %zu\n", count);
533 struct mt6370_led *led = priv->leds + i;
535 led->priv = priv;
537 ret = mt6370_init_flash_properties(dev, led, child);
543 ret = mt6370_led_register(dev, led, child);