Commit | Line | Data |
---|---|---|
c93d08fa MWK |
1 | /* |
2 | * LP55XX Platform Data Header | |
3 | * | |
4 | * Copyright (C) 2012 Texas Instruments | |
5 | * | |
6 | * Author: Milo(Woogyom) Kim <milo.kim@ti.com> | |
7 | * | |
8 | * This program is free software; you can redistribute it and/or | |
9 | * modify it under the terms of the GNU General Public License | |
10 | * version 2 as published by the Free Software Foundation. | |
11 | * | |
12 | * Derived from leds-lp5521.h, leds-lp5523.h | |
13 | */ | |
14 | ||
15 | #ifndef _LEDS_LP55XX_H | |
16 | #define _LEDS_LP55XX_H | |
17 | ||
18 | /* Clock configuration */ | |
19 | #define LP55XX_CLOCK_AUTO 0 | |
20 | #define LP55XX_CLOCK_INT 1 | |
21 | #define LP55XX_CLOCK_EXT 2 | |
22 | ||
c93d08fa MWK |
23 | struct lp55xx_led_config { |
24 | const char *name; | |
f65f0a1a | 25 | const char *default_trigger; |
c93d08fa MWK |
26 | u8 chan_nr; |
27 | u8 led_current; /* mA x10, 0 if led is not connected */ | |
28 | u8 max_current; | |
29 | }; | |
30 | ||
31 | struct lp55xx_predef_pattern { | |
ff45262a KM |
32 | const u8 *r; |
33 | const u8 *g; | |
34 | const u8 *b; | |
c93d08fa MWK |
35 | u8 size_r; |
36 | u8 size_g; | |
37 | u8 size_b; | |
38 | }; | |
39 | ||
33b3a561 KM |
40 | enum lp8501_pwr_sel { |
41 | LP8501_ALL_VDD, /* D1~9 are connected to VDD */ | |
42 | LP8501_6VDD_3VOUT, /* D1~6 with VDD, D7~9 with VOUT */ | |
43 | LP8501_3VDD_6VOUT, /* D1~6 with VOUT, D7~9 with VDD */ | |
44 | LP8501_ALL_VOUT, /* D1~9 are connected to VOUT */ | |
45 | }; | |
46 | ||
c93d08fa MWK |
47 | /* |
48 | * struct lp55xx_platform_data | |
49 | * @led_config : Configurable led class device | |
50 | * @num_channels : Number of LED channels | |
51 | * @label : Used for naming LEDs | |
52 | * @clock_mode : Input clock mode. LP55XX_CLOCK_AUTO or _INT or _EXT | |
53 | * @setup_resources : Platform specific function before enabling the chip | |
54 | * @release_resources : Platform specific function after disabling the chip | |
55 | * @enable : EN pin control by platform side | |
56 | * @patterns : Predefined pattern data for RGB channels | |
57 | * @num_patterns : Number of patterns | |
58 | * @update_config : Value of CONFIG register | |
59 | */ | |
60 | struct lp55xx_platform_data { | |
61 | ||
62 | /* LED channel configuration */ | |
63 | struct lp55xx_led_config *led_config; | |
64 | u8 num_channels; | |
65 | const char *label; | |
66 | ||
67 | /* Clock configuration */ | |
68 | u8 clock_mode; | |
69 | ||
30dae2f9 SR |
70 | /* optional enable GPIO */ |
71 | int enable_gpio; | |
c93d08fa MWK |
72 | |
73 | /* Predefined pattern data */ | |
74 | struct lp55xx_predef_pattern *patterns; | |
75 | unsigned int num_patterns; | |
33b3a561 KM |
76 | |
77 | /* LP8501 specific */ | |
78 | enum lp8501_pwr_sel pwr_sel; | |
c93d08fa MWK |
79 | }; |
80 | ||
81 | #endif /* _LEDS_LP55XX_H */ |