[PATCH 14/16] arm64: dts: st: enable usb on stm32mp257f-ev1

From: Fabrice Gasnier

Date: Fri Aug 21 2026 - 12:29:55 EST


STM32MP257F-EV1 board uses two USB controllers:
- USB Host port, with external onboard HUB providing to connectors
- USB Dual role Type-C port
Both are capable of to operate in High-Speed mode.
The Type-C port management is done through integrated UCPD controller
and external TCPP03 I2C protection chip on I2C1.

Signed-off-by: Christian Bruel <christian.bruel@xxxxxxxxxxx>
Signed-off-by: Fabrice Gasnier <fabrice.gasnier@xxxxxxxxxxx>
---
arch/arm64/boot/dts/st/stm32mp257f-ev1.dts | 79 ++++++++++++++++++++++++++++++
1 file changed, 79 insertions(+)

diff --git a/arch/arm64/boot/dts/st/stm32mp257f-ev1.dts b/arch/arm64/boot/dts/st/stm32mp257f-ev1.dts
index 14e033f365e3..6c2bfbf77aac 100644
--- a/arch/arm64/boot/dts/st/stm32mp257f-ev1.dts
+++ b/arch/arm64/boot/dts/st/stm32mp257f-ev1.dts
@@ -253,6 +253,28 @@ phy0_eth2: ethernet-phy@1 {
};
};

+&i2c1 {
+ pinctrl-names = "default", "sleep";
+ pinctrl-0 = <&i2c1_pins_a>;
+ pinctrl-1 = <&i2c1_sleep_pins_a>;
+ clock-frequency = <400000>;
+ status = "okay";
+ /* spare dmas for other usage */
+ /delete-property/dmas;
+ /delete-property/dma-names;
+
+ tcpp: typec@34 {
+ compatible = "st,tcpp03";
+ reg = <0x34>;
+ enable-gpios = <&gpiog 2 GPIO_ACTIVE_HIGH>;
+ interrupt-parent = <&gpiog>;
+ interrupts = <1 IRQ_TYPE_EDGE_BOTH>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&tcpp_flgn_pins_a>;
+ status = "okay";
+ };
+};
+
&i2c2 {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&i2c2_pins_a>;
@@ -516,6 +538,27 @@ timer@11 {
};
};

+&ucpd {
+ st,tcpp = <&tcpp>;
+ status = "okay";
+
+ connector {
+ compatible = "usb-c-connector";
+ label = "USB-C";
+ data-role = "dual";
+ power-role = "dual";
+ try-power-role = "sink";
+ typec-power-opmode = "1.5A";
+ pd-disable;
+ self-powered;
+ port {
+ typec_ep: endpoint {
+ remote-endpoint = <&dwc3_ep>;
+ };
+ };
+ };
+};
+
&usart2 {
pinctrl-names = "default", "idle", "sleep";
pinctrl-0 = <&usart2_pins_a>;
@@ -534,3 +577,39 @@ &usart6 {
uart-has-rtscts;
status = "disabled";
};
+
+&usb2_phy1 {
+ vdd33-supply = <&scmi_vdd3v3_usb>;
+ status = "okay";
+};
+
+&usb2_phy2 {
+ vdd33-supply = <&scmi_vdd3v3_usb>;
+ status = "okay";
+};
+
+&usb3dr {
+ maximum-speed = "high-speed";
+ phys = <&usb2_phy2>;
+ phy-names = "usb2-phy";
+ usb-role-switch;
+ status = "okay";
+ port {
+ dwc3_ep: endpoint {
+ remote-endpoint = <&typec_ep>;
+ };
+ };
+};
+
+&usbh_ehci {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "okay";
+ /* onboard HUB */
+ hub@1 {
+ compatible = "usb424,2514";
+ reg = <1>;
+ vdd-supply = <&scmi_v3v3>;
+ vdda-supply = <&scmi_v3v3>;
+ };
+};

--
2.43.0