From: Aswath Govindraju <a-govindraju@xxxxxx> AM62 SoC has two instances of USB and they are brought on to the board in the following way, -> USB0 instance - This is brought out to a USB TypeC connector on board through TPS6598 PD controller. The PD controller should decide the role based on CC pin in the connector. Unfortunately the irq line for the TPS isn't hooked up which is a mode not yet support by the driver (some patches were submitted earlier this year[0]). So for now the PD controller is left out and peripheral mode chosen. -> USB1 instance - This is brought out to a USB TypeA connector on board. Therefore, add the required device tree support for the above in the board dts file. 0: https://lore.kernel.org/lkml/f714ee55-ef47-317d-81b9-57020dda064b@xxxxxx/T/ Signed-off-by: Aswath Govindraju <a-govindraju@xxxxxx> Signed-off-by: Vignesh Raghavendra <vigneshr@xxxxxx> [merge from vendor bsp, drop TPS6598 support, drop unneeded nodes, reword commit message] Signed-off-by: Sjoerd Simons <sjoerd@xxxxxxxxxxxxx> Tested-by: Martyn Welch <martyn.welch@xxxxxxxxxxxxx> --- Changes in v4: - Disable new usbss nodes by default in the dtsi and enable in the dts - Drop unneeded disabled nodes in board dts - Drop unneeded nodes - Enable usbss nodes - Small typo fix Changes in v3: - Rebased against current ti-next aka 6.2-rc1 - Add Martyn's tested-by Changes in v2: - Rebase against linux-next 20221220 arch/arm64/boot/dts/ti/k3-am625-sk.dts | 27 ++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/arch/arm64/boot/dts/ti/k3-am625-sk.dts b/arch/arm64/boot/dts/ti/k3-am625-sk.dts index 4f179b146cab..6bc7d63cf52f 100644 --- a/arch/arm64/boot/dts/ti/k3-am625-sk.dts +++ b/arch/arm64/boot/dts/ti/k3-am625-sk.dts @@ -24,6 +24,8 @@ aliases { spi0 = &ospi0; ethernet0 = &cpsw_port1; ethernet1 = &cpsw_port2; + usb0 = &usb0; + usb1 = &usb1; }; chosen { @@ -284,6 +286,12 @@ main_gpio1_ioexp_intr_pins_default: main-gpio1-ioexp-intr-pins-default { AM62X_IOPAD(0x01d4, PIN_INPUT, 7) /* (B15) UART0_RTSn.GPIO1_23 */ >; }; + + main_usb1_pins_default: main-usb1-pins-default { + pinctrl-single,pins = < + AM62X_IOPAD(0x0258, PIN_OUTPUT, 0) /* (F18) USB1_DRVVBUS */ + >; + }; }; &wkup_uart0 { @@ -464,3 +472,22 @@ partition@3fc0000 { }; }; }; + +&usbss0 { + status = "okay"; + ti,vbus-divider; +}; + +&usbss1 { + status = "okay"; +}; + +&usb0 { + dr_mode = "peripheral"; +}; + +&usb1 { + dr_mode = "host"; + pinctrl-names = "default"; + pinctrl-0 = <&main_usb1_pins_default>; +}; -- 2.39.0