• Home
  • Raw
  • Download

Lines Matching full:leds

2  * LEDs driver for Freescale MC13783/MC13892/MC34708
6 * Based on leds-da903x:
21 #include <linux/leds.h>
35 struct mc13xxx_leds *leds; member
60 struct mc13xxx_leds *leds = led->leds; in mc13xxx_led_set() local
108 return mc13xxx_reg_rmw(leds->master, leds->devtype->ledctrl_base + reg, in mc13xxx_led_set()
117 struct mc13xxx_leds *leds = platform_get_drvdata(pdev); in mc13xxx_led_probe_dt() local
127 parent = of_get_child_by_name(dev->parent->of_node, "leds"); in mc13xxx_led_probe_dt()
133 leds->devtype->num_regs); in mc13xxx_led_probe_dt()
152 pdata->led[i].id = leds->devtype->led_min + tmp; in mc13xxx_led_probe_dt()
186 struct mc13xxx_leds *leds; in mc13xxx_led_probe() local
190 leds = devm_kzalloc(dev, sizeof(*leds), GFP_KERNEL); in mc13xxx_led_probe()
191 if (!leds) in mc13xxx_led_probe()
194 leds->devtype = devtype; in mc13xxx_led_probe()
195 leds->master = mcdev; in mc13xxx_led_probe()
196 platform_set_drvdata(pdev, leds); in mc13xxx_led_probe()
205 leds->num_leds = pdata->num_leds; in mc13xxx_led_probe()
207 if ((leds->num_leds < 1) || in mc13xxx_led_probe()
208 (leds->num_leds > (devtype->led_max - devtype->led_min + 1))) { in mc13xxx_led_probe()
209 dev_err(dev, "Invalid LED count %d\n", leds->num_leds); in mc13xxx_led_probe()
213 leds->led = devm_kcalloc(dev, leds->num_leds, sizeof(*leds->led), in mc13xxx_led_probe()
215 if (!leds->led) in mc13xxx_led_probe()
219 ret = mc13xxx_reg_write(mcdev, leds->devtype->ledctrl_base + i, in mc13xxx_led_probe()
225 for (i = 0; i < leds->num_leds; i++) { in mc13xxx_led_probe()
245 leds->led[i].id = id; in mc13xxx_led_probe()
246 leds->led[i].leds = leds; in mc13xxx_led_probe()
247 leds->led[i].cdev.name = name; in mc13xxx_led_probe()
248 leds->led[i].cdev.default_trigger = trig; in mc13xxx_led_probe()
249 leds->led[i].cdev.flags = LED_CORE_SUSPENDRESUME; in mc13xxx_led_probe()
250 leds->led[i].cdev.brightness_set_blocking = mc13xxx_led_set; in mc13xxx_led_probe()
251 leds->led[i].cdev.max_brightness = mc13xxx_max_brightness(id); in mc13xxx_led_probe()
253 ret = led_classdev_register(dev->parent, &leds->led[i].cdev); in mc13xxx_led_probe()
262 led_classdev_unregister(&leds->led[i].cdev); in mc13xxx_led_probe()
269 struct mc13xxx_leds *leds = platform_get_drvdata(pdev); in mc13xxx_led_remove() local
272 for (i = 0; i < leds->num_leds; i++) in mc13xxx_led_remove()
273 led_classdev_unregister(&leds->led[i].cdev); in mc13xxx_led_remove()
316 MODULE_DESCRIPTION("LEDs driver for Freescale MC13XXX PMIC");