aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorLaxman Dewangan <ldewangan@nvidia.com>2013-08-13 03:53:11 -0400
committerSamuel Ortiz <sameo@linux.intel.com>2013-08-19 21:23:52 -0400
commitcc01b4639c94b1732995a9909a8973bfed67db2b (patch)
tree346a792fb5f78783e13a396ba95dd06f0460c684 /include/linux
parenta0e08b8606f3c0722b235a09b537264e5b14f748 (diff)
mfd: palmas: Add support for external control configuration
Some of Palmas resources like clock, SMPSs, LDOs etc can be controlled by external pins ENABLE1, ENABLE2 or NSLEEP. Add support to configure these resources to externally controlled. Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com> Acked-by: Lee Jones <lee.jones@linaro.org> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/mfd/palmas.h49
1 files changed, 49 insertions, 0 deletions
diff --git a/include/linux/mfd/palmas.h b/include/linux/mfd/palmas.h
index 1a8dd7afe084..d2fca1c6f7df 100644
--- a/include/linux/mfd/palmas.h
+++ b/include/linux/mfd/palmas.h
@@ -183,6 +183,50 @@ enum palmas_regulators {
183 PALMAS_NUM_REGS, 183 PALMAS_NUM_REGS,
184}; 184};
185 185
186/* External controll signal name */
187enum {
188 PALMAS_EXT_CONTROL_ENABLE1 = 0x1,
189 PALMAS_EXT_CONTROL_ENABLE2 = 0x2,
190 PALMAS_EXT_CONTROL_NSLEEP = 0x4,
191};
192
193/*
194 * Palmas device resources can be controlled externally for
195 * enabling/disabling it rather than register write through i2c.
196 * Add the external controlled requestor ID for different resources.
197 */
198enum palmas_external_requestor_id {
199 PALMAS_EXTERNAL_REQSTR_ID_REGEN1,
200 PALMAS_EXTERNAL_REQSTR_ID_REGEN2,
201 PALMAS_EXTERNAL_REQSTR_ID_SYSEN1,
202 PALMAS_EXTERNAL_REQSTR_ID_SYSEN2,
203 PALMAS_EXTERNAL_REQSTR_ID_CLK32KG,
204 PALMAS_EXTERNAL_REQSTR_ID_CLK32KGAUDIO,
205 PALMAS_EXTERNAL_REQSTR_ID_REGEN3,
206 PALMAS_EXTERNAL_REQSTR_ID_SMPS12,
207 PALMAS_EXTERNAL_REQSTR_ID_SMPS3,
208 PALMAS_EXTERNAL_REQSTR_ID_SMPS45,
209 PALMAS_EXTERNAL_REQSTR_ID_SMPS6,
210 PALMAS_EXTERNAL_REQSTR_ID_SMPS7,
211 PALMAS_EXTERNAL_REQSTR_ID_SMPS8,
212 PALMAS_EXTERNAL_REQSTR_ID_SMPS9,
213 PALMAS_EXTERNAL_REQSTR_ID_SMPS10,
214 PALMAS_EXTERNAL_REQSTR_ID_LDO1,
215 PALMAS_EXTERNAL_REQSTR_ID_LDO2,
216 PALMAS_EXTERNAL_REQSTR_ID_LDO3,
217 PALMAS_EXTERNAL_REQSTR_ID_LDO4,
218 PALMAS_EXTERNAL_REQSTR_ID_LDO5,
219 PALMAS_EXTERNAL_REQSTR_ID_LDO6,
220 PALMAS_EXTERNAL_REQSTR_ID_LDO7,
221 PALMAS_EXTERNAL_REQSTR_ID_LDO8,
222 PALMAS_EXTERNAL_REQSTR_ID_LDO9,
223 PALMAS_EXTERNAL_REQSTR_ID_LDOLN,
224 PALMAS_EXTERNAL_REQSTR_ID_LDOUSB,
225
226 /* Last entry */
227 PALMAS_EXTERNAL_REQSTR_ID_MAX,
228};
229
186struct palmas_pmic_platform_data { 230struct palmas_pmic_platform_data {
187 /* An array of pointers to regulator init data indexed by regulator 231 /* An array of pointers to regulator init data indexed by regulator
188 * ID 232 * ID
@@ -2866,4 +2910,9 @@ static inline int palmas_irq_get_virq(struct palmas *palmas, int irq)
2866 return regmap_irq_get_virq(palmas->irq_data, irq); 2910 return regmap_irq_get_virq(palmas->irq_data, irq);
2867} 2911}
2868 2912
2913
2914int palmas_ext_control_req_config(struct palmas *palmas,
2915 enum palmas_external_requestor_id ext_control_req_id,
2916 int ext_ctrl, bool enable);
2917
2869#endif /* __LINUX_MFD_PALMAS_H */ 2918#endif /* __LINUX_MFD_PALMAS_H */