diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/i2c/twl.h | 84 | ||||
| -rw-r--r-- | include/linux/mfd/88pm80x.h | 2 | ||||
| -rw-r--r-- | include/linux/mfd/abx500.h | 2 | ||||
| -rw-r--r-- | include/linux/mfd/abx500/ab8500-sysctrl.h | 5 | ||||
| -rw-r--r-- | include/linux/mfd/abx500/ab8500.h | 12 | ||||
| -rw-r--r-- | include/linux/mfd/arizona/pdata.h | 12 | ||||
| -rw-r--r-- | include/linux/mfd/arizona/registers.h | 16 | ||||
| -rw-r--r-- | include/linux/mfd/dbx500-prcmu.h | 12 | ||||
| -rw-r--r-- | include/linux/mfd/max8925.h | 3 | ||||
| -rw-r--r-- | include/linux/mfd/palmas.h | 52 | ||||
| -rw-r--r-- | include/linux/mfd/rtsx_pci.h | 9 | ||||
| -rw-r--r-- | include/linux/platform_data/usb-omap.h | 1 | ||||
| -rw-r--r-- | include/linux/platform_data/ux500_wdt.h | 19 | ||||
| -rw-r--r-- | include/linux/vexpress.h | 8 |
14 files changed, 195 insertions, 42 deletions
diff --git a/include/linux/i2c/twl.h b/include/linux/i2c/twl.h index 1ff54b114efc..488debbef895 100644 --- a/include/linux/i2c/twl.h +++ b/include/linux/i2c/twl.h | |||
| @@ -39,51 +39,55 @@ | |||
| 39 | * address each module uses within a given i2c slave. | 39 | * address each module uses within a given i2c slave. |
| 40 | */ | 40 | */ |
| 41 | 41 | ||
| 42 | /* Module IDs for similar functionalities found in twl4030/twl6030 */ | ||
| 43 | enum twl_module_ids { | ||
| 44 | TWL_MODULE_USB, | ||
| 45 | TWL_MODULE_PIH, | ||
| 46 | TWL_MODULE_MAIN_CHARGE, | ||
| 47 | TWL_MODULE_PM_MASTER, | ||
| 48 | TWL_MODULE_PM_RECEIVER, | ||
| 49 | |||
| 50 | TWL_MODULE_RTC, | ||
| 51 | TWL_MODULE_PWM, | ||
| 52 | TWL_MODULE_LED, | ||
| 53 | TWL_MODULE_SECURED_REG, | ||
| 54 | |||
| 55 | TWL_MODULE_LAST, | ||
| 56 | }; | ||
| 57 | |||
| 58 | /* Modules only available in twl4030 series */ | ||
| 42 | enum twl4030_module_ids { | 59 | enum twl4030_module_ids { |
| 43 | TWL4030_MODULE_USB = 0, /* Slave 0 (i2c address 0x48) */ | 60 | TWL4030_MODULE_AUDIO_VOICE = TWL_MODULE_LAST, |
| 44 | TWL4030_MODULE_AUDIO_VOICE, /* Slave 1 (i2c address 0x49) */ | ||
| 45 | TWL4030_MODULE_GPIO, | 61 | TWL4030_MODULE_GPIO, |
| 46 | TWL4030_MODULE_INTBR, | 62 | TWL4030_MODULE_INTBR, |
| 47 | TWL4030_MODULE_PIH, | ||
| 48 | |||
| 49 | TWL4030_MODULE_TEST, | 63 | TWL4030_MODULE_TEST, |
| 50 | TWL4030_MODULE_KEYPAD, /* Slave 2 (i2c address 0x4a) */ | 64 | TWL4030_MODULE_KEYPAD, |
| 65 | |||
| 51 | TWL4030_MODULE_MADC, | 66 | TWL4030_MODULE_MADC, |
| 52 | TWL4030_MODULE_INTERRUPTS, | 67 | TWL4030_MODULE_INTERRUPTS, |
| 53 | TWL4030_MODULE_LED, | ||
| 54 | |||
| 55 | TWL4030_MODULE_MAIN_CHARGE, | ||
| 56 | TWL4030_MODULE_PRECHARGE, | 68 | TWL4030_MODULE_PRECHARGE, |
| 57 | TWL4030_MODULE_PWM0, | 69 | TWL4030_MODULE_BACKUP, |
| 58 | TWL4030_MODULE_PWM1, | 70 | TWL4030_MODULE_INT, |
| 59 | TWL4030_MODULE_PWMA, | ||
| 60 | 71 | ||
| 61 | TWL4030_MODULE_PWMB, | ||
| 62 | TWL5031_MODULE_ACCESSORY, | 72 | TWL5031_MODULE_ACCESSORY, |
| 63 | TWL5031_MODULE_INTERRUPTS, | 73 | TWL5031_MODULE_INTERRUPTS, |
| 64 | TWL4030_MODULE_BACKUP, /* Slave 3 (i2c address 0x4b) */ | ||
| 65 | TWL4030_MODULE_INT, | ||
| 66 | 74 | ||
| 67 | TWL4030_MODULE_PM_MASTER, | ||
| 68 | TWL4030_MODULE_PM_RECEIVER, | ||
| 69 | TWL4030_MODULE_RTC, | ||
| 70 | TWL4030_MODULE_SECURED_REG, | ||
| 71 | TWL4030_MODULE_LAST, | 75 | TWL4030_MODULE_LAST, |
| 72 | }; | 76 | }; |
| 73 | 77 | ||
| 74 | /* Similar functionalities implemented in TWL4030/6030 */ | 78 | /* Modules only available in twl6030 series */ |
| 75 | #define TWL_MODULE_USB TWL4030_MODULE_USB | 79 | enum twl6030_module_ids { |
| 76 | #define TWL_MODULE_PIH TWL4030_MODULE_PIH | 80 | TWL6030_MODULE_ID0 = TWL_MODULE_LAST, |
| 77 | #define TWL_MODULE_MAIN_CHARGE TWL4030_MODULE_MAIN_CHARGE | 81 | TWL6030_MODULE_ID1, |
| 78 | #define TWL_MODULE_PM_MASTER TWL4030_MODULE_PM_MASTER | 82 | TWL6030_MODULE_ID2, |
| 79 | #define TWL_MODULE_PM_RECEIVER TWL4030_MODULE_PM_RECEIVER | 83 | TWL6030_MODULE_GPADC, |
| 80 | #define TWL_MODULE_RTC TWL4030_MODULE_RTC | 84 | TWL6030_MODULE_GASGAUGE, |
| 81 | #define TWL_MODULE_PWM TWL4030_MODULE_PWM0 | 85 | |
| 82 | #define TWL_MODULE_LED TWL4030_MODULE_LED | 86 | TWL6030_MODULE_LAST, |
| 87 | }; | ||
| 83 | 88 | ||
| 84 | #define TWL6030_MODULE_ID0 13 | 89 | /* Until the clients has been converted to use TWL_MODULE_LED */ |
| 85 | #define TWL6030_MODULE_ID1 14 | 90 | #define TWL4030_MODULE_LED TWL_MODULE_LED |
| 86 | #define TWL6030_MODULE_ID2 15 | ||
| 87 | 91 | ||
| 88 | #define GPIO_INTR_OFFSET 0 | 92 | #define GPIO_INTR_OFFSET 0 |
| 89 | #define KEYPAD_INTR_OFFSET 1 | 93 | #define KEYPAD_INTR_OFFSET 1 |
| @@ -171,20 +175,22 @@ TWL_CLASS_IS(4030, TWL4030_CLASS_ID) | |||
| 171 | TWL_CLASS_IS(6030, TWL6030_CLASS_ID) | 175 | TWL_CLASS_IS(6030, TWL6030_CLASS_ID) |
| 172 | 176 | ||
| 173 | /* | 177 | /* |
| 174 | * Read and write single 8-bit registers | ||
| 175 | */ | ||
| 176 | int twl_i2c_write_u8(u8 mod_no, u8 val, u8 reg); | ||
| 177 | int twl_i2c_read_u8(u8 mod_no, u8 *val, u8 reg); | ||
| 178 | |||
| 179 | /* | ||
| 180 | * Read and write several 8-bit registers at once. | 178 | * Read and write several 8-bit registers at once. |
| 181 | * | ||
| 182 | * IMPORTANT: For twl_i2c_write(), allocate num_bytes + 1 | ||
| 183 | * for the value, and populate your data starting at offset 1. | ||
| 184 | */ | 179 | */ |
| 185 | int twl_i2c_write(u8 mod_no, u8 *value, u8 reg, unsigned num_bytes); | 180 | int twl_i2c_write(u8 mod_no, u8 *value, u8 reg, unsigned num_bytes); |
| 186 | int twl_i2c_read(u8 mod_no, u8 *value, u8 reg, unsigned num_bytes); | 181 | int twl_i2c_read(u8 mod_no, u8 *value, u8 reg, unsigned num_bytes); |
| 187 | 182 | ||
| 183 | /* | ||
| 184 | * Read and write single 8-bit registers | ||
| 185 | */ | ||
| 186 | static inline int twl_i2c_write_u8(u8 mod_no, u8 val, u8 reg) { | ||
| 187 | return twl_i2c_write(mod_no, &val, reg, 1); | ||
| 188 | } | ||
| 189 | |||
| 190 | static inline int twl_i2c_read_u8(u8 mod_no, u8 *val, u8 reg) { | ||
| 191 | return twl_i2c_read(mod_no, val, reg, 1); | ||
| 192 | } | ||
| 193 | |||
| 188 | int twl_get_type(void); | 194 | int twl_get_type(void); |
| 189 | int twl_get_version(void); | 195 | int twl_get_version(void); |
| 190 | int twl_get_hfclk_rate(void); | 196 | int twl_get_hfclk_rate(void); |
diff --git a/include/linux/mfd/88pm80x.h b/include/linux/mfd/88pm80x.h index 478672ed0c3d..e94537befabd 100644 --- a/include/linux/mfd/88pm80x.h +++ b/include/linux/mfd/88pm80x.h | |||
| @@ -365,5 +365,5 @@ static inline int pm80x_dev_resume(struct device *dev) | |||
| 365 | 365 | ||
| 366 | extern int pm80x_init(struct i2c_client *client, | 366 | extern int pm80x_init(struct i2c_client *client, |
| 367 | const struct i2c_device_id *id); | 367 | const struct i2c_device_id *id); |
| 368 | extern int pm80x_deinit(struct i2c_client *client); | 368 | extern int pm80x_deinit(void); |
| 369 | #endif /* __LINUX_MFD_88PM80X_H */ | 369 | #endif /* __LINUX_MFD_88PM80X_H */ |
diff --git a/include/linux/mfd/abx500.h b/include/linux/mfd/abx500.h index 80e3b8683a84..9ead60bc66b7 100644 --- a/include/linux/mfd/abx500.h +++ b/include/linux/mfd/abx500.h | |||
| @@ -311,6 +311,7 @@ int abx500_mask_and_set_register_interruptible(struct device *dev, u8 bank, | |||
| 311 | int abx500_get_chip_id(struct device *dev); | 311 | int abx500_get_chip_id(struct device *dev); |
| 312 | int abx500_event_registers_startup_state_get(struct device *dev, u8 *event); | 312 | int abx500_event_registers_startup_state_get(struct device *dev, u8 *event); |
| 313 | int abx500_startup_irq_enabled(struct device *dev, unsigned int irq); | 313 | int abx500_startup_irq_enabled(struct device *dev, unsigned int irq); |
| 314 | void abx500_dump_all_banks(void); | ||
| 314 | 315 | ||
| 315 | struct abx500_ops { | 316 | struct abx500_ops { |
| 316 | int (*get_chip_id) (struct device *); | 317 | int (*get_chip_id) (struct device *); |
| @@ -321,6 +322,7 @@ struct abx500_ops { | |||
| 321 | int (*mask_and_set_register) (struct device *, u8, u8, u8, u8); | 322 | int (*mask_and_set_register) (struct device *, u8, u8, u8, u8); |
| 322 | int (*event_registers_startup_state_get) (struct device *, u8 *); | 323 | int (*event_registers_startup_state_get) (struct device *, u8 *); |
| 323 | int (*startup_irq_enabled) (struct device *, unsigned int); | 324 | int (*startup_irq_enabled) (struct device *, unsigned int); |
| 325 | void (*dump_all_banks) (struct device *); | ||
| 324 | }; | 326 | }; |
| 325 | 327 | ||
| 326 | int abx500_register_ops(struct device *core_dev, struct abx500_ops *ops); | 328 | int abx500_register_ops(struct device *core_dev, struct abx500_ops *ops); |
diff --git a/include/linux/mfd/abx500/ab8500-sysctrl.h b/include/linux/mfd/abx500/ab8500-sysctrl.h index 10eb50973c39..ebf12e793db9 100644 --- a/include/linux/mfd/abx500/ab8500-sysctrl.h +++ b/include/linux/mfd/abx500/ab8500-sysctrl.h | |||
| @@ -37,6 +37,11 @@ static inline int ab8500_sysctrl_clear(u16 reg, u8 bits) | |||
| 37 | return ab8500_sysctrl_write(reg, bits, 0); | 37 | return ab8500_sysctrl_write(reg, bits, 0); |
| 38 | } | 38 | } |
| 39 | 39 | ||
| 40 | /* Configuration data for SysClkReq1RfClkBuf - SysClkReq8RfClkBuf */ | ||
| 41 | struct ab8500_sysctrl_platform_data { | ||
| 42 | u8 initial_req_buf_config[8]; | ||
| 43 | }; | ||
| 44 | |||
| 40 | /* Registers */ | 45 | /* Registers */ |
| 41 | #define AB8500_TURNONSTATUS 0x100 | 46 | #define AB8500_TURNONSTATUS 0x100 |
| 42 | #define AB8500_RESETSTATUS 0x101 | 47 | #define AB8500_RESETSTATUS 0x101 |
diff --git a/include/linux/mfd/abx500/ab8500.h b/include/linux/mfd/abx500/ab8500.h index fc0534483c72..9db0bda446a0 100644 --- a/include/linux/mfd/abx500/ab8500.h +++ b/include/linux/mfd/abx500/ab8500.h | |||
| @@ -368,10 +368,12 @@ struct regulator_reg_init; | |||
| 368 | struct regulator_init_data; | 368 | struct regulator_init_data; |
| 369 | struct ab8500_gpio_platform_data; | 369 | struct ab8500_gpio_platform_data; |
| 370 | struct ab8500_codec_platform_data; | 370 | struct ab8500_codec_platform_data; |
| 371 | struct ab8500_sysctrl_platform_data; | ||
| 371 | 372 | ||
| 372 | /** | 373 | /** |
| 373 | * struct ab8500_platform_data - AB8500 platform data | 374 | * struct ab8500_platform_data - AB8500 platform data |
| 374 | * @irq_base: start of AB8500 IRQs, AB8500_NR_IRQS will be used | 375 | * @irq_base: start of AB8500 IRQs, AB8500_NR_IRQS will be used |
| 376 | * @pm_power_off: Should machine pm power off hook be registered or not | ||
| 375 | * @init: board-specific initialization after detection of ab8500 | 377 | * @init: board-specific initialization after detection of ab8500 |
| 376 | * @num_regulator_reg_init: number of regulator init registers | 378 | * @num_regulator_reg_init: number of regulator init registers |
| 377 | * @regulator_reg_init: regulator init registers | 379 | * @regulator_reg_init: regulator init registers |
| @@ -380,6 +382,7 @@ struct ab8500_codec_platform_data; | |||
| 380 | */ | 382 | */ |
| 381 | struct ab8500_platform_data { | 383 | struct ab8500_platform_data { |
| 382 | int irq_base; | 384 | int irq_base; |
| 385 | bool pm_power_off; | ||
| 383 | void (*init) (struct ab8500 *); | 386 | void (*init) (struct ab8500 *); |
| 384 | int num_regulator_reg_init; | 387 | int num_regulator_reg_init; |
| 385 | struct ab8500_regulator_reg_init *regulator_reg_init; | 388 | struct ab8500_regulator_reg_init *regulator_reg_init; |
| @@ -387,6 +390,7 @@ struct ab8500_platform_data { | |||
| 387 | struct regulator_init_data *regulator; | 390 | struct regulator_init_data *regulator; |
| 388 | struct abx500_gpio_platform_data *gpio; | 391 | struct abx500_gpio_platform_data *gpio; |
| 389 | struct ab8500_codec_platform_data *codec; | 392 | struct ab8500_codec_platform_data *codec; |
| 393 | struct ab8500_sysctrl_platform_data *sysctrl; | ||
| 390 | }; | 394 | }; |
| 391 | 395 | ||
| 392 | extern int ab8500_init(struct ab8500 *ab8500, | 396 | extern int ab8500_init(struct ab8500 *ab8500, |
| @@ -508,4 +512,12 @@ static inline int is_ab9540_2p0_or_earlier(struct ab8500 *ab) | |||
| 508 | return (is_ab9540(ab) && (ab->chip_id < AB8500_CUT2P0)); | 512 | return (is_ab9540(ab) && (ab->chip_id < AB8500_CUT2P0)); |
| 509 | } | 513 | } |
| 510 | 514 | ||
| 515 | #ifdef CONFIG_AB8500_DEBUG | ||
| 516 | void ab8500_dump_all_banks(struct device *dev); | ||
| 517 | void ab8500_debug_register_interrupt(int line); | ||
| 518 | #else | ||
| 519 | static inline void ab8500_dump_all_banks(struct device *dev) {} | ||
| 520 | static inline void ab8500_debug_register_interrupt(int line) {} | ||
| 521 | #endif | ||
| 522 | |||
| 511 | #endif /* MFD_AB8500_H */ | 523 | #endif /* MFD_AB8500_H */ |
diff --git a/include/linux/mfd/arizona/pdata.h b/include/linux/mfd/arizona/pdata.h index 96d64f2b8d78..455c51d22d6b 100644 --- a/include/linux/mfd/arizona/pdata.h +++ b/include/linux/mfd/arizona/pdata.h | |||
| @@ -56,6 +56,8 @@ | |||
| 56 | #define ARIZONA_DMIC_MICBIAS2 2 | 56 | #define ARIZONA_DMIC_MICBIAS2 2 |
| 57 | #define ARIZONA_DMIC_MICBIAS3 3 | 57 | #define ARIZONA_DMIC_MICBIAS3 3 |
| 58 | 58 | ||
| 59 | #define ARIZONA_MAX_MICBIAS 3 | ||
| 60 | |||
| 59 | #define ARIZONA_INMODE_DIFF 0 | 61 | #define ARIZONA_INMODE_DIFF 0 |
| 60 | #define ARIZONA_INMODE_SE 1 | 62 | #define ARIZONA_INMODE_SE 1 |
| 61 | #define ARIZONA_INMODE_DMIC 2 | 63 | #define ARIZONA_INMODE_DMIC 2 |
| @@ -71,6 +73,13 @@ | |||
| 71 | 73 | ||
| 72 | struct regulator_init_data; | 74 | struct regulator_init_data; |
| 73 | 75 | ||
| 76 | struct arizona_micbias { | ||
| 77 | int mV; /** Regulated voltage */ | ||
| 78 | unsigned int ext_cap:1; /** External capacitor fitted */ | ||
| 79 | unsigned int discharge:1; /** Actively discharge */ | ||
| 80 | unsigned int fast_start:1; /** Enable aggressive startup ramp rate */ | ||
| 81 | }; | ||
| 82 | |||
| 74 | struct arizona_micd_config { | 83 | struct arizona_micd_config { |
| 75 | unsigned int src; | 84 | unsigned int src; |
| 76 | unsigned int bias; | 85 | unsigned int bias; |
| @@ -136,6 +145,9 @@ struct arizona_pdata { | |||
| 136 | /** Reference voltage for DMIC inputs */ | 145 | /** Reference voltage for DMIC inputs */ |
| 137 | int dmic_ref[ARIZONA_MAX_INPUT]; | 146 | int dmic_ref[ARIZONA_MAX_INPUT]; |
| 138 | 147 | ||
| 148 | /** MICBIAS configurations */ | ||
| 149 | struct arizona_micbias micbias[ARIZONA_MAX_MICBIAS]; | ||
| 150 | |||
| 139 | /** Mode of input structures */ | 151 | /** Mode of input structures */ |
| 140 | int inmode[ARIZONA_MAX_INPUT]; | 152 | int inmode[ARIZONA_MAX_INPUT]; |
| 141 | 153 | ||
diff --git a/include/linux/mfd/arizona/registers.h b/include/linux/mfd/arizona/registers.h index 188d89abd963..340355136069 100644 --- a/include/linux/mfd/arizona/registers.h +++ b/include/linux/mfd/arizona/registers.h | |||
| @@ -984,18 +984,34 @@ | |||
| 984 | #define ARIZONA_DSP1_STATUS_1 0x1104 | 984 | #define ARIZONA_DSP1_STATUS_1 0x1104 |
| 985 | #define ARIZONA_DSP1_STATUS_2 0x1105 | 985 | #define ARIZONA_DSP1_STATUS_2 0x1105 |
| 986 | #define ARIZONA_DSP1_STATUS_3 0x1106 | 986 | #define ARIZONA_DSP1_STATUS_3 0x1106 |
| 987 | #define ARIZONA_DSP1_SCRATCH_0 0x1140 | ||
| 988 | #define ARIZONA_DSP1_SCRATCH_1 0x1141 | ||
| 989 | #define ARIZONA_DSP1_SCRATCH_2 0x1142 | ||
| 990 | #define ARIZONA_DSP1_SCRATCH_3 0x1143 | ||
| 987 | #define ARIZONA_DSP2_CONTROL_1 0x1200 | 991 | #define ARIZONA_DSP2_CONTROL_1 0x1200 |
| 988 | #define ARIZONA_DSP2_CLOCKING_1 0x1201 | 992 | #define ARIZONA_DSP2_CLOCKING_1 0x1201 |
| 989 | #define ARIZONA_DSP2_STATUS_1 0x1204 | 993 | #define ARIZONA_DSP2_STATUS_1 0x1204 |
| 990 | #define ARIZONA_DSP2_STATUS_2 0x1205 | 994 | #define ARIZONA_DSP2_STATUS_2 0x1205 |
| 995 | #define ARIZONA_DSP2_SCRATCH_0 0x1240 | ||
| 996 | #define ARIZONA_DSP2_SCRATCH_1 0x1241 | ||
| 997 | #define ARIZONA_DSP2_SCRATCH_2 0x1242 | ||
| 998 | #define ARIZONA_DSP2_SCRATCH_3 0x1243 | ||
| 991 | #define ARIZONA_DSP3_CONTROL_1 0x1300 | 999 | #define ARIZONA_DSP3_CONTROL_1 0x1300 |
| 992 | #define ARIZONA_DSP3_CLOCKING_1 0x1301 | 1000 | #define ARIZONA_DSP3_CLOCKING_1 0x1301 |
| 993 | #define ARIZONA_DSP3_STATUS_1 0x1304 | 1001 | #define ARIZONA_DSP3_STATUS_1 0x1304 |
| 994 | #define ARIZONA_DSP3_STATUS_2 0x1305 | 1002 | #define ARIZONA_DSP3_STATUS_2 0x1305 |
| 1003 | #define ARIZONA_DSP3_SCRATCH_0 0x1340 | ||
| 1004 | #define ARIZONA_DSP3_SCRATCH_1 0x1341 | ||
| 1005 | #define ARIZONA_DSP3_SCRATCH_2 0x1342 | ||
| 1006 | #define ARIZONA_DSP3_SCRATCH_3 0x1343 | ||
| 995 | #define ARIZONA_DSP4_CONTROL_1 0x1400 | 1007 | #define ARIZONA_DSP4_CONTROL_1 0x1400 |
| 996 | #define ARIZONA_DSP4_CLOCKING_1 0x1401 | 1008 | #define ARIZONA_DSP4_CLOCKING_1 0x1401 |
| 997 | #define ARIZONA_DSP4_STATUS_1 0x1404 | 1009 | #define ARIZONA_DSP4_STATUS_1 0x1404 |
| 998 | #define ARIZONA_DSP4_STATUS_2 0x1405 | 1010 | #define ARIZONA_DSP4_STATUS_2 0x1405 |
| 1011 | #define ARIZONA_DSP4_SCRATCH_0 0x1440 | ||
| 1012 | #define ARIZONA_DSP4_SCRATCH_1 0x1441 | ||
| 1013 | #define ARIZONA_DSP4_SCRATCH_2 0x1442 | ||
| 1014 | #define ARIZONA_DSP4_SCRATCH_3 0x1443 | ||
| 999 | 1015 | ||
| 1000 | /* | 1016 | /* |
| 1001 | * Field Definitions. | 1017 | * Field Definitions. |
diff --git a/include/linux/mfd/dbx500-prcmu.h b/include/linux/mfd/dbx500-prcmu.h index f8bac7cfc25f..3abcca91eecd 100644 --- a/include/linux/mfd/dbx500-prcmu.h +++ b/include/linux/mfd/dbx500-prcmu.h | |||
| @@ -151,6 +151,18 @@ enum prcmu_clock { | |||
| 151 | }; | 151 | }; |
| 152 | 152 | ||
| 153 | /** | 153 | /** |
| 154 | * enum prcmu_wdog_id - PRCMU watchdog IDs | ||
| 155 | * @PRCMU_WDOG_ALL: use all timers | ||
| 156 | * @PRCMU_WDOG_CPU1: use first CPU timer only | ||
| 157 | * @PRCMU_WDOG_CPU2: use second CPU timer conly | ||
| 158 | */ | ||
| 159 | enum prcmu_wdog_id { | ||
| 160 | PRCMU_WDOG_ALL = 0x00, | ||
| 161 | PRCMU_WDOG_CPU1 = 0x01, | ||
| 162 | PRCMU_WDOG_CPU2 = 0x02, | ||
| 163 | }; | ||
| 164 | |||
| 165 | /** | ||
| 154 | * enum ape_opp - APE OPP states definition | 166 | * enum ape_opp - APE OPP states definition |
| 155 | * @APE_OPP_INIT: | 167 | * @APE_OPP_INIT: |
| 156 | * @APE_NO_CHANGE: The APE operating point is unchanged | 168 | * @APE_NO_CHANGE: The APE operating point is unchanged |
diff --git a/include/linux/mfd/max8925.h b/include/linux/mfd/max8925.h index 74d8e2969630..ce8502e9e7dc 100644 --- a/include/linux/mfd/max8925.h +++ b/include/linux/mfd/max8925.h | |||
| @@ -190,6 +190,8 @@ enum { | |||
| 190 | MAX8925_NR_IRQS, | 190 | MAX8925_NR_IRQS, |
| 191 | }; | 191 | }; |
| 192 | 192 | ||
| 193 | |||
| 194 | |||
| 193 | struct max8925_chip { | 195 | struct max8925_chip { |
| 194 | struct device *dev; | 196 | struct device *dev; |
| 195 | struct i2c_client *i2c; | 197 | struct i2c_client *i2c; |
| @@ -201,7 +203,6 @@ struct max8925_chip { | |||
| 201 | int irq_base; | 203 | int irq_base; |
| 202 | int core_irq; | 204 | int core_irq; |
| 203 | int tsc_irq; | 205 | int tsc_irq; |
| 204 | |||
| 205 | unsigned int wakeup_flag; | 206 | unsigned int wakeup_flag; |
| 206 | }; | 207 | }; |
| 207 | 208 | ||
diff --git a/include/linux/mfd/palmas.h b/include/linux/mfd/palmas.h index 29f6616e12f0..a4d13d7cd001 100644 --- a/include/linux/mfd/palmas.h +++ b/include/linux/mfd/palmas.h | |||
| @@ -2789,4 +2789,56 @@ enum usb_irq_events { | |||
| 2789 | #define PALMAS_GPADC_TRIM15 0xE | 2789 | #define PALMAS_GPADC_TRIM15 0xE |
| 2790 | #define PALMAS_GPADC_TRIM16 0xF | 2790 | #define PALMAS_GPADC_TRIM16 0xF |
| 2791 | 2791 | ||
| 2792 | static inline int palmas_read(struct palmas *palmas, unsigned int base, | ||
| 2793 | unsigned int reg, unsigned int *val) | ||
| 2794 | { | ||
| 2795 | unsigned int addr = PALMAS_BASE_TO_REG(base, reg); | ||
| 2796 | int slave_id = PALMAS_BASE_TO_SLAVE(base); | ||
| 2797 | |||
| 2798 | return regmap_read(palmas->regmap[slave_id], addr, val); | ||
| 2799 | } | ||
| 2800 | |||
| 2801 | static inline int palmas_write(struct palmas *palmas, unsigned int base, | ||
| 2802 | unsigned int reg, unsigned int value) | ||
| 2803 | { | ||
| 2804 | unsigned int addr = PALMAS_BASE_TO_REG(base, reg); | ||
| 2805 | int slave_id = PALMAS_BASE_TO_SLAVE(base); | ||
| 2806 | |||
| 2807 | return regmap_write(palmas->regmap[slave_id], addr, value); | ||
| 2808 | } | ||
| 2809 | |||
| 2810 | static inline int palmas_bulk_write(struct palmas *palmas, unsigned int base, | ||
| 2811 | unsigned int reg, const void *val, size_t val_count) | ||
| 2812 | { | ||
| 2813 | unsigned int addr = PALMAS_BASE_TO_REG(base, reg); | ||
| 2814 | int slave_id = PALMAS_BASE_TO_SLAVE(base); | ||
| 2815 | |||
| 2816 | return regmap_bulk_write(palmas->regmap[slave_id], addr, | ||
| 2817 | val, val_count); | ||
| 2818 | } | ||
| 2819 | |||
| 2820 | static inline int palmas_bulk_read(struct palmas *palmas, unsigned int base, | ||
| 2821 | unsigned int reg, void *val, size_t val_count) | ||
| 2822 | { | ||
| 2823 | unsigned int addr = PALMAS_BASE_TO_REG(base, reg); | ||
| 2824 | int slave_id = PALMAS_BASE_TO_SLAVE(base); | ||
| 2825 | |||
| 2826 | return regmap_bulk_read(palmas->regmap[slave_id], addr, | ||
| 2827 | val, val_count); | ||
| 2828 | } | ||
| 2829 | |||
| 2830 | static inline int palmas_update_bits(struct palmas *palmas, unsigned int base, | ||
| 2831 | unsigned int reg, unsigned int mask, unsigned int val) | ||
| 2832 | { | ||
| 2833 | unsigned int addr = PALMAS_BASE_TO_REG(base, reg); | ||
| 2834 | int slave_id = PALMAS_BASE_TO_SLAVE(base); | ||
| 2835 | |||
| 2836 | return regmap_update_bits(palmas->regmap[slave_id], addr, mask, val); | ||
| 2837 | } | ||
| 2838 | |||
| 2839 | static inline int palmas_irq_get_virq(struct palmas *palmas, int irq) | ||
| 2840 | { | ||
| 2841 | return regmap_irq_get_virq(palmas->irq_data, irq); | ||
| 2842 | } | ||
| 2843 | |||
| 2792 | #endif /* __LINUX_MFD_PALMAS_H */ | 2844 | #endif /* __LINUX_MFD_PALMAS_H */ |
diff --git a/include/linux/mfd/rtsx_pci.h b/include/linux/mfd/rtsx_pci.h index 4b117a3f54d4..26ea7f1b7caf 100644 --- a/include/linux/mfd/rtsx_pci.h +++ b/include/linux/mfd/rtsx_pci.h | |||
| @@ -465,7 +465,7 @@ | |||
| 465 | #define SD_RSP_TYPE_R6 0x01 | 465 | #define SD_RSP_TYPE_R6 0x01 |
| 466 | #define SD_RSP_TYPE_R7 0x01 | 466 | #define SD_RSP_TYPE_R7 0x01 |
| 467 | 467 | ||
| 468 | /* SD_CONFIURE3 */ | 468 | /* SD_CONFIGURE3 */ |
| 469 | #define SD_RSP_80CLK_TIMEOUT_EN 0x01 | 469 | #define SD_RSP_80CLK_TIMEOUT_EN 0x01 |
| 470 | 470 | ||
| 471 | /* Card Transfer Reset Register */ | 471 | /* Card Transfer Reset Register */ |
| @@ -581,8 +581,11 @@ | |||
| 581 | #define CARD_GPIO_DIR 0xFD57 | 581 | #define CARD_GPIO_DIR 0xFD57 |
| 582 | #define CARD_GPIO 0xFD58 | 582 | #define CARD_GPIO 0xFD58 |
| 583 | #define CARD_DATA_SOURCE 0xFD5B | 583 | #define CARD_DATA_SOURCE 0xFD5B |
| 584 | #define SD30_CLK_DRIVE_SEL 0xFD5A | ||
| 584 | #define CARD_SELECT 0xFD5C | 585 | #define CARD_SELECT 0xFD5C |
| 585 | #define SD30_DRIVE_SEL 0xFD5E | 586 | #define SD30_DRIVE_SEL 0xFD5E |
| 587 | #define SD30_CMD_DRIVE_SEL 0xFD5E | ||
| 588 | #define SD30_DAT_DRIVE_SEL 0xFD5F | ||
| 586 | #define CARD_CLK_EN 0xFD69 | 589 | #define CARD_CLK_EN 0xFD69 |
| 587 | #define SDIO_CTRL 0xFD6B | 590 | #define SDIO_CTRL 0xFD6B |
| 588 | #define CD_PAD_CTL 0xFD73 | 591 | #define CD_PAD_CTL 0xFD73 |
| @@ -655,6 +658,8 @@ | |||
| 655 | #define MSGTXDATA3 0xFE47 | 658 | #define MSGTXDATA3 0xFE47 |
| 656 | #define MSGTXCTL 0xFE48 | 659 | #define MSGTXCTL 0xFE48 |
| 657 | #define PETXCFG 0xFE49 | 660 | #define PETXCFG 0xFE49 |
| 661 | #define LTR_CTL 0xFE4A | ||
| 662 | #define OBFF_CFG 0xFE4C | ||
| 658 | 663 | ||
| 659 | #define CDRESUMECTL 0xFE52 | 664 | #define CDRESUMECTL 0xFE52 |
| 660 | #define WAKE_SEL_CTL 0xFE54 | 665 | #define WAKE_SEL_CTL 0xFE54 |
| @@ -735,6 +740,7 @@ struct rtsx_pcr { | |||
| 735 | 740 | ||
| 736 | unsigned int card_inserted; | 741 | unsigned int card_inserted; |
| 737 | unsigned int card_removed; | 742 | unsigned int card_removed; |
| 743 | unsigned int card_exist; | ||
| 738 | 744 | ||
| 739 | struct delayed_work carddet_work; | 745 | struct delayed_work carddet_work; |
| 740 | struct delayed_work idle_work; | 746 | struct delayed_work idle_work; |
| @@ -799,6 +805,7 @@ int rtsx_pci_switch_clock(struct rtsx_pcr *pcr, unsigned int card_clock, | |||
| 799 | u8 ssc_depth, bool initial_mode, bool double_clk, bool vpclk); | 805 | u8 ssc_depth, bool initial_mode, bool double_clk, bool vpclk); |
| 800 | int rtsx_pci_card_power_on(struct rtsx_pcr *pcr, int card); | 806 | int rtsx_pci_card_power_on(struct rtsx_pcr *pcr, int card); |
| 801 | int rtsx_pci_card_power_off(struct rtsx_pcr *pcr, int card); | 807 | int rtsx_pci_card_power_off(struct rtsx_pcr *pcr, int card); |
| 808 | int rtsx_pci_card_exclusive_check(struct rtsx_pcr *pcr, int card); | ||
| 802 | int rtsx_pci_switch_output_voltage(struct rtsx_pcr *pcr, u8 voltage); | 809 | int rtsx_pci_switch_output_voltage(struct rtsx_pcr *pcr, u8 voltage); |
| 803 | unsigned int rtsx_pci_card_exist(struct rtsx_pcr *pcr); | 810 | unsigned int rtsx_pci_card_exist(struct rtsx_pcr *pcr); |
| 804 | void rtsx_pci_complete_unfinished_transfer(struct rtsx_pcr *pcr); | 811 | void rtsx_pci_complete_unfinished_transfer(struct rtsx_pcr *pcr); |
diff --git a/include/linux/platform_data/usb-omap.h b/include/linux/platform_data/usb-omap.h index e697c85ad3bc..fa579b4c666b 100644 --- a/include/linux/platform_data/usb-omap.h +++ b/include/linux/platform_data/usb-omap.h | |||
| @@ -55,6 +55,7 @@ struct ohci_hcd_omap_platform_data { | |||
| 55 | }; | 55 | }; |
| 56 | 56 | ||
| 57 | struct usbhs_omap_platform_data { | 57 | struct usbhs_omap_platform_data { |
| 58 | int nports; | ||
| 58 | enum usbhs_omap_port_mode port_mode[OMAP3_HS_USB_PORTS]; | 59 | enum usbhs_omap_port_mode port_mode[OMAP3_HS_USB_PORTS]; |
| 59 | int reset_gpio_port[OMAP3_HS_USB_PORTS]; | 60 | int reset_gpio_port[OMAP3_HS_USB_PORTS]; |
| 60 | struct regulator *regulator[OMAP3_HS_USB_PORTS]; | 61 | struct regulator *regulator[OMAP3_HS_USB_PORTS]; |
diff --git a/include/linux/platform_data/ux500_wdt.h b/include/linux/platform_data/ux500_wdt.h new file mode 100644 index 000000000000..1689ff4c3bfd --- /dev/null +++ b/include/linux/platform_data/ux500_wdt.h | |||
| @@ -0,0 +1,19 @@ | |||
| 1 | /* | ||
| 2 | * Copyright (C) ST Ericsson SA 2011 | ||
| 3 | * | ||
| 4 | * License Terms: GNU General Public License v2 | ||
| 5 | * | ||
| 6 | * STE Ux500 Watchdog platform data | ||
| 7 | */ | ||
| 8 | #ifndef __UX500_WDT_H | ||
| 9 | #define __UX500_WDT_H | ||
| 10 | |||
| 11 | /** | ||
| 12 | * struct ux500_wdt_data | ||
| 13 | */ | ||
| 14 | struct ux500_wdt_data { | ||
| 15 | unsigned int timeout; | ||
| 16 | bool has_28_bits_resolution; | ||
| 17 | }; | ||
| 18 | |||
| 19 | #endif /* __UX500_WDT_H */ | ||
diff --git a/include/linux/vexpress.h b/include/linux/vexpress.h index c52215ff4245..75818744ab59 100644 --- a/include/linux/vexpress.h +++ b/include/linux/vexpress.h | |||
| @@ -27,6 +27,14 @@ | |||
| 27 | #define VEXPRESS_GPIO_MMC_CARDIN 0 | 27 | #define VEXPRESS_GPIO_MMC_CARDIN 0 |
| 28 | #define VEXPRESS_GPIO_MMC_WPROT 1 | 28 | #define VEXPRESS_GPIO_MMC_WPROT 1 |
| 29 | #define VEXPRESS_GPIO_FLASH_WPn 2 | 29 | #define VEXPRESS_GPIO_FLASH_WPn 2 |
| 30 | #define VEXPRESS_GPIO_LED0 3 | ||
| 31 | #define VEXPRESS_GPIO_LED1 4 | ||
| 32 | #define VEXPRESS_GPIO_LED2 5 | ||
| 33 | #define VEXPRESS_GPIO_LED3 6 | ||
| 34 | #define VEXPRESS_GPIO_LED4 7 | ||
| 35 | #define VEXPRESS_GPIO_LED5 8 | ||
| 36 | #define VEXPRESS_GPIO_LED6 9 | ||
| 37 | #define VEXPRESS_GPIO_LED7 10 | ||
| 30 | 38 | ||
| 31 | #define VEXPRESS_RES_FUNC(_site, _func) \ | 39 | #define VEXPRESS_RES_FUNC(_site, _func) \ |
| 32 | { \ | 40 | { \ |
