diff options
author | Haojian Zhuang <haojian.zhuang@marvell.com> | 2010-01-08 12:43:29 -0500 |
---|---|---|
committer | Samuel Ortiz <sameo@linux.intel.com> | 2010-03-07 16:17:07 -0500 |
commit | 1ad998934e9c6cbae91662a05e0cb8772b1f4f75 (patch) | |
tree | 91ad77823b13b805c2ee3e5915aec46872d38170 /include | |
parent | d50f8f339f6901fccc9d4292b65ce8b69d7413d4 (diff) |
mfd: Add subdevs in max8925
Add subdevs in MAX8925. MAX8925 includes regulator, backlight and touch
components.
Signed-off-by: Haojian Zhuang <haojian.zhuang@marvell.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/mfd/max8925.h | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/include/linux/mfd/max8925.h b/include/linux/mfd/max8925.h index 2326246ddef2..b72dbe174d51 100644 --- a/include/linux/mfd/max8925.h +++ b/include/linux/mfd/max8925.h | |||
@@ -14,6 +14,33 @@ | |||
14 | 14 | ||
15 | #include <linux/interrupt.h> | 15 | #include <linux/interrupt.h> |
16 | 16 | ||
17 | /* Unified sub device IDs for MAX8925 */ | ||
18 | enum { | ||
19 | MAX8925_ID_SD1, | ||
20 | MAX8925_ID_SD2, | ||
21 | MAX8925_ID_SD3, | ||
22 | MAX8925_ID_LDO1, | ||
23 | MAX8925_ID_LDO2, | ||
24 | MAX8925_ID_LDO3, | ||
25 | MAX8925_ID_LDO4, | ||
26 | MAX8925_ID_LDO5, | ||
27 | MAX8925_ID_LDO6, | ||
28 | MAX8925_ID_LDO7, | ||
29 | MAX8925_ID_LDO8, | ||
30 | MAX8925_ID_LDO9, | ||
31 | MAX8925_ID_LDO10, | ||
32 | MAX8925_ID_LDO11, | ||
33 | MAX8925_ID_LDO12, | ||
34 | MAX8925_ID_LDO13, | ||
35 | MAX8925_ID_LDO14, | ||
36 | MAX8925_ID_LDO15, | ||
37 | MAX8925_ID_LDO16, | ||
38 | MAX8925_ID_LDO17, | ||
39 | MAX8925_ID_LDO18, | ||
40 | MAX8925_ID_LDO19, | ||
41 | MAX8925_ID_LDO20, | ||
42 | }; | ||
43 | |||
17 | /* Charger registers */ | 44 | /* Charger registers */ |
18 | #define MAX8925_CHG_IRQ1 (0x7e) | 45 | #define MAX8925_CHG_IRQ1 (0x7e) |
19 | #define MAX8925_CHG_IRQ2 (0x7f) | 46 | #define MAX8925_CHG_IRQ2 (0x7f) |
@@ -32,12 +59,65 @@ | |||
32 | /* Touch registers */ | 59 | /* Touch registers */ |
33 | #define MAX8925_TSC_IRQ (0x00) | 60 | #define MAX8925_TSC_IRQ (0x00) |
34 | #define MAX8925_TSC_IRQ_MASK (0x01) | 61 | #define MAX8925_TSC_IRQ_MASK (0x01) |
62 | #define MAX8925_ADC_RES_END (0x6f) | ||
35 | 63 | ||
36 | /* RTC registers */ | 64 | /* RTC registers */ |
37 | #define MAX8925_RTC_STATUS (0x1a) | 65 | #define MAX8925_RTC_STATUS (0x1a) |
38 | #define MAX8925_RTC_IRQ (0x1c) | 66 | #define MAX8925_RTC_IRQ (0x1c) |
39 | #define MAX8925_RTC_IRQ_MASK (0x1d) | 67 | #define MAX8925_RTC_IRQ_MASK (0x1d) |
40 | 68 | ||
69 | /* WLED registers */ | ||
70 | #define MAX8925_WLED_MODE_CNTL (0x84) | ||
71 | #define MAX8925_WLED_CNTL (0x85) | ||
72 | |||
73 | /* MAX8925 Registers */ | ||
74 | #define MAX8925_SDCTL1 (0x04) | ||
75 | #define MAX8925_SDCTL2 (0x07) | ||
76 | #define MAX8925_SDCTL3 (0x0A) | ||
77 | #define MAX8925_SDV1 (0x06) | ||
78 | #define MAX8925_SDV2 (0x09) | ||
79 | #define MAX8925_SDV3 (0x0C) | ||
80 | #define MAX8925_LDOCTL1 (0x18) | ||
81 | #define MAX8925_LDOCTL2 (0x1C) | ||
82 | #define MAX8925_LDOCTL3 (0x20) | ||
83 | #define MAX8925_LDOCTL4 (0x24) | ||
84 | #define MAX8925_LDOCTL5 (0x28) | ||
85 | #define MAX8925_LDOCTL6 (0x2C) | ||
86 | #define MAX8925_LDOCTL7 (0x30) | ||
87 | #define MAX8925_LDOCTL8 (0x34) | ||
88 | #define MAX8925_LDOCTL9 (0x38) | ||
89 | #define MAX8925_LDOCTL10 (0x3C) | ||
90 | #define MAX8925_LDOCTL11 (0x40) | ||
91 | #define MAX8925_LDOCTL12 (0x44) | ||
92 | #define MAX8925_LDOCTL13 (0x48) | ||
93 | #define MAX8925_LDOCTL14 (0x4C) | ||
94 | #define MAX8925_LDOCTL15 (0x50) | ||
95 | #define MAX8925_LDOCTL16 (0x10) | ||
96 | #define MAX8925_LDOCTL17 (0x14) | ||
97 | #define MAX8925_LDOCTL18 (0x72) | ||
98 | #define MAX8925_LDOCTL19 (0x5C) | ||
99 | #define MAX8925_LDOCTL20 (0x9C) | ||
100 | #define MAX8925_LDOVOUT1 (0x1A) | ||
101 | #define MAX8925_LDOVOUT2 (0x1E) | ||
102 | #define MAX8925_LDOVOUT3 (0x22) | ||
103 | #define MAX8925_LDOVOUT4 (0x26) | ||
104 | #define MAX8925_LDOVOUT5 (0x2A) | ||
105 | #define MAX8925_LDOVOUT6 (0x2E) | ||
106 | #define MAX8925_LDOVOUT7 (0x32) | ||
107 | #define MAX8925_LDOVOUT8 (0x36) | ||
108 | #define MAX8925_LDOVOUT9 (0x3A) | ||
109 | #define MAX8925_LDOVOUT10 (0x3E) | ||
110 | #define MAX8925_LDOVOUT11 (0x42) | ||
111 | #define MAX8925_LDOVOUT12 (0x46) | ||
112 | #define MAX8925_LDOVOUT13 (0x4A) | ||
113 | #define MAX8925_LDOVOUT14 (0x4E) | ||
114 | #define MAX8925_LDOVOUT15 (0x52) | ||
115 | #define MAX8925_LDOVOUT16 (0x12) | ||
116 | #define MAX8925_LDOVOUT17 (0x16) | ||
117 | #define MAX8925_LDOVOUT18 (0x74) | ||
118 | #define MAX8925_LDOVOUT19 (0x5E) | ||
119 | #define MAX8925_LDOVOUT20 (0x9E) | ||
120 | |||
41 | /* bit definitions */ | 121 | /* bit definitions */ |
42 | #define CHG_IRQ1_MASK (0x07) | 122 | #define CHG_IRQ1_MASK (0x07) |
43 | #define CHG_IRQ2_MASK (0xff) | 123 | #define CHG_IRQ2_MASK (0xff) |
@@ -83,6 +163,8 @@ enum { | |||
83 | #define MAX8925_IRQ_TSC_STICK (0) | 163 | #define MAX8925_IRQ_TSC_STICK (0) |
84 | #define MAX8925_IRQ_TSC_NSTICK (1) | 164 | #define MAX8925_IRQ_TSC_NSTICK (1) |
85 | 165 | ||
166 | #define MAX8925_MAX_REGULATOR (23) | ||
167 | |||
86 | struct max8925_irq { | 168 | struct max8925_irq { |
87 | irq_handler_t handler; | 169 | irq_handler_t handler; |
88 | void *data; | 170 | void *data; |
@@ -100,7 +182,21 @@ struct max8925_chip { | |||
100 | int chip_irq; | 182 | int chip_irq; |
101 | }; | 183 | }; |
102 | 184 | ||
185 | struct max8925_backlight_pdata { | ||
186 | int lxw_scl; /* 0/1 -- 0.8Ohm/0.4Ohm */ | ||
187 | int lxw_freq; /* 700KHz ~ 1400KHz */ | ||
188 | int dual_string; /* 0/1 -- single/dual string */ | ||
189 | }; | ||
190 | |||
191 | struct max8925_touch_pdata { | ||
192 | unsigned int flags; | ||
193 | }; | ||
194 | |||
103 | struct max8925_platform_data { | 195 | struct max8925_platform_data { |
196 | struct max8925_backlight_pdata *backlight; | ||
197 | struct max8925_touch_pdata *touch; | ||
198 | struct regulator_init_data *regulator[MAX8925_MAX_REGULATOR]; | ||
199 | |||
104 | int chip_id; | 200 | int chip_id; |
105 | int chip_irq; | 201 | int chip_irq; |
106 | }; | 202 | }; |