[PATCH v3 5/7] rockchip: rk3588-rock-5b: Add USB-C controller to u-boot.dtsi

Kever Yang kever.yang at rock-chips.com
Fri Aug 9 11:24:18 CEST 2024


On 2024/8/3 01:59, Sebastian Reichel wrote:
> Add USB-C controller (fusb302), which will be used by U-Boot to
> initialize USB-PD. This is needed, because USB-PD communication
> must happen within 5 seconds after the USB-C connector got plugged.
> On my Rock 5B it often takes 5 seconds to jump to the Linux binary,
> so it must happen before Linux is initialized.
>
> This adds the DT node to the U-Boot specific file, since the Linux
> kernel DT currently does not describe it to avoid a system reset.
> The plan is to add it to the Linux DT with status = 'fail' and then
> let U-Boot mark it as status = 'okay' if it properly dealt with
> early USB-PD initialization. Until the Kernel DT has the node, let's
> add it in U-Boot to get things going.
>
> Signed-off-by: Sebastian Reichel <sebastian.reichel at collabora.com>
Reviewed-by: Kever Yang <kever.yang at rock-chips.com>

Thanks,
- Kever
> ---
>   arch/arm/dts/rk3588-rock-5b-u-boot.dtsi | 28 +++++++++++++++++++++++++
>   1 file changed, 28 insertions(+)
>
> diff --git a/arch/arm/dts/rk3588-rock-5b-u-boot.dtsi b/arch/arm/dts/rk3588-rock-5b-u-boot.dtsi
> index 8e318e624a85..e93795359ece 100644
> --- a/arch/arm/dts/rk3588-rock-5b-u-boot.dtsi
> +++ b/arch/arm/dts/rk3588-rock-5b-u-boot.dtsi
> @@ -3,6 +3,7 @@
>    * Copyright (c) 2023 Collabora Ltd.
>    */
>   
> +#include <dt-bindings/usb/pd.h>
>   #include "rk3588-u-boot.dtsi"
>   
>   &fspim2_pins {
> @@ -65,3 +66,30 @@
>   	dr_mode = "host";
>   	status = "okay";
>   };
> +
> +&i2c4 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&i2c4m1_xfer>;
> +	status = "okay";
> +
> +	usbc0: usb-typec at 22 {
> +		compatible = "fcs,fusb302";
> +		reg = <0x22>;
> +		interrupt-parent = <&gpio3>;
> +		interrupts = <RK_PB4 IRQ_TYPE_LEVEL_LOW>;
> +		pinctrl-names = "default";
> +		status = "okay";
> +
> +		usb_con: connector {
> +			compatible = "usb-c-connector";
> +			label = "USB-C";
> +			data-role = "dual";
> +			power-role = "sink";
> +			try-power-role = "sink";
> +			op-sink-microwatt = <1000000>;
> +			sink-pdos =
> +				<PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>,
> +				<PDO_VAR(5000, 20000, 5000)>;
> +		};
> +	};
> +};


More information about the U-Boot mailing list