Message ID | 20210511095339.16268-1-a-govindraju@ti.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] arm64: dts: ti: k3-am65: Add support for UHS-I modes in MMCSD1 subsystem | expand |
On 11/05/21 3:23 pm, Aswath Govindraju wrote: > UHS-I speed modes are supported in AM65 S.R. 2.0 SoC[1]. > > Add support by removing the no-1-8-v tag and including the voltage > regulator device tree nodes for power cycling. > > However, the 4 bit interface of AM65 SR 1.0 cannot be supported at 3.3 V or > 1.8 V because of erratas i2025 and i2026 [2]. As the SD card is the primary > boot mode for development usecases, continue to enable SD card and disable > UHS-I modes in it to minimize any ageing issues happening because of > erratas. > > k3-am6528-iot2050-basic and k3-am6548-iot2050-advanced boards use S.R. 1.0 > version of AM65 SoC. Therefore, add no-1-8-v in sdhci1 device tree nodes > for these boards. > > [1] - https://www.ti.com/lit/ug/spruid7e/spruid7e.pdf, section 12.3.6.1.1 > [2] - https://www.ti.com/lit/er/sprz452e/sprz452e.pdf > > Signed-off-by: Aswath Govindraju <a-govindraju@ti.com> > --- changes since v1: - added no-1-8-v tag in sdhci1 dt nodes of k3-am6528-iot2050-basic and k3-am6548-iot2050-advanced boards as they use S.R.1.0 version AM65 SoC. Thanks, Aswath > arch/arm64/boot/dts/ti/k3-am65-main.dtsi | 1 - > .../boot/dts/ti/k3-am6528-iot2050-basic.dts | 4 +++ > .../arm64/boot/dts/ti/k3-am654-base-board.dts | 33 +++++++++++++++++++ > .../dts/ti/k3-am6548-iot2050-advanced.dts | 4 +++ > 4 files changed, 41 insertions(+), 1 deletion(-) > > diff --git a/arch/arm64/boot/dts/ti/k3-am65-main.dtsi b/arch/arm64/boot/dts/ti/k3-am65-main.dtsi > index cb340d1b401f..632f32fce4a1 100644 > --- a/arch/arm64/boot/dts/ti/k3-am65-main.dtsi > +++ b/arch/arm64/boot/dts/ti/k3-am65-main.dtsi > @@ -301,7 +301,6 @@ > ti,otap-del-sel = <0x2>; > ti,trm-icp = <0x8>; > dma-coherent; > - no-1-8-v; > }; > > scm_conf: scm-conf@100000 { > diff --git a/arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic.dts b/arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic.dts > index 4f7e3f2a6265..485266960d5f 100644 > --- a/arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic.dts > +++ b/arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic.dts > @@ -40,6 +40,10 @@ > status = "disabled"; > }; > > +&sdhci1 { > + no-1-8-v; > +}; > + > &main_pmx0 { > main_uart0_pins_default: main-uart0-pins-default { > pinctrl-single,pins = < > diff --git a/arch/arm64/boot/dts/ti/k3-am654-base-board.dts b/arch/arm64/boot/dts/ti/k3-am654-base-board.dts > index 9e87fb313a54..51c594b4dddb 100644 > --- a/arch/arm64/boot/dts/ti/k3-am654-base-board.dts > +++ b/arch/arm64/boot/dts/ti/k3-am654-base-board.dts > @@ -91,6 +91,38 @@ > #clock-cells = <0>; > clock-frequency = <24000000>; > }; > + > + evm_12v0: fixedregulator-evm12v0 { > + /* main supply */ > + compatible = "regulator-fixed"; > + regulator-name = "evm_12v0"; > + regulator-min-microvolt = <12000000>; > + regulator-max-microvolt = <12000000>; > + regulator-always-on; > + regulator-boot-on; > + }; > + > + vcc3v3_io: fixedregulator-vcc3v3io { > + /* Output of TPS54334 */ > + compatible = "regulator-fixed"; > + regulator-name = "vcc3v3_io"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + regulator-always-on; > + regulator-boot-on; > + vin-supply = <&evm_12v0>; > + }; > + > + vdd_mmc1_sd: fixedregulator-sd { > + compatible = "regulator-fixed"; > + regulator-name = "vdd_mmc1_sd"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + regulator-boot-on; > + enable-active-high; > + vin-supply = <&vcc3v3_io>; > + gpio = <&pca9554 4 GPIO_ACTIVE_HIGH>; > + }; > }; > > &wkup_pmx0 { > @@ -350,6 +382,7 @@ > * disable sdhci1 > */ > &sdhci1 { > + vmmc-supply = <&vdd_mmc1_sd>; > pinctrl-names = "default"; > pinctrl-0 = <&main_mmc1_pins_default>; > ti,driver-strength-ohm = <50>; > diff --git a/arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced.dts b/arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced.dts > index ec9617c13cdb..3643a19b5f33 100644 > --- a/arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced.dts > +++ b/arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced.dts > @@ -55,6 +55,10 @@ > disable-wp; > }; > > +&sdhci1 { > + no-1-8-v; > +}; > + > &main_uart0 { > status = "disabled"; > }; >
On 11.05.21 11:53, Aswath Govindraju wrote: > UHS-I speed modes are supported in AM65 S.R. 2.0 SoC[1]. > > Add support by removing the no-1-8-v tag and including the voltage > regulator device tree nodes for power cycling. > > However, the 4 bit interface of AM65 SR 1.0 cannot be supported at 3.3 V or > 1.8 V because of erratas i2025 and i2026 [2]. As the SD card is the primary > boot mode for development usecases, continue to enable SD card and disable > UHS-I modes in it to minimize any ageing issues happening because of > erratas. > > k3-am6528-iot2050-basic and k3-am6548-iot2050-advanced boards use S.R. 1.0 > version of AM65 SoC. Therefore, add no-1-8-v in sdhci1 device tree nodes > for these boards. > > [1] - https://www.ti.com/lit/ug/spruid7e/spruid7e.pdf > [2] - https://www.ti.com/lit/er/sprz452e/sprz452e.pdf > > Signed-off-by: Aswath Govindraju <a-govindraju@ti.com> > --- > arch/arm64/boot/dts/ti/k3-am65-main.dtsi | 1 - > .../boot/dts/ti/k3-am6528-iot2050-basic.dts | 4 +++ > .../arm64/boot/dts/ti/k3-am654-base-board.dts | 33 +++++++++++++++++++ > .../dts/ti/k3-am6548-iot2050-advanced.dts | 4 +++ > 4 files changed, 41 insertions(+), 1 deletion(-) > > diff --git a/arch/arm64/boot/dts/ti/k3-am65-main.dtsi b/arch/arm64/boot/dts/ti/k3-am65-main.dtsi > index cb340d1b401f..632f32fce4a1 100644 > --- a/arch/arm64/boot/dts/ti/k3-am65-main.dtsi > +++ b/arch/arm64/boot/dts/ti/k3-am65-main.dtsi > @@ -301,7 +301,6 @@ > ti,otap-del-sel = <0x2>; > ti,trm-icp = <0x8>; > dma-coherent; > - no-1-8-v; > }; > > scm_conf: scm-conf@100000 { > diff --git a/arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic.dts b/arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic.dts > index 4f7e3f2a6265..485266960d5f 100644 > --- a/arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic.dts > +++ b/arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic.dts > @@ -40,6 +40,10 @@ > status = "disabled"; > }; > > +&sdhci1 { > + no-1-8-v; > +}; > + Let's move that to k3-am65-iot2050-common.dtsi, to avoid repeating yourself. There is already a sdhci1 extension. Jan > &main_pmx0 { > main_uart0_pins_default: main-uart0-pins-default { > pinctrl-single,pins = < > diff --git a/arch/arm64/boot/dts/ti/k3-am654-base-board.dts b/arch/arm64/boot/dts/ti/k3-am654-base-board.dts > index 9e87fb313a54..51c594b4dddb 100644 > --- a/arch/arm64/boot/dts/ti/k3-am654-base-board.dts > +++ b/arch/arm64/boot/dts/ti/k3-am654-base-board.dts > @@ -91,6 +91,38 @@ > #clock-cells = <0>; > clock-frequency = <24000000>; > }; > + > + evm_12v0: fixedregulator-evm12v0 { > + /* main supply */ > + compatible = "regulator-fixed"; > + regulator-name = "evm_12v0"; > + regulator-min-microvolt = <12000000>; > + regulator-max-microvolt = <12000000>; > + regulator-always-on; > + regulator-boot-on; > + }; > + > + vcc3v3_io: fixedregulator-vcc3v3io { > + /* Output of TPS54334 */ > + compatible = "regulator-fixed"; > + regulator-name = "vcc3v3_io"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + regulator-always-on; > + regulator-boot-on; > + vin-supply = <&evm_12v0>; > + }; > + > + vdd_mmc1_sd: fixedregulator-sd { > + compatible = "regulator-fixed"; > + regulator-name = "vdd_mmc1_sd"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + regulator-boot-on; > + enable-active-high; > + vin-supply = <&vcc3v3_io>; > + gpio = <&pca9554 4 GPIO_ACTIVE_HIGH>; > + }; > }; > > &wkup_pmx0 { > @@ -350,6 +382,7 @@ > * disable sdhci1 > */ > &sdhci1 { > + vmmc-supply = <&vdd_mmc1_sd>; > pinctrl-names = "default"; > pinctrl-0 = <&main_mmc1_pins_default>; > ti,driver-strength-ohm = <50>; > diff --git a/arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced.dts b/arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced.dts > index ec9617c13cdb..3643a19b5f33 100644 > --- a/arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced.dts > +++ b/arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced.dts > @@ -55,6 +55,10 @@ > disable-wp; > }; > > +&sdhci1 { > + no-1-8-v; > +}; > + > &main_uart0 { > status = "disabled"; > }; >
Hi Jan, On 11/05/21 3:31 pm, Jan Kiszka wrote: > On 11.05.21 11:53, Aswath Govindraju wrote: >> UHS-I speed modes are supported in AM65 S.R. 2.0 SoC[1]. >> >> Add support by removing the no-1-8-v tag and including the voltage >> regulator device tree nodes for power cycling. >> >> However, the 4 bit interface of AM65 SR 1.0 cannot be supported at 3.3 V or >> 1.8 V because of erratas i2025 and i2026 [2]. As the SD card is the primary >> boot mode for development usecases, continue to enable SD card and disable >> UHS-I modes in it to minimize any ageing issues happening because of >> erratas. >> >> k3-am6528-iot2050-basic and k3-am6548-iot2050-advanced boards use S.R. 1.0 >> version of AM65 SoC. Therefore, add no-1-8-v in sdhci1 device tree nodes >> for these boards. >> >> [1] - https://www.ti.com/lit/ug/spruid7e/spruid7e.pdf >> [2] - https://www.ti.com/lit/er/sprz452e/sprz452e.pdf >> >> Signed-off-by: Aswath Govindraju <a-govindraju@ti.com> >> --- >> arch/arm64/boot/dts/ti/k3-am65-main.dtsi | 1 - >> .../boot/dts/ti/k3-am6528-iot2050-basic.dts | 4 +++ >> .../arm64/boot/dts/ti/k3-am654-base-board.dts | 33 +++++++++++++++++++ >> .../dts/ti/k3-am6548-iot2050-advanced.dts | 4 +++ >> 4 files changed, 41 insertions(+), 1 deletion(-) >> >> diff --git a/arch/arm64/boot/dts/ti/k3-am65-main.dtsi b/arch/arm64/boot/dts/ti/k3-am65-main.dtsi >> index cb340d1b401f..632f32fce4a1 100644 >> --- a/arch/arm64/boot/dts/ti/k3-am65-main.dtsi >> +++ b/arch/arm64/boot/dts/ti/k3-am65-main.dtsi >> @@ -301,7 +301,6 @@ >> ti,otap-del-sel = <0x2>; >> ti,trm-icp = <0x8>; >> dma-coherent; >> - no-1-8-v; >> }; >> >> scm_conf: scm-conf@100000 { >> diff --git a/arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic.dts b/arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic.dts >> index 4f7e3f2a6265..485266960d5f 100644 >> --- a/arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic.dts >> +++ b/arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic.dts >> @@ -40,6 +40,10 @@ >> status = "disabled"; >> }; >> >> +&sdhci1 { >> + no-1-8-v; >> +}; >> + > > Let's move that to k3-am65-iot2050-common.dtsi, to avoid repeating > yourself. There is already a sdhci1 extension. > The reason why I added these tags in board dts and not in the common dtsi is because if it was added in the common board then for all the iot boards this will be applicable and in future if a different version of iot boards use S.R. 2.0 then we might have to change it again. Thanks, Aswath > Jan > >> &main_pmx0 { >> main_uart0_pins_default: main-uart0-pins-default { >> pinctrl-single,pins = < >> diff --git a/arch/arm64/boot/dts/ti/k3-am654-base-board.dts b/arch/arm64/boot/dts/ti/k3-am654-base-board.dts >> index 9e87fb313a54..51c594b4dddb 100644 >> --- a/arch/arm64/boot/dts/ti/k3-am654-base-board.dts >> +++ b/arch/arm64/boot/dts/ti/k3-am654-base-board.dts >> @@ -91,6 +91,38 @@ >> #clock-cells = <0>; >> clock-frequency = <24000000>; >> }; >> + >> + evm_12v0: fixedregulator-evm12v0 { >> + /* main supply */ >> + compatible = "regulator-fixed"; >> + regulator-name = "evm_12v0"; >> + regulator-min-microvolt = <12000000>; >> + regulator-max-microvolt = <12000000>; >> + regulator-always-on; >> + regulator-boot-on; >> + }; >> + >> + vcc3v3_io: fixedregulator-vcc3v3io { >> + /* Output of TPS54334 */ >> + compatible = "regulator-fixed"; >> + regulator-name = "vcc3v3_io"; >> + regulator-min-microvolt = <3300000>; >> + regulator-max-microvolt = <3300000>; >> + regulator-always-on; >> + regulator-boot-on; >> + vin-supply = <&evm_12v0>; >> + }; >> + >> + vdd_mmc1_sd: fixedregulator-sd { >> + compatible = "regulator-fixed"; >> + regulator-name = "vdd_mmc1_sd"; >> + regulator-min-microvolt = <3300000>; >> + regulator-max-microvolt = <3300000>; >> + regulator-boot-on; >> + enable-active-high; >> + vin-supply = <&vcc3v3_io>; >> + gpio = <&pca9554 4 GPIO_ACTIVE_HIGH>; >> + }; >> }; >> >> &wkup_pmx0 { >> @@ -350,6 +382,7 @@ >> * disable sdhci1 >> */ >> &sdhci1 { >> + vmmc-supply = <&vdd_mmc1_sd>; >> pinctrl-names = "default"; >> pinctrl-0 = <&main_mmc1_pins_default>; >> ti,driver-strength-ohm = <50>; >> diff --git a/arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced.dts b/arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced.dts >> index ec9617c13cdb..3643a19b5f33 100644 >> --- a/arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced.dts >> +++ b/arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced.dts >> @@ -55,6 +55,10 @@ >> disable-wp; >> }; >> >> +&sdhci1 { >> + no-1-8-v; >> +}; >> + >> &main_uart0 { >> status = "disabled"; >> }; >> >
On 11.05.21 12:13, Aswath Govindraju wrote: > Hi Jan, > > On 11/05/21 3:31 pm, Jan Kiszka wrote: >> On 11.05.21 11:53, Aswath Govindraju wrote: >>> UHS-I speed modes are supported in AM65 S.R. 2.0 SoC[1]. >>> >>> Add support by removing the no-1-8-v tag and including the voltage >>> regulator device tree nodes for power cycling. >>> >>> However, the 4 bit interface of AM65 SR 1.0 cannot be supported at 3.3 V or >>> 1.8 V because of erratas i2025 and i2026 [2]. As the SD card is the primary >>> boot mode for development usecases, continue to enable SD card and disable >>> UHS-I modes in it to minimize any ageing issues happening because of >>> erratas. >>> >>> k3-am6528-iot2050-basic and k3-am6548-iot2050-advanced boards use S.R. 1.0 >>> version of AM65 SoC. Therefore, add no-1-8-v in sdhci1 device tree nodes >>> for these boards. >>> >>> [1] - https://www.ti.com/lit/ug/spruid7e/spruid7e.pdf >>> [2] - https://www.ti.com/lit/er/sprz452e/sprz452e.pdf >>> >>> Signed-off-by: Aswath Govindraju <a-govindraju@ti.com> >>> --- >>> arch/arm64/boot/dts/ti/k3-am65-main.dtsi | 1 - >>> .../boot/dts/ti/k3-am6528-iot2050-basic.dts | 4 +++ >>> .../arm64/boot/dts/ti/k3-am654-base-board.dts | 33 +++++++++++++++++++ >>> .../dts/ti/k3-am6548-iot2050-advanced.dts | 4 +++ >>> 4 files changed, 41 insertions(+), 1 deletion(-) >>> >>> diff --git a/arch/arm64/boot/dts/ti/k3-am65-main.dtsi b/arch/arm64/boot/dts/ti/k3-am65-main.dtsi >>> index cb340d1b401f..632f32fce4a1 100644 >>> --- a/arch/arm64/boot/dts/ti/k3-am65-main.dtsi >>> +++ b/arch/arm64/boot/dts/ti/k3-am65-main.dtsi >>> @@ -301,7 +301,6 @@ >>> ti,otap-del-sel = <0x2>; >>> ti,trm-icp = <0x8>; >>> dma-coherent; >>> - no-1-8-v; >>> }; >>> >>> scm_conf: scm-conf@100000 { >>> diff --git a/arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic.dts b/arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic.dts >>> index 4f7e3f2a6265..485266960d5f 100644 >>> --- a/arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic.dts >>> +++ b/arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic.dts >>> @@ -40,6 +40,10 @@ >>> status = "disabled"; >>> }; >>> >>> +&sdhci1 { >>> + no-1-8-v; >>> +}; >>> + >> >> Let's move that to k3-am65-iot2050-common.dtsi, to avoid repeating >> yourself. There is already a sdhci1 extension. >> > > The reason why I added these tags in board dts and not in the common > dtsi is because if it was added in the common board then for all the iot > boards this will be applicable and in future if a different version of > iot boards use S.R. 2.0 then we might have to change it again. Yes, we will have to take care of the split-up for SR2.0-based variants. I didn't have the chance study their DTs yet but I strongly suspect that there will be more differences. Then we may add some k3-am65-iot2050-common-{SR1,SR2}.dtsi. So, I would not try to refactor when not all variables are on the table yet. Thanks Jan
On 17:26-20210511, Jan Kiszka wrote: [...] > >>> +&sdhci1 { > >>> + no-1-8-v; > >>> +}; > >>> + > >> > >> Let's move that to k3-am65-iot2050-common.dtsi, to avoid repeating > >> yourself. There is already a sdhci1 extension. > >> > > > > The reason why I added these tags in board dts and not in the common > > dtsi is because if it was added in the common board then for all the iot > > boards this will be applicable and in future if a different version of > > iot boards use S.R. 2.0 then we might have to change it again. > > Yes, we will have to take care of the split-up for SR2.0-based variants. > I didn't have the chance study their DTs yet but I strongly suspect that > there will be more differences. Then we may add some > k3-am65-iot2050-common-{SR1,SR2}.dtsi. > > So, I would not try to refactor when not all variables are on the table yet. I agree with Jan. lets bring it in the current common.dtsi and see the sr2 introduction separately.
Hi Nishanth, Jan, On 11/05/21 10:03 pm, Nishanth Menon wrote: > On 17:26-20210511, Jan Kiszka wrote: > [...] >>>>> +&sdhci1 { >>>>> + no-1-8-v; >>>>> +}; >>>>> + >>>> >>>> Let's move that to k3-am65-iot2050-common.dtsi, to avoid repeating >>>> yourself. There is already a sdhci1 extension. >>>> >>> >>> The reason why I added these tags in board dts and not in the common >>> dtsi is because if it was added in the common board then for all the iot >>> boards this will be applicable and in future if a different version of >>> iot boards use S.R. 2.0 then we might have to change it again. >> >> Yes, we will have to take care of the split-up for SR2.0-based variants. >> I didn't have the chance study their DTs yet but I strongly suspect that >> there will be more differences. Then we may add some >> k3-am65-iot2050-common-{SR1,SR2}.dtsi. >> >> So, I would not try to refactor when not all variables are on the table yet. > > > I agree with Jan. lets bring it in the current common.dtsi and see the > sr2 introduction separately. > okay, I'll post a respin of this patch making this change. Thanks, Aswath
diff --git a/arch/arm64/boot/dts/ti/k3-am65-main.dtsi b/arch/arm64/boot/dts/ti/k3-am65-main.dtsi index cb340d1b401f..632f32fce4a1 100644 --- a/arch/arm64/boot/dts/ti/k3-am65-main.dtsi +++ b/arch/arm64/boot/dts/ti/k3-am65-main.dtsi @@ -301,7 +301,6 @@ ti,otap-del-sel = <0x2>; ti,trm-icp = <0x8>; dma-coherent; - no-1-8-v; }; scm_conf: scm-conf@100000 { diff --git a/arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic.dts b/arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic.dts index 4f7e3f2a6265..485266960d5f 100644 --- a/arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic.dts +++ b/arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic.dts @@ -40,6 +40,10 @@ status = "disabled"; }; +&sdhci1 { + no-1-8-v; +}; + &main_pmx0 { main_uart0_pins_default: main-uart0-pins-default { pinctrl-single,pins = < diff --git a/arch/arm64/boot/dts/ti/k3-am654-base-board.dts b/arch/arm64/boot/dts/ti/k3-am654-base-board.dts index 9e87fb313a54..51c594b4dddb 100644 --- a/arch/arm64/boot/dts/ti/k3-am654-base-board.dts +++ b/arch/arm64/boot/dts/ti/k3-am654-base-board.dts @@ -91,6 +91,38 @@ #clock-cells = <0>; clock-frequency = <24000000>; }; + + evm_12v0: fixedregulator-evm12v0 { + /* main supply */ + compatible = "regulator-fixed"; + regulator-name = "evm_12v0"; + regulator-min-microvolt = <12000000>; + regulator-max-microvolt = <12000000>; + regulator-always-on; + regulator-boot-on; + }; + + vcc3v3_io: fixedregulator-vcc3v3io { + /* Output of TPS54334 */ + compatible = "regulator-fixed"; + regulator-name = "vcc3v3_io"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + regulator-boot-on; + vin-supply = <&evm_12v0>; + }; + + vdd_mmc1_sd: fixedregulator-sd { + compatible = "regulator-fixed"; + regulator-name = "vdd_mmc1_sd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + enable-active-high; + vin-supply = <&vcc3v3_io>; + gpio = <&pca9554 4 GPIO_ACTIVE_HIGH>; + }; }; &wkup_pmx0 { @@ -350,6 +382,7 @@ * disable sdhci1 */ &sdhci1 { + vmmc-supply = <&vdd_mmc1_sd>; pinctrl-names = "default"; pinctrl-0 = <&main_mmc1_pins_default>; ti,driver-strength-ohm = <50>; diff --git a/arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced.dts b/arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced.dts index ec9617c13cdb..3643a19b5f33 100644 --- a/arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced.dts +++ b/arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced.dts @@ -55,6 +55,10 @@ disable-wp; }; +&sdhci1 { + no-1-8-v; +}; + &main_uart0 { status = "disabled"; };
UHS-I speed modes are supported in AM65 S.R. 2.0 SoC[1]. Add support by removing the no-1-8-v tag and including the voltage regulator device tree nodes for power cycling. However, the 4 bit interface of AM65 SR 1.0 cannot be supported at 3.3 V or 1.8 V because of erratas i2025 and i2026 [2]. As the SD card is the primary boot mode for development usecases, continue to enable SD card and disable UHS-I modes in it to minimize any ageing issues happening because of erratas. k3-am6528-iot2050-basic and k3-am6548-iot2050-advanced boards use S.R. 1.0 version of AM65 SoC. Therefore, add no-1-8-v in sdhci1 device tree nodes for these boards. [1] - https://www.ti.com/lit/ug/spruid7e/spruid7e.pdf, section 12.3.6.1.1 [2] - https://www.ti.com/lit/er/sprz452e/sprz452e.pdf Signed-off-by: Aswath Govindraju <a-govindraju@ti.com> --- arch/arm64/boot/dts/ti/k3-am65-main.dtsi | 1 - .../boot/dts/ti/k3-am6528-iot2050-basic.dts | 4 +++ .../arm64/boot/dts/ti/k3-am654-base-board.dts | 33 +++++++++++++++++++ .../dts/ti/k3-am6548-iot2050-advanced.dts | 4 +++ 4 files changed, 41 insertions(+), 1 deletion(-)