xref: /rk3399_rockchip-uboot/include/led.h (revision fb8a5ffc77597a99678dbd5077f29ec9df54bdbe)
15917112cSSimon Glass /*
25917112cSSimon Glass  * Copyright (c) 2015 Google, Inc
35917112cSSimon Glass  * Written by Simon Glass <sjg@chromium.org>
45917112cSSimon Glass  *
55917112cSSimon Glass  * SPDX-License-Identifier:	GPL-2.0+
65917112cSSimon Glass  */
75917112cSSimon Glass 
85917112cSSimon Glass #ifndef __LED_H
95917112cSSimon Glass #define __LED_H
105917112cSSimon Glass 
115917112cSSimon Glass /**
125917112cSSimon Glass  * struct led_uclass_plat - Platform data the uclass stores about each device
135917112cSSimon Glass  *
145917112cSSimon Glass  * @label:	LED label
155917112cSSimon Glass  */
165917112cSSimon Glass struct led_uclass_plat {
175917112cSSimon Glass 	const char *label;
185917112cSSimon Glass };
195917112cSSimon Glass 
205917112cSSimon Glass struct led_ops {
215917112cSSimon Glass 	/**
225917112cSSimon Glass 	 * set_on() - set the state of an LED
235917112cSSimon Glass 	 *
245917112cSSimon Glass 	 * @dev:	LED device to change
255917112cSSimon Glass 	 * @on:		1 to turn the LED on, 0 to turn it off
265917112cSSimon Glass 	 * @return 0 if OK, -ve on error
275917112cSSimon Glass 	 */
285917112cSSimon Glass 	int (*set_on)(struct udevice *dev, int on);
295917112cSSimon Glass };
305917112cSSimon Glass 
315917112cSSimon Glass #define led_get_ops(dev)	((struct led_ops *)(dev)->driver->ops)
325917112cSSimon Glass 
335917112cSSimon Glass /**
345917112cSSimon Glass  * led_get_by_label() - Find an LED device by label
355917112cSSimon Glass  *
365917112cSSimon Glass  * @label:	LED label to look up
375917112cSSimon Glass  * @devp:	Returns the associated device, if found
38*fb8a5ffcSSimon Glass  * @return 0 if found, -ENODEV if not found, other -ve on error
395917112cSSimon Glass  */
405917112cSSimon Glass int led_get_by_label(const char *label, struct udevice **devp);
415917112cSSimon Glass 
425917112cSSimon Glass /**
435917112cSSimon Glass  * led_set_on() - set the state of an LED
445917112cSSimon Glass  *
455917112cSSimon Glass  * @dev:	LED device to change
465917112cSSimon Glass  * @on:		1 to turn the LED on, 0 to turn it off
475917112cSSimon Glass  * @return 0 if OK, -ve on error
485917112cSSimon Glass  */
495917112cSSimon Glass int led_set_on(struct udevice *dev, int on);
505917112cSSimon Glass 
515917112cSSimon Glass #endif
52