All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] [RFC] ARM: dts: stm32: Add DTs for STM32MP15x variants of the DH SOM and PDK2
@ 2020-03-23  2:31 Marek Vasut
  2020-03-24 13:04 ` Alexandre Torgue
  0 siblings, 1 reply; 11+ messages in thread
From: Marek Vasut @ 2020-03-23  2:31 UTC (permalink / raw)
  To: linux-arm-kernel
  Cc: Marek Vasut, Alexandre Torgue, Patrice Chotard, Patrick Delaunay,
	Maxime Coquelin, linux-stm32

The DH PDK2 can be populated with SoM with any STM32MP15x variant.
Add the DTs describing the remaining combinations.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Alexandre Torgue <alexandre.torgue@st.com>
Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com>
Cc: Patrice Chotard <patrice.chotard@st.com>
Cc: Patrick Delaunay <patrick.delaunay@st.com>
Cc: linux-stm32@st-md-mailman.stormreply.com
To: linux-arm-kernel@lists.infradead.org
---
NOTE: Is there a better way to do this than to have this kind of a
	combinatorial explosion of DTs ?
---
 arch/arm/boot/dts/Makefile                    |   2 +
 arch/arm/boot/dts/stm32mp151c-dhcom-pdk2.dts  |   8 +
 arch/arm/boot/dts/stm32mp151c-dhcom-som.dtsi  |   8 +
 arch/arm/boot/dts/stm32mp153c-dhcom-pdk2.dts  |  15 +
 arch/arm/boot/dts/stm32mp153c-dhcom-som.dtsi  |   8 +
 arch/arm/boot/dts/stm32mp157c-dhcom-pdk2.dts  | 256 +------------
 arch/arm/boot/dts/stm32mp157c-dhcom-som.dtsi  | 360 +----------------
 arch/arm/boot/dts/stm32mp15xc-dhcom-pdk2.dtsi | 257 +++++++++++++
 arch/arm/boot/dts/stm32mp15xx-dhcom-som.dtsi  | 361 ++++++++++++++++++
 9 files changed, 664 insertions(+), 611 deletions(-)
 create mode 100644 arch/arm/boot/dts/stm32mp151c-dhcom-pdk2.dts
 create mode 100644 arch/arm/boot/dts/stm32mp151c-dhcom-som.dtsi
 create mode 100644 arch/arm/boot/dts/stm32mp153c-dhcom-pdk2.dts
 create mode 100644 arch/arm/boot/dts/stm32mp153c-dhcom-som.dtsi
 create mode 100644 arch/arm/boot/dts/stm32mp15xc-dhcom-pdk2.dtsi
 create mode 100644 arch/arm/boot/dts/stm32mp15xx-dhcom-som.dtsi

diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 55e1e54e245e..f6710f1a1bbc 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -1020,6 +1020,8 @@ dtb-$(CONFIG_ARCH_STM32) += \
 	stm32746g-eval.dtb \
 	stm32h743i-eval.dtb \
 	stm32h743i-disco.dtb \
+	stm32mp151c-dhcom-pdk2.dtb \
+	stm32mp153c-dhcom-pdk2.dtb \
 	stm32mp157a-avenger96.dtb \
 	stm32mp157a-dk1.dtb \
 	stm32mp157c-dhcom-pdk2.dtb \
diff --git a/arch/arm/boot/dts/stm32mp151c-dhcom-pdk2.dts b/arch/arm/boot/dts/stm32mp151c-dhcom-pdk2.dts
new file mode 100644
index 000000000000..196a6bddfcf0
--- /dev/null
+++ b/arch/arm/boot/dts/stm32mp151c-dhcom-pdk2.dts
@@ -0,0 +1,8 @@
+// SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
+/*
+ * Copyright (C) 2020 Marek Vasut <marex@denx.de>
+ */
+/dts-v1/;
+
+#include "stm32mp151c-dhcom-som.dtsi"
+#include "stm32mp15xc-dhcom-pdk2.dtsi"
diff --git a/arch/arm/boot/dts/stm32mp151c-dhcom-som.dtsi b/arch/arm/boot/dts/stm32mp151c-dhcom-som.dtsi
new file mode 100644
index 000000000000..7754b6d74e16
--- /dev/null
+++ b/arch/arm/boot/dts/stm32mp151c-dhcom-som.dtsi
@@ -0,0 +1,8 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) 2020 Marek Vasut <marex@denx.de>
+ */
+
+#include "stm32mp151.dtsi"
+#include "stm32mp15xc.dtsi"
+#include "stm32mp15xx-dhcom-som.dtsi"
diff --git a/arch/arm/boot/dts/stm32mp153c-dhcom-pdk2.dts b/arch/arm/boot/dts/stm32mp153c-dhcom-pdk2.dts
new file mode 100644
index 000000000000..4f114b4f075a
--- /dev/null
+++ b/arch/arm/boot/dts/stm32mp153c-dhcom-pdk2.dts
@@ -0,0 +1,15 @@
+// SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
+/*
+ * Copyright (C) 2020 Marek Vasut <marex@denx.de>
+ */
+/dts-v1/;
+
+#include "stm32mp153c-dhcom-som.dtsi"
+#include "stm32mp15xc-dhcom-pdk2.dtsi"
+
+&m_can1 {
+	pinctrl-names = "default", "sleep";
+	pinctrl-0 = <&m_can1_pins_a>;
+	pinctrl-1 = <&m_can1_sleep_pins_a>;
+	status = "okay";
+};
diff --git a/arch/arm/boot/dts/stm32mp153c-dhcom-som.dtsi b/arch/arm/boot/dts/stm32mp153c-dhcom-som.dtsi
new file mode 100644
index 000000000000..111fe9419f05
--- /dev/null
+++ b/arch/arm/boot/dts/stm32mp153c-dhcom-som.dtsi
@@ -0,0 +1,8 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) 2020 Marek Vasut <marex@denx.de>
+ */
+
+#include "stm32mp153.dtsi"
+#include "stm32mp15xc.dtsi"
+#include "stm32mp15xx-dhcom-som.dtsi"
diff --git a/arch/arm/boot/dts/stm32mp157c-dhcom-pdk2.dts b/arch/arm/boot/dts/stm32mp157c-dhcom-pdk2.dts
index af99e132e1b1..e65869ab35f1 100644
--- a/arch/arm/boot/dts/stm32mp157c-dhcom-pdk2.dts
+++ b/arch/arm/boot/dts/stm32mp157c-dhcom-pdk2.dts
@@ -1,161 +1,11 @@
 // SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
 /*
- * Copyright (C) 2019 Marek Vasut <marex@denx.de>
+ * Copyright (C) 2019-2020 Marek Vasut <marex@denx.de>
  */
+/dts-v1/;
 
 #include "stm32mp157c-dhcom-som.dtsi"
-#include <dt-bindings/pwm/pwm.h>
-
-/ {
-	model = "STMicroelectronics STM32MP157C DHCOM Premium Developer Kit (2)";
-	compatible = "dh,stm32mp157c-dhcom-pdk2", "st,stm32mp157";
-
-	aliases {
-		serial0 = &uart4;
-		serial1 = &usart3;
-		serial2 = &uart8;
-		ethernet0 = &ethernet0;
-	};
-
-	chosen {
-		stdout-path = "serial0:115200n8";
-	};
-
-	clk_ext_audio_codec: clock-codec {
-		compatible = "fixed-clock";
-		#clock-cells = <0>;
-		clock-frequency = <24000000>;
-	};
-
-	display_bl: display-bl {
-		compatible = "pwm-backlight";
-		pwms = <&pwm2 0 500000 PWM_POLARITY_INVERTED>;
-		brightness-levels = <0 16 22 30 40 55 75 102 138 188 255>;
-		default-brightness-level = <8>;
-		enable-gpios = <&gpioi 0 GPIO_ACTIVE_HIGH>;
-		status = "okay";
-	};
-
-	ethernet_vio: vioregulator {
-		compatible = "regulator-fixed";
-		regulator-name = "vio";
-		regulator-min-microvolt = <3300000>;
-		regulator-max-microvolt = <3300000>;
-		gpio = <&gpiog 3 GPIO_ACTIVE_LOW>;
-		regulator-always-on;
-		regulator-boot-on;
-	};
-
-	panel {
-		compatible = "edt,etm0700g0edh6";
-		backlight = <&display_bl>;
-
-		port {
-			lcd_panel_in: endpoint {
-				remote-endpoint = <&lcd_display_out>;
-			};
-		};
-	};
-
-	sound {
-		compatible = "audio-graph-card";
-		routing =
-			"MIC_IN", "Capture",
-			"Capture", "Mic Bias",
-			"Playback", "HP_OUT";
-		dais = <&sai2a_port &sai2b_port>;
-		status = "okay";
-	};
-};
-
-&cec {
-	pinctrl-names = "default";
-	pinctrl-0 = <&cec_pins_a>;
-	status = "okay";
-};
-
-&ethernet0 {
-	status = "okay";
-	pinctrl-0 = <&ethernet0_rmii_pins_a>;
-	pinctrl-1 = <&ethernet0_rmii_pins_sleep_a>;
-	pinctrl-names = "default", "sleep";
-	phy-mode = "rmii";
-	max-speed = <100>;
-	phy-handle = <&phy0>;
-	st,eth-ref-clk-sel;
-	phy-reset-gpios = <&gpioh 15 GPIO_ACTIVE_LOW>;
-
-	mdio0 {
-		#address-cells = <1>;
-		#size-cells = <0>;
-		compatible = "snps,dwmac-mdio";
-
-		phy0: ethernet-phy@1 {
-			reg = <1>;
-		};
-	};
-};
-
-&i2c5 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&i2c5_pins_a>;
-	i2c-scl-rising-time-ns = <185>;
-	i2c-scl-falling-time-ns = <20>;
-	status = "okay";
-	/* spare dmas for other usage */
-	/delete-property/dmas;
-	/delete-property/dma-names;
-
-	sgtl5000: codec@a {
-		compatible = "fsl,sgtl5000";
-		reg = <0x0a>;
-		#sound-dai-cells = <0>;
-		clocks = <&clk_ext_audio_codec>;
-		VDDA-supply = <&v3v3>;
-		VDDIO-supply = <&vdd>;
-
-		sgtl5000_port: port {
-			#address-cells = <1>;
-			#size-cells = <0>;
-
-			sgtl5000_tx_endpoint: endpoint@0 {
-				reg = <0>;
-				remote-endpoint = <&sai2a_endpoint>;
-				frame-master;
-				bitclock-master;
-			};
-
-			sgtl5000_rx_endpoint: endpoint@1 {
-				reg = <1>;
-				remote-endpoint = <&sai2b_endpoint>;
-				frame-master;
-				bitclock-master;
-			};
-		};
-
-	};
-
-	polytouch@38 {
-		compatible = "edt,edt-ft5x06";
-		reg = <0x38>;
-		interrupt-parent = <&gpiog>;
-		interrupts = <2 IRQ_TYPE_EDGE_FALLING>; /* GPIO E */
-		linux,wakeup;
-	};
-};
-
-&ltdc {
-	pinctrl-names = "default", "sleep";
-	pinctrl-0 = <&ltdc_pins_b>;
-	pinctrl-1 = <&ltdc_pins_sleep_b>;
-	status = "okay";
-
-	port {
-		lcd_display_out: endpoint {
-			remote-endpoint = <&lcd_panel_in>;
-		};
-	};
-};
+#include "stm32mp15xc-dhcom-pdk2.dtsi"
 
 &m_can1 {
 	pinctrl-names = "default", "sleep";
@@ -163,103 +13,3 @@ &m_can1 {
 	pinctrl-1 = <&m_can1_sleep_pins_a>;
 	status = "okay";
 };
-
-&sai2 {
-	clocks = <&rcc SAI2>, <&rcc PLL3_Q>, <&rcc PLL3_R>;
-	clock-names = "pclk", "x8k", "x11k";
-	pinctrl-names = "default", "sleep";
-	pinctrl-0 = <&sai2a_pins_b &sai2b_pins_b>;
-	pinctrl-1 = <&sai2a_sleep_pins_b &sai2b_sleep_pins_b>;
-	status = "okay";
-
-	sai2a: audio-controller@4400b004 {
-		#clock-cells = <0>;
-		dma-names = "tx";
-		clocks = <&rcc SAI2_K>;
-		clock-names = "sai_ck";
-		status = "okay";
-
-		sai2a_port: port {
-			sai2a_endpoint: endpoint {
-				remote-endpoint = <&sgtl5000_tx_endpoint>;
-				format = "i2s";
-				mclk-fs = <512>;
-				dai-tdm-slot-num = <2>;
-				dai-tdm-slot-width = <16>;
-			};
-		};
-	};
-
-	sai2b: audio-controller@4400b024 {
-		dma-names = "rx";
-		st,sync = <&sai2a 2>;
-		clocks = <&rcc SAI2_K>, <&sai2a>;
-		clock-names = "sai_ck", "MCLK";
-		status = "okay";
-
-		sai2b_port: port {
-			sai2b_endpoint: endpoint {
-				remote-endpoint = <&sgtl5000_rx_endpoint>;
-				format = "i2s";
-				mclk-fs = <512>;
-				dai-tdm-slot-num = <2>;
-				dai-tdm-slot-width = <16>;
-			};
-		};
-	};
-};
-
-&timers2 {
-	/* spare dmas for other usage (un-delete to enable pwm capture) */
-	/delete-property/dmas;
-	/delete-property/dma-names;
-	status = "okay";
-	pwm2: pwm {
-		pinctrl-0 = <&pwm2_pins_a>;
-		pinctrl-names = "default";
-		status = "okay";
-	};
-	timer@1 {
-		status = "okay";
-	};
-};
-
-&usart3 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&usart3_pins_a>;
-	status = "okay";
-};
-
-&uart8 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&uart8_pins_a>;
-	status = "okay";
-};
-
-&usbh_ehci {
-	phys = <&usbphyc_port0>;
-	status = "okay";
-};
-
-&usbotg_hs {
-	dr_mode = "peripheral";
-	phys = <&usbphyc_port1 0>;
-	phy-names = "usb2-phy";
-	status = "okay";
-};
-
-&usbphyc {
-	status = "okay";
-};
-
-&usbphyc_port0 {
-	phy-supply = <&vdd_usb>;
-	vdda1v1-supply = <&reg11>;
-	vdda1v8-supply = <&reg18>;
-};
-
-&usbphyc_port1 {
-	phy-supply = <&vdd_usb>;
-	vdda1v1-supply = <&reg11>;
-	vdda1v8-supply = <&reg18>;
-};
diff --git a/arch/arm/boot/dts/stm32mp157c-dhcom-som.dtsi b/arch/arm/boot/dts/stm32mp157c-dhcom-som.dtsi
index f81dc3134135..c9cbab091554 100644
--- a/arch/arm/boot/dts/stm32mp157c-dhcom-som.dtsi
+++ b/arch/arm/boot/dts/stm32mp157c-dhcom-som.dtsi
@@ -1,368 +1,12 @@
 // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
 /*
- * Copyright (C) 2019 Marek Vasut <marex@denx.de>
+ * Copyright (C) 2019-2020 Marek Vasut <marex@denx.de>
  */
-/dts-v1/;
 
 #include "stm32mp157.dtsi"
 #include "stm32mp15xc.dtsi"
-#include "stm32mp15-pinctrl.dtsi"
-#include "stm32mp15xxaa-pinctrl.dtsi"
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/mfd/st,stpmic1.h>
-
-/ {
-	memory@c0000000 {
-		device_type = "memory";
-		reg = <0xC0000000 0x40000000>;
-	};
-
-	reserved-memory {
-		#address-cells = <1>;
-		#size-cells = <1>;
-		ranges;
-
-		mcuram2: mcuram2@10000000 {
-			compatible = "shared-dma-pool";
-			reg = <0x10000000 0x40000>;
-			no-map;
-		};
-
-		vdev0vring0: vdev0vring0@10040000 {
-			compatible = "shared-dma-pool";
-			reg = <0x10040000 0x1000>;
-			no-map;
-		};
-
-		vdev0vring1: vdev0vring1@10041000 {
-			compatible = "shared-dma-pool";
-			reg = <0x10041000 0x1000>;
-			no-map;
-		};
-
-		vdev0buffer: vdev0buffer@10042000 {
-			compatible = "shared-dma-pool";
-			reg = <0x10042000 0x4000>;
-			no-map;
-		};
-
-		mcuram: mcuram@30000000 {
-			compatible = "shared-dma-pool";
-			reg = <0x30000000 0x40000>;
-			no-map;
-		};
-
-		retram: retram@38000000 {
-			compatible = "shared-dma-pool";
-			reg = <0x38000000 0x10000>;
-			no-map;
-		};
-	};
-};
-
-&adc {
-	vdd-supply = <&vdd>;
-	vdda-supply = <&vdda>;
-	vref-supply = <&vdda>;
-	status = "okay";
-
-	adc1: adc@0 {
-		st,min-sample-time-nsecs = <5000>;
-		st,adc-channels = <0>;
-		status = "okay";
-	};
-
-	adc2: adc@100 {
-		st,adc-channels = <1>;
-		st,min-sample-time-nsecs = <5000>;
-		status = "okay";
-	};
-};
-
-&dac {
-	pinctrl-names = "default";
-	pinctrl-0 = <&dac_ch1_pins_a &dac_ch2_pins_a>;
-	vref-supply = <&vdda>;
-	status = "okay";
-
-	dac1: dac@1 {
-		status = "okay";
-	};
-	dac2: dac@2 {
-		status = "okay";
-	};
-};
-
-&dts {
-	status = "okay";
-};
+#include "stm32mp15xx-dhcom-som.dtsi"
 
 &gpu {
 	status = "okay";
 };
-
-&i2c4 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&i2c4_pins_a>;
-	i2c-scl-rising-time-ns = <185>;
-	i2c-scl-falling-time-ns = <20>;
-	status = "okay";
-	/* spare dmas for other usage */
-	/delete-property/dmas;
-	/delete-property/dma-names;
-
-	rtc@32 {
-		compatible = "microcrystal,rv8803";
-		reg = <0x32>;
-	};
-
-	pmic: stpmic@33 {
-		compatible = "st,stpmic1";
-		reg = <0x33>;
-		interrupts-extended = <&gpioa 0 IRQ_TYPE_EDGE_FALLING>;
-		interrupt-controller;
-		#interrupt-cells = <2>;
-		status = "okay";
-
-		regulators {
-			compatible = "st,stpmic1-regulators";
-			ldo1-supply = <&v3v3>;
-			ldo2-supply = <&v3v3>;
-			ldo3-supply = <&vdd_ddr>;
-			ldo5-supply = <&v3v3>;
-			ldo6-supply = <&v3v3>;
-			pwr_sw1-supply = <&bst_out>;
-			pwr_sw2-supply = <&bst_out>;
-
-			vddcore: buck1 {
-				regulator-name = "vddcore";
-				regulator-min-microvolt = <800000>;
-				regulator-max-microvolt = <1350000>;
-				regulator-always-on;
-				regulator-initial-mode = <0>;
-				regulator-over-current-protection;
-			};
-
-			vdd_ddr: buck2 {
-				regulator-name = "vdd_ddr";
-				regulator-min-microvolt = <1350000>;
-				regulator-max-microvolt = <1350000>;
-				regulator-always-on;
-				regulator-initial-mode = <0>;
-				regulator-over-current-protection;
-			};
-
-			vdd: buck3 {
-				regulator-name = "vdd";
-				regulator-min-microvolt = <3300000>;
-				regulator-max-microvolt = <3300000>;
-				regulator-always-on;
-				st,mask-reset;
-				regulator-initial-mode = <0>;
-				regulator-over-current-protection;
-			};
-
-			v3v3: buck4 {
-				regulator-name = "v3v3";
-				regulator-min-microvolt = <3300000>;
-				regulator-max-microvolt = <3300000>;
-				regulator-always-on;
-				regulator-over-current-protection;
-				regulator-initial-mode = <0>;
-			};
-
-			vdda: ldo1 {
-				regulator-name = "vdda";
-				regulator-min-microvolt = <2900000>;
-				regulator-max-microvolt = <2900000>;
-				interrupts = <IT_CURLIM_LDO1 0>;
-			};
-
-			v2v8: ldo2 {
-				regulator-name = "v2v8";
-				regulator-min-microvolt = <2800000>;
-				regulator-max-microvolt = <2800000>;
-				interrupts = <IT_CURLIM_LDO2 0>;
-			};
-
-			vtt_ddr: ldo3 {
-				regulator-name = "vtt_ddr";
-				regulator-min-microvolt = <500000>;
-				regulator-max-microvolt = <750000>;
-				regulator-always-on;
-				regulator-over-current-protection;
-			};
-
-			vdd_usb: ldo4 {
-				regulator-name = "vdd_usb";
-				regulator-min-microvolt = <3300000>;
-				regulator-max-microvolt = <3300000>;
-				interrupts = <IT_CURLIM_LDO4 0>;
-			};
-
-			vdd_sd: ldo5 {
-				regulator-name = "vdd_sd";
-				regulator-min-microvolt = <2900000>;
-				regulator-max-microvolt = <2900000>;
-				interrupts = <IT_CURLIM_LDO5 0>;
-				regulator-boot-on;
-			};
-
-			v1v8: ldo6 {
-				regulator-name = "v1v8";
-				regulator-min-microvolt = <1800000>;
-				regulator-max-microvolt = <1800000>;
-				interrupts = <IT_CURLIM_LDO6 0>;
-			};
-
-			vref_ddr: vref_ddr {
-				regulator-name = "vref_ddr";
-				regulator-always-on;
-				regulator-over-current-protection;
-			};
-
-			bst_out: boost {
-				regulator-name = "bst_out";
-				interrupts = <IT_OCP_BOOST 0>;
-			};
-
-			vbus_otg: pwr_sw1 {
-				regulator-name = "vbus_otg";
-				interrupts = <IT_OCP_OTG 0>;
-			};
-
-			vbus_sw: pwr_sw2 {
-				regulator-name = "vbus_sw";
-				interrupts = <IT_OCP_SWOUT 0>;
-				regulator-active-discharge;
-			};
-		};
-
-		onkey {
-			compatible = "st,stpmic1-onkey";
-			interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 0>;
-			interrupt-names = "onkey-falling", "onkey-rising";
-			power-off-time-sec = <10>;
-			status = "okay";
-		};
-
-		watchdog {
-			compatible = "st,stpmic1-wdt";
-			status = "disabled";
-		};
-	};
-
-	touchscreen@49 {
-		compatible = "ti,tsc2004";
-		reg = <0x49>;
-		vio-supply = <&v3v3>;
-		interrupts-extended = <&gpioh 3 IRQ_TYPE_EDGE_FALLING>;
-	};
-
-	eeprom@50 {
-		compatible = "atmel,24c02";
-		reg = <0x50>;
-		pagesize = <16>;
-	};
-};
-
-&ipcc {
-	status = "okay";
-};
-
-&iwdg2 {
-	timeout-sec = <32>;
-	status = "okay";
-};
-
-&m4_rproc {
-	memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>,
-			<&vdev0vring1>, <&vdev0buffer>;
-	mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>;
-	mbox-names = "vq0", "vq1", "shutdown";
-	interrupt-parent = <&exti>;
-	interrupts = <68 1>;
-	status = "okay";
-};
-
-&pwr_regulators {
-	vdd-supply = <&vdd>;
-	vdd_3v3_usbfs-supply = <&vdd_usb>;
-};
-
-&qspi {
-	pinctrl-names = "default", "sleep";
-	pinctrl-0 = <&qspi_clk_pins_a &qspi_bk1_pins_a &qspi_bk2_pins_a>;
-	pinctrl-1 = <&qspi_clk_sleep_pins_a &qspi_bk1_sleep_pins_a &qspi_bk2_sleep_pins_a>;
-	reg = <0x58003000 0x1000>, <0x70000000 0x4000000>;
-	#address-cells = <1>;
-	#size-cells = <0>;
-	status = "okay";
-
-	flash0: mx66l51235l@0 {
-		compatible = "jedec,spi-nor";
-		reg = <0>;
-		spi-rx-bus-width = <4>;
-		spi-max-frequency = <108000000>;
-		#address-cells = <1>;
-		#size-cells = <1>;
-	};
-};
-
-&rng1 {
-	status = "okay";
-};
-
-&rtc {
-	status = "okay";
-};
-
-&sdmmc1 {
-	pinctrl-names = "default", "opendrain", "sleep";
-	pinctrl-0 = <&sdmmc1_b4_pins_a &sdmmc1_dir_pins_a>;
-	pinctrl-1 = <&sdmmc1_b4_od_pins_a &sdmmc1_dir_pins_a>;
-	pinctrl-2 = <&sdmmc1_b4_sleep_pins_a &sdmmc1_dir_sleep_pins_a>;
-	broken-cd;
-	st,sig-dir;
-	st,neg-edge;
-	st,use-ckin;
-	bus-width = <4>;
-	vmmc-supply = <&vdd_sd>;
-	status = "okay";
-};
-
-&sdmmc2 {
-	pinctrl-names = "default", "opendrain", "sleep";
-	pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_a>;
-	pinctrl-1 = <&sdmmc2_b4_od_pins_a &sdmmc2_d47_pins_a>;
-	pinctrl-2 = <&sdmmc2_b4_sleep_pins_a &sdmmc2_d47_sleep_pins_a>;
-	non-removable;
-	no-sd;
-	no-sdio;
-	st,neg-edge;
-	bus-width = <8>;
-	vmmc-supply = <&v3v3>;
-	vqmmc-supply = <&v3v3>;
-	mmc-ddr-3_3v;
-	status = "okay";
-};
-
-&sdmmc3 {
-	pinctrl-names = "default", "opendrain", "sleep";
-	pinctrl-0 = <&sdmmc3_b4_pins_a>;
-	pinctrl-1 = <&sdmmc3_b4_od_pins_a>;
-	pinctrl-2 = <&sdmmc3_b4_sleep_pins_a>;
-	broken-cd;
-	st,neg-edge;
-	bus-width = <4>;
-	vmmc-supply = <&v3v3>;
-	vqmmc-supply = <&v3v3>;
-	mmc-ddr-3_3v;
-	status = "okay";
-};
-
-&uart4 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&uart4_pins_a>;
-	status = "okay";
-};
diff --git a/arch/arm/boot/dts/stm32mp15xc-dhcom-pdk2.dtsi b/arch/arm/boot/dts/stm32mp15xc-dhcom-pdk2.dtsi
new file mode 100644
index 000000000000..bed451bb8e2c
--- /dev/null
+++ b/arch/arm/boot/dts/stm32mp15xc-dhcom-pdk2.dtsi
@@ -0,0 +1,257 @@
+// SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
+/*
+ * Copyright (C) 2019 Marek Vasut <marex@denx.de>
+ */
+
+#include <dt-bindings/pwm/pwm.h>
+
+/ {
+	model = "STMicroelectronics STM32MP157C DHCOM Premium Developer Kit (2)";
+	compatible = "dh,stm32mp157c-dhcom-pdk2", "st,stm32mp157";
+
+	aliases {
+		serial0 = &uart4;
+		serial1 = &usart3;
+		serial2 = &uart8;
+		ethernet0 = &ethernet0;
+	};
+
+	chosen {
+		stdout-path = "serial0:115200n8";
+	};
+
+	clk_ext_audio_codec: clock-codec {
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+		clock-frequency = <24000000>;
+	};
+
+	display_bl: display-bl {
+		compatible = "pwm-backlight";
+		pwms = <&pwm2 0 500000 PWM_POLARITY_INVERTED>;
+		brightness-levels = <0 16 22 30 40 55 75 102 138 188 255>;
+		default-brightness-level = <8>;
+		enable-gpios = <&gpioi 0 GPIO_ACTIVE_HIGH>;
+		status = "okay";
+	};
+
+	ethernet_vio: vioregulator {
+		compatible = "regulator-fixed";
+		regulator-name = "vio";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		gpio = <&gpiog 3 GPIO_ACTIVE_LOW>;
+		regulator-always-on;
+		regulator-boot-on;
+	};
+
+	panel {
+		compatible = "edt,etm0700g0edh6";
+		backlight = <&display_bl>;
+
+		port {
+			lcd_panel_in: endpoint {
+				remote-endpoint = <&lcd_display_out>;
+			};
+		};
+	};
+
+	sound {
+		compatible = "audio-graph-card";
+		routing =
+			"MIC_IN", "Capture",
+			"Capture", "Mic Bias",
+			"Playback", "HP_OUT";
+		dais = <&sai2a_port &sai2b_port>;
+		status = "okay";
+	};
+};
+
+&cec {
+	pinctrl-names = "default";
+	pinctrl-0 = <&cec_pins_a>;
+	status = "okay";
+};
+
+&ethernet0 {
+	status = "okay";
+	pinctrl-0 = <&ethernet0_rmii_pins_a>;
+	pinctrl-1 = <&ethernet0_rmii_pins_sleep_a>;
+	pinctrl-names = "default", "sleep";
+	phy-mode = "rmii";
+	max-speed = <100>;
+	phy-handle = <&phy0>;
+	st,eth-ref-clk-sel;
+	phy-reset-gpios = <&gpioh 15 GPIO_ACTIVE_LOW>;
+
+	mdio0 {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		compatible = "snps,dwmac-mdio";
+
+		phy0: ethernet-phy@1 {
+			reg = <1>;
+		};
+	};
+};
+
+&i2c5 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&i2c5_pins_a>;
+	i2c-scl-rising-time-ns = <185>;
+	i2c-scl-falling-time-ns = <20>;
+	status = "okay";
+	/* spare dmas for other usage */
+	/delete-property/dmas;
+	/delete-property/dma-names;
+
+	sgtl5000: codec@a {
+		compatible = "fsl,sgtl5000";
+		reg = <0x0a>;
+		#sound-dai-cells = <0>;
+		clocks = <&clk_ext_audio_codec>;
+		VDDA-supply = <&v3v3>;
+		VDDIO-supply = <&vdd>;
+
+		sgtl5000_port: port {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			sgtl5000_tx_endpoint: endpoint@0 {
+				reg = <0>;
+				remote-endpoint = <&sai2a_endpoint>;
+				frame-master;
+				bitclock-master;
+			};
+
+			sgtl5000_rx_endpoint: endpoint@1 {
+				reg = <1>;
+				remote-endpoint = <&sai2b_endpoint>;
+				frame-master;
+				bitclock-master;
+			};
+		};
+
+	};
+
+	polytouch@38 {
+		compatible = "edt,edt-ft5x06";
+		reg = <0x38>;
+		interrupt-parent = <&gpiog>;
+		interrupts = <2 IRQ_TYPE_EDGE_FALLING>; /* GPIO E */
+		linux,wakeup;
+	};
+};
+
+&ltdc {
+	pinctrl-names = "default", "sleep";
+	pinctrl-0 = <&ltdc_pins_b>;
+	pinctrl-1 = <&ltdc_pins_sleep_b>;
+	status = "okay";
+
+	port {
+		lcd_display_out: endpoint {
+			remote-endpoint = <&lcd_panel_in>;
+		};
+	};
+};
+
+&sai2 {
+	clocks = <&rcc SAI2>, <&rcc PLL3_Q>, <&rcc PLL3_R>;
+	clock-names = "pclk", "x8k", "x11k";
+	pinctrl-names = "default", "sleep";
+	pinctrl-0 = <&sai2a_pins_b &sai2b_pins_b>;
+	pinctrl-1 = <&sai2a_sleep_pins_b &sai2b_sleep_pins_b>;
+	status = "okay";
+
+	sai2a: audio-controller@4400b004 {
+		#clock-cells = <0>;
+		dma-names = "tx";
+		clocks = <&rcc SAI2_K>;
+		clock-names = "sai_ck";
+		status = "okay";
+
+		sai2a_port: port {
+			sai2a_endpoint: endpoint {
+				remote-endpoint = <&sgtl5000_tx_endpoint>;
+				format = "i2s";
+				mclk-fs = <512>;
+				dai-tdm-slot-num = <2>;
+				dai-tdm-slot-width = <16>;
+			};
+		};
+	};
+
+	sai2b: audio-controller@4400b024 {
+		dma-names = "rx";
+		st,sync = <&sai2a 2>;
+		clocks = <&rcc SAI2_K>, <&sai2a>;
+		clock-names = "sai_ck", "MCLK";
+		status = "okay";
+
+		sai2b_port: port {
+			sai2b_endpoint: endpoint {
+				remote-endpoint = <&sgtl5000_rx_endpoint>;
+				format = "i2s";
+				mclk-fs = <512>;
+				dai-tdm-slot-num = <2>;
+				dai-tdm-slot-width = <16>;
+			};
+		};
+	};
+};
+
+&timers2 {
+	/* spare dmas for other usage (un-delete to enable pwm capture) */
+	/delete-property/dmas;
+	/delete-property/dma-names;
+	status = "okay";
+	pwm2: pwm {
+		pinctrl-0 = <&pwm2_pins_a>;
+		pinctrl-names = "default";
+		status = "okay";
+	};
+	timer@1 {
+		status = "okay";
+	};
+};
+
+&usart3 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&usart3_pins_a>;
+	status = "okay";
+};
+
+&uart8 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&uart8_pins_a>;
+	status = "okay";
+};
+
+&usbh_ehci {
+	phys = <&usbphyc_port0>;
+	status = "okay";
+};
+
+&usbotg_hs {
+	dr_mode = "peripheral";
+	phys = <&usbphyc_port1 0>;
+	phy-names = "usb2-phy";
+	status = "okay";
+};
+
+&usbphyc {
+	status = "okay";
+};
+
+&usbphyc_port0 {
+	phy-supply = <&vdd_usb>;
+	vdda1v1-supply = <&reg11>;
+	vdda1v8-supply = <&reg18>;
+};
+
+&usbphyc_port1 {
+	phy-supply = <&vdd_usb>;
+	vdda1v1-supply = <&reg11>;
+	vdda1v8-supply = <&reg18>;
+};
diff --git a/arch/arm/boot/dts/stm32mp15xx-dhcom-som.dtsi b/arch/arm/boot/dts/stm32mp15xx-dhcom-som.dtsi
new file mode 100644
index 000000000000..ba905196fb54
--- /dev/null
+++ b/arch/arm/boot/dts/stm32mp15xx-dhcom-som.dtsi
@@ -0,0 +1,361 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) 2019-2020 Marek Vasut <marex@denx.de>
+ */
+
+#include "stm32mp15-pinctrl.dtsi"
+#include "stm32mp15xxaa-pinctrl.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/mfd/st,stpmic1.h>
+
+/ {
+	memory@c0000000 {
+		device_type = "memory";
+		reg = <0xC0000000 0x40000000>;
+	};
+
+	reserved-memory {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges;
+
+		mcuram2: mcuram2@10000000 {
+			compatible = "shared-dma-pool";
+			reg = <0x10000000 0x40000>;
+			no-map;
+		};
+
+		vdev0vring0: vdev0vring0@10040000 {
+			compatible = "shared-dma-pool";
+			reg = <0x10040000 0x1000>;
+			no-map;
+		};
+
+		vdev0vring1: vdev0vring1@10041000 {
+			compatible = "shared-dma-pool";
+			reg = <0x10041000 0x1000>;
+			no-map;
+		};
+
+		vdev0buffer: vdev0buffer@10042000 {
+			compatible = "shared-dma-pool";
+			reg = <0x10042000 0x4000>;
+			no-map;
+		};
+
+		mcuram: mcuram@30000000 {
+			compatible = "shared-dma-pool";
+			reg = <0x30000000 0x40000>;
+			no-map;
+		};
+
+		retram: retram@38000000 {
+			compatible = "shared-dma-pool";
+			reg = <0x38000000 0x10000>;
+			no-map;
+		};
+	};
+};
+
+&adc {
+	vdd-supply = <&vdd>;
+	vdda-supply = <&vdda>;
+	vref-supply = <&vdda>;
+	status = "okay";
+
+	adc1: adc@0 {
+		st,min-sample-time-nsecs = <5000>;
+		st,adc-channels = <0>;
+		status = "okay";
+	};
+
+	adc2: adc@100 {
+		st,adc-channels = <1>;
+		st,min-sample-time-nsecs = <5000>;
+		status = "okay";
+	};
+};
+
+&dac {
+	pinctrl-names = "default";
+	pinctrl-0 = <&dac_ch1_pins_a &dac_ch2_pins_a>;
+	vref-supply = <&vdda>;
+	status = "okay";
+
+	dac1: dac@1 {
+		status = "okay";
+	};
+	dac2: dac@2 {
+		status = "okay";
+	};
+};
+
+&dts {
+	status = "okay";
+};
+
+&i2c4 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&i2c4_pins_a>;
+	i2c-scl-rising-time-ns = <185>;
+	i2c-scl-falling-time-ns = <20>;
+	status = "okay";
+	/* spare dmas for other usage */
+	/delete-property/dmas;
+	/delete-property/dma-names;
+
+	rtc@32 {
+		compatible = "microcrystal,rv8803";
+		reg = <0x32>;
+	};
+
+	pmic: stpmic@33 {
+		compatible = "st,stpmic1";
+		reg = <0x33>;
+		interrupts-extended = <&gpioa 0 IRQ_TYPE_EDGE_FALLING>;
+		interrupt-controller;
+		#interrupt-cells = <2>;
+		status = "okay";
+
+		regulators {
+			compatible = "st,stpmic1-regulators";
+			ldo1-supply = <&v3v3>;
+			ldo2-supply = <&v3v3>;
+			ldo3-supply = <&vdd_ddr>;
+			ldo5-supply = <&v3v3>;
+			ldo6-supply = <&v3v3>;
+			pwr_sw1-supply = <&bst_out>;
+			pwr_sw2-supply = <&bst_out>;
+
+			vddcore: buck1 {
+				regulator-name = "vddcore";
+				regulator-min-microvolt = <800000>;
+				regulator-max-microvolt = <1350000>;
+				regulator-always-on;
+				regulator-initial-mode = <0>;
+				regulator-over-current-protection;
+			};
+
+			vdd_ddr: buck2 {
+				regulator-name = "vdd_ddr";
+				regulator-min-microvolt = <1350000>;
+				regulator-max-microvolt = <1350000>;
+				regulator-always-on;
+				regulator-initial-mode = <0>;
+				regulator-over-current-protection;
+			};
+
+			vdd: buck3 {
+				regulator-name = "vdd";
+				regulator-min-microvolt = <3300000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-always-on;
+				st,mask-reset;
+				regulator-initial-mode = <0>;
+				regulator-over-current-protection;
+			};
+
+			v3v3: buck4 {
+				regulator-name = "v3v3";
+				regulator-min-microvolt = <3300000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-always-on;
+				regulator-over-current-protection;
+				regulator-initial-mode = <0>;
+			};
+
+			vdda: ldo1 {
+				regulator-name = "vdda";
+				regulator-min-microvolt = <2900000>;
+				regulator-max-microvolt = <2900000>;
+				interrupts = <IT_CURLIM_LDO1 0>;
+			};
+
+			v2v8: ldo2 {
+				regulator-name = "v2v8";
+				regulator-min-microvolt = <2800000>;
+				regulator-max-microvolt = <2800000>;
+				interrupts = <IT_CURLIM_LDO2 0>;
+			};
+
+			vtt_ddr: ldo3 {
+				regulator-name = "vtt_ddr";
+				regulator-min-microvolt = <500000>;
+				regulator-max-microvolt = <750000>;
+				regulator-always-on;
+				regulator-over-current-protection;
+			};
+
+			vdd_usb: ldo4 {
+				regulator-name = "vdd_usb";
+				regulator-min-microvolt = <3300000>;
+				regulator-max-microvolt = <3300000>;
+				interrupts = <IT_CURLIM_LDO4 0>;
+			};
+
+			vdd_sd: ldo5 {
+				regulator-name = "vdd_sd";
+				regulator-min-microvolt = <2900000>;
+				regulator-max-microvolt = <2900000>;
+				interrupts = <IT_CURLIM_LDO5 0>;
+				regulator-boot-on;
+			};
+
+			v1v8: ldo6 {
+				regulator-name = "v1v8";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				interrupts = <IT_CURLIM_LDO6 0>;
+			};
+
+			vref_ddr: vref_ddr {
+				regulator-name = "vref_ddr";
+				regulator-always-on;
+				regulator-over-current-protection;
+			};
+
+			bst_out: boost {
+				regulator-name = "bst_out";
+				interrupts = <IT_OCP_BOOST 0>;
+			};
+
+			vbus_otg: pwr_sw1 {
+				regulator-name = "vbus_otg";
+				interrupts = <IT_OCP_OTG 0>;
+			};
+
+			vbus_sw: pwr_sw2 {
+				regulator-name = "vbus_sw";
+				interrupts = <IT_OCP_SWOUT 0>;
+				regulator-active-discharge;
+			};
+		};
+
+		onkey {
+			compatible = "st,stpmic1-onkey";
+			interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 0>;
+			interrupt-names = "onkey-falling", "onkey-rising";
+			power-off-time-sec = <10>;
+			status = "okay";
+		};
+
+		watchdog {
+			compatible = "st,stpmic1-wdt";
+			status = "disabled";
+		};
+	};
+
+	touchscreen@49 {
+		compatible = "ti,tsc2004";
+		reg = <0x49>;
+		vio-supply = <&v3v3>;
+		interrupts-extended = <&gpioh 3 IRQ_TYPE_EDGE_FALLING>;
+	};
+
+	eeprom@50 {
+		compatible = "atmel,24c02";
+		reg = <0x50>;
+		pagesize = <16>;
+	};
+};
+
+&ipcc {
+	status = "okay";
+};
+
+&iwdg2 {
+	timeout-sec = <32>;
+	status = "okay";
+};
+
+&m4_rproc {
+	memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>,
+			<&vdev0vring1>, <&vdev0buffer>;
+	mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>;
+	mbox-names = "vq0", "vq1", "shutdown";
+	interrupt-parent = <&exti>;
+	interrupts = <68 1>;
+	status = "okay";
+};
+
+&pwr_regulators {
+	vdd-supply = <&vdd>;
+	vdd_3v3_usbfs-supply = <&vdd_usb>;
+};
+
+&qspi {
+	pinctrl-names = "default", "sleep";
+	pinctrl-0 = <&qspi_clk_pins_a &qspi_bk1_pins_a &qspi_bk2_pins_a>;
+	pinctrl-1 = <&qspi_clk_sleep_pins_a &qspi_bk1_sleep_pins_a &qspi_bk2_sleep_pins_a>;
+	reg = <0x58003000 0x1000>, <0x70000000 0x4000000>;
+	#address-cells = <1>;
+	#size-cells = <0>;
+	status = "okay";
+
+	flash0: mx66l51235l@0 {
+		compatible = "jedec,spi-nor";
+		reg = <0>;
+		spi-rx-bus-width = <4>;
+		spi-max-frequency = <108000000>;
+		#address-cells = <1>;
+		#size-cells = <1>;
+	};
+};
+
+&rng1 {
+	status = "okay";
+};
+
+&rtc {
+	status = "okay";
+};
+
+&sdmmc1 {
+	pinctrl-names = "default", "opendrain", "sleep";
+	pinctrl-0 = <&sdmmc1_b4_pins_a &sdmmc1_dir_pins_a>;
+	pinctrl-1 = <&sdmmc1_b4_od_pins_a &sdmmc1_dir_pins_a>;
+	pinctrl-2 = <&sdmmc1_b4_sleep_pins_a &sdmmc1_dir_sleep_pins_a>;
+	broken-cd;
+	st,sig-dir;
+	st,neg-edge;
+	st,use-ckin;
+	bus-width = <4>;
+	vmmc-supply = <&vdd_sd>;
+	status = "okay";
+};
+
+&sdmmc2 {
+	pinctrl-names = "default", "opendrain", "sleep";
+	pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_a>;
+	pinctrl-1 = <&sdmmc2_b4_od_pins_a &sdmmc2_d47_pins_a>;
+	pinctrl-2 = <&sdmmc2_b4_sleep_pins_a &sdmmc2_d47_sleep_pins_a>;
+	non-removable;
+	no-sd;
+	no-sdio;
+	st,neg-edge;
+	bus-width = <8>;
+	vmmc-supply = <&v3v3>;
+	vqmmc-supply = <&v3v3>;
+	mmc-ddr-3_3v;
+	status = "okay";
+};
+
+&sdmmc3 {
+	pinctrl-names = "default", "opendrain", "sleep";
+	pinctrl-0 = <&sdmmc3_b4_pins_a>;
+	pinctrl-1 = <&sdmmc3_b4_od_pins_a>;
+	pinctrl-2 = <&sdmmc3_b4_sleep_pins_a>;
+	broken-cd;
+	st,neg-edge;
+	bus-width = <4>;
+	vmmc-supply = <&v3v3>;
+	vqmmc-supply = <&v3v3>;
+	mmc-ddr-3_3v;
+	status = "okay";
+};
+
+&uart4 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&uart4_pins_a>;
+	status = "okay";
+};
-- 
2.25.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH] [RFC] ARM: dts: stm32: Add DTs for STM32MP15x variants of the DH SOM and PDK2
  2020-03-23  2:31 [PATCH] [RFC] ARM: dts: stm32: Add DTs for STM32MP15x variants of the DH SOM and PDK2 Marek Vasut
@ 2020-03-24 13:04 ` Alexandre Torgue
  2020-03-24 13:22   ` Marek Vasut
  0 siblings, 1 reply; 11+ messages in thread
From: Alexandre Torgue @ 2020-03-24 13:04 UTC (permalink / raw)
  To: Marek Vasut, linux-arm-kernel
  Cc: Patrick Delaunay, Patrice Chotard, Maxime Coquelin, linux-stm32



On 3/23/20 3:31 AM, Marek Vasut wrote:
> The DH PDK2 can be populated with SoM with any STM32MP15x variant.
> Add the DTs describing the remaining combinations.
> 
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Alexandre Torgue <alexandre.torgue@st.com>
> Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com>
> Cc: Patrice Chotard <patrice.chotard@st.com>
> Cc: Patrick Delaunay <patrick.delaunay@st.com>
> Cc: linux-stm32@st-md-mailman.stormreply.com
> To: linux-arm-kernel@lists.infradead.org
> ---
> NOTE: Is there a better way to do this than to have this kind of a
> 	combinatorial explosion of DTs ?

I have no better idea. Question was the same for stm32 boards, and I 
chose to take this option.


> ---
>   arch/arm/boot/dts/Makefile                    |   2 +
>   arch/arm/boot/dts/stm32mp151c-dhcom-pdk2.dts  |   8 +
>   arch/arm/boot/dts/stm32mp151c-dhcom-som.dtsi  |   8 +
>   arch/arm/boot/dts/stm32mp153c-dhcom-pdk2.dts  |  15 +
>   arch/arm/boot/dts/stm32mp153c-dhcom-som.dtsi  |   8 +
>   arch/arm/boot/dts/stm32mp157c-dhcom-pdk2.dts  | 256 +------------
>   arch/arm/boot/dts/stm32mp157c-dhcom-som.dtsi  | 360 +----------------
>   arch/arm/boot/dts/stm32mp15xc-dhcom-pdk2.dtsi | 257 +++++++++++++
>   arch/arm/boot/dts/stm32mp15xx-dhcom-som.dtsi  | 361 ++++++++++++++++++
>   9 files changed, 664 insertions(+), 611 deletions(-)
>   create mode 100644 arch/arm/boot/dts/stm32mp151c-dhcom-pdk2.dts
>   create mode 100644 arch/arm/boot/dts/stm32mp151c-dhcom-som.dtsi
>   create mode 100644 arch/arm/boot/dts/stm32mp153c-dhcom-pdk2.dts
>   create mode 100644 arch/arm/boot/dts/stm32mp153c-dhcom-som.dtsi
>   create mode 100644 arch/arm/boot/dts/stm32mp15xc-dhcom-pdk2.dtsi
>   create mode 100644 arch/arm/boot/dts/stm32mp15xx-dhcom-som.dtsi
> 
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index 55e1e54e245e..f6710f1a1bbc 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -1020,6 +1020,8 @@ dtb-$(CONFIG_ARCH_STM32) += \
>   	stm32746g-eval.dtb \
>   	stm32h743i-eval.dtb \
>   	stm32h743i-disco.dtb \
> +	stm32mp151c-dhcom-pdk2.dtb \
> +	stm32mp153c-dhcom-pdk2.dtb \
>   	stm32mp157a-avenger96.dtb \
>   	stm32mp157a-dk1.dtb \
>   	stm32mp157c-dhcom-pdk2.dtb \
> diff --git a/arch/arm/boot/dts/stm32mp151c-dhcom-pdk2.dts b/arch/arm/boot/dts/stm32mp151c-dhcom-pdk2.dts
> new file mode 100644
> index 000000000000..196a6bddfcf0
> --- /dev/null
> +++ b/arch/arm/boot/dts/stm32mp151c-dhcom-pdk2.dts
> @@ -0,0 +1,8 @@
> +// SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
> +/*
> + * Copyright (C) 2020 Marek Vasut <marex@denx.de>
> + */
> +/dts-v1/;
> +
> +#include "stm32mp151c-dhcom-som.dtsi"
> +#include "stm32mp15xc-dhcom-pdk2.dtsi"
> diff --git a/arch/arm/boot/dts/stm32mp151c-dhcom-som.dtsi b/arch/arm/boot/dts/stm32mp151c-dhcom-som.dtsi
> new file mode 100644
> index 000000000000..7754b6d74e16
> --- /dev/null
> +++ b/arch/arm/boot/dts/stm32mp151c-dhcom-som.dtsi
> @@ -0,0 +1,8 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
> +/*
> + * Copyright (C) 2020 Marek Vasut <marex@denx.de>
> + */
> +
> +#include "stm32mp151.dtsi"
> +#include "stm32mp15xc.dtsi"
> +#include "stm32mp15xx-dhcom-som.dtsi"
> diff --git a/arch/arm/boot/dts/stm32mp153c-dhcom-pdk2.dts b/arch/arm/boot/dts/stm32mp153c-dhcom-pdk2.dts
> new file mode 100644
> index 000000000000..4f114b4f075a
> --- /dev/null
> +++ b/arch/arm/boot/dts/stm32mp153c-dhcom-pdk2.dts
> @@ -0,0 +1,15 @@
> +// SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
> +/*
> + * Copyright (C) 2020 Marek Vasut <marex@denx.de>
> + */
> +/dts-v1/;
> +
> +#include "stm32mp153c-dhcom-som.dtsi"
> +#include "stm32mp15xc-dhcom-pdk2.dtsi"
> +
> +&m_can1 {
> +	pinctrl-names = "default", "sleep";
> +	pinctrl-0 = <&m_can1_pins_a>;
> +	pinctrl-1 = <&m_can1_sleep_pins_a>;
> +	status = "okay";
> +};
> diff --git a/arch/arm/boot/dts/stm32mp153c-dhcom-som.dtsi b/arch/arm/boot/dts/stm32mp153c-dhcom-som.dtsi
> new file mode 100644
> index 000000000000..111fe9419f05
> --- /dev/null
> +++ b/arch/arm/boot/dts/stm32mp153c-dhcom-som.dtsi
> @@ -0,0 +1,8 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
> +/*
> + * Copyright (C) 2020 Marek Vasut <marex@denx.de>
> + */
> +
> +#include "stm32mp153.dtsi"
> +#include "stm32mp15xc.dtsi"
> +#include "stm32mp15xx-dhcom-som.dtsi"
> diff --git a/arch/arm/boot/dts/stm32mp157c-dhcom-pdk2.dts b/arch/arm/boot/dts/stm32mp157c-dhcom-pdk2.dts
> index af99e132e1b1..e65869ab35f1 100644
> --- a/arch/arm/boot/dts/stm32mp157c-dhcom-pdk2.dts
> +++ b/arch/arm/boot/dts/stm32mp157c-dhcom-pdk2.dts
> @@ -1,161 +1,11 @@
>   // SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
>   /*
> - * Copyright (C) 2019 Marek Vasut <marex@denx.de>
> + * Copyright (C) 2019-2020 Marek Vasut <marex@denx.de>
>    */
> +/dts-v1/;
>   
>   #include "stm32mp157c-dhcom-som.dtsi"
> -#include <dt-bindings/pwm/pwm.h>
> -
> -/ {
> -	model = "STMicroelectronics STM32MP157C DHCOM Premium Developer Kit (2)";
> -	compatible = "dh,stm32mp157c-dhcom-pdk2", "st,stm32mp157";
> -
> -	aliases {
> -		serial0 = &uart4;
> -		serial1 = &usart3;
> -		serial2 = &uart8;
> -		ethernet0 = &ethernet0;
> -	};
> -
> -	chosen {
> -		stdout-path = "serial0:115200n8";
> -	};
> -
> -	clk_ext_audio_codec: clock-codec {
> -		compatible = "fixed-clock";
> -		#clock-cells = <0>;
> -		clock-frequency = <24000000>;
> -	};
> -
> -	display_bl: display-bl {
> -		compatible = "pwm-backlight";
> -		pwms = <&pwm2 0 500000 PWM_POLARITY_INVERTED>;
> -		brightness-levels = <0 16 22 30 40 55 75 102 138 188 255>;
> -		default-brightness-level = <8>;
> -		enable-gpios = <&gpioi 0 GPIO_ACTIVE_HIGH>;
> -		status = "okay";
> -	};
> -
> -	ethernet_vio: vioregulator {
> -		compatible = "regulator-fixed";
> -		regulator-name = "vio";
> -		regulator-min-microvolt = <3300000>;
> -		regulator-max-microvolt = <3300000>;
> -		gpio = <&gpiog 3 GPIO_ACTIVE_LOW>;
> -		regulator-always-on;
> -		regulator-boot-on;
> -	};
> -
> -	panel {
> -		compatible = "edt,etm0700g0edh6";
> -		backlight = <&display_bl>;
> -
> -		port {
> -			lcd_panel_in: endpoint {
> -				remote-endpoint = <&lcd_display_out>;
> -			};
> -		};
> -	};
> -
> -	sound {
> -		compatible = "audio-graph-card";
> -		routing =
> -			"MIC_IN", "Capture",
> -			"Capture", "Mic Bias",
> -			"Playback", "HP_OUT";
> -		dais = <&sai2a_port &sai2b_port>;
> -		status = "okay";
> -	};
> -};
> -
> -&cec {
> -	pinctrl-names = "default";
> -	pinctrl-0 = <&cec_pins_a>;
> -	status = "okay";
> -};
> -
> -&ethernet0 {
> -	status = "okay";
> -	pinctrl-0 = <&ethernet0_rmii_pins_a>;
> -	pinctrl-1 = <&ethernet0_rmii_pins_sleep_a>;
> -	pinctrl-names = "default", "sleep";
> -	phy-mode = "rmii";
> -	max-speed = <100>;
> -	phy-handle = <&phy0>;
> -	st,eth-ref-clk-sel;
> -	phy-reset-gpios = <&gpioh 15 GPIO_ACTIVE_LOW>;
> -
> -	mdio0 {
> -		#address-cells = <1>;
> -		#size-cells = <0>;
> -		compatible = "snps,dwmac-mdio";
> -
> -		phy0: ethernet-phy@1 {
> -			reg = <1>;
> -		};
> -	};
> -};
> -
> -&i2c5 {
> -	pinctrl-names = "default";
> -	pinctrl-0 = <&i2c5_pins_a>;
> -	i2c-scl-rising-time-ns = <185>;
> -	i2c-scl-falling-time-ns = <20>;
> -	status = "okay";
> -	/* spare dmas for other usage */
> -	/delete-property/dmas;
> -	/delete-property/dma-names;
> -
> -	sgtl5000: codec@a {
> -		compatible = "fsl,sgtl5000";
> -		reg = <0x0a>;
> -		#sound-dai-cells = <0>;
> -		clocks = <&clk_ext_audio_codec>;
> -		VDDA-supply = <&v3v3>;
> -		VDDIO-supply = <&vdd>;
> -
> -		sgtl5000_port: port {
> -			#address-cells = <1>;
> -			#size-cells = <0>;
> -
> -			sgtl5000_tx_endpoint: endpoint@0 {
> -				reg = <0>;
> -				remote-endpoint = <&sai2a_endpoint>;
> -				frame-master;
> -				bitclock-master;
> -			};
> -
> -			sgtl5000_rx_endpoint: endpoint@1 {
> -				reg = <1>;
> -				remote-endpoint = <&sai2b_endpoint>;
> -				frame-master;
> -				bitclock-master;
> -			};
> -		};
> -
> -	};
> -
> -	polytouch@38 {
> -		compatible = "edt,edt-ft5x06";
> -		reg = <0x38>;
> -		interrupt-parent = <&gpiog>;
> -		interrupts = <2 IRQ_TYPE_EDGE_FALLING>; /* GPIO E */
> -		linux,wakeup;
> -	};
> -};
> -
> -&ltdc {
> -	pinctrl-names = "default", "sleep";
> -	pinctrl-0 = <&ltdc_pins_b>;
> -	pinctrl-1 = <&ltdc_pins_sleep_b>;
> -	status = "okay";
> -
> -	port {
> -		lcd_display_out: endpoint {
> -			remote-endpoint = <&lcd_panel_in>;
> -		};
> -	};
> -};
> +#include "stm32mp15xc-dhcom-pdk2.dtsi"
>   
>   &m_can1 {
>   	pinctrl-names = "default", "sleep";
> @@ -163,103 +13,3 @@ &m_can1 {
>   	pinctrl-1 = <&m_can1_sleep_pins_a>;
>   	status = "okay";
>   };
> -
> -&sai2 {
> -	clocks = <&rcc SAI2>, <&rcc PLL3_Q>, <&rcc PLL3_R>;
> -	clock-names = "pclk", "x8k", "x11k";
> -	pinctrl-names = "default", "sleep";
> -	pinctrl-0 = <&sai2a_pins_b &sai2b_pins_b>;
> -	pinctrl-1 = <&sai2a_sleep_pins_b &sai2b_sleep_pins_b>;
> -	status = "okay";
> -
> -	sai2a: audio-controller@4400b004 {
> -		#clock-cells = <0>;
> -		dma-names = "tx";
> -		clocks = <&rcc SAI2_K>;
> -		clock-names = "sai_ck";
> -		status = "okay";
> -
> -		sai2a_port: port {
> -			sai2a_endpoint: endpoint {
> -				remote-endpoint = <&sgtl5000_tx_endpoint>;
> -				format = "i2s";
> -				mclk-fs = <512>;
> -				dai-tdm-slot-num = <2>;
> -				dai-tdm-slot-width = <16>;
> -			};
> -		};
> -	};
> -
> -	sai2b: audio-controller@4400b024 {
> -		dma-names = "rx";
> -		st,sync = <&sai2a 2>;
> -		clocks = <&rcc SAI2_K>, <&sai2a>;
> -		clock-names = "sai_ck", "MCLK";
> -		status = "okay";
> -
> -		sai2b_port: port {
> -			sai2b_endpoint: endpoint {
> -				remote-endpoint = <&sgtl5000_rx_endpoint>;
> -				format = "i2s";
> -				mclk-fs = <512>;
> -				dai-tdm-slot-num = <2>;
> -				dai-tdm-slot-width = <16>;
> -			};
> -		};
> -	};
> -};
> -
> -&timers2 {
> -	/* spare dmas for other usage (un-delete to enable pwm capture) */
> -	/delete-property/dmas;
> -	/delete-property/dma-names;
> -	status = "okay";
> -	pwm2: pwm {
> -		pinctrl-0 = <&pwm2_pins_a>;
> -		pinctrl-names = "default";
> -		status = "okay";
> -	};
> -	timer@1 {
> -		status = "okay";
> -	};
> -};
> -
> -&usart3 {
> -	pinctrl-names = "default";
> -	pinctrl-0 = <&usart3_pins_a>;
> -	status = "okay";
> -};
> -
> -&uart8 {
> -	pinctrl-names = "default";
> -	pinctrl-0 = <&uart8_pins_a>;
> -	status = "okay";
> -};
> -
> -&usbh_ehci {
> -	phys = <&usbphyc_port0>;
> -	status = "okay";
> -};
> -
> -&usbotg_hs {
> -	dr_mode = "peripheral";
> -	phys = <&usbphyc_port1 0>;
> -	phy-names = "usb2-phy";
> -	status = "okay";
> -};
> -
> -&usbphyc {
> -	status = "okay";
> -};
> -
> -&usbphyc_port0 {
> -	phy-supply = <&vdd_usb>;
> -	vdda1v1-supply = <&reg11>;
> -	vdda1v8-supply = <&reg18>;
> -};
> -
> -&usbphyc_port1 {
> -	phy-supply = <&vdd_usb>;
> -	vdda1v1-supply = <&reg11>;
> -	vdda1v8-supply = <&reg18>;
> -};
> diff --git a/arch/arm/boot/dts/stm32mp157c-dhcom-som.dtsi b/arch/arm/boot/dts/stm32mp157c-dhcom-som.dtsi
> index f81dc3134135..c9cbab091554 100644
> --- a/arch/arm/boot/dts/stm32mp157c-dhcom-som.dtsi
> +++ b/arch/arm/boot/dts/stm32mp157c-dhcom-som.dtsi
> @@ -1,368 +1,12 @@
>   // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
>   /*
> - * Copyright (C) 2019 Marek Vasut <marex@denx.de>
> + * Copyright (C) 2019-2020 Marek Vasut <marex@denx.de>
>    */
> -/dts-v1/;
>   
>   #include "stm32mp157.dtsi"
>   #include "stm32mp15xc.dtsi"
> -#include "stm32mp15-pinctrl.dtsi"
> -#include "stm32mp15xxaa-pinctrl.dtsi"
> -#include <dt-bindings/gpio/gpio.h>
> -#include <dt-bindings/mfd/st,stpmic1.h>
> -
> -/ {
> -	memory@c0000000 {
> -		device_type = "memory";
> -		reg = <0xC0000000 0x40000000>;
> -	};
> -
> -	reserved-memory {
> -		#address-cells = <1>;
> -		#size-cells = <1>;
> -		ranges;
> -
> -		mcuram2: mcuram2@10000000 {
> -			compatible = "shared-dma-pool";
> -			reg = <0x10000000 0x40000>;
> -			no-map;
> -		};
> -
> -		vdev0vring0: vdev0vring0@10040000 {
> -			compatible = "shared-dma-pool";
> -			reg = <0x10040000 0x1000>;
> -			no-map;
> -		};
> -
> -		vdev0vring1: vdev0vring1@10041000 {
> -			compatible = "shared-dma-pool";
> -			reg = <0x10041000 0x1000>;
> -			no-map;
> -		};
> -
> -		vdev0buffer: vdev0buffer@10042000 {
> -			compatible = "shared-dma-pool";
> -			reg = <0x10042000 0x4000>;
> -			no-map;
> -		};
> -
> -		mcuram: mcuram@30000000 {
> -			compatible = "shared-dma-pool";
> -			reg = <0x30000000 0x40000>;
> -			no-map;
> -		};
> -
> -		retram: retram@38000000 {
> -			compatible = "shared-dma-pool";
> -			reg = <0x38000000 0x10000>;
> -			no-map;
> -		};
> -	};
> -};
> -
> -&adc {
> -	vdd-supply = <&vdd>;
> -	vdda-supply = <&vdda>;
> -	vref-supply = <&vdda>;
> -	status = "okay";
> -
> -	adc1: adc@0 {
> -		st,min-sample-time-nsecs = <5000>;
> -		st,adc-channels = <0>;
> -		status = "okay";
> -	};
> -
> -	adc2: adc@100 {
> -		st,adc-channels = <1>;
> -		st,min-sample-time-nsecs = <5000>;
> -		status = "okay";
> -	};
> -};
> -
> -&dac {
> -	pinctrl-names = "default";
> -	pinctrl-0 = <&dac_ch1_pins_a &dac_ch2_pins_a>;
> -	vref-supply = <&vdda>;
> -	status = "okay";
> -
> -	dac1: dac@1 {
> -		status = "okay";
> -	};
> -	dac2: dac@2 {
> -		status = "okay";
> -	};
> -};
> -
> -&dts {
> -	status = "okay";
> -};
> +#include "stm32mp15xx-dhcom-som.dtsi"
>   
>   &gpu {
>   	status = "okay";
>   };
> -
> -&i2c4 {
> -	pinctrl-names = "default";
> -	pinctrl-0 = <&i2c4_pins_a>;
> -	i2c-scl-rising-time-ns = <185>;
> -	i2c-scl-falling-time-ns = <20>;
> -	status = "okay";
> -	/* spare dmas for other usage */
> -	/delete-property/dmas;
> -	/delete-property/dma-names;
> -
> -	rtc@32 {
> -		compatible = "microcrystal,rv8803";
> -		reg = <0x32>;
> -	};
> -
> -	pmic: stpmic@33 {
> -		compatible = "st,stpmic1";
> -		reg = <0x33>;
> -		interrupts-extended = <&gpioa 0 IRQ_TYPE_EDGE_FALLING>;
> -		interrupt-controller;
> -		#interrupt-cells = <2>;
> -		status = "okay";
> -
> -		regulators {
> -			compatible = "st,stpmic1-regulators";
> -			ldo1-supply = <&v3v3>;
> -			ldo2-supply = <&v3v3>;
> -			ldo3-supply = <&vdd_ddr>;
> -			ldo5-supply = <&v3v3>;
> -			ldo6-supply = <&v3v3>;
> -			pwr_sw1-supply = <&bst_out>;
> -			pwr_sw2-supply = <&bst_out>;
> -
> -			vddcore: buck1 {
> -				regulator-name = "vddcore";
> -				regulator-min-microvolt = <800000>;
> -				regulator-max-microvolt = <1350000>;
> -				regulator-always-on;
> -				regulator-initial-mode = <0>;
> -				regulator-over-current-protection;
> -			};
> -
> -			vdd_ddr: buck2 {
> -				regulator-name = "vdd_ddr";
> -				regulator-min-microvolt = <1350000>;
> -				regulator-max-microvolt = <1350000>;
> -				regulator-always-on;
> -				regulator-initial-mode = <0>;
> -				regulator-over-current-protection;
> -			};
> -
> -			vdd: buck3 {
> -				regulator-name = "vdd";
> -				regulator-min-microvolt = <3300000>;
> -				regulator-max-microvolt = <3300000>;
> -				regulator-always-on;
> -				st,mask-reset;
> -				regulator-initial-mode = <0>;
> -				regulator-over-current-protection;
> -			};
> -
> -			v3v3: buck4 {
> -				regulator-name = "v3v3";
> -				regulator-min-microvolt = <3300000>;
> -				regulator-max-microvolt = <3300000>;
> -				regulator-always-on;
> -				regulator-over-current-protection;
> -				regulator-initial-mode = <0>;
> -			};
> -
> -			vdda: ldo1 {
> -				regulator-name = "vdda";
> -				regulator-min-microvolt = <2900000>;
> -				regulator-max-microvolt = <2900000>;
> -				interrupts = <IT_CURLIM_LDO1 0>;
> -			};
> -
> -			v2v8: ldo2 {
> -				regulator-name = "v2v8";
> -				regulator-min-microvolt = <2800000>;
> -				regulator-max-microvolt = <2800000>;
> -				interrupts = <IT_CURLIM_LDO2 0>;
> -			};
> -
> -			vtt_ddr: ldo3 {
> -				regulator-name = "vtt_ddr";
> -				regulator-min-microvolt = <500000>;
> -				regulator-max-microvolt = <750000>;
> -				regulator-always-on;
> -				regulator-over-current-protection;
> -			};
> -
> -			vdd_usb: ldo4 {
> -				regulator-name = "vdd_usb";
> -				regulator-min-microvolt = <3300000>;
> -				regulator-max-microvolt = <3300000>;
> -				interrupts = <IT_CURLIM_LDO4 0>;
> -			};
> -
> -			vdd_sd: ldo5 {
> -				regulator-name = "vdd_sd";
> -				regulator-min-microvolt = <2900000>;
> -				regulator-max-microvolt = <2900000>;
> -				interrupts = <IT_CURLIM_LDO5 0>;
> -				regulator-boot-on;
> -			};
> -
> -			v1v8: ldo6 {
> -				regulator-name = "v1v8";
> -				regulator-min-microvolt = <1800000>;
> -				regulator-max-microvolt = <1800000>;
> -				interrupts = <IT_CURLIM_LDO6 0>;
> -			};
> -
> -			vref_ddr: vref_ddr {
> -				regulator-name = "vref_ddr";
> -				regulator-always-on;
> -				regulator-over-current-protection;
> -			};
> -
> -			bst_out: boost {
> -				regulator-name = "bst_out";
> -				interrupts = <IT_OCP_BOOST 0>;
> -			};
> -
> -			vbus_otg: pwr_sw1 {
> -				regulator-name = "vbus_otg";
> -				interrupts = <IT_OCP_OTG 0>;
> -			};
> -
> -			vbus_sw: pwr_sw2 {
> -				regulator-name = "vbus_sw";
> -				interrupts = <IT_OCP_SWOUT 0>;
> -				regulator-active-discharge;
> -			};
> -		};
> -
> -		onkey {
> -			compatible = "st,stpmic1-onkey";
> -			interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 0>;
> -			interrupt-names = "onkey-falling", "onkey-rising";
> -			power-off-time-sec = <10>;
> -			status = "okay";
> -		};
> -
> -		watchdog {
> -			compatible = "st,stpmic1-wdt";
> -			status = "disabled";
> -		};
> -	};
> -
> -	touchscreen@49 {
> -		compatible = "ti,tsc2004";
> -		reg = <0x49>;
> -		vio-supply = <&v3v3>;
> -		interrupts-extended = <&gpioh 3 IRQ_TYPE_EDGE_FALLING>;
> -	};
> -
> -	eeprom@50 {
> -		compatible = "atmel,24c02";
> -		reg = <0x50>;
> -		pagesize = <16>;
> -	};
> -};
> -
> -&ipcc {
> -	status = "okay";
> -};
> -
> -&iwdg2 {
> -	timeout-sec = <32>;
> -	status = "okay";
> -};
> -
> -&m4_rproc {
> -	memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>,
> -			<&vdev0vring1>, <&vdev0buffer>;
> -	mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>;
> -	mbox-names = "vq0", "vq1", "shutdown";
> -	interrupt-parent = <&exti>;
> -	interrupts = <68 1>;
> -	status = "okay";
> -};
> -
> -&pwr_regulators {
> -	vdd-supply = <&vdd>;
> -	vdd_3v3_usbfs-supply = <&vdd_usb>;
> -};
> -
> -&qspi {
> -	pinctrl-names = "default", "sleep";
> -	pinctrl-0 = <&qspi_clk_pins_a &qspi_bk1_pins_a &qspi_bk2_pins_a>;
> -	pinctrl-1 = <&qspi_clk_sleep_pins_a &qspi_bk1_sleep_pins_a &qspi_bk2_sleep_pins_a>;
> -	reg = <0x58003000 0x1000>, <0x70000000 0x4000000>;
> -	#address-cells = <1>;
> -	#size-cells = <0>;
> -	status = "okay";
> -
> -	flash0: mx66l51235l@0 {
> -		compatible = "jedec,spi-nor";
> -		reg = <0>;
> -		spi-rx-bus-width = <4>;
> -		spi-max-frequency = <108000000>;
> -		#address-cells = <1>;
> -		#size-cells = <1>;
> -	};
> -};
> -
> -&rng1 {
> -	status = "okay";
> -};
> -
> -&rtc {
> -	status = "okay";
> -};
> -
> -&sdmmc1 {
> -	pinctrl-names = "default", "opendrain", "sleep";
> -	pinctrl-0 = <&sdmmc1_b4_pins_a &sdmmc1_dir_pins_a>;
> -	pinctrl-1 = <&sdmmc1_b4_od_pins_a &sdmmc1_dir_pins_a>;
> -	pinctrl-2 = <&sdmmc1_b4_sleep_pins_a &sdmmc1_dir_sleep_pins_a>;
> -	broken-cd;
> -	st,sig-dir;
> -	st,neg-edge;
> -	st,use-ckin;
> -	bus-width = <4>;
> -	vmmc-supply = <&vdd_sd>;
> -	status = "okay";
> -};
> -
> -&sdmmc2 {
> -	pinctrl-names = "default", "opendrain", "sleep";
> -	pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_a>;
> -	pinctrl-1 = <&sdmmc2_b4_od_pins_a &sdmmc2_d47_pins_a>;
> -	pinctrl-2 = <&sdmmc2_b4_sleep_pins_a &sdmmc2_d47_sleep_pins_a>;
> -	non-removable;
> -	no-sd;
> -	no-sdio;
> -	st,neg-edge;
> -	bus-width = <8>;
> -	vmmc-supply = <&v3v3>;
> -	vqmmc-supply = <&v3v3>;
> -	mmc-ddr-3_3v;
> -	status = "okay";
> -};
> -
> -&sdmmc3 {
> -	pinctrl-names = "default", "opendrain", "sleep";
> -	pinctrl-0 = <&sdmmc3_b4_pins_a>;
> -	pinctrl-1 = <&sdmmc3_b4_od_pins_a>;
> -	pinctrl-2 = <&sdmmc3_b4_sleep_pins_a>;
> -	broken-cd;
> -	st,neg-edge;
> -	bus-width = <4>;
> -	vmmc-supply = <&v3v3>;
> -	vqmmc-supply = <&v3v3>;
> -	mmc-ddr-3_3v;
> -	status = "okay";
> -};
> -
> -&uart4 {
> -	pinctrl-names = "default";
> -	pinctrl-0 = <&uart4_pins_a>;
> -	status = "okay";
> -};
> diff --git a/arch/arm/boot/dts/stm32mp15xc-dhcom-pdk2.dtsi b/arch/arm/boot/dts/stm32mp15xc-dhcom-pdk2.dtsi
> new file mode 100644
> index 000000000000..bed451bb8e2c
> --- /dev/null
> +++ b/arch/arm/boot/dts/stm32mp15xc-dhcom-pdk2.dtsi
> @@ -0,0 +1,257 @@
> +// SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
> +/*
> + * Copyright (C) 2019 Marek Vasut <marex@denx.de>
> + */
> +
> +#include <dt-bindings/pwm/pwm.h>
> +
> +/ {
> +	model = "STMicroelectronics STM32MP157C DHCOM Premium Developer Kit (2)";
> +	compatible = "dh,stm32mp157c-dhcom-pdk2", "st,stm32mp157";
> +
> +	aliases {
> +		serial0 = &uart4;
> +		serial1 = &usart3;
> +		serial2 = &uart8;
> +		ethernet0 = &ethernet0;
> +	};
> +
> +	chosen {
> +		stdout-path = "serial0:115200n8";
> +	};
> +
> +	clk_ext_audio_codec: clock-codec {
> +		compatible = "fixed-clock";
> +		#clock-cells = <0>;
> +		clock-frequency = <24000000>;
> +	};
> +
> +	display_bl: display-bl {
> +		compatible = "pwm-backlight";
> +		pwms = <&pwm2 0 500000 PWM_POLARITY_INVERTED>;
> +		brightness-levels = <0 16 22 30 40 55 75 102 138 188 255>;
> +		default-brightness-level = <8>;
> +		enable-gpios = <&gpioi 0 GPIO_ACTIVE_HIGH>;
> +		status = "okay";
> +	};
> +
> +	ethernet_vio: vioregulator {
> +		compatible = "regulator-fixed";
> +		regulator-name = "vio";
> +		regulator-min-microvolt = <3300000>;
> +		regulator-max-microvolt = <3300000>;
> +		gpio = <&gpiog 3 GPIO_ACTIVE_LOW>;
> +		regulator-always-on;
> +		regulator-boot-on;
> +	};
> +
> +	panel {
> +		compatible = "edt,etm0700g0edh6";
> +		backlight = <&display_bl>;
> +
> +		port {
> +			lcd_panel_in: endpoint {
> +				remote-endpoint = <&lcd_display_out>;
> +			};
> +		};
> +	};
> +
> +	sound {
> +		compatible = "audio-graph-card";
> +		routing =
> +			"MIC_IN", "Capture",
> +			"Capture", "Mic Bias",
> +			"Playback", "HP_OUT";
> +		dais = <&sai2a_port &sai2b_port>;
> +		status = "okay";
> +	};
> +};
> +
> +&cec {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&cec_pins_a>;
> +	status = "okay";
> +};
> +
> +&ethernet0 {
> +	status = "okay";
> +	pinctrl-0 = <&ethernet0_rmii_pins_a>;
> +	pinctrl-1 = <&ethernet0_rmii_pins_sleep_a>;
> +	pinctrl-names = "default", "sleep";
> +	phy-mode = "rmii";
> +	max-speed = <100>;
> +	phy-handle = <&phy0>;
> +	st,eth-ref-clk-sel;
> +	phy-reset-gpios = <&gpioh 15 GPIO_ACTIVE_LOW>;
> +
> +	mdio0 {
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +		compatible = "snps,dwmac-mdio";
> +
> +		phy0: ethernet-phy@1 {
> +			reg = <1>;
> +		};
> +	};
> +};
> +
> +&i2c5 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&i2c5_pins_a>;
> +	i2c-scl-rising-time-ns = <185>;
> +	i2c-scl-falling-time-ns = <20>;
> +	status = "okay";
> +	/* spare dmas for other usage */
> +	/delete-property/dmas;
> +	/delete-property/dma-names;
> +
> +	sgtl5000: codec@a {
> +		compatible = "fsl,sgtl5000";
> +		reg = <0x0a>;
> +		#sound-dai-cells = <0>;
> +		clocks = <&clk_ext_audio_codec>;
> +		VDDA-supply = <&v3v3>;
> +		VDDIO-supply = <&vdd>;
> +
> +		sgtl5000_port: port {
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +
> +			sgtl5000_tx_endpoint: endpoint@0 {
> +				reg = <0>;
> +				remote-endpoint = <&sai2a_endpoint>;
> +				frame-master;
> +				bitclock-master;
> +			};
> +
> +			sgtl5000_rx_endpoint: endpoint@1 {
> +				reg = <1>;
> +				remote-endpoint = <&sai2b_endpoint>;
> +				frame-master;
> +				bitclock-master;
> +			};
> +		};
> +
> +	};
> +
> +	polytouch@38 {
> +		compatible = "edt,edt-ft5x06";
> +		reg = <0x38>;
> +		interrupt-parent = <&gpiog>;
> +		interrupts = <2 IRQ_TYPE_EDGE_FALLING>; /* GPIO E */
> +		linux,wakeup;
> +	};
> +};
> +
> +&ltdc {
> +	pinctrl-names = "default", "sleep";
> +	pinctrl-0 = <&ltdc_pins_b>;
> +	pinctrl-1 = <&ltdc_pins_sleep_b>;
> +	status = "okay";
> +
> +	port {
> +		lcd_display_out: endpoint {
> +			remote-endpoint = <&lcd_panel_in>;
> +		};
> +	};
> +};
> +
> +&sai2 {
> +	clocks = <&rcc SAI2>, <&rcc PLL3_Q>, <&rcc PLL3_R>;
> +	clock-names = "pclk", "x8k", "x11k";
> +	pinctrl-names = "default", "sleep";
> +	pinctrl-0 = <&sai2a_pins_b &sai2b_pins_b>;
> +	pinctrl-1 = <&sai2a_sleep_pins_b &sai2b_sleep_pins_b>;
> +	status = "okay";
> +
> +	sai2a: audio-controller@4400b004 {
> +		#clock-cells = <0>;
> +		dma-names = "tx";
> +		clocks = <&rcc SAI2_K>;
> +		clock-names = "sai_ck";
> +		status = "okay";
> +
> +		sai2a_port: port {
> +			sai2a_endpoint: endpoint {
> +				remote-endpoint = <&sgtl5000_tx_endpoint>;
> +				format = "i2s";
> +				mclk-fs = <512>;
> +				dai-tdm-slot-num = <2>;
> +				dai-tdm-slot-width = <16>;
> +			};
> +		};
> +	};
> +
> +	sai2b: audio-controller@4400b024 {
> +		dma-names = "rx";
> +		st,sync = <&sai2a 2>;
> +		clocks = <&rcc SAI2_K>, <&sai2a>;
> +		clock-names = "sai_ck", "MCLK";
> +		status = "okay";
> +
> +		sai2b_port: port {
> +			sai2b_endpoint: endpoint {
> +				remote-endpoint = <&sgtl5000_rx_endpoint>;
> +				format = "i2s";
> +				mclk-fs = <512>;
> +				dai-tdm-slot-num = <2>;
> +				dai-tdm-slot-width = <16>;
> +			};
> +		};
> +	};
> +};
> +
> +&timers2 {
> +	/* spare dmas for other usage (un-delete to enable pwm capture) */
> +	/delete-property/dmas;
> +	/delete-property/dma-names;
> +	status = "okay";
> +	pwm2: pwm {
> +		pinctrl-0 = <&pwm2_pins_a>;
> +		pinctrl-names = "default";
> +		status = "okay";
> +	};
> +	timer@1 {
> +		status = "okay";
> +	};
> +};
> +
> +&usart3 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&usart3_pins_a>;
> +	status = "okay";
> +};
> +
> +&uart8 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&uart8_pins_a>;
> +	status = "okay";
> +};
> +
> +&usbh_ehci {
> +	phys = <&usbphyc_port0>;
> +	status = "okay";
> +};
> +
> +&usbotg_hs {
> +	dr_mode = "peripheral";
> +	phys = <&usbphyc_port1 0>;
> +	phy-names = "usb2-phy";
> +	status = "okay";
> +};
> +
> +&usbphyc {
> +	status = "okay";
> +};
> +
> +&usbphyc_port0 {
> +	phy-supply = <&vdd_usb>;
> +	vdda1v1-supply = <&reg11>;
> +	vdda1v8-supply = <&reg18>;
> +};
> +
> +&usbphyc_port1 {
> +	phy-supply = <&vdd_usb>;
> +	vdda1v1-supply = <&reg11>;
> +	vdda1v8-supply = <&reg18>;
> +};
> diff --git a/arch/arm/boot/dts/stm32mp15xx-dhcom-som.dtsi b/arch/arm/boot/dts/stm32mp15xx-dhcom-som.dtsi
> new file mode 100644
> index 000000000000..ba905196fb54
> --- /dev/null
> +++ b/arch/arm/boot/dts/stm32mp15xx-dhcom-som.dtsi
> @@ -0,0 +1,361 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
> +/*
> + * Copyright (C) 2019-2020 Marek Vasut <marex@denx.de>
> + */
> +
> +#include "stm32mp15-pinctrl.dtsi"
> +#include "stm32mp15xxaa-pinctrl.dtsi"
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/mfd/st,stpmic1.h>
> +
> +/ {
> +	memory@c0000000 {
> +		device_type = "memory";
> +		reg = <0xC0000000 0x40000000>;
> +	};
> +
> +	reserved-memory {
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +		ranges;
> +
> +		mcuram2: mcuram2@10000000 {
> +			compatible = "shared-dma-pool";
> +			reg = <0x10000000 0x40000>;
> +			no-map;
> +		};
> +
> +		vdev0vring0: vdev0vring0@10040000 {
> +			compatible = "shared-dma-pool";
> +			reg = <0x10040000 0x1000>;
> +			no-map;
> +		};
> +
> +		vdev0vring1: vdev0vring1@10041000 {
> +			compatible = "shared-dma-pool";
> +			reg = <0x10041000 0x1000>;
> +			no-map;
> +		};
> +
> +		vdev0buffer: vdev0buffer@10042000 {
> +			compatible = "shared-dma-pool";
> +			reg = <0x10042000 0x4000>;
> +			no-map;
> +		};
> +
> +		mcuram: mcuram@30000000 {
> +			compatible = "shared-dma-pool";
> +			reg = <0x30000000 0x40000>;
> +			no-map;
> +		};
> +
> +		retram: retram@38000000 {
> +			compatible = "shared-dma-pool";
> +			reg = <0x38000000 0x10000>;
> +			no-map;
> +		};
> +	};
> +};
> +
> +&adc {
> +	vdd-supply = <&vdd>;
> +	vdda-supply = <&vdda>;
> +	vref-supply = <&vdda>;
> +	status = "okay";
> +
> +	adc1: adc@0 {
> +		st,min-sample-time-nsecs = <5000>;
> +		st,adc-channels = <0>;
> +		status = "okay";
> +	};
> +
> +	adc2: adc@100 {
> +		st,adc-channels = <1>;
> +		st,min-sample-time-nsecs = <5000>;
> +		status = "okay";
> +	};
> +};
> +
> +&dac {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&dac_ch1_pins_a &dac_ch2_pins_a>;
> +	vref-supply = <&vdda>;
> +	status = "okay";
> +
> +	dac1: dac@1 {
> +		status = "okay";
> +	};
> +	dac2: dac@2 {
> +		status = "okay";
> +	};
> +};
> +
> +&dts {
> +	status = "okay";
> +};
> +
> +&i2c4 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&i2c4_pins_a>;
> +	i2c-scl-rising-time-ns = <185>;
> +	i2c-scl-falling-time-ns = <20>;
> +	status = "okay";
> +	/* spare dmas for other usage */
> +	/delete-property/dmas;
> +	/delete-property/dma-names;
> +
> +	rtc@32 {
> +		compatible = "microcrystal,rv8803";
> +		reg = <0x32>;
> +	};
> +
> +	pmic: stpmic@33 {
> +		compatible = "st,stpmic1";
> +		reg = <0x33>;
> +		interrupts-extended = <&gpioa 0 IRQ_TYPE_EDGE_FALLING>;
> +		interrupt-controller;
> +		#interrupt-cells = <2>;
> +		status = "okay";
> +
> +		regulators {
> +			compatible = "st,stpmic1-regulators";
> +			ldo1-supply = <&v3v3>;
> +			ldo2-supply = <&v3v3>;
> +			ldo3-supply = <&vdd_ddr>;
> +			ldo5-supply = <&v3v3>;
> +			ldo6-supply = <&v3v3>;
> +			pwr_sw1-supply = <&bst_out>;
> +			pwr_sw2-supply = <&bst_out>;
> +
> +			vddcore: buck1 {
> +				regulator-name = "vddcore";
> +				regulator-min-microvolt = <800000>;
> +				regulator-max-microvolt = <1350000>;
> +				regulator-always-on;
> +				regulator-initial-mode = <0>;
> +				regulator-over-current-protection;
> +			};
> +
> +			vdd_ddr: buck2 {
> +				regulator-name = "vdd_ddr";
> +				regulator-min-microvolt = <1350000>;
> +				regulator-max-microvolt = <1350000>;
> +				regulator-always-on;
> +				regulator-initial-mode = <0>;
> +				regulator-over-current-protection;
> +			};
> +
> +			vdd: buck3 {
> +				regulator-name = "vdd";
> +				regulator-min-microvolt = <3300000>;
> +				regulator-max-microvolt = <3300000>;
> +				regulator-always-on;
> +				st,mask-reset;
> +				regulator-initial-mode = <0>;
> +				regulator-over-current-protection;
> +			};
> +
> +			v3v3: buck4 {
> +				regulator-name = "v3v3";
> +				regulator-min-microvolt = <3300000>;
> +				regulator-max-microvolt = <3300000>;
> +				regulator-always-on;
> +				regulator-over-current-protection;
> +				regulator-initial-mode = <0>;
> +			};
> +
> +			vdda: ldo1 {
> +				regulator-name = "vdda";
> +				regulator-min-microvolt = <2900000>;
> +				regulator-max-microvolt = <2900000>;
> +				interrupts = <IT_CURLIM_LDO1 0>;
> +			};
> +
> +			v2v8: ldo2 {
> +				regulator-name = "v2v8";
> +				regulator-min-microvolt = <2800000>;
> +				regulator-max-microvolt = <2800000>;
> +				interrupts = <IT_CURLIM_LDO2 0>;
> +			};
> +
> +			vtt_ddr: ldo3 {
> +				regulator-name = "vtt_ddr";
> +				regulator-min-microvolt = <500000>;
> +				regulator-max-microvolt = <750000>;
> +				regulator-always-on;
> +				regulator-over-current-protection;
> +			};
> +
> +			vdd_usb: ldo4 {
> +				regulator-name = "vdd_usb";
> +				regulator-min-microvolt = <3300000>;
> +				regulator-max-microvolt = <3300000>;
> +				interrupts = <IT_CURLIM_LDO4 0>;
> +			};
> +
> +			vdd_sd: ldo5 {
> +				regulator-name = "vdd_sd";
> +				regulator-min-microvolt = <2900000>;
> +				regulator-max-microvolt = <2900000>;
> +				interrupts = <IT_CURLIM_LDO5 0>;
> +				regulator-boot-on;
> +			};
> +
> +			v1v8: ldo6 {
> +				regulator-name = "v1v8";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +				interrupts = <IT_CURLIM_LDO6 0>;
> +			};
> +
> +			vref_ddr: vref_ddr {
> +				regulator-name = "vref_ddr";
> +				regulator-always-on;
> +				regulator-over-current-protection;
> +			};
> +
> +			bst_out: boost {
> +				regulator-name = "bst_out";
> +				interrupts = <IT_OCP_BOOST 0>;
> +			};
> +
> +			vbus_otg: pwr_sw1 {
> +				regulator-name = "vbus_otg";
> +				interrupts = <IT_OCP_OTG 0>;
> +			};
> +
> +			vbus_sw: pwr_sw2 {
> +				regulator-name = "vbus_sw";
> +				interrupts = <IT_OCP_SWOUT 0>;
> +				regulator-active-discharge;
> +			};
> +		};
> +
> +		onkey {
> +			compatible = "st,stpmic1-onkey";
> +			interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 0>;
> +			interrupt-names = "onkey-falling", "onkey-rising";
> +			power-off-time-sec = <10>;
> +			status = "okay";
> +		};
> +
> +		watchdog {
> +			compatible = "st,stpmic1-wdt";
> +			status = "disabled";
> +		};
> +	};
> +
> +	touchscreen@49 {
> +		compatible = "ti,tsc2004";
> +		reg = <0x49>;
> +		vio-supply = <&v3v3>;
> +		interrupts-extended = <&gpioh 3 IRQ_TYPE_EDGE_FALLING>;
> +	};
> +
> +	eeprom@50 {
> +		compatible = "atmel,24c02";
> +		reg = <0x50>;
> +		pagesize = <16>;
> +	};
> +};
> +
> +&ipcc {
> +	status = "okay";
> +};
> +
> +&iwdg2 {
> +	timeout-sec = <32>;
> +	status = "okay";
> +};
> +
> +&m4_rproc {
> +	memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>,
> +			<&vdev0vring1>, <&vdev0buffer>;
> +	mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>;
> +	mbox-names = "vq0", "vq1", "shutdown";
> +	interrupt-parent = <&exti>;
> +	interrupts = <68 1>;
> +	status = "okay";
> +};
> +
> +&pwr_regulators {
> +	vdd-supply = <&vdd>;
> +	vdd_3v3_usbfs-supply = <&vdd_usb>;
> +};
> +
> +&qspi {
> +	pinctrl-names = "default", "sleep";
> +	pinctrl-0 = <&qspi_clk_pins_a &qspi_bk1_pins_a &qspi_bk2_pins_a>;
> +	pinctrl-1 = <&qspi_clk_sleep_pins_a &qspi_bk1_sleep_pins_a &qspi_bk2_sleep_pins_a>;
> +	reg = <0x58003000 0x1000>, <0x70000000 0x4000000>;
> +	#address-cells = <1>;
> +	#size-cells = <0>;
> +	status = "okay";
> +
> +	flash0: mx66l51235l@0 {
> +		compatible = "jedec,spi-nor";
> +		reg = <0>;
> +		spi-rx-bus-width = <4>;
> +		spi-max-frequency = <108000000>;
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +	};
> +};
> +
> +&rng1 {
> +	status = "okay";
> +};
> +
> +&rtc {
> +	status = "okay";
> +};
> +
> +&sdmmc1 {
> +	pinctrl-names = "default", "opendrain", "sleep";
> +	pinctrl-0 = <&sdmmc1_b4_pins_a &sdmmc1_dir_pins_a>;
> +	pinctrl-1 = <&sdmmc1_b4_od_pins_a &sdmmc1_dir_pins_a>;
> +	pinctrl-2 = <&sdmmc1_b4_sleep_pins_a &sdmmc1_dir_sleep_pins_a>;
> +	broken-cd;
> +	st,sig-dir;
> +	st,neg-edge;
> +	st,use-ckin;
> +	bus-width = <4>;
> +	vmmc-supply = <&vdd_sd>;
> +	status = "okay";
> +};
> +
> +&sdmmc2 {
> +	pinctrl-names = "default", "opendrain", "sleep";
> +	pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_a>;
> +	pinctrl-1 = <&sdmmc2_b4_od_pins_a &sdmmc2_d47_pins_a>;
> +	pinctrl-2 = <&sdmmc2_b4_sleep_pins_a &sdmmc2_d47_sleep_pins_a>;
> +	non-removable;
> +	no-sd;
> +	no-sdio;
> +	st,neg-edge;
> +	bus-width = <8>;
> +	vmmc-supply = <&v3v3>;
> +	vqmmc-supply = <&v3v3>;
> +	mmc-ddr-3_3v;
> +	status = "okay";
> +};
> +
> +&sdmmc3 {
> +	pinctrl-names = "default", "opendrain", "sleep";
> +	pinctrl-0 = <&sdmmc3_b4_pins_a>;
> +	pinctrl-1 = <&sdmmc3_b4_od_pins_a>;
> +	pinctrl-2 = <&sdmmc3_b4_sleep_pins_a>;
> +	broken-cd;
> +	st,neg-edge;
> +	bus-width = <4>;
> +	vmmc-supply = <&v3v3>;
> +	vqmmc-supply = <&v3v3>;
> +	mmc-ddr-3_3v;
> +	status = "okay";
> +};
> +
> +&uart4 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&uart4_pins_a>;
> +	status = "okay";
> +};
> 

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] [RFC] ARM: dts: stm32: Add DTs for STM32MP15x variants of the DH SOM and PDK2
  2020-03-24 13:04 ` Alexandre Torgue
@ 2020-03-24 13:22   ` Marek Vasut
  2020-03-24 14:07     ` Alexandre Torgue
  0 siblings, 1 reply; 11+ messages in thread
From: Marek Vasut @ 2020-03-24 13:22 UTC (permalink / raw)
  To: Alexandre Torgue, linux-arm-kernel
  Cc: Patrick Delaunay, Patrice Chotard, Maxime Coquelin, linux-stm32

On 3/24/20 2:04 PM, Alexandre Torgue wrote:
> 
> 
> On 3/23/20 3:31 AM, Marek Vasut wrote:
>> The DH PDK2 can be populated with SoM with any STM32MP15x variant.
>> Add the DTs describing the remaining combinations.
>>
>> Signed-off-by: Marek Vasut <marex@denx.de>
>> Cc: Alexandre Torgue <alexandre.torgue@st.com>
>> Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com>
>> Cc: Patrice Chotard <patrice.chotard@st.com>
>> Cc: Patrick Delaunay <patrick.delaunay@st.com>
>> Cc: linux-stm32@st-md-mailman.stormreply.com
>> To: linux-arm-kernel@lists.infradead.org
>> ---
>> NOTE: Is there a better way to do this than to have this kind of a
>>     combinatorial explosion of DTs ?
> 
> I have no better idea. Question was the same for stm32 boards, and I
> chose to take this option.

One option would be to just have DT for the most feature-complete option
(157) and then have U-Boot remove the nodes for HW which is not present
on the particular SoC option if it's one of the more limited ones (153,
151).

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] [RFC] ARM: dts: stm32: Add DTs for STM32MP15x variants of the DH SOM and PDK2
  2020-03-24 13:22   ` Marek Vasut
@ 2020-03-24 14:07     ` Alexandre Torgue
  2020-03-24 14:15       ` Marek Vasut
  0 siblings, 1 reply; 11+ messages in thread
From: Alexandre Torgue @ 2020-03-24 14:07 UTC (permalink / raw)
  To: Marek Vasut, linux-arm-kernel
  Cc: Patrick Delaunay, Patrice Chotard, Maxime Coquelin, linux-stm32



On 3/24/20 2:22 PM, Marek Vasut wrote:
> On 3/24/20 2:04 PM, Alexandre Torgue wrote:
>>
>>
>> On 3/23/20 3:31 AM, Marek Vasut wrote:
>>> The DH PDK2 can be populated with SoM with any STM32MP15x variant.
>>> Add the DTs describing the remaining combinations.
>>>
>>> Signed-off-by: Marek Vasut <marex@denx.de>
>>> Cc: Alexandre Torgue <alexandre.torgue@st.com>
>>> Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com>
>>> Cc: Patrice Chotard <patrice.chotard@st.com>
>>> Cc: Patrick Delaunay <patrick.delaunay@st.com>
>>> Cc: linux-stm32@st-md-mailman.stormreply.com
>>> To: linux-arm-kernel@lists.infradead.org
>>> ---
>>> NOTE: Is there a better way to do this than to have this kind of a
>>>      combinatorial explosion of DTs ?
>>
>> I have no better idea. Question was the same for stm32 boards, and I
>> chose to take this option.
> 
> One option would be to just have DT for the most feature-complete option
> (157) and then have U-Boot remove the nodes for HW which is not present
> on the particular SoC option if it's one of the more limited ones (153,
> 151).
> 

Yes it was a possibility that I discussed with kevin H. at the latest 
ELCE but at the end the best way to follow was to enhance number of dts 
files. The best would be to have dedicated folders but it is another story.

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] [RFC] ARM: dts: stm32: Add DTs for STM32MP15x variants of the DH SOM and PDK2
  2020-03-24 14:07     ` Alexandre Torgue
@ 2020-03-24 14:15       ` Marek Vasut
  2020-03-24 14:28         ` Alexandre Torgue
  0 siblings, 1 reply; 11+ messages in thread
From: Marek Vasut @ 2020-03-24 14:15 UTC (permalink / raw)
  To: Alexandre Torgue, linux-arm-kernel
  Cc: Patrick Delaunay, Patrice Chotard, Maxime Coquelin, linux-stm32

On 3/24/20 3:07 PM, Alexandre Torgue wrote:
> 
> 
> On 3/24/20 2:22 PM, Marek Vasut wrote:
>> On 3/24/20 2:04 PM, Alexandre Torgue wrote:
>>>
>>>
>>> On 3/23/20 3:31 AM, Marek Vasut wrote:
>>>> The DH PDK2 can be populated with SoM with any STM32MP15x variant.
>>>> Add the DTs describing the remaining combinations.
>>>>
>>>> Signed-off-by: Marek Vasut <marex@denx.de>
>>>> Cc: Alexandre Torgue <alexandre.torgue@st.com>
>>>> Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com>
>>>> Cc: Patrice Chotard <patrice.chotard@st.com>
>>>> Cc: Patrick Delaunay <patrick.delaunay@st.com>
>>>> Cc: linux-stm32@st-md-mailman.stormreply.com
>>>> To: linux-arm-kernel@lists.infradead.org
>>>> ---
>>>> NOTE: Is there a better way to do this than to have this kind of a
>>>>      combinatorial explosion of DTs ?
>>>
>>> I have no better idea. Question was the same for stm32 boards, and I
>>> chose to take this option.
>>
>> One option would be to just have DT for the most feature-complete option
>> (157) and then have U-Boot remove the nodes for HW which is not present
>> on the particular SoC option if it's one of the more limited ones (153,
>> 151).
>>
> 
> Yes it was a possibility that I discussed with kevin H. at the latest
> ELCE but at the end the best way to follow was to enhance number of dts
> files. The best would be to have dedicated folders but it is another story.

Or use DT overlays somehow ? U-Boot can apply DTOs onto DT before
booting Linux.

Having tons of DTs on a system is a lot of duplication, I don't really
like that.

But for starters, feel free to review this patch.

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] [RFC] ARM: dts: stm32: Add DTs for STM32MP15x variants of the DH SOM and PDK2
  2020-03-24 14:15       ` Marek Vasut
@ 2020-03-24 14:28         ` Alexandre Torgue
  2020-03-24 14:31           ` Marek Vasut
  0 siblings, 1 reply; 11+ messages in thread
From: Alexandre Torgue @ 2020-03-24 14:28 UTC (permalink / raw)
  To: Marek Vasut, linux-arm-kernel
  Cc: Patrick Delaunay, Patrice Chotard, Maxime Coquelin, linux-stm32



On 3/24/20 3:15 PM, Marek Vasut wrote:
> On 3/24/20 3:07 PM, Alexandre Torgue wrote:
>>
>>
>> On 3/24/20 2:22 PM, Marek Vasut wrote:
>>> On 3/24/20 2:04 PM, Alexandre Torgue wrote:
>>>>
>>>>
>>>> On 3/23/20 3:31 AM, Marek Vasut wrote:
>>>>> The DH PDK2 can be populated with SoM with any STM32MP15x variant.
>>>>> Add the DTs describing the remaining combinations.
>>>>>
>>>>> Signed-off-by: Marek Vasut <marex@denx.de>
>>>>> Cc: Alexandre Torgue <alexandre.torgue@st.com>
>>>>> Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com>
>>>>> Cc: Patrice Chotard <patrice.chotard@st.com>
>>>>> Cc: Patrick Delaunay <patrick.delaunay@st.com>
>>>>> Cc: linux-stm32@st-md-mailman.stormreply.com
>>>>> To: linux-arm-kernel@lists.infradead.org
>>>>> ---
>>>>> NOTE: Is there a better way to do this than to have this kind of a
>>>>>       combinatorial explosion of DTs ?
>>>>
>>>> I have no better idea. Question was the same for stm32 boards, and I
>>>> chose to take this option.
>>>
>>> One option would be to just have DT for the most feature-complete option
>>> (157) and then have U-Boot remove the nodes for HW which is not present
>>> on the particular SoC option if it's one of the more limited ones (153,
>>> 151).
>>>
>>
>> Yes it was a possibility that I discussed with kevin H. at the latest
>> ELCE but at the end the best way to follow was to enhance number of dts
>> files. The best would be to have dedicated folders but it is another story.
> 
> Or use DT overlays somehow ? U-Boot can apply DTOs onto DT before
> booting Linux.
> 
> Having tons of DTs on a system is a lot of duplication, I don't really
> like that.

I agree that to maintain it's a nightmare, but it's a way to help DT users.

> 
> But for starters, feel free to review this patch.
> 

Your patch sounds good.

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] [RFC] ARM: dts: stm32: Add DTs for STM32MP15x variants of the DH SOM and PDK2
  2020-03-24 14:28         ` Alexandre Torgue
@ 2020-03-24 14:31           ` Marek Vasut
  2020-03-24 14:39             ` Alexandre TORGUE
  0 siblings, 1 reply; 11+ messages in thread
From: Marek Vasut @ 2020-03-24 14:31 UTC (permalink / raw)
  To: Alexandre Torgue, linux-arm-kernel
  Cc: Patrick Delaunay, Patrice Chotard, Maxime Coquelin, linux-stm32

On 3/24/20 3:28 PM, Alexandre Torgue wrote:
> 
> 
> On 3/24/20 3:15 PM, Marek Vasut wrote:
>> On 3/24/20 3:07 PM, Alexandre Torgue wrote:
>>>
>>>
>>> On 3/24/20 2:22 PM, Marek Vasut wrote:
>>>> On 3/24/20 2:04 PM, Alexandre Torgue wrote:
>>>>>
>>>>>
>>>>> On 3/23/20 3:31 AM, Marek Vasut wrote:
>>>>>> The DH PDK2 can be populated with SoM with any STM32MP15x variant.
>>>>>> Add the DTs describing the remaining combinations.
>>>>>>
>>>>>> Signed-off-by: Marek Vasut <marex@denx.de>
>>>>>> Cc: Alexandre Torgue <alexandre.torgue@st.com>
>>>>>> Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com>
>>>>>> Cc: Patrice Chotard <patrice.chotard@st.com>
>>>>>> Cc: Patrick Delaunay <patrick.delaunay@st.com>
>>>>>> Cc: linux-stm32@st-md-mailman.stormreply.com
>>>>>> To: linux-arm-kernel@lists.infradead.org
>>>>>> ---
>>>>>> NOTE: Is there a better way to do this than to have this kind of a
>>>>>>       combinatorial explosion of DTs ?
>>>>>
>>>>> I have no better idea. Question was the same for stm32 boards, and I
>>>>> chose to take this option.
>>>>
>>>> One option would be to just have DT for the most feature-complete
>>>> option
>>>> (157) and then have U-Boot remove the nodes for HW which is not present
>>>> on the particular SoC option if it's one of the more limited ones (153,
>>>> 151).
>>>>
>>>
>>> Yes it was a possibility that I discussed with kevin H. at the latest
>>> ELCE but at the end the best way to follow was to enhance number of dts
>>> files. The best would be to have dedicated folders but it is another
>>> story.
>>
>> Or use DT overlays somehow ? U-Boot can apply DTOs onto DT before
>> booting Linux.
>>
>> Having tons of DTs on a system is a lot of duplication, I don't really
>> like that.
> 
> I agree that to maintain it's a nightmare, but it's a way to help DT users.
> 
>>
>> But for starters, feel free to review this patch.
>>
> 
> Your patch sounds good.

Then feel free to apply it, thanks.

btw don't you have a "next" tree somewhere with all the patches queued
up for next release ? If I rebase on linux next, I still have quite a
few stm32mp1 DT patches in my tree which are presumably applied, but I
don't see them in linux next.

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 11+ messages in thread

* RE: [PATCH] [RFC] ARM: dts: stm32: Add DTs for STM32MP15x variants of the DH SOM and PDK2
  2020-03-24 14:31           ` Marek Vasut
@ 2020-03-24 14:39             ` Alexandre TORGUE
  2020-03-24 14:58               ` Marek Vasut
  0 siblings, 1 reply; 11+ messages in thread
From: Alexandre TORGUE @ 2020-03-24 14:39 UTC (permalink / raw)
  To: Marek Vasut, linux-arm-kernel
  Cc: Patrick DELAUNAY, Patrice CHOTARD, Maxime Coquelin, linux-stm32



> -----Original Message-----
> From: Marek Vasut <marex@denx.de>
> Sent: mardi 24 mars 2020 15:31
> To: Alexandre TORGUE <alexandre.torgue@st.com>; linux-arm-
> kernel@lists.infradead.org
> Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com>; Patrice CHOTARD
> <patrice.chotard@st.com>; Patrick DELAUNAY <patrick.delaunay@st.com>; linux-
> stm32@st-md-mailman.stormreply.com
> Subject: Re: [PATCH] [RFC] ARM: dts: stm32: Add DTs for STM32MP15x variants
> of the DH SOM and PDK2
> 
> On 3/24/20 3:28 PM, Alexandre Torgue wrote:
> >
> >
> > On 3/24/20 3:15 PM, Marek Vasut wrote:
> >> On 3/24/20 3:07 PM, Alexandre Torgue wrote:
> >>>
> >>>
> >>> On 3/24/20 2:22 PM, Marek Vasut wrote:
> >>>> On 3/24/20 2:04 PM, Alexandre Torgue wrote:
> >>>>>
> >>>>>
> >>>>> On 3/23/20 3:31 AM, Marek Vasut wrote:
> >>>>>> The DH PDK2 can be populated with SoM with any STM32MP15x variant.
> >>>>>> Add the DTs describing the remaining combinations.
> >>>>>>
> >>>>>> Signed-off-by: Marek Vasut <marex@denx.de>
> >>>>>> Cc: Alexandre Torgue <alexandre.torgue@st.com>
> >>>>>> Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com>
> >>>>>> Cc: Patrice Chotard <patrice.chotard@st.com>
> >>>>>> Cc: Patrick Delaunay <patrick.delaunay@st.com>
> >>>>>> Cc: linux-stm32@st-md-mailman.stormreply.com
> >>>>>> To: linux-arm-kernel@lists.infradead.org
> >>>>>> ---
> >>>>>> NOTE: Is there a better way to do this than to have this kind of
> >>>>>> a
> >>>>>>       combinatorial explosion of DTs ?
> >>>>>
> >>>>> I have no better idea. Question was the same for stm32 boards, and
> >>>>> I chose to take this option.
> >>>>
> >>>> One option would be to just have DT for the most feature-complete
> >>>> option
> >>>> (157) and then have U-Boot remove the nodes for HW which is not
> >>>> present on the particular SoC option if it's one of the more
> >>>> limited ones (153, 151).
> >>>>
> >>>
> >>> Yes it was a possibility that I discussed with kevin H. at the
> >>> latest ELCE but at the end the best way to follow was to enhance
> >>> number of dts files. The best would be to have dedicated folders but
> >>> it is another story.
> >>
> >> Or use DT overlays somehow ? U-Boot can apply DTOs onto DT before
> >> booting Linux.
> >>
> >> Having tons of DTs on a system is a lot of duplication, I don't
> >> really like that.
> >
> > I agree that to maintain it's a nightmare, but it's a way to help DT users.
> >
> >>
> >> But for starters, feel free to review this patch.
> >>
> >
> > Your patch sounds good.
> 
> Then feel free to apply it, thanks.
> 
> btw don't you have a "next" tree somewhere with all the patches queued up for
> next release ? If I rebase on linux next, I still have quite a few stm32mp1 DT
> patches in my tree which are presumably applied, but I don't see them in linux next.


Yes but it is not merged into Linux-next. See: git://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32.git

Branch stm32-next


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] [RFC] ARM: dts: stm32: Add DTs for STM32MP15x variants of the DH SOM and PDK2
  2020-03-24 14:39             ` Alexandre TORGUE
@ 2020-03-24 14:58               ` Marek Vasut
  2020-03-24 15:17                 ` Alexandre Torgue
  0 siblings, 1 reply; 11+ messages in thread
From: Marek Vasut @ 2020-03-24 14:58 UTC (permalink / raw)
  To: Alexandre TORGUE, linux-arm-kernel
  Cc: Patrick DELAUNAY, Patrice CHOTARD, Maxime Coquelin, linux-stm32

On 3/24/20 3:39 PM, Alexandre TORGUE wrote:
> 
> 
>> -----Original Message-----
>> From: Marek Vasut <marex@denx.de>
>> Sent: mardi 24 mars 2020 15:31
>> To: Alexandre TORGUE <alexandre.torgue@st.com>; linux-arm-
>> kernel@lists.infradead.org
>> Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com>; Patrice CHOTARD
>> <patrice.chotard@st.com>; Patrick DELAUNAY <patrick.delaunay@st.com>; linux-
>> stm32@st-md-mailman.stormreply.com
>> Subject: Re: [PATCH] [RFC] ARM: dts: stm32: Add DTs for STM32MP15x variants
>> of the DH SOM and PDK2
>>
>> On 3/24/20 3:28 PM, Alexandre Torgue wrote:
>>>
>>>
>>> On 3/24/20 3:15 PM, Marek Vasut wrote:
>>>> On 3/24/20 3:07 PM, Alexandre Torgue wrote:
>>>>>
>>>>>
>>>>> On 3/24/20 2:22 PM, Marek Vasut wrote:
>>>>>> On 3/24/20 2:04 PM, Alexandre Torgue wrote:
>>>>>>>
>>>>>>>
>>>>>>> On 3/23/20 3:31 AM, Marek Vasut wrote:
>>>>>>>> The DH PDK2 can be populated with SoM with any STM32MP15x variant.
>>>>>>>> Add the DTs describing the remaining combinations.
>>>>>>>>
>>>>>>>> Signed-off-by: Marek Vasut <marex@denx.de>
>>>>>>>> Cc: Alexandre Torgue <alexandre.torgue@st.com>
>>>>>>>> Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com>
>>>>>>>> Cc: Patrice Chotard <patrice.chotard@st.com>
>>>>>>>> Cc: Patrick Delaunay <patrick.delaunay@st.com>
>>>>>>>> Cc: linux-stm32@st-md-mailman.stormreply.com
>>>>>>>> To: linux-arm-kernel@lists.infradead.org
>>>>>>>> ---
>>>>>>>> NOTE: Is there a better way to do this than to have this kind of
>>>>>>>> a
>>>>>>>>       combinatorial explosion of DTs ?
>>>>>>>
>>>>>>> I have no better idea. Question was the same for stm32 boards, and
>>>>>>> I chose to take this option.
>>>>>>
>>>>>> One option would be to just have DT for the most feature-complete
>>>>>> option
>>>>>> (157) and then have U-Boot remove the nodes for HW which is not
>>>>>> present on the particular SoC option if it's one of the more
>>>>>> limited ones (153, 151).
>>>>>>
>>>>>
>>>>> Yes it was a possibility that I discussed with kevin H. at the
>>>>> latest ELCE but at the end the best way to follow was to enhance
>>>>> number of dts files. The best would be to have dedicated folders but
>>>>> it is another story.
>>>>
>>>> Or use DT overlays somehow ? U-Boot can apply DTOs onto DT before
>>>> booting Linux.
>>>>
>>>> Having tons of DTs on a system is a lot of duplication, I don't
>>>> really like that.
>>>
>>> I agree that to maintain it's a nightmare, but it's a way to help DT users.
>>>
>>>>
>>>> But for starters, feel free to review this patch.
>>>>
>>>
>>> Your patch sounds good.
>>
>> Then feel free to apply it, thanks.
>>
>> btw don't you have a "next" tree somewhere with all the patches queued up for
>> next release ? If I rebase on linux next, I still have quite a few stm32mp1 DT
>> patches in my tree which are presumably applied, but I don't see them in linux next.
> 
> 
> Yes but it is not merged into Linux-next. See: git://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32.git
> 
> Branch stm32-next

Thanks. Wouldn't it be more convenient and receive more testing if it
were to be merged into next, just like the other trees are ?

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] [RFC] ARM: dts: stm32: Add DTs for STM32MP15x variants of the DH SOM and PDK2
  2020-03-24 14:58               ` Marek Vasut
@ 2020-03-24 15:17                 ` Alexandre Torgue
  2020-03-24 15:22                   ` Marek Vasut
  0 siblings, 1 reply; 11+ messages in thread
From: Alexandre Torgue @ 2020-03-24 15:17 UTC (permalink / raw)
  To: Marek Vasut, linux-arm-kernel
  Cc: Patrick DELAUNAY, Patrice CHOTARD, Maxime Coquelin, linux-stm32



On 3/24/20 3:58 PM, Marek Vasut wrote:
> On 3/24/20 3:39 PM, Alexandre TORGUE wrote:
>>
>>
>>> -----Original Message-----
>>> From: Marek Vasut <marex@denx.de>
>>> Sent: mardi 24 mars 2020 15:31
>>> To: Alexandre TORGUE <alexandre.torgue@st.com>; linux-arm-
>>> kernel@lists.infradead.org
>>> Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com>; Patrice CHOTARD
>>> <patrice.chotard@st.com>; Patrick DELAUNAY <patrick.delaunay@st.com>; linux-
>>> stm32@st-md-mailman.stormreply.com
>>> Subject: Re: [PATCH] [RFC] ARM: dts: stm32: Add DTs for STM32MP15x variants
>>> of the DH SOM and PDK2
>>>
>>> On 3/24/20 3:28 PM, Alexandre Torgue wrote:
>>>>
>>>>
>>>> On 3/24/20 3:15 PM, Marek Vasut wrote:
>>>>> On 3/24/20 3:07 PM, Alexandre Torgue wrote:
>>>>>>
>>>>>>
>>>>>> On 3/24/20 2:22 PM, Marek Vasut wrote:
>>>>>>> On 3/24/20 2:04 PM, Alexandre Torgue wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>> On 3/23/20 3:31 AM, Marek Vasut wrote:
>>>>>>>>> The DH PDK2 can be populated with SoM with any STM32MP15x variant.
>>>>>>>>> Add the DTs describing the remaining combinations.
>>>>>>>>>
>>>>>>>>> Signed-off-by: Marek Vasut <marex@denx.de>
>>>>>>>>> Cc: Alexandre Torgue <alexandre.torgue@st.com>
>>>>>>>>> Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com>
>>>>>>>>> Cc: Patrice Chotard <patrice.chotard@st.com>
>>>>>>>>> Cc: Patrick Delaunay <patrick.delaunay@st.com>
>>>>>>>>> Cc: linux-stm32@st-md-mailman.stormreply.com
>>>>>>>>> To: linux-arm-kernel@lists.infradead.org
>>>>>>>>> ---
>>>>>>>>> NOTE: Is there a better way to do this than to have this kind of
>>>>>>>>> a
>>>>>>>>>        combinatorial explosion of DTs ?
>>>>>>>>
>>>>>>>> I have no better idea. Question was the same for stm32 boards, and
>>>>>>>> I chose to take this option.
>>>>>>>
>>>>>>> One option would be to just have DT for the most feature-complete
>>>>>>> option
>>>>>>> (157) and then have U-Boot remove the nodes for HW which is not
>>>>>>> present on the particular SoC option if it's one of the more
>>>>>>> limited ones (153, 151).
>>>>>>>
>>>>>>
>>>>>> Yes it was a possibility that I discussed with kevin H. at the
>>>>>> latest ELCE but at the end the best way to follow was to enhance
>>>>>> number of dts files. The best would be to have dedicated folders but
>>>>>> it is another story.
>>>>>
>>>>> Or use DT overlays somehow ? U-Boot can apply DTOs onto DT before
>>>>> booting Linux.
>>>>>
>>>>> Having tons of DTs on a system is a lot of duplication, I don't
>>>>> really like that.
>>>>
>>>> I agree that to maintain it's a nightmare, but it's a way to help DT users.
>>>>
>>>>>
>>>>> But for starters, feel free to review this patch.
>>>>>
>>>>
>>>> Your patch sounds good.
>>>
>>> Then feel free to apply it, thanks.
>>>
>>> btw don't you have a "next" tree somewhere with all the patches queued up for
>>> next release ? If I rebase on linux next, I still have quite a few stm32mp1 DT
>>> patches in my tree which are presumably applied, but I don't see them in linux next.
>>
>>
>> Yes but it is not merged into Linux-next. See: git://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32.git
>>
>> Branch stm32-next
> 
> Thanks. Wouldn't it be more convenient and receive more testing if it
> were to be merged into next, just like the other trees are ?
> 
I completely agree with you! Other arm trees are merged ?

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] [RFC] ARM: dts: stm32: Add DTs for STM32MP15x variants of the DH SOM and PDK2
  2020-03-24 15:17                 ` Alexandre Torgue
@ 2020-03-24 15:22                   ` Marek Vasut
  0 siblings, 0 replies; 11+ messages in thread
From: Marek Vasut @ 2020-03-24 15:22 UTC (permalink / raw)
  To: Alexandre Torgue, linux-arm-kernel
  Cc: Patrick DELAUNAY, Patrice CHOTARD, Maxime Coquelin, linux-stm32

On 3/24/20 4:17 PM, Alexandre Torgue wrote:
> 
> 
> On 3/24/20 3:58 PM, Marek Vasut wrote:
>> On 3/24/20 3:39 PM, Alexandre TORGUE wrote:
>>>
>>>
>>>> -----Original Message-----
>>>> From: Marek Vasut <marex@denx.de>
>>>> Sent: mardi 24 mars 2020 15:31
>>>> To: Alexandre TORGUE <alexandre.torgue@st.com>; linux-arm-
>>>> kernel@lists.infradead.org
>>>> Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com>; Patrice CHOTARD
>>>> <patrice.chotard@st.com>; Patrick DELAUNAY
>>>> <patrick.delaunay@st.com>; linux-
>>>> stm32@st-md-mailman.stormreply.com
>>>> Subject: Re: [PATCH] [RFC] ARM: dts: stm32: Add DTs for STM32MP15x
>>>> variants
>>>> of the DH SOM and PDK2
>>>>
>>>> On 3/24/20 3:28 PM, Alexandre Torgue wrote:
>>>>>
>>>>>
>>>>> On 3/24/20 3:15 PM, Marek Vasut wrote:
>>>>>> On 3/24/20 3:07 PM, Alexandre Torgue wrote:
>>>>>>>
>>>>>>>
>>>>>>> On 3/24/20 2:22 PM, Marek Vasut wrote:
>>>>>>>> On 3/24/20 2:04 PM, Alexandre Torgue wrote:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On 3/23/20 3:31 AM, Marek Vasut wrote:
>>>>>>>>>> The DH PDK2 can be populated with SoM with any STM32MP15x
>>>>>>>>>> variant.
>>>>>>>>>> Add the DTs describing the remaining combinations.
>>>>>>>>>>
>>>>>>>>>> Signed-off-by: Marek Vasut <marex@denx.de>
>>>>>>>>>> Cc: Alexandre Torgue <alexandre.torgue@st.com>
>>>>>>>>>> Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com>
>>>>>>>>>> Cc: Patrice Chotard <patrice.chotard@st.com>
>>>>>>>>>> Cc: Patrick Delaunay <patrick.delaunay@st.com>
>>>>>>>>>> Cc: linux-stm32@st-md-mailman.stormreply.com
>>>>>>>>>> To: linux-arm-kernel@lists.infradead.org
>>>>>>>>>> ---
>>>>>>>>>> NOTE: Is there a better way to do this than to have this kind of
>>>>>>>>>> a
>>>>>>>>>>        combinatorial explosion of DTs ?
>>>>>>>>>
>>>>>>>>> I have no better idea. Question was the same for stm32 boards, and
>>>>>>>>> I chose to take this option.
>>>>>>>>
>>>>>>>> One option would be to just have DT for the most feature-complete
>>>>>>>> option
>>>>>>>> (157) and then have U-Boot remove the nodes for HW which is not
>>>>>>>> present on the particular SoC option if it's one of the more
>>>>>>>> limited ones (153, 151).
>>>>>>>>
>>>>>>>
>>>>>>> Yes it was a possibility that I discussed with kevin H. at the
>>>>>>> latest ELCE but at the end the best way to follow was to enhance
>>>>>>> number of dts files. The best would be to have dedicated folders but
>>>>>>> it is another story.
>>>>>>
>>>>>> Or use DT overlays somehow ? U-Boot can apply DTOs onto DT before
>>>>>> booting Linux.
>>>>>>
>>>>>> Having tons of DTs on a system is a lot of duplication, I don't
>>>>>> really like that.
>>>>>
>>>>> I agree that to maintain it's a nightmare, but it's a way to help
>>>>> DT users.
>>>>>
>>>>>>
>>>>>> But for starters, feel free to review this patch.
>>>>>>
>>>>>
>>>>> Your patch sounds good.
>>>>
>>>> Then feel free to apply it, thanks.
>>>>
>>>> btw don't you have a "next" tree somewhere with all the patches
>>>> queued up for
>>>> next release ? If I rebase on linux next, I still have quite a few
>>>> stm32mp1 DT
>>>> patches in my tree which are presumably applied, but I don't see
>>>> them in linux next.
>>>
>>>
>>> Yes but it is not merged into Linux-next. See:
>>> git://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32.git
>>>
>>> Branch stm32-next
>>
>> Thanks. Wouldn't it be more convenient and receive more testing if it
>> were to be merged into next, just like the other trees are ?
>>
> I completely agree with you! Other arm trees are merged ?

Seems like iMX stuff keeps landing in next, which is nice.

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2020-03-24 15:22 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-23  2:31 [PATCH] [RFC] ARM: dts: stm32: Add DTs for STM32MP15x variants of the DH SOM and PDK2 Marek Vasut
2020-03-24 13:04 ` Alexandre Torgue
2020-03-24 13:22   ` Marek Vasut
2020-03-24 14:07     ` Alexandre Torgue
2020-03-24 14:15       ` Marek Vasut
2020-03-24 14:28         ` Alexandre Torgue
2020-03-24 14:31           ` Marek Vasut
2020-03-24 14:39             ` Alexandre TORGUE
2020-03-24 14:58               ` Marek Vasut
2020-03-24 15:17                 ` Alexandre Torgue
2020-03-24 15:22                   ` Marek Vasut

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.