Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 62fe8cd5 authored by Sangbeom Kim's avatar Sangbeom Kim Committed by Mark Brown
Browse files

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: default avatarSangbeom Kim <sbkim73@samsung.com>
Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
parent dd775ae2
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -335,6 +335,7 @@ extern int s5m_reg_update(struct s5m87xx_dev *s5m87xx, u8 reg, u8 val, u8 mask);


struct s5m_platform_data {
struct s5m_platform_data {
	struct s5m_regulator_data	*regulators;
	struct s5m_regulator_data	*regulators;
	struct s5m_opmode_data		*opmode;
	int				device_type;
	int				device_type;
	int				num_regulators;
	int				num_regulators;


+29 −0
Original line number Original line Diff line number Diff line
@@ -58,6 +58,8 @@ enum s5m8767_regulators {
	S5M8767_REG_MAX,
	S5M8767_REG_MAX,
};
};


#define S5M8767_ENCTRL_SHIFT  6

/* S5M8763 regulator ids */
/* S5M8763 regulator ids */
enum s5m8763_regulators {
enum s5m8763_regulators {
	S5M8763_LDO1,
	S5M8763_LDO1,
@@ -97,4 +99,31 @@ struct s5m_regulator_data {
	struct regulator_init_data	*initdata;
	struct regulator_init_data	*initdata;
};
};


/*
 * s5m_opmode_data - regulator operation mode data
 * @id: regulator id
 * @mode: regulator operation mode
 */
struct s5m_opmode_data {
	int id;
	int mode;
};

/*
 * s5m regulator operation mode
 * S5M_OPMODE_OFF	Regulator always OFF
 * S5M_OPMODE_ON	Regulator always ON
 * S5M_OPMODE_LOWPOWER  Regulator is on in low-power mode
 * S5M_OPMODE_SUSPEND   Regulator is changed by PWREN pin
 *			If PWREN is high, regulator is on
 *			If PWREN is low, regulator is off
 */

enum s5m_opmode {
	S5M_OPMODE_OFF,
	S5M_OPMODE_ON,
	S5M_OPMODE_LOWPOWER,
	S5M_OPMODE_SUSPEND,
};

#endif /*  __LINUX_MFD_S5M_PMIC_H */
#endif /*  __LINUX_MFD_S5M_PMIC_H */