Lines Matching refs:led
71 static void bcm6358_led_mode(struct bcm6358_led *led, unsigned long value) in bcm6358_led_mode() argument
75 bcm6358_led_busy(led->mem); in bcm6358_led_mode()
77 val = bcm6358_led_read(led->mem + BCM6358_REG_MODE); in bcm6358_led_mode()
78 if ((led->active_low && value == LED_OFF) || in bcm6358_led_mode()
79 (!led->active_low && value != LED_OFF)) in bcm6358_led_mode()
80 val |= BIT(led->pin); in bcm6358_led_mode()
82 val &= ~(BIT(led->pin)); in bcm6358_led_mode()
83 bcm6358_led_write(led->mem + BCM6358_REG_MODE, val); in bcm6358_led_mode()
89 struct bcm6358_led *led = in bcm6358_led_set() local
93 spin_lock_irqsave(led->lock, flags); in bcm6358_led_set()
94 bcm6358_led_mode(led, value); in bcm6358_led_set()
95 spin_unlock_irqrestore(led->lock, flags); in bcm6358_led_set()
101 struct bcm6358_led *led; in bcm6358_led() local
106 led = devm_kzalloc(dev, sizeof(*led), GFP_KERNEL); in bcm6358_led()
107 if (!led) in bcm6358_led()
110 led->pin = reg; in bcm6358_led()
111 led->mem = mem; in bcm6358_led()
112 led->lock = lock; in bcm6358_led()
115 led->active_low = true; in bcm6358_led()
117 led->cdev.name = of_get_property(nc, "label", NULL) ? : nc->name; in bcm6358_led()
118 led->cdev.default_trigger = of_get_property(nc, in bcm6358_led()
125 led->cdev.brightness = LED_FULL; in bcm6358_led()
129 bcm6358_led_busy(led->mem); in bcm6358_led()
131 val = bcm6358_led_read(led->mem + BCM6358_REG_MODE); in bcm6358_led()
132 val &= BIT(led->pin); in bcm6358_led()
133 if ((led->active_low && !val) || in bcm6358_led()
134 (!led->active_low && val)) in bcm6358_led()
135 led->cdev.brightness = LED_FULL; in bcm6358_led()
137 led->cdev.brightness = LED_OFF; in bcm6358_led()
139 led->cdev.brightness = LED_OFF; in bcm6358_led()
142 led->cdev.brightness = LED_OFF; in bcm6358_led()
144 bcm6358_led_mode(led, led->cdev.brightness); in bcm6358_led()
147 led->cdev.brightness_set = bcm6358_led_set; in bcm6358_led()
149 rc = led_classdev_register(dev, &led->cdev); in bcm6358_led()
153 dev_dbg(dev, "registered LED %s\n", led->cdev.name); in bcm6358_led()