Lines Matching refs:led

101 static void bcm6328_led_mode(struct bcm6328_led *led, unsigned long value)  in bcm6328_led_mode()  argument
106 shift = bcm6328_pin2shift(led->pin); in bcm6328_led_mode()
108 mode = led->mem + BCM6328_REG_MODE_HI; in bcm6328_led_mode()
110 mode = led->mem + BCM6328_REG_MODE_LO; in bcm6328_led_mode()
121 struct bcm6328_led *led = in bcm6328_led_set() local
125 spin_lock_irqsave(led->lock, flags); in bcm6328_led_set()
126 *(led->blink_leds) &= ~BIT(led->pin); in bcm6328_led_set()
127 if ((led->active_low && value == LED_OFF) || in bcm6328_led_set()
128 (!led->active_low && value != LED_OFF)) in bcm6328_led_set()
129 bcm6328_led_mode(led, BCM6328_LED_MODE_OFF); in bcm6328_led_set()
131 bcm6328_led_mode(led, BCM6328_LED_MODE_ON); in bcm6328_led_set()
132 spin_unlock_irqrestore(led->lock, flags); in bcm6328_led_set()
138 struct bcm6328_led *led = in bcm6328_blink_set() local
163 spin_lock_irqsave(led->lock, flags); in bcm6328_blink_set()
164 if (*(led->blink_leds) == 0 || in bcm6328_blink_set()
165 *(led->blink_leds) == BIT(led->pin) || in bcm6328_blink_set()
166 *(led->blink_delay) == delay) { in bcm6328_blink_set()
169 *(led->blink_leds) |= BIT(led->pin); in bcm6328_blink_set()
170 *(led->blink_delay) = delay; in bcm6328_blink_set()
172 val = bcm6328_led_read(led->mem + BCM6328_REG_INIT); in bcm6328_blink_set()
175 bcm6328_led_write(led->mem + BCM6328_REG_INIT, val); in bcm6328_blink_set()
177 bcm6328_led_mode(led, BCM6328_LED_MODE_BLINK); in bcm6328_blink_set()
179 spin_unlock_irqrestore(led->lock, flags); in bcm6328_blink_set()
181 spin_unlock_irqrestore(led->lock, flags); in bcm6328_blink_set()
266 struct bcm6328_led *led; in bcm6328_led() local
271 led = devm_kzalloc(dev, sizeof(*led), GFP_KERNEL); in bcm6328_led()
272 if (!led) in bcm6328_led()
275 led->pin = reg; in bcm6328_led()
276 led->mem = mem; in bcm6328_led()
277 led->lock = lock; in bcm6328_led()
278 led->blink_leds = blink_leds; in bcm6328_led()
279 led->blink_delay = blink_delay; in bcm6328_led()
282 led->active_low = true; in bcm6328_led()
284 led->cdev.name = of_get_property(nc, "label", NULL) ? : nc->name; in bcm6328_led()
285 led->cdev.default_trigger = of_get_property(nc, in bcm6328_led()
292 led->cdev.brightness = LED_FULL; in bcm6328_led()
297 shift = bcm6328_pin2shift(led->pin); in bcm6328_led()
306 if ((led->active_low && val == BCM6328_LED_MODE_ON) || in bcm6328_led()
307 (!led->active_low && val == BCM6328_LED_MODE_OFF)) in bcm6328_led()
308 led->cdev.brightness = LED_FULL; in bcm6328_led()
310 led->cdev.brightness = LED_OFF; in bcm6328_led()
312 led->cdev.brightness = LED_OFF; in bcm6328_led()
315 led->cdev.brightness = LED_OFF; in bcm6328_led()
318 if ((led->active_low && led->cdev.brightness == LED_FULL) || in bcm6328_led()
319 (!led->active_low && led->cdev.brightness == LED_OFF)) in bcm6328_led()
320 bcm6328_led_mode(led, BCM6328_LED_MODE_ON); in bcm6328_led()
322 bcm6328_led_mode(led, BCM6328_LED_MODE_OFF); in bcm6328_led()
325 led->cdev.brightness_set = bcm6328_led_set; in bcm6328_led()
326 led->cdev.blink_set = bcm6328_blink_set; in bcm6328_led()
328 rc = led_classdev_register(dev, &led->cdev); in bcm6328_led()
332 dev_dbg(dev, "registered LED %s\n", led->cdev.name); in bcm6328_led()