[PATCH] arm64: dts: rockchip: rk3588s-orangepi-5: add USB-C support
Heiko Stübner
heiko at sntech.de
Wed Apr 17 14:09:11 PDT 2024
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 at gmail.com>
[...]
> + usbc0: usb-typec at 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 at 0 {
> + reg = <0>;
> +
> + usbc0_role_sw: endpoint at 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 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>;
> + };
> + };
these ports also look like they do not follow the binding.
The type-c-connector binding specifies the ports as
- port at 1: High Speed (HS) data bus to the connector
- port at 2: Siper Speed (SS) data bus to the connector
- port at 3: Sideband Use (SBU) - the alternate mode
> + };
> + };
> + };
> +
> hym8563: rtc at 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 at 0 {
> + reg = <0>;
> + remote-endpoint = <&usbc0_orien_sw>;
> + };
> +
> + usbdp_phy0_dp_altmode_mux: endpoint at 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 at 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
More information about the Linux-rockchip
mailing list