summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Rini <[email protected]>2026-06-05 11:37:51 -0600
committerTom Rini <[email protected]>2026-06-05 11:37:51 -0600
commit9e87893c24d1f21350e69bc222e6a3214c933b3b (patch)
tree850c8dc72b51bb793f4491a6d0005522399802c0
parentb8b7761e89862c1af3c57a958f611a783f2c1f6a (diff)
parent3782bf8a0ad1abee3a2a537b9180b63d7ed22d40 (diff)
Merge tag 'u-boot-imx-next-20260605' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx into next
CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/30357 - Several conversions to OF_UPSTREAM. - Improvements for TQMa6UL boards. - Add iMX8MP UltraLite Part CPU type.
-rw-r--r--MAINTAINERS1
-rw-r--r--arch/arm/dts/Makefile11
-rw-r--r--arch/arm/dts/imx6ul-tqma6ul-common-u-boot.dtsi49
-rw-r--r--arch/arm/dts/imx6ul-tqma6ul1-mba6ulx-u-boot.dtsi10
-rw-r--r--arch/arm/dts/imx6ul-tqma6ul2-mba6ulx-u-boot.dtsi10
-rw-r--r--arch/arm/dts/imx6ul-tqma6ul2l-mba6ulx-u-boot.dtsi10
-rw-r--r--arch/arm/dts/imx6ull-tqma6ull2-mba6ulx-u-boot.dtsi10
-rw-r--r--arch/arm/dts/imx6ull-tqma6ull2l-mba6ulx-u-boot.dtsi10
-rw-r--r--arch/arm/dts/imx7s-tqma7-u-boot.dtsi20
-rw-r--r--arch/arm/dts/imx7ulp-com-u-boot.dtsi2
-rw-r--r--arch/arm/dts/imx7ulp-com.dts79
-rw-r--r--arch/arm/dts/imx7ulp-evk-u-boot.dtsi6
-rw-r--r--arch/arm/dts/imx7ulp-evk.dts133
-rw-r--r--arch/arm/dts/imx7ulp-u-boot.dtsi17
-rw-r--r--arch/arm/dts/imx7ulp.dtsi461
-rw-r--r--arch/arm/dts/imx8mm-icore-mx8mm-ctouch2.dts96
-rw-r--r--arch/arm/dts/imx8mm-icore-mx8mm-edimm2.2.dts96
-rw-r--r--arch/arm/dts/imx8mm-icore-mx8mm.dtsi232
-rw-r--r--arch/arm/dts/imx8mm-phg.dts266
-rw-r--r--arch/arm/dts/imx8mm-tqma8mqml.dtsi341
-rw-r--r--arch/arm/dts/imx8mp-icore-mx8mp-edimm2.2.dts175
-rw-r--r--arch/arm/dts/imx8mp-icore-mx8mp.dtsi186
-rw-r--r--arch/arm/dts/imx8mp-msc-sm2s-ep1-u-boot.dtsi (renamed from arch/arm/dts/imx8mp-msc-sm2s-u-boot.dtsi)0
-rw-r--r--arch/arm/dts/imx8mp-msc-sm2s.dts820
-rw-r--r--arch/arm/dts/imx8ulp-evk-u-boot.dtsi4
-rw-r--r--arch/arm/dts/imx8ulp-u-boot.dtsi4
-rw-r--r--arch/arm/dts/imx91-11x11-evk.dts875
-rw-r--r--arch/arm/dts/imx91-11x11-frdm.dts773
-rw-r--r--arch/arm/dts/imx91-pinfunc.h770
-rw-r--r--arch/arm/dts/imx91-u-boot.dtsi12
-rw-r--r--arch/arm/dts/imx91.dtsi53
-rw-r--r--arch/arm/dts/imx93-11x11-frdm.dts603
-rw-r--r--arch/arm/dts/imx93-u-boot.dtsi12
-rw-r--r--arch/arm/dts/imx93-var-som-symphony.dts323
-rw-r--r--arch/arm/dts/imx93-var-som.dtsi111
-rw-r--r--arch/arm/dts/imx93.dtsi906
-rw-r--r--arch/arm/dts/imx943-evk-u-boot.dtsi4
-rw-r--r--arch/arm/dts/imx943-u-boot.dtsi19
-rw-r--r--arch/arm/dts/imx95-15x15-evk-u-boot.dtsi4
-rw-r--r--arch/arm/dts/imx95-19x19-evk-u-boot.dtsi4
-rw-r--r--arch/arm/dts/imx95-toradex-smarc-dev-u-boot.dtsi4
-rw-r--r--arch/arm/dts/imx95-u-boot.dtsi14
-rw-r--r--arch/arm/dts/imx95-verdin-wifi-dev-u-boot.dtsi4
-rw-r--r--arch/arm/dts/imx952-u-boot.dtsi14
-rw-r--r--arch/arm/dts/mba6ulx-u-boot.dtsi26
-rw-r--r--arch/arm/include/asm/arch-imx/cpu.h2
-rw-r--r--arch/arm/include/asm/arch-imx8ulp/imx-regs.h2
-rw-r--r--arch/arm/include/asm/arch-imx9/ddr.h30
-rw-r--r--arch/arm/include/asm/arch-imx9/imx-regs.h9
-rw-r--r--arch/arm/include/asm/mach-imx/sys_proto.h5
-rw-r--r--arch/arm/lib/gic-v3-its.c3
-rw-r--r--arch/arm/mach-imx/cmd_qb.c2
-rw-r--r--arch/arm/mach-imx/cpu.c4
-rw-r--r--arch/arm/mach-imx/imx8m/Kconfig4
-rw-r--r--arch/arm/mach-imx/imx8m/soc.c16
-rw-r--r--arch/arm/mach-imx/imx8ulp/soc.c12
-rw-r--r--arch/arm/mach-imx/imx9/Kconfig4
-rw-r--r--arch/arm/mach-imx/imx9/qb.c28
-rw-r--r--arch/arm/mach-imx/imx9/scmi/soc.c13
-rw-r--r--arch/arm/mach-imx/imx9/soc.c14
-rw-r--r--arch/arm/mach-imx/mx6/Kconfig21
-rw-r--r--arch/arm/mach-imx/mx7ulp/Kconfig2
-rw-r--r--arch/arm/mach-imx/mx7ulp/soc.c22
-rw-r--r--board/tq/MAINTAINERS2
-rw-r--r--board/tq/common/Kconfig5
-rw-r--r--board/tq/common/Makefile1
-rw-r--r--board/tq/common/tq_sysinfo.c37
-rw-r--r--board/tq/common/tq_sysinfo.h15
-rw-r--r--board/tq/tqma6ul/Kconfig114
-rw-r--r--board/tq/tqma6ul/Makefile16
-rw-r--r--board/tq/tqma6ul/spl.c128
-rw-r--r--board/tq/tqma6ul/spl_mba6ul.c177
-rw-r--r--board/tq/tqma6ul/spl_tqma6ul_ram.c209
-rw-r--r--board/tq/tqma6ul/tqma6ul.c184
-rw-r--r--board/tq/tqma6ul/tqma6ul.cfg23
-rw-r--r--board/tq/tqma6ul/tqma6ul.env47
-rw-r--r--board/tq/tqma6ul/tqma6ul.h25
-rw-r--r--board/tq/tqma6ul/tqma6ul_mba6ul.c138
-rw-r--r--board/tq/tqma7/tqma7.c6
-rw-r--r--board/tq/tqma7/tqma7.env11
-rw-r--r--configs/imx8mm-icore-mx8mm-ctouch2_defconfig2
-rw-r--r--configs/imx8mm-icore-mx8mm-edimm2.2_defconfig2
-rw-r--r--configs/imx8mm_phg_defconfig5
-rw-r--r--configs/imx8mp-icore-mx8mp-edimm2.2_defconfig2
-rw-r--r--configs/imx8ulp_evk_defconfig1
-rw-r--r--configs/imx91_11x11_evk_defconfig2
-rw-r--r--configs/imx91_11x11_evk_inline_ecc_defconfig2
-rw-r--r--configs/imx91_11x11_frdm_defconfig2
-rw-r--r--configs/imx93-phycore_defconfig1
-rw-r--r--configs/imx93_frdm_defconfig2
-rw-r--r--configs/imx93_var_som_defconfig2
-rw-r--r--configs/imx943_evk_defconfig1
-rw-r--r--configs/imx95_15x15_evk_defconfig1
-rw-r--r--configs/imx95_evk.config1
-rw-r--r--configs/kontron-sl-mx6ul_defconfig1
-rw-r--r--configs/msc_sm2s_imx8mp_defconfig2
-rw-r--r--configs/mx7ulp_com_defconfig3
-rw-r--r--configs/mx7ulp_evk_defconfig2
-rw-r--r--configs/mx7ulp_evk_plugin_defconfig2
-rw-r--r--configs/toradex-smarc-imx95_defconfig1
-rw-r--r--configs/tqma6ul_common.config125
-rw-r--r--configs/tqma6ul_mmc.config3
-rw-r--r--configs/tqma6ul_spi.config2
-rw-r--r--configs/tqma6ul_uuu.config20
-rw-r--r--configs/tqma6ullx_mba6ul_mmc_defconfig5
-rw-r--r--configs/tqma6ullx_mba6ul_qspi_defconfig5
-rw-r--r--configs/tqma6ullx_mba6ul_uuu_defconfig5
-rw-r--r--configs/tqma6ullxl_mba6ul_mmc_defconfig6
-rw-r--r--configs/tqma6ullxl_mba6ul_qspi_defconfig6
-rw-r--r--configs/tqma6ullxl_mba6ul_uuu_defconfig6
-rw-r--r--configs/tqma6ulx_mba6ul_mmc_defconfig6
-rw-r--r--configs/tqma6ulx_mba6ul_qspi_defconfig6
-rw-r--r--configs/tqma6ulx_mba6ul_uuu_defconfig6
-rw-r--r--configs/tqma6ulxl_mba6ul_mmc_defconfig6
-rw-r--r--configs/tqma6ulxl_mba6ul_qspi_defconfig6
-rw-r--r--configs/tqma6ulxl_mba6ul_uuu_defconfig6
-rw-r--r--configs/tqma7_common.config1
-rw-r--r--configs/verdin-imx95_defconfig1
-rw-r--r--doc/board/tq/index.rst1
-rw-r--r--doc/board/tq/tqma6ul.rst105
-rw-r--r--doc/device-tree-bindings/sysinfo/tq,eeprom-sysinfo.txt36
-rw-r--r--drivers/clk/Makefile2
-rw-r--r--drivers/cpu/imx8_cpu.c13
-rw-r--r--drivers/sysinfo/Kconfig8
-rw-r--r--drivers/sysinfo/Makefile1
-rw-r--r--drivers/sysinfo/sysinfo-uclass.c12
-rw-r--r--drivers/sysinfo/tq_eeprom.c203
-rw-r--r--drivers/watchdog/ulp_wdog.c79
-rw-r--r--include/configs/imx8ulp_evk.h2
-rw-r--r--include/configs/imx91_evk.h2
-rw-r--r--include/configs/imx91_frdm.h2
-rw-r--r--include/configs/imx93_evk.h3
-rw-r--r--include/configs/imx93_frdm.h3
-rw-r--r--include/configs/imx93_qsb.h2
-rw-r--r--include/configs/imx93_var_som.h3
-rw-r--r--include/configs/imx94_evk.h3
-rw-r--r--include/configs/imx95_evk.h2
-rw-r--r--include/configs/kontron-osm-s-mx93.h2
-rw-r--r--include/configs/mx7ulp_com.h3
-rw-r--r--include/configs/mx7ulp_evk.h3
-rw-r--r--include/configs/phycore_imx91_93.h3
-rw-r--r--include/configs/toradex-smarc-imx95.h2
-rw-r--r--include/configs/tqma6ul.h53
-rw-r--r--include/configs/tqma6ul_mba6ul.h19
-rw-r--r--include/sysinfo.h17
-rw-r--r--include/sysinfo/tq_eeprom.h24
-rw-r--r--test/dm/sysinfo.c16
147 files changed, 2294 insertions, 7499 deletions
diff --git a/MAINTAINERS b/MAINTAINERS
index a55742a0baf..ec7217f39f4 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1865,6 +1865,7 @@ S: Maintained
W: https://www.tq-group.com/en/products/tq-embedded/
F: board/tq/*
F: doc/board/tq/*
+F: drivers/sysinfo/tq_eeprom.c
F: include/configs/tq*.h
F: include/env/tq/*
diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
index 9899ab1df2b..c14069447a1 100644
--- a/arch/arm/dts/Makefile
+++ b/arch/arm/dts/Makefile
@@ -867,10 +867,7 @@ dtb-$(CONFIG_ARCH_IMX8) += \
dtb-$(CONFIG_ARCH_IMX8M) += \
imx8mm-data-modul-edm-sbc.dtb \
- imx8mm-icore-mx8mm-ctouch2.dtb \
- imx8mm-icore-mx8mm-edimm2.2.dtb \
imx8mm-mx8menlo.dtb \
- imx8mm-phg.dtb \
imx8mq-cm.dtb \
imx8mp-data-modul-edm-sbc.dtb \
imx8mp-dhcom-som-overlay-rev100.dtbo \
@@ -879,13 +876,7 @@ dtb-$(CONFIG_ARCH_IMX8M) += \
imx8mp-dhcom-pdk-overlay-eth2xfast.dtbo \
imx8mp-dhcom-drc02.dtb \
imx8mp-dhcom-pdk3-overlay-rev100.dtbo \
- imx8mp-dhcom-picoitx.dtb \
- imx8mp-icore-mx8mp-edimm2.2.dtb \
- imx8mp-msc-sm2s.dtb
-
-dtb-$(CONFIG_ARCH_IMX9) += \
- imx93-11x11-frdm.dtb \
- imx93-var-som-symphony.dtb
+ imx8mp-dhcom-picoitx.dtb
dtb-$(CONFIG_ARCH_IMXRT) += imxrt1020-evk.dtb \
imxrt1170-evk.dtb \
diff --git a/arch/arm/dts/imx6ul-tqma6ul-common-u-boot.dtsi b/arch/arm/dts/imx6ul-tqma6ul-common-u-boot.dtsi
new file mode 100644
index 00000000000..09f94f23074
--- /dev/null
+++ b/arch/arm/dts/imx6ul-tqma6ul-common-u-boot.dtsi
@@ -0,0 +1,49 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
+/*
+ * Copyright (c) 2024-2026 TQ-Systems GmbH <[email protected]>,
+ * D-82229 Seefeld, Germany.
+ * Author: Max Merchel
+ */
+
+/ {
+ aliases {
+ spi0 = &qspi;
+ };
+
+ config {
+ u-boot,mmc-env-offset = <0x100000>;
+ u-boot,mmc-env-offset-redundant = <0x110000>;
+ };
+};
+
+&clks {
+ bootph-pre-ram;
+};
+
+&flash0 {
+ bootph-pre-ram;
+};
+
+&osc {
+ bootph-pre-ram;
+};
+
+&pinctrl_pmic {
+ bootph-pre-ram;
+};
+
+&pinctrl_qspi {
+ bootph-pre-ram;
+};
+
+&pinctrl_usdhc2 {
+ bootph-pre-ram;
+};
+
+&qspi {
+ bootph-pre-ram;
+};
+
+&usdhc2 {
+ bootph-pre-ram;
+};
diff --git a/arch/arm/dts/imx6ul-tqma6ul1-mba6ulx-u-boot.dtsi b/arch/arm/dts/imx6ul-tqma6ul1-mba6ulx-u-boot.dtsi
new file mode 100644
index 00000000000..0917ecfd82a
--- /dev/null
+++ b/arch/arm/dts/imx6ul-tqma6ul1-mba6ulx-u-boot.dtsi
@@ -0,0 +1,10 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
+/*
+ * Copyright (c) 2024-2026 TQ-Systems GmbH <[email protected]>,
+ * D-82229 Seefeld, Germany.
+ * Author: Max Merchel
+ */
+
+#include "imx6ul-u-boot.dtsi"
+#include "imx6ul-tqma6ul-common-u-boot.dtsi"
+#include "mba6ulx-u-boot.dtsi"
diff --git a/arch/arm/dts/imx6ul-tqma6ul2-mba6ulx-u-boot.dtsi b/arch/arm/dts/imx6ul-tqma6ul2-mba6ulx-u-boot.dtsi
new file mode 100644
index 00000000000..0917ecfd82a
--- /dev/null
+++ b/arch/arm/dts/imx6ul-tqma6ul2-mba6ulx-u-boot.dtsi
@@ -0,0 +1,10 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
+/*
+ * Copyright (c) 2024-2026 TQ-Systems GmbH <[email protected]>,
+ * D-82229 Seefeld, Germany.
+ * Author: Max Merchel
+ */
+
+#include "imx6ul-u-boot.dtsi"
+#include "imx6ul-tqma6ul-common-u-boot.dtsi"
+#include "mba6ulx-u-boot.dtsi"
diff --git a/arch/arm/dts/imx6ul-tqma6ul2l-mba6ulx-u-boot.dtsi b/arch/arm/dts/imx6ul-tqma6ul2l-mba6ulx-u-boot.dtsi
new file mode 100644
index 00000000000..0917ecfd82a
--- /dev/null
+++ b/arch/arm/dts/imx6ul-tqma6ul2l-mba6ulx-u-boot.dtsi
@@ -0,0 +1,10 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
+/*
+ * Copyright (c) 2024-2026 TQ-Systems GmbH <[email protected]>,
+ * D-82229 Seefeld, Germany.
+ * Author: Max Merchel
+ */
+
+#include "imx6ul-u-boot.dtsi"
+#include "imx6ul-tqma6ul-common-u-boot.dtsi"
+#include "mba6ulx-u-boot.dtsi"
diff --git a/arch/arm/dts/imx6ull-tqma6ull2-mba6ulx-u-boot.dtsi b/arch/arm/dts/imx6ull-tqma6ull2-mba6ulx-u-boot.dtsi
new file mode 100644
index 00000000000..21fb2ab4ae9
--- /dev/null
+++ b/arch/arm/dts/imx6ull-tqma6ull2-mba6ulx-u-boot.dtsi
@@ -0,0 +1,10 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
+/*
+ * Copyright (c) 2024-2026 TQ-Systems GmbH <[email protected]>,
+ * D-82229 Seefeld, Germany.
+ * Author: Max Merchel
+ */
+
+#include "imx6ull-u-boot.dtsi"
+#include "imx6ul-tqma6ul-common-u-boot.dtsi"
+#include "mba6ulx-u-boot.dtsi"
diff --git a/arch/arm/dts/imx6ull-tqma6ull2l-mba6ulx-u-boot.dtsi b/arch/arm/dts/imx6ull-tqma6ull2l-mba6ulx-u-boot.dtsi
new file mode 100644
index 00000000000..21fb2ab4ae9
--- /dev/null
+++ b/arch/arm/dts/imx6ull-tqma6ull2l-mba6ulx-u-boot.dtsi
@@ -0,0 +1,10 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
+/*
+ * Copyright (c) 2024-2026 TQ-Systems GmbH <[email protected]>,
+ * D-82229 Seefeld, Germany.
+ * Author: Max Merchel
+ */
+
+#include "imx6ull-u-boot.dtsi"
+#include "imx6ul-tqma6ul-common-u-boot.dtsi"
+#include "mba6ulx-u-boot.dtsi"
diff --git a/arch/arm/dts/imx7s-tqma7-u-boot.dtsi b/arch/arm/dts/imx7s-tqma7-u-boot.dtsi
index 2d1d614cd57..2b6bbcc0276 100644
--- a/arch/arm/dts/imx7s-tqma7-u-boot.dtsi
+++ b/arch/arm/dts/imx7s-tqma7-u-boot.dtsi
@@ -9,6 +9,26 @@
#include "imx7s-u-boot.dtsi"
+/ {
+ sysinfo: sysinfo {
+ compatible = "tq,eeprom-sysinfo";
+ nvmem-cells = <&module_info>;
+ nvmem-cell-names = "device_info";
+ };
+};
+
+&m24c64 {
+ nvmem-layout {
+ compatible = "fixed-layout";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ module_info: module-info@20 {
+ reg = <0x20 0x60>;
+ };
+ };
+};
+
&soc {
bootph-pre-ram;
};
diff --git a/arch/arm/dts/imx7ulp-com-u-boot.dtsi b/arch/arm/dts/imx7ulp-com-u-boot.dtsi
index f6d34e1b635..e13bcfe45f4 100644
--- a/arch/arm/dts/imx7ulp-com-u-boot.dtsi
+++ b/arch/arm/dts/imx7ulp-com-u-boot.dtsi
@@ -3,6 +3,8 @@
* Copyright 2019 Foundries.io
*/
+#include "imx7ulp-u-boot.dtsi"
+
&iomuxc1 {
bootph-pre-ram;
};
diff --git a/arch/arm/dts/imx7ulp-com.dts b/arch/arm/dts/imx7ulp-com.dts
deleted file mode 100644
index d76fea3b35c..00000000000
--- a/arch/arm/dts/imx7ulp-com.dts
+++ /dev/null
@@ -1,79 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-//
-// Copyright 2019 NXP
-
-/dts-v1/;
-
-#include "imx7ulp.dtsi"
-#include <dt-bindings/input/input.h>
-
-/ {
- model = "Embedded Artists i.MX7ULP COM";
- compatible = "ea,imx7ulp-com", "fsl,imx7ulp";
-
- chosen {
- stdout-path = &lpuart4;
- };
-
- memory@60000000 {
- device_type = "memory";
- reg = <0x60000000 0x4000000>;
- };
-};
-
-&lpuart4 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_lpuart4>;
- status = "okay";
-};
-
-&usbotg1 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_usbotg1_id>;
- srp-disable;
- hnp-disable;
- adp-disable;
- status = "okay";
-};
-
-&usdhc0 {
- assigned-clocks = <&pcc2 IMX7ULP_CLK_USDHC0>;
- assigned-clock-parents = <&scg1 IMX7ULP_CLK_APLL_PFD1>;
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_usdhc0>;
- non-removable;
- bus-width = <8>;
- no-1-8-v;
- status = "okay";
-};
-
-&iomuxc1 {
- pinctrl_lpuart4: lpuart4grp {
- fsl,pins = <
- IMX7ULP_PAD_PTC3__LPUART4_RX 0x3
- IMX7ULP_PAD_PTC2__LPUART4_TX 0x3
- >;
- };
-
- pinctrl_usbotg1_id: otg1idgrp {
- fsl,pins = <
- IMX7ULP_PAD_PTC13__USB0_ID 0x10003
- >;
- };
-
- pinctrl_usdhc0: usdhc0grp {
- fsl,pins = <
- IMX7ULP_PAD_PTD1__SDHC0_CMD 0x43
- IMX7ULP_PAD_PTD2__SDHC0_CLK 0x10042
- IMX7ULP_PAD_PTD3__SDHC0_D7 0x43
- IMX7ULP_PAD_PTD4__SDHC0_D6 0x43
- IMX7ULP_PAD_PTD5__SDHC0_D5 0x43
- IMX7ULP_PAD_PTD6__SDHC0_D4 0x43
- IMX7ULP_PAD_PTD7__SDHC0_D3 0x43
- IMX7ULP_PAD_PTD8__SDHC0_D2 0x43
- IMX7ULP_PAD_PTD9__SDHC0_D1 0x43
- IMX7ULP_PAD_PTD10__SDHC0_D0 0x43
- IMX7ULP_PAD_PTD11__SDHC0_DQS 0x42
- >;
- };
-};
diff --git a/arch/arm/dts/imx7ulp-evk-u-boot.dtsi b/arch/arm/dts/imx7ulp-evk-u-boot.dtsi
new file mode 100644
index 00000000000..1944a024ecc
--- /dev/null
+++ b/arch/arm/dts/imx7ulp-evk-u-boot.dtsi
@@ -0,0 +1,6 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2026 NXP
+ */
+
+#include "imx7ulp-u-boot.dtsi"
diff --git a/arch/arm/dts/imx7ulp-evk.dts b/arch/arm/dts/imx7ulp-evk.dts
deleted file mode 100644
index eff51e113db..00000000000
--- a/arch/arm/dts/imx7ulp-evk.dts
+++ /dev/null
@@ -1,133 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0+
-/*
- * Copyright 2016 Freescale Semiconductor, Inc.
- * Copyright 2017-2018 NXP
- * Dong Aisheng <[email protected]>
- */
-
-/dts-v1/;
-
-#include "imx7ulp.dtsi"
-
-/ {
- model = "NXP i.MX7ULP EVK";
- compatible = "fsl,imx7ulp-evk", "fsl,imx7ulp";
-
- chosen {
- stdout-path = &lpuart4;
- };
-
- memory@60000000 {
- device_type = "memory";
- reg = <0x60000000 0x40000000>;
- };
-
- backlight {
- compatible = "pwm-backlight";
- pwms = <&tpm4 1 50000 0>;
- brightness-levels = <0 20 25 30 35 40 100>;
- default-brightness-level = <6>;
- status = "okay";
- };
-
- reg_usb_otg1_vbus: regulator-usb-otg1-vbus {
- compatible = "regulator-fixed";
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_usbotg1_vbus>;
- regulator-name = "usb_otg1_vbus";
- regulator-min-microvolt = <5000000>;
- regulator-max-microvolt = <5000000>;
- gpio = <&gpio_ptc 0 GPIO_ACTIVE_HIGH>;
- enable-active-high;
- };
-
- reg_vsd_3v3: regulator-vsd-3v3 {
- compatible = "regulator-fixed";
- regulator-name = "VSD_3V3";
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_usdhc0_rst>;
- gpio = <&gpio_ptd 0 GPIO_ACTIVE_HIGH>;
- enable-active-high;
- };
-};
-
-&lpuart4 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_lpuart4>;
- status = "okay";
-};
-
-&tpm4 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_pwm0>;
- status = "okay";
-};
-
-&usbotg1 {
- vbus-supply = <&reg_usb_otg1_vbus>;
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_usbotg1_id>;
- srp-disable;
- hnp-disable;
- adp-disable;
- disable-over-current;
- status = "okay";
-};
-
-&usdhc0 {
- assigned-clocks = <&pcc2 IMX7ULP_CLK_USDHC0>;
- assigned-clock-parents = <&scg1 IMX7ULP_CLK_APLL_PFD1>;
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_usdhc0>;
- cd-gpios = <&gpio_ptc 10 GPIO_ACTIVE_LOW>;
- vmmc-supply = <&reg_vsd_3v3>;
- status = "okay";
-};
-
-&iomuxc1 {
- pinctrl_lpuart4: lpuart4grp {
- fsl,pins = <
- IMX7ULP_PAD_PTC3__LPUART4_RX 0x3
- IMX7ULP_PAD_PTC2__LPUART4_TX 0x3
- >;
- bias-pull-up;
- };
-
- pinctrl_pwm0: pwm0grp {
- fsl,pins = <
- IMX7ULP_PAD_PTF2__TPM4_CH1 0x2
- >;
- };
-
- pinctrl_usbotg1_vbus: otg1vbusgrp {
- fsl,pins = <
- IMX7ULP_PAD_PTC0__PTC0 0x20000
- >;
- };
-
- pinctrl_usbotg1_id: otg1idgrp {
- fsl,pins = <
- IMX7ULP_PAD_PTC13__USB0_ID 0x10003
- >;
- };
-
- pinctrl_usdhc0: usdhc0grp {
- fsl,pins = <
- IMX7ULP_PAD_PTD1__SDHC0_CMD 0x43
- IMX7ULP_PAD_PTD2__SDHC0_CLK 0x40
- IMX7ULP_PAD_PTD7__SDHC0_D3 0x43
- IMX7ULP_PAD_PTD8__SDHC0_D2 0x43
- IMX7ULP_PAD_PTD9__SDHC0_D1 0x43
- IMX7ULP_PAD_PTD10__SDHC0_D0 0x43
- IMX7ULP_PAD_PTC10__PTC10 0x3 /* CD */
- >;
- };
-
- pinctrl_usdhc0_rst: usdhc0-gpio-rst-grp {
- fsl,pins = <
- IMX7ULP_PAD_PTD0__PTD0 0x3
- >;
- };
-};
diff --git a/arch/arm/dts/imx7ulp-u-boot.dtsi b/arch/arm/dts/imx7ulp-u-boot.dtsi
new file mode 100644
index 00000000000..88cb5716a29
--- /dev/null
+++ b/arch/arm/dts/imx7ulp-u-boot.dtsi
@@ -0,0 +1,17 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2026 NXP
+ */
+
+&ahbbridge0 {
+ wdog2: watchdog@40430000 {
+ compatible = "fsl,imx7ulp-wdt";
+ reg = <0x40430000 0x10000>;
+ interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&pcc2 IMX7ULP_CLK_WDG2>;
+ assigned-clocks = <&pcc2 IMX7ULP_CLK_WDG2>;
+ assigned-clock-parents = <&scg1 IMX7ULP_CLK_FIRC_BUS_CLK>;
+ timeout-sec = <40>;
+ status = "disabled";
+ };
+};
diff --git a/arch/arm/dts/imx7ulp.dtsi b/arch/arm/dts/imx7ulp.dtsi
deleted file mode 100644
index bcec98b9641..00000000000
--- a/arch/arm/dts/imx7ulp.dtsi
+++ /dev/null
@@ -1,461 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0+
-/*
- * Copyright (C) 2016 Freescale Semiconductor, Inc.
- * Copyright 2017-2018 NXP
- * Dong Aisheng <[email protected]>
- */
-
-#include <dt-bindings/clock/imx7ulp-clock.h>
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/interrupt-controller/arm-gic.h>
-
-#include "imx7ulp-pinfunc.h"
-
-/ {
- interrupt-parent = <&intc>;
-
- #address-cells = <1>;
- #size-cells = <1>;
-
- aliases {
- gpio0 = &gpio_ptc;
- gpio1 = &gpio_ptd;
- gpio2 = &gpio_pte;
- gpio3 = &gpio_ptf;
- i2c0 = &lpi2c6;
- i2c1 = &lpi2c7;
- mmc0 = &usdhc0;
- mmc1 = &usdhc1;
- serial0 = &lpuart4;
- serial1 = &lpuart5;
- serial2 = &lpuart6;
- serial3 = &lpuart7;
- usbphy0 = &usbphy1;
- };
-
- cpus {
- #address-cells = <1>;
- #size-cells = <0>;
-
- cpu0: cpu@f00 {
- compatible = "arm,cortex-a7";
- device_type = "cpu";
- reg = <0xf00>;
- };
- };
-
- intc: interrupt-controller@40021000 {
- compatible = "arm,cortex-a7-gic";
- #interrupt-cells = <3>;
- interrupt-controller;
- reg = <0x40021000 0x1000>,
- <0x40022000 0x1000>;
- };
-
- rosc: clock-rosc {
- compatible = "fixed-clock";
- clock-frequency = <32768>;
- clock-output-names = "rosc";
- #clock-cells = <0>;
- };
-
- sosc: clock-sosc {
- compatible = "fixed-clock";
- clock-frequency = <24000000>;
- clock-output-names = "sosc";
- #clock-cells = <0>;
- };
-
- sirc: clock-sirc {
- compatible = "fixed-clock";
- clock-frequency = <16000000>;
- clock-output-names = "sirc";
- #clock-cells = <0>;
- };
-
- firc: clock-firc {
- compatible = "fixed-clock";
- clock-frequency = <48000000>;
- clock-output-names = "firc";
- #clock-cells = <0>;
- };
-
- upll: clock-upll {
- compatible = "fixed-clock";
- clock-frequency = <480000000>;
- clock-output-names = "upll";
- #clock-cells = <0>;
- };
-
- ahbbridge0: bus@40000000 {
- compatible = "simple-bus";
- #address-cells = <1>;
- #size-cells = <1>;
- reg = <0x40000000 0x800000>;
- ranges;
-
- edma1: dma-controller@40080000 {
- #dma-cells = <2>;
- compatible = "fsl,imx7ulp-edma";
- reg = <0x40080000 0x2000>,
- <0x40210000 0x1000>;
- dma-channels = <32>;
- interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
- clock-names = "dma", "dmamux0";
- clocks = <&pcc2 IMX7ULP_CLK_DMA1>,
- <&pcc2 IMX7ULP_CLK_DMA_MUX1>;
- };
-
- crypto: crypto@40240000 {
- compatible = "fsl,sec-v4.0";
- #address-cells = <1>;
- #size-cells = <1>;
- reg = <0x40240000 0x10000>;
- ranges = <0 0x40240000 0x10000>;
- clocks = <&pcc2 IMX7ULP_CLK_CAAM>,
- <&scg1 IMX7ULP_CLK_NIC1_BUS_DIV>;
- clock-names = "aclk", "ipg";
-
- sec_jr0: jr@1000 {
- compatible = "fsl,sec-v4.0-job-ring";
- reg = <0x1000 0x1000>;
- interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
- };
-
- sec_jr1: jr@2000 {
- compatible = "fsl,sec-v4.0-job-ring";
- reg = <0x2000 0x1000>;
- interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
- };
- };
-
- lpuart4: serial@402d0000 {
- compatible = "fsl,imx7ulp-lpuart";
- reg = <0x402d0000 0x1000>;
- interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&pcc2 IMX7ULP_CLK_LPUART4>;
- clock-names = "ipg";
- assigned-clocks = <&pcc2 IMX7ULP_CLK_LPUART4>;
- assigned-clock-parents = <&scg1 IMX7ULP_CLK_SOSC_BUS_CLK>;
- assigned-clock-rates = <24000000>;
- status = "disabled";
- };
-
- lpuart5: serial@402e0000 {
- compatible = "fsl,imx7ulp-lpuart";
- reg = <0x402e0000 0x1000>;
- interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&pcc2 IMX7ULP_CLK_LPUART5>;
- clock-names = "ipg";
- assigned-clocks = <&pcc2 IMX7ULP_CLK_LPUART5>;
- assigned-clock-parents = <&scg1 IMX7ULP_CLK_FIRC>;
- assigned-clock-rates = <48000000>;
- status = "disabled";
- };
-
- tpm4: pwm@40250000 {
- compatible = "fsl,imx7ulp-pwm";
- reg = <0x40250000 0x1000>;
- assigned-clocks = <&pcc2 IMX7ULP_CLK_LPTPM4>;
- assigned-clock-parents = <&scg1 IMX7ULP_CLK_SOSC_BUS_CLK>;
- clocks = <&pcc2 IMX7ULP_CLK_LPTPM4>;
- #pwm-cells = <3>;
- status = "disabled";
- };
-
- tpm5: tpm@40260000 {
- compatible = "fsl,imx7ulp-tpm";
- reg = <0x40260000 0x1000>;
- interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&scg1 IMX7ULP_CLK_NIC1_BUS_DIV>,
- <&pcc2 IMX7ULP_CLK_LPTPM5>;
- clock-names = "ipg", "per";
- };
-
- usbotg1: usb@40330000 {
- compatible = "fsl,imx7ulp-usb", "fsl,imx6ul-usb";
- reg = <0x40330000 0x200>;
- interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&pcc2 IMX7ULP_CLK_USB0>;
- phys = <&usbphy1>;
- fsl,usbmisc = <&usbmisc1 0>;
- ahb-burst-config = <0x0>;
- tx-burst-size-dword = <0x8>;
- rx-burst-size-dword = <0x8>;
- status = "disabled";
- };
-
- usbmisc1: usbmisc@40330200 {
- compatible = "fsl,imx7ulp-usbmisc", "fsl,imx7d-usbmisc";
- #index-cells = <1>;
- reg = <0x40330200 0x200>;
- };
-
- usbphy1: usb-phy@40350000 {
- compatible = "fsl,imx7ulp-usbphy", "fsl,imx6ul-usbphy";
- reg = <0x40350000 0x1000>;
- interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&pcc2 IMX7ULP_CLK_USB_PHY>;
- #phy-cells = <0>;
- };
-
- usdhc0: mmc@40370000 {
- compatible = "fsl,imx7ulp-usdhc", "fsl,imx6sx-usdhc";
- reg = <0x40370000 0x10000>;
- interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&scg1 IMX7ULP_CLK_NIC1_BUS_DIV>,
- <&scg1 IMX7ULP_CLK_NIC1_DIV>,
- <&pcc2 IMX7ULP_CLK_USDHC0>;
- clock-names = "ipg", "ahb", "per";
- bus-width = <4>;
- fsl,tuning-start-tap = <20>;
- fsl,tuning-step = <2>;
- status = "disabled";
- };
-
- usdhc1: mmc@40380000 {
- compatible = "fsl,imx7ulp-usdhc", "fsl,imx6sx-usdhc";
- reg = <0x40380000 0x10000>;
- interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&scg1 IMX7ULP_CLK_NIC1_BUS_DIV>,
- <&scg1 IMX7ULP_CLK_NIC1_DIV>,
- <&pcc2 IMX7ULP_CLK_USDHC1>;
- clock-names = "ipg", "ahb", "per";
- bus-width = <4>;
- fsl,tuning-start-tap = <20>;
- fsl,tuning-step = <2>;
- status = "disabled";
- };
-
- scg1: clock-controller@403e0000 {
- compatible = "fsl,imx7ulp-scg1";
- reg = <0x403e0000 0x10000>;
- clocks = <&rosc>, <&sosc>, <&sirc>,
- <&firc>, <&upll>;
- clock-names = "rosc", "sosc", "sirc",
- "firc", "upll";
- #clock-cells = <1>;
- };
-
- wdog1: watchdog@403d0000 {
- compatible = "fsl,imx7ulp-wdt";
- reg = <0x403d0000 0x10000>;
- interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&pcc2 IMX7ULP_CLK_WDG1>;
- assigned-clocks = <&pcc2 IMX7ULP_CLK_WDG1>;
- assigned-clock-parents = <&scg1 IMX7ULP_CLK_FIRC_BUS_CLK>;
- timeout-sec = <40>;
- };
-
- pcc2: clock-controller@403f0000 {
- compatible = "fsl,imx7ulp-pcc2";
- reg = <0x403f0000 0x10000>;
- #clock-cells = <1>;
- clocks = <&scg1 IMX7ULP_CLK_NIC1_BUS_DIV>,
- <&scg1 IMX7ULP_CLK_NIC1_DIV>,
- <&scg1 IMX7ULP_CLK_DDR_DIV>,
- <&scg1 IMX7ULP_CLK_APLL_PFD2>,
- <&scg1 IMX7ULP_CLK_APLL_PFD1>,
- <&scg1 IMX7ULP_CLK_APLL_PFD0>,
- <&scg1 IMX7ULP_CLK_UPLL>,
- <&scg1 IMX7ULP_CLK_SOSC_BUS_CLK>,
- <&scg1 IMX7ULP_CLK_FIRC_BUS_CLK>,
- <&scg1 IMX7ULP_CLK_ROSC>,
- <&scg1 IMX7ULP_CLK_SPLL_BUS_CLK>;
- clock-names = "nic1_bus_clk", "nic1_clk", "ddr_clk",
- "apll_pfd2", "apll_pfd1", "apll_pfd0",
- "upll", "sosc_bus_clk",
- "firc_bus_clk", "rosc", "spll_bus_clk";
- assigned-clocks = <&pcc2 IMX7ULP_CLK_LPTPM5>;
- assigned-clock-parents = <&scg1 IMX7ULP_CLK_SOSC_BUS_CLK>;
- };
-
- smc1: clock-controller@40410000 {
- compatible = "fsl,imx7ulp-smc1";
- reg = <0x40410000 0x1000>;
- #clock-cells = <1>;
- clocks = <&scg1 IMX7ULP_CLK_CORE_DIV>,
- <&scg1 IMX7ULP_CLK_HSRUN_CORE_DIV>;
- clock-names = "divcore", "hsrun_divcore";
- };
-
- pcc3: clock-controller@40b30000 {
- compatible = "fsl,imx7ulp-pcc3";
- reg = <0x40b30000 0x10000>;
- #clock-cells = <1>;
- clocks = <&scg1 IMX7ULP_CLK_NIC1_BUS_DIV>,
- <&scg1 IMX7ULP_CLK_NIC1_DIV>,
- <&scg1 IMX7ULP_CLK_DDR_DIV>,
- <&scg1 IMX7ULP_CLK_APLL_PFD2>,
- <&scg1 IMX7ULP_CLK_APLL_PFD1>,
- <&scg1 IMX7ULP_CLK_APLL_PFD0>,
- <&scg1 IMX7ULP_CLK_UPLL>,
- <&scg1 IMX7ULP_CLK_SOSC_BUS_CLK>,
- <&scg1 IMX7ULP_CLK_FIRC_BUS_CLK>,
- <&scg1 IMX7ULP_CLK_ROSC>,
- <&scg1 IMX7ULP_CLK_SPLL_BUS_CLK>;
- clock-names = "nic1_bus_clk", "nic1_clk", "ddr_clk",
- "apll_pfd2", "apll_pfd1", "apll_pfd0",
- "upll", "sosc_bus_clk",
- "firc_bus_clk", "rosc", "spll_bus_clk";
- };
- };
-
- ahbbridge1: bus@40800000 {
- compatible = "simple-bus";
- #address-cells = <1>;
- #size-cells = <1>;
- reg = <0x40800000 0x800000>;
- ranges;
-
- lpi2c6: i2c@40a40000 {
- compatible = "fsl,imx7ulp-lpi2c";
- reg = <0x40a40000 0x10000>;
- interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&pcc3 IMX7ULP_CLK_LPI2C6>;
- clock-names = "ipg";
- assigned-clocks = <&pcc3 IMX7ULP_CLK_LPI2C6>;
- assigned-clock-parents = <&scg1 IMX7ULP_CLK_FIRC>;
- assigned-clock-rates = <48000000>;
- status = "disabled";
- };
-
- lpi2c7: i2c@40a50000 {
- compatible = "fsl,imx7ulp-lpi2c";
- reg = <0x40a50000 0x10000>;
- interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&pcc3 IMX7ULP_CLK_LPI2C7>;
- clock-names = "ipg";
- assigned-clocks = <&pcc3 IMX7ULP_CLK_LPI2C7>;
- assigned-clock-parents = <&scg1 IMX7ULP_CLK_FIRC>;
- assigned-clock-rates = <48000000>;
- status = "disabled";
- };
-
- lpuart6: serial@40a60000 {
- compatible = "fsl,imx7ulp-lpuart";
- reg = <0x40a60000 0x1000>;
- interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&pcc3 IMX7ULP_CLK_LPUART6>;
- clock-names = "ipg";
- assigned-clocks = <&pcc3 IMX7ULP_CLK_LPUART6>;
- assigned-clock-parents = <&scg1 IMX7ULP_CLK_FIRC>;
- assigned-clock-rates = <48000000>;
- status = "disabled";
- };
-
- lpuart7: serial@40a70000 {
- compatible = "fsl,imx7ulp-lpuart";
- reg = <0x40a70000 0x1000>;
- interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&pcc3 IMX7ULP_CLK_LPUART7>;
- clock-names = "ipg";
- assigned-clocks = <&pcc3 IMX7ULP_CLK_LPUART7>;
- assigned-clock-parents = <&scg1 IMX7ULP_CLK_FIRC>;
- assigned-clock-rates = <48000000>;
- status = "disabled";
- };
-
- memory-controller@40ab0000 {
- compatible = "fsl,imx7ulp-mmdc", "fsl,imx6q-mmdc";
- reg = <0x40ab0000 0x1000>;
- clocks = <&pcc3 IMX7ULP_CLK_MMDC>;
- };
-
- iomuxc1: pinctrl@40ac0000 {
- compatible = "fsl,imx7ulp-iomuxc1";
- reg = <0x40ac0000 0x1000>;
- };
-
- gpio_ptc: gpio@40ae0000 {
- compatible = "fsl,imx7ulp-gpio", "fsl,vf610-gpio";
- reg = <0x40ae0000 0x1000 0x400f0000 0x40>;
- gpio-controller;
- #gpio-cells = <2>;
- interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
- interrupt-controller;
- #interrupt-cells = <2>;
- clocks = <&pcc2 IMX7ULP_CLK_RGPIO2P1>,
- <&pcc3 IMX7ULP_CLK_PCTLC>;
- clock-names = "gpio", "port";
- gpio-ranges = <&iomuxc1 0 0 20>;
- };
-
- gpio_ptd: gpio@40af0000 {
- compatible = "fsl,imx7ulp-gpio", "fsl,vf610-gpio";
- reg = <0x40af0000 0x1000 0x400f0040 0x40>;
- gpio-controller;
- #gpio-cells = <2>;
- interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
- interrupt-controller;
- #interrupt-cells = <2>;
- clocks = <&pcc2 IMX7ULP_CLK_RGPIO2P1>,
- <&pcc3 IMX7ULP_CLK_PCTLD>;
- clock-names = "gpio", "port";
- gpio-ranges = <&iomuxc1 0 32 12>;
- };
-
- gpio_pte: gpio@40b00000 {
- compatible = "fsl,imx7ulp-gpio", "fsl,vf610-gpio";
- reg = <0x40b00000 0x1000 0x400f0080 0x40>;
- gpio-controller;
- #gpio-cells = <2>;
- interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
- interrupt-controller;
- #interrupt-cells = <2>;
- clocks = <&pcc2 IMX7ULP_CLK_RGPIO2P1>,
- <&pcc3 IMX7ULP_CLK_PCTLE>;
- clock-names = "gpio", "port";
- gpio-ranges = <&iomuxc1 0 64 16>;
- };
-
- gpio_ptf: gpio@40b10000 {
- compatible = "fsl,imx7ulp-gpio", "fsl,vf610-gpio";
- reg = <0x40b10000 0x1000 0x400f00c0 0x40>;
- gpio-controller;
- #gpio-cells = <2>;
- interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
- interrupt-controller;
- #interrupt-cells = <2>;
- clocks = <&pcc2 IMX7ULP_CLK_RGPIO2P1>,
- <&pcc3 IMX7ULP_CLK_PCTLF>;
- clock-names = "gpio", "port";
- gpio-ranges = <&iomuxc1 0 96 20>;
- };
- };
-
- m4aips1: bus@41080000 {
- compatible = "simple-bus";
- #address-cells = <1>;
- #size-cells = <1>;
- reg = <0x41080000 0x80000>;
- ranges;
-
- sim: sim@410a3000 {
- compatible = "fsl,imx7ulp-sim", "syscon";
- reg = <0x410a3000 0x1000>;
- };
-
- ocotp: efuse@410a6000 {
- compatible = "fsl,imx7ulp-ocotp", "syscon";
- reg = <0x410a6000 0x4000>;
- clocks = <&scg1 IMX7ULP_CLK_DUMMY>;
- };
- };
-};
diff --git a/arch/arm/dts/imx8mm-icore-mx8mm-ctouch2.dts b/arch/arm/dts/imx8mm-icore-mx8mm-ctouch2.dts
deleted file mode 100644
index 50274540284..00000000000
--- a/arch/arm/dts/imx8mm-icore-mx8mm-ctouch2.dts
+++ /dev/null
@@ -1,96 +0,0 @@
-// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
-/*
- * Copyright (c) 2019 NXP
- * Copyright (c) 2019 Engicam srl
- * Copyright (c) 2020 Amarula Solutions(India)
- */
-
-/dts-v1/;
-#include "imx8mm.dtsi"
-#include "imx8mm-icore-mx8mm.dtsi"
-
-/ {
- model = "Engicam i.Core MX8M Mini C.TOUCH 2.0";
- compatible = "engicam,icore-mx8mm-ctouch2", "engicam,icore-mx8mm",
- "fsl,imx8mm";
-
- chosen {
- stdout-path = &uart2;
- };
-};
-
-&fec1 {
- status = "okay";
-};
-
-&i2c2 {
- clock-frequency = <400000>;
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_i2c2>;
- status = "okay";
-};
-
-&i2c4 {
- clock-frequency = <100000>;
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_i2c4>;
- status = "okay";
-};
-
-&iomuxc {
- pinctrl_i2c2: i2c2grp {
- fsl,pins = <
- MX8MM_IOMUXC_I2C2_SCL_I2C2_SCL 0x400001c3
- MX8MM_IOMUXC_I2C2_SDA_I2C2_SDA 0x400001c3
- >;
- };
-
- pinctrl_i2c4: i2c4grp {
- fsl,pins = <
- MX8MM_IOMUXC_I2C4_SCL_I2C4_SCL 0x400001c3
- MX8MM_IOMUXC_I2C4_SDA_I2C4_SDA 0x400001c3
- >;
- };
-
- pinctrl_uart2: uart2grp {
- fsl,pins = <
- MX8MM_IOMUXC_UART2_RXD_UART2_DCE_RX 0x140
- MX8MM_IOMUXC_UART2_TXD_UART2_DCE_TX 0x140
- >;
- };
-
- pinctrl_usdhc1_gpio: usdhc1gpiogrp {
- fsl,pins = <
- MX8MM_IOMUXC_GPIO1_IO06_GPIO1_IO6 0x41
- >;
- };
-
- pinctrl_usdhc1: usdhc1grp {
- fsl,pins = <
- MX8MM_IOMUXC_SD1_CLK_USDHC1_CLK 0x190
- MX8MM_IOMUXC_SD1_CMD_USDHC1_CMD 0x1d0
- MX8MM_IOMUXC_SD1_DATA0_USDHC1_DATA0 0x1d0
- MX8MM_IOMUXC_SD1_DATA1_USDHC1_DATA1 0x1d0
- MX8MM_IOMUXC_SD1_DATA2_USDHC1_DATA2 0x1d0
- MX8MM_IOMUXC_SD1_DATA3_USDHC1_DATA3 0x1d0
- >;
- };
-};
-
-&uart2 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_uart2>;
- status = "okay";
-};
-
-/* SD */
-&usdhc1 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_usdhc1>, <&pinctrl_usdhc1_gpio>;
- cd-gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
- max-frequency = <50000000>;
- bus-width = <4>;
- no-1-8-v;
- keep-power-in-suspend;
- status = "okay";
-};
diff --git a/arch/arm/dts/imx8mm-icore-mx8mm-edimm2.2.dts b/arch/arm/dts/imx8mm-icore-mx8mm-edimm2.2.dts
deleted file mode 100644
index ddac8bc7ae6..00000000000
--- a/arch/arm/dts/imx8mm-icore-mx8mm-edimm2.2.dts
+++ /dev/null
@@ -1,96 +0,0 @@
-// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
-/*
- * Copyright (c) 2019 NXP
- * Copyright (c) 2019 Engicam srl
- * Copyright (c) 2020 Amarula Solutions(India)
- */
-
-/dts-v1/;
-#include "imx8mm.dtsi"
-#include "imx8mm-icore-mx8mm.dtsi"
-
-/ {
- model = "Engicam i.Core MX8M Mini EDIMM2.2 Starter Kit";
- compatible = "engicam,icore-mx8mm-edimm2.2", "engicam,icore-mx8mm",
- "fsl,imx8mm";
-
- chosen {
- stdout-path = &uart2;
- };
-};
-
-&fec1 {
- status = "okay";
-};
-
-&i2c2 {
- clock-frequency = <400000>;
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_i2c2>;
- status = "okay";
-};
-
-&i2c4 {
- clock-frequency = <100000>;
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_i2c4>;
- status = "okay";
-};
-
-&iomuxc {
- pinctrl_i2c2: i2c2grp {
- fsl,pins = <
- MX8MM_IOMUXC_I2C2_SCL_I2C2_SCL 0x400001c3
- MX8MM_IOMUXC_I2C2_SDA_I2C2_SDA 0x400001c3
- >;
- };
-
- pinctrl_i2c4: i2c4grp {
- fsl,pins = <
- MX8MM_IOMUXC_I2C4_SCL_I2C4_SCL 0x400001c3
- MX8MM_IOMUXC_I2C4_SDA_I2C4_SDA 0x400001c3
- >;
- };
-
- pinctrl_uart2: uart2grp {
- fsl,pins = <
- MX8MM_IOMUXC_UART2_RXD_UART2_DCE_RX 0x140
- MX8MM_IOMUXC_UART2_TXD_UART2_DCE_TX 0x140
- >;
- };
-
- pinctrl_usdhc1_gpio: usdhc1gpiogrp {
- fsl,pins = <
- MX8MM_IOMUXC_GPIO1_IO06_GPIO1_IO6 0x41
- >;
- };
-
- pinctrl_usdhc1: usdhc1grp {
- fsl,pins = <
- MX8MM_IOMUXC_SD1_CLK_USDHC1_CLK 0x190
- MX8MM_IOMUXC_SD1_CMD_USDHC1_CMD 0x1d0
- MX8MM_IOMUXC_SD1_DATA0_USDHC1_DATA0 0x1d0
- MX8MM_IOMUXC_SD1_DATA1_USDHC1_DATA1 0x1d0
- MX8MM_IOMUXC_SD1_DATA2_USDHC1_DATA2 0x1d0
- MX8MM_IOMUXC_SD1_DATA3_USDHC1_DATA3 0x1d0
- >;
- };
-};
-
-&uart2 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_uart2>;
- status = "okay";
-};
-
-/* SD */
-&usdhc1 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_usdhc1>, <&pinctrl_usdhc1_gpio>;
- cd-gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
- max-frequency = <50000000>;
- bus-width = <4>;
- no-1-8-v;
- keep-power-in-suspend;
- status = "okay";
-};
diff --git a/arch/arm/dts/imx8mm-icore-mx8mm.dtsi b/arch/arm/dts/imx8mm-icore-mx8mm.dtsi
deleted file mode 100644
index def7bb5d37c..00000000000
--- a/arch/arm/dts/imx8mm-icore-mx8mm.dtsi
+++ /dev/null
@@ -1,232 +0,0 @@
-// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
-/*
- * Copyright (c) 2018 NXP
- * Copyright (c) 2019 Engicam srl
- * Copyright (c) 2020 Amarula Solutions(India)
- */
-
-/ {
- compatible = "engicam,icore-mx8mm", "fsl,imx8mm";
-};
-
-&A53_0 {
- cpu-supply = <&reg_buck4>;
-};
-
-&A53_1 {
- cpu-supply = <&reg_buck4>;
-};
-
-&A53_2 {
- cpu-supply = <&reg_buck4>;
-};
-
-&A53_3 {
- cpu-supply = <&reg_buck4>;
-};
-
-&fec1 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_fec1>;
- phy-mode = "rgmii-id";
- phy-handle = <&ethphy>;
-
- mdio {
- #address-cells = <1>;
- #size-cells = <0>;
-
- ethphy: ethernet-phy@3 {
- compatible = "ethernet-phy-ieee802.3-c22";
- reg = <3>;
- reset-gpios = <&gpio3 7 GPIO_ACTIVE_LOW>;
- reset-assert-us = <10000>;
- };
- };
-};
-
-&i2c1 {
- clock-frequency = <400000>;
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_i2c1>;
- status = "okay";
-
- pmic@8 {
- compatible = "nxp,pf8121a";
- reg = <0x08>;
-
- regulators {
- reg_ldo1: ldo1 {
- regulator-min-microvolt = <1500000>;
- regulator-max-microvolt = <5000000>;
- regulator-always-on;
- regulator-boot-on;
- };
-
- reg_ldo2: ldo2 {
- regulator-min-microvolt = <1500000>;
- regulator-max-microvolt = <5000000>;
- regulator-always-on;
- regulator-boot-on;
- };
-
- reg_ldo3: ldo3 {
- regulator-min-microvolt = <1500000>;
- regulator-max-microvolt = <5000000>;
- regulator-always-on;
- regulator-boot-on;
- };
-
- reg_ldo4: ldo4 {
- regulator-min-microvolt = <1500000>;
- regulator-max-microvolt = <5000000>;
- regulator-always-on;
- regulator-boot-on;
- };
-
- reg_buck1: buck1 {
- regulator-min-microvolt = <400000>;
- regulator-max-microvolt = <1800000>;
- regulator-always-on;
- regulator-boot-on;
- };
-
- reg_buck2: buck2 {
- regulator-min-microvolt = <400000>;
- regulator-max-microvolt = <1800000>;
- regulator-always-on;
- regulator-boot-on;
- };
-
- reg_buck3: buck3 {
- regulator-min-microvolt = <400000>;
- regulator-max-microvolt = <1800000>;
- regulator-always-on;
- regulator-boot-on;
- };
-
- reg_buck4: buck4 {
- regulator-min-microvolt = <400000>;
- regulator-max-microvolt = <1800000>;
- regulator-always-on;
- regulator-boot-on;
- };
-
- reg_buck5: buck5 {
- regulator-min-microvolt = <400000>;
- regulator-max-microvolt = <1800000>;
- regulator-always-on;
- regulator-boot-on;
- };
-
- reg_buck6: buck6 {
- regulator-min-microvolt = <400000>;
- regulator-max-microvolt = <1800000>;
- regulator-always-on;
- regulator-boot-on;
- };
-
- reg_buck7: buck7 {
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
- regulator-always-on;
- regulator-boot-on;
- };
-
- reg_vsnvs: vsnvs {
- regulator-min-microvolt = <1800000>;
- regulator-max-microvolt = <3300000>;
- regulator-always-on;
- regulator-boot-on;
- };
- };
- };
-};
-
-&iomuxc {
- pinctrl_fec1: fec1grp {
- fsl,pins = <
- MX8MM_IOMUXC_ENET_MDC_ENET1_MDC 0x3
- MX8MM_IOMUXC_ENET_MDIO_ENET1_MDIO 0x3
- MX8MM_IOMUXC_ENET_TD3_ENET1_RGMII_TD3 0x1f
- MX8MM_IOMUXC_ENET_TD2_ENET1_RGMII_TD2 0x1f
- MX8MM_IOMUXC_ENET_TD1_ENET1_RGMII_TD1 0x1f
- MX8MM_IOMUXC_ENET_TD0_ENET1_RGMII_TD0 0x1f
- MX8MM_IOMUXC_ENET_RD3_ENET1_RGMII_RD3 0x91
- MX8MM_IOMUXC_ENET_RD2_ENET1_RGMII_RD2 0x91
- MX8MM_IOMUXC_ENET_RD1_ENET1_RGMII_RD1 0x91
- MX8MM_IOMUXC_ENET_RD0_ENET1_RGMII_RD0 0x91
- MX8MM_IOMUXC_ENET_TXC_ENET1_RGMII_TXC 0x1f
- MX8MM_IOMUXC_ENET_RXC_ENET1_RGMII_RXC 0x91
- MX8MM_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL 0x91
- MX8MM_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL 0x1f
- MX8MM_IOMUXC_NAND_DATA01_GPIO3_IO7 0x19
- >;
- };
-
- pinctrl_i2c1: i2c1grp {
- fsl,pins = <
- MX8MM_IOMUXC_I2C1_SCL_I2C1_SCL 0x400001c3
- MX8MM_IOMUXC_I2C1_SDA_I2C1_SDA 0x400001c3
- >;
- };
-
- pinctrl_usdhc3: usdhc3grp {
- fsl,pins = <
- MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK 0x190
- MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD 0x1d0
- MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0 0x1d0
- MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1 0x1d0
- MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2 0x1d0
- MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2 0x1d0
- MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3 0x1d0
- MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4 0x1d0
- MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5 0x1d0
- MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6 0x1d0
- MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7 0x1d0
- MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE 0x190
- >;
- };
-
- pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
- fsl,pins = <
- MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK 0x194
- MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD 0x1d4
- MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0 0x1d4
- MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1 0x1d4
- MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2 0x1d4
- MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3 0x1d4
- MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4 0x1d4
- MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5 0x1d4
- MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6 0x1d4
- MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7 0x1d4
- MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE 0x194
- >;
- };
-
- pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
- fsl,pins = <
- MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK 0x196
- MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD 0x1d6
- MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0 0x1d6
- MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1 0x1d6
- MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2 0x1d6
- MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3 0x1d6
- MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4 0x1d6
- MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5 0x1d6
- MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6 0x1d6
- MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7 0x1d6
- MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE 0x196
- >;
- };
-};
-
-/* eMMC */
-&usdhc3 {
- pinctrl-names = "default", "state_100mhz", "state_200mhz";
- pinctrl-0 = <&pinctrl_usdhc3>;
- pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
- pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
- bus-width = <8>;
- non-removable;
- status = "okay";
-};
diff --git a/arch/arm/dts/imx8mm-phg.dts b/arch/arm/dts/imx8mm-phg.dts
deleted file mode 100644
index e9447738b10..00000000000
--- a/arch/arm/dts/imx8mm-phg.dts
+++ /dev/null
@@ -1,266 +0,0 @@
-// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
-/*
- * Copyright 2022 Fabio Estevam <[email protected]>
- */
-
-/dts-v1/;
-
-#include "imx8mm-tqma8mqml.dtsi"
-
-/ {
- model = "Cloos i.MX8MM PHG board";
- compatible = "cloos,imx8mm-phg", "tq,imx8mm-tqma8mqml", "fsl,imx8mm";
-
- aliases {
- mmc0 = &usdhc3;
- mmc1 = &usdhc2;
- };
-
- chosen {
- stdout-path = &uart2;
- };
-
- beeper {
- compatible = "gpio-beeper";
- pinctrl-0 = <&pinctrl_beeper>;
- gpios = <&gpio1 0 GPIO_ACTIVE_HIGH>;
- };
-
- leds {
- compatible = "gpio-leds";
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_gpio_led>;
-
- led-0 {
- label = "status1";
- gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
- };
-
- led-1 {
- label = "status2";
- gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>;
- };
-
- led-2 {
- label = "status3";
- gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
- };
-
- led-3 {
- label = "run";
- gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
- };
-
- led-4 {
- label = "powerled";
- gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>;
- };
- };
-
- reg_usb_otg_vbus: regulator-usb-otg-vbus {
- compatible = "regulator-fixed";
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_otg_vbus_ctrl>;
- regulator-name = "usb_otg_vbus";
- regulator-min-microvolt = <5000000>;
- regulator-max-microvolt = <5000000>;
- gpio = <&gpio2 2 GPIO_ACTIVE_HIGH>;
- enable-active-high;
- };
-
- reg_usdhc2_vmmc: regulator-vmmc {
- compatible = "regulator-fixed";
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_reg_usdhc2_vmmc>;
- regulator-name = "VSD_3V3";
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
- gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
- enable-active-high;
- startup-delay-us = <100>;
- off-on-delay-us = <12000>;
- };
-};
-
-&ecspi1 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_ecspi1>;
- cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
- status = "okay";
-};
-
-&fec1 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_fec1>;
- phy-mode = "rgmii-id";
- phy-handle = <&ethphy0>;
- fsl,magic-packet;
- status = "okay";
-
- mdio {
- #address-cells = <1>;
- #size-cells = <0>;
-
- ethphy0: ethernet-phy@0 {
- reg = <0>;
- compatible = "ethernet-phy-ieee802.3-c22";
- };
- };
-};
-
-&i2c2 {
- clock-frequency = <100000>;
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_i2c2>;
- status = "okay";
-};
-
-&uart2 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_uart2>;
- status = "okay";
-};
-
-&usbphynop1 {
- power-domains = <&pgc_otg1>;
-};
-
-&usbphynop2 {
- power-domains = <&pgc_otg2>;
-};
-
-&usbotg1 {
- dr_mode = "host";
- vbus-supply = <&reg_usb_otg_vbus>;
- status = "okay";
-};
-
-&usbotg2 {
- dr_mode = "host";
- status = "okay";
-};
-
-&usdhc2 {
- assigned-clocks = <&clk IMX8MM_CLK_USDHC2>;
- assigned-clock-rates = <400000000>;
- assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_400M>;
- pinctrl-names = "default", "state_100mhz", "state_200mhz";
- pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
- pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
- pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
- bus-width = <4>;
- cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
- disable-wp;
- no-mmc;
- no-sdio;
- sd-uhs-sdr104;
- sd-uhs-ddr50;
- vmmc-supply = <&reg_usdhc2_vmmc>;
- status = "okay";
-};
-
-&iomuxc {
- pinctrl_beeper: beepergrp {
- fsl,pins = <
- MX8MM_IOMUXC_GPIO1_IO00_GPIO1_IO0 0x19
- >;
- };
-
- pinctrl_ecspi1: ecspi1grp {
- fsl,pins = <
- MX8MM_IOMUXC_ECSPI1_MISO_ECSPI1_MISO 0x82
- MX8MM_IOMUXC_ECSPI1_MOSI_ECSPI1_MOSI 0x82
- MX8MM_IOMUXC_ECSPI1_SCLK_ECSPI1_SCLK 0x82
- MX8MM_IOMUXC_ECSPI1_SS0_GPIO5_IO9 0x19
- >;
- };
-
- pinctrl_fec1: fec1grp {
- fsl,pins = <
- MX8MM_IOMUXC_ENET_MDC_ENET1_MDC 0x40000002
- MX8MM_IOMUXC_ENET_MDIO_ENET1_MDIO 0x40000002
- MX8MM_IOMUXC_ENET_TD3_ENET1_RGMII_TD3 0x14
- MX8MM_IOMUXC_ENET_TD2_ENET1_RGMII_TD2 0x14
- MX8MM_IOMUXC_ENET_TD1_ENET1_RGMII_TD1 0x14
- MX8MM_IOMUXC_ENET_TD0_ENET1_RGMII_TD0 0x14
- MX8MM_IOMUXC_ENET_RD3_ENET1_RGMII_RD3 0x90
- MX8MM_IOMUXC_ENET_RD2_ENET1_RGMII_RD2 0x90
- MX8MM_IOMUXC_ENET_RD1_ENET1_RGMII_RD1 0x90
- MX8MM_IOMUXC_ENET_RD0_ENET1_RGMII_RD0 0x90
- MX8MM_IOMUXC_ENET_TXC_ENET1_RGMII_TXC 0x14
- MX8MM_IOMUXC_ENET_RXC_ENET1_RGMII_RXC 0x90
- MX8MM_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL 0x90
- MX8MM_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL 0x14
- MX8MM_IOMUXC_SAI2_RXC_GPIO4_IO22 0x10
- >;
- };
-
- pinctrl_gpio_led: gpioledgrp {
- fsl,pins = <
- MX8MM_IOMUXC_GPIO1_IO10_GPIO1_IO10 0x19
- MX8MM_IOMUXC_GPIO1_IO03_GPIO1_IO3 0x19
- MX8MM_IOMUXC_GPIO1_IO06_GPIO1_IO6 0x19
- MX8MM_IOMUXC_GPIO1_IO07_GPIO1_IO7 0x19
- MX8MM_IOMUXC_GPIO1_IO01_GPIO1_IO1 0x19
- >;
- };
-
- pinctrl_i2c2: i2c2grp {
- fsl,pins = <
- MX8MM_IOMUXC_I2C2_SCL_I2C2_SCL 0x400001c3
- MX8MM_IOMUXC_I2C2_SDA_I2C2_SDA 0x400001c3
- >;
- };
-
- pinctrl_otg_vbus_ctrl: otgvbusctrlgrp {
- fsl,pins = <
- MX8MM_IOMUXC_SD1_DATA0_GPIO2_IO2 0x119
- >;
- };
-
- pinctrl_uart2: uart2grp {
- fsl,pins = <
- MX8MM_IOMUXC_UART2_RXD_UART2_DCE_RX 0x140
- MX8MM_IOMUXC_UART2_TXD_UART2_DCE_TX 0x140
- >;
- };
-
- pinctrl_usdhc2_gpio: usdhc2grpgpiogrp {
- fsl,pins = <
- MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12 0x1c4
- >;
- };
-
- pinctrl_usdhc2: usdhc2grp {
- fsl,pins = <
- MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x190
- MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d0
- MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d0
- MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d0
- MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d0
- MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d0
- >;
- };
-
- pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
- fsl,pins = <
- MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x194
- MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d4
- MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d4
- MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d4
- MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d4
- MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d4
- >;
- };
-
- pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
- fsl,pins = <
- MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x196
- MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d6
- MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d6
- MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d6
- MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d6
- MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d6
- >;
- };
-};
diff --git a/arch/arm/dts/imx8mm-tqma8mqml.dtsi b/arch/arm/dts/imx8mm-tqma8mqml.dtsi
deleted file mode 100644
index f649dfacb4b..00000000000
--- a/arch/arm/dts/imx8mm-tqma8mqml.dtsi
+++ /dev/null
@@ -1,341 +0,0 @@
-// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
-/*
- * Copyright 2020-2021 TQ-Systems GmbH
- */
-
-#include <dt-bindings/phy/phy-imx8-pcie.h>
-#include "imx8mm.dtsi"
-
-/ {
- model = "TQ-Systems GmbH i.MX8MM TQMa8MxML";
- compatible = "tq,imx8mm-tqma8mqml", "fsl,imx8mm";
-
- memory@40000000 {
- device_type = "memory";
- /* our minimum RAM config will be 1024 MiB */
- reg = <0x00000000 0x40000000 0 0x40000000>;
- };
-
- /* e-MMC IO, needed for HS modes */
- reg_vcc1v8: regulator-vcc1v8 {
- compatible = "regulator-fixed";
- regulator-name = "TQMA8MXML_VCC1V8";
- regulator-min-microvolt = <1800000>;
- regulator-max-microvolt = <1800000>;
- };
-
- /* identical to buck4_reg, but should never change */
- reg_vcc3v3: regulator-vcc3v3 {
- compatible = "regulator-fixed";
- regulator-name = "TQMA8MXML_VCC3V3";
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
- };
-
- reserved-memory {
- #address-cells = <2>;
- #size-cells = <2>;
- ranges;
-
- /* global autoconfigured region for contiguous allocations */
- linux,cma {
- compatible = "shared-dma-pool";
- reusable;
- /* 640 MiB */
- size = <0 0x28000000>;
- /* 1024 - 128 MiB, our minimum RAM config will be 1024 MiB */
- alloc-ranges = <0 0x40000000 0 0x78000000>;
- linux,cma-default;
- };
- };
-};
-
-&A53_0 {
- cpu-supply = <&buck2_reg>;
-};
-
-&flexspi {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_flexspi>;
- status = "okay";
-
- flash0: flash@0 {
- compatible = "jedec,spi-nor";
- reg = <0>;
- #address-cells = <1>;
- #size-cells = <1>;
- spi-max-frequency = <84000000>;
- spi-tx-bus-width = <1>;
- spi-rx-bus-width = <4>;
- };
-};
-
-&gpu_2d {
- status = "okay";
-};
-
-&gpu_3d {
- status = "okay";
-};
-
-&i2c1 {
- clock-frequency = <100000>;
- pinctrl-names = "default", "gpio";
- pinctrl-0 = <&pinctrl_i2c1>;
- pinctrl-1 = <&pinctrl_i2c1_gpio>;
- scl-gpios = <&gpio5 14 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
- sda-gpios = <&gpio5 15 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
- status = "okay";
-
- sensor0: temperature-sensor-eeprom@1b {
- compatible = "nxp,se97", "jedec,jc-42.4-temp";
- reg = <0x1b>;
- };
-
- pca9450: pmic@25 {
- compatible = "nxp,pca9450a";
- reg = <0x25>;
-
- /* PMIC PCA9450 PMIC_nINT GPIO1_IO08 */
- pinctrl-0 = <&pinctrl_pmic>;
- pinctrl-names = "default";
- interrupt-parent = <&gpio1>;
- interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
-
- regulators {
- /* V_0V85_SOC: 0.85 */
- buck1_reg: BUCK1 {
- regulator-name = "BUCK1";
- regulator-min-microvolt = <850000>;
- regulator-max-microvolt = <850000>;
- regulator-boot-on;
- regulator-always-on;
- regulator-ramp-delay = <3125>;
- };
-
- /* VDD_ARM */
- buck2_reg: BUCK2 {
- regulator-name = "BUCK2";
- regulator-min-microvolt = <850000>;
- regulator-max-microvolt = <1000000>;
- regulator-boot-on;
- regulator-always-on;
- nxp,dvs-run-voltage = <950000>;
- nxp,dvs-standby-voltage = <850000>;
- regulator-ramp-delay = <3125>;
- };
-
- /* V_0V85_GPU / DRAM / VPU */
- buck3_reg: BUCK3 {
- regulator-name = "BUCK3";
- regulator-min-microvolt = <850000>;
- regulator-max-microvolt = <950000>;
- regulator-boot-on;
- regulator-always-on;
- regulator-ramp-delay = <3125>;
- };
-
- /* VCC3V3 -> VMMC, ... must not be changed */
- buck4_reg: BUCK4 {
- regulator-name = "BUCK4";
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
- regulator-boot-on;
- regulator-always-on;
- };
-
- /* V_1V8 -> VQMMC, SPI-NOR, ... must not be changed */
- buck5_reg: BUCK5 {
- regulator-name = "BUCK5";
- regulator-min-microvolt = <1800000>;
- regulator-max-microvolt = <1800000>;
- regulator-boot-on;
- regulator-always-on;
- };
-
- /* V_1V1 -> RAM, ... must not be changed */
- buck6_reg: BUCK6 {
- regulator-name = "BUCK6";
- regulator-min-microvolt = <1100000>;
- regulator-max-microvolt = <1100000>;
- regulator-boot-on;
- regulator-always-on;
- };
-
- /* V_1V8_SNVS */
- ldo1_reg: LDO1 {
- regulator-name = "LDO1";
- regulator-min-microvolt = <1800000>;
- regulator-max-microvolt = <1800000>;
- regulator-boot-on;
- regulator-always-on;
- };
-
- /* V_0V8_SNVS */
- ldo2_reg: LDO2 {
- regulator-name = "LDO2";
- regulator-min-microvolt = <800000>;
- regulator-max-microvolt = <850000>;
- regulator-boot-on;
- regulator-always-on;
- };
-
- /* V_1V8_ANA */
- ldo3_reg: LDO3 {
- regulator-name = "LDO3";
- regulator-min-microvolt = <1800000>;
- regulator-max-microvolt = <1800000>;
- regulator-boot-on;
- regulator-always-on;
- };
-
- /* V_0V9_MIPI */
- ldo4_reg: LDO4 {
- regulator-name = "LDO4";
- regulator-min-microvolt = <900000>;
- regulator-max-microvolt = <900000>;
- regulator-boot-on;
- regulator-always-on;
- };
-
- /* VCC SD IO - switched using SD2 VSELECT */
- ldo5_reg: LDO5 {
- regulator-name = "LDO5";
- regulator-min-microvolt = <1800000>;
- regulator-max-microvolt = <3300000>;
- };
- };
- };
-
-
- pcf85063: rtc@51 {
- compatible = "nxp,pcf85063a";
- reg = <0x51>;
- quartz-load-femtofarads = <7000>;
- };
-
- eeprom1: eeprom@53 {
- compatible = "nxp,se97b", "atmel,24c02";
- read-only;
- reg = <0x53>;
- pagesize = <16>;
- };
-
- eeprom0: eeprom@57 {
- compatible = "atmel,24c64";
- reg = <0x57>;
- pagesize = <32>;
- };
-};
-
-&pcie_phy {
- fsl,refclk-pad-mode = <IMX8_PCIE_REFCLK_PAD_INPUT>;
- fsl,clkreq-unsupported;
-};
-
-&usdhc3 {
- pinctrl-names = "default", "state_100mhz", "state_200mhz";
- pinctrl-0 = <&pinctrl_usdhc3>;
- pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
- pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
- bus-width = <8>;
- non-removable;
- no-sd;
- no-sdio;
- vmmc-supply = <&reg_vcc3v3>;
- vqmmc-supply = <&reg_vcc1v8>;
- status = "okay";
-};
-
-/*
- * Attention:
- * wdog reset is routed to PMIC, PMIC must be preconfigured to force POR
- * without LDO for SNVS. GPIO1_IO02 must not be used as GPIO.
- */
-&wdog1 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_wdog>;
- fsl,ext-reset-output;
- status = "okay";
-};
-
-&iomuxc {
- pinctrl_flexspi: flexspigrp {
- fsl,pins = <MX8MM_IOMUXC_NAND_ALE_QSPI_A_SCLK 0x82>,
- <MX8MM_IOMUXC_NAND_CE0_B_QSPI_A_SS0_B 0x82>,
- <MX8MM_IOMUXC_NAND_DATA00_QSPI_A_DATA0 0x82>,
- <MX8MM_IOMUXC_NAND_DATA01_QSPI_A_DATA1 0x82>,
- <MX8MM_IOMUXC_NAND_DATA02_QSPI_A_DATA2 0x82>,
- <MX8MM_IOMUXC_NAND_DATA03_QSPI_A_DATA3 0x82>;
- };
-
- pinctrl_i2c1: i2c1grp {
- fsl,pins = <MX8MM_IOMUXC_I2C1_SCL_I2C1_SCL 0x40000004>,
- <MX8MM_IOMUXC_I2C1_SDA_I2C1_SDA 0x40000004>;
- };
-
- pinctrl_i2c1_gpio: i2c1gpiogrp {
- fsl,pins = <MX8MM_IOMUXC_I2C1_SCL_GPIO5_IO14 0x40000004>,
- <MX8MM_IOMUXC_I2C1_SDA_GPIO5_IO15 0x40000004>;
- };
-
- pinctrl_pmic: pmicgrp {
- fsl,pins = <MX8MM_IOMUXC_GPIO1_IO08_GPIO1_IO8 0x94>;
- };
-
- pinctrl_reg_usdhc2_vmmc: regusdhc2vmmcgrp {
- fsl,pins = <MX8MM_IOMUXC_SD2_RESET_B_GPIO2_IO19 0x84>;
- };
-
- pinctrl_usdhc3: usdhc3grp {
- fsl,pins = <MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK 0x1d4>,
- <MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD 0x1d2>,
- <MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0 0x1d4>,
- <MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1 0x1d4>,
- <MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2 0x1d4>,
- <MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3 0x1d4>,
- <MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4 0x1d4>,
- <MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5 0x1d4>,
- <MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6 0x1d4>,
- <MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7 0x1d4>,
- <MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE 0x84>,
- /* option USDHC3_RESET_B not defined, only in RM */
- <MX8MM_IOMUXC_NAND_READY_B_GPIO3_IO16 0x84>;
- };
-
- pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
- fsl,pins = <MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK 0x1d2>,
- <MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD 0x1d2>,
- <MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0 0x1d4>,
- <MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1 0x1d4>,
- <MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2 0x1d4>,
- <MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3 0x1d4>,
- <MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4 0x1d4>,
- <MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5 0x1d4>,
- <MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6 0x1d4>,
- <MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7 0x1d4>,
- <MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE 0x84>,
- /* option USDHC3_RESET_B not defined, only in RM */
- <MX8MM_IOMUXC_NAND_READY_B_GPIO3_IO16 0x84>;
- };
-
- pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
- fsl,pins = <MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK 0x1d6>,
- <MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD 0x1d2>,
- <MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0 0x1d4>,
- <MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1 0x1d4>,
- <MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2 0x1d4>,
- <MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3 0x1d4>,
- <MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4 0x1d4>,
- <MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5 0x1d4>,
- <MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6 0x1d4>,
- <MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7 0x1d4>,
- <MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE 0x84>,
- /* option USDHC3_RESET_B not defined, only in RM */
- <MX8MM_IOMUXC_NAND_READY_B_GPIO3_IO16 0x84>;
- };
-
- pinctrl_wdog: wdoggrp {
- fsl,pins = <MX8MM_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B 0x84>;
- };
-};
diff --git a/arch/arm/dts/imx8mp-icore-mx8mp-edimm2.2.dts b/arch/arm/dts/imx8mp-icore-mx8mp-edimm2.2.dts
deleted file mode 100644
index a02b31c42db..00000000000
--- a/arch/arm/dts/imx8mp-icore-mx8mp-edimm2.2.dts
+++ /dev/null
@@ -1,175 +0,0 @@
-// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
-/*
- * Copyright (c) 2018 NXP
- * Copyright (c) 2019 Engicam srl
- * Copyright (c) 2020 Amarula Solutions(India)
- */
-
-/dts-v1/;
-
-#include "imx8mp.dtsi"
-#include "imx8mp-icore-mx8mp.dtsi"
-#include <dt-bindings/usb/pd.h>
-
-/ {
- model = "Engicam i.Core MX8M Plus EDIMM2.2 Starter Kit";
- compatible = "engicam,icore-mx8mp-edimm2.2", "engicam,icore-mx8mp",
- "fsl,imx8mp";
-
- chosen {
- stdout-path = &uart2;
- };
-
- reg_usb1_vbus: regulator-usb1 {
- compatible = "regulator-fixed";
- enable-active-high;
- gpio = <&gpio1 14 GPIO_ACTIVE_HIGH>;
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_reg_usb1>;
- regulator-max-microvolt = <5000000>;
- regulator-min-microvolt = <5000000>;
- regulator-name = "usb1_host_vbus";
- };
-
- reg_usdhc2_vmmc: regulator-usdhc2 {
- compatible = "regulator-fixed";
- enable-active-high;
- gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_reg_usdhc2_vmmc>;
- regulator-max-microvolt = <3300000>;
- regulator-min-microvolt = <3300000>;
- regulator-name = "VSD_3V3";
- };
-};
-
-/* Ethernet */
-&eqos {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_eqos>;
- phy-handle = <&ethphy0>;
- phy-mode = "rgmii-id";
- status = "okay";
-
- mdio {
- compatible = "snps,dwmac-mdio";
- #address-cells = <1>;
- #size-cells = <0>;
-
- ethphy0: ethernet-phy@7 {
- compatible = "ethernet-phy-ieee802.3-c22";
- micrel,led-mode = <0>;
- reg = <7>;
- };
- };
-};
-
-/* console */
-&uart2 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_uart2>;
- status = "okay";
-};
-
-&usb3_phy0 {
- status = "okay";
-};
-
-&usb3_0 {
- status = "okay";
-};
-
-&usb_dwc3_0 {
- dr_mode = "host";
- status = "okay";
-};
-
-&usb3_phy1 {
- status = "okay";
-};
-
-&usb3_1 {
- status = "okay";
-};
-
-&usb_dwc3_1 {
- dr_mode = "host";
- status = "okay";
-};
-
-/* SDCARD */
-&usdhc2 {
- cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
- bus-width = <4>;
- pinctrl-names = "default" ;
- pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
- vmmc-supply = <&reg_usdhc2_vmmc>;
- status = "okay";
-};
-
-&iomuxc {
- pinctrl_eqos: eqosgrp {
- fsl,pins = <
- MX8MP_IOMUXC_ENET_MDC__ENET_QOS_MDC 0x2
- MX8MP_IOMUXC_ENET_MDIO__ENET_QOS_MDIO 0x2
- MX8MP_IOMUXC_ENET_RD0__ENET_QOS_RGMII_RD0 0x90
- MX8MP_IOMUXC_ENET_RD1__ENET_QOS_RGMII_RD1 0x90
- MX8MP_IOMUXC_ENET_RD2__ENET_QOS_RGMII_RD2 0x90
- MX8MP_IOMUXC_ENET_RD3__ENET_QOS_RGMII_RD3 0x90
- MX8MP_IOMUXC_ENET_RXC__CCM_ENET_QOS_CLOCK_GENERATE_RX_CLK 0x90
- MX8MP_IOMUXC_ENET_RX_CTL__ENET_QOS_RGMII_RX_CTL 0x90
- MX8MP_IOMUXC_ENET_TD0__ENET_QOS_RGMII_TD0 0x16
- MX8MP_IOMUXC_ENET_TD1__ENET_QOS_RGMII_TD1 0x16
- MX8MP_IOMUXC_ENET_TD2__ENET_QOS_RGMII_TD2 0x16
- MX8MP_IOMUXC_ENET_TD3__ENET_QOS_RGMII_TD3 0x16
- MX8MP_IOMUXC_ENET_TX_CTL__ENET_QOS_RGMII_TX_CTL 0x16
- MX8MP_IOMUXC_ENET_TXC__CCM_ENET_QOS_CLOCK_GENERATE_TX_CLK 0x16
- MX8MP_IOMUXC_NAND_DATA01__GPIO3_IO07 0x10
- >;
- };
-
- pinctrl_uart2: uart2grp {
- fsl,pins = <
- MX8MP_IOMUXC_UART2_RXD__UART2_DCE_RX 0x40
- MX8MP_IOMUXC_UART2_TXD__UART2_DCE_TX 0x40
- >;
- };
-
- pinctrl_uart3: uart3grp {
- fsl,pins = <
- MX8MP_IOMUXC_UART3_RXD__UART3_DCE_RX 0x140
- MX8MP_IOMUXC_UART3_TXD__UART3_DCE_TX 0x140
- MX8MP_IOMUXC_SD1_STROBE__UART3_DCE_CTS 0x140
- >;
- };
-
- pinctrl_usdhc2: usdhc2grp {
- fsl,pins = <
- MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK 0x190
- MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD 0x1d0
- MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0 0x1d0
- MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1 0x1d0
- MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2 0x1d0
- MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d0
- MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT 0xc0
- >;
- };
-
- pinctrl_usdhc2_gpio: usdhc2gpiogrp {
- fsl,pins = <
- MX8MP_IOMUXC_SD2_CD_B__GPIO2_IO12 0x1c4
- >;
- };
-
- pinctrl_reg_usb1: regusb1grp {
- fsl,pins = <
- MX8MP_IOMUXC_GPIO1_IO14__GPIO1_IO14 0x10
- >;
- };
-
- pinctrl_reg_usdhc2_vmmc: regusdhc2vmmcgrp {
- fsl,pins = <
- MX8MP_IOMUXC_SD2_RESET_B__GPIO2_IO19 0x40
- >;
- };
-};
diff --git a/arch/arm/dts/imx8mp-icore-mx8mp.dtsi b/arch/arm/dts/imx8mp-icore-mx8mp.dtsi
deleted file mode 100644
index a6319824ea2..00000000000
--- a/arch/arm/dts/imx8mp-icore-mx8mp.dtsi
+++ /dev/null
@@ -1,186 +0,0 @@
-// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
-/*
- * Copyright (c) 2018 NXP
- * Copyright (c) 2019 Engicam srl
- * Copyright (c) 2020 Amarula Solutions(India)
- */
-
-/ {
- compatible = "engicam,icore-mx8mp", "fsl,imx8mp";
-};
-
-&A53_0 {
- cpu-supply = <&buck2>;
-};
-
-&A53_1 {
- cpu-supply = <&buck2>;
-};
-
-&A53_2 {
- cpu-supply = <&buck2>;
-};
-
-&A53_3 {
- cpu-supply = <&buck2>;
-};
-
-&i2c1 {
- clock-frequency = <100000>;
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_i2c1>;
- status = "okay";
-
- pca9450: pmic@25 {
- compatible = "nxp,pca9450c";
- interrupt-parent = <&gpio3>;
- interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_pmic>;
- reg = <0x25>;
-
- regulators {
- buck1: BUCK1 {
- regulator-always-on;
- regulator-boot-on;
- regulator-min-microvolt = <720000>;
- regulator-max-microvolt = <1000000>;
- regulator-name = "BUCK1";
- regulator-ramp-delay = <3125>;
- };
-
- buck2: BUCK2 {
- nxp,dvs-run-voltage = <950000>;
- nxp,dvs-standby-voltage = <850000>;
- regulator-always-on;
- regulator-boot-on;
- regulator-max-microvolt = <1025000>;
- regulator-min-microvolt = <720000>;
- regulator-name = "BUCK2";
- regulator-ramp-delay = <3125>;
- };
-
- buck4: BUCK4 {
- regulator-always-on;
- regulator-boot-on;
- regulator-max-microvolt = <3600000>;
- regulator-min-microvolt = <3000000>;
- regulator-name = "BUCK4";
- };
-
- buck5: BUCK5 {
- regulator-always-on;
- regulator-boot-on;
- regulator-max-microvolt = <1950000>;
- regulator-min-microvolt = <1650000>;
- regulator-name = "BUCK5";
- };
-
- buck6: BUCK6 {
- regulator-always-on;
- regulator-boot-on;
- regulator-max-microvolt = <1155000>;
- regulator-min-microvolt = <1045000>;
- regulator-name = "BUCK6";
- };
-
- ldo1: LDO1 {
- regulator-always-on;
- regulator-boot-on;
- regulator-max-microvolt = <1950000>;
- regulator-min-microvolt = <1650000>;
- regulator-name = "LDO1";
- };
-
- ldo3: LDO3 {
- regulator-always-on;
- regulator-boot-on;
- regulator-max-microvolt = <1890000>;
- regulator-min-microvolt = <1710000>;
- regulator-name = "LDO3";
- };
-
- ldo5: LDO5 {
- regulator-always-on;
- regulator-boot-on;
- regulator-max-microvolt = <3300000>;
- regulator-min-microvolt = <1800000>;
- regulator-name = "LDO5";
- };
- };
- };
-};
-
-/* EMMC */
-&usdhc3 {
- bus-width = <8>;
- non-removable;
- pinctrl-names = "default", "state_100mhz", "state_200mhz";
- pinctrl-0 = <&pinctrl_usdhc3>;
- pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
- pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
- status = "okay";
-};
-
-&iomuxc {
- pinctrl_i2c1: i2c1grp {
- fsl,pins = <
- MX8MP_IOMUXC_I2C1_SCL__I2C1_SCL 0x400001c3
- MX8MP_IOMUXC_I2C1_SDA__I2C1_SDA 0x400001c3
- >;
- };
-
- pinctrl_pmic: pmicgrp {
- fsl,pins = <
- MX8MP_IOMUXC_NAND_CE0_B__GPIO3_IO01 0x41
- >;
- };
-
- pinctrl_usdhc3: usdhc3grp {
- fsl,pins = <
- MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK 0x190
- MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD 0x1d0
- MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0 0x1d0
- MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1 0x1d0
- MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2 0x1d0
- MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3 0x1d0
- MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4 0x1d0
- MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5 0x1d0
- MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6 0x1d0
- MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7 0x1d0
- MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE 0x190
- >;
- };
-
- pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
- fsl,pins = <
- MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK 0x194
- MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD 0x1d4
- MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0 0x1d4
- MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1 0x1d4
- MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2 0x1d4
- MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3 0x1d4
- MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4 0x1d4
- MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5 0x1d4
- MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6 0x1d4
- MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7 0x1d4
- MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE 0x194
- >;
- };
-
- pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
- fsl,pins = <
- MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK 0x196
- MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD 0x1d6
- MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0 0x1d6
- MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1 0x1d6
- MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2 0x1d6
- MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3 0x1d6
- MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4 0x1d6
- MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5 0x1d6
- MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6 0x1d6
- MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7 0x1d6
- MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE 0x196
- >;
- };
-};
diff --git a/arch/arm/dts/imx8mp-msc-sm2s-u-boot.dtsi b/arch/arm/dts/imx8mp-msc-sm2s-ep1-u-boot.dtsi
index ce61ca6671e..ce61ca6671e 100644
--- a/arch/arm/dts/imx8mp-msc-sm2s-u-boot.dtsi
+++ b/arch/arm/dts/imx8mp-msc-sm2s-ep1-u-boot.dtsi
diff --git a/arch/arm/dts/imx8mp-msc-sm2s.dts b/arch/arm/dts/imx8mp-msc-sm2s.dts
deleted file mode 100644
index 5dbec71747c..00000000000
--- a/arch/arm/dts/imx8mp-msc-sm2s.dts
+++ /dev/null
@@ -1,820 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/*
- * Copyright (C) 2022 Avnet Embedded GmbH
- */
-
-/dts-v1/;
-
-#include "imx8mp.dtsi"
-#include <dt-bindings/net/ti-dp83867.h>
-
-/ {
- aliases {
- rtc0 = &sys_rtc;
- rtc1 = &snvs_rtc;
- };
-
- chosen {
- stdout-path = &uart2;
- };
-
- reg_usb0_host_vbus: regulator-usb0-vbus {
- compatible = "regulator-fixed";
- regulator-name = "usb0_host_vbus";
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_usb0_vbus>;
- regulator-min-microvolt = <5000000>;
- regulator-max-microvolt = <5000000>;
- gpio = <&gpio1 12 GPIO_ACTIVE_HIGH>;
- enable-active-high;
- };
-
- reg_usb1_host_vbus: regulator-usb1-vbus {
- compatible = "regulator-fixed";
- regulator-name = "usb1_host_vbus";
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_usb1_vbus>;
- regulator-min-microvolt = <5000000>;
- regulator-max-microvolt = <5000000>;
- gpio = <&gpio1 14 GPIO_ACTIVE_HIGH>;
- enable-active-high;
- };
-
- reg_usdhc2_vmmc: regulator-usdhc2 {
- compatible = "regulator-fixed";
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_usdhc2_vmmc>;
- regulator-name = "VSD_3V3";
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
- gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
- enable-active-high;
- startup-delay-us = <100>;
- off-on-delay-us = <12000>;
- };
-
- reg_flexcan1_xceiver: regulator-flexcan1 {
- compatible = "regulator-fixed";
- regulator-name = "flexcan1-xceiver";
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
- };
-
- reg_flexcan2_xceiver: regulator-flexcan2 {
- compatible = "regulator-fixed";
- regulator-name = "flexcan2-xceiver";
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
- };
-
- lcd0_backlight: backlight-0 {
- compatible = "pwm-backlight";
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_lcd0_backlight>;
- pwms = <&pwm1 0 100000 0>;
- brightness-levels = <0 255>;
- num-interpolated-steps = <255>;
- default-brightness-level = <255>;
- enable-gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
- status = "disabled";
- };
-
- lcd1_backlight: backlight-1 {
- compatible = "pwm-backlight";
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_lcd1_backlight>;
- pwms = <&pwm2 0 100000 0>;
- brightness-levels = <0 255>;
- num-interpolated-steps = <255>;
- default-brightness-level = <255>;
- enable-gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
- status = "disabled";
- };
-
- leds {
- compatible = "gpio-leds";
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_leds>;
- status = "okay";
-
- led-sw {
- label = "sw-led";
- gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
- default-state = "off";
- linux,default-trigger = "heartbeat";
- };
- };
-
- extcon_usb0: extcon-usb0 {
- compatible = "linux,extcon-usb-gpio";
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_usb0_extcon>;
- id-gpio = <&gpio1 3 GPIO_ACTIVE_HIGH>;
- };
-};
-
-&A53_0 {
- cpu-supply = <&vcc_arm>;
-};
-
-&A53_1 {
- cpu-supply = <&vcc_arm>;
-};
-
-&A53_2 {
- cpu-supply = <&vcc_arm>;
-};
-
-&A53_3 {
- cpu-supply = <&vcc_arm>;
-};
-
-&ecspi1 {
- #address-cells = <1>;
- #size-cells = <0>;
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_ecspi1>;
- cs-gpios = <0>, <&gpio2 8 GPIO_ACTIVE_LOW>;
-};
-
-&ecspi2 {
- #address-cells = <1>;
- #size-cells = <0>;
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_ecspi2>;
- cs-gpios = <0>, <&gpio2 9 GPIO_ACTIVE_LOW>;
-};
-
-&eqos {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_eqos>;
- phy-mode = "rgmii-id";
- phy-handle = <&ethphy0>;
- status = "okay";
-
- mdio {
- compatible = "snps,dwmac-mdio";
- #address-cells = <1>;
- #size-cells = <0>;
-
- ethphy0: ethernet-phy@1 {
- compatible = "ethernet-phy-ieee802.3-c22";
- reg = <1>;
- eee-broken-1000t;
- reset-gpios = <&tca6424 16 GPIO_ACTIVE_LOW>;
- reset-assert-us = <1000>;
- reset-deassert-us = <1000>;
- ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
- ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
- ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
- ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
- };
- };
-};
-
-&fec {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_fec>;
- phy-mode = "rgmii-id";
- phy-handle = <&ethphy1>;
- fsl,magic-packet;
- status = "okay";
-
- mdio {
- #address-cells = <1>;
- #size-cells = <0>;
-
- ethphy1: ethernet-phy@1 {
- compatible = "ethernet-phy-ieee802.3-c22";
- reg = <1>;
- eee-broken-1000t;
- reset-gpios = <&tca6424 17 GPIO_ACTIVE_LOW>;
- reset-assert-us = <1000>;
- reset-deassert-us = <1000>;
- ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
- ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
- ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
- ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
- };
- };
-};
-
-&i2c1 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_i2c1>;
- clock-frequency = <400000>;
- status = "okay";
-
- id_eeprom: eeprom@50 {
- compatible = "atmel,24c64";
- reg = <0x50>;
- pagesize = <32>;
- };
-};
-
-&i2c2 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_i2c2>;
- clock-frequency = <400000>;
- status = "disabled";
-};
-
-&i2c3 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_i2c3>;
- clock-frequency = <400000>;
- status = "disabled";
-};
-
-&i2c4 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_i2c4>;
- clock-frequency = <400000>;
- status = "disabled";
-};
-
-&i2c5 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_i2c5>;
- clock-frequency = <400000>;
- status = "disabled";
-};
-
-&i2c6 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_i2c6>;
- clock-frequency = <400000>;
- status = "okay";
-
- tca6424: gpio@22 {
- compatible = "ti,tca6424";
- reg = <0x22>;
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_tca6424>;
- gpio-controller;
- #gpio-cells = <2>;
- gpio-line-names = "BOOT_SEL0#", "BOOT_SEL1#", "BOOT_SEL2#",
- "gbe0_int", "gbe1_int", "pmic_int", "rtc_int", "lvds_int",
- "PCIE_WAKE#", "cam2_rst", "cam2_pwr", "SLEEP#",
- "wifi_pd", "tpm_int", "wifi_int", "PCIE_A_RST#",
- "gbe0_rst", "gbe1_rst", "LID#", "BATLOW#", "CHARGING#",
- "CHARGER_PRSNT#";
- interrupt-parent = <&gpio1>;
- interrupts = <9 IRQ_TYPE_EDGE_RISING>;
- interrupt-controller;
- #interrupt-cells = <2>;
- };
-
- dsi_lvds_bridge: bridge@2d {
- compatible = "ti,sn65dsi83";
- reg = <0x2d>;
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_lvds_bridge>;
- enable-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
- status = "disabled";
- };
-
- pmic: pmic@30 {
- compatible = "ricoh,rn5t567";
- reg = <0x30>;
- interrupt-parent = <&tca6424>;
- interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
-
- regulators {
- DCDC1 {
- regulator-name = "VCC_SOC";
- regulator-always-on;
- regulator-min-microvolt = <950000>;
- regulator-max-microvolt = <950000>;
- };
-
- DCDC2 {
- regulator-name = "VCC_DRAM";
- regulator-always-on;
- regulator-min-microvolt = <1100000>;
- regulator-max-microvolt = <1100000>;
- };
-
- vcc_arm: DCDC3 {
- regulator-name = "VCC_ARM";
- regulator-always-on;
- regulator-min-microvolt = <950000>;
- regulator-max-microvolt = <950000>;
- };
-
- DCDC4 {
- regulator-name = "VCC_1V8";
- regulator-always-on;
- regulator-min-microvolt = <1800000>;
- regulator-max-microvolt = <1800000>;
- };
-
- LDO1 {
- regulator-name = "VCC_LDO1_2V5";
- regulator-always-on;
- regulator-min-microvolt = <2500000>;
- regulator-max-microvolt = <2500000>;
- };
-
- LDO2 {
- regulator-name = "VCC_LDO2_1V8";
- regulator-always-on;
- regulator-min-microvolt = <1800000>;
- regulator-max-microvolt = <1800000>;
- };
-
- LDO3 {
- regulator-name = "VCC_ETH_2V5";
- regulator-always-on;
- regulator-min-microvolt = <2500000>;
- regulator-max-microvolt = <2500000>;
- };
-
- LDO4 {
- regulator-name = "VCC_DDR4_2V5";
- regulator-always-on;
- regulator-min-microvolt = <2500000>;
- regulator-max-microvolt = <2500000>;
- };
-
- LDO5 {
- regulator-name = "VCC_LDO5_1V8";
- regulator-always-on;
- regulator-min-microvolt = <1800000>;
- regulator-max-microvolt = <1800000>;
- };
-
- LDORTC1 {
- regulator-name = "VCC_SNVS_1V8";
- regulator-always-on;
- regulator-min-microvolt = <1800000>;
- regulator-max-microvolt = <1800000>;
- };
-
- LDORTC2 {
- regulator-name = "VCC_SNVS_3V3";
- regulator-always-on;
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
- };
- };
- };
-
- sys_rtc: rtc@32 {
- compatible = "ricoh,r2221tl";
- reg = <0x32>;
- interrupt-parent = <&tca6424>;
- interrupts = <6 IRQ_TYPE_EDGE_FALLING>;
- };
-
- tmp_sensor: temperature-sensor@71 {
- compatible = "ti,tmp103";
- reg = <0x71>;
- };
-};
-
-&flexcan1 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_flexcan1>;
- xceiver-supply = <&reg_flexcan1_xceiver>;
- status = "disabled";
-};
-
-&flexcan2 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_flexcan2>;
- xceiver-supply = <&reg_flexcan2_xceiver>;
- status = "disabled";
-};
-
-&flexspi {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_flexspi0>;
- status = "okay";
-
- qspi_flash: flash@0 {
- compatible = "jedec,spi-nor";
- reg = <0>;
- #address-cells = <1>;
- #size-cells = <1>;
- spi-max-frequency = <80000000>;
- spi-tx-bus-width = <4>;
- spi-rx-bus-width = <4>;
- };
-};
-
-&pwm1 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_pwm1>;
- status = "disabled";
-};
-
-&pwm2 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_pwm2>;
- status = "disabled";
-};
-
-&pwm3 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_pwm3>;
- status = "disabled";
-};
-
-&pwm4 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_pwm4>;
- status = "disabled";
-};
-
-&snvs_pwrkey {
- status = "okay";
-};
-
-&uart1 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_uart1>;
- status = "okay";
-};
-
-&uart2 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_uart2>;
- uart-has-rtscts;
- status = "okay";
-};
-
-&uart3 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_uart3>;
- uart-has-rtscts;
- status = "okay";
-};
-
-&uart4 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_uart4>;
- status = "disabled";
-};
-
-&usb3_phy0 {
- vbus-supply = <&reg_usb0_host_vbus>;
- status = "okay";
-};
-
-&usb3_phy1 {
- vbus-supply = <&reg_usb1_host_vbus>;
- status = "okay";
-};
-
-&usb3_0 {
- status = "okay";
-};
-
-&usb3_1 {
- status = "okay";
-};
-
-&usb_dwc3_0 {
- dr_mode = "otg";
- hnp-disable;
- srp-disable;
- adp-disable;
- extcon = <&extcon_usb0>;
- status = "okay";
-};
-
-&usb_dwc3_1 {
- dr_mode = "host";
- status = "okay";
-};
-
-&usdhc2 {
- assigned-clocks = <&clk IMX8MP_CLK_USDHC2>;
- assigned-clock-rates = <400000000>;
- pinctrl-names = "default", "state_100mhz", "state_200mhz";
- pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
- pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
- pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
- cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
- wp-gpios = <&gpio2 20 GPIO_ACTIVE_HIGH>;
- bus-width = <4>;
- vmmc-supply = <&reg_usdhc2_vmmc>;
- status = "okay";
-};
-
-&usdhc3 {
- assigned-clocks = <&clk IMX8MP_CLK_USDHC3>;
- assigned-clock-rates = <400000000>;
- pinctrl-names = "default", "state_100mhz", "state_200mhz";
- pinctrl-0 = <&pinctrl_usdhc3>;
- pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
- pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
- bus-width = <8>;
- non-removable;
- status = "okay";
-};
-
-&wdog1 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_wdog>;
- fsl,ext-reset-output;
- status = "okay";
-};
-
-&iomuxc {
- pinctrl_ecspi1: ecspi1grp {
- fsl,pins =
- <MX8MP_IOMUXC_ECSPI1_MISO__ECSPI1_MISO 0x82>,
- <MX8MP_IOMUXC_ECSPI1_MOSI__ECSPI1_MOSI 0x82>,
- <MX8MP_IOMUXC_ECSPI1_SCLK__ECSPI1_SCLK 0x82>,
- <MX8MP_IOMUXC_ECSPI1_SS0__ECSPI1_SS0 0x40000>,
- <MX8MP_IOMUXC_SD1_DATA6__GPIO2_IO08 0x40000>;
- };
-
- pinctrl_ecspi2: ecspi2grp {
- fsl,pins =
- <MX8MP_IOMUXC_ECSPI2_MISO__ECSPI2_MISO 0x82>,
- <MX8MP_IOMUXC_ECSPI2_MOSI__ECSPI2_MOSI 0x82>,
- <MX8MP_IOMUXC_ECSPI2_SCLK__ECSPI2_SCLK 0x82>,
- <MX8MP_IOMUXC_ECSPI2_SS0__ECSPI2_SS0 0x40000>,
- <MX8MP_IOMUXC_SD1_DATA7__GPIO2_IO09 0x40000>;
- };
-
- pinctrl_eqos: eqosgrp {
- fsl,pins =
- <MX8MP_IOMUXC_ENET_MDC__ENET_QOS_MDC 0x3>,
- <MX8MP_IOMUXC_ENET_MDIO__ENET_QOS_MDIO 0x3>,
- <MX8MP_IOMUXC_ENET_RD0__ENET_QOS_RGMII_RD0 0x91>,
- <MX8MP_IOMUXC_ENET_RD1__ENET_QOS_RGMII_RD1 0x91>,
- <MX8MP_IOMUXC_ENET_RD2__ENET_QOS_RGMII_RD2 0x91>,
- <MX8MP_IOMUXC_ENET_RD3__ENET_QOS_RGMII_RD3 0x91>,
- <MX8MP_IOMUXC_ENET_RXC__CCM_ENET_QOS_CLOCK_GENERATE_RX_CLK 0x91>,
- <MX8MP_IOMUXC_ENET_RX_CTL__ENET_QOS_RGMII_RX_CTL 0x91>,
- <MX8MP_IOMUXC_ENET_TD0__ENET_QOS_RGMII_TD0 0x1f>,
- <MX8MP_IOMUXC_ENET_TD1__ENET_QOS_RGMII_TD1 0x1f>,
- <MX8MP_IOMUXC_ENET_TD2__ENET_QOS_RGMII_TD2 0x1f>,
- <MX8MP_IOMUXC_ENET_TD3__ENET_QOS_RGMII_TD3 0x1f>,
- <MX8MP_IOMUXC_ENET_TX_CTL__ENET_QOS_RGMII_TX_CTL 0x1f>,
- <MX8MP_IOMUXC_ENET_TXC__CCM_ENET_QOS_CLOCK_GENERATE_TX_CLK 0x1f>;
- };
-
- pinctrl_fec: fecgrp {
- fsl,pins =
- <MX8MP_IOMUXC_SAI1_RXD2__ENET1_MDC 0x3>,
- <MX8MP_IOMUXC_SAI1_RXD3__ENET1_MDIO 0x3>,
- <MX8MP_IOMUXC_SAI1_RXD4__ENET1_RGMII_RD0 0x91>,
- <MX8MP_IOMUXC_SAI1_RXD5__ENET1_RGMII_RD1 0x91>,
- <MX8MP_IOMUXC_SAI1_RXD6__ENET1_RGMII_RD2 0x91>,
- <MX8MP_IOMUXC_SAI1_RXD7__ENET1_RGMII_RD3 0x91>,
- <MX8MP_IOMUXC_SAI1_TXC__ENET1_RGMII_RXC 0x91>,
- <MX8MP_IOMUXC_SAI1_TXFS__ENET1_RGMII_RX_CTL 0x91>,
- <MX8MP_IOMUXC_SAI1_TXD0__ENET1_RGMII_TD0 0x1f>,
- <MX8MP_IOMUXC_SAI1_TXD1__ENET1_RGMII_TD1 0x1f>,
- <MX8MP_IOMUXC_SAI1_TXD2__ENET1_RGMII_TD2 0x1f>,
- <MX8MP_IOMUXC_SAI1_TXD3__ENET1_RGMII_TD3 0x1f>,
- <MX8MP_IOMUXC_SAI1_TXD4__ENET1_RGMII_TX_CTL 0x1f>,
- <MX8MP_IOMUXC_SAI1_TXD5__ENET1_RGMII_TXC 0x1f>;
- };
-
- pinctrl_flexcan1: flexcan1grp {
- fsl,pins =
- <MX8MP_IOMUXC_SAI5_RXD1__CAN1_TX 0x154>,
- <MX8MP_IOMUXC_SAI5_RXD2__CAN1_RX 0x154>;
- };
-
- pinctrl_flexcan2: flexcan2grp {
- fsl,pins =
- <MX8MP_IOMUXC_SAI5_MCLK__CAN2_RX 0x154>,
- <MX8MP_IOMUXC_SAI5_RXD3__CAN2_TX 0x154>;
- };
-
- pinctrl_flexspi0: flexspi0grp {
- fsl,pins =
- <MX8MP_IOMUXC_NAND_ALE__FLEXSPI_A_SCLK 0x1c2>,
- <MX8MP_IOMUXC_NAND_CE0_B__FLEXSPI_A_SS0_B 0x82>,
- <MX8MP_IOMUXC_NAND_DATA00__FLEXSPI_A_DATA00 0x82>,
- <MX8MP_IOMUXC_NAND_DATA01__FLEXSPI_A_DATA01 0x82>,
- <MX8MP_IOMUXC_NAND_DATA02__FLEXSPI_A_DATA02 0x82>,
- <MX8MP_IOMUXC_NAND_DATA03__FLEXSPI_A_DATA03 0x82>,
- <MX8MP_IOMUXC_NAND_DQS__GPIO3_IO14 0x19>;
- };
-
- pinctrl_i2c1: i2c1grp {
- fsl,pins =
- <MX8MP_IOMUXC_I2C1_SCL__I2C1_SCL 0x400001c3>,
- <MX8MP_IOMUXC_I2C1_SDA__I2C1_SDA 0x400001c3>;
- };
-
- pinctrl_i2c2: i2c2grp {
- fsl,pins =
- <MX8MP_IOMUXC_I2C2_SCL__I2C2_SCL 0x400001c3>,
- <MX8MP_IOMUXC_I2C2_SDA__I2C2_SDA 0x400001c3>;
- };
-
- pinctrl_i2c3: i2c3grp {
- fsl,pins =
- <MX8MP_IOMUXC_I2C3_SCL__I2C3_SCL 0x400001c3>,
- <MX8MP_IOMUXC_I2C3_SDA__I2C3_SDA 0x400001c3>;
- };
-
- pinctrl_i2c4: i2c4grp {
- fsl,pins =
- <MX8MP_IOMUXC_I2C4_SCL__I2C4_SCL 0x400001c3>,
- <MX8MP_IOMUXC_I2C4_SDA__I2C4_SDA 0x400001c3>;
- };
-
- pinctrl_i2c5: i2c5grp {
- fsl,pins =
- <MX8MP_IOMUXC_SPDIF_TX__I2C5_SCL 0x400001c3>,
- <MX8MP_IOMUXC_SPDIF_RX__I2C5_SDA 0x400001c3>;
- };
-
- pinctrl_i2c6: i2c6grp {
- fsl,pins =
- <MX8MP_IOMUXC_SAI5_RXFS__I2C6_SCL 0x400001c3>,
- <MX8MP_IOMUXC_SAI5_RXC__I2C6_SDA 0x400001c3>;
- };
-
- pinctrl_lcd0_backlight: lcd0-backlightgrp {
- fsl,pins =
- <MX8MP_IOMUXC_GPIO1_IO05__GPIO1_IO05 0x41>;
- };
-
- pinctrl_lcd1_backlight: lcd1-backlightgrp {
- fsl,pins =
- <MX8MP_IOMUXC_GPIO1_IO06__GPIO1_IO06 0x41>;
- };
-
- pinctrl_leds: ledsgrp {
- fsl,pins =
- <MX8MP_IOMUXC_GPIO1_IO08__GPIO1_IO08 0x19>;
- };
-
- pinctrl_lvds_bridge: lvds-bridgegrp {
- fsl,pins =
- <MX8MP_IOMUXC_GPIO1_IO07__GPIO1_IO07 0x41>;
- };
-
- pinctrl_pwm1: pwm1grp {
- fsl,pins =
- <MX8MP_IOMUXC_SPDIF_EXT_CLK__PWM1_OUT 0x116>;
- };
-
- pinctrl_pwm2: pwm2grp {
- fsl,pins =
- <MX8MP_IOMUXC_SAI5_RXD0__PWM2_OUT 0x116>;
- };
-
- pinctrl_pwm3: pwm3grp {
- fsl,pins =
- <MX8MP_IOMUXC_GPIO1_IO10__PWM3_OUT 0x116>;
- };
-
- pinctrl_pwm4: pwm4grp {
- fsl,pins =
- <MX8MP_IOMUXC_SAI3_MCLK__PWM4_OUT 0x116>;
- };
-
- pinctrl_tca6424: tca6424grp {
- fsl,pins =
- <MX8MP_IOMUXC_GPIO1_IO09__GPIO1_IO09 0x41>;
- };
-
- pinctrl_uart1: uart1grp {
- fsl,pins =
- <MX8MP_IOMUXC_UART1_RXD__UART1_DCE_RX 0x49>,
- <MX8MP_IOMUXC_UART1_TXD__UART1_DCE_TX 0x49>;
- };
-
- pinctrl_uart2: uart2grp {
- fsl,pins =
- <MX8MP_IOMUXC_SD1_DATA4__GPIO2_IO06 0x1c4>,
- <MX8MP_IOMUXC_SD1_DATA5__GPIO2_IO07 0x1c4>,
- <MX8MP_IOMUXC_UART2_RXD__UART2_DCE_RX 0x49>,
- <MX8MP_IOMUXC_UART2_TXD__UART2_DCE_TX 0x49>;
- };
-
- pinctrl_uart3: uart3grp {
- fsl,pins =
- <MX8MP_IOMUXC_SD1_RESET_B__GPIO2_IO10 0x1c4>,
- <MX8MP_IOMUXC_SD1_STROBE__GPIO2_IO11 0x1c4>,
- <MX8MP_IOMUXC_UART3_RXD__UART3_DCE_RX 0x49>,
- <MX8MP_IOMUXC_UART3_TXD__UART3_DCE_TX 0x49>;
- };
-
- pinctrl_uart4: uart4grp {
- fsl,pins =
- <MX8MP_IOMUXC_UART4_RXD__UART4_DCE_RX 0x49>,
- <MX8MP_IOMUXC_UART4_TXD__UART4_DCE_TX 0x49>;
- };
-
- pinctrl_usb0_extcon: usb0-extcongrp {
- fsl,pins =
- <MX8MP_IOMUXC_GPIO1_IO03__GPIO1_IO03 0x19>;
- };
-
- pinctrl_usb0_vbus: usb0-vbusgrp {
- fsl,pins =
- <MX8MP_IOMUXC_GPIO1_IO12__GPIO1_IO12 0x19>;
- };
-
- pinctrl_usb1_vbus: usb1-vbusgrp {
- fsl,pins =
- <MX8MP_IOMUXC_GPIO1_IO14__GPIO1_IO14 0x19>;
- };
-
- pinctrl_usdhc2_gpio: usdhc2-gpiogrp {
- fsl,pins =
- <MX8MP_IOMUXC_SD2_CD_B__GPIO2_IO12 0x1c4>,
- <MX8MP_IOMUXC_SD2_WP__GPIO2_IO20 0x1c4>;
- };
-
- pinctrl_usdhc2: usdhc2grp {
- fsl,pins =
- <MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK 0x190>,
- <MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD 0x1d0>,
- <MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0 0x1d0>,
- <MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1 0x1d0>,
- <MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2 0x1d0>,
- <MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d0>,
- <MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT 0xc1>;
- };
-
- pinctrl_usdhc2_vmmc: usdhc2-vmmcgrp {
- fsl,pins =
- <MX8MP_IOMUXC_SD2_RESET_B__GPIO2_IO19 0x41>;
- };
-
- pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
- fsl,pins =
- <MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK 0x194>,
- <MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD 0x1d4>,
- <MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0 0x1d4>,
- <MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1 0x1d4>,
- <MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2 0x1d4>,
- <MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d4>,
- <MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT 0xc1>;
- };
-
- pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
- fsl,pins =
- <MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK 0x196>,
- <MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD 0x1d6>,
- <MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0 0x1d6>,
- <MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1 0x1d6>,
- <MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2 0x1d6>,
- <MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d6>,
- <MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT 0xc1>;
- };
-
- pinctrl_usdhc3: usdhc3grp {
- fsl,pins =
- <MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK 0x190>,
- <MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD 0x1d0>,
- <MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0 0x1d0>,
- <MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1 0x1d0>,
- <MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2 0x1d0>,
- <MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3 0x1d0>,
- <MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4 0x1d0>,
- <MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5 0x1d0>,
- <MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6 0x1d0>,
- <MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7 0x1d0>,
- <MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE 0x190>;
- };
-
- pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
- fsl,pins =
- <MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK 0x194>,
- <MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD 0x1d4>,
- <MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0 0x1d4>,
- <MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1 0x1d4>,
- <MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2 0x1d4>,
- <MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3 0x1d4>,
- <MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4 0x1d4>,
- <MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5 0x1d4>,
- <MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6 0x1d4>,
- <MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7 0x1d4>,
- <MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE 0x194>;
- };
-
- pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
- fsl,pins =
- <MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK 0x196>,
- <MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD 0x1d6>,
- <MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0 0x1d6>,
- <MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1 0x1d6>,
- <MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2 0x1d6>,
- <MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3 0x1d6>,
- <MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4 0x1d6>,
- <MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5 0x1d6>,
- <MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6 0x1d6>,
- <MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7 0x1d6>,
- <MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE 0x196>;
- };
-
- pinctrl_wdog: wdoggrp {
- fsl,pins =
- <MX8MP_IOMUXC_GPIO1_IO02__WDOG1_WDOG_B 0xc6>;
- };
-};
diff --git a/arch/arm/dts/imx8ulp-evk-u-boot.dtsi b/arch/arm/dts/imx8ulp-evk-u-boot.dtsi
index 860994129ae..ac130b54738 100644
--- a/arch/arm/dts/imx8ulp-evk-u-boot.dtsi
+++ b/arch/arm/dts/imx8ulp-evk-u-boot.dtsi
@@ -26,10 +26,6 @@
status = "disabled";
};
-&wdog3 {
- status = "disabled";
-};
-
&per_bridge4 {
bootph-pre-ram;
};
diff --git a/arch/arm/dts/imx8ulp-u-boot.dtsi b/arch/arm/dts/imx8ulp-u-boot.dtsi
index 30baaeff8ef..54ecbcf1795 100644
--- a/arch/arm/dts/imx8ulp-u-boot.dtsi
+++ b/arch/arm/dts/imx8ulp-u-boot.dtsi
@@ -61,3 +61,7 @@
};
};
#endif
+
+&wdog3 {
+ bootph-all;
+};
diff --git a/arch/arm/dts/imx91-11x11-evk.dts b/arch/arm/dts/imx91-11x11-evk.dts
deleted file mode 100644
index ca9070a4c76..00000000000
--- a/arch/arm/dts/imx91-11x11-evk.dts
+++ /dev/null
@@ -1,875 +0,0 @@
-// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
-/*
- * Copyright 2024 NXP
- */
-
-/dts-v1/;
-
-#include <dt-bindings/usb/pd.h>
-#include "imx91.dtsi"
-
-/ {
- compatible = "fsl,imx91-11x11-evk", "fsl,imx91";
- model = "NXP i.MX91 11X11 EVK board";
-
- aliases {
- ethernet0 = &fec;
- ethernet1 = &eqos;
- rtc0 = &bbnsm_rtc;
- };
-
- chosen {
- stdout-path = &lpuart1;
- };
-
- reg_vref_1v8: regulator-adc-vref {
- compatible = "regulator-fixed";
- regulator-max-microvolt = <1800000>;
- regulator-min-microvolt = <1800000>;
- regulator-name = "vref_1v8";
- };
-
- reg_audio_pwr: regulator-audio-pwr {
- compatible = "regulator-fixed";
- regulator-always-on;
- regulator-max-microvolt = <3300000>;
- regulator-min-microvolt = <3300000>;
- regulator-name = "audio-pwr";
- gpio = <&adp5585 1 GPIO_ACTIVE_HIGH>;
- enable-active-high;
- };
-
- reg_usdhc2_vmmc: regulator-usdhc2 {
- compatible = "regulator-fixed";
- off-on-delay-us = <12000>;
- pinctrl-0 = <&pinctrl_reg_usdhc2_vmmc>;
- pinctrl-names = "default";
- regulator-max-microvolt = <3300000>;
- regulator-min-microvolt = <3300000>;
- regulator-name = "VSD_3V3";
- gpio = <&gpio3 7 GPIO_ACTIVE_HIGH>;
- enable-active-high;
- };
-
- reg_usdhc3_vmmc: regulator-usdhc3 {
- compatible = "regulator-fixed";
- regulator-max-microvolt = <3300000>;
- regulator-min-microvolt = <3300000>;
- regulator-name = "WLAN_EN";
- gpio = <&pcal6524 20 GPIO_ACTIVE_HIGH>;
- enable-active-high;
- /*
- * IW612 wifi chip needs more delay than other wifi chips to complete
- * the host interface initialization after power up, otherwise the
- * internal state of IW612 may be unstable, resulting in the failure of
- * the SDIO3.0 switch voltage.
- */
- startup-delay-us = <20000>;
- };
-
- reg_vdd_12v: regulator-vdd-12v {
- compatible = "regulator-fixed";
- regulator-max-microvolt = <12000000>;
- regulator-min-microvolt = <12000000>;
- regulator-name = "reg_vdd_12v";
- gpio = <&pcal6524 14 GPIO_ACTIVE_HIGH>;
- enable-active-high;
- };
-
- reg_vrpi_3v3: regulator-vrpi-3v3 {
- compatible = "regulator-fixed";
- regulator-max-microvolt = <3300000>;
- regulator-min-microvolt = <3300000>;
- regulator-name = "VRPI_3V3";
- vin-supply = <&buck4>;
- gpio = <&pcal6524 2 GPIO_ACTIVE_HIGH>;
- enable-active-high;
- };
-
- reg_vrpi_5v: regulator-vrpi-5v {
- compatible = "regulator-fixed";
- regulator-max-microvolt = <5000000>;
- regulator-min-microvolt = <5000000>;
- regulator-name = "VRPI_5V";
- gpio = <&pcal6524 8 GPIO_ACTIVE_HIGH>;
- enable-active-high;
- };
-
- reserved-memory {
- ranges;
- #address-cells = <2>;
- #size-cells = <2>;
-
- linux,cma {
- compatible = "shared-dma-pool";
- alloc-ranges = <0 0x80000000 0 0x40000000>;
- reusable;
- size = <0 0x10000000>;
- linux,cma-default;
- };
- };
-};
-
-&adc1 {
- vref-supply = <&reg_vref_1v8>;
- status = "okay";
-};
-
-&eqos {
- phy-handle = <&ethphy1>;
- phy-mode = "rgmii-id";
- pinctrl-0 = <&pinctrl_eqos>;
- pinctrl-1 = <&pinctrl_eqos_sleep>;
- pinctrl-names = "default", "sleep";
- status = "okay";
-
- mdio {
- compatible = "snps,dwmac-mdio";
- #address-cells = <1>;
- #size-cells = <0>;
- clock-frequency = <5000000>;
-
- ethphy1: ethernet-phy@1 {
- reg = <1>;
- eee-broken-1000t;
- };
- };
-};
-
-&fec {
- phy-handle = <&ethphy2>;
- phy-mode = "rgmii-id";
- pinctrl-0 = <&pinctrl_fec>;
- pinctrl-1 = <&pinctrl_fec_sleep>;
- pinctrl-names = "default", "sleep";
- fsl,magic-packet;
- status = "okay";
-
- mdio {
- #address-cells = <1>;
- #size-cells = <0>;
- clock-frequency = <5000000>;
-
- ethphy2: ethernet-phy@2 {
- reg = <2>;
- eee-broken-1000t;
- };
- };
-};
-
-/*
- * When add, delete or change any target device setting in &lpi2c1,
- * please synchronize the changes to the &i3c1 bus in imx91-11x11-evk-i3c.dts.
- */
-&lpi2c1 {
- clock-frequency = <400000>;
- pinctrl-0 = <&pinctrl_lpi2c1>;
- pinctrl-names = "default";
- status = "okay";
-
- codec: wm8962@1a {
- compatible = "wlf,wm8962";
- reg = <0x1a>;
- clocks = <&clk IMX93_CLK_SAI3_GATE>;
- AVDD-supply = <&reg_audio_pwr>;
- CPVDD-supply = <&reg_audio_pwr>;
- DBVDD-supply = <&reg_audio_pwr>;
- DCVDD-supply = <&reg_audio_pwr>;
- MICVDD-supply = <&reg_audio_pwr>;
- PLLVDD-supply = <&reg_audio_pwr>;
- SPKVDD1-supply = <&reg_audio_pwr>;
- SPKVDD2-supply = <&reg_audio_pwr>;
- gpio-cfg = <
- 0x0000 /* 0:Default */
- 0x0000 /* 1:Default */
- 0x0000 /* 2:FN_DMICCLK */
- 0x0000 /* 3:Default */
- 0x0000 /* 4:FN_DMICCDAT */
- 0x0000 /* 5:Default */
- >;
- };
-
- lsm6dsm@6a {
- compatible = "st,lsm6dso";
- reg = <0x6a>;
- };
-};
-
-&lpi2c2 {
- #address-cells = <1>;
- #size-cells = <0>;
- clock-frequency = <400000>;
- pinctrl-0 = <&pinctrl_lpi2c2>;
- pinctrl-names = "default";
- status = "okay";
-
- pcal6524: gpio@22 {
- compatible = "nxp,pcal6524";
- reg = <0x22>;
- #interrupt-cells = <2>;
- interrupt-controller;
- interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
- #gpio-cells = <2>;
- gpio-controller;
- interrupt-parent = <&gpio3>;
- pinctrl-0 = <&pinctrl_pcal6524>;
- pinctrl-names = "default";
- };
-
- pmic@25 {
- compatible = "nxp,pca9451a";
- reg = <0x25>;
- interrupts = <11 IRQ_TYPE_EDGE_FALLING>;
- interrupt-parent = <&pcal6524>;
-
- regulators {
-
- buck1: BUCK1 {
- regulator-always-on;
- regulator-boot-on;
- regulator-max-microvolt = <2237500>;
- regulator-min-microvolt = <650000>;
- regulator-name = "BUCK1";
- regulator-ramp-delay = <3125>;
- };
-
- buck2: BUCK2 {
- regulator-always-on;
- regulator-boot-on;
- regulator-max-microvolt = <2187500>;
- regulator-min-microvolt = <600000>;
- regulator-name = "BUCK2";
- regulator-ramp-delay = <3125>;
- };
-
- buck4: BUCK4 {
- regulator-always-on;
- regulator-boot-on;
- regulator-max-microvolt = <3400000>;
- regulator-min-microvolt = <600000>;
- regulator-name = "BUCK4";
- };
-
- buck5: BUCK5 {
- regulator-always-on;
- regulator-boot-on;
- regulator-max-microvolt = <3400000>;
- regulator-min-microvolt = <600000>;
- regulator-name = "BUCK5";
- };
-
- buck6: BUCK6 {
- regulator-always-on;
- regulator-boot-on;
- regulator-max-microvolt = <3400000>;
- regulator-min-microvolt = <600000>;
- regulator-name = "BUCK6";
- };
-
- ldo1: LDO1 {
- regulator-always-on;
- regulator-boot-on;
- regulator-max-microvolt = <3300000>;
- regulator-min-microvolt = <1600000>;
- regulator-name = "LDO1";
- };
-
- ldo4: LDO4 {
- regulator-always-on;
- regulator-boot-on;
- regulator-max-microvolt = <3300000>;
- regulator-min-microvolt = <800000>;
- regulator-name = "LDO4";
- };
-
- ldo5: LDO5 {
- regulator-always-on;
- regulator-boot-on;
- regulator-max-microvolt = <3300000>;
- regulator-min-microvolt = <1800000>;
- regulator-name = "LDO5";
- };
- };
- };
-
- adp5585: io-expander@34 {
- compatible = "adi,adp5585-00", "adi,adp5585";
- reg = <0x34>;
- #gpio-cells = <2>;
- gpio-controller;
- #pwm-cells = <3>;
- gpio-reserved-ranges = <5 1>;
-
- exp-sel-hog {
- gpio-hog;
- gpios = <4 GPIO_ACTIVE_HIGH>;
- output-low;
- };
- };
-};
-
-&lpi2c3 {
- #address-cells = <1>;
- #size-cells = <0>;
- clock-frequency = <400000>;
- pinctrl-0 = <&pinctrl_lpi2c3>;
- pinctrl-names = "default";
- status = "okay";
-
- ptn5110: tcpc@50 {
- compatible = "nxp,ptn5110", "tcpci";
- reg = <0x50>;
- interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
- interrupt-parent = <&gpio3>;
- status = "okay";
-
- typec1_con: connector {
- compatible = "usb-c-connector";
- data-role = "dual";
- label = "USB-C";
- op-sink-microwatt = <15000000>;
- power-role = "dual";
- self-powered;
- sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)
- PDO_VAR(5000, 20000, 3000)>;
- source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
- try-power-role = "sink";
-
- ports {
- #address-cells = <1>;
- #size-cells = <0>;
-
- port@0 {
- reg = <0>;
-
- typec1_dr_sw: endpoint {
- remote-endpoint = <&usb1_drd_sw>;
- };
- };
- };
- };
- };
-
- ptn5110_2: tcpc@51 {
- compatible = "nxp,ptn5110", "tcpci";
- reg = <0x51>;
- interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
- interrupt-parent = <&gpio3>;
- status = "okay";
-
- typec2_con: connector {
- compatible = "usb-c-connector";
- data-role = "dual";
- label = "USB-C";
- op-sink-microwatt = <15000000>;
- power-role = "dual";
- self-powered;
- sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)
- PDO_VAR(5000, 20000, 3000)>;
- source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
- try-power-role = "sink";
-
- ports {
- #address-cells = <1>;
- #size-cells = <0>;
-
- port@0 {
- reg = <0>;
-
- typec2_dr_sw: endpoint {
- remote-endpoint = <&usb2_drd_sw>;
- };
- };
- };
- };
- };
-
- pcf2131: rtc@53 {
- compatible = "nxp,pcf2131";
- reg = <0x53>;
- interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
- interrupt-parent = <&pcal6524>;
- status = "okay";
- };
-};
-
-&lpuart1 {
- pinctrl-0 = <&pinctrl_uart1>;
- pinctrl-names = "default";
- status = "okay";
-};
-
-&lpuart5 {
- pinctrl-0 = <&pinctrl_uart5>;
- pinctrl-names = "default";
- status = "okay";
-};
-
-&usbotg1 {
- adp-disable;
- disable-over-current;
- dr_mode = "otg";
- hnp-disable;
- srp-disable;
- usb-role-switch;
- samsung,picophy-dc-vol-level-adjust = <7>;
- samsung,picophy-pre-emp-curr-control = <3>;
- status = "okay";
-
- port {
- usb1_drd_sw: endpoint {
- remote-endpoint = <&typec1_dr_sw>;
- };
- };
-};
-
-&usbotg2 {
- adp-disable;
- disable-over-current;
- dr_mode = "otg";
- hnp-disable;
- srp-disable;
- usb-role-switch;
- samsung,picophy-dc-vol-level-adjust = <7>;
- samsung,picophy-pre-emp-curr-control = <3>;
- status = "okay";
-
- port {
- usb2_drd_sw: endpoint {
- remote-endpoint = <&typec2_dr_sw>;
- };
- };
-};
-
-&usdhc1 {
- bus-width = <8>;
- non-removable;
- pinctrl-0 = <&pinctrl_usdhc1>;
- pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
- pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
- pinctrl-names = "default", "state_100mhz", "state_200mhz";
- status = "okay";
-};
-
-&usdhc2 {
- bus-width = <4>;
- cd-gpios = <&gpio3 00 GPIO_ACTIVE_LOW>;
- no-mmc;
- no-sdio;
- pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
- pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
- pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
- pinctrl-3 = <&pinctrl_usdhc2_sleep>, <&pinctrl_usdhc2_gpio_sleep>;
- pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep";
- vmmc-supply = <&reg_usdhc2_vmmc>;
- status = "okay";
-};
-
-&wdog3 {
- fsl,ext-reset-output;
- status = "okay";
-};
-
-&iomuxc {
- pinctrl_eqos: eqosgrp {
- fsl,pins = <
- MX91_PAD_ENET1_MDC__ENET1_MDC 0x57e
- MX91_PAD_ENET1_MDIO__ENET_QOS_MDIO 0x57e
- MX91_PAD_ENET1_RD0__ENET_QOS_RGMII_RD0 0x57e
- MX91_PAD_ENET1_RD1__ENET_QOS_RGMII_RD1 0x57e
- MX91_PAD_ENET1_RD2__ENET_QOS_RGMII_RD2 0x57e
- MX91_PAD_ENET1_RD3__ENET_QOS_RGMII_RD3 0x57e
- MX91_PAD_ENET1_RXC__ENET_QOS_RGMII_RXC 0x5fe
- MX91_PAD_ENET1_RX_CTL__ENET_QOS_RGMII_RX_CTL 0x57e
- MX91_PAD_ENET1_TD0__ENET_QOS_RGMII_TD0 0x57e
- MX91_PAD_ENET1_TD1__ENET1_RGMII_TD1 0x57e
- MX91_PAD_ENET1_TD2__ENET_QOS_RGMII_TD2 0x57e
- MX91_PAD_ENET1_TD3__ENET_QOS_RGMII_TD3 0x57e
- MX91_PAD_ENET1_TXC__CCM_ENET_QOS_CLOCK_GENERATE_TX_CLK 0x5fe
- MX91_PAD_ENET1_TX_CTL__ENET_QOS_RGMII_TX_CTL 0x57e
- >;
- };
-
- pinctrl_eqos_sleep: eqossleepgrp {
- fsl,pins = <
- MX91_PAD_ENET1_MDC__GPIO4_IO0 0x31e
- MX91_PAD_ENET1_MDIO__GPIO4_IO1 0x31e
- MX91_PAD_ENET1_RD0__GPIO4_IO10 0x31e
- MX91_PAD_ENET1_RD1__GPIO4_IO11 0x31e
- MX91_PAD_ENET1_RD2__GPIO4_IO12 0x31e
- MX91_PAD_ENET1_RD3__GPIO4_IO13 0x31e
- MX91_PAD_ENET1_RXC__GPIO4_IO9 0x31e
- MX91_PAD_ENET1_RX_CTL__GPIO4_IO8 0x31e
- MX91_PAD_ENET1_TD0__GPIO4_IO5 0x31e
- MX91_PAD_ENET1_TD1__GPIO4_IO4 0x31e
- MX91_PAD_ENET1_TD2__GPIO4_IO3 0x31e
- MX91_PAD_ENET1_TD3__GPIO4_IO2 0x31e
- MX91_PAD_ENET1_TXC__GPIO4_IO7 0x31e
- MX91_PAD_ENET1_TX_CTL__GPIO4_IO6 0x31e
- >;
- };
-
- pinctrl_fec: fecgrp {
- fsl,pins = <
- MX91_PAD_ENET2_MDC__ENET2_MDC 0x57e
- MX91_PAD_ENET2_MDIO__ENET2_MDIO 0x57e
- MX91_PAD_ENET2_RD0__ENET2_RGMII_RD0 0x57e
- MX91_PAD_ENET2_RD1__ENET2_RGMII_RD1 0x57e
- MX91_PAD_ENET2_RD2__ENET2_RGMII_RD2 0x57e
- MX91_PAD_ENET2_RD3__ENET2_RGMII_RD3 0x57e
- MX91_PAD_ENET2_RXC__ENET2_RGMII_RXC 0x5fe
- MX91_PAD_ENET2_RX_CTL__ENET2_RGMII_RX_CTL 0x57e
- MX91_PAD_ENET2_TD0__ENET2_RGMII_TD0 0x57e
- MX91_PAD_ENET2_TD1__ENET2_RGMII_TD1 0x57e
- MX91_PAD_ENET2_TD2__ENET2_RGMII_TD2 0x57e
- MX91_PAD_ENET2_TD3__ENET2_RGMII_TD3 0x57e
- MX91_PAD_ENET2_TXC__ENET2_RGMII_TXC 0x5fe
- MX91_PAD_ENET2_TX_CTL__ENET2_RGMII_TX_CTL 0x57e
- >;
- };
-
- pinctrl_fec_sleep: fecsleepgrp {
- fsl,pins = <
- MX91_PAD_ENET2_MDC__GPIO4_IO14 0x51e
- MX91_PAD_ENET2_MDIO__GPIO4_IO15 0x51e
- MX91_PAD_ENET2_RD0__GPIO4_IO24 0x51e
- MX91_PAD_ENET2_RD1__GPIO4_IO25 0x51e
- MX91_PAD_ENET2_RD2__GPIO4_IO26 0x51e
- MX91_PAD_ENET2_RD3__GPIO4_IO27 0x51e
- MX91_PAD_ENET2_RXC__GPIO4_IO23 0x51e
- MX91_PAD_ENET2_RX_CTL__GPIO4_IO22 0x51e
- MX91_PAD_ENET2_TD0__GPIO4_IO19 0x51e
- MX91_PAD_ENET2_TD1__GPIO4_IO18 0x51e
- MX91_PAD_ENET2_TD2__GPIO4_IO17 0x51e
- MX91_PAD_ENET2_TD3__GPIO4_IO16 0x51e
- MX91_PAD_ENET2_TXC__GPIO4_IO21 0x51e
- MX91_PAD_ENET2_TX_CTL__GPIO4_IO20 0x51e
- >;
- };
-
- pinctrl_flexcan2: flexcan2grp {
- fsl,pins = <
- MX91_PAD_GPIO_IO25__CAN2_TX 0x139e
- MX91_PAD_GPIO_IO27__CAN2_RX 0x139e
- >;
- };
-
- pinctrl_flexcan2_sleep: flexcan2sleepgrp {
- fsl,pins = <
- MX91_PAD_GPIO_IO25__GPIO2_IO25 0x31e
- MX91_PAD_GPIO_IO27__GPIO2_IO27 0x31e
- >;
- };
-
- pinctrl_lcdif_gpio: lcdifgpiogrp {
- fsl,pins = <
- MX91_PAD_GPIO_IO00__GPIO2_IO0 0x51e
- MX91_PAD_GPIO_IO01__GPIO2_IO1 0x51e
- MX91_PAD_GPIO_IO02__GPIO2_IO2 0x51e
- MX91_PAD_GPIO_IO03__GPIO2_IO3 0x51e
- >;
- };
-
- pinctrl_lcdif: lcdifgrp {
- fsl,pins = <
- MX91_PAD_GPIO_IO00__MEDIAMIX_DISP_CLK 0x31e
- MX91_PAD_GPIO_IO01__MEDIAMIX_DISP_DE 0x31e
- MX91_PAD_GPIO_IO02__MEDIAMIX_DISP_VSYNC 0x31e
- MX91_PAD_GPIO_IO03__MEDIAMIX_DISP_HSYNC 0x31e
- MX91_PAD_GPIO_IO04__MEDIAMIX_DISP_DATA0 0x31e
- MX91_PAD_GPIO_IO05__MEDIAMIX_DISP_DATA1 0x31e
- MX91_PAD_GPIO_IO06__MEDIAMIX_DISP_DATA2 0x31e
- MX91_PAD_GPIO_IO07__MEDIAMIX_DISP_DATA3 0x31e
- MX91_PAD_GPIO_IO08__MEDIAMIX_DISP_DATA4 0x31e
- MX91_PAD_GPIO_IO09__MEDIAMIX_DISP_DATA5 0x31e
- MX91_PAD_GPIO_IO10__MEDIAMIX_DISP_DATA6 0x31e
- MX91_PAD_GPIO_IO11__MEDIAMIX_DISP_DATA7 0x31e
- MX91_PAD_GPIO_IO12__MEDIAMIX_DISP_DATA8 0x31e
- MX91_PAD_GPIO_IO13__MEDIAMIX_DISP_DATA9 0x31e
- MX91_PAD_GPIO_IO14__MEDIAMIX_DISP_DATA10 0x31e
- MX91_PAD_GPIO_IO15__MEDIAMIX_DISP_DATA11 0x31e
- MX91_PAD_GPIO_IO16__MEDIAMIX_DISP_DATA12 0x31e
- MX91_PAD_GPIO_IO17__MEDIAMIX_DISP_DATA13 0x31e
- MX91_PAD_GPIO_IO18__MEDIAMIX_DISP_DATA14 0x31e
- MX91_PAD_GPIO_IO19__MEDIAMIX_DISP_DATA15 0x31e
- MX91_PAD_GPIO_IO20__MEDIAMIX_DISP_DATA16 0x31e
- MX91_PAD_GPIO_IO21__MEDIAMIX_DISP_DATA17 0x31e
- MX91_PAD_GPIO_IO27__GPIO2_IO27 0x31e
- >;
- };
-
- pinctrl_lpi2c1: lpi2c1grp {
- fsl,pins = <
- MX91_PAD_I2C1_SCL__LPI2C1_SCL 0x40000b9e
- MX91_PAD_I2C1_SDA__LPI2C1_SDA 0x40000b9e
- >;
- };
-
- pinctrl_lpi2c2: lpi2c2grp {
- fsl,pins = <
- MX91_PAD_I2C2_SCL__LPI2C2_SCL 0x40000b9e
- MX91_PAD_I2C2_SDA__LPI2C2_SDA 0x40000b9e
- >;
- };
-
- pinctrl_lpi2c3: lpi2c3grp {
- fsl,pins = <
- MX91_PAD_GPIO_IO28__LPI2C3_SDA 0x40000b9e
- MX91_PAD_GPIO_IO29__LPI2C3_SCL 0x40000b9e
- >;
- };
-
- pinctrl_pcal6524: pcal6524grp {
- fsl,pins = <
- MX91_PAD_CCM_CLKO2__GPIO3_IO27 0x31e
- >;
- };
-
- pinctrl_pdm: pdmgrp {
- fsl,pins = <
- MX91_PAD_PDM_CLK__PDM_CLK 0x31e
- MX91_PAD_PDM_BIT_STREAM0__PDM_BIT_STREAM0 0x31e
- MX91_PAD_PDM_BIT_STREAM1__PDM_BIT_STREAM1 0x31e
- >;
- };
-
- pinctrl_pdm_sleep: pdmsleepgrp {
- fsl,pins = <
- MX91_PAD_PDM_CLK__GPIO1_IO8 0x31e
- MX91_PAD_PDM_BIT_STREAM0__GPIO1_IO9 0x31e
- MX91_PAD_PDM_BIT_STREAM1__GPIO1_IO10 0x31e
- >;
- };
-
- pinctrl_reg_usdhc2_vmmc: regusdhc2vmmcgrp {
- fsl,pins = <
- MX91_PAD_SD2_RESET_B__GPIO3_IO7 0x31e
- >;
- };
-
- pinctrl_sai1: sai1grp {
- fsl,pins = <
- MX91_PAD_SAI1_TXC__SAI1_TX_BCLK 0x31e
- MX91_PAD_SAI1_TXFS__SAI1_TX_SYNC 0x31e
- MX91_PAD_SAI1_TXD0__SAI1_TX_DATA0 0x31e
- MX91_PAD_SAI1_RXD0__SAI1_RX_DATA0 0x31e
- >;
- };
-
- pinctrl_sai1_sleep: sai1sleepgrp {
- fsl,pins = <
- MX91_PAD_SAI1_TXC__GPIO1_IO12 0x51e
- MX91_PAD_SAI1_TXFS__GPIO1_IO11 0x51e
- MX91_PAD_SAI1_TXD0__GPIO1_IO13 0x51e
- MX91_PAD_SAI1_RXD0__GPIO1_IO14 0x51e
- >;
- };
-
- pinctrl_sai3: sai3grp {
- fsl,pins = <
- MX91_PAD_GPIO_IO26__SAI3_TX_SYNC 0x31e
- MX91_PAD_GPIO_IO16__SAI3_TX_BCLK 0x31e
- MX91_PAD_GPIO_IO17__SAI3_MCLK 0x31e
- MX91_PAD_GPIO_IO19__SAI3_TX_DATA0 0x31e
- MX91_PAD_GPIO_IO20__SAI3_RX_DATA0 0x31e
- >;
- };
-
- pinctrl_sai3_sleep: sai3sleepgrp {
- fsl,pins = <
- MX91_PAD_GPIO_IO26__GPIO2_IO26 0x51e
- MX91_PAD_GPIO_IO16__GPIO2_IO16 0x51e
- MX91_PAD_GPIO_IO17__GPIO2_IO17 0x51e
- MX91_PAD_GPIO_IO19__GPIO2_IO19 0x51e
- MX91_PAD_GPIO_IO20__GPIO2_IO20 0x51e
- >;
- };
-
- pinctrl_spdif: spdifgrp {
- fsl,pins = <
- MX91_PAD_GPIO_IO22__SPDIF_IN 0x31e
- MX91_PAD_GPIO_IO23__SPDIF_OUT 0x31e
- >;
- };
-
- pinctrl_spdif_sleep: spdifsleepgrp {
- fsl,pins = <
- MX91_PAD_GPIO_IO22__GPIO2_IO22 0x31e
- MX91_PAD_GPIO_IO23__GPIO2_IO23 0x31e
- >;
- };
-
- pinctrl_uart1: uart1grp {
- fsl,pins = <
- MX91_PAD_UART1_RXD__LPUART1_RX 0x31e
- MX91_PAD_UART1_TXD__LPUART1_TX 0x31e
- >;
- };
-
- pinctrl_uart5: uart5grp {
- fsl,pins = <
- MX91_PAD_DAP_TDO_TRACESWO__LPUART5_TX 0x31e
- MX91_PAD_DAP_TDI__LPUART5_RX 0x31e
- MX91_PAD_DAP_TMS_SWDIO__LPUART5_RTS_B 0x31e
- MX91_PAD_DAP_TCLK_SWCLK__LPUART5_CTS_B 0x31e
- >;
- };
-
- pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp {
- fsl,pins = <
- MX91_PAD_SD1_CLK__USDHC1_CLK 0x158e
- MX91_PAD_SD1_CMD__USDHC1_CMD 0x138e
- MX91_PAD_SD1_DATA0__USDHC1_DATA0 0x138e
- MX91_PAD_SD1_DATA1__USDHC1_DATA1 0x138e
- MX91_PAD_SD1_DATA2__USDHC1_DATA2 0x138e
- MX91_PAD_SD1_DATA3__USDHC1_DATA3 0x138e
- MX91_PAD_SD1_DATA4__USDHC1_DATA4 0x138e
- MX91_PAD_SD1_DATA5__USDHC1_DATA5 0x138e
- MX91_PAD_SD1_DATA6__USDHC1_DATA6 0x138e
- MX91_PAD_SD1_DATA7__USDHC1_DATA7 0x138e
- MX91_PAD_SD1_STROBE__USDHC1_STROBE 0x158e
- >;
- };
-
- pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp {
- fsl,pins = <
- MX91_PAD_SD1_CLK__USDHC1_CLK 0x15fe
- MX91_PAD_SD1_CMD__USDHC1_CMD 0x13fe
- MX91_PAD_SD1_DATA0__USDHC1_DATA0 0x13fe
- MX91_PAD_SD1_DATA1__USDHC1_DATA1 0x13fe
- MX91_PAD_SD1_DATA2__USDHC1_DATA2 0x13fe
- MX91_PAD_SD1_DATA3__USDHC1_DATA3 0x13fe
- MX91_PAD_SD1_DATA4__USDHC1_DATA4 0x13fe
- MX91_PAD_SD1_DATA5__USDHC1_DATA5 0x13fe
- MX91_PAD_SD1_DATA6__USDHC1_DATA6 0x13fe
- MX91_PAD_SD1_DATA7__USDHC1_DATA7 0x13fe
- MX91_PAD_SD1_STROBE__USDHC1_STROBE 0x15fe
- >;
- };
-
- pinctrl_usdhc1: usdhc1grp {
- fsl,pins = <
- MX91_PAD_SD1_CLK__USDHC1_CLK 0x1582
- MX91_PAD_SD1_CMD__USDHC1_CMD 0x1382
- MX91_PAD_SD1_DATA0__USDHC1_DATA0 0x1382
- MX91_PAD_SD1_DATA1__USDHC1_DATA1 0x1382
- MX91_PAD_SD1_DATA2__USDHC1_DATA2 0x1382
- MX91_PAD_SD1_DATA3__USDHC1_DATA3 0x1382
- MX91_PAD_SD1_DATA4__USDHC1_DATA4 0x1382
- MX91_PAD_SD1_DATA5__USDHC1_DATA5 0x1382
- MX91_PAD_SD1_DATA6__USDHC1_DATA6 0x1382
- MX91_PAD_SD1_DATA7__USDHC1_DATA7 0x1382
- MX91_PAD_SD1_STROBE__USDHC1_STROBE 0x1582
- >;
- };
-
- pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
- fsl,pins = <
- MX91_PAD_SD2_CLK__USDHC2_CLK 0x158e
- MX91_PAD_SD2_CMD__USDHC2_CMD 0x138e
- MX91_PAD_SD2_DATA0__USDHC2_DATA0 0x138e
- MX91_PAD_SD2_DATA1__USDHC2_DATA1 0x138e
- MX91_PAD_SD2_DATA2__USDHC2_DATA2 0x138e
- MX91_PAD_SD2_DATA3__USDHC2_DATA3 0x138e
- MX91_PAD_SD2_VSELECT__USDHC2_VSELECT 0x51e
- >;
- };
-
- pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
- fsl,pins = <
- MX91_PAD_SD2_CLK__USDHC2_CLK 0x15fe
- MX91_PAD_SD2_CMD__USDHC2_CMD 0x13fe
- MX91_PAD_SD2_DATA0__USDHC2_DATA0 0x13fe
- MX91_PAD_SD2_DATA1__USDHC2_DATA1 0x13fe
- MX91_PAD_SD2_DATA2__USDHC2_DATA2 0x13fe
- MX91_PAD_SD2_DATA3__USDHC2_DATA3 0x13fe
- MX91_PAD_SD2_VSELECT__USDHC2_VSELECT 0x51e
- >;
- };
-
- pinctrl_usdhc2_gpio: usdhc2gpiogrp {
- fsl,pins = <
- MX91_PAD_SD2_CD_B__GPIO3_IO0 0x31e
- >;
- };
-
- pinctrl_usdhc2_gpio_sleep: usdhc2gpiosleepgrp {
- fsl,pins = <
- MX91_PAD_SD2_CD_B__GPIO3_IO0 0x51e
- >;
- };
-
- pinctrl_usdhc2: usdhc2grp {
- fsl,pins = <
- MX91_PAD_SD2_CLK__USDHC2_CLK 0x1582
- MX91_PAD_SD2_CMD__USDHC2_CMD 0x1382
- MX91_PAD_SD2_DATA0__USDHC2_DATA0 0x1382
- MX91_PAD_SD2_DATA1__USDHC2_DATA1 0x1382
- MX91_PAD_SD2_DATA2__USDHC2_DATA2 0x1382
- MX91_PAD_SD2_DATA3__USDHC2_DATA3 0x1382
- MX91_PAD_SD2_VSELECT__USDHC2_VSELECT 0x51e
- >;
- };
-
- pinctrl_usdhc2_sleep: usdhc2sleepgrp {
- fsl,pins = <
- MX91_PAD_SD2_CLK__GPIO3_IO1 0x51e
- MX91_PAD_SD2_CMD__GPIO3_IO2 0x51e
- MX91_PAD_SD2_DATA0__GPIO3_IO3 0x51e
- MX91_PAD_SD2_DATA1__GPIO3_IO4 0x51e
- MX91_PAD_SD2_DATA2__GPIO3_IO5 0x51e
- MX91_PAD_SD2_DATA3__GPIO3_IO6 0x51e
- MX91_PAD_SD2_VSELECT__GPIO3_IO19 0x51e
- >;
- };
-
- pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
- fsl,pins = <
- MX91_PAD_SD3_CLK__USDHC3_CLK 0x158e
- MX91_PAD_SD3_CMD__USDHC3_CMD 0x138e
- MX91_PAD_SD3_DATA0__USDHC3_DATA0 0x138e
- MX91_PAD_SD3_DATA1__USDHC3_DATA1 0x138e
- MX91_PAD_SD3_DATA2__USDHC3_DATA2 0x138e
- MX91_PAD_SD3_DATA3__USDHC3_DATA3 0x138e
- >;
- };
-
- pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
- fsl,pins = <
- MX91_PAD_SD3_CLK__USDHC3_CLK 0x15fe
- MX91_PAD_SD3_CMD__USDHC3_CMD 0x13fe
- MX91_PAD_SD3_DATA0__USDHC3_DATA0 0x13fe
- MX91_PAD_SD3_DATA1__USDHC3_DATA1 0x13fe
- MX91_PAD_SD3_DATA2__USDHC3_DATA2 0x13fe
- MX91_PAD_SD3_DATA3__USDHC3_DATA3 0x13fe
- >;
- };
-
- pinctrl_usdhc3: usdhc3grp {
- fsl,pins = <
- MX91_PAD_SD3_CLK__USDHC3_CLK 0x1582
- MX91_PAD_SD3_CMD__USDHC3_CMD 0x1382
- MX91_PAD_SD3_DATA0__USDHC3_DATA0 0x1382
- MX91_PAD_SD3_DATA1__USDHC3_DATA1 0x1382
- MX91_PAD_SD3_DATA2__USDHC3_DATA2 0x1382
- MX91_PAD_SD3_DATA3__USDHC3_DATA3 0x1382
- >;
- };
-
- pinctrl_usdhc3_sleep: usdhc3sleepgrp {
- fsl,pins = <
- MX91_PAD_SD3_CLK__GPIO3_IO20 0x31e
- MX91_PAD_SD3_CMD__GPIO3_IO21 0x31e
- MX91_PAD_SD3_DATA0__GPIO3_IO22 0x31e
- MX91_PAD_SD3_DATA1__GPIO3_IO23 0x31e
- MX91_PAD_SD3_DATA2__GPIO3_IO24 0x31e
- MX91_PAD_SD3_DATA3__GPIO3_IO25 0x31e
- >;
- };
-
- pinctrl_usdhc3_wlan: usdhc3wlangrp {
- fsl,pins = <
- MX91_PAD_CCM_CLKO1__GPIO3_IO26 0x31e
- >;
- };
-};
diff --git a/arch/arm/dts/imx91-11x11-frdm.dts b/arch/arm/dts/imx91-11x11-frdm.dts
deleted file mode 100644
index fc9d6729c58..00000000000
--- a/arch/arm/dts/imx91-11x11-frdm.dts
+++ /dev/null
@@ -1,773 +0,0 @@
-// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
-/*
- * Copyright 2025 NXP
- */
-
-/dts-v1/;
-
-#include <dt-bindings/usb/pd.h>
-#include "imx91.dtsi"
-
-/ {
- compatible = "fsl,imx91-11x11-frdm", "fsl,imx91";
- model = "NXP i.MX91 11X11 FRDM Board";
-
- aliases {
- ethernet0 = &fec;
- ethernet1 = &eqos;
- rtc0 = &pcf2131;
- };
-
- chosen {
- stdout-path = &lpuart1;
- };
-
- reg_vref_1v8: regulator-adc-vref {
- compatible = "regulator-fixed";
- regulator-max-microvolt = <1800000>;
- regulator-min-microvolt = <1800000>;
- regulator-name = "vref_1v8";
- };
-
- reg_usdhc2_vmmc: regulator-usdhc2 {
- compatible = "regulator-fixed";
- off-on-delay-us = <12000>;
- pinctrl-0 = <&pinctrl_reg_usdhc2_vmmc>;
- pinctrl-names = "default";
- regulator-max-microvolt = <3300000>;
- regulator-min-microvolt = <3300000>;
- regulator-name = "VSD_3V3";
- gpio = <&gpio3 7 GPIO_ACTIVE_HIGH>;
- enable-active-high;
- bootph-pre-ram;
- bootph-some-ram;
- };
-
- reg_vdd_12v: regulator-vdd-12v {
- compatible = "regulator-fixed";
- regulator-max-microvolt = <12000000>;
- regulator-min-microvolt = <12000000>;
- regulator-name = "reg_vdd_12v";
- gpio = <&pcal6524 14 GPIO_ACTIVE_HIGH>;
- enable-active-high;
- };
-
- reg_vexp_3v3: regulator-vexp-3v3 {
- compatible = "regulator-fixed";
- regulator-max-microvolt = <3300000>;
- regulator-min-microvolt = <3300000>;
- regulator-name = "VEXP_3V3";
- vin-supply = <&buck4>;
- gpio = <&pcal6524 2 GPIO_ACTIVE_HIGH>;
- enable-active-high;
- };
-
- reg_vexp_5v: regulator-vexp-5v {
- compatible = "regulator-fixed";
- regulator-max-microvolt = <5000000>;
- regulator-min-microvolt = <5000000>;
- regulator-name = "VEXP_5V";
- gpio = <&pcal6524 8 GPIO_ACTIVE_HIGH>;
- enable-active-high;
- };
-
- reserved-memory {
- ranges;
- #address-cells = <2>;
- #size-cells = <2>;
-
- linux,cma {
- compatible = "shared-dma-pool";
- alloc-ranges = <0 0x80000000 0 0x40000000>;
- reusable;
- size = <0 0x10000000>;
- linux,cma-default;
- };
- };
-
- soc@0 {
- bootph-all;
- bootph-pre-ram;
- };
-};
-
-&adc1 {
- vref-supply = <&reg_vref_1v8>;
- status = "okay";
-};
-
-&aips1 {
- bootph-pre-ram;
- bootph-all;
-};
-
-&aips2 {
- bootph-pre-ram;
- bootph-some-ram;
-};
-
-&aips3 {
- bootph-pre-ram;
- bootph-some-ram;
-};
-
-&clk {
- bootph-all;
- bootph-pre-ram;
-};
-
-&clk_ext1 {
- bootph-all;
- bootph-pre-ram;
-};
-
-&eqos {
- phy-handle = <&ethphy1>;
- phy-mode = "rgmii-id";
- pinctrl-0 = <&pinctrl_eqos>;
- pinctrl-1 = <&pinctrl_eqos_sleep>;
- pinctrl-names = "default", "sleep";
- status = "okay";
-
- mdio {
- compatible = "snps,dwmac-mdio";
- #address-cells = <1>;
- #size-cells = <0>;
- clock-frequency = <5000000>;
-
- ethphy1: ethernet-phy@1 {
- reg = <1>;
- eee-broken-1000t;
- reset-gpios = <&pcal6524 15 GPIO_ACTIVE_LOW>;
- reset-assert-us = <15000>;
- reset-deassert-us = <100000>;
- };
- };
-};
-
-&fec {
- phy-handle = <&ethphy2>;
- phy-mode = "rgmii-id";
- pinctrl-0 = <&pinctrl_fec>;
- pinctrl-1 = <&pinctrl_fec_sleep>;
- pinctrl-names = "default", "sleep";
- fsl,magic-packet;
- status = "okay";
-
- mdio {
- #address-cells = <1>;
- #size-cells = <0>;
- clock-frequency = <5000000>;
-
- ethphy2: ethernet-phy@2 {
- reg = <2>;
- eee-broken-1000t;
- reset-gpios = <&pcal6524 16 GPIO_ACTIVE_LOW>;
- reset-assert-us = <15000>;
- reset-deassert-us = <100000>;
- };
- };
-};
-
-&gpio1 {
- bootph-pre-ram;
- bootph-some-ram;
-};
-
-&gpio2 {
- bootph-pre-ram;
- bootph-some-ram;
-};
-
-&gpio3 {
- bootph-pre-ram;
- bootph-some-ram;
-};
-
-&gpio4 {
- bootph-pre-ram;
- bootph-some-ram;
-};
-
-&lpi2c1 {
- bootph-pre-ram;
- bootph-some-ram;
-};
-
-&lpi2c2 {
- #address-cells = <1>;
- #size-cells = <0>;
- clock-frequency = <400000>;
- pinctrl-0 = <&pinctrl_lpi2c2>;
- pinctrl-names = "default";
- status = "okay";
- bootph-pre-ram;
- bootph-some-ram;
-
- pcal6524: gpio@22 {
- compatible = "nxp,pcal6524";
- reg = <0x22>;
- #interrupt-cells = <2>;
- interrupt-controller;
- interrupt-parent = <&gpio3>;
- interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
- #gpio-cells = <2>;
- gpio-controller;
- pinctrl-0 = <&pinctrl_pcal6524>;
- pinctrl-names = "default";
- };
-
- pmic@25 {
- compatible = "nxp,pca9451a";
- reg = <0x25>;
- interrupts = <11 IRQ_TYPE_EDGE_FALLING>;
- interrupt-parent = <&pcal6524>;
- bootph-pre-ram;
- bootph-some-ram;
-
- regulators {
- bootph-pre-ram;
- bootph-some-ram;
-
- buck1: BUCK1 {
- regulator-always-on;
- regulator-boot-on;
- regulator-max-microvolt = <2237500>;
- regulator-min-microvolt = <650000>;
- regulator-name = "BUCK1";
- regulator-ramp-delay = <3125>;
- };
-
- buck2: BUCK2 {
- regulator-always-on;
- regulator-boot-on;
- regulator-max-microvolt = <2187500>;
- regulator-min-microvolt = <600000>;
- regulator-name = "BUCK2";
- regulator-ramp-delay = <3125>;
- };
-
- buck4: BUCK4 {
- regulator-always-on;
- regulator-boot-on;
- regulator-max-microvolt = <3400000>;
- regulator-min-microvolt = <600000>;
- regulator-name = "BUCK4";
- };
-
- buck5: BUCK5 {
- regulator-always-on;
- regulator-boot-on;
- regulator-max-microvolt = <3400000>;
- regulator-min-microvolt = <600000>;
- regulator-name = "BUCK5";
- };
-
- buck6: BUCK6 {
- regulator-always-on;
- regulator-boot-on;
- regulator-max-microvolt = <3400000>;
- regulator-min-microvolt = <600000>;
- regulator-name = "BUCK6";
- };
-
- ldo1: LDO1 {
- regulator-always-on;
- regulator-boot-on;
- regulator-max-microvolt = <3300000>;
- regulator-min-microvolt = <1600000>;
- regulator-name = "LDO1";
- };
-
- ldo4: LDO4 {
- regulator-always-on;
- regulator-boot-on;
- regulator-max-microvolt = <3300000>;
- regulator-min-microvolt = <800000>;
- regulator-name = "LDO4";
- };
-
- ldo5: LDO5 {
- regulator-always-on;
- regulator-boot-on;
- regulator-max-microvolt = <3300000>;
- regulator-min-microvolt = <1800000>;
- regulator-name = "LDO5";
- };
- };
- };
-
- eeprom: at24c256@50 {
- compatible = "atmel,24c256";
- reg = <0x50>;
- pagesize = <64>;
- };
-};
-
-&lpi2c3 {
- #address-cells = <1>;
- #size-cells = <0>;
- clock-frequency = <400000>;
- pinctrl-0 = <&pinctrl_lpi2c3>;
- pinctrl-names = "default";
- status = "okay";
- bootph-pre-ram;
- bootph-some-ram;
-
- ptn5110: tcpc@50 {
- compatible = "nxp,ptn5110", "tcpci";
- reg = <0x50>;
- interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
- interrupt-parent = <&gpio3>;
- status = "okay";
-
- typec1_con: connector {
- compatible = "usb-c-connector";
- data-role = "dual";
- label = "USB-C";
- op-sink-microwatt = <15000000>;
- power-role = "dual";
- self-powered;
- sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)
- PDO_VAR(5000, 20000, 3000)>;
- source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
- try-power-role = "sink";
-
- ports {
- #address-cells = <1>;
- #size-cells = <0>;
-
- port@0 {
- reg = <0>;
-
- typec1_dr_sw: endpoint {
- remote-endpoint = <&usb1_drd_sw>;
- };
- };
- };
- };
- };
-
- pcf2131: rtc@53 {
- compatible = "nxp,pcf2131";
- reg = <0x53>;
- interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
- interrupt-parent = <&pcal6524>;
- status = "okay";
- };
-};
-
-&lpuart1 {
- pinctrl-0 = <&pinctrl_uart1>;
- pinctrl-names = "default";
- status = "okay";
- bootph-pre-ram;
- bootph-some-ram;
-};
-
-&lpuart5 {
- pinctrl-0 = <&pinctrl_uart5>;
- pinctrl-names = "default";
- status = "okay";
-};
-
-&osc_32k {
- bootph-all;
- bootph-pre-ram;
-};
-
-&osc_24m {
- bootph-all;
- bootph-pre-ram;
-};
-
-&usbotg1 {
- adp-disable;
- disable-over-current;
- dr_mode = "otg";
- hnp-disable;
- srp-disable;
- usb-role-switch;
- samsung,picophy-dc-vol-level-adjust = <7>;
- samsung,picophy-pre-emp-curr-control = <3>;
- status = "okay";
-
- port {
- usb1_drd_sw: endpoint {
- remote-endpoint = <&typec1_dr_sw>;
- };
- };
-};
-
-&usbotg2 {
- disable-over-current;
- dr_mode = "host";
- samsung,picophy-dc-vol-level-adjust = <7>;
- samsung,picophy-pre-emp-curr-control = <3>;
- status = "okay";
-};
-
-&usdhc1 {
- bus-width = <8>;
- non-removable;
- pinctrl-0 = <&pinctrl_usdhc1>;
- pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
- pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
- pinctrl-names = "default", "state_100mhz", "state_200mhz";
- status = "okay";
- bootph-pre-ram;
- bootph-some-ram;
-};
-
-&usdhc2 {
- bus-width = <4>;
- cd-gpios = <&gpio3 00 GPIO_ACTIVE_LOW>;
- no-mmc;
- no-sdio;
- pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
- pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
- pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
- pinctrl-3 = <&pinctrl_usdhc2_sleep>, <&pinctrl_usdhc2_gpio_sleep>;
- pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep";
- vmmc-supply = <&reg_usdhc2_vmmc>;
- status = "okay";
-};
-
-&wdog3 {
- fsl,ext-reset-output;
- status = "okay";
-};
-
-&iomuxc {
- bootph-pre-ram;
- bootph-some-ram;
-
- pinctrl_eqos: eqosgrp {
- fsl,pins = <
- MX91_PAD_ENET1_MDC__ENET1_MDC 0x57e
- MX91_PAD_ENET1_MDIO__ENET_QOS_MDIO 0x57e
- MX91_PAD_ENET1_RD0__ENET_QOS_RGMII_RD0 0x57e
- MX91_PAD_ENET1_RD1__ENET_QOS_RGMII_RD1 0x57e
- MX91_PAD_ENET1_RD2__ENET_QOS_RGMII_RD2 0x57e
- MX91_PAD_ENET1_RD3__ENET_QOS_RGMII_RD3 0x57e
- MX91_PAD_ENET1_RXC__ENET_QOS_RGMII_RXC 0x5fe
- MX91_PAD_ENET1_RX_CTL__ENET_QOS_RGMII_RX_CTL 0x57e
- MX91_PAD_ENET1_TD0__ENET_QOS_RGMII_TD0 0x57e
- MX91_PAD_ENET1_TD1__ENET1_RGMII_TD1 0x57e
- MX91_PAD_ENET1_TD2__ENET_QOS_RGMII_TD2 0x57e
- MX91_PAD_ENET1_TD3__ENET_QOS_RGMII_TD3 0x57e
- MX91_PAD_ENET1_TXC__CCM_ENET_QOS_CLOCK_GENERATE_TX_CLK 0x5fe
- MX91_PAD_ENET1_TX_CTL__ENET_QOS_RGMII_TX_CTL 0x57e
- >;
- };
-
- pinctrl_eqos_sleep: eqossleepgrp {
- fsl,pins = <
- MX91_PAD_ENET1_MDC__GPIO4_IO0 0x31e
- MX91_PAD_ENET1_MDIO__GPIO4_IO1 0x31e
- MX91_PAD_ENET1_RD0__GPIO4_IO10 0x31e
- MX91_PAD_ENET1_RD1__GPIO4_IO11 0x31e
- MX91_PAD_ENET1_RD2__GPIO4_IO12 0x31e
- MX91_PAD_ENET1_RD3__GPIO4_IO13 0x31e
- MX91_PAD_ENET1_RXC__GPIO4_IO9 0x31e
- MX91_PAD_ENET1_RX_CTL__GPIO4_IO8 0x31e
- MX91_PAD_ENET1_TD0__GPIO4_IO5 0x31e
- MX91_PAD_ENET1_TD1__GPIO4_IO4 0x31e
- MX91_PAD_ENET1_TD2__GPIO4_IO3 0x31e
- MX91_PAD_ENET1_TD3__GPIO4_IO2 0x31e
- MX91_PAD_ENET1_TXC__GPIO4_IO7 0x31e
- MX91_PAD_ENET1_TX_CTL__GPIO4_IO6 0x31e
- >;
- };
-
- pinctrl_fec: fecgrp {
- fsl,pins = <
- MX91_PAD_ENET2_MDC__ENET2_MDC 0x57e
- MX91_PAD_ENET2_MDIO__ENET2_MDIO 0x57e
- MX91_PAD_ENET2_RD0__ENET2_RGMII_RD0 0x57e
- MX91_PAD_ENET2_RD1__ENET2_RGMII_RD1 0x57e
- MX91_PAD_ENET2_RD2__ENET2_RGMII_RD2 0x57e
- MX91_PAD_ENET2_RD3__ENET2_RGMII_RD3 0x57e
- MX91_PAD_ENET2_RXC__ENET2_RGMII_RXC 0x5fe
- MX91_PAD_ENET2_RX_CTL__ENET2_RGMII_RX_CTL 0x57e
- MX91_PAD_ENET2_TD0__ENET2_RGMII_TD0 0x57e
- MX91_PAD_ENET2_TD1__ENET2_RGMII_TD1 0x57e
- MX91_PAD_ENET2_TD2__ENET2_RGMII_TD2 0x57e
- MX91_PAD_ENET2_TD3__ENET2_RGMII_TD3 0x57e
- MX91_PAD_ENET2_TXC__ENET2_RGMII_TXC 0x5fe
- MX91_PAD_ENET2_TX_CTL__ENET2_RGMII_TX_CTL 0x57e
- >;
- };
-
- pinctrl_fec_sleep: fecsleepgrp {
- fsl,pins = <
- MX91_PAD_ENET2_MDC__GPIO4_IO14 0x51e
- MX91_PAD_ENET2_MDIO__GPIO4_IO15 0x51e
- MX91_PAD_ENET2_RD0__GPIO4_IO24 0x51e
- MX91_PAD_ENET2_RD1__GPIO4_IO25 0x51e
- MX91_PAD_ENET2_RD2__GPIO4_IO26 0x51e
- MX91_PAD_ENET2_RD3__GPIO4_IO27 0x51e
- MX91_PAD_ENET2_RXC__GPIO4_IO23 0x51e
- MX91_PAD_ENET2_RX_CTL__GPIO4_IO22 0x51e
- MX91_PAD_ENET2_TD0__GPIO4_IO19 0x51e
- MX91_PAD_ENET2_TD1__GPIO4_IO18 0x51e
- MX91_PAD_ENET2_TD2__GPIO4_IO17 0x51e
- MX91_PAD_ENET2_TD3__GPIO4_IO16 0x51e
- MX91_PAD_ENET2_TXC__GPIO4_IO21 0x51e
- MX91_PAD_ENET2_TX_CTL__GPIO4_IO20 0x51e
- >;
- };
-
- pinctrl_lcdif_gpio: lcdifgpiogrp {
- fsl,pins = <
- MX91_PAD_GPIO_IO00__GPIO2_IO0 0x51e
- MX91_PAD_GPIO_IO01__GPIO2_IO1 0x51e
- MX91_PAD_GPIO_IO02__GPIO2_IO2 0x51e
- MX91_PAD_GPIO_IO03__GPIO2_IO3 0x51e
- >;
- };
-
- pinctrl_lcdif: lcdifgrp {
- fsl,pins = <
- MX91_PAD_GPIO_IO00__MEDIAMIX_DISP_CLK 0x31e
- MX91_PAD_GPIO_IO01__MEDIAMIX_DISP_DE 0x31e
- MX91_PAD_GPIO_IO02__MEDIAMIX_DISP_VSYNC 0x31e
- MX91_PAD_GPIO_IO03__MEDIAMIX_DISP_HSYNC 0x31e
- MX91_PAD_GPIO_IO04__MEDIAMIX_DISP_DATA0 0x31e
- MX91_PAD_GPIO_IO05__MEDIAMIX_DISP_DATA1 0x31e
- MX91_PAD_GPIO_IO06__MEDIAMIX_DISP_DATA2 0x31e
- MX91_PAD_GPIO_IO07__MEDIAMIX_DISP_DATA3 0x31e
- MX91_PAD_GPIO_IO08__MEDIAMIX_DISP_DATA4 0x31e
- MX91_PAD_GPIO_IO09__MEDIAMIX_DISP_DATA5 0x31e
- MX91_PAD_GPIO_IO10__MEDIAMIX_DISP_DATA6 0x31e
- MX91_PAD_GPIO_IO11__MEDIAMIX_DISP_DATA7 0x31e
- MX91_PAD_GPIO_IO12__MEDIAMIX_DISP_DATA8 0x31e
- MX91_PAD_GPIO_IO13__MEDIAMIX_DISP_DATA9 0x31e
- MX91_PAD_GPIO_IO14__MEDIAMIX_DISP_DATA10 0x31e
- MX91_PAD_GPIO_IO15__MEDIAMIX_DISP_DATA11 0x31e
- MX91_PAD_GPIO_IO16__MEDIAMIX_DISP_DATA12 0x31e
- MX91_PAD_GPIO_IO17__MEDIAMIX_DISP_DATA13 0x31e
- MX91_PAD_GPIO_IO18__MEDIAMIX_DISP_DATA14 0x31e
- MX91_PAD_GPIO_IO19__MEDIAMIX_DISP_DATA15 0x31e
- MX91_PAD_GPIO_IO20__MEDIAMIX_DISP_DATA16 0x31e
- MX91_PAD_GPIO_IO21__MEDIAMIX_DISP_DATA17 0x31e
- MX91_PAD_GPIO_IO27__GPIO2_IO27 0x31e
- >;
- };
-
- pinctrl_lpi2c1: lpi2c1grp {
- fsl,pins = <
- MX91_PAD_I2C1_SCL__LPI2C1_SCL 0x40000b9e
- MX91_PAD_I2C1_SDA__LPI2C1_SDA 0x40000b9e
- >;
- bootph-pre-ram;
- bootph-some-ram;
- };
-
- pinctrl_lpi2c2: lpi2c2grp {
- fsl,pins = <
- MX91_PAD_I2C2_SCL__LPI2C2_SCL 0x40000b9e
- MX91_PAD_I2C2_SDA__LPI2C2_SDA 0x40000b9e
- >;
- bootph-pre-ram;
- bootph-some-ram;
- };
-
- pinctrl_lpi2c3: lpi2c3grp {
- fsl,pins = <
- MX91_PAD_GPIO_IO28__LPI2C3_SDA 0x40000b9e
- MX91_PAD_GPIO_IO29__LPI2C3_SCL 0x40000b9e
- >;
- bootph-pre-ram;
- bootph-some-ram;
- };
-
- pinctrl_pcal6524: pcal6524grp {
- fsl,pins = <
- MX91_PAD_CCM_CLKO2__GPIO3_IO27 0x31e
- >;
- };
-
- pinctrl_reg_usdhc2_vmmc: regusdhc2vmmcgrp {
- fsl,pins = <
- MX91_PAD_SD2_RESET_B__GPIO3_IO7 0x31e
- >;
- bootph-pre-ram;
- };
-
- pinctrl_uart1: uart1grp {
- fsl,pins = <
- MX91_PAD_UART1_RXD__LPUART1_RX 0x31e
- MX91_PAD_UART1_TXD__LPUART1_TX 0x31e
- >;
- bootph-pre-ram;
- bootph-some-ram;
- };
-
- pinctrl_uart5: uart5grp {
- fsl,pins = <
- MX91_PAD_DAP_TDO_TRACESWO__LPUART5_TX 0x31e
- MX91_PAD_DAP_TDI__LPUART5_RX 0x31e
- MX91_PAD_DAP_TMS_SWDIO__LPUART5_RTS_B 0x31e
- MX91_PAD_DAP_TCLK_SWCLK__LPUART5_CTS_B 0x31e
- >;
- };
-
- pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp {
- fsl,pins = <
- MX91_PAD_SD1_CLK__USDHC1_CLK 0x158e
- MX91_PAD_SD1_CMD__USDHC1_CMD 0x138e
- MX91_PAD_SD1_DATA0__USDHC1_DATA0 0x138e
- MX91_PAD_SD1_DATA1__USDHC1_DATA1 0x138e
- MX91_PAD_SD1_DATA2__USDHC1_DATA2 0x138e
- MX91_PAD_SD1_DATA3__USDHC1_DATA3 0x138e
- MX91_PAD_SD1_DATA4__USDHC1_DATA4 0x138e
- MX91_PAD_SD1_DATA5__USDHC1_DATA5 0x138e
- MX91_PAD_SD1_DATA6__USDHC1_DATA6 0x138e
- MX91_PAD_SD1_DATA7__USDHC1_DATA7 0x138e
- MX91_PAD_SD1_STROBE__USDHC1_STROBE 0x158e
- >;
- };
-
- pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp {
- fsl,pins = <
- MX91_PAD_SD1_CLK__USDHC1_CLK 0x15fe
- MX91_PAD_SD1_CMD__USDHC1_CMD 0x13fe
- MX91_PAD_SD1_DATA0__USDHC1_DATA0 0x13fe
- MX91_PAD_SD1_DATA1__USDHC1_DATA1 0x13fe
- MX91_PAD_SD1_DATA2__USDHC1_DATA2 0x13fe
- MX91_PAD_SD1_DATA3__USDHC1_DATA3 0x13fe
- MX91_PAD_SD1_DATA4__USDHC1_DATA4 0x13fe
- MX91_PAD_SD1_DATA5__USDHC1_DATA5 0x13fe
- MX91_PAD_SD1_DATA6__USDHC1_DATA6 0x13fe
- MX91_PAD_SD1_DATA7__USDHC1_DATA7 0x13fe
- MX91_PAD_SD1_STROBE__USDHC1_STROBE 0x15fe
- >;
- };
-
- pinctrl_usdhc1: usdhc1grp {
- fsl,pins = <
- MX91_PAD_SD1_CLK__USDHC1_CLK 0x1582
- MX91_PAD_SD1_CMD__USDHC1_CMD 0x1382
- MX91_PAD_SD1_DATA0__USDHC1_DATA0 0x1382
- MX91_PAD_SD1_DATA1__USDHC1_DATA1 0x1382
- MX91_PAD_SD1_DATA2__USDHC1_DATA2 0x1382
- MX91_PAD_SD1_DATA3__USDHC1_DATA3 0x1382
- MX91_PAD_SD1_DATA4__USDHC1_DATA4 0x1382
- MX91_PAD_SD1_DATA5__USDHC1_DATA5 0x1382
- MX91_PAD_SD1_DATA6__USDHC1_DATA6 0x1382
- MX91_PAD_SD1_DATA7__USDHC1_DATA7 0x1382
- MX91_PAD_SD1_STROBE__USDHC1_STROBE 0x1582
- >;
- bootph-pre-ram;
- bootph-some-ram;
- };
-
- pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
- fsl,pins = <
- MX91_PAD_SD2_CLK__USDHC2_CLK 0x158e
- MX91_PAD_SD2_CMD__USDHC2_CMD 0x138e
- MX91_PAD_SD2_DATA0__USDHC2_DATA0 0x138e
- MX91_PAD_SD2_DATA1__USDHC2_DATA1 0x138e
- MX91_PAD_SD2_DATA2__USDHC2_DATA2 0x138e
- MX91_PAD_SD2_DATA3__USDHC2_DATA3 0x138e
- MX91_PAD_SD2_VSELECT__USDHC2_VSELECT 0x51e
- >;
- };
-
- pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
- fsl,pins = <
- MX91_PAD_SD2_CLK__USDHC2_CLK 0x15fe
- MX91_PAD_SD2_CMD__USDHC2_CMD 0x13fe
- MX91_PAD_SD2_DATA0__USDHC2_DATA0 0x13fe
- MX91_PAD_SD2_DATA1__USDHC2_DATA1 0x13fe
- MX91_PAD_SD2_DATA2__USDHC2_DATA2 0x13fe
- MX91_PAD_SD2_DATA3__USDHC2_DATA3 0x13fe
- MX91_PAD_SD2_VSELECT__USDHC2_VSELECT 0x51e
- >;
- };
-
- pinctrl_usdhc2_gpio: usdhc2gpiogrp {
- fsl,pins = <
- MX91_PAD_SD2_CD_B__GPIO3_IO0 0x31e
- >;
- bootph-pre-ram;
- bootph-some-ram;
- };
-
- pinctrl_usdhc2_gpio_sleep: usdhc2gpiosleepgrp {
- fsl,pins = <
- MX91_PAD_SD2_CD_B__GPIO3_IO0 0x51e
- >;
- };
-
- pinctrl_usdhc2: usdhc2grp {
- fsl,pins = <
- MX91_PAD_SD2_CLK__USDHC2_CLK 0x1582
- MX91_PAD_SD2_CMD__USDHC2_CMD 0x1382
- MX91_PAD_SD2_DATA0__USDHC2_DATA0 0x1382
- MX91_PAD_SD2_DATA1__USDHC2_DATA1 0x1382
- MX91_PAD_SD2_DATA2__USDHC2_DATA2 0x1382
- MX91_PAD_SD2_DATA3__USDHC2_DATA3 0x1382
- MX91_PAD_SD2_VSELECT__USDHC2_VSELECT 0x51e
- >;
- bootph-pre-ram;
- bootph-some-ram;
- };
-
- pinctrl_usdhc2_sleep: usdhc2sleepgrp {
- fsl,pins = <
- MX91_PAD_SD2_CLK__GPIO3_IO1 0x51e
- MX91_PAD_SD2_CMD__GPIO3_IO2 0x51e
- MX91_PAD_SD2_DATA0__GPIO3_IO3 0x51e
- MX91_PAD_SD2_DATA1__GPIO3_IO4 0x51e
- MX91_PAD_SD2_DATA2__GPIO3_IO5 0x51e
- MX91_PAD_SD2_DATA3__GPIO3_IO6 0x51e
- MX91_PAD_SD2_VSELECT__GPIO3_IO19 0x51e
- >;
- };
-
- pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
- fsl,pins = <
- MX91_PAD_SD3_CLK__USDHC3_CLK 0x158e
- MX91_PAD_SD3_CMD__USDHC3_CMD 0x138e
- MX91_PAD_SD3_DATA0__USDHC3_DATA0 0x138e
- MX91_PAD_SD3_DATA1__USDHC3_DATA1 0x138e
- MX91_PAD_SD3_DATA2__USDHC3_DATA2 0x138e
- MX91_PAD_SD3_DATA3__USDHC3_DATA3 0x138e
- >;
- };
-
- pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
- fsl,pins = <
- MX91_PAD_SD3_CLK__USDHC3_CLK 0x15fe
- MX91_PAD_SD3_CMD__USDHC3_CMD 0x13fe
- MX91_PAD_SD3_DATA0__USDHC3_DATA0 0x13fe
- MX91_PAD_SD3_DATA1__USDHC3_DATA1 0x13fe
- MX91_PAD_SD3_DATA2__USDHC3_DATA2 0x13fe
- MX91_PAD_SD3_DATA3__USDHC3_DATA3 0x13fe
- >;
- };
-
- pinctrl_usdhc3: usdhc3grp {
- fsl,pins = <
- MX91_PAD_SD3_CLK__USDHC3_CLK 0x1582
- MX91_PAD_SD3_CMD__USDHC3_CMD 0x1382
- MX91_PAD_SD3_DATA0__USDHC3_DATA0 0x1382
- MX91_PAD_SD3_DATA1__USDHC3_DATA1 0x1382
- MX91_PAD_SD3_DATA2__USDHC3_DATA2 0x1382
- MX91_PAD_SD3_DATA3__USDHC3_DATA3 0x1382
- >;
- };
-
- pinctrl_usdhc3_sleep: usdhc3sleepgrp {
- fsl,pins = <
- MX91_PAD_SD3_CLK__GPIO3_IO20 0x31e
- MX91_PAD_SD3_CMD__GPIO3_IO21 0x31e
- MX91_PAD_SD3_DATA0__GPIO3_IO22 0x31e
- MX91_PAD_SD3_DATA1__GPIO3_IO23 0x31e
- MX91_PAD_SD3_DATA2__GPIO3_IO24 0x31e
- MX91_PAD_SD3_DATA3__GPIO3_IO25 0x31e
- >;
- };
-};
diff --git a/arch/arm/dts/imx91-pinfunc.h b/arch/arm/dts/imx91-pinfunc.h
deleted file mode 100644
index 5677928ab7c..00000000000
--- a/arch/arm/dts/imx91-pinfunc.h
+++ /dev/null
@@ -1,770 +0,0 @@
-/* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */
-/*
- * Copyright 2024 NXP
- */
-
-#ifndef __DTS_IMX91_PINFUNC_H
-#define __DTS_IMX91_PINFUNC_H
-
-/*
- * The pin function ID is a tuple of
- * <mux_reg conf_reg input_reg mux_mode input_val>
- */
-#define MX91_PAD_DAP_TDI__JTAG_MUX_TDI 0x0000 0x01b0 0x03d8 0x00 0x00
-#define MX91_PAD_DAP_TDI__MQS2_LEFT 0x0000 0x01b0 0x0000 0x01 0x00
-#define MX91_PAD_DAP_TDI__CAN2_TX 0x0000 0x01b0 0x0000 0x03 0x00
-#define MX91_PAD_DAP_TDI__FLEXIO2_FLEXIO30 0x0000 0x01b0 0x0000 0x04 0x00
-#define MX91_PAD_DAP_TDI__GPIO3_IO28 0x0000 0x01b0 0x0000 0x05 0x00
-#define MX91_PAD_DAP_TDI__LPUART5_RX 0x0000 0x01b0 0x0488 0x06 0x00
-
-#define MX91_PAD_DAP_TMS_SWDIO__JTAG_MUX_TMS 0x0004 0x01b4 0x03dc 0x00 0x00
-#define MX91_PAD_DAP_TMS_SWDIO__FLEXIO2_FLEXIO31 0x0004 0x01b4 0x0000 0x04 0x00
-#define MX91_PAD_DAP_TMS_SWDIO__GPIO3_IO29 0x0004 0x01b4 0x0000 0x05 0x00
-#define MX91_PAD_DAP_TMS_SWDIO__LPUART5_RTS_B 0x0004 0x01b4 0x0000 0x06 0x00
-
-#define MX91_PAD_DAP_TCLK_SWCLK__JTAG_MUX_TCK 0x0008 0x01b8 0x03d4 0x00 0x00
-#define MX91_PAD_DAP_TCLK_SWCLK__FLEXIO1_FLEXIO30 0x0008 0x01b8 0x0000 0x04 0x00
-#define MX91_PAD_DAP_TCLK_SWCLK__GPIO3_IO30 0x0008 0x01b8 0x0000 0x05 0x00
-#define MX91_PAD_DAP_TCLK_SWCLK__LPUART5_CTS_B 0x0008 0x01b8 0x0484 0x06 0x00
-
-#define MX91_PAD_DAP_TDO_TRACESWO__JTAG_MUX_TDO 0x000c 0x01bc 0x0000 0x00 0x00
-#define MX91_PAD_DAP_TDO_TRACESWO__MQS2_RIGHT 0x000c 0x01bc 0x0000 0x01 0x00
-#define MX91_PAD_DAP_TDO_TRACESWO__CAN2_RX 0x000c 0x01bc 0x0364 0x03 0x00
-#define MX91_PAD_DAP_TDO_TRACESWO__FLEXIO1_FLEXIO31 0x000c 0x01bc 0x0000 0x04 0x00
-#define MX91_PAD_DAP_TDO_TRACESWO__GPIO3_IO31 0x000c 0x01bc 0x0000 0x05 0x00
-#define MX91_PAD_DAP_TDO_TRACESWO__LPUART5_TX 0x000c 0x01bc 0x048c 0x06 0x00
-
-#define MX91_PAD_GPIO_IO00__GPIO2_IO0 0x0010 0x01c0 0x0000 0x00 0x00
-#define MX91_PAD_GPIO_IO00__LPI2C3_SDA 0x0010 0x01c0 0x03f4 0x01 0x00
-#define MX91_PAD_GPIO_IO00__MEDIAMIX_CAM_CLK 0x0010 0x01c0 0x04bc 0x02 0x00
-#define MX91_PAD_GPIO_IO00__MEDIAMIX_DISP_CLK 0x0010 0x01c0 0x0000 0x03 0x00
-#define MX91_PAD_GPIO_IO00__LPSPI6_PCS0 0x0010 0x01c0 0x0000 0x04 0x00
-#define MX91_PAD_GPIO_IO00__LPUART5_TX 0x0010 0x01c0 0x048c 0x05 0x01
-#define MX91_PAD_GPIO_IO00__LPI2C5_SDA 0x0010 0x01c0 0x0404 0x06 0x00
-#define MX91_PAD_GPIO_IO00__FLEXIO1_FLEXIO0 0x0010 0x01c0 0x036c 0x07 0x00
-
-#define MX91_PAD_GPIO_IO01__GPIO2_IO1 0x0014 0x01c4 0x0000 0x00 0x00
-#define MX91_PAD_GPIO_IO01__LPI2C3_SCL 0x0014 0x01c4 0x03f0 0x01 0x00
-#define MX91_PAD_GPIO_IO01__MEDIAMIX_CAM_DATA0 0x0014 0x01c4 0x0490 0x02 0x00
-#define MX91_PAD_GPIO_IO01__MEDIAMIX_DISP_DE 0x0014 0x01c4 0x0000 0x03 0x00
-#define MX91_PAD_GPIO_IO01__LPSPI6_SIN 0x0014 0x01c4 0x0000 0x04 0x00
-#define MX91_PAD_GPIO_IO01__LPUART5_RX 0x0014 0x01c4 0x0488 0x05 0x01
-#define MX91_PAD_GPIO_IO01__LPI2C5_SCL 0x0014 0x01c4 0x0400 0x06 0x00
-#define MX91_PAD_GPIO_IO01__FLEXIO1_FLEXIO1 0x0014 0x01c4 0x0370 0x07 0x00
-
-#define MX91_PAD_GPIO_IO02__GPIO2_IO2 0x0018 0x01c8 0x0000 0x00 0x00
-#define MX91_PAD_GPIO_IO02__LPI2C4_SDA 0x0018 0x01c8 0x03fc 0x01 0x00
-#define MX91_PAD_GPIO_IO02__MEDIAMIX_CAM_VSYNC 0x0018 0x01c8 0x04c0 0x02 0x00
-#define MX91_PAD_GPIO_IO02__MEDIAMIX_DISP_VSYNC 0x0018 0x01c8 0x0000 0x03 0x00
-#define MX91_PAD_GPIO_IO02__LPSPI6_SOUT 0x0018 0x01c8 0x0000 0x04 0x00
-#define MX91_PAD_GPIO_IO02__LPUART5_CTS_B 0x0018 0x01c8 0x0484 0x05 0x01
-#define MX91_PAD_GPIO_IO02__LPI2C6_SDA 0x0018 0x01c8 0x040c 0x06 0x00
-#define MX91_PAD_GPIO_IO02__FLEXIO1_FLEXIO2 0x0018 0x01c8 0x0374 0x07 0x00
-
-#define MX91_PAD_GPIO_IO03__GPIO2_IO3 0x001c 0x01cc 0x0000 0x00 0x00
-#define MX91_PAD_GPIO_IO03__LPI2C4_SCL 0x001c 0x01cc 0x03f8 0x01 0x00
-#define MX91_PAD_GPIO_IO03__MEDIAMIX_CAM_HSYNC 0x001c 0x01cc 0x04b8 0x02 0x00
-#define MX91_PAD_GPIO_IO03__MEDIAMIX_DISP_HSYNC 0x001c 0x01cc 0x0000 0x03 0x00
-#define MX91_PAD_GPIO_IO03__LPSPI6_SCK 0x001c 0x01cc 0x0000 0x04 0x00
-#define MX91_PAD_GPIO_IO03__LPUART5_RTS_B 0x001c 0x01cc 0x0000 0x05 0x00
-#define MX91_PAD_GPIO_IO03__LPI2C6_SCL 0x001c 0x01cc 0x0408 0x06 0x00
-#define MX91_PAD_GPIO_IO03__FLEXIO1_FLEXIO3 0x001c 0x01cc 0x0378 0x07 0x00
-
-#define MX91_PAD_GPIO_IO04__GPIO2_IO4 0x0020 0x01d0 0x0000 0x00 0x00
-#define MX91_PAD_GPIO_IO04__TPM3_CH0 0x0020 0x01d0 0x0000 0x01 0x00
-#define MX91_PAD_GPIO_IO04__PDM_CLK 0x0020 0x01d0 0x0000 0x02 0x00
-#define MX91_PAD_GPIO_IO04__MEDIAMIX_DISP_DATA0 0x0020 0x01d0 0x0000 0x03 0x00
-#define MX91_PAD_GPIO_IO04__LPSPI7_PCS0 0x0020 0x01d0 0x0000 0x04 0x00
-#define MX91_PAD_GPIO_IO04__LPUART6_TX 0x0020 0x01d0 0x0000 0x05 0x00
-#define MX91_PAD_GPIO_IO04__LPI2C6_SDA 0x0020 0x01d0 0x040c 0x06 0x01
-#define MX91_PAD_GPIO_IO04__FLEXIO1_FLEXIO4 0x0020 0x01d0 0x037c 0x07 0x00
-
-#define MX91_PAD_GPIO_IO05__GPIO2_IO5 0x0024 0x01d4 0x0000 0x00 0x00
-#define MX91_PAD_GPIO_IO05__TPM4_CH0 0x0024 0x01d4 0x0000 0x01 0x00
-#define MX91_PAD_GPIO_IO05__PDM_BIT_STREAM0 0x0024 0x01d4 0x04c4 0x02 0x00
-#define MX91_PAD_GPIO_IO05__MEDIAMIX_DISP_DATA1 0x0024 0x01d4 0x0000 0x03 0x00
-#define MX91_PAD_GPIO_IO05__LPSPI7_SIN 0x0024 0x01d4 0x0000 0x04 0x00
-#define MX91_PAD_GPIO_IO05__LPUART6_RX 0x0024 0x01d4 0x0000 0x05 0x00
-#define MX91_PAD_GPIO_IO05__LPI2C6_SCL 0x0024 0x01d4 0x0408 0x06 0x01
-#define MX91_PAD_GPIO_IO05__FLEXIO1_FLEXIO5 0x0024 0x01d4 0x0380 0x07 0x00
-
-#define MX91_PAD_GPIO_IO06__GPIO2_IO6 0x0028 0x01d8 0x0000 0x00 0x00
-#define MX91_PAD_GPIO_IO06__TPM5_CH0 0x0028 0x01d8 0x0000 0x01 0x00
-#define MX91_PAD_GPIO_IO06__PDM_BIT_STREAM1 0x0028 0x01d8 0x04c8 0x02 0x00
-#define MX91_PAD_GPIO_IO06__MEDIAMIX_DISP_DATA2 0x0028 0x01d8 0x0000 0x03 0x00
-#define MX91_PAD_GPIO_IO06__LPSPI7_SOUT 0x0028 0x01d8 0x0000 0x04 0x00
-#define MX91_PAD_GPIO_IO06__LPUART6_CTS_B 0x0028 0x01d8 0x0000 0x05 0x00
-#define MX91_PAD_GPIO_IO06__LPI2C7_SDA 0x0028 0x01d8 0x0414 0x06 0x00
-#define MX91_PAD_GPIO_IO06__FLEXIO1_FLEXIO6 0x0028 0x01d8 0x0384 0x07 0x00
-
-#define MX91_PAD_GPIO_IO07__GPIO2_IO7 0x002c 0x01dc 0x0000 0x00 0x00
-#define MX91_PAD_GPIO_IO07__LPSPI3_PCS1 0x002c 0x01dc 0x0000 0x01 0x00
-#define MX91_PAD_GPIO_IO07__MEDIAMIX_CAM_DATA1 0x002c 0x01dc 0x0494 0x02 0x00
-#define MX91_PAD_GPIO_IO07__MEDIAMIX_DISP_DATA3 0x002c 0x01dc 0x0000 0x03 0x00
-#define MX91_PAD_GPIO_IO07__LPSPI7_SCK 0x002c 0x01dc 0x0000 0x04 0x00
-#define MX91_PAD_GPIO_IO07__LPUART6_RTS_B 0x002c 0x01dc 0x0000 0x05 0x00
-#define MX91_PAD_GPIO_IO07__LPI2C7_SCL 0x002c 0x01dc 0x0410 0x06 0x00
-#define MX91_PAD_GPIO_IO07__FLEXIO1_FLEXIO7 0x002c 0x01dc 0x0388 0x07 0x00
-
-#define MX91_PAD_GPIO_IO08__GPIO2_IO8 0x0030 0x01e0 0x0000 0x00 0x00
-#define MX91_PAD_GPIO_IO08__LPSPI3_PCS0 0x0030 0x01e0 0x0000 0x01 0x00
-#define MX91_PAD_GPIO_IO08__MEDIAMIX_CAM_DATA2 0x0030 0x01e0 0x0498 0x02 0x00
-#define MX91_PAD_GPIO_IO08__MEDIAMIX_DISP_DATA4 0x0030 0x01e0 0x0000 0x03 0x00
-#define MX91_PAD_GPIO_IO08__TPM6_CH0 0x0030 0x01e0 0x0000 0x04 0x00
-#define MX91_PAD_GPIO_IO08__LPUART7_TX 0x0030 0x01e0 0x0000 0x05 0x00
-#define MX91_PAD_GPIO_IO08__LPI2C7_SDA 0x0030 0x01e0 0x0414 0x06 0x01
-#define MX91_PAD_GPIO_IO08__FLEXIO1_FLEXIO8 0x0030 0x01e0 0x038c 0x07 0x00
-
-#define MX91_PAD_GPIO_IO09__GPIO2_IO9 0x0034 0x01e4 0x0000 0x00 0x00
-#define MX91_PAD_GPIO_IO09__LPSPI3_SIN 0x0034 0x01e4 0x0000 0x01 0x00
-#define MX91_PAD_GPIO_IO09__MEDIAMIX_CAM_DATA3 0x0034 0x01e4 0x049c 0x02 0x00
-#define MX91_PAD_GPIO_IO09__MEDIAMIX_DISP_DATA5 0x0034 0x01e4 0x0000 0x03 0x00
-#define MX91_PAD_GPIO_IO09__TPM3_EXTCLK 0x0034 0x01e4 0x0000 0x04 0x00
-#define MX91_PAD_GPIO_IO09__LPUART7_RX 0x0034 0x01e4 0x0000 0x05 0x00
-#define MX91_PAD_GPIO_IO09__LPI2C7_SCL 0x0034 0x01e4 0x0410 0x06 0x01
-#define MX91_PAD_GPIO_IO09__FLEXIO1_FLEXIO9 0x0034 0x01e4 0x0390 0x07 0x00
-
-#define MX91_PAD_GPIO_IO10__GPIO2_IO10 0x0038 0x01e8 0x0000 0x00 0x00
-#define MX91_PAD_GPIO_IO10__LPSPI3_SOUT 0x0038 0x01e8 0x0000 0x01 0x00
-#define MX91_PAD_GPIO_IO10__MEDIAMIX_CAM_DATA4 0x0038 0x01e8 0x04a0 0x02 0x00
-#define MX91_PAD_GPIO_IO10__MEDIAMIX_DISP_DATA6 0x0038 0x01e8 0x0000 0x03 0x00
-#define MX91_PAD_GPIO_IO10__TPM4_EXTCLK 0x0038 0x01e8 0x0000 0x04 0x00
-#define MX91_PAD_GPIO_IO10__LPUART7_CTS_B 0x0038 0x01e8 0x0000 0x05 0x00
-#define MX91_PAD_GPIO_IO10__LPI2C8_SDA 0x0038 0x01e8 0x041c 0x06 0x00
-#define MX91_PAD_GPIO_IO10__FLEXIO1_FLEXIO10 0x0038 0x01e8 0x0394 0x07 0x00
-
-#define MX91_PAD_GPIO_IO11__GPIO2_IO11 0x003c 0x01ec 0x0000 0x00 0x00
-#define MX91_PAD_GPIO_IO11__LPSPI3_SCK 0x003c 0x01ec 0x0000 0x01 0x00
-#define MX91_PAD_GPIO_IO11__MEDIAMIX_CAM_DATA5 0x003c 0x01ec 0x04a4 0x02 0x00
-#define MX91_PAD_GPIO_IO11__MEDIAMIX_DISP_DATA7 0x003c 0x01ec 0x0000 0x03 0x00
-#define MX91_PAD_GPIO_IO11__TPM5_EXTCLK 0x003c 0x01ec 0x0000 0x04 0x00
-#define MX91_PAD_GPIO_IO11__LPUART7_RTS_B 0x003c 0x01ec 0x0000 0x05 0x00
-#define MX91_PAD_GPIO_IO11__LPI2C8_SCL 0x003c 0x01ec 0x0418 0x06 0x00
-#define MX91_PAD_GPIO_IO11__FLEXIO1_FLEXIO11 0x003c 0x01ec 0x0398 0x07 0x00
-
-#define MX91_PAD_GPIO_IO12__GPIO2_IO12 0x0040 0x01f0 0x0000 0x00 0x00
-#define MX91_PAD_GPIO_IO12__TPM3_CH2 0x0040 0x01f0 0x0000 0x01 0x00
-#define MX91_PAD_GPIO_IO12__PDM_BIT_STREAM2 0x0040 0x01f0 0x04cc 0x02 0x00
-#define MX91_PAD_GPIO_IO12__MEDIAMIX_DISP_DATA8 0x0040 0x01f0 0x0000 0x03 0x00
-#define MX91_PAD_GPIO_IO12__LPSPI8_PCS0 0x0040 0x01f0 0x0000 0x04 0x00
-#define MX91_PAD_GPIO_IO12__LPUART8_TX 0x0040 0x01f0 0x0000 0x05 0x00
-#define MX91_PAD_GPIO_IO12__LPI2C8_SDA 0x0040 0x01f0 0x041c 0x06 0x01
-#define MX91_PAD_GPIO_IO12__SAI3_RX_SYNC 0x0040 0x01f0 0x04dc 0x07 0x00
-
-#define MX91_PAD_GPIO_IO13__GPIO2_IO13 0x0044 0x01f4 0x0000 0x00 0x00
-#define MX91_PAD_GPIO_IO13__TPM4_CH2 0x0044 0x01f4 0x0000 0x01 0x00
-#define MX91_PAD_GPIO_IO13__PDM_BIT_STREAM3 0x0044 0x01f4 0x04d0 0x02 0x00
-#define MX91_PAD_GPIO_IO13__MEDIAMIX_DISP_DATA9 0x0044 0x01f4 0x0000 0x03 0x00
-#define MX91_PAD_GPIO_IO13__LPSPI8_SIN 0x0044 0x01f4 0x0000 0x04 0x00
-#define MX91_PAD_GPIO_IO13__LPUART8_RX 0x0044 0x01f4 0x0000 0x05 0x00
-#define MX91_PAD_GPIO_IO13__LPI2C8_SCL 0x0044 0x01f4 0x0418 0x06 0x01
-#define MX91_PAD_GPIO_IO13__FLEXIO1_FLEXIO13 0x0044 0x01f4 0x039c 0x07 0x00
-
-#define MX91_PAD_GPIO_IO14__GPIO2_IO14 0x0048 0x01f8 0x0000 0x00 0x00
-#define MX91_PAD_GPIO_IO14__LPUART3_TX 0x0048 0x01f8 0x0474 0x01 0x00
-#define MX91_PAD_GPIO_IO14__MEDIAMIX_CAM_DATA6 0x0048 0x01f8 0x04a8 0x02 0x00
-#define MX91_PAD_GPIO_IO14__MEDIAMIX_DISP_DATA10 0x0048 0x01f8 0x0000 0x03 0x00
-#define MX91_PAD_GPIO_IO14__LPSPI8_SOUT 0x0048 0x01f8 0x0000 0x04 0x00
-#define MX91_PAD_GPIO_IO14__LPUART8_CTS_B 0x0048 0x01f8 0x0000 0x05 0x00
-#define MX91_PAD_GPIO_IO14__LPUART4_TX 0x0048 0x01f8 0x0480 0x06 0x00
-#define MX91_PAD_GPIO_IO14__FLEXIO1_FLEXIO14 0x0048 0x01f8 0x03a0 0x07 0x00
-
-#define MX91_PAD_GPIO_IO15__GPIO2_IO15 0x004c 0x01fc 0x0000 0x00 0x00
-#define MX91_PAD_GPIO_IO15__LPUART3_RX 0x004c 0x01fc 0x0470 0x01 0x00
-#define MX91_PAD_GPIO_IO15__MEDIAMIX_CAM_DATA7 0x004c 0x01fc 0x04ac 0x02 0x00
-#define MX91_PAD_GPIO_IO15__MEDIAMIX_DISP_DATA11 0x004c 0x01fc 0x0000 0x03 0x00
-#define MX91_PAD_GPIO_IO15__LPSPI8_SCK 0x004c 0x01fc 0x0000 0x04 0x00
-#define MX91_PAD_GPIO_IO15__LPUART8_RTS_B 0x004c 0x01fc 0x0000 0x05 0x00
-#define MX91_PAD_GPIO_IO15__LPUART4_RX 0x004c 0x01fc 0x047c 0x06 0x00
-#define MX91_PAD_GPIO_IO15__FLEXIO1_FLEXIO15 0x004c 0x01fc 0x03a4 0x07 0x00
-
-#define MX91_PAD_GPIO_IO16__GPIO2_IO16 0x0050 0x0200 0x0000 0x00 0x00
-#define MX91_PAD_GPIO_IO16__SAI3_TX_BCLK 0x0050 0x0200 0x0000 0x01 0x00
-#define MX91_PAD_GPIO_IO16__PDM_BIT_STREAM2 0x0050 0x0200 0x04cc 0x02 0x01
-#define MX91_PAD_GPIO_IO16__MEDIAMIX_DISP_DATA12 0x0050 0x0200 0x0000 0x03 0x00
-#define MX91_PAD_GPIO_IO16__LPUART3_CTS_B 0x0050 0x0200 0x046c 0x04 0x00
-#define MX91_PAD_GPIO_IO16__LPSPI4_PCS2 0x0050 0x0200 0x0000 0x05 0x00
-#define MX91_PAD_GPIO_IO16__LPUART4_CTS_B 0x0050 0x0200 0x0478 0x06 0x00
-#define MX91_PAD_GPIO_IO16__FLEXIO1_FLEXIO16 0x0050 0x0200 0x03a8 0x07 0x00
-
-#define MX91_PAD_GPIO_IO17__GPIO2_IO17 0x0054 0x0204 0x0000 0x00 0x00
-#define MX91_PAD_GPIO_IO17__SAI3_MCLK 0x0054 0x0204 0x0000 0x01 0x00
-#define MX91_PAD_GPIO_IO17__MEDIAMIX_CAM_DATA8 0x0054 0x0204 0x04b0 0x02 0x00
-#define MX91_PAD_GPIO_IO17__MEDIAMIX_DISP_DATA13 0x0054 0x0204 0x0000 0x03 0x00
-#define MX91_PAD_GPIO_IO17__LPUART3_RTS_B 0x0054 0x0204 0x0000 0x04 0x00
-#define MX91_PAD_GPIO_IO17__LPSPI4_PCS1 0x0054 0x0204 0x0000 0x05 0x00
-#define MX91_PAD_GPIO_IO17__LPUART4_RTS_B 0x0054 0x0204 0x0000 0x06 0x00
-#define MX91_PAD_GPIO_IO17__FLEXIO1_FLEXIO17 0x0054 0x0204 0x03ac 0x07 0x00
-
-#define MX91_PAD_GPIO_IO18__GPIO2_IO18 0x0058 0x0208 0x0000 0x00 0x00
-#define MX91_PAD_GPIO_IO18__SAI3_RX_BCLK 0x0058 0x0208 0x04d8 0x01 0x00
-#define MX91_PAD_GPIO_IO18__MEDIAMIX_CAM_DATA9 0x0058 0x0208 0x04b4 0x02 0x00
-#define MX91_PAD_GPIO_IO18__MEDIAMIX_DISP_DATA14 0x0058 0x0208 0x0000 0x03 0x00
-#define MX91_PAD_GPIO_IO18__LPSPI5_PCS0 0x0058 0x0208 0x0000 0x04 0x00
-#define MX91_PAD_GPIO_IO18__LPSPI4_PCS0 0x0058 0x0208 0x0000 0x05 0x00
-#define MX91_PAD_GPIO_IO18__TPM5_CH2 0x0058 0x0208 0x0000 0x06 0x00
-#define MX91_PAD_GPIO_IO18__FLEXIO1_FLEXIO18 0x0058 0x0208 0x03b0 0x07 0x00
-
-#define MX91_PAD_GPIO_IO19__GPIO2_IO19 0x005c 0x020c 0x0000 0x00 0x00
-#define MX91_PAD_GPIO_IO19__SAI3_RX_SYNC 0x005c 0x020c 0x04dc 0x01 0x01
-#define MX91_PAD_GPIO_IO19__PDM_BIT_STREAM3 0x005c 0x020c 0x04d0 0x02 0x01
-#define MX91_PAD_GPIO_IO19__MEDIAMIX_DISP_DATA15 0x005c 0x020c 0x0000 0x03 0x00
-#define MX91_PAD_GPIO_IO19__LPSPI5_SIN 0x005c 0x020c 0x0000 0x04 0x00
-#define MX91_PAD_GPIO_IO19__LPSPI4_SIN 0x005c 0x020c 0x0000 0x05 0x00
-#define MX91_PAD_GPIO_IO19__TPM6_CH2 0x005c 0x020c 0x0000 0x06 0x00
-#define MX91_PAD_GPIO_IO19__SAI3_TX_DATA0 0x005c 0x020c 0x0000 0x07 0x00
-
-#define MX91_PAD_GPIO_IO20__GPIO2_IO20 0x0060 0x0210 0x0000 0x00 0x00
-#define MX91_PAD_GPIO_IO20__SAI3_RX_DATA0 0x0060 0x0210 0x0000 0x01 0x00
-#define MX91_PAD_GPIO_IO20__PDM_BIT_STREAM0 0x0060 0x0210 0x04c4 0x02 0x01
-#define MX91_PAD_GPIO_IO20__MEDIAMIX_DISP_DATA16 0x0060 0x0210 0x0000 0x03 0x00
-#define MX91_PAD_GPIO_IO20__LPSPI5_SOUT 0x0060 0x0210 0x0000 0x04 0x00
-#define MX91_PAD_GPIO_IO20__LPSPI4_SOUT 0x0060 0x0210 0x0000 0x05 0x00
-#define MX91_PAD_GPIO_IO20__TPM3_CH1 0x0060 0x0210 0x0000 0x06 0x00
-#define MX91_PAD_GPIO_IO20__FLEXIO1_FLEXIO20 0x0060 0x0210 0x03b4 0x07 0x00
-
-#define MX91_PAD_GPIO_IO21__GPIO2_IO21 0x0064 0x0214 0x0000 0x00 0x00
-#define MX91_PAD_GPIO_IO21__SAI3_TX_DATA0 0x0064 0x0214 0x0000 0x01 0x00
-#define MX91_PAD_GPIO_IO21__PDM_CLK 0x0064 0x0214 0x0000 0x02 0x00
-#define MX91_PAD_GPIO_IO21__MEDIAMIX_DISP_DATA17 0x0064 0x0214 0x0000 0x03 0x00
-#define MX91_PAD_GPIO_IO21__LPSPI5_SCK 0x0064 0x0214 0x0000 0x04 0x00
-#define MX91_PAD_GPIO_IO21__LPSPI4_SCK 0x0064 0x0214 0x0000 0x05 0x00
-#define MX91_PAD_GPIO_IO21__TPM4_CH1 0x0064 0x0214 0x0000 0x06 0x00
-#define MX91_PAD_GPIO_IO21__SAI3_RX_BCLK 0x0064 0x0214 0x04d8 0x07 0x01
-
-#define MX91_PAD_GPIO_IO22__GPIO2_IO22 0x0068 0x0218 0x0000 0x00 0x00
-#define MX91_PAD_GPIO_IO22__USDHC3_CLK 0x0068 0x0218 0x04e8 0x01 0x00
-#define MX91_PAD_GPIO_IO22__SPDIF_IN 0x0068 0x0218 0x04e4 0x02 0x00
-#define MX91_PAD_GPIO_IO22__MEDIAMIX_DISP_DATA18 0x0068 0x0218 0x0000 0x03 0x00
-#define MX91_PAD_GPIO_IO22__TPM5_CH1 0x0068 0x0218 0x0000 0x04 0x00
-#define MX91_PAD_GPIO_IO22__TPM6_EXTCLK 0x0068 0x0218 0x0000 0x05 0x00
-#define MX91_PAD_GPIO_IO22__LPI2C5_SDA 0x0068 0x0218 0x0404 0x06 0x01
-#define MX91_PAD_GPIO_IO22__FLEXIO1_FLEXIO22 0x0068 0x0218 0x03b8 0x07 0x00
-
-#define MX91_PAD_GPIO_IO23__GPIO2_IO23 0x006c 0x021c 0x0000 0x00 0x00
-#define MX91_PAD_GPIO_IO23__USDHC3_CMD 0x006c 0x021c 0x04ec 0x01 0x00
-#define MX91_PAD_GPIO_IO23__SPDIF_OUT 0x006c 0x021c 0x0000 0x02 0x00
-#define MX91_PAD_GPIO_IO23__MEDIAMIX_DISP_DATA19 0x006c 0x021c 0x0000 0x03 0x00
-#define MX91_PAD_GPIO_IO23__TPM6_CH1 0x006c 0x021c 0x0000 0x04 0x00
-#define MX91_PAD_GPIO_IO23__LPI2C5_SCL 0x006c 0x021c 0x0400 0x06 0x01
-#define MX91_PAD_GPIO_IO23__FLEXIO1_FLEXIO23 0x006c 0x021c 0x03bc 0x07 0x00
-
-#define MX91_PAD_GPIO_IO24__GPIO2_IO24 0x0070 0x0220 0x0000 0x00 0x00
-#define MX91_PAD_GPIO_IO24__USDHC3_DATA0 0x0070 0x0220 0x04f0 0x01 0x00
-#define MX91_PAD_GPIO_IO24__MEDIAMIX_DISP_DATA20 0x0070 0x0220 0x0000 0x03 0x00
-#define MX91_PAD_GPIO_IO24__TPM3_CH3 0x0070 0x0220 0x0000 0x04 0x00
-#define MX91_PAD_GPIO_IO24__JTAG_MUX_TDO 0x0070 0x0220 0x0000 0x05 0x00
-#define MX91_PAD_GPIO_IO24__LPSPI6_PCS1 0x0070 0x0220 0x0000 0x06 0x00
-#define MX91_PAD_GPIO_IO24__FLEXIO1_FLEXIO24 0x0070 0x0220 0x03c0 0x07 0x00
-
-#define MX91_PAD_GPIO_IO25__GPIO2_IO25 0x0074 0x0224 0x0000 0x00 0x00
-#define MX91_PAD_GPIO_IO25__USDHC3_DATA1 0x0074 0x0224 0x04f4 0x01 0x00
-#define MX91_PAD_GPIO_IO25__CAN2_TX 0x0074 0x0224 0x0000 0x02 0x00
-#define MX91_PAD_GPIO_IO25__MEDIAMIX_DISP_DATA21 0x0074 0x0224 0x0000 0x03 0x00
-#define MX91_PAD_GPIO_IO25__TPM4_CH3 0x0074 0x0224 0x0000 0x04 0x00
-#define MX91_PAD_GPIO_IO25__JTAG_MUX_TCK 0x0074 0x0224 0x03d4 0x05 0x01
-#define MX91_PAD_GPIO_IO25__LPSPI7_PCS1 0x0074 0x0224 0x0000 0x06 0x00
-#define MX91_PAD_GPIO_IO25__FLEXIO1_FLEXIO25 0x0074 0x0224 0x03c4 0x07 0x00
-
-#define MX91_PAD_GPIO_IO26__GPIO2_IO26 0x0078 0x0228 0x0000 0x00 0x00
-#define MX91_PAD_GPIO_IO26__USDHC3_DATA2 0x0078 0x0228 0x04f8 0x01 0x00
-#define MX91_PAD_GPIO_IO26__PDM_BIT_STREAM1 0x0078 0x0228 0x04c8 0x02 0x01
-#define MX91_PAD_GPIO_IO26__MEDIAMIX_DISP_DATA22 0x0078 0x0228 0x0000 0x03 0x00
-#define MX91_PAD_GPIO_IO26__TPM5_CH3 0x0078 0x0228 0x0000 0x04 0x00
-#define MX91_PAD_GPIO_IO26__JTAG_MUX_TDI 0x0078 0x0228 0x03d8 0x05 0x01
-#define MX91_PAD_GPIO_IO26__LPSPI8_PCS1 0x0078 0x0228 0x0000 0x06 0x00
-#define MX91_PAD_GPIO_IO26__SAI3_TX_SYNC 0x0078 0x0228 0x04e0 0x07 0x00
-
-#define MX91_PAD_GPIO_IO27__GPIO2_IO27 0x007c 0x022c 0x0000 0x00 0x00
-#define MX91_PAD_GPIO_IO27__USDHC3_DATA3 0x007c 0x022c 0x04fc 0x01 0x00
-#define MX91_PAD_GPIO_IO27__CAN2_RX 0x007c 0x022c 0x0364 0x02 0x01
-#define MX91_PAD_GPIO_IO27__MEDIAMIX_DISP_DATA23 0x007c 0x022c 0x0000 0x03 0x00
-#define MX91_PAD_GPIO_IO27__TPM6_CH3 0x007c 0x022c 0x0000 0x04 0x00
-#define MX91_PAD_GPIO_IO27__JTAG_MUX_TMS 0x007c 0x022c 0x03dc 0x05 0x01
-#define MX91_PAD_GPIO_IO27__LPSPI5_PCS1 0x007c 0x022c 0x0000 0x06 0x00
-#define MX91_PAD_GPIO_IO27__FLEXIO1_FLEXIO27 0x007c 0x022c 0x03c8 0x07 0x00
-
-#define MX91_PAD_GPIO_IO28__GPIO2_IO28 0x0080 0x0230 0x0000 0x00 0x00
-#define MX91_PAD_GPIO_IO28__LPI2C3_SDA 0x0080 0x0230 0x03f4 0x01 0x01
-#define MX91_PAD_GPIO_IO28__CAN1_TX 0x0080 0x0230 0x0000 0x02 0x00
-#define MX91_PAD_GPIO_IO28__FLEXIO1_FLEXIO28 0x0080 0x0230 0x0000 0x07 0x00
-
-#define MX91_PAD_GPIO_IO29__GPIO2_IO29 0x0084 0x0234 0x0000 0x00 0x00
-#define MX91_PAD_GPIO_IO29__LPI2C3_SCL 0x0084 0x0234 0x03f0 0x01 0x01
-#define MX91_PAD_GPIO_IO29__CAN1_RX 0x0084 0x0234 0x0360 0x02 0x00
-#define MX91_PAD_GPIO_IO29__FLEXIO1_FLEXIO29 0x0084 0x0234 0x0000 0x07 0x00
-
-#define MX91_PAD_CCM_CLKO1__CCMSRCGPCMIX_CLKO1 0x0088 0x0238 0x0000 0x00 0x00
-#define MX91_PAD_CCM_CLKO1__FLEXIO1_FLEXIO26 0x0088 0x0238 0x0000 0x04 0x00
-#define MX91_PAD_CCM_CLKO1__GPIO3_IO26 0x0088 0x0238 0x0000 0x05 0x00
-
-#define MX91_PAD_CCM_CLKO2__GPIO3_IO27 0x008c 0x023c 0x0000 0x05 0x00
-#define MX91_PAD_CCM_CLKO2__CCMSRCGPCMIX_CLKO2 0x008c 0x023c 0x0000 0x00 0x00
-#define MX91_PAD_CCM_CLKO2__FLEXIO1_FLEXIO27 0x008c 0x023c 0x03c8 0x04 0x01
-
-#define MX91_PAD_CCM_CLKO3__CCMSRCGPCMIX_CLKO3 0x0090 0x0240 0x0000 0x00 0x00
-#define MX91_PAD_CCM_CLKO3__FLEXIO2_FLEXIO28 0x0090 0x0240 0x0000 0x04 0x00
-#define MX91_PAD_CCM_CLKO3__GPIO4_IO28 0x0090 0x0240 0x0000 0x05 0x00
-
-#define MX91_PAD_CCM_CLKO4__CCMSRCGPCMIX_CLKO4 0x0094 0x0244 0x0000 0x00 0x00
-#define MX91_PAD_CCM_CLKO4__FLEXIO2_FLEXIO29 0x0094 0x0244 0x0000 0x04 0x00
-#define MX91_PAD_CCM_CLKO4__GPIO4_IO29 0x0094 0x0244 0x0000 0x05 0x00
-
-#define MX91_PAD_ENET1_MDC__ENET1_MDC 0x0098 0x0248 0x0000 0x00 0x00
-#define MX91_PAD_ENET1_MDC__LPUART3_DCB_B 0x0098 0x0248 0x0000 0x01 0x00
-#define MX91_PAD_ENET1_MDC__I3C2_SCL 0x0098 0x0248 0x03cc 0x02 0x00
-#define MX91_PAD_ENET1_MDC__HSIOMIX_OTG_ID1 0x0098 0x0248 0x0000 0x03 0x00
-#define MX91_PAD_ENET1_MDC__FLEXIO2_FLEXIO0 0x0098 0x0248 0x0000 0x04 0x00
-#define MX91_PAD_ENET1_MDC__GPIO4_IO0 0x0098 0x0248 0x0000 0x05 0x00
-#define MX91_PAD_ENET1_MDC__LPI2C1_SCL 0x0098 0x0248 0x03e0 0x06 0x00
-
-#define MX91_PAD_ENET1_MDIO__ENET_QOS_MDIO 0x009c 0x024c 0x0000 0x00 0x00
-#define MX91_PAD_ENET1_MDIO__LPUART3_RIN_B 0x009c 0x024c 0x0000 0x01 0x00
-#define MX91_PAD_ENET1_MDIO__I3C2_SDA 0x009c 0x024c 0x03d0 0x02 0x00
-#define MX91_PAD_ENET1_MDIO__HSIOMIX_OTG_PWR1 0x009c 0x024c 0x0000 0x03 0x00
-#define MX91_PAD_ENET1_MDIO__FLEXIO2_FLEXIO1 0x009c 0x024c 0x0000 0x04 0x00
-#define MX91_PAD_ENET1_MDIO__GPIO4_IO1 0x009c 0x024c 0x0000 0x05 0x00
-#define MX91_PAD_ENET1_MDIO__LPI2C1_SDA 0x009c 0x024c 0x03e4 0x06 0x00
-
-#define MX91_PAD_ENET1_TD3__ENET_QOS_RGMII_TD3 0x00a0 0x0250 0x0000 0x00 0x00
-#define MX91_PAD_ENET1_TD3__CAN2_TX 0x00a0 0x0250 0x0000 0x02 0x00
-#define MX91_PAD_ENET1_TD3__HSIOMIX_OTG_ID2 0x00a0 0x0250 0x0000 0x03 0x00
-#define MX91_PAD_ENET1_TD3__FLEXIO2_FLEXIO2 0x00a0 0x0250 0x0000 0x04 0x00
-#define MX91_PAD_ENET1_TD3__GPIO4_IO2 0x00a0 0x0250 0x0000 0x05 0x00
-#define MX91_PAD_ENET1_TD3__LPI2C2_SCL 0x00a0 0x0250 0x03e8 0x06 0x00
-
-#define MX91_PAD_ENET1_TD2__ENET_QOS_RGMII_TD2 0x00a4 0x0254 0x0000 0x00 0x00
-#define MX91_PAD_ENET1_TD2__ENET_QOS_CLOCK_GENERATE_CLK 0x00a4 0x0254 0x0000 0x01 0x00
-#define MX91_PAD_ENET1_TD2__CAN2_RX 0x00a4 0x0254 0x0364 0x02 0x02
-#define MX91_PAD_ENET1_TD2__HSIOMIX_OTG_OC2 0x00a4 0x0254 0x0000 0x03 0x00
-#define MX91_PAD_ENET1_TD2__FLEXIO2_FLEXIO3 0x00a4 0x0254 0x0000 0x04 0x00
-#define MX91_PAD_ENET1_TD2__GPIO4_IO3 0x00a4 0x0254 0x0000 0x05 0x00
-#define MX91_PAD_ENET1_TD2__LPI2C2_SDA 0x00a4 0x0254 0x03ec 0x06 0x00
-
-#define MX91_PAD_ENET1_TD1__ENET1_RGMII_TD1 0x00a8 0x0258 0x0000 0x00 0x00
-#define MX91_PAD_ENET1_TD1__LPUART3_RTS_B 0x00a8 0x0258 0x0000 0x01 0x00
-#define MX91_PAD_ENET1_TD1__I3C2_PUR 0x00a8 0x0258 0x0000 0x02 0x00
-#define MX91_PAD_ENET1_TD1__HSIOMIX_OTG_OC1 0x00a8 0x0258 0x0000 0x03 0x00
-#define MX91_PAD_ENET1_TD1__FLEXIO2_FLEXIO4 0x00a8 0x0258 0x0000 0x04 0x00
-#define MX91_PAD_ENET1_TD1__GPIO4_IO4 0x00a8 0x0258 0x0000 0x05 0x00
-#define MX91_PAD_ENET1_TD1__I3C2_PUR_B 0x00a8 0x0258 0x0000 0x06 0x00
-
-#define MX91_PAD_ENET1_TD0__ENET_QOS_RGMII_TD0 0x00ac 0x025c 0x0000 0x00 0x00
-#define MX91_PAD_ENET1_TD0__LPUART3_TX 0x00ac 0x025c 0x0474 0x01 0x01
-#define MX91_PAD_ENET1_TD0__FLEXIO2_FLEXIO5 0x00ac 0x025c 0x0000 0x04 0x00
-#define MX91_PAD_ENET1_TD0__GPIO4_IO5 0x00ac 0x025c 0x0000 0x05 0x00
-
-#define MX91_PAD_ENET1_TX_CTL__ENET_QOS_RGMII_TX_CTL 0x00b0 0x0260 0x0000 0x00 0x00
-#define MX91_PAD_ENET1_TX_CTL__LPUART3_DTR_B 0x00b0 0x0260 0x0000 0x01 0x00
-#define MX91_PAD_ENET1_TX_CTL__FLEXIO2_FLEXIO6 0x00b0 0x0260 0x0000 0x04 0x00
-#define MX91_PAD_ENET1_TX_CTL__GPIO4_IO6 0x00b0 0x0260 0x0000 0x05 0x00
-#define MX91_PAD_ENET1_TX_CTL__LPSPI2_SCK 0x00b0 0x0260 0x043c 0x02 0x00
-
-#define MX91_PAD_ENET1_TXC__CCM_ENET_QOS_CLOCK_GENERATE_TX_CLK 0x00b4 0x0264 0x0000 0x00 0x00
-#define MX91_PAD_ENET1_TXC__ENET_QOS_TX_ER 0x00b4 0x0264 0x0000 0x01 0x00
-#define MX91_PAD_ENET1_TXC__FLEXIO2_FLEXIO7 0x00b4 0x0264 0x0000 0x04 0x00
-#define MX91_PAD_ENET1_TXC__GPIO4_IO7 0x00b4 0x0264 0x0000 0x05 0x00
-#define MX91_PAD_ENET1_TXC__LPSPI2_SIN 0x00b4 0x0264 0x0440 0x02 0x00
-
-#define MX91_PAD_ENET1_RX_CTL__ENET_QOS_RGMII_RX_CTL 0x00b8 0x0268 0x0000 0x00 0x00
-#define MX91_PAD_ENET1_RX_CTL__LPUART3_DSR_B 0x00b8 0x0268 0x0000 0x01 0x00
-#define MX91_PAD_ENET1_RX_CTL__HSIOMIX_OTG_PWR2 0x00b8 0x0268 0x0000 0x03 0x00
-#define MX91_PAD_ENET1_RX_CTL__FLEXIO2_FLEXIO8 0x00b8 0x0268 0x0000 0x04 0x00
-#define MX91_PAD_ENET1_RX_CTL__GPIO4_IO8 0x00b8 0x0268 0x0000 0x05 0x00
-#define MX91_PAD_ENET1_RX_CTL__LPSPI2_PCS0 0x00b8 0x0268 0x0434 0x02 0x00
-
-#define MX91_PAD_ENET1_RXC__ENET_QOS_RGMII_RXC 0x00bc 0x026c 0x0000 0x00 0x00
-#define MX91_PAD_ENET1_RXC__ENET_QOS_RX_ER 0x00bc 0x026c 0x0000 0x01 0x00
-#define MX91_PAD_ENET1_RXC__FLEXIO2_FLEXIO9 0x00bc 0x026c 0x0000 0x04 0x00
-#define MX91_PAD_ENET1_RXC__GPIO4_IO9 0x00bc 0x026c 0x0000 0x05 0x00
-#define MX91_PAD_ENET1_RXC__LPSPI2_SOUT 0x00bc 0x026c 0x0444 0x02 0x00
-
-#define MX91_PAD_ENET1_RD0__ENET_QOS_RGMII_RD0 0x00c0 0x0270 0x0000 0x00 0x00
-#define MX91_PAD_ENET1_RD0__LPUART3_RX 0x00c0 0x0270 0x0470 0x01 0x01
-#define MX91_PAD_ENET1_RD0__FLEXIO2_FLEXIO10 0x00c0 0x0270 0x0000 0x04 0x00
-#define MX91_PAD_ENET1_RD0__GPIO4_IO10 0x00c0 0x0270 0x0000 0x05 0x00
-
-#define MX91_PAD_ENET1_RD1__ENET_QOS_RGMII_RD1 0x00c4 0x0274 0x0000 0x00 0x00
-#define MX91_PAD_ENET1_RD1__LPUART3_CTS_B 0x00c4 0x0274 0x046c 0x01 0x01
-#define MX91_PAD_ENET1_RD1__LPTMR2_ALT1 0x00c4 0x0274 0x0448 0x03 0x00
-#define MX91_PAD_ENET1_RD1__FLEXIO2_FLEXIO11 0x00c4 0x0274 0x0000 0x04 0x00
-#define MX91_PAD_ENET1_RD1__GPIO4_IO11 0x00c4 0x0274 0x0000 0x05 0x00
-
-#define MX91_PAD_ENET1_RD2__ENET_QOS_RGMII_RD2 0x00c8 0x0278 0x0000 0x00 0x00
-#define MX91_PAD_ENET1_RD2__LPTMR2_ALT2 0x00c8 0x0278 0x044c 0x03 0x00
-#define MX91_PAD_ENET1_RD2__FLEXIO2_FLEXIO12 0x00c8 0x0278 0x0000 0x04 0x00
-#define MX91_PAD_ENET1_RD2__GPIO4_IO12 0x00c8 0x0278 0x0000 0x05 0x00
-
-#define MX91_PAD_ENET1_RD3__ENET_QOS_RGMII_RD3 0x00cc 0x027c 0x0000 0x00 0x00
-#define MX91_PAD_ENET1_RD3__FLEXSPI1_TESTER_TRIGGER 0x00cc 0x027c 0x0000 0x02 0x00
-#define MX91_PAD_ENET1_RD3__LPTMR2_ALT3 0x00cc 0x027c 0x0450 0x03 0x00
-#define MX91_PAD_ENET1_RD3__FLEXIO2_FLEXIO13 0x00cc 0x027c 0x0000 0x04 0x00
-#define MX91_PAD_ENET1_RD3__GPIO4_IO13 0x00cc 0x027c 0x0000 0x05 0x00
-
-#define MX91_PAD_ENET2_MDC__ENET2_MDC 0x00d0 0x0280 0x0000 0x00 0x00
-#define MX91_PAD_ENET2_MDC__LPUART4_DCB_B 0x00d0 0x0280 0x0000 0x01 0x00
-#define MX91_PAD_ENET2_MDC__SAI2_RX_SYNC 0x00d0 0x0280 0x0000 0x02 0x00
-#define MX91_PAD_ENET2_MDC__FLEXIO2_FLEXIO14 0x00d0 0x0280 0x0000 0x04 0x00
-#define MX91_PAD_ENET2_MDC__GPIO4_IO14 0x00d0 0x0280 0x0000 0x05 0x00
-#define MX91_PAD_ENET2_MDC__MEDIAMIX_CAM_CLK 0x00d0 0x0280 0x04bc 0x06 0x01
-
-#define MX91_PAD_ENET2_MDIO__ENET2_MDIO 0x00d4 0x0284 0x0000 0x00 0x00
-#define MX91_PAD_ENET2_MDIO__LPUART4_RIN_B 0x00d4 0x0284 0x0000 0x01 0x00
-#define MX91_PAD_ENET2_MDIO__SAI2_RX_BCLK 0x00d4 0x0284 0x0000 0x02 0x00
-#define MX91_PAD_ENET2_MDIO__FLEXIO2_FLEXIO15 0x00d4 0x0284 0x0000 0x04 0x00
-#define MX91_PAD_ENET2_MDIO__GPIO4_IO15 0x00d4 0x0284 0x0000 0x05 0x00
-#define MX91_PAD_ENET2_MDIO__MEDIAMIX_CAM_DATA0 0x00d4 0x0284 0x0490 0x06 0x01
-
-#define MX91_PAD_ENET2_TD3__SAI2_RX_DATA0 0x00d8 0x0288 0x0000 0x02 0x00
-#define MX91_PAD_ENET2_TD3__FLEXIO2_FLEXIO16 0x00d8 0x0288 0x0000 0x04 0x00
-#define MX91_PAD_ENET2_TD3__GPIO4_IO16 0x00d8 0x0288 0x0000 0x05 0x00
-#define MX91_PAD_ENET2_TD3__MEDIAMIX_CAM_VSYNC 0x00d8 0x0288 0x04c0 0x06 0x01
-#define MX91_PAD_ENET2_TD3__ENET2_RGMII_TD3 0x00d8 0x0288 0x0000 0x00 0x00
-
-#define MX91_PAD_ENET2_TD2__ENET2_RGMII_TD2 0x00dc 0x028c 0x0000 0x00 0x00
-#define MX91_PAD_ENET2_TD2__ENET2_TX_CLK2 0x00dc 0x028c 0x0000 0x01 0x00
-#define MX91_PAD_ENET2_TD2__FLEXIO2_FLEXIO17 0x00dc 0x028c 0x0000 0x04 0x00
-#define MX91_PAD_ENET2_TD2__GPIO4_IO17 0x00dc 0x028c 0x0000 0x05 0x00
-#define MX91_PAD_ENET2_TD2__MEDIAMIX_CAM_HSYNC 0x00dc 0x028c 0x04b8 0x06 0x01
-
-#define MX91_PAD_ENET2_TD1__ENET2_RGMII_TD1 0x00e0 0x0290 0x0000 0x00 0x00
-#define MX91_PAD_ENET2_TD1__LPUART4_RTS_B 0x00e0 0x0290 0x0000 0x01 0x00
-#define MX91_PAD_ENET2_TD1__FLEXIO2_FLEXIO18 0x00e0 0x0290 0x0000 0x04 0x00
-#define MX91_PAD_ENET2_TD1__GPIO4_IO18 0x00e0 0x0290 0x0000 0x05 0x00
-#define MX91_PAD_ENET2_TD1__MEDIAMIX_CAM_DATA1 0x00e0 0x0290 0x0494 0x06 0x01
-
-#define MX91_PAD_ENET2_TD0__ENET2_RGMII_TD0 0x00e4 0x0294 0x0000 0x00 0x00
-#define MX91_PAD_ENET2_TD0__LPUART4_TX 0x00e4 0x0294 0x0480 0x01 0x01
-#define MX91_PAD_ENET2_TD0__FLEXIO2_FLEXIO19 0x00e4 0x0294 0x0000 0x04 0x00
-#define MX91_PAD_ENET2_TD0__GPIO4_IO19 0x00e4 0x0294 0x0000 0x05 0x00
-#define MX91_PAD_ENET2_TD0__MEDIAMIX_CAM_DATA2 0x00e4 0x0294 0x0498 0x06 0x01
-
-#define MX91_PAD_ENET2_TX_CTL__ENET2_RGMII_TX_CTL 0x00e8 0x0298 0x0000 0x00 0x00
-#define MX91_PAD_ENET2_TX_CTL__LPUART4_DTR_B 0x00e8 0x0298 0x0000 0x01 0x00
-#define MX91_PAD_ENET2_TX_CTL__SAI2_TX_SYNC 0x00e8 0x0298 0x0000 0x02 0x00
-#define MX91_PAD_ENET2_TX_CTL__FLEXIO2_FLEXIO20 0x00e8 0x0298 0x0000 0x04 0x00
-#define MX91_PAD_ENET2_TX_CTL__GPIO4_IO20 0x00e8 0x0298 0x0000 0x05 0x00
-#define MX91_PAD_ENET2_TX_CTL__MEDIAMIX_CAM_DATA3 0x00e8 0x0298 0x049c 0x06 0x01
-
-#define MX91_PAD_ENET2_TXC__ENET2_RGMII_TXC 0x00ec 0x029c 0x0000 0x00 0x00
-#define MX91_PAD_ENET2_TXC__ENET2_TX_ER 0x00ec 0x029c 0x0000 0x01 0x00
-#define MX91_PAD_ENET2_TXC__SAI2_TX_BCLK 0x00ec 0x029c 0x0000 0x02 0x00
-#define MX91_PAD_ENET2_TXC__FLEXIO2_FLEXIO21 0x00ec 0x029c 0x0000 0x04 0x00
-#define MX91_PAD_ENET2_TXC__GPIO4_IO21 0x00ec 0x029c 0x0000 0x05 0x00
-#define MX91_PAD_ENET2_TXC__MEDIAMIX_CAM_DATA4 0x00ec 0x029c 0x04a0 0x06 0x01
-
-#define MX91_PAD_ENET2_RX_CTL__ENET2_RGMII_RX_CTL 0x00f0 0x02a0 0x0000 0x00 0x00
-#define MX91_PAD_ENET2_RX_CTL__LPUART4_DSR_B 0x00f0 0x02a0 0x0000 0x01 0x00
-#define MX91_PAD_ENET2_RX_CTL__SAI2_TX_DATA0 0x00f0 0x02a0 0x0000 0x02 0x00
-#define MX91_PAD_ENET2_RX_CTL__FLEXIO2_FLEXIO22 0x00f0 0x02a0 0x0000 0x04 0x00
-#define MX91_PAD_ENET2_RX_CTL__GPIO4_IO22 0x00f0 0x02a0 0x0000 0x05 0x00
-#define MX91_PAD_ENET2_RX_CTL__MEDIAMIX_CAM_DATA5 0x00f0 0x02a0 0x04a4 0x06 0x01
-
-#define MX91_PAD_ENET2_RXC__ENET2_RGMII_RXC 0x00f4 0x02a4 0x0000 0x00 0x00
-#define MX91_PAD_ENET2_RXC__ENET2_RX_ER 0x00f4 0x02a4 0x0000 0x01 0x00
-#define MX91_PAD_ENET2_RXC__FLEXIO2_FLEXIO23 0x00f4 0x02a4 0x0000 0x04 0x00
-#define MX91_PAD_ENET2_RXC__GPIO4_IO23 0x00f4 0x02a4 0x0000 0x05 0x00
-#define MX91_PAD_ENET2_RXC__MEDIAMIX_CAM_DATA6 0x00f4 0x02a4 0x04a8 0x06 0x01
-
-#define MX91_PAD_ENET2_RD0__ENET2_RGMII_RD0 0x00f8 0x02a8 0x0000 0x00 0x00
-#define MX91_PAD_ENET2_RD0__LPUART4_RX 0x00f8 0x02a8 0x047c 0x01 0x01
-#define MX91_PAD_ENET2_RD0__FLEXIO2_FLEXIO24 0x00f8 0x02a8 0x0000 0x04 0x00
-#define MX91_PAD_ENET2_RD0__GPIO4_IO24 0x00f8 0x02a8 0x0000 0x05 0x00
-#define MX91_PAD_ENET2_RD0__MEDIAMIX_CAM_DATA7 0x00f8 0x02a8 0x04ac 0x06 0x01
-
-#define MX91_PAD_ENET2_RD1__ENET2_RGMII_RD1 0x00fc 0x02ac 0x0000 0x00 0x00
-#define MX91_PAD_ENET2_RD1__SPDIF_IN 0x00fc 0x02ac 0x04e4 0x01 0x01
-#define MX91_PAD_ENET2_RD1__FLEXIO2_FLEXIO25 0x00fc 0x02ac 0x0000 0x04 0x00
-#define MX91_PAD_ENET2_RD1__GPIO4_IO25 0x00fc 0x02ac 0x0000 0x05 0x00
-#define MX91_PAD_ENET2_RD1__MEDIAMIX_CAM_DATA8 0x00fc 0x02ac 0x04b0 0x06 0x01
-
-#define MX91_PAD_ENET2_RD2__ENET2_RGMII_RD2 0x0100 0x02b0 0x0000 0x00 0x00
-#define MX91_PAD_ENET2_RD2__LPUART4_CTS_B 0x0100 0x02b0 0x0478 0x01 0x01
-#define MX91_PAD_ENET2_RD2__SAI2_MCLK 0x0100 0x02b0 0x0000 0x02 0x00
-#define MX91_PAD_ENET2_RD2__MQS2_RIGHT 0x0100 0x02b0 0x0000 0x03 0x00
-#define MX91_PAD_ENET2_RD2__FLEXIO2_FLEXIO26 0x0100 0x02b0 0x0000 0x04 0x00
-#define MX91_PAD_ENET2_RD2__GPIO4_IO26 0x0100 0x02b0 0x0000 0x05 0x00
-#define MX91_PAD_ENET2_RD2__MEDIAMIX_CAM_DATA9 0x0100 0x02b0 0x04b4 0x06 0x01
-
-#define MX91_PAD_ENET2_RD3__ENET2_RGMII_RD3 0x0104 0x02b4 0x0000 0x00 0x00
-#define MX91_PAD_ENET2_RD3__SPDIF_OUT 0x0104 0x02b4 0x0000 0x01 0x00
-#define MX91_PAD_ENET2_RD3__SPDIF_IN 0x0104 0x02b4 0x04e4 0x02 0x02
-#define MX91_PAD_ENET2_RD3__MQS2_LEFT 0x0104 0x02b4 0x0000 0x03 0x00
-#define MX91_PAD_ENET2_RD3__FLEXIO2_FLEXIO27 0x0104 0x02b4 0x0000 0x04 0x00
-#define MX91_PAD_ENET2_RD3__GPIO4_IO27 0x0104 0x02b4 0x0000 0x05 0x00
-
-#define MX91_PAD_SD1_CLK__FLEXIO1_FLEXIO8 0x0108 0x02b8 0x038c 0x04 0x01
-#define MX91_PAD_SD1_CLK__GPIO3_IO8 0x0108 0x02b8 0x0000 0x05 0x00
-#define MX91_PAD_SD1_CLK__USDHC1_CLK 0x0108 0x02b8 0x0000 0x00 0x00
-#define MX91_PAD_SD1_CLK__LPSPI2_SCK 0x0108 0x02b8 0x043c 0x03 0x01
-
-#define MX91_PAD_SD1_CMD__USDHC1_CMD 0x010c 0x02bc 0x0000 0x00 0x00
-#define MX91_PAD_SD1_CMD__FLEXIO1_FLEXIO9 0x010c 0x02bc 0x0390 0x04 0x01
-#define MX91_PAD_SD1_CMD__GPIO3_IO9 0x010c 0x02bc 0x0000 0x05 0x00
-#define MX91_PAD_SD1_CMD__LPSPI2_SIN 0x010c 0x02bc 0x0440 0x03 0x01
-
-#define MX91_PAD_SD1_DATA0__USDHC1_DATA0 0x0110 0x02c0 0x0000 0x00 0x00
-#define MX91_PAD_SD1_DATA0__FLEXIO1_FLEXIO10 0x0110 0x02c0 0x0394 0x04 0x01
-#define MX91_PAD_SD1_DATA0__GPIO3_IO10 0x0110 0x02c0 0x0000 0x05 0x00
-#define MX91_PAD_SD1_DATA0__LPSPI2_PCS0 0x0110 0x02c0 0x0434 0x03 0x01
-
-#define MX91_PAD_SD1_DATA1__USDHC1_DATA1 0x0114 0x02c4 0x0000 0x00 0x00
-#define MX91_PAD_SD1_DATA1__FLEXIO1_FLEXIO11 0x0114 0x02c4 0x0398 0x04 0x01
-#define MX91_PAD_SD1_DATA1__GPIO3_IO11 0x0114 0x02c4 0x0000 0x05 0x00
-#define MX91_PAD_SD1_DATA1__CCMSRCGPCMIX_INT_BOOT 0x0114 0x02c4 0x0000 0x06 0x00
-#define MX91_PAD_SD1_DATA1__LPSPI2_SOUT 0x0114 0x02c4 0x0444 0x03 0x01
-
-#define MX91_PAD_SD1_DATA2__USDHC1_DATA2 0x0118 0x02c8 0x0000 0x00 0x00
-#define MX91_PAD_SD1_DATA2__FLEXIO1_FLEXIO12 0x0118 0x02c8 0x0000 0x04 0x00
-#define MX91_PAD_SD1_DATA2__GPIO3_IO12 0x0118 0x02c8 0x0000 0x05 0x00
-#define MX91_PAD_SD1_DATA2__CCMSRCGPCMIX_PMIC_READY 0x0118 0x02c8 0x0000 0x06 0x00
-#define MX91_PAD_SD1_DATA2__LPSPI2_PCS1 0x0118 0x02c8 0x0438 0x03 0x00
-
-#define MX91_PAD_SD1_DATA3__USDHC1_DATA3 0x011c 0x02cc 0x0000 0x00 0x00
-#define MX91_PAD_SD1_DATA3__FLEXSPI1_A_SS1_B 0x011c 0x02cc 0x0000 0x01 0x00
-#define MX91_PAD_SD1_DATA3__FLEXIO1_FLEXIO13 0x011c 0x02cc 0x039c 0x04 0x01
-#define MX91_PAD_SD1_DATA3__GPIO3_IO13 0x011c 0x02cc 0x0000 0x05 0x00
-#define MX91_PAD_SD1_DATA3__LPSPI1_PCS1 0x011c 0x02cc 0x0424 0x03 0x00
-
-#define MX91_PAD_SD1_DATA4__USDHC1_DATA4 0x0120 0x02d0 0x0000 0x00 0x00
-#define MX91_PAD_SD1_DATA4__FLEXSPI1_A_DATA4 0x0120 0x02d0 0x0000 0x01 0x00
-#define MX91_PAD_SD1_DATA4__FLEXIO1_FLEXIO14 0x0120 0x02d0 0x03a0 0x04 0x01
-#define MX91_PAD_SD1_DATA4__GPIO3_IO14 0x0120 0x02d0 0x0000 0x05 0x00
-#define MX91_PAD_SD1_DATA4__LPSPI1_PCS0 0x0120 0x02d0 0x0420 0x03 0x00
-
-#define MX91_PAD_SD1_DATA5__USDHC1_DATA5 0x0124 0x02d4 0x0000 0x00 0x00
-#define MX91_PAD_SD1_DATA5__FLEXSPI1_A_DATA5 0x0124 0x02d4 0x0000 0x01 0x00
-#define MX91_PAD_SD1_DATA5__USDHC1_RESET_B 0x0124 0x02d4 0x0000 0x02 0x00
-#define MX91_PAD_SD1_DATA5__FLEXIO1_FLEXIO15 0x0124 0x02d4 0x03a4 0x04 0x01
-#define MX91_PAD_SD1_DATA5__GPIO3_IO15 0x0124 0x02d4 0x0000 0x05 0x00
-#define MX91_PAD_SD1_DATA5__LPSPI1_SIN 0x0124 0x02d4 0x042c 0x03 0x00
-
-#define MX91_PAD_SD1_DATA6__USDHC1_DATA6 0x0128 0x02d8 0x0000 0x00 0x00
-#define MX91_PAD_SD1_DATA6__FLEXSPI1_A_DATA6 0x0128 0x02d8 0x0000 0x01 0x00
-#define MX91_PAD_SD1_DATA6__USDHC1_CD_B 0x0128 0x02d8 0x0000 0x02 0x00
-#define MX91_PAD_SD1_DATA6__FLEXIO1_FLEXIO16 0x0128 0x02d8 0x03a8 0x04 0x01
-#define MX91_PAD_SD1_DATA6__GPIO3_IO16 0x0128 0x02d8 0x0000 0x05 0x00
-#define MX91_PAD_SD1_DATA6__LPSPI1_SCK 0x0128 0x02d8 0x0428 0x03 0x00
-
-#define MX91_PAD_SD1_DATA7__USDHC1_DATA7 0x012c 0x02dc 0x0000 0x00 0x00
-#define MX91_PAD_SD1_DATA7__FLEXSPI1_A_DATA7 0x012c 0x02dc 0x0000 0x01 0x00
-#define MX91_PAD_SD1_DATA7__USDHC1_WP 0x012c 0x02dc 0x0000 0x02 0x00
-#define MX91_PAD_SD1_DATA7__FLEXIO1_FLEXIO17 0x012c 0x02dc 0x03ac 0x04 0x01
-#define MX91_PAD_SD1_DATA7__GPIO3_IO17 0x012c 0x02dc 0x0000 0x05 0x00
-#define MX91_PAD_SD1_DATA7__LPSPI1_SOUT 0x012c 0x02dc 0x0430 0x03 0x00
-
-#define MX91_PAD_SD1_STROBE__USDHC1_STROBE 0x0130 0x02e0 0x0000 0x00 0x00
-#define MX91_PAD_SD1_STROBE__FLEXSPI1_A_DQS 0x0130 0x02e0 0x0000 0x01 0x00
-#define MX91_PAD_SD1_STROBE__FLEXIO1_FLEXIO18 0x0130 0x02e0 0x03b0 0x04 0x01
-#define MX91_PAD_SD1_STROBE__GPIO3_IO18 0x0130 0x02e0 0x0000 0x05 0x00
-
-#define MX91_PAD_SD2_VSELECT__USDHC2_VSELECT 0x0134 0x02e4 0x0000 0x00 0x00
-#define MX91_PAD_SD2_VSELECT__USDHC2_WP 0x0134 0x02e4 0x0000 0x01 0x00
-#define MX91_PAD_SD2_VSELECT__LPTMR2_ALT3 0x0134 0x02e4 0x0450 0x02 0x01
-#define MX91_PAD_SD2_VSELECT__FLEXIO1_FLEXIO19 0x0134 0x02e4 0x0000 0x04 0x00
-#define MX91_PAD_SD2_VSELECT__GPIO3_IO19 0x0134 0x02e4 0x0000 0x05 0x00
-#define MX91_PAD_SD2_VSELECT__CCMSRCGPCMIX_EXT_CLK1 0x0134 0x02e4 0x0368 0x06 0x00
-
-#define MX91_PAD_SD3_CLK__USDHC3_CLK 0x0138 0x02e8 0x04e8 0x00 0x01
-#define MX91_PAD_SD3_CLK__FLEXSPI1_A_SCLK 0x0138 0x02e8 0x0000 0x01 0x00
-#define MX91_PAD_SD3_CLK__LPUART1_CTS_B 0x0138 0x02e8 0x0454 0x02 0x00
-#define MX91_PAD_SD3_CLK__FLEXIO1_FLEXIO20 0x0138 0x02e8 0x03b4 0x04 0x01
-#define MX91_PAD_SD3_CLK__GPIO3_IO20 0x0138 0x02e8 0x0000 0x05 0x00
-
-#define MX91_PAD_SD3_CMD__USDHC3_CMD 0x013c 0x02ec 0x04ec 0x00 0x01
-#define MX91_PAD_SD3_CMD__FLEXSPI1_A_SS0_B 0x013c 0x02ec 0x0000 0x01 0x00
-#define MX91_PAD_SD3_CMD__LPUART1_RTS_B 0x013c 0x02ec 0x0000 0x02 0x00
-#define MX91_PAD_SD3_CMD__FLEXIO1_FLEXIO21 0x013c 0x02ec 0x0000 0x04 0x00
-#define MX91_PAD_SD3_CMD__GPIO3_IO21 0x013c 0x02ec 0x0000 0x05 0x00
-
-#define MX91_PAD_SD3_DATA0__USDHC3_DATA0 0x0140 0x02f0 0x04f0 0x00 0x01
-#define MX91_PAD_SD3_DATA0__FLEXSPI1_A_DATA0 0x0140 0x02f0 0x0000 0x01 0x00
-#define MX91_PAD_SD3_DATA0__LPUART2_CTS_B 0x0140 0x02f0 0x0460 0x02 0x00
-#define MX91_PAD_SD3_DATA0__FLEXIO1_FLEXIO22 0x0140 0x02f0 0x03b8 0x04 0x01
-#define MX91_PAD_SD3_DATA0__GPIO3_IO22 0x0140 0x02f0 0x0000 0x05 0x00
-
-#define MX91_PAD_SD3_DATA1__USDHC3_DATA1 0x0144 0x02f4 0x04f4 0x00 0x01
-#define MX91_PAD_SD3_DATA1__FLEXSPI1_A_DATA1 0x0144 0x02f4 0x0000 0x01 0x00
-#define MX91_PAD_SD3_DATA1__LPUART2_RTS_B 0x0144 0x02f4 0x0000 0x02 0x00
-#define MX91_PAD_SD3_DATA1__FLEXIO1_FLEXIO23 0x0144 0x02f4 0x03bc 0x04 0x01
-#define MX91_PAD_SD3_DATA1__GPIO3_IO23 0x0144 0x02f4 0x0000 0x05 0x00
-
-#define MX91_PAD_SD3_DATA2__USDHC3_DATA2 0x0148 0x02f8 0x04f8 0x00 0x01
-#define MX91_PAD_SD3_DATA2__LPI2C4_SDA 0x0148 0x02f8 0x03fc 0x02 0x01
-#define MX91_PAD_SD3_DATA2__FLEXSPI1_A_DATA2 0x0148 0x02f8 0x0000 0x01 0x00
-#define MX91_PAD_SD3_DATA2__FLEXIO1_FLEXIO24 0x0148 0x02f8 0x03c0 0x04 0x01
-#define MX91_PAD_SD3_DATA2__GPIO3_IO24 0x0148 0x02f8 0x0000 0x05 0x00
-
-#define MX91_PAD_SD3_DATA3__USDHC3_DATA3 0x014c 0x02fc 0x04fc 0x00 0x01
-#define MX91_PAD_SD3_DATA3__FLEXSPI1_A_DATA3 0x014c 0x02fc 0x0000 0x01 0x00
-#define MX91_PAD_SD3_DATA3__LPI2C4_SCL 0x014c 0x02fc 0x03f8 0x02 0x01
-#define MX91_PAD_SD3_DATA3__FLEXIO1_FLEXIO25 0x014c 0x02fc 0x03c4 0x04 0x01
-#define MX91_PAD_SD3_DATA3__GPIO3_IO25 0x014c 0x02fc 0x0000 0x05 0x00
-
-#define MX91_PAD_SD2_CD_B__USDHC2_CD_B 0x0150 0x0300 0x0000 0x00 0x00
-#define MX91_PAD_SD2_CD_B__ENET_QOS_1588_EVENT0_IN 0x0150 0x0300 0x0000 0x01 0x00
-#define MX91_PAD_SD2_CD_B__I3C2_SCL 0x0150 0x0300 0x03cc 0x02 0x01
-#define MX91_PAD_SD2_CD_B__FLEXIO1_FLEXIO0 0x0150 0x0300 0x036c 0x04 0x01
-#define MX91_PAD_SD2_CD_B__GPIO3_IO0 0x0150 0x0300 0x0000 0x05 0x00
-#define MX91_PAD_SD2_CD_B__LPI2C1_SCL 0x0150 0x0300 0x03e0 0x03 0x01
-
-#define MX91_PAD_SD2_CLK__USDHC2_CLK 0x0154 0x0304 0x0000 0x00 0x00
-#define MX91_PAD_SD2_CLK__ENET_QOS_1588_EVENT0_OUT 0x0154 0x0304 0x0000 0x01 0x00
-#define MX91_PAD_SD2_CLK__I2C1_SDA 0x0154 0x0304 0x0000 0x03 0x00
-#define MX91_PAD_SD2_CLK__I3C2_SDA 0x0154 0x0304 0x03d0 0x02 0x01
-#define MX91_PAD_SD2_CLK__FLEXIO1_FLEXIO1 0x0154 0x0304 0x0370 0x04 0x01
-#define MX91_PAD_SD2_CLK__GPIO3_IO1 0x0154 0x0304 0x0000 0x05 0x00
-#define MX91_PAD_SD2_CLK__CCMSRCGPCMIX_OBSERVE0 0x0154 0x0304 0x0000 0x06 0x00
-#define MX91_PAD_SD2_CLK__LPI2C1_SDA 0x0154 0x0304 0x03e4 0x03 0x01
-
-#define MX91_PAD_SD2_CMD__USDHC2_CMD 0x0158 0x0308 0x0000 0x00 0x00
-#define MX91_PAD_SD2_CMD__ENET2_1588_EVENT0_IN 0x0158 0x0308 0x0000 0x01 0x00
-#define MX91_PAD_SD2_CMD__I3C2_PUR 0x0158 0x0308 0x0000 0x02 0x00
-#define MX91_PAD_SD2_CMD__I3C2_PUR_B 0x0158 0x0308 0x0000 0x03 0x00
-#define MX91_PAD_SD2_CMD__FLEXIO1_FLEXIO2 0x0158 0x0308 0x0374 0x04 0x01
-#define MX91_PAD_SD2_CMD__GPIO3_IO2 0x0158 0x0308 0x0000 0x05 0x00
-#define MX91_PAD_SD2_CMD__CCMSRCGPCMIX_OBSERVE1 0x0158 0x0308 0x0000 0x06 0x00
-
-#define MX91_PAD_SD2_DATA0__USDHC2_DATA0 0x015c 0x030c 0x0000 0x00 0x00
-#define MX91_PAD_SD2_DATA0__ENET2_1588_EVENT0_OUT 0x015c 0x030c 0x0000 0x01 0x00
-#define MX91_PAD_SD2_DATA0__CAN2_TX 0x015c 0x030c 0x0000 0x02 0x00
-#define MX91_PAD_SD2_DATA0__FLEXIO1_FLEXIO3 0x015c 0x030c 0x0378 0x04 0x01
-#define MX91_PAD_SD2_DATA0__GPIO3_IO3 0x015c 0x030c 0x0000 0x05 0x00
-#define MX91_PAD_SD2_DATA0__LPUART1_TX 0x015c 0x030c 0x045c 0x03 0x00
-#define MX91_PAD_SD2_DATA0__CCMSRCGPCMIX_OBSERVE2 0x015c 0x030c 0x0000 0x06 0x00
-
-#define MX91_PAD_SD2_DATA1__USDHC2_DATA1 0x0160 0x0310 0x0000 0x00 0x00
-#define MX91_PAD_SD2_DATA1__ENET2_1588_EVENT1_IN 0x0160 0x0310 0x0000 0x01 0x00
-#define MX91_PAD_SD2_DATA1__CAN2_RX 0x0160 0x0310 0x0364 0x02 0x03
-#define MX91_PAD_SD2_DATA1__FLEXIO1_FLEXIO4 0x0160 0x0310 0x037c 0x04 0x01
-#define MX91_PAD_SD2_DATA1__GPIO3_IO4 0x0160 0x0310 0x0000 0x05 0x00
-#define MX91_PAD_SD2_DATA1__LPUART1_RX 0x0160 0x0310 0x0458 0x03 0x00
-#define MX91_PAD_SD2_DATA1__CCMSRCGPCMIX_WAIT 0x0160 0x0310 0x0000 0x06 0x00
-
-#define MX91_PAD_SD2_DATA2__USDHC2_DATA2 0x0164 0x0314 0x0000 0x00 0x00
-#define MX91_PAD_SD2_DATA2__ENET2_1588_EVENT1_OUT 0x0164 0x0314 0x0000 0x01 0x00
-#define MX91_PAD_SD2_DATA2__MQS2_RIGHT 0x0164 0x0314 0x0000 0x02 0x00
-#define MX91_PAD_SD2_DATA2__FLEXIO1_FLEXIO5 0x0164 0x0314 0x0380 0x04 0x01
-#define MX91_PAD_SD2_DATA2__GPIO3_IO5 0x0164 0x0314 0x0000 0x05 0x00
-#define MX91_PAD_SD2_DATA2__LPUART2_TX 0x0164 0x0314 0x0468 0x03 0x00
-#define MX91_PAD_SD2_DATA2__CCMSRCGPCMIX_STOP 0x0164 0x0314 0x0000 0x06 0x00
-
-#define MX91_PAD_SD2_DATA3__USDHC2_DATA3 0x0168 0x0318 0x0000 0x00 0x00
-#define MX91_PAD_SD2_DATA3__LPTMR2_ALT1 0x0168 0x0318 0x0448 0x01 0x01
-#define MX91_PAD_SD2_DATA3__MQS2_LEFT 0x0168 0x0318 0x0000 0x02 0x00
-#define MX91_PAD_SD2_DATA3__FLEXIO1_FLEXIO6 0x0168 0x0318 0x0384 0x04 0x01
-#define MX91_PAD_SD2_DATA3__GPIO3_IO6 0x0168 0x0318 0x0000 0x05 0x00
-#define MX91_PAD_SD2_DATA3__LPUART2_RX 0x0168 0x0318 0x0464 0x03 0x00
-#define MX91_PAD_SD2_DATA3__CCMSRCGPCMIX_EARLY_RESET 0x0168 0x0318 0x0000 0x06 0x00
-
-#define MX91_PAD_SD2_RESET_B__USDHC2_RESET_B 0x016c 0x031c 0x0000 0x00 0x00
-#define MX91_PAD_SD2_RESET_B__LPTMR2_ALT2 0x016c 0x031c 0x044c 0x01 0x01
-#define MX91_PAD_SD2_RESET_B__FLEXIO1_FLEXIO7 0x016c 0x031c 0x0388 0x04 0x01
-#define MX91_PAD_SD2_RESET_B__GPIO3_IO7 0x016c 0x031c 0x0000 0x05 0x00
-#define MX91_PAD_SD2_RESET_B__CCMSRCGPCMIX_SYSTEM_RESET 0x016c 0x031c 0x0000 0x06 0x00
-
-#define MX91_PAD_I2C1_SCL__LPI2C1_SCL 0x0170 0x0320 0x03e0 0x00 0x02
-#define MX91_PAD_I2C1_SCL__I3C1_SCL 0x0170 0x0320 0x0000 0x01 0x00
-#define MX91_PAD_I2C1_SCL__LPUART1_DCB_B 0x0170 0x0320 0x0000 0x02 0x00
-#define MX91_PAD_I2C1_SCL__TPM2_CH0 0x0170 0x0320 0x0000 0x03 0x00
-#define MX91_PAD_I2C1_SCL__GPIO1_IO0 0x0170 0x0320 0x0000 0x05 0x00
-
-#define MX91_PAD_I2C1_SDA__LPI2C1_SDA 0x0174 0x0324 0x03e4 0x00 0x02
-#define MX91_PAD_I2C1_SDA__I3C1_SDA 0x0174 0x0324 0x0000 0x01 0x00
-#define MX91_PAD_I2C1_SDA__LPUART1_RIN_B 0x0174 0x0324 0x0000 0x02 0x00
-#define MX91_PAD_I2C1_SDA__TPM2_CH1 0x0174 0x0324 0x0000 0x03 0x00
-#define MX91_PAD_I2C1_SDA__GPIO1_IO1 0x0174 0x0324 0x0000 0x05 0x00
-
-#define MX91_PAD_I2C2_SCL__LPI2C2_SCL 0x0178 0x0328 0x03e8 0x00 0x01
-#define MX91_PAD_I2C2_SCL__I3C1_PUR 0x0178 0x0328 0x0000 0x01 0x00
-#define MX91_PAD_I2C2_SCL__LPUART2_DCB_B 0x0178 0x0328 0x0000 0x02 0x00
-#define MX91_PAD_I2C2_SCL__TPM2_CH2 0x0178 0x0328 0x0000 0x03 0x00
-#define MX91_PAD_I2C2_SCL__SAI1_RX_SYNC 0x0178 0x0328 0x0000 0x04 0x00
-#define MX91_PAD_I2C2_SCL__GPIO1_IO2 0x0178 0x0328 0x0000 0x05 0x00
-#define MX91_PAD_I2C2_SCL__I3C1_PUR_B 0x0178 0x0328 0x0000 0x06 0x00
-
-#define MX91_PAD_I2C2_SDA__LPI2C2_SDA 0x017c 0x032c 0x03ec 0x00 0x01
-#define MX91_PAD_I2C2_SDA__LPUART2_RIN_B 0x017c 0x032c 0x0000 0x02 0x00
-#define MX91_PAD_I2C2_SDA__TPM2_CH3 0x017c 0x032c 0x0000 0x03 0x00
-#define MX91_PAD_I2C2_SDA__SAI1_RX_BCLK 0x017c 0x032c 0x0000 0x04 0x00
-#define MX91_PAD_I2C2_SDA__GPIO1_IO3 0x017c 0x032c 0x0000 0x05 0x00
-
-#define MX91_PAD_UART1_RXD__LPUART1_RX 0x0180 0x0330 0x0458 0x00 0x01
-#define MX91_PAD_UART1_RXD__ELE_UART_RX 0x0180 0x0330 0x0000 0x01 0x00
-#define MX91_PAD_UART1_RXD__LPSPI2_SIN 0x0180 0x0330 0x0440 0x02 0x02
-#define MX91_PAD_UART1_RXD__TPM1_CH0 0x0180 0x0330 0x0000 0x03 0x00
-#define MX91_PAD_UART1_RXD__GPIO1_IO4 0x0180 0x0330 0x0000 0x05 0x00
-
-#define MX91_PAD_UART1_TXD__LPUART1_TX 0x0184 0x0334 0x045c 0x00 0x01
-#define MX91_PAD_UART1_TXD__ELE_UART_TX 0x0184 0x0334 0x0000 0x01 0x00
-#define MX91_PAD_UART1_TXD__LPSPI2_PCS0 0x0184 0x0334 0x0434 0x02 0x02
-#define MX91_PAD_UART1_TXD__TPM1_CH1 0x0184 0x0334 0x0000 0x03 0x00
-#define MX91_PAD_UART1_TXD__GPIO1_IO5 0x0184 0x0334 0x0000 0x05 0x00
-
-#define MX91_PAD_UART2_RXD__LPUART2_RX 0x0188 0x0338 0x0464 0x00 0x01
-#define MX91_PAD_UART2_RXD__LPUART1_CTS_B 0x0188 0x0338 0x0454 0x01 0x01
-#define MX91_PAD_UART2_RXD__LPSPI2_SOUT 0x0188 0x0338 0x0444 0x02 0x02
-#define MX91_PAD_UART2_RXD__TPM1_CH2 0x0188 0x0338 0x0000 0x03 0x00
-#define MX91_PAD_UART2_RXD__SAI1_MCLK 0x0188 0x0338 0x04d4 0x04 0x00
-#define MX91_PAD_UART2_RXD__GPIO1_IO6 0x0188 0x0338 0x0000 0x05 0x00
-
-#define MX91_PAD_UART2_TXD__LPUART2_TX 0x018c 0x033c 0x0468 0x00 0x01
-#define MX91_PAD_UART2_TXD__LPUART1_RTS_B 0x018c 0x033c 0x0000 0x01 0x00
-#define MX91_PAD_UART2_TXD__LPSPI2_SCK 0x018c 0x033c 0x043c 0x02 0x02
-#define MX91_PAD_UART2_TXD__TPM1_CH3 0x018c 0x033c 0x0000 0x03 0x00
-#define MX91_PAD_UART2_TXD__GPIO1_IO7 0x018c 0x033c 0x0000 0x05 0x00
-#define MX91_PAD_UART2_TXD__SAI3_TX_SYNC 0x018c 0x033c 0x04e0 0x07 0x02
-
-#define MX91_PAD_PDM_CLK__PDM_CLK 0x0190 0x0340 0x0000 0x00 0x00
-#define MX91_PAD_PDM_CLK__MQS1_LEFT 0x0190 0x0340 0x0000 0x01 0x00
-#define MX91_PAD_PDM_CLK__LPTMR1_ALT1 0x0190 0x0340 0x0000 0x04 0x00
-#define MX91_PAD_PDM_CLK__GPIO1_IO8 0x0190 0x0340 0x0000 0x05 0x00
-#define MX91_PAD_PDM_CLK__CAN1_TX 0x0190 0x0340 0x0000 0x06 0x00
-
-#define MX91_PAD_PDM_BIT_STREAM0__PDM_BIT_STREAM0 0x0194 0x0344 0x04c4 0x00 0x02
-#define MX91_PAD_PDM_BIT_STREAM0__MQS1_RIGHT 0x0194 0x0344 0x0000 0x01 0x00
-#define MX91_PAD_PDM_BIT_STREAM0__LPSPI1_PCS1 0x0194 0x0344 0x0424 0x02 0x01
-#define MX91_PAD_PDM_BIT_STREAM0__TPM1_EXTCLK 0x0194 0x0344 0x0000 0x03 0x00
-#define MX91_PAD_PDM_BIT_STREAM0__LPTMR1_ALT2 0x0194 0x0344 0x0000 0x04 0x00
-#define MX91_PAD_PDM_BIT_STREAM0__GPIO1_IO9 0x0194 0x0344 0x0000 0x05 0x00
-#define MX91_PAD_PDM_BIT_STREAM0__CAN1_RX 0x0194 0x0344 0x0360 0x06 0x01
-
-#define MX91_PAD_PDM_BIT_STREAM1__PDM_BIT_STREAM1 0x0198 0x0348 0x04c8 0x00 0x02
-#define MX91_PAD_PDM_BIT_STREAM1__LPSPI2_PCS1 0x0198 0x0348 0x0438 0x02 0x01
-#define MX91_PAD_PDM_BIT_STREAM1__TPM2_EXTCLK 0x0198 0x0348 0x0000 0x03 0x00
-#define MX91_PAD_PDM_BIT_STREAM1__LPTMR1_ALT3 0x0198 0x0348 0x0000 0x04 0x00
-#define MX91_PAD_PDM_BIT_STREAM1__GPIO1_IO10 0x0198 0x0348 0x0000 0x05 0x00
-#define MX91_PAD_PDM_BIT_STREAM1__CCMSRCGPCMIX_EXT_CLK1 0x0198 0x0348 0x0368 0x06 0x01
-
-#define MX91_PAD_SAI1_TXFS__SAI1_TX_SYNC 0x019c 0x034c 0x0000 0x00 0x00
-#define MX91_PAD_SAI1_TXFS__SAI1_TX_DATA1 0x019c 0x034c 0x0000 0x01 0x00
-#define MX91_PAD_SAI1_TXFS__LPSPI1_PCS0 0x019c 0x034c 0x0420 0x02 0x01
-#define MX91_PAD_SAI1_TXFS__LPUART2_DTR_B 0x019c 0x034c 0x0000 0x03 0x00
-#define MX91_PAD_SAI1_TXFS__MQS1_LEFT 0x019c 0x034c 0x0000 0x04 0x00
-#define MX91_PAD_SAI1_TXFS__GPIO1_IO11 0x019c 0x034c 0x0000 0x05 0x00
-
-#define MX91_PAD_SAI1_TXC__SAI1_TX_BCLK 0x01a0 0x0350 0x0000 0x00 0x00
-#define MX91_PAD_SAI1_TXC__LPUART2_CTS_B 0x01a0 0x0350 0x0460 0x01 0x01
-#define MX91_PAD_SAI1_TXC__LPSPI1_SIN 0x01a0 0x0350 0x042c 0x02 0x01
-#define MX91_PAD_SAI1_TXC__LPUART1_DSR_B 0x01a0 0x0350 0x0000 0x03 0x00
-#define MX91_PAD_SAI1_TXC__CAN1_RX 0x01a0 0x0350 0x0360 0x04 0x02
-#define MX91_PAD_SAI1_TXC__GPIO1_IO12 0x01a0 0x0350 0x0000 0x05 0x00
-
-#define MX91_PAD_SAI1_TXD0__SAI1_TX_DATA0 0x01a4 0x0354 0x0000 0x00 0x00
-#define MX91_PAD_SAI1_TXD0__LPUART2_RTS_B 0x01a4 0x0354 0x0000 0x01 0x00
-#define MX91_PAD_SAI1_TXD0__LPSPI1_SCK 0x01a4 0x0354 0x0428 0x02 0x01
-#define MX91_PAD_SAI1_TXD0__LPUART1_DTR_B 0x01a4 0x0354 0x0000 0x03 0x00
-#define MX91_PAD_SAI1_TXD0__CAN1_TX 0x01a4 0x0354 0x0000 0x04 0x00
-#define MX91_PAD_SAI1_TXD0__GPIO1_IO13 0x01a4 0x0354 0x0000 0x05 0x00
-#define MX91_PAD_SAI1_TXD0__SAI1_MCLK 0x01a4 0x0354 0x04d4 0x06 0x01
-
-#define MX91_PAD_SAI1_RXD0__SAI1_RX_DATA0 0x01a8 0x0358 0x0000 0x00 0x00
-#define MX91_PAD_SAI1_RXD0__SAI1_MCLK 0x01a8 0x0358 0x04d4 0x01 0x02
-#define MX91_PAD_SAI1_RXD0__LPSPI1_SOUT 0x01a8 0x0358 0x0430 0x02 0x01
-#define MX91_PAD_SAI1_RXD0__LPUART2_DSR_B 0x01a8 0x0358 0x0000 0x03 0x00
-#define MX91_PAD_SAI1_RXD0__MQS1_RIGHT 0x01a8 0x0358 0x0000 0x04 0x00
-#define MX91_PAD_SAI1_RXD0__GPIO1_IO14 0x01a8 0x0358 0x0000 0x05 0x00
-
-#define MX91_PAD_WDOG_ANY__WDOG1_WDOG_ANY 0x01ac 0x035c 0x0000 0x00 0x00
-#define MX91_PAD_WDOG_ANY__GPIO1_IO15 0x01ac 0x035c 0x0000 0x05 0x00
-#endif /* __DTS_IMX91_PINFUNC_H */
diff --git a/arch/arm/dts/imx91-u-boot.dtsi b/arch/arm/dts/imx91-u-boot.dtsi
index 5b639c965d6..149f7bc685a 100644
--- a/arch/arm/dts/imx91-u-boot.dtsi
+++ b/arch/arm/dts/imx91-u-boot.dtsi
@@ -90,3 +90,15 @@
};
};
};
+
+&wdog3 {
+ bootph-all;
+};
+
+&wdog4 {
+ bootph-all;
+};
+
+&wdog5 {
+ bootph-all;
+};
diff --git a/arch/arm/dts/imx91.dtsi b/arch/arm/dts/imx91.dtsi
deleted file mode 100644
index 9963f0bb5ce..00000000000
--- a/arch/arm/dts/imx91.dtsi
+++ /dev/null
@@ -1,53 +0,0 @@
-// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
-/*
- * Copyright 2024 NXP
- */
-
-#include "imx91-pinfunc.h"
-#include "imx93.dtsi"
-
-/delete-node/ &A55_1;
-/delete-node/ &mlmix;
-/delete-node/ &mu1;
-/delete-node/ &mu2;
-
-&clk {
- compatible = "fsl,imx91-ccm";
-};
-
-&eqos {
- clocks = <&clk IMX91_CLK_ENET1_QOS_TSN_GATE>,
- <&clk IMX91_CLK_ENET1_QOS_TSN_GATE>,
- <&clk IMX91_CLK_ENET_TIMER>,
- <&clk IMX91_CLK_ENET1_QOS_TSN>,
- <&clk IMX91_CLK_ENET1_QOS_TSN_GATE>;
- assigned-clocks = <&clk IMX91_CLK_ENET_TIMER>,
- <&clk IMX91_CLK_ENET1_QOS_TSN>;
- assigned-clock-parents = <&clk IMX93_CLK_SYS_PLL_PFD1_DIV2>,
- <&clk IMX93_CLK_SYS_PLL_PFD0_DIV2>;
-};
-
-&fec {
- clocks = <&clk IMX91_CLK_ENET2_REGULAR_GATE>,
- <&clk IMX91_CLK_ENET2_REGULAR_GATE>,
- <&clk IMX91_CLK_ENET_TIMER>,
- <&clk IMX91_CLK_ENET2_REGULAR>,
- <&clk IMX93_CLK_DUMMY>;
- assigned-clocks = <&clk IMX91_CLK_ENET_TIMER>,
- <&clk IMX91_CLK_ENET2_REGULAR>;
- assigned-clock-parents = <&clk IMX93_CLK_SYS_PLL_PFD1_DIV2>,
- <&clk IMX93_CLK_SYS_PLL_PFD0_DIV2>;
- assigned-clock-rates = <100000000>, <250000000>;
-};
-
-&iomuxc {
- compatible = "fsl,imx91-iomuxc";
-};
-
-&tmu {
- status = "disabled";
-};
-
-&{/thermal-zones/cpu-thermal/cooling-maps/map0} {
- cooling-device = <&A55_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
-};
diff --git a/arch/arm/dts/imx93-11x11-frdm.dts b/arch/arm/dts/imx93-11x11-frdm.dts
deleted file mode 100644
index 993567e767d..00000000000
--- a/arch/arm/dts/imx93-11x11-frdm.dts
+++ /dev/null
@@ -1,603 +0,0 @@
-// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
-/dts-v1/;
-
-#include <dt-bindings/usb/pd.h>
-#include "imx93.dtsi"
-
-/ {
- compatible = "fsl,imx93-11x11-frdm", "fsl,imx93";
- model = "NXP i.MX93 11X11 FRDM board";
-
- aliases {
- mmc0 = &usdhc1; /* EMMC */
- mmc1 = &usdhc2; /* uSD */
- rtc0 = &pcf2131;
- serial0 = &lpuart1;
- };
-
- chosen {
- stdout-path = &lpuart1;
- };
-
- reg_vref_1v8: regulator-adc-vref {
- compatible = "regulator-fixed";
- regulator-min-microvolt = <1800000>;
- regulator-max-microvolt = <1800000>;
- regulator-name = "vref_1v8";
- };
-
- reg_usdhc2_vmmc: regulator-usdhc2 {
- compatible = "regulator-fixed";
- off-on-delay-us = <12000>;
- pinctrl-0 = <&pinctrl_reg_usdhc2_vmmc>;
- pinctrl-names = "default";
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
- regulator-name = "VSD_3V3";
- gpio = <&gpio3 7 GPIO_ACTIVE_HIGH>;
- enable-active-high;
- };
-
- reg_usdhc3_vmmc: regulator-usdhc3 {
- compatible = "regulator-fixed";
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
- regulator-name = "WLAN_EN";
- gpio = <&pcal6524 20 GPIO_ACTIVE_HIGH>;
- enable-active-high;
- /*
- * IW612 wifi chip needs more delay than other wifi chips to complete
- * the host interface initialization after power up, otherwise the
- * internal state of IW612 may be unstable, resulting in the failure of
- * the SDIO3.0 switch voltage.
- */
- startup-delay-us = <20000>;
- };
-
- reserved-memory {
- ranges;
- #address-cells = <2>;
- #size-cells = <2>;
-
- linux,cma {
- compatible = "shared-dma-pool";
- alloc-ranges = <0 0x80000000 0 0x30000000>;
- reusable;
- size = <0 0x10000000>;
- linux,cma-default;
- };
-
- rsc_table: rsc-table@2021e000 {
- reg = <0 0x2021e000 0 0x1000>;
- no-map;
- };
-
- vdev0vring0: vdev0vring0@a4000000 {
- reg = <0 0xa4000000 0 0x8000>;
- no-map;
- };
-
- vdev0vring1: vdev0vring1@a4008000 {
- reg = <0 0xa4008000 0 0x8000>;
- no-map;
- };
-
- vdev1vring0: vdev1vring0@a4010000 {
- reg = <0 0xa4010000 0 0x8000>;
- no-map;
- };
-
- vdev1vring1: vdev1vring1@a4018000 {
- reg = <0 0xa4018000 0 0x8000>;
- no-map;
- };
-
- vdevbuffer: vdevbuffer@a4020000 {
- compatible = "shared-dma-pool";
- reg = <0 0xa4020000 0 0x100000>;
- no-map;
- };
- };
-
- usdhc3_pwrseq: usdhc3_pwrseq {
- compatible = "mmc-pwrseq-simple";
- reset-gpios = <&pcal6524 12 GPIO_ACTIVE_LOW>;
- };
-};
-
-&adc1 {
- vref-supply = <&reg_vref_1v8>;
- status = "okay";
-};
-
-&eqos {
- phy-handle = <&ethphy1>;
- phy-mode = "rgmii-id";
- pinctrl-0 = <&pinctrl_eqos>;
- pinctrl-1 = <&pinctrl_eqos_sleep>;
- pinctrl-names = "default", "sleep";
- status = "okay";
-
- mdio {
- compatible = "snps,dwmac-mdio";
- #address-cells = <1>;
- #size-cells = <0>;
- clock-frequency = <5000000>;
-
- ethphy1: ethernet-phy@1 {
- reg = <1>;
- reset-assert-us = <10000>;
- reset-deassert-us = <80000>;
- reset-gpios = <&pcal6524 15 GPIO_ACTIVE_LOW>;
- };
- };
-};
-
-&fec {
- phy-handle = <&ethphy2>;
- phy-mode = "rgmii-id";
- pinctrl-0 = <&pinctrl_fec>;
- pinctrl-1 = <&pinctrl_fec_sleep>;
- pinctrl-names = "default", "sleep";
- fsl,magic-packet;
- status = "okay";
-
- mdio {
- #address-cells = <1>;
- #size-cells = <0>;
- clock-frequency = <5000000>;
-
- ethphy2: ethernet-phy@2 {
- reg = <2>;
- eee-broken-1000t;
- reset-assert-us = <10000>;
- reset-deassert-us = <80000>;
- reset-gpios = <&pcal6524 16 GPIO_ACTIVE_LOW>;
- };
- };
-};
-
-&lpi2c2 {
- clock-frequency = <400000>;
- pinctrl-0 = <&pinctrl_lpi2c2>;
- pinctrl-names = "default";
- status = "okay";
-
- pcal6524: gpio@22 {
- compatible = "nxp,pcal6524";
- reg = <0x22>;
- #interrupt-cells = <2>;
- interrupt-controller;
- interrupt-parent = <&gpio3>;
- interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
- #gpio-cells = <2>;
- gpio-controller;
- pinctrl-0 = <&pinctrl_pcal6524>;
- pinctrl-names = "default";
- };
-
- pmic@25 {
- compatible = "nxp,pca9451a";
- reg = <0x25>;
- interrupt-parent = <&pcal6524>;
- interrupts = <11 IRQ_TYPE_EDGE_FALLING>;
-
- regulators {
-
- buck1: BUCK1 {
- regulator-name = "BUCK1";
- regulator-always-on;
- regulator-boot-on;
- regulator-min-microvolt = <650000>;
- regulator-max-microvolt = <2237500>;
- regulator-ramp-delay = <3125>;
- };
-
- buck2: BUCK2 {
- regulator-name = "BUCK2";
- regulator-always-on;
- regulator-boot-on;
- regulator-min-microvolt = <600000>;
- regulator-max-microvolt = <2187500>;
- regulator-ramp-delay = <3125>;
- };
-
- buck4: BUCK4 {
- regulator-name = "BUCK4";
- regulator-always-on;
- regulator-boot-on;
- regulator-min-microvolt = <600000>;
- regulator-max-microvolt = <3400000>;
- };
-
- buck5: BUCK5 {
- regulator-name = "BUCK5";
- regulator-always-on;
- regulator-boot-on;
- regulator-min-microvolt = <600000>;
- regulator-max-microvolt = <3400000>;
- };
-
- buck6: BUCK6 {
- regulator-name = "BUCK6";
- regulator-always-on;
- regulator-boot-on;
- regulator-min-microvolt = <600000>;
- regulator-max-microvolt = <3400000>;
- };
-
- ldo1: LDO1 {
- regulator-name = "LDO1";
- regulator-always-on;
- regulator-boot-on;
- regulator-min-microvolt = <1600000>;
- regulator-max-microvolt = <3300000>;
- };
-
- ldo4: LDO4 {
- regulator-name = "LDO4";
- regulator-always-on;
- regulator-boot-on;
- regulator-min-microvolt = <800000>;
- regulator-max-microvolt = <3300000>;
- };
-
- ldo5: LDO5 {
- regulator-name = "LDO5";
- regulator-always-on;
- regulator-boot-on;
- regulator-min-microvolt = <1800000>;
- regulator-max-microvolt = <3300000>;
- };
- };
- };
-
- eeprom: eeprom@50 {
- compatible = "atmel,24c256";
- reg = <0x50>;
- pagesize = <64>;
- };
-};
-
-&lpi2c3 {
- #address-cells = <1>;
- #size-cells = <0>;
- clock-frequency = <400000>;
- pinctrl-0 = <&pinctrl_lpi2c3>;
- pinctrl-names = "default";
- status = "okay";
-
- ptn5110: tcpc@50 {
- compatible = "nxp,ptn5110", "tcpci";
- reg = <0x50>;
- interrupt-parent = <&gpio3>;
- interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
-
- typec1_con: connector {
- compatible = "usb-c-connector";
- data-role = "dual";
- label = "USB-C";
- op-sink-microwatt = <15000000>;
- power-role = "dual";
- self-powered;
- sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)
- PDO_VAR(5000, 20000, 3000)>;
- source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
- try-power-role = "sink";
-
- ports {
- #address-cells = <1>;
- #size-cells = <0>;
-
- port@0 {
- reg = <0>;
-
- typec1_dr_sw: endpoint {
- remote-endpoint = <&usb1_drd_sw>;
- };
- };
- };
- };
- };
-
- pcf2131: rtc@53 {
- compatible = "nxp,pcf2131";
- reg = <0x53>;
- interrupt-parent = <&pcal6524>;
- interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
- };
-};
-
-&lpuart1 { /* console */
- pinctrl-0 = <&pinctrl_uart1>;
- pinctrl-names = "default";
- status = "okay";
-};
-
-&usbotg1 {
- adp-disable;
- disable-over-current;
- dr_mode = "otg";
- hnp-disable;
- srp-disable;
- usb-role-switch;
- samsung,picophy-dc-vol-level-adjust = <7>;
- samsung,picophy-pre-emp-curr-control = <3>;
- status = "okay";
-
- port {
-
- usb1_drd_sw: endpoint {
- remote-endpoint = <&typec1_dr_sw>;
- };
- };
-};
-
-&usbotg2 {
- disable-over-current;
- dr_mode = "host";
- samsung,picophy-dc-vol-level-adjust = <7>;
- samsung,picophy-pre-emp-curr-control = <3>;
- status = "okay";
-};
-
-&usdhc1 {
- bus-width = <8>;
- non-removable;
- pinctrl-0 = <&pinctrl_usdhc1>;
- pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
- pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
- pinctrl-names = "default", "state_100mhz", "state_200mhz";
- status = "okay";
-};
-
-&usdhc2 {
- bus-width = <4>;
- cd-gpios = <&gpio3 00 GPIO_ACTIVE_LOW>;
- no-mmc;
- no-sdio;
- pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
- pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
- pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
- pinctrl-3 = <&pinctrl_usdhc2_sleep>, <&pinctrl_usdhc2_gpio_sleep>;
- pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep";
- vmmc-supply = <&reg_usdhc2_vmmc>;
- status = "okay";
-};
-
-&wdog3 {
- status = "okay";
-};
-
-&iomuxc {
-
- pinctrl_eqos: eqosgrp {
- fsl,pins = <
- MX93_PAD_ENET1_MDC__ENET_QOS_MDC 0x57e
- MX93_PAD_ENET1_MDIO__ENET_QOS_MDIO 0x57e
- MX93_PAD_ENET1_RD0__ENET_QOS_RGMII_RD0 0x57e
- MX93_PAD_ENET1_RD1__ENET_QOS_RGMII_RD1 0x57e
- MX93_PAD_ENET1_RD2__ENET_QOS_RGMII_RD2 0x57e
- MX93_PAD_ENET1_RD3__ENET_QOS_RGMII_RD3 0x57e
- MX93_PAD_ENET1_RXC__CCM_ENET_QOS_CLOCK_GENERATE_RX_CLK 0x58e
- MX93_PAD_ENET1_RX_CTL__ENET_QOS_RGMII_RX_CTL 0x57e
- MX93_PAD_ENET1_TD0__ENET_QOS_RGMII_TD0 0x57e
- MX93_PAD_ENET1_TD1__ENET_QOS_RGMII_TD1 0x57e
- MX93_PAD_ENET1_TD2__ENET_QOS_RGMII_TD2 0x57e
- MX93_PAD_ENET1_TD3__ENET_QOS_RGMII_TD3 0x57e
- MX93_PAD_ENET1_TXC__CCM_ENET_QOS_CLOCK_GENERATE_TX_CLK 0x58e
- MX93_PAD_ENET1_TX_CTL__ENET_QOS_RGMII_TX_CTL 0x57e
- >;
- };
-
- pinctrl_eqos_sleep: eqossleepgrp {
- fsl,pins = <
- MX93_PAD_ENET1_MDC__GPIO4_IO00 0x31e
- MX93_PAD_ENET1_MDIO__GPIO4_IO01 0x31e
- MX93_PAD_ENET1_RD0__GPIO4_IO10 0x31e
- MX93_PAD_ENET1_RD1__GPIO4_IO11 0x31e
- MX93_PAD_ENET1_RD2__GPIO4_IO12 0x31e
- MX93_PAD_ENET1_RD3__GPIO4_IO13 0x31e
- MX93_PAD_ENET1_RXC__GPIO4_IO09 0x31e
- MX93_PAD_ENET1_RX_CTL__GPIO4_IO08 0x31e
- MX93_PAD_ENET1_TD0__GPIO4_IO05 0x31e
- MX93_PAD_ENET1_TD1__GPIO4_IO04 0x31e
- MX93_PAD_ENET1_TD2__GPIO4_IO03 0x31e
- MX93_PAD_ENET1_TD3__GPIO4_IO02 0x31e
- MX93_PAD_ENET1_TXC__GPIO4_IO07 0x31e
- MX93_PAD_ENET1_TX_CTL__GPIO4_IO06 0x31e
- >;
- };
-
- pinctrl_fec: fecgrp {
- fsl,pins = <
- MX93_PAD_ENET2_MDC__ENET1_MDC 0x57e
- MX93_PAD_ENET2_MDIO__ENET1_MDIO 0x57e
- MX93_PAD_ENET2_RD0__ENET1_RGMII_RD0 0x57e
- MX93_PAD_ENET2_RD1__ENET1_RGMII_RD1 0x57e
- MX93_PAD_ENET2_RD2__ENET1_RGMII_RD2 0x57e
- MX93_PAD_ENET2_RD3__ENET1_RGMII_RD3 0x57e
- MX93_PAD_ENET2_RXC__ENET1_RGMII_RXC 0x58e
- MX93_PAD_ENET2_RX_CTL__ENET1_RGMII_RX_CTL 0x57e
- MX93_PAD_ENET2_TD0__ENET1_RGMII_TD0 0x57e
- MX93_PAD_ENET2_TD1__ENET1_RGMII_TD1 0x57e
- MX93_PAD_ENET2_TD2__ENET1_RGMII_TD2 0x57e
- MX93_PAD_ENET2_TD3__ENET1_RGMII_TD3 0x57e
- MX93_PAD_ENET2_TXC__ENET1_RGMII_TXC 0x58e
- MX93_PAD_ENET2_TX_CTL__ENET1_RGMII_TX_CTL 0x57e
- >;
- };
-
- pinctrl_fec_sleep: fecsleepgrp {
- fsl,pins = <
- MX93_PAD_ENET2_MDC__GPIO4_IO14 0x51e
- MX93_PAD_ENET2_MDIO__GPIO4_IO15 0x51e
- MX93_PAD_ENET2_RD0__GPIO4_IO24 0x51e
- MX93_PAD_ENET2_RD1__GPIO4_IO25 0x51e
- MX93_PAD_ENET2_RD2__GPIO4_IO26 0x51e
- MX93_PAD_ENET2_RD3__GPIO4_IO27 0x51e
- MX93_PAD_ENET2_RXC__GPIO4_IO23 0x51e
- MX93_PAD_ENET2_RX_CTL__GPIO4_IO22 0x51e
- MX93_PAD_ENET2_TD0__GPIO4_IO19 0x51e
- MX93_PAD_ENET2_TD1__GPIO4_IO18 0x51e
- MX93_PAD_ENET2_TD2__GPIO4_IO17 0x51e
- MX93_PAD_ENET2_TD3__GPIO4_IO16 0x51e
- MX93_PAD_ENET2_TXC__GPIO4_IO21 0x51e
- MX93_PAD_ENET2_TX_CTL__GPIO4_IO20 0x51e
- >;
- };
-
- pinctrl_flexcan2: flexcan2grp {
- fsl,pins = <
- MX93_PAD_GPIO_IO25__CAN2_TX 0x139e
- MX93_PAD_GPIO_IO27__CAN2_RX 0x139e
- >;
- };
-
- pinctrl_lpi2c2: lpi2c2grp {
- fsl,pins = <
- MX93_PAD_I2C2_SCL__LPI2C2_SCL 0x40000b9e
- MX93_PAD_I2C2_SDA__LPI2C2_SDA 0x40000b9e
- >;
- };
-
- pinctrl_lpi2c3: lpi2c3grp {
- fsl,pins = <
- MX93_PAD_GPIO_IO28__LPI2C3_SDA 0x40000b9e
- MX93_PAD_GPIO_IO29__LPI2C3_SCL 0x40000b9e
- >;
- };
-
- pinctrl_pcal6524: pcal6524grp {
- fsl,pins = <
- MX93_PAD_CCM_CLKO2__GPIO3_IO27 0x31e
- >;
- };
-
- pinctrl_reg_usdhc2_vmmc: regusdhc2vmmcgrp {
- fsl,pins = <
- MX93_PAD_SD2_RESET_B__GPIO3_IO07 0x31e
- >;
- };
-
- pinctrl_uart1: uart1grp {
- fsl,pins = <
- MX93_PAD_UART1_RXD__LPUART1_RX 0x31e
- MX93_PAD_UART1_TXD__LPUART1_TX 0x31e
- >;
- };
-
- /* need to config the SION for data and cmd pad, refer to ERR052021 */
- pinctrl_usdhc1: usdhc1grp {
- fsl,pins = <
- MX93_PAD_SD1_CLK__USDHC1_CLK 0x1582
- MX93_PAD_SD1_CMD__USDHC1_CMD 0x40001382
- MX93_PAD_SD1_DATA0__USDHC1_DATA0 0x40001382
- MX93_PAD_SD1_DATA1__USDHC1_DATA1 0x40001382
- MX93_PAD_SD1_DATA2__USDHC1_DATA2 0x40001382
- MX93_PAD_SD1_DATA3__USDHC1_DATA3 0x40001382
- MX93_PAD_SD1_DATA4__USDHC1_DATA4 0x40001382
- MX93_PAD_SD1_DATA5__USDHC1_DATA5 0x40001382
- MX93_PAD_SD1_DATA6__USDHC1_DATA6 0x40001382
- MX93_PAD_SD1_DATA7__USDHC1_DATA7 0x40001382
- MX93_PAD_SD1_STROBE__USDHC1_STROBE 0x1582
- >;
- };
-
- /* need to config the SION for data and cmd pad, refer to ERR052021 */
- pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp {
- fsl,pins = <
- MX93_PAD_SD1_CLK__USDHC1_CLK 0x158e
- MX93_PAD_SD1_CMD__USDHC1_CMD 0x4000138e
- MX93_PAD_SD1_DATA0__USDHC1_DATA0 0x4000138e
- MX93_PAD_SD1_DATA1__USDHC1_DATA1 0x4000138e
- MX93_PAD_SD1_DATA2__USDHC1_DATA2 0x4000138e
- MX93_PAD_SD1_DATA3__USDHC1_DATA3 0x4000138e
- MX93_PAD_SD1_DATA4__USDHC1_DATA4 0x4000138e
- MX93_PAD_SD1_DATA5__USDHC1_DATA5 0x4000138e
- MX93_PAD_SD1_DATA6__USDHC1_DATA6 0x4000138e
- MX93_PAD_SD1_DATA7__USDHC1_DATA7 0x4000138e
- MX93_PAD_SD1_STROBE__USDHC1_STROBE 0x158e
- >;
- };
-
- /* need to config the SION for data and cmd pad, refer to ERR052021 */
- pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp {
- fsl,pins = <
- MX93_PAD_SD1_CLK__USDHC1_CLK 0x15fe
- MX93_PAD_SD1_CMD__USDHC1_CMD 0x400013fe
- MX93_PAD_SD1_DATA0__USDHC1_DATA0 0x400013fe
- MX93_PAD_SD1_DATA1__USDHC1_DATA1 0x400013fe
- MX93_PAD_SD1_DATA2__USDHC1_DATA2 0x400013fe
- MX93_PAD_SD1_DATA3__USDHC1_DATA3 0x400013fe
- MX93_PAD_SD1_DATA4__USDHC1_DATA4 0x400013fe
- MX93_PAD_SD1_DATA5__USDHC1_DATA5 0x400013fe
- MX93_PAD_SD1_DATA6__USDHC1_DATA6 0x400013fe
- MX93_PAD_SD1_DATA7__USDHC1_DATA7 0x400013fe
- MX93_PAD_SD1_STROBE__USDHC1_STROBE 0x15fe
- >;
- };
-
- pinctrl_usdhc2_gpio: usdhc2gpiogrp {
- fsl,pins = <
- MX93_PAD_SD2_CD_B__GPIO3_IO00 0x31e
- >;
- };
-
- pinctrl_usdhc2_gpio_sleep: usdhc2gpiosleepgrp {
- fsl,pins = <
- MX93_PAD_SD2_CD_B__GPIO3_IO00 0x51e
- >;
- };
-
- /* need to config the SION for data and cmd pad, refer to ERR052021 */
- pinctrl_usdhc2: usdhc2grp {
- fsl,pins = <
- MX93_PAD_SD2_CLK__USDHC2_CLK 0x1582
- MX93_PAD_SD2_CMD__USDHC2_CMD 0x40001382
- MX93_PAD_SD2_DATA0__USDHC2_DATA0 0x40001382
- MX93_PAD_SD2_DATA1__USDHC2_DATA1 0x40001382
- MX93_PAD_SD2_DATA2__USDHC2_DATA2 0x40001382
- MX93_PAD_SD2_DATA3__USDHC2_DATA3 0x40001382
- MX93_PAD_SD2_VSELECT__USDHC2_VSELECT 0x51e
- >;
- };
-
- /* need to config the SION for data and cmd pad, refer to ERR052021 */
- pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
- fsl,pins = <
- MX93_PAD_SD2_CLK__USDHC2_CLK 0x158e
- MX93_PAD_SD2_CMD__USDHC2_CMD 0x4000138e
- MX93_PAD_SD2_DATA0__USDHC2_DATA0 0x4000138e
- MX93_PAD_SD2_DATA1__USDHC2_DATA1 0x4000138e
- MX93_PAD_SD2_DATA2__USDHC2_DATA2 0x4000138e
- MX93_PAD_SD2_DATA3__USDHC2_DATA3 0x4000138e
- MX93_PAD_SD2_VSELECT__USDHC2_VSELECT 0x51e
- >;
- };
-
- /* need to config the SION for data and cmd pad, refer to ERR052021 */
- pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
- fsl,pins = <
- MX93_PAD_SD2_CLK__USDHC2_CLK 0x15fe
- MX93_PAD_SD2_CMD__USDHC2_CMD 0x400013fe
- MX93_PAD_SD2_DATA0__USDHC2_DATA0 0x400013fe
- MX93_PAD_SD2_DATA1__USDHC2_DATA1 0x400013fe
- MX93_PAD_SD2_DATA2__USDHC2_DATA2 0x400013fe
- MX93_PAD_SD2_DATA3__USDHC2_DATA3 0x400013fe
- MX93_PAD_SD2_VSELECT__USDHC2_VSELECT 0x51e
- >;
- };
-
- pinctrl_usdhc2_sleep: usdhc2-sleepgrp {
- fsl,pins = <
- MX93_PAD_SD2_CLK__GPIO3_IO01 0x51e
- MX93_PAD_SD2_CMD__GPIO3_IO02 0x51e
- MX93_PAD_SD2_DATA0__GPIO3_IO03 0x51e
- MX93_PAD_SD2_DATA1__GPIO3_IO04 0x51e
- MX93_PAD_SD2_DATA2__GPIO3_IO05 0x51e
- MX93_PAD_SD2_DATA3__GPIO3_IO06 0x51e
- MX93_PAD_SD2_VSELECT__GPIO3_IO19 0x51e
- >;
- };
-};
diff --git a/arch/arm/dts/imx93-u-boot.dtsi b/arch/arm/dts/imx93-u-boot.dtsi
index dc86746ac90..a84cdf2bc45 100644
--- a/arch/arm/dts/imx93-u-boot.dtsi
+++ b/arch/arm/dts/imx93-u-boot.dtsi
@@ -96,3 +96,15 @@
0x000001b2 0x800001b6>;
#thermal-sensor-cells = <1>;
};
+
+&wdog3 {
+ bootph-all;
+};
+
+&wdog4 {
+ bootph-all;
+};
+
+&wdog5 {
+ bootph-all;
+};
diff --git a/arch/arm/dts/imx93-var-som-symphony.dts b/arch/arm/dts/imx93-var-som-symphony.dts
deleted file mode 100644
index 1bc61942716..00000000000
--- a/arch/arm/dts/imx93-var-som-symphony.dts
+++ /dev/null
@@ -1,323 +0,0 @@
-// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
-/*
- * Copyright 2021 NXP
- * Copyright 2023 Variscite Ltd.
- */
-
-/dts-v1/;
-
-#include "imx93-var-som.dtsi"
-
-/{
- model = "Variscite VAR-SOM-MX93 on Symphony evaluation board";
- compatible = "variscite,var-som-mx93-symphony",
- "variscite,var-som-mx93", "fsl,imx93";
-
- aliases {
- ethernet0 = &eqos;
- ethernet1 = &fec;
- };
-
- chosen {
- stdout-path = &lpuart1;
- };
-
- /*
- * Needed only for Symphony <= v1.5
- */
- reg_fec_phy: regulator-fec-phy {
- compatible = "regulator-fixed";
- regulator-name = "fec-phy";
- regulator-min-microvolt = <1800000>;
- regulator-max-microvolt = <1800000>;
- regulator-enable-ramp-delay = <20000>;
- gpio = <&pca9534 7 GPIO_ACTIVE_HIGH>;
- enable-active-high;
- regulator-always-on;
- };
-
- reg_usdhc2_vmmc: regulator-usdhc2 {
- compatible = "regulator-fixed";
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_reg_usdhc2_vmmc>;
- regulator-name = "VSD_3V3";
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
- gpio = <&gpio2 18 GPIO_ACTIVE_HIGH>;
- off-on-delay-us = <20000>;
- enable-active-high;
- };
-
- reg_vref_1v8: regulator-adc-vref {
- compatible = "regulator-fixed";
- regulator-name = "vref_1v8";
- regulator-min-microvolt = <1800000>;
- regulator-max-microvolt = <1800000>;
- };
-
- reserved-memory {
- #address-cells = <2>;
- #size-cells = <2>;
- ranges;
-
- ethosu_mem: ethosu-region@88000000 {
- compatible = "shared-dma-pool";
- reusable;
- reg = <0x0 0x88000000 0x0 0x8000000>;
- };
-
- vdev0vring0: vdev0vring0@87ee0000 {
- reg = <0 0x87ee0000 0 0x8000>;
- no-map;
- };
-
- vdev0vring1: vdev0vring1@87ee8000 {
- reg = <0 0x87ee8000 0 0x8000>;
- no-map;
- };
-
- vdev1vring0: vdev1vring0@87ef0000 {
- reg = <0 0x87ef0000 0 0x8000>;
- no-map;
- };
-
- vdev1vring1: vdev1vring1@87ef8000 {
- reg = <0 0x87ef8000 0 0x8000>;
- no-map;
- };
-
- rsc_table: rsc-table@2021f000 {
- reg = <0 0x2021f000 0 0x1000>;
- no-map;
- };
-
- vdevbuffer: vdevbuffer@87f00000 {
- compatible = "shared-dma-pool";
- reg = <0 0x87f00000 0 0x100000>;
- no-map;
- };
-
- ele_reserved: ele-reserved@87de0000 {
- compatible = "shared-dma-pool";
- reg = <0 0x87de0000 0 0x100000>;
- no-map;
- };
- };
-};
-
-/* Use external instead of internal RTC*/
-&bbnsm_rtc {
- status = "disabled";
-};
-
-&eqos {
- mdio {
- ethphy1: ethernet-phy@5 {
- compatible = "ethernet-phy-ieee802.3-c22";
- reg = <5>;
- qca,disable-smarteee;
- eee-broken-1000t;
- reset-gpios = <&pca9534 5 GPIO_ACTIVE_LOW>;
- reset-assert-us = <10000>;
- reset-deassert-us = <20000>;
- vddio-supply = <&vddio1>;
-
- vddio1: vddio-regulator {
- regulator-min-microvolt = <1800000>;
- regulator-max-microvolt = <1800000>;
- };
- };
- };
-};
-
-&fec {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_fec>;
- phy-mode = "rgmii";
- phy-handle = <&ethphy1>;
- phy-supply = <&reg_fec_phy>;
- status = "okay";
-};
-
-&flexcan1 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_flexcan1>;
- status = "okay";
-};
-
-&iomuxc {
- pinctrl_fec: fecgrp {
- fsl,pins = <
- MX93_PAD_ENET2_RD0__ENET1_RGMII_RD0 0x57e
- MX93_PAD_ENET2_RD1__ENET1_RGMII_RD1 0x57e
- MX93_PAD_ENET2_RD2__ENET1_RGMII_RD2 0x57e
- MX93_PAD_ENET2_RD3__ENET1_RGMII_RD3 0x57e
- MX93_PAD_ENET2_RXC__ENET1_RGMII_RXC 0x5fe
- MX93_PAD_ENET2_RX_CTL__ENET1_RGMII_RX_CTL 0x57e
- MX93_PAD_ENET2_TD0__ENET1_RGMII_TD0 0x57e
- MX93_PAD_ENET2_TD1__ENET1_RGMII_TD1 0x57e
- MX93_PAD_ENET2_TD2__ENET1_RGMII_TD2 0x57e
- MX93_PAD_ENET2_TD3__ENET1_RGMII_TD3 0x57e
- MX93_PAD_ENET2_TXC__ENET1_RGMII_TXC 0x5fe
- MX93_PAD_ENET2_TX_CTL__ENET1_RGMII_TX_CTL 0x57e
- >;
- };
-
- pinctrl_flexcan1: flexcan1grp {
- fsl,pins = <
- MX93_PAD_PDM_CLK__CAN1_TX 0x139e
- MX93_PAD_PDM_BIT_STREAM0__CAN1_RX 0x139e
- >;
- };
-
- pinctrl_lpi2c1: lpi2c1grp {
- fsl,pins = <
- MX93_PAD_I2C1_SCL__LPI2C1_SCL 0x40000b9e
- MX93_PAD_I2C1_SDA__LPI2C1_SDA 0x40000b9e
- >;
- };
-
- pinctrl_lpi2c1_gpio: lpi2c1gpiogrp {
- fsl,pins = <
- MX93_PAD_I2C1_SCL__GPIO1_IO00 0x31e
- MX93_PAD_I2C1_SDA__GPIO1_IO01 0x31e
- >;
- };
-
- pinctrl_lpi2c5: lpi2c5grp {
- fsl,pins = <
- MX93_PAD_GPIO_IO23__LPI2C5_SCL 0x40000b9e
- MX93_PAD_GPIO_IO22__LPI2C5_SDA 0x40000b9e
- >;
- };
-
- pinctrl_lpi2c5_gpio: lpi2c5gpiogrp {
- fsl,pins = <
- MX93_PAD_GPIO_IO23__GPIO2_IO23 0x31e
- MX93_PAD_GPIO_IO22__GPIO2_IO22 0x31e
- >;
- };
-
- pinctrl_pca9534: pca9534grp {
- fsl,pins = <
- MX93_PAD_CCM_CLKO1__GPIO3_IO26 0x31e
- >;
- };
-
- pinctrl_uart1: uart1grp {
- fsl,pins = <
- MX93_PAD_UART1_RXD__LPUART1_RX 0x31e
- MX93_PAD_UART1_TXD__LPUART1_TX 0x31e
- >;
- };
-
- pinctrl_reg_usdhc2_vmmc: regusdhc2vmmcgrp {
- fsl,pins = <
- MX93_PAD_GPIO_IO18__GPIO2_IO18 0x31e
- >;
- };
-
- pinctrl_usdhc2: usdhc2grp {
- fsl,pins = <
- MX93_PAD_SD2_CLK__USDHC2_CLK 0x15fe
- MX93_PAD_SD2_CMD__USDHC2_CMD 0x13fe
- MX93_PAD_SD2_DATA0__USDHC2_DATA0 0x13fe
- MX93_PAD_SD2_DATA1__USDHC2_DATA1 0x13fe
- MX93_PAD_SD2_DATA2__USDHC2_DATA2 0x13fe
- MX93_PAD_SD2_DATA3__USDHC2_DATA3 0x13fe
- MX93_PAD_SD2_VSELECT__USDHC2_VSELECT 0x51e
- >;
- };
-
- pinctrl_usdhc2_gpio: usdhc2gpiogrp {
- fsl,pins = <
- MX93_PAD_SD2_CD_B__GPIO3_IO00 0x31e
- >;
- };
-};
-
-&lpi2c1 {
- clock-frequency = <400000>;
- pinctrl-names = "default", "sleep", "gpio";
- pinctrl-0 = <&pinctrl_lpi2c1>;
- pinctrl-1 = <&pinctrl_lpi2c1_gpio>;
- pinctrl-2 = <&pinctrl_lpi2c1_gpio>;
- scl-gpios = <&gpio1 0 GPIO_ACTIVE_HIGH>;
- sda-gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>;
- status = "okay";
-
- /* DS1337 RTC module */
- rtc@68 {
- compatible = "dallas,ds1337";
- reg = <0x68>;
- };
-};
-
-&lpi2c5 {
- clock-frequency = <400000>;
- pinctrl-names = "default", "sleep", "gpio";
- pinctrl-0 = <&pinctrl_lpi2c5>;
- pinctrl-1 = <&pinctrl_lpi2c5_gpio>;
- pinctrl-2 = <&pinctrl_lpi2c5_gpio>;
- scl-gpios = <&gpio2 23 GPIO_ACTIVE_HIGH>;
- sda-gpios = <&gpio2 22 GPIO_ACTIVE_HIGH>;
- status = "okay";
-
- pca9534: gpio@20 {
- compatible = "nxp,pca9534";
- reg = <0x20>;
- gpio-controller;
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_pca9534>;
- interrupt-parent = <&gpio3>;
- interrupts = <26 IRQ_TYPE_EDGE_FALLING>;
- #gpio-cells = <2>;
- wakeup-source;
- };
-};
-
-/* Console */
-&lpuart1 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_uart1>;
- clocks = <&clk IMX93_CLK_LPUART1_GATE>, <&clk IMX93_CLK_LPUART1_GATE>;
- clock-names = "ipg", "per";
- status = "okay";
-};
-
-&usbotg1 {
- dr_mode = "otg";
- hnp-disable;
- srp-disable;
- adp-disable;
- disable-over-current;
- status = "okay";
-};
-
-&usbotg2 {
- dr_mode = "host";
- hnp-disable;
- srp-disable;
- adp-disable;
- disable-over-current;
- status = "okay";
-};
-
-/* SD */
-&usdhc2 {
- pinctrl-names = "default", "state_100mhz", "state_200mhz";
- pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
- pinctrl-1 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
- pinctrl-2 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
- cd-gpios = <&gpio3 00 GPIO_ACTIVE_LOW>;
- vmmc-supply = <&reg_usdhc2_vmmc>;
- bus-width = <4>;
- status = "okay";
- no-sdio;
- no-mmc;
-};
-
-/* Watchdog */
-&wdog3 {
- status = "okay";
-};
diff --git a/arch/arm/dts/imx93-var-som.dtsi b/arch/arm/dts/imx93-var-som.dtsi
deleted file mode 100644
index 6c77b886666..00000000000
--- a/arch/arm/dts/imx93-var-som.dtsi
+++ /dev/null
@@ -1,111 +0,0 @@
-// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
-/*
- * Copyright 2022 NXP
- * Copyright 2023 Variscite Ltd.
- */
-
-/dts-v1/;
-
-#include "imx93.dtsi"
-
-/{
- model = "Variscite VAR-SOM-MX93 module";
- compatible = "variscite,var-som-mx93", "fsl,imx93";
-
- mmc_pwrseq: mmc-pwrseq {
- compatible = "mmc-pwrseq-simple";
- post-power-on-delay-ms = <100>;
- power-off-delay-us = <10000>;
- reset-gpios = <&gpio4 14 GPIO_ACTIVE_LOW>, /* WIFI_RESET */
- <&gpio3 7 GPIO_ACTIVE_LOW>; /* WIFI_PWR_EN */
- };
-
- reg_eqos_phy: regulator-eqos-phy {
- compatible = "regulator-fixed";
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_reg_eqos_phy>;
- regulator-name = "eth_phy_pwr";
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
- gpio = <&gpio1 7 GPIO_ACTIVE_HIGH>;
- enable-active-high;
- startup-delay-us = <100000>;
- regulator-always-on;
- };
-};
-
-&eqos {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_eqos>;
- phy-mode = "rgmii";
- phy-handle = <&ethphy0>;
- phy-supply = <&reg_eqos_phy>;
- status = "okay";
-
- mdio {
- compatible = "snps,dwmac-mdio";
- #address-cells = <1>;
- #size-cells = <0>;
- clock-frequency = <1000000>;
-
- ethphy0: ethernet-phy@0 {
- compatible = "ethernet-phy-ieee802.3-c22";
- reg = <0>;
- eee-broken-1000t;
- };
- };
-};
-
-&iomuxc {
- pinctrl_eqos: eqosgrp {
- fsl,pins = <
- MX93_PAD_ENET1_MDC__ENET_QOS_MDC 0x57e
- MX93_PAD_ENET1_MDIO__ENET_QOS_MDIO 0x57e
- MX93_PAD_ENET1_RD0__ENET_QOS_RGMII_RD0 0x57e
- MX93_PAD_ENET1_RD1__ENET_QOS_RGMII_RD1 0x57e
- MX93_PAD_ENET1_RD2__ENET_QOS_RGMII_RD2 0x57e
- MX93_PAD_ENET1_RD3__ENET_QOS_RGMII_RD3 0x57e
- MX93_PAD_ENET1_RXC__CCM_ENET_QOS_CLOCK_GENERATE_RX_CLK 0x5fe
- MX93_PAD_ENET1_RX_CTL__ENET_QOS_RGMII_RX_CTL 0x57e
- MX93_PAD_ENET1_TD0__ENET_QOS_RGMII_TD0 0x57e
- MX93_PAD_ENET1_TD1__ENET_QOS_RGMII_TD1 0x57e
- MX93_PAD_ENET1_TD2__ENET_QOS_RGMII_TD2 0x57e
- MX93_PAD_ENET1_TD3__ENET_QOS_RGMII_TD3 0x57e
- MX93_PAD_ENET1_TXC__CCM_ENET_QOS_CLOCK_GENERATE_TX_CLK 0x5fe
- MX93_PAD_ENET1_TX_CTL__ENET_QOS_RGMII_TX_CTL 0x57e
- >;
- };
-
- pinctrl_reg_eqos_phy: regeqosgrp {
- fsl,pins = <
- MX93_PAD_UART2_TXD__GPIO1_IO07 0x51e
- >;
- };
-
- pinctrl_usdhc1: usdhc1grp {
- fsl,pins = <
- MX93_PAD_SD1_CLK__USDHC1_CLK 0x15fe
- MX93_PAD_SD1_CMD__USDHC1_CMD 0x13fe
- MX93_PAD_SD1_DATA0__USDHC1_DATA0 0x13fe
- MX93_PAD_SD1_DATA1__USDHC1_DATA1 0x13fe
- MX93_PAD_SD1_DATA2__USDHC1_DATA2 0x13fe
- MX93_PAD_SD1_DATA3__USDHC1_DATA3 0x13fe
- MX93_PAD_SD1_DATA4__USDHC1_DATA4 0x13fe
- MX93_PAD_SD1_DATA5__USDHC1_DATA5 0x13fe
- MX93_PAD_SD1_DATA6__USDHC1_DATA6 0x13fe
- MX93_PAD_SD1_DATA7__USDHC1_DATA7 0x13fe
- MX93_PAD_SD1_STROBE__USDHC1_STROBE 0x15fe
- >;
- };
-};
-
-/* eMMC */
-&usdhc1 {
- pinctrl-names = "default", "state_100mhz", "state_200mhz";
- pinctrl-0 = <&pinctrl_usdhc1>;
- pinctrl-1 = <&pinctrl_usdhc1>;
- pinctrl-2 = <&pinctrl_usdhc1>;
- bus-width = <8>;
- non-removable;
- status = "okay";
-};
diff --git a/arch/arm/dts/imx93.dtsi b/arch/arm/dts/imx93.dtsi
deleted file mode 100644
index d6964714ea0..00000000000
--- a/arch/arm/dts/imx93.dtsi
+++ /dev/null
@@ -1,906 +0,0 @@
-// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
-/*
- * Copyright 2022 NXP
- */
-
-#include <dt-bindings/clock/imx93-clock.h>
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/input/input.h>
-#include <dt-bindings/interrupt-controller/arm-gic.h>
-#include <dt-bindings/power/fsl,imx93-power.h>
-#include <dt-bindings/thermal/thermal.h>
-
-#include "imx93-pinfunc.h"
-
-/ {
- interrupt-parent = <&gic>;
- #address-cells = <2>;
- #size-cells = <2>;
-
- aliases {
- gpio0 = &gpio1;
- gpio1 = &gpio2;
- gpio2 = &gpio3;
- gpio3 = &gpio4;
- i2c0 = &lpi2c1;
- i2c1 = &lpi2c2;
- i2c2 = &lpi2c3;
- i2c3 = &lpi2c4;
- i2c4 = &lpi2c5;
- i2c5 = &lpi2c6;
- i2c6 = &lpi2c7;
- i2c7 = &lpi2c8;
- mmc0 = &usdhc1;
- mmc1 = &usdhc2;
- mmc2 = &usdhc3;
- serial0 = &lpuart1;
- serial1 = &lpuart2;
- serial2 = &lpuart3;
- serial3 = &lpuart4;
- serial4 = &lpuart5;
- serial5 = &lpuart6;
- serial6 = &lpuart7;
- serial7 = &lpuart8;
- };
-
- cpus {
- #address-cells = <1>;
- #size-cells = <0>;
-
- A55_0: cpu@0 {
- device_type = "cpu";
- compatible = "arm,cortex-a55";
- reg = <0x0>;
- enable-method = "psci";
- #cooling-cells = <2>;
- };
-
- A55_1: cpu@100 {
- device_type = "cpu";
- compatible = "arm,cortex-a55";
- reg = <0x100>;
- enable-method = "psci";
- #cooling-cells = <2>;
- };
-
- };
-
- osc_32k: clock-osc-32k {
- compatible = "fixed-clock";
- #clock-cells = <0>;
- clock-frequency = <32768>;
- clock-output-names = "osc_32k";
- };
-
- osc_24m: clock-osc-24m {
- compatible = "fixed-clock";
- #clock-cells = <0>;
- clock-frequency = <24000000>;
- clock-output-names = "osc_24m";
- };
-
- clk_ext1: clock-ext1 {
- compatible = "fixed-clock";
- #clock-cells = <0>;
- clock-frequency = <133000000>;
- clock-output-names = "clk_ext1";
- };
-
- pmu {
- compatible = "arm,cortex-a55-pmu";
- interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>;
- };
-
- psci {
- compatible = "arm,psci-1.0";
- method = "smc";
- };
-
- timer {
- compatible = "arm,armv8-timer";
- interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>,
- <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>,
- <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>,
- <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>;
- clock-frequency = <24000000>;
- arm,no-tick-in-suspend;
- interrupt-parent = <&gic>;
- };
-
- gic: interrupt-controller@48000000 {
- compatible = "arm,gic-v3";
- reg = <0 0x48000000 0 0x10000>,
- <0 0x48040000 0 0xc0000>;
- #interrupt-cells = <3>;
- interrupt-controller;
- interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
- interrupt-parent = <&gic>;
- };
-
- thermal-zones {
- cpu-thermal {
- polling-delay-passive = <250>;
- polling-delay = <2000>;
-
- thermal-sensors = <&tmu 0>;
-
- trips {
- cpu_alert: cpu-alert {
- temperature = <80000>;
- hysteresis = <2000>;
- type = "passive";
- };
-
- cpu_crit: cpu-crit {
- temperature = <90000>;
- hysteresis = <2000>;
- type = "critical";
- };
- };
-
- cooling-maps {
- map0 {
- trip = <&cpu_alert>;
- cooling-device =
- <&A55_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
- <&A55_1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
- };
- };
- };
- };
-
- usbphynop1: usbphynop1 {
- compatible = "usb-nop-xceiv";
- #phy-cells = <0>;
- clocks = <&clk IMX93_CLK_USB_PHY_BURUNIN>;
- clock-names = "main_clk";
- };
-
- usbphynop2: usbphynop2 {
- compatible = "usb-nop-xceiv";
- #phy-cells = <0>;
- clocks = <&clk IMX93_CLK_USB_PHY_BURUNIN>;
- clock-names = "main_clk";
- };
-
- soc@0 {
- compatible = "simple-bus";
- #address-cells = <1>;
- #size-cells = <1>;
- ranges = <0x0 0x0 0x0 0x80000000>,
- <0x28000000 0x0 0x28000000 0x10000000>;
-
- aips1: bus@44000000 {
- compatible = "fsl,aips-bus", "simple-bus";
- reg = <0x44000000 0x800000>;
- #address-cells = <1>;
- #size-cells = <1>;
- ranges;
-
- anomix_ns_gpr: syscon@44210000 {
- compatible = "fsl,imx93-aonmix-ns-syscfg", "syscon";
- reg = <0x44210000 0x1000>;
- };
-
- mu1: mailbox@44230000 {
- compatible = "fsl,imx93-mu", "fsl,imx8ulp-mu";
- reg = <0x44230000 0x10000>;
- interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&clk IMX93_CLK_MU1_B_GATE>;
- #mbox-cells = <2>;
- status = "disabled";
- };
-
- system_counter: timer@44290000 {
- compatible = "nxp,sysctr-timer";
- reg = <0x44290000 0x30000>;
- interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&osc_24m>;
- clock-names = "per";
- nxp,no-divider;
- };
-
- tpm1: pwm@44310000 {
- compatible = "fsl,imx7ulp-pwm";
- reg = <0x44310000 0x1000>;
- clocks = <&clk IMX93_CLK_TPM1_GATE>;
- #pwm-cells = <3>;
- status = "disabled";
- };
-
- tpm2: pwm@44320000 {
- compatible = "fsl,imx7ulp-pwm";
- reg = <0x44320000 0x10000>;
- clocks = <&clk IMX93_CLK_TPM2_GATE>;
- #pwm-cells = <3>;
- status = "disabled";
- };
-
- lpi2c1: i2c@44340000 {
- compatible = "fsl,imx93-lpi2c", "fsl,imx7ulp-lpi2c";
- reg = <0x44340000 0x10000>;
- #address-cells = <1>;
- #size-cells = <0>;
- interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&clk IMX93_CLK_LPI2C1_GATE>,
- <&clk IMX93_CLK_BUS_AON>;
- clock-names = "per", "ipg";
- status = "disabled";
- };
-
- lpi2c2: i2c@44350000 {
- compatible = "fsl,imx93-lpi2c", "fsl,imx7ulp-lpi2c";
- reg = <0x44350000 0x10000>;
- #address-cells = <1>;
- #size-cells = <0>;
- interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&clk IMX93_CLK_LPI2C2_GATE>,
- <&clk IMX93_CLK_BUS_AON>;
- clock-names = "per", "ipg";
- status = "disabled";
- };
-
- lpspi1: spi@44360000 {
- #address-cells = <1>;
- #size-cells = <0>;
- compatible = "fsl,imx93-spi", "fsl,imx7ulp-spi";
- reg = <0x44360000 0x10000>;
- interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&clk IMX93_CLK_LPSPI1_GATE>,
- <&clk IMX93_CLK_BUS_AON>;
- clock-names = "per", "ipg";
- status = "disabled";
- };
-
- lpspi2: spi@44370000 {
- #address-cells = <1>;
- #size-cells = <0>;
- compatible = "fsl,imx93-spi", "fsl,imx7ulp-spi";
- reg = <0x44370000 0x10000>;
- interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&clk IMX93_CLK_LPSPI2_GATE>,
- <&clk IMX93_CLK_BUS_AON>;
- clock-names = "per", "ipg";
- status = "disabled";
- };
-
- lpuart1: serial@44380000 {
- compatible = "fsl,imx93-lpuart", "fsl,imx7ulp-lpuart";
- reg = <0x44380000 0x1000>;
- interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&clk IMX93_CLK_LPUART1_GATE>, <&clk IMX93_CLK_LPUART1_GATE>;
- clock-names = "ipg", "per";
- status = "disabled";
- };
-
- lpuart2: serial@44390000 {
- compatible = "fsl,imx93-lpuart", "fsl,imx7ulp-lpuart";
- reg = <0x44390000 0x1000>;
- interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&clk IMX93_CLK_LPUART2_GATE>;
- clock-names = "ipg";
- status = "disabled";
- };
-
- flexcan1: can@443a0000 {
- compatible = "fsl,imx93-flexcan";
- reg = <0x443a0000 0x10000>;
- interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&clk IMX93_CLK_BUS_AON>,
- <&clk IMX93_CLK_CAN1_GATE>;
- clock-names = "ipg", "per";
- assigned-clocks = <&clk IMX93_CLK_CAN1>;
- assigned-clock-parents = <&clk IMX93_CLK_SYS_PLL_PFD1_DIV2>;
- assigned-clock-rates = <40000000>;
- fsl,clk-source = /bits/ 8 <0>;
- status = "disabled";
- };
-
- iomuxc: pinctrl@443c0000 {
- compatible = "fsl,imx93-iomuxc";
- reg = <0x443c0000 0x10000>;
- status = "okay";
- };
-
- bbnsm: bbnsm@44440000 {
- compatible = "nxp,imx93-bbnsm", "syscon", "simple-mfd";
- reg = <0x44440000 0x10000>;
-
- bbnsm_rtc: rtc {
- compatible = "nxp,imx93-bbnsm-rtc";
- interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
- };
-
- bbnsm_pwrkey: pwrkey {
- compatible = "nxp,imx93-bbnsm-pwrkey";
- interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
- linux,code = <KEY_POWER>;
- };
- };
-
- clk: clock-controller@44450000 {
- compatible = "fsl,imx93-ccm";
- reg = <0x44450000 0x10000>;
- #clock-cells = <1>;
- clocks = <&osc_32k>, <&osc_24m>, <&clk_ext1>;
- clock-names = "osc_32k", "osc_24m", "clk_ext1";
- status = "okay";
- };
-
- src: system-controller@44460000 {
- compatible = "fsl,imx93-src", "syscon";
- reg = <0x44460000 0x10000>;
- #address-cells = <1>;
- #size-cells = <1>;
- ranges;
-
- mediamix: power-domain@44462400 {
- compatible = "fsl,imx93-src-slice";
- reg = <0x44462400 0x400>, <0x44465800 0x400>;
- #power-domain-cells = <0>;
- clocks = <&clk IMX93_CLK_MEDIA_AXI>,
- <&clk IMX93_CLK_MEDIA_APB>;
- };
-
- mlmix: power-domain@44461800 {
- compatible = "fsl,imx93-src-slice";
- reg = <0x44461800 0x400>, <0x44464800 0x400>;
- #power-domain-cells = <0>;
- clocks = <&clk IMX93_CLK_ML_APB>,
- <&clk IMX93_CLK_ML>;
- };
- };
-
- anatop: anatop@44480000 {
- compatible = "fsl,imx93-anatop", "syscon";
- reg = <0x44480000 0x10000>;
- };
-
- tmu: tmu@44482000 {
- compatible = "fsl,imx93-tmu";
- reg = <0x44482000 0x1000>;
- clocks = <&clk IMX93_CLK_TMC_GATE>;
- little-endian;
- fsl,tmu-calibration = <0x0000000e 0x800000da
- 0x00000029 0x800000e9
- 0x00000056 0x80000102
- 0x000000a2 0x8000012a
- 0x00000116 0x80000166
- 0x00000195 0x800001a7
- 0x000001b2 0x800001b6>;
- #thermal-sensor-cells = <1>;
- };
-
- adc1: adc@44530000 {
- compatible = "nxp,imx93-adc";
- reg = <0x44530000 0x10000>;
- interrupts = <GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&clk IMX93_CLK_ADC1_GATE>;
- clock-names = "ipg";
- #io-channel-cells = <1>;
- status = "disabled";
- };
- };
-
- aips2: bus@42000000 {
- compatible = "fsl,aips-bus", "simple-bus";
- reg = <0x42000000 0x800000>;
- #address-cells = <1>;
- #size-cells = <1>;
- ranges;
-
- wakeupmix_gpr: syscon@42420000 {
- compatible = "fsl,imx93-wakeupmix-syscfg", "syscon";
- reg = <0x42420000 0x1000>;
- };
-
- mu2: mailbox@42440000 {
- compatible = "fsl,imx93-mu", "fsl,imx8ulp-mu";
- reg = <0x42440000 0x10000>;
- interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&clk IMX93_CLK_MU2_B_GATE>;
- #mbox-cells = <2>;
- status = "disabled";
- };
-
- wdog3: wdog@42490000 {
- compatible = "fsl,imx93-wdt";
- reg = <0x42490000 0x10000>;
- interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&clk IMX93_CLK_WDOG3_GATE>;
- timeout-sec = <40>;
- };
-
- tpm3: pwm@424e0000 {
- compatible = "fsl,imx7ulp-pwm";
- reg = <0x424e0000 0x1000>;
- clocks = <&clk IMX93_CLK_TPM3_GATE>;
- #pwm-cells = <3>;
- status = "disabled";
- };
-
- tpm4: pwm@424f0000 {
- compatible = "fsl,imx7ulp-pwm";
- reg = <0x424f0000 0x10000>;
- clocks = <&clk IMX93_CLK_TPM4_GATE>;
- #pwm-cells = <3>;
- status = "disabled";
- };
-
- tpm5: pwm@42500000 {
- compatible = "fsl,imx7ulp-pwm";
- reg = <0x42500000 0x10000>;
- clocks = <&clk IMX93_CLK_TPM5_GATE>;
- #pwm-cells = <3>;
- status = "disabled";
- };
-
- tpm6: pwm@42510000 {
- compatible = "fsl,imx7ulp-pwm";
- reg = <0x42510000 0x10000>;
- clocks = <&clk IMX93_CLK_TPM6_GATE>;
- #pwm-cells = <3>;
- status = "disabled";
- };
-
- lpi2c3: i2c@42530000 {
- compatible = "fsl,imx93-lpi2c", "fsl,imx7ulp-lpi2c";
- reg = <0x42530000 0x10000>;
- #address-cells = <1>;
- #size-cells = <0>;
- interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&clk IMX93_CLK_LPI2C3_GATE>,
- <&clk IMX93_CLK_BUS_WAKEUP>;
- clock-names = "per", "ipg";
- status = "disabled";
- };
-
- lpi2c4: i2c@42540000 {
- compatible = "fsl,imx93-lpi2c", "fsl,imx7ulp-lpi2c";
- reg = <0x42540000 0x10000>;
- #address-cells = <1>;
- #size-cells = <0>;
- interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&clk IMX93_CLK_LPI2C4_GATE>,
- <&clk IMX93_CLK_BUS_WAKEUP>;
- clock-names = "per", "ipg";
- status = "disabled";
- };
-
- lpspi3: spi@42550000 {
- #address-cells = <1>;
- #size-cells = <0>;
- compatible = "fsl,imx93-spi", "fsl,imx7ulp-spi";
- reg = <0x42550000 0x10000>;
- interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&clk IMX93_CLK_LPSPI3_GATE>,
- <&clk IMX93_CLK_BUS_WAKEUP>;
- clock-names = "per", "ipg";
- status = "disabled";
- };
-
- lpspi4: spi@42560000 {
- #address-cells = <1>;
- #size-cells = <0>;
- compatible = "fsl,imx93-spi", "fsl,imx7ulp-spi";
- reg = <0x42560000 0x10000>;
- interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&clk IMX93_CLK_LPSPI4_GATE>,
- <&clk IMX93_CLK_BUS_WAKEUP>;
- clock-names = "per", "ipg";
- status = "disabled";
- };
-
- lpuart3: serial@42570000 {
- compatible = "fsl,imx93-lpuart", "fsl,imx7ulp-lpuart";
- reg = <0x42570000 0x1000>;
- interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&clk IMX93_CLK_LPUART3_GATE>;
- clock-names = "ipg";
- status = "disabled";
- };
-
- lpuart4: serial@42580000 {
- compatible = "fsl,imx93-lpuart", "fsl,imx7ulp-lpuart";
- reg = <0x42580000 0x1000>;
- interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&clk IMX93_CLK_LPUART4_GATE>;
- clock-names = "ipg";
- status = "disabled";
- };
-
- lpuart5: serial@42590000 {
- compatible = "fsl,imx93-lpuart", "fsl,imx7ulp-lpuart";
- reg = <0x42590000 0x1000>;
- interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&clk IMX93_CLK_LPUART5_GATE>;
- clock-names = "ipg";
- status = "disabled";
- };
-
- lpuart6: serial@425a0000 {
- compatible = "fsl,imx93-lpuart", "fsl,imx7ulp-lpuart";
- reg = <0x425a0000 0x1000>;
- interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&clk IMX93_CLK_LPUART6_GATE>;
- clock-names = "ipg";
- status = "disabled";
- };
-
- flexcan2: can@425b0000 {
- compatible = "fsl,imx93-flexcan";
- reg = <0x425b0000 0x10000>;
- interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&clk IMX93_CLK_BUS_WAKEUP>,
- <&clk IMX93_CLK_CAN2_GATE>;
- clock-names = "ipg", "per";
- assigned-clocks = <&clk IMX93_CLK_CAN2>;
- assigned-clock-parents = <&clk IMX93_CLK_SYS_PLL_PFD1_DIV2>;
- assigned-clock-rates = <40000000>;
- fsl,clk-source = /bits/ 8 <0>;
- status = "disabled";
- };
-
- flexspi1: spi@425e0000 {
- compatible = "nxp,imx8mm-fspi";
- reg = <0x425e0000 0x10000>, <0x28000000 0x10000000>;
- reg-names = "fspi_base", "fspi_mmap";
- #address-cells = <1>;
- #size-cells = <0>;
- interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&clk IMX93_CLK_FLEXSPI1_GATE>,
- <&clk IMX93_CLK_FLEXSPI1_GATE>;
- clock-names = "fspi_en", "fspi";
- assigned-clocks = <&clk IMX93_CLK_FLEXSPI1>;
- assigned-clock-parents = <&clk IMX93_CLK_SYS_PLL_PFD1>;
- status = "disabled";
- };
-
- lpuart7: serial@42690000 {
- compatible = "fsl,imx93-lpuart", "fsl,imx7ulp-lpuart";
- reg = <0x42690000 0x1000>;
- interrupts = <GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&clk IMX93_CLK_LPUART7_GATE>;
- clock-names = "ipg";
- status = "disabled";
- };
-
- lpuart8: serial@426a0000 {
- compatible = "fsl,imx93-lpuart", "fsl,imx7ulp-lpuart";
- reg = <0x426a0000 0x1000>;
- interrupts = <GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&clk IMX93_CLK_LPUART8_GATE>;
- clock-names = "ipg";
- status = "disabled";
- };
-
- lpi2c5: i2c@426b0000 {
- compatible = "fsl,imx93-lpi2c", "fsl,imx7ulp-lpi2c";
- reg = <0x426b0000 0x10000>;
- #address-cells = <1>;
- #size-cells = <0>;
- interrupts = <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&clk IMX93_CLK_LPI2C5_GATE>,
- <&clk IMX93_CLK_BUS_WAKEUP>;
- clock-names = "per", "ipg";
- status = "disabled";
- };
-
- lpi2c6: i2c@426c0000 {
- compatible = "fsl,imx93-lpi2c", "fsl,imx7ulp-lpi2c";
- reg = <0x426c0000 0x10000>;
- #address-cells = <1>;
- #size-cells = <0>;
- interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&clk IMX93_CLK_LPI2C6_GATE>,
- <&clk IMX93_CLK_BUS_WAKEUP>;
- clock-names = "per", "ipg";
- status = "disabled";
- };
-
- lpi2c7: i2c@426d0000 {
- compatible = "fsl,imx93-lpi2c", "fsl,imx7ulp-lpi2c";
- reg = <0x426d0000 0x10000>;
- #address-cells = <1>;
- #size-cells = <0>;
- interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&clk IMX93_CLK_LPI2C7_GATE>,
- <&clk IMX93_CLK_BUS_WAKEUP>;
- clock-names = "per", "ipg";
- status = "disabled";
- };
-
- lpi2c8: i2c@426e0000 {
- compatible = "fsl,imx93-lpi2c", "fsl,imx7ulp-lpi2c";
- reg = <0x426e0000 0x10000>;
- #address-cells = <1>;
- #size-cells = <0>;
- interrupts = <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&clk IMX93_CLK_LPI2C8_GATE>,
- <&clk IMX93_CLK_BUS_WAKEUP>;
- clock-names = "per", "ipg";
- status = "disabled";
- };
-
- lpspi5: spi@426f0000 {
- #address-cells = <1>;
- #size-cells = <0>;
- compatible = "fsl,imx93-spi", "fsl,imx7ulp-spi";
- reg = <0x426f0000 0x10000>;
- interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&clk IMX93_CLK_LPSPI5_GATE>,
- <&clk IMX93_CLK_BUS_WAKEUP>;
- clock-names = "per", "ipg";
- status = "disabled";
- };
-
- lpspi6: spi@42700000 {
- #address-cells = <1>;
- #size-cells = <0>;
- compatible = "fsl,imx93-spi", "fsl,imx7ulp-spi";
- reg = <0x42700000 0x10000>;
- interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&clk IMX93_CLK_LPSPI6_GATE>,
- <&clk IMX93_CLK_BUS_WAKEUP>;
- clock-names = "per", "ipg";
- status = "disabled";
- };
-
- lpspi7: spi@42710000 {
- #address-cells = <1>;
- #size-cells = <0>;
- compatible = "fsl,imx93-spi", "fsl,imx7ulp-spi";
- reg = <0x42710000 0x10000>;
- interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&clk IMX93_CLK_LPSPI7_GATE>,
- <&clk IMX93_CLK_BUS_WAKEUP>;
- clock-names = "per", "ipg";
- status = "disabled";
- };
-
- lpspi8: spi@42720000 {
- #address-cells = <1>;
- #size-cells = <0>;
- compatible = "fsl,imx93-spi", "fsl,imx7ulp-spi";
- reg = <0x42720000 0x10000>;
- interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&clk IMX93_CLK_LPSPI8_GATE>,
- <&clk IMX93_CLK_BUS_WAKEUP>;
- clock-names = "per", "ipg";
- status = "disabled";
- };
-
- };
-
- aips3: bus@42800000 {
- compatible = "fsl,aips-bus", "simple-bus";
- reg = <0x42800000 0x800000>;
- #address-cells = <1>;
- #size-cells = <1>;
- ranges;
-
- usdhc1: mmc@42850000 {
- compatible = "fsl,imx93-usdhc", "fsl,imx8mm-usdhc";
- reg = <0x42850000 0x10000>;
- interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&clk IMX93_CLK_BUS_WAKEUP>,
- <&clk IMX93_CLK_WAKEUP_AXI>,
- <&clk IMX93_CLK_USDHC1_GATE>;
- clock-names = "ipg", "ahb", "per";
- bus-width = <8>;
- fsl,tuning-start-tap = <20>;
- fsl,tuning-step= <2>;
- status = "disabled";
- };
-
- usdhc2: mmc@42860000 {
- compatible = "fsl,imx93-usdhc", "fsl,imx8mm-usdhc";
- reg = <0x42860000 0x10000>;
- interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&clk IMX93_CLK_BUS_WAKEUP>,
- <&clk IMX93_CLK_WAKEUP_AXI>,
- <&clk IMX93_CLK_USDHC2_GATE>;
- clock-names = "ipg", "ahb", "per";
- bus-width = <4>;
- fsl,tuning-start-tap = <20>;
- fsl,tuning-step= <2>;
- status = "disabled";
- };
-
- eqos: ethernet@428a0000 {
- compatible = "nxp,imx93-dwmac-eqos", "snps,dwmac-5.10a";
- reg = <0x428a0000 0x10000>;
- interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>;
- interrupt-names = "macirq", "eth_wake_irq";
- clocks = <&clk IMX93_CLK_ENET_QOS_GATE>,
- <&clk IMX93_CLK_ENET_QOS_GATE>,
- <&clk IMX93_CLK_ENET_TIMER2>,
- <&clk IMX93_CLK_ENET>,
- <&clk IMX93_CLK_ENET_QOS_GATE>;
- clock-names = "stmmaceth", "pclk", "ptp_ref", "tx", "mem";
- assigned-clocks = <&clk IMX93_CLK_ENET_TIMER2>,
- <&clk IMX93_CLK_ENET>;
- assigned-clock-parents = <&clk IMX93_CLK_SYS_PLL_PFD1_DIV2>,
- <&clk IMX93_CLK_SYS_PLL_PFD0_DIV2>;
- assigned-clock-rates = <100000000>, <250000000>;
- intf_mode = <&wakeupmix_gpr 0x28>;
- snps,clk-csr = <0>;
- status = "disabled";
- };
-
- fec: ethernet@42890000 {
- compatible = "fsl,imx93-fec", "fsl,imx8mq-fec", "fsl,imx6sx-fec";
- reg = <0x42890000 0x10000>;
- interrupts = <GIC_SPI 179 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&clk IMX93_CLK_ENET1_GATE>,
- <&clk IMX93_CLK_ENET1_GATE>,
- <&clk IMX93_CLK_ENET_TIMER1>,
- <&clk IMX93_CLK_ENET_REF>,
- <&clk IMX93_CLK_ENET_REF_PHY>;
- clock-names = "ipg", "ahb", "ptp",
- "enet_clk_ref", "enet_out";
- assigned-clocks = <&clk IMX93_CLK_ENET_TIMER1>,
- <&clk IMX93_CLK_ENET_REF>,
- <&clk IMX93_CLK_ENET_REF_PHY>;
- assigned-clock-parents = <&clk IMX93_CLK_SYS_PLL_PFD1_DIV2>,
- <&clk IMX93_CLK_SYS_PLL_PFD0_DIV2>,
- <&clk IMX93_CLK_SYS_PLL_PFD1_DIV2>;
- assigned-clock-rates = <100000000>, <250000000>, <50000000>;
- fsl,num-tx-queues = <3>;
- fsl,num-rx-queues = <3>;
- status = "disabled";
- };
-
- usdhc3: mmc@428b0000 {
- compatible = "fsl,imx93-usdhc", "fsl,imx8mm-usdhc";
- reg = <0x428b0000 0x10000>;
- interrupts = <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&clk IMX93_CLK_BUS_WAKEUP>,
- <&clk IMX93_CLK_WAKEUP_AXI>,
- <&clk IMX93_CLK_USDHC3_GATE>;
- clock-names = "ipg", "ahb", "per";
- bus-width = <4>;
- fsl,tuning-start-tap = <20>;
- fsl,tuning-step= <2>;
- status = "disabled";
- };
- };
-
- gpio2: gpio@43810080 {
- compatible = "fsl,imx93-gpio", "fsl,imx7ulp-gpio";
- reg = <0x43810080 0x1000>, <0x43810040 0x40>;
- gpio-controller;
- #gpio-cells = <2>;
- interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
- interrupt-controller;
- #interrupt-cells = <2>;
- clocks = <&clk IMX93_CLK_GPIO2_GATE>,
- <&clk IMX93_CLK_GPIO2_GATE>;
- clock-names = "gpio", "port";
- gpio-ranges = <&iomuxc 0 4 30>;
- };
-
- gpio3: gpio@43820080 {
- compatible = "fsl,imx93-gpio", "fsl,imx7ulp-gpio";
- reg = <0x43820080 0x1000>, <0x43820040 0x40>;
- gpio-controller;
- #gpio-cells = <2>;
- interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
- interrupt-controller;
- #interrupt-cells = <2>;
- clocks = <&clk IMX93_CLK_GPIO3_GATE>,
- <&clk IMX93_CLK_GPIO3_GATE>;
- clock-names = "gpio", "port";
- gpio-ranges = <&iomuxc 0 84 8>, <&iomuxc 8 66 18>,
- <&iomuxc 26 34 2>, <&iomuxc 28 0 4>;
- };
-
- gpio4: gpio@43830080 {
- compatible = "fsl,imx93-gpio", "fsl,imx7ulp-gpio";
- reg = <0x43830080 0x1000>, <0x43830040 0x40>;
- gpio-controller;
- #gpio-cells = <2>;
- interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>;
- interrupt-controller;
- #interrupt-cells = <2>;
- clocks = <&clk IMX93_CLK_GPIO4_GATE>,
- <&clk IMX93_CLK_GPIO4_GATE>;
- clock-names = "gpio", "port";
- gpio-ranges = <&iomuxc 0 38 28>, <&iomuxc 28 36 2>;
- };
-
- gpio1: gpio@47400080 {
- compatible = "fsl,imx93-gpio", "fsl,imx7ulp-gpio";
- reg = <0x47400080 0x1000>, <0x47400040 0x40>;
- gpio-controller;
- #gpio-cells = <2>;
- interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
- interrupt-controller;
- #interrupt-cells = <2>;
- clocks = <&clk IMX93_CLK_GPIO1_GATE>,
- <&clk IMX93_CLK_GPIO1_GATE>;
- clock-names = "gpio", "port";
- gpio-ranges = <&iomuxc 0 92 16>;
- };
-
- s4muap: mailbox@47520000 {
- compatible = "fsl,imx93-mu-s4";
- reg = <0x47520000 0x10000>;
- interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
- interrupt-names = "tx", "rx";
- #mbox-cells = <2>;
- };
-
- media_blk_ctrl: system-controller@4ac10000 {
- compatible = "fsl,imx93-media-blk-ctrl", "syscon";
- reg = <0x4ac10000 0x10000>;
- power-domains = <&mediamix>;
- clocks = <&clk IMX93_CLK_MEDIA_APB>,
- <&clk IMX93_CLK_MEDIA_AXI>,
- <&clk IMX93_CLK_NIC_MEDIA_GATE>,
- <&clk IMX93_CLK_MEDIA_DISP_PIX>,
- <&clk IMX93_CLK_CAM_PIX>,
- <&clk IMX93_CLK_PXP_GATE>,
- <&clk IMX93_CLK_LCDIF_GATE>,
- <&clk IMX93_CLK_ISI_GATE>,
- <&clk IMX93_CLK_MIPI_CSI_GATE>,
- <&clk IMX93_CLK_MIPI_DSI_GATE>;
- clock-names = "apb", "axi", "nic", "disp", "cam",
- "pxp", "lcdif", "isi", "csi", "dsi";
- #power-domain-cells = <1>;
- status = "disabled";
- };
-
- usbotg1: usb@4c100000 {
- compatible = "fsl,imx93-usb", "fsl,imx7d-usb", "fsl,imx27-usb";
- reg = <0x4c100000 0x200>;
- interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&clk IMX93_CLK_USB_CONTROLLER_GATE>,
- <&clk IMX93_CLK_HSIO_32K_GATE>;
- clock-names = "usb_ctrl_root_clk", "usb_wakeup";
- assigned-clocks = <&clk IMX93_CLK_HSIO>;
- assigned-clock-parents = <&clk IMX93_CLK_SYS_PLL_PFD1_DIV2>;
- assigned-clock-rates = <133000000>;
- phys = <&usbphynop1>;
- fsl,usbmisc = <&usbmisc1 0>;
- status = "disabled";
- };
-
- usbmisc1: usbmisc@4c100200 {
- compatible = "fsl,imx8mm-usbmisc", "fsl,imx7d-usbmisc",
- "fsl,imx6q-usbmisc";
- reg = <0x4c100200 0x200>;
- #index-cells = <1>;
- };
-
- usbotg2: usb@4c200000 {
- compatible = "fsl,imx93-usb", "fsl,imx7d-usb", "fsl,imx27-usb";
- reg = <0x4c200000 0x200>;
- interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&clk IMX93_CLK_USB_CONTROLLER_GATE>,
- <&clk IMX93_CLK_HSIO_32K_GATE>;
- clock-names = "usb_ctrl_root_clk", "usb_wakeup";
- assigned-clocks = <&clk IMX93_CLK_HSIO>;
- assigned-clock-parents = <&clk IMX93_CLK_SYS_PLL_PFD1_DIV2>;
- assigned-clock-rates = <133000000>;
- phys = <&usbphynop2>;
- fsl,usbmisc = <&usbmisc2 0>;
- status = "disabled";
- };
-
- usbmisc2: usbmisc@4c200200 {
- compatible = "fsl,imx8mm-usbmisc", "fsl,imx7d-usbmisc",
- "fsl,imx6q-usbmisc";
- reg = <0x4c200200 0x200>;
- #index-cells = <1>;
- };
- };
-};
diff --git a/arch/arm/dts/imx943-evk-u-boot.dtsi b/arch/arm/dts/imx943-evk-u-boot.dtsi
index 247a7ed6838..3b3619d2232 100644
--- a/arch/arm/dts/imx943-evk-u-boot.dtsi
+++ b/arch/arm/dts/imx943-evk-u-boot.dtsi
@@ -153,10 +153,6 @@
bootph-pre-ram;
};
-&wdog3 {
- status = "disabled";
-};
-
&xspi1 {
bootph-pre-ram;
pinctrl-names = "default";
diff --git a/arch/arm/dts/imx943-u-boot.dtsi b/arch/arm/dts/imx943-u-boot.dtsi
index 8a7a6f11158..74481aeefb5 100644
--- a/arch/arm/dts/imx943-u-boot.dtsi
+++ b/arch/arm/dts/imx943-u-boot.dtsi
@@ -159,6 +159,21 @@
};
};
+&aips4 {
+ bootph-all;
+
+ wdog4: watchdog@49230000 {
+ compatible = "fsl,imx94-wdt", "fsl,imx93-wdt";
+ reg = <0x49230000 0x10000>;
+ interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&scmi_clk IMX94_CLK_BUSWAKEUP>;
+ timeout-sec = <40>;
+ fsl,ext-reset-output;
+ status = "disabled";
+ bootph-all;
+ };
+};
+
&clk_ext1 {
bootph-all;
};
@@ -442,3 +457,7 @@
&sram0 {
bootph-all;
};
+
+&wdog3 {
+ bootph-all;
+};
diff --git a/arch/arm/dts/imx95-15x15-evk-u-boot.dtsi b/arch/arm/dts/imx95-15x15-evk-u-boot.dtsi
index 514dd729be9..34b4073ff35 100644
--- a/arch/arm/dts/imx95-15x15-evk-u-boot.dtsi
+++ b/arch/arm/dts/imx95-15x15-evk-u-boot.dtsi
@@ -44,10 +44,6 @@
bootph-pre-ram;
};
-&wdog3 {
- status = "disabled";
-};
-
&pinctrl_uart1 {
bootph-pre-ram;
};
diff --git a/arch/arm/dts/imx95-19x19-evk-u-boot.dtsi b/arch/arm/dts/imx95-19x19-evk-u-boot.dtsi
index 8b59831b7ca..1083d863c4d 100644
--- a/arch/arm/dts/imx95-19x19-evk-u-boot.dtsi
+++ b/arch/arm/dts/imx95-19x19-evk-u-boot.dtsi
@@ -28,10 +28,6 @@
bootph-pre-ram;
};
-&wdog3 {
- status = "disabled";
-};
-
&pinctrl_uart1 {
bootph-pre-ram;
};
diff --git a/arch/arm/dts/imx95-toradex-smarc-dev-u-boot.dtsi b/arch/arm/dts/imx95-toradex-smarc-dev-u-boot.dtsi
index 24952579a67..e4eda61e5c4 100644
--- a/arch/arm/dts/imx95-toradex-smarc-dev-u-boot.dtsi
+++ b/arch/arm/dts/imx95-toradex-smarc-dev-u-boot.dtsi
@@ -103,7 +103,3 @@
&usdhc2 {
bootph-pre-ram;
};
-
-&wdog3 {
- status = "disabled";
-};
diff --git a/arch/arm/dts/imx95-u-boot.dtsi b/arch/arm/dts/imx95-u-boot.dtsi
index 6dec159752b..cc67f09ed97 100644
--- a/arch/arm/dts/imx95-u-boot.dtsi
+++ b/arch/arm/dts/imx95-u-boot.dtsi
@@ -138,6 +138,16 @@
&aips2 {
bootph-all;
+
+ wdog4: watchdog@424a0000 {
+ compatible = "fsl,imx93-wdt";
+ reg = <0x424a0000 0x10000>;
+ interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&scmi_clk IMX95_CLK_BUSWAKEUP>;
+ timeout-sec = <40>;
+ status = "disabled";
+ bootph-all;
+ };
};
&aips3 {
@@ -238,3 +248,7 @@
&scmi_buf1 {
bootph-all;
};
+
+&wdog3 {
+ bootph-all;
+};
diff --git a/arch/arm/dts/imx95-verdin-wifi-dev-u-boot.dtsi b/arch/arm/dts/imx95-verdin-wifi-dev-u-boot.dtsi
index 45633765c0f..8ab70cf7399 100644
--- a/arch/arm/dts/imx95-verdin-wifi-dev-u-boot.dtsi
+++ b/arch/arm/dts/imx95-verdin-wifi-dev-u-boot.dtsi
@@ -105,7 +105,3 @@
&usdhc1 {
bootph-pre-ram;
};
-
-&wdog3 {
- status = "disabled";
-};
diff --git a/arch/arm/dts/imx952-u-boot.dtsi b/arch/arm/dts/imx952-u-boot.dtsi
index e977014992e..28f47244356 100644
--- a/arch/arm/dts/imx952-u-boot.dtsi
+++ b/arch/arm/dts/imx952-u-boot.dtsi
@@ -115,6 +115,16 @@
&aips2 {
bootph-all;
+
+ wdog4: watchdog@420c0000 {
+ compatible = "fsl,imx93-wdt";
+ reg = <0x420c0000 0x10000>;
+ interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&scmi_clk IMX952_CLK_BUSWAKEUP>;
+ timeout-sec = <40>;
+ status = "disabled";
+ bootph-all;
+ };
};
&aips3 {
@@ -237,6 +247,10 @@
bootph-pre-ram;
};
+&wdog3 {
+ bootph-all;
+};
+
&scmi_iomuxc {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_hog>;
diff --git a/arch/arm/dts/mba6ulx-u-boot.dtsi b/arch/arm/dts/mba6ulx-u-boot.dtsi
new file mode 100644
index 00000000000..73bed319ef2
--- /dev/null
+++ b/arch/arm/dts/mba6ulx-u-boot.dtsi
@@ -0,0 +1,26 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
+/*
+ * Copyright (c) 2024-2026 TQ-Systems GmbH <[email protected]>,
+ * D-82229 Seefeld, Germany.
+ * Author: Max Merchel
+ */
+
+&uart1 {
+ bootph-pre-ram;
+};
+
+&pinctrl_uart1 {
+ bootph-pre-ram;
+};
+
+&usdhc1 {
+ bootph-pre-ram;
+};
+
+&pinctrl_usdhc1 {
+ bootph-pre-ram;
+};
+
+&reg_mba6ul_3v3 {
+ bootph-pre-ram;
+};
diff --git a/arch/arm/include/asm/arch-imx/cpu.h b/arch/arm/include/asm/arch-imx/cpu.h
index 25d0f205fde..bbc4b421a02 100644
--- a/arch/arm/include/asm/arch-imx/cpu.h
+++ b/arch/arm/include/asm/arch-imx/cpu.h
@@ -48,6 +48,8 @@
#define MXC_CPU_IMX8MPL 0x187 /* dummy ID */
#define MXC_CPU_IMX8MPD 0x188 /* dummy ID */
#define MXC_CPU_IMX8MPUL 0x189 /* dummy ID */
+#define MXC_CPU_IMX8MPD2 0x18c /* dummy ID */
+#define MXC_CPU_IMX8MP5 0x18d /* dummy ID */
#define MXC_CPU_IMX8QXP_A0 0x90 /* dummy ID */
#define MXC_CPU_IMX8QM 0x91 /* dummy ID */
#define MXC_CPU_IMX8QXP 0x92 /* dummy ID */
diff --git a/arch/arm/include/asm/arch-imx8ulp/imx-regs.h b/arch/arm/include/asm/arch-imx8ulp/imx-regs.h
index a038cc1df33..f9c5e21c14f 100644
--- a/arch/arm/include/asm/arch-imx8ulp/imx-regs.h
+++ b/arch/arm/include/asm/arch-imx8ulp/imx-regs.h
@@ -20,8 +20,6 @@
#define SIM1_BASE_ADDR 0x29290000
-#define WDG3_RBASE 0x292a0000UL
-
#define SIM_SEC_BASE_ADDR 0x2802B000
#define CGC1_SOSCDIV_ADDR 0x292C0108
diff --git a/arch/arm/include/asm/arch-imx9/ddr.h b/arch/arm/include/asm/arch-imx9/ddr.h
index bba12369f06..b0f90b53f64 100644
--- a/arch/arm/include/asm/arch-imx9/ddr.h
+++ b/arch/arm/include/asm/arch-imx9/ddr.h
@@ -13,21 +13,21 @@
#define DDR_PHY_BASE 0x4E100000
#define DDRMIX_BLK_CTRL_BASE 0x4E010000
-#define REG_DDR_SDRAM_MD_CNTL (DDR_CTL_BASE + 0x120)
-#define REG_DDR_CS0_BNDS (DDR_CTL_BASE + 0x0)
-#define REG_DDR_CS1_BNDS (DDR_CTL_BASE + 0x8)
+#define REG_DDR_SDRAM_MD_CNTL (DDR_CTL_BASE + 0x120)
+#define REG_DDR_CS0_BNDS (DDR_CTL_BASE + 0x0)
+#define REG_DDR_CS1_BNDS (DDR_CTL_BASE + 0x8)
#define REG_DDRDSR_2 (DDR_CTL_BASE + 0xB24)
-#define REG_DDR_TIMING_CFG_0 (DDR_CTL_BASE + 0x104)
+#define REG_DDR_TIMING_CFG_0 (DDR_CTL_BASE + 0x104)
#define REG_DDR_SDRAM_CFG (DDR_CTL_BASE + 0x110)
-#define REG_DDR_TIMING_CFG_4 (DDR_CTL_BASE + 0x160)
+#define REG_DDR_TIMING_CFG_4 (DDR_CTL_BASE + 0x160)
#define REG_DDR_DEBUG_19 (DDR_CTL_BASE + 0xF48)
-#define REG_DDR_SDRAM_CFG_3 (DDR_CTL_BASE + 0x260)
-#define REG_DDR_SDRAM_CFG_4 (DDR_CTL_BASE + 0x264)
-#define REG_DDR_SDRAM_MD_CNTL_2 (DDR_CTL_BASE + 0x270)
-#define REG_DDR_SDRAM_MPR4 (DDR_CTL_BASE + 0x28C)
-#define REG_DDR_SDRAM_MPR5 (DDR_CTL_BASE + 0x290)
+#define REG_DDR_SDRAM_CFG_3 (DDR_CTL_BASE + 0x260)
+#define REG_DDR_SDRAM_CFG_4 (DDR_CTL_BASE + 0x264)
+#define REG_DDR_SDRAM_MD_CNTL_2 (DDR_CTL_BASE + 0x270)
+#define REG_DDR_SDRAM_MPR4 (DDR_CTL_BASE + 0x28C)
+#define REG_DDR_SDRAM_MPR5 (DDR_CTL_BASE + 0x290)
-#define REG_DDR_ERR_EN (DDR_CTL_BASE + 0x1000)
+#define REG_DDR_ERR_EN (DDR_CTL_BASE + 0x1000)
#define SRC_BASE_ADDR (0x44460000)
#define SRC_DPHY_BASE_ADDR (SRC_BASE_ADDR + 0x1400)
@@ -107,13 +107,13 @@ extern struct dram_timing_info dram_timing;
#define DDRPHY_QB_PSTATES 0
#define DDRPHY_QB_PST_SIZE (DDRPHY_QB_PSTATES * 4 * 1024)
-/**
+/*
* This structure needs to be aligned with the one in OEI.
*/
struct ddrphy_qb_state {
- u32 crc; /* Used for ensuring integrity in DRAM */
-#define MAC_LENGTH 8 /* 256 bits, 32-bit aligned */
- u32 mac[MAC_LENGTH]; /* For 95A0/1 use mac[0] to keep CRC32 value */
+ u32 crc; /* Used for ensuring integrity in DRAM */
+#define MAC_LENGTH 8 /* 256 bits, 32-bit aligned */
+ u32 mac[MAC_LENGTH]; /* For 95A0/1 use mac[0] to keep CRC32 value */
u8 trained_vrefca_a0;
u8 trained_vrefca_a1;
u8 trained_vrefca_b0;
diff --git a/arch/arm/include/asm/arch-imx9/imx-regs.h b/arch/arm/include/asm/arch-imx9/imx-regs.h
index 2d084e5227a..fbf2e6a2b01 100644
--- a/arch/arm/include/asm/arch-imx9/imx-regs.h
+++ b/arch/arm/include/asm/arch-imx9/imx-regs.h
@@ -17,15 +17,6 @@
#define ANATOP_BASE_ADDR 0x44480000UL
-#ifdef CONFIG_IMX94
-#define WDG3_BASE_ADDR 0x49220000UL
-#define WDG4_BASE_ADDR 0x49230000UL
-#else
-#define WDG3_BASE_ADDR 0x42490000UL
-#define WDG4_BASE_ADDR 0x424a0000UL
-#endif
-#define WDG5_BASE_ADDR 0x424b0000UL
-
#define GPIO2_BASE_ADDR 0x43810000UL
#define GPIO3_BASE_ADDR 0x43820000UL
#define GPIO4_BASE_ADDR 0x43840000UL
diff --git a/arch/arm/include/asm/mach-imx/sys_proto.h b/arch/arm/include/asm/mach-imx/sys_proto.h
index ab573413128..d25c08f8fe7 100644
--- a/arch/arm/include/asm/mach-imx/sys_proto.h
+++ b/arch/arm/include/asm/mach-imx/sys_proto.h
@@ -74,9 +74,12 @@ struct bd_info;
#define is_imx8mnud() (is_cpu_type(MXC_CPU_IMX8MNUD))
#define is_imx8mnus() (is_cpu_type(MXC_CPU_IMX8MNUS))
#define is_imx8mp() (is_cpu_type(MXC_CPU_IMX8MP) || is_cpu_type(MXC_CPU_IMX8MPD) || \
- is_cpu_type(MXC_CPU_IMX8MPL) || is_cpu_type(MXC_CPU_IMX8MP6) || is_cpu_type(MXC_CPU_IMX8MPUL))
+ is_cpu_type(MXC_CPU_IMX8MPL) || is_cpu_type(MXC_CPU_IMX8MP6) || is_cpu_type(MXC_CPU_IMX8MPUL) || \
+ is_cpu_type(MXC_CPU_IMX8MP5) || is_cpu_type(MXC_CPU_IMX8MPD2))
#define is_imx8mpd() (is_cpu_type(MXC_CPU_IMX8MPD))
+#define is_imx8mpd2() (is_cpu_type(MXC_CPU_IMX8MPD2))
#define is_imx8mpl() (is_cpu_type(MXC_CPU_IMX8MPL))
+#define is_imx8mp5() (is_cpu_type(MXC_CPU_IMX8MP5))
#define is_imx8mp6() (is_cpu_type(MXC_CPU_IMX8MP6))
#define is_imx8mpul() (is_cpu_type(MXC_CPU_IMX8MPUL))
diff --git a/arch/arm/lib/gic-v3-its.c b/arch/arm/lib/gic-v3-its.c
index 34f05e94672..d11a1ea436e 100644
--- a/arch/arm/lib/gic-v3-its.c
+++ b/arch/arm/lib/gic-v3-its.c
@@ -81,7 +81,7 @@ int gic_lpi_tables_init(u64 base, u32 num_redist)
int i;
u64 redist_lpi_base;
u64 pend_base;
- ulong pend_tab_total_sz = num_redist * LPI_PENDBASE_SZ;
+ ulong pend_tab_total_sz;
void *pend_tab_va;
if (gic_v3_its_get_gic_addr(&priv))
@@ -133,6 +133,7 @@ int gic_lpi_tables_init(u64 base, u32 num_redist)
}
redist_lpi_base = base + LPI_PROPBASE_SZ;
+ pend_tab_total_sz = num_redist * LPI_PENDBASE_SZ;
pend_tab_va = map_physmem(redist_lpi_base, pend_tab_total_sz,
MAP_NOCACHE);
memset(pend_tab_va, 0, pend_tab_total_sz);
diff --git a/arch/arm/mach-imx/cmd_qb.c b/arch/arm/mach-imx/cmd_qb.c
index 633d83d3abd..a6b654d342f 100644
--- a/arch/arm/mach-imx/cmd_qb.c
+++ b/arch/arm/mach-imx/cmd_qb.c
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: GPL-2.0+
-/**
+/*
* Copyright 2024-2026 NXP
*/
#include <command.h>
diff --git a/arch/arm/mach-imx/cpu.c b/arch/arm/mach-imx/cpu.c
index 8af45e14707..c49ad44ac2d 100644
--- a/arch/arm/mach-imx/cpu.c
+++ b/arch/arm/mach-imx/cpu.c
@@ -99,10 +99,14 @@ const char *get_imx_type(u32 imxtype)
switch (imxtype) {
case MXC_CPU_IMX8MP:
return "8MP[8]"; /* Quad-core version of the imx8mp */
+ case MXC_CPU_IMX8MPD2:
+ return "8MP Dual[2]"; /* Dual-core version of the imx8mp, low cost industrial & HMI */
case MXC_CPU_IMX8MPD:
return "8MP Dual[3]"; /* Dual-core version of the imx8mp */
case MXC_CPU_IMX8MPL:
return "8MP Lite[4]"; /* Quad-core Lite version of the imx8mp */
+ case MXC_CPU_IMX8MP5:
+ return "8MP[5]"; /* Quad-core version of the imx8mp, low cost industrial & HMI */
case MXC_CPU_IMX8MP6:
return "8MP[6]"; /* Quad-core version of the imx8mp, NPU fused */
case MXC_CPU_IMX8MPUL:
diff --git a/arch/arm/mach-imx/imx8m/Kconfig b/arch/arm/mach-imx/imx8m/Kconfig
index 0e885f97e63..0d22d3b4e3a 100644
--- a/arch/arm/mach-imx/imx8m/Kconfig
+++ b/arch/arm/mach-imx/imx8m/Kconfig
@@ -114,6 +114,7 @@ config TARGET_IMX8MM_ICORE_MX8MM
select IMX8MM
select SUPPORT_SPL
select IMX8M_LPDDR4
+ imply OF_UPSTREAM
help
i.Core MX8M Mini is an EDIMM SOM based on NXP i.MX8MM.
@@ -138,6 +139,7 @@ config TARGET_IMX8MM_PHG
select IMX8MM
select SUPPORT_SPL
select IMX8M_LPDDR4
+ imply OF_UPSTREAM
config TARGET_IMX8MM_VENICE
bool "Support Gateworks Venice iMX8M Mini module"
@@ -263,6 +265,7 @@ config TARGET_IMX8MP_ICORE_MX8MP
select IMX8MP
select IMX8M_LPDDR4
select SUPPORT_SPL
+ imply OF_UPSTREAM
help
i.Core MX8M Plus is an EDIMM SOM based on NXP i.MX8MP.
@@ -424,6 +427,7 @@ config TARGET_MSC_SM2S_IMX8MP
select IMX8MP
select SUPPORT_SPL
select IMX8M_LPDDR4
+ imply OF_UPSTREAM
config TARGET_LIBREM5
bool "Purism Librem5 Phone"
diff --git a/arch/arm/mach-imx/imx8m/soc.c b/arch/arm/mach-imx/imx8m/soc.c
index 1fe083ae94f..498bbe6704f 100644
--- a/arch/arm/mach-imx/imx8m/soc.c
+++ b/arch/arm/mach-imx/imx8m/soc.c
@@ -442,7 +442,7 @@ static u32 get_cpu_variant_type(u32 type)
u32 flag = 0;
if ((value0 & 0xc0000) == 0x80000)
- return MXC_CPU_IMX8MPD;
+ flag |= (1 << 10);
/* vpu disabled */
if ((value0 & 0x43000000) == 0x43000000)
@@ -475,6 +475,12 @@ static u32 get_cpu_variant_type(u32 type)
return MXC_CPU_IMX8MPL;
case 2:
return MXC_CPU_IMX8MP6;
+ case 0x400:
+ return MXC_CPU_IMX8MPD;
+ case 0x4:
+ return MXC_CPU_IMX8MP5;
+ case 0x404:
+ return MXC_CPU_IMX8MPD2;
default:
break;
}
@@ -1433,13 +1439,15 @@ usb_modify_speed:
if (is_imx8mpul() || is_imx8mpl() || is_imx8mp6())
disable_npu_nodes(blob);
- if (is_imx8mpul() || is_imx8mpl())
+ if (is_imx8mpul() || is_imx8mpl() ||
+ is_imx8mpd2() || is_imx8mp5())
disable_isp_nodes(blob);
- if (is_imx8mpul() || is_imx8mpl() || is_imx8mp6())
+ if (is_imx8mpul() || is_imx8mpl() || is_imx8mp6() ||
+ is_imx8mpd2() || is_imx8mp5())
disable_dsp_nodes(blob);
- if (is_imx8mpd())
+ if (is_imx8mpd() || is_imx8mpd2())
disable_cpu_nodes(blob, nodes_path, 2, 4);
#endif
diff --git a/arch/arm/mach-imx/imx8ulp/soc.c b/arch/arm/mach-imx/imx8ulp/soc.c
index 1ee483065e8..ccdb949a9da 100644
--- a/arch/arm/mach-imx/imx8ulp/soc.c
+++ b/arch/arm/mach-imx/imx8ulp/soc.c
@@ -343,7 +343,17 @@ static void disable_wdog(void __iomem *wdog_base)
void init_wdog(void)
{
- disable_wdog((void __iomem *)WDG3_RBASE);
+ ofnode node;
+
+ ofnode_for_each_compatible_node(node, "fsl,imx8ulp-wdt") {
+ phys_addr_t base;
+
+ base = ofnode_get_addr(node);
+ if (base == FDT_ADDR_T_NONE)
+ continue;
+
+ disable_wdog((void __iomem *)base);
+ }
}
static struct mm_region imx8ulp_arm64_mem_map[] = {
diff --git a/arch/arm/mach-imx/imx9/Kconfig b/arch/arm/mach-imx/imx9/Kconfig
index f072e6a9e3d..7fa6d6369e8 100644
--- a/arch/arm/mach-imx/imx9/Kconfig
+++ b/arch/arm/mach-imx/imx9/Kconfig
@@ -68,6 +68,7 @@ config TARGET_IMX91_11X11_EVK
select IMX91
imply BOOTSTD_FULL
imply BOOTSTD_BOOTCOMMAND
+ imply OF_UPSTREAM
config TARGET_IMX91_11X11_FRDM
bool "imx91_11x11_frdm"
@@ -76,6 +77,7 @@ config TARGET_IMX91_11X11_FRDM
select IMX9_LPDDR4X
imply BOOTSTD_FULL
imply BOOTSTD_BOOTCOMMAND
+ imply OF_UPSTREAM
config TARGET_IMX93_9X9_QSB
bool "imx93_qsb"
@@ -113,11 +115,13 @@ config TARGET_IMX93_FRDM
select REMOTEPROC_IMX
select REGMAP
select SYSCON
+ imply OF_UPSTREAM
config TARGET_IMX93_VAR_SOM
bool "imx93_var_som"
select IMX93
select IMX9_LPDDR4X
+ imply OF_UPSTREAM
config TARGET_KONTRON_MX93
bool "Kontron OSM-S/BL i.MX93"
diff --git a/arch/arm/mach-imx/imx9/qb.c b/arch/arm/mach-imx/imx9/qb.c
index 1a0a12de3d4..d13f6acf569 100644
--- a/arch/arm/mach-imx/imx9/qb.c
+++ b/arch/arm/mach-imx/imx9/qb.c
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: GPL-2.0+
-/**
+/*
* Copyright 2024-2026 NXP
*/
#include <dm/device-internal.h>
@@ -17,15 +17,15 @@
#include <asm/mach-imx/boot_mode.h>
#include <asm/mach-imx/sys_proto.h>
-#define QB_STATE_LOAD_SIZE SZ_64K
+#define QB_STATE_LOAD_SIZE SZ_64K
-#define BLK_DEV 0
-#define SPI_DEV 1
+#define BLK_DEV 0
+#define SPI_DEV 1
-#define IMG_FLAGS_IMG_TYPE_MASK 0xF
-#define IMG_FLAGS_IMG_TYPE(x) FIELD_GET(IMG_FLAGS_IMG_TYPE_MASK, (x))
+#define IMG_FLAGS_IMG_TYPE_MASK 0xF
+#define IMG_FLAGS_IMG_TYPE(x) FIELD_GET(IMG_FLAGS_IMG_TYPE_MASK, (x))
-#define IMG_TYPE_DDR_TDATA_DUMMY 0xD /* dummy DDR training data image */
+#define IMG_TYPE_DDR_TDATA_DUMMY 0xD /* dummy DDR training data image */
static const struct {
const char *ifname;
@@ -33,7 +33,7 @@ static const struct {
} imx_boot_devs[] = {
[BOOT_DEVICE_MMC1] = { "mmc", "0" },
[BOOT_DEVICE_MMC2] = { "mmc", "1" },
- [BOOT_DEVICE_SPI] = { "spi", "" },
+ [BOOT_DEVICE_SPI] = { "spi", "" },
};
static int imx_qb_get_board_boot_device(void)
@@ -77,7 +77,7 @@ bool imx_qb_check(void)
struct ddrphy_qb_state *qb_state;
u32 size, crc;
- /**
+ /*
* Ensure CRC is not empty, the reason is that
* the data is invalidated after first save run
* or after it is overwritten.
@@ -105,7 +105,7 @@ static int imx_qb_get_blk_boot_part(const char * const ifname,
if (!IS_ENABLED(CONFIG_XPL_BUILD))
return blk_get_device_part_str(ifname, dev, bdesc, &info, 1);
- /**
+ /*
* SPL does not have access to part_get_info,
* so get the partition manually. Currently only
* supporting MMC devices.
@@ -304,8 +304,8 @@ static int imx_qb_blk(const char * const ifname,
ret = blk_derase(bdesc, offset, load_size);
}
- if (!ret) {
- printf("Failed to write to block device\n");
+ if (ret != load_size) {
+ printf("Failed to %s block device\n", save ? "write to" : "erase");
return -EIO;
}
@@ -364,7 +364,7 @@ int imx_qb(const char *ifname, const char *dev, bool save)
ret = 0;
- /* Try to use boot device */
+ /* Try to use boot device */
if (!strcmp(ifname, "auto"))
ret = imx_qb_get_boot_dev_str(&ifname, &dev);
@@ -385,7 +385,7 @@ int imx_qb(const char *ifname, const char *dev, bool save)
if (!save)
return 0;
- /**
+ /*
* invalidate qb_state mem so that at next boot
* the check function will fail and save won't happen
*/
diff --git a/arch/arm/mach-imx/imx9/scmi/soc.c b/arch/arm/mach-imx/imx9/scmi/soc.c
index 7c107c88bb4..8a295baf5a2 100644
--- a/arch/arm/mach-imx/imx9/scmi/soc.c
+++ b/arch/arm/mach-imx/imx9/scmi/soc.c
@@ -833,9 +833,16 @@ static void gpio_reset(ulong gpio_base)
int arch_cpu_init(void)
{
if (IS_ENABLED(CONFIG_SPL_BUILD)) {
- if (!IS_ENABLED(CONFIG_IMX952)) {
- disable_wdog((void __iomem *)WDG3_BASE_ADDR);
- disable_wdog((void __iomem *)WDG4_BASE_ADDR);
+ ofnode node;
+
+ ofnode_for_each_compatible_node(node, "fsl,imx93-wdt") {
+ phys_addr_t base;
+
+ base = ofnode_get_addr(node);
+ if (base == FDT_ADDR_T_NONE)
+ continue;
+
+ disable_wdog((void __iomem *)base);
}
gpio_reset(GPIO2_BASE_ADDR);
diff --git a/arch/arm/mach-imx/imx9/soc.c b/arch/arm/mach-imx/imx9/soc.c
index ec0cb18e954..6576ecefd5f 100644
--- a/arch/arm/mach-imx/imx9/soc.c
+++ b/arch/arm/mach-imx/imx9/soc.c
@@ -270,9 +270,17 @@ static void disable_wdog(void __iomem *wdog_base)
void init_wdog(void)
{
- disable_wdog((void __iomem *)WDG3_BASE_ADDR);
- disable_wdog((void __iomem *)WDG4_BASE_ADDR);
- disable_wdog((void __iomem *)WDG5_BASE_ADDR);
+ ofnode node;
+
+ ofnode_for_each_compatible_node(node, "fsl,imx93-wdt") {
+ phys_addr_t base;
+
+ base = ofnode_get_addr(node);
+ if (base == FDT_ADDR_T_NONE)
+ continue;
+
+ disable_wdog((void __iomem *)base);
+ }
}
static struct mm_region imx93_mem_map[] = {
diff --git a/arch/arm/mach-imx/mx6/Kconfig b/arch/arm/mach-imx/mx6/Kconfig
index d198d9932f4..7ed4b24b751 100644
--- a/arch/arm/mach-imx/mx6/Kconfig
+++ b/arch/arm/mach-imx/mx6/Kconfig
@@ -633,6 +633,26 @@ config TARGET_TQMA6
imply CMD_SF
imply CMD_DM
+config TARGET_TQMA6UL
+ bool "TQ-Systems TQMa6UL[L]x"
+ depends on MX6UL || MX6ULL
+ select TQ_COMMON_SOM
+ select BOARD_EARLY_INIT_F
+ select BOARD_LATE_INIT
+ select OF_SYSTEM_SETUP
+ select DM
+ select DM_I2C
+ select SUPPORT_SPL
+ select SPL_SEPARATE_BSS if SPL
+ imply DM_GPIO
+ imply DM_MMC
+ imply DM_SPI if SPI
+ imply DM_SPI_FLASH if SPI
+ imply SPI
+ help
+ TQMa6UL[L]x is a TQ SoM with i.MX6UL/i.MX6ULL CPU
+ The SoM can be used on various baseboards.
+
config TARGET_UDOO
bool "udoo"
depends on MX6QDL
@@ -739,6 +759,7 @@ source "board/technexion/pico-imx6/Kconfig"
source "board/technexion/pico-imx6ul/Kconfig"
source "board/tbs/tbs2910/Kconfig"
source "board/tq/tqma6/Kconfig"
+source "board/tq/tqma6ul/Kconfig"
source "board/toradex/apalis_imx6/Kconfig"
source "board/toradex/colibri_imx6/Kconfig"
source "board/toradex/colibri-imx6ull/Kconfig"
diff --git a/arch/arm/mach-imx/mx7ulp/Kconfig b/arch/arm/mach-imx/mx7ulp/Kconfig
index e8cb58bc89f..eac3a2ad6af 100644
--- a/arch/arm/mach-imx/mx7ulp/Kconfig
+++ b/arch/arm/mach-imx/mx7ulp/Kconfig
@@ -35,6 +35,7 @@ config TARGET_MX7ULP_COM
select SPL_SEPARATE_BSS if SPL
select SPL_SERIAL if SPL
select SUPPORT_SPL
+ imply OF_UPSTREAM
config TARGET_MX7ULP_EVK
bool "Support mx7ulp EVK board"
@@ -42,6 +43,7 @@ config TARGET_MX7ULP_EVK
select SYS_ARCH_TIMER
select FSL_CAAM
select ARCH_MISC_INIT
+ imply OF_UPSTREAM
endchoice
diff --git a/arch/arm/mach-imx/mx7ulp/soc.c b/arch/arm/mach-imx/mx7ulp/soc.c
index 5306e76223f..ca1cf759fe1 100644
--- a/arch/arm/mach-imx/mx7ulp/soc.c
+++ b/arch/arm/mach-imx/mx7ulp/soc.c
@@ -83,8 +83,12 @@ enum bt_mode get_boot_mode(void)
return LOW_POWER_BOOT;
}
+static void init_wdog(void);
int arch_cpu_init(void)
{
+ /* Disable wdog */
+ init_wdog();
+
enable_ca7_smp();
return 0;
}
@@ -146,7 +150,7 @@ static void disable_wdog(u32 wdog_base)
while (!(readl(wdog_base + 0x00) & 0x400));
}
-void init_wdog(void)
+static void init_wdog(void)
{
/*
* ROM will configure WDOG1, disable it or enable it
@@ -161,8 +165,17 @@ void init_wdog(void)
* In this function, we will disable both WDOG1 and WDOG2,
* and set update bit for both. So that kernel can reconfigure them.
*/
- disable_wdog(WDG1_RBASE);
- disable_wdog(WDG2_RBASE);
+ ofnode node;
+
+ ofnode_for_each_compatible_node(node, "fsl,imx7ulp-wdt") {
+ phys_addr_t base;
+
+ base = ofnode_get_addr(node);
+ if (base == FDT_ADDR_T_NONE)
+ continue;
+
+ disable_wdog((u32)base);
+ }
}
static bool ldo_mode_is_enabled(void)
@@ -221,9 +234,6 @@ static void init_ldo_mode(void)
void s_init(void)
{
- /* Disable wdog */
- init_wdog();
-
/* clock configuration. */
clock_init();
diff --git a/board/tq/MAINTAINERS b/board/tq/MAINTAINERS
index b31c5793432..a04a36ba415 100644
--- a/board/tq/MAINTAINERS
+++ b/board/tq/MAINTAINERS
@@ -1,4 +1,4 @@
-TQMA6
+TQMA6 / TQMA6UL / TQMA6ULxL / TQMA6ULL / TQMA6ULLxL
M: Max Merchel <[email protected]>
S: Maintained
diff --git a/board/tq/common/Kconfig b/board/tq/common/Kconfig
index 2fe2ca30072..567b6e2380a 100644
--- a/board/tq/common/Kconfig
+++ b/board/tq/common/Kconfig
@@ -14,3 +14,8 @@ config TQ_COMMON_SDMMC
config TQ_COMMON_SOM
bool
+
+config TQ_COMMON_SYSINFO
+ bool
+ select SYSINFO
+ imply SYSINFO_TQ_EEPROM
diff --git a/board/tq/common/Makefile b/board/tq/common/Makefile
index 4af9207da4a..6cb39a1925e 100644
--- a/board/tq/common/Makefile
+++ b/board/tq/common/Makefile
@@ -8,3 +8,4 @@
obj-$(CONFIG_TQ_COMMON_BB) += tq_bb.o
obj-$(CONFIG_TQ_COMMON_SOM) += tq_som.o
obj-$(CONFIG_TQ_COMMON_SDMMC) += tq_sdmmc.o
+obj-$(CONFIG_$(PHASE_)TQ_COMMON_SYSINFO) += tq_sysinfo.o
diff --git a/board/tq/common/tq_sysinfo.c b/board/tq/common/tq_sysinfo.c
new file mode 100644
index 00000000000..8d21d1e97c6
--- /dev/null
+++ b/board/tq/common/tq_sysinfo.c
@@ -0,0 +1,37 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Common sysinfo helpers for TQ-Systems SOMs
+ *
+ * Copyright (c) 2020-2026 TQ-Systems GmbH <[email protected]>
+ * D-82229 Seefeld, Germany.
+ * Author: Nora Schiffer
+ */
+
+#include <env.h>
+#include <log.h>
+#include <sysinfo/tq_eeprom.h>
+
+#include "tq_sysinfo.h"
+
+#define MAX_NAME_LENGTH 80
+
+int tq_common_sysinfo_setup(void)
+{
+ struct udevice *sysinfo;
+ char buf[MAX_NAME_LENGTH];
+ int ret;
+
+ ret = sysinfo_get_and_detect(&sysinfo);
+ if (ret) {
+ log_debug("Failed to get sysinfo data: %d\n", ret);
+ return ret;
+ }
+
+ if (!sysinfo_get_str(sysinfo, SYSID_TQ_MODEL, sizeof(buf), buf))
+ env_set_runtime("boardtype", buf);
+
+ if (!sysinfo_get_str(sysinfo, SYSID_TQ_SERIAL, sizeof(buf), buf))
+ env_set_runtime("serial#", buf);
+
+ return 0;
+}
diff --git a/board/tq/common/tq_sysinfo.h b/board/tq/common/tq_sysinfo.h
new file mode 100644
index 00000000000..d73b00eb8d7
--- /dev/null
+++ b/board/tq/common/tq_sysinfo.h
@@ -0,0 +1,15 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/*
+ * Common sysinfo helpers for TQ-Systems SOMs
+ *
+ * Copyright (c) 2025-2026 TQ-Systems GmbH <[email protected]>
+ * D-82229 Seefeld, Germany.
+ * Author: Nora Schiffer
+ */
+
+#ifndef __TQ_SYSINFO_H
+#define __TQ_SYSINFO_H
+
+int tq_common_sysinfo_setup(void);
+
+#endif /* __TQ_SYSINFO_H */
diff --git a/board/tq/tqma6ul/Kconfig b/board/tq/tqma6ul/Kconfig
new file mode 100644
index 00000000000..5d85c68b359
--- /dev/null
+++ b/board/tq/tqma6ul/Kconfig
@@ -0,0 +1,114 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+#
+# Copyright (c) 2016-2026 TQ-Systems GmbH <[email protected]>,
+# D-82229 Seefeld, Germany.
+# Author: Marco Felsch, Markus Niebel, Max Merchel
+#
+
+if TARGET_TQMA6UL
+
+config SYS_BOARD
+ default "tqma6ul"
+
+config SYS_VENDOR
+ default "tq"
+
+config SYS_CONFIG_NAME
+ default "tqma6ul_mba6ul" if MBA6UL
+
+choice
+ prompt "TQMa6UL module variant"
+ default TQMA6UL_VARIANT_STANDARD
+ help
+ Select the variant of the TQMa6UL SoM module being used.
+ By default, the variant with board-to-board connectors is used.
+
+config TQMA6UL_VARIANT_STANDARD
+ bool "standard module with board connector"
+ help
+ Select for SoM variant connector
+ with board to board connectors
+
+config TQMA6UL_VARIANT_LGA
+ bool "LGA module with solder balls"
+ help
+ Select for SoM variant LGA
+ with solder balls
+
+endchoice
+
+config TQMA6UL_RAM_256M
+ bool
+
+config TQMA6UL_RAM_512M
+ bool
+
+choice
+ prompt "TQMa6UL RAM configuration"
+ default TQMA6UL_RAM_MULTI
+ help
+ Select RAM configuration. Normally use default here but for
+ specific setup it is possible to use a single RAM size.
+
+config TQMA6UL_RAM_MULTI
+ bool "TQMa6ULx with 256/512 MB RAM - Single image"
+ select TQMA6UL_RAM_256M
+ select TQMA6UL_RAM_512M
+ help
+ Build a single U-Boot solely for variants
+ with 256/512 MB RAM.
+
+config TQMA6UL_RAM_SINGLE_256M
+ bool "TQMa6UL with 256 MB RAM"
+ select TQMA6UL_RAM_256M
+ help
+ Build U-Boot solely for variants
+ with 256 MB RAM.
+
+config TQMA6UL_RAM_SINGLE_512M
+ bool "TQMa6UL with 512 MB RAM"
+ select TQMA6UL_RAM_512M
+ help
+ Build U-Boot solely for variants
+ with 512 MB RAM.
+
+endchoice
+
+choice
+ prompt "TQMa6UL base board variant"
+ default MBA6UL
+ help
+ Select the baseboard variant for the TQMa6UL module.
+ By default the MBA6UL starterkit is used.
+
+config MBA6UL
+ bool "TQMa6UL on MBa6ULx Starterkit"
+ select TQ_COMMON_BB
+ select TQ_COMMON_SDMMC
+ select SYSINFO
+ select SYSINFO_TQ_EEPROM
+ select I2C_EEPROM
+ select MISC
+ select MXC_UART
+ imply DM_ETH
+ imply DM_GPIO
+ imply DM_MMC
+ imply DM_SERIAL
+ imply DM_SPI
+ imply OF_UPSTREAM
+ imply PHYLIB
+ imply PHY_SMSC
+ imply USB
+ imply USB_STORAGE
+ help
+ Select the MBa6ULx starterkit.
+ This is the default base board.
+
+endchoice
+
+config IMX_CONFIG
+ default "board/tq/tqma6ul/tqma6ul.cfg"
+
+source "board/tq/common/Kconfig"
+
+endif
diff --git a/board/tq/tqma6ul/Makefile b/board/tq/tqma6ul/Makefile
new file mode 100644
index 00000000000..f45ed4a15f6
--- /dev/null
+++ b/board/tq/tqma6ul/Makefile
@@ -0,0 +1,16 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+#
+# Copyright (c) 2021-2026 TQ-Systems GmbH <[email protected]>,
+# D-82229 Seefeld, Germany.
+# Author: Markus Niebel, Matthias Schiffer, Max Merchel
+#
+
+obj-y := tqma6ul.o
+
+ifdef CONFIG_SPL_BUILD
+obj-y += spl.o
+obj-y += spl_tqma6ul_ram.o
+obj-$(CONFIG_MBA6UL) += spl_mba6ul.o
+else
+obj-$(CONFIG_MBA6UL) += tqma6ul_mba6ul.o
+endif
diff --git a/board/tq/tqma6ul/spl.c b/board/tq/tqma6ul/spl.c
new file mode 100644
index 00000000000..71c5134c4f6
--- /dev/null
+++ b/board/tq/tqma6ul/spl.c
@@ -0,0 +1,128 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (c) 2023-2026 TQ-Systems GmbH <[email protected]>,
+ * D-82229 Seefeld, Germany.
+ * Author: Max Merchel
+ */
+
+#include <fsl_esdhc_imx.h>
+#include <hang.h>
+#include <init.h>
+#include <mmc.h>
+#include <spl.h>
+#include <asm/arch/clock.h>
+#include <asm/arch/crm_regs.h>
+#include <asm/arch/mx6-ddr.h>
+#include <asm/arch/mx6ul_pins.h>
+#include <asm/arch/sys_proto.h>
+#include <asm-generic/sections.h>
+#include <linux/sizes.h>
+
+#include "../common/tq_bb.h"
+#include "../common/tq_som.h"
+
+static void ccgr_init(void)
+{
+ struct mxc_ccm_reg *ccm = (struct mxc_ccm_reg *)CCM_BASE_ADDR;
+
+ writel(0xFFFFFFFF, &ccm->CCGR0);
+ writel(0xFFFFFFFF, &ccm->CCGR1);
+ writel(0xFFFFFFFF, &ccm->CCGR2);
+ writel(0xFFFFFFFF, &ccm->CCGR3);
+ writel(0xFFFFFFFF, &ccm->CCGR4);
+ writel(0xFFFFFFFF, &ccm->CCGR5);
+ writel(0xFFFFFFFF, &ccm->CCGR6);
+}
+
+#define USDHC_CLK_PAD_CTRL (PAD_CTL_PUS_47K_UP | PAD_CTL_SPEED_LOW | \
+ PAD_CTL_DSE_40ohm | PAD_CTL_SRE_FAST | PAD_CTL_HYS)
+
+#define USDHC_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \
+ PAD_CTL_PUS_22K_UP | PAD_CTL_SPEED_LOW | \
+ PAD_CTL_DSE_80ohm | PAD_CTL_SRE_FAST | PAD_CTL_HYS)
+
+/* eMMC on USDHC2 */
+static const iomux_v3_cfg_t tqma6ul_usdhc2_pads[] = {
+ MX6_PAD_NAND_DATA00__USDHC2_DATA0 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
+ MX6_PAD_NAND_DATA01__USDHC2_DATA1 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
+ MX6_PAD_NAND_DATA02__USDHC2_DATA2 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
+ MX6_PAD_NAND_DATA03__USDHC2_DATA3 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
+ MX6_PAD_NAND_DATA04__USDHC2_DATA4 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
+ MX6_PAD_NAND_DATA05__USDHC2_DATA5 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
+ MX6_PAD_NAND_DATA06__USDHC2_DATA6 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
+ MX6_PAD_NAND_DATA07__USDHC2_DATA7 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
+ MX6_PAD_NAND_ALE__USDHC2_RESET_B | MUX_PAD_CTRL(USDHC_PAD_CTRL),
+ MX6_PAD_NAND_RE_B__USDHC2_CLK | MUX_PAD_CTRL(USDHC_PAD_CTRL),
+ MX6_PAD_NAND_WE_B__USDHC2_CMD | MUX_PAD_CTRL(USDHC_PAD_CTRL),
+};
+
+static struct fsl_esdhc_cfg tqma6ul_usdhc2_cfg = {
+ .esdhc_base = USDHC2_BASE_ADDR,
+ .max_bus_width = 8,
+};
+
+int board_mmc_getcd(struct mmc *mmc)
+{
+ struct fsl_esdhc_cfg *cfg = (struct fsl_esdhc_cfg *)mmc->priv;
+ int ret = 0;
+
+ if (cfg->esdhc_base == USDHC2_BASE_ADDR)
+ /* eMMC/uSDHC2 is always present */
+ ret = 1;
+ else
+ ret = tq_bb_board_mmc_getcd(mmc);
+
+ return ret;
+}
+
+int board_mmc_getwp(struct mmc *mmc)
+{
+ struct fsl_esdhc_cfg *cfg = (struct fsl_esdhc_cfg *)mmc->priv;
+ int ret = 0;
+
+ if (cfg->esdhc_base == USDHC2_BASE_ADDR)
+ /* eMMC/uSDHC2 is never WP */
+ ret = 0;
+ else
+ ret = tq_bb_board_mmc_getwp(mmc);
+
+ return ret;
+}
+
+int board_mmc_init(struct bd_info *bis)
+{
+ imx_iomux_v3_setup_multiple_pads(tqma6ul_usdhc2_pads,
+ ARRAY_SIZE(tqma6ul_usdhc2_pads));
+ tqma6ul_usdhc2_cfg.sdhc_clk = mxc_get_clock(MXC_ESDHC2_CLK);
+
+ if (fsl_esdhc_initialize(bis, &tqma6ul_usdhc2_cfg))
+ printf("Warning: failed to initialize eMMC dev\n");
+
+ tq_bb_board_mmc_init(bis);
+
+ return 0;
+}
+
+void board_init_f(ulong dummy)
+{
+ /* setup clock gating */
+ ccgr_init();
+
+ /* setup AIPS and disable watchdog */
+ arch_cpu_init();
+
+ /* setup AXI */
+ gpr_init();
+
+ /* iomux and setup of i2c */
+ board_early_init_f();
+
+ /* Setup GP timer */
+ timer_init();
+
+ /* UART clocks enabled and gd valid - init serial console */
+ preloader_console_init();
+
+ /* DDR initialization */
+ tq_som_ram_init();
+}
diff --git a/board/tq/tqma6ul/spl_mba6ul.c b/board/tq/tqma6ul/spl_mba6ul.c
new file mode 100644
index 00000000000..55beeac8fc9
--- /dev/null
+++ b/board/tq/tqma6ul/spl_mba6ul.c
@@ -0,0 +1,177 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (c) 2023-2026 TQ-Systems GmbH <[email protected]>,
+ * D-82229 Seefeld, Germany.
+ * Author: Max Merchel
+ */
+
+#include <errno.h>
+#include <fsl_esdhc_imx.h>
+#include <malloc.h>
+#include <spl.h>
+#include <spl_gpio.h>
+#include <asm/gpio.h>
+#include <asm/arch/clock.h>
+#include <asm/arch/imx-regs.h>
+#include <asm/arch/mx6ul_pins.h>
+#include <asm/mach-imx/sys_proto.h>
+
+#include "../common/tq_bb.h"
+#include "tqma6ul.h"
+
+#define GPIO_PAD_CTRL (PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_LOW | \
+ PAD_CTL_DSE_40ohm | PAD_CTL_HYS)
+
+#define USDHC_CLK_PAD_CTRL (PAD_CTL_PUS_47K_UP | PAD_CTL_SPEED_LOW | \
+ PAD_CTL_DSE_40ohm | PAD_CTL_SRE_FAST | \
+ PAD_CTL_HYS)
+
+#define USDHC_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \
+ PAD_CTL_PUS_22K_UP | PAD_CTL_SPEED_LOW | \
+ PAD_CTL_DSE_80ohm | PAD_CTL_SRE_FAST | PAD_CTL_HYS)
+
+#define UART_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \
+ PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED | \
+ PAD_CTL_DSE_40ohm | PAD_CTL_SRE_FAST | PAD_CTL_HYS)
+
+static const iomux_v3_cfg_t mba6ul_uart_pads[] = {
+ NEW_PAD_CTRL(MX6_PAD_UART1_TX_DATA__UART1_DCE_TX, UART_PAD_CTRL),
+ NEW_PAD_CTRL(MX6_PAD_UART1_RX_DATA__UART1_DCE_RX, UART_PAD_CTRL),
+};
+
+static void mba6ul_setup_iomuxc_uart(void)
+{
+ imx_iomux_v3_setup_multiple_pads(mba6ul_uart_pads,
+ ARRAY_SIZE(mba6ul_uart_pads));
+}
+
+/* SD card on USDHC1 */
+static const iomux_v3_cfg_t mba6ul_usdhc1_pads[] = {
+ MX6_PAD_SD1_CLK__USDHC1_CLK | MUX_PAD_CTRL(USDHC_CLK_PAD_CTRL),
+ MX6_PAD_SD1_CMD__USDHC1_CMD | MUX_PAD_CTRL(USDHC_PAD_CTRL),
+ MX6_PAD_SD1_DATA0__USDHC1_DATA0 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
+ MX6_PAD_SD1_DATA1__USDHC1_DATA1 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
+ MX6_PAD_SD1_DATA2__USDHC1_DATA2 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
+ MX6_PAD_SD1_DATA3__USDHC1_DATA3 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
+ /* WP */
+ MX6_PAD_UART1_CTS_B__GPIO1_IO18 | MUX_PAD_CTRL(GPIO_PAD_CTRL),
+ /* CD */
+ MX6_PAD_UART1_RTS_B__GPIO1_IO19 | MUX_PAD_CTRL(GPIO_PAD_CTRL),
+};
+
+#define USDHC1_CD_GPIO IMX_GPIO_NR(1, 19)
+#define USDHC1_WP_GPIO IMX_GPIO_NR(1, 18)
+
+static struct fsl_esdhc_cfg mba6ul_usdhc1_cfg = {
+ .esdhc_base = USDHC1_BASE_ADDR,
+ .max_bus_width = 4,
+};
+
+int tq_bb_board_mmc_getcd(struct mmc *mmc)
+{
+ struct fsl_esdhc_cfg *cfg = (struct fsl_esdhc_cfg *)mmc->priv;
+ int ret = 0;
+
+ if (cfg->esdhc_base == USDHC1_BASE_ADDR)
+ ret = !gpio_get_value(USDHC1_CD_GPIO);
+
+ return ret;
+}
+
+int tq_bb_board_mmc_getwp(struct mmc *mmc)
+{
+ struct fsl_esdhc_cfg *cfg = (struct fsl_esdhc_cfg *)mmc->priv;
+ int ret = 0;
+
+ if (cfg->esdhc_base == USDHC1_BASE_ADDR)
+ ret = gpio_get_value(USDHC1_WP_GPIO);
+
+ return ret;
+}
+
+int tq_bb_board_mmc_init(struct bd_info *bis)
+{
+ imx_iomux_v3_setup_multiple_pads(mba6ul_usdhc1_pads,
+ ARRAY_SIZE(mba6ul_usdhc1_pads));
+ gpio_request(USDHC1_CD_GPIO, "usdhc1-cd");
+ gpio_request(USDHC1_WP_GPIO, "usdhc1-wp");
+ gpio_direction_input(USDHC1_CD_GPIO);
+ gpio_direction_input(USDHC1_WP_GPIO);
+
+ mba6ul_usdhc1_cfg.sdhc_clk = mxc_get_clock(MXC_ESDHC_CLK);
+ if (fsl_esdhc_initialize(bis, &mba6ul_usdhc1_cfg))
+ puts("Warning: failed to initialize SD card\n");
+
+ return 0;
+}
+
+int board_early_init_f(void)
+{
+ tq_bb_board_early_init_f();
+
+ mba6ul_setup_iomuxc_uart();
+
+ return 0;
+}
+
+/*
+ * This is done per baseboard to allow different implementations
+ */
+void board_boot_order(u32 *spl_boot_list)
+{
+ u32 bmode = imx6_src_get_boot_mode();
+ u8 imx6_bmode = (bmode & IMX6_BMODE_MASK) >> IMX6_BMODE_SHIFT;
+
+ /* USB boot */
+ if (spl_boot_device() == BOOT_DEVICE_BOARD) {
+ printf("USB\n");
+ spl_boot_list[0] = BOOT_DEVICE_BOARD;
+ return;
+ }
+
+ switch (imx6_bmode) {
+ case IMX6_BMODE_SD:
+ case IMX6_BMODE_ESD:
+ /* SD/eSD - BOOT_DEVICE_MMC2 */
+ printf("SD\n");
+ spl_boot_list[0] = BOOT_DEVICE_MMC2;
+ break;
+ case IMX6_BMODE_MMC:
+ case IMX6_BMODE_EMMC:
+ /* MMC/eMMC - BOOT_DEVICE_MMC1 */
+ printf("eMMC\n");
+ spl_boot_list[0] = BOOT_DEVICE_MMC1;
+ break;
+ case IMX6_BMODE_QSPI:
+ /* QSPI - BOOT_DEVICE_SPI */
+ printf("QSPI\n");
+ spl_boot_list[0] = BOOT_DEVICE_NOR;
+ break;
+ case IMX6_BMODE_SERIAL_ROM:
+ /* SERIAL_ROM - BOOT_DEVICE_BOARD */
+ printf("Serial ROM\n");
+ spl_boot_list[0] = BOOT_DEVICE_BOARD;
+ break;
+ default:
+ printf("WARNING: unknown boot device, fallback to eMMC\n");
+ spl_boot_list[0] = BOOT_DEVICE_MMC1;
+ break;
+ }
+}
+
+int board_fit_config_name_match(const char *name)
+{
+ /* Longest FDT name */
+ char dt[] = "imx6ull-tqma6ull2l-mba6ulx";
+ enum tqma6ul_som_type somtype;
+
+ somtype = set_tqma6ul_dt_name(dt, sizeof(dt), "mba6ulx");
+ if (somtype == tqma6ul_som_type_unknown)
+ return -EINVAL;
+
+ if (!strcmp(name, dt))
+ return -EINVAL;
+
+ printf("Device tree: %s\n", name);
+ return 0;
+}
diff --git a/board/tq/tqma6ul/spl_tqma6ul_ram.c b/board/tq/tqma6ul/spl_tqma6ul_ram.c
new file mode 100644
index 00000000000..c5d50890702
--- /dev/null
+++ b/board/tq/tqma6ul/spl_tqma6ul_ram.c
@@ -0,0 +1,209 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (c) 2023-2026 TQ-Systems GmbH <[email protected]>,
+ * D-82229 Seefeld, Germany.
+ * Author: Max Merchel
+ */
+
+#include <config.h>
+#include <hang.h>
+#include <asm/arch/crm_regs.h>
+#include <asm/arch/iomux.h>
+#include <asm/arch/mx6-ddr.h>
+#include <asm/arch/mx6ul-ddr.h>
+#include <asm/arch/sys_proto.h>
+#include <linux/sizes.h>
+
+#include "../common/tq_som.h"
+
+static void tqma6ul_init_ddr_controller(u32 size)
+{
+ /* TQMa6ul DDR config */
+
+ /* reset DDR via Chip Select 0*/
+ tq_som_init_write_reg(MX6_MMDC_P0_MDCTL, 0x03180000);
+ tq_som_init_write_reg(MX6_MMDC_P0_MDCTL, 0x83180000);
+
+ debug("SPL: tqma6ul ddr iomux ....\n");
+
+ /* DDR IO TYPE: */
+ tq_som_init_write_reg(MX6_IOM_GRP_DDR_TYPE, 0x000C0000);
+ tq_som_init_write_reg(MX6_IOM_GRP_DDRPKE, 0x00000000);
+ /* CLOCK: */
+ tq_som_init_write_reg(MX6_IOM_DRAM_SDCLK_0, 0x00000030);
+ /* Control: */
+ tq_som_init_write_reg(MX6_IOM_DRAM_CAS, 0x00000030);
+ tq_som_init_write_reg(MX6_IOM_DRAM_RAS, 0x00000030);
+ tq_som_init_write_reg(MX6_IOM_GRP_ADDDS, 0x00000030);
+ tq_som_init_write_reg(MX6_IOM_DRAM_RESET, 0x00000030);
+ tq_som_init_write_reg(MX6_IOM_DRAM_SDBA2, 0x00000000);
+ tq_som_init_write_reg(MX6_IOM_DRAM_SDODT0, 0x00000030);
+ tq_som_init_write_reg(MX6_IOM_DRAM_SDODT1, 0x00000030);
+ tq_som_init_write_reg(MX6_IOM_GRP_CTLDS, 0x00000030);
+ /* Data Strobes: */
+ tq_som_init_write_reg(MX6_IOM_DDRMODE_CTL, 0x00020000);
+ tq_som_init_write_reg(MX6_IOM_DRAM_SDQS0, 0x00000030);
+ tq_som_init_write_reg(MX6_IOM_DRAM_SDQS1, 0x00000030);
+ /* Data: */
+ tq_som_init_write_reg(MX6_IOM_GRP_DDRMODE, 0x00020000);
+ tq_som_init_write_reg(MX6_IOM_GRP_B0DS, 0x00000030);
+ tq_som_init_write_reg(MX6_IOM_GRP_B1DS, 0x00000030);
+ tq_som_init_write_reg(MX6_IOM_DRAM_DQM0, 0x00000030);
+ tq_som_init_write_reg(MX6_IOM_DRAM_DQM1, 0x00000030);
+
+ debug("tqma6ul ddr controller registers ....\n");
+
+ /* MMDC_MDSCR - MMDC Core Special Command Register */
+ tq_som_init_write_reg(MX6_MMDC_P0_MDSCR, 0x00008000);
+
+ debug("tqma6ul ddr calibrations ....\n");
+
+ /* DDR_PHY_P0_MPZQHWCTRL , enable both one-time & periodic HW ZQ calibration. */
+ tq_som_init_write_reg(MX6_MMDC_P0_MPZQHWCTRL, 0xA1390003);
+
+ switch (size) {
+ case SZ_512M:
+ if (IS_ENABLED(CONFIG_MX6UL)) {
+ debug("tqma6ul ddr calibration standard variant ....\n");
+
+ tq_som_init_write_reg(MX6_MMDC_P0_MPWLDECTRL0, 0x00000000);
+ tq_som_init_write_reg(MX6_MMDC_P0_MPDGCTRL0, 0x41580150);
+ tq_som_init_write_reg(MX6_MMDC_P0_MPRDDLCTL, 0x40404E52);
+ tq_som_init_write_reg(MX6_MMDC_P0_MPWRDLCTL, 0x40404E4A);
+
+ } else if (IS_ENABLED(CONFIG_MX6ULL)) {
+ if (IS_ENABLED(CONFIG_TQMA6UL_VARIANT_STANDARD)) {
+ debug("tqma6ull ddr calibration standard variant ....\n");
+
+ tq_som_init_write_reg(MX6_MMDC_P0_MPWLDECTRL0, 0x00090009);
+ tq_som_init_write_reg(MX6_MMDC_P0_MPDGCTRL0, 0x4140013C);
+ tq_som_init_write_reg(MX6_MMDC_P0_MPRDDLCTL, 0x40403A3E);
+ tq_som_init_write_reg(MX6_MMDC_P0_MPWRDLCTL, 0x40402E26);
+
+ } else if (IS_ENABLED(CONFIG_TQMA6UL_VARIANT_LGA)) {
+ debug("tqma6ull ddr calibration lga variant ....\n");
+
+ tq_som_init_write_reg(MX6_MMDC_P0_MPWLDECTRL0, 0x00050009);
+ tq_som_init_write_reg(MX6_MMDC_P0_MPDGCTRL0, 0x41340130);
+ tq_som_init_write_reg(MX6_MMDC_P0_MPRDDLCTL, 0x40403A3E);
+ tq_som_init_write_reg(MX6_MMDC_P0_MPWRDLCTL, 0x40402E28);
+
+ } else {
+ pr_err("invalid/unsupported SoM variant ....\n");
+ hang();
+ } /* IS_ENABLED(CONFIG_TQMA6UL_VARIANT_STANDARD) */
+ } else {
+ pr_err("ERROR: invalid/unsupported CPU variant ....\n");
+ hang();
+ } /* IS_ENABLED(CONFIG_MX6UL) */
+ break;
+ case SZ_256M:
+ if (IS_ENABLED(CONFIG_TQMA6UL_VARIANT_STANDARD)) {
+ debug("tqma6ul ddr calibration standard variant ....\n");
+
+ tq_som_init_write_reg(MX6_MMDC_P0_MPWLDECTRL0, 0x00000000);
+ tq_som_init_write_reg(MX6_MMDC_P0_MPDGCTRL0, 0x41480144);
+ tq_som_init_write_reg(MX6_MMDC_P0_MPRDDLCTL, 0x40404E54);
+ tq_som_init_write_reg(MX6_MMDC_P0_MPWRDLCTL, 0x40404E48);
+
+ } else if (IS_ENABLED(CONFIG_TQMA6UL_VARIANT_LGA)) {
+ debug("tqma6ul ddr calibration lga variant ....\n");
+
+ tq_som_init_write_reg(MX6_MMDC_P0_MPWLDECTRL0, 0x00130003);
+ tq_som_init_write_reg(MX6_MMDC_P0_MPDGCTRL0, 0x41540154);
+ tq_som_init_write_reg(MX6_MMDC_P0_MPRDDLCTL, 0x40405050);
+ tq_som_init_write_reg(MX6_MMDC_P0_MPWRDLCTL, 0x40404E4C);
+
+ } else {
+ pr_err("ERROR: invalid/unsupported SoM variant ....\n");
+ hang();
+ } /* IS_ENABLED(CONFIG_TQMA6UL_VARIANT_STANDARD) */
+ break;
+ default:
+ pr_err("ERROR: invalid/unsupported RAM size ....\n");
+ hang();
+ break;
+ }
+
+ tq_som_init_write_reg(MX6_MMDC_P0_MPRDDQBY0DL, 0x33333333);
+ tq_som_init_write_reg(MX6_MMDC_P0_MPRDDQBY1DL, 0x33333333);
+
+ tq_som_init_write_reg(0x021B082C, 0xf3333333); /* MMDC_MPWRDQBY0DL */
+ tq_som_init_write_reg(0x021B0830, 0xf3333333); /* MMDC_MPWRDQBY1DL */
+ tq_som_init_write_reg(0x021B08C0, 0x00921012); /* MMDC_MPDCCR */
+
+ /*
+ * Complete calibration by forced measurement:
+ */
+ tq_som_init_write_reg(MX6_MMDC_P0_MPMUR0, 0x00000800);
+ tq_som_init_write_reg(MX6_MMDC_P0_MDPDC, 0x0002002D);
+
+ debug("tqma6ul ddr mmdc ....\n");
+
+ tq_som_init_write_reg(MX6_MMDC_P0_MDOTC, 0x00333030);
+ tq_som_init_write_reg(MX6_MMDC_P0_MDCFG0, 0x676B52F3);
+ tq_som_init_write_reg(MX6_MMDC_P0_MDCFG1, 0xB66D8B63);
+ tq_som_init_write_reg(MX6_MMDC_P0_MDCFG2, 0x01FF00DB);
+ tq_som_init_write_reg(MX6_MMDC_P0_MDMISC, 0x00201740);
+ tq_som_init_write_reg(MX6_MMDC_P0_MDSCR, 0x00008000);
+ tq_som_init_write_reg(MX6_MMDC_P0_MDRWD, 0x000026D2);
+ tq_som_init_write_reg(MX6_MMDC_P0_MDOR, 0x006B1023);
+
+ switch (size) {
+ case SZ_512M:
+ tq_som_init_write_reg(MX6_MMDC_P0_MDASP, 0x0000004F);
+ tq_som_init_write_reg(MX6_MMDC_P0_MDCTL, 0x84180000);
+ break;
+ case SZ_256M:
+ tq_som_init_write_reg(MX6_MMDC_P0_MDASP, 0x00000047);
+ tq_som_init_write_reg(MX6_MMDC_P0_MDCTL, 0x83180000);
+ break;
+ default:
+ hang();
+ break;
+ }
+
+ debug("tqma6ul ddr cs0 ....\n");
+ tq_som_init_write_reg(MX6_MMDC_P0_MDSCR, 0x02008032);
+ tq_som_init_write_reg(MX6_MMDC_P0_MDSCR, 0x00008033);
+ tq_som_init_write_reg(MX6_MMDC_P0_MDSCR, 0x00048031);
+ tq_som_init_write_reg(MX6_MMDC_P0_MDSCR, 0x15208030);
+ tq_som_init_write_reg(MX6_MMDC_P0_MDSCR, 0x04008040);
+ tq_som_init_write_reg(MX6_MMDC_P0_MDREF, 0x00000800);
+ tq_som_init_write_reg(MX6_MMDC_P0_MPODTCTRL, 0x00000227);
+ tq_som_init_write_reg(MX6_MMDC_P0_MDPDC, 0x0002552D);
+ tq_som_init_write_reg(MX6_MMDC_P0_MAPSR, 0x00011006);
+ tq_som_init_write_reg(MX6_MMDC_P0_MDSCR, 0x00000000);
+}
+
+void tq_som_ram_init(void)
+{
+ int i;
+ /* RAM sizes need to be in descending order */
+ static const u32 ram_sizes[] = {
+#if IS_ENABLED(CONFIG_TQMA6UL_RAM_512M)
+ SZ_512M,
+#endif
+#if IS_ENABLED(CONFIG_TQMA6UL_RAM_256M)
+ SZ_256M,
+#endif
+ };
+
+ if (!is_mx6ul() && !is_mx6ull()) {
+ pr_err("ERROR: Not running on TQMa6UL[L]\n");
+ hang();
+ }
+
+ for (i = 0; i < ARRAY_SIZE(ram_sizes); i++) {
+ tqma6ul_init_ddr_controller(ram_sizes[i]);
+ if (tq_som_ram_check_size(ram_sizes[i]))
+ break;
+ }
+
+ if (i < ARRAY_SIZE(ram_sizes)) {
+ debug("SPL: tqma6ul ddr init done ...\n");
+ } else {
+ pr_err("ERROR: Invalid DDR RAM size\n");
+ hang();
+ }
+}
diff --git a/board/tq/tqma6ul/tqma6ul.c b/board/tq/tqma6ul/tqma6ul.c
new file mode 100644
index 00000000000..999396f573d
--- /dev/null
+++ b/board/tq/tqma6ul/tqma6ul.c
@@ -0,0 +1,184 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (c) 2016-2026 TQ-Systems GmbH <[email protected]>,
+ * D-82229 Seefeld, Germany.
+ * Author: Marco Felsch, Nora Schiffer
+ *
+ */
+
+#include <env.h>
+#include <fdt_support.h>
+#include <mmc.h>
+#include <mtd_node.h>
+#include <spi_flash.h>
+#include <asm/arch/clock.h>
+#include <asm/arch/sys_proto.h>
+#include <asm/mach-imx/boot_mode.h>
+
+#include "../common/tq_bb.h"
+#include "tqma6ul.h"
+
+int tq_bb_board_early_init_f(void)
+{
+ if (CONFIG_IS_ENABLED(FSL_QSPI))
+ enable_qspi_clk(0);
+
+ return 0;
+}
+
+/**
+ * Checks if CPU (imx6ul or ima6ull) matches the one set for the image.
+ */
+static const char *check_cpu_variant(void)
+{
+ const char *cpu;
+
+ if (is_mx6ul()) {
+ cpu = "ul";
+ if (!IS_ENABLED(CONFIG_MX6UL))
+ printf("*** ERROR: image not compiled for i.MX6UL!\n");
+ } else if (is_mx6ull()) {
+ cpu = "ull";
+ if (!IS_ENABLED(CONFIG_MX6ULL))
+ printf("*** ERROR: image not compiled for i.MX6ULL!\n");
+ } else {
+ printf("unknown CPU\n");
+ return NULL;
+ }
+
+ return cpu;
+}
+
+/**
+ * Checks configuration for TQMa6UL SoM module variant.
+ */
+enum tqma6ul_som_type check_tqma6ul_variant(void)
+{
+ if (IS_ENABLED(CONFIG_TQMA6UL_VARIANT_STANDARD))
+ return tqma6ul_som_type_ca;
+
+ if (IS_ENABLED(CONFIG_TQMA6UL_VARIANT_LGA))
+ return tqma6ul_som_type_lga;
+
+ printf("unknown SoM variant\n");
+
+ return tqma6ul_som_type_unknown;
+}
+
+/**
+ * Adjusts device tree name based on CPU variant.
+ */
+enum tqma6ul_som_type set_tqma6ul_dt_name(char *dt, size_t dtsize, const char *mb)
+{
+ const char *tqma6ul_cpu, *tqma6ul_variant;
+ enum tqma6ul_som_type somtype;
+ u8 mx6ul_variant;
+
+ tqma6ul_cpu = check_cpu_variant();
+ if (!tqma6ul_cpu)
+ return tqma6ul_som_type_unknown;
+
+ /* MX6UL1 vs MX6UL2 */
+ mx6ul_variant = check_module_fused(MODULE_ENET2) ? 1 : 2;
+
+ somtype = check_tqma6ul_variant();
+ switch (somtype) {
+ case tqma6ul_som_type_ca:
+ tqma6ul_variant = "";
+ break;
+ case tqma6ul_som_type_lga:
+ tqma6ul_variant = "l";
+ break;
+ default:
+ return tqma6ul_som_type_unknown;
+ }
+
+ snprintf(dt, dtsize, "imx6%s-tqma6%s%u%s-%s",
+ tqma6ul_cpu, tqma6ul_cpu, mx6ul_variant, tqma6ul_variant, mb);
+
+ return somtype;
+}
+
+#if !IS_ENABLED(CONFIG_SPL_BUILD)
+int dram_init(void)
+{
+ gd->ram_size = imx_ddr_size();
+
+ return 0;
+}
+
+const char *tq_som_get_modulename(void)
+{
+ if (is_mx6ul()) {
+ if (IS_ENABLED(CONFIG_TQMA6UL_VARIANT_STANDARD))
+ return "TQMa6ULx";
+
+ if (IS_ENABLED(CONFIG_TQMA6UL_VARIANT_LGA))
+ return "TQMa6ULxL";
+ }
+
+ if (is_mx6ull()) {
+ if (IS_ENABLED(CONFIG_TQMA6UL_VARIANT_STANDARD))
+ return "TQMa6ULLx";
+
+ if (IS_ENABLED(CONFIG_TQMA6UL_VARIANT_LGA))
+ return "TQMa6ULLxL";
+ }
+
+ return "Unknown";
+}
+
+int checkboard(void)
+{
+ printf("Board: %s on %s\n", tq_som_get_modulename(),
+ tq_bb_get_boardname());
+
+ return tq_bb_checkboard();
+}
+
+#if IS_ENABLED(CONFIG_CMD_BMODE)
+static const struct boot_mode tqma6ul_board_boot_modes[] = {
+ /* 4 bit bus width */
+ {"sd", MAKE_CFGVAL(0x42, 0x20, 0x00, 0x00)},
+ {"emmc", MAKE_CFGVAL(0x40, 0x28, 0x00, 0x00)},
+ {"qspi", MAKE_CFGVAL(0x10, 0x00, 0x00, 0x00)},
+ {NULL, 0},
+};
+#endif
+
+int tq_bb_board_late_init(void)
+{
+ if (IS_ENABLED(CONFIG_CMD_BMODE))
+ add_board_boot_modes(tqma6ul_board_boot_modes);
+
+ env_set_runtime("board_name", tq_som_get_modulename());
+
+ return 0;
+}
+
+int tq_bb_checkboard(void)
+{
+ if (is_mx6ul()) {
+ if (!IS_ENABLED(CONFIG_MX6UL))
+ printf("*** ERROR: image not compiled for i.MX6UL!\n");
+ } else if (is_mx6ull()) {
+ if (!IS_ENABLED(CONFIG_MX6ULL))
+ printf("*** ERROR: image not compiled for i.MX6ULL!\n");
+ } else {
+ printf("*** ERROR: unknown CPU variant!\n");
+ }
+
+ return 0;
+}
+
+/*
+ * Device Tree Support
+ */
+#if IS_ENABLED(CONFIG_OF_BOARD_SETUP) && IS_ENABLED(CONFIG_OF_LIBFDT)
+int tq_bb_ft_board_setup(void *blob, struct bd_info *bd)
+{
+ return 0;
+}
+#endif /* IS_ENABLED(CONFIG_OF_BOARD_SETUP) && IS_ENABLED(CONFIG_OF_LIBFDT) */
+
+#endif /* !IS_ENABLED(CONFIG_SPL_BUILD) */
diff --git a/board/tq/tqma6ul/tqma6ul.cfg b/board/tq/tqma6ul/tqma6ul.cfg
new file mode 100644
index 00000000000..42821ae5c7a
--- /dev/null
+++ b/board/tq/tqma6ul/tqma6ul.cfg
@@ -0,0 +1,23 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (c) 2024-2026 TQ-Systems GmbH <[email protected]>,
+ * D-82229 Seefeld, Germany.
+ * Author: Max Merchel
+ *
+ */
+
+#include <config.h>
+
+/* image version */
+
+IMAGE_VERSION 2
+
+#if IS_ENABLED(CONFIG_QSPI_BOOT)
+BOOT_FROM qspi
+#else
+BOOT_FROM sd
+#endif
+
+#if IS_ENABLED(CONFIG_IMX_HAB)
+CSF CONFIG_CSF_SIZE
+#endif
diff --git a/board/tq/tqma6ul/tqma6ul.env b/board/tq/tqma6ul/tqma6ul.env
new file mode 100644
index 00000000000..fa172caca23
--- /dev/null
+++ b/board/tq/tqma6ul/tqma6ul.env
@@ -0,0 +1,47 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright (c) 2016-2026 TQ-Systems GmbH <[email protected]>,
+ * D-82229 Seefeld, Germany.
+ * Author: Max Merchel
+ *
+ * TQMa6UL environment
+ */
+
+#include <env/tq/tq-imx-shared.env>
+
+board=tqma6ul
+boot_os=bootz "${kernel_addr_r}" - "${fdt_addr_r}"
+emmc_bootp_start=TQMA6UL_MMC_UBOOT_SECTOR_START
+emmc_dev=0
+fdt_addr_r=TQMA6UL_FDT_ADDRESS
+fdtoverlay_addr_r=TQMA6UL_FDT_OVERLAY_ADDR
+image=zImage
+kernel_addr_r=CONFIG_SYS_LOAD_ADDR
+mmcautodetect=yes
+mmcblkdev=0
+mmcdev=CONFIG_ENV_MMC_DEVICE_INDEX
+netdev=eth1
+pxefile_addr_r=CONFIG_SYS_LOAD_ADDR
+ramdisk_addr_r=TQMA6UL_INITRD_ADDRESS
+sd_dev=1
+uboot=u-boot-with-spl.imx
+uboot_mmc_start=TQMA6UL_MMC_UBOOT_SECTOR_START
+uboot_mmc_size=TQMA6UL_MMC_UBOOT_SECTOR_COUNT
+uboot_spi_sector_size=TQMA6UL_SPI_FLASH_SECTOR_SIZE
+uboot_spi_start=TQMA6UL_SPI_UBOOT_START
+uboot_spi_size=TQMA6UL_SPI_UBOOT_SIZE
+
+#ifdef CONFIG_USB_FUNCTION_FASTBOOT
+
+/* 0=user 1=boot1 2=boot2 */
+fastboot_mmc_boot_partition = 1
+
+fastboot_partition_alias_all=CONFIG_FASTBOOT_FLASH_MMC_DEV :0
+
+fastboot_raw_partition_bootloader=
+ TQMA6UL_MMC_UBOOT_SECTOR_START TQMA6UL_MMC_UBOOT_SECTOR_COUNT mmcpart
+ "${fastboot_mmc_boot_partition}"
+
+fastbootcmd=fastboot usb 0
+
+#endif /* CONFIG_USB_FUNCTION_FASTBOOT */
diff --git a/board/tq/tqma6ul/tqma6ul.h b/board/tq/tqma6ul/tqma6ul.h
new file mode 100644
index 00000000000..595edc89e19
--- /dev/null
+++ b/board/tq/tqma6ul/tqma6ul.h
@@ -0,0 +1,25 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/*
+ * Copyright (c) 2023-2026 TQ-Systems GmbH <[email protected]>,
+ * D-82229 Seefeld, Germany.
+ * Author: Max Merchel
+ */
+
+enum tqma6ul_som_type {
+ /* unknown */
+ tqma6ul_som_type_unknown,
+ /* connector module */
+ tqma6ul_som_type_ca,
+ /* LGA Variant */
+ tqma6ul_som_type_lga,
+};
+
+/**
+ * Checks configuration for TQMa6UL SoM module variant
+ */
+enum tqma6ul_som_type check_tqma6ul_variant(void);
+
+/**
+ * Adjusts device tree name based on CPU variant.
+ */
+enum tqma6ul_som_type set_tqma6ul_dt_name(char *dt, size_t dtsize, const char *mb);
diff --git a/board/tq/tqma6ul/tqma6ul_mba6ul.c b/board/tq/tqma6ul/tqma6ul_mba6ul.c
new file mode 100644
index 00000000000..be78060cbda
--- /dev/null
+++ b/board/tq/tqma6ul/tqma6ul_mba6ul.c
@@ -0,0 +1,138 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (c) 2016-2026 TQ-Systems GmbH <[email protected]>,
+ * D-82229 Seefeld, Germany.
+ * Author: Marco Felsch, Nora Schiffer
+ */
+
+#include <env.h>
+#include <malloc.h>
+#include <asm/arch/clock.h>
+#include <asm/arch/iomux.h>
+#include <asm/arch/mx6-pins.h>
+#include <asm/mach-imx/sys_proto.h>
+
+#include "../common/tq_bb.h"
+#include "tqma6ul.h"
+
+const char *tq_bb_get_boardname(void)
+{
+ return "MBa6ULx";
+}
+
+int board_early_init_f(void)
+{
+ return tq_bb_board_early_init_f();
+}
+
+static void mba6ul_setup_eth(void)
+{
+ struct iomuxc *const iomuxc_regs = (struct iomuxc *)IOMUXC_BASE_ADDR;
+
+ if (check_module_fused(MODULE_ENET1)) {
+ printf("FEC1: disabled by fuses\n");
+ } else {
+ /*
+ * Use 50M anatop loopback REF_CLK1 for ENET1,
+ * clear gpr1[13], set gpr1[17]
+ */
+ clrsetbits_le32(&iomuxc_regs->gpr[1], IOMUX_GPR1_FEC1_MASK,
+ IOMUX_GPR1_FEC1_CLOCK_MUX1_SEL_MASK);
+
+ enable_fec_anatop_clock(0, ENET_50MHZ);
+ }
+
+ if (check_module_fused(MODULE_ENET2)) {
+ printf("FEC2: disabled by fuses\n");
+ } else {
+ /*
+ * Use 50M anatop loopback REF_CLK1 for ENET2,
+ * clear gpr1[14], set gpr1[18]
+ */
+ clrsetbits_le32(&iomuxc_regs->gpr[1], IOMUX_GPR1_FEC2_MASK,
+ IOMUX_GPR1_FEC2_CLOCK_MUX1_SEL_MASK);
+
+ enable_fec_anatop_clock(1, ENET_50MHZ);
+ }
+
+ enable_enet_clk(1);
+}
+
+int board_init(void)
+{
+ return 0;
+}
+
+static void mba6ul_set_fdt_file(void)
+{
+ /* Longest FDT name */
+ char dt[] = "imx6ull-tqma6ull2l-mba6ulx.dtb";
+ enum tqma6ul_som_type somtype;
+
+ if (!env_get("fdtfile")) {
+ somtype = set_tqma6ul_dt_name(dt, sizeof(dt), "mba6ulx.dtb");
+ if (somtype == tqma6ul_som_type_unknown)
+ return;
+
+ env_set_runtime("fdtfile", dt);
+ }
+}
+
+int board_late_init(void)
+{
+ unsigned int bmode =
+ (imx6_src_get_boot_mode() & IMX6_BMODE_MASK) >> IMX6_BMODE_SHIFT;
+
+ tq_bb_board_late_init();
+
+ printf("Boot: ");
+
+ switch (bmode) {
+ case IMX6_BMODE_MMC:
+ case IMX6_BMODE_EMMC:
+ printf("eMMC\n");
+ env_set_runtime("boot_dev", "mmc");
+ board_late_mmc_env_init();
+ break;
+ case IMX6_BMODE_SD:
+ case IMX6_BMODE_ESD:
+ printf("SD\n");
+ env_set_runtime("boot_dev", "mmc");
+ board_late_mmc_env_init();
+ break;
+ case IMX6_BMODE_QSPI:
+ case IMX6_BMODE_NOR:
+ printf("QSPI\n");
+ env_set_runtime("boot_dev", "qspi");
+ break;
+ default:
+ printf("unhandled boot device %u\n", bmode);
+ }
+
+ mba6ul_set_fdt_file();
+ mba6ul_setup_eth();
+
+ return 0;
+}
+
+int board_mmc_get_env_dev(int devno)
+{
+ unsigned int port = (imx6_src_get_boot_mode() >> 11) & 0x3;
+
+ switch (port) {
+ case 0:
+ /* SDHC1 - SD card on MBa6ULx */
+ return 1;
+
+ default:
+ /* Return eMMC device otherwise */
+ return 0;
+ }
+}
+
+#if IS_ENABLED(CONFIG_OF_BOARD_SETUP) && IS_ENABLED(CONFIG_OF_LIBFDT)
+int ft_board_setup(void *blob, struct bd_info *bd)
+{
+ return tq_bb_ft_board_setup(blob, bd);
+}
+#endif /* IS_ENABLED(CONFIG_OF_BOARD_SETUP) && IS_ENABLED(CONFIG_OF_LIBFDT) */
diff --git a/board/tq/tqma7/tqma7.c b/board/tq/tqma7/tqma7.c
index 30bd155713d..ccf805d5461 100644
--- a/board/tq/tqma7/tqma7.c
+++ b/board/tq/tqma7/tqma7.c
@@ -17,6 +17,7 @@
#include "../common/tq_bb.h"
#include "../common/tq_som.h"
+#include "../common/tq_sysinfo.h"
DECLARE_GLOBAL_DATA_PTR;
@@ -54,6 +55,7 @@ static const char *tqma7_get_boardname(void)
int board_late_init(void)
{
const char *bname = tqma7_get_boardname();
+ int ret;
if (IS_ENABLED(CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG)) {
struct tag_serialnr serialnr;
@@ -65,6 +67,10 @@ int board_late_init(void)
env_set_runtime("board_name", bname);
+ ret = tq_common_sysinfo_setup();
+ if (ret)
+ log_err("Sysinfo setup failed: %d\n", ret);
+
return tq_bb_board_late_init();
}
diff --git a/board/tq/tqma7/tqma7.env b/board/tq/tqma7/tqma7.env
index 857f16d11bb..05035078869 100644
--- a/board/tq/tqma7/tqma7.env
+++ b/board/tq/tqma7/tqma7.env
@@ -28,8 +28,15 @@ uboot_spi_sector_size=TQMA7_SPI_FLASH_SECTOR_SIZE
uboot_spi_start=TQMA7_SPI_UBOOT_START
uboot_spi_size=TQMA7_SPI_UBOOT_SIZE
-#ifdef CONFIG_FASTBOOT_UUU_SUPPORT
+#ifdef CONFIG_USB_FUNCTION_FASTBOOT
+
+/* 0=user 1=boot1 2=boot2 */
+fastboot_mmc_boot_partition = 1
+
fastboot_partition_alias_all=CONFIG_FASTBOOT_FLASH_MMC_DEV:0
-fastboot_raw_partition_bootloader=TQMA7_MMC_UBOOT_SECTOR_START TQMA7_MMC_UBOOT_SECTOR_COUNT mmcpart 1
+fastboot_raw_partition_bootloader=
+ TQMA7_MMC_UBOOT_SECTOR_START TQMA7_MMC_UBOOT_SECTOR_COUNT mmcpart
+ "${fastboot_mmc_boot_partition}"
fastbootcmd=fastboot usb 0
+
#endif
diff --git a/configs/imx8mm-icore-mx8mm-ctouch2_defconfig b/configs/imx8mm-icore-mx8mm-ctouch2_defconfig
index eca9bf63376..2db503652ee 100644
--- a/configs/imx8mm-icore-mx8mm-ctouch2_defconfig
+++ b/configs/imx8mm-icore-mx8mm-ctouch2_defconfig
@@ -7,7 +7,7 @@ CONFIG_SPL_LIBCOMMON_SUPPORT=y
CONFIG_ENV_SIZE=0x1000
CONFIG_ENV_OFFSET=0x400000
CONFIG_DM_GPIO=y
-CONFIG_DEFAULT_DEVICE_TREE="imx8mm-icore-mx8mm-ctouch2"
+CONFIG_DEFAULT_DEVICE_TREE="freescale/imx8mm-icore-mx8mm-ctouch2"
CONFIG_TARGET_IMX8MM_ICORE_MX8MM=y
CONFIG_SYS_MONITOR_LEN=524288
CONFIG_SPL_MMC=y
diff --git a/configs/imx8mm-icore-mx8mm-edimm2.2_defconfig b/configs/imx8mm-icore-mx8mm-edimm2.2_defconfig
index 29114486cba..7650d7b734d 100644
--- a/configs/imx8mm-icore-mx8mm-edimm2.2_defconfig
+++ b/configs/imx8mm-icore-mx8mm-edimm2.2_defconfig
@@ -7,7 +7,7 @@ CONFIG_SPL_LIBCOMMON_SUPPORT=y
CONFIG_ENV_SIZE=0x1000
CONFIG_ENV_OFFSET=0x400000
CONFIG_DM_GPIO=y
-CONFIG_DEFAULT_DEVICE_TREE="imx8mm-icore-mx8mm-edimm2.2"
+CONFIG_DEFAULT_DEVICE_TREE="freescale/imx8mm-icore-mx8mm-edimm2.2"
CONFIG_TARGET_IMX8MM_ICORE_MX8MM=y
CONFIG_SYS_MONITOR_LEN=524288
CONFIG_SPL_MMC=y
diff --git a/configs/imx8mm_phg_defconfig b/configs/imx8mm_phg_defconfig
index 8fbe0e049e6..c99b8e22bac 100644
--- a/configs/imx8mm_phg_defconfig
+++ b/configs/imx8mm_phg_defconfig
@@ -7,7 +7,7 @@ CONFIG_SPL_LIBCOMMON_SUPPORT=y
CONFIG_ENV_SIZE=0x4000
CONFIG_ENV_OFFSET=0x200000
CONFIG_DM_GPIO=y
-CONFIG_DEFAULT_DEVICE_TREE="imx8mm-phg"
+CONFIG_DEFAULT_DEVICE_TREE="freescale/imx8mm-phg"
CONFIG_TARGET_IMX8MM_PHG=y
CONFIG_SYS_MONITOR_LEN=524288
CONFIG_SPL_MMC=y
@@ -90,8 +90,11 @@ CONFIG_PINCTRL_IMX8M=y
CONFIG_POWER_DOMAIN=y
CONFIG_IMX8M_POWER_DOMAIN=y
CONFIG_DM_PMIC=y
+CONFIG_DM_PMIC_PCA9450=y
CONFIG_SPL_DM_PMIC_PCA9450=y
CONFIG_DM_REGULATOR=y
+CONFIG_DM_REGULATOR_PCA9450=y
+CONFIG_SPL_DM_REGULATOR_PCA9450=y
CONFIG_DM_REGULATOR_FIXED=y
CONFIG_DM_REGULATOR_GPIO=y
CONFIG_DM_SERIAL=y
diff --git a/configs/imx8mp-icore-mx8mp-edimm2.2_defconfig b/configs/imx8mp-icore-mx8mp-edimm2.2_defconfig
index 45edb66f161..709f9f5c7d1 100644
--- a/configs/imx8mp-icore-mx8mp-edimm2.2_defconfig
+++ b/configs/imx8mp-icore-mx8mp-edimm2.2_defconfig
@@ -7,7 +7,7 @@ CONFIG_SPL_LIBCOMMON_SUPPORT=y
CONFIG_ENV_SIZE=0x1000
CONFIG_ENV_OFFSET=0x400000
CONFIG_DM_GPIO=y
-CONFIG_DEFAULT_DEVICE_TREE="imx8mp-icore-mx8mp-edimm2.2"
+CONFIG_DEFAULT_DEVICE_TREE="freescale/imx8mp-icore-mx8mp-edimm2.2"
CONFIG_TARGET_IMX8MP_ICORE_MX8MP=y
CONFIG_SYS_MONITOR_LEN=524288
CONFIG_SPL_MMC=y
diff --git a/configs/imx8ulp_evk_defconfig b/configs/imx8ulp_evk_defconfig
index baa8c1e4695..2101532833e 100644
--- a/configs/imx8ulp_evk_defconfig
+++ b/configs/imx8ulp_evk_defconfig
@@ -92,3 +92,4 @@ CONFIG_SPI=y
CONFIG_DM_SPI=y
CONFIG_NXP_FSPI=y
CONFIG_ULP_WATCHDOG=y
+CONFIG_WDT=y
diff --git a/configs/imx91_11x11_evk_defconfig b/configs/imx91_11x11_evk_defconfig
index 2381e5fdc50..5022b1473e4 100644
--- a/configs/imx91_11x11_evk_defconfig
+++ b/configs/imx91_11x11_evk_defconfig
@@ -11,7 +11,7 @@ CONFIG_ENV_SIZE=0x4000
CONFIG_ENV_OFFSET=0x700000
CONFIG_IMX_CONFIG="arch/arm/mach-imx/imx9/imximage.cfg"
CONFIG_DM_GPIO=y
-CONFIG_DEFAULT_DEVICE_TREE="imx91-11x11-evk"
+CONFIG_DEFAULT_DEVICE_TREE="freescale/imx91-11x11-evk"
CONFIG_TARGET_IMX91_11X11_EVK=y
CONFIG_OF_LIBFDT_OVERLAY=y
CONFIG_SYS_MONITOR_LEN=524288
diff --git a/configs/imx91_11x11_evk_inline_ecc_defconfig b/configs/imx91_11x11_evk_inline_ecc_defconfig
index eabe93ea027..e97cac84965 100644
--- a/configs/imx91_11x11_evk_inline_ecc_defconfig
+++ b/configs/imx91_11x11_evk_inline_ecc_defconfig
@@ -11,7 +11,7 @@ CONFIG_ENV_SIZE=0x4000
CONFIG_ENV_OFFSET=0x700000
CONFIG_IMX_CONFIG="arch/arm/mach-imx/imx9/imximage.cfg"
CONFIG_DM_GPIO=y
-CONFIG_DEFAULT_DEVICE_TREE="imx91-11x11-evk"
+CONFIG_DEFAULT_DEVICE_TREE="freescale/imx91-11x11-evk"
CONFIG_TARGET_IMX91_11X11_EVK=y
CONFIG_OF_LIBFDT_OVERLAY=y
CONFIG_SYS_MONITOR_LEN=524288
diff --git a/configs/imx91_11x11_frdm_defconfig b/configs/imx91_11x11_frdm_defconfig
index da3e95fb9d0..4d6aff088cb 100644
--- a/configs/imx91_11x11_frdm_defconfig
+++ b/configs/imx91_11x11_frdm_defconfig
@@ -10,7 +10,7 @@ CONFIG_ENV_SIZE=0x4000
CONFIG_ENV_OFFSET=0x700000
CONFIG_IMX_CONFIG="arch/arm/mach-imx/imx9/imximage.cfg"
CONFIG_DM_GPIO=y
-CONFIG_DEFAULT_DEVICE_TREE="imx91-11x11-frdm"
+CONFIG_DEFAULT_DEVICE_TREE="freescale/imx91-11x11-frdm"
CONFIG_TARGET_IMX91_11X11_FRDM=y
CONFIG_OF_LIBFDT_OVERLAY=y
CONFIG_SYS_MONITOR_LEN=524288
diff --git a/configs/imx93-phycore_defconfig b/configs/imx93-phycore_defconfig
index 0634378149d..f87581d4ddc 100644
--- a/configs/imx93-phycore_defconfig
+++ b/configs/imx93-phycore_defconfig
@@ -156,6 +156,7 @@ CONFIG_USB_GADGET_VENDOR_NUM=0x1fc9
CONFIG_USB_GADGET_PRODUCT_NUM=0x0152
CONFIG_CI_UDC=y
CONFIG_ULP_WATCHDOG=y
+CONFIG_WDT=y
# CONFIG_RSA is not set
# CONFIG_SPL_SHA256 is not set
CONFIG_LZO=y
diff --git a/configs/imx93_frdm_defconfig b/configs/imx93_frdm_defconfig
index adcf2125c73..749879375fa 100644
--- a/configs/imx93_frdm_defconfig
+++ b/configs/imx93_frdm_defconfig
@@ -10,7 +10,7 @@ CONFIG_ENV_SIZE=0x4000
CONFIG_ENV_OFFSET=0x700000
CONFIG_IMX_CONFIG="arch/arm/mach-imx/imx9/imximage.cfg"
CONFIG_DM_GPIO=y
-CONFIG_DEFAULT_DEVICE_TREE="imx93-11x11-frdm"
+CONFIG_DEFAULT_DEVICE_TREE="freescale/imx93-11x11-frdm"
CONFIG_TARGET_IMX93_FRDM=y
CONFIG_SYS_MONITOR_LEN=524288
CONFIG_SPL_SERIAL=y
diff --git a/configs/imx93_var_som_defconfig b/configs/imx93_var_som_defconfig
index da5d473a7d9..26b0623ccdf 100644
--- a/configs/imx93_var_som_defconfig
+++ b/configs/imx93_var_som_defconfig
@@ -10,7 +10,7 @@ CONFIG_ENV_SIZE=0x4000
CONFIG_ENV_OFFSET=0x700000
CONFIG_IMX_CONFIG="arch/arm/mach-imx/imx9/imximage.cfg"
CONFIG_DM_GPIO=y
-CONFIG_DEFAULT_DEVICE_TREE="imx93-var-som-symphony"
+CONFIG_DEFAULT_DEVICE_TREE="freescale/imx93-var-som-symphony"
CONFIG_AHAB_BOOT=y
CONFIG_TARGET_IMX93_VAR_SOM=y
CONFIG_OF_LIBFDT_OVERLAY=y
diff --git a/configs/imx943_evk_defconfig b/configs/imx943_evk_defconfig
index 70265f13bba..b60d39a1fa2 100644
--- a/configs/imx943_evk_defconfig
+++ b/configs/imx943_evk_defconfig
@@ -151,3 +151,4 @@ CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5
CONFIG_SDP_LOADADDR=0x90400000
CONFIG_SPL_USB_SDP_SUPPORT=y
CONFIG_ULP_WATCHDOG=y
+CONFIG_WDT=y
diff --git a/configs/imx95_15x15_evk_defconfig b/configs/imx95_15x15_evk_defconfig
index e9cd289d31f..3c18956ffe9 100644
--- a/configs/imx95_15x15_evk_defconfig
+++ b/configs/imx95_15x15_evk_defconfig
@@ -147,5 +147,6 @@ CONFIG_SPI=y
CONFIG_DM_SPI=y
CONFIG_NXP_FSPI=y
CONFIG_ULP_WATCHDOG=y
+CONFIG_WDT=y
CONFIG_LZO=y
CONFIG_BZIP2=y
diff --git a/configs/imx95_evk.config b/configs/imx95_evk.config
index 30ad2e60313..743778d9554 100644
--- a/configs/imx95_evk.config
+++ b/configs/imx95_evk.config
@@ -151,3 +151,4 @@ CONFIG_NXP_FSPI=y
CONFIG_ULP_WATCHDOG=y
CONFIG_LZO=y
CONFIG_BZIP2=y
+CONFIG_WDT=y
diff --git a/configs/kontron-sl-mx6ul_defconfig b/configs/kontron-sl-mx6ul_defconfig
index f800c3e4039..8d540a381fc 100644
--- a/configs/kontron-sl-mx6ul_defconfig
+++ b/configs/kontron-sl-mx6ul_defconfig
@@ -84,6 +84,7 @@ CONFIG_FASTBOOT_MMC_BOOT_SUPPORT=y
CONFIG_FASTBOOT_MMC_USER_SUPPORT=y
CONFIG_FASTBOOT_MMC_USER_NAME="mmc1"
CONFIG_DM_I2C=y
+CONFIG_SYS_I2C_MXC=y
CONFIG_FSL_USDHC=y
CONFIG_MTD=y
CONFIG_DM_MTD=y
diff --git a/configs/msc_sm2s_imx8mp_defconfig b/configs/msc_sm2s_imx8mp_defconfig
index 92f72de23a0..1bf681dab32 100644
--- a/configs/msc_sm2s_imx8mp_defconfig
+++ b/configs/msc_sm2s_imx8mp_defconfig
@@ -7,7 +7,7 @@ CONFIG_SPL_LIBCOMMON_SUPPORT=y
CONFIG_ENV_SIZE=0x4000
CONFIG_ENV_OFFSET=0x200000
CONFIG_DM_GPIO=y
-CONFIG_DEFAULT_DEVICE_TREE="imx8mp-msc-sm2s"
+CONFIG_DEFAULT_DEVICE_TREE="freescale/imx8mp-msc-sm2s-ep1"
CONFIG_TARGET_MSC_SM2S_IMX8MP=y
CONFIG_SYS_MONITOR_LEN=524288
CONFIG_SPL_MMC=y
diff --git a/configs/mx7ulp_com_defconfig b/configs/mx7ulp_com_defconfig
index a49cb2a728f..c9c3f6b5f26 100644
--- a/configs/mx7ulp_com_defconfig
+++ b/configs/mx7ulp_com_defconfig
@@ -7,7 +7,7 @@ CONFIG_SF_DEFAULT_SPEED=40000000
CONFIG_ENV_SIZE=0x2000
CONFIG_ENV_OFFSET=0xC0000
CONFIG_DM_GPIO=y
-CONFIG_DEFAULT_DEVICE_TREE="imx7ulp-com"
+CONFIG_DEFAULT_DEVICE_TREE="nxp/imx/imx7ulp-com"
CONFIG_LDO_ENABLED_MODE=y
CONFIG_TARGET_MX7ULP_COM=y
CONFIG_SYS_BOOTM_LEN=0x1000000
@@ -63,3 +63,4 @@ CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5
CONFIG_CI_UDC=y
CONFIG_USB_GADGET_DOWNLOAD=y
CONFIG_ULP_WATCHDOG=y
+CONFIG_WDT=y
diff --git a/configs/mx7ulp_evk_defconfig b/configs/mx7ulp_evk_defconfig
index 98b99dd78e1..6a42acc16ef 100644
--- a/configs/mx7ulp_evk_defconfig
+++ b/configs/mx7ulp_evk_defconfig
@@ -6,7 +6,7 @@ CONFIG_NR_DRAM_BANKS=1
CONFIG_ENV_SIZE=0x2000
CONFIG_ENV_OFFSET=0xC0000
CONFIG_DM_GPIO=y
-CONFIG_DEFAULT_DEVICE_TREE="imx7ulp-evk"
+CONFIG_DEFAULT_DEVICE_TREE="nxp/imx/imx7ulp-evk"
CONFIG_TARGET_MX7ULP_EVK=y
CONFIG_SYS_BOOTM_LEN=0x1000000
CONFIG_SYS_LOAD_ADDR=0x60800000
diff --git a/configs/mx7ulp_evk_plugin_defconfig b/configs/mx7ulp_evk_plugin_defconfig
index af0efbd3ebf..148b706d17a 100644
--- a/configs/mx7ulp_evk_plugin_defconfig
+++ b/configs/mx7ulp_evk_plugin_defconfig
@@ -6,7 +6,7 @@ CONFIG_NR_DRAM_BANKS=1
CONFIG_ENV_SIZE=0x2000
CONFIG_ENV_OFFSET=0xC0000
CONFIG_DM_GPIO=y
-CONFIG_DEFAULT_DEVICE_TREE="imx7ulp-evk"
+CONFIG_DEFAULT_DEVICE_TREE="nxp/imx/imx7ulp-evk"
CONFIG_TARGET_MX7ULP_EVK=y
CONFIG_SYS_BOOTM_LEN=0x1000000
CONFIG_SYS_LOAD_ADDR=0x60800000
diff --git a/configs/toradex-smarc-imx95_defconfig b/configs/toradex-smarc-imx95_defconfig
index caf0718fc13..9363eb5cbb6 100644
--- a/configs/toradex-smarc-imx95_defconfig
+++ b/configs/toradex-smarc-imx95_defconfig
@@ -175,5 +175,6 @@ CONFIG_USB_GADGET_OS_DESCRIPTORS=y
CONFIG_CI_UDC=y
CONFIG_SDP_LOADADDR=0x90400000
CONFIG_ULP_WATCHDOG=y
+CONFIG_WDT=y
# CONFIG_SPL_SHA1 is not set
CONFIG_LZO=y
diff --git a/configs/tqma6ul_common.config b/configs/tqma6ul_common.config
new file mode 100644
index 00000000000..c076fb5d295
--- /dev/null
+++ b/configs/tqma6ul_common.config
@@ -0,0 +1,125 @@
+CONFIG_ARM=y
+CONFIG_ARCH_MX6=y
+CONFIG_TEXT_BASE=0x8fc00000
+CONFIG_SYS_MALLOC_LEN=0x1000000
+CONFIG_SYS_MALLOC_F_LEN=0x10000
+CONFIG_SPL_GPIO=y
+CONFIG_SPL_LIBCOMMON_SUPPORT=y
+CONFIG_NR_DRAM_BANKS=1
+CONFIG_SF_DEFAULT_SPEED=33000000
+CONFIG_ENV_SIZE=0x10000
+CONFIG_ENV_OFFSET=0x100000
+CONFIG_ENV_SECT_SIZE=0x10000
+CONFIG_TARGET_TQMA6UL=y
+CONFIG_SPL_TEXT_BASE=0x909000
+CONFIG_SPL_SYS_MALLOC_F_LEN=0xb000
+CONFIG_SPL_MMC=y
+CONFIG_SPL_SERIAL=y
+CONFIG_SPL_STACK_R_ADDR=0x88000000
+CONFIG_SPL_STACK_R=y
+CONFIG_SPL=y
+CONFIG_IMX_MODULE_FUSE=y
+CONFIG_SYS_MEMTEST_START=0x82000000
+CONFIG_SYS_MEMTEST_END=0x83000000
+CONFIG_FIT=y
+CONFIG_FIT_VERBOSE=y
+CONFIG_SPL_LOAD_FIT=y
+CONFIG_SUPPORT_RAW_INITRD=y
+CONFIG_BOOTDELAY=3
+CONFIG_OF_BOARD_SETUP=y
+CONFIG_FDT_FIXUP_PARTITIONS=y
+CONFIG_USE_BOOTCOMMAND=y
+CONFIG_BOOTCOMMAND="run mmcboot"
+CONFIG_SYS_CONSOLE_IS_IN_ENV=y
+CONFIG_SPL_MAX_SIZE=0xf000
+CONFIG_SPL_RAW_IMAGE_SUPPORT=y
+CONFIG_SPL_SYS_MALLOC=y
+CONFIG_SPL_FIT_IMAGE_TINY=y
+CONFIG_SPL_NOR_SUPPORT=y
+CONFIG_SPL_WATCHDOG=y
+CONFIG_HUSH_PARSER=y
+CONFIG_CMD_LICENSE=y
+CONFIG_CMD_BOOTZ=y
+CONFIG_CRC32_VERIFY=y
+CONFIG_CMD_EEPROM=y
+CONFIG_CMD_MD5SUM=y
+CONFIG_MD5SUM_VERIFY=y
+CONFIG_CMD_MEMINFO=y
+CONFIG_CMD_MEMTEST=y
+CONFIG_SYS_ALT_MEMTEST=y
+CONFIG_CMD_GPIO=y
+CONFIG_CMD_I2C=y
+CONFIG_CMD_MMC=y
+CONFIG_MMC_SPEED_MODE_SET=y
+CONFIG_CMD_MTD=y
+CONFIG_CMD_PART=y
+CONFIG_CMD_SPI=y
+CONFIG_CMD_USB=y
+CONFIG_CMD_WDT=y
+CONFIG_CMD_DHCP=y
+CONFIG_CMD_MII=y
+CONFIG_CMD_NFS=y
+CONFIG_CMD_PING=y
+CONFIG_CMD_TIME=y
+CONFIG_CMD_TIMER=y
+CONFIG_CMD_PMIC=y
+CONFIG_CMD_REGULATOR=y
+CONFIG_CMD_EXT4=y
+CONFIG_CMD_FS_GENERIC=y
+CONFIG_CMD_MTDPARTS=y
+CONFIG_MTDIDS_DEFAULT="nor0=21e0000.qspi"
+CONFIG_MTDPARTS_DEFAULT="mtdparts=21e0000.qspi:4m@0k(bootstream),64k@4096k(env0),64k@4160k(env1),-@6m(ubi)"
+CONFIG_CMD_UBI=y
+CONFIG_OF_CONTROL=y
+CONFIG_SPL_OF_CONTROL=y
+CONFIG_MULTI_DTB_FIT_LZO=y
+CONFIG_MULTI_DTB_FIT=y
+CONFIG_SPL_MULTI_DTB_FIT=y
+CONFIG_ENV_OVERWRITE=y
+CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
+CONFIG_USE_ROOTPATH=y
+CONFIG_ROOTPATH="/srv/nfs"
+CONFIG_BUTTON=y
+CONFIG_BUTTON_GPIO=y
+CONFIG_DM_PCA953X=y
+CONFIG_I2C_SET_DEFAULT_BUS_NUM=y
+CONFIG_I2C_DEFAULT_BUS_NUMBER=0x3
+CONFIG_SYS_I2C_MXC=y
+CONFIG_LED=y
+CONFIG_LED_GPIO=y
+CONFIG_SYS_I2C_EEPROM_ADDR=0x50
+CONFIG_SUPPORT_EMMC_BOOT=y
+CONFIG_FSL_USDHC=y
+CONFIG_MTD=y
+CONFIG_DM_MTD=y
+CONFIG_BOOTDEV_SPI_FLASH=y
+# CONFIG_SPI_FLASH_BAR is not set
+CONFIG_SPI_FLASH_GIGADEVICE=y
+CONFIG_SPI_FLASH_ISSI=y
+CONFIG_SPI_FLASH_MACRONIX=y
+CONFIG_SPI_FLASH_SPANSION=y
+CONFIG_SPI_FLASH_STMICRO=y
+CONFIG_SPI_FLASH_WINBOND=y
+# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
+CONFIG_SPI_FLASH_MTD=y
+CONFIG_DM_MDIO=y
+CONFIG_DM_ETH_PHY=y
+CONFIG_FEC_MXC=y
+CONFIG_MII=y
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_IMX6=y
+CONFIG_DM_PMIC=y
+CONFIG_DM_PMIC_PFUZE100=y
+CONFIG_DM_REGULATOR=y
+CONFIG_DM_REGULATOR_PFUZE100=y
+CONFIG_DM_REGULATOR_FIXED=y
+CONFIG_DM_RTC=y
+CONFIG_RTC_DS1307=y
+CONFIG_FSL_QSPI=y
+CONFIG_SYSRESET=y
+CONFIG_SYSRESET_WATCHDOG=y
+CONFIG_SYSRESET_WATCHDOG_AUTO=y
+CONFIG_DM_THERMAL=y
+CONFIG_IMX_THERMAL=y
+CONFIG_MXC_USB_OTG_HACTIVE=y
+CONFIG_IMX_WATCHDOG=y
diff --git a/configs/tqma6ul_mmc.config b/configs/tqma6ul_mmc.config
new file mode 100644
index 00000000000..430cd9411e1
--- /dev/null
+++ b/configs/tqma6ul_mmc.config
@@ -0,0 +1,3 @@
+CONFIG_SD_BOOT=y
+CONFIG_ENV_IS_IN_MMC=y
+CONFIG_ENV_MMC_USE_DT=y
diff --git a/configs/tqma6ul_spi.config b/configs/tqma6ul_spi.config
new file mode 100644
index 00000000000..20eed285f39
--- /dev/null
+++ b/configs/tqma6ul_spi.config
@@ -0,0 +1,2 @@
+CONFIG_QSPI_BOOT=y
+CONFIG_ENV_IS_IN_SPI_FLASH=y
diff --git a/configs/tqma6ul_uuu.config b/configs/tqma6ul_uuu.config
new file mode 100644
index 00000000000..93e3ab03ae5
--- /dev/null
+++ b/configs/tqma6ul_uuu.config
@@ -0,0 +1,20 @@
+CONFIG_SYS_MALLOC_F_LEN=0x14000
+CONFIG_SPL_SYS_MALLOC_F_LEN=0x12000
+CONFIG_BOOTDELAY=1
+CONFIG_BOOTCOMMAND="run fastbootcmd"
+CONFIG_CMD_USB_MASS_STORAGE=y
+CONFIG_USB_FUNCTION_FASTBOOT=y
+CONFIG_FASTBOOT_BUF_ADDR=0x84000000
+CONFIG_FASTBOOT_BUF_SIZE=0x8000000
+CONFIG_FASTBOOT_FLASH=y
+CONFIG_FASTBOOT_UUU_SUPPORT=y
+CONFIG_FASTBOOT_FLASH_MMC_DEV=0
+CONFIG_SPL_USB_HOST=y
+CONFIG_USB_GADGET=y
+CONFIG_SPL_USB_GADGET=y
+CONFIG_USB_GADGET_MANUFACTURER="FSL"
+CONFIG_USB_GADGET_VENDOR_NUM=0x0525
+CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5
+CONFIG_CI_UDC=y
+CONFIG_SDP_LOADADDR=0x8fbfffc0
+CONFIG_SPL_USB_SDP_SUPPORT=y
diff --git a/configs/tqma6ullx_mba6ul_mmc_defconfig b/configs/tqma6ullx_mba6ul_mmc_defconfig
new file mode 100644
index 00000000000..e708ac634d4
--- /dev/null
+++ b/configs/tqma6ullx_mba6ul_mmc_defconfig
@@ -0,0 +1,5 @@
+#include <configs/tqma6ul_common.config>
+#include <configs/tqma6ul_mmc.config>
+
+CONFIG_MX6ULL=y
+CONFIG_DEFAULT_DEVICE_TREE="nxp/imx/imx6ull-tqma6ull2-mba6ulx"
diff --git a/configs/tqma6ullx_mba6ul_qspi_defconfig b/configs/tqma6ullx_mba6ul_qspi_defconfig
new file mode 100644
index 00000000000..8432111928e
--- /dev/null
+++ b/configs/tqma6ullx_mba6ul_qspi_defconfig
@@ -0,0 +1,5 @@
+#include <configs/tqma6ul_common.config>
+#include <configs/tqma6ul_spi.config>
+
+CONFIG_MX6ULL=y
+CONFIG_DEFAULT_DEVICE_TREE="nxp/imx/imx6ull-tqma6ull2-mba6ulx"
diff --git a/configs/tqma6ullx_mba6ul_uuu_defconfig b/configs/tqma6ullx_mba6ul_uuu_defconfig
new file mode 100644
index 00000000000..20869ccdedc
--- /dev/null
+++ b/configs/tqma6ullx_mba6ul_uuu_defconfig
@@ -0,0 +1,5 @@
+#include <configs/tqma6ul_common.config>
+#include <configs/tqma6ul_uuu.config>
+
+CONFIG_MX6ULL=y
+CONFIG_DEFAULT_DEVICE_TREE="nxp/imx/imx6ull-tqma6ull2-mba6ulx"
diff --git a/configs/tqma6ullxl_mba6ul_mmc_defconfig b/configs/tqma6ullxl_mba6ul_mmc_defconfig
new file mode 100644
index 00000000000..c529c994e67
--- /dev/null
+++ b/configs/tqma6ullxl_mba6ul_mmc_defconfig
@@ -0,0 +1,6 @@
+#include <configs/tqma6ul_common.config>
+#include <configs/tqma6ul_mmc.config>
+
+CONFIG_MX6ULL=y
+CONFIG_TQMA6UL_VARIANT_LGA=y
+CONFIG_DEFAULT_DEVICE_TREE="nxp/imx/imx6ull-tqma6ull2l-mba6ulx"
diff --git a/configs/tqma6ullxl_mba6ul_qspi_defconfig b/configs/tqma6ullxl_mba6ul_qspi_defconfig
new file mode 100644
index 00000000000..721038a9c45
--- /dev/null
+++ b/configs/tqma6ullxl_mba6ul_qspi_defconfig
@@ -0,0 +1,6 @@
+#include <configs/tqma6ul_common.config>
+#include <configs/tqma6ul_spi.config>
+
+CONFIG_MX6ULL=y
+CONFIG_TQMA6UL_VARIANT_LGA=y
+CONFIG_DEFAULT_DEVICE_TREE="nxp/imx/imx6ull-tqma6ull2l-mba6ulx"
diff --git a/configs/tqma6ullxl_mba6ul_uuu_defconfig b/configs/tqma6ullxl_mba6ul_uuu_defconfig
new file mode 100644
index 00000000000..07cde78ccb1
--- /dev/null
+++ b/configs/tqma6ullxl_mba6ul_uuu_defconfig
@@ -0,0 +1,6 @@
+#include <configs/tqma6ul_common.config>
+#include <configs/tqma6ul_uuu.config>
+
+CONFIG_MX6ULL=y
+CONFIG_TQMA6UL_VARIANT_LGA=y
+CONFIG_DEFAULT_DEVICE_TREE="nxp/imx/imx6ull-tqma6ull2l-mba6ulx"
diff --git a/configs/tqma6ulx_mba6ul_mmc_defconfig b/configs/tqma6ulx_mba6ul_mmc_defconfig
new file mode 100644
index 00000000000..3e140da2cc2
--- /dev/null
+++ b/configs/tqma6ulx_mba6ul_mmc_defconfig
@@ -0,0 +1,6 @@
+#include <configs/tqma6ul_common.config>
+#include <configs/tqma6ul_mmc.config>
+
+CONFIG_MX6UL=y
+CONFIG_DEFAULT_DEVICE_TREE="nxp/imx/imx6ul-tqma6ul1-mba6ulx"
+CONFIG_OF_LIST="nxp/imx/imx6ul-tqma6ul1-mba6ulx nxp/imx/imx6ul-tqma6ul2-mba6ulx"
diff --git a/configs/tqma6ulx_mba6ul_qspi_defconfig b/configs/tqma6ulx_mba6ul_qspi_defconfig
new file mode 100644
index 00000000000..78ae745b8c0
--- /dev/null
+++ b/configs/tqma6ulx_mba6ul_qspi_defconfig
@@ -0,0 +1,6 @@
+#include <configs/tqma6ul_common.config>
+#include <configs/tqma6ul_spi.config>
+
+CONFIG_MX6UL=y
+CONFIG_DEFAULT_DEVICE_TREE="nxp/imx/imx6ul-tqma6ul1-mba6ulx"
+CONFIG_OF_LIST="nxp/imx/imx6ul-tqma6ul1-mba6ulx nxp/imx/imx6ul-tqma6ul2-mba6ulx"
diff --git a/configs/tqma6ulx_mba6ul_uuu_defconfig b/configs/tqma6ulx_mba6ul_uuu_defconfig
new file mode 100644
index 00000000000..6dc019277f8
--- /dev/null
+++ b/configs/tqma6ulx_mba6ul_uuu_defconfig
@@ -0,0 +1,6 @@
+#include <configs/tqma6ul_common.config>
+#include <configs/tqma6ul_uuu.config>
+
+CONFIG_MX6UL=y
+CONFIG_DEFAULT_DEVICE_TREE="nxp/imx/imx6ul-tqma6ul1-mba6ulx"
+CONFIG_OF_LIST="nxp/imx/imx6ul-tqma6ul1-mba6ulx nxp/imx/imx6ul-tqma6ul2-mba6ulx"
diff --git a/configs/tqma6ulxl_mba6ul_mmc_defconfig b/configs/tqma6ulxl_mba6ul_mmc_defconfig
new file mode 100644
index 00000000000..a7c3baba0d6
--- /dev/null
+++ b/configs/tqma6ulxl_mba6ul_mmc_defconfig
@@ -0,0 +1,6 @@
+#include <configs/tqma6ul_common.config>
+#include <configs/tqma6ul_mmc.config>
+
+CONFIG_MX6UL=y
+CONFIG_TQMA6UL_VARIANT_LGA=y
+CONFIG_DEFAULT_DEVICE_TREE="nxp/imx/imx6ul-tqma6ul2l-mba6ulx"
diff --git a/configs/tqma6ulxl_mba6ul_qspi_defconfig b/configs/tqma6ulxl_mba6ul_qspi_defconfig
new file mode 100644
index 00000000000..6934a4f984a
--- /dev/null
+++ b/configs/tqma6ulxl_mba6ul_qspi_defconfig
@@ -0,0 +1,6 @@
+#include <configs/tqma6ul_common.config>
+#include <configs/tqma6ul_spi.config>
+
+CONFIG_MX6UL=y
+CONFIG_TQMA6UL_VARIANT_LGA=y
+CONFIG_DEFAULT_DEVICE_TREE="nxp/imx/imx6ul-tqma6ul2l-mba6ulx"
diff --git a/configs/tqma6ulxl_mba6ul_uuu_defconfig b/configs/tqma6ulxl_mba6ul_uuu_defconfig
new file mode 100644
index 00000000000..721d9bf32a2
--- /dev/null
+++ b/configs/tqma6ulxl_mba6ul_uuu_defconfig
@@ -0,0 +1,6 @@
+#include <configs/tqma6ul_common.config>
+#include <configs/tqma6ul_uuu.config>
+
+CONFIG_MX6UL=y
+CONFIG_TQMA6UL_VARIANT_LGA=y
+CONFIG_DEFAULT_DEVICE_TREE="nxp/imx/imx6ul-tqma6ul2l-mba6ulx"
diff --git a/configs/tqma7_common.config b/configs/tqma7_common.config
index 7e5e31a14ab..9b055849ad1 100644
--- a/configs/tqma7_common.config
+++ b/configs/tqma7_common.config
@@ -77,6 +77,7 @@ CONFIG_I2C_DEFAULT_BUS_NUMBER=0x3
CONFIG_SYS_I2C_MXC=y
CONFIG_LED=y
CONFIG_LED_GPIO=y
+CONFIG_NVMEM=y
CONFIG_SUPPORT_EMMC_BOOT=y
CONFIG_FSL_USDHC=y
CONFIG_MTD=y
diff --git a/configs/verdin-imx95_defconfig b/configs/verdin-imx95_defconfig
index 50515250d17..ea1ebb0c492 100644
--- a/configs/verdin-imx95_defconfig
+++ b/configs/verdin-imx95_defconfig
@@ -180,5 +180,6 @@ CONFIG_USB_GADGET_PRODUCT_NUM=0x4000
CONFIG_USB_GADGET_OS_DESCRIPTORS=y
CONFIG_SDP_LOADADDR=0x90400000
CONFIG_ULP_WATCHDOG=y
+CONFIG_WDT=y
# CONFIG_SPL_SHA1 is not set
CONFIG_LZO=y
diff --git a/doc/board/tq/index.rst b/doc/board/tq/index.rst
index d6dc6101c2c..775957474e7 100644
--- a/doc/board/tq/index.rst
+++ b/doc/board/tq/index.rst
@@ -9,4 +9,5 @@ TQ-Systems
.. toctree::
:maxdepth: 2
+ tqma6ul
tqma7
diff --git a/doc/board/tq/tqma6ul.rst b/doc/board/tq/tqma6ul.rst
new file mode 100644
index 00000000000..2b346715642
--- /dev/null
+++ b/doc/board/tq/tqma6ul.rst
@@ -0,0 +1,105 @@
+.. SPDX-License-Identifier: GPL-2.0-or-later or CC-BY-4.0
+
+.. Copyright (c) 2017-2025 TQ-Systems GmbH <[email protected]>,
+.. D-82229 Seefeld, Germany.
+
+########################################
+U-Boot for the TQ-Systems TQMa6x modules
+########################################
+
+The following hardware revisions are supported:
+
+Modules:
+
++------------+----------+
+| TQMa6ULx | REV.030x |
++------------+----------+
+| TQMa6ULLx | REV.030x |
++------------+----------+
+| TQMa6ULxL | REV.030x |
++------------+----------+
+| TQMa6ULLxL | REV.030x |
++------------+----------+
+
+Mainboards:
+
++----------+----------+
+| MBa6ULx | REV.020x |
++----------+----------+
+
+Hardware on modules TQMa6ULx, TQMa6ULxL, TQMa6ULLx and TQMa6ULLxL
+
+- eMMC
+- RTC
+- PMIC
+- SPI-NOR (optional)
+- EEPROM
+- Temperature sensor
+- RAM (256 MiB / 512 MiB)
+
+Supported hardware on Starterkit MBa6ULx:
+
+- 2 Ethernet PHY connected to FEC0 / FEC1 (usage depends on CPU)
+- SD-card slot
+- UART
+- USB
+
+Note: To change the Ethernet port to use for networking functionality, use the
+U-Boot generic environment variable ``ethact``.
+
+.. code-block:: bash
+
+ setenv ethact <FEC>
+
+***********
+Boot source
+***********
+
+- SD/eMMC
+- USB/SDP (with NXP UUU tool)
+- SPI NOR (functional but requires additional prepended NXP header.
+ Not supported in U-Boot.)
+
+********
+Building
+********
+
+To build U-Boot for the TQ-Systems TQMa6L modules:
+
+.. code-block:: bash
+
+ make <som>_<baseboard>_<boot>_defconfig
+ make
+
+
+**som** is a placeholder for the module base variant:
+
++------------+------------+----------------+
+| tqma6ulx | TQMa6ULx | i.MX6UL |
++------------+------------+----------------+
+| tqma6ullx | TQMa6ULLx | i.MX6ULL |
++------------+------------+----------------+
+| tqma6ulxl | TQMa6ULxL | i.MX6UL (lga) |
++------------+------------+----------------+
+| tqma6ullxl | TQMa6ULLxL | i.MX6ULL (lga) |
++------------+------------+----------------+
+
+**baseboard** is a placeholder for the mainboard to compile for:
+
++----------+----------+
+| mba6ul | MBa6ULx |
++----------+----------+
+
+**boot** is a placeholder for the boot device:
+
++------+---------+
+| mmc | SD/eMMC |
++------+---------+
+| spi | SPI-NOR |
++------+---------+
+
+************
+Support Wiki
+************
+
+See `TQ Embedded Wiki for TQMa6ulx <https://support.tq-group.com/en/arm/tqma6ulx>`_.
diff --git a/doc/device-tree-bindings/sysinfo/tq,eeprom-sysinfo.txt b/doc/device-tree-bindings/sysinfo/tq,eeprom-sysinfo.txt
new file mode 100644
index 00000000000..678fff0e812
--- /dev/null
+++ b/doc/device-tree-bindings/sysinfo/tq,eeprom-sysinfo.txt
@@ -0,0 +1,36 @@
+TQ EEPROM Sysinfo Driver
+------------------------
+
+This binding describes a sysinfo provider which retrieves system
+identification information from an I2C EEPROM device.
+
+Required properties:
+
+- compatible: "tq,eeprom-sysinfo"
+- nvmem-cells: phandle referencing the nvmem cell
+- nvmem-cell-names: string, should be "device_info"
+
+Example:
+
+&i2c1 {
+ eeprom@50 {
+ compatible = "atmel,24c64";
+ reg = <0x50>;
+
+ nvmem-layout {
+ compatible = "fixed-layout";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ module_info: module-info@20 {
+ reg = <0x20 0x60>;
+ };
+ };
+ };
+};
+
+sysinfo {
+ compatible = "tq,eeprom-sysinfo";
+ nvmem-cells = <&module_info>;
+ nvmem-cell-names = "device_info";
+};
diff --git a/drivers/clk/Makefile b/drivers/clk/Makefile
index 5f0c0d8a5c2..c37ef75d420 100644
--- a/drivers/clk/Makefile
+++ b/drivers/clk/Makefile
@@ -16,7 +16,7 @@ obj-$(CONFIG_$(PHASE_)CLK_STUB) += clk-stub.o
obj-y += adi/
obj-y += airoha/
obj-y += analogbits/
-obj-y += imx/
+obj-$(CONFIG_MACH_IMX) += imx/
obj-$(CONFIG_CLK_JH7110) += starfive/
obj-y += tegra/
obj-y += ti/
diff --git a/drivers/cpu/imx8_cpu.c b/drivers/cpu/imx8_cpu.c
index 785c299eca5..d94a24ea30a 100644
--- a/drivers/cpu/imx8_cpu.c
+++ b/drivers/cpu/imx8_cpu.c
@@ -63,12 +63,18 @@ static const char *get_imx_type_str(u32 imxtype)
return "8MNano UltraLite Solo";/* Single-core UltraLite version of the imx8mn */
case MXC_CPU_IMX8MP:
return "8MP[8]"; /* Quad-core version of the imx8mp */
+ case MXC_CPU_IMX8MPD2:
+ return "8MP Dual[2]"; /* Dual-core version of the imx8mp, low cost industrial & HMI */
case MXC_CPU_IMX8MPD:
return "8MP Dual[3]"; /* Dual-core version of the imx8mp */
case MXC_CPU_IMX8MPL:
return "8MP Lite[4]"; /* Quad-core Lite version of the imx8mp */
+ case MXC_CPU_IMX8MP5:
+ return "8MP[5]"; /* Quad-core version of the imx8mp, low cost industrial & HMI */
case MXC_CPU_IMX8MP6:
return "8MP[6]"; /* Quad-core version of the imx8mp, NPU fused */
+ case MXC_CPU_IMX8MPUL:
+ return "8MP UltraLite"; /* Quad-core UltraLite version of the imx8mp */
case MXC_CPU_IMX8MQ:
return "8MQ"; /* Quad-core version of the imx8mq */
case MXC_CPU_IMX8MQL:
@@ -371,6 +377,7 @@ static int imx_cpu_probe(struct udevice *dev)
{
struct cpu_imx_plat *plat = dev_get_plat(dev);
u32 cpurev;
+ fdt_addr_t addr;
set_core_data(dev);
cpurev = get_cpu_rev();
@@ -378,12 +385,14 @@ static int imx_cpu_probe(struct udevice *dev)
get_imx_rev_str(plat, cpurev & 0xFFF);
plat->type = get_imx_type_str((cpurev & 0x1FF000) >> 12);
plat->freq_mhz = imx_get_cpu_rate(dev) / 1000000;
- plat->mpidr = dev_read_addr(dev);
- if (plat->mpidr == FDT_ADDR_T_NONE) {
+ addr = dev_read_addr(dev);
+ if (addr == FDT_ADDR_T_NONE) {
printf("%s: Failed to get CPU reg property\n", __func__);
return -EINVAL;
}
+ plat->mpidr = (u32)addr;
+
return 0;
}
diff --git a/drivers/sysinfo/Kconfig b/drivers/sysinfo/Kconfig
index df83df69ffb..6922dac9170 100644
--- a/drivers/sysinfo/Kconfig
+++ b/drivers/sysinfo/Kconfig
@@ -59,4 +59,12 @@ config SYSINFO_GPIO
This ternary number is then mapped to a board revision name using
device tree properties.
+config SYSINFO_TQ_EEPROM
+ bool "Enable TQ-Systems EEPROM sysinfo driver"
+ depends on I2C_EEPROM
+ depends on SPL_I2C_EEPROM || !SPL_SYSINFO
+ help
+ Support querying EEPROM of TQ-Systems SOMs to determine board
+ information.
+
endif
diff --git a/drivers/sysinfo/Makefile b/drivers/sysinfo/Makefile
index 26ca3150999..d21fb3c2270 100644
--- a/drivers/sysinfo/Makefile
+++ b/drivers/sysinfo/Makefile
@@ -9,3 +9,4 @@ obj-$(CONFIG_SYSINFO_IOT2050) += iot2050.o
obj-$(CONFIG_SYSINFO_RCAR3) += rcar3.o
obj-$(CONFIG_SYSINFO_SANDBOX) += sandbox.o
obj-$(CONFIG_SYSINFO_SMBIOS) += smbios.o
+obj-$(CONFIG_SYSINFO_TQ_EEPROM) += tq_eeprom.o
diff --git a/drivers/sysinfo/sysinfo-uclass.c b/drivers/sysinfo/sysinfo-uclass.c
index f04998ef8bb..d18a168614e 100644
--- a/drivers/sysinfo/sysinfo-uclass.c
+++ b/drivers/sysinfo/sysinfo-uclass.c
@@ -42,6 +42,16 @@ int sysinfo_detect(struct udevice *dev)
return ret;
}
+int sysinfo_get_and_detect(struct udevice **devp)
+{
+ int ret = sysinfo_get(devp);
+
+ if (!ret)
+ ret = sysinfo_detect(*devp);
+
+ return ret;
+}
+
int sysinfo_get_fit_loadable(struct udevice *dev, int index, const char *type,
const char **strp)
{
@@ -152,5 +162,5 @@ UCLASS_DRIVER(sysinfo) = {
.id = UCLASS_SYSINFO,
.name = "sysinfo",
.post_bind = dm_scan_fdt_dev,
- .per_device_auto = sizeof(bool),
+ .per_device_auto = sizeof(struct sysinfo_priv),
};
diff --git a/drivers/sysinfo/tq_eeprom.c b/drivers/sysinfo/tq_eeprom.c
new file mode 100644
index 00000000000..63be07b664e
--- /dev/null
+++ b/drivers/sysinfo/tq_eeprom.c
@@ -0,0 +1,203 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (c) 2014-2026 TQ-Systems GmbH <[email protected]>,
+ * D-82229 Seefeld, Germany.
+ * Author: Nora Schiffer
+ */
+
+#include <dm.h>
+#include <log.h>
+#include <net.h>
+#include <dm/device_compat.h>
+#include <linux/build_bug.h>
+#include <linux/ctype.h>
+#include <nvmem.h>
+#include <sysinfo/tq_eeprom.h>
+
+#define TQ_EE_RSV1_BYTES 10
+#define TQ_EE_SERIAL_BYTES 8
+#define TQ_EE_RSV2_BYTES 8
+#define TQ_EE_BDID_BYTES 0x40
+
+struct tq_eeprom_data {
+ u8 mac[ETH_ALEN]; /* 0x20 ... 0x25 */
+ u8 rsv1[TQ_EE_RSV1_BYTES];
+ u8 serial[TQ_EE_SERIAL_BYTES]; /* 0x30 ... 0x37 */
+ u8 rsv2[TQ_EE_RSV2_BYTES];
+ u8 id[TQ_EE_BDID_BYTES]; /* 0x40 ... 0x7f */
+};
+
+static_assert(sizeof(struct tq_eeprom_data) == 0x60,
+ "struct tq_eeprom_data has incorrect size");
+
+/**
+ * struct sysinfo_tq_eeprom_priv - sysinfo private data
+ */
+struct sysinfo_tq_eeprom_priv {
+ struct nvmem_cell device_info_cell;
+
+ /* Reserve extra space for \0 in id and serial */
+ char id[TQ_EE_BDID_BYTES + 1];
+ char serial[TQ_EE_SERIAL_BYTES + 1];
+ u8 mac[ETH_ALEN];
+};
+
+static void tq_eeprom_parse_id(struct udevice *dev, const struct tq_eeprom_data *data)
+{
+ struct sysinfo_tq_eeprom_priv *priv = dev_get_priv(dev);
+ int i;
+
+ for (i = 0; i < sizeof(data->id); i++) {
+ if (!(isprint(data->id[i]) && isascii(data->id[i])))
+ break;
+ }
+
+ if (i == 0)
+ dev_warn(dev, "no valid model name in EEPROM\n");
+
+ snprintf(priv->id, sizeof(priv->id), "%.*s", i, data->id);
+}
+
+static int tq_eeprom_serial_len(const struct tq_eeprom_data *data, bool allow_upper)
+{
+ int i;
+
+ for (i = 0; i < sizeof(data->serial); i++) {
+ if (!(isdigit(data->serial[i]) || (allow_upper && isupper(data->serial[i]))))
+ break;
+ }
+
+ return i;
+}
+
+static void tq_eeprom_parse_serial(struct udevice *dev, const struct tq_eeprom_data *data)
+{
+ struct sysinfo_tq_eeprom_priv *priv = dev_get_priv(dev);
+ bool use_new_format;
+ int len;
+
+ use_new_format = data->serial[0] == 'T' && data->serial[1] == 'Q';
+
+ len = tq_eeprom_serial_len(data, use_new_format);
+
+ /* For now, only serial numbers with the exact size of the field are accepted */
+ if (len != sizeof(data->serial)) {
+ dev_warn(dev, "no valid serial number in EEPROM\n");
+ len = 0;
+ }
+
+ snprintf(priv->serial, sizeof(priv->serial), "%.*s", len, data->serial);
+}
+
+static int tq_eeprom_dump(const struct sysinfo_tq_eeprom_priv *priv)
+{
+ printf("TQ EEPROM:\n");
+ printf(" ID: %s\n", priv->id[0] ? priv->id : "<invalid>");
+ printf(" SN: %s\n", priv->serial[0] ? priv->serial : "<invalid>");
+ printf(" MAC: ");
+ if (is_valid_ethaddr(priv->mac))
+ printf("%pM\n", priv->mac);
+ else
+ printf("<invalid>\n");
+
+ return 0;
+}
+
+static int sysinfo_tq_eeprom_detect(struct udevice *dev)
+{
+ struct sysinfo_tq_eeprom_priv *priv = dev_get_priv(dev);
+ struct tq_eeprom_data data;
+ int ret;
+
+ ret = nvmem_cell_read(&priv->device_info_cell, (u8 *)&data, sizeof(data));
+ if (ret < 0) {
+ dev_err(dev, "EEPROM read failed: %d\n", ret);
+ return ret;
+ }
+
+ tq_eeprom_parse_id(dev, &data);
+ tq_eeprom_parse_serial(dev, &data);
+ memcpy(priv->mac, data.mac, ETH_ALEN);
+
+ if (!IS_ENABLED(CONFIG_SPL_BUILD))
+ tq_eeprom_dump(priv);
+
+ return 0;
+}
+
+static int sysinfo_tq_eeprom_get_str(struct udevice *dev, int id, size_t size, char *val)
+{
+ struct sysinfo_tq_eeprom_priv *priv = dev_get_priv(dev);
+
+ switch (id) {
+ case SYSID_TQ_MODEL:
+ if (!priv->id[0])
+ return -ENODATA;
+
+ strlcpy(val, priv->id, size);
+ return 0;
+
+ case SYSID_TQ_SERIAL:
+ if (!priv->serial[0])
+ return -ENODATA;
+
+ strlcpy(val, priv->serial, size);
+ return 0;
+
+ default:
+ return -EINVAL;
+ }
+}
+
+static int sysinfo_tq_eeprom_get_data(struct udevice *dev, int id, void **data, size_t *size)
+{
+ struct sysinfo_tq_eeprom_priv *priv = dev_get_priv(dev);
+
+ switch (id) {
+ case SYSID_TQ_MAC_ADDR:
+ if (!is_valid_ethaddr(priv->mac))
+ return -ENODATA;
+
+ *data = priv->mac;
+ *size = sizeof(priv->mac);
+
+ return 0;
+
+ default:
+ return -EINVAL;
+ }
+}
+
+static const struct sysinfo_ops sysinfo_tq_eeprom_ops = {
+ .detect = sysinfo_tq_eeprom_detect,
+ .get_str = sysinfo_tq_eeprom_get_str,
+ .get_data = sysinfo_tq_eeprom_get_data,
+};
+
+static int sysinfo_tq_eeprom_probe(struct udevice *dev)
+{
+ struct sysinfo_tq_eeprom_priv *priv = dev_get_priv(dev);
+ int ret;
+
+ ret = nvmem_cell_get_by_name(dev, "device_info", &priv->device_info_cell);
+ if (ret) {
+ dev_err(dev, "device_info not found: %d\n", ret);
+ return ret;
+ }
+
+ return 0;
+}
+
+static const struct udevice_id sysinfo_tq_eeprom_ids[] = {
+ { .compatible = "tq,eeprom-sysinfo" },
+ { /* sentinel */ }
+};
+
+U_BOOT_DRIVER(sysinfo_tq_eeprom) = {
+ .name = "sysinfo_tq_eeprom",
+ .id = UCLASS_SYSINFO,
+ .of_match = sysinfo_tq_eeprom_ids,
+ .ops = &sysinfo_tq_eeprom_ops,
+ .priv_auto = sizeof(struct sysinfo_tq_eeprom_priv),
+ .probe = sysinfo_tq_eeprom_probe,
+};
diff --git a/drivers/watchdog/ulp_wdog.c b/drivers/watchdog/ulp_wdog.c
index 83f19dc0e86..e3a89031c44 100644
--- a/drivers/watchdog/ulp_wdog.c
+++ b/drivers/watchdog/ulp_wdog.c
@@ -7,6 +7,7 @@
#include <asm/io.h>
#include <asm/arch/imx-regs.h>
#include <dm.h>
+#include <linux/delay.h>
#include <wdt.h>
/*
@@ -51,11 +52,9 @@ struct ulp_wdt_priv {
#define CLK_RATE_1KHZ 1000
#define CLK_RATE_32KHZ 125
-void hw_watchdog_set_timeout(u16 val)
+void hw_watchdog_set_timeout(struct wdog_regs *wdog, u16 val)
{
/* setting timeout value */
- struct wdog_regs *wdog = (struct wdog_regs *)WDOG_BASE_ADDR;
-
writel(val, &wdog->toval);
}
@@ -89,7 +88,7 @@ void ulp_watchdog_init(struct wdog_regs *wdog, u16 timeout)
while (!(readl(&wdog->cs) & WDGCS_ULK))
;
- hw_watchdog_set_timeout(timeout);
+ hw_watchdog_set_timeout(wdog, timeout);
writel(0, &wdog->win);
/* setting 1-kHz clock source, enable counter running, and clear interrupt */
@@ -107,57 +106,20 @@ void ulp_watchdog_init(struct wdog_regs *wdog, u16 timeout)
ulp_watchdog_reset(wdog);
}
-void hw_watchdog_reset(void)
-{
- struct wdog_regs *wdog = (struct wdog_regs *)WDOG_BASE_ADDR;
-
- ulp_watchdog_reset(wdog);
-}
-
-void hw_watchdog_init(void)
-{
- struct wdog_regs *wdog = (struct wdog_regs *)WDOG_BASE_ADDR;
-
- ulp_watchdog_init(wdog, CONFIG_WATCHDOG_TIMEOUT_MSECS);
-}
-
-#if !CONFIG_IS_ENABLED(SYSRESET)
+#if !CONFIG_IS_ENABLED(SYSRESET) && CONFIG_IS_ENABLED(WDT)
void reset_cpu(void)
{
- struct wdog_regs *wdog = (struct wdog_regs *)WDOG_BASE_ADDR;
- u32 cmd32 = 0;
-
- if (readl(&wdog->cs) & WDGCS_CMD32EN) {
- writel(UNLOCK_WORD, &wdog->cnt);
- cmd32 = WDGCS_CMD32EN;
- } else {
- dmb();
- __raw_writel(UNLOCK_WORD0, &wdog->cnt);
- __raw_writel(UNLOCK_WORD1, &wdog->cnt);
- dmb();
- }
+ struct udevice *wdt;
- /* Wait WDOG Unlock */
- while (!(readl(&wdog->cs) & WDGCS_ULK))
- ;
+ for (uclass_first_device(UCLASS_WDT, &wdt);
+ wdt;
+ uclass_next_device(&wdt)) {
+ if (!dev_read_enabled(wdt))
+ continue;
- hw_watchdog_set_timeout(5); /* 5ms timeout for general; 40ms timeout for imx93 */
- writel(0, &wdog->win);
-
- /* enable counter running */
- if (IS_ENABLED(CONFIG_ARCH_IMX9))
- writel((cmd32 | WDGCS_WDGE | (WDG_LPO_CLK << 8) | WDOG_CS_PRES |
- WDGCS_INT), &wdog->cs);
- else
- writel((cmd32 | WDGCS_WDGE | (WDG_LPO_CLK << 8)), &wdog->cs);
-
- /* Wait WDOG reconfiguration */
- while (!(readl(&wdog->cs) & WDGCS_RCS))
- ;
-
- hw_watchdog_reset();
-
- while (1);
+ wdt_expire_now(wdt, 0);
+ break;
+ }
}
#endif
@@ -184,6 +146,20 @@ static int ulp_wdt_reset(struct udevice *dev)
return 0;
}
+static int ulp_wdt_expire_now(struct udevice *dev, ulong flags)
+{
+ int ret;
+
+ /* 5ms timeout for all others; 40ms timeout for "fsl,imx93-wdt" */
+ ret = ulp_wdt_start(dev, 5, flags);
+ if (ret)
+ return ret;
+
+ mdelay(50);
+
+ return 0;
+}
+
static int ulp_wdt_probe(struct udevice *dev)
{
struct ulp_wdt_priv *priv = dev_get_priv(dev);
@@ -202,6 +178,7 @@ static int ulp_wdt_probe(struct udevice *dev)
static const struct wdt_ops ulp_wdt_ops = {
.start = ulp_wdt_start,
.reset = ulp_wdt_reset,
+ .expire_now = ulp_wdt_expire_now,
};
static const struct udevice_id ulp_wdt_ids[] = {
diff --git a/include/configs/imx8ulp_evk.h b/include/configs/imx8ulp_evk.h
index edfd6f70815..b4f80fb944b 100644
--- a/include/configs/imx8ulp_evk.h
+++ b/include/configs/imx8ulp_evk.h
@@ -30,6 +30,4 @@
#define PHYS_SDRAM 0x80000000
#define PHYS_SDRAM_SIZE 0x80000000 /* 2GB DDR */
-/* Using ULP WDOG for reset */
-#define WDOG_BASE_ADDR WDG3_RBASE
#endif
diff --git a/include/configs/imx91_evk.h b/include/configs/imx91_evk.h
index 9c5014fd0a5..13918e2b873 100644
--- a/include/configs/imx91_evk.h
+++ b/include/configs/imx91_evk.h
@@ -16,6 +16,4 @@
#define PHYS_SDRAM 0x80000000
#define PHYS_SDRAM_SIZE 0x80000000 /* 2GB DDR */
-#define WDOG_BASE_ADDR WDG3_BASE_ADDR
-
#endif
diff --git a/include/configs/imx91_frdm.h b/include/configs/imx91_frdm.h
index 6d051ed88a5..480b3fb477a 100644
--- a/include/configs/imx91_frdm.h
+++ b/include/configs/imx91_frdm.h
@@ -20,6 +20,4 @@
#define PHYS_SDRAM 0x80000000
#define PHYS_SDRAM_SIZE SZ_2G /* 2GB DDR */
-#define WDOG_BASE_ADDR WDG3_BASE_ADDR
-
#endif
diff --git a/include/configs/imx93_evk.h b/include/configs/imx93_evk.h
index ffd72a38bcb..67774f54790 100644
--- a/include/configs/imx93_evk.h
+++ b/include/configs/imx93_evk.h
@@ -26,7 +26,4 @@
#define PHYS_SDRAM 0x80000000
#define PHYS_SDRAM_SIZE 0x80000000 /* 2GB DDR */
-/* Using ULP WDOG for reset */
-#define WDOG_BASE_ADDR WDG3_BASE_ADDR
-
#endif
diff --git a/include/configs/imx93_frdm.h b/include/configs/imx93_frdm.h
index c98c10774cb..bcea360b399 100644
--- a/include/configs/imx93_frdm.h
+++ b/include/configs/imx93_frdm.h
@@ -20,7 +20,4 @@
#define PHYS_SDRAM 0x80000000
#define PHYS_SDRAM_SIZE 0x80000000 /* 2GB DDR */
-/* Using ULP WDOG for reset */
-#define WDOG_BASE_ADDR WDG3_BASE_ADDR
-
#endif
diff --git a/include/configs/imx93_qsb.h b/include/configs/imx93_qsb.h
index a7b94f7ab57..350f094c2a6 100644
--- a/include/configs/imx93_qsb.h
+++ b/include/configs/imx93_qsb.h
@@ -16,6 +16,4 @@
#define PHYS_SDRAM 0x80000000
#define PHYS_SDRAM_SIZE 0x80000000 /* 2GB DDR */
-#define WDOG_BASE_ADDR WDG3_BASE_ADDR
-
#endif
diff --git a/include/configs/imx93_var_som.h b/include/configs/imx93_var_som.h
index 9dc10aea407..6a425e6d1ea 100644
--- a/include/configs/imx93_var_som.h
+++ b/include/configs/imx93_var_som.h
@@ -38,7 +38,4 @@
#define CFG_SYS_FSL_USDHC_NUM 2
-/* Using ULP WDOG for reset */
-#define WDOG_BASE_ADDR WDG3_BASE_ADDR
-
#endif
diff --git a/include/configs/imx94_evk.h b/include/configs/imx94_evk.h
index f93c3c4e4a8..2623c13db06 100644
--- a/include/configs/imx94_evk.h
+++ b/include/configs/imx94_evk.h
@@ -18,7 +18,4 @@
#define PHYS_SDRAM_SIZE 0x70000000UL /* 2GB - 256MB DDR */
#define PHYS_SDRAM_2_SIZE 0x180000000 /* 8GB */
-/* Using ULP WDOG for reset */
-#define WDOG_BASE_ADDR WDG3_BASE_ADDR
-
#endif
diff --git a/include/configs/imx95_evk.h b/include/configs/imx95_evk.h
index 3d22740b3f4..1fdc9ce21ef 100644
--- a/include/configs/imx95_evk.h
+++ b/include/configs/imx95_evk.h
@@ -23,6 +23,4 @@
#define PHYS_SDRAM_2_SIZE 0x380000000 /* 14GB (Totally 16GB) */
#endif
-#define WDOG_BASE_ADDR WDG3_BASE_ADDR
-
#endif
diff --git a/include/configs/kontron-osm-s-mx93.h b/include/configs/kontron-osm-s-mx93.h
index ab2b42298c8..fed75e6fa12 100644
--- a/include/configs/kontron-osm-s-mx93.h
+++ b/include/configs/kontron-osm-s-mx93.h
@@ -25,6 +25,4 @@
#define CFG_MXC_USB_FLAGS 0
#endif
-#define WDOG_BASE_ADDR WDG3_BASE_ADDR
-
#endif /* __KONTRON_MX93_CONFIG_H */
diff --git a/include/configs/mx7ulp_com.h b/include/configs/mx7ulp_com.h
index d27e9d2eaa1..501c3059cc3 100644
--- a/include/configs/mx7ulp_com.h
+++ b/include/configs/mx7ulp_com.h
@@ -15,9 +15,6 @@
#include "imx7ulp_spl.h"
#endif
-/* Using ULP WDOG for reset */
-#define WDOG_BASE_ADDR WDG1_RBASE
-
#define CFG_SYS_HZ_CLOCK 1000000 /* Fixed at 1MHz from TSTMR */
/* UART */
diff --git a/include/configs/mx7ulp_evk.h b/include/configs/mx7ulp_evk.h
index ace1eee70cf..21dbec837f0 100644
--- a/include/configs/mx7ulp_evk.h
+++ b/include/configs/mx7ulp_evk.h
@@ -11,9 +11,6 @@
#include <linux/sizes.h>
#include <asm/arch/imx-regs.h>
-/* Using ULP WDOG for reset */
-#define WDOG_BASE_ADDR WDG1_RBASE
-
#define CFG_SYS_HZ_CLOCK 1000000 /* Fixed at 1Mhz from TSTMR */
/* UART */
diff --git a/include/configs/phycore_imx91_93.h b/include/configs/phycore_imx91_93.h
index 02fa1d9b274..d1bf086546f 100644
--- a/include/configs/phycore_imx91_93.h
+++ b/include/configs/phycore_imx91_93.h
@@ -22,7 +22,4 @@
#define PHYS_SDRAM 0x80000000
#define PHYS_SDRAM_SIZE 0x80000000
-/* Using ULP WDOG for reset */
-#define WDOG_BASE_ADDR WDG3_BASE_ADDR
-
#endif /* __PHYCORE_IMX91_93_H */
diff --git a/include/configs/toradex-smarc-imx95.h b/include/configs/toradex-smarc-imx95.h
index e1aebd70af2..8a880b96503 100644
--- a/include/configs/toradex-smarc-imx95.h
+++ b/include/configs/toradex-smarc-imx95.h
@@ -19,6 +19,4 @@
#define PHYS_SDRAM_SIZE (SZ_2G - SZ_256M)
#define PHYS_SDRAM_2_SIZE SZ_6G
-#define WDOG_BASE_ADDR WDG3_BASE_ADDR
-
#endif
diff --git a/include/configs/tqma6ul.h b/include/configs/tqma6ul.h
new file mode 100644
index 00000000000..89bd8102500
--- /dev/null
+++ b/include/configs/tqma6ul.h
@@ -0,0 +1,53 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/*
+ * Copyright (c) 2016-2026 TQ-Systems GmbH <[email protected]>,
+ * D-82229 Seefeld, Germany.
+ * Author: Marco Felsch, Nora Schiffer, Max Merchel
+ *
+ * Configuration settings for the TQ-Systems TQMa6UL[L]x[L] SOM family.
+ */
+
+#ifndef __TQMA6UL_CONFIG_H
+#define __TQMA6UL_CONFIG_H
+
+#include <linux/build_bug.h>
+
+#include "mx6_common.h"
+
+#define TQMA6UL_MMC_UBOOT_SECTOR_START 0x2
+#define TQMA6UL_MMC_UBOOT_SECTOR_COUNT 0x7fe
+
+#define TQMA6UL_SPI_FLASH_SECTOR_SIZE SZ_64K
+#define TQMA6UL_SPI_UBOOT_START SZ_4K
+#define TQMA6UL_SPI_UBOOT_SIZE 0xf0000
+
+/* 128 MiB offset as suggested in ARM related Linux docs */
+#define TQMA6UL_FDT_ADDRESS 0x88000000
+
+/* 256KiB above TQMA6UL_FDT_ADDRESS (TQMA6UL_FDT_ADDRESS + SZ_256K) */
+#define TQMA6UL_FDT_OVERLAY_ADDR 0x88040000
+
+/* 16MiB above TQMA6UL_FDT_ADDRESS (TQMA6UL_FDT_ADDRESS + SZ_16M) */
+#define TQMA6UL_INITRD_ADDRESS 0x89000000
+
+#ifndef __ASSEMBLY__
+static_assert(TQMA6UL_FDT_OVERLAY_ADDR == (TQMA6UL_FDT_ADDRESS + SZ_256K));
+static_assert(TQMA6UL_INITRD_ADDRESS == (TQMA6UL_FDT_ADDRESS + SZ_16M));
+#endif
+
+/* Physical Memory Map */
+#define PHYS_SDRAM MMDC0_ARB_BASE_ADDR
+
+#define CFG_SYS_SDRAM_BASE PHYS_SDRAM
+#define CFG_SYS_INIT_RAM_ADDR IRAM_BASE_ADDR
+#define CFG_SYS_INIT_RAM_SIZE IRAM_SIZE
+
+/* u-boot.img base address for SPI-NOR boot */
+#define CFG_SYS_UBOOT_BASE (QSPI0_AMBA_BASE + SZ_4K + CONFIG_SPL_PAD_TO)
+
+#define CFG_SYS_INIT_SP_OFFSET \
+ (CFG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE)
+#define CFG_SYS_INIT_SP_ADDR \
+ (CFG_SYS_INIT_RAM_ADDR + CFG_SYS_INIT_SP_OFFSET)
+
+#endif /* __TQMA6UL_CONFIG_H */
diff --git a/include/configs/tqma6ul_mba6ul.h b/include/configs/tqma6ul_mba6ul.h
new file mode 100644
index 00000000000..b7a31b5ce26
--- /dev/null
+++ b/include/configs/tqma6ul_mba6ul.h
@@ -0,0 +1,19 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/*
+ * Copyright (c) 2016-2026 TQ-Systems GmbH <[email protected]>,
+ * D-82229 Seefeld, Germany.
+ * Author: Markus Niebel, Nora Schiffer, Max Merchel
+ *
+ * Configuration settings for the TQ-Systems MBa6ULx carrier board for
+ * TQMa6UL[L]x[L] SOM family.
+ */
+
+#ifndef __CONFIG_TQMA6UL_MBA6UL_H
+#define __CONFIG_TQMA6UL_MBA6UL_H
+
+#include "tqma6ul.h"
+
+#define CFG_MXC_UART_BASE UART1_BASE
+#define CFG_SYS_FSL_ESDHC_ADDR 0
+
+#endif /* __CONFIG_TQMA6UL_MBA6UL_H */
diff --git a/include/sysinfo.h b/include/sysinfo.h
index 54eb64a204a..7ca396b2ee4 100644
--- a/include/sysinfo.h
+++ b/include/sysinfo.h
@@ -374,6 +374,18 @@ int sysinfo_get_data_by_index(struct udevice *dev, int id, int index,
int sysinfo_get(struct udevice **devp);
/**
+ * sysinfo_get_and_detect() - Get the sysinfo device and detect it.
+ *
+ * @devp: Pointer to structure to receive the sysinfo device.
+ *
+ * This is a convenience wrapper around sysinfo_get() followed by
+ * sysinfo_detect()
+ *
+ * Return: 0 if OK, -ve on error.
+ */
+int sysinfo_get_and_detect(struct udevice **devp);
+
+/**
* sysinfo_get_fit_loadable - Get the name of an image to load from FIT
* This function can be used to provide the image names based on runtime
* detection. A classic use-case would when DTBOs are used to describe
@@ -438,6 +450,11 @@ static inline int sysinfo_get(struct udevice **devp)
return -ENOSYS;
}
+static inline int sysinfo_get_and_detect(struct udevice **devp)
+{
+ return -ENOSYS;
+}
+
static inline int sysinfo_get_fit_loadable(struct udevice *dev, int index,
const char *type, const char **strp)
{
diff --git a/include/sysinfo/tq_eeprom.h b/include/sysinfo/tq_eeprom.h
new file mode 100644
index 00000000000..6b1bddd7ce0
--- /dev/null
+++ b/include/sysinfo/tq_eeprom.h
@@ -0,0 +1,24 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/*
+ * Copyright (c) 2023-2026 TQ-Systems GmbH <[email protected]>,
+ * D-82229 Seefeld, Germany.
+ * Author: Nora Schiffer
+ */
+
+#ifndef __SYSINFO_TQ_EEPROM_H__
+#define __SYSINFO_TQ_EEPROM_H__
+
+#include <sysinfo.h>
+
+enum {
+ /* Model string of TQ-Systems SOM. This is different from BOARD_MODEL,
+ * which usually combines SOM and baseboard names for TQ hardware
+ */
+ SYSID_TQ_MODEL = SYSID_USER,
+ /* SOM serial number */
+ SYSID_TQ_SERIAL,
+ /* MAC address */
+ SYSID_TQ_MAC_ADDR,
+};
+
+#endif /* __SYSINFO_TQ_EEPROM_H__ */
diff --git a/test/dm/sysinfo.c b/test/dm/sysinfo.c
index 14ebe6b42e7..611f2e98d14 100644
--- a/test/dm/sysinfo.c
+++ b/test/dm/sysinfo.c
@@ -66,3 +66,19 @@ static int dm_test_sysinfo(struct unit_test_state *uts)
return 0;
}
DM_TEST(dm_test_sysinfo, UTF_SCAN_PDATA | UTF_SCAN_FDT);
+
+static int dm_test_sysinfo_get_and_detect(struct unit_test_state *uts)
+{
+ struct udevice *sysinfo;
+ bool called_detect = false;
+
+ ut_assertok(sysinfo_get_and_detect(&sysinfo));
+ ut_assert(sysinfo);
+
+ ut_assertok(sysinfo_get_bool(sysinfo, BOOL_CALLED_DETECT,
+ &called_detect));
+ ut_assert(called_detect);
+
+ return 0;
+}
+DM_TEST(dm_test_sysinfo_get_and_detect, UTF_SCAN_PDATA | UTF_SCAN_FDT);