diff options
| author | Sangbeom Kim <sbkim73@samsung.com> | 2012-03-09 03:53:53 -0500 |
|---|---|---|
| committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2012-04-01 06:59:22 -0400 |
| commit | 62fe8cd50175ca797dcf3d39a7206da6ac0f6c50 (patch) | |
| tree | d7e75f4b30290373547bde6ca26f7dc582c409b4 /include/linux/mfd | |
| parent | dd775ae2549217d3ae09363e3edb305d0fa19928 (diff) | |
mfd: Add s5m regulator operation mode
This patch add variables for opmode of s5m series.
S5M series have 4 operation modes.
Off mode is always regulator off mode.
On mode is always regulator on mode.
Lowpower mode is that regualtor operate in low-power.
Suspend mode is that regulator operation depends on AP suspend mode.
Signed-off-by: Sangbeom Kim <sbkim73@samsung.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'include/linux/mfd')
| -rw-r--r-- | include/linux/mfd/s5m87xx/s5m-core.h | 1 | ||||
| -rw-r--r-- | include/linux/mfd/s5m87xx/s5m-pmic.h | 29 |
2 files changed, 30 insertions, 0 deletions
diff --git a/include/linux/mfd/s5m87xx/s5m-core.h b/include/linux/mfd/s5m87xx/s5m-core.h index a7480b57f92..21603b42f22 100644 --- a/include/linux/mfd/s5m87xx/s5m-core.h +++ b/include/linux/mfd/s5m87xx/s5m-core.h | |||
| @@ -335,6 +335,7 @@ extern int s5m_reg_update(struct s5m87xx_dev *s5m87xx, u8 reg, u8 val, u8 mask); | |||
| 335 | 335 | ||
| 336 | struct s5m_platform_data { | 336 | struct s5m_platform_data { |
| 337 | struct s5m_regulator_data *regulators; | 337 | struct s5m_regulator_data *regulators; |
| 338 | struct s5m_opmode_data *opmode; | ||
| 338 | int device_type; | 339 | int device_type; |
| 339 | int num_regulators; | 340 | int num_regulators; |
| 340 | 341 | ||
diff --git a/include/linux/mfd/s5m87xx/s5m-pmic.h b/include/linux/mfd/s5m87xx/s5m-pmic.h index a72a5d27e62..7c719f20f58 100644 --- a/include/linux/mfd/s5m87xx/s5m-pmic.h +++ b/include/linux/mfd/s5m87xx/s5m-pmic.h | |||
| @@ -58,6 +58,8 @@ enum s5m8767_regulators { | |||
| 58 | S5M8767_REG_MAX, | 58 | S5M8767_REG_MAX, |
| 59 | }; | 59 | }; |
| 60 | 60 | ||
| 61 | #define S5M8767_ENCTRL_SHIFT 6 | ||
| 62 | |||
| 61 | /* S5M8763 regulator ids */ | 63 | /* S5M8763 regulator ids */ |
| 62 | enum s5m8763_regulators { | 64 | enum s5m8763_regulators { |
| 63 | S5M8763_LDO1, | 65 | S5M8763_LDO1, |
| @@ -97,4 +99,31 @@ struct s5m_regulator_data { | |||
| 97 | struct regulator_init_data *initdata; | 99 | struct regulator_init_data *initdata; |
| 98 | }; | 100 | }; |
| 99 | 101 | ||
| 102 | /* | ||
| 103 | * s5m_opmode_data - regulator operation mode data | ||
| 104 | * @id: regulator id | ||
| 105 | * @mode: regulator operation mode | ||
| 106 | */ | ||
| 107 | struct s5m_opmode_data { | ||
| 108 | int id; | ||
| 109 | int mode; | ||
| 110 | }; | ||
| 111 | |||
| 112 | /* | ||
| 113 | * s5m regulator operation mode | ||
| 114 | * S5M_OPMODE_OFF Regulator always OFF | ||
| 115 | * S5M_OPMODE_ON Regulator always ON | ||
| 116 | * S5M_OPMODE_LOWPOWER Regulator is on in low-power mode | ||
| 117 | * S5M_OPMODE_SUSPEND Regulator is changed by PWREN pin | ||
| 118 | * If PWREN is high, regulator is on | ||
| 119 | * If PWREN is low, regulator is off | ||
| 120 | */ | ||
| 121 | |||
| 122 | enum s5m_opmode { | ||
| 123 | S5M_OPMODE_OFF, | ||
| 124 | S5M_OPMODE_ON, | ||
| 125 | S5M_OPMODE_LOWPOWER, | ||
| 126 | S5M_OPMODE_SUSPEND, | ||
| 127 | }; | ||
| 128 | |||
| 100 | #endif /* __LINUX_MFD_S5M_PMIC_H */ | 129 | #endif /* __LINUX_MFD_S5M_PMIC_H */ |
