Files
build/patch/kernel/archive/rockchip64-6.12/add-board-helios64.patch
2025-09-15 21:12:38 +02:00

1041 lines
22 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Aditya Prayoga <aditya@kobol.io>
Date: Tue, 15 Sep 2020 20:04:22 +0700
Subject: Add board Helios64
note: rpardini: this patch was rebased on top of 6.3.1, finally admitting
that it used to blindly overwrite the mainline dts (it was added when helios64
was not in the tree, and thus a "file addition"). the resulting patch
is the complete set of changes actually done.
Signed-off-by: Aditya Prayoga <aditya@kobol.io>
---
arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts | 736 +++++++++-
1 file changed, 655 insertions(+), 81 deletions(-)
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts b/arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts
index 111111111111..222222222222 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts
@@ -11,6 +11,10 @@
*/
/dts-v1/;
+#include <dt-bindings/input/linux-event-codes.h>
+#include <dt-bindings/pwm/pwm.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/usb/pd.h>
#include "rk3399.dtsi"
/ {
@@ -47,6 +51,25 @@ chosen {
stdout-path = "serial2:1500000n8";
};
+ adc-keys {
+ compatible = "adc-keys";
+ io-channels = <&saradc 1>;
+ io-channel-names = "buttons";
+ keyup-threshold-microvolt = <1800000>;
+ poll-interval = <100>;
+
+ user2-button {
+ label = "User Button 2";
+ linux,code = <BTN_1>;
+ press-threshold-microvolt = <100000>;
+ };
+ };
+
+ beeper: beeper {
+ compatible = "gpio-beeper";
+ gpios = <&gpio4 RK_PD3 GPIO_ACTIVE_HIGH>;
+ };
+
clkin_gmac: external-gmac-clock {
compatible = "fixed-clock";
clock-frequency = <125000000>;
@@ -54,35 +77,119 @@ clkin_gmac: external-gmac-clock {
#clock-cells = <0>;
};
- fan1 {
+ fan1: p7-fan {
/* fan connected to P7 */
compatible = "pwm-fan";
pwms = <&pwm0 0 40000 0>;
+ cooling-min-state = <0>;
+ cooling-max-state = <3>;
+ #cooling-cells = <2>;
cooling-levels = <0 80 170 255>;
};
- fan2 {
+ fan2: p6-fan {
/* fan connected to P6 */
compatible = "pwm-fan";
pwms = <&pwm1 0 40000 0>;
+ cooling-min-state = <0>;
+ cooling-max-state = <3>;
+ #cooling-cells = <2>;
cooling-levels = <0 80 170 255>;
};
- leds {
+ io_leds: io-gpio-leds {
+ status = "okay";
compatible = "gpio-leds";
pinctrl-names = "default";
- pinctrl-0 = <&sys_grn_led_on &sys_red_led_on>;
+ pinctrl-0 = <&network_act>, <&usb3_act>,
+ <&sata_act>, <&sata_err_led>;
+
+ network {
+ label = "helios64:blue:net";
+ gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "netdev";
+ default-state = "off";
+ };
+
+ sata {
+ label = "helios64:blue:hdd-status";
+ gpios = <&gpio4 RK_PD4 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "disk-activity";
+ default-state = "off";
+ };
+
+ sata_err1 {
+ label = "helios64:red:ata1-err";
+ gpios = <&gpio2 RK_PA2 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+
+ sata_err2 {
+ label = "helios64:red:ata2-err";
+ gpios = <&gpio2 RK_PA3 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+
+ sata_err3 {
+ label = "helios64:red:ata3-err";
+ gpios = <&gpio2 RK_PA4 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+
+ sata_err4 {
+ label = "helios64:red:ata4-err";
+ gpios = <&gpio2 RK_PA5 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
- led-0 {
- label = "helios64:green:status";
+ sata_err5 {
+ label = "helios64:red:ata5-err";
+ gpios = <&gpio2 RK_PA6 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+
+ usb3 {
+ label = "helios64:blue:usb3";
+ gpios = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
+ trigger-sources = <&int_hub_port1>,
+ <&int_hub_port2>,
+ <&int_hub_port3>;
+ linux,default-trigger = "usbport";
+ default-state = "off";
+ };
+ };
+
+ pwmleds {
+ compatible = "pwm-leds";
+ status = "okay";
+
+ power-led {
+ label = "helios64:blue:power-status";
+ pwms = <&pwm3 0 2000000000 0>;
+ max-brightness = <255>;
+ };
+ };
+
+ system_leds: system-gpio-leds {
+ status = "okay";
+ compatible = "gpio-leds";
+ pinctrl-names = "default";
+ pinctrl-0 = <&system_led>;
+
+ status-led {
+ label = "helios64::status";
gpios = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "none";
default-state = "on";
+ mode = <0x23>;
};
- led-1 {
+ fault-led {
label = "helios64:red:fault";
gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "panic";
default-state = "keep";
+ mode = <0x23>;
};
};
@@ -114,7 +221,7 @@ pcie_power: pcie-power {
compatible = "regulator-fixed";
enable-active-high;
gpio = <&gpio1 RK_PD0 GPIO_ACTIVE_HIGH>;
- pinctrl-0 = <&pcie_pwr>;
+ pinctrl-0 = <&pcie_pwr_en>;
pinctrl-names = "default";
regulator-boot-on;
regulator-name = "pcie_power";
@@ -134,6 +241,7 @@ usblan_power: usblan-power {
vin-supply = <&vcc5v0_usb>;
};
+ /* switched by pmic_sleep */
vcc1v8_sys_s0: vcc1v8-sys-s0 {
compatible = "regulator-fixed";
regulator-name = "vcc1v8_sys_s0";
@@ -144,6 +252,36 @@ vcc1v8_sys_s0: vcc1v8-sys-s0 {
vin-supply = <&vcc1v8_sys_s3>;
};
+ vcc0v9_s3: vcc0v9-s3 {
+ compatible = "regulator-fixed";
+ regulator-name = "vcc0v9_s3";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <900000>;
+ regulator-max-microvolt = <900000>;
+ vin-supply = <&vcc3v3_sys_s3>;
+ };
+
+ avdd_0v9_s0: avdd-0v9-s0 {
+ compatible = "regulator-fixed";
+ regulator-name = "avdd_0v9_s0";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <900000>;
+ regulator-max-microvolt = <900000>;
+ vin-supply = <&vcc1v8_sys_s3>;
+ };
+
+ avdd_1v8_s0: avdd-1v8-s0 {
+ compatible = "regulator-fixed";
+ regulator-name = "avdd_1v8_s0";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ vin-supply = <&vcc3v3_sys_s3>;
+ };
+
vcc3v0_sd: vcc3v0-sd {
compatible = "regulator-fixed";
enable-active-high;
@@ -209,6 +347,36 @@ vcc5v0_usb: vcc5v0-usb {
vin-supply = <&vcc5v0_perdev>;
};
+ vcc5v0_typec: vcc5v0-typec-regulator {
+ compatible = "regulator-fixed";
+ enable-active-high;
+ gpio = <&gpio1 RK_PA3 GPIO_ACTIVE_HIGH>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&fusb0_vbus_en>;
+ regulator-name = "vcc5v0_typec";
+ vin-supply = <&vcc5v0_usb>;
+ };
+
+ vcc5v0_hdd: vcc5v0-hdd {
+ compatible = "regulator-fixed";
+ regulator-name = "vcc5v0_hdd";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ vin-supply = <&vcc12v_dcin_bkup>;
+ };
+
+ vcc12v_hdd: vcc12v-hdd {
+ compatible = "regulator-fixed";
+ regulator-name = "vcc12v_hdd";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <12000000>;
+ regulator-max-microvolt = <12000000>;
+ vin-supply = <&vcc12v_dcin_bkup>;
+ };
+
vcc12v_dcin: vcc12v-dcin {
compatible = "regulator-fixed";
regulator-name = "vcc12v_dcin";
@@ -227,36 +395,60 @@ vcc12v_dcin_bkup: vcc12v-dcin-bkup {
regulator-max-microvolt = <12000000>;
vin-supply = <&vcc12v_dcin>;
};
-};
-/*
- * The system doesn't run stable with cpu freq enabled, so disallow the lower
- * frequencies until this problem is properly understood and resolved.
- */
-&cluster0_opp {
- /delete-node/ opp00;
- /delete-node/ opp01;
- /delete-node/ opp02;
- /delete-node/ opp03;
- /delete-node/ opp04;
-};
+ vdd_log: vdd-log {
+ compatible = "pwm-regulator";
+ pwms = <&pwm2 0 25000 1>;
+ pwm-supply = <&vcc5v0_sys>;
+ regulator-name = "vdd_log";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <830000>;
+ regulator-max-microvolt = <1400000>;
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ regulator-suspend-microvolt = <900000>;
+ };
+ };
-&cluster1_opp {
- /delete-node/ opp00;
- /delete-node/ opp01;
- /delete-node/ opp02;
- /delete-node/ opp03;
- /delete-node/ opp04;
- /delete-node/ opp05;
- /delete-node/ opp06;
-};
+ gpio-charger {
+ compatible = "gpio-charger";
+ charger-type = "mains";
+ gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>;
+ charge-status-gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&ac_present_ap>, <&charger_status>;
+ };
-&cpu_b0 {
- cpu-supply = <&vdd_cpu_b>;
-};
+ gpio-keys {
+ compatible = "gpio-keys";
+ autorepeat;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pwrbtn>, <&user1btn>, <&wake_on_lan>;
+
+ power {
+ debounce-interval = <100>;
+ gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
+ label = "Power";
+ linux,code = <KEY_POWER>;
+ wakeup-source;
+ };
-&cpu_b1 {
- cpu-supply = <&vdd_cpu_b>;
+ user1-button {
+ debounce-interval = <100>;
+ gpios = <&gpio0 RK_PA3 GPIO_ACTIVE_LOW>;
+ label = "User Button 1";
+ linux,code = <BTN_0>;
+ wakeup-source;
+ };
+ };
+
+ hdmi_dp_sound: hdmi-dp-sound {
+ status = "okay";
+ compatible = "rockchip,rk3399-hdmi-dp";
+ rockchip,cpu = <&i2s2>;
+ rockchip,codec = <&cdn_dp>;
+ };
};
&cpu_l0 {
@@ -275,7 +467,22 @@ &cpu_l3 {
cpu-supply = <&vdd_cpu_l>;
};
+&cpu_b0 {
+ cpu-supply = <&vdd_cpu_b>;
+};
+
+&cpu_b1 {
+ cpu-supply = <&vdd_cpu_b>;
+};
+
+&cdn_dp {
+ status = "okay";
+ extcon = <&fusb0>;
+ phys = <&tcphy0_dp>;
+};
+
&emmc_phy {
+ rockchip,enable-strobe-pulldown;
status = "okay";
};
@@ -295,6 +502,11 @@ &gmac {
status = "okay";
};
+&gpu {
+ mali-supply = <&vdd_gpu>;
+ status = "okay";
+};
+
&i2c0 {
clock-frequency = <400000>;
i2c-scl-rising-time-ns = <168>;
@@ -310,6 +522,7 @@ rk808: pmic@1b {
pinctrl-names = "default";
pinctrl-0 = <&pmic_int_l>;
rockchip,system-power-controller;
+
vcc1-supply = <&vcc5v0_sys>;
vcc2-supply = <&vcc5v0_sys>;
vcc3-supply = <&vcc5v0_sys>;
@@ -326,6 +539,19 @@ rk808: pmic@1b {
#clock-cells = <1>;
regulators {
+ vdd_center: DCDC_REG1 {
+ regulator-name = "vdd_center";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <800000>;
+ regulator-max-microvolt = <1000000>;
+ regulator-ramp-delay = <6001>;
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ regulator-suspend-microvolt = <950000>;
+ };
+ };
+
vdd_cpu_l: DCDC_REG2 {
regulator-name = "vdd_cpu_l";
regulator-always-on;
@@ -333,19 +559,48 @@ vdd_cpu_l: DCDC_REG2 {
regulator-min-microvolt = <750000>;
regulator-max-microvolt = <1350000>;
regulator-ramp-delay = <6001>;
-
regulator-state-mem {
regulator-off-in-suspend;
};
};
+ vcc_ddr_s3: DCDC_REG3 {
+ regulator-name = "vcc_ddr_s3";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ };
+ };
+
vcc1v8_sys_s3: DCDC_REG4 {
regulator-name = "vcc1v8_sys_s3";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ regulator-suspend-microvolt = <1800000>;
+ };
+ };
+
+ /* not used */
+ vcc1v8_dvp: LDO_REG1 {
+ regulator-name = "vcc1v8_dvp";
+ };
+ /* not used */
+ vcc3v0_touch: LDO_REG2 {
+ regulator-name = "vcc3v0_touch";
+ };
+
+ vcc1v8_s3: LDO_REG3 {
+ regulator-name = "vcc1v8_s3";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
regulator-state-mem {
regulator-on-in-suspend;
regulator-suspend-microvolt = <1800000>;
@@ -358,25 +613,61 @@ vcc_sdio_s0: LDO_REG4 {
regulator-boot-on;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3000000>;
-
regulator-state-mem {
regulator-on-in-suspend;
regulator-suspend-microvolt = <3000000>;
};
};
+ /* not used */
+ vcca3v0_codec: LDO_REG5 {
+ regulator-name = "vcca3v0_codec";
+ };
+
+ vcc1v5_s3: LDO_REG6 {
+ regulator-name = "vcc1v5_s3";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <1500000>;
+ regulator-max-microvolt = <1500000>;
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ regulator-suspend-microvolt = <1500000>;
+ };
+ };
+
+ /* not used */
+ vcca1v8_codec: LDO_REG7 {
+ regulator-name = "vcca1v8_codec";
+ };
+
vcc3v0_s3: LDO_REG8 {
regulator-name = "vcc3v0_s3";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
-
regulator-state-mem {
regulator-on-in-suspend;
regulator-suspend-microvolt = <3000000>;
};
};
+
+ vcc3v3_sys_s0: SWITCH_REG1 {
+ regulator-name = "vcc3v3_sys_s0";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ /* not used */
+ vcc3v3_s0: SWITCH_REG2 {
+ regulator-name = "vcc3v3_s0";
+ };
};
};
@@ -384,12 +675,33 @@ vdd_cpu_b: regulator@40 {
compatible = "silergy,syr827";
reg = <0x40>;
fcs,suspend-voltage-selector = <1>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&vsel1_gpio>;
regulator-name = "vdd_cpu_b";
+ regulator-min-microvolt = <712500>;
+ regulator-max-microvolt = <1500000>;
+ regulator-ramp-delay = <40000>;
regulator-always-on;
regulator-boot-on;
+ vin-supply = <&vcc5v0_sys>;
+
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vdd_gpu: regulator@41 {
+ compatible = "silergy,syr828";
+ reg = <0x41>;
+ fcs,suspend-voltage-selector = <1>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&vsel2_gpio>;
+ regulator-name = "vdd_gpu";
regulator-min-microvolt = <712500>;
regulator-max-microvolt = <1500000>;
regulator-ramp-delay = <1000>;
+ regulator-always-on;
+ regulator-boot-on;
vin-supply = <&vcc5v0_sys>;
regulator-state-mem {
@@ -404,17 +716,101 @@ &i2c2 {
i2c-scl-falling-time-ns = <30>;
status = "okay";
+ gpio-expander@20 {
+ compatible = "nxp,pca9555";
+ reg = <0x20>;
+ gpio-controller;
+ #gpio-cells = <2>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pca0_pins>;
+ interrupt-parent = <&gpio0>;
+ interrupts = <9 IRQ_TYPE_EDGE_FALLING>;
+ interrupt-controller;
+ #interrupt-cells = <2>;
+ vcc-supply = <&vcc3v3_sys_s3>;
+ };
+
temp@4c {
compatible = "national,lm75";
reg = <0x4c>;
};
};
+&i2c4 {
+ clock-frequency = <400000>;
+ i2c-scl-rising-time-ns = <160>;
+ i2c-scl-falling-time-ns = <30>;
+ status = "okay";
+
+ fusb0: typec-portc@22 {
+ compatible = "fcs,fusb302";
+ reg = <0x22>;
+ interrupt-parent = <&gpio1>;
+ interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&fusb0_int>;
+ vbus-supply = <&vcc5v0_typec>;
+
+ connector {
+ compatible = "usb-c-connector";
+ label = "USB-C";
+ power-role = "dual";
+ data-role = "dual";
+ try-power-role = "sink";
+ source-pdos = <PDO_FIXED(5000, 1200, PDO_FIXED_USB_COMM)>;
+ sink-pdos = <PDO_FIXED(5000, 500, PDO_FIXED_USB_COMM)>;
+ op-sink-microwatt = <5000000>;
+
+ extcon-cables = <1 2 5 6 9 10 12 44>;
+ typec-altmodes = <0xff01 1 0x001c0000 1>;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+ usb_con_hs: endpoint {
+ remote-endpoint = <&u2phy0_typec_hs>;
+ };
+ };
+ port@1 {
+ reg = <1>;
+ usb_con_ss: endpoint {
+ remote-endpoint = <&tcphy0_typec_ss>;
+ };
+ };
+ port@2 {
+ reg = <2>;
+ usb_con_sbu: endpoint {
+ remote-endpoint = <&tcphy0_typec_dp>;
+ };
+ };
+ };
+ };
+ };
+};
+
+/* I2C on UEXT */
+&i2c7 {
+ status = "okay";
+};
+
+/* External I2C */
+&i2c8 {
+ status = "okay";
+};
+
+&i2s2 {
+ #sound-dai-cells = <0>;
+ status = "okay";
+};
+
&io_domains {
- audio-supply = <&vcc1v8_sys_s0>;
bt656-supply = <&vcc1v8_sys_s0>;
- gpio1830-supply = <&vcc3v0_s3>;
+ audio-supply = <&vcc1v8_sys_s0>;
sdmmc-supply = <&vcc_sdio_s0>;
+ gpio1830-supply = <&vcc3v0_s3>;
status = "okay";
};
@@ -427,6 +823,7 @@ &pcie0 {
max-link-speed = <2>;
num-lanes = <2>;
pinctrl-names = "default";
+ pinctrl-0 = <&pcie_prst &pcie_clkreqn_cpm>;
status = "okay";
vpcie12v-supply = <&vcc12v_dcin>;
@@ -436,36 +833,116 @@ &pcie0 {
};
&pinctrl {
+ buttons {
+ pwrbtn: pwrbtn {
+ rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
+ };
+
+ user1btn: usr1btn {
+ rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
+
+ charger {
+ ac_present_ap: ac-present-ap {
+ rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+
+ charger_status: charger-status {
+ rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
+
+ fan {
+ fan1_sense: fan1-sense {
+ rockchip,pins = <4 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+
+ fan2_sense: fan2-sense {
+ rockchip,pins = <4 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
+
+ fusb30x {
+ fusb0_int: fusb0-int {
+ rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
+ };
+
+ fusb0_vbus_en: fusb0-vbus-en {
+ rockchip,pins = <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
+ };
+ };
+
gmac {
gphy_reset: gphy-reset {
- rockchip,pins = <3 RK_PB7 RK_FUNC_GPIO &pcfg_output_low>;
+ rockchip,pins =
+ <3 RK_PB7 RK_FUNC_GPIO &pcfg_output_low>;
};
};
leds {
- sys_grn_led_on: sys-grn-led-on {
- rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_down>;
+ network_act: network-act {
+ rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_down>;
+ };
+
+ usb3_act: usb3-act {
+ rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_down>;
+ };
+
+ sata_act: sata-act {
+ rockchip,pins = <4 RK_PD4 RK_FUNC_GPIO &pcfg_pull_down>;
+ };
+
+ system_led: sys-led {
+ rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_down>,
+ <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_down>;
+ };
+
+ sata_err_led: sata-err-led {
+ rockchip,pins = <2 RK_PA2 RK_FUNC_GPIO &pcfg_pull_down>,
+ <2 RK_PA3 RK_FUNC_GPIO &pcfg_pull_down>,
+ <2 RK_PA4 RK_FUNC_GPIO &pcfg_pull_down>,
+ <2 RK_PA5 RK_FUNC_GPIO &pcfg_pull_down>,
+ <2 RK_PA6 RK_FUNC_GPIO &pcfg_pull_down>;
+ };
+ };
+
+ misc {
+ pca0_pins: pca0-pins {
+ rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
};
- sys_red_led_on: sys-red-led-on {
- rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_down>;
+ wake_on_lan: wake-on-lan {
+ rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
pcie {
- pcie_pwr: pcie-pwr {
+ pcie_pwr_en: pcie-pwr-en {
rockchip,pins =
<1 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
};
+
+ pcie_prst: pcie-prst {
+ rockchip,pins = <2 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
};
pmic {
pmic_int_l: pmic-int-l {
- rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
+ rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>;
+ };
+
+ vsel1_gpio: vsel1-gpio {
+ rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>;
+ };
+
+ vsel2_gpio: vsel2-gpio {
+ rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
};
};
- power {
+ power {
hdd_a_power_en: hdd-a-power-en {
rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
};
@@ -485,7 +962,7 @@ usb_lan_en: usb-lan-en {
vcc3v0-sd {
sdmmc0_pwr_h: sdmmc0-pwr-h {
- rockchip,pins = <0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>;
+ rockchip,pins = <0 RK_PA1 RK_FUNC_GPIO &pcfg_output_high>;
};
};
};
@@ -505,10 +982,28 @@ &pwm1 {
status = "okay";
};
+&pwm2 {
+ status = "okay";
+};
+
+&pwm3 {
+ status = "okay";
+};
+
+&saradc {
+ vref-supply = <&vcc1v8_s3>;
+ status = "okay";
+};
+
&sdhci {
+ assigned-clock-rates = <150000000>;
bus-width = <8>;
mmc-hs200-1_8v;
+ mmc-hs400-1_8v;
+ mmc-hs400-enhanced-strobe;
+ supports-emmc;
non-removable;
+ disable-wp;
vqmmc-supply = <&vcc1v8_sys_s0>;
status = "okay";
};
@@ -516,8 +1011,9 @@ &sdhci {
&sdmmc {
bus-width = <4>;
cap-sd-highspeed;
- cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>;
+ cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>; // TODO: verify what needs to be done to use implicit CD definition
disable-wp;
+ sd-uhs-sdr104;
pinctrl-names = "default";
pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
vmmc-supply = <&vcc3v0_sd>;
@@ -546,6 +1042,27 @@ &spi5 {
status = "okay";
};
+&tcphy0 {
+ extcon = <&fusb0>;
+ status = "okay";
+};
+
+&tcphy0_dp {
+ port {
+ tcphy0_typec_dp: endpoint {
+ remote-endpoint = <&usb_con_sbu>;
+ };
+ };
+};
+
+&tcphy0_usb3 {
+ port {
+ tcphy0_typec_ss: endpoint {
+ remote-endpoint = <&usb_con_ss>;
+ };
+ };
+};
+
&tcphy1 {
/* phy for &usbdrd_dwc3_1 */
status = "okay";
@@ -559,61 +1076,118 @@ &tsadc {
status = "okay";
};
-&u2phy1 {
+&u2phy0 {
status = "okay";
- otg-port {
- /* phy for &usbdrd_dwc3_1 */
+ u2phy0_otg: otg-port {
+ status = "okay";
+ };
+
+ u2phy0_host: host-port {
phy-supply = <&vcc5v0_usb>;
status = "okay";
};
+
+ port {
+ u2phy0_typec_hs: endpoint {
+ remote-endpoint = <&usb_con_hs>;
+ };
+ };
+};
+
+&u2phy1 {
+ status = "okay";
+
+ u2phy1_otg: otg-port {
+ status = "okay";
+ };
+};
+
+&uart0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart0_xfer>;
+ status = "okay";
};
&uart2 {
status = "okay";
};
+&usb_host0_ehci {
+ status = "okay";
+};
+
+&usb_host0_ohci {
+ status = "okay";
+};
+
+&usbdrd3_0 {
+ status = "okay";
+};
+
+&usbdrd_dwc3_0 {
+ status = "okay";
+ dr_mode = "otg";
+};
+
&usbdrd3_1 {
status = "okay";
+};
- usb@fe900000 {
- dr_mode = "host";
- status = "okay";
+&usbdrd_dwc3_1 {
+ dr_mode = "host";
+ status = "okay";
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ int_hub: hub@1 {
+ compatible = "usb2109,0815";
+ reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
- hub@1 {
- compatible = "usb2109,0815";
+ int_hub_port1: port@1 {
reg = <1>;
- #address-cells = <1>;
- #size-cells = <0>;
-
- port@1 {
- reg = <1>;
- #trigger-source-cells = <0>;
- };
+ #trigger-source-cells = <0>;
+ };
- port@2 {
- reg = <2>;
- #trigger-source-cells = <0>;
- };
+ int_hub_port2: port@2 {
+ reg = <2>;
+ #trigger-source-cells = <0>;
+ };
- port@3 {
- reg = <3>;
- #trigger-source-cells = <0>;
- };
+ int_hub_port3: port@3 {
+ reg = <3>;
+ #trigger-source-cells = <0>;
+ };
- device@4 {
- compatible = "usbbda,8156";
- reg = <4>;
- #address-cells = <2>;
- #size-cells = <0>;
+ usb_lan: device@4 {
+ compatible = "usbbda,8156";
+ reg = <4>;
+ #address-cells = <2>;
+ #size-cells = <0>;
- interface@0 { /* interface 0 of configuration 1 */
- compatible = "usbifbda,8156.config1.0";
- reg = <0 1>;
- };
+ interface@0 { /* interface 0 of configuration 1 */
+ compatible = "usbifbda,8156.config1.0";
+ reg = <0 1>;
};
};
};
};
+
+&vopb {
+ status = "okay";
+};
+
+&vopb_mmu {
+ status = "okay";
+};
+
+&vopl {
+ status = "okay";
+};
+
+&vopl_mmu {
+ status = "okay";
+};
--
Armbian