[PATCH 14/16] arm64: dts: st: enable usb on stm32mp257f-ev1
From: Fabrice Gasnier <fabrice.gasnier@foss.st.com>
Date: 2026-08-21 16:25:20
Also in:
linux-devicetree, linux-phy, linux-usb, lkml
Subsystem:
arm/stm32 architecture, the rest · Maintainers:
Maxime Coquelin, Alexandre Torgue, Linus Torvalds
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@foss.st.com> Signed-off-by: Fabrice Gasnier <fabrice.gasnier@foss.st.com> --- 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