• Home
  • Raw
  • Download

Lines Matching +full:leds +full:- +full:trigger +full:- +full:pattern

17 #include <linux/leds.h>
85 * struct mt6323_led - state container for the LED device
99 * struct mt6323_leds - state container for holding LED controller
120 struct mt6323_leds *leds = led->parent; in mt6323_led_hw_brightness() local
121 struct regmap *regmap = leds->hw->regmap; in mt6323_led_hw_brightness()
132 con2_val |= MT6323_ISINK_CH_STEP(brightness - 1) | in mt6323_led_hw_brightness()
136 ret = regmap_update_bits(regmap, MT6323_ISINK_CON2(led->id), in mt6323_led_hw_brightness()
144 struct mt6323_leds *leds = led->parent; in mt6323_led_hw_off() local
145 struct regmap *regmap = leds->hw->regmap; in mt6323_led_hw_off()
149 status = MT6323_ISINK_CH_EN(led->id); in mt6323_led_hw_off()
151 MT6323_ISINK_CH_EN_MASK(led->id), ~status); in mt6323_led_hw_off()
157 MT6323_RG_ISINK_CK_PDN_MASK(led->id), in mt6323_led_hw_off()
158 MT6323_RG_ISINK_CK_PDN(led->id)); in mt6323_led_hw_off()
169 struct mt6323_leds *leds = led->parent; in mt6323_get_led_hw_brightness() local
170 struct regmap *regmap = leds->hw->regmap; in mt6323_get_led_hw_brightness()
178 if (status & MT6323_RG_ISINK_CK_PDN_MASK(led->id)) in mt6323_get_led_hw_brightness()
185 if (!(status & MT6323_ISINK_CH_EN(led->id))) in mt6323_get_led_hw_brightness()
188 ret = regmap_read(regmap, MT6323_ISINK_CON2(led->id), &status); in mt6323_get_led_hw_brightness()
200 struct mt6323_leds *leds = led->parent; in mt6323_led_hw_on() local
201 struct regmap *regmap = leds->hw->regmap; in mt6323_led_hw_on()
211 MT6323_RG_ISINK_CK_SEL_MASK(led->id), 0); in mt6323_led_hw_on()
215 status = MT6323_RG_ISINK_CK_PDN(led->id); in mt6323_led_hw_on()
217 MT6323_RG_ISINK_CK_PDN_MASK(led->id), in mt6323_led_hw_on()
225 MT6323_ISINK_CH_EN_MASK(led->id), in mt6323_led_hw_on()
226 MT6323_ISINK_CH_EN(led->id)); in mt6323_led_hw_on()
234 ret = regmap_update_bits(regmap, MT6323_ISINK_CON0(led->id), in mt6323_led_hw_on()
240 ret = regmap_update_bits(regmap, MT6323_ISINK_CON1(led->id), in mt6323_led_hw_on()
254 struct mt6323_leds *leds = led->parent; in mt6323_led_set_blink() local
255 struct regmap *regmap = leds->hw->regmap; in mt6323_led_set_blink()
267 return -EINVAL; in mt6323_led_set_blink()
271 * friendly blink pattern for the LED so using in mt6323_led_set_blink()
288 return -EINVAL; in mt6323_led_set_blink()
290 mutex_lock(&leds->lock); in mt6323_led_set_blink()
295 if (!led->current_brightness) { in mt6323_led_set_blink()
296 ret = mt6323_led_hw_on(cdev, cdev->max_brightness); in mt6323_led_set_blink()
299 led->current_brightness = cdev->max_brightness; in mt6323_led_set_blink()
302 ret = regmap_update_bits(regmap, MT6323_ISINK_CON0(led->id), in mt6323_led_set_blink()
304 MT6323_ISINK_DIM_DUTY(duty_hw - 1)); in mt6323_led_set_blink()
308 ret = regmap_update_bits(regmap, MT6323_ISINK_CON1(led->id), in mt6323_led_set_blink()
310 MT6323_ISINK_DIM_FSEL(period - 1)); in mt6323_led_set_blink()
312 mutex_unlock(&leds->lock); in mt6323_led_set_blink()
321 struct mt6323_leds *leds = led->parent; in mt6323_led_set_brightness() local
324 mutex_lock(&leds->lock); in mt6323_led_set_brightness()
326 if (!led->current_brightness && brightness) { in mt6323_led_set_brightness()
340 led->current_brightness = brightness; in mt6323_led_set_brightness()
342 mutex_unlock(&leds->lock); in mt6323_led_set_brightness()
354 led->cdev.name = of_get_property(np, "label", NULL) ? : np->name; in mt6323_led_set_dt_default()
355 led->cdev.default_trigger = of_get_property(np, in mt6323_led_set_dt_default()
356 "linux,default-trigger", in mt6323_led_set_dt_default()
359 state = of_get_property(np, "default-state", NULL); in mt6323_led_set_dt_default()
365 led->current_brightness = ret; in mt6323_led_set_dt_default()
369 mt6323_led_set_brightness(cdev, cdev->max_brightness); in mt6323_led_set_dt_default()
380 struct device *dev = &pdev->dev; in mt6323_led_probe()
381 struct device_node *np = pdev->dev.of_node; in mt6323_led_probe()
383 struct mt6397_chip *hw = dev_get_drvdata(pdev->dev.parent); in mt6323_led_probe()
384 struct mt6323_leds *leds; in mt6323_led_probe() local
390 leds = devm_kzalloc(dev, sizeof(*leds), GFP_KERNEL); in mt6323_led_probe()
391 if (!leds) in mt6323_led_probe()
392 return -ENOMEM; in mt6323_led_probe()
394 platform_set_drvdata(pdev, leds); in mt6323_led_probe()
395 leds->dev = dev; in mt6323_led_probe()
398 * leds->hw points to the underlying bus for the register in mt6323_led_probe()
401 leds->hw = hw; in mt6323_led_probe()
402 mutex_init(&leds->lock); in mt6323_led_probe()
405 ret = regmap_update_bits(leds->hw->regmap, MT6323_TOP_CKPDN0, in mt6323_led_probe()
408 dev_err(leds->dev, in mt6323_led_probe()
420 if (reg >= MT6323_MAX_LEDS || leds->led[reg]) { in mt6323_led_probe()
422 ret = -EINVAL; in mt6323_led_probe()
428 ret = -ENOMEM; in mt6323_led_probe()
432 leds->led[reg] = led; in mt6323_led_probe()
433 leds->led[reg]->id = reg; in mt6323_led_probe()
434 leds->led[reg]->cdev.max_brightness = MT6323_MAX_BRIGHTNESS; in mt6323_led_probe()
435 leds->led[reg]->cdev.brightness_set_blocking = in mt6323_led_probe()
437 leds->led[reg]->cdev.blink_set = mt6323_led_set_blink; in mt6323_led_probe()
438 leds->led[reg]->cdev.brightness_get = in mt6323_led_probe()
440 leds->led[reg]->parent = leds; in mt6323_led_probe()
442 ret = mt6323_led_set_dt_default(&leds->led[reg]->cdev, child); in mt6323_led_probe()
444 dev_err(leds->dev, in mt6323_led_probe()
449 ret = devm_led_classdev_register(dev, &leds->led[reg]->cdev); in mt6323_led_probe()
451 dev_err(&pdev->dev, "Failed to register LED: %d\n", in mt6323_led_probe()
455 leds->led[reg]->cdev.dev->of_node = child; in mt6323_led_probe()
467 struct mt6323_leds *leds = platform_get_drvdata(pdev); in mt6323_led_remove() local
470 /* Turn the LEDs off on driver removal. */ in mt6323_led_remove()
471 for (i = 0 ; leds->led[i] ; i++) in mt6323_led_remove()
472 mt6323_led_hw_off(&leds->led[i]->cdev); in mt6323_led_remove()
474 regmap_update_bits(leds->hw->regmap, MT6323_TOP_CKPDN0, in mt6323_led_remove()
478 mutex_destroy(&leds->lock); in mt6323_led_remove()
484 { .compatible = "mediatek,mt6323-led" },
493 .name = "mt6323-led",