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 | |
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>
-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 a7480b57f92d..21603b42f22f 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 a72a5d27e62e..7c719f20f58a 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 */ |