[PATCH v2 3/3] arm64: dts: rockchip: add dual-role usb3 hosts to rk3588 Tiger-Haikou

Quentin Schulz quentin.schulz at theobroma-systems.com
Mon Apr 22 09:45:59 PDT 2024


Hi Heiko,

On 4/22/24 18:39, Heiko Stuebner wrote:
> From: Heiko Stuebner <heiko.stuebner at 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 at 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



More information about the linux-arm-kernel mailing list