Lines Matching refs:led

59 static inline int lm3533_led_get_ctrlbank_id(struct lm3533_led *led)
61 return led->id + 2;
64 static inline u8 lm3533_led_get_lv_reg(struct lm3533_led *led, u8 base)
66 return base + led->id;
69 static inline u8 lm3533_led_get_pattern(struct lm3533_led *led)
71 return led->id;
74 static inline u8 lm3533_led_get_pattern_reg(struct lm3533_led *led,
77 return base + lm3533_led_get_pattern(led) * LM3533_REG_PATTERN_STEP;
80 static int lm3533_led_pattern_enable(struct lm3533_led *led, int enable)
88 dev_dbg(led->cdev.dev, "%s - %d\n", __func__, enable);
90 mutex_lock(&led->mutex);
92 state = test_bit(LM3533_LED_FLAG_PATTERN_ENABLE, &led->flags);
96 pattern = lm3533_led_get_pattern(led);
104 ret = lm3533_update(led->lm3533, LM3533_REG_PATTERN_ENABLE, val, mask);
106 dev_err(led->cdev.dev, "failed to enable pattern %d (%d)\n",
111 __change_bit(LM3533_LED_FLAG_PATTERN_ENABLE, &led->flags);
113 mutex_unlock(&led->mutex);
121 struct lm3533_led *led = to_lm3533_led(cdev);
123 dev_dbg(led->cdev.dev, "%s - %d\n", __func__, value);
126 lm3533_led_pattern_enable(led, 0); /* disable blink */
128 return lm3533_ctrlbank_set_brightness(&led->cb, value);
133 struct lm3533_led *led = to_lm3533_led(cdev);
137 ret = lm3533_ctrlbank_get_brightness(&led->cb, &val);
141 dev_dbg(led->cdev.dev, "%s - %u\n", __func__, val);
243 static u8 lm3533_led_delay_set(struct lm3533_led *led, u8 base,
259 dev_dbg(led->cdev.dev, "%s - %lu: %u (0x%02x)\n", __func__,
261 reg = lm3533_led_get_pattern_reg(led, base);
262 ret = lm3533_write(led->lm3533, reg, val);
264 dev_err(led->cdev.dev, "failed to set delay (%02x)\n", reg);
271 static int lm3533_led_delay_on_set(struct lm3533_led *led, unsigned long *t)
273 return lm3533_led_delay_set(led, LM3533_REG_PATTERN_HIGH_TIME_BASE, t);
276 static int lm3533_led_delay_off_set(struct lm3533_led *led, unsigned long *t)
278 return lm3533_led_delay_set(led, LM3533_REG_PATTERN_LOW_TIME_BASE, t);
285 struct lm3533_led *led = to_lm3533_led(cdev);
288 dev_dbg(led->cdev.dev, "%s - on = %lu, off = %lu\n", __func__,
300 ret = lm3533_led_delay_on_set(led, delay_on);
304 ret = lm3533_led_delay_off_set(led, delay_off);
308 return lm3533_led_pattern_enable(led, 1);
315 struct lm3533_led *led = to_lm3533_led(led_cdev);
317 return sysfs_emit(buf, "%d\n", led->id);
337 struct lm3533_led *led = to_lm3533_led(led_cdev);
342 reg = lm3533_led_get_pattern_reg(led, base);
343 ret = lm3533_read(led->lm3533, reg, &val);
369 struct lm3533_led *led = to_lm3533_led(led_cdev);
377 reg = lm3533_led_get_pattern_reg(led, base);
378 ret = lm3533_write(led->lm3533, reg, val);
405 struct lm3533_led *led = to_lm3533_led(led_cdev);
411 reg = lm3533_led_get_lv_reg(led, LM3533_REG_CTRLBANK_BCONF_BASE);
412 ret = lm3533_read(led->lm3533, reg, &val);
426 struct lm3533_led *led = to_lm3533_led(led_cdev);
440 reg = lm3533_led_get_lv_reg(led, LM3533_REG_CTRLBANK_BCONF_BASE);
444 ret = lm3533_update(led->lm3533, reg, val, mask);
455 struct lm3533_led *led = to_lm3533_led(led_cdev);
461 reg = lm3533_led_get_lv_reg(led, LM3533_REG_CTRLBANK_BCONF_BASE);
462 ret = lm3533_read(led->lm3533, reg, &val);
476 struct lm3533_led *led = to_lm3533_led(led_cdev);
486 reg = lm3533_led_get_lv_reg(led, LM3533_REG_CTRLBANK_BCONF_BASE);
494 ret = lm3533_update(led->lm3533, reg, val, mask);
505 struct lm3533_led *led = to_lm3533_led(led_cdev);
511 reg = lm3533_led_get_lv_reg(led, LM3533_REG_CTRLBANK_BCONF_BASE);
512 ret = lm3533_read(led->lm3533, reg, &val);
529 struct lm3533_led *led = to_lm3533_led(led_cdev);
539 reg = lm3533_led_get_lv_reg(led, LM3533_REG_CTRLBANK_BCONF_BASE);
547 ret = lm3533_update(led->lm3533, reg, val, mask);
559 struct lm3533_led *led = to_lm3533_led(led_cdev);
563 ret = lm3533_ctrlbank_get_pwm(&led->cb, &val);
575 struct lm3533_led *led = to_lm3533_led(led_cdev);
582 ret = lm3533_ctrlbank_set_pwm(&led->cb, val);
613 struct lm3533_led *led = to_lm3533_led(led_cdev);
618 if (!led->lm3533->have_als)
635 static int lm3533_led_setup(struct lm3533_led *led,
640 ret = lm3533_ctrlbank_set_max_current(&led->cb, pdata->max_current);
644 return lm3533_ctrlbank_set_pwm(&led->cb, pdata->pwm);
651 struct lm3533_led *led;
671 led = devm_kzalloc(&pdev->dev, sizeof(*led), GFP_KERNEL);
672 if (!led)
675 led->lm3533 = lm3533;
676 led->cdev.name = pdata->name;
677 led->cdev.default_trigger = pdata->default_trigger;
678 led->cdev.brightness_set_blocking = lm3533_led_set;
679 led->cdev.brightness_get = lm3533_led_get;
680 led->cdev.blink_set = lm3533_led_blink_set;
681 led->cdev.brightness = LED_OFF;
682 led->cdev.groups = lm3533_led_attribute_groups;
683 led->id = pdev->id;
685 mutex_init(&led->mutex);
691 led->cb.lm3533 = lm3533;
692 led->cb.id = lm3533_led_get_ctrlbank_id(led);
693 led->cb.dev = lm3533->dev;
695 platform_set_drvdata(pdev, led);
697 ret = led_classdev_register(pdev->dev.parent, &led->cdev);
703 led->cb.dev = led->cdev.dev;
705 ret = lm3533_led_setup(led, pdata);
709 ret = lm3533_ctrlbank_enable(&led->cb);
716 led_classdev_unregister(&led->cdev);
723 struct lm3533_led *led = platform_get_drvdata(pdev);
727 lm3533_ctrlbank_disable(&led->cb);
728 led_classdev_unregister(&led->cdev);
736 struct lm3533_led *led = platform_get_drvdata(pdev);
740 lm3533_ctrlbank_disable(&led->cb);
741 lm3533_led_set(&led->cdev, LED_OFF); /* disable blink */