aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/leds
diff options
context:
space:
mode:
authorMilo Kim <milo.kim@ti.com>2013-08-07 23:45:41 -0400
committerBryan Wu <cooloney@gmail.com>2013-08-26 20:22:12 -0400
commit6841a91dc5cfcb02b99413fa4199d9a8ce5ae770 (patch)
treed4fc864fe7bcbb4e05021c101df0d03177d596b0 /drivers/leds
parente5862b9a521fcb2d5f95898b506fbc788762fca5 (diff)
leds: lp55xx: add common data structure for program
LP55xx family devices have internal three program engines which are used for loading LED patterns. To maintain legacy device attributes, specific data structure is used, 'mode' and 'led_mux'. The mode is used for showing/storing current engine mode such like disabled, load and run. Then led_mux is used for showing/storing current output LED selection. This is only for LP5523/55231. Signed-off-by: Milo Kim <milo.kim@ti.com> Signed-off-by: Bryan Wu <cooloney@gmail.com>
Diffstat (limited to 'drivers/leds')
-rw-r--r--drivers/leds/leds-lp55xx-common.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/drivers/leds/leds-lp55xx-common.h b/drivers/leds/leds-lp55xx-common.h
index dbbf86df0f1f..04c1d4fc18c0 100644
--- a/drivers/leds/leds-lp55xx-common.h
+++ b/drivers/leds/leds-lp55xx-common.h
@@ -20,6 +20,13 @@ enum lp55xx_engine_index {
20 LP55XX_ENGINE_1, 20 LP55XX_ENGINE_1,
21 LP55XX_ENGINE_2, 21 LP55XX_ENGINE_2,
22 LP55XX_ENGINE_3, 22 LP55XX_ENGINE_3,
23 LP55XX_ENGINE_MAX = LP55XX_ENGINE_3,
24};
25
26enum lp55xx_engine_mode {
27 LP55XX_ENGINE_DISABLED,
28 LP55XX_ENGINE_LOAD,
29 LP55XX_ENGINE_RUN,
23}; 30};
24 31
25struct lp55xx_led; 32struct lp55xx_led;
@@ -72,6 +79,16 @@ struct lp55xx_device_config {
72}; 79};
73 80
74/* 81/*
82 * struct lp55xx_engine
83 * @mode : Engine mode
84 * @led_mux : Mux bits for LED selection. Only used in LP5523
85 */
86struct lp55xx_engine {
87 enum lp55xx_engine_mode mode;
88 u16 led_mux;
89};
90
91/*
75 * struct lp55xx_chip 92 * struct lp55xx_chip
76 * @cl : I2C communication for access registers 93 * @cl : I2C communication for access registers
77 * @pdata : Platform specific data 94 * @pdata : Platform specific data
@@ -79,6 +96,7 @@ struct lp55xx_device_config {
79 * @num_leds : Number of registered LEDs 96 * @num_leds : Number of registered LEDs
80 * @cfg : Device specific configuration data 97 * @cfg : Device specific configuration data
81 * @engine_idx : Selected engine number 98 * @engine_idx : Selected engine number
99 * @engines : Engine structure for the device attribute R/W interface
82 * @fw : Firmware data for running a LED pattern 100 * @fw : Firmware data for running a LED pattern
83 */ 101 */
84struct lp55xx_chip { 102struct lp55xx_chip {
@@ -89,6 +107,7 @@ struct lp55xx_chip {
89 int num_leds; 107 int num_leds;
90 struct lp55xx_device_config *cfg; 108 struct lp55xx_device_config *cfg;
91 enum lp55xx_engine_index engine_idx; 109 enum lp55xx_engine_index engine_idx;
110 struct lp55xx_engine engines[LP55XX_ENGINE_MAX];
92 const struct firmware *fw; 111 const struct firmware *fw;
93}; 112};
94 113