Re: [PATCH v2] arm64: dts: ti: k3-am65: Add support for UHS-I modes in MMCSD1 subsystem

From: Aswath Govindraju
Date: Tue May 11 2021 - 06:13:44 EST


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@xxxxxx>
>> ---
>> 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";
>> };
>>
>