Message ID | 20240624083236.1401673-2-jacobe.zang@wesion.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | arm64: dts: Add board support for Khadas Edge2 | expand |
On 24/06/2024 10:32, Jacobe Zang wrote: > Khadas Edge 2 has 2x Type-C port. One just supports PD and > controlled by MCU. The other one supports PD, DP Alt mode and DRD. This > commit adds support for DRD. > > Co-developed-by: Muhammed Efe Cetin <efectn@protonmail.com> > Signed-off-by: Muhammed Efe Cetin <efectn@protonmail.com> > Signed-off-by: Jacobe Zang <jacobe.zang@wesion.com> > --- > .../dts/rockchip/rk3588s-khadas-edge2.dts | 118 ++++++++++++++++++ > 1 file changed, 118 insertions(+) > > diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-khadas-edge2.dts b/arch/arm64/boot/dts/rockchip/rk3588s-khadas-edge2.dts > index dbddfc3bb4641..8c0bc675690dd 100644 > --- a/arch/arm64/boot/dts/rockchip/rk3588s-khadas-edge2.dts > +++ b/arch/arm64/boot/dts/rockchip/rk3588s-khadas-edge2.dts > @@ -6,6 +6,7 @@ > #include <dt-bindings/input/input.h> > #include <dt-bindings/pinctrl/rockchip.h> > #include <dt-bindings/leds/common.h> > +#include <dt-bindings/usb/pd.h> > #include "rk3588s.dtsi" > > / { > @@ -112,6 +113,18 @@ vcc5v0_sys: vcc5v0-sys-regulator { > regulator-max-microvolt = <5000000>; > }; > > + vbus5v0_typec: vbus5v0-typec-regulator { > + compatible = "regulator-fixed"; > + regulator-name = "vbus5v0_typec"; > + regulator-min-microvolt = <5000000>; > + regulator-max-microvolt = <5000000>; > + enable-active-high; > + gpio = <&gpio3 RK_PA4 GPIO_ACTIVE_HIGH>; > + vin-supply = <&vcc5v0_sys>; > + pinctrl-names = "default"; > + pinctrl-0 = <&typec5v_pwren>; > + }; > + > vcc_1v1_nldo_s3: vcc-1v1-nldo-s3-regulator { > compatible = "regulator-fixed"; > regulator-name = "vcc_1v1_nldo_s3"; > @@ -224,6 +237,56 @@ regulator-state-mem { > &i2c2 { > status = "okay"; > > + usbc0: usb-typec@22 { > + compatible = "fcs,fusb302"; > + reg = <0x22>; > + interrupt-parent = <&gpio1>; > + interrupts = <RK_PB5 IRQ_TYPE_LEVEL_LOW>; > + pinctrl-names = "default"; > + pinctrl-0 = <&usbc0_int>; > + vbus-supply = <&vbus5v0_typec>; > + status = "okay"; Was it disabled anywhere? Best regards, Krzysztof
> Was it disabled anywhere?
This patch aims to enable the DRD function of Type-C port. So need to enable in DTS.
---
Best Regards
Jacobe
Am Dienstag, 25. Juni 2024, 09:53:45 CEST schrieb Jacobe Zang: > > Was it disabled anywhere? > > This patch aims to enable the DRD function of Type-C port. So need to enable in DTS. > + usbc0: usb-typec@22 { > + compatible = "fcs,fusb302"; > + reg = <0x22>; > + interrupt-parent = <&gpio1>; > + interrupts = <RK_PB5 IRQ_TYPE_LEVEL_LOW>; > + pinctrl-names = "default"; > + pinctrl-0 = <&usbc0_int>; > + vbus-supply = <&vbus5v0_typec>; > + status = "okay"; what Krzysztof means, is that the default for status is "okay". So for a node you just added, you don't need a separate status="okay" This is only needed if the node is added in a base dtsi (like soc peripherals) which are then enabled on a per-board basis as needed. So please just drop the status property from you fusb302 node. Heiko
> what Krzysztof means, is that the default for status is "okay". So for a > node you just added, you don't need a separate status="okay" > This is only needed if the node is added in a base dtsi (like soc > peripherals) which are then enabled on a per-board basis as needed. > So please just drop the status property from you fusb302 node. Now I get it. I will drop the property in next version. --- Best Regards Jacobe
diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-khadas-edge2.dts b/arch/arm64/boot/dts/rockchip/rk3588s-khadas-edge2.dts index dbddfc3bb4641..8c0bc675690dd 100644 --- a/arch/arm64/boot/dts/rockchip/rk3588s-khadas-edge2.dts +++ b/arch/arm64/boot/dts/rockchip/rk3588s-khadas-edge2.dts @@ -6,6 +6,7 @@ #include <dt-bindings/input/input.h> #include <dt-bindings/pinctrl/rockchip.h> #include <dt-bindings/leds/common.h> +#include <dt-bindings/usb/pd.h> #include "rk3588s.dtsi" / { @@ -112,6 +113,18 @@ vcc5v0_sys: vcc5v0-sys-regulator { regulator-max-microvolt = <5000000>; }; + vbus5v0_typec: vbus5v0-typec-regulator { + compatible = "regulator-fixed"; + regulator-name = "vbus5v0_typec"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + enable-active-high; + gpio = <&gpio3 RK_PA4 GPIO_ACTIVE_HIGH>; + vin-supply = <&vcc5v0_sys>; + pinctrl-names = "default"; + pinctrl-0 = <&typec5v_pwren>; + }; + vcc_1v1_nldo_s3: vcc-1v1-nldo-s3-regulator { compatible = "regulator-fixed"; regulator-name = "vcc_1v1_nldo_s3"; @@ -224,6 +237,56 @@ regulator-state-mem { &i2c2 { status = "okay"; + usbc0: usb-typec@22 { + compatible = "fcs,fusb302"; + reg = <0x22>; + interrupt-parent = <&gpio1>; + interrupts = <RK_PB5 IRQ_TYPE_LEVEL_LOW>; + pinctrl-names = "default"; + pinctrl-0 = <&usbc0_int>; + vbus-supply = <&vbus5v0_typec>; + status = "okay"; + + usb_con: connector { + compatible = "usb-c-connector"; + label = "USB-C"; + data-role = "dual"; + power-role = "dual"; + try-power-role = "source"; + op-sink-microwatt = <1000000>; + sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM) + PDO_FIXED(9000, 3000, PDO_FIXED_USB_COMM) + PDO_FIXED(12000, 3000, PDO_FIXED_USB_COMM)>; + source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>; + + 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>; + usbc0_role_sw: endpoint { + remote-endpoint = <&dwc3_0_role_switch>; + }; + }; + + port@2 { + reg = <2>; + dp_altmode_mux: endpoint { + remote-endpoint = <&usbdp_phy0_dp_altmode_mux>; + }; + }; + }; + }; + }; + hym8563: rtc@51 { compatible = "haoyu,hym8563"; reg = <0x51>; @@ -256,6 +319,16 @@ vcc5v0_host_en: vcc5v0-host-en { }; }; + usb-typec { + usbc0_int: usbc0-int { + rockchip,pins = <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up>; + }; + + typec5v_pwren: typec5v-pwren { + rockchip,pins = <3 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + ir-receiver { ir_receiver_pin: ir-receiver-pin { rockchip,pins = <1 RK_PA7 RK_FUNC_GPIO &pcfg_pull_none>; @@ -681,6 +754,14 @@ &uart9 { status = "okay"; }; +&u2phy0 { + status = "okay"; +}; + +&u2phy0_otg { + status = "okay"; +}; + &u2phy2 { status = "okay"; }; @@ -707,6 +788,43 @@ &usb_host0_ohci { status = "okay"; }; +&usbdp_phy0 { + orientation-switch; + mode-switch; + sbu1-dc-gpios = <&gpio4 RK_PA0 GPIO_ACTIVE_HIGH>; + sbu2-dc-gpios = <&gpio4 RK_PA1 GPIO_ACTIVE_HIGH>; + status = "okay"; + + 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>; + }; + }; +}; + +&usb_host0_xhci { + usb-role-switch; + status = "okay"; + + port { + #address-cells = <1>; + #size-cells = <0>; + dwc3_0_role_switch: endpoint@0 { + reg = <0>; + remote-endpoint = <&usbc0_role_sw>; + }; + }; +}; + &usb_host1_ehci { status = "okay"; };