[U-Boot] [PATCH v2 0/3] Update pbias and IO voltage in dra7 and am57 devices

The following patches update pbias and IO voltages in TI's dra7 and am57 devices.
Tested on: dra71x-evm, dra72x-evm, dra7xx-evm, dra76x-evm, am57xx-evm, am571-idk, am572-idk, am574-idk, am335x-evm.
v2: Added patch for fixing voltage in dra71-evm.
Faiz Abbas (3): ARM: dts: dra7: Change pbias voltage to 3.3V ARM: dts: dra71-evm: Correct evm_sd regulator max voltage mmc: omap_hsmmc: Set 3.3V for IO voltage
arch/arm/dts/dra7.dtsi | 2 +- arch/arm/dts/dra71-evm.dts | 4 ++-- drivers/mmc/omap_hsmmc.c | 21 ++++++++++----------- drivers/power/regulator/pbias_regulator.c | 2 +- 4 files changed, 14 insertions(+), 15 deletions(-)

As per recent TRM[1], PBIAS cell on dra7 devices supports 3.3v and not 3.0v as documented earlier.
Update PBIAS regulator max voltage and the voltage written in the driver to reflect this.
[1] http://www.ti.com/lit/pdf/sprui30
Signed-off-by: Faiz Abbas faiz_abbas@ti.com --- arch/arm/dts/dra7.dtsi | 2 +- drivers/power/regulator/pbias_regulator.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/arm/dts/dra7.dtsi b/arch/arm/dts/dra7.dtsi index 0f982d8b44..fd1aea0b1b 100644 --- a/arch/arm/dts/dra7.dtsi +++ b/arch/arm/dts/dra7.dtsi @@ -170,7 +170,7 @@ pbias_mmc_reg: pbias_mmc_omap5 { regulator-name = "pbias_mmc_omap5"; regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <3000000>; + regulator-max-microvolt = <3300000>; }; };
diff --git a/drivers/power/regulator/pbias_regulator.c b/drivers/power/regulator/pbias_regulator.c index 4ed3c94e03..88dc9f273a 100644 --- a/drivers/power/regulator/pbias_regulator.c +++ b/drivers/power/regulator/pbias_regulator.c @@ -238,7 +238,7 @@ static int pbias_regulator_set_value(struct udevice *dev, int uV) if (rc) return rc;
- if (uV == 3000000) + if (uV == 3300000) reg |= p->vmode; else if (uV == 1800000) reg &= ~p->vmode;

On Fri, Apr 05, 2019 at 02:18:44PM +0530, Faiz Abbas wrote:
As per recent TRM[1], PBIAS cell on dra7 devices supports 3.3v and not 3.0v as documented earlier.
Update PBIAS regulator max voltage and the voltage written in the driver to reflect this.
[1] http://www.ti.com/lit/pdf/sprui30
Signed-off-by: Faiz Abbas faiz_abbas@ti.com
Applied to u-boot/master, thanks!

Correct vpo_sd_1v8_3v3 regulator max voltage to 3.3V
Signed-off-by: Faiz Abbas faiz_abbas@ti.com --- arch/arm/dts/dra71-evm.dts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/arm/dts/dra71-evm.dts b/arch/arm/dts/dra71-evm.dts index 41c9132eb5..64363f75c0 100644 --- a/arch/arm/dts/dra71-evm.dts +++ b/arch/arm/dts/dra71-evm.dts @@ -24,13 +24,13 @@
regulator-name = "vddshv8"; regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <3000000>; + regulator-max-microvolt = <3300000>; regulator-boot-on; vin-supply = <&evm_5v0>;
gpios = <&gpio7 11 GPIO_ACTIVE_HIGH>; states = <1800000 0x0 - 3000000 0x1>; + 3300000 0x1>; };
evm_1v8_sw: fixedregulator-evm_1v8 {

On 4/5/2019 2:18 PM, Faiz Abbas wrote:
Correct vpo_sd_1v8_3v3 regulator max voltage to 3.3V
Reviewed-by: Keerthy j-keerthy@ti.com
Signed-off-by: Faiz Abbas faiz_abbas@ti.com
arch/arm/dts/dra71-evm.dts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/arm/dts/dra71-evm.dts b/arch/arm/dts/dra71-evm.dts index 41c9132eb5..64363f75c0 100644 --- a/arch/arm/dts/dra71-evm.dts +++ b/arch/arm/dts/dra71-evm.dts @@ -24,13 +24,13 @@
regulator-name = "vddshv8"; regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3000000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on; vin-supply = <&evm_5v0>;
gpios = <&gpio7 11 GPIO_ACTIVE_HIGH>; states = <1800000 0x0
3000000 0x1>;
3300000 0x1>;
};
evm_1v8_sw: fixedregulator-evm_1v8 {

On Fri, Apr 05, 2019 at 02:18:45PM +0530, Faiz Abbas wrote:
Correct vpo_sd_1v8_3v3 regulator max voltage to 3.3V
Signed-off-by: Faiz Abbas faiz_abbas@ti.com Reviewed-by: Keerthy j-keerthy@ti.com
Applied to u-boot/master, thanks!

Pbias voltage should match the IO voltage set for the SD card. With the latest pbias change to 3.3V, update the capabilities and IO voltages settings to 3.3V.
Signed-off-by: Faiz Abbas faiz_abbas@ti.com --- drivers/mmc/omap_hsmmc.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-)
diff --git a/drivers/mmc/omap_hsmmc.c b/drivers/mmc/omap_hsmmc.c index 826a39fad7..133cdc1352 100644 --- a/drivers/mmc/omap_hsmmc.c +++ b/drivers/mmc/omap_hsmmc.c @@ -264,7 +264,7 @@ static unsigned char mmc_board_init(struct mmc *mmc) !CONFIG_IS_ENABLED(DM_REGULATOR) /* PBIAS config needed for MMC1 only */ if (mmc_get_blk_desc(mmc)->devnum == 0) - vmmc_pbias_config(LDO_VOLT_3V0); + vmmc_pbias_config(LDO_VOLT_3V3); #endif
return 0; @@ -418,7 +418,7 @@ static void omap_hsmmc_conf_bus_power(struct mmc *mmc, uint signal_voltage)
switch (signal_voltage) { case MMC_SIGNAL_VOLTAGE_330: - hctl |= SDVS_3V0; + hctl |= SDVS_3V3; break; case MMC_SIGNAL_VOLTAGE_180: hctl |= SDVS_1V8; @@ -514,10 +514,9 @@ static int omap_hsmmc_set_signal_voltage(struct mmc *mmc) return -EINVAL;
if (mmc->signal_voltage == MMC_SIGNAL_VOLTAGE_330) { - /* Use 3.0V rather than 3.3V */ - mv = 3000; - capa_mask = VS30_3V0SUP; - palmas_ldo_volt = LDO_VOLT_3V0; + mv = 3300; + capa_mask = VS33_3V3SUP; + palmas_ldo_volt = LDO_VOLT_3V3; } else if (mmc->signal_voltage == MMC_SIGNAL_VOLTAGE_180) { capa_mask = VS18_1V8SUP; palmas_ldo_volt = LDO_VOLT_1V8; @@ -556,13 +555,13 @@ static uint32_t omap_hsmmc_set_capabilities(struct mmc *mmc) val = readl(&mmc_base->capa);
if (priv->controller_flags & OMAP_HSMMC_SUPPORTS_DUAL_VOLT) { - val |= (VS30_3V0SUP | VS18_1V8SUP); + val |= (VS33_3V3SUP | VS18_1V8SUP); } else if (priv->controller_flags & OMAP_HSMMC_NO_1_8_V) { - val |= VS30_3V0SUP; + val |= VS33_3V3SUP; val &= ~VS18_1V8SUP; } else { val |= VS18_1V8SUP; - val &= ~VS30_3V0SUP; + val &= ~VS33_3V3SUP; }
writel(val, &mmc_base->capa); @@ -842,11 +841,11 @@ static int omap_hsmmc_init_setup(struct mmc *mmc)
#if CONFIG_IS_ENABLED(DM_MMC) reg_val = omap_hsmmc_set_capabilities(mmc); - omap_hsmmc_conf_bus_power(mmc, (reg_val & VS30_3V0SUP) ? + omap_hsmmc_conf_bus_power(mmc, (reg_val & VS33_3V3SUP) ? MMC_SIGNAL_VOLTAGE_330 : MMC_SIGNAL_VOLTAGE_180); #else writel(DTW_1_BITMODE | SDBP_PWROFF | SDVS_3V0, &mmc_base->hctl); - writel(readl(&mmc_base->capa) | VS30_3V0SUP | VS18_1V8SUP, + writel(readl(&mmc_base->capa) | VS33_3V3SUP | VS18_1V8SUP, &mmc_base->capa); #endif

On Fri, Apr 05, 2019 at 02:18:46PM +0530, Faiz Abbas wrote:
Pbias voltage should match the IO voltage set for the SD card. With the latest pbias change to 3.3V, update the capabilities and IO voltages settings to 3.3V.
Signed-off-by: Faiz Abbas faiz_abbas@ti.com
Applied to u-boot/master, thanks!
participants (3)
-
Faiz Abbas
-
keerthy
-
Tom Rini