armbian_build/patch/kernel/archive/rockchip64-6.16/add-board-helios64.patch
Werner fa9302f162
Some checks are pending
Forked Helper / 📢 Run repository dispatch on fork (push) Waiting to run
Announce PR merge to Discord / announcepush (push) Waiting to run
Scorecards Security Scan / Scorecards analysis (push) Waiting to run
rockchip64: bump edge to 6.16-rc3 (#8328)
* Fix wifi drivers on kernel v6.16

These patches can get deleted after merged upstream.

* initial commit

* fix header

* remove ssv6051 driver

---------

Co-authored-by: amazingfate <liujianfeng1994@gmail.com>
2025-06-24 15:25:34 +00:00

1021 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 | 716 ++++++++--
1 file changed, 635 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";
+ };
- led-0 {
- label = "helios64:green:status";
+ 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";
+ };
+
+ 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: regulator-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: regulator-usblan-power {
vin-supply = <&vcc5v0_usb>;
};
+ /* switched by pmic_sleep */
vcc1v8_sys_s0: regulator-vcc1v8-sys-s0 {
compatible = "regulator-fixed";
regulator-name = "vcc1v8_sys_s0";
@@ -144,6 +252,16 @@ vcc1v8_sys_s0: regulator-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>;
+ };
+
vcc3v0_sd: regulator-vcc3v0-sd {
compatible = "regulator-fixed";
enable-active-high;
@@ -209,6 +327,36 @@ vcc5v0_usb: regulator-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: regulator-vcc12v-dcin {
compatible = "regulator-fixed";
regulator-name = "vcc12v_dcin";
@@ -227,36 +375,60 @@ vcc12v_dcin_bkup: regulator-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 +447,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 +482,11 @@ &gmac {
status = "okay";
};
+&gpu {
+ mali-supply = <&vdd_gpu>;
+ status = "okay";
+};
+
&i2c0 {
clock-frequency = <400000>;
i2c-scl-rising-time-ns = <168>;
@@ -310,6 +502,7 @@ rk808: pmic@1b {
pinctrl-names = "default";
pinctrl-0 = <&pmic_int_l>;
system-power-controller;
+
vcc1-supply = <&vcc5v0_sys>;
vcc2-supply = <&vcc5v0_sys>;
vcc3-supply = <&vcc5v0_sys>;
@@ -326,6 +519,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 +539,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 +593,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 +655,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 +696,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 +803,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 +813,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>;
};
- sys_red_led_on: sys-red-led-on {
- rockchip,pins = <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>;
+ };
+
+ 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 +942,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 +962,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 +991,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 +1022,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 +1056,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