Lines Matching defs:led

110 static void bcm6328_led_mode(struct bcm6328_led *led, unsigned long value)
115 shift = bcm6328_pin2shift(led->pin);
117 mode = led->mem + BCM6328_REG_MODE_HI;
119 mode = led->mem + BCM6328_REG_MODE_LO;
130 struct bcm6328_led *led =
134 spin_lock_irqsave(led->lock, flags);
137 led->blink_leds[0] &= ~BIT(led->pin);
138 led->blink_leds[1] &= ~BIT(led->pin);
141 if ((led->active_low && value == LED_OFF) ||
142 (!led->active_low && value != LED_OFF))
143 bcm6328_led_mode(led, BCM6328_LED_MODE_ON);
145 bcm6328_led_mode(led, BCM6328_LED_MODE_OFF);
147 spin_unlock_irqrestore(led->lock, flags);
165 struct bcm6328_led *led =
189 spin_lock_irqsave(led->lock, flags);
197 if (led->blink_leds[0] == 0 ||
198 led->blink_leds[0] == BIT(led->pin) ||
199 led->blink_delay[0] == delay) {
203 led->blink_leds[0] |= BIT(led->pin);
206 led->blink_leds[1] &= ~BIT(led->pin);
209 led->blink_delay[0] = delay;
212 val = bcm6328_led_read(led->mem + BCM6328_REG_INIT);
215 bcm6328_led_write(led->mem + BCM6328_REG_INIT, val);
218 bcm6328_led_mode(led, BCM6328_LED_MODE_BLINK1);
221 } else if (led->blink_leds[1] == 0 ||
222 led->blink_leds[1] == BIT(led->pin) ||
223 led->blink_delay[1] == delay) {
227 led->blink_leds[0] &= ~BIT(led->pin);
230 led->blink_leds[1] |= BIT(led->pin);
233 led->blink_delay[1] = delay;
236 val = bcm6328_led_read(led->mem + BCM6328_REG_INIT);
239 bcm6328_led_write(led->mem + BCM6328_REG_INIT, val);
242 bcm6328_led_mode(led, BCM6328_LED_MODE_BLINK2);
250 spin_unlock_irqrestore(led->lock, flags);
332 struct bcm6328_led *led;
338 led = devm_kzalloc(dev, sizeof(*led), GFP_KERNEL);
339 if (!led)
342 led->pin = reg;
343 led->mem = mem;
344 led->lock = lock;
345 led->blink_leds = blink_leds;
346 led->blink_delay = blink_delay;
349 led->active_low = true;
356 led->cdev.brightness = LED_FULL;
359 shift = bcm6328_pin2shift(led->pin);
367 if ((led->active_low && val == BCM6328_LED_MODE_OFF) ||
368 (!led->active_low && val == BCM6328_LED_MODE_ON))
369 led->cdev.brightness = LED_FULL;
371 led->cdev.brightness = LED_OFF;
374 led->cdev.brightness = LED_OFF;
377 bcm6328_led_set(&led->cdev, led->cdev.brightness);
379 led->cdev.brightness_set = bcm6328_led_set;
380 led->cdev.blink_set = bcm6328_blink_set;
382 rc = devm_led_classdev_register_ext(dev, &led->cdev, &init_data);
386 dev_dbg(dev, "registered LED %s\n", led->cdev.name);