mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-05 11:00:15 +00:00
83d290c56f
When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <trini@konsulko.com>
109 lines
2.4 KiB
C
109 lines
2.4 KiB
C
/* SPDX-License-Identifier: GPL-2.0+ */
|
|
/*
|
|
* Copyright (c) 2015 Google, Inc
|
|
* Written by Simon Glass <sjg@chromium.org>
|
|
*/
|
|
|
|
#ifndef __LED_H
|
|
#define __LED_H
|
|
|
|
/**
|
|
* struct led_uc_plat - Platform data the uclass stores about each device
|
|
*
|
|
* @label: LED label
|
|
*/
|
|
struct led_uc_plat {
|
|
const char *label;
|
|
};
|
|
|
|
/**
|
|
* struct led_uc_priv - Private data the uclass stores about each device
|
|
*
|
|
* @period_ms: Flash period in milliseconds
|
|
*/
|
|
struct led_uc_priv {
|
|
int period_ms;
|
|
};
|
|
|
|
enum led_state_t {
|
|
LEDST_OFF = 0,
|
|
LEDST_ON = 1,
|
|
LEDST_TOGGLE,
|
|
#ifdef CONFIG_LED_BLINK
|
|
LEDST_BLINK,
|
|
#endif
|
|
|
|
LEDST_COUNT,
|
|
};
|
|
|
|
struct led_ops {
|
|
/**
|
|
* set_state() - set the state of an LED
|
|
*
|
|
* @dev: LED device to change
|
|
* @state: LED state to set
|
|
* @return 0 if OK, -ve on error
|
|
*/
|
|
int (*set_state)(struct udevice *dev, enum led_state_t state);
|
|
|
|
/**
|
|
* led_get_state() - get the state of an LED
|
|
*
|
|
* @dev: LED device to change
|
|
* @return LED state led_state_t, or -ve on error
|
|
*/
|
|
enum led_state_t (*get_state)(struct udevice *dev);
|
|
|
|
#ifdef CONFIG_LED_BLINK
|
|
/**
|
|
* led_set_period() - set the blink period of an LED
|
|
*
|
|
* Thie records the period if supported, or returns -ENOSYS if not.
|
|
* To start the LED blinking, use set_state().
|
|
*
|
|
* @dev: LED device to change
|
|
* @period_ms: LED blink period in milliseconds
|
|
* @return 0 if OK, -ve on error
|
|
*/
|
|
int (*set_period)(struct udevice *dev, int period_ms);
|
|
#endif
|
|
};
|
|
|
|
#define led_get_ops(dev) ((struct led_ops *)(dev)->driver->ops)
|
|
|
|
/**
|
|
* led_get_by_label() - Find an LED device by label
|
|
*
|
|
* @label: LED label to look up
|
|
* @devp: Returns the associated device, if found
|
|
* @return 0 if found, -ENODEV if not found, other -ve on error
|
|
*/
|
|
int led_get_by_label(const char *label, struct udevice **devp);
|
|
|
|
/**
|
|
* led_set_state() - set the state of an LED
|
|
*
|
|
* @dev: LED device to change
|
|
* @state: LED state to set
|
|
* @return 0 if OK, -ve on error
|
|
*/
|
|
int led_set_state(struct udevice *dev, enum led_state_t state);
|
|
|
|
/**
|
|
* led_get_state() - get the state of an LED
|
|
*
|
|
* @dev: LED device to change
|
|
* @return LED state led_state_t, or -ve on error
|
|
*/
|
|
enum led_state_t led_get_state(struct udevice *dev);
|
|
|
|
/**
|
|
* led_set_period() - set the blink period of an LED
|
|
*
|
|
* @dev: LED device to change
|
|
* @period_ms: LED blink period in milliseconds
|
|
* @return 0 if OK, -ve on error
|
|
*/
|
|
int led_set_period(struct udevice *dev, int period_ms);
|
|
|
|
#endif
|