[PATCH 8/8] arm64: dts: st: Add USB nodes on stm32mp251

From: Marek Vasut

Date: Tue Aug 11 2026 - 21:05:27 EST


From: Pankaj Dev <pankaj.dev@xxxxxx>

Add USB controller and PHY nodes to stm32mp251 DT.
This includes two USB 2.0 FEMTO PHYs, USB 2.0 host
controller and DWC3 DRD controller nodes.

Signed-off-by: Marek Vasut <marex@xxxxxxxxxxxx>
Signed-off-by: Pankaj Dev <pankaj.dev@xxxxxx>
---
Cc: Alexandre Torgue <alexandre.torgue@xxxxxxxxxxx>
Cc: Christian Bruel <christian.bruel@xxxxxxxxxxx>
Cc: Conor Dooley <conor+dt@xxxxxxxxxx>
Cc: Fabrice Gasnier <fabrice.gasnier@xxxxxxxxxxx>
Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Cc: Krzysztof Kozlowski <krzk+dt@xxxxxxxxxx>
Cc: Maxime Coquelin <mcoquelin.stm32@xxxxxxxxx>
Cc: Neil Armstrong <neil.armstrong@xxxxxxxxxx>
Cc: Pankaj Dev <pankaj.dev@xxxxxx>
Cc: Rahul Kumar <rahul.kumar05@xxxxxx>
Cc: Rob Herring <robh@xxxxxxxxxx>
Cc: Rosen Penev <rosenp@xxxxxxxxx>
Cc: Thinh Nguyen <Thinh.Nguyen@xxxxxxxxxxxx>
Cc: Vinod Koul <vkoul@xxxxxxxxxx>
Cc: devicetree@xxxxxxxxxxxxxxx
Cc: kernel@xxxxxxxxxxxxxxxxxx
Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: linux-phy@xxxxxxxxxxxxxxxxxxx
Cc: linux-stm32@xxxxxxxxxxxxxxxxxxxxxxxxxxxx
Cc: linux-usb@xxxxxxxxxxxxxxx
---
arch/arm64/boot/dts/st/stm32mp251.dtsi | 61 ++++++++++++++++++++++++++
1 file changed, 61 insertions(+)

diff --git a/arch/arm64/boot/dts/st/stm32mp251.dtsi b/arch/arm64/boot/dts/st/stm32mp251.dtsi
index 6e985f115b195..c54bd4554c33a 100644
--- a/arch/arm64/boot/dts/st/stm32mp251.dtsi
+++ b/arch/arm64/boot/dts/st/stm32mp251.dtsi
@@ -168,6 +168,26 @@ timer {
arm,no-tick-in-suspend;
};

+ usb2_phy1: usb2-phy1 {
+ compatible = "st,stm32mp25-usb2phy1";
+ #phy-cells = <0>;
+ #clock-cells = <0>;
+ st,syscfg = <&syscfg 0x2400>;
+ clocks = <&rcc CK_KER_USB2PHY1>;
+ resets = <&rcc USB2PHY1_R>;
+ status = "disabled";
+ };
+
+ usb2_phy2: usb2-phy2 {
+ compatible = "st,stm32mp25-usb2phy2";
+ #phy-cells = <0>;
+ #clock-cells = <0>;
+ st,syscfg = <&syscfg 0x2800>;
+ clocks = <&rcc CK_KER_USB2PHY2EN>;
+ resets = <&rcc USB2PHY2_R>;
+ status = "disabled";
+ };
+
soc@0 {
compatible = "simple-bus";
#address-cells = <1>;
@@ -1746,6 +1766,47 @@ stmmac_axi_config_1: stmmac-axi-config {
};
};

+ usbh_ohci: usb@482e0000 {
+ compatible = "generic-ohci";
+ reg = <0x482e0000 0x1000>;
+ access-controllers = <&rifsc 63>;
+ clocks = <&usb2_phy1>, <&rcc CK_BUS_USB2OHCI>;
+ interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
+ phys = <&usb2_phy1>;
+ phy-names = "usb";
+ resets = <&rcc USBH_R>;
+ status = "disabled";
+ };
+
+ usbh_ehci: usb@482f0000 {
+ compatible = "generic-ehci";
+ reg = <0x482f0000 0x1000>;
+ access-controllers = <&rifsc 63>;
+ clocks = <&usb2_phy1>, <&rcc CK_BUS_USB2EHCI>;
+ companion = <&usbh_ohci>;
+ interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>;
+ phys = <&usb2_phy1>;
+ phy-names = "usb";
+ resets = <&rcc USBH_R>;
+ status = "disabled";
+ };
+
+ usb3dr: usb@48300000 {
+ compatible = "st,stm32mp25-dwc3";
+ reg = <0x48300000 0x100000>;
+ access-controllers = <&rifsc 66>;
+ clocks = <&rcc CK_KER_USB2PHY2>,
+ <&rcc CK_BUS_USB3DR>,
+ <&rcc CK_KER_USB2PHY2>;
+ clock-names = "ref", "bus_early", "suspend";
+ interrupts = <GIC_SPI 228 IRQ_TYPE_LEVEL_HIGH>;
+ phys = <&usb2_phy2>, <&combophy PHY_TYPE_USB3>;
+ phy-names = "usb2-phy", "usb3-phy";
+ resets = <&rcc USB3DR_R>;
+ st,syscfg = <&syscfg 0x4800>;
+ status = "disabled";
+ };
+
pcie_ep: pcie-ep@48400000 {
compatible = "st,stm32mp25-pcie-ep";
reg = <0x48400000 0x100000>,
--
2.53.0