Message ID | 20240415170331.1587-1-honyuenkwun@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | arm64: dts: rockchip: rk3588s-orangepi-5: add USB-C support | expand |
On Mon, 15 Apr 2024 12:03:31 -0500, Jimmy Hon wrote: > Add support for using the Orange Pi 5 USB-C port for USB in OHCI, EHCI > or XHCI mode. Displayport AltMode is not yet supported. > > Signed-off-by: Jimmy Hon <honyuenkwun@gmail.com> > --- > .../boot/dts/rockchip/rk3588s-orangepi-5.dts | 106 ++++++++++++++++++ > 1 file changed, 106 insertions(+) > My bot found new DTB warnings on the .dts files added or changed in this series. Some warnings may be from an existing SoC .dtsi. Or perhaps the warnings are fixed by another series. Ultimately, it is up to the platform maintainer whether these warnings are acceptable or not. No need to reply unless the platform maintainer has comments. If you already ran DT checks and didn't see these error(s), then make sure dt-schema is up to date: pip3 install dtschema --upgrade New warnings running 'make CHECK_DTBS=y rockchip/rk3588s-orangepi-5.dtb' for 20240415170331.1587-1-honyuenkwun@gmail.com: arch/arm64/boot/dts/rockchip/rk3588s-orangepi-5.dtb: usb-typec@22: 'ports' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/usb/fcs,fusb302.yaml# arch/arm64/boot/dts/rockchip/rk3588s-orangepi-5.dtb: gpio-func: leds-gpio: {'rockchip,pins': [[0, 2, 0, 231]], 'phandle': [[239]]} is not of type 'array' from schema $id: http://devicetree.org/schemas/gpio/gpio-consumer.yaml#
Hi Jimmy, Am Montag, 15. April 2024, 19:03:31 CEST schrieb Jimmy Hon: > Add support for using the Orange Pi 5 USB-C port for USB in OHCI, EHCI > or XHCI mode. Displayport AltMode is not yet supported. > > Signed-off-by: Jimmy Hon <honyuenkwun@gmail.com> [...] > + usbc0: usb-typec@22 { > + compatible = "fcs,fusb302"; > + reg = <0x22>; > + interrupt-parent = <&gpio0>; > + interrupts = <RK_PD3 IRQ_TYPE_LEVEL_LOW>; > + pinctrl-names = "default"; > + 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>; > + }; > + }; > + }; as you already saw from the mail of Rob's bot, this does not belong here in the mainline kernel. > + usb_con: connector { > + compatible = "usb-c-connector"; > + label = "USB-C"; > + data-role = "dual"; > + op-sink-microwatt = <1000000>; > + power-role = "dual"; > + sink-pdos = > + <PDO_FIXED(5000, 1000, PDO_FIXED_USB_COMM)>; > + source-pdos = > + <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>; > + try-power-role = "source"; > + > + 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>; > + }; > + }; these ports also look like they do not follow the binding. The type-c-connector binding specifies the ports as - port@1: High Speed (HS) data bus to the connector - port@2: Siper Speed (SS) data bus to the connector - port@3: Sideband Use (SBU) - the alternate mode > + }; > + }; > + }; > + > hym8563: rtc@51 { > compatible = "haoyu,hym8563"; > reg = <0x51>; > @@ -625,6 +684,14 @@ &tsadc { > status = "okay"; > }; > > +&u2phy0 { > + status = "okay"; > +}; > + > +&u2phy0_otg { > + status = "okay"; > +}; > + > &u2phy2 { > status = "okay"; > }; > @@ -646,6 +713,29 @@ &uart2 { > status = "okay"; > }; > > +&usbdp_phy0 { > + mode-switch; > + orientation-switch; > + sbu1-dc-gpios = <&gpio4 RK_PA5 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@0 { > + reg = <0>; > + remote-endpoint = <&usbc0_orien_sw>; > + }; > + > + usbdp_phy0_dp_altmode_mux: endpoint@1 { > + reg = <1>; > + remote-endpoint = <&dp_altmode_mux>; > + }; > + }; > +}; > + > &usb_host0_ehci { > status = "okay"; > }; > @@ -654,6 +744,22 @@ &usb_host0_ohci { > status = "okay"; > }; > > +&usb_host0_xhci { > + dr_mode = "otg"; > + usb-role-switch; > + status = "okay"; > + > + port { > + #address-cells = <1>; > + #size-cells = <0>; > + > + dwc3_0_role_switch: endpoint@0 { > + reg = <0>; this only has one endpoint, so you should be able to live without the @0 and the reg and could also drop the #address-cells + #size-cells above? > + remote-endpoint = <&usbc0_role_sw>; > + }; > + }; > +}; > + > &usb_host1_ehci { > status = "okay"; > }; > Heiko
diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-orangepi-5.dts b/arch/arm64/boot/dts/rockchip/rk3588s-orangepi-5.dts index 25de4362af38..8d1a75844673 100644 --- a/arch/arm64/boot/dts/rockchip/rk3588s-orangepi-5.dts +++ b/arch/arm64/boot/dts/rockchip/rk3588s-orangepi-5.dts @@ -6,6 +6,7 @@ #include <dt-bindings/leds/common.h> #include <dt-bindings/input/input.h> #include <dt-bindings/pinctrl/rockchip.h> +#include <dt-bindings/usb/pd.h> #include "rk3588s.dtsi" / { @@ -212,6 +213,64 @@ &i2c6 { pinctrl-0 = <&i2c6m3_xfer>; status = "okay"; + usbc0: usb-typec@22 { + compatible = "fcs,fusb302"; + reg = <0x22>; + interrupt-parent = <&gpio0>; + interrupts = <RK_PD3 IRQ_TYPE_LEVEL_LOW>; + pinctrl-names = "default"; + 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"; + op-sink-microwatt = <1000000>; + power-role = "dual"; + sink-pdos = + <PDO_FIXED(5000, 1000, PDO_FIXED_USB_COMM)>; + source-pdos = + <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>; + try-power-role = "source"; + + 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>; + }; + }; + }; + }; + }; + hym8563: rtc@51 { compatible = "haoyu,hym8563"; reg = <0x51>; @@ -625,6 +684,14 @@ &tsadc { status = "okay"; }; +&u2phy0 { + status = "okay"; +}; + +&u2phy0_otg { + status = "okay"; +}; + &u2phy2 { status = "okay"; }; @@ -646,6 +713,29 @@ &uart2 { status = "okay"; }; +&usbdp_phy0 { + mode-switch; + orientation-switch; + sbu1-dc-gpios = <&gpio4 RK_PA5 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@0 { + reg = <0>; + remote-endpoint = <&usbc0_orien_sw>; + }; + + usbdp_phy0_dp_altmode_mux: endpoint@1 { + reg = <1>; + remote-endpoint = <&dp_altmode_mux>; + }; + }; +}; + &usb_host0_ehci { status = "okay"; }; @@ -654,6 +744,22 @@ &usb_host0_ohci { status = "okay"; }; +&usb_host0_xhci { + dr_mode = "otg"; + 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"; };
Add support for using the Orange Pi 5 USB-C port for USB in OHCI, EHCI or XHCI mode. Displayport AltMode is not yet supported. Signed-off-by: Jimmy Hon <honyuenkwun@gmail.com> --- .../boot/dts/rockchip/rk3588s-orangepi-5.dts | 106 ++++++++++++++++++ 1 file changed, 106 insertions(+)