Lines Matching refs:led_dat
77 static int ns2_led_get_mode(struct ns2_led_data *led_dat, in ns2_led_get_mode() argument
85 read_lock_irq(&led_dat->rw_lock); in ns2_led_get_mode()
87 cmd_level = gpio_get_value(led_dat->cmd); in ns2_led_get_mode()
88 slow_level = gpio_get_value(led_dat->slow); in ns2_led_get_mode()
99 read_unlock_irq(&led_dat->rw_lock); in ns2_led_get_mode()
104 static void ns2_led_set_mode(struct ns2_led_data *led_dat, in ns2_led_set_mode() argument
110 write_lock_irqsave(&led_dat->rw_lock, flags); in ns2_led_set_mode()
114 gpio_set_value(led_dat->cmd, in ns2_led_set_mode()
116 gpio_set_value(led_dat->slow, in ns2_led_set_mode()
121 write_unlock_irqrestore(&led_dat->rw_lock, flags); in ns2_led_set_mode()
127 struct ns2_led_data *led_dat = in ns2_led_set() local
133 else if (led_dat->sata) in ns2_led_set()
138 ns2_led_set_mode(led_dat, mode); in ns2_led_set()
146 struct ns2_led_data *led_dat = in ns2_led_sata_store() local
158 if (led_dat->sata == enable) in ns2_led_sata_store()
161 ret = ns2_led_get_mode(led_dat, &mode); in ns2_led_sata_store()
166 ns2_led_set_mode(led_dat, NS_V2_LED_SATA); in ns2_led_sata_store()
168 ns2_led_set_mode(led_dat, NS_V2_LED_ON); in ns2_led_sata_store()
170 led_dat->sata = enable; in ns2_led_sata_store()
179 struct ns2_led_data *led_dat = in ns2_led_sata_show() local
182 return sprintf(buf, "%d\n", led_dat->sata); in ns2_led_sata_show()
188 create_ns2_led(struct platform_device *pdev, struct ns2_led_data *led_dat, in create_ns2_led() argument
219 rwlock_init(&led_dat->rw_lock); in create_ns2_led()
221 led_dat->cdev.name = template->name; in create_ns2_led()
222 led_dat->cdev.default_trigger = template->default_trigger; in create_ns2_led()
223 led_dat->cdev.blink_set = NULL; in create_ns2_led()
224 led_dat->cdev.brightness_set = ns2_led_set; in create_ns2_led()
225 led_dat->cdev.flags |= LED_CORE_SUSPENDRESUME; in create_ns2_led()
226 led_dat->cmd = template->cmd; in create_ns2_led()
227 led_dat->slow = template->slow; in create_ns2_led()
229 ret = ns2_led_get_mode(led_dat, &mode); in create_ns2_led()
234 led_dat->sata = (mode == NS_V2_LED_SATA) ? 1 : 0; in create_ns2_led()
235 led_dat->cdev.brightness = in create_ns2_led()
238 ret = led_classdev_register(&pdev->dev, &led_dat->cdev); in create_ns2_led()
242 ret = device_create_file(led_dat->cdev.dev, &dev_attr_sata); in create_ns2_led()
249 led_classdev_unregister(&led_dat->cdev); in create_ns2_led()
251 gpio_free(led_dat->slow); in create_ns2_led()
253 gpio_free(led_dat->cmd); in create_ns2_led()
258 static void __devexit delete_ns2_led(struct ns2_led_data *led_dat) in delete_ns2_led() argument
260 device_remove_file(led_dat->cdev.dev, &dev_attr_sata); in delete_ns2_led()
261 led_classdev_unregister(&led_dat->cdev); in delete_ns2_led()
262 gpio_free(led_dat->cmd); in delete_ns2_led()
263 gpio_free(led_dat->slow); in delete_ns2_led()