summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaleb Ethridge <[email protected]>2026-07-16 08:26:49 -0400
committerTom Rini <[email protected]>2026-07-28 12:30:55 -0600
commit1a86b8764f8fc13599faf247b4d2f78b4fc6cd3d (patch)
tree0c90d75cf64bcc8344e53d67fac2952c2f0fa5a2
parent18cab277be9cddd9e70f50b1ab77c849a6254d90 (diff)
arm: dts: Add SD dts for the sc598 EZKIT
The eMMC and SD card on the sc598 share pins, so they cannot be used at the same time. Previously, this was managed with a patch applied by the relevant build system, but patches are brittle and have to be maintained. Instead, they have been replaced with two separate device trees , one for eMMC and one for SD card, which inherit a shared base dtsi. The build system can then select between the default device tree which enabled eMMC or the other device tree which enables SD card support. Signed-off-by: Caleb Ethridge <[email protected]>
-rw-r--r--arch/arm/dts/Makefile2
-rw-r--r--arch/arm/dts/sc598-som-ezkit-sd.dts32
-rw-r--r--arch/arm/dts/sc598-som-ezkit.dts179
-rw-r--r--arch/arm/dts/sc598-som-ezkit.dtsi179
-rw-r--r--arch/arm/dts/sc598-som-ezlite.dts18
-rw-r--r--arch/arm/dts/sc598-som-revD.dtsi16
-rw-r--r--arch/arm/dts/sc598-som-revE.dtsi14
7 files changed, 243 insertions, 197 deletions
diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
index 25234697e6a..dada5f9eba2 100644
--- a/arch/arm/dts/Makefile
+++ b/arch/arm/dts/Makefile
@@ -1154,7 +1154,7 @@ dtb-$(CONFIG_TARGET_SC589_MINI) += sc589-mini.dtb
dtb-$(CONFIG_TARGET_SC589_EZKIT) += sc589-ezkit.dtb
dtb-$(CONFIG_TARGET_SC594_SOM_EZKIT) += sc594-som-ezkit.dtb
dtb-$(CONFIG_TARGET_SC594_SOM_EZLITE) += sc594-som-ezlite.dtb
-dtb-$(CONFIG_TARGET_SC598_SOM_EZKIT) += sc598-som-ezkit.dtb
+dtb-$(CONFIG_TARGET_SC598_SOM_EZKIT) += sc598-som-ezkit.dtb sc598-som-ezkit-sd.dtb
dtb-$(CONFIG_TARGET_SC598_SOM_EZLITE) += sc598-som-ezlite.dtb
ifneq ($(CONFIG_TARGET_IMX8MP_RSB3720A1_4G)$(CONFIG_TARGET_IMX8MP_RSB3720A1_6G),)
diff --git a/arch/arm/dts/sc598-som-ezkit-sd.dts b/arch/arm/dts/sc598-som-ezkit-sd.dts
new file mode 100644
index 00000000000..9b5f60192d5
--- /dev/null
+++ b/arch/arm/dts/sc598-som-ezkit-sd.dts
@@ -0,0 +1,32 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * (C) Copyright 2026 - Analog Devices, Inc.
+ */
+
+/dts-v1/;
+
+#include "sc598-som-ezkit.dtsi"
+
+&som_gpio_expander {
+ som-emmc {
+ gpio-hog;
+ gpios = <8 GPIO_ACTIVE_LOW>;
+ output-low;
+ line-name = "som-emmc-en";
+ bootph-pre-ram;
+ };
+
+ crr-sdcard {
+ gpio-hog;
+ gpios = <9 GPIO_ACTIVE_LOW>;
+ output-high;
+ line-name = "crr-sdcard-en";
+ bootph-pre-ram;
+ };
+};
+
+&mmc0 {
+ max-frequency = <44000000>;
+ bus-width = <4>;
+ no-1-8-v;
+};
diff --git a/arch/arm/dts/sc598-som-ezkit.dts b/arch/arm/dts/sc598-som-ezkit.dts
index 493d2010e32..40350cff105 100644
--- a/arch/arm/dts/sc598-som-ezkit.dts
+++ b/arch/arm/dts/sc598-som-ezkit.dts
@@ -1,179 +1,26 @@
// SPDX-License-Identifier: GPL-2.0-or-later
/*
- * (C) Copyright 2024 - Analog Devices, Inc.
+ * (C) Copyright 2026 - Analog Devices, Inc.
*/
/dts-v1/;
-#include "sc598-som-revE.dtsi"
+#include "sc598-som-ezkit.dtsi"
-/ {
- model = "ADI SC598-SOM-EZKIT";
- compatible = "adi,sc598-som-ezkit", "adi,sc59x-64";
-};
-
-&i2c2 {
- crr_gpio_expander: mcp23017@22 {
- compatible = "microchip,mcp23017";
- reg = <0x22>;
- gpio-controller;
- #gpio-cells = <2>;
+&som_gpio_expander {
+ som-emmc {
+ gpio-hog;
+ gpios = <8 GPIO_ACTIVE_LOW>;
+ output-high;
+ line-name = "som-emmc-en";
bootph-pre-ram;
-
- eeprom {
- gpio-hog;
- gpios = <0 GPIO_ACTIVE_LOW>;
- output-high;
- line-name = "eeprom-en";
- bootph-pre-ram;
- };
-
- pushbutton {
- gpio-hog;
- gpios = <1 GPIO_ACTIVE_LOW>;
- output-high;
- line-name = "pushbutton-en";
- bootph-pre-ram;
- };
-
- microsd {
- gpio-hog;
- gpios = <2 GPIO_ACTIVE_LOW>;
- output-low;
- line-name = "microsd-spi";
- bootph-pre-ram;
- };
-
- ftdi {
- gpio-hog;
- gpios = <3 GPIO_ACTIVE_LOW>;
- output-high;
- line-name = "ftdi-usb-en";
- bootph-pre-ram;
- };
-
- can {
- gpio-hog;
- gpios = <4 GPIO_ACTIVE_LOW>;
- output-low;
- line-name = "can-en";
- bootph-pre-ram;
- };
-
- adau1962 {
- gpio-hog;
- gpios = <6 GPIO_ACTIVE_LOW>;
- output-high;
- line-name = "adau1962-en";
- bootph-pre-ram;
- };
-
- adau1979 {
- gpio-hog;
- gpios = <7 GPIO_ACTIVE_LOW>;
- output-high;
- line-name = "adau1979-en";
- bootph-pre-ram;
- };
-
- octal {
- gpio-hog;
- gpios = <8 GPIO_ACTIVE_LOW>;
- output-high;
- line-name = "octal-spi-cs-en";
- bootph-pre-ram;
- };
-
- spdif-dig {
- gpio-hog;
- gpios = <9 GPIO_ACTIVE_LOW>;
- output-low;
- line-name = "spdif-digital-en";
- bootph-pre-ram;
- };
-
- spdif-opt {
- gpio-hog;
- gpios = <10 GPIO_ACTIVE_LOW>;
- output-low;
- line-name = "spdif-optical-en";
- bootph-pre-ram;
- };
-
- audio-jack {
- gpio-hog;
- gpios = <11 GPIO_ACTIVE_HIGH>;
- output-high;
- line-name = "audio-jack-sel";
- bootph-pre-ram;
- };
-
- mlb {
- gpio-hog;
- gpios = <12 GPIO_ACTIVE_LOW>;
- output-low;
- line-name = "mlb-en";
- bootph-pre-ram;
- };
-
- eth1 {
- gpio-hog;
- gpios = <13 GPIO_ACTIVE_LOW>;
- output-high;
- line-name = "eth1-en";
- bootph-pre-ram;
- };
-
- eth1-reset {
- gpio-hog;
- gpios = <14 GPIO_ACTIVE_LOW>;
- /*
- * USB0 lines are shared with Eth1 so Eth PHY must be held in reset
- * when using the USB
- */
- output-high;
- line-name = "eth1-reset";
- bootph-pre-ram;
- };
-
- gige-reset {
- gpio-hog;
- gpios = <15 GPIO_ACTIVE_LOW>;
- output-high;
- line-name = "gige-reset";
- bootph-pre-ram;
- };
};
-};
-&ospi {
- status = "okay";
-
- clocks = <&clk ADSP_SC598_CLK_OSPI_REFCLK>;
-
- flash0: mx66lm1g45@0 {
- #address-cells = <1>;
- #size-cells = <1>;
- compatible = "jedec,spi-nor", "mx66lm1g45";
- reg = <0>;
-
- /*
- * This is board dependent to some extent. We've been able to
- *set it higher on some boards
- */
- spi-max-frequency = <66666666>;
- cdns,spi-calib-frequency = <10000000>;
-
- spi-tx-bus-width = <8>;
- spi-rx-bus-width = <8>;
-
- tshsl-ns = <50>;
- tsd2d-ns = <50>;
- tchsh-ns = <4>;
- tslch-ns = <4>;
+ crr-sdcard {
+ gpio-hog;
+ gpios = <9 GPIO_ACTIVE_LOW>;
+ output-low;
+ line-name = "crr-sdcard-en";
bootph-pre-ram;
-
- cdns,dqs;
- cdns,phy;
};
};
diff --git a/arch/arm/dts/sc598-som-ezkit.dtsi b/arch/arm/dts/sc598-som-ezkit.dtsi
new file mode 100644
index 00000000000..54ba866db4b
--- /dev/null
+++ b/arch/arm/dts/sc598-som-ezkit.dtsi
@@ -0,0 +1,179 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * (C) Copyright 2024 - Analog Devices, Inc.
+ */
+
+/dts-v1/;
+
+#include "sc598-som-revE.dtsi"
+
+/ {
+ model = "ADI SC598-SOM-EZKIT";
+ compatible = "adi,sc598-som-ezkit", "adi,sc59x-64";
+};
+
+&i2c2 {
+ crr_gpio_expander: mcp23017@22 {
+ compatible = "microchip,mcp23017";
+ reg = <0x22>;
+ gpio-controller;
+ #gpio-cells = <2>;
+ bootph-pre-ram;
+
+ eeprom {
+ gpio-hog;
+ gpios = <0 GPIO_ACTIVE_LOW>;
+ output-high;
+ line-name = "eeprom-en";
+ bootph-pre-ram;
+ };
+
+ pushbutton {
+ gpio-hog;
+ gpios = <1 GPIO_ACTIVE_LOW>;
+ output-high;
+ line-name = "pushbutton-en";
+ bootph-pre-ram;
+ };
+
+ microsd {
+ gpio-hog;
+ gpios = <2 GPIO_ACTIVE_LOW>;
+ output-low;
+ line-name = "microsd-spi";
+ bootph-pre-ram;
+ };
+
+ ftdi {
+ gpio-hog;
+ gpios = <3 GPIO_ACTIVE_LOW>;
+ output-high;
+ line-name = "ftdi-usb-en";
+ bootph-pre-ram;
+ };
+
+ can {
+ gpio-hog;
+ gpios = <4 GPIO_ACTIVE_LOW>;
+ output-low;
+ line-name = "can-en";
+ bootph-pre-ram;
+ };
+
+ adau1962 {
+ gpio-hog;
+ gpios = <6 GPIO_ACTIVE_LOW>;
+ output-high;
+ line-name = "adau1962-en";
+ bootph-pre-ram;
+ };
+
+ adau1979 {
+ gpio-hog;
+ gpios = <7 GPIO_ACTIVE_LOW>;
+ output-high;
+ line-name = "adau1979-en";
+ bootph-pre-ram;
+ };
+
+ octal {
+ gpio-hog;
+ gpios = <8 GPIO_ACTIVE_LOW>;
+ output-low;
+ line-name = "octal-spi-cs-en";
+ bootph-pre-ram;
+ };
+
+ spdif-dig {
+ gpio-hog;
+ gpios = <9 GPIO_ACTIVE_LOW>;
+ output-low;
+ line-name = "spdif-digital-en";
+ bootph-pre-ram;
+ };
+
+ spdif-opt {
+ gpio-hog;
+ gpios = <10 GPIO_ACTIVE_LOW>;
+ output-low;
+ line-name = "spdif-optical-en";
+ bootph-pre-ram;
+ };
+
+ audio-jack {
+ gpio-hog;
+ gpios = <11 GPIO_ACTIVE_HIGH>;
+ output-high;
+ line-name = "audio-jack-sel";
+ bootph-pre-ram;
+ };
+
+ mlb {
+ gpio-hog;
+ gpios = <12 GPIO_ACTIVE_HIGH>;
+ output-high;
+ line-name = "~mlb-en";
+ bootph-pre-ram;
+ };
+
+ eth1 {
+ gpio-hog;
+ gpios = <13 GPIO_ACTIVE_LOW>;
+ output-high;
+ line-name = "eth1-en";
+ bootph-pre-ram;
+ };
+
+ eth1-reset {
+ gpio-hog;
+ gpios = <14 GPIO_ACTIVE_LOW>;
+ /*
+ * USB0 lines are shared with Eth1 so Eth PHY must be held in reset
+ * when using the USB
+ */
+ output-high;
+ line-name = "eth1-reset";
+ bootph-pre-ram;
+ };
+
+ gige-reset {
+ gpio-hog;
+ gpios = <15 GPIO_ACTIVE_LOW>;
+ output-high;
+ line-name = "gige-reset";
+ bootph-pre-ram;
+ };
+ };
+};
+
+&ospi {
+ status = "okay";
+
+ clocks = <&clk ADSP_SC598_CLK_OSPI_REFCLK>;
+
+ flash0: mx66lm1g45@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor", "mx66lm1g45";
+ reg = <0>;
+
+ /*
+ * This is board dependent to some extent. We've been able to
+ *set it higher on some boards
+ */
+ spi-max-frequency = <66666666>;
+ cdns,spi-calib-frequency = <10000000>;
+
+ spi-tx-bus-width = <8>;
+ spi-rx-bus-width = <8>;
+
+ tshsl-ns = <50>;
+ tsd2d-ns = <50>;
+ tchsh-ns = <4>;
+ tslch-ns = <4>;
+ bootph-pre-ram;
+
+ cdns,dqs;
+ cdns,phy;
+ };
+};
diff --git a/arch/arm/dts/sc598-som-ezlite.dts b/arch/arm/dts/sc598-som-ezlite.dts
index 40cabd1db0d..3424a967caa 100644
--- a/arch/arm/dts/sc598-som-ezlite.dts
+++ b/arch/arm/dts/sc598-som-ezlite.dts
@@ -12,6 +12,24 @@
compatible = "adi,sc598-som-ezlite", "adi,sc59x-64";
};
+&som_gpio_expander {
+ som-emmc {
+ gpio-hog;
+ gpios = <8 GPIO_ACTIVE_LOW>;
+ output-high;
+ line-name = "som-emmc-en";
+ bootph-pre-ram;
+ };
+
+ crr-sdcard {
+ gpio-hog;
+ gpios = <9 GPIO_ACTIVE_LOW>;
+ output-low;
+ line-name = "crr-sdcard-en";
+ bootph-pre-ram;
+ };
+};
+
&i2c2 {
crr_gpio_expander: adp5588@30 {
compatible = "adi,adp5588";
diff --git a/arch/arm/dts/sc598-som-revD.dtsi b/arch/arm/dts/sc598-som-revD.dtsi
index 06d550b8532..0eaadc25c90 100644
--- a/arch/arm/dts/sc598-som-revD.dtsi
+++ b/arch/arm/dts/sc598-som-revD.dtsi
@@ -73,22 +73,6 @@
line-name = "uart0-flow-en";
bootph-pre-ram;
};
-
- som-emmc {
- gpio-hog;
- gpios = <8 GPIO_ACTIVE_LOW>;
- output-high;
- line-name = "som-emmc-en";
- bootph-pre-ram;
- };
-
- crr-sdcard {
- gpio-hog;
- gpios = <9 GPIO_ACTIVE_LOW>;
- output-low;
- line-name = "crr-sdcard-en";
- bootph-pre-ram;
- };
};
};
diff --git a/arch/arm/dts/sc598-som-revE.dtsi b/arch/arm/dts/sc598-som-revE.dtsi
index 1f48d52109b..212e8334fd9 100644
--- a/arch/arm/dts/sc598-som-revE.dtsi
+++ b/arch/arm/dts/sc598-som-revE.dtsi
@@ -47,20 +47,6 @@
line-name = "som-flash-cs-en";
};
- som-emmc {
- gpio-hog;
- gpios = <8 GPIO_ACTIVE_LOW>;
- output-high;
- line-name = "som-emmc-en";
- };
-
- crr-sdcard {
- gpio-hog;
- gpios = <9 GPIO_ACTIVE_LOW>;
- output-low;
- line-name = "crr-sdcard-en";
- };
-
led-ds3 {
gpio-hog;
gpios = <15 GPIO_ACTIVE_LOW>;