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