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 
12 struct netxbig_gpio_ext {
13 	unsigned	*addr;
14 	int		num_addr;
15 	unsigned	*data;
16 	int		num_data;
17 	unsigned	enable;
18 };
19 
20 enum 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 
31 struct netxbig_led_timer {
32 	unsigned long		delay_on;
33 	unsigned long		delay_off;
34 	enum netxbig_led_mode	mode;
35 };
36 
37 struct netxbig_led {
38 	const char	*name;
39 	const char	*default_trigger;
40 	int		mode_addr;
41 	int		*mode_val;
42 	int		bright_addr;
43 	int		bright_max;
44 };
45 
46 struct netxbig_led_platform_data {
47 	struct netxbig_gpio_ext	*gpio_ext;
48 	struct netxbig_led_timer *timer;
49 	int			num_timer;
50 	struct netxbig_led	*leds;
51 	int			num_leds;
52 };
53 
54 #endif /* __LEDS_KIRKWOOD_NETXBIG_H */
55