Lines Matching defs:led

14 #include <linux/led-class-multicolor.h>
424 struct mt6370_led *led = container_of(mccdev, struct mt6370_led, mc);
425 struct mt6370_priv *priv = led->priv;
486 struct mt6370_led *led = container_of(mccdev, struct mt6370_led, mc);
487 struct mt6370_priv *priv = led->priv;
538 struct mt6370_led *led = container_of(mccdev, struct mt6370_led, mc);
539 struct mt6370_priv *priv = led->priv;
588 struct mt6370_led *led = container_of(mccdev, struct mt6370_led, mc);
589 struct mt6370_priv *priv = led->priv;
593 mutex_lock(&led->priv->lock);
603 mutex_unlock(&led->priv->lock);
611 struct mt6370_led *led = container_of(lcdev, struct mt6370_led, isink);
612 struct mt6370_priv *priv = led->priv;
623 enable &= ~MT6370_CHEN_BIT(led->index);
625 ret = mt6370_set_led_mode(priv, led->index, MT6370_LED_REG_MODE);
629 enable |= MT6370_CHEN_BIT(led->index);
631 ret = mt6370_set_led_brightness(priv, led->index, level);
647 struct mt6370_led *led = container_of(lcdev, struct mt6370_led, isink);
648 struct mt6370_priv *priv = led->priv;
656 ret = mt6370_set_led_duty(priv, led->index, *delay_on, *delay_off);
660 ret = mt6370_set_led_freq(priv, led->index, *delay_on, *delay_off);
664 ret = mt6370_set_led_mode(priv, led->index, MT6370_LED_PWM_MODE);
675 struct mt6370_led *led = container_of(lcdev, struct mt6370_led, isink);
676 struct mt6370_priv *priv = led->priv;
687 mt6370_get_breath_reg_base(priv, led->index, &reg_base);
693 ret = mt6370_set_led_mode(priv, led->index, MT6370_LED_BREATH_MODE);
703 struct mt6370_led *led = container_of(lcdev, struct mt6370_led, isink);
704 struct mt6370_priv *priv = led->priv;
707 mutex_lock(&led->priv->lock);
708 ret = mt6370_set_led_mode(priv, led->index, MT6370_LED_REG_MODE);
709 mutex_unlock(&led->priv->lock);
714 static int mt6370_assign_multicolor_info(struct device *dev, struct mt6370_led *led,
717 struct mt6370_priv *priv = led->priv;
739 return dev_err_probe(dev, ret, "LED %d, no color specified\n", led->index);
753 led->mc.num_colors = num_color;
754 led->mc.subled_info = sub_led;
759 static int mt6370_init_led_properties(struct device *dev, struct mt6370_led *led,
762 struct mt6370_priv *priv = led->priv;
768 if (led->index == MT6370_VIRTUAL_MULTICOLOR) {
769 ret = mt6370_assign_multicolor_info(dev, led, init_data->fwnode);
773 lcdev = &led->mc.led_cdev;
779 lcdev = &led->isink;
786 ret = fwnode_property_read_u32(init_data->fwnode, "led-max-microamp", &max_uA);
788 dev_warn(dev, "Not specified led-max-microamp, config to the minimum\n");
792 if (led->index == MT6370_LED_ISNK4)
801 led->default_state = led_init_default_state_get(init_data->fwnode);
806 static int mt6370_isnk_init_default_state(struct mt6370_led *led)
808 struct mt6370_priv *priv = led->priv;
812 ret = mt6370_get_led_brightness(priv, led->index, &level);
820 if (!(enable & MT6370_CHEN_BIT(led->index)))
823 switch (led->default_state) {
825 led->isink.brightness = led->isink.max_brightness;
828 led->isink.brightness = min(level, led->isink.max_brightness);
831 led->isink.brightness = 0;
835 return mt6370_isnk_brightness_set(&led->isink, led->isink.brightness);
838 static int mt6370_multicolor_led_register(struct device *dev, struct mt6370_led *led,
843 ret = mt6370_mc_brightness_set(&led->mc.led_cdev, 0);
847 ret = devm_led_classdev_multicolor_register_ext(dev, &led->mc, init_data);
854 static int mt6370_led_register(struct device *dev, struct mt6370_led *led,
857 struct mt6370_priv *priv = led->priv;
860 if (led->index == MT6370_VIRTUAL_MULTICOLOR)
861 return mt6370_multicolor_led_register(dev, led, init_data);
864 if (led->index == MT6370_LED_ISNK4) {
870 ret = mt6370_isnk_init_default_state(led);
872 return dev_err_probe(dev, ret, "Failed to init %d isnk state\n", led->index);
874 ret = devm_led_classdev_register_ext(dev, &led->isink, init_data);
876 return dev_err_probe(dev, ret, "Couldn't register isink %d\n", led->index);
941 struct mt6370_led *led = priv->leds + i++;
974 led->index = reg;
975 led->priv = priv;
977 ret = mt6370_init_led_properties(dev, led, &init_data);
981 ret = mt6370_led_register(dev, led, &init_data);