[PATCH 3/4] ARM: dts: rockchip: rk3588-rock-5b-u-boot: add USB3 support
Kever Yang
kever.yang at rock-chips.com
Wed Jul 26 09:36:00 CEST 2023
On 2023/5/29 18:01, Eugen Hristev wrote:
> Enable the USB3.0 host node, and gadget node.
> The gadget is available through the USB type C connector on the board.
> The connector is tied to a Fairchild fusb302b device, which currently
> does not have a driver in U-boot, but the node is here for correct
> description of the board + Linux future compatibility.
> It will be easier to move the node as-is when it will be available
> in the DT from Linux
>
> Signed-off-by: Eugen Hristev <eugen.hristev at collabora.com>
Reviewed-by: Kever Yang <kever.yang at rock-chips.com>
Thanks,
- Kever
> ---
> arch/arm/dts/rk3588-rock-5b-u-boot.dtsi | 197 ++++++++++++++++++++++++
> 1 file changed, 197 insertions(+)
>
> diff --git a/arch/arm/dts/rk3588-rock-5b-u-boot.dtsi b/arch/arm/dts/rk3588-rock-5b-u-boot.dtsi
> index 1cd8a57a6fa6..5a3292699640 100644
> --- a/arch/arm/dts/rk3588-rock-5b-u-boot.dtsi
> +++ b/arch/arm/dts/rk3588-rock-5b-u-boot.dtsi
> @@ -7,6 +7,7 @@
> #include <dt-bindings/pinctrl/rockchip.h>
> #include <dt-bindings/input/input.h>
> #include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/usb/pd.h>
>
> / {
> aliases {
> @@ -18,6 +19,25 @@
> u-boot,spl-boot-order = "same-as-spl", &sdmmc, &sdhci;
> };
>
> + vcc12v_dcin: vcc12v-dcin-regulator {
> + compatible = "regulator-fixed";
> + regulator-name = "vcc12v_dcin";
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-min-microvolt = <12000000>;
> + regulator-max-microvolt = <12000000>;
> + };
> +
> + vcc5v0_usbdcin: vcc5v0-usbdcin {
> + compatible = "regulator-fixed";
> + regulator-name = "vcc5v0_usbdcin";
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-min-microvolt = <5000000>;
> + regulator-max-microvolt = <5000000>;
> + vin-supply = <&vcc12v_dcin>;
> + };
> +
> vcc5v0_host: vcc5v0-host-regulator {
> compatible = "regulator-fixed";
> regulator-name = "vcc5v0_host";
> @@ -29,6 +49,28 @@
> pinctrl-0 = <&vcc5v0_host_en>;
> vin-supply = <&vcc5v0_sys>;
> };
> +
> + vcc5v0_usb: vcc5v0-usb {
> + compatible = "regulator-fixed";
> + regulator-name = "vcc5v0_usb";
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-min-microvolt = <5000000>;
> + regulator-max-microvolt = <5000000>;
> + vin-supply = <&vcc5v0_usbdcin>;
> + };
> +
> + vbus5v0_typec: vbus5v0-typec {
> + compatible = "regulator-fixed";
> + regulator-name = "vbus5v0_typec";
> + regulator-min-microvolt = <5000000>;
> + regulator-max-microvolt = <5000000>;
> + enable-active-high;
> + gpio = <&gpio2 RK_PB6 GPIO_ACTIVE_HIGH>;
> + vin-supply = <&vcc5v0_usb>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&typec5v_pwren>;
> + };
> };
>
> &combphy0_ps {
> @@ -85,6 +127,16 @@
> rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
> };
> };
> +
> + usb-typec {
> + usbc0_int: usbc0-int {
> + rockchip,pins = <3 RK_PB4 RK_FUNC_GPIO &pcfg_pull_up>;
> + };
> +
> + typec5v_pwren: typec5v-pwren {
> + rockchip,pins = <2 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
> + };
> + };
> };
>
> &pcfg_pull_none {
> @@ -168,6 +220,15 @@
> status = "okay";
> };
>
> +&u2phy0 {
> + status = "okay";
> +};
> +
> +&u2phy0_otg {
> + rockchip,typec-vbus-det;
> + status = "okay";
> +};
> +
> &u2phy2 {
> resets = <&cru SRST_OTGPHY_U2_0>, <&cru SRST_P_USB2PHY_U2_0_GRF0>;
> reset-names = "phy", "apb";
> @@ -209,3 +270,139 @@
> status = "okay";
> };
>
> +&usbdp_phy0 {
> + orientation-switch;
> + svid = <0xff01>;
> + sbu1-dc-gpios = <&gpio4 RK_PA6 GPIO_ACTIVE_HIGH>;
> + sbu2-dc-gpios = <&gpio4 RK_PA7 GPIO_ACTIVE_HIGH>;
> + status = "okay";
> +
> + port {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + usbdp_phy0_orientation_switch: endpoint at 0 {
> + reg = <0>;
> + remote-endpoint = <&usbc0_orien_sw>;
> + };
> +
> + usbdp_phy0_dp_altmode_mux: endpoint at 1 {
> + reg = <1>;
> + remote-endpoint = <&dp_altmode_mux>;
> + };
> + };
> +};
> +
> +&usbdp_phy0_u3 {
> + status = "okay";
> +};
> +
> +&usbdrd3_0 {
> + status = "okay";
> +};
> +
> +&usbdrd_dwc3_0 {
> + dr_mode = "otg";
> + usb-role-switch;
> +
> + port {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + dwc3_0_role_switch: endpoint at 0 {
> + reg = <0>;
> + remote-endpoint = <&usbc0_role_sw>;
> + };
> + };
> +};
> +
> +&usbdp_phy1 {
> + rockchip,dp-lane-mux = <2 3>;
> + status = "okay";
> +};
> +
> +&usbdp_phy1_u3 {
> + status = "okay";
> +};
> +
> +&usbdrd3_1 {
> + status = "okay";
> +};
> +
> +&u2phy1 {
> + status = "okay";
> +};
> +
> +&u2phy1_otg {
> + status = "okay";
> +};
> +
> +&i2c4 {
> + pinctrl-0 = <&i2c4m1_xfer>;
> + status = "okay";
> +
> + usbc0: fusb302 at 22 {
> + compatible = "fcs,fusb302";
> + reg = <0x22>;
> + interrupt-parent = <&gpio3>;
> + interrupts = <RK_PB4 IRQ_TYPE_LEVEL_LOW>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&usbc0_int>;
> + vbus-supply = <&vbus5v0_typec>;
> + status = "okay";
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port at 0 {
> + reg = <0>;
> + usbc0_role_sw: endpoint at 0 {
> + remote-endpoint = <&dwc3_0_role_switch>;
> + };
> + };
> + };
> +
> + usb_con: connector {
> + compatible = "usb-c-connector";
> + label = "USB-C";
> + data-role = "dual";
> + power-role = "dual";
> + try-power-role = "sink";
> + op-sink-microwatt = <1000000>;
> + sink-pdos =
> + <PDO_FIXED(5000, 1000, PDO_FIXED_USB_COMM)>;
> + source-pdos =
> + <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
> +
> + altmodes {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + altmode at 0 {
> + reg = <0>;
> + svid = <0xff01>;
> + vdo = <0xffffffff>;
> + };
> + };
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port at 0 {
> + reg = <0>;
> + usbc0_orien_sw: endpoint {
> + remote-endpoint = <&usbdp_phy0_orientation_switch>;
> + };
> + };
> +
> + port at 1 {
> + reg = <1>;
> + dp_altmode_mux: endpoint {
> + remote-endpoint = <&usbdp_phy0_dp_altmode_mux>;
> + };
> + };
> + };
> + };
> + };
> +};
> +
More information about the U-Boot
mailing list