Lines Matching refs:leds

38 	struct mc13xxx_leds	*leds;  member
61 struct mc13xxx_leds *leds = led->leds; in mc13xxx_led_work() local
108 mc13xxx_reg_rmw(leds->master, leds->devtype->ledctrl_base + reg, in mc13xxx_led_work()
127 struct mc13xxx_leds *leds = platform_get_drvdata(pdev); in mc13xxx_led_probe_dt() local
143 leds->devtype->num_regs); in mc13xxx_led_probe_dt()
162 pdata->led[i].id = leds->devtype->led_min + tmp; in mc13xxx_led_probe_dt()
196 struct mc13xxx_leds *leds; in mc13xxx_led_probe() local
200 leds = devm_kzalloc(dev, sizeof(*leds), GFP_KERNEL); in mc13xxx_led_probe()
201 if (!leds) in mc13xxx_led_probe()
204 leds->devtype = devtype; in mc13xxx_led_probe()
205 leds->master = mcdev; in mc13xxx_led_probe()
206 platform_set_drvdata(pdev, leds); in mc13xxx_led_probe()
215 leds->num_leds = pdata->num_leds; in mc13xxx_led_probe()
217 if ((leds->num_leds < 1) || in mc13xxx_led_probe()
218 (leds->num_leds > (devtype->led_max - devtype->led_min + 1))) { in mc13xxx_led_probe()
219 dev_err(dev, "Invalid LED count %d\n", leds->num_leds); in mc13xxx_led_probe()
223 leds->led = devm_kzalloc(dev, leds->num_leds * sizeof(*leds->led), in mc13xxx_led_probe()
225 if (!leds->led) in mc13xxx_led_probe()
229 ret = mc13xxx_reg_write(mcdev, leds->devtype->ledctrl_base + i, in mc13xxx_led_probe()
235 for (i = 0; i < leds->num_leds; i++) { in mc13xxx_led_probe()
255 leds->led[i].id = id; in mc13xxx_led_probe()
256 leds->led[i].leds = leds; in mc13xxx_led_probe()
257 leds->led[i].cdev.name = name; in mc13xxx_led_probe()
258 leds->led[i].cdev.default_trigger = trig; in mc13xxx_led_probe()
259 leds->led[i].cdev.flags = LED_CORE_SUSPENDRESUME; in mc13xxx_led_probe()
260 leds->led[i].cdev.brightness_set = mc13xxx_led_set; in mc13xxx_led_probe()
261 leds->led[i].cdev.max_brightness = mc13xxx_max_brightness(id); in mc13xxx_led_probe()
263 INIT_WORK(&leds->led[i].work, mc13xxx_led_work); in mc13xxx_led_probe()
265 ret = led_classdev_register(dev->parent, &leds->led[i].cdev); in mc13xxx_led_probe()
274 led_classdev_unregister(&leds->led[i].cdev); in mc13xxx_led_probe()
275 cancel_work_sync(&leds->led[i].work); in mc13xxx_led_probe()
283 struct mc13xxx_leds *leds = platform_get_drvdata(pdev); in mc13xxx_led_remove() local
286 for (i = 0; i < leds->num_leds; i++) { in mc13xxx_led_remove()
287 led_classdev_unregister(&leds->led[i].cdev); in mc13xxx_led_remove()
288 cancel_work_sync(&leds->led[i].work); in mc13xxx_led_remove()