diff --git a/arch/arm64/boot/dts/rockchip/rk3399pro-evb-lp4-v11-linux.dts b/arch/arm64/boot/dts/rockchip/rk3399pro-evb-lp4-v11-linux.dts index f975f47b76d6..e0a75ed92439 100644 --- a/arch/arm64/boot/dts/rockchip/rk3399pro-evb-lp4-v11-linux.dts +++ b/arch/arm64/boot/dts/rockchip/rk3399pro-evb-lp4-v11-linux.dts @@ -8,6 +8,7 @@ #include #include #include +#include "dt-bindings/usb/pd.h" #include "rk3399pro.dtsi" #include "rk3399-linux.dtsi" #include "rk3399-opp.dtsi" @@ -208,6 +209,16 @@ regulator-boot-on; }; + vbus_typec: vbus-typec-regulator { + compatible = "regulator-fixed"; + enable-active-high; + gpio = <&gpio1 18 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&vcc5v0_typec0_en>; + regulator-name = "vbus_typec"; + vin-supply = <&vcc5v0_sys>; + }; + vcc5v0_sys: vccsys { compatible = "regulator-fixed"; regulator-name = "vcc5v0_sys"; @@ -243,7 +254,6 @@ &cdn_dp { status = "okay"; - extcon = <&fusb0>; phys = <&tcphy0_dp>; }; @@ -746,7 +756,6 @@ bq25700: bq25700@6b { compatible = "ti,bq25703"; reg = <0x6b>; - extcon = <&fusb0>; interrupt-parent = <&gpio1>; interrupts = ; pinctrl-names = "default"; @@ -1072,8 +1081,16 @@ }; &tcphy0 { - extcon = <&fusb0>; status = "okay"; + orientation-switch; + port { + #address-cells = <1>; + #size-cells = <0>; + tcphy0_orientation_switch: endpoint@0 { + reg = <0>; + remote-endpoint = <&usbc0_orien_sw>; + }; + }; }; &tcphy1 { @@ -1144,7 +1161,15 @@ &usbdrd_dwc3_0 { status = "okay"; - extcon = <&fusb0>; + usb-role-switch; + port { + #address-cells = <1>; + #size-cells = <0>; + dwc3_0_role_switch: endpoint@0 { + reg = <0>; + remote-endpoint = <&usbc0_role_sw>; + }; + }; }; &usbdrd_dwc3_1 { @@ -1178,13 +1203,6 @@ }; }; - fusb30x { - fusb0_int: fusb0-int { - rockchip,pins = - <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>; - }; - }; - headphone { hp_det: hp-det { rockchip,pins = @@ -1275,6 +1293,16 @@ }; }; + usb-typec { + usbc0_int: usbc0-int { + rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>; + }; + + vcc5v0_typec0_en: vcc5v0-typec0-en { + rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + wireless-bluetooth { bt_irq_gpio: bt-irq-gpio { rockchip,pins = diff --git a/arch/arm64/boot/dts/rockchip/rk3399pro-evb-v10-linux.dts b/arch/arm64/boot/dts/rockchip/rk3399pro-evb-v10-linux.dts index 08ac2a477852..004ccbc3d8d6 100644 --- a/arch/arm64/boot/dts/rockchip/rk3399pro-evb-v10-linux.dts +++ b/arch/arm64/boot/dts/rockchip/rk3399pro-evb-v10-linux.dts @@ -8,6 +8,7 @@ #include #include #include +#include "dt-bindings/usb/pd.h" #include "rk3399pro.dtsi" #include "rk3399-linux.dtsi" #include "rk3399-opp.dtsi" @@ -196,6 +197,16 @@ reset-gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_LOW>; }; + vbus_typec: vbus-typec-regulator { + compatible = "regulator-fixed"; + enable-active-high; + gpio = <&gpio1 18 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&vcc5v0_typec0_en>; + regulator-name = "vbus_typec"; + vin-supply = <&vcc5v0_sys>; + }; + vcc_phy: vcc-phy-regulator { compatible = "regulator-fixed"; regulator-name = "vcc_phy"; @@ -238,7 +249,6 @@ &cdn_dp { status = "okay"; - extcon = <&fusb0>; phys = <&tcphy0_dp>; }; @@ -647,7 +657,6 @@ bq25700: bq25700@6b { compatible = "ti,bq25703"; reg = <0x6b>; - extcon = <&fusb0>; interrupt-parent = <&gpio1>; interrupts = ; pinctrl-names = "default"; @@ -774,13 +783,52 @@ i2c-scl-falling-time-ns = <11>; clock-frequency = <100000>; - fusb0: fusb30x@22 { - compatible = "fairchild,fusb302"; + usbc0: fusb302@22 { + compatible = "fcs,fusb302"; reg = <0x22>; + interrupt-parent = <&gpio1>; + interrupts = ; pinctrl-names = "default"; - pinctrl-0 = <&fusb0_int>; - int-n-gpios = <&gpio1 RK_PA2 GPIO_ACTIVE_HIGH>; + pinctrl-0 = <&usbc0_int>; + vbus-supply = <&vbus_typec>; status = "okay"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + usbc0_role_sw: endpoint@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 = + ; + source-pdos = + ; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + usbc0_orien_sw: endpoint { + remote-endpoint = <&tcphy0_orientation_switch>; + }; + }; + }; + }; }; }; @@ -982,8 +1030,16 @@ }; &tcphy0 { - extcon = <&fusb0>; status = "okay"; + orientation-switch; + port { + #address-cells = <1>; + #size-cells = <0>; + tcphy0_orientation_switch: endpoint@0 { + reg = <0>; + remote-endpoint = <&usbc0_orien_sw>; + }; + }; }; &tcphy1 { @@ -998,7 +1054,6 @@ &u2phy0 { status = "okay"; - extcon = <&fusb0>; u2phy0_otg: otg-port { status = "okay"; @@ -1054,7 +1109,15 @@ &usbdrd_dwc3_0 { status = "okay"; - extcon = <&fusb0>; + usb-role-switch; + port { + #address-cells = <1>; + #size-cells = <0>; + dwc3_0_role_switch: endpoint@0 { + reg = <0>; + remote-endpoint = <&usbc0_role_sw>; + }; + }; }; &usbdrd_dwc3_1 { @@ -1088,13 +1151,6 @@ }; }; - fusb30x { - fusb0_int: fusb0-int { - rockchip,pins = - <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>; - }; - }; - headphone { hp_det: hp-det { rockchip,pins = @@ -1146,6 +1202,16 @@ }; }; + usb-typec { + usbc0_int: usbc0-int { + rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>; + }; + + vcc5v0_typec0_en: vcc5v0-typec0-en { + rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + sdio-pwrseq { wifi_enable_h: wifi-enable-h { rockchip,pins = diff --git a/arch/arm64/boot/dts/rockchip/rk3399pro-evb-v10.dts b/arch/arm64/boot/dts/rockchip/rk3399pro-evb-v10.dts index 398f962114cf..8eb9ac1ae383 100644 --- a/arch/arm64/boot/dts/rockchip/rk3399pro-evb-v10.dts +++ b/arch/arm64/boot/dts/rockchip/rk3399pro-evb-v10.dts @@ -197,6 +197,16 @@ reset-gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_LOW>; }; + vbus_typec: vbus-typec-regulator { + compatible = "regulator-fixed"; + enable-active-high; + gpio = <&gpio1 18 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&vcc5v0_typec0_en>; + regulator-name = "vbus_typec"; + vin-supply = <&vcc5v0_sys>; + }; + vcc_phy: vcc-phy-regulator { compatible = "regulator-fixed"; regulator-name = "vcc_phy"; @@ -239,7 +249,6 @@ &cdn_dp { status = "okay"; - extcon = <&fusb0>; phys = <&tcphy0_dp>; }; @@ -676,7 +685,6 @@ bq25700: bq25700@6b { compatible = "ti,bq25703"; reg = <0x6b>; - extcon = <&fusb0>; interrupt-parent = <&gpio1>; interrupts = ; pinctrl-names = "default"; @@ -750,15 +758,53 @@ i2c-scl-falling-time-ns = <11>; clock-frequency = <100000>; - fusb0: fusb30x@22 { - compatible = "fairchild,fusb302"; + usbc0: fusb302@22 { + compatible = "fcs,fusb302"; reg = <0x22>; + interrupt-parent = <&gpio1>; + interrupts = ; pinctrl-names = "default"; - pinctrl-0 = <&fusb0_int>; - int-n-gpios = <&gpio1 RK_PA2 GPIO_ACTIVE_HIGH>; + pinctrl-0 = <&usbc0_int>; + vbus-supply = <&vbus_typec>; status = "okay"; - }; + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + usbc0_role_sw: endpoint@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 = + ; + source-pdos = + ; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + usbc0_orien_sw: endpoint { + remote-endpoint = <&tcphy0_orientation_switch>; + }; + }; + }; + }; + }; }; &i2s1 { @@ -856,8 +902,16 @@ }; &tcphy0 { - extcon = <&fusb0>; status = "okay"; + orientation-switch; + port { + #address-cells = <1>; + #size-cells = <0>; + tcphy0_orientation_switch: endpoint@0 { + reg = <0>; + remote-endpoint = <&usbc0_orien_sw>; + }; + }; }; &tcphy1 { @@ -872,7 +926,6 @@ &u2phy0 { status = "okay"; - extcon = <&fusb0>; u2phy0_otg: otg-port { status = "okay"; @@ -928,7 +981,15 @@ &usbdrd_dwc3_0 { status = "okay"; - extcon = <&fusb0>; + usb-role-switch; + port { + #address-cells = <1>; + #size-cells = <0>; + dwc3_0_role_switch: endpoint@0 { + reg = <0>; + remote-endpoint = <&usbc0_role_sw>; + }; + }; }; &usbdrd_dwc3_1 { @@ -956,13 +1017,6 @@ }; }; - fusb30x { - fusb0_int: fusb0-int { - rockchip,pins = - <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>; - }; - }; - headphone { hp_det: hp-det { rockchip,pins = @@ -1048,6 +1102,16 @@ }; }; + usb-typec { + usbc0_int: usbc0-int { + rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>; + }; + + vcc5v0_typec0_en: vcc5v0-typec0-en { + rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + wireless-bluetooth { uart0_gpios: uart0-gpios { rockchip,pins = diff --git a/arch/arm64/boot/dts/rockchip/rk3399pro-evb-v11-linux.dts b/arch/arm64/boot/dts/rockchip/rk3399pro-evb-v11-linux.dts index c3faaa1ba4d3..84fc2c743c57 100644 --- a/arch/arm64/boot/dts/rockchip/rk3399pro-evb-v11-linux.dts +++ b/arch/arm64/boot/dts/rockchip/rk3399pro-evb-v11-linux.dts @@ -8,6 +8,7 @@ #include #include #include +#include "dt-bindings/usb/pd.h" #include "rk3399pro.dtsi" #include "rk3399-linux.dtsi" #include "rk3399-opp.dtsi" @@ -201,6 +202,26 @@ status = "disabled"; }; + vbus_typec: vbus-typec-regulator { + compatible = "regulator-fixed"; + enable-active-high; + gpio = <&gpio1 18 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&vcc5v0_typec0_en>; + regulator-name = "vbus_typec"; + vin-supply = <&vcc5v0_sys>; + }; + + vbus_typec: vbus-typec-regulator { + compatible = "regulator-fixed"; + enable-active-high; + gpio = <&gpio1 18 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&vcc5v0_typec0_en>; + regulator-name = "vbus_typec"; + vin-supply = <&vcc5v0_sys>; + }; + vcc_phy: vcc-phy-regulator { compatible = "regulator-fixed"; regulator-name = "vcc_phy"; @@ -243,7 +264,6 @@ &cdn_dp { status = "okay"; - extcon = <&fusb0>; phys = <&tcphy0_dp>; }; @@ -657,7 +677,6 @@ bq25700: bq25700@6b { compatible = "ti,bq25703"; reg = <0x6b>; - extcon = <&fusb0>; interrupt-parent = <&gpio1>; interrupts = ; pinctrl-names = "default"; @@ -786,16 +805,53 @@ i2c-scl-falling-time-ns = <11>; clock-frequency = <100000>; - fusb0: fusb30x@22 { - compatible = "fairchild,fusb302"; + usbc0: fusb302@22 { + compatible = "fcs,fusb302"; reg = <0x22>; + interrupt-parent = <&gpio1>; + interrupts = ; pinctrl-names = "default"; - pinctrl-0 = <&fusb0_int>; - int-n-gpios = <&gpio1 RK_PA2 GPIO_ACTIVE_HIGH>; - vbus-5v-gpios = <&gpio0 RK_PA1 GPIO_ACTIVE_LOW>; + pinctrl-0 = <&usbc0_int>; + vbus-supply = <&vbus_typec>; status = "okay"; - }; + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + usbc0_role_sw: endpoint@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 = + ; + source-pdos = + ; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + usbc0_orien_sw: endpoint { + remote-endpoint = <&tcphy0_orientation_switch>; + }; + }; + }; + }; + }; }; &i2s1 { @@ -995,8 +1051,16 @@ }; &tcphy0 { - extcon = <&fusb0>; status = "okay"; + orientation-switch; + port { + #address-cells = <1>; + #size-cells = <0>; + tcphy0_orientation_switch: endpoint@0 { + reg = <0>; + remote-endpoint = <&usbc0_orien_sw>; + }; + }; }; &tcphy1 { @@ -1011,7 +1075,6 @@ &u2phy0 { status = "okay"; - extcon = <&fusb0>; u2phy0_otg: otg-port { status = "okay"; @@ -1067,7 +1130,15 @@ &usbdrd_dwc3_0 { status = "okay"; - extcon = <&fusb0>; + usb-role-switch; + port { + #address-cells = <1>; + #size-cells = <0>; + dwc3_0_role_switch: endpoint@0 { + reg = <0>; + remote-endpoint = <&usbc0_role_sw>; + }; + }; }; &usbdrd_dwc3_1 { @@ -1108,13 +1179,6 @@ }; }; - fusb30x { - fusb0_int: fusb0-int { - rockchip,pins = - <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>; - }; - }; - headphone { hp_det: hp-det { rockchip,pins = @@ -1205,6 +1269,16 @@ }; }; + usb-typec { + usbc0_int: usbc0-int { + rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>; + }; + + vcc5v0_typec0_en: vcc5v0-typec0-en { + rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + wireless-bluetooth { bt_irq_gpio: bt-irq-gpio { rockchip,pins = diff --git a/arch/arm64/boot/dts/rockchip/rk3399pro-evb-v11.dts b/arch/arm64/boot/dts/rockchip/rk3399pro-evb-v11.dts index 7d118a783353..6fea49960e39 100644 --- a/arch/arm64/boot/dts/rockchip/rk3399pro-evb-v11.dts +++ b/arch/arm64/boot/dts/rockchip/rk3399pro-evb-v11.dts @@ -8,6 +8,7 @@ #include #include #include +#include "dt-bindings/usb/pd.h" #include "rk3399pro.dtsi" #include "rk3399-android.dtsi" #include "rk3399-opp.dtsi" @@ -198,6 +199,16 @@ reset-gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_LOW>; }; + vbus_typec: vbus-typec-regulator { + compatible = "regulator-fixed"; + enable-active-high; + gpio = <&gpio1 18 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&vcc5v0_typec0_en>; + regulator-name = "vbus_typec"; + vin-supply = <&vcc5v0_sys>; + }; + vcc_phy: vcc-phy-regulator { compatible = "regulator-fixed"; regulator-name = "vcc_phy"; @@ -240,7 +251,6 @@ &cdn_dp { status = "okay"; - extcon = <&fusb0>; phys = <&tcphy0_dp>; }; @@ -661,7 +671,6 @@ bq25700: bq25700@6b { compatible = "ti,bq25703"; reg = <0x6b>; - extcon = <&fusb0>; interrupt-parent = <&gpio1>; interrupts = ; pinctrl-names = "default"; @@ -735,16 +744,53 @@ i2c-scl-falling-time-ns = <11>; clock-frequency = <100000>; - fusb0: fusb30x@22 { - compatible = "fairchild,fusb302"; + usbc0: fusb302@22 { + compatible = "fcs,fusb302"; reg = <0x22>; + interrupt-parent = <&gpio1>; + interrupts = ; pinctrl-names = "default"; - pinctrl-0 = <&fusb0_int>; - int-n-gpios = <&gpio1 RK_PA2 GPIO_ACTIVE_HIGH>; - vbus-5v-gpios = <&gpio0 RK_PA1 GPIO_ACTIVE_LOW>; + pinctrl-0 = <&usbc0_int>; + vbus-supply = <&vbus_typec>; status = "okay"; - }; + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + usbc0_role_sw: endpoint@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 = + ; + source-pdos = + ; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + usbc0_orien_sw: endpoint { + remote-endpoint = <&tcphy0_orientation_switch>; + }; + }; + }; + }; + }; }; &i2s1 { @@ -838,8 +884,16 @@ }; &tcphy0 { - extcon = <&fusb0>; status = "okay"; + orientation-switch; + port { + #address-cells = <1>; + #size-cells = <0>; + tcphy0_orientation_switch: endpoint@0 { + reg = <0>; + remote-endpoint = <&usbc0_orien_sw>; + }; + }; }; &tcphy1 { @@ -854,7 +908,6 @@ &u2phy0 { status = "okay"; - extcon = <&fusb0>; u2phy0_otg: otg-port { status = "okay"; @@ -911,7 +964,15 @@ &usbdrd_dwc3_0 { status = "okay"; - extcon = <&fusb0>; + usb-role-switch; + port { + #address-cells = <1>; + #size-cells = <0>; + dwc3_0_role_switch: endpoint@0 { + reg = <0>; + remote-endpoint = <&usbc0_role_sw>; + }; + }; }; &usbdrd_dwc3_1 { @@ -939,13 +1000,6 @@ }; }; - fusb30x { - fusb0_int: fusb0-int { - rockchip,pins = - <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>; - }; - }; - headphone { hp_det: hp-det { rockchip,pins = @@ -1031,6 +1085,16 @@ }; }; + usb-typec { + usbc0_int: usbc0-int { + rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>; + }; + + vcc5v0_typec0_en: vcc5v0-typec0-en { + rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + wireless-bluetooth { uart0_gpios: uart0-gpios { rockchip,pins =