regulator: s5m8767: Use GPIO for controlling Buck9/eMMC

Add support for GPIO control (enable/disable) over Buck9. The Buck9
Converter is used as a supply for eMMC Host Controller.

BUCK9EN GPIO of S5M8767 chip may be used by application processor to
enable or disable the Buck9. This has two benefits:
 - It is faster than toggling it over I2C bus.
 - It allows disabling the regulator during suspend to RAM; The AP will
   enable it during resume; Without the patch the regulator supplying
   eMMC must be defined as fixed-regulator.

Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Acked-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Mark Brown <broonie@linaro.org>
This commit is contained in:
Krzysztof Kozlowski
2014-01-24 14:37:57 +01:00
committed by Mark Brown
parent 07b1980848
commit ee1e0994ab
3 changed files with 93 additions and 4 deletions

View File

@@ -119,7 +119,8 @@ struct sec_platform_data {
struct sec_regulator_data {
int id;
struct regulator_init_data *initdata;
struct device_node *reg_node;
struct device_node *reg_node;
int ext_control_gpio;
};
/*

View File

@@ -183,9 +183,16 @@ enum s5m8767_regulators {
S5M8767_REG_MAX,
};
/* LDO_EN/BUCK_EN field in registers */
#define S5M8767_ENCTRL_SHIFT 6
#define S5M8767_ENCTRL_MASK (0x3 << S5M8767_ENCTRL_SHIFT)
/*
* LDO_EN/BUCK_EN register value for controlling this Buck or LDO
* by GPIO (PWREN, BUCKEN).
*/
#define S5M8767_ENCTRL_USE_GPIO 0x1
/*
* Values for BUCK_RAMP field in DVS_RAMP register, matching raw values
* in mV/us.