diff mbox series

[V2,14/14] ARM: dts: stm32: Split AV96 into DHCOR SoM and AV96 board

Message ID 20200331004851.282583-15-marex@denx.de
State Superseded
Delegated to: Patrick Delaunay
Headers show
Series ARM: stm32: Fix Avenger96 | expand

Commit Message

Marek Vasut March 31, 2020, 12:48 a.m. UTC
The AV96 is in fact an assembly of DH Electronics DHCOR SoM on top
of an AV96 reference board. Split the DTs to reflect that and make
sure to DHCOR SoM can be reused on other boards easily.

It is also highly recommended to configure the board for the DHCOM
make stm32mp15_dhcom_basic_defconfig
make DEVICE_TREE=stm32mp15xx-dhcor-avenger96
as that permits reusing the board code for the DH components, like
accessing and reading out the ethernet MAC from EEPROM.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Patrick Delaunay <patrick.delaunay@st.com>
Cc: Patrice Chotard <patrice.chotard@st.com>
---
V2: No change
---
 arch/arm/dts/Makefile                         |   3 +-
 arch/arm/dts/stm32mp157a-avenger96.dts        | 421 +-----------------
 .../stm32mp15xx-dhcor-avenger96-u-boot.dtsi   |  80 ++++
 arch/arm/dts/stm32mp15xx-dhcor-avenger96.dts  | 211 +++++++++
 ...oot.dtsi => stm32mp15xx-dhcor-u-boot.dtsi} |  79 +---
 arch/arm/dts/stm32mp15xx-dhcor.dtsi           | 231 ++++++++++
 doc/board/st/stm32mp1.rst                     |   8 +-
 7 files changed, 535 insertions(+), 498 deletions(-)
 create mode 100644 arch/arm/dts/stm32mp15xx-dhcor-avenger96-u-boot.dtsi
 create mode 100644 arch/arm/dts/stm32mp15xx-dhcor-avenger96.dts
 rename arch/arm/dts/{stm32mp157a-avenger96-u-boot.dtsi => stm32mp15xx-dhcor-u-boot.dtsi} (75%)
 create mode 100644 arch/arm/dts/stm32mp15xx-dhcor.dtsi

Comments

Patrice CHOTARD March 31, 2020, 8:38 a.m. UTC | #1
Hi Marek

On 3/31/20 2:48 AM, Marek Vasut wrote:
> The AV96 is in fact an assembly of DH Electronics DHCOR SoM on top
> of an AV96 reference board. Split the DTs to reflect that and make
> sure to DHCOR SoM can be reused on other boards easily.
>
> It is also highly recommended to configure the board for the DHCOM
> make stm32mp15_dhcom_basic_defconfig
> make DEVICE_TREE=stm32mp15xx-dhcor-avenger96
> as that permits reusing the board code for the DH components, like
> accessing and reading out the ethernet MAC from EEPROM.
>
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Patrick Delaunay <patrick.delaunay@st.com>
> Cc: Patrice Chotard <patrice.chotard@st.com>

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

Thanks

> ---
> V2: No change
> ---
>  arch/arm/dts/Makefile                         |   3 +-
>  arch/arm/dts/stm32mp157a-avenger96.dts        | 421 +-----------------
>  .../stm32mp15xx-dhcor-avenger96-u-boot.dtsi   |  80 ++++
>  arch/arm/dts/stm32mp15xx-dhcor-avenger96.dts  | 211 +++++++++
>  ...oot.dtsi => stm32mp15xx-dhcor-u-boot.dtsi} |  79 +---
>  arch/arm/dts/stm32mp15xx-dhcor.dtsi           | 231 ++++++++++
>  doc/board/st/stm32mp1.rst                     |   8 +-
>  7 files changed, 535 insertions(+), 498 deletions(-)
>  create mode 100644 arch/arm/dts/stm32mp15xx-dhcor-avenger96-u-boot.dtsi
>  create mode 100644 arch/arm/dts/stm32mp15xx-dhcor-avenger96.dts
>  rename arch/arm/dts/{stm32mp157a-avenger96-u-boot.dtsi => stm32mp15xx-dhcor-u-boot.dtsi} (75%)
>  create mode 100644 arch/arm/dts/stm32mp15xx-dhcor.dtsi
>
> diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
> index 9c593b2c98..2564f790de 100644
> --- a/arch/arm/dts/Makefile
> +++ b/arch/arm/dts/Makefile
> @@ -884,7 +884,8 @@ dtb-$(CONFIG_STM32MP15x) += \
>  	stm32mp157c-dk2.dtb \
>  	stm32mp157c-ed1.dtb \
>  	stm32mp157c-ev1.dtb \
> -	stm32mp15xx-dhcom-pdk2.dtb
> +	stm32mp15xx-dhcom-pdk2.dtb \
> +	stm32mp15xx-dhcor-avenger96.dtb
>  
>  dtb-$(CONFIG_SOC_K3_AM6) += k3-am654-base-board.dtb k3-am654-r5-base-board.dtb
>  dtb-$(CONFIG_SOC_K3_J721E) += k3-j721e-common-proc-board.dtb \
> diff --git a/arch/arm/dts/stm32mp157a-avenger96.dts b/arch/arm/dts/stm32mp157a-avenger96.dts
> index 4fa20bc31d..9c165104fb 100644
> --- a/arch/arm/dts/stm32mp157a-avenger96.dts
> +++ b/arch/arm/dts/stm32mp157a-avenger96.dts
> @@ -4,422 +4,5 @@
>   * Author: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
>   */
>  
> -/dts-v1/;
> -
> -#include "stm32mp157c.dtsi"
> -#include "stm32mp157xac-pinctrl.dtsi"
> -#include <dt-bindings/gpio/gpio.h>
> -#include <dt-bindings/mfd/st,stpmic1.h>
> -
> -/ {
> -	model = "Arrow Electronics STM32MP157A Avenger96 board";
> -	compatible = "arrow,stm32mp157a-avenger96", "st,stm32mp157";
> -
> -	aliases {
> -		ethernet0 = &ethernet0;
> -		mmc0 = &sdmmc1;
> -		serial0 = &uart4;
> -		serial1 = &uart7;
> -		spi0 = &qspi;
> -	};
> -
> -	chosen {
> -		stdout-path = "serial0:115200n8";
> -	};
> -
> -	memory@c0000000 {
> -		device_type = "memory";
> -		reg = <0xc0000000 0x40000000>;
> -	};
> -
> -	led {
> -		compatible = "gpio-leds";
> -		led1 {
> -			label = "green:user1";
> -			gpios = <&gpioz 7 GPIO_ACTIVE_HIGH>;
> -			linux,default-trigger = "heartbeat";
> -			default-state = "off";
> -		};
> -
> -		led2 {
> -			label = "green:user2";
> -			gpios = <&gpiof 3 GPIO_ACTIVE_HIGH>;
> -			linux,default-trigger = "mmc0";
> -			default-state = "off";
> -		};
> -
> -		led3 {
> -			label = "green:user3";
> -			gpios = <&gpiog 0 GPIO_ACTIVE_HIGH>;
> -			linux,default-trigger = "mmc1";
> -			default-state = "off";
> -		};
> -
> -		led4 {
> -			label = "green:user3";
> -			gpios = <&gpiog 1 GPIO_ACTIVE_HIGH>;
> -			linux,default-trigger = "none";
> -			default-state = "off";
> -			panic-indicator;
> -		};
> -
> -		led5 {
> -			label = "yellow:wifi";
> -			gpios = <&gpioz 3 GPIO_ACTIVE_HIGH>;
> -			linux,default-trigger = "phy0tx";
> -			default-state = "off";
> -		};
> -
> -		led6 {
> -			label = "blue:bt";
> -			gpios = <&gpioz 6 GPIO_ACTIVE_HIGH>;
> -			linux,default-trigger = "bluetooth-power";
> -			default-state = "off";
> -		};
> -	};
> -
> -	sd_switch: regulator-sd_switch {
> -		compatible = "regulator-gpio";
> -		regulator-name = "sd_switch";
> -		regulator-min-microvolt = <1800000>;
> -		regulator-max-microvolt = <2900000>;
> -		regulator-type = "voltage";
> -		regulator-always-on;
> -
> -		gpios = <&gpioi 5 GPIO_ACTIVE_HIGH>;
> -		gpios-states = <0>;
> -		states = <1800000 0x1>,
> -			 <2900000 0x0>;
> -	};
> -
> -	/* Enpirion EP3A8LQI U2 on the DHCOR */
> -	vdd_io: regulator-buck-io {
> -		compatible = "regulator-fixed";
> -		regulator-name = "buck-io";
> -		regulator-min-microvolt = <1800000>;
> -		regulator-max-microvolt = <1800000>;
> -		regulator-always-on;
> -		regulator-boot-on;
> -		vin-supply = <&vdd>;
> -	};
> -};
> -
> -&ethernet0 {
> -	status = "okay";
> -	pinctrl-0 = <&ethernet0_rgmii_pins_b>;
> -	pinctrl-1 = <&ethernet0_rgmii_pins_sleep_b>;
> -	pinctrl-names = "default", "sleep";
> -	phy-mode = "rgmii";
> -	max-speed = <1000>;
> -	phy-handle = <&phy0>;
> -	phy-reset-gpios = <&gpioz 2 GPIO_ACTIVE_LOW>;
> -
> -	mdio0 {
> -		#address-cells = <1>;
> -		#size-cells = <0>;
> -		compatible = "snps,dwmac-mdio";
> -		phy0: ethernet-phy@7 {
> -			reg = <7>;
> -		};
> -	};
> -};
> -
> -&i2c1 {
> -	pinctrl-names = "default";
> -	pinctrl-0 = <&i2c1_pins_b>;
> -	i2c-scl-rising-time-ns = <185>;
> -	i2c-scl-falling-time-ns = <20>;
> -	status = "okay";
> -	/delete-property/dmas;
> -	/delete-property/dma-names;
> -};
> -
> -&i2c2 {
> -	pinctrl-names = "default";
> -	pinctrl-0 = <&i2c2_pins_b1 &i2c2_pins_b2>;
> -	i2c-scl-rising-time-ns = <185>;
> -	i2c-scl-falling-time-ns = <20>;
> -	status = "okay";
> -	/delete-property/dmas;
> -	/delete-property/dma-names;
> -};
> -
> -&i2c4 {
> -	pinctrl-names = "default";
> -	pinctrl-0 = <&i2c4_pins_a>;
> -	i2c-scl-rising-time-ns = <185>;
> -	i2c-scl-falling-time-ns = <20>;
> -	status = "okay";
> -	/delete-property/dmas;
> -	/delete-property/dma-names;
> -
> -	pmic: stpmic@33 {
> -		compatible = "st,stpmic1";
> -		reg = <0x33>;
> -		interrupts-extended = <&exti 55 IRQ_TYPE_EDGE_FALLING>;
> -		interrupt-controller;
> -		#interrupt-cells = <2>;
> -		status = "okay";
> -
> -		st,main-control-register = <0x04>;
> -		st,vin-control-register = <0xc0>;
> -		st,usb-control-register = <0x30>;
> -
> -		regulators {
> -			compatible = "st,stpmic1-regulators";
> -
> -			ldo1-supply = <&v3v3>;
> -			ldo2-supply = <&v3v3>;
> -			ldo3-supply = <&vdd_ddr>;
> -			ldo5-supply = <&v3v3>;
> -			ldo6-supply = <&v3v3>;
> -			pwr_sw1-supply = <&bst_out>;
> -			pwr_sw2-supply = <&bst_out>;
> -
> -			vddcore: buck1 {
> -				regulator-name = "vddcore";
> -				regulator-min-microvolt = <800000>;
> -				regulator-max-microvolt = <1350000>;
> -				regulator-always-on;
> -				regulator-initial-mode = <0>;
> -				regulator-over-current-protection;
> -			};
> -
> -			vdd_ddr: buck2 {
> -				regulator-name = "vdd_ddr";
> -				regulator-min-microvolt = <1350000>;
> -				regulator-max-microvolt = <1350000>;
> -				regulator-always-on;
> -				regulator-initial-mode = <0>;
> -				regulator-over-current-protection;
> -			};
> -
> -			vdd: buck3 {
> -				regulator-name = "vdd";
> -				regulator-min-microvolt = <2900000>;
> -				regulator-max-microvolt = <2900000>;
> -				regulator-always-on;
> -				st,mask_reset;
> -				regulator-initial-mode = <0>;
> -				regulator-over-current-protection;
> -			};
> -
> -			v3v3: buck4 {
> -				regulator-name = "v3v3";
> -				regulator-min-microvolt = <3300000>;
> -				regulator-max-microvolt = <3300000>;
> -				regulator-always-on;
> -				regulator-over-current-protection;
> -				regulator-initial-mode = <0>;
> -			};
> -
> -			vdda: ldo1 {
> -				regulator-name = "vdda";
> -				regulator-min-microvolt = <2900000>;
> -				regulator-max-microvolt = <2900000>;
> -				interrupts = <IT_CURLIM_LDO1 0>;
> -				interrupt-parent = <&pmic>;
> -			};
> -
> -			v2v8: ldo2 {
> -				regulator-name = "v2v8";
> -				regulator-min-microvolt = <2800000>;
> -				regulator-max-microvolt = <2800000>;
> -				interrupts = <IT_CURLIM_LDO2 0>;
> -				interrupt-parent = <&pmic>;
> -			};
> -
> -			vtt_ddr: ldo3 {
> -				regulator-name = "vtt_ddr";
> -				regulator-min-microvolt = <500000>;
> -				regulator-max-microvolt = <750000>;
> -				regulator-always-on;
> -				regulator-over-current-protection;
> -			};
> -
> -			vdd_usb: ldo4 {
> -				regulator-name = "vdd_usb";
> -				regulator-min-microvolt = <3300000>;
> -				regulator-max-microvolt = <3300000>;
> -				interrupts = <IT_CURLIM_LDO4 0>;
> -				interrupt-parent = <&pmic>;
> -			};
> -
> -			vdd_sd: ldo5 {
> -				regulator-name = "vdd_sd";
> -				regulator-min-microvolt = <2900000>;
> -				regulator-max-microvolt = <2900000>;
> -				interrupts = <IT_CURLIM_LDO5 0>;
> -				interrupt-parent = <&pmic>;
> -				regulator-boot-on;
> -			};
> -
> -			v1v8: ldo6 {
> -				regulator-name = "v1v8";
> -				regulator-min-microvolt = <1800000>;
> -				regulator-max-microvolt = <1800000>;
> -				interrupts = <IT_CURLIM_LDO6 0>;
> -				interrupt-parent = <&pmic>;
> -				regulator-enable-ramp-delay = <300000>;
> -			};
> -
> -			vref_ddr: vref_ddr {
> -				regulator-name = "vref_ddr";
> -				regulator-always-on;
> -				regulator-over-current-protection;
> -			};
> -
> -			bst_out: boost {
> -				regulator-name = "bst_out";
> -				interrupts = <IT_OCP_BOOST 0>;
> -				interrupt-parent = <&pmic>;
> -			};
> -
> -			vbus_otg: pwr_sw1 {
> -				regulator-name = "vbus_otg";
> -				interrupts = <IT_OCP_OTG 0>;
> -				interrupt-parent = <&pmic>;
> -				regulator-active-discharge = <1>;
> -			};
> -
> -			vbus_sw: pwr_sw2 {
> -				regulator-name = "vbus_sw";
> -				interrupts = <IT_OCP_SWOUT 0>;
> -				interrupt-parent = <&pmic>;
> -				regulator-active-discharge = <1>;
> -			};
> -		};
> -
> -		onkey {
> -			compatible = "st,stpmic1-onkey";
> -			interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 1>;
> -			interrupt-names = "onkey-falling", "onkey-rising";
> -			status = "okay";
> -		};
> -
> -		watchdog {
> -			compatible = "st,stpmic1-wdt";
> -			status = "disabled";
> -		};
> -	};
> -
> -	eeprom@53 {
> -		compatible = "atmel,24c02";
> -		reg = <0x53>;
> -		pagesize = <16>;
> -	};
> -};
> -
> -&iwdg2 {
> -	timeout-sec = <32>;
> -	status = "okay";
> -};
> -
> -&pwr_regulators {
> -	vdd-supply = <&vdd_io>;
> -	vdd_3v3_usbfs-supply = <&vdd_usb>;
> -};
> -
> -&qspi {
> -	pinctrl-names = "default", "sleep";
> -	pinctrl-0 = <&qspi_clk_pins_a &qspi_bk1_pins_a>;
> -	pinctrl-1 = <&qspi_clk_sleep_pins_a &qspi_bk1_sleep_pins_a>;
> -	reg = <0x58003000 0x1000>, <0x70000000 0x4000000>;
> -	#address-cells = <1>;
> -	#size-cells = <0>;
> -	status = "okay";
> -
> -	flash0: spi-flash@0 {
> -		compatible = "jedec,spi-nor";
> -		reg = <0>;
> -		spi-rx-bus-width = <4>;
> -		spi-max-frequency = <108000000>;
> -		#address-cells = <1>;
> -		#size-cells = <1>;
> -	};
> -};
> -
> -&rng1 {
> -	status = "okay";
> -};
> -
> -&rtc {
> -	status = "okay";
> -};
> -
> -&sdmmc1 {
> -	pinctrl-names = "default", "opendrain", "sleep";
> -	pinctrl-0 = <&sdmmc1_b4_pins_a &sdmmc1_dir_pins_b>;
> -	pinctrl-1 = <&sdmmc1_b4_od_pins_a &sdmmc1_dir_pins_b>;
> -	pinctrl-2 = <&sdmmc1_b4_sleep_pins_a &sdmmc1_dir_sleep_pins_b>;
> -	cd-gpios = <&gpioi 8 GPIO_ACTIVE_LOW>;
> -	disable-wp;
> -	st,sig-dir;
> -	st,neg-edge;
> -	st,use-ckin;
> -	sd-uhs-sdr104;
> -	bus-width = <4>;
> -	vmmc-supply = <&vdd_sd>;
> -	vqmmc-supply = <&sd_switch>;
> -	status = "okay";
> -};
> -
> -&sdmmc2 {
> -	pinctrl-names = "default";
> -	pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_b>;
> -	non-removable;
> -	no-sd;
> -	no-sdio;
> -	st,neg-edge;
> -	bus-width = <8>;
> -	vmmc-supply = <&v3v3>;
> -	mmc-ddr-3_3v;
> -	status = "okay";
> -};
> -
> -&spi2 {
> -	pinctrl-names = "default";
> -	pinctrl-0 = <&spi2_pins_a>;
> -	status = "okay";
> -};
> -
> -&uart4 {
> -	/* On Low speed expansion header */
> -	label = "LS-UART1";
> -	pinctrl-names = "default";
> -	pinctrl-0 = <&uart4_pins_b>;
> -	status = "okay";
> -};
> -
> -&uart7 {
> -	/* On Low speed expansion header */
> -	label = "LS-UART0";
> -	pinctrl-names = "default";
> -	pinctrl-0 = <&uart7_pins_a>;
> -	status = "okay";
> -};
> -
> -&usbh_ehci {
> -	phys = <&usbphyc_port0>;
> -	phy-names = "usb";
> -	status = "okay";
> -};
> -
> -&usbotg_hs {
> -	dr_mode = "peripheral";
> -	phys = <&usbphyc_port1 0>;
> -	phy-names = "usb2-phy";
> -	status = "okay";
> -};
> -
> -&usbphyc {
> -	status = "okay";
> -};
> -
> -&usbphyc_port0 {
> -	phy-supply = <&vdd_usb>;
> -};
> -
> -&usbphyc_port1 {
> -	phy-supply = <&vdd_usb>;
> -};
> +/* This is kept for backward compatibility and will be removed */
> +#include "stm32mp15xx-dhcor-avenger96.dts"
> diff --git a/arch/arm/dts/stm32mp15xx-dhcor-avenger96-u-boot.dtsi b/arch/arm/dts/stm32mp15xx-dhcor-avenger96-u-boot.dtsi
> new file mode 100644
> index 0000000000..4207a96618
> --- /dev/null
> +++ b/arch/arm/dts/stm32mp15xx-dhcor-avenger96-u-boot.dtsi
> @@ -0,0 +1,80 @@
> +// SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
> +/*
> + * Copyright (C) 2020 Marek Vasut <marex@denx.de>
> + */
> +
> +#include "stm32mp15xx-dhcor-u-boot.dtsi"
> +
> +/ {
> +	aliases {
> +		mmc0 = &sdmmc1;
> +		mmc1 = &sdmmc2;
> +		usb0 = &usbotg_hs;
> +	};
> +
> +	config {
> +		u-boot,boot-led = "led1";
> +		u-boot,error-led = "led4";
> +	};
> +};
> +
> +&sdmmc1 {
> +	u-boot,dm-spl;
> +};
> +
> +&sdmmc1_b4_pins_a {
> +	u-boot,dm-spl;
> +	pins {
> +		u-boot,dm-spl;
> +	};
> +};
> +
> +&sdmmc1_dir_pins_b {
> +	u-boot,dm-spl;
> +	pins1 {
> +		u-boot,dm-spl;
> +	};
> +	pins2 {
> +		u-boot,dm-spl;
> +	};
> +};
> +
> +&sdmmc2 {
> +	u-boot,dm-spl;
> +};
> +
> +&sdmmc2_b4_pins_a {
> +	u-boot,dm-spl;
> +	pins1 {
> +		u-boot,dm-spl;
> +	};
> +	pins2 {
> +		u-boot,dm-spl;
> +	};
> +};
> +
> +&sdmmc2_d47_pins_b {
> +	u-boot,dm-spl;
> +	pins {
> +		u-boot,dm-spl;
> +	};
> +};
> +
> +&uart4 {
> +	u-boot,dm-pre-reloc;
> +};
> +
> +&uart4_pins_b {
> +	u-boot,dm-pre-reloc;
> +	pins1 {
> +		u-boot,dm-pre-reloc;
> +	};
> +	pins2 {
> +		u-boot,dm-pre-reloc;
> +	};
> +};
> +
> +&usbotg_hs {
> +	u-boot,force-b-session-valid;
> +	hnp-srp-disable;
> +};
> diff --git a/arch/arm/dts/stm32mp15xx-dhcor-avenger96.dts b/arch/arm/dts/stm32mp15xx-dhcor-avenger96.dts
> new file mode 100644
> index 0000000000..9d859e1d09
> --- /dev/null
> +++ b/arch/arm/dts/stm32mp15xx-dhcor-avenger96.dts
> @@ -0,0 +1,211 @@
> +// SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause)
> +/*
> + * Copyright (C) Linaro Ltd 2019 - All Rights Reserved
> + * Author: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
> + * Copyright (C) 2020 Marek Vasut <marex@denx.de>
> + */
> +
> +/dts-v1/;
> +
> +#include "stm32mp15xx-dhcor.dtsi"
> +#include "stm32mp15xx-dhcor-avenger96-u-boot.dtsi"
> +
> +/ {
> +	model = "Arrow Electronics STM32MP15xx Avenger96 board";
> +	compatible = "arrow,stm32mp15xx-avenger96", "st,stm32mp15x";
> +
> +	aliases {
> +		eeprom0 = &eeprom0;
> +		ethernet0 = &ethernet0;
> +		mmc0 = &sdmmc1;
> +		serial0 = &uart4;
> +		serial1 = &uart7;
> +	};
> +
> +	chosen {
> +		stdout-path = "serial0:115200n8";
> +	};
> +
> +	led {
> +		compatible = "gpio-leds";
> +		led1 {
> +			label = "green:user1";
> +			gpios = <&gpioz 7 GPIO_ACTIVE_HIGH>;
> +			linux,default-trigger = "heartbeat";
> +			default-state = "off";
> +		};
> +
> +		led2 {
> +			label = "green:user2";
> +			gpios = <&gpiof 3 GPIO_ACTIVE_HIGH>;
> +			linux,default-trigger = "mmc0";
> +			default-state = "off";
> +		};
> +
> +		led3 {
> +			label = "green:user3";
> +			gpios = <&gpiog 0 GPIO_ACTIVE_HIGH>;
> +			linux,default-trigger = "mmc1";
> +			default-state = "off";
> +		};
> +
> +		led4 {
> +			label = "green:user3";
> +			gpios = <&gpiog 1 GPIO_ACTIVE_HIGH>;
> +			linux,default-trigger = "none";
> +			default-state = "off";
> +			panic-indicator;
> +		};
> +
> +		led5 {
> +			label = "yellow:wifi";
> +			gpios = <&gpioz 3 GPIO_ACTIVE_HIGH>;
> +			linux,default-trigger = "phy0tx";
> +			default-state = "off";
> +		};
> +
> +		led6 {
> +			label = "blue:bt";
> +			gpios = <&gpioz 6 GPIO_ACTIVE_HIGH>;
> +			linux,default-trigger = "bluetooth-power";
> +			default-state = "off";
> +		};
> +	};
> +
> +	sd_switch: regulator-sd_switch {
> +		compatible = "regulator-gpio";
> +		regulator-name = "sd_switch";
> +		regulator-min-microvolt = <1800000>;
> +		regulator-max-microvolt = <2900000>;
> +		regulator-type = "voltage";
> +		regulator-always-on;
> +
> +		gpios = <&gpioi 5 GPIO_ACTIVE_HIGH>;
> +		gpios-states = <0>;
> +		states = <1800000 0x1>,
> +			 <2900000 0x0>;
> +	};
> +};
> +
> +&ethernet0 {
> +	status = "okay";
> +	pinctrl-0 = <&ethernet0_rgmii_pins_b>;
> +	pinctrl-1 = <&ethernet0_rgmii_pins_sleep_b>;
> +	pinctrl-names = "default", "sleep";
> +	phy-mode = "rgmii";
> +	max-speed = <1000>;
> +	phy-handle = <&phy0>;
> +	phy-reset-gpios = <&gpioz 2 GPIO_ACTIVE_LOW>;
> +
> +	mdio0 {
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +		compatible = "snps,dwmac-mdio";
> +		phy0: ethernet-phy@7 {
> +			reg = <7>;
> +		};
> +	};
> +};
> +
> +&i2c1 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&i2c1_pins_b>;
> +	i2c-scl-rising-time-ns = <185>;
> +	i2c-scl-falling-time-ns = <20>;
> +	status = "okay";
> +	/delete-property/dmas;
> +	/delete-property/dma-names;
> +};
> +
> +&i2c2 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&i2c2_pins_b1 &i2c2_pins_b2>;
> +	i2c-scl-rising-time-ns = <185>;
> +	i2c-scl-falling-time-ns = <20>;
> +	status = "okay";
> +	/delete-property/dmas;
> +	/delete-property/dma-names;
> +};
> +
> +&i2c4 {
> +	eeprom0: eeprom@53 {
> +		compatible = "atmel,24c02";
> +		reg = <0x53>;
> +		pagesize = <16>;
> +	};
> +};
> +
> +&sdmmc1 {
> +	pinctrl-names = "default", "opendrain", "sleep";
> +	pinctrl-0 = <&sdmmc1_b4_pins_a &sdmmc1_dir_pins_b>;
> +	pinctrl-1 = <&sdmmc1_b4_od_pins_a &sdmmc1_dir_pins_b>;
> +	pinctrl-2 = <&sdmmc1_b4_sleep_pins_a &sdmmc1_dir_sleep_pins_b>;
> +	disable-wp;
> +	st,sig-dir;
> +	st,neg-edge;
> +	st,use-ckin;
> +	bus-width = <4>;
> +	vmmc-supply = <&vdd_sd>;
> +	vqmmc-supply = <&sd_switch>;
> +	status = "okay";
> +};
> +
> +&sdmmc2 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_b>;
> +	non-removable;
> +	no-sd;
> +	no-sdio;
> +	st,neg-edge;
> +	bus-width = <8>;
> +	vmmc-supply = <&v3v3>;
> +	mmc-ddr-3_3v;
> +	status = "okay";
> +};
> +
> +&spi2 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&spi2_pins_a>;
> +	status = "okay";
> +};
> +
> +&uart4 {
> +	/* On Low speed expansion header */
> +	label = "LS-UART1";
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&uart4_pins_b>;
> +	status = "okay";
> +};
> +
> +&uart7 {
> +	/* On Low speed expansion header */
> +	label = "LS-UART0";
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&uart7_pins_a>;
> +	status = "okay";
> +};
> +
> +&usbh_ehci {
> +	phys = <&usbphyc_port0>;
> +	phy-names = "usb";
> +	status = "okay";
> +};
> +
> +&usbotg_hs {
> +	dr_mode = "peripheral";
> +	phys = <&usbphyc_port1 0>;
> +	phy-names = "usb2-phy";
> +	status = "okay";
> +};
> +
> +&usbphyc {
> +	status = "okay";
> +};
> +
> +&usbphyc_port0 {
> +	phy-supply = <&vdd_usb>;
> +};
> +
> +&usbphyc_port1 {
> +	phy-supply = <&vdd_usb>;
> +};
> diff --git a/arch/arm/dts/stm32mp157a-avenger96-u-boot.dtsi b/arch/arm/dts/stm32mp15xx-dhcor-u-boot.dtsi
> similarity index 75%
> rename from arch/arm/dts/stm32mp157a-avenger96-u-boot.dtsi
> rename to arch/arm/dts/stm32mp15xx-dhcor-u-boot.dtsi
> index 320132a01e..02dad81b0b 100644
> --- a/arch/arm/dts/stm32mp157a-avenger96-u-boot.dtsi
> +++ b/arch/arm/dts/stm32mp15xx-dhcor-u-boot.dtsi
> @@ -4,25 +4,13 @@
>   *
>   * Copyright (C) Linaro Ltd 2019 - All Rights Reserved
>   * Author: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
> + * Copyright (C) 2020 Marek Vasut <marex@denx.de>
>   */
>  
>  #include <dt-bindings/clock/stm32mp1-clksrc.h>
>  #include "stm32mp157-u-boot.dtsi"
>  #include "stm32mp15-ddr3-2x4Gb-1066-binG.dtsi"
>  
> -/ {
> -	aliases {
> -		mmc0 = &sdmmc1;
> -		mmc1 = &sdmmc2;
> -		usb0 = &usbotg_hs;
> -	};
> -
> -	config {
> -		u-boot,boot-led = "led1";
> -		u-boot,error-led = "led4";
> -	};
> -};
> -
>  &i2c4 {
>  	u-boot,dm-pre-reloc;
>  };
> @@ -38,6 +26,10 @@
>  	u-boot,dm-pre-reloc;
>  };
>  
> +&qspi {
> +	u-boot,dm-spl;
> +};
> +
>  &rcc {
>  	st,clksrc = <
>  		CLK_MPU_PLL1P
> @@ -139,67 +131,6 @@
>  	};
>  };
>  
> -&sdmmc1 {
> -	u-boot,dm-spl;
> -};
> -
> -&sdmmc1_b4_pins_a {
> -	u-boot,dm-spl;
> -	pins {
> -		u-boot,dm-spl;
> -	};
> -};
> -
> -&sdmmc1_dir_pins_b {
> -	u-boot,dm-spl;
> -	pins1 {
> -		u-boot,dm-spl;
> -	};
> -	pins2 {
> -		u-boot,dm-spl;
> -	};
> -};
> -
> -&sdmmc2 {
> -	u-boot,dm-spl;
> -};
> -
> -&sdmmc2_b4_pins_a {
> -	u-boot,dm-spl;
> -	pins1 {
> -		u-boot,dm-spl;
> -	};
> -	pins2 {
> -		u-boot,dm-spl;
> -	};
> -};
> -
> -&sdmmc2_d47_pins_b {
> -	u-boot,dm-spl;
> -	pins {
> -		u-boot,dm-spl;
> -	};
> -};
> -
> -&uart4 {
> -	u-boot,dm-pre-reloc;
> -};
> -
> -&uart4_pins_b {
> -	u-boot,dm-pre-reloc;
> -	pins1 {
> -		u-boot,dm-pre-reloc;
> -	};
> -	pins2 {
> -		u-boot,dm-pre-reloc;
> -	};
> -};
> -
> -&usbotg_hs {
> -	u-boot,force-b-session-valid;
> -	hnp-srp-disable;
> -};
> -
>  &v3v3 {
>  	regulator-always-on;
>  };
> diff --git a/arch/arm/dts/stm32mp15xx-dhcor.dtsi b/arch/arm/dts/stm32mp15xx-dhcor.dtsi
> new file mode 100644
> index 0000000000..9d4e92ebb1
> --- /dev/null
> +++ b/arch/arm/dts/stm32mp15xx-dhcor.dtsi
> @@ -0,0 +1,231 @@
> +// SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause)
> +/*
> + * Copyright (C) Linaro Ltd 2019 - All Rights Reserved
> + * Author: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
> + * Copyright (C) 2020 Marek Vasut <marex@denx.de>
> + */
> +/dts-v1/;
> +
> +#include "stm32mp157c.dtsi"
> +#include "stm32mp157xac-pinctrl.dtsi"
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/mfd/st,stpmic1.h>
> +
> +/ {
> +	aliases {
> +		spi0 = &qspi;
> +	};
> +
> +	memory@c0000000 {
> +		device_type = "memory";
> +		reg = <0xc0000000 0x40000000>;
> +	};
> +
> +	/* Enpirion EP3A8LQI U2 on the DHCOR */
> +	vdd_io: regulator-buck-io {
> +		compatible = "regulator-fixed";
> +		regulator-name = "buck-io";
> +		regulator-min-microvolt = <1800000>;
> +		regulator-max-microvolt = <1800000>;
> +		regulator-always-on;
> +		regulator-boot-on;
> +		vin-supply = <&vdd>;
> +	};
> +};
> +
> +&i2c4 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&i2c4_pins_a>;
> +	i2c-scl-rising-time-ns = <185>;
> +	i2c-scl-falling-time-ns = <20>;
> +	status = "okay";
> +	/delete-property/dmas;
> +	/delete-property/dma-names;
> +
> +	pmic: stpmic@33 {
> +		compatible = "st,stpmic1";
> +		reg = <0x33>;
> +		interrupts-extended = <&exti 55 IRQ_TYPE_EDGE_FALLING>;
> +		interrupt-controller;
> +		#interrupt-cells = <2>;
> +		status = "okay";
> +
> +		st,main-control-register = <0x04>;
> +		st,vin-control-register = <0xc0>;
> +		st,usb-control-register = <0x30>;
> +
> +		regulators {
> +			compatible = "st,stpmic1-regulators";
> +
> +			ldo1-supply = <&v3v3>;
> +			ldo2-supply = <&v3v3>;
> +			ldo3-supply = <&vdd_ddr>;
> +			ldo5-supply = <&v3v3>;
> +			ldo6-supply = <&v3v3>;
> +			pwr_sw1-supply = <&bst_out>;
> +			pwr_sw2-supply = <&bst_out>;
> +
> +			vddcore: buck1 {
> +				regulator-name = "vddcore";
> +				regulator-min-microvolt = <800000>;
> +				regulator-max-microvolt = <1350000>;
> +				regulator-always-on;
> +				regulator-initial-mode = <0>;
> +				regulator-over-current-protection;
> +			};
> +
> +			vdd_ddr: buck2 {
> +				regulator-name = "vdd_ddr";
> +				regulator-min-microvolt = <1350000>;
> +				regulator-max-microvolt = <1350000>;
> +				regulator-always-on;
> +				regulator-initial-mode = <0>;
> +				regulator-over-current-protection;
> +			};
> +
> +			vdd: buck3 {
> +				regulator-name = "vdd";
> +				regulator-min-microvolt = <2900000>;
> +				regulator-max-microvolt = <2900000>;
> +				regulator-always-on;
> +				st,mask_reset;
> +				regulator-initial-mode = <0>;
> +				regulator-over-current-protection;
> +			};
> +
> +			v3v3: buck4 {
> +				regulator-name = "v3v3";
> +				regulator-min-microvolt = <3300000>;
> +				regulator-max-microvolt = <3300000>;
> +				regulator-always-on;
> +				regulator-over-current-protection;
> +				regulator-initial-mode = <0>;
> +			};
> +
> +			vdda: ldo1 {
> +				regulator-name = "vdda";
> +				regulator-min-microvolt = <2900000>;
> +				regulator-max-microvolt = <2900000>;
> +				interrupts = <IT_CURLIM_LDO1 0>;
> +				interrupt-parent = <&pmic>;
> +			};
> +
> +			v2v8: ldo2 {
> +				regulator-name = "v2v8";
> +				regulator-min-microvolt = <2800000>;
> +				regulator-max-microvolt = <2800000>;
> +				interrupts = <IT_CURLIM_LDO2 0>;
> +				interrupt-parent = <&pmic>;
> +			};
> +
> +			vtt_ddr: ldo3 {
> +				regulator-name = "vtt_ddr";
> +				regulator-min-microvolt = <500000>;
> +				regulator-max-microvolt = <750000>;
> +				regulator-always-on;
> +				regulator-over-current-protection;
> +			};
> +
> +			vdd_usb: ldo4 {
> +				regulator-name = "vdd_usb";
> +				regulator-min-microvolt = <3300000>;
> +				regulator-max-microvolt = <3300000>;
> +				interrupts = <IT_CURLIM_LDO4 0>;
> +				interrupt-parent = <&pmic>;
> +			};
> +
> +			vdd_sd: ldo5 {
> +				regulator-name = "vdd_sd";
> +				regulator-min-microvolt = <2900000>;
> +				regulator-max-microvolt = <2900000>;
> +				interrupts = <IT_CURLIM_LDO5 0>;
> +				interrupt-parent = <&pmic>;
> +				regulator-boot-on;
> +			};
> +
> +			v1v8: ldo6 {
> +				regulator-name = "v1v8";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +				interrupts = <IT_CURLIM_LDO6 0>;
> +				interrupt-parent = <&pmic>;
> +				regulator-enable-ramp-delay = <300000>;
> +			};
> +
> +			vref_ddr: vref_ddr {
> +				regulator-name = "vref_ddr";
> +				regulator-always-on;
> +				regulator-over-current-protection;
> +			};
> +
> +			bst_out: boost {
> +				regulator-name = "bst_out";
> +				interrupts = <IT_OCP_BOOST 0>;
> +				interrupt-parent = <&pmic>;
> +			};
> +
> +			vbus_otg: pwr_sw1 {
> +				regulator-name = "vbus_otg";
> +				interrupts = <IT_OCP_OTG 0>;
> +				interrupt-parent = <&pmic>;
> +				regulator-active-discharge = <1>;
> +			};
> +
> +			vbus_sw: pwr_sw2 {
> +				regulator-name = "vbus_sw";
> +				interrupts = <IT_OCP_SWOUT 0>;
> +				interrupt-parent = <&pmic>;
> +				regulator-active-discharge = <1>;
> +			};
> +		};
> +
> +		onkey {
> +			compatible = "st,stpmic1-onkey";
> +			interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 1>;
> +			interrupt-names = "onkey-falling", "onkey-rising";
> +			status = "okay";
> +		};
> +
> +		watchdog {
> +			compatible = "st,stpmic1-wdt";
> +			status = "disabled";
> +		};
> +	};
> +};
> +
> +&iwdg2 {
> +	timeout-sec = <32>;
> +	status = "okay";
> +};
> +
> +&pwr_regulators {
> +	vdd-supply = <&vdd_io>;
> +	vdd_3v3_usbfs-supply = <&vdd_usb>;
> +};
> +
> +&qspi {
> +	pinctrl-names = "default", "sleep";
> +	pinctrl-0 = <&qspi_clk_pins_a &qspi_bk1_pins_a>;
> +	pinctrl-1 = <&qspi_clk_sleep_pins_a &qspi_bk1_sleep_pins_a>;
> +	reg = <0x58003000 0x1000>, <0x70000000 0x4000000>;
> +	#address-cells = <1>;
> +	#size-cells = <0>;
> +	status = "okay";
> +
> +	flash0: spi-flash@0 {
> +		compatible = "jedec,spi-nor";
> +		reg = <0>;
> +		spi-rx-bus-width = <4>;
> +		spi-max-frequency = <108000000>;
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +	};
> +};
> +
> +&rng1 {
> +	status = "okay";
> +};
> +
> +&rtc {
> +	status = "okay";
> +};
> diff --git a/doc/board/st/stm32mp1.rst b/doc/board/st/stm32mp1.rst
> index 1640bf910e..73195134f1 100644
> --- a/doc/board/st/stm32mp1.rst
> +++ b/doc/board/st/stm32mp1.rst
> @@ -43,11 +43,11 @@ And the necessary drivers
>  
>  Currently the following boards are supported:
>  
> - + stm32mp157a-avenger96.dts
>   + stm32mp157a-dk1.dts
>   + stm32mp157c-dk2.dts
>   + stm32mp157c-ed1.dts
>   + stm32mp157c-ev1.dts
> + + stm32mp15xx-dhcor-avenger96.dts
>  
>  Boot Sequences
>  --------------
> @@ -145,9 +145,9 @@ the supported device trees for STM32MP15x are:
>  
>     + stm32mp157c-dk2
>  
> -+ avenger96: Avenger96 board from Arrow Electronics
> ++ avenger96: Avenger96 board from Arrow Electronics based on DH Elec. DHCOR SoM
>  
> -   + stm32mp157a-avenger96
> +   + stm32mp15xx-dhcor-avenger96
>  
>  Build Procedure
>  ---------------
> @@ -229,7 +229,7 @@ Build Procedure
>  
>       # export KBUILD_OUTPUT=stm32mp15_basic
>       # make stm32mp15_basic_defconfig
> -     # make DEVICE_TREE=stm32mp157a-avenger96 all
> +     # make DEVICE_TREE=stm32mp15xx-dhcor-avenger96 all
>  
>  6. Output files
>
Patrick DELAUNAY March 31, 2020, 2:59 p.m. UTC | #2
Hi,

> From: Marek Vasut <marex@denx.de>
> Sent: mardi 31 mars 2020 02:49
> 
> The AV96 is in fact an assembly of DH Electronics DHCOR SoM on top of an
> AV96 reference board. Split the DTs to reflect that and make sure to DHCOR SoM
> can be reused on other boards easily.
> 
> It is also highly recommended to configure the board for the DHCOM make
> stm32mp15_dhcom_basic_defconfig make DEVICE_TREE=stm32mp15xx-dhcor-
> avenger96
> as that permits reusing the board code for the DH components, like accessing and
> reading out the ethernet MAC from EEPROM.

Recommended or mandatory...

For my point of view

- board/st/stm32mp1 manage the ST board (STM32MP15x-DKX and STM32MP15x-EV1)
                                 Can be used as starting point for customer new board

- board/dhelectronics/dh_stm32mp1 manage the board based on DHCOR SoM or can be a starting point of SoM user
 
For AV96, the first upstream was directly based on ST board, but I agree : it is clearly not a perfect solution (MAC address issue for example)

=> support on this board should be in dh_stm32mp1 board or create a new board AV96 based on it.

And I need to continue to move in st/common the part common for all the STM32MP157 boards....

> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Patrick Delaunay <patrick.delaunay@st.com>
> Cc: Patrice Chotard <patrice.chotard@st.com>
> ---
> V2: No change
> ---
>  arch/arm/dts/Makefile                         |   3 +-
>  arch/arm/dts/stm32mp157a-avenger96.dts        | 421 +-----------------
>  .../stm32mp15xx-dhcor-avenger96-u-boot.dtsi   |  80 ++++
>  arch/arm/dts/stm32mp15xx-dhcor-avenger96.dts  | 211 +++++++++  ...oot.dtsi =>
> stm32mp15xx-dhcor-u-boot.dtsi} |  79 +---
>  arch/arm/dts/stm32mp15xx-dhcor.dtsi           | 231 ++++++++++
>  doc/board/st/stm32mp1.rst                     |   8 +-
>  7 files changed, 535 insertions(+), 498 deletions(-)  create mode 100644
> arch/arm/dts/stm32mp15xx-dhcor-avenger96-u-boot.dtsi
>  create mode 100644 arch/arm/dts/stm32mp15xx-dhcor-avenger96.dts
>  rename arch/arm/dts/{stm32mp157a-avenger96-u-boot.dtsi => stm32mp15xx-
> dhcor-u-boot.dtsi} (75%)  create mode 100644 arch/arm/dts/stm32mp15xx-
> dhcor.dtsi
> 
> diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile index
> 9c593b2c98..2564f790de 100644
> --- a/arch/arm/dts/Makefile
> +++ b/arch/arm/dts/Makefile
> @@ -884,7 +884,8 @@ dtb-$(CONFIG_STM32MP15x) += \
>  	stm32mp157c-dk2.dtb \
>  	stm32mp157c-ed1.dtb \
>  	stm32mp157c-ev1.dtb \
> -	stm32mp15xx-dhcom-pdk2.dtb
> +	stm32mp15xx-dhcom-pdk2.dtb \
> +	stm32mp15xx-dhcor-avenger96.dtb

Force device tree support for each target ?
Avoid to mix incompatible device tree and defconfig....

dtb-$(TARGET_ST_STM32MP15x) += \ 
	stm32mp157a-dk1.dtb \
  	stm32mp157c-dk2.dtb \
  	stm32mp157c-ed1.dtb \
  	stm32mp157c-ev1.dtb

dtb-$(TARGET_DH_STM32MP1_PDK2) += \
	stm32mp15xx-dhcom-pdk2.dtb \
	stm32mp15xx-dhcor-avenger96.dtb


>  dtb-$(CONFIG_SOC_K3_AM6) += k3-am654-base-board.dtb k3-am654-r5-base-
> board.dtb
>  dtb-$(CONFIG_SOC_K3_J721E) += k3-j721e-common-proc-board.dtb \ diff --git
> a/arch/arm/dts/stm32mp157a-avenger96.dts b/arch/arm/dts/stm32mp157a-
> avenger96.dts
> index 4fa20bc31d..9c165104fb 100644
> --- a/arch/arm/dts/stm32mp157a-avenger96.dts
> +++ b/arch/arm/dts/stm32mp157a-avenger96.dts
> @@ -4,422 +4,5 @@
>   * Author: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
>   */
> 
> -/dts-v1/;
> -
> -#include "stm32mp157c.dtsi"
> -#include "stm32mp157xac-pinctrl.dtsi"
> -#include <dt-bindings/gpio/gpio.h>
> -#include <dt-bindings/mfd/st,stpmic1.h>
> -
> -/ {
> -	model = "Arrow Electronics STM32MP157A Avenger96 board";
> -	compatible = "arrow,stm32mp157a-avenger96", "st,stm32mp157";
> -
> -	aliases {
> -		ethernet0 = &ethernet0;
> -		mmc0 = &sdmmc1;
> -		serial0 = &uart4;
> -		serial1 = &uart7;
> -		spi0 = &qspi;
> -	};
> -
> -	chosen {
> -		stdout-path = "serial0:115200n8";
> -	};
> -
> -	memory@c0000000 {
> -		device_type = "memory";
> -		reg = <0xc0000000 0x40000000>;
> -	};
> -
> -	led {
> -		compatible = "gpio-leds";
> -		led1 {
> -			label = "green:user1";
> -			gpios = <&gpioz 7 GPIO_ACTIVE_HIGH>;
> -			linux,default-trigger = "heartbeat";
> -			default-state = "off";
> -		};
> -
> -		led2 {
> -			label = "green:user2";
> -			gpios = <&gpiof 3 GPIO_ACTIVE_HIGH>;
> -			linux,default-trigger = "mmc0";
> -			default-state = "off";
> -		};
> -
> -		led3 {
> -			label = "green:user3";
> -			gpios = <&gpiog 0 GPIO_ACTIVE_HIGH>;
> -			linux,default-trigger = "mmc1";
> -			default-state = "off";
> -		};
> -
> -		led4 {
> -			label = "green:user3";
> -			gpios = <&gpiog 1 GPIO_ACTIVE_HIGH>;
> -			linux,default-trigger = "none";
> -			default-state = "off";
> -			panic-indicator;
> -		};
> -
> -		led5 {
> -			label = "yellow:wifi";
> -			gpios = <&gpioz 3 GPIO_ACTIVE_HIGH>;
> -			linux,default-trigger = "phy0tx";
> -			default-state = "off";
> -		};
> -
> -		led6 {
> -			label = "blue:bt";
> -			gpios = <&gpioz 6 GPIO_ACTIVE_HIGH>;
> -			linux,default-trigger = "bluetooth-power";
> -			default-state = "off";
> -		};
> -	};
> -
> -	sd_switch: regulator-sd_switch {
> -		compatible = "regulator-gpio";
> -		regulator-name = "sd_switch";
> -		regulator-min-microvolt = <1800000>;
> -		regulator-max-microvolt = <2900000>;
> -		regulator-type = "voltage";
> -		regulator-always-on;
> -
> -		gpios = <&gpioi 5 GPIO_ACTIVE_HIGH>;
> -		gpios-states = <0>;
> -		states = <1800000 0x1>,
> -			 <2900000 0x0>;
> -	};
> -
> -	/* Enpirion EP3A8LQI U2 on the DHCOR */
> -	vdd_io: regulator-buck-io {
> -		compatible = "regulator-fixed";
> -		regulator-name = "buck-io";
> -		regulator-min-microvolt = <1800000>;
> -		regulator-max-microvolt = <1800000>;
> -		regulator-always-on;
> -		regulator-boot-on;
> -		vin-supply = <&vdd>;
> -	};
> -};
> -
> -&ethernet0 {
> -	status = "okay";
> -	pinctrl-0 = <&ethernet0_rgmii_pins_b>;
> -	pinctrl-1 = <&ethernet0_rgmii_pins_sleep_b>;
> -	pinctrl-names = "default", "sleep";
> -	phy-mode = "rgmii";
> -	max-speed = <1000>;
> -	phy-handle = <&phy0>;
> -	phy-reset-gpios = <&gpioz 2 GPIO_ACTIVE_LOW>;
> -
> -	mdio0 {
> -		#address-cells = <1>;
> -		#size-cells = <0>;
> -		compatible = "snps,dwmac-mdio";
> -		phy0: ethernet-phy@7 {
> -			reg = <7>;
> -		};
> -	};
> -};
> -
> -&i2c1 {
> -	pinctrl-names = "default";
> -	pinctrl-0 = <&i2c1_pins_b>;
> -	i2c-scl-rising-time-ns = <185>;
> -	i2c-scl-falling-time-ns = <20>;
> -	status = "okay";
> -	/delete-property/dmas;
> -	/delete-property/dma-names;
> -};
> -
> -&i2c2 {
> -	pinctrl-names = "default";
> -	pinctrl-0 = <&i2c2_pins_b1 &i2c2_pins_b2>;
> -	i2c-scl-rising-time-ns = <185>;
> -	i2c-scl-falling-time-ns = <20>;
> -	status = "okay";
> -	/delete-property/dmas;
> -	/delete-property/dma-names;
> -};
> -
> -&i2c4 {
> -	pinctrl-names = "default";
> -	pinctrl-0 = <&i2c4_pins_a>;
> -	i2c-scl-rising-time-ns = <185>;
> -	i2c-scl-falling-time-ns = <20>;
> -	status = "okay";
> -	/delete-property/dmas;
> -	/delete-property/dma-names;
> -
> -	pmic: stpmic@33 {
> -		compatible = "st,stpmic1";
> -		reg = <0x33>;
> -		interrupts-extended = <&exti 55 IRQ_TYPE_EDGE_FALLING>;
> -		interrupt-controller;
> -		#interrupt-cells = <2>;
> -		status = "okay";
> -
> -		st,main-control-register = <0x04>;
> -		st,vin-control-register = <0xc0>;
> -		st,usb-control-register = <0x30>;
> -
> -		regulators {
> -			compatible = "st,stpmic1-regulators";
> -
> -			ldo1-supply = <&v3v3>;
> -			ldo2-supply = <&v3v3>;
> -			ldo3-supply = <&vdd_ddr>;
> -			ldo5-supply = <&v3v3>;
> -			ldo6-supply = <&v3v3>;
> -			pwr_sw1-supply = <&bst_out>;
> -			pwr_sw2-supply = <&bst_out>;
> -
> -			vddcore: buck1 {
> -				regulator-name = "vddcore";
> -				regulator-min-microvolt = <800000>;
> -				regulator-max-microvolt = <1350000>;
> -				regulator-always-on;
> -				regulator-initial-mode = <0>;
> -				regulator-over-current-protection;
> -			};
> -
> -			vdd_ddr: buck2 {
> -				regulator-name = "vdd_ddr";
> -				regulator-min-microvolt = <1350000>;
> -				regulator-max-microvolt = <1350000>;
> -				regulator-always-on;
> -				regulator-initial-mode = <0>;
> -				regulator-over-current-protection;
> -			};
> -
> -			vdd: buck3 {
> -				regulator-name = "vdd";
> -				regulator-min-microvolt = <2900000>;
> -				regulator-max-microvolt = <2900000>;
> -				regulator-always-on;
> -				st,mask_reset;
> -				regulator-initial-mode = <0>;
> -				regulator-over-current-protection;
> -			};
> -
> -			v3v3: buck4 {
> -				regulator-name = "v3v3";
> -				regulator-min-microvolt = <3300000>;
> -				regulator-max-microvolt = <3300000>;
> -				regulator-always-on;
> -				regulator-over-current-protection;
> -				regulator-initial-mode = <0>;
> -			};
> -
> -			vdda: ldo1 {
> -				regulator-name = "vdda";
> -				regulator-min-microvolt = <2900000>;
> -				regulator-max-microvolt = <2900000>;
> -				interrupts = <IT_CURLIM_LDO1 0>;
> -				interrupt-parent = <&pmic>;
> -			};
> -
> -			v2v8: ldo2 {
> -				regulator-name = "v2v8";
> -				regulator-min-microvolt = <2800000>;
> -				regulator-max-microvolt = <2800000>;
> -				interrupts = <IT_CURLIM_LDO2 0>;
> -				interrupt-parent = <&pmic>;
> -			};
> -
> -			vtt_ddr: ldo3 {
> -				regulator-name = "vtt_ddr";
> -				regulator-min-microvolt = <500000>;
> -				regulator-max-microvolt = <750000>;
> -				regulator-always-on;
> -				regulator-over-current-protection;
> -			};
> -
> -			vdd_usb: ldo4 {
> -				regulator-name = "vdd_usb";
> -				regulator-min-microvolt = <3300000>;
> -				regulator-max-microvolt = <3300000>;
> -				interrupts = <IT_CURLIM_LDO4 0>;
> -				interrupt-parent = <&pmic>;
> -			};
> -
> -			vdd_sd: ldo5 {
> -				regulator-name = "vdd_sd";
> -				regulator-min-microvolt = <2900000>;
> -				regulator-max-microvolt = <2900000>;
> -				interrupts = <IT_CURLIM_LDO5 0>;
> -				interrupt-parent = <&pmic>;
> -				regulator-boot-on;
> -			};
> -
> -			v1v8: ldo6 {
> -				regulator-name = "v1v8";
> -				regulator-min-microvolt = <1800000>;
> -				regulator-max-microvolt = <1800000>;
> -				interrupts = <IT_CURLIM_LDO6 0>;
> -				interrupt-parent = <&pmic>;
> -				regulator-enable-ramp-delay = <300000>;
> -			};
> -
> -			vref_ddr: vref_ddr {
> -				regulator-name = "vref_ddr";
> -				regulator-always-on;
> -				regulator-over-current-protection;
> -			};
> -
> -			bst_out: boost {
> -				regulator-name = "bst_out";
> -				interrupts = <IT_OCP_BOOST 0>;
> -				interrupt-parent = <&pmic>;
> -			};
> -
> -			vbus_otg: pwr_sw1 {
> -				regulator-name = "vbus_otg";
> -				interrupts = <IT_OCP_OTG 0>;
> -				interrupt-parent = <&pmic>;
> -				regulator-active-discharge = <1>;
> -			};
> -
> -			vbus_sw: pwr_sw2 {
> -				regulator-name = "vbus_sw";
> -				interrupts = <IT_OCP_SWOUT 0>;
> -				interrupt-parent = <&pmic>;
> -				regulator-active-discharge = <1>;
> -			};
> -		};
> -
> -		onkey {
> -			compatible = "st,stpmic1-onkey";
> -			interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 1>;
> -			interrupt-names = "onkey-falling", "onkey-rising";
> -			status = "okay";
> -		};
> -
> -		watchdog {
> -			compatible = "st,stpmic1-wdt";
> -			status = "disabled";
> -		};
> -	};
> -
> -	eeprom@53 {
> -		compatible = "atmel,24c02";
> -		reg = <0x53>;
> -		pagesize = <16>;
> -	};
> -};
> -
> -&iwdg2 {
> -	timeout-sec = <32>;
> -	status = "okay";
> -};
> -
> -&pwr_regulators {
> -	vdd-supply = <&vdd_io>;
> -	vdd_3v3_usbfs-supply = <&vdd_usb>;
> -};
> -
> -&qspi {
> -	pinctrl-names = "default", "sleep";
> -	pinctrl-0 = <&qspi_clk_pins_a &qspi_bk1_pins_a>;
> -	pinctrl-1 = <&qspi_clk_sleep_pins_a &qspi_bk1_sleep_pins_a>;
> -	reg = <0x58003000 0x1000>, <0x70000000 0x4000000>;
> -	#address-cells = <1>;
> -	#size-cells = <0>;
> -	status = "okay";
> -
> -	flash0: spi-flash@0 {
> -		compatible = "jedec,spi-nor";
> -		reg = <0>;
> -		spi-rx-bus-width = <4>;
> -		spi-max-frequency = <108000000>;
> -		#address-cells = <1>;
> -		#size-cells = <1>;
> -	};
> -};
> -
> -&rng1 {
> -	status = "okay";
> -};
> -
> -&rtc {
> -	status = "okay";
> -};
> -
> -&sdmmc1 {
> -	pinctrl-names = "default", "opendrain", "sleep";
> -	pinctrl-0 = <&sdmmc1_b4_pins_a &sdmmc1_dir_pins_b>;
> -	pinctrl-1 = <&sdmmc1_b4_od_pins_a &sdmmc1_dir_pins_b>;
> -	pinctrl-2 = <&sdmmc1_b4_sleep_pins_a &sdmmc1_dir_sleep_pins_b>;
> -	cd-gpios = <&gpioi 8 GPIO_ACTIVE_LOW>;
> -	disable-wp;
> -	st,sig-dir;
> -	st,neg-edge;
> -	st,use-ckin;
> -	sd-uhs-sdr104;
> -	bus-width = <4>;
> -	vmmc-supply = <&vdd_sd>;
> -	vqmmc-supply = <&sd_switch>;
> -	status = "okay";
> -};
> -
> -&sdmmc2 {
> -	pinctrl-names = "default";
> -	pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_b>;
> -	non-removable;
> -	no-sd;
> -	no-sdio;
> -	st,neg-edge;
> -	bus-width = <8>;
> -	vmmc-supply = <&v3v3>;
> -	mmc-ddr-3_3v;
> -	status = "okay";
> -};
> -
> -&spi2 {
> -	pinctrl-names = "default";
> -	pinctrl-0 = <&spi2_pins_a>;
> -	status = "okay";
> -};
> -
> -&uart4 {
> -	/* On Low speed expansion header */
> -	label = "LS-UART1";
> -	pinctrl-names = "default";
> -	pinctrl-0 = <&uart4_pins_b>;
> -	status = "okay";
> -};
> -
> -&uart7 {
> -	/* On Low speed expansion header */
> -	label = "LS-UART0";
> -	pinctrl-names = "default";
> -	pinctrl-0 = <&uart7_pins_a>;
> -	status = "okay";
> -};
> -
> -&usbh_ehci {
> -	phys = <&usbphyc_port0>;
> -	phy-names = "usb";
> -	status = "okay";
> -};
> -
> -&usbotg_hs {
> -	dr_mode = "peripheral";
> -	phys = <&usbphyc_port1 0>;
> -	phy-names = "usb2-phy";
> -	status = "okay";
> -};
> -
> -&usbphyc {
> -	status = "okay";
> -};
> -
> -&usbphyc_port0 {
> -	phy-supply = <&vdd_usb>;
> -};
> -
> -&usbphyc_port1 {
> -	phy-supply = <&vdd_usb>;
> -};

When this file will be removed ? why kept this file.....
I propose to completely remove this file (no device tree for same board)

> +/* This is kept for backward compatibility and will be removed */
> +#include "stm32mp15xx-dhcor-avenger96.dts"

Missing u-boot file to avoid issue......

+#include " stm32mp15xx-dhcor-avenger96-u-boot.dtsi"

> diff --git a/arch/arm/dts/stm32mp15xx-dhcor-avenger96-u-boot.dtsi
> b/arch/arm/dts/stm32mp15xx-dhcor-avenger96-u-boot.dtsi
> new file mode 100644
> index 0000000000..4207a96618
> --- /dev/null
> +++ b/arch/arm/dts/stm32mp15xx-dhcor-avenger96-u-boot.dtsi
> @@ -0,0 +1,80 @@
> +// SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
> +/*
> + * Copyright (C) 2020 Marek Vasut <marex@denx.de>  */
> +
> +#include "stm32mp15xx-dhcor-u-boot.dtsi"
> +
> +/ {
> +	aliases {
> +		mmc0 = &sdmmc1;
> +		mmc1 = &sdmmc2;
> +		usb0 = &usbotg_hs;
> +	};
> +
> +	config {
> +		u-boot,boot-led = "led1";
> +		u-boot,error-led = "led4";
> +	};
> +};
> +
> +&sdmmc1 {
> +	u-boot,dm-spl;
> +};
> +
> +&sdmmc1_b4_pins_a {
> +	u-boot,dm-spl;
> +	pins {
> +		u-boot,dm-spl;
> +	};
> +};
> +
> +&sdmmc1_dir_pins_b {
> +	u-boot,dm-spl;
> +	pins1 {
> +		u-boot,dm-spl;
> +	};
> +	pins2 {
> +		u-boot,dm-spl;
> +	};
> +};
> +
> +&sdmmc2 {
> +	u-boot,dm-spl;
> +};
> +
> +&sdmmc2_b4_pins_a {
> +	u-boot,dm-spl;
> +	pins1 {
> +		u-boot,dm-spl;
> +	};
> +	pins2 {
> +		u-boot,dm-spl;
> +	};
> +};
> +
> +&sdmmc2_d47_pins_b {
> +	u-boot,dm-spl;
> +	pins {
> +		u-boot,dm-spl;
> +	};
> +};
> +
> +&uart4 {
> +	u-boot,dm-pre-reloc;
> +};
> +
> +&uart4_pins_b {
> +	u-boot,dm-pre-reloc;
> +	pins1 {
> +		u-boot,dm-pre-reloc;
> +	};
> +	pins2 {
> +		u-boot,dm-pre-reloc;
> +	};
> +};
> +
> +&usbotg_hs {
> +	u-boot,force-b-session-valid;
> +	hnp-srp-disable;
> +};
> diff --git a/arch/arm/dts/stm32mp15xx-dhcor-avenger96.dts
> b/arch/arm/dts/stm32mp15xx-dhcor-avenger96.dts
> new file mode 100644
> index 0000000000..9d859e1d09
> --- /dev/null
> +++ b/arch/arm/dts/stm32mp15xx-dhcor-avenger96.dts
> @@ -0,0 +1,211 @@
> +// SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause)
> +/*
> + * Copyright (C) Linaro Ltd 2019 - All Rights Reserved
> + * Author: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
> + * Copyright (C) 2020 Marek Vasut <marex@denx.de>  */
> +
> +/dts-v1/;
> +
> +#include "stm32mp15xx-dhcor.dtsi"
> +#include "stm32mp15xx-dhcor-avenger96-u-boot.dtsi"
> +
> +/ {
> +	model = "Arrow Electronics STM32MP15xx Avenger96 board";
> +	compatible = "arrow,stm32mp15xx-avenger96", "st,stm32mp15x";
> +
> +	aliases {
> +		eeprom0 = &eeprom0;
> +		ethernet0 = &ethernet0;
> +		mmc0 = &sdmmc1;
> +		serial0 = &uart4;
> +		serial1 = &uart7;
> +	};
> +
> +	chosen {
> +		stdout-path = "serial0:115200n8";
> +	};
> +
> +	led {
> +		compatible = "gpio-leds";
> +		led1 {
> +			label = "green:user1";
> +			gpios = <&gpioz 7 GPIO_ACTIVE_HIGH>;
> +			linux,default-trigger = "heartbeat";
> +			default-state = "off";
> +		};
> +
> +		led2 {
> +			label = "green:user2";
> +			gpios = <&gpiof 3 GPIO_ACTIVE_HIGH>;
> +			linux,default-trigger = "mmc0";
> +			default-state = "off";
> +		};
> +
> +		led3 {
> +			label = "green:user3";
> +			gpios = <&gpiog 0 GPIO_ACTIVE_HIGH>;
> +			linux,default-trigger = "mmc1";
> +			default-state = "off";
> +		};
> +
> +		led4 {
> +			label = "green:user3";
> +			gpios = <&gpiog 1 GPIO_ACTIVE_HIGH>;
> +			linux,default-trigger = "none";
> +			default-state = "off";
> +			panic-indicator;
> +		};
> +
> +		led5 {
> +			label = "yellow:wifi";
> +			gpios = <&gpioz 3 GPIO_ACTIVE_HIGH>;
> +			linux,default-trigger = "phy0tx";
> +			default-state = "off";
> +		};
> +
> +		led6 {
> +			label = "blue:bt";
> +			gpios = <&gpioz 6 GPIO_ACTIVE_HIGH>;
> +			linux,default-trigger = "bluetooth-power";
> +			default-state = "off";
> +		};
> +	};
> +
> +	sd_switch: regulator-sd_switch {
> +		compatible = "regulator-gpio";
> +		regulator-name = "sd_switch";
> +		regulator-min-microvolt = <1800000>;
> +		regulator-max-microvolt = <2900000>;
> +		regulator-type = "voltage";
> +		regulator-always-on;
> +
> +		gpios = <&gpioi 5 GPIO_ACTIVE_HIGH>;
> +		gpios-states = <0>;
> +		states = <1800000 0x1>,
> +			 <2900000 0x0>;
> +	};
> +};
> +
> +&ethernet0 {
> +	status = "okay";
> +	pinctrl-0 = <&ethernet0_rgmii_pins_b>;
> +	pinctrl-1 = <&ethernet0_rgmii_pins_sleep_b>;
> +	pinctrl-names = "default", "sleep";
> +	phy-mode = "rgmii";
> +	max-speed = <1000>;
> +	phy-handle = <&phy0>;
> +	phy-reset-gpios = <&gpioz 2 GPIO_ACTIVE_LOW>;
> +
> +	mdio0 {
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +		compatible = "snps,dwmac-mdio";
> +		phy0: ethernet-phy@7 {
> +			reg = <7>;
> +		};
> +	};
> +};
> +
> +&i2c1 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&i2c1_pins_b>;
> +	i2c-scl-rising-time-ns = <185>;
> +	i2c-scl-falling-time-ns = <20>;
> +	status = "okay";
> +	/delete-property/dmas;
> +	/delete-property/dma-names;
> +};
> +
> +&i2c2 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&i2c2_pins_b1 &i2c2_pins_b2>;
> +	i2c-scl-rising-time-ns = <185>;
> +	i2c-scl-falling-time-ns = <20>;
> +	status = "okay";
> +	/delete-property/dmas;
> +	/delete-property/dma-names;
> +};
> +
> +&i2c4 {
> +	eeprom0: eeprom@53 {
> +		compatible = "atmel,24c02";
> +		reg = <0x53>;
> +		pagesize = <16>;
> +	};
> +};
> +
> +&sdmmc1 {
> +	pinctrl-names = "default", "opendrain", "sleep";
> +	pinctrl-0 = <&sdmmc1_b4_pins_a &sdmmc1_dir_pins_b>;
> +	pinctrl-1 = <&sdmmc1_b4_od_pins_a &sdmmc1_dir_pins_b>;
> +	pinctrl-2 = <&sdmmc1_b4_sleep_pins_a &sdmmc1_dir_sleep_pins_b>;
> +	disable-wp;
> +	st,sig-dir;
> +	st,neg-edge;
> +	st,use-ckin;
> +	bus-width = <4>;
> +	vmmc-supply = <&vdd_sd>;
> +	vqmmc-supply = <&sd_switch>;
> +	status = "okay";
> +};
> +
> +&sdmmc2 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_b>;
> +	non-removable;
> +	no-sd;
> +	no-sdio;
> +	st,neg-edge;
> +	bus-width = <8>;
> +	vmmc-supply = <&v3v3>;
> +	mmc-ddr-3_3v;
> +	status = "okay";
> +};
> +
> +&spi2 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&spi2_pins_a>;
> +	status = "okay";
> +};
> +
> +&uart4 {
> +	/* On Low speed expansion header */
> +	label = "LS-UART1";
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&uart4_pins_b>;
> +	status = "okay";
> +};
> +
> +&uart7 {
> +	/* On Low speed expansion header */
> +	label = "LS-UART0";
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&uart7_pins_a>;
> +	status = "okay";
> +};
> +
> +&usbh_ehci {
> +	phys = <&usbphyc_port0>;
> +	phy-names = "usb";
> +	status = "okay";
> +};
> +
> +&usbotg_hs {
> +	dr_mode = "peripheral";
> +	phys = <&usbphyc_port1 0>;
> +	phy-names = "usb2-phy";
> +	status = "okay";
> +};
> +
> +&usbphyc {
> +	status = "okay";
> +};
> +
> +&usbphyc_port0 {
> +	phy-supply = <&vdd_usb>;
> +};
> +
> +&usbphyc_port1 {
> +	phy-supply = <&vdd_usb>;
> +};
> diff --git a/arch/arm/dts/stm32mp157a-avenger96-u-boot.dtsi
> b/arch/arm/dts/stm32mp15xx-dhcor-u-boot.dtsi
> similarity index 75%
> rename from arch/arm/dts/stm32mp157a-avenger96-u-boot.dtsi
> rename to arch/arm/dts/stm32mp15xx-dhcor-u-boot.dtsi
> index 320132a01e..02dad81b0b 100644
> --- a/arch/arm/dts/stm32mp157a-avenger96-u-boot.dtsi
> +++ b/arch/arm/dts/stm32mp15xx-dhcor-u-boot.dtsi
> @@ -4,25 +4,13 @@
>   *
>   * Copyright (C) Linaro Ltd 2019 - All Rights Reserved
>   * Author: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
> + * Copyright (C) 2020 Marek Vasut <marex@denx.de>
>   */
> 
>  #include <dt-bindings/clock/stm32mp1-clksrc.h>
>  #include "stm32mp157-u-boot.dtsi"
>  #include "stm32mp15-ddr3-2x4Gb-1066-binG.dtsi"
> 
> -/ {
> -	aliases {
> -		mmc0 = &sdmmc1;
> -		mmc1 = &sdmmc2;
> -		usb0 = &usbotg_hs;
> -	};
> -
> -	config {
> -		u-boot,boot-led = "led1";
> -		u-boot,error-led = "led4";
> -	};
> -};
> -
>  &i2c4 {
>  	u-boot,dm-pre-reloc;
>  };
> @@ -38,6 +26,10 @@
>  	u-boot,dm-pre-reloc;
>  };
> 
> +&qspi {
> +	u-boot,dm-spl;
> +};
> +
>  &rcc {
>  	st,clksrc = <
>  		CLK_MPU_PLL1P
> @@ -139,67 +131,6 @@
>  	};
>  };
> 
> -&sdmmc1 {
> -	u-boot,dm-spl;
> -};
> -
> -&sdmmc1_b4_pins_a {
> -	u-boot,dm-spl;
> -	pins {
> -		u-boot,dm-spl;
> -	};
> -};
> -
> -&sdmmc1_dir_pins_b {
> -	u-boot,dm-spl;
> -	pins1 {
> -		u-boot,dm-spl;
> -	};
> -	pins2 {
> -		u-boot,dm-spl;
> -	};
> -};
> -
> -&sdmmc2 {
> -	u-boot,dm-spl;
> -};
> -
> -&sdmmc2_b4_pins_a {
> -	u-boot,dm-spl;
> -	pins1 {
> -		u-boot,dm-spl;
> -	};
> -	pins2 {
> -		u-boot,dm-spl;
> -	};
> -};
> -
> -&sdmmc2_d47_pins_b {
> -	u-boot,dm-spl;
> -	pins {
> -		u-boot,dm-spl;
> -	};
> -};
> -
> -&uart4 {
> -	u-boot,dm-pre-reloc;
> -};
> -
> -&uart4_pins_b {
> -	u-boot,dm-pre-reloc;
> -	pins1 {
> -		u-boot,dm-pre-reloc;
> -	};
> -	pins2 {
> -		u-boot,dm-pre-reloc;
> -	};
> -};
> -
> -&usbotg_hs {
> -	u-boot,force-b-session-valid;
> -	hnp-srp-disable;
> -};
> -
>  &v3v3 {
>  	regulator-always-on;
>  };
> diff --git a/arch/arm/dts/stm32mp15xx-dhcor.dtsi b/arch/arm/dts/stm32mp15xx-
> dhcor.dtsi
> new file mode 100644
> index 0000000000..9d4e92ebb1
> --- /dev/null
> +++ b/arch/arm/dts/stm32mp15xx-dhcor.dtsi
> @@ -0,0 +1,231 @@
> +// SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause)
> +/*
> + * Copyright (C) Linaro Ltd 2019 - All Rights Reserved
> + * Author: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
> + * Copyright (C) 2020 Marek Vasut <marex@denx.de>  */ /dts-v1/;
> +
> +#include "stm32mp157c.dtsi"
> +#include "stm32mp157xac-pinctrl.dtsi"
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/mfd/st,stpmic1.h>
> +
> +/ {
> +	aliases {
> +		spi0 = &qspi;
> +	};
> +
> +	memory@c0000000 {
> +		device_type = "memory";
> +		reg = <0xc0000000 0x40000000>;
> +	};
> +
> +	/* Enpirion EP3A8LQI U2 on the DHCOR */
> +	vdd_io: regulator-buck-io {
> +		compatible = "regulator-fixed";
> +		regulator-name = "buck-io";
> +		regulator-min-microvolt = <1800000>;
> +		regulator-max-microvolt = <1800000>;
> +		regulator-always-on;
> +		regulator-boot-on;
> +		vin-supply = <&vdd>;
> +	};
> +};
> +
> +&i2c4 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&i2c4_pins_a>;
> +	i2c-scl-rising-time-ns = <185>;
> +	i2c-scl-falling-time-ns = <20>;
> +	status = "okay";
> +	/delete-property/dmas;
> +	/delete-property/dma-names;
> +
> +	pmic: stpmic@33 {
> +		compatible = "st,stpmic1";
> +		reg = <0x33>;
> +		interrupts-extended = <&exti 55 IRQ_TYPE_EDGE_FALLING>;
> +		interrupt-controller;
> +		#interrupt-cells = <2>;
> +		status = "okay";
> +
> +		st,main-control-register = <0x04>;
> +		st,vin-control-register = <0xc0>;
> +		st,usb-control-register = <0x30>;
> +
> +		regulators {
> +			compatible = "st,stpmic1-regulators";
> +
> +			ldo1-supply = <&v3v3>;
> +			ldo2-supply = <&v3v3>;
> +			ldo3-supply = <&vdd_ddr>;
> +			ldo5-supply = <&v3v3>;
> +			ldo6-supply = <&v3v3>;
> +			pwr_sw1-supply = <&bst_out>;
> +			pwr_sw2-supply = <&bst_out>;
> +
> +			vddcore: buck1 {
> +				regulator-name = "vddcore";
> +				regulator-min-microvolt = <800000>;
> +				regulator-max-microvolt = <1350000>;
> +				regulator-always-on;
> +				regulator-initial-mode = <0>;
> +				regulator-over-current-protection;
> +			};
> +
> +			vdd_ddr: buck2 {
> +				regulator-name = "vdd_ddr";
> +				regulator-min-microvolt = <1350000>;
> +				regulator-max-microvolt = <1350000>;
> +				regulator-always-on;
> +				regulator-initial-mode = <0>;
> +				regulator-over-current-protection;
> +			};
> +
> +			vdd: buck3 {
> +				regulator-name = "vdd";
> +				regulator-min-microvolt = <2900000>;
> +				regulator-max-microvolt = <2900000>;
> +				regulator-always-on;
> +				st,mask_reset;
> +				regulator-initial-mode = <0>;
> +				regulator-over-current-protection;
> +			};
> +
> +			v3v3: buck4 {
> +				regulator-name = "v3v3";
> +				regulator-min-microvolt = <3300000>;
> +				regulator-max-microvolt = <3300000>;
> +				regulator-always-on;
> +				regulator-over-current-protection;
> +				regulator-initial-mode = <0>;
> +			};
> +
> +			vdda: ldo1 {
> +				regulator-name = "vdda";
> +				regulator-min-microvolt = <2900000>;
> +				regulator-max-microvolt = <2900000>;
> +				interrupts = <IT_CURLIM_LDO1 0>;
> +				interrupt-parent = <&pmic>;
> +			};
> +
> +			v2v8: ldo2 {
> +				regulator-name = "v2v8";
> +				regulator-min-microvolt = <2800000>;
> +				regulator-max-microvolt = <2800000>;
> +				interrupts = <IT_CURLIM_LDO2 0>;
> +				interrupt-parent = <&pmic>;
> +			};
> +
> +			vtt_ddr: ldo3 {
> +				regulator-name = "vtt_ddr";
> +				regulator-min-microvolt = <500000>;
> +				regulator-max-microvolt = <750000>;
> +				regulator-always-on;
> +				regulator-over-current-protection;
> +			};
> +
> +			vdd_usb: ldo4 {
> +				regulator-name = "vdd_usb";
> +				regulator-min-microvolt = <3300000>;
> +				regulator-max-microvolt = <3300000>;
> +				interrupts = <IT_CURLIM_LDO4 0>;
> +				interrupt-parent = <&pmic>;
> +			};
> +
> +			vdd_sd: ldo5 {
> +				regulator-name = "vdd_sd";
> +				regulator-min-microvolt = <2900000>;
> +				regulator-max-microvolt = <2900000>;
> +				interrupts = <IT_CURLIM_LDO5 0>;
> +				interrupt-parent = <&pmic>;
> +				regulator-boot-on;
> +			};
> +
> +			v1v8: ldo6 {
> +				regulator-name = "v1v8";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +				interrupts = <IT_CURLIM_LDO6 0>;
> +				interrupt-parent = <&pmic>;
> +				regulator-enable-ramp-delay = <300000>;
> +			};
> +
> +			vref_ddr: vref_ddr {
> +				regulator-name = "vref_ddr";
> +				regulator-always-on;
> +				regulator-over-current-protection;
> +			};
> +
> +			bst_out: boost {
> +				regulator-name = "bst_out";
> +				interrupts = <IT_OCP_BOOST 0>;
> +				interrupt-parent = <&pmic>;
> +			};
> +
> +			vbus_otg: pwr_sw1 {
> +				regulator-name = "vbus_otg";
> +				interrupts = <IT_OCP_OTG 0>;
> +				interrupt-parent = <&pmic>;
> +				regulator-active-discharge = <1>;
> +			};
> +
> +			vbus_sw: pwr_sw2 {
> +				regulator-name = "vbus_sw";
> +				interrupts = <IT_OCP_SWOUT 0>;
> +				interrupt-parent = <&pmic>;
> +				regulator-active-discharge = <1>;
> +			};
> +		};
> +
> +		onkey {
> +			compatible = "st,stpmic1-onkey";
> +			interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 1>;
> +			interrupt-names = "onkey-falling", "onkey-rising";
> +			status = "okay";
> +		};
> +
> +		watchdog {
> +			compatible = "st,stpmic1-wdt";
> +			status = "disabled";
> +		};
> +	};
> +};
> +
> +&iwdg2 {
> +	timeout-sec = <32>;
> +	status = "okay";
> +};
> +
> +&pwr_regulators {
> +	vdd-supply = <&vdd_io>;
> +	vdd_3v3_usbfs-supply = <&vdd_usb>;
> +};
> +
> +&qspi {
> +	pinctrl-names = "default", "sleep";
> +	pinctrl-0 = <&qspi_clk_pins_a &qspi_bk1_pins_a>;
> +	pinctrl-1 = <&qspi_clk_sleep_pins_a &qspi_bk1_sleep_pins_a>;
> +	reg = <0x58003000 0x1000>, <0x70000000 0x4000000>;
> +	#address-cells = <1>;
> +	#size-cells = <0>;
> +	status = "okay";
> +
> +	flash0: spi-flash@0 {
> +		compatible = "jedec,spi-nor";
> +		reg = <0>;
> +		spi-rx-bus-width = <4>;
> +		spi-max-frequency = <108000000>;
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +	};
> +};
> +
> +&rng1 {
> +	status = "okay";
> +};
> +
> +&rtc {
> +	status = "okay";
> +};
> diff --git a/doc/board/st/stm32mp1.rst b/doc/board/st/stm32mp1.rst index
> 1640bf910e..73195134f1 100644
> --- a/doc/board/st/stm32mp1.rst
> +++ b/doc/board/st/stm32mp1.rst
> @@ -43,11 +43,11 @@ And the necessary drivers
> 
>  Currently the following boards are supported:
> 
> - + stm32mp157a-avenger96.dts
>   + stm32mp157a-dk1.dts
>   + stm32mp157c-dk2.dts
>   + stm32mp157c-ed1.dts
>   + stm32mp157c-ev1.dts
> + + stm32mp15xx-dhcor-avenger96.dts
> 
>  Boot Sequences
>  --------------
> @@ -145,9 +145,9 @@ the supported device trees for STM32MP15x are:
> 
>     + stm32mp157c-dk2
> 
> -+ avenger96: Avenger96 board from Arrow Electronics
> ++ avenger96: Avenger96 board from Arrow Electronics based on DH Elec.
> ++ DHCOR SoM
> 
> -   + stm32mp157a-avenger96
> +   + stm32mp15xx-dhcor-avenger96
> 
>  Build Procedure
>  ---------------
> @@ -229,7 +229,7 @@ Build Procedure
> 
>       # export KBUILD_OUTPUT=stm32mp15_basic
>       # make stm32mp15_basic_defconfig
> -     # make DEVICE_TREE=stm32mp157a-avenger96 all
> +     # make DEVICE_TREE=stm32mp15xx-dhcor-avenger96 all
> 
>  6. Output files

Reference could be removed if support if done by stm32mp15_dhcom_basic_defconfig / dh_stm32mp1 board

> --
> 2.25.1
Marek Vasut March 31, 2020, 4:37 p.m. UTC | #3
On 3/31/20 4:59 PM, Patrick DELAUNAY wrote:
> Hi,

Hi,

>> It is also highly recommended to configure the board for the DHCOM make
>> stm32mp15_dhcom_basic_defconfig make DEVICE_TREE=stm32mp15xx-dhcor-
>> avenger96
>> as that permits reusing the board code for the DH components, like accessing and
>> reading out the ethernet MAC from EEPROM.
> 
> Recommended or mandatory...

Both work, the later provides more complete solution.

> For my point of view
> 
> - board/st/stm32mp1 manage the ST board (STM32MP15x-DKX and STM32MP15x-EV1)
>                                  Can be used as starting point for customer new board
> 
> - board/dhelectronics/dh_stm32mp1 manage the board based on DHCOR SoM or can be a starting point of SoM user
>  
> For AV96, the first upstream was directly based on ST board, but I agree : it is clearly not a perfect solution (MAC address issue for example)

Yes indeed.

> => support on this board should be in dh_stm32mp1 board or create a new board AV96 based on it.
> 
> And I need to continue to move in st/common the part common for all the STM32MP157 boards....

[...]

>> diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile index
>> 9c593b2c98..2564f790de 100644
>> --- a/arch/arm/dts/Makefile
>> +++ b/arch/arm/dts/Makefile
>> @@ -884,7 +884,8 @@ dtb-$(CONFIG_STM32MP15x) += \
>>  	stm32mp157c-dk2.dtb \
>>  	stm32mp157c-ed1.dtb \
>>  	stm32mp157c-ev1.dtb \
>> -	stm32mp15xx-dhcom-pdk2.dtb
>> +	stm32mp15xx-dhcom-pdk2.dtb \
>> +	stm32mp15xx-dhcor-avenger96.dtb
> 
> Force device tree support for each target ?
> Avoid to mix incompatible device tree and defconfig....
> 
> dtb-$(TARGET_ST_STM32MP15x) += \ 
> 	stm32mp157a-dk1.dtb \
>   	stm32mp157c-dk2.dtb \
>   	stm32mp157c-ed1.dtb \
>   	stm32mp157c-ev1.dtb
> 
> dtb-$(TARGET_DH_STM32MP1_PDK2) += \
> 	stm32mp15xx-dhcom-pdk2.dtb \
> 	stm32mp15xx-dhcor-avenger96.dtb

You probably want to build all DTs for STM32MP1 when building STM32MP1
platforms ?

[...]

(please, learn to trim the responses in email)

>> -&usbphyc {
>> -	status = "okay";
>> -};
>> -
>> -&usbphyc_port0 {
>> -	phy-supply = <&vdd_usb>;
>> -};
>> -
>> -&usbphyc_port1 {
>> -	phy-supply = <&vdd_usb>;
>> -};
> 
> When this file will be removed ? why kept this file.....
> I propose to completely remove this file (no device tree for same board)

Backward compatibility, I'd keep it in for a release or two.
But if removing it is fine, then so be it.

>> +/* This is kept for backward compatibility and will be removed */
>> +#include "stm32mp15xx-dhcor-avenger96.dts"
> 
> Missing u-boot file to avoid issue......
> 
> +#include " stm32mp15xx-dhcor-avenger96-u-boot.dtsi"

That's actually included via the avenger96.dts, so should be OK.
Although I am not real happy with that.

[...]

>>  Build Procedure
>>  ---------------
>> @@ -229,7 +229,7 @@ Build Procedure
>>
>>       # export KBUILD_OUTPUT=stm32mp15_basic
>>       # make stm32mp15_basic_defconfig
>> -     # make DEVICE_TREE=stm32mp157a-avenger96 all
>> +     # make DEVICE_TREE=stm32mp15xx-dhcor-avenger96 all
>>
>>  6. Output files
> 
> Reference could be removed if support if done by stm32mp15_dhcom_basic_defconfig / dh_stm32mp1 board

See my first question about the defconfig.
Patrick DELAUNAY April 1, 2020, 8:37 a.m. UTC | #4
Hi,

> From: Marek Vasut <marex@denx.de>
> Sent: mardi 31 mars 2020 18:38
> 
> On 3/31/20 4:59 PM, Patrick DELAUNAY wrote:
> > Hi,
> 
> Hi,
> 
> >> It is also highly recommended to configure the board for the DHCOM
> >> make stm32mp15_dhcom_basic_defconfig make
> >> DEVICE_TREE=stm32mp15xx-dhcor-
> >> avenger96
> >> as that permits reusing the board code for the DH components, like
> >> accessing and reading out the ethernet MAC from EEPROM.
> >
> > Recommended or mandatory...
> 
> Both work, the later provides more complete solution.

Ok, today both work.

[...]
 
> >> diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile index
> >> 9c593b2c98..2564f790de 100644
> >> --- a/arch/arm/dts/Makefile
> >> +++ b/arch/arm/dts/Makefile
> >> @@ -884,7 +884,8 @@ dtb-$(CONFIG_STM32MP15x) += \
> >>  	stm32mp157c-dk2.dtb \
> >>  	stm32mp157c-ed1.dtb \
> >>  	stm32mp157c-ev1.dtb \
> >> -	stm32mp15xx-dhcom-pdk2.dtb
> >> +	stm32mp15xx-dhcom-pdk2.dtb \
> >> +	stm32mp15xx-dhcor-avenger96.dtb
> >
> > Force device tree support for each target ?
> > Avoid to mix incompatible device tree and defconfig....
> >
> > dtb-$(TARGET_ST_STM32MP15x) += \
> > 	stm32mp157a-dk1.dtb \
> >   	stm32mp157c-dk2.dtb \
> >   	stm32mp157c-ed1.dtb \
> >   	stm32mp157c-ev1.dtb
> >
> > dtb-$(TARGET_DH_STM32MP1_PDK2) += \
> > 	stm32mp15xx-dhcom-pdk2.dtb \
> > 	stm32mp15xx-dhcor-avenger96.dtb
> 
> You probably want to build all DTs for STM32MP1 when building STM32MP1
> platforms ?

I use buildman to compile all the stm32mp15x target / defconfig, 
so for me it is not mandatory.

In his makefile, the 2 strategy exist 

	dtb-$(CONFIG_ARCH_....)

	dtb-$(CONFIG_TARGET_....)

I have no clear preference....

I just highlight that using TARGET avoid bad configuration
between defconfig and associated device tree.
 
> [...]
> 
> (please, learn to trim the responses in email)

Yes sorry.

Life is lifelong learning.

> >> -&usbphyc {
> >> -	status = "okay";
> >> -};
> >> -
> >> -&usbphyc_port0 {
> >> -	phy-supply = <&vdd_usb>;
> >> -};
> >> -
> >> -&usbphyc_port1 {
> >> -	phy-supply = <&vdd_usb>;
> >> -};
> >
> > When this file will be removed ? why kept this file.....
> > I propose to completely remove this file (no device tree for same
> > board)
> 
> Backward compatibility, I'd keep it in for a release or two.
> But if removing it is fine, then so be it.

Yes I prefer.
Except if maintainers of this file have a other opinion.

> >> +/* This is kept for backward compatibility and will be removed */
> >> +#include "stm32mp15xx-dhcor-avenger96.dts"
> >
> > Missing u-boot file to avoid issue......
> >
> > +#include " stm32mp15xx-dhcor-avenger96-u-boot.dtsi"
> 
> That's actually included via the avenger96.dts, so should be OK.
> Although I am not real happy with that.

Ok, I miss that. 
I agree, it is unexpected.

Regards

Patrick
Marek Vasut April 1, 2020, 10:53 a.m. UTC | #5
On 4/1/20 10:37 AM, Patrick DELAUNAY wrote:
> Hi,

[...]

>>> When this file will be removed ? why kept this file.....
>>> I propose to completely remove this file (no device tree for same
>>> board)
>>
>> Backward compatibility, I'd keep it in for a release or two.
>> But if removing it is fine, then so be it.
> 
> Yes I prefer.
> Except if maintainers of this file have a other opinion.

OK

>>>> +/* This is kept for backward compatibility and will be removed */
>>>> +#include "stm32mp15xx-dhcor-avenger96.dts"
>>>
>>> Missing u-boot file to avoid issue......
>>>
>>> +#include " stm32mp15xx-dhcor-avenger96-u-boot.dtsi"
>>
>> That's actually included via the avenger96.dts, so should be OK.
>> Although I am not real happy with that.
> 
> Ok, I miss that. 
> I agree, it is unexpected.

It's a bit weird, I think this should be added to the list of things to
improve in the next cycle.
diff mbox series

Patch

diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
index 9c593b2c98..2564f790de 100644
--- a/arch/arm/dts/Makefile
+++ b/arch/arm/dts/Makefile
@@ -884,7 +884,8 @@  dtb-$(CONFIG_STM32MP15x) += \
 	stm32mp157c-dk2.dtb \
 	stm32mp157c-ed1.dtb \
 	stm32mp157c-ev1.dtb \
-	stm32mp15xx-dhcom-pdk2.dtb
+	stm32mp15xx-dhcom-pdk2.dtb \
+	stm32mp15xx-dhcor-avenger96.dtb
 
 dtb-$(CONFIG_SOC_K3_AM6) += k3-am654-base-board.dtb k3-am654-r5-base-board.dtb
 dtb-$(CONFIG_SOC_K3_J721E) += k3-j721e-common-proc-board.dtb \
diff --git a/arch/arm/dts/stm32mp157a-avenger96.dts b/arch/arm/dts/stm32mp157a-avenger96.dts
index 4fa20bc31d..9c165104fb 100644
--- a/arch/arm/dts/stm32mp157a-avenger96.dts
+++ b/arch/arm/dts/stm32mp157a-avenger96.dts
@@ -4,422 +4,5 @@ 
  * Author: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
  */
 
-/dts-v1/;
-
-#include "stm32mp157c.dtsi"
-#include "stm32mp157xac-pinctrl.dtsi"
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/mfd/st,stpmic1.h>
-
-/ {
-	model = "Arrow Electronics STM32MP157A Avenger96 board";
-	compatible = "arrow,stm32mp157a-avenger96", "st,stm32mp157";
-
-	aliases {
-		ethernet0 = &ethernet0;
-		mmc0 = &sdmmc1;
-		serial0 = &uart4;
-		serial1 = &uart7;
-		spi0 = &qspi;
-	};
-
-	chosen {
-		stdout-path = "serial0:115200n8";
-	};
-
-	memory@c0000000 {
-		device_type = "memory";
-		reg = <0xc0000000 0x40000000>;
-	};
-
-	led {
-		compatible = "gpio-leds";
-		led1 {
-			label = "green:user1";
-			gpios = <&gpioz 7 GPIO_ACTIVE_HIGH>;
-			linux,default-trigger = "heartbeat";
-			default-state = "off";
-		};
-
-		led2 {
-			label = "green:user2";
-			gpios = <&gpiof 3 GPIO_ACTIVE_HIGH>;
-			linux,default-trigger = "mmc0";
-			default-state = "off";
-		};
-
-		led3 {
-			label = "green:user3";
-			gpios = <&gpiog 0 GPIO_ACTIVE_HIGH>;
-			linux,default-trigger = "mmc1";
-			default-state = "off";
-		};
-
-		led4 {
-			label = "green:user3";
-			gpios = <&gpiog 1 GPIO_ACTIVE_HIGH>;
-			linux,default-trigger = "none";
-			default-state = "off";
-			panic-indicator;
-		};
-
-		led5 {
-			label = "yellow:wifi";
-			gpios = <&gpioz 3 GPIO_ACTIVE_HIGH>;
-			linux,default-trigger = "phy0tx";
-			default-state = "off";
-		};
-
-		led6 {
-			label = "blue:bt";
-			gpios = <&gpioz 6 GPIO_ACTIVE_HIGH>;
-			linux,default-trigger = "bluetooth-power";
-			default-state = "off";
-		};
-	};
-
-	sd_switch: regulator-sd_switch {
-		compatible = "regulator-gpio";
-		regulator-name = "sd_switch";
-		regulator-min-microvolt = <1800000>;
-		regulator-max-microvolt = <2900000>;
-		regulator-type = "voltage";
-		regulator-always-on;
-
-		gpios = <&gpioi 5 GPIO_ACTIVE_HIGH>;
-		gpios-states = <0>;
-		states = <1800000 0x1>,
-			 <2900000 0x0>;
-	};
-
-	/* Enpirion EP3A8LQI U2 on the DHCOR */
-	vdd_io: regulator-buck-io {
-		compatible = "regulator-fixed";
-		regulator-name = "buck-io";
-		regulator-min-microvolt = <1800000>;
-		regulator-max-microvolt = <1800000>;
-		regulator-always-on;
-		regulator-boot-on;
-		vin-supply = <&vdd>;
-	};
-};
-
-&ethernet0 {
-	status = "okay";
-	pinctrl-0 = <&ethernet0_rgmii_pins_b>;
-	pinctrl-1 = <&ethernet0_rgmii_pins_sleep_b>;
-	pinctrl-names = "default", "sleep";
-	phy-mode = "rgmii";
-	max-speed = <1000>;
-	phy-handle = <&phy0>;
-	phy-reset-gpios = <&gpioz 2 GPIO_ACTIVE_LOW>;
-
-	mdio0 {
-		#address-cells = <1>;
-		#size-cells = <0>;
-		compatible = "snps,dwmac-mdio";
-		phy0: ethernet-phy@7 {
-			reg = <7>;
-		};
-	};
-};
-
-&i2c1 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&i2c1_pins_b>;
-	i2c-scl-rising-time-ns = <185>;
-	i2c-scl-falling-time-ns = <20>;
-	status = "okay";
-	/delete-property/dmas;
-	/delete-property/dma-names;
-};
-
-&i2c2 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&i2c2_pins_b1 &i2c2_pins_b2>;
-	i2c-scl-rising-time-ns = <185>;
-	i2c-scl-falling-time-ns = <20>;
-	status = "okay";
-	/delete-property/dmas;
-	/delete-property/dma-names;
-};
-
-&i2c4 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&i2c4_pins_a>;
-	i2c-scl-rising-time-ns = <185>;
-	i2c-scl-falling-time-ns = <20>;
-	status = "okay";
-	/delete-property/dmas;
-	/delete-property/dma-names;
-
-	pmic: stpmic@33 {
-		compatible = "st,stpmic1";
-		reg = <0x33>;
-		interrupts-extended = <&exti 55 IRQ_TYPE_EDGE_FALLING>;
-		interrupt-controller;
-		#interrupt-cells = <2>;
-		status = "okay";
-
-		st,main-control-register = <0x04>;
-		st,vin-control-register = <0xc0>;
-		st,usb-control-register = <0x30>;
-
-		regulators {
-			compatible = "st,stpmic1-regulators";
-
-			ldo1-supply = <&v3v3>;
-			ldo2-supply = <&v3v3>;
-			ldo3-supply = <&vdd_ddr>;
-			ldo5-supply = <&v3v3>;
-			ldo6-supply = <&v3v3>;
-			pwr_sw1-supply = <&bst_out>;
-			pwr_sw2-supply = <&bst_out>;
-
-			vddcore: buck1 {
-				regulator-name = "vddcore";
-				regulator-min-microvolt = <800000>;
-				regulator-max-microvolt = <1350000>;
-				regulator-always-on;
-				regulator-initial-mode = <0>;
-				regulator-over-current-protection;
-			};
-
-			vdd_ddr: buck2 {
-				regulator-name = "vdd_ddr";
-				regulator-min-microvolt = <1350000>;
-				regulator-max-microvolt = <1350000>;
-				regulator-always-on;
-				regulator-initial-mode = <0>;
-				regulator-over-current-protection;
-			};
-
-			vdd: buck3 {
-				regulator-name = "vdd";
-				regulator-min-microvolt = <2900000>;
-				regulator-max-microvolt = <2900000>;
-				regulator-always-on;
-				st,mask_reset;
-				regulator-initial-mode = <0>;
-				regulator-over-current-protection;
-			};
-
-			v3v3: buck4 {
-				regulator-name = "v3v3";
-				regulator-min-microvolt = <3300000>;
-				regulator-max-microvolt = <3300000>;
-				regulator-always-on;
-				regulator-over-current-protection;
-				regulator-initial-mode = <0>;
-			};
-
-			vdda: ldo1 {
-				regulator-name = "vdda";
-				regulator-min-microvolt = <2900000>;
-				regulator-max-microvolt = <2900000>;
-				interrupts = <IT_CURLIM_LDO1 0>;
-				interrupt-parent = <&pmic>;
-			};
-
-			v2v8: ldo2 {
-				regulator-name = "v2v8";
-				regulator-min-microvolt = <2800000>;
-				regulator-max-microvolt = <2800000>;
-				interrupts = <IT_CURLIM_LDO2 0>;
-				interrupt-parent = <&pmic>;
-			};
-
-			vtt_ddr: ldo3 {
-				regulator-name = "vtt_ddr";
-				regulator-min-microvolt = <500000>;
-				regulator-max-microvolt = <750000>;
-				regulator-always-on;
-				regulator-over-current-protection;
-			};
-
-			vdd_usb: ldo4 {
-				regulator-name = "vdd_usb";
-				regulator-min-microvolt = <3300000>;
-				regulator-max-microvolt = <3300000>;
-				interrupts = <IT_CURLIM_LDO4 0>;
-				interrupt-parent = <&pmic>;
-			};
-
-			vdd_sd: ldo5 {
-				regulator-name = "vdd_sd";
-				regulator-min-microvolt = <2900000>;
-				regulator-max-microvolt = <2900000>;
-				interrupts = <IT_CURLIM_LDO5 0>;
-				interrupt-parent = <&pmic>;
-				regulator-boot-on;
-			};
-
-			v1v8: ldo6 {
-				regulator-name = "v1v8";
-				regulator-min-microvolt = <1800000>;
-				regulator-max-microvolt = <1800000>;
-				interrupts = <IT_CURLIM_LDO6 0>;
-				interrupt-parent = <&pmic>;
-				regulator-enable-ramp-delay = <300000>;
-			};
-
-			vref_ddr: vref_ddr {
-				regulator-name = "vref_ddr";
-				regulator-always-on;
-				regulator-over-current-protection;
-			};
-
-			bst_out: boost {
-				regulator-name = "bst_out";
-				interrupts = <IT_OCP_BOOST 0>;
-				interrupt-parent = <&pmic>;
-			};
-
-			vbus_otg: pwr_sw1 {
-				regulator-name = "vbus_otg";
-				interrupts = <IT_OCP_OTG 0>;
-				interrupt-parent = <&pmic>;
-				regulator-active-discharge = <1>;
-			};
-
-			vbus_sw: pwr_sw2 {
-				regulator-name = "vbus_sw";
-				interrupts = <IT_OCP_SWOUT 0>;
-				interrupt-parent = <&pmic>;
-				regulator-active-discharge = <1>;
-			};
-		};
-
-		onkey {
-			compatible = "st,stpmic1-onkey";
-			interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 1>;
-			interrupt-names = "onkey-falling", "onkey-rising";
-			status = "okay";
-		};
-
-		watchdog {
-			compatible = "st,stpmic1-wdt";
-			status = "disabled";
-		};
-	};
-
-	eeprom@53 {
-		compatible = "atmel,24c02";
-		reg = <0x53>;
-		pagesize = <16>;
-	};
-};
-
-&iwdg2 {
-	timeout-sec = <32>;
-	status = "okay";
-};
-
-&pwr_regulators {
-	vdd-supply = <&vdd_io>;
-	vdd_3v3_usbfs-supply = <&vdd_usb>;
-};
-
-&qspi {
-	pinctrl-names = "default", "sleep";
-	pinctrl-0 = <&qspi_clk_pins_a &qspi_bk1_pins_a>;
-	pinctrl-1 = <&qspi_clk_sleep_pins_a &qspi_bk1_sleep_pins_a>;
-	reg = <0x58003000 0x1000>, <0x70000000 0x4000000>;
-	#address-cells = <1>;
-	#size-cells = <0>;
-	status = "okay";
-
-	flash0: spi-flash@0 {
-		compatible = "jedec,spi-nor";
-		reg = <0>;
-		spi-rx-bus-width = <4>;
-		spi-max-frequency = <108000000>;
-		#address-cells = <1>;
-		#size-cells = <1>;
-	};
-};
-
-&rng1 {
-	status = "okay";
-};
-
-&rtc {
-	status = "okay";
-};
-
-&sdmmc1 {
-	pinctrl-names = "default", "opendrain", "sleep";
-	pinctrl-0 = <&sdmmc1_b4_pins_a &sdmmc1_dir_pins_b>;
-	pinctrl-1 = <&sdmmc1_b4_od_pins_a &sdmmc1_dir_pins_b>;
-	pinctrl-2 = <&sdmmc1_b4_sleep_pins_a &sdmmc1_dir_sleep_pins_b>;
-	cd-gpios = <&gpioi 8 GPIO_ACTIVE_LOW>;
-	disable-wp;
-	st,sig-dir;
-	st,neg-edge;
-	st,use-ckin;
-	sd-uhs-sdr104;
-	bus-width = <4>;
-	vmmc-supply = <&vdd_sd>;
-	vqmmc-supply = <&sd_switch>;
-	status = "okay";
-};
-
-&sdmmc2 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_b>;
-	non-removable;
-	no-sd;
-	no-sdio;
-	st,neg-edge;
-	bus-width = <8>;
-	vmmc-supply = <&v3v3>;
-	mmc-ddr-3_3v;
-	status = "okay";
-};
-
-&spi2 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&spi2_pins_a>;
-	status = "okay";
-};
-
-&uart4 {
-	/* On Low speed expansion header */
-	label = "LS-UART1";
-	pinctrl-names = "default";
-	pinctrl-0 = <&uart4_pins_b>;
-	status = "okay";
-};
-
-&uart7 {
-	/* On Low speed expansion header */
-	label = "LS-UART0";
-	pinctrl-names = "default";
-	pinctrl-0 = <&uart7_pins_a>;
-	status = "okay";
-};
-
-&usbh_ehci {
-	phys = <&usbphyc_port0>;
-	phy-names = "usb";
-	status = "okay";
-};
-
-&usbotg_hs {
-	dr_mode = "peripheral";
-	phys = <&usbphyc_port1 0>;
-	phy-names = "usb2-phy";
-	status = "okay";
-};
-
-&usbphyc {
-	status = "okay";
-};
-
-&usbphyc_port0 {
-	phy-supply = <&vdd_usb>;
-};
-
-&usbphyc_port1 {
-	phy-supply = <&vdd_usb>;
-};
+/* This is kept for backward compatibility and will be removed */
+#include "stm32mp15xx-dhcor-avenger96.dts"
diff --git a/arch/arm/dts/stm32mp15xx-dhcor-avenger96-u-boot.dtsi b/arch/arm/dts/stm32mp15xx-dhcor-avenger96-u-boot.dtsi
new file mode 100644
index 0000000000..4207a96618
--- /dev/null
+++ b/arch/arm/dts/stm32mp15xx-dhcor-avenger96-u-boot.dtsi
@@ -0,0 +1,80 @@ 
+// SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
+/*
+ * Copyright (C) 2020 Marek Vasut <marex@denx.de>
+ */
+
+#include "stm32mp15xx-dhcor-u-boot.dtsi"
+
+/ {
+	aliases {
+		mmc0 = &sdmmc1;
+		mmc1 = &sdmmc2;
+		usb0 = &usbotg_hs;
+	};
+
+	config {
+		u-boot,boot-led = "led1";
+		u-boot,error-led = "led4";
+	};
+};
+
+&sdmmc1 {
+	u-boot,dm-spl;
+};
+
+&sdmmc1_b4_pins_a {
+	u-boot,dm-spl;
+	pins {
+		u-boot,dm-spl;
+	};
+};
+
+&sdmmc1_dir_pins_b {
+	u-boot,dm-spl;
+	pins1 {
+		u-boot,dm-spl;
+	};
+	pins2 {
+		u-boot,dm-spl;
+	};
+};
+
+&sdmmc2 {
+	u-boot,dm-spl;
+};
+
+&sdmmc2_b4_pins_a {
+	u-boot,dm-spl;
+	pins1 {
+		u-boot,dm-spl;
+	};
+	pins2 {
+		u-boot,dm-spl;
+	};
+};
+
+&sdmmc2_d47_pins_b {
+	u-boot,dm-spl;
+	pins {
+		u-boot,dm-spl;
+	};
+};
+
+&uart4 {
+	u-boot,dm-pre-reloc;
+};
+
+&uart4_pins_b {
+	u-boot,dm-pre-reloc;
+	pins1 {
+		u-boot,dm-pre-reloc;
+	};
+	pins2 {
+		u-boot,dm-pre-reloc;
+	};
+};
+
+&usbotg_hs {
+	u-boot,force-b-session-valid;
+	hnp-srp-disable;
+};
diff --git a/arch/arm/dts/stm32mp15xx-dhcor-avenger96.dts b/arch/arm/dts/stm32mp15xx-dhcor-avenger96.dts
new file mode 100644
index 0000000000..9d859e1d09
--- /dev/null
+++ b/arch/arm/dts/stm32mp15xx-dhcor-avenger96.dts
@@ -0,0 +1,211 @@ 
+// SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause)
+/*
+ * Copyright (C) Linaro Ltd 2019 - All Rights Reserved
+ * Author: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
+ * Copyright (C) 2020 Marek Vasut <marex@denx.de>
+ */
+
+/dts-v1/;
+
+#include "stm32mp15xx-dhcor.dtsi"
+#include "stm32mp15xx-dhcor-avenger96-u-boot.dtsi"
+
+/ {
+	model = "Arrow Electronics STM32MP15xx Avenger96 board";
+	compatible = "arrow,stm32mp15xx-avenger96", "st,stm32mp15x";
+
+	aliases {
+		eeprom0 = &eeprom0;
+		ethernet0 = &ethernet0;
+		mmc0 = &sdmmc1;
+		serial0 = &uart4;
+		serial1 = &uart7;
+	};
+
+	chosen {
+		stdout-path = "serial0:115200n8";
+	};
+
+	led {
+		compatible = "gpio-leds";
+		led1 {
+			label = "green:user1";
+			gpios = <&gpioz 7 GPIO_ACTIVE_HIGH>;
+			linux,default-trigger = "heartbeat";
+			default-state = "off";
+		};
+
+		led2 {
+			label = "green:user2";
+			gpios = <&gpiof 3 GPIO_ACTIVE_HIGH>;
+			linux,default-trigger = "mmc0";
+			default-state = "off";
+		};
+
+		led3 {
+			label = "green:user3";
+			gpios = <&gpiog 0 GPIO_ACTIVE_HIGH>;
+			linux,default-trigger = "mmc1";
+			default-state = "off";
+		};
+
+		led4 {
+			label = "green:user3";
+			gpios = <&gpiog 1 GPIO_ACTIVE_HIGH>;
+			linux,default-trigger = "none";
+			default-state = "off";
+			panic-indicator;
+		};
+
+		led5 {
+			label = "yellow:wifi";
+			gpios = <&gpioz 3 GPIO_ACTIVE_HIGH>;
+			linux,default-trigger = "phy0tx";
+			default-state = "off";
+		};
+
+		led6 {
+			label = "blue:bt";
+			gpios = <&gpioz 6 GPIO_ACTIVE_HIGH>;
+			linux,default-trigger = "bluetooth-power";
+			default-state = "off";
+		};
+	};
+
+	sd_switch: regulator-sd_switch {
+		compatible = "regulator-gpio";
+		regulator-name = "sd_switch";
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <2900000>;
+		regulator-type = "voltage";
+		regulator-always-on;
+
+		gpios = <&gpioi 5 GPIO_ACTIVE_HIGH>;
+		gpios-states = <0>;
+		states = <1800000 0x1>,
+			 <2900000 0x0>;
+	};
+};
+
+&ethernet0 {
+	status = "okay";
+	pinctrl-0 = <&ethernet0_rgmii_pins_b>;
+	pinctrl-1 = <&ethernet0_rgmii_pins_sleep_b>;
+	pinctrl-names = "default", "sleep";
+	phy-mode = "rgmii";
+	max-speed = <1000>;
+	phy-handle = <&phy0>;
+	phy-reset-gpios = <&gpioz 2 GPIO_ACTIVE_LOW>;
+
+	mdio0 {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		compatible = "snps,dwmac-mdio";
+		phy0: ethernet-phy@7 {
+			reg = <7>;
+		};
+	};
+};
+
+&i2c1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&i2c1_pins_b>;
+	i2c-scl-rising-time-ns = <185>;
+	i2c-scl-falling-time-ns = <20>;
+	status = "okay";
+	/delete-property/dmas;
+	/delete-property/dma-names;
+};
+
+&i2c2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&i2c2_pins_b1 &i2c2_pins_b2>;
+	i2c-scl-rising-time-ns = <185>;
+	i2c-scl-falling-time-ns = <20>;
+	status = "okay";
+	/delete-property/dmas;
+	/delete-property/dma-names;
+};
+
+&i2c4 {
+	eeprom0: eeprom@53 {
+		compatible = "atmel,24c02";
+		reg = <0x53>;
+		pagesize = <16>;
+	};
+};
+
+&sdmmc1 {
+	pinctrl-names = "default", "opendrain", "sleep";
+	pinctrl-0 = <&sdmmc1_b4_pins_a &sdmmc1_dir_pins_b>;
+	pinctrl-1 = <&sdmmc1_b4_od_pins_a &sdmmc1_dir_pins_b>;
+	pinctrl-2 = <&sdmmc1_b4_sleep_pins_a &sdmmc1_dir_sleep_pins_b>;
+	disable-wp;
+	st,sig-dir;
+	st,neg-edge;
+	st,use-ckin;
+	bus-width = <4>;
+	vmmc-supply = <&vdd_sd>;
+	vqmmc-supply = <&sd_switch>;
+	status = "okay";
+};
+
+&sdmmc2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_b>;
+	non-removable;
+	no-sd;
+	no-sdio;
+	st,neg-edge;
+	bus-width = <8>;
+	vmmc-supply = <&v3v3>;
+	mmc-ddr-3_3v;
+	status = "okay";
+};
+
+&spi2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&spi2_pins_a>;
+	status = "okay";
+};
+
+&uart4 {
+	/* On Low speed expansion header */
+	label = "LS-UART1";
+	pinctrl-names = "default";
+	pinctrl-0 = <&uart4_pins_b>;
+	status = "okay";
+};
+
+&uart7 {
+	/* On Low speed expansion header */
+	label = "LS-UART0";
+	pinctrl-names = "default";
+	pinctrl-0 = <&uart7_pins_a>;
+	status = "okay";
+};
+
+&usbh_ehci {
+	phys = <&usbphyc_port0>;
+	phy-names = "usb";
+	status = "okay";
+};
+
+&usbotg_hs {
+	dr_mode = "peripheral";
+	phys = <&usbphyc_port1 0>;
+	phy-names = "usb2-phy";
+	status = "okay";
+};
+
+&usbphyc {
+	status = "okay";
+};
+
+&usbphyc_port0 {
+	phy-supply = <&vdd_usb>;
+};
+
+&usbphyc_port1 {
+	phy-supply = <&vdd_usb>;
+};
diff --git a/arch/arm/dts/stm32mp157a-avenger96-u-boot.dtsi b/arch/arm/dts/stm32mp15xx-dhcor-u-boot.dtsi
similarity index 75%
rename from arch/arm/dts/stm32mp157a-avenger96-u-boot.dtsi
rename to arch/arm/dts/stm32mp15xx-dhcor-u-boot.dtsi
index 320132a01e..02dad81b0b 100644
--- a/arch/arm/dts/stm32mp157a-avenger96-u-boot.dtsi
+++ b/arch/arm/dts/stm32mp15xx-dhcor-u-boot.dtsi
@@ -4,25 +4,13 @@ 
  *
  * Copyright (C) Linaro Ltd 2019 - All Rights Reserved
  * Author: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
+ * Copyright (C) 2020 Marek Vasut <marex@denx.de>
  */
 
 #include <dt-bindings/clock/stm32mp1-clksrc.h>
 #include "stm32mp157-u-boot.dtsi"
 #include "stm32mp15-ddr3-2x4Gb-1066-binG.dtsi"
 
-/ {
-	aliases {
-		mmc0 = &sdmmc1;
-		mmc1 = &sdmmc2;
-		usb0 = &usbotg_hs;
-	};
-
-	config {
-		u-boot,boot-led = "led1";
-		u-boot,error-led = "led4";
-	};
-};
-
 &i2c4 {
 	u-boot,dm-pre-reloc;
 };
@@ -38,6 +26,10 @@ 
 	u-boot,dm-pre-reloc;
 };
 
+&qspi {
+	u-boot,dm-spl;
+};
+
 &rcc {
 	st,clksrc = <
 		CLK_MPU_PLL1P
@@ -139,67 +131,6 @@ 
 	};
 };
 
-&sdmmc1 {
-	u-boot,dm-spl;
-};
-
-&sdmmc1_b4_pins_a {
-	u-boot,dm-spl;
-	pins {
-		u-boot,dm-spl;
-	};
-};
-
-&sdmmc1_dir_pins_b {
-	u-boot,dm-spl;
-	pins1 {
-		u-boot,dm-spl;
-	};
-	pins2 {
-		u-boot,dm-spl;
-	};
-};
-
-&sdmmc2 {
-	u-boot,dm-spl;
-};
-
-&sdmmc2_b4_pins_a {
-	u-boot,dm-spl;
-	pins1 {
-		u-boot,dm-spl;
-	};
-	pins2 {
-		u-boot,dm-spl;
-	};
-};
-
-&sdmmc2_d47_pins_b {
-	u-boot,dm-spl;
-	pins {
-		u-boot,dm-spl;
-	};
-};
-
-&uart4 {
-	u-boot,dm-pre-reloc;
-};
-
-&uart4_pins_b {
-	u-boot,dm-pre-reloc;
-	pins1 {
-		u-boot,dm-pre-reloc;
-	};
-	pins2 {
-		u-boot,dm-pre-reloc;
-	};
-};
-
-&usbotg_hs {
-	u-boot,force-b-session-valid;
-	hnp-srp-disable;
-};
-
 &v3v3 {
 	regulator-always-on;
 };
diff --git a/arch/arm/dts/stm32mp15xx-dhcor.dtsi b/arch/arm/dts/stm32mp15xx-dhcor.dtsi
new file mode 100644
index 0000000000..9d4e92ebb1
--- /dev/null
+++ b/arch/arm/dts/stm32mp15xx-dhcor.dtsi
@@ -0,0 +1,231 @@ 
+// SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause)
+/*
+ * Copyright (C) Linaro Ltd 2019 - All Rights Reserved
+ * Author: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
+ * Copyright (C) 2020 Marek Vasut <marex@denx.de>
+ */
+/dts-v1/;
+
+#include "stm32mp157c.dtsi"
+#include "stm32mp157xac-pinctrl.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/mfd/st,stpmic1.h>
+
+/ {
+	aliases {
+		spi0 = &qspi;
+	};
+
+	memory@c0000000 {
+		device_type = "memory";
+		reg = <0xc0000000 0x40000000>;
+	};
+
+	/* Enpirion EP3A8LQI U2 on the DHCOR */
+	vdd_io: regulator-buck-io {
+		compatible = "regulator-fixed";
+		regulator-name = "buck-io";
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <1800000>;
+		regulator-always-on;
+		regulator-boot-on;
+		vin-supply = <&vdd>;
+	};
+};
+
+&i2c4 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&i2c4_pins_a>;
+	i2c-scl-rising-time-ns = <185>;
+	i2c-scl-falling-time-ns = <20>;
+	status = "okay";
+	/delete-property/dmas;
+	/delete-property/dma-names;
+
+	pmic: stpmic@33 {
+		compatible = "st,stpmic1";
+		reg = <0x33>;
+		interrupts-extended = <&exti 55 IRQ_TYPE_EDGE_FALLING>;
+		interrupt-controller;
+		#interrupt-cells = <2>;
+		status = "okay";
+
+		st,main-control-register = <0x04>;
+		st,vin-control-register = <0xc0>;
+		st,usb-control-register = <0x30>;
+
+		regulators {
+			compatible = "st,stpmic1-regulators";
+
+			ldo1-supply = <&v3v3>;
+			ldo2-supply = <&v3v3>;
+			ldo3-supply = <&vdd_ddr>;
+			ldo5-supply = <&v3v3>;
+			ldo6-supply = <&v3v3>;
+			pwr_sw1-supply = <&bst_out>;
+			pwr_sw2-supply = <&bst_out>;
+
+			vddcore: buck1 {
+				regulator-name = "vddcore";
+				regulator-min-microvolt = <800000>;
+				regulator-max-microvolt = <1350000>;
+				regulator-always-on;
+				regulator-initial-mode = <0>;
+				regulator-over-current-protection;
+			};
+
+			vdd_ddr: buck2 {
+				regulator-name = "vdd_ddr";
+				regulator-min-microvolt = <1350000>;
+				regulator-max-microvolt = <1350000>;
+				regulator-always-on;
+				regulator-initial-mode = <0>;
+				regulator-over-current-protection;
+			};
+
+			vdd: buck3 {
+				regulator-name = "vdd";
+				regulator-min-microvolt = <2900000>;
+				regulator-max-microvolt = <2900000>;
+				regulator-always-on;
+				st,mask_reset;
+				regulator-initial-mode = <0>;
+				regulator-over-current-protection;
+			};
+
+			v3v3: buck4 {
+				regulator-name = "v3v3";
+				regulator-min-microvolt = <3300000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-always-on;
+				regulator-over-current-protection;
+				regulator-initial-mode = <0>;
+			};
+
+			vdda: ldo1 {
+				regulator-name = "vdda";
+				regulator-min-microvolt = <2900000>;
+				regulator-max-microvolt = <2900000>;
+				interrupts = <IT_CURLIM_LDO1 0>;
+				interrupt-parent = <&pmic>;
+			};
+
+			v2v8: ldo2 {
+				regulator-name = "v2v8";
+				regulator-min-microvolt = <2800000>;
+				regulator-max-microvolt = <2800000>;
+				interrupts = <IT_CURLIM_LDO2 0>;
+				interrupt-parent = <&pmic>;
+			};
+
+			vtt_ddr: ldo3 {
+				regulator-name = "vtt_ddr";
+				regulator-min-microvolt = <500000>;
+				regulator-max-microvolt = <750000>;
+				regulator-always-on;
+				regulator-over-current-protection;
+			};
+
+			vdd_usb: ldo4 {
+				regulator-name = "vdd_usb";
+				regulator-min-microvolt = <3300000>;
+				regulator-max-microvolt = <3300000>;
+				interrupts = <IT_CURLIM_LDO4 0>;
+				interrupt-parent = <&pmic>;
+			};
+
+			vdd_sd: ldo5 {
+				regulator-name = "vdd_sd";
+				regulator-min-microvolt = <2900000>;
+				regulator-max-microvolt = <2900000>;
+				interrupts = <IT_CURLIM_LDO5 0>;
+				interrupt-parent = <&pmic>;
+				regulator-boot-on;
+			};
+
+			v1v8: ldo6 {
+				regulator-name = "v1v8";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				interrupts = <IT_CURLIM_LDO6 0>;
+				interrupt-parent = <&pmic>;
+				regulator-enable-ramp-delay = <300000>;
+			};
+
+			vref_ddr: vref_ddr {
+				regulator-name = "vref_ddr";
+				regulator-always-on;
+				regulator-over-current-protection;
+			};
+
+			bst_out: boost {
+				regulator-name = "bst_out";
+				interrupts = <IT_OCP_BOOST 0>;
+				interrupt-parent = <&pmic>;
+			};
+
+			vbus_otg: pwr_sw1 {
+				regulator-name = "vbus_otg";
+				interrupts = <IT_OCP_OTG 0>;
+				interrupt-parent = <&pmic>;
+				regulator-active-discharge = <1>;
+			};
+
+			vbus_sw: pwr_sw2 {
+				regulator-name = "vbus_sw";
+				interrupts = <IT_OCP_SWOUT 0>;
+				interrupt-parent = <&pmic>;
+				regulator-active-discharge = <1>;
+			};
+		};
+
+		onkey {
+			compatible = "st,stpmic1-onkey";
+			interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 1>;
+			interrupt-names = "onkey-falling", "onkey-rising";
+			status = "okay";
+		};
+
+		watchdog {
+			compatible = "st,stpmic1-wdt";
+			status = "disabled";
+		};
+	};
+};
+
+&iwdg2 {
+	timeout-sec = <32>;
+	status = "okay";
+};
+
+&pwr_regulators {
+	vdd-supply = <&vdd_io>;
+	vdd_3v3_usbfs-supply = <&vdd_usb>;
+};
+
+&qspi {
+	pinctrl-names = "default", "sleep";
+	pinctrl-0 = <&qspi_clk_pins_a &qspi_bk1_pins_a>;
+	pinctrl-1 = <&qspi_clk_sleep_pins_a &qspi_bk1_sleep_pins_a>;
+	reg = <0x58003000 0x1000>, <0x70000000 0x4000000>;
+	#address-cells = <1>;
+	#size-cells = <0>;
+	status = "okay";
+
+	flash0: spi-flash@0 {
+		compatible = "jedec,spi-nor";
+		reg = <0>;
+		spi-rx-bus-width = <4>;
+		spi-max-frequency = <108000000>;
+		#address-cells = <1>;
+		#size-cells = <1>;
+	};
+};
+
+&rng1 {
+	status = "okay";
+};
+
+&rtc {
+	status = "okay";
+};
diff --git a/doc/board/st/stm32mp1.rst b/doc/board/st/stm32mp1.rst
index 1640bf910e..73195134f1 100644
--- a/doc/board/st/stm32mp1.rst
+++ b/doc/board/st/stm32mp1.rst
@@ -43,11 +43,11 @@  And the necessary drivers
 
 Currently the following boards are supported:
 
- + stm32mp157a-avenger96.dts
  + stm32mp157a-dk1.dts
  + stm32mp157c-dk2.dts
  + stm32mp157c-ed1.dts
  + stm32mp157c-ev1.dts
+ + stm32mp15xx-dhcor-avenger96.dts
 
 Boot Sequences
 --------------
@@ -145,9 +145,9 @@  the supported device trees for STM32MP15x are:
 
    + stm32mp157c-dk2
 
-+ avenger96: Avenger96 board from Arrow Electronics
++ avenger96: Avenger96 board from Arrow Electronics based on DH Elec. DHCOR SoM
 
-   + stm32mp157a-avenger96
+   + stm32mp15xx-dhcor-avenger96
 
 Build Procedure
 ---------------
@@ -229,7 +229,7 @@  Build Procedure
 
      # export KBUILD_OUTPUT=stm32mp15_basic
      # make stm32mp15_basic_defconfig
-     # make DEVICE_TREE=stm32mp157a-avenger96 all
+     # make DEVICE_TREE=stm32mp15xx-dhcor-avenger96 all
 
 6. Output files