diff mbox series

ARM: dts: stm32mp: alignment with v6.0-rc3

Message ID 20220907134201.1.I8c8568a1dada00ca09ce1f3d5abaf38e6fdf66d5@changeid
State Accepted
Commit 152498d580ad666d23d55603de2e77dd27a30adb
Delegated to: Patrice Chotard
Headers show
Series ARM: dts: stm32mp: alignment with v6.0-rc3 | expand

Commit Message

Patrick Delaunay Sept. 7, 2022, 11:42 a.m. UTC
Device tree alignment with Linux kernel v6.0-rc3:
- ARM: dts: stm32: add support for USB2514B onboard hub on stm32mp15xx-dkx
- ARM: dts: stm32: Add alternate pinmux for RCC pin
- ARM: dts: stm32: Add alternate pinmux for DCMI pins
- ARM: dts: stm32: Add alternate pinmux for SPI2 pins
- ARM: dts: stm32: Fix SPI2 pinmux pin comments on stm32mp15
- ARM: dts: stm32: add optee reserved memory on stm32mp135f-dk
- ARM: dts: stm32: enable optee firmware and SCMI support on STM32MP13
- ARM: dts: stm32: remove the IPCC "wakeup" IRQ on stm32mp151

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

 arch/arm/dts/stm32mp13-u-boot.dtsi  | 10 +++--
 arch/arm/dts/stm32mp131.dtsi        | 28 ++++++-------
 arch/arm/dts/stm32mp135f-dk.dts     |  4 +-
 arch/arm/dts/stm32mp15-pinctrl.dtsi | 64 ++++++++++++++++++++++++++---
 arch/arm/dts/stm32mp151.dtsi        |  7 ++--
 arch/arm/dts/stm32mp15xx-dkx.dtsi   |  8 ++++
 6 files changed, 91 insertions(+), 30 deletions(-)

Comments

Patrick Delaunay Sept. 21, 2022, 7:53 a.m. UTC | #1
Hi,

On 9/7/22 13:42, Patrick Delaunay wrote:
> Device tree alignment with Linux kernel v6.0-rc3:
> - ARM: dts: stm32: add support for USB2514B onboard hub on stm32mp15xx-dkx
> - ARM: dts: stm32: Add alternate pinmux for RCC pin
> - ARM: dts: stm32: Add alternate pinmux for DCMI pins
> - ARM: dts: stm32: Add alternate pinmux for SPI2 pins
> - ARM: dts: stm32: Fix SPI2 pinmux pin comments on stm32mp15
> - ARM: dts: stm32: add optee reserved memory on stm32mp135f-dk
> - ARM: dts: stm32: enable optee firmware and SCMI support on STM32MP13
> - ARM: dts: stm32: remove the IPCC "wakeup" IRQ on stm32mp151
>
> Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
> ---
>
>   arch/arm/dts/stm32mp13-u-boot.dtsi  | 10 +++--
>   arch/arm/dts/stm32mp131.dtsi        | 28 ++++++-------
>   arch/arm/dts/stm32mp135f-dk.dts     |  4 +-
>   arch/arm/dts/stm32mp15-pinctrl.dtsi | 64 ++++++++++++++++++++++++++---
>   arch/arm/dts/stm32mp151.dtsi        |  7 ++--
>   arch/arm/dts/stm32mp15xx-dkx.dtsi   |  8 ++++
>   6 files changed, 91 insertions(+), 30 deletions(-)
>

...

For information this patch cause a trace during boot for a miss 
alignment of the size of the

reserved memory for OP-TEE in the kernel device tree(now 0x3000000 to 
prepare the secure UI support)

and the node added dynamically by OP-TEE in master branch (0x2000000), 
with :


> diff --git a/arch/arm/dts/stm32mp135f-dk.dts b/arch/arm/dts/stm32mp135f-dk.dts
> index f436ffab998..e6b8ffd332c 100644
> --- a/arch/arm/dts/stm32mp135f-dk.dts
> +++ b/arch/arm/dts/stm32mp135f-dk.dts
> @@ -31,8 +31,8 @@
>   		#size-cells = <1>;
>   		ranges;
>   
> -		optee@de000000 {
> -			reg = <0xde000000 0x2000000>;
> +		optee@dd000000 {
> +			reg = <0xdd000000 0x3000000>;
>   			no-map;
>   		};
>   	};

...


These 2 different memory nodes in U-Boot DT cause overlap and the 2 
ERROR traces from lmb:

reserving fdt memory region failed (addr=dd000000 size=3000000 flags=4)

----------------------------------------------------------------------------
U-Boot 2022.10-rc4-00011-g35133ee9ca0 (Sep 07 2022 - 14:06:52 +0200)

CPU: STM32MP135C Rev.Z
Model: STMicroelectronics STM32MP135F-DK Discovery Board
Board: stm32mp1 in trusted mode (st,stm32mp135f-dk)
DRAM:  ERROR: reserving fdt memory region failed (addr=dd000000 
size=3000000 flags=4)
512 MiB
ERROR: reserving fdt memory region failed (addr=dd000000 size=3000000 
flags=4)
Core:  53 devices, 23 uclasses, devicetree: board
MMC:   STM32 SD/MMC: 0
Loading Environment from MMC... OK
In:    serial@40010000
Out:   serial@40010000
Err:   serial@40010000
Net:   No ethernet found.
Hit any key to stop autoboot:  0

------------------------------------------------------------------------

The LMB don't generate error when 2 regions are identical (same address 
and size).


A pending OP-TEE patch allow to avoid the U-Boot device tee modification 
and remove this trace:

https://github.com/OP-TEE/optee_os/pull/5527


Regards

Patrick
Patrice CHOTARD Sept. 23, 2022, 11:37 a.m. UTC | #2
Hi Patrick

On 9/21/22 09:53, Patrick DELAUNAY wrote:
> Hi,
> 
> On 9/7/22 13:42, Patrick Delaunay wrote:
>> Device tree alignment with Linux kernel v6.0-rc3:
>> - ARM: dts: stm32: add support for USB2514B onboard hub on stm32mp15xx-dkx
>> - ARM: dts: stm32: Add alternate pinmux for RCC pin
>> - ARM: dts: stm32: Add alternate pinmux for DCMI pins
>> - ARM: dts: stm32: Add alternate pinmux for SPI2 pins
>> - ARM: dts: stm32: Fix SPI2 pinmux pin comments on stm32mp15
>> - ARM: dts: stm32: add optee reserved memory on stm32mp135f-dk
>> - ARM: dts: stm32: enable optee firmware and SCMI support on STM32MP13
>> - ARM: dts: stm32: remove the IPCC "wakeup" IRQ on stm32mp151
>>
>> Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
>> ---
>>
>>   arch/arm/dts/stm32mp13-u-boot.dtsi  | 10 +++--
>>   arch/arm/dts/stm32mp131.dtsi        | 28 ++++++-------
>>   arch/arm/dts/stm32mp135f-dk.dts     |  4 +-
>>   arch/arm/dts/stm32mp15-pinctrl.dtsi | 64 ++++++++++++++++++++++++++---
>>   arch/arm/dts/stm32mp151.dtsi        |  7 ++--
>>   arch/arm/dts/stm32mp15xx-dkx.dtsi   |  8 ++++
>>   6 files changed, 91 insertions(+), 30 deletions(-)
>>
> 
> ...
> 
> For information this patch cause a trace during boot for a miss alignment of the size of the
> 
> reserved memory for OP-TEE in the kernel device tree(now 0x3000000 to prepare the secure UI support)
> 
> and the node added dynamically by OP-TEE in master branch (0x2000000), with :
> 
> 
>> diff --git a/arch/arm/dts/stm32mp135f-dk.dts b/arch/arm/dts/stm32mp135f-dk.dts
>> index f436ffab998..e6b8ffd332c 100644
>> --- a/arch/arm/dts/stm32mp135f-dk.dts
>> +++ b/arch/arm/dts/stm32mp135f-dk.dts
>> @@ -31,8 +31,8 @@
>>           #size-cells = <1>;
>>           ranges;
>>   -        optee@de000000 {
>> -            reg = <0xde000000 0x2000000>;
>> +        optee@dd000000 {
>> +            reg = <0xdd000000 0x3000000>;
>>               no-map;
>>           };
>>       };
> 
> ...
> 
> 
> These 2 different memory nodes in U-Boot DT cause overlap and the 2 ERROR traces from lmb:
> 
> reserving fdt memory region failed (addr=dd000000 size=3000000 flags=4)
> 
> ----------------------------------------------------------------------------
> U-Boot 2022.10-rc4-00011-g35133ee9ca0 (Sep 07 2022 - 14:06:52 +0200)
> 
> CPU: STM32MP135C Rev.Z
> Model: STMicroelectronics STM32MP135F-DK Discovery Board
> Board: stm32mp1 in trusted mode (st,stm32mp135f-dk)
> DRAM:  ERROR: reserving fdt memory region failed (addr=dd000000 size=3000000 flags=4)
> 512 MiB
> ERROR: reserving fdt memory region failed (addr=dd000000 size=3000000 flags=4)
> Core:  53 devices, 23 uclasses, devicetree: board
> MMC:   STM32 SD/MMC: 0
> Loading Environment from MMC... OK
> In:    serial@40010000
> Out:   serial@40010000
> Err:   serial@40010000
> Net:   No ethernet found.
> Hit any key to stop autoboot:  0
> 
> ------------------------------------------------------------------------
> 
> The LMB don't generate error when 2 regions are identical (same address and size).
> 
> 
> A pending OP-TEE patch allow to avoid the U-Boot device tee modification and remove this trace:
> 
> https://github.com/OP-TEE/optee_os/pull/5527
> 
> 
> Regards
> 
> Patrick
> 
> 
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>

Thanks
Patrice
Patrice CHOTARD Sept. 23, 2022, 12:24 p.m. UTC | #3
Hi Patrick

On 9/23/22 13:37, Patrice CHOTARD wrote:
> Hi Patrick
> 
> On 9/21/22 09:53, Patrick DELAUNAY wrote:
>> Hi,
>>
>> On 9/7/22 13:42, Patrick Delaunay wrote:
>>> Device tree alignment with Linux kernel v6.0-rc3:
>>> - ARM: dts: stm32: add support for USB2514B onboard hub on stm32mp15xx-dkx
>>> - ARM: dts: stm32: Add alternate pinmux for RCC pin
>>> - ARM: dts: stm32: Add alternate pinmux for DCMI pins
>>> - ARM: dts: stm32: Add alternate pinmux for SPI2 pins
>>> - ARM: dts: stm32: Fix SPI2 pinmux pin comments on stm32mp15
>>> - ARM: dts: stm32: add optee reserved memory on stm32mp135f-dk
>>> - ARM: dts: stm32: enable optee firmware and SCMI support on STM32MP13
>>> - ARM: dts: stm32: remove the IPCC "wakeup" IRQ on stm32mp151
>>>
>>> Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
>>> ---
>>>
>>>   arch/arm/dts/stm32mp13-u-boot.dtsi  | 10 +++--
>>>   arch/arm/dts/stm32mp131.dtsi        | 28 ++++++-------
>>>   arch/arm/dts/stm32mp135f-dk.dts     |  4 +-
>>>   arch/arm/dts/stm32mp15-pinctrl.dtsi | 64 ++++++++++++++++++++++++++---
>>>   arch/arm/dts/stm32mp151.dtsi        |  7 ++--
>>>   arch/arm/dts/stm32mp15xx-dkx.dtsi   |  8 ++++
>>>   6 files changed, 91 insertions(+), 30 deletions(-)
>>>
>>
>> ...
>>
>> For information this patch cause a trace during boot for a miss alignment of the size of the
>>
>> reserved memory for OP-TEE in the kernel device tree(now 0x3000000 to prepare the secure UI support)
>>
>> and the node added dynamically by OP-TEE in master branch (0x2000000), with :
>>
>>
>>> diff --git a/arch/arm/dts/stm32mp135f-dk.dts b/arch/arm/dts/stm32mp135f-dk.dts
>>> index f436ffab998..e6b8ffd332c 100644
>>> --- a/arch/arm/dts/stm32mp135f-dk.dts
>>> +++ b/arch/arm/dts/stm32mp135f-dk.dts
>>> @@ -31,8 +31,8 @@
>>>           #size-cells = <1>;
>>>           ranges;
>>>   -        optee@de000000 {
>>> -            reg = <0xde000000 0x2000000>;
>>> +        optee@dd000000 {
>>> +            reg = <0xdd000000 0x3000000>;
>>>               no-map;
>>>           };
>>>       };
>>
>> ...
>>
>>
>> These 2 different memory nodes in U-Boot DT cause overlap and the 2 ERROR traces from lmb:
>>
>> reserving fdt memory region failed (addr=dd000000 size=3000000 flags=4)
>>
>> ----------------------------------------------------------------------------
>> U-Boot 2022.10-rc4-00011-g35133ee9ca0 (Sep 07 2022 - 14:06:52 +0200)
>>
>> CPU: STM32MP135C Rev.Z
>> Model: STMicroelectronics STM32MP135F-DK Discovery Board
>> Board: stm32mp1 in trusted mode (st,stm32mp135f-dk)
>> DRAM:  ERROR: reserving fdt memory region failed (addr=dd000000 size=3000000 flags=4)
>> 512 MiB
>> ERROR: reserving fdt memory region failed (addr=dd000000 size=3000000 flags=4)
>> Core:  53 devices, 23 uclasses, devicetree: board
>> MMC:   STM32 SD/MMC: 0
>> Loading Environment from MMC... OK
>> In:    serial@40010000
>> Out:   serial@40010000
>> Err:   serial@40010000
>> Net:   No ethernet found.
>> Hit any key to stop autoboot:  0
>>
>> ------------------------------------------------------------------------
>>
>> The LMB don't generate error when 2 regions are identical (same address and size).
>>
>>
>> A pending OP-TEE patch allow to avoid the U-Boot device tee modification and remove this trace:
>>
>> https://github.com/OP-TEE/optee_os/pull/5527
>>
>>
>> Regards
>>
>> Patrick
>>
>>
> Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
> 
> Thanks
> Patrice
> _______________________________________________
> Uboot-stm32 mailing list
> Uboot-stm32@st-md-mailman.stormreply.com
> https://st-md-mailman.stormreply.com/mailman/listinfo/uboot-stm32

applied on u-boot-stm32/next

Thanks
Patrice
diff mbox series

Patch

diff --git a/arch/arm/dts/stm32mp13-u-boot.dtsi b/arch/arm/dts/stm32mp13-u-boot.dtsi
index 01552adb7c4..47a43649bbb 100644
--- a/arch/arm/dts/stm32mp13-u-boot.dtsi
+++ b/arch/arm/dts/stm32mp13-u-boot.dtsi
@@ -17,6 +17,12 @@ 
 		pinctrl0 = &pinctrl;
 	};
 
+	firmware {
+		optee {
+			u-boot,dm-pre-reloc;
+		};
+	};
+
 	/* need PSCI for sysreset during board_f */
 	psci {
 		u-boot,dm-pre-proper;
@@ -82,10 +88,6 @@ 
 	u-boot,dm-pre-reloc;
 };
 
-&optee {
-	u-boot,dm-pre-reloc;
-};
-
 &pinctrl {
 	u-boot,dm-pre-reloc;
 };
diff --git a/arch/arm/dts/stm32mp131.dtsi b/arch/arm/dts/stm32mp131.dtsi
index 84e16bb2f2b..a1c6d0d00b5 100644
--- a/arch/arm/dts/stm32mp131.dtsi
+++ b/arch/arm/dts/stm32mp131.dtsi
@@ -27,21 +27,8 @@ 
 		interrupt-parent = <&intc>;
 	};
 
-	scmi_sram: sram@2ffff000 {
-		compatible = "mmio-sram";
-		reg = <0x2ffff000 0x1000>;
-		#address-cells = <1>;
-		#size-cells = <1>;
-		ranges = <0 0x2ffff000 0x1000>;
-
-		scmi_shm: scmi_shm@0 {
-			compatible = "arm,scmi-shmem";
-			reg = <0 0x80>;
-		};
-	};
-
 	firmware {
-		optee: optee {
+		optee {
 			method = "smc";
 			compatible = "linaro,optee-tz";
 		};
@@ -151,6 +138,19 @@ 
 		interrupt-parent = <&intc>;
 		ranges;
 
+		scmi_sram: sram@2ffff000 {
+			compatible = "mmio-sram";
+			reg = <0x2ffff000 0x1000>;
+			#address-cells = <1>;
+			#size-cells = <1>;
+			ranges = <0 0x2ffff000 0x1000>;
+
+			scmi_shm: scmi-sram@0 {
+				compatible = "arm,scmi-shmem";
+				reg = <0 0x80>;
+			};
+		};
+
 		uart4: serial@40010000 {
 			compatible = "st,stm32h7-uart";
 			reg = <0x40010000 0x400>;
diff --git a/arch/arm/dts/stm32mp135f-dk.dts b/arch/arm/dts/stm32mp135f-dk.dts
index f436ffab998..e6b8ffd332c 100644
--- a/arch/arm/dts/stm32mp135f-dk.dts
+++ b/arch/arm/dts/stm32mp135f-dk.dts
@@ -31,8 +31,8 @@ 
 		#size-cells = <1>;
 		ranges;
 
-		optee@de000000 {
-			reg = <0xde000000 0x2000000>;
+		optee@dd000000 {
+			reg = <0xdd000000 0x3000000>;
 			no-map;
 		};
 	};
diff --git a/arch/arm/dts/stm32mp15-pinctrl.dtsi b/arch/arm/dts/stm32mp15-pinctrl.dtsi
index d3ed10335df..2cc9341d43d 100644
--- a/arch/arm/dts/stm32mp15-pinctrl.dtsi
+++ b/arch/arm/dts/stm32mp15-pinctrl.dtsi
@@ -151,6 +151,43 @@ 
 		};
 	};
 
+	dcmi_pins_c: dcmi-2 {
+		pins {
+			pinmux = <STM32_PINMUX('A', 4,  AF13)>,/* DCMI_HSYNC */
+				 <STM32_PINMUX('B', 7,  AF13)>,/* DCMI_VSYNC */
+				 <STM32_PINMUX('A', 6,  AF13)>,/* DCMI_PIXCLK */
+				 <STM32_PINMUX('A', 9,  AF13)>,/* DCMI_D0 */
+				 <STM32_PINMUX('H', 10, AF13)>,/* DCMI_D1 */
+				 <STM32_PINMUX('E', 0, AF13)>,/* DCMI_D2 */
+				 <STM32_PINMUX('E', 1, AF13)>,/* DCMI_D3 */
+				 <STM32_PINMUX('H', 14, AF13)>,/* DCMI_D4 */
+				 <STM32_PINMUX('I', 4,  AF13)>,/* DCMI_D5 */
+				 <STM32_PINMUX('I', 6,  AF13)>,/* DCMI_D6 */
+				 <STM32_PINMUX('E', 6,  AF13)>,/* DCMI_D7 */
+				 <STM32_PINMUX('I', 1,  AF13)>,/* DCMI_D8 */
+				 <STM32_PINMUX('H', 7,  AF13)>;/* DCMI_D9 */
+			bias-pull-up;
+		};
+	};
+
+	dcmi_sleep_pins_c: dcmi-sleep-2 {
+		pins {
+			pinmux = <STM32_PINMUX('A', 4,  ANALOG)>,/* DCMI_HSYNC */
+				 <STM32_PINMUX('B', 7,  ANALOG)>,/* DCMI_VSYNC */
+				 <STM32_PINMUX('A', 6,  ANALOG)>,/* DCMI_PIXCLK */
+				 <STM32_PINMUX('A', 9,  ANALOG)>,/* DCMI_D0 */
+				 <STM32_PINMUX('H', 10, ANALOG)>,/* DCMI_D1 */
+				 <STM32_PINMUX('E', 0, ANALOG)>,/* DCMI_D2 */
+				 <STM32_PINMUX('E', 1, ANALOG)>,/* DCMI_D3 */
+				 <STM32_PINMUX('H', 14, ANALOG)>,/* DCMI_D4 */
+				 <STM32_PINMUX('I', 4,  ANALOG)>,/* DCMI_D5 */
+				 <STM32_PINMUX('I', 6,  ANALOG)>,/* DCMI_D6 */
+				 <STM32_PINMUX('E', 6,  ANALOG)>,/* DCMI_D7 */
+				 <STM32_PINMUX('I', 1,  ANALOG)>,/* DCMI_D8 */
+				 <STM32_PINMUX('H', 7,  ANALOG)>;/* DCMI_D9 */
+		};
+	};
+
 	ethernet0_rgmii_pins_a: rgmii-0 {
 		pins1 {
 			pinmux = <STM32_PINMUX('G', 5, AF11)>, /* ETH_RGMII_CLK125 */
@@ -923,6 +960,21 @@ 
 		};
 	};
 
+	mco1_pins_a: mco1-0 {
+		pins {
+			pinmux = <STM32_PINMUX('A', 13, AF2)>; /* MCO1 */
+			bias-disable;
+			drive-push-pull;
+			slew-rate = <1>;
+		};
+	};
+
+	mco1_sleep_pins_a: mco1-sleep-0 {
+		pins {
+			pinmux = <STM32_PINMUX('A', 13, ANALOG)>; /* MCO1 */
+		};
+	};
+
 	mco2_pins_a: mco2-0 {
 		pins {
 			pinmux = <STM32_PINMUX('G', 2, AF1)>; /* MCO2 */
@@ -1814,30 +1866,30 @@ 
 
 	spi2_pins_a: spi2-0 {
 		pins1 {
-			pinmux = <STM32_PINMUX('B', 10, AF5)>, /* SPI1_SCK */
-				 <STM32_PINMUX('I', 3, AF5)>; /* SPI1_MOSI */
+			pinmux = <STM32_PINMUX('B', 10, AF5)>, /* SPI2_SCK */
+				 <STM32_PINMUX('I', 3, AF5)>; /* SPI2_MOSI */
 			bias-disable;
 			drive-push-pull;
 			slew-rate = <1>;
 		};
 
 		pins2 {
-			pinmux = <STM32_PINMUX('I', 2, AF5)>; /* SPI1_MISO */
+			pinmux = <STM32_PINMUX('I', 2, AF5)>; /* SPI2_MISO */
 			bias-disable;
 		};
 	};
 
 	spi2_pins_b: spi2-1 {
 		pins1 {
-			pinmux = <STM32_PINMUX('I', 1, AF5)>, /* SPI1_SCK */
-				 <STM32_PINMUX('I', 3, AF5)>; /* SPI1_MOSI */
+			pinmux = <STM32_PINMUX('I', 1, AF5)>, /* SPI2_SCK */
+				 <STM32_PINMUX('I', 3, AF5)>; /* SPI2_MOSI */
 			bias-disable;
 			drive-push-pull;
 			slew-rate = <1>;
 		};
 
 		pins2 {
-			pinmux = <STM32_PINMUX('I', 2, AF5)>; /* SPI1_MISO */
+			pinmux = <STM32_PINMUX('I', 2, AF5)>; /* SPI2_MISO */
 			bias-disable;
 		};
 	};
diff --git a/arch/arm/dts/stm32mp151.dtsi b/arch/arm/dts/stm32mp151.dtsi
index 767a06ef684..f0fb022fc63 100644
--- a/arch/arm/dts/stm32mp151.dtsi
+++ b/arch/arm/dts/stm32mp151.dtsi
@@ -1143,10 +1143,9 @@ 
 			reg = <0x4c001000 0x400>;
 			st,proc-id = <0>;
 			interrupts-extended =
-				<&intc GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
-				<&intc GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
-				<&exti 61 1>;
-			interrupt-names = "rx", "tx", "wakeup";
+				<&exti 61 1>,
+				<&intc GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-names = "rx", "tx";
 			clocks = <&rcc IPCC>;
 			wakeup-source;
 			status = "disabled";
diff --git a/arch/arm/dts/stm32mp15xx-dkx.dtsi b/arch/arm/dts/stm32mp15xx-dkx.dtsi
index 3d36cac9ed0..5a045d7156b 100644
--- a/arch/arm/dts/stm32mp15xx-dkx.dtsi
+++ b/arch/arm/dts/stm32mp15xx-dkx.dtsi
@@ -685,6 +685,14 @@ 
 &usbh_ehci {
 	phys = <&usbphyc_port0>;
 	status = "okay";
+	#address-cells = <1>;
+	#size-cells = <0>;
+	/* onboard HUB */
+	hub@1 {
+		compatible = "usb424,2514";
+		reg = <1>;
+		vdd-supply = <&v3v3>;
+	};
 };
 
 &usbotg_hs {