375 lines
7.5 KiB
Diff
375 lines
7.5 KiB
Diff
|
From 2a4cf77c1b0c6cb311980fe7c28a9d82d08f96e8 Mon Sep 17 00:00:00 2001
|
||
|
From: Ondrej Jirman <megi@xff.cz>
|
||
|
Date: Sat, 1 Jul 2023 19:08:50 +0200
|
||
|
Subject: [PATCH 456/464] arm64: dts: rk3588-orange-pi-5-plus: Add remaining
|
||
|
features
|
||
|
|
||
|
USB, PCIe3x4, ...
|
||
|
|
||
|
Signed-off-by: Ondrej Jirman <megi@xff.cz>
|
||
|
---
|
||
|
.../dts/rockchip/rk3588-orangepi-5-plus.dts | 350 ++++++++++++++++++
|
||
|
1 file changed, 350 insertions(+)
|
||
|
|
||
|
diff --git a/arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-plus.dts b/arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-plus.dts
|
||
|
index 48caf4c38974..0c5cf2bf9f8f 100644
|
||
|
--- a/arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-plus.dts
|
||
|
+++ b/arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-plus.dts
|
||
|
@@ -784,3 +784,353 @@ &uart9 {
|
||
|
pinctrl-0 = <&uart9m0_xfer>;
|
||
|
status = "okay";
|
||
|
};
|
||
|
+
|
||
|
+/* PCIe 3.0 */
|
||
|
+
|
||
|
+&pcie30phy {
|
||
|
+ status = "okay";
|
||
|
+};
|
||
|
+
|
||
|
+&pcie3x4 {
|
||
|
+ reset-gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>;
|
||
|
+ vpcie3v3-supply = <&vcc3v3_pcie30>;
|
||
|
+ status = "okay";
|
||
|
+};
|
||
|
+
|
||
|
+/* USB 3.0 Type-C port */
|
||
|
+
|
||
|
+/ {
|
||
|
+
|
||
|
+ vbus5v0_typec: vbus5v0-typec {
|
||
|
+ compatible = "regulator-fixed";
|
||
|
+ regulator-name = "vbus5v0_typec";
|
||
|
+ regulator-min-microvolt = <5000000>;
|
||
|
+ regulator-max-microvolt = <5000000>;
|
||
|
+ enable-active-high;
|
||
|
+ gpio = <&gpio4 RK_PB0 GPIO_ACTIVE_HIGH>;
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&typec5v_pwren>;
|
||
|
+ vin-supply = <&vcc5v0_sys>;
|
||
|
+ };
|
||
|
+};
|
||
|
+
|
||
|
+&usbdp_phy0 {
|
||
|
+ orientation-switch;
|
||
|
+ mode-switch;
|
||
|
+ sbu1-dc-gpios = <&gpio4 RK_PA6 GPIO_ACTIVE_HIGH>;
|
||
|
+ sbu2-dc-gpios = <&gpio4 RK_PA7 GPIO_ACTIVE_HIGH>;
|
||
|
+ status = "okay";
|
||
|
+ svid = <0xff01>;
|
||
|
+
|
||
|
+ 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>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
+
|
||
|
+&usbdp_phy0_u3 {
|
||
|
+ status = "okay";
|
||
|
+};
|
||
|
+
|
||
|
+&usbdrd3_0 {
|
||
|
+ status = "okay";
|
||
|
+};
|
||
|
+
|
||
|
+&usbdrd_dwc3_0 {
|
||
|
+ dr_mode = "otg";
|
||
|
+ usb-role-switch;
|
||
|
+
|
||
|
+ port {
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <0>;
|
||
|
+ dwc3_0_role_switch: endpoint@0 {
|
||
|
+ reg = <0>;
|
||
|
+ remote-endpoint = <&usbc0_role_sw>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
+
|
||
|
+&u2phy0 {
|
||
|
+ status = "okay";
|
||
|
+};
|
||
|
+
|
||
|
+&u2phy0_otg {
|
||
|
+ status = "okay";
|
||
|
+};
|
||
|
+
|
||
|
+&i2c6 {
|
||
|
+ 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 = <&vbus5v0_typec>;
|
||
|
+
|
||
|
+ 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, 2000, PDO_FIXED_USB_COMM)>;
|
||
|
+ source-pdos = <PDO_FIXED(5000, 1500, PDO_FIXED_USB_COMM)>;
|
||
|
+
|
||
|
+ /*
|
||
|
+ altmodes {
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <0>;
|
||
|
+
|
||
|
+ altmode@0 {
|
||
|
+ reg = <0>;
|
||
|
+ svid = <0xff01>;
|
||
|
+ vdo = <0xffffffff>; // yeah, no, this is nonsense
|
||
|
+ };
|
||
|
+ };
|
||
|
+ */
|
||
|
+
|
||
|
+ 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>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
+
|
||
|
+/* USB 3.0 A ports */
|
||
|
+
|
||
|
+&usbdp_phy1 {
|
||
|
+ //XXX: there's no DP on this port, so maybe this is not needed?
|
||
|
+ //rockchip,dp-lane-mux = <2 3>;
|
||
|
+ status = "okay";
|
||
|
+};
|
||
|
+
|
||
|
+&usbdp_phy1_u3 {
|
||
|
+ status = "okay";
|
||
|
+};
|
||
|
+
|
||
|
+&usbdrd3_1 {
|
||
|
+ status = "okay";
|
||
|
+};
|
||
|
+
|
||
|
+&u2phy1 {
|
||
|
+ status = "okay";
|
||
|
+};
|
||
|
+
|
||
|
+&u2phy1_otg {
|
||
|
+ status = "okay";
|
||
|
+};
|
||
|
+
|
||
|
+/* USB2.0 A ports */
|
||
|
+
|
||
|
+/ {
|
||
|
+ vcc5v0_usb20: vcc5v0-usb20 {
|
||
|
+ compatible = "regulator-fixed";
|
||
|
+ regulator-name = "vcc5v0_usb20";
|
||
|
+ regulator-min-microvolt = <5000000>;
|
||
|
+ regulator-max-microvolt = <5000000>;
|
||
|
+ enable-active-high;
|
||
|
+ gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_HIGH>;
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&vcc5v0_usb20_en>;
|
||
|
+ vin-supply = <&vcc5v0_sys>;
|
||
|
+ };
|
||
|
+};
|
||
|
+
|
||
|
+&u2phy2 {
|
||
|
+ status = "okay";
|
||
|
+};
|
||
|
+
|
||
|
+&u2phy3 {
|
||
|
+ status = "okay";
|
||
|
+};
|
||
|
+
|
||
|
+&u2phy2_host {
|
||
|
+ phy-supply = <&vcc5v0_usb20>;
|
||
|
+ status = "okay";
|
||
|
+};
|
||
|
+
|
||
|
+&u2phy3_host {
|
||
|
+ phy-supply = <&vcc5v0_usb20>;
|
||
|
+ status = "okay";
|
||
|
+};
|
||
|
+
|
||
|
+&usb_host0_ehci {
|
||
|
+ status = "okay";
|
||
|
+};
|
||
|
+
|
||
|
+&usb_host0_ohci {
|
||
|
+ status = "okay";
|
||
|
+};
|
||
|
+
|
||
|
+&usb_host1_ehci {
|
||
|
+ status = "okay";
|
||
|
+};
|
||
|
+
|
||
|
+&usb_host1_ohci {
|
||
|
+ status = "okay";
|
||
|
+};
|
||
|
+
|
||
|
+&pinctrl {
|
||
|
+ usb {
|
||
|
+ vcc5v0_usb20_en: vcc5v0-usb20-en {
|
||
|
+ rockchip,pins = <3 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ usb-typec {
|
||
|
+ usbc0_int: usbc0-int {
|
||
|
+ rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_up>;
|
||
|
+ };
|
||
|
+
|
||
|
+ typec5v_pwren: typec5v-pwren {
|
||
|
+ rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
+
|
||
|
+/* unused */
|
||
|
+
|
||
|
+ /*
|
||
|
+ rk806_dvs1_slp: rk806_dvs1_slp {
|
||
|
+ pins = "gpio_pwrctrl1";
|
||
|
+ function = "pin_fun1";
|
||
|
+ };
|
||
|
+
|
||
|
+ rk806_dvs1_pwrdn: rk806_dvs1_pwrdn {
|
||
|
+ pins = "gpio_pwrctrl1";
|
||
|
+ function = "pin_fun2";
|
||
|
+ };
|
||
|
+
|
||
|
+ rk806_dvs1_rst: rk806_dvs1_rst {
|
||
|
+ pins = "gpio_pwrctrl1";
|
||
|
+ function = "pin_fun3";
|
||
|
+ };
|
||
|
+
|
||
|
+ rk806_dvs2_slp: rk806_dvs2_slp {
|
||
|
+ pins = "gpio_pwrctrl2";
|
||
|
+ function = "pin_fun1";
|
||
|
+ };
|
||
|
+
|
||
|
+ rk806_dvs2_pwrdn: rk806_dvs2_pwrdn {
|
||
|
+ pins = "gpio_pwrctrl2";
|
||
|
+ function = "pin_fun2";
|
||
|
+ };
|
||
|
+
|
||
|
+ rk806_dvs2_rst: rk806_dvs2_rst {
|
||
|
+ pins = "gpio_pwrctrl2";
|
||
|
+ function = "pin_fun3";
|
||
|
+ };
|
||
|
+
|
||
|
+ rk806_dvs2_dvs: rk806_dvs2_dvs {
|
||
|
+ pins = "gpio_pwrctrl2";
|
||
|
+ function = "pin_fun4";
|
||
|
+ };
|
||
|
+
|
||
|
+ rk806_dvs2_gpio: rk806_dvs2_gpio {
|
||
|
+ pins = "gpio_pwrctrl2";
|
||
|
+ function = "pin_fun5";
|
||
|
+ };
|
||
|
+
|
||
|
+ rk806_dvs3_slp: rk806_dvs3_slp {
|
||
|
+ pins = "gpio_pwrctrl3";
|
||
|
+ function = "pin_fun1";
|
||
|
+ };
|
||
|
+
|
||
|
+ rk806_dvs3_pwrdn: rk806_dvs3_pwrdn {
|
||
|
+ pins = "gpio_pwrctrl3";
|
||
|
+ function = "pin_fun2";
|
||
|
+ };
|
||
|
+
|
||
|
+ rk806_dvs3_rst: rk806_dvs3_rst {
|
||
|
+ pins = "gpio_pwrctrl3";
|
||
|
+ function = "pin_fun3";
|
||
|
+ };
|
||
|
+
|
||
|
+ rk806_dvs3_dvs: rk806_dvs3_dvs {
|
||
|
+ pins = "gpio_pwrctrl3";
|
||
|
+ function = "pin_fun4";
|
||
|
+ };
|
||
|
+
|
||
|
+ rk806_dvs3_gpio: rk806_dvs3_gpio {
|
||
|
+ pins = "gpio_pwrctrl3";
|
||
|
+ function = "pin_fun5";
|
||
|
+ };
|
||
|
+
|
||
|
+ avdd_0v75_s0: nldo-reg3 {
|
||
|
+ //regulator-min-microvolt = <837500>;
|
||
|
+ //regulator-max-microvolt = <837500>;
|
||
|
+
|
||
|
+ */
|
||
|
+
|
||
|
+ //XXX: there is no such regulator, SD voltage comes from BUCK8
|
||
|
+/*
|
||
|
+ vcc_3v3_sd_s0: vcc-3v3-sd-s0 {
|
||
|
+ compatible = "regulator-fixed";
|
||
|
+ regulator-name = "vcc_3v3_sd_s0";
|
||
|
+ regulator-min-microvolt = <3300000>;
|
||
|
+ regulator-max-microvolt = <3300000>;
|
||
|
+ gpios = <&gpio3 RK_PD5 GPIO_ACTIVE_LOW>; // unused, unconnected
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&sdmmc_pwr>;
|
||
|
+ };
|
||
|
+*/
|
||
|
+
|
||
|
+/*
|
||
|
+&pcie2x1l0 {
|
||
|
+ // 4 a1 wake / 4 a0 clkreq
|
||
|
+};
|
||
|
+
|
||
|
+&pcie2x1l1 {
|
||
|
+ // gpio4 a4 wake / gpio4 a3 clkreq
|
||
|
+};
|
||
|
+
|
||
|
+&pcie2x1l2 {
|
||
|
+ // gpio3 d0 wake / 3 c7 clkreq
|
||
|
+};
|
||
|
+
|
||
|
+&pcie3x4 {
|
||
|
+ // 4 b5 wake / 4 b4 clkreq
|
||
|
+};
|
||
|
+*/
|
||
|
+/*
|
||
|
+ sdmmc {
|
||
|
+ sdmmc_pwr: sdmmc_pwr {
|
||
|
+ rockchip,pins = <3 RK_PD5 RK_FUNC_GPIO &pcfg_pull_down>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+*/
|
||
|
+
|
||
|
--
|
||
|
2.34.1
|
||
|
|