1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  * leds-lp3944.h - platform data structure for lp3944 led controller
4  *
5  * Copyright (C) 2009 Antonio Ospite <ospite@studenti.unina.it>
6  */
7 
8 #ifndef __LINUX_LEDS_LP3944_H
9 #define __LINUX_LEDS_LP3944_H
10 
11 #define LP3944_LED0 0
12 #define LP3944_LED1 1
13 #define LP3944_LED2 2
14 #define LP3944_LED3 3
15 #define LP3944_LED4 4
16 #define LP3944_LED5 5
17 #define LP3944_LED6 6
18 #define LP3944_LED7 7
19 #define LP3944_LEDS_MAX 8
20 
21 #define LP3944_LED_STATUS_MASK	0x03
22 enum lp3944_status {
23 	LP3944_LED_STATUS_OFF  = 0x0,
24 	LP3944_LED_STATUS_ON   = 0x1,
25 	LP3944_LED_STATUS_DIM0 = 0x2,
26 	LP3944_LED_STATUS_DIM1 = 0x3
27 };
28 
29 enum lp3944_type {
30 	LP3944_LED_TYPE_NONE,
31 	LP3944_LED_TYPE_LED,
32 	LP3944_LED_TYPE_LED_INVERTED,
33 };
34 
35 struct lp3944_led {
36 	char *name;
37 	enum lp3944_type type;
38 	enum lp3944_status status;
39 };
40 
41 struct lp3944_platform_data {
42 	struct lp3944_led leds[LP3944_LEDS_MAX];
43 	u8 leds_size;
44 };
45 
46 #endif /* __LINUX_LEDS_LP3944_H */
47