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/linux | |
| 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/linux')
| -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 | }; |
