From: Caleb Ethridge <[email protected]> The eMMC and SD card on the sc598 share pins, so they cannot both be active at the same time.
Previously, this was managed with a patch applied by the relevant build system. This patch replaces the build system patch with dt overlays which will create two separate device trees, one for eMMC and one for the SD card, which can then be selected by the build system. Signed-off-by: Caleb Ethridge <[email protected]> --- arch/arm/dts/Makefile | 5 +++++ arch/arm/dts/sc598-som-emmc.dtso | 27 +++++++++++++++++++++++++ arch/arm/dts/sc598-som-ezlite.dts | 18 +++++++++++++++++ arch/arm/dts/sc598-som-revD.dtsi | 16 --------------- arch/arm/dts/sc598-som-revE.dtsi | 14 ------------- arch/arm/dts/sc598-som-sd.dtso | 33 +++++++++++++++++++++++++++++++ board/adi/sc598-som-ezkit/Kconfig | 2 +- 7 files changed, 84 insertions(+), 31 deletions(-) create mode 100644 arch/arm/dts/sc598-som-emmc.dtso create mode 100644 arch/arm/dts/sc598-som-sd.dtso diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile index 25234697e6a..fb8a91f324f 100644 --- a/arch/arm/dts/Makefile +++ b/arch/arm/dts/Makefile @@ -1156,6 +1156,11 @@ 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_EZLITE) += sc598-som-ezlite.dtb +dtb-$(CONFIG_TARGET_SC598_SOM_EZKIT) += sc598-som-emmc.dtbo sc598-som-sd.dtbo \ + sc598-som-ezkit-emmc.dtb sc598-som-ezkit-sd.dtb + +sc598-som-ezkit-emmc-dtbs := sc598-som-ezkit.dtb sc598-som-emmc.dtbo +sc598-som-ezkit-sd-dtbs := sc598-som-ezkit.dtb sc598-som-sd.dtbo ifneq ($(CONFIG_TARGET_IMX8MP_RSB3720A1_4G)$(CONFIG_TARGET_IMX8MP_RSB3720A1_6G),) dtb-y += imx8mp-rsb3720-a1.dtb diff --git a/arch/arm/dts/sc598-som-emmc.dtso b/arch/arm/dts/sc598-som-emmc.dtso new file mode 100644 index 00000000000..67007e1efb2 --- /dev/null +++ b/arch/arm/dts/sc598-som-emmc.dtso @@ -0,0 +1,27 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * (C) Copyright 2026 - Analog Devices, Inc. + */ + +/dts-v1/; +/plugin/; + +#include <dt-bindings/gpio/gpio.h> + +&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; + }; +}; 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>; diff --git a/arch/arm/dts/sc598-som-sd.dtso b/arch/arm/dts/sc598-som-sd.dtso new file mode 100644 index 00000000000..afe9181474b --- /dev/null +++ b/arch/arm/dts/sc598-som-sd.dtso @@ -0,0 +1,33 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * (C) Copyright 2026 - Analog Devices, Inc. + */ + +/dts-v1/; +/plugin/; + +#include <dt-bindings/gpio/gpio.h> + +&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/board/adi/sc598-som-ezkit/Kconfig b/board/adi/sc598-som-ezkit/Kconfig index 9abecbe1dde..e8298b1a7ab 100644 --- a/board/adi/sc598-som-ezkit/Kconfig +++ b/board/adi/sc598-som-ezkit/Kconfig @@ -14,7 +14,7 @@ config SYS_CONFIG_NAME default "sc598-som" config DEFAULT_DEVICE_TREE - default "sc598-som-ezkit" + default "sc598-som-ezkit-emmc" config ADI_IMAGE default "minimal" -- 2.43.0

