Because of fundamental interface issues in am65x pg1, only the
initial sdhci1 node at 25 MHz was added in the u-boot.dtsi
from which both the base-board.dts and r5-base-board.dts
inherit the node. Move the node out to k3-am65-main.dtsi
where it belongs and add the board specific properties
in base-board.dts and r5-base-board.dts

This ensures dts compatibility with the kernel dts in the
base-board.dts and enables the SD card interface at 50 MHz
and High Speed mode

While we are here, also fix the main_mmc0_pins_default
property to be included and inherit from the base-board.dts
instead of the u-boot.dtsi

Signed-off-by: Faiz Abbas <faiz_ab...@ti.com>
---
 arch/arm/dts/k3-am65-main.dtsi               | 22 +++++++
 arch/arm/dts/k3-am654-base-board-u-boot.dtsi | 67 +++-----------------
 arch/arm/dts/k3-am654-base-board.dts         | 25 ++++++++
 arch/arm/dts/k3-am654-r5-base-board.dts      | 20 +++++-
 4 files changed, 74 insertions(+), 60 deletions(-)

diff --git a/arch/arm/dts/k3-am65-main.dtsi b/arch/arm/dts/k3-am65-main.dtsi
index 028f57379b..d151e27028 100644
--- a/arch/arm/dts/k3-am65-main.dtsi
+++ b/arch/arm/dts/k3-am65-main.dtsi
@@ -113,6 +113,28 @@
                dma-coherent;
        };
 
+       sdhci1: sdhci@4fa0000 {
+               compatible = "ti,am654-sdhci-5.1";
+               reg = <0x0 0x4fa0000 0x0 0x260>, <0x0 0x4fb0000 0x0 0x134>;
+               power-domains = <&k3_pds 48 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 48 0>, <&k3_clks 48 1>;
+               clock-names = "clk_ahb", "clk_xin";
+               interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
+               ti,otap-del-sel-legacy = <0x0>;
+               ti,otap-del-sel-mmc-hs = <0x0>;
+               ti,otap-del-sel-sd-hs = <0x0>;
+               ti,otap-del-sel-sdr12 = <0x0>;
+               ti,otap-del-sel-sdr25 = <0x0>;
+               ti,otap-del-sel-sdr50 = <0x8>;
+               ti,otap-del-sel-sdr104 = <0x7>;
+               ti,otap-del-sel-ddr50 = <0x4>;
+               ti,otap-del-sel-ddr52 = <0x4>;
+               ti,otap-del-sel-hs200 = <0x7>;
+               ti,clkbuf-sel = <0x7>;
+               ti,trm-icp = <0x8>;
+               dma-coherent;
+       };
+
        main_i2c0: i2c@2000000 {
                compatible = "ti,am654-i2c", "ti,omap4-i2c";
                reg = <0x0 0x2000000 0x0 0x100>;
diff --git a/arch/arm/dts/k3-am654-base-board-u-boot.dtsi 
b/arch/arm/dts/k3-am654-base-board-u-boot.dtsi
index d75d1b1c28..88fab99698 100644
--- a/arch/arm/dts/k3-am654-base-board-u-boot.dtsi
+++ b/arch/arm/dts/k3-am654-base-board-u-boot.dtsi
@@ -19,28 +19,6 @@
 
 &cbass_main{
        u-boot,dm-spl;
-
-       sdhci1: sdhci@04FA0000 {
-               compatible = "ti,am654-sdhci-5.1";
-               reg = <0x0 0x4FA0000 0x0 0x1000>,
-                     <0x0 0x4FB0000 0x0 0x400>;
-               clocks =<&k3_clks 48 0>, <&k3_clks 48 1>;
-               clock-names = "clk_ahb", "clk_xin";
-               power-domains = <&k3_pds 48 TI_SCI_PD_EXCLUSIVE>;
-               max-frequency = <25000000>;
-               ti,otap-del-sel-legacy = <0x0>;
-               ti,otap-del-sel-mmc-hs = <0x0>;
-               ti,otap-del-sel-sd-hs = <0x0>;
-               ti,otap-del-sel-sdr12 = <0x0>;
-               ti,otap-del-sel-sdr25 = <0x0>;
-               ti,otap-del-sel-sdr50 = <0x8>;
-               ti,otap-del-sel-sdr104 = <0x7>;
-               ti,otap-del-sel-ddr50 = <0x4>;
-               ti,otap-del-sel-ddr52 = <0x4>;
-               ti,otap-del-sel-hs200 = <0x7>;
-               ti,trm-icp = <0x8>;
-       };
-
 };
 
 &cbass_mcu {
@@ -107,38 +85,6 @@
                u-boot,dm-spl;
        };
 
-       main_mmc0_pins_default: main_mmc0_pins_default {
-               pinctrl-single,pins = <
-                       AM65X_IOPAD(0x01a8, PIN_INPUT_PULLDOWN, 0)      /* 
(B25) MMC0_CLK */
-                       AM65X_IOPAD(0x01aC, PIN_INPUT_PULLUP, 0)        /* 
(B27) MMC0_CMD */
-                       AM65X_IOPAD(0x01a4, PIN_INPUT_PULLUP, 0)        /* 
(A26) MMC0_DAT0 */
-                       AM65X_IOPAD(0x01a0, PIN_INPUT_PULLUP, 0)        /* 
(E25) MMC0_DAT1 */
-                       AM65X_IOPAD(0x019c, PIN_INPUT_PULLUP, 0)        /* 
(C26) MMC0_DAT2 */
-                       AM65X_IOPAD(0x0198, PIN_INPUT_PULLUP, 0)        /* 
(A25) MMC0_DAT3 */
-                       AM65X_IOPAD(0x0194, PIN_INPUT_PULLUP, 0)        /* 
(E24) MMC0_DAT4 */
-                       AM65X_IOPAD(0x0190, PIN_INPUT_PULLUP, 0)        /* 
(A24) MMC0_DAT5 */
-                       AM65X_IOPAD(0x018c, PIN_INPUT_PULLUP, 0)        /* 
(B26) MMC0_DAT6 */
-                       AM65X_IOPAD(0x0188, PIN_INPUT_PULLUP, 0)        /* 
(D25) MMC0_DAT7 */
-                       AM65X_IOPAD(0x01b4, PIN_INPUT_PULLUP, 0)        /* 
(A23) MMC0_SDCD */
-                       AM65X_IOPAD(0x01b0, PIN_INPUT, 0)               /* 
(C25) MMC0_DS */
-               >;
-               u-boot,dm-spl;
-       };
-
-       main_mmc1_pins_default: main_mmc1_pins_default {
-               pinctrl-single,pins = <
-                       AM65X_IOPAD(0x02d4, PIN_INPUT_PULLDOWN, 0)      /* 
(C27) MMC1_CLK */
-                       AM65X_IOPAD(0x02d8, PIN_INPUT_PULLUP, 0)        /* 
(C28) MMC1_CMD */
-                       AM65X_IOPAD(0x02d0, PIN_INPUT_PULLUP, 0)        /* 
(D28) MMC1_DAT0 */
-                       AM65X_IOPAD(0x02cc, PIN_INPUT_PULLUP, 0)        /* 
(E27) MMC1_DAT1 */
-                       AM65X_IOPAD(0x02c8, PIN_INPUT_PULLUP, 0)        /* 
(D26) MMC1_DAT2 */
-                       AM65X_IOPAD(0x02c4, PIN_INPUT_PULLUP, 0)        /* 
(D27) MMC1_DAT3 */
-                       AM65X_IOPAD(0x02dc, PIN_INPUT_PULLUP, 0)        /* 
(B24) MMC1_SDCD */
-                       AM65X_IOPAD(0x02e0, PIN_INPUT, 0)                       
/* (C24) MMC1_SDWP */
-               >;
-               u-boot,dm-spl;
-       };
-
        usb0_pins_default: usb0_pins_default {
                pinctrl-single,pins = <
                        AM65X_IOPAD(0x02bc, PIN_OUTPUT, 0) /* (AD9) 
USB0_DRVVBUS */
@@ -188,17 +134,20 @@
        status = "okay";
 };
 
+&main_mmc0_pins_default {
+       u-boot,dm-spl;
+};
+
+&main_mmc1_pins_default {
+       u-boot,dm-spl;
+};
+
 &sdhci0 {
        u-boot,dm-spl;
 };
 
 &sdhci1 {
        u-boot,dm-spl;
-       status = "okay";
-       pinctrl-names = "default";
-       pinctrl-0 = <&main_mmc1_pins_default>;
-       sdhci-caps-mask = <0x7 0x0>;
-       ti,driver-strength-ohm = <50>;
 };
 
 &mcu_cpsw {
diff --git a/arch/arm/dts/k3-am654-base-board.dts 
b/arch/arm/dts/k3-am654-base-board.dts
index 3ebf4af5e4..33a1b9fdc4 100644
--- a/arch/arm/dts/k3-am654-base-board.dts
+++ b/arch/arm/dts/k3-am654-base-board.dts
@@ -59,6 +59,19 @@
                >;
        };
 
+       main_mmc1_pins_default: main_mmc1_pins_default {
+               pinctrl-single,pins = <
+                       AM65X_IOPAD(0x02d4, PIN_INPUT_PULLDOWN, 0)      /* 
(C27) MMC1_CLK */
+                       AM65X_IOPAD(0x02d8, PIN_INPUT_PULLUP, 0)        /* 
(C28) MMC1_CMD */
+                       AM65X_IOPAD(0x02d0, PIN_INPUT_PULLUP, 0)        /* 
(D28) MMC1_DAT0 */
+                       AM65X_IOPAD(0x02cc, PIN_INPUT_PULLUP, 0)        /* 
(E27) MMC1_DAT1 */
+                       AM65X_IOPAD(0x02c8, PIN_INPUT_PULLUP, 0)        /* 
(D26) MMC1_DAT2 */
+                       AM65X_IOPAD(0x02c4, PIN_INPUT_PULLUP, 0)        /* 
(D27) MMC1_DAT3 */
+                       AM65X_IOPAD(0x02dc, PIN_INPUT_PULLUP, 0)        /* 
(B24) MMC1_SDCD */
+                       AM65X_IOPAD(0x02e0, PIN_INPUT, 0)               /* 
(C24) MMC1_SDWP */
+               >;
+       };
+
        usb1_pins_default: usb1_pins_default {
                pinctrl-single,pins = <
                        AM65X_IOPAD(0x02c0, PIN_OUTPUT, 0) /* (AC8) 
USB1_DRVVBUS */
@@ -122,6 +135,18 @@
        ti,driver-strength-ohm = <50>;
 };
 
+/*
+ * Because of erratas i2025 and i2026 for silicon revision 1.0, the
+ * SD card interface might fail. Boards with sr1.0 are recommended to
+ * disable sdhci1
+ */
+&sdhci1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_mmc1_pins_default>;
+       ti,driver-strength-ohm = <50>;
+       disable-wp;
+};
+
 &wkup_i2c0 {
        pinctrl-names = "default";
        pinctrl-0 = <&wkup_i2c0_pins_default>;
diff --git a/arch/arm/dts/k3-am654-r5-base-board.dts 
b/arch/arm/dts/k3-am654-r5-base-board.dts
index d43a4edc71..a214fb8247 100644
--- a/arch/arm/dts/k3-am654-r5-base-board.dts
+++ b/arch/arm/dts/k3-am654-r5-base-board.dts
@@ -6,7 +6,6 @@
 /dts-v1/;
 
 #include "k3-am654.dtsi"
-#include "k3-am654-base-board-u-boot.dtsi"
 #include "k3-am654-base-board-ddr4-1600MTs.dtsi"
 #include "k3-am654-ddr.dtsi"
 
@@ -213,6 +212,21 @@
                        AM65X_IOPAD(0x0188, PIN_INPUT_PULLUP, 0)        /* 
(D25) MMC0_DAT7 */
                        AM65X_IOPAD(0x01b0, PIN_INPUT, 0)               /* 
(C25) MMC0_DS */
                >;
+               u-boot,dm-spl;
+       };
+
+       main_mmc1_pins_default: main_mmc1_pins_default {
+               pinctrl-single,pins = <
+                       AM65X_IOPAD(0x02d4, PIN_INPUT_PULLDOWN, 0)      /* 
(C27) MMC1_CLK */
+                       AM65X_IOPAD(0x02d8, PIN_INPUT_PULLUP, 0)        /* 
(C28) MMC1_CMD */
+                       AM65X_IOPAD(0x02d0, PIN_INPUT_PULLUP, 0)        /* 
(D28) MMC1_DAT0 */
+                       AM65X_IOPAD(0x02cc, PIN_INPUT_PULLUP, 0)        /* 
(E27) MMC1_DAT1 */
+                       AM65X_IOPAD(0x02c8, PIN_INPUT_PULLUP, 0)        /* 
(D26) MMC1_DAT2 */
+                       AM65X_IOPAD(0x02c4, PIN_INPUT_PULLUP, 0)        /* 
(D27) MMC1_DAT3 */
+                       AM65X_IOPAD(0x02dc, PIN_INPUT_PULLUP, 0)        /* 
(B24) MMC1_SDCD */
+                       AM65X_IOPAD(0x02e0, PIN_INPUT, 0)               /* 
(C24) MMC1_SDWP */
+               >;
+               u-boot,dm-spl;
        };
 };
 
@@ -225,6 +239,7 @@
 &sdhci0 {
        clock-names = "clk_xin";
        clocks = <&clk_200mhz>;
+       pinctrl-0 = <&main_mmc0_pins_default>;
        /delete-property/ power-domains;
        ti,driver-strength-ohm = <50>;
 };
@@ -232,6 +247,7 @@
 &sdhci1 {
        clock-names = "clk_xin";
        clocks = <&clk_200mhz>;
+       pinctrl-0 = <&main_mmc1_pins_default>;
        /delete-property/ power-domains;
        ti,driver-strength-ohm = <50>;
 };
@@ -313,3 +329,5 @@
 &scm_conf {
        u-boot,dm-spl;
 };
+
+#include "k3-am654-base-board-u-boot.dtsi"
-- 
2.17.1

Reply via email to