All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 0/3] ARM: dts: stm32: udpate device tree for v2020.01
@ 2019-11-06 15:16 Patrick Delaunay
  2019-11-06 15:16 ` [U-Boot] [PATCH 1/3] ARM: dts: stm32: DT alignment with kernel v5.3 Patrick Delaunay
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Patrick Delaunay @ 2019-11-06 15:16 UTC (permalink / raw)
  To: u-boot


Alignment of the device tree for all STM32 boards (MCU/MPU)
with the latest Linux kernel and solve STM32MP157c-EV1 issue
for eMMC on SDMMC2.

All the boards (except avenger96i: not available) correctly boot
after the patches.



Patrick Delaunay (3):
  ARM: dts: stm32: DT alignment with kernel v5.3
  ARM: dts: stm32: DT alignment with kernel v5.4-rc4
  ARM: dts: stm32: update eMMC configuration for stm32mp157c-ev1

 arch/arm/dts/st-pincfg.h                      |   1 +
 arch/arm/dts/stm32429i-eval.dts               |  29 ++--
 arch/arm/dts/stm32746g-eval.dts               | 105 +++++++++-----
 arch/arm/dts/stm32f4-pinctrl.dtsi             |  38 +-----
 arch/arm/dts/stm32f429-disco.dts              |  40 +-----
 arch/arm/dts/stm32f429-pinctrl.dtsi           |  38 +-----
 arch/arm/dts/stm32f429.dtsi                   | 127 +++++++++++------
 arch/arm/dts/stm32f469-disco.dts              |  39 +-----
 arch/arm/dts/stm32f469-pinctrl.dtsi           |  39 +-----
 arch/arm/dts/stm32f469.dtsi                   |   2 +-
 arch/arm/dts/stm32f746-disco.dts              |  39 +-----
 arch/arm/dts/stm32f746.dtsi                   |  54 +++-----
 arch/arm/dts/stm32f769-disco.dts              |  43 +-----
 arch/arm/dts/stm32h7-u-boot.dtsi              |  41 +-----
 arch/arm/dts/stm32h743-pinctrl.dtsi           |  83 +++++++++++
 arch/arm/dts/stm32h743.dtsi                   |  69 +++++-----
 arch/arm/dts/stm32h743i-disco-u-boot.dtsi     |   8 --
 arch/arm/dts/stm32h743i-disco.dts             |  76 ++++++-----
 arch/arm/dts/stm32h743i-eval-u-boot.dtsi      |   9 --
 arch/arm/dts/stm32h743i-eval.dts              |  42 +++++-
 arch/arm/dts/stm32mp157-pinctrl.dtsi          |  59 +++++++-
 .../arm/dts/stm32mp157a-avenger96-u-boot.dtsi |   5 +-
 arch/arm/dts/stm32mp157a-dk1.dts              | 129 ++++++++++++++++++
 arch/arm/dts/stm32mp157c-ed1-u-boot.dtsi      |   5 +-
 arch/arm/dts/stm32mp157c-ed1.dts              |  51 ++++++-
 arch/arm/dts/stm32mp157c-ev1.dts              |   3 +-
 arch/arm/dts/stm32mp157c.dtsi                 |  26 ++++
 include/dt-bindings/clock/stm32fx-clock.h     |   9 +-
 include/dt-bindings/mfd/st,stpmic1.h          |   4 +
 include/dt-bindings/mfd/stm32f7-rcc.h         |   1 +
 include/dt-bindings/mfd/stm32h7-rcc.h         |   2 +-
 31 files changed, 682 insertions(+), 534 deletions(-)

-- 
2.17.1

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

* [U-Boot] [PATCH 1/3] ARM: dts: stm32: DT alignment with kernel v5.3
  2019-11-06 15:16 [U-Boot] [PATCH 0/3] ARM: dts: stm32: udpate device tree for v2020.01 Patrick Delaunay
@ 2019-11-06 15:16 ` Patrick Delaunay
  2019-11-26  9:06   ` Patrice CHOTARD
  2019-11-27 13:36   ` Patrick DELAUNAY
  2019-11-06 15:16 ` [U-Boot] [PATCH 2/3] ARM: dts: stm32: DT alignment with kernel v5.4-rc4 Patrick Delaunay
  2019-11-06 15:16 ` [U-Boot] [PATCH 3/3] ARM: dts: stm32: update eMMC configuration for stm32mp157c-ev1 Patrick Delaunay
  2 siblings, 2 replies; 9+ messages in thread
From: Patrick Delaunay @ 2019-11-06 15:16 UTC (permalink / raw)
  To: u-boot

Device tree and binding alignment with kernel v5.3
and converted to SPDX.

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
---

 arch/arm/dts/stm32429i-eval.dts           |   4 +-
 arch/arm/dts/stm32746g-eval.dts           | 105 +++++++++++++-------
 arch/arm/dts/stm32f4-pinctrl.dtsi         |  38 +------
 arch/arm/dts/stm32f429-disco.dts          |  40 +-------
 arch/arm/dts/stm32f429-pinctrl.dtsi       |  38 +------
 arch/arm/dts/stm32f429.dtsi               | 115 +++++++++++++++-------
 arch/arm/dts/stm32f469-disco.dts          |  39 +-------
 arch/arm/dts/stm32f469-pinctrl.dtsi       |  39 +-------
 arch/arm/dts/stm32f469.dtsi               |   2 +-
 arch/arm/dts/stm32f746-disco.dts          |  39 +-------
 arch/arm/dts/stm32f746.dtsi               |  42 +-------
 arch/arm/dts/stm32f769-disco.dts          |  43 ++------
 arch/arm/dts/stm32h7-u-boot.dtsi          |  41 +-------
 arch/arm/dts/stm32h743-pinctrl.dtsi       |  83 ++++++++++++++++
 arch/arm/dts/stm32h743.dtsi               |  69 ++++++-------
 arch/arm/dts/stm32h743i-disco-u-boot.dtsi |   8 --
 arch/arm/dts/stm32h743i-disco.dts         |  76 +++++++-------
 arch/arm/dts/stm32h743i-eval-u-boot.dtsi  |   9 --
 arch/arm/dts/stm32h743i-eval.dts          |  41 +++++++-
 arch/arm/dts/stm32mp157c-ed1.dts          |   4 +-
 include/dt-bindings/clock/stm32fx-clock.h |   9 +-
 include/dt-bindings/mfd/st,stpmic1.h      |   4 +
 22 files changed, 377 insertions(+), 511 deletions(-)

diff --git a/arch/arm/dts/stm32429i-eval.dts b/arch/arm/dts/stm32429i-eval.dts
index 1eec951188..bd41ae3c14 100644
--- a/arch/arm/dts/stm32429i-eval.dts
+++ b/arch/arm/dts/stm32429i-eval.dts
@@ -20,6 +20,7 @@
 	};
 
 	memory {
+		device_type = "memory";
 		reg = <0x00000000 0x2000000>;
 	};
 
@@ -72,6 +73,7 @@
 
 	gpio_keys {
 		compatible = "gpio-keys";
+		#address-cells = <1>;
 		#size-cells = <0>;
 		autorepeat;
 		button at 0 {
@@ -227,7 +229,7 @@
 	pinctrl-0 = <&sdio_pins>;
 	pinctrl-1 = <&sdio_pins_od>;
 	bus-width = <4>;
-	max-frequency = <14000000>;
+	max-frequency = <12500000>;
 };
 
 &timers1 {
diff --git a/arch/arm/dts/stm32746g-eval.dts b/arch/arm/dts/stm32746g-eval.dts
index 8c081eaf20..d77eb53c6a 100644
--- a/arch/arm/dts/stm32746g-eval.dts
+++ b/arch/arm/dts/stm32746g-eval.dts
@@ -1,49 +1,14 @@
+// SPDX-License-Identifier: GPL-2.0+ OR X11
 /*
  * Copyright 2015 - Maxime Coquelin <mcoquelin.stm32@gmail.com>
  *
- * This file is dual-licensed: you can use it either under the terms
- * of the GPL or the X11 license, at your option. Note that this dual
- * licensing only applies to this file, and not this project as a
- * whole.
- *
- *  a) This file is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This file is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- * Or, alternatively,
- *
- *  b) Permission is hereby granted, free of charge, to any person
- *     obtaining a copy of this software and associated documentation
- *     files (the "Software"), to deal in the Software without
- *     restriction, including without limitation the rights to use,
- *     copy, modify, merge, publish, distribute, sublicense, and/or
- *     sell copies of the Software, and to permit persons to whom the
- *     Software is furnished to do so, subject to the following
- *     conditions:
- *
- *     The above copyright notice and this permission notice shall be
- *     included in all copies or substantial portions of the Software.
- *
- *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- *     OTHER DEALINGS IN THE SOFTWARE.
  */
 
 /dts-v1/;
 #include "stm32f746.dtsi"
 #include "stm32f746-pinctrl.dtsi"
 #include <dt-bindings/input/input.h>
+#include <dt-bindings/interrupt-controller/irq.h>
 
 / {
 	model = "STMicroelectronics STM32746g-EVAL board";
@@ -55,6 +20,7 @@
 	};
 
 	memory {
+		device_type = "memory";
 		reg = <0xc0000000 0x2000000>;
 	};
 
@@ -68,9 +34,15 @@
 			gpios = <&gpiof 10 1>;
 			linux,default-trigger = "heartbeat";
 		};
+		orange {
+			gpios = <&stmfx_pinctrl 17 1>;
+		};
 		red {
 			gpios = <&gpiob 7 1>;
 		};
+		blue {
+			gpios = <&stmfx_pinctrl 19 1>;
+		};
 	};
 
 	gpio_keys {
@@ -85,6 +57,43 @@
 		};
 	};
 
+	joystick {
+		compatible = "gpio-keys";
+		#size-cells = <0>;
+		pinctrl-0 = <&joystick_pins>;
+		pinctrl-names = "default";
+		button-0 {
+			label = "JoySel";
+			linux,code = <KEY_ENTER>;
+			interrupt-parent = <&stmfx_pinctrl>;
+			interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
+		};
+		button-1 {
+			label = "JoyDown";
+			linux,code = <KEY_DOWN>;
+			interrupt-parent = <&stmfx_pinctrl>;
+			interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
+		};
+		button-2 {
+			label = "JoyLeft";
+			linux,code = <KEY_LEFT>;
+			interrupt-parent = <&stmfx_pinctrl>;
+			interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
+		};
+		button-3 {
+			label = "JoyRight";
+			linux,code = <KEY_RIGHT>;
+			interrupt-parent = <&stmfx_pinctrl>;
+			interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
+		};
+		button-4 {
+			label = "JoyUp";
+			linux,code = <KEY_UP>;
+			interrupt-parent = <&stmfx_pinctrl>;
+			interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
+		};
+	};
+
 	usbotg_hs_phy: usb-phy {
 		#phy-cells = <0>;
 		compatible = "usb-nop-xceiv";
@@ -114,6 +123,28 @@
 	i2c-scl-rising-time-ns = <185>;
 	i2c-scl-falling-time-ns = <20>;
 	status = "okay";
+
+	stmfx: stmfx at 42 {
+		compatible = "st,stmfx-0300";
+		reg = <0x42>;
+		interrupts = <8 IRQ_TYPE_EDGE_RISING>;
+		interrupt-parent = <&gpioi>;
+
+		stmfx_pinctrl: stmfx-pin-controller {
+			compatible = "st,stmfx-0300-pinctrl";
+			gpio-controller;
+			#gpio-cells = <2>;
+			interrupt-controller;
+			#interrupt-cells = <2>;
+			gpio-ranges = <&stmfx_pinctrl 0 0 24>;
+
+			joystick_pins: joystick {
+				pins = "gpio0", "gpio1", "gpio2", "gpio3", "gpio4";
+				drive-push-pull;
+				bias-pull-up;
+			};
+		};
+	};
 };
 
 &rtc {
diff --git a/arch/arm/dts/stm32f4-pinctrl.dtsi b/arch/arm/dts/stm32f4-pinctrl.dtsi
index 35202896c0..7ed68286ba 100644
--- a/arch/arm/dts/stm32f4-pinctrl.dtsi
+++ b/arch/arm/dts/stm32f4-pinctrl.dtsi
@@ -1,43 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0+ OR X11
 /*
  * Copyright 2017 - Alexandre Torgue <alexandre.torgue@st.com>
  *
- * This file is dual-licensed: you can use it either under the terms
- * of the GPL or the X11 license, at your option. Note that this dual
- * licensing only applies to this file, and not this project as a
- * whole.
- *
- *  a) This file is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This file is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- * Or, alternatively,
- *
- *  b) Permission is hereby granted, free of charge, to any person
- *     obtaining a copy of this software and associated documentation
- *     files (the "Software"), to deal in the Software without
- *     restriction, including without limitation the rights to use,
- *     copy, modify, merge, publish, distribute, sublicense, and/or
- *     sell copies of the Software, and to permit persons to whom the
- *     Software is furnished to do so, subject to the following
- *     conditions:
- *
- *     The above copyright notice and this permission notice shall be
- *     included in all copies or substantial portions of the Software.
- *
- *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- *     OTHER DEALINGS IN THE SOFTWARE.
  */
 
 #include <dt-bindings/pinctrl/stm32-pinfunc.h>
diff --git a/arch/arm/dts/stm32f429-disco.dts b/arch/arm/dts/stm32f429-disco.dts
index d99f47aa72..3a83ef5f60 100644
--- a/arch/arm/dts/stm32f429-disco.dts
+++ b/arch/arm/dts/stm32f429-disco.dts
@@ -1,43 +1,6 @@
+// SPDX-License-Identifier: GPL-2.0+ OR X11
 /*
  * Copyright 2015 - Maxime Coquelin <mcoquelin.stm32@gmail.com>
- *
- * This file is dual-licensed: you can use it either under the terms
- * of the GPL or the X11 license, at your option. Note that this dual
- * licensing only applies to this file, and not this project as a
- * whole.
- *
- *  a) This file is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This file is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- * Or, alternatively,
- *
- *  b) Permission is hereby granted, free of charge, to any person
- *     obtaining a copy of this software and associated documentation
- *     files (the "Software"), to deal in the Software without
- *     restriction, including without limitation the rights to use,
- *     copy, modify, merge, publish, distribute, sublicense, and/or
- *     sell copies of the Software, and to permit persons to whom the
- *     Software is furnished to do so, subject to the following
- *     conditions:
- *
- *     The above copyright notice and this permission notice shall be
- *     included in all copies or substantial portions of the Software.
- *
- *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- *     OTHER DEALINGS IN THE SOFTWARE.
  */
 
 /dts-v1/;
@@ -55,6 +18,7 @@
 	};
 
 	memory {
+		device_type = "memory";
 		reg = <0x90000000 0x800000>;
 	};
 
diff --git a/arch/arm/dts/stm32f429-pinctrl.dtsi b/arch/arm/dts/stm32f429-pinctrl.dtsi
index 3e7a17d911..575c7eecab 100644
--- a/arch/arm/dts/stm32f429-pinctrl.dtsi
+++ b/arch/arm/dts/stm32f429-pinctrl.dtsi
@@ -1,43 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0+ OR X11
 /*
  * Copyright 2017 - Alexandre Torgue <alexandre.torgue@st.com>
  *
- * This file is dual-licensed: you can use it either under the terms
- * of the GPL or the X11 license, at your option. Note that this dual
- * licensing only applies to this file, and not this project as a
- * whole.
- *
- *  a) This file is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This file is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- * Or, alternatively,
- *
- *  b) Permission is hereby granted, free of charge, to any person
- *     obtaining a copy of this software and associated documentation
- *     files (the "Software"), to deal in the Software without
- *     restriction, including without limitation the rights to use,
- *     copy, modify, merge, publish, distribute, sublicense, and/or
- *     sell copies of the Software, and to permit persons to whom the
- *     Software is furnished to do so, subject to the following
- *     conditions:
- *
- *     The above copyright notice and this permission notice shall be
- *     included in all copies or substantial portions of the Software.
- *
- *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- *     OTHER DEALINGS IN THE SOFTWARE.
  */
 
 #include "stm32f4-pinctrl.dtsi"
diff --git a/arch/arm/dts/stm32f429.dtsi b/arch/arm/dts/stm32f429.dtsi
index c5c029b9e3..ec84ae4f52 100644
--- a/arch/arm/dts/stm32f429.dtsi
+++ b/arch/arm/dts/stm32f429.dtsi
@@ -1,51 +1,17 @@
+// SPDX-License-Identifier: GPL-2.0+ OR X11
 /*
  * Copyright 2015 - Maxime Coquelin <mcoquelin.stm32@gmail.com>
  *
- * This file is dual-licensed: you can use it either under the terms
- * of the GPL or the X11 license, at your option. Note that this dual
- * licensing only applies to this file, and not this project as a
- * whole.
- *
- *  a) This file is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This file is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- * Or, alternatively,
- *
- *  b) Permission is hereby granted, free of charge, to any person
- *     obtaining a copy of this software and associated documentation
- *     files (the "Software"), to deal in the Software without
- *     restriction, including without limitation the rights to use,
- *     copy, modify, merge, publish, distribute, sublicense, and/or
- *     sell copies of the Software, and to permit persons to whom the
- *     Software is furnished to do so, subject to the following
- *     conditions:
- *
- *     The above copyright notice and this permission notice shall be
- *     included in all copies or substantial portions of the Software.
- *
- *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- *     OTHER DEALINGS IN THE SOFTWARE.
  */
 
-#include "skeleton.dtsi"
 #include "armv7-m.dtsi"
 #include <dt-bindings/clock/stm32fx-clock.h>
 #include <dt-bindings/mfd/stm32f4-rcc.h>
 
 / {
+	#address-cells = <1>;
+	#size-cells = <1>;
+
 	clocks {
 		clk_hse: clk-hse {
 			#clock-cells = <0>;
@@ -73,6 +39,19 @@
 	};
 
 	soc {
+		romem: nvmem at 1fff7800 {
+			compatible = "st,stm32f4-otp";
+			reg = <0x1fff7800 0x400>;
+			#address-cells = <1>;
+			#size-cells = <1>;
+			ts_cal1: calib at 22c {
+				reg = <0x22c 0x2>;
+			};
+			ts_cal2: calib at 22e {
+				reg = <0x22e 0x2>;
+			};
+		};
+
 		timer2: timer at 40000000 {
 			compatible = "st,stm32-timer";
 			reg = <0x40000000 0x400>;
@@ -309,6 +288,26 @@
 			status = "disabled";
 		};
 
+		spi2: spi at 40003800 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "st,stm32f4-spi";
+			reg = <0x40003800 0x400>;
+			interrupts = <36>;
+			clocks = <&rcc 0 STM32F4_APB1_CLOCK(SPI2)>;
+			status = "disabled";
+		};
+
+		spi3: spi at 40003c00 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "st,stm32f4-spi";
+			reg = <0x40003c00 0x400>;
+			interrupts = <51>;
+			clocks = <&rcc 0 STM32F4_APB1_CLOCK(SPI3)>;
+			status = "disabled";
+		};
+
 		usart2: serial at 40004400 {
 			compatible = "st,stm32-uart";
 			reg = <0x40004400 0x400>;
@@ -518,6 +517,26 @@
 			status = "disabled";
 		};
 
+		spi1: spi at 40013000 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "st,stm32f4-spi";
+			reg = <0x40013000 0x400>;
+			interrupts = <35>;
+			clocks = <&rcc 0 STM32F4_APB2_CLOCK(SPI1)>;
+			status = "disabled";
+		};
+
+		spi4: spi at 40013400 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "st,stm32f4-spi";
+			reg = <0x40013400 0x400>;
+			interrupts = <84>;
+			clocks = <&rcc 0 STM32F4_APB2_CLOCK(SPI4)>;
+			status = "disabled";
+		};
+
 		syscfg: system-config at 40013800 {
 			compatible = "syscon";
 			reg = <0x40013800 0x400>;
@@ -582,6 +601,26 @@
 			};
 		};
 
+		spi5: spi at 40015000 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "st,stm32f4-spi";
+			reg = <0x40015000 0x400>;
+			interrupts = <85>;
+			clocks = <&rcc 0 STM32F4_APB2_CLOCK(SPI5)>;
+			status = "disabled";
+		};
+
+		spi6: spi at 40015400 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "st,stm32f4-spi";
+			reg = <0x40015400 0x400>;
+			interrupts = <86>;
+			clocks = <&rcc 0 STM32F4_APB2_CLOCK(SPI6)>;
+			status = "disabled";
+		};
+
 		pwrcfg: power-config at 40007000 {
 			compatible = "syscon";
 			reg = <0x40007000 0x400>;
diff --git a/arch/arm/dts/stm32f469-disco.dts b/arch/arm/dts/stm32f469-disco.dts
index 3ceb84d8ba..d50c38dc78 100644
--- a/arch/arm/dts/stm32f469-disco.dts
+++ b/arch/arm/dts/stm32f469-disco.dts
@@ -1,43 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0+ OR X11
 /*
  * Copyright 2016 - Lee Jones <lee.jones@linaro.org>
  *
- * This file is dual-licensed: you can use it either under the terms
- * of the GPL or the X11 license, at your option. Note that this dual
- * licensing only applies to this file, and not this project as a
- * whole.
- *
- *  a) This file is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This file is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- * Or, alternatively,
- *
- *  b) Permission is hereby granted, free of charge, to any person
- *     obtaining a copy of this software and associated documentation
- *     files (the "Software"), to deal in the Software without
- *     restriction, including without limitation the rights to use,
- *     copy, modify, merge, publish, distribute, sublicense, and/or
- *     sell copies of the Software, and to permit persons to whom the
- *     Software is furnished to do so, subject to the following
- *     conditions:
- *
- *     The above copyright notice and this permission notice shall be
- *     included in all copies or substantial portions of the Software.
- *
- *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- *     OTHER DEALINGS IN THE SOFTWARE.
  */
 
 /dts-v1/;
@@ -56,6 +20,7 @@
 	};
 
 	memory {
+		device_type = "memory";
 		reg = <0x00000000 0x1000000>;
 	};
 
diff --git a/arch/arm/dts/stm32f469-pinctrl.dtsi b/arch/arm/dts/stm32f469-pinctrl.dtsi
index fff542662e..1e2bb0191e 100644
--- a/arch/arm/dts/stm32f469-pinctrl.dtsi
+++ b/arch/arm/dts/stm32f469-pinctrl.dtsi
@@ -1,43 +1,6 @@
+// SPDX-License-Identifier: GPL-2.0+ OR X11
 /*
  * Copyright 2017 - Alexandre Torgue <alexandre.torgue@st.com>
- *
- * This file is dual-licensed: you can use it either under the terms
- * of the GPL or the X11 license, at your option. Note that this dual
- * licensing only applies to this file, and not this project as a
- * whole.
- *
- *  a) This file is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This file is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- * Or, alternatively,
- *
- *  b) Permission is hereby granted, free of charge, to any person
- *     obtaining a copy of this software and associated documentation
- *     files (the "Software"), to deal in the Software without
- *     restriction, including without limitation the rights to use,
- *     copy, modify, merge, publish, distribute, sublicense, and/or
- *     sell copies of the Software, and to permit persons to whom the
- *     Software is furnished to do so, subject to the following
- *     conditions:
- *
- *     The above copyright notice and this permission notice shall be
- *     included in all copies or substantial portions of the Software.
- *
- *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- *     OTHER DEALINGS IN THE SOFTWARE.
  */
 
 #include "stm32f4-pinctrl.dtsi"
diff --git a/arch/arm/dts/stm32f469.dtsi b/arch/arm/dts/stm32f469.dtsi
index 0d58d40649..69c862d973 100644
--- a/arch/arm/dts/stm32f469.dtsi
+++ b/arch/arm/dts/stm32f469.dtsi
@@ -1,4 +1,4 @@
-// SPDX-License-Identifier: GPL-2.0+
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
 /* Copyright (C) STMicroelectronics 2017 - All Rights Reserved */
 
 #include "stm32f429.dtsi"
diff --git a/arch/arm/dts/stm32f746-disco.dts b/arch/arm/dts/stm32f746-disco.dts
index e3a7bd338d..4fef0164cf 100644
--- a/arch/arm/dts/stm32f746-disco.dts
+++ b/arch/arm/dts/stm32f746-disco.dts
@@ -1,43 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0+ OR X11
 /*
  * Copyright 2017 - Vikas MANOCHA <vikas.manocha@st.com>
  *
- * This file is dual-licensed: you can use it either under the terms
- * of the GPL or the X11 license, at your option. Note that this dual
- * licensing only applies to this file, and not this project as a
- * whole.
- *
- *  a) This file is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This file is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- * Or, alternatively,
- *
- *  b) Permission is hereby granted, free of charge, to any person
- *     obtaining a copy of this software and associated documentation
- *     files (the "Software"), to deal in the Software without
- *     restriction, including without limitation the rights to use,
- *     copy, modify, merge, publish, distribute, sublicense, and/or
- *     sell copies of the Software, and to permit persons to whom the
- *     Software is furnished to do so, subject to the following
- *     conditions:
- *
- *     The above copyright notice and this permission notice shall be
- *     included in all copies or substantial portions of the Software.
- *
- *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- *     OTHER DEALINGS IN THE SOFTWARE.
  */
 
 /dts-v1/;
@@ -56,6 +20,7 @@
 	};
 
 	memory {
+		device_type = "memory";
 		reg = <0xC0000000 0x800000>;
 	};
 
diff --git a/arch/arm/dts/stm32f746.dtsi b/arch/arm/dts/stm32f746.dtsi
index f48d06a80d..66360cf21c 100644
--- a/arch/arm/dts/stm32f746.dtsi
+++ b/arch/arm/dts/stm32f746.dtsi
@@ -1,51 +1,17 @@
+// SPDX-License-Identifier: GPL-2.0+ OR X11
 /*
  * Copyright 2015 - Maxime Coquelin <mcoquelin.stm32@gmail.com>
  *
- * This file is dual-licensed: you can use it either under the terms
- * of the GPL or the X11 license, at your option. Note that this dual
- * licensing only applies to this file, and not this project as a
- * whole.
- *
- *  a) This file is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This file is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- * Or, alternatively,
- *
- *  b) Permission is hereby granted, free of charge, to any person
- *     obtaining a copy of this software and associated documentation
- *     files (the "Software"), to deal in the Software without
- *     restriction, including without limitation the rights to use,
- *     copy, modify, merge, publish, distribute, sublicense, and/or
- *     sell copies of the Software, and to permit persons to whom the
- *     Software is furnished to do so, subject to the following
- *     conditions:
- *
- *     The above copyright notice and this permission notice shall be
- *     included in all copies or substantial portions of the Software.
- *
- *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- *     OTHER DEALINGS IN THE SOFTWARE.
  */
 
-#include "skeleton.dtsi"
 #include "armv7-m.dtsi"
 #include <dt-bindings/clock/stm32fx-clock.h>
 #include <dt-bindings/mfd/stm32f7-rcc.h>
 
 / {
+	#address-cells = <1>;
+	#size-cells = <1>;
+
 	clocks {
 		clk_hse: clk-hse {
 			#clock-cells = <0>;
diff --git a/arch/arm/dts/stm32f769-disco.dts b/arch/arm/dts/stm32f769-disco.dts
index 483d896e2b..8d51e5b0fb 100644
--- a/arch/arm/dts/stm32f769-disco.dts
+++ b/arch/arm/dts/stm32f769-disco.dts
@@ -1,43 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0+ OR X11
 /*
  * Copyright 2017 - Vikas MANOCHA <vikas.manocha@st.com>
  *
- * This file is dual-licensed: you can use it either under the terms
- * of the GPL or the X11 license, at your option. Note that this dual
- * licensing only applies to this file, and not this project as a
- * whole.
- *
- *  a) This file is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This file is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- * Or, alternatively,
- *
- *  b) Permission is hereby granted, free of charge, to any person
- *     obtaining a copy of this software and associated documentation
- *     files (the "Software"), to deal in the Software without
- *     restriction, including without limitation the rights to use,
- *     copy, modify, merge, publish, distribute, sublicense, and/or
- *     sell copies of the Software, and to permit persons to whom the
- *     Software is furnished to do so, subject to the following
- *     conditions:
- *
- *     The above copyright notice and this permission notice shall be
- *     included in all copies or substantial portions of the Software.
- *
- *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- *     OTHER DEALINGS IN THE SOFTWARE.
  */
 
 /dts-v1/;
@@ -56,6 +20,7 @@
 	};
 
 	memory {
+		device_type = "memory";
 		reg = <0xC0000000 0x1000000>;
 	};
 
@@ -101,6 +66,10 @@
 	};
 };
 
+&rcc {
+	compatible = "st,stm32f769-rcc", "st,stm32f746-rcc", "st,stm32-rcc";
+};
+
 &cec {
 	pinctrl-0 = <&cec_pins_a>;
 	pinctrl-names = "default";
diff --git a/arch/arm/dts/stm32h7-u-boot.dtsi b/arch/arm/dts/stm32h7-u-boot.dtsi
index 99fa0e673a..361c8e5d80 100644
--- a/arch/arm/dts/stm32h7-u-boot.dtsi
+++ b/arch/arm/dts/stm32h7-u-boot.dtsi
@@ -61,17 +61,6 @@
 				st,sdram-refcount = <1539>;
 			};
 		};
-
-		sdmmc1: sdmmc at 52007000 {
-			compatible = "st,stm32-sdmmc2";
-			reg = <0x52007000 0x1000>;
-			interrupts = <49>;
-			clocks = <&rcc SDMMC1_CK>;
-			resets = <&rcc STM32H7_AHB3_RESET(SDMMC1)>;
-			st,idma = <1>;
-			cap-sd-highspeed;
-			cap-mmc-highspeed;
-		};
 	};
 };
 
@@ -216,32 +205,6 @@
 			slew-rate = <3>;
 		};
 	};
-
-	pinctrl_sdmmc1_level_shifter: sdmmc0_ls at 0 {
-		pins {
-			pinmux = <STM32_PINMUX('B', 8, AF7)>,
-				 <STM32_PINMUX('B', 9, AF7)>,
-				 <STM32_PINMUX('C', 6, AF8)>,
-				 <STM32_PINMUX('C', 7, AF8)>;
-			drive-push-pull;
-			slew-rate = <3>;
-		};
-	};
-
-	sdmmc1_pins: sdmmc at 0 {
-		pins {
-			pinmux = <STM32_PINMUX('C', 8, AF12)>,
-				 <STM32_PINMUX('C', 9, AF12)>,
-				 <STM32_PINMUX('C',10, AF12)>,
-				 <STM32_PINMUX('C',11, AF12)>,
-				 <STM32_PINMUX('C',12, AF12)>,
-				 <STM32_PINMUX('D', 2, AF12)>;
-
-			slew-rate = <3>;
-			drive-push-pull;
-			bias-disable;
-		};
-	};
 };
 
 &pwrcfg {
@@ -251,3 +214,7 @@
 &rcc {
 	u-boot,dm-pre-reloc;
 };
+
+&sdmmc1 {
+	compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
+};
diff --git a/arch/arm/dts/stm32h743-pinctrl.dtsi b/arch/arm/dts/stm32h743-pinctrl.dtsi
index c823541a0d..e3a5c537f3 100644
--- a/arch/arm/dts/stm32h743-pinctrl.dtsi
+++ b/arch/arm/dts/stm32h743-pinctrl.dtsi
@@ -173,6 +173,89 @@
 				};
 			};
 
+			ethernet_rmii: rmii at 0 {
+				pins {
+					pinmux = <STM32_PINMUX('G', 11, AF11)>,
+						 <STM32_PINMUX('G', 13, AF11)>,
+						 <STM32_PINMUX('G', 12, AF11)>,
+						 <STM32_PINMUX('C', 4, AF11)>,
+						 <STM32_PINMUX('C', 5, AF11)>,
+						 <STM32_PINMUX('A', 7, AF11)>,
+						 <STM32_PINMUX('C', 1, AF11)>,
+						 <STM32_PINMUX('A', 2, AF11)>,
+						 <STM32_PINMUX('A', 1, AF11)>;
+					slew-rate = <2>;
+				};
+			};
+
+			sdmmc1_b4_pins_a: sdmmc1-b4-0 {
+				pins {
+					pinmux = <STM32_PINMUX('C', 8, AF12)>, /* SDMMC1_D0 */
+						 <STM32_PINMUX('C', 9, AF12)>, /* SDMMC1_D1 */
+						 <STM32_PINMUX('C', 10, AF12)>, /* SDMMC1_D2 */
+						 <STM32_PINMUX('C', 11, AF12)>, /* SDMMC1_D3 */
+						 <STM32_PINMUX('C', 12, AF12)>, /* SDMMC1_CK */
+						 <STM32_PINMUX('D', 2, AF12)>; /* SDMMC1_CMD */
+					slew-rate = <3>;
+					drive-push-pull;
+					bias-disable;
+				};
+			};
+
+			sdmmc1_b4_od_pins_a: sdmmc1-b4-od-0 {
+				pins1 {
+					pinmux = <STM32_PINMUX('C', 8, AF12)>, /* SDMMC1_D0 */
+						 <STM32_PINMUX('C', 9, AF12)>, /* SDMMC1_D1 */
+						 <STM32_PINMUX('C', 10, AF12)>, /* SDMMC1_D2 */
+						 <STM32_PINMUX('C', 11, AF12)>, /* SDMMC1_D3 */
+						 <STM32_PINMUX('C', 12, AF12)>; /* SDMMC1_CK */
+					slew-rate = <3>;
+					drive-push-pull;
+					bias-disable;
+				};
+				pins2{
+					pinmux = <STM32_PINMUX('D', 2, AF12)>; /* SDMMC1_CMD */
+					slew-rate = <3>;
+					drive-open-drain;
+					bias-disable;
+				};
+			};
+
+			sdmmc1_b4_sleep_pins_a: sdmmc1-b4-sleep-0 {
+				pins {
+					pinmux = <STM32_PINMUX('C', 8, ANALOG)>, /* SDMMC1_D0 */
+						 <STM32_PINMUX('C', 9, ANALOG)>, /* SDMMC1_D1 */
+						 <STM32_PINMUX('C', 10, ANALOG)>, /* SDMMC1_D2 */
+						 <STM32_PINMUX('C', 11, ANALOG)>, /* SDMMC1_D3 */
+						 <STM32_PINMUX('C', 12, ANALOG)>, /* SDMMC1_CK */
+						 <STM32_PINMUX('D', 2, ANALOG)>; /* SDMMC1_CMD */
+				};
+			};
+
+			sdmmc1_dir_pins_a: sdmmc1-dir-0 {
+				pins1 {
+					pinmux = <STM32_PINMUX('C', 6, AF8)>, /* SDMMC1_D0DIR */
+						 <STM32_PINMUX('C', 7, AF8)>, /* SDMMC1_D123DIR */
+						 <STM32_PINMUX('B', 9, AF7)>; /* SDMMC1_CDIR */
+					slew-rate = <3>;
+					drive-push-pull;
+					bias-pull-up;
+				};
+				pins2{
+					pinmux = <STM32_PINMUX('B', 8, AF7)>; /* SDMMC1_CKIN */
+					bias-pull-up;
+				};
+			};
+
+			sdmmc1_dir_sleep_pins_a: sdmmc1-dir-sleep-0 {
+				pins {
+					pinmux = <STM32_PINMUX('C', 6, ANALOG)>, /* SDMMC1_D0DIR */
+						 <STM32_PINMUX('C', 7, ANALOG)>, /* SDMMC1_D123DIR */
+						 <STM32_PINMUX('B', 9, ANALOG)>, /* SDMMC1_CDIR */
+						 <STM32_PINMUX('B', 8, ANALOG)>; /* SDMMC1_CKIN */
+				};
+			};
+
 			usart1_pins: usart1 at 0 {
 				pins1 {
 					pinmux = <STM32_PINMUX('B', 14, AF4)>; /* USART1_TX */
diff --git a/arch/arm/dts/stm32h743.dtsi b/arch/arm/dts/stm32h743.dtsi
index cbdd69ca9e..4b4e7a99f7 100644
--- a/arch/arm/dts/stm32h743.dtsi
+++ b/arch/arm/dts/stm32h743.dtsi
@@ -1,52 +1,18 @@
+// SPDX-License-Identifier: GPL-2.0+ OR X11
 /*
  * Copyright 2017 - Alexandre Torgue <alexandre.torgue@st.com>
  *
- * This file is dual-licensed: you can use it either under the terms
- * of the GPL or the X11 license, at your option. Note that this dual
- * licensing only applies to this file, and not this project as a
- * whole.
- *
- *  a) This file is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This file is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- * Or, alternatively,
- *
- *  b) Permission is hereby granted, free of charge, to any person
- *     obtaining a copy of this software and associated documentation
- *     files (the "Software"), to deal in the Software without
- *     restriction, including without limitation the rights to use,
- *     copy, modify, merge, publish, distribute, sublicense, and/or
- *     sell copies of the Software, and to permit persons to whom the
- *     Software is furnished to do so, subject to the following
- *     conditions:
- *
- *     The above copyright notice and this permission notice shall be
- *     included in all copies or substantial portions of the Software.
- *
- *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- *     OTHER DEALINGS IN THE SOFTWARE.
  */
 
-#include "skeleton.dtsi"
 #include "armv7-m.dtsi"
 #include <dt-bindings/clock/stm32h7-clks.h>
 #include <dt-bindings/mfd/stm32h7-rcc.h>
 #include <dt-bindings/interrupt-controller/irq.h>
 
 / {
+	#address-cells = <1>;
+	#size-cells = <1>;
+
 	clocks {
 		clk_hse: clk-hse {
 			#clock-cells = <0>;
@@ -337,6 +303,20 @@
 			dma-requests = <32>;
 		};
 
+		sdmmc1: sdmmc at 52007000 {
+			compatible = "arm,pl18x", "arm,primecell";
+			arm,primecell-periphid = <0x10153180>;
+			reg = <0x52007000 0x1000>;
+			interrupts = <49>;
+			interrupt-names	= "cmd_irq";
+			clocks = <&rcc SDMMC1_CK>;
+			clock-names = "apb_pclk";
+			resets = <&rcc STM32H7_AHB3_RESET(SDMMC1)>;
+			cap-sd-highspeed;
+			cap-mmc-highspeed;
+			max-frequency = <120000000>;
+		};
+
 		exti: interrupt-controller at 58000000 {
 			compatible = "st,stm32h7-exti";
 			interrupt-controller;
@@ -511,6 +491,19 @@
 				status = "disabled";
 			};
 		};
+
+		mac: ethernet at 40028000 {
+			compatible = "st,stm32-dwmac", "snps,dwmac-4.10a";
+			reg = <0x40028000 0x8000>;
+			reg-names = "stmmaceth";
+			interrupts = <61>;
+			interrupt-names = "macirq";
+			clock-names = "stmmaceth", "mac-clk-tx", "mac-clk-rx";
+			clocks = <&rcc ETH1MAC_CK>, <&rcc ETH1TX_CK>, <&rcc ETH1RX_CK>;
+			st,syscon = <&syscfg 0x4>;
+			snps,pbl = <8>;
+			status = "disabled";
+		};
 	};
 };
 
diff --git a/arch/arm/dts/stm32h743i-disco-u-boot.dtsi b/arch/arm/dts/stm32h743i-disco-u-boot.dtsi
index 2d6b41bfb9..5965afcbe4 100644
--- a/arch/arm/dts/stm32h743i-disco-u-boot.dtsi
+++ b/arch/arm/dts/stm32h743i-disco-u-boot.dtsi
@@ -1,11 +1,3 @@
 // SPDX-License-Identifier: GPL-2.0+
 
 #include <stm32h7-u-boot.dtsi>
-
-&sdmmc1 {
-	status = "okay";
-	pinctrl-0 = <&sdmmc1_pins>;
-	pinctrl-names = "default";
-	bus-width = <4>;
-	cd-gpios = <&gpioi 8 1>;
-};
diff --git a/arch/arm/dts/stm32h743i-disco.dts b/arch/arm/dts/stm32h743i-disco.dts
index 45e088c557..43c30bfcbe 100644
--- a/arch/arm/dts/stm32h743i-disco.dts
+++ b/arch/arm/dts/stm32h743i-disco.dts
@@ -1,43 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0+ OR X11
 /*
  * Copyright 2017 - Patrice Chotard <patrice.chotard@st.com>
  *
- * This file is dual-licensed: you can use it either under the terms
- * of the GPL or the X11 license, at your option. Note that this dual
- * licensing only applies to this file, and not this project as a
- * whole.
- *
- *  a) This file is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This file is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- * Or, alternatively,
- *
- *  b) Permission is hereby granted, free of charge, to any person
- *     obtaining a copy of this software and associated documentation
- *     files (the "Software"), to deal in the Software without
- *     restriction, including without limitation the rights to use,
- *     copy, modify, merge, publish, distribute, sublicense, and/or
- *     sell copies of the Software, and to permit persons to whom the
- *     Software is furnished to do so, subject to the following
- *     conditions:
- *
- *     The above copyright notice and this permission notice shall be
- *     included in all copies or substantial portions of the Software.
- *
- *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- *     OTHER DEALINGS IN THE SOFTWARE.
  */
 
 /dts-v1/;
@@ -54,18 +18,56 @@
 	};
 
 	memory {
+		device_type = "memory";
 		reg = <0xd0000000 0x2000000>;
 	};
 
 	aliases {
 		serial0 = &usart2;
 	};
+
+	v3v3: regulator-v3v3 {
+		compatible = "regulator-fixed";
+		regulator-name = "v3v3";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		regulator-always-on;
+	};
 };
 
 &clk_hse {
 	clock-frequency = <25000000>;
 };
 
+&mac {
+	status = "disabled";
+	pinctrl-0	= <&ethernet_rmii>;
+	pinctrl-names	= "default";
+	phy-mode	= "rmii";
+	phy-handle	= <&phy0>;
+
+	mdio0 {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		compatible = "snps,dwmac-mdio";
+		phy0: ethernet-phy at 0 {
+			reg = <0>;
+		};
+	};
+};
+
+&sdmmc1 {
+	pinctrl-names = "default", "opendrain", "sleep";
+	pinctrl-0 = <&sdmmc1_b4_pins_a>;
+	pinctrl-1 = <&sdmmc1_b4_od_pins_a>;
+	pinctrl-2 = <&sdmmc1_b4_sleep_pins_a>;
+	broken-cd;
+	st,neg-edge;
+	bus-width = <4>;
+	vmmc-supply = <&v3v3>;
+	status = "okay";
+};
+
 &usart2 {
 	pinctrl-0 = <&usart2_pins>;
 	pinctrl-names = "default";
diff --git a/arch/arm/dts/stm32h743i-eval-u-boot.dtsi b/arch/arm/dts/stm32h743i-eval-u-boot.dtsi
index 251977abe0..5965afcbe4 100644
--- a/arch/arm/dts/stm32h743i-eval-u-boot.dtsi
+++ b/arch/arm/dts/stm32h743i-eval-u-boot.dtsi
@@ -1,12 +1,3 @@
 // SPDX-License-Identifier: GPL-2.0+
 
 #include <stm32h7-u-boot.dtsi>
-
-&sdmmc1 {
-	status = "okay";
-	pinctrl-0 = <&sdmmc1_pins>,
-		    <&pinctrl_sdmmc1_level_shifter>;
-	pinctrl-names = "default";
-	bus-width = <4>;
-	st,sig-dir;
-};
diff --git a/arch/arm/dts/stm32h743i-eval.dts b/arch/arm/dts/stm32h743i-eval.dts
index 3f8e0c4a99..ab78ad5323 100644
--- a/arch/arm/dts/stm32h743i-eval.dts
+++ b/arch/arm/dts/stm32h743i-eval.dts
@@ -54,6 +54,7 @@
 	};
 
 	memory {
+		device_type = "memory";
 		reg = <0xd0000000 0x2000000>;
 	};
 
@@ -69,13 +70,20 @@
 		regulator-always-on;
 	};
 
+	v2v9_sd: regulator-v2v9_sd {
+		compatible = "regulator-fixed";
+		regulator-name = "v2v9_sd";
+		regulator-min-microvolt = <2900000>;
+		regulator-max-microvolt = <2900000>;
+		regulator-always-on;
+	};
+
 	usbotg_hs_phy: usb-phy {
 		#phy-cells = <0>;
 		compatible = "usb-nop-xceiv";
 		clocks = <&rcc USB1ULPI_CK>;
 		clock-names = "main_clk";
 	};
-
 };
 
 &adc_12 {
@@ -104,6 +112,37 @@
 	status = "okay";
 };
 
+&mac {
+	status = "disabled";
+	pinctrl-0	= <&ethernet_rmii>;
+	pinctrl-names	= "default";
+	phy-mode	= "rmii";
+	phy-handle	= <&phy0>;
+
+	mdio0 {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		compatible = "snps,dwmac-mdio";
+		phy0: ethernet-phy at 0 {
+			reg = <0>;
+		};
+	};
+};
+
+&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 = <&v2v9_sd>;
+	status = "okay";
+};
+
 &usart1 {
 	pinctrl-0 = <&usart1_pins>;
 	pinctrl-names = "default";
diff --git a/arch/arm/dts/stm32mp157c-ed1.dts b/arch/arm/dts/stm32mp157c-ed1.dts
index 1d9cc734f1..66deca1bc9 100644
--- a/arch/arm/dts/stm32mp157c-ed1.dts
+++ b/arch/arm/dts/stm32mp157c-ed1.dts
@@ -176,10 +176,10 @@
 				regulator-over-current-protection;
 			};
 
-			 bst_out: boost {
+			bst_out: boost {
 				regulator-name = "bst_out";
 				interrupts = <IT_OCP_BOOST 0>;
-			 };
+			};
 
 			vbus_otg: pwr_sw1 {
 				regulator-name = "vbus_otg";
diff --git a/include/dt-bindings/clock/stm32fx-clock.h b/include/dt-bindings/clock/stm32fx-clock.h
index 58d8b515be..1cc89c5485 100644
--- a/include/dt-bindings/clock/stm32fx-clock.h
+++ b/include/dt-bindings/clock/stm32fx-clock.h
@@ -1,9 +1,9 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
 /*
  * stm32fx-clock.h
  *
  * Copyright (C) 2016 STMicroelectronics
  * Author: Gabriel Fernandez for STMicroelectronics.
- * License terms:  GNU General Public License (GPL), version 2
  */
 
 /*
@@ -54,7 +54,10 @@
 #define CLK_I2C3		28
 #define CLK_I2C4		29
 #define CLK_LPTIMER		30
-
-#define END_PRIMARY_CLK_F7	31
+#define CLK_PLL_SRC		31
+#define CLK_DFSDM1		32
+#define CLK_ADFSDM1		33
+#define CLK_F769_DSI		34
+#define END_PRIMARY_CLK_F7	35
 
 #endif
diff --git a/include/dt-bindings/mfd/st,stpmic1.h b/include/dt-bindings/mfd/st,stpmic1.h
index b2d6c83462..321cd08797 100644
--- a/include/dt-bindings/mfd/st,stpmic1.h
+++ b/include/dt-bindings/mfd/st,stpmic1.h
@@ -43,4 +43,8 @@
 #define IT_SWIN_F	30
 #define IT_SWIN_R	31
 
+/* BUCK MODES definitions */
+#define STPMIC1_BUCK_MODE_NORMAL 0
+#define STPMIC1_BUCK_MODE_LP 2
+
 #endif /* __DT_BINDINGS_STPMIC1_H__ */
-- 
2.17.1

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

* [U-Boot] [PATCH 2/3] ARM: dts: stm32: DT alignment with kernel v5.4-rc4
  2019-11-06 15:16 [U-Boot] [PATCH 0/3] ARM: dts: stm32: udpate device tree for v2020.01 Patrick Delaunay
  2019-11-06 15:16 ` [U-Boot] [PATCH 1/3] ARM: dts: stm32: DT alignment with kernel v5.3 Patrick Delaunay
@ 2019-11-06 15:16 ` Patrick Delaunay
  2019-11-26  9:06   ` Patrice CHOTARD
  2019-11-27 13:37   ` Patrick DELAUNAY
  2019-11-06 15:16 ` [U-Boot] [PATCH 3/3] ARM: dts: stm32: update eMMC configuration for stm32mp157c-ev1 Patrick Delaunay
  2 siblings, 2 replies; 9+ messages in thread
From: Patrick Delaunay @ 2019-11-06 15:16 UTC (permalink / raw)
  To: u-boot

Device tree and binding alignment with kernel v5.4-rc4

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
---

 arch/arm/dts/st-pincfg.h              |   1 +
 arch/arm/dts/stm32429i-eval.dts       |  25 ++---
 arch/arm/dts/stm32f429.dtsi           |  12 +++
 arch/arm/dts/stm32f746.dtsi           |  12 +++
 arch/arm/dts/stm32h743i-eval.dts      |   1 +
 arch/arm/dts/stm32mp157-pinctrl.dtsi  |   2 +-
 arch/arm/dts/stm32mp157a-dk1.dts      | 129 ++++++++++++++++++++++++++
 arch/arm/dts/stm32mp157c-ed1.dts      |  40 ++++++++
 arch/arm/dts/stm32mp157c-ev1.dts      |   3 +-
 arch/arm/dts/stm32mp157c.dtsi         |  26 ++++++
 include/dt-bindings/mfd/stm32f7-rcc.h |   1 +
 include/dt-bindings/mfd/stm32h7-rcc.h |   2 +-
 12 files changed, 239 insertions(+), 15 deletions(-)

diff --git a/arch/arm/dts/st-pincfg.h b/arch/arm/dts/st-pincfg.h
index 4851c387d5..d805512022 100644
--- a/arch/arm/dts/st-pincfg.h
+++ b/arch/arm/dts/st-pincfg.h
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 #ifndef _ST_PINCFG_H_
 #define _ST_PINCFG_H_
 
diff --git a/arch/arm/dts/stm32429i-eval.dts b/arch/arm/dts/stm32429i-eval.dts
index bd41ae3c14..c5afa0c162 100644
--- a/arch/arm/dts/stm32429i-eval.dts
+++ b/arch/arm/dts/stm32429i-eval.dts
@@ -40,18 +40,18 @@
 		dma-ranges = <0xc0000000 0x0 0x10000000>;
 	};
 
-	regulators {
-		compatible = "simple-bus";
-		#address-cells = <1>;
-		#size-cells = <0>;
+	vdda: regulator-vdda {
+		compatible = "regulator-fixed";
+		regulator-name = "vdda";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+	};
 
-		reg_vref: regulator at 0 {
-			compatible = "regulator-fixed";
-			reg = <0>;
-			regulator-name = "vref";
-			regulator-min-microvolt = <3300000>;
-			regulator-max-microvolt = <3300000>;
-		};
+	vref: regulator-vref {
+		compatible = "regulator-fixed";
+		regulator-name = "vref";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
 	};
 
 	leds {
@@ -116,7 +116,8 @@
 &adc {
 	pinctrl-names = "default";
 	pinctrl-0 = <&adc3_in8_pin>;
-	vref-supply = <&reg_vref>;
+	vdda-supply = <&vdda>;
+	vref-supply = <&vref>;
 	status = "okay";
 	adc3: adc at 200 {
 		st,adc-channels = <8>;
diff --git a/arch/arm/dts/stm32f429.dtsi b/arch/arm/dts/stm32f429.dtsi
index ec84ae4f52..db0b82e89e 100644
--- a/arch/arm/dts/stm32f429.dtsi
+++ b/arch/arm/dts/stm32f429.dtsi
@@ -71,6 +71,7 @@
 
 			pwm {
 				compatible = "st,stm32-pwm";
+				#pwm-cells = <3>;
 				status = "disabled";
 			};
 
@@ -100,6 +101,7 @@
 
 			pwm {
 				compatible = "st,stm32-pwm";
+				#pwm-cells = <3>;
 				status = "disabled";
 			};
 
@@ -129,6 +131,7 @@
 
 			pwm {
 				compatible = "st,stm32-pwm";
+				#pwm-cells = <3>;
 				status = "disabled";
 			};
 
@@ -157,6 +160,7 @@
 
 			pwm {
 				compatible = "st,stm32-pwm";
+				#pwm-cells = <3>;
 				status = "disabled";
 			};
 
@@ -226,6 +230,7 @@
 
 			pwm {
 				compatible = "st,stm32-pwm";
+				#pwm-cells = <3>;
 				status = "disabled";
 			};
 
@@ -247,6 +252,7 @@
 
 			pwm {
 				compatible = "st,stm32-pwm";
+				#pwm-cells = <3>;
 				status = "disabled";
 			};
 		};
@@ -262,6 +268,7 @@
 
 			pwm {
 				compatible = "st,stm32-pwm";
+				#pwm-cells = <3>;
 				status = "disabled";
 			};
 		};
@@ -407,6 +414,7 @@
 
 			pwm {
 				compatible = "st,stm32-pwm";
+				#pwm-cells = <3>;
 				status = "disabled";
 			};
 
@@ -428,6 +436,7 @@
 
 			pwm {
 				compatible = "st,stm32-pwm";
+				#pwm-cells = <3>;
 				status = "disabled";
 			};
 
@@ -561,6 +570,7 @@
 
 			pwm {
 				compatible = "st,stm32-pwm";
+				#pwm-cells = <3>;
 				status = "disabled";
 			};
 
@@ -582,6 +592,7 @@
 
 			pwm {
 				compatible = "st,stm32-pwm";
+				#pwm-cells = <3>;
 				status = "disabled";
 			};
 		};
@@ -597,6 +608,7 @@
 
 			pwm {
 				compatible = "st,stm32-pwm";
+				#pwm-cells = <3>;
 				status = "disabled";
 			};
 		};
diff --git a/arch/arm/dts/stm32f746.dtsi b/arch/arm/dts/stm32f746.dtsi
index 66360cf21c..3f312ab3a7 100644
--- a/arch/arm/dts/stm32f746.dtsi
+++ b/arch/arm/dts/stm32f746.dtsi
@@ -58,6 +58,7 @@
 
 			pwm {
 				compatible = "st,stm32-pwm";
+				#pwm-cells = <3>;
 				status = "disabled";
 			};
 
@@ -87,6 +88,7 @@
 
 			pwm {
 				compatible = "st,stm32-pwm";
+				#pwm-cells = <3>;
 				status = "disabled";
 			};
 
@@ -116,6 +118,7 @@
 
 			pwm {
 				compatible = "st,stm32-pwm";
+				#pwm-cells = <3>;
 				status = "disabled";
 			};
 
@@ -144,6 +147,7 @@
 
 			pwm {
 				compatible = "st,stm32-pwm";
+				#pwm-cells = <3>;
 				status = "disabled";
 			};
 
@@ -213,6 +217,7 @@
 
 			pwm {
 				compatible = "st,stm32-pwm";
+				#pwm-cells = <3>;
 				status = "disabled";
 			};
 
@@ -234,6 +239,7 @@
 
 			pwm {
 				compatible = "st,stm32-pwm";
+				#pwm-cells = <3>;
 				status = "disabled";
 			};
 		};
@@ -249,6 +255,7 @@
 
 			pwm {
 				compatible = "st,stm32-pwm";
+				#pwm-cells = <3>;
 				status = "disabled";
 			};
 		};
@@ -383,6 +390,7 @@
 
 			pwm {
 				compatible = "st,stm32-pwm";
+				#pwm-cells = <3>;
 				status = "disabled";
 			};
 
@@ -404,6 +412,7 @@
 
 			pwm {
 				compatible = "st,stm32-pwm";
+				#pwm-cells = <3>;
 				status = "disabled";
 			};
 
@@ -476,6 +485,7 @@
 
 			pwm {
 				compatible = "st,stm32-pwm";
+				#pwm-cells = <3>;
 				status = "disabled";
 			};
 
@@ -497,6 +507,7 @@
 
 			pwm {
 				compatible = "st,stm32-pwm";
+				#pwm-cells = <3>;
 				status = "disabled";
 			};
 		};
@@ -512,6 +523,7 @@
 
 			pwm {
 				compatible = "st,stm32-pwm";
+				#pwm-cells = <3>;
 				status = "disabled";
 			};
 		};
diff --git a/arch/arm/dts/stm32h743i-eval.dts b/arch/arm/dts/stm32h743i-eval.dts
index ab78ad5323..e4d3c58f3d 100644
--- a/arch/arm/dts/stm32h743i-eval.dts
+++ b/arch/arm/dts/stm32h743i-eval.dts
@@ -87,6 +87,7 @@
 };
 
 &adc_12 {
+	vdda-supply = <&vdda>;
 	vref-supply = <&vdda>;
 	status = "okay";
 	adc1: adc at 0 {
diff --git a/arch/arm/dts/stm32mp157-pinctrl.dtsi b/arch/arm/dts/stm32mp157-pinctrl.dtsi
index 4367e8dcf7..2d73d502d9 100644
--- a/arch/arm/dts/stm32mp157-pinctrl.dtsi
+++ b/arch/arm/dts/stm32mp157-pinctrl.dtsi
@@ -565,7 +565,7 @@
 				};
 			};
 
-			m_can1_sleep_pins_a: m_can1-sleep at 0 {
+			m_can1_sleep_pins_a: m_can1-sleep-0 {
 				pins {
 					pinmux = <STM32_PINMUX('H', 13, ANALOG)>, /* CAN1_TX */
 						 <STM32_PINMUX('I', 9, ANALOG)>; /* CAN1_RX */
diff --git a/arch/arm/dts/stm32mp157a-dk1.dts b/arch/arm/dts/stm32mp157a-dk1.dts
index c210acc0aa..4652253012 100644
--- a/arch/arm/dts/stm32mp157a-dk1.dts
+++ b/arch/arm/dts/stm32mp157a-dk1.dts
@@ -33,6 +33,42 @@
 		#size-cells = <1>;
 		ranges;
 
+		mcuram2: mcuram2 at 10000000 {
+			compatible = "shared-dma-pool";
+			reg = <0x10000000 0x40000>;
+			no-map;
+		};
+
+		vdev0vring0: vdev0vring0 at 10040000 {
+			compatible = "shared-dma-pool";
+			reg = <0x10040000 0x1000>;
+			no-map;
+		};
+
+		vdev0vring1: vdev0vring1 at 10041000 {
+			compatible = "shared-dma-pool";
+			reg = <0x10041000 0x1000>;
+			no-map;
+		};
+
+		vdev0buffer: vdev0buffer at 10042000 {
+			compatible = "shared-dma-pool";
+			reg = <0x10042000 0x4000>;
+			no-map;
+		};
+
+		mcuram: mcuram at 30000000 {
+			compatible = "shared-dma-pool";
+			reg = <0x30000000 0x40000>;
+			no-map;
+		};
+
+		retram: retram at 38000000 {
+			compatible = "shared-dma-pool";
+			reg = <0x38000000 0x10000>;
+			no-map;
+		};
+
 		gpu_reserved: gpu at d4000000 {
 			reg = <0xd4000000 0x4000000>;
 			no-map;
@@ -48,6 +84,17 @@
 			default-state = "off";
 		};
 	};
+
+	sound {
+		compatible = "audio-graph-card";
+		label = "STM32MP1-DK";
+		routing =
+			"Playback" , "MCLK",
+			"Capture" , "MCLK",
+			"MICL" , "Mic Bias";
+		dais = <&sai2a_port &sai2b_port>;
+		status = "okay";
+	};
 };
 
 &cec {
@@ -116,6 +163,39 @@
 			};
 		};
 	};
+
+	cs42l51: cs42l51 at 4a {
+		compatible = "cirrus,cs42l51";
+		reg = <0x4a>;
+		#sound-dai-cells = <0>;
+		VL-supply = <&v3v3>;
+		VD-supply = <&v1v8_audio>;
+		VA-supply = <&v1v8_audio>;
+		VAHP-supply = <&v1v8_audio>;
+		reset-gpios = <&gpiog 9 GPIO_ACTIVE_LOW>;
+		clocks = <&sai2a>;
+		clock-names = "MCLK";
+		status = "okay";
+
+		cs42l51_port: port {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			cs42l51_tx_endpoint: endpoint at 0 {
+				reg = <0>;
+				remote-endpoint = <&sai2a_endpoint>;
+				frame-master;
+				bitclock-master;
+			};
+
+			cs42l51_rx_endpoint: endpoint at 1 {
+				reg = <1>;
+				remote-endpoint = <&sai2b_endpoint>;
+				frame-master;
+				bitclock-master;
+			};
+		};
+	};
 };
 
 &i2c4 {
@@ -308,8 +388,12 @@
 };
 
 &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";
 };
 
@@ -328,6 +412,51 @@
 	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_a>, <&sai2b_pins_b>;
+	pinctrl-1 = <&sai2a_sleep_pins_a>, <&sai2b_sleep_pins_b>;
+	status = "okay";
+
+	sai2a: audio-controller at 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 = <&cs42l51_tx_endpoint>;
+				format = "i2s";
+				mclk-fs = <256>;
+				dai-tdm-slot-num = <2>;
+				dai-tdm-slot-width = <32>;
+			};
+		};
+	};
+
+	sai2b: audio-controller at 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 = <&cs42l51_rx_endpoint>;
+				format = "i2s";
+				mclk-fs = <256>;
+				dai-tdm-slot-num = <2>;
+				dai-tdm-slot-width = <32>;
+			};
+		};
+	};
+};
+
 &sdmmc1 {
 	pinctrl-names = "default", "opendrain", "sleep";
 	pinctrl-0 = <&sdmmc1_b4_pins_a>;
diff --git a/arch/arm/dts/stm32mp157c-ed1.dts b/arch/arm/dts/stm32mp157c-ed1.dts
index 66deca1bc9..73d07cf42f 100644
--- a/arch/arm/dts/stm32mp157c-ed1.dts
+++ b/arch/arm/dts/stm32mp157c-ed1.dts
@@ -28,6 +28,42 @@
 		#size-cells = <1>;
 		ranges;
 
+		mcuram2: mcuram2 at 10000000 {
+			compatible = "shared-dma-pool";
+			reg = <0x10000000 0x40000>;
+			no-map;
+		};
+
+		vdev0vring0: vdev0vring0 at 10040000 {
+			compatible = "shared-dma-pool";
+			reg = <0x10040000 0x1000>;
+			no-map;
+		};
+
+		vdev0vring1: vdev0vring1 at 10041000 {
+			compatible = "shared-dma-pool";
+			reg = <0x10041000 0x1000>;
+			no-map;
+		};
+
+		vdev0buffer: vdev0buffer at 10042000 {
+			compatible = "shared-dma-pool";
+			reg = <0x10042000 0x4000>;
+			no-map;
+		};
+
+		mcuram: mcuram at 30000000 {
+			compatible = "shared-dma-pool";
+			reg = <0x30000000 0x40000>;
+			no-map;
+		};
+
+		retram: retram at 38000000 {
+			compatible = "shared-dma-pool";
+			reg = <0x38000000 0x10000>;
+			no-map;
+		};
+
 		gpu_reserved: gpu at e8000000 {
 			reg = <0xe8000000 0x8000000>;
 			no-map;
@@ -218,8 +254,12 @@
 };
 
 &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";
 };
 
diff --git a/arch/arm/dts/stm32mp157c-ev1.dts b/arch/arm/dts/stm32mp157c-ev1.dts
index 23de232831..89d29b50c3 100644
--- a/arch/arm/dts/stm32mp157c-ev1.dts
+++ b/arch/arm/dts/stm32mp157c-ev1.dts
@@ -101,6 +101,7 @@
 &dsi {
 	#address-cells = <1>;
 	#size-cells = <0>;
+	phy-dsi-supply = <&reg18>;
 	status = "okay";
 
 	ports {
@@ -165,7 +166,7 @@
 	#address-cells = <1>;
 	#size-cells = <0>;
 
-	nand: nand at 0 {
+	nand at 0 {
 		reg = <0>;
 		nand-on-flash-bbt;
 		#address-cells = <1>;
diff --git a/arch/arm/dts/stm32mp157c.dtsi b/arch/arm/dts/stm32mp157c.dtsi
index a6045dd682..6c670cf9a3 100644
--- a/arch/arm/dts/stm32mp157c.dtsi
+++ b/arch/arm/dts/stm32mp157c.dtsi
@@ -109,6 +109,12 @@
 		};
 	};
 
+	booster: regulator-booster {
+		compatible = "st,stm32mp1-booster";
+		st,syscfg = <&syscfg>;
+		status = "disabled";
+	};
+
 	reboot {
 		compatible = "syscon-reboot";
 		regmap = <&rcc>;
@@ -140,6 +146,7 @@
 
 			pwm {
 				compatible = "st,stm32-pwm";
+				#pwm-cells = <3>;
 				status = "disabled";
 			};
 
@@ -168,6 +175,7 @@
 
 			pwm {
 				compatible = "st,stm32-pwm";
+				#pwm-cells = <3>;
 				status = "disabled";
 			};
 
@@ -194,6 +202,7 @@
 
 			pwm {
 				compatible = "st,stm32-pwm";
+				#pwm-cells = <3>;
 				status = "disabled";
 			};
 
@@ -222,6 +231,7 @@
 
 			pwm {
 				compatible = "st,stm32-pwm";
+				#pwm-cells = <3>;
 				status = "disabled";
 			};
 
@@ -279,6 +289,7 @@
 
 			pwm {
 				compatible = "st,stm32-pwm";
+				#pwm-cells = <3>;
 				status = "disabled";
 			};
 
@@ -300,6 +311,7 @@
 
 			pwm {
 				compatible = "st,stm32-pwm";
+				#pwm-cells = <3>;
 				status = "disabled";
 			};
 
@@ -321,6 +333,7 @@
 
 			pwm {
 				compatible = "st,stm32-pwm";
+				#pwm-cells = <3>;
 				status = "disabled";
 			};
 
@@ -574,6 +587,7 @@
 
 			pwm {
 				compatible = "st,stm32-pwm";
+				#pwm-cells = <3>;
 				status = "disabled";
 			};
 
@@ -604,6 +618,7 @@
 
 			pwm {
 				compatible = "st,stm32-pwm";
+				#pwm-cells = <3>;
 				status = "disabled";
 			};
 
@@ -677,6 +692,7 @@
 
 			pwm {
 				compatible = "st,stm32-pwm";
+				#pwm-cells = <3>;
 				status = "disabled";
 			};
 
@@ -701,6 +717,7 @@
 
 			pwm {
 				compatible = "st,stm32-pwm";
+				#pwm-cells = <3>;
 				status = "disabled";
 			};
 			timer at 15 {
@@ -724,6 +741,7 @@
 
 			pwm {
 				compatible = "st,stm32-pwm";
+				#pwm-cells = <3>;
 				status = "disabled";
 			};
 
@@ -990,6 +1008,7 @@
 			clocks = <&rcc ADC12>, <&rcc ADC12_K>;
 			clock-names = "bus", "adc";
 			interrupt-controller;
+			st,syscfg = <&syscfg>;
 			#interrupt-cells = <1>;
 			#address-cells = <1>;
 			#size-cells = <0>;
@@ -1313,6 +1332,10 @@
 			      <0x89010000 0x1000>,
 			      <0x89020000 0x1000>;
 			interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
+			dmas = <&mdma1 20 0x10 0x12000a02 0x0 0x0>,
+			       <&mdma1 20 0x10 0x12000a08 0x0 0x0>,
+			       <&mdma1 21 0x10 0x12000a0a 0x0 0x0>;
+			dma-names = "tx", "rx", "ecc";
 			clocks = <&rcc FMC_K>;
 			resets = <&rcc FMC_R>;
 			status = "disabled";
@@ -1323,6 +1346,9 @@
 			reg = <0x58003000 0x1000>, <0x70000000 0x10000000>;
 			reg-names = "qspi", "qspi_mm";
 			interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
+			dmas = <&mdma1 22 0x10 0x100002 0x0 0x0>,
+			       <&mdma1 22 0x10 0x100008 0x0 0x0>;
+			dma-names = "tx", "rx";
 			clocks = <&rcc QSPI_K>;
 			resets = <&rcc QSPI_R>;
 			status = "disabled";
diff --git a/include/dt-bindings/mfd/stm32f7-rcc.h b/include/dt-bindings/mfd/stm32f7-rcc.h
index c9087f5f3d..ba5cb7456e 100644
--- a/include/dt-bindings/mfd/stm32f7-rcc.h
+++ b/include/dt-bindings/mfd/stm32f7-rcc.h
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 /*
  * This header provides constants for the STM32F7 RCC IP
  */
diff --git a/include/dt-bindings/mfd/stm32h7-rcc.h b/include/dt-bindings/mfd/stm32h7-rcc.h
index b96b3c3ac1..06e8476bf0 100644
--- a/include/dt-bindings/mfd/stm32h7-rcc.h
+++ b/include/dt-bindings/mfd/stm32h7-rcc.h
@@ -12,6 +12,7 @@
 #define STM32H7_RCC_AHB3_FMC		12
 #define STM32H7_RCC_AHB3_QUADSPI	14
 #define STM32H7_RCC_AHB3_SDMMC1		16
+#define STM32H7_RCC_AHB3_CPU		31
 #define STM32H7_RCC_AHB3_CPU1		31
 
 #define STM32H7_AHB3_RESET(bit) (STM32H7_RCC_AHB3_##bit + (0x7C * 8))
@@ -56,7 +57,6 @@
 
 #define STM32H7_AHB4_RESET(bit) (STM32H7_RCC_AHB4_##bit + (0x88 * 8))
 
-
 /* APB3 */
 #define STM32H7_RCC_APB3_LTDC		3
 #define STM32H7_RCC_APB3_DSI		4
-- 
2.17.1

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

* [U-Boot] [PATCH 3/3] ARM: dts: stm32: update eMMC configuration for stm32mp157c-ev1
  2019-11-06 15:16 [U-Boot] [PATCH 0/3] ARM: dts: stm32: udpate device tree for v2020.01 Patrick Delaunay
  2019-11-06 15:16 ` [U-Boot] [PATCH 1/3] ARM: dts: stm32: DT alignment with kernel v5.3 Patrick Delaunay
  2019-11-06 15:16 ` [U-Boot] [PATCH 2/3] ARM: dts: stm32: DT alignment with kernel v5.4-rc4 Patrick Delaunay
@ 2019-11-06 15:16 ` Patrick Delaunay
  2019-11-27 13:38   ` Patrick DELAUNAY
  2 siblings, 1 reply; 9+ messages in thread
From: Patrick Delaunay @ 2019-11-06 15:16 UTC (permalink / raw)
  To: u-boot

Update the sdmmc2 node for eMMC support on eval board stm32mp157c-ev1.
- update slew-rate for pin configuration
- update "vqmmc-supply"
- remove "st,sig-dir"
- add mandatory "pinctrl-names"
- add "mmc-ddr-3_3v"

This patch solve the eMMC detection issue for command "mmc dev 1".

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
---

 arch/arm/dts/stm32mp157-pinctrl.dtsi          | 57 +++++++++++++++++--
 .../arm/dts/stm32mp157a-avenger96-u-boot.dtsi |  5 +-
 arch/arm/dts/stm32mp157c-ed1-u-boot.dtsi      |  5 +-
 arch/arm/dts/stm32mp157c-ed1.dts              |  7 ++-
 4 files changed, 66 insertions(+), 8 deletions(-)

diff --git a/arch/arm/dts/stm32mp157-pinctrl.dtsi b/arch/arm/dts/stm32mp157-pinctrl.dtsi
index 2d73d502d9..0d53396119 100644
--- a/arch/arm/dts/stm32mp157-pinctrl.dtsi
+++ b/arch/arm/dts/stm32mp157-pinctrl.dtsi
@@ -812,31 +812,80 @@
 			};
 
 			sdmmc2_b4_pins_a: sdmmc2-b4-0 {
-				pins {
+				pins1 {
 					pinmux = <STM32_PINMUX('B', 14, AF9)>, /* SDMMC2_D0 */
 						 <STM32_PINMUX('B', 15, AF9)>, /* SDMMC2_D1 */
 						 <STM32_PINMUX('B', 3, AF9)>, /* SDMMC2_D2 */
 						 <STM32_PINMUX('B', 4, AF9)>, /* SDMMC2_D3 */
-						 <STM32_PINMUX('E', 3, AF9)>, /* SDMMC2_CK */
 						 <STM32_PINMUX('G', 6, AF10)>; /* SDMMC2_CMD */
-					slew-rate = <3>;
+					slew-rate = <1>;
+					drive-push-pull;
+					bias-pull-up;
+				};
+				pins2 {
+					pinmux = <STM32_PINMUX('E', 3, AF9)>; /* SDMMC2_CK */
+					slew-rate = <2>;
 					drive-push-pull;
 					bias-pull-up;
 				};
 			};
 
+			sdmmc2_b4_od_pins_a: sdmmc2-b4-od-0 {
+				pins1 {
+					pinmux = <STM32_PINMUX('B', 14, AF9)>, /* SDMMC2_D0 */
+						 <STM32_PINMUX('B', 15, AF9)>, /* SDMMC2_D1 */
+						 <STM32_PINMUX('B', 3, AF9)>, /* SDMMC2_D2 */
+						 <STM32_PINMUX('B', 4, AF9)>; /* SDMMC2_D3 */
+					slew-rate = <1>;
+					drive-push-pull;
+					bias-pull-up;
+				};
+				pins2 {
+					pinmux = <STM32_PINMUX('E', 3, AF9)>; /* SDMMC2_CK */
+					slew-rate = <2>;
+					drive-push-pull;
+					bias-pull-up;
+				};
+				pins3 {
+					pinmux = <STM32_PINMUX('G', 6, AF10)>; /* SDMMC2_CMD */
+					slew-rate = <1>;
+					drive-open-drain;
+					bias-pull-up;
+				};
+			};
+
+			sdmmc2_b4_sleep_pins_a: sdmmc2-b4-sleep-0 {
+				pins {
+					pinmux = <STM32_PINMUX('B', 14, ANALOG)>, /* SDMMC2_D0 */
+						 <STM32_PINMUX('B', 15, ANALOG)>, /* SDMMC2_D1 */
+						 <STM32_PINMUX('B', 3, ANALOG)>, /* SDMMC2_D2 */
+						 <STM32_PINMUX('B', 4, ANALOG)>, /* SDMMC2_D3 */
+						 <STM32_PINMUX('E', 3, ANALOG)>, /* SDMMC2_CK */
+						 <STM32_PINMUX('G', 6, ANALOG)>; /* SDMMC2_CMD */
+				};
+			};
+
 			sdmmc2_d47_pins_a: sdmmc2-d47-0 {
 				pins {
 					pinmux = <STM32_PINMUX('A', 8, AF9)>, /* SDMMC2_D4 */
 						 <STM32_PINMUX('A', 9, AF10)>, /* SDMMC2_D5 */
 						 <STM32_PINMUX('E', 5, AF9)>, /* SDMMC2_D6 */
 						 <STM32_PINMUX('D', 3, AF9)>; /* SDMMC2_D7 */
-					slew-rate = <3>;
+					slew-rate = <1>;
 					drive-push-pull;
 					bias-pull-up;
 				};
 			};
 
+			sdmmc2_d47_sleep_pins_a: sdmmc2-d47-sleep-0 {
+				pins {
+					pinmux = <STM32_PINMUX('A', 8, ANALOG)>, /* SDMMC2_D4 */
+						 <STM32_PINMUX('A', 9, ANALOG)>, /* SDMMC2_D5 */
+						 <STM32_PINMUX('E', 5, ANALOG)>, /* SDMMC2_D6 */
+						 <STM32_PINMUX('D', 3, ANALOG)>; /* SDMMC2_D7 */
+				};
+			};
+
 			spdifrx_pins_a: spdifrx-0 {
 				pins {
 					pinmux = <STM32_PINMUX('G', 12, AF8)>; /* SPDIF_IN1 */
diff --git a/arch/arm/dts/stm32mp157a-avenger96-u-boot.dtsi b/arch/arm/dts/stm32mp157a-avenger96-u-boot.dtsi
index 1ff681afb8..1104a70a65 100644
--- a/arch/arm/dts/stm32mp157a-avenger96-u-boot.dtsi
+++ b/arch/arm/dts/stm32mp157a-avenger96-u-boot.dtsi
@@ -155,7 +155,10 @@
 
 &sdmmc2_b4_pins_a {
 	u-boot,dm-spl;
-	pins {
+	pins1 {
+		u-boot,dm-spl;
+	};
+	pins2 {
 		u-boot,dm-spl;
 	};
 };
diff --git a/arch/arm/dts/stm32mp157c-ed1-u-boot.dtsi b/arch/arm/dts/stm32mp157c-ed1-u-boot.dtsi
index 4953a0db55..b2ac49472a 100644
--- a/arch/arm/dts/stm32mp157c-ed1-u-boot.dtsi
+++ b/arch/arm/dts/stm32mp157c-ed1-u-boot.dtsi
@@ -174,7 +174,10 @@
 
 &sdmmc2_b4_pins_a {
 	u-boot,dm-spl;
-	pins {
+	pins1 {
+		u-boot,dm-spl;
+	};
+	pins2 {
 		u-boot,dm-spl;
 	};
 };
diff --git a/arch/arm/dts/stm32mp157c-ed1.dts b/arch/arm/dts/stm32mp157c-ed1.dts
index 73d07cf42f..bc4d7e1ab5 100644
--- a/arch/arm/dts/stm32mp157c-ed1.dts
+++ b/arch/arm/dts/stm32mp157c-ed1.dts
@@ -294,15 +294,18 @@
 };
 
 &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,sig-dir;
 	st,neg-edge;
 	bus-width = <8>;
 	vmmc-supply = <&v3v3>;
-	vqmmc-supply = <&vdd>;
+	vqmmc-supply = <&v3v3>;
+	mmc-ddr-3_3v;
 	status = "okay";
 };
 
-- 
2.17.1

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

* [U-Boot] [PATCH 1/3] ARM: dts: stm32: DT alignment with kernel v5.3
  2019-11-06 15:16 ` [U-Boot] [PATCH 1/3] ARM: dts: stm32: DT alignment with kernel v5.3 Patrick Delaunay
@ 2019-11-26  9:06   ` Patrice CHOTARD
  2019-11-27 13:36   ` Patrick DELAUNAY
  1 sibling, 0 replies; 9+ messages in thread
From: Patrice CHOTARD @ 2019-11-26  9:06 UTC (permalink / raw)
  To: u-boot

Hi Patrick

On 11/6/19 4:16 PM, Patrick Delaunay wrote:
> Device tree and binding alignment with kernel v5.3
> and converted to SPDX.
>
> Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
> ---
>
>  arch/arm/dts/stm32429i-eval.dts           |   4 +-
>  arch/arm/dts/stm32746g-eval.dts           | 105 +++++++++++++-------
>  arch/arm/dts/stm32f4-pinctrl.dtsi         |  38 +------
>  arch/arm/dts/stm32f429-disco.dts          |  40 +-------
>  arch/arm/dts/stm32f429-pinctrl.dtsi       |  38 +------
>  arch/arm/dts/stm32f429.dtsi               | 115 +++++++++++++++-------
>  arch/arm/dts/stm32f469-disco.dts          |  39 +-------
>  arch/arm/dts/stm32f469-pinctrl.dtsi       |  39 +-------
>  arch/arm/dts/stm32f469.dtsi               |   2 +-
>  arch/arm/dts/stm32f746-disco.dts          |  39 +-------
>  arch/arm/dts/stm32f746.dtsi               |  42 +-------
>  arch/arm/dts/stm32f769-disco.dts          |  43 ++------
>  arch/arm/dts/stm32h7-u-boot.dtsi          |  41 +-------
>  arch/arm/dts/stm32h743-pinctrl.dtsi       |  83 ++++++++++++++++
>  arch/arm/dts/stm32h743.dtsi               |  69 ++++++-------
>  arch/arm/dts/stm32h743i-disco-u-boot.dtsi |   8 --
>  arch/arm/dts/stm32h743i-disco.dts         |  76 +++++++-------
>  arch/arm/dts/stm32h743i-eval-u-boot.dtsi  |   9 --
>  arch/arm/dts/stm32h743i-eval.dts          |  41 +++++++-
>  arch/arm/dts/stm32mp157c-ed1.dts          |   4 +-
>  include/dt-bindings/clock/stm32fx-clock.h |   9 +-
>  include/dt-bindings/mfd/st,stpmic1.h      |   4 +
>  22 files changed, 377 insertions(+), 511 deletions(-)
>
> diff --git a/arch/arm/dts/stm32429i-eval.dts b/arch/arm/dts/stm32429i-eval.dts
> index 1eec951188..bd41ae3c14 100644
> --- a/arch/arm/dts/stm32429i-eval.dts
> +++ b/arch/arm/dts/stm32429i-eval.dts
> @@ -20,6 +20,7 @@
>  	};
>  
>  	memory {
> +		device_type = "memory";
>  		reg = <0x00000000 0x2000000>;
>  	};
>  
> @@ -72,6 +73,7 @@
>  
>  	gpio_keys {
>  		compatible = "gpio-keys";
> +		#address-cells = <1>;
>  		#size-cells = <0>;
>  		autorepeat;
>  		button at 0 {
> @@ -227,7 +229,7 @@
>  	pinctrl-0 = <&sdio_pins>;
>  	pinctrl-1 = <&sdio_pins_od>;
>  	bus-width = <4>;
> -	max-frequency = <14000000>;
> +	max-frequency = <12500000>;
>  };
>  
>  &timers1 {
> diff --git a/arch/arm/dts/stm32746g-eval.dts b/arch/arm/dts/stm32746g-eval.dts
> index 8c081eaf20..d77eb53c6a 100644
> --- a/arch/arm/dts/stm32746g-eval.dts
> +++ b/arch/arm/dts/stm32746g-eval.dts
> @@ -1,49 +1,14 @@
> +// SPDX-License-Identifier: GPL-2.0+ OR X11
>  /*
>   * Copyright 2015 - Maxime Coquelin <mcoquelin.stm32@gmail.com>
>   *
> - * This file is dual-licensed: you can use it either under the terms
> - * of the GPL or the X11 license, at your option. Note that this dual
> - * licensing only applies to this file, and not this project as a
> - * whole.
> - *
> - *  a) This file is free software; you can redistribute it and/or
> - *     modify it under the terms of the GNU General Public License as
> - *     published by the Free Software Foundation; either version 2 of the
> - *     License, or (at your option) any later version.
> - *
> - *     This file is distributed in the hope that it will be useful,
> - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - *     GNU General Public License for more details.
> - *
> - * Or, alternatively,
> - *
> - *  b) Permission is hereby granted, free of charge, to any person
> - *     obtaining a copy of this software and associated documentation
> - *     files (the "Software"), to deal in the Software without
> - *     restriction, including without limitation the rights to use,
> - *     copy, modify, merge, publish, distribute, sublicense, and/or
> - *     sell copies of the Software, and to permit persons to whom the
> - *     Software is furnished to do so, subject to the following
> - *     conditions:
> - *
> - *     The above copyright notice and this permission notice shall be
> - *     included in all copies or substantial portions of the Software.
> - *
> - *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> - *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
> - *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
> - *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
> - *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
> - *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> - *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
> - *     OTHER DEALINGS IN THE SOFTWARE.
>   */
>  
>  /dts-v1/;
>  #include "stm32f746.dtsi"
>  #include "stm32f746-pinctrl.dtsi"
>  #include <dt-bindings/input/input.h>
> +#include <dt-bindings/interrupt-controller/irq.h>
>  
>  / {
>  	model = "STMicroelectronics STM32746g-EVAL board";
> @@ -55,6 +20,7 @@
>  	};
>  
>  	memory {
> +		device_type = "memory";
>  		reg = <0xc0000000 0x2000000>;
>  	};
>  
> @@ -68,9 +34,15 @@
>  			gpios = <&gpiof 10 1>;
>  			linux,default-trigger = "heartbeat";
>  		};
> +		orange {
> +			gpios = <&stmfx_pinctrl 17 1>;
> +		};
>  		red {
>  			gpios = <&gpiob 7 1>;
>  		};
> +		blue {
> +			gpios = <&stmfx_pinctrl 19 1>;
> +		};
>  	};
>  
>  	gpio_keys {
> @@ -85,6 +57,43 @@
>  		};
>  	};
>  
> +	joystick {
> +		compatible = "gpio-keys";
> +		#size-cells = <0>;
> +		pinctrl-0 = <&joystick_pins>;
> +		pinctrl-names = "default";
> +		button-0 {
> +			label = "JoySel";
> +			linux,code = <KEY_ENTER>;
> +			interrupt-parent = <&stmfx_pinctrl>;
> +			interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
> +		};
> +		button-1 {
> +			label = "JoyDown";
> +			linux,code = <KEY_DOWN>;
> +			interrupt-parent = <&stmfx_pinctrl>;
> +			interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
> +		};
> +		button-2 {
> +			label = "JoyLeft";
> +			linux,code = <KEY_LEFT>;
> +			interrupt-parent = <&stmfx_pinctrl>;
> +			interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
> +		};
> +		button-3 {
> +			label = "JoyRight";
> +			linux,code = <KEY_RIGHT>;
> +			interrupt-parent = <&stmfx_pinctrl>;
> +			interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
> +		};
> +		button-4 {
> +			label = "JoyUp";
> +			linux,code = <KEY_UP>;
> +			interrupt-parent = <&stmfx_pinctrl>;
> +			interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
> +		};
> +	};
> +
>  	usbotg_hs_phy: usb-phy {
>  		#phy-cells = <0>;
>  		compatible = "usb-nop-xceiv";
> @@ -114,6 +123,28 @@
>  	i2c-scl-rising-time-ns = <185>;
>  	i2c-scl-falling-time-ns = <20>;
>  	status = "okay";
> +
> +	stmfx: stmfx at 42 {
> +		compatible = "st,stmfx-0300";
> +		reg = <0x42>;
> +		interrupts = <8 IRQ_TYPE_EDGE_RISING>;
> +		interrupt-parent = <&gpioi>;
> +
> +		stmfx_pinctrl: stmfx-pin-controller {
> +			compatible = "st,stmfx-0300-pinctrl";
> +			gpio-controller;
> +			#gpio-cells = <2>;
> +			interrupt-controller;
> +			#interrupt-cells = <2>;
> +			gpio-ranges = <&stmfx_pinctrl 0 0 24>;
> +
> +			joystick_pins: joystick {
> +				pins = "gpio0", "gpio1", "gpio2", "gpio3", "gpio4";
> +				drive-push-pull;
> +				bias-pull-up;
> +			};
> +		};
> +	};
>  };
>  
>  &rtc {
> diff --git a/arch/arm/dts/stm32f4-pinctrl.dtsi b/arch/arm/dts/stm32f4-pinctrl.dtsi
> index 35202896c0..7ed68286ba 100644
> --- a/arch/arm/dts/stm32f4-pinctrl.dtsi
> +++ b/arch/arm/dts/stm32f4-pinctrl.dtsi
> @@ -1,43 +1,7 @@
> +// SPDX-License-Identifier: GPL-2.0+ OR X11
>  /*
>   * Copyright 2017 - Alexandre Torgue <alexandre.torgue@st.com>
>   *
> - * This file is dual-licensed: you can use it either under the terms
> - * of the GPL or the X11 license, at your option. Note that this dual
> - * licensing only applies to this file, and not this project as a
> - * whole.
> - *
> - *  a) This file is free software; you can redistribute it and/or
> - *     modify it under the terms of the GNU General Public License as
> - *     published by the Free Software Foundation; either version 2 of the
> - *     License, or (at your option) any later version.
> - *
> - *     This file is distributed in the hope that it will be useful,
> - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - *     GNU General Public License for more details.
> - *
> - * Or, alternatively,
> - *
> - *  b) Permission is hereby granted, free of charge, to any person
> - *     obtaining a copy of this software and associated documentation
> - *     files (the "Software"), to deal in the Software without
> - *     restriction, including without limitation the rights to use,
> - *     copy, modify, merge, publish, distribute, sublicense, and/or
> - *     sell copies of the Software, and to permit persons to whom the
> - *     Software is furnished to do so, subject to the following
> - *     conditions:
> - *
> - *     The above copyright notice and this permission notice shall be
> - *     included in all copies or substantial portions of the Software.
> - *
> - *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> - *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
> - *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
> - *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
> - *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
> - *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> - *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
> - *     OTHER DEALINGS IN THE SOFTWARE.
>   */
>  
>  #include <dt-bindings/pinctrl/stm32-pinfunc.h>
> diff --git a/arch/arm/dts/stm32f429-disco.dts b/arch/arm/dts/stm32f429-disco.dts
> index d99f47aa72..3a83ef5f60 100644
> --- a/arch/arm/dts/stm32f429-disco.dts
> +++ b/arch/arm/dts/stm32f429-disco.dts
> @@ -1,43 +1,6 @@
> +// SPDX-License-Identifier: GPL-2.0+ OR X11
>  /*
>   * Copyright 2015 - Maxime Coquelin <mcoquelin.stm32@gmail.com>
> - *
> - * This file is dual-licensed: you can use it either under the terms
> - * of the GPL or the X11 license, at your option. Note that this dual
> - * licensing only applies to this file, and not this project as a
> - * whole.
> - *
> - *  a) This file is free software; you can redistribute it and/or
> - *     modify it under the terms of the GNU General Public License as
> - *     published by the Free Software Foundation; either version 2 of the
> - *     License, or (at your option) any later version.
> - *
> - *     This file is distributed in the hope that it will be useful,
> - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - *     GNU General Public License for more details.
> - *
> - * Or, alternatively,
> - *
> - *  b) Permission is hereby granted, free of charge, to any person
> - *     obtaining a copy of this software and associated documentation
> - *     files (the "Software"), to deal in the Software without
> - *     restriction, including without limitation the rights to use,
> - *     copy, modify, merge, publish, distribute, sublicense, and/or
> - *     sell copies of the Software, and to permit persons to whom the
> - *     Software is furnished to do so, subject to the following
> - *     conditions:
> - *
> - *     The above copyright notice and this permission notice shall be
> - *     included in all copies or substantial portions of the Software.
> - *
> - *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> - *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
> - *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
> - *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
> - *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
> - *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> - *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
> - *     OTHER DEALINGS IN THE SOFTWARE.
>   */
>  
>  /dts-v1/;
> @@ -55,6 +18,7 @@
>  	};
>  
>  	memory {
> +		device_type = "memory";
>  		reg = <0x90000000 0x800000>;
>  	};
>  
> diff --git a/arch/arm/dts/stm32f429-pinctrl.dtsi b/arch/arm/dts/stm32f429-pinctrl.dtsi
> index 3e7a17d911..575c7eecab 100644
> --- a/arch/arm/dts/stm32f429-pinctrl.dtsi
> +++ b/arch/arm/dts/stm32f429-pinctrl.dtsi
> @@ -1,43 +1,7 @@
> +// SPDX-License-Identifier: GPL-2.0+ OR X11
>  /*
>   * Copyright 2017 - Alexandre Torgue <alexandre.torgue@st.com>
>   *
> - * This file is dual-licensed: you can use it either under the terms
> - * of the GPL or the X11 license, at your option. Note that this dual
> - * licensing only applies to this file, and not this project as a
> - * whole.
> - *
> - *  a) This file is free software; you can redistribute it and/or
> - *     modify it under the terms of the GNU General Public License as
> - *     published by the Free Software Foundation; either version 2 of the
> - *     License, or (at your option) any later version.
> - *
> - *     This file is distributed in the hope that it will be useful,
> - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - *     GNU General Public License for more details.
> - *
> - * Or, alternatively,
> - *
> - *  b) Permission is hereby granted, free of charge, to any person
> - *     obtaining a copy of this software and associated documentation
> - *     files (the "Software"), to deal in the Software without
> - *     restriction, including without limitation the rights to use,
> - *     copy, modify, merge, publish, distribute, sublicense, and/or
> - *     sell copies of the Software, and to permit persons to whom the
> - *     Software is furnished to do so, subject to the following
> - *     conditions:
> - *
> - *     The above copyright notice and this permission notice shall be
> - *     included in all copies or substantial portions of the Software.
> - *
> - *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> - *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
> - *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
> - *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
> - *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
> - *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> - *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
> - *     OTHER DEALINGS IN THE SOFTWARE.
>   */
>  
>  #include "stm32f4-pinctrl.dtsi"
> diff --git a/arch/arm/dts/stm32f429.dtsi b/arch/arm/dts/stm32f429.dtsi
> index c5c029b9e3..ec84ae4f52 100644
> --- a/arch/arm/dts/stm32f429.dtsi
> +++ b/arch/arm/dts/stm32f429.dtsi
> @@ -1,51 +1,17 @@
> +// SPDX-License-Identifier: GPL-2.0+ OR X11
>  /*
>   * Copyright 2015 - Maxime Coquelin <mcoquelin.stm32@gmail.com>
>   *
> - * This file is dual-licensed: you can use it either under the terms
> - * of the GPL or the X11 license, at your option. Note that this dual
> - * licensing only applies to this file, and not this project as a
> - * whole.
> - *
> - *  a) This file is free software; you can redistribute it and/or
> - *     modify it under the terms of the GNU General Public License as
> - *     published by the Free Software Foundation; either version 2 of the
> - *     License, or (at your option) any later version.
> - *
> - *     This file is distributed in the hope that it will be useful,
> - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - *     GNU General Public License for more details.
> - *
> - * Or, alternatively,
> - *
> - *  b) Permission is hereby granted, free of charge, to any person
> - *     obtaining a copy of this software and associated documentation
> - *     files (the "Software"), to deal in the Software without
> - *     restriction, including without limitation the rights to use,
> - *     copy, modify, merge, publish, distribute, sublicense, and/or
> - *     sell copies of the Software, and to permit persons to whom the
> - *     Software is furnished to do so, subject to the following
> - *     conditions:
> - *
> - *     The above copyright notice and this permission notice shall be
> - *     included in all copies or substantial portions of the Software.
> - *
> - *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> - *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
> - *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
> - *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
> - *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
> - *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> - *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
> - *     OTHER DEALINGS IN THE SOFTWARE.
>   */
>  
> -#include "skeleton.dtsi"
>  #include "armv7-m.dtsi"
>  #include <dt-bindings/clock/stm32fx-clock.h>
>  #include <dt-bindings/mfd/stm32f4-rcc.h>
>  
>  / {
> +	#address-cells = <1>;
> +	#size-cells = <1>;
> +
>  	clocks {
>  		clk_hse: clk-hse {
>  			#clock-cells = <0>;
> @@ -73,6 +39,19 @@
>  	};
>  
>  	soc {
> +		romem: nvmem at 1fff7800 {
> +			compatible = "st,stm32f4-otp";
> +			reg = <0x1fff7800 0x400>;
> +			#address-cells = <1>;
> +			#size-cells = <1>;
> +			ts_cal1: calib at 22c {
> +				reg = <0x22c 0x2>;
> +			};
> +			ts_cal2: calib at 22e {
> +				reg = <0x22e 0x2>;
> +			};
> +		};
> +
>  		timer2: timer at 40000000 {
>  			compatible = "st,stm32-timer";
>  			reg = <0x40000000 0x400>;
> @@ -309,6 +288,26 @@
>  			status = "disabled";
>  		};
>  
> +		spi2: spi at 40003800 {
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +			compatible = "st,stm32f4-spi";
> +			reg = <0x40003800 0x400>;
> +			interrupts = <36>;
> +			clocks = <&rcc 0 STM32F4_APB1_CLOCK(SPI2)>;
> +			status = "disabled";
> +		};
> +
> +		spi3: spi at 40003c00 {
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +			compatible = "st,stm32f4-spi";
> +			reg = <0x40003c00 0x400>;
> +			interrupts = <51>;
> +			clocks = <&rcc 0 STM32F4_APB1_CLOCK(SPI3)>;
> +			status = "disabled";
> +		};
> +
>  		usart2: serial at 40004400 {
>  			compatible = "st,stm32-uart";
>  			reg = <0x40004400 0x400>;
> @@ -518,6 +517,26 @@
>  			status = "disabled";
>  		};
>  
> +		spi1: spi at 40013000 {
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +			compatible = "st,stm32f4-spi";
> +			reg = <0x40013000 0x400>;
> +			interrupts = <35>;
> +			clocks = <&rcc 0 STM32F4_APB2_CLOCK(SPI1)>;
> +			status = "disabled";
> +		};
> +
> +		spi4: spi at 40013400 {
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +			compatible = "st,stm32f4-spi";
> +			reg = <0x40013400 0x400>;
> +			interrupts = <84>;
> +			clocks = <&rcc 0 STM32F4_APB2_CLOCK(SPI4)>;
> +			status = "disabled";
> +		};
> +
>  		syscfg: system-config at 40013800 {
>  			compatible = "syscon";
>  			reg = <0x40013800 0x400>;
> @@ -582,6 +601,26 @@
>  			};
>  		};
>  
> +		spi5: spi at 40015000 {
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +			compatible = "st,stm32f4-spi";
> +			reg = <0x40015000 0x400>;
> +			interrupts = <85>;
> +			clocks = <&rcc 0 STM32F4_APB2_CLOCK(SPI5)>;
> +			status = "disabled";
> +		};
> +
> +		spi6: spi at 40015400 {
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +			compatible = "st,stm32f4-spi";
> +			reg = <0x40015400 0x400>;
> +			interrupts = <86>;
> +			clocks = <&rcc 0 STM32F4_APB2_CLOCK(SPI6)>;
> +			status = "disabled";
> +		};
> +
>  		pwrcfg: power-config at 40007000 {
>  			compatible = "syscon";
>  			reg = <0x40007000 0x400>;
> diff --git a/arch/arm/dts/stm32f469-disco.dts b/arch/arm/dts/stm32f469-disco.dts
> index 3ceb84d8ba..d50c38dc78 100644
> --- a/arch/arm/dts/stm32f469-disco.dts
> +++ b/arch/arm/dts/stm32f469-disco.dts
> @@ -1,43 +1,7 @@
> +// SPDX-License-Identifier: GPL-2.0+ OR X11
>  /*
>   * Copyright 2016 - Lee Jones <lee.jones@linaro.org>
>   *
> - * This file is dual-licensed: you can use it either under the terms
> - * of the GPL or the X11 license, at your option. Note that this dual
> - * licensing only applies to this file, and not this project as a
> - * whole.
> - *
> - *  a) This file is free software; you can redistribute it and/or
> - *     modify it under the terms of the GNU General Public License as
> - *     published by the Free Software Foundation; either version 2 of the
> - *     License, or (at your option) any later version.
> - *
> - *     This file is distributed in the hope that it will be useful,
> - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - *     GNU General Public License for more details.
> - *
> - * Or, alternatively,
> - *
> - *  b) Permission is hereby granted, free of charge, to any person
> - *     obtaining a copy of this software and associated documentation
> - *     files (the "Software"), to deal in the Software without
> - *     restriction, including without limitation the rights to use,
> - *     copy, modify, merge, publish, distribute, sublicense, and/or
> - *     sell copies of the Software, and to permit persons to whom the
> - *     Software is furnished to do so, subject to the following
> - *     conditions:
> - *
> - *     The above copyright notice and this permission notice shall be
> - *     included in all copies or substantial portions of the Software.
> - *
> - *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> - *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
> - *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
> - *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
> - *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
> - *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> - *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
> - *     OTHER DEALINGS IN THE SOFTWARE.
>   */
>  
>  /dts-v1/;
> @@ -56,6 +20,7 @@
>  	};
>  
>  	memory {
> +		device_type = "memory";
>  		reg = <0x00000000 0x1000000>;
>  	};
>  
> diff --git a/arch/arm/dts/stm32f469-pinctrl.dtsi b/arch/arm/dts/stm32f469-pinctrl.dtsi
> index fff542662e..1e2bb0191e 100644
> --- a/arch/arm/dts/stm32f469-pinctrl.dtsi
> +++ b/arch/arm/dts/stm32f469-pinctrl.dtsi
> @@ -1,43 +1,6 @@
> +// SPDX-License-Identifier: GPL-2.0+ OR X11
>  /*
>   * Copyright 2017 - Alexandre Torgue <alexandre.torgue@st.com>
> - *
> - * This file is dual-licensed: you can use it either under the terms
> - * of the GPL or the X11 license, at your option. Note that this dual
> - * licensing only applies to this file, and not this project as a
> - * whole.
> - *
> - *  a) This file is free software; you can redistribute it and/or
> - *     modify it under the terms of the GNU General Public License as
> - *     published by the Free Software Foundation; either version 2 of the
> - *     License, or (at your option) any later version.
> - *
> - *     This file is distributed in the hope that it will be useful,
> - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - *     GNU General Public License for more details.
> - *
> - * Or, alternatively,
> - *
> - *  b) Permission is hereby granted, free of charge, to any person
> - *     obtaining a copy of this software and associated documentation
> - *     files (the "Software"), to deal in the Software without
> - *     restriction, including without limitation the rights to use,
> - *     copy, modify, merge, publish, distribute, sublicense, and/or
> - *     sell copies of the Software, and to permit persons to whom the
> - *     Software is furnished to do so, subject to the following
> - *     conditions:
> - *
> - *     The above copyright notice and this permission notice shall be
> - *     included in all copies or substantial portions of the Software.
> - *
> - *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> - *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
> - *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
> - *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
> - *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
> - *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> - *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
> - *     OTHER DEALINGS IN THE SOFTWARE.
>   */
>  
>  #include "stm32f4-pinctrl.dtsi"
> diff --git a/arch/arm/dts/stm32f469.dtsi b/arch/arm/dts/stm32f469.dtsi
> index 0d58d40649..69c862d973 100644
> --- a/arch/arm/dts/stm32f469.dtsi
> +++ b/arch/arm/dts/stm32f469.dtsi
> @@ -1,4 +1,4 @@
> -// SPDX-License-Identifier: GPL-2.0+
> +// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
>  /* Copyright (C) STMicroelectronics 2017 - All Rights Reserved */
>  
>  #include "stm32f429.dtsi"
> diff --git a/arch/arm/dts/stm32f746-disco.dts b/arch/arm/dts/stm32f746-disco.dts
> index e3a7bd338d..4fef0164cf 100644
> --- a/arch/arm/dts/stm32f746-disco.dts
> +++ b/arch/arm/dts/stm32f746-disco.dts
> @@ -1,43 +1,7 @@
> +// SPDX-License-Identifier: GPL-2.0+ OR X11
>  /*
>   * Copyright 2017 - Vikas MANOCHA <vikas.manocha@st.com>
>   *
> - * This file is dual-licensed: you can use it either under the terms
> - * of the GPL or the X11 license, at your option. Note that this dual
> - * licensing only applies to this file, and not this project as a
> - * whole.
> - *
> - *  a) This file is free software; you can redistribute it and/or
> - *     modify it under the terms of the GNU General Public License as
> - *     published by the Free Software Foundation; either version 2 of the
> - *     License, or (at your option) any later version.
> - *
> - *     This file is distributed in the hope that it will be useful,
> - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - *     GNU General Public License for more details.
> - *
> - * Or, alternatively,
> - *
> - *  b) Permission is hereby granted, free of charge, to any person
> - *     obtaining a copy of this software and associated documentation
> - *     files (the "Software"), to deal in the Software without
> - *     restriction, including without limitation the rights to use,
> - *     copy, modify, merge, publish, distribute, sublicense, and/or
> - *     sell copies of the Software, and to permit persons to whom the
> - *     Software is furnished to do so, subject to the following
> - *     conditions:
> - *
> - *     The above copyright notice and this permission notice shall be
> - *     included in all copies or substantial portions of the Software.
> - *
> - *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> - *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
> - *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
> - *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
> - *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
> - *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> - *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
> - *     OTHER DEALINGS IN THE SOFTWARE.
>   */
>  
>  /dts-v1/;
> @@ -56,6 +20,7 @@
>  	};
>  
>  	memory {
> +		device_type = "memory";
>  		reg = <0xC0000000 0x800000>;
>  	};
>  
> diff --git a/arch/arm/dts/stm32f746.dtsi b/arch/arm/dts/stm32f746.dtsi
> index f48d06a80d..66360cf21c 100644
> --- a/arch/arm/dts/stm32f746.dtsi
> +++ b/arch/arm/dts/stm32f746.dtsi
> @@ -1,51 +1,17 @@
> +// SPDX-License-Identifier: GPL-2.0+ OR X11
>  /*
>   * Copyright 2015 - Maxime Coquelin <mcoquelin.stm32@gmail.com>
>   *
> - * This file is dual-licensed: you can use it either under the terms
> - * of the GPL or the X11 license, at your option. Note that this dual
> - * licensing only applies to this file, and not this project as a
> - * whole.
> - *
> - *  a) This file is free software; you can redistribute it and/or
> - *     modify it under the terms of the GNU General Public License as
> - *     published by the Free Software Foundation; either version 2 of the
> - *     License, or (at your option) any later version.
> - *
> - *     This file is distributed in the hope that it will be useful,
> - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - *     GNU General Public License for more details.
> - *
> - * Or, alternatively,
> - *
> - *  b) Permission is hereby granted, free of charge, to any person
> - *     obtaining a copy of this software and associated documentation
> - *     files (the "Software"), to deal in the Software without
> - *     restriction, including without limitation the rights to use,
> - *     copy, modify, merge, publish, distribute, sublicense, and/or
> - *     sell copies of the Software, and to permit persons to whom the
> - *     Software is furnished to do so, subject to the following
> - *     conditions:
> - *
> - *     The above copyright notice and this permission notice shall be
> - *     included in all copies or substantial portions of the Software.
> - *
> - *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> - *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
> - *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
> - *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
> - *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
> - *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> - *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
> - *     OTHER DEALINGS IN THE SOFTWARE.
>   */
>  
> -#include "skeleton.dtsi"
>  #include "armv7-m.dtsi"
>  #include <dt-bindings/clock/stm32fx-clock.h>
>  #include <dt-bindings/mfd/stm32f7-rcc.h>
>  
>  / {
> +	#address-cells = <1>;
> +	#size-cells = <1>;
> +
>  	clocks {
>  		clk_hse: clk-hse {
>  			#clock-cells = <0>;
> diff --git a/arch/arm/dts/stm32f769-disco.dts b/arch/arm/dts/stm32f769-disco.dts
> index 483d896e2b..8d51e5b0fb 100644
> --- a/arch/arm/dts/stm32f769-disco.dts
> +++ b/arch/arm/dts/stm32f769-disco.dts
> @@ -1,43 +1,7 @@
> +// SPDX-License-Identifier: GPL-2.0+ OR X11
>  /*
>   * Copyright 2017 - Vikas MANOCHA <vikas.manocha@st.com>
>   *
> - * This file is dual-licensed: you can use it either under the terms
> - * of the GPL or the X11 license, at your option. Note that this dual
> - * licensing only applies to this file, and not this project as a
> - * whole.
> - *
> - *  a) This file is free software; you can redistribute it and/or
> - *     modify it under the terms of the GNU General Public License as
> - *     published by the Free Software Foundation; either version 2 of the
> - *     License, or (at your option) any later version.
> - *
> - *     This file is distributed in the hope that it will be useful,
> - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - *     GNU General Public License for more details.
> - *
> - * Or, alternatively,
> - *
> - *  b) Permission is hereby granted, free of charge, to any person
> - *     obtaining a copy of this software and associated documentation
> - *     files (the "Software"), to deal in the Software without
> - *     restriction, including without limitation the rights to use,
> - *     copy, modify, merge, publish, distribute, sublicense, and/or
> - *     sell copies of the Software, and to permit persons to whom the
> - *     Software is furnished to do so, subject to the following
> - *     conditions:
> - *
> - *     The above copyright notice and this permission notice shall be
> - *     included in all copies or substantial portions of the Software.
> - *
> - *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> - *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
> - *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
> - *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
> - *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
> - *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> - *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
> - *     OTHER DEALINGS IN THE SOFTWARE.
>   */
>  
>  /dts-v1/;
> @@ -56,6 +20,7 @@
>  	};
>  
>  	memory {
> +		device_type = "memory";
>  		reg = <0xC0000000 0x1000000>;
>  	};
>  
> @@ -101,6 +66,10 @@
>  	};
>  };
>  
> +&rcc {
> +	compatible = "st,stm32f769-rcc", "st,stm32f746-rcc", "st,stm32-rcc";
> +};
> +
>  &cec {
>  	pinctrl-0 = <&cec_pins_a>;
>  	pinctrl-names = "default";
> diff --git a/arch/arm/dts/stm32h7-u-boot.dtsi b/arch/arm/dts/stm32h7-u-boot.dtsi
> index 99fa0e673a..361c8e5d80 100644
> --- a/arch/arm/dts/stm32h7-u-boot.dtsi
> +++ b/arch/arm/dts/stm32h7-u-boot.dtsi
> @@ -61,17 +61,6 @@
>  				st,sdram-refcount = <1539>;
>  			};
>  		};
> -
> -		sdmmc1: sdmmc at 52007000 {
> -			compatible = "st,stm32-sdmmc2";
> -			reg = <0x52007000 0x1000>;
> -			interrupts = <49>;
> -			clocks = <&rcc SDMMC1_CK>;
> -			resets = <&rcc STM32H7_AHB3_RESET(SDMMC1)>;
> -			st,idma = <1>;
> -			cap-sd-highspeed;
> -			cap-mmc-highspeed;
> -		};
>  	};
>  };
>  
> @@ -216,32 +205,6 @@
>  			slew-rate = <3>;
>  		};
>  	};
> -
> -	pinctrl_sdmmc1_level_shifter: sdmmc0_ls at 0 {
> -		pins {
> -			pinmux = <STM32_PINMUX('B', 8, AF7)>,
> -				 <STM32_PINMUX('B', 9, AF7)>,
> -				 <STM32_PINMUX('C', 6, AF8)>,
> -				 <STM32_PINMUX('C', 7, AF8)>;
> -			drive-push-pull;
> -			slew-rate = <3>;
> -		};
> -	};
> -
> -	sdmmc1_pins: sdmmc at 0 {
> -		pins {
> -			pinmux = <STM32_PINMUX('C', 8, AF12)>,
> -				 <STM32_PINMUX('C', 9, AF12)>,
> -				 <STM32_PINMUX('C',10, AF12)>,
> -				 <STM32_PINMUX('C',11, AF12)>,
> -				 <STM32_PINMUX('C',12, AF12)>,
> -				 <STM32_PINMUX('D', 2, AF12)>;
> -
> -			slew-rate = <3>;
> -			drive-push-pull;
> -			bias-disable;
> -		};
> -	};
>  };
>  
>  &pwrcfg {
> @@ -251,3 +214,7 @@
>  &rcc {
>  	u-boot,dm-pre-reloc;
>  };
> +
> +&sdmmc1 {
> +	compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
> +};
> diff --git a/arch/arm/dts/stm32h743-pinctrl.dtsi b/arch/arm/dts/stm32h743-pinctrl.dtsi
> index c823541a0d..e3a5c537f3 100644
> --- a/arch/arm/dts/stm32h743-pinctrl.dtsi
> +++ b/arch/arm/dts/stm32h743-pinctrl.dtsi
> @@ -173,6 +173,89 @@
>  				};
>  			};
>  
> +			ethernet_rmii: rmii at 0 {
> +				pins {
> +					pinmux = <STM32_PINMUX('G', 11, AF11)>,
> +						 <STM32_PINMUX('G', 13, AF11)>,
> +						 <STM32_PINMUX('G', 12, AF11)>,
> +						 <STM32_PINMUX('C', 4, AF11)>,
> +						 <STM32_PINMUX('C', 5, AF11)>,
> +						 <STM32_PINMUX('A', 7, AF11)>,
> +						 <STM32_PINMUX('C', 1, AF11)>,
> +						 <STM32_PINMUX('A', 2, AF11)>,
> +						 <STM32_PINMUX('A', 1, AF11)>;
> +					slew-rate = <2>;
> +				};
> +			};
> +
> +			sdmmc1_b4_pins_a: sdmmc1-b4-0 {
> +				pins {
> +					pinmux = <STM32_PINMUX('C', 8, AF12)>, /* SDMMC1_D0 */
> +						 <STM32_PINMUX('C', 9, AF12)>, /* SDMMC1_D1 */
> +						 <STM32_PINMUX('C', 10, AF12)>, /* SDMMC1_D2 */
> +						 <STM32_PINMUX('C', 11, AF12)>, /* SDMMC1_D3 */
> +						 <STM32_PINMUX('C', 12, AF12)>, /* SDMMC1_CK */
> +						 <STM32_PINMUX('D', 2, AF12)>; /* SDMMC1_CMD */
> +					slew-rate = <3>;
> +					drive-push-pull;
> +					bias-disable;
> +				};
> +			};
> +
> +			sdmmc1_b4_od_pins_a: sdmmc1-b4-od-0 {
> +				pins1 {
> +					pinmux = <STM32_PINMUX('C', 8, AF12)>, /* SDMMC1_D0 */
> +						 <STM32_PINMUX('C', 9, AF12)>, /* SDMMC1_D1 */
> +						 <STM32_PINMUX('C', 10, AF12)>, /* SDMMC1_D2 */
> +						 <STM32_PINMUX('C', 11, AF12)>, /* SDMMC1_D3 */
> +						 <STM32_PINMUX('C', 12, AF12)>; /* SDMMC1_CK */
> +					slew-rate = <3>;
> +					drive-push-pull;
> +					bias-disable;
> +				};
> +				pins2{
> +					pinmux = <STM32_PINMUX('D', 2, AF12)>; /* SDMMC1_CMD */
> +					slew-rate = <3>;
> +					drive-open-drain;
> +					bias-disable;
> +				};
> +			};
> +
> +			sdmmc1_b4_sleep_pins_a: sdmmc1-b4-sleep-0 {
> +				pins {
> +					pinmux = <STM32_PINMUX('C', 8, ANALOG)>, /* SDMMC1_D0 */
> +						 <STM32_PINMUX('C', 9, ANALOG)>, /* SDMMC1_D1 */
> +						 <STM32_PINMUX('C', 10, ANALOG)>, /* SDMMC1_D2 */
> +						 <STM32_PINMUX('C', 11, ANALOG)>, /* SDMMC1_D3 */
> +						 <STM32_PINMUX('C', 12, ANALOG)>, /* SDMMC1_CK */
> +						 <STM32_PINMUX('D', 2, ANALOG)>; /* SDMMC1_CMD */
> +				};
> +			};
> +
> +			sdmmc1_dir_pins_a: sdmmc1-dir-0 {
> +				pins1 {
> +					pinmux = <STM32_PINMUX('C', 6, AF8)>, /* SDMMC1_D0DIR */
> +						 <STM32_PINMUX('C', 7, AF8)>, /* SDMMC1_D123DIR */
> +						 <STM32_PINMUX('B', 9, AF7)>; /* SDMMC1_CDIR */
> +					slew-rate = <3>;
> +					drive-push-pull;
> +					bias-pull-up;
> +				};
> +				pins2{
> +					pinmux = <STM32_PINMUX('B', 8, AF7)>; /* SDMMC1_CKIN */
> +					bias-pull-up;
> +				};
> +			};
> +
> +			sdmmc1_dir_sleep_pins_a: sdmmc1-dir-sleep-0 {
> +				pins {
> +					pinmux = <STM32_PINMUX('C', 6, ANALOG)>, /* SDMMC1_D0DIR */
> +						 <STM32_PINMUX('C', 7, ANALOG)>, /* SDMMC1_D123DIR */
> +						 <STM32_PINMUX('B', 9, ANALOG)>, /* SDMMC1_CDIR */
> +						 <STM32_PINMUX('B', 8, ANALOG)>; /* SDMMC1_CKIN */
> +				};
> +			};
> +
>  			usart1_pins: usart1 at 0 {
>  				pins1 {
>  					pinmux = <STM32_PINMUX('B', 14, AF4)>; /* USART1_TX */
> diff --git a/arch/arm/dts/stm32h743.dtsi b/arch/arm/dts/stm32h743.dtsi
> index cbdd69ca9e..4b4e7a99f7 100644
> --- a/arch/arm/dts/stm32h743.dtsi
> +++ b/arch/arm/dts/stm32h743.dtsi
> @@ -1,52 +1,18 @@
> +// SPDX-License-Identifier: GPL-2.0+ OR X11
>  /*
>   * Copyright 2017 - Alexandre Torgue <alexandre.torgue@st.com>
>   *
> - * This file is dual-licensed: you can use it either under the terms
> - * of the GPL or the X11 license, at your option. Note that this dual
> - * licensing only applies to this file, and not this project as a
> - * whole.
> - *
> - *  a) This file is free software; you can redistribute it and/or
> - *     modify it under the terms of the GNU General Public License as
> - *     published by the Free Software Foundation; either version 2 of the
> - *     License, or (at your option) any later version.
> - *
> - *     This file is distributed in the hope that it will be useful,
> - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - *     GNU General Public License for more details.
> - *
> - * Or, alternatively,
> - *
> - *  b) Permission is hereby granted, free of charge, to any person
> - *     obtaining a copy of this software and associated documentation
> - *     files (the "Software"), to deal in the Software without
> - *     restriction, including without limitation the rights to use,
> - *     copy, modify, merge, publish, distribute, sublicense, and/or
> - *     sell copies of the Software, and to permit persons to whom the
> - *     Software is furnished to do so, subject to the following
> - *     conditions:
> - *
> - *     The above copyright notice and this permission notice shall be
> - *     included in all copies or substantial portions of the Software.
> - *
> - *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> - *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
> - *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
> - *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
> - *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
> - *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> - *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
> - *     OTHER DEALINGS IN THE SOFTWARE.
>   */
>  
> -#include "skeleton.dtsi"
>  #include "armv7-m.dtsi"
>  #include <dt-bindings/clock/stm32h7-clks.h>
>  #include <dt-bindings/mfd/stm32h7-rcc.h>
>  #include <dt-bindings/interrupt-controller/irq.h>
>  
>  / {
> +	#address-cells = <1>;
> +	#size-cells = <1>;
> +
>  	clocks {
>  		clk_hse: clk-hse {
>  			#clock-cells = <0>;
> @@ -337,6 +303,20 @@
>  			dma-requests = <32>;
>  		};
>  
> +		sdmmc1: sdmmc at 52007000 {
> +			compatible = "arm,pl18x", "arm,primecell";
> +			arm,primecell-periphid = <0x10153180>;
> +			reg = <0x52007000 0x1000>;
> +			interrupts = <49>;
> +			interrupt-names	= "cmd_irq";
> +			clocks = <&rcc SDMMC1_CK>;
> +			clock-names = "apb_pclk";
> +			resets = <&rcc STM32H7_AHB3_RESET(SDMMC1)>;
> +			cap-sd-highspeed;
> +			cap-mmc-highspeed;
> +			max-frequency = <120000000>;
> +		};
> +
>  		exti: interrupt-controller at 58000000 {
>  			compatible = "st,stm32h7-exti";
>  			interrupt-controller;
> @@ -511,6 +491,19 @@
>  				status = "disabled";
>  			};
>  		};
> +
> +		mac: ethernet at 40028000 {
> +			compatible = "st,stm32-dwmac", "snps,dwmac-4.10a";
> +			reg = <0x40028000 0x8000>;
> +			reg-names = "stmmaceth";
> +			interrupts = <61>;
> +			interrupt-names = "macirq";
> +			clock-names = "stmmaceth", "mac-clk-tx", "mac-clk-rx";
> +			clocks = <&rcc ETH1MAC_CK>, <&rcc ETH1TX_CK>, <&rcc ETH1RX_CK>;
> +			st,syscon = <&syscfg 0x4>;
> +			snps,pbl = <8>;
> +			status = "disabled";
> +		};
>  	};
>  };
>  
> diff --git a/arch/arm/dts/stm32h743i-disco-u-boot.dtsi b/arch/arm/dts/stm32h743i-disco-u-boot.dtsi
> index 2d6b41bfb9..5965afcbe4 100644
> --- a/arch/arm/dts/stm32h743i-disco-u-boot.dtsi
> +++ b/arch/arm/dts/stm32h743i-disco-u-boot.dtsi
> @@ -1,11 +1,3 @@
>  // SPDX-License-Identifier: GPL-2.0+
>  
>  #include <stm32h7-u-boot.dtsi>
> -
> -&sdmmc1 {
> -	status = "okay";
> -	pinctrl-0 = <&sdmmc1_pins>;
> -	pinctrl-names = "default";
> -	bus-width = <4>;
> -	cd-gpios = <&gpioi 8 1>;
> -};
> diff --git a/arch/arm/dts/stm32h743i-disco.dts b/arch/arm/dts/stm32h743i-disco.dts
> index 45e088c557..43c30bfcbe 100644
> --- a/arch/arm/dts/stm32h743i-disco.dts
> +++ b/arch/arm/dts/stm32h743i-disco.dts
> @@ -1,43 +1,7 @@
> +// SPDX-License-Identifier: GPL-2.0+ OR X11
>  /*
>   * Copyright 2017 - Patrice Chotard <patrice.chotard@st.com>
>   *
> - * This file is dual-licensed: you can use it either under the terms
> - * of the GPL or the X11 license, at your option. Note that this dual
> - * licensing only applies to this file, and not this project as a
> - * whole.
> - *
> - *  a) This file is free software; you can redistribute it and/or
> - *     modify it under the terms of the GNU General Public License as
> - *     published by the Free Software Foundation; either version 2 of the
> - *     License, or (at your option) any later version.
> - *
> - *     This file is distributed in the hope that it will be useful,
> - *     but WITHOUT ANY WARRANTY; without even the implied warranty of
> - *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - *     GNU General Public License for more details.
> - *
> - * Or, alternatively,
> - *
> - *  b) Permission is hereby granted, free of charge, to any person
> - *     obtaining a copy of this software and associated documentation
> - *     files (the "Software"), to deal in the Software without
> - *     restriction, including without limitation the rights to use,
> - *     copy, modify, merge, publish, distribute, sublicense, and/or
> - *     sell copies of the Software, and to permit persons to whom the
> - *     Software is furnished to do so, subject to the following
> - *     conditions:
> - *
> - *     The above copyright notice and this permission notice shall be
> - *     included in all copies or substantial portions of the Software.
> - *
> - *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> - *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
> - *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
> - *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
> - *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
> - *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> - *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
> - *     OTHER DEALINGS IN THE SOFTWARE.
>   */
>  
>  /dts-v1/;
> @@ -54,18 +18,56 @@
>  	};
>  
>  	memory {
> +		device_type = "memory";
>  		reg = <0xd0000000 0x2000000>;
>  	};
>  
>  	aliases {
>  		serial0 = &usart2;
>  	};
> +
> +	v3v3: regulator-v3v3 {
> +		compatible = "regulator-fixed";
> +		regulator-name = "v3v3";
> +		regulator-min-microvolt = <3300000>;
> +		regulator-max-microvolt = <3300000>;
> +		regulator-always-on;
> +	};
>  };
>  
>  &clk_hse {
>  	clock-frequency = <25000000>;
>  };
>  
> +&mac {
> +	status = "disabled";
> +	pinctrl-0	= <&ethernet_rmii>;
> +	pinctrl-names	= "default";
> +	phy-mode	= "rmii";
> +	phy-handle	= <&phy0>;
> +
> +	mdio0 {
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +		compatible = "snps,dwmac-mdio";
> +		phy0: ethernet-phy at 0 {
> +			reg = <0>;
> +		};
> +	};
> +};
> +
> +&sdmmc1 {
> +	pinctrl-names = "default", "opendrain", "sleep";
> +	pinctrl-0 = <&sdmmc1_b4_pins_a>;
> +	pinctrl-1 = <&sdmmc1_b4_od_pins_a>;
> +	pinctrl-2 = <&sdmmc1_b4_sleep_pins_a>;
> +	broken-cd;
> +	st,neg-edge;
> +	bus-width = <4>;
> +	vmmc-supply = <&v3v3>;
> +	status = "okay";
> +};
> +
>  &usart2 {
>  	pinctrl-0 = <&usart2_pins>;
>  	pinctrl-names = "default";
> diff --git a/arch/arm/dts/stm32h743i-eval-u-boot.dtsi b/arch/arm/dts/stm32h743i-eval-u-boot.dtsi
> index 251977abe0..5965afcbe4 100644
> --- a/arch/arm/dts/stm32h743i-eval-u-boot.dtsi
> +++ b/arch/arm/dts/stm32h743i-eval-u-boot.dtsi
> @@ -1,12 +1,3 @@
>  // SPDX-License-Identifier: GPL-2.0+
>  
>  #include <stm32h7-u-boot.dtsi>
> -
> -&sdmmc1 {
> -	status = "okay";
> -	pinctrl-0 = <&sdmmc1_pins>,
> -		    <&pinctrl_sdmmc1_level_shifter>;
> -	pinctrl-names = "default";
> -	bus-width = <4>;
> -	st,sig-dir;
> -};
> diff --git a/arch/arm/dts/stm32h743i-eval.dts b/arch/arm/dts/stm32h743i-eval.dts
> index 3f8e0c4a99..ab78ad5323 100644
> --- a/arch/arm/dts/stm32h743i-eval.dts
> +++ b/arch/arm/dts/stm32h743i-eval.dts
> @@ -54,6 +54,7 @@
>  	};
>  
>  	memory {
> +		device_type = "memory";
>  		reg = <0xd0000000 0x2000000>;
>  	};
>  
> @@ -69,13 +70,20 @@
>  		regulator-always-on;
>  	};
>  
> +	v2v9_sd: regulator-v2v9_sd {
> +		compatible = "regulator-fixed";
> +		regulator-name = "v2v9_sd";
> +		regulator-min-microvolt = <2900000>;
> +		regulator-max-microvolt = <2900000>;
> +		regulator-always-on;
> +	};
> +
>  	usbotg_hs_phy: usb-phy {
>  		#phy-cells = <0>;
>  		compatible = "usb-nop-xceiv";
>  		clocks = <&rcc USB1ULPI_CK>;
>  		clock-names = "main_clk";
>  	};
> -
>  };
>  
>  &adc_12 {
> @@ -104,6 +112,37 @@
>  	status = "okay";
>  };
>  
> +&mac {
> +	status = "disabled";
> +	pinctrl-0	= <&ethernet_rmii>;
> +	pinctrl-names	= "default";
> +	phy-mode	= "rmii";
> +	phy-handle	= <&phy0>;
> +
> +	mdio0 {
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +		compatible = "snps,dwmac-mdio";
> +		phy0: ethernet-phy at 0 {
> +			reg = <0>;
> +		};
> +	};
> +};
> +
> +&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 = <&v2v9_sd>;
> +	status = "okay";
> +};
> +
>  &usart1 {
>  	pinctrl-0 = <&usart1_pins>;
>  	pinctrl-names = "default";
> diff --git a/arch/arm/dts/stm32mp157c-ed1.dts b/arch/arm/dts/stm32mp157c-ed1.dts
> index 1d9cc734f1..66deca1bc9 100644
> --- a/arch/arm/dts/stm32mp157c-ed1.dts
> +++ b/arch/arm/dts/stm32mp157c-ed1.dts
> @@ -176,10 +176,10 @@
>  				regulator-over-current-protection;
>  			};
>  
> -			 bst_out: boost {
> +			bst_out: boost {
>  				regulator-name = "bst_out";
>  				interrupts = <IT_OCP_BOOST 0>;
> -			 };
> +			};
>  
>  			vbus_otg: pwr_sw1 {
>  				regulator-name = "vbus_otg";
> diff --git a/include/dt-bindings/clock/stm32fx-clock.h b/include/dt-bindings/clock/stm32fx-clock.h
> index 58d8b515be..1cc89c5485 100644
> --- a/include/dt-bindings/clock/stm32fx-clock.h
> +++ b/include/dt-bindings/clock/stm32fx-clock.h
> @@ -1,9 +1,9 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
>  /*
>   * stm32fx-clock.h
>   *
>   * Copyright (C) 2016 STMicroelectronics
>   * Author: Gabriel Fernandez for STMicroelectronics.
> - * License terms:  GNU General Public License (GPL), version 2
>   */
>  
>  /*
> @@ -54,7 +54,10 @@
>  #define CLK_I2C3		28
>  #define CLK_I2C4		29
>  #define CLK_LPTIMER		30
> -
> -#define END_PRIMARY_CLK_F7	31
> +#define CLK_PLL_SRC		31
> +#define CLK_DFSDM1		32
> +#define CLK_ADFSDM1		33
> +#define CLK_F769_DSI		34
> +#define END_PRIMARY_CLK_F7	35
>  
>  #endif
> diff --git a/include/dt-bindings/mfd/st,stpmic1.h b/include/dt-bindings/mfd/st,stpmic1.h
> index b2d6c83462..321cd08797 100644
> --- a/include/dt-bindings/mfd/st,stpmic1.h
> +++ b/include/dt-bindings/mfd/st,stpmic1.h
> @@ -43,4 +43,8 @@
>  #define IT_SWIN_F	30
>  #define IT_SWIN_R	31
>  
> +/* BUCK MODES definitions */
> +#define STPMIC1_BUCK_MODE_NORMAL 0
> +#define STPMIC1_BUCK_MODE_LP 2
> +
>  #endif /* __DT_BINDINGS_STPMIC1_H__ */


Reviewed-by: Patrice Chotard <patrice.chotard@st.com>

thanks

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

* [U-Boot] [PATCH 2/3] ARM: dts: stm32: DT alignment with kernel v5.4-rc4
  2019-11-06 15:16 ` [U-Boot] [PATCH 2/3] ARM: dts: stm32: DT alignment with kernel v5.4-rc4 Patrick Delaunay
@ 2019-11-26  9:06   ` Patrice CHOTARD
  2019-11-27 13:37   ` Patrick DELAUNAY
  1 sibling, 0 replies; 9+ messages in thread
From: Patrice CHOTARD @ 2019-11-26  9:06 UTC (permalink / raw)
  To: u-boot

Hi Patrick

On 11/6/19 4:16 PM, Patrick Delaunay wrote:
> Device tree and binding alignment with kernel v5.4-rc4
>
> Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
> ---
>
>  arch/arm/dts/st-pincfg.h              |   1 +
>  arch/arm/dts/stm32429i-eval.dts       |  25 ++---
>  arch/arm/dts/stm32f429.dtsi           |  12 +++
>  arch/arm/dts/stm32f746.dtsi           |  12 +++
>  arch/arm/dts/stm32h743i-eval.dts      |   1 +
>  arch/arm/dts/stm32mp157-pinctrl.dtsi  |   2 +-
>  arch/arm/dts/stm32mp157a-dk1.dts      | 129 ++++++++++++++++++++++++++
>  arch/arm/dts/stm32mp157c-ed1.dts      |  40 ++++++++
>  arch/arm/dts/stm32mp157c-ev1.dts      |   3 +-
>  arch/arm/dts/stm32mp157c.dtsi         |  26 ++++++
>  include/dt-bindings/mfd/stm32f7-rcc.h |   1 +
>  include/dt-bindings/mfd/stm32h7-rcc.h |   2 +-
>  12 files changed, 239 insertions(+), 15 deletions(-)
>
> diff --git a/arch/arm/dts/st-pincfg.h b/arch/arm/dts/st-pincfg.h
> index 4851c387d5..d805512022 100644
> --- a/arch/arm/dts/st-pincfg.h
> +++ b/arch/arm/dts/st-pincfg.h
> @@ -1,3 +1,4 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
>  #ifndef _ST_PINCFG_H_
>  #define _ST_PINCFG_H_
>  
> diff --git a/arch/arm/dts/stm32429i-eval.dts b/arch/arm/dts/stm32429i-eval.dts
> index bd41ae3c14..c5afa0c162 100644
> --- a/arch/arm/dts/stm32429i-eval.dts
> +++ b/arch/arm/dts/stm32429i-eval.dts
> @@ -40,18 +40,18 @@
>  		dma-ranges = <0xc0000000 0x0 0x10000000>;
>  	};
>  
> -	regulators {
> -		compatible = "simple-bus";
> -		#address-cells = <1>;
> -		#size-cells = <0>;
> +	vdda: regulator-vdda {
> +		compatible = "regulator-fixed";
> +		regulator-name = "vdda";
> +		regulator-min-microvolt = <3300000>;
> +		regulator-max-microvolt = <3300000>;
> +	};
>  
> -		reg_vref: regulator at 0 {
> -			compatible = "regulator-fixed";
> -			reg = <0>;
> -			regulator-name = "vref";
> -			regulator-min-microvolt = <3300000>;
> -			regulator-max-microvolt = <3300000>;
> -		};
> +	vref: regulator-vref {
> +		compatible = "regulator-fixed";
> +		regulator-name = "vref";
> +		regulator-min-microvolt = <3300000>;
> +		regulator-max-microvolt = <3300000>;
>  	};
>  
>  	leds {
> @@ -116,7 +116,8 @@
>  &adc {
>  	pinctrl-names = "default";
>  	pinctrl-0 = <&adc3_in8_pin>;
> -	vref-supply = <&reg_vref>;
> +	vdda-supply = <&vdda>;
> +	vref-supply = <&vref>;
>  	status = "okay";
>  	adc3: adc at 200 {
>  		st,adc-channels = <8>;
> diff --git a/arch/arm/dts/stm32f429.dtsi b/arch/arm/dts/stm32f429.dtsi
> index ec84ae4f52..db0b82e89e 100644
> --- a/arch/arm/dts/stm32f429.dtsi
> +++ b/arch/arm/dts/stm32f429.dtsi
> @@ -71,6 +71,7 @@
>  
>  			pwm {
>  				compatible = "st,stm32-pwm";
> +				#pwm-cells = <3>;
>  				status = "disabled";
>  			};
>  
> @@ -100,6 +101,7 @@
>  
>  			pwm {
>  				compatible = "st,stm32-pwm";
> +				#pwm-cells = <3>;
>  				status = "disabled";
>  			};
>  
> @@ -129,6 +131,7 @@
>  
>  			pwm {
>  				compatible = "st,stm32-pwm";
> +				#pwm-cells = <3>;
>  				status = "disabled";
>  			};
>  
> @@ -157,6 +160,7 @@
>  
>  			pwm {
>  				compatible = "st,stm32-pwm";
> +				#pwm-cells = <3>;
>  				status = "disabled";
>  			};
>  
> @@ -226,6 +230,7 @@
>  
>  			pwm {
>  				compatible = "st,stm32-pwm";
> +				#pwm-cells = <3>;
>  				status = "disabled";
>  			};
>  
> @@ -247,6 +252,7 @@
>  
>  			pwm {
>  				compatible = "st,stm32-pwm";
> +				#pwm-cells = <3>;
>  				status = "disabled";
>  			};
>  		};
> @@ -262,6 +268,7 @@
>  
>  			pwm {
>  				compatible = "st,stm32-pwm";
> +				#pwm-cells = <3>;
>  				status = "disabled";
>  			};
>  		};
> @@ -407,6 +414,7 @@
>  
>  			pwm {
>  				compatible = "st,stm32-pwm";
> +				#pwm-cells = <3>;
>  				status = "disabled";
>  			};
>  
> @@ -428,6 +436,7 @@
>  
>  			pwm {
>  				compatible = "st,stm32-pwm";
> +				#pwm-cells = <3>;
>  				status = "disabled";
>  			};
>  
> @@ -561,6 +570,7 @@
>  
>  			pwm {
>  				compatible = "st,stm32-pwm";
> +				#pwm-cells = <3>;
>  				status = "disabled";
>  			};
>  
> @@ -582,6 +592,7 @@
>  
>  			pwm {
>  				compatible = "st,stm32-pwm";
> +				#pwm-cells = <3>;
>  				status = "disabled";
>  			};
>  		};
> @@ -597,6 +608,7 @@
>  
>  			pwm {
>  				compatible = "st,stm32-pwm";
> +				#pwm-cells = <3>;
>  				status = "disabled";
>  			};
>  		};
> diff --git a/arch/arm/dts/stm32f746.dtsi b/arch/arm/dts/stm32f746.dtsi
> index 66360cf21c..3f312ab3a7 100644
> --- a/arch/arm/dts/stm32f746.dtsi
> +++ b/arch/arm/dts/stm32f746.dtsi
> @@ -58,6 +58,7 @@
>  
>  			pwm {
>  				compatible = "st,stm32-pwm";
> +				#pwm-cells = <3>;
>  				status = "disabled";
>  			};
>  
> @@ -87,6 +88,7 @@
>  
>  			pwm {
>  				compatible = "st,stm32-pwm";
> +				#pwm-cells = <3>;
>  				status = "disabled";
>  			};
>  
> @@ -116,6 +118,7 @@
>  
>  			pwm {
>  				compatible = "st,stm32-pwm";
> +				#pwm-cells = <3>;
>  				status = "disabled";
>  			};
>  
> @@ -144,6 +147,7 @@
>  
>  			pwm {
>  				compatible = "st,stm32-pwm";
> +				#pwm-cells = <3>;
>  				status = "disabled";
>  			};
>  
> @@ -213,6 +217,7 @@
>  
>  			pwm {
>  				compatible = "st,stm32-pwm";
> +				#pwm-cells = <3>;
>  				status = "disabled";
>  			};
>  
> @@ -234,6 +239,7 @@
>  
>  			pwm {
>  				compatible = "st,stm32-pwm";
> +				#pwm-cells = <3>;
>  				status = "disabled";
>  			};
>  		};
> @@ -249,6 +255,7 @@
>  
>  			pwm {
>  				compatible = "st,stm32-pwm";
> +				#pwm-cells = <3>;
>  				status = "disabled";
>  			};
>  		};
> @@ -383,6 +390,7 @@
>  
>  			pwm {
>  				compatible = "st,stm32-pwm";
> +				#pwm-cells = <3>;
>  				status = "disabled";
>  			};
>  
> @@ -404,6 +412,7 @@
>  
>  			pwm {
>  				compatible = "st,stm32-pwm";
> +				#pwm-cells = <3>;
>  				status = "disabled";
>  			};
>  
> @@ -476,6 +485,7 @@
>  
>  			pwm {
>  				compatible = "st,stm32-pwm";
> +				#pwm-cells = <3>;
>  				status = "disabled";
>  			};
>  
> @@ -497,6 +507,7 @@
>  
>  			pwm {
>  				compatible = "st,stm32-pwm";
> +				#pwm-cells = <3>;
>  				status = "disabled";
>  			};
>  		};
> @@ -512,6 +523,7 @@
>  
>  			pwm {
>  				compatible = "st,stm32-pwm";
> +				#pwm-cells = <3>;
>  				status = "disabled";
>  			};
>  		};
> diff --git a/arch/arm/dts/stm32h743i-eval.dts b/arch/arm/dts/stm32h743i-eval.dts
> index ab78ad5323..e4d3c58f3d 100644
> --- a/arch/arm/dts/stm32h743i-eval.dts
> +++ b/arch/arm/dts/stm32h743i-eval.dts
> @@ -87,6 +87,7 @@
>  };
>  
>  &adc_12 {
> +	vdda-supply = <&vdda>;
>  	vref-supply = <&vdda>;
>  	status = "okay";
>  	adc1: adc at 0 {
> diff --git a/arch/arm/dts/stm32mp157-pinctrl.dtsi b/arch/arm/dts/stm32mp157-pinctrl.dtsi
> index 4367e8dcf7..2d73d502d9 100644
> --- a/arch/arm/dts/stm32mp157-pinctrl.dtsi
> +++ b/arch/arm/dts/stm32mp157-pinctrl.dtsi
> @@ -565,7 +565,7 @@
>  				};
>  			};
>  
> -			m_can1_sleep_pins_a: m_can1-sleep at 0 {
> +			m_can1_sleep_pins_a: m_can1-sleep-0 {
>  				pins {
>  					pinmux = <STM32_PINMUX('H', 13, ANALOG)>, /* CAN1_TX */
>  						 <STM32_PINMUX('I', 9, ANALOG)>; /* CAN1_RX */
> diff --git a/arch/arm/dts/stm32mp157a-dk1.dts b/arch/arm/dts/stm32mp157a-dk1.dts
> index c210acc0aa..4652253012 100644
> --- a/arch/arm/dts/stm32mp157a-dk1.dts
> +++ b/arch/arm/dts/stm32mp157a-dk1.dts
> @@ -33,6 +33,42 @@
>  		#size-cells = <1>;
>  		ranges;
>  
> +		mcuram2: mcuram2 at 10000000 {
> +			compatible = "shared-dma-pool";
> +			reg = <0x10000000 0x40000>;
> +			no-map;
> +		};
> +
> +		vdev0vring0: vdev0vring0 at 10040000 {
> +			compatible = "shared-dma-pool";
> +			reg = <0x10040000 0x1000>;
> +			no-map;
> +		};
> +
> +		vdev0vring1: vdev0vring1 at 10041000 {
> +			compatible = "shared-dma-pool";
> +			reg = <0x10041000 0x1000>;
> +			no-map;
> +		};
> +
> +		vdev0buffer: vdev0buffer at 10042000 {
> +			compatible = "shared-dma-pool";
> +			reg = <0x10042000 0x4000>;
> +			no-map;
> +		};
> +
> +		mcuram: mcuram at 30000000 {
> +			compatible = "shared-dma-pool";
> +			reg = <0x30000000 0x40000>;
> +			no-map;
> +		};
> +
> +		retram: retram at 38000000 {
> +			compatible = "shared-dma-pool";
> +			reg = <0x38000000 0x10000>;
> +			no-map;
> +		};
> +
>  		gpu_reserved: gpu at d4000000 {
>  			reg = <0xd4000000 0x4000000>;
>  			no-map;
> @@ -48,6 +84,17 @@
>  			default-state = "off";
>  		};
>  	};
> +
> +	sound {
> +		compatible = "audio-graph-card";
> +		label = "STM32MP1-DK";
> +		routing =
> +			"Playback" , "MCLK",
> +			"Capture" , "MCLK",
> +			"MICL" , "Mic Bias";
> +		dais = <&sai2a_port &sai2b_port>;
> +		status = "okay";
> +	};
>  };
>  
>  &cec {
> @@ -116,6 +163,39 @@
>  			};
>  		};
>  	};
> +
> +	cs42l51: cs42l51 at 4a {
> +		compatible = "cirrus,cs42l51";
> +		reg = <0x4a>;
> +		#sound-dai-cells = <0>;
> +		VL-supply = <&v3v3>;
> +		VD-supply = <&v1v8_audio>;
> +		VA-supply = <&v1v8_audio>;
> +		VAHP-supply = <&v1v8_audio>;
> +		reset-gpios = <&gpiog 9 GPIO_ACTIVE_LOW>;
> +		clocks = <&sai2a>;
> +		clock-names = "MCLK";
> +		status = "okay";
> +
> +		cs42l51_port: port {
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +
> +			cs42l51_tx_endpoint: endpoint at 0 {
> +				reg = <0>;
> +				remote-endpoint = <&sai2a_endpoint>;
> +				frame-master;
> +				bitclock-master;
> +			};
> +
> +			cs42l51_rx_endpoint: endpoint at 1 {
> +				reg = <1>;
> +				remote-endpoint = <&sai2b_endpoint>;
> +				frame-master;
> +				bitclock-master;
> +			};
> +		};
> +	};
>  };
>  
>  &i2c4 {
> @@ -308,8 +388,12 @@
>  };
>  
>  &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";
>  };
>  
> @@ -328,6 +412,51 @@
>  	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_a>, <&sai2b_pins_b>;
> +	pinctrl-1 = <&sai2a_sleep_pins_a>, <&sai2b_sleep_pins_b>;
> +	status = "okay";
> +
> +	sai2a: audio-controller at 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 = <&cs42l51_tx_endpoint>;
> +				format = "i2s";
> +				mclk-fs = <256>;
> +				dai-tdm-slot-num = <2>;
> +				dai-tdm-slot-width = <32>;
> +			};
> +		};
> +	};
> +
> +	sai2b: audio-controller at 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 = <&cs42l51_rx_endpoint>;
> +				format = "i2s";
> +				mclk-fs = <256>;
> +				dai-tdm-slot-num = <2>;
> +				dai-tdm-slot-width = <32>;
> +			};
> +		};
> +	};
> +};
> +
>  &sdmmc1 {
>  	pinctrl-names = "default", "opendrain", "sleep";
>  	pinctrl-0 = <&sdmmc1_b4_pins_a>;
> diff --git a/arch/arm/dts/stm32mp157c-ed1.dts b/arch/arm/dts/stm32mp157c-ed1.dts
> index 66deca1bc9..73d07cf42f 100644
> --- a/arch/arm/dts/stm32mp157c-ed1.dts
> +++ b/arch/arm/dts/stm32mp157c-ed1.dts
> @@ -28,6 +28,42 @@
>  		#size-cells = <1>;
>  		ranges;
>  
> +		mcuram2: mcuram2 at 10000000 {
> +			compatible = "shared-dma-pool";
> +			reg = <0x10000000 0x40000>;
> +			no-map;
> +		};
> +
> +		vdev0vring0: vdev0vring0 at 10040000 {
> +			compatible = "shared-dma-pool";
> +			reg = <0x10040000 0x1000>;
> +			no-map;
> +		};
> +
> +		vdev0vring1: vdev0vring1 at 10041000 {
> +			compatible = "shared-dma-pool";
> +			reg = <0x10041000 0x1000>;
> +			no-map;
> +		};
> +
> +		vdev0buffer: vdev0buffer at 10042000 {
> +			compatible = "shared-dma-pool";
> +			reg = <0x10042000 0x4000>;
> +			no-map;
> +		};
> +
> +		mcuram: mcuram at 30000000 {
> +			compatible = "shared-dma-pool";
> +			reg = <0x30000000 0x40000>;
> +			no-map;
> +		};
> +
> +		retram: retram at 38000000 {
> +			compatible = "shared-dma-pool";
> +			reg = <0x38000000 0x10000>;
> +			no-map;
> +		};
> +
>  		gpu_reserved: gpu at e8000000 {
>  			reg = <0xe8000000 0x8000000>;
>  			no-map;
> @@ -218,8 +254,12 @@
>  };
>  
>  &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";
>  };
>  
> diff --git a/arch/arm/dts/stm32mp157c-ev1.dts b/arch/arm/dts/stm32mp157c-ev1.dts
> index 23de232831..89d29b50c3 100644
> --- a/arch/arm/dts/stm32mp157c-ev1.dts
> +++ b/arch/arm/dts/stm32mp157c-ev1.dts
> @@ -101,6 +101,7 @@
>  &dsi {
>  	#address-cells = <1>;
>  	#size-cells = <0>;
> +	phy-dsi-supply = <&reg18>;
>  	status = "okay";
>  
>  	ports {
> @@ -165,7 +166,7 @@
>  	#address-cells = <1>;
>  	#size-cells = <0>;
>  
> -	nand: nand at 0 {
> +	nand at 0 {
>  		reg = <0>;
>  		nand-on-flash-bbt;
>  		#address-cells = <1>;
> diff --git a/arch/arm/dts/stm32mp157c.dtsi b/arch/arm/dts/stm32mp157c.dtsi
> index a6045dd682..6c670cf9a3 100644
> --- a/arch/arm/dts/stm32mp157c.dtsi
> +++ b/arch/arm/dts/stm32mp157c.dtsi
> @@ -109,6 +109,12 @@
>  		};
>  	};
>  
> +	booster: regulator-booster {
> +		compatible = "st,stm32mp1-booster";
> +		st,syscfg = <&syscfg>;
> +		status = "disabled";
> +	};
> +
>  	reboot {
>  		compatible = "syscon-reboot";
>  		regmap = <&rcc>;
> @@ -140,6 +146,7 @@
>  
>  			pwm {
>  				compatible = "st,stm32-pwm";
> +				#pwm-cells = <3>;
>  				status = "disabled";
>  			};
>  
> @@ -168,6 +175,7 @@
>  
>  			pwm {
>  				compatible = "st,stm32-pwm";
> +				#pwm-cells = <3>;
>  				status = "disabled";
>  			};
>  
> @@ -194,6 +202,7 @@
>  
>  			pwm {
>  				compatible = "st,stm32-pwm";
> +				#pwm-cells = <3>;
>  				status = "disabled";
>  			};
>  
> @@ -222,6 +231,7 @@
>  
>  			pwm {
>  				compatible = "st,stm32-pwm";
> +				#pwm-cells = <3>;
>  				status = "disabled";
>  			};
>  
> @@ -279,6 +289,7 @@
>  
>  			pwm {
>  				compatible = "st,stm32-pwm";
> +				#pwm-cells = <3>;
>  				status = "disabled";
>  			};
>  
> @@ -300,6 +311,7 @@
>  
>  			pwm {
>  				compatible = "st,stm32-pwm";
> +				#pwm-cells = <3>;
>  				status = "disabled";
>  			};
>  
> @@ -321,6 +333,7 @@
>  
>  			pwm {
>  				compatible = "st,stm32-pwm";
> +				#pwm-cells = <3>;
>  				status = "disabled";
>  			};
>  
> @@ -574,6 +587,7 @@
>  
>  			pwm {
>  				compatible = "st,stm32-pwm";
> +				#pwm-cells = <3>;
>  				status = "disabled";
>  			};
>  
> @@ -604,6 +618,7 @@
>  
>  			pwm {
>  				compatible = "st,stm32-pwm";
> +				#pwm-cells = <3>;
>  				status = "disabled";
>  			};
>  
> @@ -677,6 +692,7 @@
>  
>  			pwm {
>  				compatible = "st,stm32-pwm";
> +				#pwm-cells = <3>;
>  				status = "disabled";
>  			};
>  
> @@ -701,6 +717,7 @@
>  
>  			pwm {
>  				compatible = "st,stm32-pwm";
> +				#pwm-cells = <3>;
>  				status = "disabled";
>  			};
>  			timer at 15 {
> @@ -724,6 +741,7 @@
>  
>  			pwm {
>  				compatible = "st,stm32-pwm";
> +				#pwm-cells = <3>;
>  				status = "disabled";
>  			};
>  
> @@ -990,6 +1008,7 @@
>  			clocks = <&rcc ADC12>, <&rcc ADC12_K>;
>  			clock-names = "bus", "adc";
>  			interrupt-controller;
> +			st,syscfg = <&syscfg>;
>  			#interrupt-cells = <1>;
>  			#address-cells = <1>;
>  			#size-cells = <0>;
> @@ -1313,6 +1332,10 @@
>  			      <0x89010000 0x1000>,
>  			      <0x89020000 0x1000>;
>  			interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
> +			dmas = <&mdma1 20 0x10 0x12000a02 0x0 0x0>,
> +			       <&mdma1 20 0x10 0x12000a08 0x0 0x0>,
> +			       <&mdma1 21 0x10 0x12000a0a 0x0 0x0>;
> +			dma-names = "tx", "rx", "ecc";
>  			clocks = <&rcc FMC_K>;
>  			resets = <&rcc FMC_R>;
>  			status = "disabled";
> @@ -1323,6 +1346,9 @@
>  			reg = <0x58003000 0x1000>, <0x70000000 0x10000000>;
>  			reg-names = "qspi", "qspi_mm";
>  			interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
> +			dmas = <&mdma1 22 0x10 0x100002 0x0 0x0>,
> +			       <&mdma1 22 0x10 0x100008 0x0 0x0>;
> +			dma-names = "tx", "rx";
>  			clocks = <&rcc QSPI_K>;
>  			resets = <&rcc QSPI_R>;
>  			status = "disabled";
> diff --git a/include/dt-bindings/mfd/stm32f7-rcc.h b/include/dt-bindings/mfd/stm32f7-rcc.h
> index c9087f5f3d..ba5cb7456e 100644
> --- a/include/dt-bindings/mfd/stm32f7-rcc.h
> +++ b/include/dt-bindings/mfd/stm32f7-rcc.h
> @@ -1,3 +1,4 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
>  /*
>   * This header provides constants for the STM32F7 RCC IP
>   */
> diff --git a/include/dt-bindings/mfd/stm32h7-rcc.h b/include/dt-bindings/mfd/stm32h7-rcc.h
> index b96b3c3ac1..06e8476bf0 100644
> --- a/include/dt-bindings/mfd/stm32h7-rcc.h
> +++ b/include/dt-bindings/mfd/stm32h7-rcc.h
> @@ -12,6 +12,7 @@
>  #define STM32H7_RCC_AHB3_FMC		12
>  #define STM32H7_RCC_AHB3_QUADSPI	14
>  #define STM32H7_RCC_AHB3_SDMMC1		16
> +#define STM32H7_RCC_AHB3_CPU		31
>  #define STM32H7_RCC_AHB3_CPU1		31
>  
>  #define STM32H7_AHB3_RESET(bit) (STM32H7_RCC_AHB3_##bit + (0x7C * 8))
> @@ -56,7 +57,6 @@
>  
>  #define STM32H7_AHB4_RESET(bit) (STM32H7_RCC_AHB4_##bit + (0x88 * 8))
>  
> -
>  /* APB3 */
>  #define STM32H7_RCC_APB3_LTDC		3
>  #define STM32H7_RCC_APB3_DSI		4


Reviewed-by: Patrice Chotard <patrice.chotard@st.com>

thanks

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

* [U-Boot] [PATCH 1/3] ARM: dts: stm32: DT alignment with kernel v5.3
  2019-11-06 15:16 ` [U-Boot] [PATCH 1/3] ARM: dts: stm32: DT alignment with kernel v5.3 Patrick Delaunay
  2019-11-26  9:06   ` Patrice CHOTARD
@ 2019-11-27 13:36   ` Patrick DELAUNAY
  1 sibling, 0 replies; 9+ messages in thread
From: Patrick DELAUNAY @ 2019-11-27 13:36 UTC (permalink / raw)
  To: u-boot

Hi,

> From: Patrick DELAUNAY <patrick.delaunay@st.com>
> Sent: mercredi 6 novembre 2019 16:17
> 
> Device tree and binding alignment with kernel v5.3 and converted to SPDX.
> 
> Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
> ---

Applied to u-boot-stm32/master, thanks!

-- 
Patrick

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

* [U-Boot] [PATCH 2/3] ARM: dts: stm32: DT alignment with kernel v5.4-rc4
  2019-11-06 15:16 ` [U-Boot] [PATCH 2/3] ARM: dts: stm32: DT alignment with kernel v5.4-rc4 Patrick Delaunay
  2019-11-26  9:06   ` Patrice CHOTARD
@ 2019-11-27 13:37   ` Patrick DELAUNAY
  1 sibling, 0 replies; 9+ messages in thread
From: Patrick DELAUNAY @ 2019-11-27 13:37 UTC (permalink / raw)
  To: u-boot

Hi,

> From: Patrick DELAUNAY <patrick.delaunay@st.com>
> Sent: mercredi 6 novembre 2019 16:17
> 
> Device tree and binding alignment with kernel v5.4-rc4
> 
> Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
> ---

Applied to u-boot-stm32/master, thanks!

-- 
Patrick

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

* [U-Boot] [PATCH 3/3] ARM: dts: stm32: update eMMC configuration for stm32mp157c-ev1
  2019-11-06 15:16 ` [U-Boot] [PATCH 3/3] ARM: dts: stm32: update eMMC configuration for stm32mp157c-ev1 Patrick Delaunay
@ 2019-11-27 13:38   ` Patrick DELAUNAY
  0 siblings, 0 replies; 9+ messages in thread
From: Patrick DELAUNAY @ 2019-11-27 13:38 UTC (permalink / raw)
  To: u-boot

Hi

> From: Patrick DELAUNAY <patrick.delaunay@st.com>
> Sent: mercredi 6 novembre 2019 16:17
> 
> Update the sdmmc2 node for eMMC support on eval board stm32mp157c-ev1.
> - update slew-rate for pin configuration
> - update "vqmmc-supply"
> - remove "st,sig-dir"
> - add mandatory "pinctrl-names"
> - add "mmc-ddr-3_3v"
> 
> This patch solve the eMMC detection issue for command "mmc dev 1".
> 
> Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
> ---

Applied to u-boot-stm32/master, thanks!

-- 
Patrick

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

end of thread, other threads:[~2019-11-27 13:38 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-06 15:16 [U-Boot] [PATCH 0/3] ARM: dts: stm32: udpate device tree for v2020.01 Patrick Delaunay
2019-11-06 15:16 ` [U-Boot] [PATCH 1/3] ARM: dts: stm32: DT alignment with kernel v5.3 Patrick Delaunay
2019-11-26  9:06   ` Patrice CHOTARD
2019-11-27 13:36   ` Patrick DELAUNAY
2019-11-06 15:16 ` [U-Boot] [PATCH 2/3] ARM: dts: stm32: DT alignment with kernel v5.4-rc4 Patrick Delaunay
2019-11-26  9:06   ` Patrice CHOTARD
2019-11-27 13:37   ` Patrick DELAUNAY
2019-11-06 15:16 ` [U-Boot] [PATCH 3/3] ARM: dts: stm32: update eMMC configuration for stm32mp157c-ev1 Patrick Delaunay
2019-11-27 13:38   ` Patrick DELAUNAY

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.