[PATCH v2 13/16] imx28: synchronise device tree with linux

Marcel Ziswiler marcel at ziswiler.com
Sat Oct 22 23:59:42 CEST 2022


From: Marcel Ziswiler <marcel.ziswiler at toradex.com>

Synchronise device tree with linux v6.0-rc1.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler at toradex.com>

---

Changes in v2:
- Add missing imx28-lwe.dtsi as pointed out by Fabio. Thanks!

 arch/arm/dts/imx28-evk.dts   |   2 +-
 arch/arm/dts/imx28-lwe.dtsi  | 170 +++++++++++++++++++++++++++++++
 arch/arm/dts/imx28-pinfunc.h |   8 +-
 arch/arm/dts/imx28-xea.dts   | 188 ++++++++++++++---------------------
 arch/arm/dts/imx28.dtsi      |  20 +++-
 arch/arm/dts/mxs-pinfunc.h   |   8 +-
 6 files changed, 261 insertions(+), 135 deletions(-)
 create mode 100644 arch/arm/dts/imx28-lwe.dtsi

diff --git a/arch/arm/dts/imx28-evk.dts b/arch/arm/dts/imx28-evk.dts
index 7e2b0f198d..1053b7c584 100644
--- a/arch/arm/dts/imx28-evk.dts
+++ b/arch/arm/dts/imx28-evk.dts
@@ -129,7 +129,7 @@
 				pinctrl-0 = <&spi2_pins_a>;
 				status = "okay";
 
-				flash: m25p80 at 0 {
+				flash: flash at 0 {
 					#address-cells = <1>;
 					#size-cells = <1>;
 					compatible = "sst,sst25vf016b", "jedec,spi-nor";
diff --git a/arch/arm/dts/imx28-lwe.dtsi b/arch/arm/dts/imx28-lwe.dtsi
new file mode 100644
index 0000000000..bb971e660d
--- /dev/null
+++ b/arch/arm/dts/imx28-lwe.dtsi
@@ -0,0 +1,170 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2021
+ * Lukasz Majewski, DENX Software Engineering, lukma at denx.de
+ */
+
+/dts-v1/;
+#include "imx28.dtsi"
+
+/ {
+	aliases {
+		spi2 = &ssp3;
+	};
+
+	chosen {
+		bootargs = "root=/dev/mmcblk0p2 rootfstype=ext4 ro rootwait console=ttyAMA0,115200 panic=1";
+	};
+
+	memory at 40000000 {
+		reg = <0x40000000 0x08000000>;
+	};
+
+	reg_3v3: regulator-reg-3v3 {
+		compatible = "regulator-fixed";
+		regulator-name = "3V3";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+	};
+
+	reg_usb_5v: regulator-reg-usb-5v {
+		compatible = "regulator-fixed";
+		regulator-name = "usb_vbus";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+	};
+
+	reg_fec_3v3: regulator-reg-fec-3v3 {
+		compatible = "regulator-fixed";
+		regulator-name = "fec-phy";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+	};
+};
+
+&duart {
+	pinctrl-names = "default";
+	pinctrl-0 = <&duart_pins_a>;
+	status = "okay";
+};
+
+&i2c0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&i2c0_pins_a>;
+	status = "okay";
+};
+
+&saif0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&saif0_pins_a>;
+	#sound-dai-cells = <0>;
+	assigned-clocks = <&clks 53>;
+	assigned-clock-rates = <12000000>;
+	status = "okay";
+};
+
+&saif1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&saif1_pins_a>;
+	fsl,saif-master = <&saif0>;
+	#sound-dai-cells = <0>;
+	status = "okay";
+};
+
+&spi3_pins_a {
+	fsl,pinmux-ids = <
+		MX28_PAD_AUART2_RX__SSP3_D4
+		MX28_PAD_AUART2_TX__SSP3_D5
+		MX28_PAD_SSP3_SCK__SSP3_SCK
+		MX28_PAD_SSP3_MOSI__SSP3_CMD
+		MX28_PAD_SSP3_MISO__SSP3_D0
+		MX28_PAD_SSP3_SS0__SSP3_D3
+		MX28_PAD_AUART2_TX__GPIO_3_9
+	>;
+};
+
+&ssp0 {
+	compatible = "fsl,imx28-mmc";
+	pinctrl-names = "default";
+	pinctrl-0 = <&mmc0_8bit_pins_a>;
+	bus-width = <8>;
+	vmmc-supply = <&reg_3v3>;
+	non-removable;
+	status = "okay";
+};
+
+&ssp2 {
+	compatible = "fsl,imx28-spi";
+	pinctrl-names = "default";
+	pinctrl-0 = <&spi2_pins_a>;
+	status = "okay";
+};
+
+&ssp3 {
+	compatible = "fsl,imx28-spi";
+	pinctrl-names = "default";
+	pinctrl-0 = <&spi3_pins_a>;
+	status = "okay";
+
+	flash at 0 {
+		compatible = "jedec,spi-nor";
+		spi-max-frequency = <40000000>;
+		reg = <0>;
+
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition at 0 {
+				label = "u-boot";
+				reg = <0 0x80000>;
+				read-only;
+			};
+
+			partition at 80000 {
+				label = "env0";
+				reg = <0x80000 0x10000>;
+			};
+
+			partition at 90000 {
+				label = "env1";
+				reg = <0x90000 0x10000>;
+			};
+
+			partition at 100000 {
+				label = "kernel";
+				reg = <0x100000 0x400000>;
+			};
+
+			partition at 500000 {
+				label = "swupdate";
+				reg = <0x500000 0x800000>;
+			};
+		};
+	};
+};
+
+&usb0 {
+	vbus-supply = <&reg_usb_5v>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&usb0_pins_b>, <&usb0_id_pins_a>;
+	dr_mode = "host";
+	status = "okay";
+};
+
+&usbphy0 {
+	status = "okay";
+};
+
+&usb1 {
+	vbus-supply = <&reg_usb_5v>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&usb1_pins_b>;
+	dr_mode = "host";
+	status = "okay";
+};
+
+&usbphy1 {
+	status = "okay";
+};
diff --git a/arch/arm/dts/imx28-pinfunc.h b/arch/arm/dts/imx28-pinfunc.h
index e11f69ba0f..d427e6c2fa 100644
--- a/arch/arm/dts/imx28-pinfunc.h
+++ b/arch/arm/dts/imx28-pinfunc.h
@@ -1,14 +1,8 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
 /*
  * Header providing constants for i.MX28 pinctrl bindings.
  *
  * Copyright (C) 2013 Lothar Waßmann <LW at KARO-electronics.de>
- *
- * The code contained herein is licensed under the GNU General Public
- * License. You may obtain a copy of the GNU General Public License
- * Version 2 at the following locations:
- *
- * http://www.opensource.org/licenses/gpl-license.html
- * http://www.gnu.org/copyleft/gpl.html
  */
 
 #ifndef __DT_BINDINGS_MX28_PINCTRL_H__
diff --git a/arch/arm/dts/imx28-xea.dts b/arch/arm/dts/imx28-xea.dts
index f4b503cf65..a400c108f6 100644
--- a/arch/arm/dts/imx28-xea.dts
+++ b/arch/arm/dts/imx28-xea.dts
@@ -1,143 +1,99 @@
-// SPDX-License-Identifier: GPL-2.0+
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
 /*
- * Copyright 2019
+ * Copyright 2021
  * Lukasz Majewski, DENX Software Engineering, lukma at denx.de
- *
- * SPDX-License-Identifier:     GPL-2.0+ or X11
- *
  */
 
 /dts-v1/;
-
-#include "imx28.dtsi"
+#include "imx28-lwe.dtsi"
 
 / {
-	model = "Liebherr (LWE) XEA i.MX28 Board";
-	compatible = "lwe,xea", "fsl,imx28";
-
-	aliases {
-		spi3 = &ssp3;
-	};
-
-	memory at 40000000 {
-		device_type = "memory";
-		reg = <0x40000000 0x10000000>;
-	};
-
-	reg_3p3v: regulator-3p3v {
-		compatible = "regulator-fixed";
-		regulator-name = "3P3V";
-		regulator-min-microvolt = <3300000>;
-		regulator-max-microvolt = <3300000>;
-		regulator-always-on;
-	};
-
-	reg_fec_3v3: regulator-fec-3v3 {
-		compatible = "regulator-fixed";
-		regulator-name = "fec-3v3";
-		regulator-min-microvolt = <3300000>;
-		regulator-max-microvolt = <3300000>;
-		gpio = <&gpio0 0 GPIO_ACTIVE_HIGH>;
-		enable-active-high;
-		regulator-boot-on;
-	};
-
-	reg_usb_5v: regulator-usb-5v {
-		compatible = "regulator-fixed";
-		regulator-name = "usb_vbus";
-		regulator-min-microvolt = <5000000>;
-		regulator-max-microvolt = <5000000>;
-		gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>;
-		enable-active-high;
-	};
+	compatible = "lwn,imx28-xea", "fsl,imx28";
 };
 
-&mac0 {
-	phy-mode = "rmii";
+&can0 {
 	pinctrl-names = "default";
-	pinctrl-0 = <&mac0_pins_a>;
-	phy-supply = <&reg_fec_3v3>;
-	phy-reset-gpios = <&gpio2 13 GPIO_ACTIVE_LOW>;
-	phy-reset-duration = <1>;
-	phy-reset-post-delay = <1>;
+	pinctrl-0 = <&can1_pins_a>;
 	status = "okay";
-
-	fixed-link {
-	      speed = <100>;
-	      full-duplex;
-	};
 };
 
-&ssp0 {
-	compatible = "fsl,imx28-mmc";
+&i2c1 {
 	pinctrl-names = "default";
-	pinctrl-0 = <&mmc0_8bit_pins_a>;
-	bus-width = <8>;
-	vmmc-supply = <&reg_3p3v>;
-	non-removable;
+	pinctrl-0 = <&i2c1_pins_b>;
 	status = "okay";
 };
 
-&ssp3 {
-	#address-cells = <1>;
-	#size-cells = <0>;
-	compatible = "fsl,imx28-spi";
+&pinctrl {
 	pinctrl-names = "default";
-	pinctrl-0 = <&spi3_pins_b>;
-	status = "okay";
-	spi-max-frequency = <40000000>;
-	num-cs = <2>;
+	pinctrl-0 = <&hog_pins_a &hog_pins_tiva>;
 
-	flash0: s25fl256s at 0 {
-		#address-cells = <1>;
-		#size-cells = <1>;
-		compatible = "jedec,spi-nor";
-		spi-max-frequency = <40000000>;
+	hog_pins_a: hog at 0 {
 		reg = <0>;
+		fsl,pinmux-ids = <
+			MX28_PAD_GPMI_D00__GPIO_0_0
+			MX28_PAD_GPMI_D02__GPIO_0_2
+			MX28_PAD_GPMI_D05__GPIO_0_5
+			MX28_PAD_GPMI_CE1N__GPIO_0_17
+			MX28_PAD_GPMI_RDY0__GPIO_0_20
+			MX28_PAD_GPMI_RDY1__GPIO_0_21
+			MX28_PAD_GPMI_RDY2__GPIO_0_22
+			MX28_PAD_GPMI_RDN__GPIO_0_24
+			MX28_PAD_GPMI_CLE__GPIO_0_27
+			MX28_PAD_LCD_VSYNC__GPIO_1_28
+			MX28_PAD_SSP1_SCK__GPIO_2_12
+			MX28_PAD_SSP1_CMD__GPIO_2_13
+			MX28_PAD_SSP2_SS1__GPIO_2_20
+			MX28_PAD_SSP2_SS2__GPIO_2_21
+			MX28_PAD_LCD_D00__GPIO_1_0
+			MX28_PAD_LCD_D01__GPIO_1_1
+			MX28_PAD_LCD_D02__GPIO_1_2
+			MX28_PAD_LCD_D03__GPIO_1_3
+			MX28_PAD_LCD_D04__GPIO_1_4
+			MX28_PAD_LCD_D05__GPIO_1_5
+			MX28_PAD_LCD_D06__GPIO_1_6
+		>;
+		fsl,drive-strength = <MXS_DRIVE_4mA>;
+		fsl,voltage = <MXS_VOLTAGE_HIGH>;
+		fsl,pull-up = <MXS_PULL_DISABLE>;
+	};
+
+	hog_pins_tiva: hog at 1 {
+		reg = <1>;
+		fsl,pinmux-ids = <
+			MX28_PAD_GPMI_RDY3__GPIO_0_23
+			MX28_PAD_GPMI_WRN__GPIO_0_25
+		>;
+		fsl,voltage = <MXS_VOLTAGE_HIGH>;
+		fsl,pull-up = <MXS_PULL_DISABLE>;
+	};
 
-		partitions {
-			compatible = "fixed-partitions";
-			#address-cells = <1>;
-			#size-cells = <1>;
-			partition at 0 {
-				    label = "SPL";
-				    reg = <0x0 0x10000>;
-				    read-only;
-			};
-			partition at 10000 {
-				    label = "u-boot";
-				    reg = <0x10000 0x70000>;
-				    read-only;
-			};
-			partition at 80000 {
-				    label = "uboot-env1";
-				    reg = <0x80000 0x10000>;
-			};
-			partition at 90000 {
-				    label = "uboot-env2";
-				    reg = <0x90000 0x10000>;
-			};
-			partition at A0000 {
-				    label = "rescue";
-				    reg = <0xA0000 0xF40000>;
-			};
-			partition at FE0000 {
-				    label = "spl-boot-data1";
-				    reg = <0xFE0000 0x10000>;
-			};
-			partition at FF0000 {
-				    label = "spl-boot-data2";
-				    reg = <0xFF0000 0x10000>;
-			};
-		};
+	hog_pins_coding: hog at 2 {
+		reg = <2>;
+		fsl,pinmux-ids = <
+			MX28_PAD_GPMI_D01__GPIO_0_1
+			MX28_PAD_GPMI_D03__GPIO_0_3
+			MX28_PAD_GPMI_D04__GPIO_0_4
+			MX28_PAD_GPMI_D06__GPIO_0_6
+			MX28_PAD_GPMI_D07__GPIO_0_7
+		>;
+		fsl,voltage = <MXS_VOLTAGE_HIGH>;
+		fsl,pull-up = <MXS_PULL_DISABLE>;
 	};
 };
 
-&usb0 {
-	vbus-supply = <&reg_usb_5v>;
-	status = "okay";
+&reg_fec_3v3 {
+	gpio = <&gpio0 0 0>;
 };
 
-&usbphy0 {
-	status = "okay";
+&reg_usb_5v {
+	gpio = <&gpio0 2 0>;
+};
+
+&spi2_pins_a {
+	fsl,pinmux-ids = <
+		MX28_PAD_SSP2_SCK__SSP2_SCK
+		MX28_PAD_SSP2_MOSI__SSP2_CMD
+		MX28_PAD_SSP2_MISO__SSP2_D0
+		MX28_PAD_SSP2_SS0__GPIO_2_19
+	>;
 };
diff --git a/arch/arm/dts/imx28.dtsi b/arch/arm/dts/imx28.dtsi
index e14d8ef015..130b4145af 100644
--- a/arch/arm/dts/imx28.dtsi
+++ b/arch/arm/dts/imx28.dtsi
@@ -100,7 +100,7 @@
 				status = "disabled";
 			};
 
-			gpmi: gpmi-nand at 8000c000 {
+			gpmi: nand-controller at 8000c000 {
 				compatible = "fsl,imx28-gpmi-nand";
 				#address-cells = <1>;
 				#size-cells = <1>;
@@ -110,6 +110,8 @@
 				interrupt-names = "bch";
 				clocks = <&clks 50>;
 				clock-names = "gpmi_io";
+				assigned-clocks = <&clks 13>;
+				assigned-clock-parents = <&clks 10>;
 				dmas = <&dma_apbh 4>;
 				dma-names = "rx-tx";
 				status = "disabled";
@@ -948,6 +950,16 @@
 					fsl,pull-up = <MXS_PULL_DISABLE>;
 				};
 
+				usb1_pins_b: usb1 at 1 {
+					reg = <1>;
+					fsl,pinmux-ids = <
+						MX28_PAD_PWM2__USB1_OVERCURRENT
+					>;
+					fsl,drive-strength = <MXS_DRIVE_12mA>;
+					fsl,voltage = <MXS_VOLTAGE_HIGH>;
+					fsl,pull-up = <MXS_PULL_DISABLE>;
+				};
+
 				usb0_id_pins_a: usb0id at 0 {
 					reg = <0>;
 					fsl,pinmux-ids = <
@@ -998,7 +1010,7 @@
 				clocks = <&clks 26>;
 			};
 
-			dcp: dcp at 80028000 {
+			dcp: crypto at 80028000 {
 				compatible = "fsl,imx28-dcp", "fsl,imx23-dcp";
 				reg = <0x80028000 0x2000>;
 				interrupts = <52 53 54>;
@@ -1011,7 +1023,7 @@
 				status = "disabled";
 			};
 
-			ocotp: ocotp at 8002c000 {
+			ocotp: efuse at 8002c000 {
 				compatible = "fsl,imx28-ocotp", "fsl,ocotp";
 				#address-cells = <1>;
 				#size-cells = <1>;
@@ -1317,7 +1329,7 @@
 			status = "disabled";
 		};
 
-		etn_switch: switch at 800f8000 {
+		eth_switch: switch at 800f8000 {
 			reg = <0x800f8000 0x8000>;
 			status = "disabled";
 		};
diff --git a/arch/arm/dts/mxs-pinfunc.h b/arch/arm/dts/mxs-pinfunc.h
index c6da987b20..31297abcbc 100644
--- a/arch/arm/dts/mxs-pinfunc.h
+++ b/arch/arm/dts/mxs-pinfunc.h
@@ -1,14 +1,8 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
 /*
  * Header providing constants for i.MX28 pinctrl bindings.
  *
  * Copyright (C) 2013 Lothar Waßmann <LW at KARO-electronics.de>
- *
- * The code contained herein is licensed under the GNU General Public
- * License. You may obtain a copy of the GNU General Public License
- * Version 2 at the following locations:
- *
- * http://www.opensource.org/licenses/gpl-license.html
- * http://www.gnu.org/copyleft/gpl.html
  */
 
 #ifndef __DT_BINDINGS_MXS_PINCTRL_H__
-- 
2.35.1



More information about the U-Boot mailing list