Message ID | 20240422163951.2604273-4-heiko@sntech.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add support for the dual-role dwc3 controllers on rk3588-tiger | expand |
Hi Heiko, On 4/22/24 18:39, Heiko Stuebner wrote: > From: Heiko Stuebner <heiko.stuebner@cherry.de> > > Apart from the host-only usb3 controller (host2) the rk3588 also provides > two dual-role controllers. On the Tiger-Haikou combination these are > connected to the lower usb3-host port in host-only mode and the micro-usb3 > port for dual-role operation. > > Add the necessary controllers, phys to the Tiger-Haikou board and enable > the usb-id extcon. > > Signed-off-by: Heiko Stuebner <heiko.stuebner@cherry.de> > --- > .../boot/dts/rockchip/rk3588-tiger-haikou.dts | 58 +++++++++++++++++++ > 1 file changed, 58 insertions(+) > > diff --git a/arch/arm64/boot/dts/rockchip/rk3588-tiger-haikou.dts b/arch/arm64/boot/dts/rockchip/rk3588-tiger-haikou.dts > index 2aa43e7430e5..52695b6c113a 100644 > --- a/arch/arm64/boot/dts/rockchip/rk3588-tiger-haikou.dts > +++ b/arch/arm64/boot/dts/rockchip/rk3588-tiger-haikou.dts > @@ -113,6 +113,16 @@ vcc5v0_baseboard: vcc5v0-baseboard-regulator { > vin-supply = <&dc_12v>; > }; > > + vcc5v0_otg: vcc5v0-otg-regulator { > + compatible = "regulator-fixed"; > + enable-active-high; > + gpio = <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>; > + pinctrl-names = "default"; > + pinctrl-0 = <&otg_vbus_drv>; > + regulator-name = "vcc5v0_otg"; > + regulator-always-on; > + }; > + > vcc5v0_usb: vcc5v0-usb-regulator { > compatible = "regulator-fixed"; > regulator-name = "vcc5v0_usb"; > @@ -137,6 +147,10 @@ &combphy2_psu { > status = "okay"; > }; > > +&extcon_usb3 { > + status = "okay"; > +}; > + > &gmac0 { > status = "okay"; > }; > @@ -199,6 +213,13 @@ haikou_keys_pin: haikou-keys-pin { > <3 RK_PD5 RK_FUNC_GPIO &pcfg_pull_up>; > }; > }; > + > + usb2 { > + otg_vbus_drv: otg-vbus-drv { > + rockchip,pins = > + <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>; > + }; > + }; > }; > > &sdmmc { > @@ -214,6 +235,23 @@ &sdmmc { > status = "okay"; > }; > > +&u2phy0 { > + status = "okay"; > +}; > + > +&u2phy0_otg { > + phy-supply = <&vcc5v0_otg>; > + status = "okay"; > +}; > + > +&u2phy1 { > + status = "okay"; > +}; > + > +&u2phy1_otg { > + status = "okay"; > +}; > + > &u2phy2 { > status = "okay"; > }; > @@ -236,6 +274,13 @@ &uart2 { > > &uart5 { > rts-gpios = <&gpio3 RK_PB3 GPIO_ACTIVE_HIGH>; > +}; > + > +&usbdp_phy0 { > + status = "okay"; > +}; > + > +&usbdp_phy1 { > status = "okay"; > }; > > @@ -249,6 +294,19 @@ &usb_host0_ohci { > status = "okay"; > }; > > +/* host0_xhci on Q7_USB_P1, usb3-otg port */ > +&usb_host0_xhci { > + dr_mode = "otg"; > + extcon = <&extcon_usb3>; > + status = "okay"; > +}; > + > +/* host1_xhci on Q7_USB_P0, lower usb3 port */ > +&usb_host1_xhci { > + dr_mode = "host"; > + status = "okay"; > +}; > + Sorry I didn't catch this earlier but the alphabetical order is not respected here, it should be after &usb_host1_ohci. Cheers, Quentin
diff --git a/arch/arm64/boot/dts/rockchip/rk3588-tiger-haikou.dts b/arch/arm64/boot/dts/rockchip/rk3588-tiger-haikou.dts index 2aa43e7430e5..52695b6c113a 100644 --- a/arch/arm64/boot/dts/rockchip/rk3588-tiger-haikou.dts +++ b/arch/arm64/boot/dts/rockchip/rk3588-tiger-haikou.dts @@ -113,6 +113,16 @@ vcc5v0_baseboard: vcc5v0-baseboard-regulator { vin-supply = <&dc_12v>; }; + vcc5v0_otg: vcc5v0-otg-regulator { + compatible = "regulator-fixed"; + enable-active-high; + gpio = <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&otg_vbus_drv>; + regulator-name = "vcc5v0_otg"; + regulator-always-on; + }; + vcc5v0_usb: vcc5v0-usb-regulator { compatible = "regulator-fixed"; regulator-name = "vcc5v0_usb"; @@ -137,6 +147,10 @@ &combphy2_psu { status = "okay"; }; +&extcon_usb3 { + status = "okay"; +}; + &gmac0 { status = "okay"; }; @@ -199,6 +213,13 @@ haikou_keys_pin: haikou-keys-pin { <3 RK_PD5 RK_FUNC_GPIO &pcfg_pull_up>; }; }; + + usb2 { + otg_vbus_drv: otg-vbus-drv { + rockchip,pins = + <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; }; &sdmmc { @@ -214,6 +235,23 @@ &sdmmc { status = "okay"; }; +&u2phy0 { + status = "okay"; +}; + +&u2phy0_otg { + phy-supply = <&vcc5v0_otg>; + status = "okay"; +}; + +&u2phy1 { + status = "okay"; +}; + +&u2phy1_otg { + status = "okay"; +}; + &u2phy2 { status = "okay"; }; @@ -236,6 +274,13 @@ &uart2 { &uart5 { rts-gpios = <&gpio3 RK_PB3 GPIO_ACTIVE_HIGH>; +}; + +&usbdp_phy0 { + status = "okay"; +}; + +&usbdp_phy1 { status = "okay"; }; @@ -249,6 +294,19 @@ &usb_host0_ohci { status = "okay"; }; +/* host0_xhci on Q7_USB_P1, usb3-otg port */ +&usb_host0_xhci { + dr_mode = "otg"; + extcon = <&extcon_usb3>; + status = "okay"; +}; + +/* host1_xhci on Q7_USB_P0, lower usb3 port */ +&usb_host1_xhci { + dr_mode = "host"; + status = "okay"; +}; + /* host1 on Q7_USB_P3, usb2 port */ &usb_host1_ehci { status = "okay";