diff options
author | Paul Kocialkowski <contact@paulk.fr> | 2016-02-27 19:18:50 +0100 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2016-03-15 15:10:51 -0400 |
commit | d7b6a75497ea2a33a1d2e4b8fa4d98dc8c7e876b (patch) | |
tree | 432ab4806c0ddede6642d567176801c261e915ab /drivers/power/twl6030.c | |
parent | c5dbae7c19856171e0580f490dfb3d667466e8f3 (diff) |
power: twl6030: Enable VAUX1 for eMMC power, depending on BOOT2 value
This enables the VAUX1 supply, used for eMMC power in standard configurations.
Its voltage is determined by the value of the BOOT2 pin of the TWL6030.
Note that the TWL6030 might already have enabled this regulator at startup
(depending on the value of the BOOT3 pin of the TWL6030), according to the
TWL6030 datasheet.
Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Diffstat (limited to 'drivers/power/twl6030.c')
-rw-r--r-- | drivers/power/twl6030.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/drivers/power/twl6030.c b/drivers/power/twl6030.c index 8924f7f0e9..2fb39675af 100644 --- a/drivers/power/twl6030.c +++ b/drivers/power/twl6030.c @@ -214,6 +214,8 @@ void twl6030_init_battery_charging(void) void twl6030_power_mmc_init() { + u8 value = 0; + /* 3.0V voltage output for VMMC */ twl6030_i2c_write_u8(TWL6030_CHIP_PM, TWL6030_VMMC_CFG_VOLTAGE, TWL6030_CFG_VOLTAGE_30); @@ -221,6 +223,23 @@ void twl6030_power_mmc_init() /* Enable P1 output for VMMC */ twl6030_i2c_write_u8(TWL6030_CHIP_PM, TWL6030_VMMC_CFG_STATE, TWL6030_CFG_STATE_P1 | TWL6030_CFG_STATE_ON); + + twl6030_i2c_read_u8(TWL6030_CHIP_PM, TWL6030_PH_STS_BOOT, &value); + + /* BOOT2 indicates 1.8V/2.8V VAUX1 for eMMC */ + if (value & TWL6030_PH_STS_BOOT2) { + /* 1.8V voltage output for VAUX1 */ + twl6030_i2c_write_u8(TWL6030_CHIP_PM, TWL6030_VAUX1_CFG_VOLTAGE, + TWL6030_CFG_VOLTAGE_18); + } else { + /* 2.8V voltage output for VAUX1 */ + twl6030_i2c_write_u8(TWL6030_CHIP_PM, TWL6030_VAUX1_CFG_VOLTAGE, + TWL6030_CFG_VOLTAGE_28); + } + + /* Enable P1 output for VAUX */ + twl6030_i2c_write_u8(TWL6030_CHIP_PM, TWL6030_VAUX1_CFG_STATE, + TWL6030_CFG_STATE_P1 | TWL6030_CFG_STATE_ON); } void twl6030_usb_device_settings() |