Lines Matching refs:led_dat

41 static int ns2_led_get_mode(struct ns2_led_data *led_dat,  in ns2_led_get_mode()  argument
49 cmd_level = gpio_get_value_cansleep(led_dat->cmd); in ns2_led_get_mode()
50 slow_level = gpio_get_value_cansleep(led_dat->slow); in ns2_led_get_mode()
52 for (i = 0; i < led_dat->num_modes; i++) { in ns2_led_get_mode()
53 if (cmd_level == led_dat->modval[i].cmd_level && in ns2_led_get_mode()
54 slow_level == led_dat->modval[i].slow_level) { in ns2_led_get_mode()
55 *mode = led_dat->modval[i].mode; in ns2_led_get_mode()
64 static void ns2_led_set_mode(struct ns2_led_data *led_dat, in ns2_led_set_mode() argument
71 for (i = 0; i < led_dat->num_modes; i++) in ns2_led_set_mode()
72 if (mode == led_dat->modval[i].mode) { in ns2_led_set_mode()
80 write_lock_irqsave(&led_dat->rw_lock, flags); in ns2_led_set_mode()
82 if (!led_dat->can_sleep) { in ns2_led_set_mode()
83 gpio_set_value(led_dat->cmd, in ns2_led_set_mode()
84 led_dat->modval[i].cmd_level); in ns2_led_set_mode()
85 gpio_set_value(led_dat->slow, in ns2_led_set_mode()
86 led_dat->modval[i].slow_level); in ns2_led_set_mode()
90 gpio_set_value_cansleep(led_dat->cmd, led_dat->modval[i].cmd_level); in ns2_led_set_mode()
91 gpio_set_value_cansleep(led_dat->slow, led_dat->modval[i].slow_level); in ns2_led_set_mode()
94 write_unlock_irqrestore(&led_dat->rw_lock, flags); in ns2_led_set_mode()
100 struct ns2_led_data *led_dat = in ns2_led_set() local
106 else if (led_dat->sata) in ns2_led_set()
111 ns2_led_set_mode(led_dat, mode); in ns2_led_set()
126 struct ns2_led_data *led_dat = in ns2_led_sata_store() local
137 if (led_dat->sata == enable) in ns2_led_sata_store()
140 led_dat->sata = enable; in ns2_led_sata_store()
146 ns2_led_set_mode(led_dat, NS_V2_LED_SATA); in ns2_led_sata_store()
148 ns2_led_set_mode(led_dat, NS_V2_LED_ON); in ns2_led_sata_store()
158 struct ns2_led_data *led_dat = in ns2_led_sata_show() local
161 return sprintf(buf, "%d\n", led_dat->sata); in ns2_led_sata_show()
173 create_ns2_led(struct platform_device *pdev, struct ns2_led_data *led_dat, in create_ns2_led() argument
199 rwlock_init(&led_dat->rw_lock); in create_ns2_led()
201 led_dat->cdev.name = template->name; in create_ns2_led()
202 led_dat->cdev.default_trigger = template->default_trigger; in create_ns2_led()
203 led_dat->cdev.blink_set = NULL; in create_ns2_led()
204 led_dat->cdev.flags |= LED_CORE_SUSPENDRESUME; in create_ns2_led()
205 led_dat->cdev.groups = ns2_led_groups; in create_ns2_led()
206 led_dat->cmd = template->cmd; in create_ns2_led()
207 led_dat->slow = template->slow; in create_ns2_led()
208 led_dat->can_sleep = gpio_cansleep(led_dat->cmd) | in create_ns2_led()
209 gpio_cansleep(led_dat->slow); in create_ns2_led()
210 if (led_dat->can_sleep) in create_ns2_led()
211 led_dat->cdev.brightness_set_blocking = ns2_led_set_blocking; in create_ns2_led()
213 led_dat->cdev.brightness_set = ns2_led_set; in create_ns2_led()
214 led_dat->modval = template->modval; in create_ns2_led()
215 led_dat->num_modes = template->num_modes; in create_ns2_led()
217 ret = ns2_led_get_mode(led_dat, &mode); in create_ns2_led()
222 led_dat->sata = (mode == NS_V2_LED_SATA) ? 1 : 0; in create_ns2_led()
223 led_dat->cdev.brightness = in create_ns2_led()
226 ret = led_classdev_register(&pdev->dev, &led_dat->cdev); in create_ns2_led()
233 static void delete_ns2_led(struct ns2_led_data *led_dat) in delete_ns2_led() argument
235 led_classdev_unregister(&led_dat->cdev); in delete_ns2_led()