1/*
2 * Platform data structure for netxbig LED driver
3 *
4 * This file is licensed under the terms of the GNU General Public
5 * License version 2.  This program is licensed "as is" without any
6 * warranty of any kind, whether express or implied.
7 */
8
9#ifndef __LEDS_KIRKWOOD_NETXBIG_H
10#define __LEDS_KIRKWOOD_NETXBIG_H
11
12struct netxbig_gpio_ext {
13	unsigned	*addr;
14	int		num_addr;
15	unsigned	*data;
16	int		num_data;
17	unsigned	enable;
18};
19
20enum netxbig_led_mode {
21	NETXBIG_LED_OFF,
22	NETXBIG_LED_ON,
23	NETXBIG_LED_SATA,
24	NETXBIG_LED_TIMER1,
25	NETXBIG_LED_TIMER2,
26	NETXBIG_LED_MODE_NUM,
27};
28
29#define NETXBIG_LED_INVALID_MODE NETXBIG_LED_MODE_NUM
30
31struct netxbig_led_timer {
32	unsigned long		delay_on;
33	unsigned long		delay_off;
34	enum netxbig_led_mode	mode;
35};
36
37struct netxbig_led {
38	const char	*name;
39	const char	*default_trigger;
40	int		mode_addr;
41	int		*mode_val;
42	int		bright_addr;
43};
44
45struct netxbig_led_platform_data {
46	struct netxbig_gpio_ext	*gpio_ext;
47	struct netxbig_led_timer *timer;
48	int			num_timer;
49	struct netxbig_led	*leds;
50	int			num_leds;
51};
52
53#endif /* __LEDS_KIRKWOOD_NETXBIG_H */
54