[PATCH 14/16] arm64: dts: st: enable usb on stm32mp257f-ev1
Fabrice Gasnier <[email protected]>
| Newsgroups | org.kernel.vger.linux-devicetree,org.infradead.lists.linux-arm-kernel,org.infradead.lists.linux-phy,org.kernel.vger.linux-kernel,org.kernel.vger.linux-usb |
|---|---|
| Message-ID | <20260821-ucpd-host-fusb340-v7-2-rfc-v1-14-c5e27cbc0795@foss.st.com> |
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 <[email protected]> Signed-off-by: Fabrice Gasnier <[email protected]> --- 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