diff options
Diffstat (limited to 'include/linux/i2c/twl4030.h')
-rw-r--r-- | include/linux/i2c/twl4030.h | 81 |
1 files changed, 48 insertions, 33 deletions
diff --git a/include/linux/i2c/twl4030.h b/include/linux/i2c/twl4030.h index fb604dcd38f1..a8f84c01f82e 100644 --- a/include/linux/i2c/twl4030.h +++ b/include/linux/i2c/twl4030.h | |||
@@ -78,8 +78,8 @@ int twl4030_i2c_read_u8(u8 mod_no, u8 *val, u8 reg); | |||
78 | * IMPORTANT: For twl4030_i2c_write(), allocate num_bytes + 1 | 78 | * IMPORTANT: For twl4030_i2c_write(), allocate num_bytes + 1 |
79 | * for the value, and populate your data starting at offset 1. | 79 | * for the value, and populate your data starting at offset 1. |
80 | */ | 80 | */ |
81 | int twl4030_i2c_write(u8 mod_no, u8 *value, u8 reg, u8 num_bytes); | 81 | int twl4030_i2c_write(u8 mod_no, u8 *value, u8 reg, unsigned num_bytes); |
82 | int twl4030_i2c_read(u8 mod_no, u8 *value, u8 reg, u8 num_bytes); | 82 | int twl4030_i2c_read(u8 mod_no, u8 *value, u8 reg, unsigned num_bytes); |
83 | 83 | ||
84 | /*----------------------------------------------------------------------*/ | 84 | /*----------------------------------------------------------------------*/ |
85 | 85 | ||
@@ -278,6 +278,18 @@ struct twl4030_platform_data { | |||
278 | struct twl4030_keypad_data *keypad; | 278 | struct twl4030_keypad_data *keypad; |
279 | struct twl4030_usb_data *usb; | 279 | struct twl4030_usb_data *usb; |
280 | 280 | ||
281 | /* LDO regulators */ | ||
282 | struct regulator_init_data *vdac; | ||
283 | struct regulator_init_data *vpll1; | ||
284 | struct regulator_init_data *vpll2; | ||
285 | struct regulator_init_data *vmmc1; | ||
286 | struct regulator_init_data *vmmc2; | ||
287 | struct regulator_init_data *vsim; | ||
288 | struct regulator_init_data *vaux1; | ||
289 | struct regulator_init_data *vaux2; | ||
290 | struct regulator_init_data *vaux3; | ||
291 | struct regulator_init_data *vaux4; | ||
292 | |||
281 | /* REVISIT more to come ... _nothing_ should be hard-wired */ | 293 | /* REVISIT more to come ... _nothing_ should be hard-wired */ |
282 | }; | 294 | }; |
283 | 295 | ||
@@ -285,33 +297,6 @@ struct twl4030_platform_data { | |||
285 | 297 | ||
286 | int twl4030_sih_setup(int module); | 298 | int twl4030_sih_setup(int module); |
287 | 299 | ||
288 | /* | ||
289 | * FIXME completely stop using TWL4030_IRQ_BASE ... instead, pass the | ||
290 | * IRQ data to subsidiary devices using platform device resources. | ||
291 | */ | ||
292 | |||
293 | /* IRQ information-need base */ | ||
294 | #include <mach/irqs.h> | ||
295 | /* TWL4030 interrupts */ | ||
296 | |||
297 | /* #define TWL4030_MODIRQ_GPIO (TWL4030_IRQ_BASE + 0) */ | ||
298 | #define TWL4030_MODIRQ_KEYPAD (TWL4030_IRQ_BASE + 1) | ||
299 | #define TWL4030_MODIRQ_BCI (TWL4030_IRQ_BASE + 2) | ||
300 | #define TWL4030_MODIRQ_MADC (TWL4030_IRQ_BASE + 3) | ||
301 | /* #define TWL4030_MODIRQ_USB (TWL4030_IRQ_BASE + 4) */ | ||
302 | /* #define TWL4030_MODIRQ_PWR (TWL4030_IRQ_BASE + 5) */ | ||
303 | |||
304 | #define TWL4030_PWRIRQ_PWRBTN (TWL4030_PWR_IRQ_BASE + 0) | ||
305 | /* #define TWL4030_PWRIRQ_CHG_PRES (TWL4030_PWR_IRQ_BASE + 1) */ | ||
306 | /* #define TWL4030_PWRIRQ_USB_PRES (TWL4030_PWR_IRQ_BASE + 2) */ | ||
307 | /* #define TWL4030_PWRIRQ_RTC (TWL4030_PWR_IRQ_BASE + 3) */ | ||
308 | /* #define TWL4030_PWRIRQ_HOT_DIE (TWL4030_PWR_IRQ_BASE + 4) */ | ||
309 | /* #define TWL4030_PWRIRQ_PWROK_TIMEOUT (TWL4030_PWR_IRQ_BASE + 5) */ | ||
310 | /* #define TWL4030_PWRIRQ_MBCHG (TWL4030_PWR_IRQ_BASE + 6) */ | ||
311 | /* #define TWL4030_PWRIRQ_SC_DETECT (TWL4030_PWR_IRQ_BASE + 7) */ | ||
312 | |||
313 | /* Rest are unsued currently*/ | ||
314 | |||
315 | /* Offsets to Power Registers */ | 300 | /* Offsets to Power Registers */ |
316 | #define TWL4030_VDAC_DEV_GRP 0x3B | 301 | #define TWL4030_VDAC_DEV_GRP 0x3B |
317 | #define TWL4030_VDAC_DEDICATED 0x3E | 302 | #define TWL4030_VDAC_DEDICATED 0x3E |
@@ -322,10 +307,6 @@ int twl4030_sih_setup(int module); | |||
322 | #define TWL4030_VAUX3_DEV_GRP 0x1F | 307 | #define TWL4030_VAUX3_DEV_GRP 0x1F |
323 | #define TWL4030_VAUX3_DEDICATED 0x22 | 308 | #define TWL4030_VAUX3_DEDICATED 0x22 |
324 | 309 | ||
325 | /* TWL4030 GPIO interrupt definitions */ | ||
326 | |||
327 | #define TWL4030_GPIO_IRQ_NO(n) (TWL4030_GPIO_IRQ_BASE + (n)) | ||
328 | |||
329 | /* | 310 | /* |
330 | * Exported TWL4030 GPIO APIs | 311 | * Exported TWL4030 GPIO APIs |
331 | * | 312 | * |
@@ -340,4 +321,38 @@ int twl4030_set_gpio_debounce(int gpio, int enable); | |||
340 | static inline int twl4030charger_usb_en(int enable) { return 0; } | 321 | static inline int twl4030charger_usb_en(int enable) { return 0; } |
341 | #endif | 322 | #endif |
342 | 323 | ||
324 | /*----------------------------------------------------------------------*/ | ||
325 | |||
326 | /* Linux-specific regulator identifiers ... for now, we only support | ||
327 | * the LDOs, and leave the three buck converters alone. VDD1 and VDD2 | ||
328 | * need to tie into hardware based voltage scaling (cpufreq etc), while | ||
329 | * VIO is generally fixed. | ||
330 | */ | ||
331 | |||
332 | /* EXTERNAL dc-to-dc buck converters */ | ||
333 | #define TWL4030_REG_VDD1 0 | ||
334 | #define TWL4030_REG_VDD2 1 | ||
335 | #define TWL4030_REG_VIO 2 | ||
336 | |||
337 | /* EXTERNAL LDOs */ | ||
338 | #define TWL4030_REG_VDAC 3 | ||
339 | #define TWL4030_REG_VPLL1 4 | ||
340 | #define TWL4030_REG_VPLL2 5 /* not on all chips */ | ||
341 | #define TWL4030_REG_VMMC1 6 | ||
342 | #define TWL4030_REG_VMMC2 7 /* not on all chips */ | ||
343 | #define TWL4030_REG_VSIM 8 /* not on all chips */ | ||
344 | #define TWL4030_REG_VAUX1 9 /* not on all chips */ | ||
345 | #define TWL4030_REG_VAUX2_4030 10 /* (twl4030-specific) */ | ||
346 | #define TWL4030_REG_VAUX2 11 /* (twl5030 and newer) */ | ||
347 | #define TWL4030_REG_VAUX3 12 /* not on all chips */ | ||
348 | #define TWL4030_REG_VAUX4 13 /* not on all chips */ | ||
349 | |||
350 | /* INTERNAL LDOs */ | ||
351 | #define TWL4030_REG_VINTANA1 14 | ||
352 | #define TWL4030_REG_VINTANA2 15 | ||
353 | #define TWL4030_REG_VINTDIG 16 | ||
354 | #define TWL4030_REG_VUSB1V5 17 | ||
355 | #define TWL4030_REG_VUSB1V8 18 | ||
356 | #define TWL4030_REG_VUSB3V1 19 | ||
357 | |||
343 | #endif /* End of __TWL4030_H */ | 358 | #endif /* End of __TWL4030_H */ |