From af654bb68547081068d16ce26e3ba8d60737305c Mon Sep 17 00:00:00 2001 From: zhangpeng Date: Tue, 24 Jun 2025 17:27:05 +0800 Subject: [PATCH] usb3.0 --- rk3588/.dr4-rk3588.dtb.cmd | 3 +- rk3588/.dr4-rk3588.dtb.d.pre.tmp | 3 +- rk3588/.dr4-rk3588.dtb.dts.tmp | 220 +++++++++++++++++++++---------- rk3588/dr4-rk3588.dtb | Bin 263640 -> 265875 bytes rk3588/dr4-rk3588.dts | 6 +- rk3588/rp-usb-typec-rk3588.dtsi | 39 +++++- 6 files changed, 197 insertions(+), 74 deletions(-) diff --git a/rk3588/.dr4-rk3588.dtb.cmd b/rk3588/.dr4-rk3588.dtb.cmd index 707810f..192ab4e 100644 --- a/rk3588/.dr4-rk3588.dtb.cmd +++ b/rk3588/.dr4-rk3588.dtb.cmd @@ -34,10 +34,9 @@ deps_arch/arm64/boot/dts/rockchip/rk3588/dr4-rk3588.dtb := \ arch/arm64/boot/dts/rockchip/rk3588/../rk3588-linux.dtsi \ arch/arm64/boot/dts/rockchip/rk3588/rp-tp-i2c6-gt911.dtsi \ arch/arm64/boot/dts/rockchip/rk3588/rpdzkj_config.dtsi \ - arch/arm64/boot/dts/rockchip/rk3588/rp-usb-host.dtsi \ + arch/arm64/boot/dts/rockchip/rk3588/rp-usb-typec-rk3588.dtsi \ arch/arm64/boot/dts/rockchip/rk3588/rp-eth-gmac0.dtsi \ arch/arm64/boot/dts/rockchip/rk3588/rp-eth-gmac1.dtsi \ - arch/arm64/boot/dts/rockchip/rk3588/rp-pcie-power-rk3588.dtsi \ arch/arm64/boot/dts/rockchip/rk3588/rp-lcd-hdmi1.dtsi \ arch/arm64/boot/dts/rockchip/rk3588/dr4-rk3588.dtb: $(deps_arch/arm64/boot/dts/rockchip/rk3588/dr4-rk3588.dtb) diff --git a/rk3588/.dr4-rk3588.dtb.d.pre.tmp b/rk3588/.dr4-rk3588.dtb.d.pre.tmp index 84dedc8..2b187bf 100644 --- a/rk3588/.dr4-rk3588.dtb.d.pre.tmp +++ b/rk3588/.dr4-rk3588.dtb.d.pre.tmp @@ -30,8 +30,7 @@ dr4-rk3588.o: arch/arm64/boot/dts/rockchip/rk3588/dr4-rk3588.dts \ arch/arm64/boot/dts/rockchip/rk3588/../rk3588-linux.dtsi \ arch/arm64/boot/dts/rockchip/rk3588/rp-tp-i2c6-gt911.dtsi \ arch/arm64/boot/dts/rockchip/rk3588/rpdzkj_config.dtsi \ - arch/arm64/boot/dts/rockchip/rk3588/rp-usb-host.dtsi \ + arch/arm64/boot/dts/rockchip/rk3588/rp-usb-typec-rk3588.dtsi \ arch/arm64/boot/dts/rockchip/rk3588/rp-eth-gmac0.dtsi \ arch/arm64/boot/dts/rockchip/rk3588/rp-eth-gmac1.dtsi \ - arch/arm64/boot/dts/rockchip/rk3588/rp-pcie-power-rk3588.dtsi \ arch/arm64/boot/dts/rockchip/rk3588/rp-lcd-hdmi1.dtsi diff --git a/rk3588/.dr4-rk3588.dtb.dts.tmp b/rk3588/.dr4-rk3588.dtb.dts.tmp index 51b3da0..1501b34 100644 --- a/rk3588/.dr4-rk3588.dtb.dts.tmp +++ b/rk3588/.dr4-rk3588.dtb.dts.tmp @@ -14557,56 +14557,183 @@ # 9 "arch/arm64/boot/dts/rockchip/rk3588/dr4-rk3588.dts" 2 +# 1 "arch/arm64/boot/dts/rockchip/rk3588/rp-usb-typec-rk3588.dtsi" 1 -# 1 "arch/arm64/boot/dts/rockchip/rk3588/rp-usb-host.dtsi" 1 +/ { + vbus5v0_typec: vbus5v0-typec { + compatible = "regulator-fixed"; + regulator-name = "vbus5v0_typec"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + enable-active-high; + gpio = <&gpio1 2 0>; + vin-supply = <&vcc5v0_usb>; + pinctrl-names = "default"; + pinctrl-0 = <&typec5v_pwren>; + }; -&u2phy2 { - status = "okay"; -}; - -&u2phy3 { - status = "okay"; + vcc5v0_host: vcc5v0-host { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_host"; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + enable-active-high; + gpio = <&gpio4 8 0>; + vin-supply = <&vcc5v0_usb>; + pinctrl-names = "default"; + pinctrl-0 = <&vcc5v0_host_en>; + }; }; - - -&u2phy2_host { +&i2c4 { status = "okay"; -}; + pinctrl-names = "default"; + pinctrl-0 = <&i2c4m1_xfer>; -&u2phy3_host { - status = "okay"; -}; + usbc0: fusb302@22 { + compatible = "fcs,fusb302"; + reg = <0x22>; + interrupt-parent = <&gpio0>; + interrupts = <27 8>; + pinctrl-names = "default"; + pinctrl-0 = <&usbc0_int>; + vbus-supply = <&vbus5v0_typec>; + status = "okay"; -&usb_host0_ehci { - status = "okay"; -}; + ports { + #address-cells = <1>; + #size-cells = <0>; -&usb_host0_ohci { - status = "okay"; -}; + port@0 { + reg = <0>; + usbc0_role_sw: endpoint@0 { + remote-endpoint = <&dwc3_0_role_switch>; + }; + }; + }; -&usb_host1_ehci { - status = "okay"; -}; + 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 = + <(((0) << 30) | ((1 << 26)) | ((((5000) / 50) & 0x3ff) << 10) | ((((1000) / 10) & 0x3ff) << 0))>; + source-pdos = + <(((0) << 30) | ((1 << 26)) | ((((5000) / 50) & 0x3ff) << 10) | ((((3000) / 10) & 0x3ff) << 0))>; -&usb_host1_ohci { - status = "okay"; + altmodes { + #address-cells = <1>; + #size-cells = <0>; + + altmode@0 { + reg = <0>; + svid = <0xff01>; + vdo = <0xffffffff>; + }; + }; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + usbc0_orien_sw: endpoint { + remote-endpoint = <&usbdp_phy0_orientation_switch>; + }; + }; + + port@1 { + reg = <1>; + dp_altmode_mux: endpoint { + remote-endpoint = <&usbdp_phy0_dp_altmode_mux>; + }; + }; + }; + }; + }; }; +&usbdp_phy0 { + orientation-switch; + svid = <0xff01>; + sbu1-dc-gpios = <&gpio3 28 0>; + sbu2-dc-gpios = <&gpio3 29 0>; + port { + #address-cells = <1>; + #size-cells = <0>; + usbdp_phy0_orientation_switch: endpoint@0 { + reg = <0>; + remote-endpoint = <&usbc0_orien_sw>; + }; + + usbdp_phy0_dp_altmode_mux: endpoint@1 { + reg = <1>; + remote-endpoint = <&dp_altmode_mux>; + }; + }; +}; + + +&usbdrd_dwc3_0 { + dr_mode = "host"; + usb-role-switch; + port { + #address-cells = <1>; + #size-cells = <0>; + dwc3_0_role_switch: endpoint@0 { + reg = <0>; + remote-endpoint = <&usbc0_role_sw>; + }; + }; +}; + +&u2phy1_otg { + phy-supply = <&vcc5v0_host>; +}; + + +&combphy2_psu { + status = "okay"; +}; &usbhost3_0 { - status = "disabled"; + status = "okay"; }; &usbhost_dwc3_0 { + dr_mode = "host"; status = "okay"; }; -# 13 "arch/arm64/boot/dts/rockchip/rk3588/dr4-rk3588.dts" 2 + +&pinctrl { + usb-typec { + usbc0_int: usbc0-int { + rockchip,pins = <0 27 0 &pcfg_pull_up>; + }; + + typec5v_pwren: typec5v-pwren { + rockchip,pins = <1 2 0 &pcfg_pull_none>; + }; + + }; + usb { + vcc5v0_host_en: vcc5v0-host-en { + rockchip,pins = <4 3 0 &pcfg_pull_none>; + }; + }; +}; +# 12 "arch/arm64/boot/dts/rockchip/rk3588/dr4-rk3588.dts" 2 + @@ -14681,45 +14808,6 @@ status = "okay"; }; # 18 "arch/arm64/boot/dts/rockchip/rk3588/dr4-rk3588.dts" 2 - - -# 1 "arch/arm64/boot/dts/rockchip/rk3588/rp-pcie-power-rk3588.dtsi" 1 - -/ { - pcie20_avdd0v85: pcie20-avdd0v85 { - compatible = "regulator-fixed"; - regulator-name = "pcie20_avdd0v85"; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <850000>; - regulator-max-microvolt = <850000>; - vin-supply = <&vdd_0v85_s0>; - }; - - pcie20_avdd1v8: pcie20-avdd1v8 { - compatible = "regulator-fixed"; - regulator-name = "pcie20_avdd1v8"; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - vin-supply = <&avcc_1v8_s0>; - }; - - vcc3v3_pcie30: vcc3v3-pcie30 { - compatible = "regulator-fixed"; - regulator-name = "vcc3v3_pcie30"; - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; - enable-active-high; - gpios = <&gpio4 5 0>; - startup-delay-us = <5000>; - vin-supply = <&vcc12v_dcin>; - }; - - -}; -# 21 "arch/arm64/boot/dts/rockchip/rk3588/dr4-rk3588.dts" 2 # 64 "arch/arm64/boot/dts/rockchip/rk3588/dr4-rk3588.dts" # 1 "arch/arm64/boot/dts/rockchip/rk3588/rp-lcd-hdmi1.dtsi" 1 &hdmi1 { diff --git a/rk3588/dr4-rk3588.dtb b/rk3588/dr4-rk3588.dtb index 44609db9ff4cdd571da785bccee984d3f923fc55..c0738e4b505d8d88cde72aa8cb44669acbd31f2e 100644 GIT binary patch delta 65291 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 diff --git a/rk3588/dr4-rk3588.dts b/rk3588/dr4-rk3588.dts index c79f0a8..cf6af10 100755 --- a/rk3588/dr4-rk3588.dts +++ b/rk3588/dr4-rk3588.dts @@ -8,8 +8,8 @@ #include "rpdzkj_config.dtsi" /* usb */ -// #include "rp-usb-typea-rk3588.dtsi" -#include "rp-usb-host.dtsi" +#include "rp-usb-typec-rk3588.dtsi" +// #include "rp-usb-host.dtsi" /* ethernet */ // #include "rp-eth-pcie2gmac-rk3588.dtsi" @@ -17,7 +17,7 @@ #include "rp-eth-gmac1.dtsi" /* pcie */ -#include "rp-pcie-power-rk3588.dtsi" +// #include "rp-pcie-power-rk3588.dtsi" // #include "rp-pcie3.dtsi" //need comment when use board of make it youself,and remove the pcie function // #include "rp-pcie-5g.dtsi" diff --git a/rk3588/rp-usb-typec-rk3588.dtsi b/rk3588/rp-usb-typec-rk3588.dtsi index 149fb08..65286a8 100755 --- a/rk3588/rp-usb-typec-rk3588.dtsi +++ b/rk3588/rp-usb-typec-rk3588.dtsi @@ -11,6 +11,20 @@ pinctrl-names = "default"; pinctrl-0 = <&typec5v_pwren>; }; + + vcc5v0_host: vcc5v0-host { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_host"; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + enable-active-high; + gpio = <&gpio4 RK_PB0 GPIO_ACTIVE_HIGH>; + vin-supply = <&vcc5v0_usb>; + pinctrl-names = "default"; + pinctrl-0 = <&vcc5v0_host_en>; + }; }; @@ -111,7 +125,7 @@ &usbdrd_dwc3_0 { - dr_mode = "otg"; + dr_mode = "host"; usb-role-switch; port { #address-cells = <1>; @@ -123,6 +137,24 @@ }; }; +&u2phy1_otg { + phy-supply = <&vcc5v0_host>; +}; + +// 使能USB3.1/SATA/PCIe Combo PHY +&combphy2_psu { + status = "okay"; +}; +// 配置USB3.1 HOST2 Controller +&usbhost3_0 { + status = "okay"; +}; + +&usbhost_dwc3_0 { + dr_mode = "host"; + status = "okay"; +}; + &pinctrl { usb-typec { usbc0_int: usbc0-int { @@ -134,4 +166,9 @@ }; }; + usb { + vcc5v0_host_en: vcc5v0-host-en { + rockchip,pins = <4 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; };