Lines Matching defs:led

16 #define LM3532_NAME "lm3532-led"
123 * @led_dev: led class device
349 struct lm3532_led *led =
354 mutex_lock(&led->priv->lock);
356 if (led->mode == LM3532_ALS_CTRL) {
358 ret = lm3532_led_enable(led);
360 ret = lm3532_led_disable(led);
366 ret = lm3532_led_disable(led);
370 ret = lm3532_led_enable(led);
374 brightness_reg = LM3532_REG_ZONE_TRGT_A + led->control_bank * 5 +
375 (led->ctrl_brt_pointer >> 2);
377 ret = regmap_write(led->priv->regmap, brightness_reg, brt_val);
380 mutex_unlock(&led->priv->lock);
384 static int lm3532_init_registers(struct lm3532_led *led)
386 struct lm3532_data *drvdata = led->priv;
400 brightness_config_reg = LM3532_REG_ZONE_CFG_A + led->control_bank * 2;
406 &led->ctrl_brt_pointer);
410 led->ctrl_brt_pointer &= LM3532_ZONE_MASK;
411 brightness_config_val = led->ctrl_brt_pointer | led->mode;
417 if (led->full_scale_current) {
418 fs_current_reg = LM3532_REG_CTRL_A_FS_CURR + led->control_bank * 2;
419 fs_current_val = (led->full_scale_current - LM3532_FS_CURR_MIN) /
428 for (i = 0; i < led->num_leds; i++) {
429 output_cfg_shift = led->led_strings[i] * 2;
430 output_cfg_val |= (led->control_bank << output_cfg_shift);
447 struct lm3532_led *led)
548 struct lm3532_led *led;
584 led = &priv->leds[i];
597 led->control_bank = control_bank;
599 ret = fwnode_property_read_u32(child, "ti,led-mode",
600 &led->mode);
602 dev_err(&priv->client->dev, "ti,led-mode property missing\n");
606 if (fwnode_property_present(child, "led-max-microamp") &&
607 fwnode_property_read_u32(child, "led-max-microamp",
608 &led->full_scale_current))
610 "Failed getting led-max-microamp\n");
612 led->full_scale_current = min(led->full_scale_current,
615 if (led->mode == LM3532_BL_MODE_ALS) {
616 led->mode = LM3532_ALS_CTRL;
621 lm3532_als_configure(priv, led);
623 led->mode = LM3532_I2C_CTRL;
626 led->num_leds = fwnode_property_count_u32(child, "led-sources");
627 if (led->num_leds > LM3532_MAX_LED_STRINGS) {
632 ret = fwnode_property_read_u32_array(child, "led-sources",
633 led->led_strings,
634 led->num_leds);
636 dev_err(&priv->client->dev, "led-sources property missing\n");
640 led->priv = priv;
641 led->led_dev.brightness_set_blocking = lm3532_brightness_set;
643 ret = devm_led_classdev_register_ext(priv->dev, &led->led_dev, &idata);
645 dev_err(&priv->client->dev, "led register err: %d\n",
650 ret = lm3532_init_registers(led);