* [PATCH 1/3] arm: dts: sync the Rockhip 3399 SoCs from Linux
@ 2021-07-22 15:20 Peter Robinson
2021-07-22 15:20 ` [PATCH 2/3] arm: dts: sync the Rockhip 3328 " Peter Robinson
` (3 more replies)
0 siblings, 4 replies; 7+ messages in thread
From: Peter Robinson @ 2021-07-22 15:20 UTC (permalink / raw)
To: David Bauer, Loic Devulder, Chen-Yu Tsai, Banglang Huang,
Matwey V. Kornilov, Philipp Tomsich, Klaus Goger, Heiko Stuebner,
Kever Yang, u-boot
Cc: Peter Robinson
Sync the rk3399 DTs and associated bits from 5.14-rc1.
Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
---
arch/arm/dts/rk3399-evb.dts | 4 +
arch/arm/dts/rk3399-ficus.dts | 29 +-
arch/arm/dts/rk3399-firefly.dts | 178 ++++++++++--
arch/arm/dts/rk3399-gru.dtsi | 14 +-
arch/arm/dts/rk3399-khadas-edge.dtsi | 40 ++-
arch/arm/dts/rk3399-leez-p710.dts | 14 +-
arch/arm/dts/rk3399-nanopc-t4.dts | 1 +
arch/arm/dts/rk3399-nanopi-r4s.dts | 135 +++++----
arch/arm/dts/rk3399-nanopi4.dtsi | 18 +-
arch/arm/dts/rk3399-opp.dtsi | 40 +--
arch/arm/dts/rk3399-orangepi.dts | 72 ++++-
arch/arm/dts/rk3399-pinebook-pro.dts | 120 +++++---
arch/arm/dts/rk3399-puma-haikou.dts | 10 +-
arch/arm/dts/rk3399-puma.dtsi | 61 +---
arch/arm/dts/rk3399-roc-pc-mezzanine.dts | 22 +-
arch/arm/dts/rk3399-roc-pc.dtsi | 59 +++-
arch/arm/dts/rk3399-rock-pi-4.dtsi | 29 +-
arch/arm/dts/rk3399-rock-pi-4a.dts | 2 +-
arch/arm/dts/rk3399-rock-pi-4b.dts | 6 +-
arch/arm/dts/rk3399-rock-pi-4c.dts | 6 +-
arch/arm/dts/rk3399-rock960.dts | 82 ++----
arch/arm/dts/rk3399-rock960.dtsi | 10 +-
arch/arm/dts/rk3399-rockpro64.dtsi | 95 ++++++-
arch/arm/dts/rk3399.dtsi | 269 +++++++++++-------
arch/arm/dts/rk3399pro-vmarc-som.dtsi | 22 +-
.../dts/rockchip-radxa-dalang-carrier.dtsi | 21 ++
26 files changed, 897 insertions(+), 462 deletions(-)
diff --git a/arch/arm/dts/rk3399-evb.dts b/arch/arm/dts/rk3399-evb.dts
index 694b0d08d6..7b717ebec8 100644
--- a/arch/arm/dts/rk3399-evb.dts
+++ b/arch/arm/dts/rk3399-evb.dts
@@ -11,6 +11,10 @@
model = "Rockchip RK3399 Evaluation Board";
compatible = "rockchip,rk3399-evb", "rockchip,rk3399";
+ aliases {
+ mmc0 = &sdhci;
+ };
+
backlight: backlight {
compatible = "pwm-backlight";
brightness-levels = <
diff --git a/arch/arm/dts/rk3399-ficus.dts b/arch/arm/dts/rk3399-ficus.dts
index ebe2ee77ba..1ce85a5816 100644
--- a/arch/arm/dts/rk3399-ficus.dts
+++ b/arch/arm/dts/rk3399-ficus.dts
@@ -27,42 +27,43 @@
leds {
compatible = "gpio-leds";
pinctrl-names = "default";
- pinctrl-0 = <&user_led1>, <&user_led2>, <&user_led3>,
- <&user_led4>, <&wlan_led>, <&bt_led>;
+ pinctrl-0 = <&user_led1_pin>, <&user_led2_pin>,
+ <&user_led3_pin>, <&user_led4_pin>,
+ <&wlan_led_pin>, <&bt_led_pin>;
- user_led1 {
+ user_led1: led-1 {
label = "red:user1";
gpios = <&gpio4 25 0>;
linux,default-trigger = "heartbeat";
};
- user_led2 {
+ user_led2: led-2 {
label = "red:user2";
gpios = <&gpio4 26 0>;
linux,default-trigger = "mmc0";
};
- user_led3 {
+ user_led3: led-3 {
label = "red:user3";
gpios = <&gpio4 30 0>;
linux,default-trigger = "mmc1";
};
- user_led4 {
+ user_led4: led-4 {
label = "red:user4";
gpios = <&gpio1 0 0>;
panic-indicator;
linux,default-trigger = "none";
};
- wlan_active_led {
+ wlan_active_led: led-5 {
label = "red:wlan";
gpios = <&gpio1 1 0>;
linux,default-trigger = "phy0tx";
default-state = "off";
};
- bt_active_led {
+ bt_active_led: led-6 {
label = "red:bt";
gpios = <&gpio1 4 0>;
linux,default-trigger = "hci0-power";
@@ -114,32 +115,32 @@
};
leds {
- user_led1: user_led1 {
+ user_led1_pin: user-led1-pin {
rockchip,pins =
<4 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>;
};
- user_led2: user_led2 {
+ user_led2_pin: user-led2-pin {
rockchip,pins =
<4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
};
- user_led3: user_led3 {
+ user_led3_pin: user-led3-pin {
rockchip,pins =
<4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>;
};
- user_led4: user_led4 {
+ user_led4_pin: user-led4-pin {
rockchip,pins =
<1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
};
- wlan_led: wlan_led {
+ wlan_led_pin: wlan-led-pin {
rockchip,pins =
<1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
};
- bt_led: bt_led {
+ bt_led_pin: bt-led-pin {
rockchip,pins =
<1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
};
diff --git a/arch/arm/dts/rk3399-firefly.dts b/arch/arm/dts/rk3399-firefly.dts
index d63faf38cc..c4dd2a6b48 100644
--- a/arch/arm/dts/rk3399-firefly.dts
+++ b/arch/arm/dts/rk3399-firefly.dts
@@ -6,6 +6,7 @@
/dts-v1/;
#include <dt-bindings/input/linux-event-codes.h>
#include <dt-bindings/pwm/pwm.h>
+#include <dt-bindings/usb/pd.h>
#include "rk3399.dtsi"
#include "rk3399-opp.dtsi"
@@ -13,6 +14,12 @@
model = "Firefly-RK3399 Board";
compatible = "firefly,firefly-rk3399", "rockchip,rk3399";
+ aliases {
+ mmc0 = &sdio0;
+ mmc1 = &sdmmc;
+ mmc2 = &sdhci;
+ };
+
chosen {
stdout-path = "serial2:1500000n8";
};
@@ -88,18 +95,25 @@
};
};
+ ir-receiver {
+ compatible = "gpio-ir-receiver";
+ gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_LOW>;
+ pinctrl-0 = <&ir_int>;
+ pinctrl-names = "default";
+ };
+
leds {
compatible = "gpio-leds";
pinctrl-names = "default";
- pinctrl-0 = <&work_led_gpio>, <&diy_led_gpio>;
+ pinctrl-0 = <&work_led_pin>, <&diy_led_pin>;
- work-led {
+ work_led: led-0 {
label = "work";
default-state = "on";
gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>;
};
- diy-led {
+ diy_led: led-1 {
label = "diy";
default-state = "off";
gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>;
@@ -145,6 +159,23 @@
reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>;
};
+ sound-dit {
+ compatible = "audio-graph-card";
+ label = "SPDIF";
+ dais = <&spdif_p0>;
+ };
+
+ spdif-dit {
+ compatible = "linux,spdif-dit";
+ #sound-dai-cells = <0>;
+
+ port {
+ dit_p0_0: endpoint {
+ remote-endpoint = <&spdif_p0_0>;
+ };
+ };
+ };
+
/* switched by pmic_sleep */
vcc1v8_s3: vcca1v8_s3: vcc1v8-s3 {
compatible = "regulator-fixed";
@@ -190,6 +221,17 @@
vin-supply = <&vcc_sys>;
};
+ vcc5v0_typec: vcc5v0-typec-regulator {
+ compatible = "regulator-fixed";
+ enable-active-high;
+ gpio = <&gpio1 RK_PA3 GPIO_ACTIVE_HIGH>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&vcc5v0_typec_en>;
+ regulator-name = "vcc5v0_typec";
+ regulator-always-on;
+ vin-supply = <&vcc_sys>;
+ };
+
vcc_sys: vcc-sys {
compatible = "regulator-fixed";
regulator-name = "vcc_sys";
@@ -515,6 +557,53 @@
i2c-scl-falling-time-ns = <20>;
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>;
+ status = "okay";
+
+ connector {
+ compatible = "usb-c-connector";
+ data-role = "host";
+ label = "USB-C";
+ op-sink-microwatt = <1000000>;
+ power-role = "dual";
+ sink-pdos =
+ <PDO_FIXED(5000, 2500, PDO_FIXED_USB_COMM)>;
+ source-pdos =
+ <PDO_FIXED(5000, 1400, PDO_FIXED_USB_COMM)>;
+ try-power-role = "sink";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ usbc_hs: endpoint {
+ remote-endpoint =
+ <&u2phy0_typec_hs>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ usbc_ss: endpoint {
+ remote-endpoint =
+ <&tcphy0_typec_ss>;
+ };
+ };
+ };
+ };
+ };
+
accelerometer@68 {
compatible = "invensense,mpu6500";
reg = <0x68>;
@@ -572,12 +661,34 @@
};
};
+ fusb302x {
+ fusb0_int: fusb0-int {
+ rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
+ };
+ };
+
+ ir {
+ ir_int: ir-int {
+ rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
+
lcd-panel {
lcd_panel_reset: lcd-panel-reset {
rockchip,pins = <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>;
};
};
+ leds {
+ work_led_pin: work-led-pin {
+ rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+
+ diy_led_pin: diy-led-pin {
+ rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
+
pcie {
pcie_pwr_en: pcie-pwr-en {
rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
@@ -589,18 +700,16 @@
};
pmic {
- vsel1_gpio: vsel1-gpio {
- rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>;
+ pmic_int_l: pmic-int-l {
+ rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
};
- vsel2_gpio: vsel2-gpio {
- rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
+ vsel1_pin: vsel1-pin {
+ rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>;
};
- };
- sdio-pwrseq {
- wifi_enable_h: wifi-enable-h {
- rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
+ vsel2_pin: vsel2-pin {
+ rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
};
};
@@ -610,9 +719,15 @@
};
};
- pmic {
- pmic_int_l: pmic-int-l {
- rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
+ sdio-pwrseq {
+ wifi_enable_h: wifi-enable-h {
+ rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
+
+ usb-typec {
+ vcc5v0_typec_en: vcc5v0_typec_en {
+ rockchip,pins = <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
};
};
@@ -627,16 +742,6 @@
rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
-
- leds {
- work_led_gpio: work_led-gpio {
- rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
- };
-
- diy_led_gpio: diy_led-gpio {
- rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
- };
- };
};
&pwm0 {
@@ -704,10 +809,29 @@
status = "okay";
};
+&spdif {
+ pinctrl-0 = <&spdif_bus_1>;
+ status = "okay";
+
+ spdif_p0: port {
+ spdif_p0_0: endpoint {
+ remote-endpoint = <&dit_p0_0>;
+ };
+ };
+};
+
&tcphy0 {
status = "okay";
};
+&tcphy0_usb3 {
+ port {
+ tcphy0_typec_ss: endpoint {
+ remote-endpoint = <&usbc_ss>;
+ };
+ };
+};
+
&tcphy1 {
status = "okay";
};
@@ -731,6 +855,12 @@
phy-supply = <&vcc5v0_host>;
status = "okay";
};
+
+ port {
+ u2phy0_typec_hs: endpoint {
+ remote-endpoint = <&usbc_hs>;
+ };
+ };
};
&u2phy1 {
diff --git a/arch/arm/dts/rk3399-gru.dtsi b/arch/arm/dts/rk3399-gru.dtsi
index f9c5bb607b..b80f19066b 100644
--- a/arch/arm/dts/rk3399-gru.dtsi
+++ b/arch/arm/dts/rk3399-gru.dtsi
@@ -10,6 +10,11 @@
#include "rk3399-op1-opp.dtsi"
/ {
+ aliases {
+ mmc0 = &sdmmc;
+ mmc1 = &sdhci;
+ };
+
chosen {
stdout-path = "serial2:115200n8";
};
@@ -247,8 +252,8 @@
enable-active-high;
enable-gpio = <&gpio2 2 GPIO_ACTIVE_HIGH>;
gpios = <&gpio2 28 GPIO_ACTIVE_HIGH>;
- states = <1800000 0x1
- 3000000 0x0>;
+ states = <1800000 0x1>,
+ <3000000 0x0>;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3000000>;
@@ -342,6 +347,7 @@
cpu-supply = <&ppvar_bigcpu>;
};
+
&cru {
assigned-clocks =
<&cru PLL_GPLL>, <&cru PLL_CPLL>,
@@ -515,7 +521,7 @@ ap_i2c_audio: &i2c8 {
* configured as SDMMC and not JTAG.
*/
pinctrl-names = "default";
- pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_cd_gpio
+ pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_cd_pin
&sdmmc_bus4>;
bus-width = <4>;
@@ -766,7 +772,7 @@ ap_i2c_audio: &i2c8 {
};
/* This is where we actually hook up CD; has external pull */
- sdmmc_cd_gpio: sdmmc-cd-gpio {
+ sdmmc_cd_pin: sdmmc-cd-pin {
rockchip,pins = <4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
diff --git a/arch/arm/dts/rk3399-khadas-edge.dtsi b/arch/arm/dts/rk3399-khadas-edge.dtsi
index e87a044774..d5c7648c84 100644
--- a/arch/arm/dts/rk3399-khadas-edge.dtsi
+++ b/arch/arm/dts/rk3399-khadas-edge.dtsi
@@ -11,6 +11,12 @@
#include "rk3399-opp.dtsi"
/ {
+ aliases {
+ mmc0 = &sdio0;
+ mmc1 = &sdmmc;
+ mmc2 = &sdhci;
+ };
+
chosen {
stdout-path = "serial2:1500000n8";
};
@@ -138,18 +144,26 @@
};
};
+ ir-receiver {
+ compatible = "gpio-ir-receiver";
+ gpios = <&gpio1 RK_PB6 GPIO_ACTIVE_LOW>;
+ linux,rc-map-name = "rc-khadas";
+ pinctrl-names = "default";
+ pinctrl-0 = <&ir_rx>;
+ };
+
leds {
compatible = "gpio-leds";
pinctrl-names = "default";
- pinctrl-0 = <&sys_led_gpio>, <&user_led_gpio>;
+ pinctrl-0 = <&sys_led_pin>, <&user_led_pin>;
- sys-led {
+ sys_led: led-0 {
label = "sys_led";
linux,default-trigger = "heartbeat";
gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
};
- user-led {
+ user_led: led-1 {
label = "user_led";
default-state = "off";
gpios = <&gpio4 RK_PD0 GPIO_ACTIVE_HIGH>;
@@ -585,12 +599,18 @@
};
};
+ ir {
+ ir_rx: ir-rx {
+ rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
+
leds {
- sys_led_gpio: sys_led-gpio {
+ sys_led_pin: sys-led-pin {
rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
};
- user_led_gpio: user_led-gpio {
+ user_led_pin: user-led-pin {
rockchip,pins = <4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
@@ -690,6 +710,16 @@
status = "okay";
};
+&spi1 {
+ status = "okay";
+
+ spiflash: flash@0 {
+ compatible = "winbond,w25q128fw", "jedec,spi-nor";
+ reg = <0>;
+ spi-max-frequency = <104000000>;
+ };
+};
+
&tcphy0 {
status = "okay";
};
diff --git a/arch/arm/dts/rk3399-leez-p710.dts b/arch/arm/dts/rk3399-leez-p710.dts
index 73be38a537..7c93f840bc 100644
--- a/arch/arm/dts/rk3399-leez-p710.dts
+++ b/arch/arm/dts/rk3399-leez-p710.dts
@@ -13,6 +13,12 @@
model = "Leez RK3399 P710";
compatible = "leez,p710", "rockchip,rk3399";
+ aliases {
+ mmc0 = &sdio0;
+ mmc1 = &sdmmc;
+ mmc2 = &sdhci;
+ };
+
chosen {
stdout-path = "serial2:1500000n8";
};
@@ -341,7 +347,7 @@
reg = <0x40>;
fcs,suspend-voltage-selector = <1>;
pinctrl-names = "default";
- pinctrl-0 = <&vsel1_gpio>;
+ pinctrl-0 = <&vsel1_pin>;
regulator-name = "vdd_cpu_b";
regulator-min-microvolt = <712500>;
regulator-max-microvolt = <1500000>;
@@ -360,7 +366,7 @@
reg = <0x41>;
fcs,suspend-voltage-selector = <1>;
pinctrl-names = "default";
- pinctrl-0 = <&vsel2_gpio>;
+ pinctrl-0 = <&vsel2_pin>;
regulator-name = "vdd_gpu";
regulator-min-microvolt = <712500>;
regulator-max-microvolt = <1500000>;
@@ -447,11 +453,11 @@
rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
};
- vsel1_gpio: vsel1-gpio {
+ vsel1_pin: vsel1-pin {
rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>;
};
- vsel2_gpio: vsel2-gpio {
+ vsel2_pin: vsel2-pin {
rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
};
};
diff --git a/arch/arm/dts/rk3399-nanopc-t4.dts b/arch/arm/dts/rk3399-nanopc-t4.dts
index e0d75617bb..452728b82e 100644
--- a/arch/arm/dts/rk3399-nanopc-t4.dts
+++ b/arch/arm/dts/rk3399-nanopc-t4.dts
@@ -95,6 +95,7 @@
};
&pcie0 {
+ ep-gpios = <&gpio2 RK_PA4 GPIO_ACTIVE_HIGH>;
num-lanes = <4>;
vpcie3v3-supply = <&vcc3v3_sys>;
};
diff --git a/arch/arm/dts/rk3399-nanopi-r4s.dts b/arch/arm/dts/rk3399-nanopi-r4s.dts
index 6f2cf17bf1..cef4d18b59 100644
--- a/arch/arm/dts/rk3399-nanopi-r4s.dts
+++ b/arch/arm/dts/rk3399-nanopi-r4s.dts
@@ -1,13 +1,15 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
- * Copyright (c) 2016 Fuzhou Rockchip Electronics Co., Ltd
+ * FriendlyElec NanoPC-T4 board device tree source
*
- * Copyright (c) 2018 FriendlyElec Computer Tech. Co., Ltd.
+ * Copyright (c) 2020 FriendlyElec Computer Tech. Co., Ltd.
* (http://www.friendlyarm.com)
*
* Copyright (c) 2018 Collabora Ltd.
- * Copyright (c) 2019 Arm Ltd.
- * Copyright (C) 2020 Xiaobo <peterwillcn@gmail.com>
+ *
+ * Copyright (c) 2020 Jensen Huang <jensenhuang@friendlyarm.com>
+ * Copyright (c) 2020 Marty Jones <mj8263788@gmail.com>
+ * Copyright (c) 2021 Tianling Shen <cnsztl@gmail.com>
*/
/dts-v1/;
@@ -17,94 +19,87 @@
model = "FriendlyElec NanoPi R4S";
compatible = "friendlyarm,nanopi-r4s", "rockchip,rk3399";
- aliases {
- ethernet1 = &r8169;
- };
+ /delete-node/ display-subsystem;
- vdd_5v: vdd-5v {
- compatible = "regulator-fixed";
- regulator-name = "vdd_5v";
- regulator-always-on;
- regulator-boot-on;
- };
+ gpio-leds {
+ pinctrl-0 = <&lan_led_pin>, <&sys_led_pin>, <&wan_led_pin>;
- fan: pwm-fan {
- compatible = "pwm-fan";
- cooling-levels = <0 12 18 255>;
- #cooling-cells = <2>;
- fan-supply = <&vdd_5v>;
- pwms = <&pwm1 0 50000 0>;
- };
-};
+ /delete-node/ led-0;
-&cpu_thermal {
- trips {
- cpu_warm: cpu_warm {
- temperature = <55000>;
- hysteresis = <2000>;
- type = "active";
+ lan_led: led-lan {
+ gpios = <&gpio1 RK_PA1 GPIO_ACTIVE_HIGH>;
+ label = "green:lan";
};
- cpu_hot: cpu_hot {
- temperature = <65000>;
- hysteresis = <2000>;
- type = "active";
+ sys_led: led-sys {
+ gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>;
+ label = "red:power";
+ default-state = "on";
};
- };
- cooling-maps {
- map2 {
- trip = <&cpu_warm>;
- cooling-device = <&fan THERMAL_NO_LIMIT 1>;
+ wan_led: led-wan {
+ gpios = <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>;
+ label = "green:wan";
};
+ };
+
+ gpio-keys {
+ pinctrl-0 = <&reset_button_pin>;
+
+ /delete-node/ power;
- map3 {
- trip = <&cpu_hot>;
- cooling-device = <&fan 2 THERMAL_NO_LIMIT>;
+ reset {
+ debounce-interval = <50>;
+ gpios = <&gpio1 RK_PC6 GPIO_ACTIVE_LOW>;
+ label = "reset";
+ linux,code = <KEY_RESTART>;
};
};
+
+ vdd_5v: vdd-5v {
+ compatible = "regulator-fixed";
+ regulator-name = "vdd_5v";
+ regulator-always-on;
+ regulator-boot-on;
+ };
};
&emmc_phy {
status = "disabled";
};
-&fusb0 {
+&i2c4 {
status = "disabled";
};
-&leds {
- lan_led: led-1 {
- gpios = <&gpio1 RK_PA1 GPIO_ACTIVE_HIGH>;
- label = "nanopi-r4s:green:lan";
- };
-
- wan_led: led-2 {
- gpios = <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>;
- label = "nanopi-r4s:green:wan";
- };
-};
-
-&leds_gpio {
- rockchip,pins =
- <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>,
- <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>,
- <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
-};
-
&pcie0 {
max-link-speed = <1>;
num-lanes = <1>;
vpcie3v3-supply = <&vcc3v3_sys>;
+};
- pcie@0 {
- reg = <0x00000000 0 0 0 0>;
- #address-cells = <3>;
- #size-cells = <2>;
+&pinctrl {
+ gpio-leds {
+ /delete-node/ status-led-pin;
- r8169: pcie@0,0 {
- reg = <0x000000 0 0 0 0>;
- local-mac-address = [ 00 00 00 00 00 00 ];
+ lan_led_pin: lan-led-pin {
+ rockchip,pins = <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+
+ sys_led_pin: sys-led-pin {
+ rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+
+ wan_led_pin: wan-led-pin {
+ rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
+
+ rockchip-key {
+ /delete-node/ power-key;
+
+ reset_button_pin: reset-button-pin {
+ rockchip,pins = <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_up>;
};
};
};
@@ -117,10 +112,6 @@
status = "disabled";
};
-&sdmmc {
- host-index-min = <1>;
-};
-
&u2phy0_host {
phy-supply = <&vdd_5v>;
};
@@ -129,6 +120,10 @@
status = "disabled";
};
+&uart0 {
+ status = "disabled";
+};
+
&usbdrd_dwc3_0 {
dr_mode = "host";
};
diff --git a/arch/arm/dts/rk3399-nanopi4.dtsi b/arch/arm/dts/rk3399-nanopi4.dtsi
index c88018a0ef..8c0ff6c96e 100644
--- a/arch/arm/dts/rk3399-nanopi4.dtsi
+++ b/arch/arm/dts/rk3399-nanopi4.dtsi
@@ -17,6 +17,12 @@
#include "rk3399-opp.dtsi"
/ {
+ aliases {
+ mmc0 = &sdio0;
+ mmc1 = &sdmmc;
+ mmc2 = &sdhci;
+ };
+
chosen {
stdout-path = "serial2:1500000n8";
};
@@ -117,9 +123,9 @@
leds: gpio-leds {
compatible = "gpio-leds";
pinctrl-names = "default";
- pinctrl-0 = <&leds_gpio>;
+ pinctrl-0 = <&status_led_pin>;
- status {
+ status_led: led-0 {
gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>;
label = "status_led";
linux,default-trigger = "heartbeat";
@@ -182,7 +188,7 @@
#address-cells = <1>;
#size-cells = <0>;
- rtl8211e: phy@1 {
+ rtl8211e: ethernet-phy@1 {
reg = <1>;
interrupt-parent = <&gpio3>;
interrupts = <RK_PB2 IRQ_TYPE_LEVEL_LOW>;
@@ -504,8 +510,6 @@
};
&pcie0 {
- ep-gpios = <&gpio2 RK_PA4 GPIO_ACTIVE_HIGH>;
- max-link-speed = <2>;
num-lanes = <2>;
vpcie0v9-supply = <&vcca0v9_s3>;
vpcie1v8-supply = <&vcca1v8_s3>;
@@ -520,12 +524,12 @@
};
gpio-leds {
- leds_gpio: leds-gpio {
+ status_led_pin: status-led-pin {
rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
- phy {
+ gmac {
phy_intb: phy-intb {
rockchip,pins = <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>;
};
diff --git a/arch/arm/dts/rk3399-opp.dtsi b/arch/arm/dts/rk3399-opp.dtsi
index d6f1095abb..da41cd81eb 100644
--- a/arch/arm/dts/rk3399-opp.dtsi
+++ b/arch/arm/dts/rk3399-opp.dtsi
@@ -10,28 +10,28 @@
opp00 {
opp-hz = /bits/ 64 <408000000>;
- opp-microvolt = <800000>;
+ opp-microvolt = <825000 825000 1250000>;
clock-latency-ns = <40000>;
};
opp01 {
opp-hz = /bits/ 64 <600000000>;
- opp-microvolt = <800000>;
+ opp-microvolt = <825000 825000 1250000>;
};
opp02 {
opp-hz = /bits/ 64 <816000000>;
- opp-microvolt = <850000>;
+ opp-microvolt = <850000 850000 1250000>;
};
opp03 {
opp-hz = /bits/ 64 <1008000000>;
- opp-microvolt = <925000>;
+ opp-microvolt = <925000 925000 1250000>;
};
opp04 {
opp-hz = /bits/ 64 <1200000000>;
- opp-microvolt = <1000000>;
+ opp-microvolt = <1000000 1000000 1250000>;
};
opp05 {
opp-hz = /bits/ 64 <1416000000>;
- opp-microvolt = <1125000>;
+ opp-microvolt = <1125000 1125000 1250000>;
};
};
@@ -41,36 +41,36 @@
opp00 {
opp-hz = /bits/ 64 <408000000>;
- opp-microvolt = <800000>;
+ opp-microvolt = <825000 825000 1250000>;
clock-latency-ns = <40000>;
};
opp01 {
opp-hz = /bits/ 64 <600000000>;
- opp-microvolt = <800000>;
+ opp-microvolt = <825000 825000 1250000>;
};
opp02 {
opp-hz = /bits/ 64 <816000000>;
- opp-microvolt = <825000>;
+ opp-microvolt = <825000 825000 1250000>;
};
opp03 {
opp-hz = /bits/ 64 <1008000000>;
- opp-microvolt = <875000>;
+ opp-microvolt = <875000 875000 1250000>;
};
opp04 {
opp-hz = /bits/ 64 <1200000000>;
- opp-microvolt = <950000>;
+ opp-microvolt = <950000 950000 1250000>;
};
opp05 {
opp-hz = /bits/ 64 <1416000000>;
- opp-microvolt = <1025000>;
+ opp-microvolt = <1025000 1025000 1250000>;
};
opp06 {
opp-hz = /bits/ 64 <1608000000>;
- opp-microvolt = <1100000>;
+ opp-microvolt = <1100000 1100000 1250000>;
};
opp07 {
opp-hz = /bits/ 64 <1800000000>;
- opp-microvolt = <1200000>;
+ opp-microvolt = <1200000 1200000 1250000>;
};
};
@@ -79,27 +79,27 @@
opp00 {
opp-hz = /bits/ 64 <200000000>;
- opp-microvolt = <800000>;
+ opp-microvolt = <825000 825000 1150000>;
};
opp01 {
opp-hz = /bits/ 64 <297000000>;
- opp-microvolt = <800000>;
+ opp-microvolt = <825000 825000 1150000>;
};
opp02 {
opp-hz = /bits/ 64 <400000000>;
- opp-microvolt = <825000>;
+ opp-microvolt = <825000 825000 1150000>;
};
opp03 {
opp-hz = /bits/ 64 <500000000>;
- opp-microvolt = <875000>;
+ opp-microvolt = <875000 875000 1150000>;
};
opp04 {
opp-hz = /bits/ 64 <600000000>;
- opp-microvolt = <925000>;
+ opp-microvolt = <925000 925000 1150000>;
};
opp05 {
opp-hz = /bits/ 64 <800000000>;
- opp-microvolt = <1100000>;
+ opp-microvolt = <1100000 1100000 1150000>;
};
};
};
diff --git a/arch/arm/dts/rk3399-orangepi.dts b/arch/arm/dts/rk3399-orangepi.dts
index f9f7246d4d..04b54abea3 100644
--- a/arch/arm/dts/rk3399-orangepi.dts
+++ b/arch/arm/dts/rk3399-orangepi.dts
@@ -7,6 +7,7 @@
#include "dt-bindings/pwm/pwm.h"
#include "dt-bindings/input/input.h"
+#include "dt-bindings/usb/pd.h"
#include "rk3399.dtsi"
#include "rk3399-opp.dtsi"
@@ -14,6 +15,12 @@
model = "Orange Pi RK3399 Board";
compatible = "rockchip,rk3399-orangepi", "rockchip,rk3399";
+ aliases {
+ mmc0 = &sdio0;
+ mmc1 = &sdmmc;
+ mmc2 = &sdhci;
+ };
+
chosen {
stdout-path = "serial2:1500000n8";
};
@@ -214,7 +221,7 @@
#address-cells = <1>;
#size-cells = <0>;
- rtl8211e: phy@1 {
+ rtl8211e: ethernet-phy@1 {
reg = <1>;
interrupt-parent = <&gpio3>;
interrupts = <RK_PB2 IRQ_TYPE_LEVEL_LOW>;
@@ -531,6 +538,43 @@
pinctrl-names = "default";
pinctrl-0 = <&chg_cc_int_l>;
vbus-supply = <&vbus_typec>;
+
+ typec_con: connector {
+ compatible = "usb-c-connector";
+ data-role = "host";
+ label = "USB-C";
+ op-sink-microwatt = <1000000>;
+ power-role = "dual";
+ sink-pdos =
+ <PDO_FIXED(5000, 2500, PDO_FIXED_USB_COMM)>;
+ source-pdos =
+ <PDO_FIXED(5000, 1400, PDO_FIXED_USB_COMM)>;
+ try-power-role = "sink";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+ typec_hs: endpoint {
+ remote-endpoint = <&u2phy0_typec_hs>;
+ };
+ };
+ port@1 {
+ reg = <1>;
+ typec_ss: endpoint {
+ remote-endpoint = <&tcphy0_typec_ss>;
+ };
+ };
+ port@2 {
+ reg = <2>;
+ typec_dp: endpoint {
+ remote-endpoint = <&tcphy0_typec_dp>;
+ };
+ };
+ };
+ };
};
};
@@ -554,7 +598,7 @@
};
};
- phy {
+ gmac {
phy_intb: phy-intb {
rockchip,pins = <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>;
};
@@ -717,6 +761,22 @@
status = "okay";
};
+&tcphy0_dp {
+ port {
+ tcphy0_typec_dp: endpoint {
+ remote-endpoint = <&typec_dp>;
+ };
+ };
+};
+
+&tcphy0_usb3 {
+ port {
+ tcphy0_typec_ss: endpoint {
+ remote-endpoint = <&typec_ss>;
+ };
+ };
+};
+
&tcphy1 {
status = "okay";
};
@@ -739,6 +799,12 @@
phy-supply = <&vcc5v0_host>;
status = "okay";
};
+
+ port {
+ u2phy0_typec_hs: endpoint {
+ remote-endpoint = <&typec_hs>;
+ };
+ };
};
&u2phy1 {
@@ -799,7 +865,7 @@
&usbdrd_dwc3_0 {
status = "okay";
- dr_mode = "otg";
+ dr_mode = "host";
};
&usbdrd3_1 {
diff --git a/arch/arm/dts/rk3399-pinebook-pro.dts b/arch/arm/dts/rk3399-pinebook-pro.dts
index 294d21bf45..2b5f001ff4 100644
--- a/arch/arm/dts/rk3399-pinebook-pro.dts
+++ b/arch/arm/dts/rk3399-pinebook-pro.dts
@@ -18,6 +18,12 @@
model = "Pine64 Pinebook Pro";
compatible = "pine64,pinebook-pro", "rockchip,rk3399";
+ aliases {
+ mmc0 = &sdio0;
+ mmc1 = &sdmmc;
+ mmc2 = &sdhci;
+ };
+
chosen {
stdout-path = "serial2:1500000n8";
};
@@ -28,12 +34,19 @@
pwms = <&pwm0 0 740740 0>;
};
+ bat: battery {
+ compatible = "simple-battery";
+ charge-full-design-microamp-hours = <9800000>;
+ voltage-max-design-microvolt = <4350000>;
+ voltage-min-design-microvolt = <3000000>;
+ };
+
edp_panel: edp-panel {
compatible = "boe,nv140fhmn49";
backlight = <&backlight>;
enable-gpios = <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
- pinctrl-0 = <&panel_en_gpio>;
+ pinctrl-0 = <&panel_en_pin>;
power-supply = <&vcc3v3_panel>;
ports {
@@ -60,7 +73,7 @@
gpio-key-lid {
compatible = "gpio-keys";
pinctrl-names = "default";
- pinctrl-0 = <&lidbtn_gpio>;
+ pinctrl-0 = <&lidbtn_pin>;
lid {
debounce-interval = <20>;
@@ -76,7 +89,7 @@
gpio-key-power {
compatible = "gpio-keys";
pinctrl-names = "default";
- pinctrl-0 = <&pwrbtn_gpio>;
+ pinctrl-0 = <&pwrbtn_pin>;
power {
debounce-interval = <20>;
@@ -90,9 +103,9 @@
leds {
compatible = "gpio-leds";
pinctrl-names = "default";
- pinctrl-0 = <&pwrled_gpio &slpled_gpio>;
+ pinctrl-0 = <&pwr_led_pin &slp_led_pin>;
- green-led {
+ green_led: led-0 {
color = <LED_COLOR_ID_GREEN>;
default-state = "on";
function = LED_FUNCTION_POWER;
@@ -100,7 +113,7 @@
label = "green:power";
};
- red-led {
+ red_led: led-1 {
color = <LED_COLOR_ID_RED>;
default-state = "off";
function = LED_FUNCTION_STANDBY;
@@ -117,7 +130,7 @@
clocks = <&rk808 1>;
clock-names = "ext_clock";
pinctrl-names = "default";
- pinctrl-0 = <&wifi_enable_h_gpio>;
+ pinctrl-0 = <&wifi_enable_h_pin>;
post-power-on-delay-ms = <100>;
power-off-delay-us = <500000>;
@@ -129,7 +142,7 @@
es8316-sound {
compatible = "simple-audio-card";
pinctrl-names = "default";
- pinctrl-0 = <&hp_det_gpio>;
+ pinctrl-0 = <&hp_det_pin>;
simple-audio-card,name = "rockchip,es8316-codec";
simple-audio-card,format = "i2s";
simple-audio-card,mclk-fs = <256>;
@@ -213,7 +226,7 @@
enable-active-high;
gpio = <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
- pinctrl-0 = <&pwr_5v_gpio>;
+ pinctrl-0 = <&pwr_5v_pin>;
regulator-name = "vcc5v0_usb";
regulator-always-on;
regulator-min-microvolt = <5000000>;
@@ -270,7 +283,7 @@
enable-active-high;
gpio = <&gpio0 RK_PA1 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
- pinctrl-0 = <&sdmmc0_pwr_h_gpio>;
+ pinctrl-0 = <&sdmmc0_pwr_h_pin>;
regulator-name = "vcc3v0_sd";
regulator-always-on;
regulator-min-microvolt = <3000000>;
@@ -288,7 +301,7 @@
enable-active-high;
gpio = <&gpio1 RK_PC6 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
- pinctrl-0 = <&lcdvcc_en_gpio>;
+ pinctrl-0 = <&lcdvcc_en_pin>;
regulator-name = "vcc3v3_panel";
regulator-always-on;
regulator-min-microvolt = <3300000>;
@@ -317,7 +330,7 @@
enable-active-high;
gpio = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
- pinctrl-0 = <&vcc5v0_host_en_gpio>;
+ pinctrl-0 = <&vcc5v0_host_en_pin>;
regulator-name = "vcc5v0_otg";
regulator-always-on;
regulator-min-microvolt = <5000000>;
@@ -336,7 +349,7 @@
enable-active-high;
gpio = <&gpio1 RK_PA3 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
- pinctrl-0 = <&vcc5v0_typec0_en_gpio>;
+ pinctrl-0 = <&vcc5v0_typec0_en_pin>;
regulator-name = "vbus_5vout";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
@@ -368,7 +381,7 @@
/* Also triggered by USB charger */
pinctrl-names = "default";
- pinctrl-0 = <&dc_det_gpio>;
+ pinctrl-0 = <&dc_det_pin>;
};
};
@@ -447,7 +460,7 @@
interrupt-parent = <&gpio3>;
interrupts = <10 IRQ_TYPE_LEVEL_LOW>;
pinctrl-names = "default";
- pinctrl-0 = <&pmic_int_l_gpio>;
+ pinctrl-0 = <&pmic_int_l_pin>;
rockchip,system-power-controller;
wakeup-source;
@@ -627,7 +640,7 @@
reg = <0x40>;
fcs,suspend-voltage-selector = <1>;
pinctrl-names = "default";
- pinctrl-0 = <&vsel1_gpio>;
+ pinctrl-0 = <&vsel1_pin>;
regulator-name = "vdd_cpu_b";
regulator-always-on;
regulator-boot-on;
@@ -646,7 +659,7 @@
reg = <0x41>;
fcs,suspend-voltage-selector = <1>;
pinctrl-names = "default";
- pinctrl-0 = <&vsel2_gpio>;
+ pinctrl-0 = <&vsel2_pin>;
regulator-name = "vdd_gpu";
regulator-always-on;
regulator-boot-on;
@@ -690,9 +703,10 @@
fusb0: fusb30x@22 {
compatible = "fcs,fusb302";
reg = <0x22>;
- fcs,int_n = <&gpio1 RK_PA2 GPIO_ACTIVE_HIGH>;
+ interrupt-parent = <&gpio1>;
+ interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>;
pinctrl-names = "default";
- pinctrl-0 = <&fusb0_int_gpio>;
+ pinctrl-0 = <&fusb0_int_pin>;
vbus-supply = <&vbus_typec>;
connector {
@@ -740,12 +754,29 @@
};
};
};
+
+ cw2015@62 {
+ compatible = "cellwise,cw2015";
+ reg = <0x62>;
+ cellwise,battery-profile = /bits/ 8 <
+ 0x17 0x67 0x80 0x73 0x6E 0x6C 0x6B 0x63
+ 0x77 0x51 0x5C 0x58 0x50 0x4C 0x48 0x36
+ 0x15 0x0C 0x0C 0x19 0x5B 0x7D 0x6F 0x69
+ 0x69 0x5B 0x0C 0x29 0x20 0x40 0x52 0x59
+ 0x57 0x56 0x54 0x4F 0x3B 0x1F 0x7F 0x17
+ 0x06 0x1A 0x30 0x5A 0x85 0x93 0x96 0x2D
+ 0x48 0x77 0x9C 0xB3 0x80 0x52 0x94 0xCB
+ 0x2F 0x00 0x64 0xA5 0xB5 0x11 0xF0 0x11
+ >;
+ cellwise,monitor-interval-ms = <5000>;
+ monitored-battery = <&bat>;
+ power-supplies = <&mains_charger>, <&fusb0>;
+ };
};
&i2s1 {
- #sound-dai-cells = <0>;
pinctrl-names = "default";
- pinctrl-0 = <&i2s_8ch_mclk_gpio>, <&i2s1_2ch_bus>;
+ pinctrl-0 = <&i2s_8ch_mclk_pin>, <&i2s1_2ch_bus>;
rockchip,capture-channels = <8>;
rockchip,playback-channels = <8>;
status = "okay";
@@ -765,7 +796,6 @@
&pcie0 {
bus-scan-delay-ms = <1000>;
ep-gpios = <&gpio2 RK_PD4 GPIO_ACTIVE_HIGH>;
- max-link-speed = <2>;
num-lanes = <4>;
pinctrl-names = "default";
pinctrl-0 = <&pcie_clkreqn_cpm>;
@@ -777,116 +807,116 @@
&pinctrl {
buttons {
- pwrbtn_gpio: pwrbtn-gpio {
+ pwrbtn_pin: pwrbtn-pin {
rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
};
- lidbtn_gpio: lidbtn-gpio {
+ lidbtn_pin: lidbtn-pin {
rockchip,pins = <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>;
};
};
dc-charger {
- dc_det_gpio: dc-det-gpio {
+ dc_det_pin: dc-det-pin {
rockchip,pins = <4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_up>;
};
};
es8316 {
- hp_det_gpio: hp-det-gpio {
+ hp_det_pin: hp-det-pin {
rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>;
};
};
fusb302x {
- fusb0_int_gpio: fusb0-int-gpio {
+ fusb0_int_pin: fusb0-int-pin {
rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
};
};
i2s1 {
- i2s_8ch_mclk_gpio: i2s-8ch-mclk-gpio {
+ i2s_8ch_mclk_pin: i2s-8ch-mclk-pin {
rockchip,pins = <4 RK_PA0 1 &pcfg_pull_none>;
};
};
lcd-panel {
- lcdvcc_en_gpio: lcdvcc-en-gpio {
+ lcdvcc_en_pin: lcdvcc-en-pin {
rockchip,pins = <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
};
- panel_en_gpio: panel-en-gpio {
+ panel_en_pin: panel-en-pin {
rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
};
- lcd_panel_reset_gpio: lcd-panel-reset-gpio {
+ lcd_panel_reset_pin: lcd-panel-reset-pin {
rockchip,pins = <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>;
};
};
leds {
- pwrled_gpio: pwrled_gpio {
+ pwr_led_pin: pwr-led-pin {
rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
};
- slpled_gpio: slpled_gpio {
+ slp_led_pin: slp-led-pin {
rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
pmic {
- pmic_int_l_gpio: pmic-int-l-gpio {
+ pmic_int_l_pin: pmic-int-l-pin {
rockchip,pins = <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>;
};
- vsel1_gpio: vsel1-gpio {
+ vsel1_pin: vsel1-pin {
rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>;
};
- vsel2_gpio: vsel2-gpio {
+ vsel2_pin: vsel2-pin {
rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
};
};
sdcard {
- sdmmc0_pwr_h_gpio: sdmmc0-pwr-h-gpio {
+ sdmmc0_pwr_h_pin: sdmmc0-pwr-h-pin {
rockchip,pins = <0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
sdio-pwrseq {
- wifi_enable_h_gpio: wifi-enable-h-gpio {
+ wifi_enable_h_pin: wifi-enable-h-pin {
rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
usb-typec {
- vcc5v0_typec0_en_gpio: vcc5v0-typec0-en-gpio {
+ vcc5v0_typec0_en_pin: vcc5v0-typec0-en-pin {
rockchip,pins = <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
};
};
usb2 {
- pwr_5v_gpio: pwr-5v-gpio {
+ pwr_5v_pin: pwr-5v-pin {
rockchip,pins = <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
};
- vcc5v0_host_en_gpio: vcc5v0-host-en-gpio {
+ vcc5v0_host_en_pin: vcc5v0-host-en-pin {
rockchip,pins = <4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
wireless-bluetooth {
- bt_wake_gpio: bt-wake-gpio {
+ bt_wake_pin: bt-wake-pin {
rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
};
- bt_host_wake_gpio: bt-host-wake-gpio {
+ bt_host_wake_pin: bt-host-wake-pin {
rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
};
- bt_reset_gpio: bt-reset-gpio {
+ bt_reset_pin: bt-reset-pin {
rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
@@ -1034,7 +1064,7 @@
host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>;
max-speed = <1500000>;
pinctrl-names = "default";
- pinctrl-0 = <&bt_host_wake_gpio &bt_wake_gpio &bt_reset_gpio>;
+ pinctrl-0 = <&bt_host_wake_pin &bt_wake_pin &bt_reset_pin>;
shutdown-gpios = <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>;
vbat-supply = <&wifi_bat>;
vddio-supply = <&vcc_wl>;
diff --git a/arch/arm/dts/rk3399-puma-haikou.dts b/arch/arm/dts/rk3399-puma-haikou.dts
index d80d6b7268..292bb7e80c 100644
--- a/arch/arm/dts/rk3399-puma-haikou.dts
+++ b/arch/arm/dts/rk3399-puma-haikou.dts
@@ -10,14 +10,18 @@
model = "Theobroma Systems RK3399-Q7 SoM";
compatible = "tsd,rk3399-puma-haikou", "rockchip,rk3399";
+ aliases {
+ mmc1 = &sdmmc;
+ };
+
chosen {
stdout-path = "serial0:115200n8";
};
leds {
- pinctrl-0 = <&led_pin_module>, <&led_sd_haikou>;
+ pinctrl-0 = <&module_led_pin>, <&sd_card_led_pin>;
- sd-card-led {
+ sd_card_led: led-1 {
label = "sd_card_led";
gpios = <&gpio1 RK_PA2 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "mmc0";
@@ -179,7 +183,7 @@
};
leds {
- led_sd_haikou: led-sd-gpio {
+ sd_card_led_pin: sd-card-led-pin {
rockchip,pins =
<1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
};
diff --git a/arch/arm/dts/rk3399-puma.dtsi b/arch/arm/dts/rk3399-puma.dtsi
index 72c06abd27..fb67db4619 100644
--- a/arch/arm/dts/rk3399-puma.dtsi
+++ b/arch/arm/dts/rk3399-puma.dtsi
@@ -8,12 +8,16 @@
#include "rk3399-opp.dtsi"
/ {
+ aliases {
+ mmc0 = &sdhci;
+ };
+
leds {
compatible = "gpio-leds";
pinctrl-names = "default";
- pinctrl-0 = <&led_pin_module>;
+ pinctrl-0 = <&module_led_pin>;
- module-led {
+ module_led: led-0 {
label = "module_led";
gpios = <&gpio2 RK_PD1 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "heartbeat";
@@ -21,57 +25,6 @@
};
};
- /*
- * Overwrite the opp-table for CPUB as this board uses a different
- * regulator (FAN53555) that only allows 10mV steps and therefore
- * can't reach the operation point target voltages from rk3399-opp.dtsi
- */
- /delete-node/ opp-table1;
- cluster1_opp: opp-table1 {
- compatible = "operating-points-v2";
- opp-shared;
-
- opp00 {
- opp-hz = /bits/ 64 <408000000>;
- opp-microvolt = <800000>;
- clock-latency-ns = <40000>;
- };
- opp01 {
- opp-hz = /bits/ 64 <600000000>;
- opp-microvolt = <800000>;
- };
- opp02 {
- opp-hz = /bits/ 64 <816000000>;
- opp-microvolt = <830000>;
- opp-suspend;
- };
- opp03 {
- opp-hz = /bits/ 64 <1008000000>;
- opp-microvolt = <880000>;
- };
- opp04 {
- opp-hz = /bits/ 64 <1200000000>;
- opp-microvolt = <950000>;
- };
- opp05 {
- opp-hz = /bits/ 64 <1416000000>;
- opp-microvolt = <1030000>;
- };
- opp06 {
- opp-hz = /bits/ 64 <1608000000>;
- opp-microvolt = <1100000>;
- };
- opp07 {
- opp-hz = /bits/ 64 <1800000000>;
- opp-microvolt = <1200000>;
- };
- opp08 {
- opp-hz = /bits/ 64 <1992000000>;
- opp-microvolt = <1230000>;
- turbo-mode;
- };
- };
-
clkin_gmac: external-gmac-clock {
compatible = "fixed-clock";
clock-frequency = <125000000>;
@@ -450,7 +403,7 @@
};
leds {
- led_pin_module: led-module-gpio {
+ module_led_pin: module-led-pin {
rockchip,pins =
<2 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>;
};
diff --git a/arch/arm/dts/rk3399-roc-pc-mezzanine.dts b/arch/arm/dts/rk3399-roc-pc-mezzanine.dts
index 2acb3d500f..9447c8724b 100644
--- a/arch/arm/dts/rk3399-roc-pc-mezzanine.dts
+++ b/arch/arm/dts/rk3399-roc-pc-mezzanine.dts
@@ -11,6 +11,20 @@
model = "Firefly ROC-RK3399-PC Mezzanine Board";
compatible = "firefly,roc-rk3399-pc-mezzanine", "rockchip,rk3399";
+ aliases {
+ mmc2 = &sdio0;
+ };
+
+ /* MP8009 PoE PD */
+ poe_12v: poe-12v {
+ compatible = "regulator-fixed";
+ regulator-name = "poe_12v";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <12000000>;
+ regulator-max-microvolt = <12000000>;
+ };
+
vcc3v3_ngff: vcc3v3-ngff {
compatible = "regulator-fixed";
regulator-name = "vcc3v3_ngff";
@@ -22,7 +36,7 @@
regulator-boot-on;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
- vin-supply = <&dc_12v>;
+ vin-supply = <&sys_12v>;
};
vcc3v3_pcie: vcc3v3-pcie {
@@ -34,10 +48,14 @@
pinctrl-0 = <&vcc3v3_pcie_en>;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
- vin-supply = <&dc_12v>;
+ vin-supply = <&sys_12v>;
};
};
+&sys_12v {
+ vin-supply = <&poe_12v>;
+};
+
&pcie_phy {
status = "okay";
};
diff --git a/arch/arm/dts/rk3399-roc-pc.dtsi b/arch/arm/dts/rk3399-roc-pc.dtsi
index 9f225e9c3d..d1aaf8e833 100644
--- a/arch/arm/dts/rk3399-roc-pc.dtsi
+++ b/arch/arm/dts/rk3399-roc-pc.dtsi
@@ -13,6 +13,11 @@
model = "Firefly ROC-RK3399-PC Board";
compatible = "firefly,roc-rk3399-pc", "rockchip,rk3399";
+ aliases {
+ mmc0 = &sdmmc;
+ mmc1 = &sdhci;
+ };
+
chosen {
stdout-path = "serial2:1500000n8";
};
@@ -58,30 +63,37 @@
};
};
+ ir-receiver {
+ compatible = "gpio-ir-receiver";
+ gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_LOW>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&ir_int>;
+ };
+
leds {
compatible = "gpio-leds";
pinctrl-names = "default";
- pinctrl-0 = <&work_led_gpio>, <&diy_led_gpio>, <&yellow_led_gpio>;
+ pinctrl-0 = <&work_led_pin>, <&diy_led_pin>, <&yellow_led_pin>;
- work-led {
+ work_led: led-0 {
label = "green:work";
gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>;
default-state = "on";
linux,default-trigger = "heartbeat";
};
- diy-led {
+ diy_led: led-1 {
label = "red:diy";
gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>;
default-state = "off";
- linux,default-trigger = "mmc1";
+ linux,default-trigger = "mmc2";
};
- yellow-led {
+ yellow_led: led-2 {
label = "yellow:yellow-led";
gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>;
default-state = "off";
- linux,default-trigger = "mmc0";
+ linux,default-trigger = "mmc1";
};
};
@@ -110,6 +122,14 @@
regulator-max-microvolt = <5000000>;
};
+ sys_12v: sys-12v {
+ compatible = "regulator-fixed";
+ regulator-name = "sys_12v";
+ regulator-always-on;
+ regulator-boot-on;
+ vin-supply = <&dc_12v>;
+ };
+
/* switched by pmic_sleep */
vcc1v8_s3: vcca1v8_s3: vcc1v8-s3 {
compatible = "regulator-fixed";
@@ -141,7 +161,7 @@
regulator-boot-on;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
- vin-supply = <&dc_12v>;
+ vin-supply = <&sys_12v>;
};
vcca_0v9: vcca-0v9 {
@@ -186,7 +206,7 @@
regulator-boot-on;
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
- vin-supply = <&dc_12v>;
+ vin-supply = <&sys_12v>;
};
vdd_log: vdd-log {
@@ -376,6 +396,7 @@
vcc_sdio: LDO_REG4 {
regulator-name = "vcc_sdio";
+ regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3000000>;
@@ -456,7 +477,7 @@
reg = <0x40>;
fcs,suspend-voltage-selector = <1>;
pinctrl-names = "default";
- pinctrl-0 = <&vsel1_gpio>;
+ pinctrl-0 = <&vsel1_pin>;
regulator-name = "vdd_cpu_b";
regulator-min-microvolt = <712500>;
regulator-max-microvolt = <1500000>;
@@ -475,11 +496,13 @@
reg = <0x41>;
fcs,suspend-voltage-selector = <1>;
pinctrl-names = "default";
- pinctrl-0 = <&vsel2_gpio>;
+ pinctrl-0 = <&vsel2_pin>;
regulator-name = "vdd_gpu";
regulator-min-microvolt = <712500>;
regulator-max-microvolt = <1500000>;
regulator-ramp-delay = <1000>;
+ regulator-always-on;
+ regulator-boot-on;
vin-supply = <&vcc3v3_sys>;
regulator-state-mem {
@@ -588,6 +611,12 @@
};
};
+ ir {
+ ir_int: ir-int {
+ rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
+
lcd-panel {
lcd_panel_reset: lcd-panel-reset {
rockchip,pins = <4 RK_PD5 RK_FUNC_GPIO &pcfg_pull_up>;
@@ -595,25 +624,25 @@
};
leds {
- diy_led_gpio: diy_led-gpio {
+ diy_led_pin: diy-led-pin {
rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
};
- work_led_gpio: work_led-gpio {
+ work_led_pin: work-led-pin {
rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
};
- yellow_led_gpio: yellow_led-gpio {
+ yellow_led_pin: yellow-led-pin {
rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
pmic {
- vsel1_gpio: vsel1-gpio {
+ vsel1_pin: vsel1-pin {
rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>;
};
- vsel2_gpio: vsel2-gpio {
+ vsel2_pin: vsel2-pin {
rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
};
};
diff --git a/arch/arm/dts/rk3399-rock-pi-4.dtsi b/arch/arm/dts/rk3399-rock-pi-4.dtsi
index 1c55a4645b..b28888ea92 100644
--- a/arch/arm/dts/rk3399-rock-pi-4.dtsi
+++ b/arch/arm/dts/rk3399-rock-pi-4.dtsi
@@ -11,6 +11,11 @@
#include "rk3399-opp.dtsi"
/ {
+ aliases {
+ mmc0 = &sdmmc;
+ mmc1 = &sdhci;
+ };
+
chosen {
stdout-path = "serial2:1500000n8";
};
@@ -111,10 +116,6 @@
regulator-boot-on;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
-
- regulator-state-mem {
- regulator-off-in-suspend;
- };
};
vdd_log: vdd-log {
@@ -362,8 +363,6 @@
regulator-name = "vcc_cam";
regulator-always-on;
regulator-boot-on;
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
regulator-state-mem {
regulator-off-in-suspend;
};
@@ -373,8 +372,6 @@
regulator-name = "vcc_mipi";
regulator-always-on;
regulator-boot-on;
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
regulator-state-mem {
regulator-off-in-suspend;
};
@@ -387,7 +384,7 @@
reg = <0x40>;
fcs,suspend-voltage-selector = <1>;
pinctrl-names = "default";
- pinctrl-0 = <&vsel1_gpio>;
+ pinctrl-0 = <&vsel1_pin>;
regulator-name = "vdd_cpu_b";
regulator-min-microvolt = <712500>;
regulator-max-microvolt = <1500000>;
@@ -406,7 +403,7 @@
reg = <0x41>;
fcs,suspend-voltage-selector = <1>;
pinctrl-names = "default";
- pinctrl-0 = <&vsel2_gpio>;
+ pinctrl-0 = <&vsel2_pin>;
regulator-name = "vdd_gpu";
regulator-min-microvolt = <712500>;
regulator-max-microvolt = <1500000>;
@@ -440,8 +437,9 @@
};
&i2s0 {
- rockchip,playback-channels = <8>;
- rockchip,capture-channels = <8>;
+ pinctrl-0 = <&i2s0_2ch_bus>;
+ rockchip,capture-channels = <2>;
+ rockchip,playback-channels = <2>;
status = "okay";
};
@@ -476,7 +474,6 @@
&pcie0 {
ep-gpios = <&gpio4 RK_PD3 GPIO_ACTIVE_HIGH>;
- max-link-speed = <2>;
num-lanes = <4>;
pinctrl-0 = <&pcie_clkreqnb_cpm>;
pinctrl-names = "default";
@@ -529,11 +526,11 @@
rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
};
- vsel1_gpio: vsel1-gpio {
+ vsel1_pin: vsel1-pin {
rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>;
};
- vsel2_gpio: vsel2-gpio {
+ vsel2_pin: vsel2-pin {
rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
};
};
@@ -680,7 +677,7 @@
&usbdrd_dwc3_0 {
status = "okay";
- dr_mode = "otg";
+ dr_mode = "host";
};
&usbdrd3_1 {
diff --git a/arch/arm/dts/rk3399-rock-pi-4a.dts b/arch/arm/dts/rk3399-rock-pi-4a.dts
index d96dd3ebd3..89f2af5e11 100644
--- a/arch/arm/dts/rk3399-rock-pi-4a.dts
+++ b/arch/arm/dts/rk3399-rock-pi-4a.dts
@@ -9,5 +9,5 @@
/ {
model = "Radxa ROCK Pi 4A";
- compatible = "radxa,rockpi4", "rockchip,rk3399";
+ compatible = "radxa,rockpi4a", "radxa,rockpi4", "rockchip,rk3399";
};
diff --git a/arch/arm/dts/rk3399-rock-pi-4b.dts b/arch/arm/dts/rk3399-rock-pi-4b.dts
index 4ca970acac..6c63e61706 100644
--- a/arch/arm/dts/rk3399-rock-pi-4b.dts
+++ b/arch/arm/dts/rk3399-rock-pi-4b.dts
@@ -9,7 +9,11 @@
/ {
model = "Radxa ROCK Pi 4B";
- compatible = "radxa,rockpi4", "rockchip,rk3399";
+ compatible = "radxa,rockpi4b", "radxa,rockpi4", "rockchip,rk3399";
+
+ aliases {
+ mmc2 = &sdio0;
+ };
};
&sdio0 {
diff --git a/arch/arm/dts/rk3399-rock-pi-4c.dts b/arch/arm/dts/rk3399-rock-pi-4c.dts
index 9d07ebd1ec..99169bcd51 100644
--- a/arch/arm/dts/rk3399-rock-pi-4c.dts
+++ b/arch/arm/dts/rk3399-rock-pi-4c.dts
@@ -10,7 +10,11 @@
/ {
model = "Radxa ROCK Pi 4C";
- compatible = "radxa,rockpi4", "rockchip,rk3399";
+ compatible = "radxa,rockpi4c", "radxa,rockpi4", "rockchip,rk3399";
+
+ aliases {
+ mmc2 = &sdio0;
+ };
};
&sdio0 {
diff --git a/arch/arm/dts/rk3399-rock960.dts b/arch/arm/dts/rk3399-rock960.dts
index 437a75f31a..1a23e8f3cd 100644
--- a/arch/arm/dts/rk3399-rock960.dts
+++ b/arch/arm/dts/rk3399-rock960.dts
@@ -17,42 +17,43 @@
leds {
compatible = "gpio-leds";
pinctrl-names = "default";
- pinctrl-0 = <&user_led1>, <&user_led2>, <&user_led3>,
- <&user_led4>, <&wlan_led>, <&bt_led>;
+ pinctrl-0 = <&user_led1_pin>, <&user_led2_pin>,
+ <&user_led3_pin>, <&user_led4_pin>,
+ <&wlan_led_pin>, <&bt_led_pin>;
- user_led1 {
+ user_led1: led-1 {
label = "green:user1";
gpios = <&gpio4 RK_PC2 0>;
linux,default-trigger = "heartbeat";
};
- user_led2 {
+ user_led2: led-2 {
label = "green:user2";
gpios = <&gpio4 RK_PC6 0>;
linux,default-trigger = "mmc0";
};
- user_led3 {
+ user_led3: led-3 {
label = "green:user3";
gpios = <&gpio4 RK_PD0 0>;
linux,default-trigger = "mmc1";
};
- user_led4 {
+ user_led4: led-4 {
label = "green:user4";
gpios = <&gpio4 RK_PD4 0>;
panic-indicator;
linux,default-trigger = "none";
};
- wlan_active_led {
+ wlan_active_led: led-5 {
label = "yellow:wlan";
gpios = <&gpio4 RK_PD5 0>;
linux,default-trigger = "phy0tx";
default-state = "off";
};
- bt_active_led {
+ bt_active_led: led-6 {
label = "blue:bt";
gpios = <&gpio4 RK_PD6 0>;
linux,default-trigger = "hci0-power";
@@ -62,38 +63,52 @@
};
+&cpu_alert0 {
+ temperature = <65000>;
+};
+
+&cpu_thermal {
+ sustainable-power = <1550>;
+
+ cooling-maps {
+ map0 {
+ trip = <&cpu_alert1>;
+ };
+ };
+};
+
&pcie0 {
ep-gpios = <&gpio2 RK_PA2 GPIO_ACTIVE_HIGH>;
};
&pinctrl {
leds {
- user_led1: user_led1 {
+ user_led1_pin: user-led1-pin {
rockchip,pins =
<4 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
};
- user_led2: user_led2 {
+ user_led2_pin: user-led2-pin {
rockchip,pins =
<4 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
};
- user_led3: user_led3 {
+ user_led3_pin: user-led3-pin {
rockchip,pins =
<4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
};
- user_led4: user_led4 {
+ user_led4_pin: user-led4-pin {
rockchip,pins =
<4 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
};
- wlan_led: wlan_led {
+ wlan_led_pin: wlan-led-pin {
rockchip,pins =
<4 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>;
};
- bt_led: bt_led {
+ bt_led_pin: bt-led-pin {
rockchip,pins =
<4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>;
};
@@ -124,45 +139,6 @@
status = "okay";
};
-&thermal_zones {
- cpu_thermal: cpu {
- polling-delay-passive = <100>;
- polling-delay = <1000>;
- thermal-sensors = <&tsadc 0>;
- sustainable-power = <1550>;
-
- trips {
- cpu_alert0: cpu_alert0 {
- temperature = <65000>;
- hysteresis = <2000>;
- type = "passive";
- };
-
- cpu_alert1: cpu_alert1 {
- temperature = <75000>;
- hysteresis = <2000>;
- type = "passive";
- };
-
- cpu_crit: cpu_crit {
- temperature = <95000>;
- hysteresis = <2000>;
- type = "critical";
- };
- };
-
- cooling-maps {
- map0 {
-
- trip = <&cpu_alert1>;
- cooling-device =
- <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
- <&cpu_b1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
- };
- };
- };
-};
-
&usbdrd_dwc3_0 {
dr_mode = "otg";
};
diff --git a/arch/arm/dts/rk3399-rock960.dtsi b/arch/arm/dts/rk3399-rock960.dtsi
index ba7c75c9f2..25dc61c26a 100644
--- a/arch/arm/dts/rk3399-rock960.dtsi
+++ b/arch/arm/dts/rk3399-rock960.dtsi
@@ -9,6 +9,12 @@
#include "rk3399-opp.dtsi"
/ {
+ aliases {
+ mmc0 = &sdio0;
+ mmc1 = &sdmmc;
+ mmc2 = &sdhci;
+ };
+
sdio_pwrseq: sdio-pwrseq {
compatible = "mmc-pwrseq-simple";
clocks = <&rk808 1>;
@@ -470,12 +476,12 @@
<1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
};
- vsel1_gpio: vsel1-gpio {
+ vsel1_pin: vsel1-pin {
rockchip,pins =
<1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>;
};
- vsel2_gpio: vsel2-gpio {
+ vsel2_pin: vsel2-pin {
rockchip,pins =
<1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
};
diff --git a/arch/arm/dts/rk3399-rockpro64.dtsi b/arch/arm/dts/rk3399-rockpro64.dtsi
index 9bca258012..6bff8db7d3 100644
--- a/arch/arm/dts/rk3399-rockpro64.dtsi
+++ b/arch/arm/dts/rk3399-rockpro64.dtsi
@@ -10,6 +10,12 @@
#include "rk3399-opp.dtsi"
/ {
+ aliases {
+ mmc0 = &sdio0;
+ mmc1 = &sdmmc;
+ mmc2 = &sdhci;
+ };
+
chosen {
stdout-path = "serial2:1500000n8";
};
@@ -36,18 +42,25 @@
};
};
+ ir-receiver {
+ compatible = "gpio-ir-receiver";
+ gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_LOW>;
+ pinctrl-0 = <&ir_int>;
+ pinctrl-names = "default";
+ };
+
leds {
compatible = "gpio-leds";
pinctrl-names = "default";
- pinctrl-0 = <&work_led_gpio>, <&diy_led_gpio>;
+ pinctrl-0 = <&work_led_pin>, <&diy_led_pin>;
- work-led {
+ work_led: led-0 {
label = "work";
default-state = "on";
gpios = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
};
- diy-led {
+ diy_led: led-1 {
label = "diy";
default-state = "off";
gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>;
@@ -72,10 +85,27 @@
sound {
compatible = "audio-graph-card";
- label = "rockchip,rk3399";
+ label = "Analog";
dais = <&i2s1_p0>;
};
+ sound-dit {
+ compatible = "audio-graph-card";
+ label = "SPDIF";
+ dais = <&spdif_p0>;
+ };
+
+ spdif-dit {
+ compatible = "linux,spdif-dit";
+ #sound-dai-cells = <0>;
+
+ port {
+ dit_p0_0: endpoint {
+ remote-endpoint = <&spdif_p0_0>;
+ };
+ };
+ };
+
vcc12v_dcin: vcc12v-dcin {
compatible = "regulator-fixed";
regulator-name = "vcc12v_dcin";
@@ -96,6 +126,24 @@
vin-supply = <&vcc_1v8>;
};
+ /* micro SD card power */
+ vcc3v0_sd: vcc3v0-sd {
+ compatible = "regulator-fixed";
+ enable-active-high;
+ gpio = <&gpio0 RK_PA1 GPIO_ACTIVE_HIGH>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&sdmmc0_pwr_h>;
+ regulator-name = "vcc3v0_sd";
+ regulator-always-on;
+ regulator-min-microvolt = <3000000>;
+ regulator-max-microvolt = <3000000>;
+ vin-supply = <&vcc3v3_sys>;
+
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
vcc3v3_pcie: vcc3v3-pcie-regulator {
compatible = "regulator-fixed";
enable-active-high;
@@ -427,7 +475,7 @@
reg = <0x40>;
fcs,suspend-voltage-selector = <1>;
pinctrl-names = "default";
- pinctrl-0 = <&vsel1_gpio>;
+ pinctrl-0 = <&vsel1_pin>;
regulator-name = "vdd_cpu_b";
regulator-min-microvolt = <712500>;
regulator-max-microvolt = <1500000>;
@@ -446,7 +494,7 @@
reg = <0x41>;
fcs,suspend-voltage-selector = <1>;
pinctrl-names = "default";
- pinctrl-0 = <&vsel2_gpio>;
+ pinctrl-0 = <&vsel2_pin>;
regulator-name = "vdd_gpu";
regulator-min-microvolt = <712500>;
regulator-max-microvolt = <1500000>;
@@ -569,12 +617,18 @@
};
};
+ ir {
+ ir_int: ir-int {
+ rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
+
leds {
- work_led_gpio: work_led-gpio {
+ work_led_pin: work-led-pin {
rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
};
- diy_led_gpio: diy_led-gpio {
+ diy_led_pin: diy-led-pin {
rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
@@ -594,15 +648,22 @@
rockchip,pins = <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>;
};
- vsel1_gpio: vsel1-gpio {
+ vsel1_pin: vsel1-pin {
rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>;
};
- vsel2_gpio: vsel2-gpio {
+ vsel2_pin: vsel2-pin {
rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
};
};
+ sdcard {
+ sdmmc0_pwr_h: sdmmc0-pwr-h {
+ rockchip,pins = <0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+
+ };
+
sdio-pwrseq {
wifi_enable_h: wifi-enable-h {
rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
@@ -661,6 +722,8 @@
max-frequency = <150000000>;
pinctrl-names = "default";
pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>;
+ vmmc-supply = <&vcc3v0_sd>;
+ vqmmc-supply = <&vcc_sdio>;
status = "okay";
};
@@ -671,6 +734,16 @@
status = "okay";
};
+&spdif {
+ pinctrl-0 = <&spdif_bus_1>;
+
+ spdif_p0: port {
+ spdif_p0_0: endpoint {
+ remote-endpoint = <&dit_p0_0>;
+ };
+ };
+};
+
&spi1 {
status = "okay";
@@ -768,7 +841,7 @@
&usbdrd_dwc3_0 {
status = "okay";
- dr_mode = "otg";
+ dr_mode = "host";
};
&usbdrd3_1 {
diff --git a/arch/arm/dts/rk3399.dtsi b/arch/arm/dts/rk3399.dtsi
index 74f2c3d490..3871c7fd83 100644
--- a/arch/arm/dts/rk3399.dtsi
+++ b/arch/arm/dts/rk3399.dtsi
@@ -197,38 +197,12 @@
#clock-cells = <0>;
};
- amba: bus {
- compatible = "simple-bus";
- #address-cells = <2>;
- #size-cells = <2>;
- ranges;
-
- dmac_bus: dma-controller@ff6d0000 {
- compatible = "arm,pl330", "arm,primecell";
- reg = <0x0 0xff6d0000 0x0 0x4000>;
- interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH 0>,
- <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH 0>;
- #dma-cells = <1>;
- clocks = <&cru ACLK_DMAC0_PERILP>;
- clock-names = "apb_pclk";
- };
-
- dmac_peri: dma-controller@ff6e0000 {
- compatible = "arm,pl330", "arm,primecell";
- reg = <0x0 0xff6e0000 0x0 0x4000>;
- interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH 0>,
- <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH 0>;
- #dma-cells = <1>;
- clocks = <&cru ACLK_DMAC1_PERILP>;
- clock-names = "apb_pclk";
- };
- };
-
pcie0: pcie@f8000000 {
compatible = "rockchip,rk3399-pcie";
reg = <0x0 0xf8000000 0x0 0x2000000>,
<0x0 0xfd000000 0x0 0x1000000>;
reg-names = "axi-base", "apb-base";
+ device_type = "pci";
#address-cells = <3>;
#size-cells = <2>;
#interrupt-cells = <1>;
@@ -247,15 +221,14 @@
<0 0 0 2 &pcie0_intc 1>,
<0 0 0 3 &pcie0_intc 2>,
<0 0 0 4 &pcie0_intc 3>;
- linux,pci-domain = <0>;
max-link-speed = <1>;
msi-map = <0x0 &its 0x0 0x1000>;
phys = <&pcie_phy 0>, <&pcie_phy 1>,
<&pcie_phy 2>, <&pcie_phy 3>;
phy-names = "pcie-phy-0", "pcie-phy-1",
"pcie-phy-2", "pcie-phy-3";
- ranges = <0x83000000 0x0 0xfa000000 0x0 0xfa000000 0x0 0x1e00000
- 0x81000000 0x0 0xfbe00000 0x0 0xfbe00000 0x0 0x100000>;
+ ranges = <0x82000000 0x0 0xfa000000 0x0 0xfa000000 0x0 0x1e00000>,
+ <0x81000000 0x0 0xfbe00000 0x0 0xfbe00000 0x0 0x100000>;
resets = <&cru SRST_PCIE_CORE>, <&cru SRST_PCIE_MGMT>,
<&cru SRST_PCIE_MGMT_STICKY>, <&cru SRST_PCIE_PIPE>,
<&cru SRST_PCIE_PM>, <&cru SRST_P_PCIE>,
@@ -326,7 +299,7 @@
status = "disabled";
};
- sdhci: sdhci@fe330000 {
+ sdhci: mmc@fe330000 {
compatible = "rockchip,rk3399-sdhci-5.1", "arasan,sdhci-5.1";
reg = <0x0 0xfe330000 0x0 0x10000>;
interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH 0>;
@@ -403,7 +376,7 @@
reset-names = "usb3-otg";
status = "disabled";
- usbdrd_dwc3_0: dwc3 {
+ usbdrd_dwc3_0: usb@fe800000 {
compatible = "snps,dwc3";
reg = <0x0 0xfe800000 0x0 0x100000>;
interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH 0>;
@@ -439,7 +412,7 @@
reset-names = "usb3-otg";
status = "disabled";
- usbdrd_dwc3_1: dwc3 {
+ usbdrd_dwc3_1: usb@fe900000 {
compatible = "snps,dwc3";
reg = <0x0 0xfe900000 0x0 0x100000>;
interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH 0>;
@@ -759,7 +732,7 @@
};
thermal_zones: thermal-zones {
- cpu_thermal: cpu {
+ cpu_thermal: cpu-thermal {
polling-delay-passive = <100>;
polling-delay = <1000>;
@@ -803,7 +776,7 @@
};
};
- gpu_thermal: gpu {
+ gpu_thermal: gpu-thermal {
polling-delay-passive = <100>;
polling-delay = <1000>;
@@ -845,135 +818,135 @@
rockchip,grf = <&grf>;
rockchip,hw-tshut-temp = <95000>;
pinctrl-names = "init", "default", "sleep";
- pinctrl-0 = <&otp_gpio>;
+ pinctrl-0 = <&otp_pin>;
pinctrl-1 = <&otp_out>;
- pinctrl-2 = <&otp_gpio>;
+ pinctrl-2 = <&otp_pin>;
#thermal-sensor-cells = <1>;
status = "disabled";
};
qos_emmc: qos@ffa58000 {
- compatible = "syscon";
+ compatible = "rockchip,rk3399-qos", "syscon";
reg = <0x0 0xffa58000 0x0 0x20>;
};
qos_gmac: qos@ffa5c000 {
- compatible = "syscon";
+ compatible = "rockchip,rk3399-qos", "syscon";
reg = <0x0 0xffa5c000 0x0 0x20>;
};
qos_pcie: qos@ffa60080 {
- compatible = "syscon";
+ compatible = "rockchip,rk3399-qos", "syscon";
reg = <0x0 0xffa60080 0x0 0x20>;
};
qos_usb_host0: qos@ffa60100 {
- compatible = "syscon";
+ compatible = "rockchip,rk3399-qos", "syscon";
reg = <0x0 0xffa60100 0x0 0x20>;
};
qos_usb_host1: qos@ffa60180 {
- compatible = "syscon";
+ compatible = "rockchip,rk3399-qos", "syscon";
reg = <0x0 0xffa60180 0x0 0x20>;
};
qos_usb_otg0: qos@ffa70000 {
- compatible = "syscon";
+ compatible = "rockchip,rk3399-qos", "syscon";
reg = <0x0 0xffa70000 0x0 0x20>;
};
qos_usb_otg1: qos@ffa70080 {
- compatible = "syscon";
+ compatible = "rockchip,rk3399-qos", "syscon";
reg = <0x0 0xffa70080 0x0 0x20>;
};
qos_sd: qos@ffa74000 {
- compatible = "syscon";
+ compatible = "rockchip,rk3399-qos", "syscon";
reg = <0x0 0xffa74000 0x0 0x20>;
};
qos_sdioaudio: qos@ffa76000 {
- compatible = "syscon";
+ compatible = "rockchip,rk3399-qos", "syscon";
reg = <0x0 0xffa76000 0x0 0x20>;
};
qos_hdcp: qos@ffa90000 {
- compatible = "syscon";
+ compatible = "rockchip,rk3399-qos", "syscon";
reg = <0x0 0xffa90000 0x0 0x20>;
};
qos_iep: qos@ffa98000 {
- compatible = "syscon";
+ compatible = "rockchip,rk3399-qos", "syscon";
reg = <0x0 0xffa98000 0x0 0x20>;
};
qos_isp0_m0: qos@ffaa0000 {
- compatible = "syscon";
+ compatible = "rockchip,rk3399-qos", "syscon";
reg = <0x0 0xffaa0000 0x0 0x20>;
};
qos_isp0_m1: qos@ffaa0080 {
- compatible = "syscon";
+ compatible = "rockchip,rk3399-qos", "syscon";
reg = <0x0 0xffaa0080 0x0 0x20>;
};
qos_isp1_m0: qos@ffaa8000 {
- compatible = "syscon";
+ compatible = "rockchip,rk3399-qos", "syscon";
reg = <0x0 0xffaa8000 0x0 0x20>;
};
qos_isp1_m1: qos@ffaa8080 {
- compatible = "syscon";
+ compatible = "rockchip,rk3399-qos", "syscon";
reg = <0x0 0xffaa8080 0x0 0x20>;
};
qos_rga_r: qos@ffab0000 {
- compatible = "syscon";
+ compatible = "rockchip,rk3399-qos", "syscon";
reg = <0x0 0xffab0000 0x0 0x20>;
};
qos_rga_w: qos@ffab0080 {
- compatible = "syscon";
+ compatible = "rockchip,rk3399-qos", "syscon";
reg = <0x0 0xffab0080 0x0 0x20>;
};
qos_video_m0: qos@ffab8000 {
- compatible = "syscon";
+ compatible = "rockchip,rk3399-qos", "syscon";
reg = <0x0 0xffab8000 0x0 0x20>;
};
qos_video_m1_r: qos@ffac0000 {
- compatible = "syscon";
+ compatible = "rockchip,rk3399-qos", "syscon";
reg = <0x0 0xffac0000 0x0 0x20>;
};
qos_video_m1_w: qos@ffac0080 {
- compatible = "syscon";
+ compatible = "rockchip,rk3399-qos", "syscon";
reg = <0x0 0xffac0080 0x0 0x20>;
};
qos_vop_big_r: qos@ffac8000 {
- compatible = "syscon";
+ compatible = "rockchip,rk3399-qos", "syscon";
reg = <0x0 0xffac8000 0x0 0x20>;
};
qos_vop_big_w: qos@ffac8080 {
- compatible = "syscon";
+ compatible = "rockchip,rk3399-qos", "syscon";
reg = <0x0 0xffac8080 0x0 0x20>;
};
qos_vop_little: qos@ffad0000 {
- compatible = "syscon";
+ compatible = "rockchip,rk3399-qos", "syscon";
reg = <0x0 0xffad0000 0x0 0x20>;
};
qos_perihp: qos@ffad8080 {
- compatible = "syscon";
+ compatible = "rockchip,rk3399-qos", "syscon";
reg = <0x0 0xffad8080 0x0 0x20>;
};
qos_gpu: qos@ffae0000 {
- compatible = "syscon";
+ compatible = "rockchip,rk3399-qos", "syscon";
reg = <0x0 0xffae0000 0x0 0x20>;
};
@@ -995,126 +968,146 @@
#size-cells = <0>;
/* These power domains are grouped by VD_CENTER */
- pd_iep@RK3399_PD_IEP {
+ power-domain@RK3399_PD_IEP {
reg = <RK3399_PD_IEP>;
clocks = <&cru ACLK_IEP>,
<&cru HCLK_IEP>;
pm_qos = <&qos_iep>;
+ #power-domain-cells = <0>;
};
- pd_rga@RK3399_PD_RGA {
+ power-domain@RK3399_PD_RGA {
reg = <RK3399_PD_RGA>;
clocks = <&cru ACLK_RGA>,
<&cru HCLK_RGA>;
pm_qos = <&qos_rga_r>,
<&qos_rga_w>;
+ #power-domain-cells = <0>;
};
- pd_vcodec@RK3399_PD_VCODEC {
+ power-domain@RK3399_PD_VCODEC {
reg = <RK3399_PD_VCODEC>;
clocks = <&cru ACLK_VCODEC>,
<&cru HCLK_VCODEC>;
pm_qos = <&qos_video_m0>;
+ #power-domain-cells = <0>;
};
- pd_vdu@RK3399_PD_VDU {
+ power-domain@RK3399_PD_VDU {
reg = <RK3399_PD_VDU>;
clocks = <&cru ACLK_VDU>,
<&cru HCLK_VDU>;
pm_qos = <&qos_video_m1_r>,
<&qos_video_m1_w>;
+ #power-domain-cells = <0>;
};
/* These power domains are grouped by VD_GPU */
- pd_gpu@RK3399_PD_GPU {
+ power-domain@RK3399_PD_GPU {
reg = <RK3399_PD_GPU>;
clocks = <&cru ACLK_GPU>;
pm_qos = <&qos_gpu>;
+ #power-domain-cells = <0>;
};
/* These power domains are grouped by VD_LOGIC */
- pd_edp@RK3399_PD_EDP {
+ power-domain@RK3399_PD_EDP {
reg = <RK3399_PD_EDP>;
clocks = <&cru PCLK_EDP_CTRL>;
+ #power-domain-cells = <0>;
};
- pd_emmc@RK3399_PD_EMMC {
+ power-domain@RK3399_PD_EMMC {
reg = <RK3399_PD_EMMC>;
clocks = <&cru ACLK_EMMC>;
pm_qos = <&qos_emmc>;
+ #power-domain-cells = <0>;
};
- pd_gmac@RK3399_PD_GMAC {
+ power-domain@RK3399_PD_GMAC {
reg = <RK3399_PD_GMAC>;
clocks = <&cru ACLK_GMAC>,
<&cru PCLK_GMAC>;
pm_qos = <&qos_gmac>;
+ #power-domain-cells = <0>;
};
- pd_sd@RK3399_PD_SD {
+ power-domain@RK3399_PD_SD {
reg = <RK3399_PD_SD>;
clocks = <&cru HCLK_SDMMC>,
<&cru SCLK_SDMMC>;
pm_qos = <&qos_sd>;
+ #power-domain-cells = <0>;
};
- pd_sdioaudio@RK3399_PD_SDIOAUDIO {
+ power-domain@RK3399_PD_SDIOAUDIO {
reg = <RK3399_PD_SDIOAUDIO>;
clocks = <&cru HCLK_SDIO>;
pm_qos = <&qos_sdioaudio>;
+ #power-domain-cells = <0>;
+ };
+ power-domain@RK3399_PD_TCPD0 {
+ reg = <RK3399_PD_TCPD0>;
+ clocks = <&cru SCLK_UPHY0_TCPDCORE>,
+ <&cru SCLK_UPHY0_TCPDPHY_REF>;
+ #power-domain-cells = <0>;
+ };
+ power-domain@RK3399_PD_TCPD1 {
+ reg = <RK3399_PD_TCPD1>;
+ clocks = <&cru SCLK_UPHY1_TCPDCORE>,
+ <&cru SCLK_UPHY1_TCPDPHY_REF>;
+ #power-domain-cells = <0>;
};
- pd_usb3@RK3399_PD_USB3 {
+ power-domain@RK3399_PD_USB3 {
reg = <RK3399_PD_USB3>;
clocks = <&cru ACLK_USB3>;
pm_qos = <&qos_usb_otg0>,
<&qos_usb_otg1>;
+ #power-domain-cells = <0>;
};
- pd_vio@RK3399_PD_VIO {
+ power-domain@RK3399_PD_VIO {
reg = <RK3399_PD_VIO>;
+ #power-domain-cells = <1>;
#address-cells = <1>;
#size-cells = <0>;
- pd_hdcp@RK3399_PD_HDCP {
+ power-domain@RK3399_PD_HDCP {
reg = <RK3399_PD_HDCP>;
clocks = <&cru ACLK_HDCP>,
<&cru HCLK_HDCP>,
<&cru PCLK_HDCP>;
pm_qos = <&qos_hdcp>;
+ #power-domain-cells = <0>;
};
- pd_isp0@RK3399_PD_ISP0 {
+ power-domain@RK3399_PD_ISP0 {
reg = <RK3399_PD_ISP0>;
clocks = <&cru ACLK_ISP0>,
<&cru HCLK_ISP0>;
pm_qos = <&qos_isp0_m0>,
<&qos_isp0_m1>;
+ #power-domain-cells = <0>;
};
- pd_isp1@RK3399_PD_ISP1 {
+ power-domain@RK3399_PD_ISP1 {
reg = <RK3399_PD_ISP1>;
clocks = <&cru ACLK_ISP1>,
<&cru HCLK_ISP1>;
pm_qos = <&qos_isp1_m0>,
<&qos_isp1_m1>;
+ #power-domain-cells = <0>;
};
- pd_tcpc0@RK3399_PD_TCPC0 {
- reg = <RK3399_PD_TCPD0>;
- clocks = <&cru SCLK_UPHY0_TCPDCORE>,
- <&cru SCLK_UPHY0_TCPDPHY_REF>;
- };
- pd_tcpc1@RK3399_PD_TCPC1 {
- reg = <RK3399_PD_TCPD1>;
- clocks = <&cru SCLK_UPHY1_TCPDCORE>,
- <&cru SCLK_UPHY1_TCPDPHY_REF>;
- };
- pd_vo@RK3399_PD_VO {
+ power-domain@RK3399_PD_VO {
reg = <RK3399_PD_VO>;
+ #power-domain-cells = <1>;
#address-cells = <1>;
#size-cells = <0>;
- pd_vopb@RK3399_PD_VOPB {
+ power-domain@RK3399_PD_VOPB {
reg = <RK3399_PD_VOPB>;
clocks = <&cru ACLK_VOP0>,
<&cru HCLK_VOP0>;
pm_qos = <&qos_vop_big_r>,
<&qos_vop_big_w>;
+ #power-domain-cells = <0>;
};
- pd_vopl@RK3399_PD_VOPL {
+ power-domain@RK3399_PD_VOPL {
reg = <RK3399_PD_VOPL>;
clocks = <&cru ACLK_VOP1>,
<&cru HCLK_VOP1>;
pm_qos = <&qos_vop_little>;
+ #power-domain-cells = <0>;
};
};
};
@@ -1124,8 +1117,6 @@
pmugrf: syscon@ff320000 {
compatible = "rockchip,rk3399-pmugrf", "syscon", "simple-mfd";
reg = <0x0 0xff320000 0x0 0x1000>;
- #address-cells = <1>;
- #size-cells = <1>;
pmu_io_domains: io-domains {
compatible = "rockchip,rk3399-pmu-io-voltage-domain";
@@ -1211,7 +1202,6 @@
pinctrl-names = "default";
pinctrl-0 = <&pwm0_pin>;
clocks = <&pmucru PCLK_RKPWM_PMU>;
- clock-names = "pwm";
status = "disabled";
};
@@ -1222,7 +1212,6 @@
pinctrl-names = "default";
pinctrl-0 = <&pwm1_pin>;
clocks = <&pmucru PCLK_RKPWM_PMU>;
- clock-names = "pwm";
status = "disabled";
};
@@ -1233,7 +1222,6 @@
pinctrl-names = "default";
pinctrl-0 = <&pwm2_pin>;
clocks = <&pmucru PCLK_RKPWM_PMU>;
- clock-names = "pwm";
status = "disabled";
};
@@ -1244,7 +1232,6 @@
pinctrl-names = "default";
pinctrl-0 = <&pwm3a_pin>;
clocks = <&pmucru PCLK_RKPWM_PMU>;
- clock-names = "pwm";
status = "disabled";
};
@@ -1271,6 +1258,17 @@
power-domains = <&power RK3399_PD_VCODEC>;
};
+ vdec: video-codec@ff660000 {
+ compatible = "rockchip,rk3399-vdec";
+ reg = <0x0 0xff660000 0x0 0x400>;
+ interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH 0>;
+ clocks = <&cru ACLK_VDU>, <&cru HCLK_VDU>,
+ <&cru SCLK_VDU_CA>, <&cru SCLK_VDU_CORE>;
+ clock-names = "axi", "ahb", "cabac", "core";
+ iommus = <&vdec_mmu>;
+ power-domains = <&power RK3399_PD_VDU>;
+ };
+
vdec_mmu: iommu@ff660480 {
compatible = "rockchip,iommu";
reg = <0x0 0xff660480 0x0 0x40>, <0x0 0xff6604c0 0x0 0x40>;
@@ -1278,8 +1276,8 @@
interrupt-names = "vdec_mmu";
clocks = <&cru ACLK_VDU>, <&cru HCLK_VDU>;
clock-names = "aclk", "iface";
+ power-domains = <&power RK3399_PD_VDU>;
#iommu-cells = <0>;
- status = "disabled";
};
iep_mmu: iommu@ff670800 {
@@ -1336,6 +1334,28 @@
};
};
+ dmac_bus: dma-controller@ff6d0000 {
+ compatible = "arm,pl330", "arm,primecell";
+ reg = <0x0 0xff6d0000 0x0 0x4000>;
+ interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH 0>,
+ <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH 0>;
+ #dma-cells = <1>;
+ arm,pl330-periph-burst;
+ clocks = <&cru ACLK_DMAC0_PERILP>;
+ clock-names = "apb_pclk";
+ };
+
+ dmac_peri: dma-controller@ff6e0000 {
+ compatible = "arm,pl330", "arm,primecell";
+ reg = <0x0 0xff6e0000 0x0 0x4000>;
+ interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH 0>,
+ <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH 0>;
+ #dma-cells = <1>;
+ arm,pl330-periph-burst;
+ clocks = <&cru ACLK_DMAC1_PERILP>;
+ clock-names = "apb_pclk";
+ };
+
pmucru: pmu-clock-controller@ff750000 {
compatible = "rockchip,rk3399-pmucru";
reg = <0x0 0xff750000 0x0 0x1000>;
@@ -1387,7 +1407,18 @@
status = "disabled";
};
- u2phy0: usb2-phy@e450 {
+ mipi_dphy_rx0: mipi-dphy-rx0 {
+ compatible = "rockchip,rk3399-mipi-dphy-rx0";
+ clocks = <&cru SCLK_MIPIDPHY_REF>,
+ <&cru SCLK_DPHY_RX0_CFG>,
+ <&cru PCLK_VIO_GRF>;
+ clock-names = "dphy-ref", "dphy-cfg", "grf";
+ power-domains = <&power RK3399_PD_VIO>;
+ #phy-cells = <0>;
+ status = "disabled";
+ };
+
+ u2phy0: usb2phy@e450 {
compatible = "rockchip,rk3399-usb2phy";
reg = <0xe450 0x10>;
clocks = <&cru SCLK_USB2PHY0_REF>;
@@ -1414,7 +1445,7 @@
};
};
- u2phy1: usb2-phy@e460 {
+ u2phy1: usb2phy@e460 {
compatible = "rockchip,rk3399-usb2phy";
reg = <0xe460 0x10>;
clocks = <&cru SCLK_USB2PHY1_REF>;
@@ -1513,7 +1544,7 @@
};
watchdog@ff848000 {
- compatible = "snps,dw-wdt";
+ compatible = "rockchip,rk3399-wdt", "snps,dw-wdt";
reg = <0x0 0xff848000 0x0 0x100>;
clocks = <&cru PCLK_WDT>;
interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH 0>;
@@ -1700,6 +1731,32 @@
status = "disabled";
};
+ isp0: isp0@ff910000 {
+ compatible = "rockchip,rk3399-cif-isp";
+ reg = <0x0 0xff910000 0x0 0x4000>;
+ interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH 0>;
+ clocks = <&cru SCLK_ISP0>,
+ <&cru ACLK_ISP0_WRAPPER>,
+ <&cru HCLK_ISP0_WRAPPER>;
+ clock-names = "isp", "aclk", "hclk";
+ iommus = <&isp0_mmu>;
+ phys = <&mipi_dphy_rx0>;
+ phy-names = "dphy";
+ power-domains = <&power RK3399_PD_ISP0>;
+ status = "disabled";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+ };
+ };
+
isp0_mmu: iommu@ff914000 {
compatible = "rockchip,iommu";
reg = <0x0 0xff914000 0x0 0x100>, <0x0 0xff915000 0x0 0x100>;
@@ -1883,10 +1940,10 @@
gpu: gpu@ff9a0000 {
compatible = "rockchip,rk3399-mali", "arm,mali-t860";
reg = <0x0 0xff9a0000 0x0 0x10000>;
- interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH 0>,
- <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH 0>,
- <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH 0>;
- interrupt-names = "gpu", "job", "mmu";
+ interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH 0>,
+ <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH 0>,
+ <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH 0>;
+ interrupt-names = "job", "mmu", "gpu";
clocks = <&cru ACLK_GPU>;
#cooling-cells = <2>;
power-domains = <&power RK3399_PD_GPU>;
@@ -2317,7 +2374,7 @@
};
};
- sleep {
+ suspend {
ap_pwroff: ap-pwroff {
rockchip,pins = <1 RK_PA5 1 &pcfg_pull_none>;
};
@@ -2475,7 +2532,7 @@
};
tsadc {
- otp_gpio: otp-gpio {
+ otp_pin: otp-pin {
rockchip,pins = <1 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
};
diff --git a/arch/arm/dts/rk3399pro-vmarc-som.dtsi b/arch/arm/dts/rk3399pro-vmarc-som.dtsi
index 5d087be04a..01d1a75c8b 100644
--- a/arch/arm/dts/rk3399pro-vmarc-som.dtsi
+++ b/arch/arm/dts/rk3399pro-vmarc-som.dtsi
@@ -12,6 +12,11 @@
/ {
compatible = "vamrs,rk3399pro-vmarc-som", "rockchip,rk3399pro";
+ aliases {
+ mmc0 = &sdmmc;
+ mmc1 = &sdhci;
+ };
+
vcc3v3_pcie: vcc-pcie-regulator {
compatible = "regulator-fixed";
enable-active-high;
@@ -324,7 +329,6 @@
&pcie0 {
ep-gpios = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>;
- max-link-speed = <2>;
num-lanes = <4>;
pinctrl-0 = <&pcie_clkreqnb_cpm>;
pinctrl-names = "default";
@@ -353,6 +357,12 @@
};
};
+ sdio-pwrseq {
+ wifi_enable_h: wifi-enable-h {
+ rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
+
vbus_host {
usb1_en_oc: usb1-en-oc {
rockchip,pins = <4 RK_PD1 RK_FUNC_GPIO &pcfg_pull_up>;
@@ -371,6 +381,16 @@
pmu1830-supply = <&vcc_1v8>;
};
+&sdio_pwrseq {
+ /*
+ * On the module itself this is one of these (depending
+ * on the actual card populated):
+ * - SDIO_RESET_L_WL_REG_ON
+ * - PDN (power down when low)
+ */
+ reset-gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_LOW>;
+};
+
&sdhci {
bus-width = <8>;
mmc-hs400-1_8v;
diff --git a/arch/arm/dts/rockchip-radxa-dalang-carrier.dtsi b/arch/arm/dts/rockchip-radxa-dalang-carrier.dtsi
index 26b53eac47..da1d548b73 100644
--- a/arch/arm/dts/rockchip-radxa-dalang-carrier.dtsi
+++ b/arch/arm/dts/rockchip-radxa-dalang-carrier.dtsi
@@ -15,6 +15,14 @@
#clock-cells = <0>;
};
+ sdio_pwrseq: sdio-pwrseq {
+ compatible = "mmc-pwrseq-simple";
+ clocks = <&hym8563>;
+ clock-names = "ext_clock";
+ pinctrl-names = "default";
+ pinctrl-0 = <&wifi_enable_h>;
+ };
+
vcc12v_dcin: vcc12v-dcin-regulator {
compatible = "regulator-fixed";
regulator-name = "vcc12v_dcin";
@@ -78,6 +86,19 @@
status = "okay";
};
+&sdio0 {
+ bus-width = <4>;
+ cap-sd-highspeed;
+ cap-sdio-irq;
+ keep-power-in-suspend;
+ mmc-pwrseq = <&sdio_pwrseq>;
+ non-removable;
+ pinctrl-names = "default";
+ pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
+ sd-uhs-sdr104;
+ status = "okay";
+};
+
&sdmmc {
bus-width = <4>;
cap-mmc-highspeed;
--
2.31.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 2/3] arm: dts: sync the Rockhip 3328 SoCs from Linux
2021-07-22 15:20 [PATCH 1/3] arm: dts: sync the Rockhip 3399 SoCs from Linux Peter Robinson
@ 2021-07-22 15:20 ` Peter Robinson
2021-08-11 10:17 ` Kever Yang
2021-07-22 15:20 ` [PATCH 3/3] arm: dts: sync the Rockhip 3368 " Peter Robinson
` (2 subsequent siblings)
3 siblings, 1 reply; 7+ messages in thread
From: Peter Robinson @ 2021-07-22 15:20 UTC (permalink / raw)
To: David Bauer, Loic Devulder, Chen-Yu Tsai, Banglang Huang,
Matwey V. Kornilov, Philipp Tomsich, Klaus Goger, Heiko Stuebner,
Kever Yang, u-boot
Cc: Peter Robinson
Sync the rk3328 DTs and associated bits from 5.14-rc1.
Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
---
arch/arm/dts/rk3328-evb.dts | 23 +-
arch/arm/dts/rk3328-nanopi-r2s-u-boot.dtsi | 2 +-
arch/arm/dts/rk3328-nanopi-r2s.dts | 51 ++-
arch/arm/dts/rk3328-roc-cc-u-boot.dtsi | 2 +-
arch/arm/dts/rk3328-roc-cc.dts | 41 +-
arch/arm/dts/rk3328-rock-pi-e-u-boot.dtsi | 4 +-
arch/arm/dts/rk3328-rock-pi-e.dts | 439 +++++++++++++--------
arch/arm/dts/rk3328-rock64-u-boot.dtsi | 2 +-
arch/arm/dts/rk3328-rock64.dts | 72 ++--
arch/arm/dts/rk3328.dtsi | 109 ++---
10 files changed, 487 insertions(+), 258 deletions(-)
diff --git a/arch/arm/dts/rk3328-evb.dts b/arch/arm/dts/rk3328-evb.dts
index 6abc6f4a86..ff6b466e0e 100644
--- a/arch/arm/dts/rk3328-evb.dts
+++ b/arch/arm/dts/rk3328-evb.dts
@@ -10,6 +10,12 @@
model = "Rockchip RK3328 EVB";
compatible = "rockchip,rk3328-evb", "rockchip,rk3328";
+ aliases {
+ mmc0 = &sdmmc;
+ mmc1 = &sdio;
+ mmc2 = &emmc;
+ };
+
chosen {
stdout-path = "serial2:1500000n8";
};
@@ -41,7 +47,7 @@
compatible = "regulator-fixed";
gpio = <&gpio0 30 GPIO_ACTIVE_LOW>;
pinctrl-names = "default";
- pinctrl-0 = <&sdmmc0m1_gpio>;
+ pinctrl-0 = <&sdmmc0m1_pin>;
regulator-name = "vcc_sd";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
@@ -70,6 +76,18 @@
cpu-supply = <&vdd_arm>;
};
+&cpu1 {
+ cpu-supply = <&vdd_arm>;
+};
+
+&cpu2 {
+ cpu-supply = <&vdd_arm>;
+};
+
+&cpu3 {
+ cpu-supply = <&vdd_arm>;
+};
+
&emmc {
bus-width = <8>;
cap-mmc-highspeed;
@@ -82,11 +100,10 @@
&gmac2phy {
phy-supply = <&vcc_phy>;
clock_in_out = "output";
- assigned-clocks = <&cru SCLK_MAC2PHY_SRC>;
assigned-clock-rate = <50000000>;
assigned-clocks = <&cru SCLK_MAC2PHY>;
assigned-clock-parents = <&cru SCLK_MAC2PHY_SRC>;
-
+ status = "okay";
};
&i2c1 {
diff --git a/arch/arm/dts/rk3328-nanopi-r2s-u-boot.dtsi b/arch/arm/dts/rk3328-nanopi-r2s-u-boot.dtsi
index 9e2ced1541..8db5e55af6 100644
--- a/arch/arm/dts/rk3328-nanopi-r2s-u-boot.dtsi
+++ b/arch/arm/dts/rk3328-nanopi-r2s-u-boot.dtsi
@@ -20,7 +20,7 @@
u-boot,dm-spl;
};
-&sdmmc0m1_gpio {
+&sdmmc0m1_pin {
u-boot,dm-spl;
};
diff --git a/arch/arm/dts/rk3328-nanopi-r2s.dts b/arch/arm/dts/rk3328-nanopi-r2s.dts
index 5445c5cb3d..3857d487ab 100644
--- a/arch/arm/dts/rk3328-nanopi-r2s.dts
+++ b/arch/arm/dts/rk3328-nanopi-r2s.dts
@@ -13,6 +13,11 @@
model = "FriendlyElec NanoPi R2S";
compatible = "friendlyarm,nanopi-r2s", "rockchip,rk3328";
+ aliases {
+ ethernet1 = &rtl8153;
+ mmc0 = &sdmmc;
+ };
+
chosen {
stdout-path = "serial2:1500000n8";
};
@@ -50,6 +55,7 @@
sys_led: led-1 {
gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>;
label = "nanopi-r2s:red:sys";
+ default-state = "on";
};
wan_led: led-2 {
@@ -71,15 +77,15 @@
regulator-settling-time-us = <5000>;
regulator-type = "voltage";
startup-delay-us = <2000>;
- states = <1800000 0x1
- 3300000 0x0>;
+ states = <1800000 0x1>,
+ <3300000 0x0>;
vin-supply = <&vcc_io_33>;
};
vcc_sd: sdmmc-regulator {
compatible = "regulator-fixed";
gpio = <&gpio0 RK_PD6 GPIO_ACTIVE_LOW>;
- pinctrl-0 = <&sdmmc0m1_gpio>;
+ pinctrl-0 = <&sdmmc0m1_pin>;
pinctrl-names = "default";
regulator-name = "vcc_sd";
regulator-boot-on;
@@ -96,6 +102,18 @@
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
};
+
+ vdd_5v_lan: vdd-5v-lan {
+ compatible = "regulator-fixed";
+ enable-active-high;
+ gpio = <&gpio2 RK_PC6 GPIO_ACTIVE_HIGH>;
+ pinctrl-0 = <&lan_vdd_pin>;
+ pinctrl-names = "default";
+ regulator-name = "vdd_5v_lan";
+ regulator-always-on;
+ regulator-boot-on;
+ vin-supply = <&vdd_5v>;
+ };
};
&cpu0 {
@@ -114,6 +132,10 @@
cpu-supply = <&vdd_arm>;
};
+&display_subsystem {
+ status = "disabled";
+};
+
&gmac2io {
assigned-clocks = <&cru SCLK_MAC2IO>, <&cru SCLK_MAC2IO_EXT>;
assigned-clock-parents = <&gmac_clk>, <&gmac_clk>;
@@ -134,8 +156,6 @@
#size-cells = <0>;
rtl8211e: ethernet-phy@1 {
- compatible = "ethernet-phy-id001c.c915",
- "ethernet-phy-ieee802.3-c22";
reg = <1>;
pinctrl-0 = <ð_phy_reset_pin>;
pinctrl-names = "default";
@@ -282,7 +302,7 @@
};
};
- ethernet-phy {
+ gmac2io {
eth_phy_reset_pin: eth-phy-reset-pin {
rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>;
};
@@ -302,6 +322,12 @@
};
};
+ lan {
+ lan_vdd_pin: lan-vdd-pin {
+ rockchip,pins = <2 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
+
pmic {
pmic_int_l: pmic-int-l {
rockchip,pins = <1 RK_PD0 RK_FUNC_GPIO &pcfg_pull_up>;
@@ -361,6 +387,19 @@
dr_mode = "host";
};
+&usbdrd3 {
+ dr_mode = "host";
+ status = "okay";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ /* Second port is for USB 3.0 */
+ rtl8153: device@2 {
+ compatible = "usbbda,8153";
+ reg = <2>;
+ };
+};
+
&usb_host0_ehci {
status = "okay";
};
diff --git a/arch/arm/dts/rk3328-roc-cc-u-boot.dtsi b/arch/arm/dts/rk3328-roc-cc-u-boot.dtsi
index 08806dfc0f..20a62134a0 100644
--- a/arch/arm/dts/rk3328-roc-cc-u-boot.dtsi
+++ b/arch/arm/dts/rk3328-roc-cc-u-boot.dtsi
@@ -40,7 +40,7 @@
u-boot,dm-spl;
};
-&sdmmc0m1_gpio {
+&sdmmc0m1_pin {
u-boot,dm-spl;
};
diff --git a/arch/arm/dts/rk3328-roc-cc.dts b/arch/arm/dts/rk3328-roc-cc.dts
index 8d553c9218..aa22a0c222 100644
--- a/arch/arm/dts/rk3328-roc-cc.dts
+++ b/arch/arm/dts/rk3328-roc-cc.dts
@@ -10,6 +10,11 @@
model = "Firefly roc-rk3328-cc";
compatible = "firefly,roc-rk3328-cc", "rockchip,rk3328";
+ aliases {
+ mmc0 = &sdmmc;
+ mmc1 = &emmc;
+ };
+
chosen {
stdout-path = "serial2:1500000n8";
};
@@ -34,7 +39,7 @@
compatible = "regulator-fixed";
gpio = <&gpio0 RK_PD6 GPIO_ACTIVE_LOW>;
pinctrl-names = "default";
- pinctrl-0 = <&sdmmc0m1_gpio>;
+ pinctrl-0 = <&sdmmc0m1_pin>;
regulator-boot-on;
regulator-name = "vcc_sd";
regulator-min-microvolt = <3300000>;
@@ -45,8 +50,8 @@
vcc_sdio: sdmmcio-regulator {
compatible = "regulator-gpio";
gpios = <&grf_gpio 0 GPIO_ACTIVE_HIGH>;
- states = <1800000 0x1
- 3300000 0x0>;
+ states = <1800000 0x1>,
+ <3300000 0x0>;
regulator-name = "vcc_sdio";
regulator-type = "voltage";
regulator-min-microvolt = <1800000>;
@@ -86,7 +91,7 @@
leds {
compatible = "gpio-leds";
- power {
+ power_led: led-0 {
label = "firefly:blue:power";
linux,default-trigger = "heartbeat";
gpios = <&rk805 1 GPIO_ACTIVE_LOW>;
@@ -94,7 +99,7 @@
mode = <0x23>;
};
- user {
+ user_led: led-1 {
label = "firefly:yellow:user";
linux,default-trigger = "mmc1";
gpios = <&rk805 0 GPIO_ACTIVE_LOW>;
@@ -104,6 +109,14 @@
};
};
+&analog_sound {
+ status = "okay";
+};
+
+&codec {
+ status = "okay";
+};
+
&cpu0 {
cpu-supply = <&vdd_arm>;
};
@@ -161,6 +174,10 @@
status = "okay";
};
+&hdmi_sound {
+ status = "okay";
+};
+
&i2c1 {
status = "okay";
@@ -270,6 +287,14 @@
};
};
+&i2s0 {
+ status = "okay";
+};
+
+&i2s1 {
+ status = "okay";
+};
+
&io_domains {
status = "okay";
@@ -334,6 +359,12 @@
};
&usb20_otg {
+ dr_mode = "host";
+ status = "okay";
+};
+
+&usbdrd3 {
+ dr_mode = "host";
status = "okay";
};
diff --git a/arch/arm/dts/rk3328-rock-pi-e-u-boot.dtsi b/arch/arm/dts/rk3328-rock-pi-e-u-boot.dtsi
index 4fc055eacb..9d557eb988 100644
--- a/arch/arm/dts/rk3328-rock-pi-e-u-boot.dtsi
+++ b/arch/arm/dts/rk3328-rock-pi-e-u-boot.dtsi
@@ -37,7 +37,7 @@
u-boot,dm-spl;
};
-&sdmmc0m1_gpio {
+&sdmmc0m1_pin {
u-boot,dm-spl;
};
@@ -46,7 +46,7 @@
};
&usb_host0_xhci {
- vbus-supply = <&vcc5v0_host_xhci>;
+ vbus-supply = <&vcc_host_5v>;
status = "okay";
};
diff --git a/arch/arm/dts/rk3328-rock-pi-e.dts b/arch/arm/dts/rk3328-rock-pi-e.dts
index 4b9f9a8248..018a3a5075 100644
--- a/arch/arm/dts/rk3328-rock-pi-e.dts
+++ b/arch/arm/dts/rk3328-rock-pi-e.dts
@@ -1,58 +1,118 @@
-// SPDX-License-Identifier: GPL-2.0+
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
- * (C) Copyright 2020 Radxa
+ * (C) Copyright 2020 Chen-Yu Tsai <wens@csie.org>
+ *
+ * Based on ./rk3328-rock64.dts, which is
+ *
+ * Copyright (c) 2017 PINE64
*/
/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/pinctrl/rockchip.h>
+
#include "rk3328.dtsi"
/ {
- model = "Radxa Rockpi E";
- compatible = "radxa,rock-pi-e", "rockchip,rk3328";
+ model = "Radxa ROCK Pi E";
+ compatible = "radxa,rockpi-e", "rockchip,rk3328";
+
+ aliases {
+ mmc0 = &sdmmc;
+ mmc1 = &emmc;
+ };
chosen {
- stdout-path = "serial2:1500000n8";
+ stdout-path = "serial2:1500000n8";
+ };
+
+ adc-keys {
+ compatible = "adc-keys";
+ io-channels = <&saradc 0>;
+ io-channel-names = "buttons";
+ keyup-threshold-microvolt = <1750000>;
+
+ /* This button is unpopulated out of the factory. */
+ button-recovery {
+ label = "Recovery";
+ linux,code = <KEY_VENDOR>;
+ press-threshold-microvolt = <10000>;
+ };
};
gmac_clkin: external-gmac-clock {
- compatible = "fixed-clock";
- clock-frequency = <125000000>;
- clock-output-names = "gmac_clkin";
- #clock-cells = <0>;
+ compatible = "fixed-clock";
+ clock-frequency = <125000000>;
+ clock-output-names = "gmac_clkin";
+ #clock-cells = <0>;
+ };
+
+ leds {
+ compatible = "gpio-leds";
+ pinctrl-0 = <&led_pin>;
+ pinctrl-names = "default";
+
+ led-0 {
+ color = <LED_COLOR_ID_BLUE>;
+ gpios = <&gpio3 RK_PA5 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "heartbeat";
+ };
};
vcc_sd: sdmmc-regulator {
- compatible = "regulator-fixed";
- gpio = <&gpio0 RK_PD6 GPIO_ACTIVE_LOW>;
- pinctrl-names = "default";
- pinctrl-0 = <&sdmmc0m1_gpio>;
- regulator-name = "vcc_sd";
- regulator-always-on;
- regulator-boot-on;
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
- vin-supply = <&vcc_io>;
+ compatible = "regulator-fixed";
+ gpio = <&gpio0 RK_PD6 GPIO_ACTIVE_LOW>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&sdmmc0m1_pin>;
+ regulator-name = "vcc_sd";
+ regulator-boot-on;
+ vin-supply = <&vcc_io>;
};
- vcc5v0_host_xhci: vcc5v0-host-xhci-drv {
- compatible = "regulator-fixed";
- enable-active-high;
- regulator-name = "vcc5v0_host_xhci";
- gpio = <&gpio3 RK_PA7 GPIO_ACTIVE_HIGH>;
- regulator-min-microvolt = <5000000>;
- regulator-max-microvolt = <5000000>;
+ vcc_host_5v: vcc-host-5v-regulator {
+ compatible = "regulator-fixed";
+ gpio = <&gpio3 RK_PA7 GPIO_ACTIVE_HIGH>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&usb30_host_drv>;
+ enable-active-high;
+ regulator-name = "vcc_host_5v";
+ regulator-always-on;
+ regulator-boot-on;
+ vin-supply = <&vcc_sys>;
};
vcc_sys: vcc-sys {
- compatible = "regulator-fixed";
- regulator-name = "vcc_sys";
- regulator-always-on;
- regulator-boot-on;
- regulator-min-microvolt = <5000000>;
- regulator-max-microvolt = <5000000>;
+ compatible = "regulator-fixed";
+ regulator-name = "vcc_sys";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ };
+
+ vcc_wifi: vcc-wifi-regulator {
+ compatible = "regulator-fixed";
+ gpio = <&gpio0 RK_PA0 GPIO_ACTIVE_LOW>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&wifi_en>;
+ regulator-name = "vcc_wifi";
+ regulator-always-on;
+ regulator-boot-on;
+ vin-supply = <&vcc_io>;
};
};
+&analog_sound {
+ status = "okay";
+};
+
+&codec {
+ status = "okay";
+};
+
&cpu0 {
cpu-supply = <&vdd_arm>;
};
@@ -72,13 +132,11 @@
&emmc {
bus-width = <8>;
cap-mmc-highspeed;
+ mmc-ddr-1_8v;
mmc-hs200-1_8v;
- supports-emmc;
- disable-wp;
non-removable;
- num-slots = <1>;
pinctrl-names = "default";
- pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
+ pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_bus8>;
vmmc-supply = <&vcc_io>;
vqmmc-supply = <&vcc18_emmc>;
status = "okay";
@@ -88,180 +146,245 @@
assigned-clocks = <&cru SCLK_MAC2IO>, <&cru SCLK_MAC2IO_EXT>;
assigned-clock-parents = <&gmac_clkin>, <&gmac_clkin>;
clock_in_out = "input";
- phy-supply = <&vcc_io>;
+ phy-handle = <&rtl8211e>;
phy-mode = "rgmii";
+ phy-supply = <&vcc_io>;
pinctrl-names = "default";
pinctrl-0 = <&rgmiim1_pins>;
- snps,force_thresh_dma_mode;
- snps,reset-gpio = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>;
- snps,reset-active-low;
- snps,reset-delays-us = <0 10000 50000>;
+ snps,aal;
+ snps,rxpbl = <0x4>;
+ snps,txpbl = <0x4>;
tx_delay = <0x26>;
rx_delay = <0x11>;
status = "okay";
+
+ mdio {
+ compatible = "snps,dwmac-mdio";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ rtl8211e: ethernet-phy@1 {
+ reg = <1>;
+ pinctrl-0 = <ð_phy_int_pin>, <ð_phy_reset_pin>;
+ pinctrl-names = "default";
+ interrupt-parent = <&gpio1>;
+ interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
+ reset-assert-us = <10000>;
+ reset-deassert-us = <50000>;
+ reset-gpios = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>;
+ };
+ };
};
-&i2c1 {
+&gmac2phy {
status = "okay";
+};
- rk805: rk805@18 {
- compatible = "rockchip,rk805";
+&i2c1 {
status = "okay";
- reg = <0x18>;
- interrupt-parent = <&gpio2>;
- interrupts = <6 IRQ_TYPE_LEVEL_LOW>;
- #clock-cells = <1>;
- clock-output-names = "xin32k", "rk805-clkout2";
- pinctrl-names = "default";
- pinctrl-0 = <&pmic_int_l>;
- rockchip,system-power-controller;
- wakeup-source;
-
- vcc1-supply = <&vcc_sys>;
- vcc2-supply = <&vcc_sys>;
- vcc3-supply = <&vcc_sys>;
- vcc4-supply = <&vcc_sys>;
- vcc5-supply = <&vcc_io>;
- vcc6-supply = <&vcc_sys>;
-
- regulators {
- vdd_logic: DCDC_REG1 {
- regulator-name = "vdd_logic";
- regulator-min-microvolt = <712500>;
- regulator-max-microvolt = <1450000>;
- regulator-ramp-delay = <12500>;
- regulator-always-on;
- regulator-boot-on;
- regulator-state-mem {
- regulator-on-in-suspend;
- regulator-suspend-microvolt = <1000000>;
- };
- };
-
- vdd_arm: DCDC_REG2 {
- regulator-name = "vdd_arm";
- regulator-min-microvolt = <712500>;
- regulator-max-microvolt = <1450000>;
- regulator-ramp-delay = <12500>;
- regulator-always-on;
- regulator-boot-on;
- regulator-state-mem {
- regulator-on-in-suspend;
- regulator-suspend-microvolt = <950000>;
- };
- };
- vcc_ddr: DCDC_REG3 {
- regulator-name = "vcc_ddr";
- regulator-always-on;
- regulator-boot-on;
- regulator-state-mem {
- regulator-on-in-suspend;
- };
- };
-
- vcc_io: DCDC_REG4 {
- regulator-name = "vcc_io";
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
- regulator-always-on;
- regulator-boot-on;
- regulator-state-mem {
- regulator-on-in-suspend;
- regulator-suspend-microvolt = <3300000>;
- };
- };
-
- vcc_18: LDO_REG1 {
- regulator-name = "vcc_18";
- regulator-min-microvolt = <1800000>;
- regulator-max-microvolt = <1800000>;
- regulator-always-on;
- regulator-boot-on;
- regulator-state-mem {
- regulator-on-in-suspend;
- regulator-suspend-microvolt = <1800000>;
- };
- };
-
- vcc18_emmc: LDO_REG2 {
- regulator-name = "vcc18_emmc";
- regulator-min-microvolt = <1800000>;
- regulator-max-microvolt = <1800000>;
- regulator-always-on;
- regulator-boot-on;
- regulator-state-mem {
- regulator-on-in-suspend;
- regulator-suspend-microvolt = <1800000>;
- };
- };
-
- vdd_10: LDO_REG3 {
- regulator-name = "vdd_10";
- regulator-min-microvolt = <1000000>;
- regulator-max-microvolt = <1000000>;
- regulator-always-on;
- regulator-boot-on;
- regulator-state-mem {
- regulator-on-in-suspend;
- regulator-suspend-microvolt = <1000000>;
- };
- };
- };
+ rk805: pmic@18 {
+ compatible = "rockchip,rk805";
+ reg = <0x18>;
+ interrupt-parent = <&gpio2>;
+ interrupts = <6 IRQ_TYPE_LEVEL_LOW>;
+ #clock-cells = <1>;
+ clock-output-names = "xin32k", "rk805-clkout2";
+ gpio-controller;
+ #gpio-cells = <2>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pmic_int_l>;
+ rockchip,system-power-controller;
+ wakeup-source;
+
+ vcc1-supply = <&vcc_sys>;
+ vcc2-supply = <&vcc_sys>;
+ vcc3-supply = <&vcc_sys>;
+ vcc4-supply = <&vcc_sys>;
+ vcc5-supply = <&vcc_io>;
+ vcc6-supply = <&vcc_sys>;
+
+ regulators {
+ vdd_log: DCDC_REG1 {
+ regulator-name = "vdd_log";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <712500>;
+ regulator-max-microvolt = <1450000>;
+ regulator-ramp-delay = <12500>;
+
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ regulator-suspend-microvolt = <1000000>;
+ };
+ };
+
+ vdd_arm: DCDC_REG2 {
+ regulator-name = "vdd_arm";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <712500>;
+ regulator-max-microvolt = <1450000>;
+ regulator-ramp-delay = <12500>;
+
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ regulator-suspend-microvolt = <950000>;
+ };
+ };
+
+ vcc_ddr: DCDC_REG3 {
+ regulator-name = "vcc_ddr";
+ regulator-always-on;
+ regulator-boot-on;
+
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ };
+ };
+
+ vcc_io: DCDC_REG4 {
+ regulator-name = "vcc_io";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ regulator-suspend-microvolt = <3300000>;
+ };
+ };
+
+ vcc_18: LDO_REG1 {
+ regulator-name = "vcc_18";
+ 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>;
+ };
+ };
+
+ vcc18_emmc: LDO_REG2 {
+ regulator-name = "vcc18_emmc";
+ 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>;
+ };
+ };
+
+ vdd_10: LDO_REG3 {
+ regulator-name = "vdd_10";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <1000000>;
+ regulator-max-microvolt = <1000000>;
+
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ regulator-suspend-microvolt = <1000000>;
+ };
+ };
+ };
};
};
-&io_domains {
+&i2s1 {
status = "okay";
+};
+&io_domains {
+ pmuio-supply = <&vcc_io>;
vccio1-supply = <&vcc_io>;
vccio2-supply = <&vcc18_emmc>;
vccio3-supply = <&vcc_io>;
vccio4-supply = <&vcc_io>;
vccio5-supply = <&vcc_io>;
vccio6-supply = <&vcc_io>;
- pmuio-supply = <&vcc_io>;
+ status = "okay";
};
&pinctrl {
+ ephy {
+ eth_phy_int_pin: eth-phy-int-pin {
+ rockchip,pins = <1 RK_PD0 RK_FUNC_GPIO &pcfg_pull_down>;
+ };
+
+ eth_phy_reset_pin: eth-phy-reset-pin {
+ rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>;
+ };
+ };
+
+ leds {
+ led_pin: led-pin {
+ rockchip,pins = <3 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
+
pmic {
- pmic_int_l: pmic-int-l {
- rockchip,pins = <2 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>;
+ pmic_int_l: pmic-int-l {
+ rockchip,pins = <2 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>;
+ };
};
+
+ usb3 {
+ usb30_host_drv: usb30-host-drv {
+ rockchip,pins = <3 RK_PA7 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
+
+ wifi {
+ wifi_en: wifi-en {
+ rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
};
};
&sdmmc {
bus-width = <4>;
- cap-mmc-highspeed;
cap-sd-highspeed;
- card-detect-delay = <200>;
disable-wp;
- max-frequency = <150000000>;
- num-slots = <1>;
pinctrl-names = "default";
- pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_dectn &sdmmc0_bus4>;
- supports-sd;
+ pinctrl-0 = <&sdmmc0_clk>, <&sdmmc0_cmd>, <&sdmmc0_dectn>, <&sdmmc0_bus4>;
vmmc-supply = <&vcc_sd>;
status = "okay";
};
&saradc {
+ vref-supply = <&vcc_18>;
status = "okay";
};
-&uart2 {
+&tsadc {
status = "okay";
};
-&usb20_otg {
+&u2phy {
status = "okay";
};
-&usb_host0_ehci {
+&u2phy_host {
status = "okay";
};
-&usb_host0_ohci {
+&uart2 {
+ status = "okay";
+};
+
+&usbdrd3 {
+ dr_mode = "host";
+ status = "okay";
+};
+
+&usb_host0_ehci {
status = "okay";
};
diff --git a/arch/arm/dts/rk3328-rock64-u-boot.dtsi b/arch/arm/dts/rk3328-rock64-u-boot.dtsi
index 2af32aea05..3c3b1370e3 100644
--- a/arch/arm/dts/rk3328-rock64-u-boot.dtsi
+++ b/arch/arm/dts/rk3328-rock64-u-boot.dtsi
@@ -40,7 +40,7 @@
u-boot,dm-spl;
};
-&sdmmc0m1_gpio {
+&sdmmc0m1_pin {
u-boot,dm-spl;
};
diff --git a/arch/arm/dts/rk3328-rock64.dts b/arch/arm/dts/rk3328-rock64.dts
index ebf3eb222e..1b0f7e4551 100644
--- a/arch/arm/dts/rk3328-rock64.dts
+++ b/arch/arm/dts/rk3328-rock64.dts
@@ -10,6 +10,11 @@
model = "Pine64 Rock64";
compatible = "pine64,rock64", "rockchip,rk3328";
+ aliases {
+ mmc0 = &sdmmc;
+ mmc1 = &emmc;
+ };
+
chosen {
stdout-path = "serial2:1500000n8";
};
@@ -25,7 +30,7 @@
compatible = "regulator-fixed";
gpio = <&gpio0 RK_PD6 GPIO_ACTIVE_LOW>;
pinctrl-names = "default";
- pinctrl-0 = <&sdmmc0m1_gpio>;
+ pinctrl-0 = <&sdmmc0m1_pin>;
regulator-name = "vcc_sd";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
@@ -73,45 +78,43 @@
leds {
compatible = "gpio-leds";
- power {
+ power_led: led-0 {
gpios = <&rk805 1 GPIO_ACTIVE_LOW>;
linux,default-trigger = "mmc0";
};
- standby {
+ standby_led: led-1 {
gpios = <&rk805 0 GPIO_ACTIVE_LOW>;
linux,default-trigger = "heartbeat";
};
};
- sound {
- compatible = "audio-graph-card";
- label = "rockchip,rk3328";
- dais = <&i2s1_p0
- &spdif_p0>;
+ spdif_sound: spdif-sound {
+ compatible = "simple-audio-card";
+ simple-audio-card,name = "SPDIF";
+
+ simple-audio-card,cpu {
+ sound-dai = <&spdif>;
+ };
+
+ simple-audio-card,codec {
+ sound-dai = <&spdif_dit>;
+ };
};
- spdif-dit {
+ spdif_dit: spdif-dit {
compatible = "linux,spdif-dit";
#sound-dai-cells = <0>;
-
- port {
- dit_p0_0: endpoint {
- remote-endpoint = <&spdif_p0_0>;
- };
- };
};
};
+&analog_sound {
+ status = "okay";
+};
+
&codec {
mute-gpios = <&grf_gpio 0 GPIO_ACTIVE_LOW>;
status = "okay";
-
- port@0 {
- codec_p0_0: endpoint {
- remote-endpoint = <&i2s1_p0_0>;
- };
- };
};
&cpu0 {
@@ -163,6 +166,10 @@
status = "okay";
};
+&hdmi_sound {
+ status = "okay";
+};
+
&hdmiphy {
status = "okay";
};
@@ -278,16 +285,12 @@
};
};
-&i2s1 {
+&i2s0 {
status = "okay";
+};
- i2s1_p0: port {
- i2s1_p0_0: endpoint {
- dai-format = "i2s";
- mclk-fs = <256>;
- remote-endpoint = <&codec_p0_0>;
- };
- };
+&i2s1 {
+ status = "okay";
};
&io_domains {
@@ -337,12 +340,6 @@
&spdif {
pinctrl-0 = <&spdifm0_tx>;
status = "okay";
-
- spdif_p0: port {
- spdif_p0_0: endpoint {
- remote-endpoint = <&dit_p0_0>;
- };
- };
};
&spi0 {
@@ -384,6 +381,11 @@
status = "okay";
};
+&usbdrd3 {
+ dr_mode = "host";
+ status = "okay";
+};
+
&usb_host0_ehci {
status = "okay";
};
diff --git a/arch/arm/dts/rk3328.dtsi b/arch/arm/dts/rk3328.dtsi
index 945387e579..27e45d5886 100644
--- a/arch/arm/dts/rk3328.dtsi
+++ b/arch/arm/dts/rk3328.dtsi
@@ -142,23 +142,6 @@
};
};
- amba: bus {
- compatible = "simple-bus";
- #address-cells = <2>;
- #size-cells = <2>;
- ranges;
-
- dmac: dmac@ff1f0000 {
- compatible = "arm,pl330", "arm,primecell";
- reg = <0x0 0xff1f0000 0x0 0x4000>;
- interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&cru ACLK_DMAC>;
- clock-names = "apb_pclk";
- #dma-cells = <1>;
- };
- };
-
analog_sound: analog-sound {
compatible = "simple-audio-card";
simple-audio-card,format = "i2s";
@@ -305,7 +288,7 @@
status = "disabled";
};
- grf_gpio: grf-gpio {
+ grf_gpio: gpio {
compatible = "rockchip,rk3328-grf-gpio";
gpio-controller;
#gpio-cells = <2>;
@@ -317,15 +300,18 @@
#address-cells = <1>;
#size-cells = <0>;
- pd_hevc@RK3328_PD_HEVC {
+ power-domain@RK3328_PD_HEVC {
reg = <RK3328_PD_HEVC>;
+ #power-domain-cells = <0>;
};
- pd_video@RK3328_PD_VIDEO {
+ power-domain@RK3328_PD_VIDEO {
reg = <RK3328_PD_VIDEO>;
+ #power-domain-cells = <0>;
};
- pd_vpu@RK3328_PD_VPU {
+ power-domain@RK3328_PD_VPU {
reg = <RK3328_PD_VPU>;
clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>;
+ #power-domain-cells = <0>;
};
};
@@ -452,7 +438,7 @@
};
wdt: watchdog@ff1a0000 {
- compatible = "snps,dw-wdt";
+ compatible = "rockchip,rk3328-wdt", "snps,dw-wdt";
reg = <0x0 0xff1a0000 0x0 0x100>;
interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&cru PCLK_WDT>;
@@ -503,6 +489,17 @@
status = "disabled";
};
+ dmac: dmac@ff1f0000 {
+ compatible = "arm,pl330", "arm,primecell";
+ reg = <0x0 0xff1f0000 0x0 0x4000>;
+ interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
+ arm,pl330-periph-burst;
+ clocks = <&cru ACLK_DMAC>;
+ clock-names = "apb_pclk";
+ #dma-cells = <1>;
+ };
+
thermal-zones {
soc_thermal: soc-thermal {
polling-delay-passive = <20>;
@@ -552,9 +549,9 @@
clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>;
clock-names = "tsadc", "apb_pclk";
pinctrl-names = "init", "default", "sleep";
- pinctrl-0 = <&otp_gpio>;
+ pinctrl-0 = <&otp_pin>;
pinctrl-1 = <&otp_out>;
- pinctrl-2 = <&otp_gpio>;
+ pinctrl-2 = <&otp_pin>;
resets = <&cru SRST_TSADC>;
reset-names = "tsadc-apb";
rockchip,grf = <&grf>;
@@ -822,7 +819,7 @@
#address-cells = <1>;
#size-cells = <1>;
- u2phy: usb2-phy@100 {
+ u2phy: usb2phy@100 {
compatible = "rockchip,rk3328-usb2phy";
reg = <0x100 0x10>;
clocks = <&xin24m>;
@@ -922,11 +919,12 @@
"mac_clk_tx", "clk_mac_ref",
"aclk_mac", "pclk_mac",
"clk_macphy";
- resets = <&cru SRST_GMAC2PHY_A>, <&cru SRST_MACPHY>;
- reset-names = "stmmaceth", "mac-phy";
+ resets = <&cru SRST_GMAC2PHY_A>;
+ reset-names = "stmmaceth";
phy-mode = "rmii";
phy-handle = <&phy>;
snps,txpbl = <0x4>;
+ clock_in_out = "output";
status = "disabled";
mdio {
@@ -934,7 +932,7 @@
#address-cells = <1>;
#size-cells = <0>;
- phy: phy@0 {
+ phy: ethernet-phy@0 {
compatible = "ethernet-phy-id1234.d400", "ethernet-phy-ieee802.3-c22";
reg = <0>;
clocks = <&cru SCLK_MAC2PHY_OUT>;
@@ -966,6 +964,25 @@
status = "disabled";
};
+ usbdrd3: usb@ff600000 {
+ compatible = "rockchip,rk3328-dwc3", "snps,dwc3";
+ reg = <0x0 0xff600000 0x0 0x100000>;
+ interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&cru SCLK_USB3OTG_REF>, <&cru SCLK_USB3OTG_SUSPEND>,
+ <&cru ACLK_USB3OTG>;
+ clock-names = "ref_clk", "suspend_clk",
+ "bus_clk";
+ dr_mode = "otg";
+ phy_type = "utmi_wide";
+ snps,dis-del-phy-power-chg-quirk;
+ snps,dis_enblslpm_quirk;
+ snps,dis-tx-ipgap-linecheck-quirk;
+ snps,dis-u2-freeclk-exists-quirk;
+ snps,dis_u2_susphy_quirk;
+ snps,dis_u3_susphy_quirk;
+ status = "disabled";
+ };
+
/*
* U-boot Specific Change
*
@@ -1163,7 +1180,7 @@
rockchip,pins = <0 RK_PA5 2 &pcfg_pull_none>,
<0 RK_PA6 2 &pcfg_pull_none>;
};
- i2c3_gpio: i2c3-gpio {
+ i2c3_pins: i2c3-pins {
rockchip,pins =
<0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>,
<0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
@@ -1234,7 +1251,7 @@
};
tsadc {
- otp_gpio: otp-gpio {
+ otp_pin: otp-pin {
rockchip,pins = <2 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
};
@@ -1245,8 +1262,8 @@
uart0 {
uart0_xfer: uart0-xfer {
- rockchip,pins = <1 RK_PB1 1 &pcfg_pull_up>,
- <1 RK_PB0 1 &pcfg_pull_none>;
+ rockchip,pins = <1 RK_PB1 1 &pcfg_pull_none>,
+ <1 RK_PB0 1 &pcfg_pull_up>;
};
uart0_cts: uart0-cts {
@@ -1257,15 +1274,15 @@
rockchip,pins = <1 RK_PB2 1 &pcfg_pull_none>;
};
- uart0_rts_gpio: uart0-rts-gpio {
+ uart0_rts_pin: uart0-rts-pin {
rockchip,pins = <1 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
uart1 {
uart1_xfer: uart1-xfer {
- rockchip,pins = <3 RK_PA4 4 &pcfg_pull_up>,
- <3 RK_PA6 4 &pcfg_pull_none>;
+ rockchip,pins = <3 RK_PA4 4 &pcfg_pull_none>,
+ <3 RK_PA6 4 &pcfg_pull_up>;
};
uart1_cts: uart1-cts {
@@ -1276,22 +1293,22 @@
rockchip,pins = <3 RK_PA5 4 &pcfg_pull_none>;
};
- uart1_rts_gpio: uart1-rts-gpio {
+ uart1_rts_pin: uart1-rts-pin {
rockchip,pins = <3 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
uart2-0 {
uart2m0_xfer: uart2m0-xfer {
- rockchip,pins = <1 RK_PA0 2 &pcfg_pull_up>,
- <1 RK_PA1 2 &pcfg_pull_none>;
+ rockchip,pins = <1 RK_PA0 2 &pcfg_pull_none>,
+ <1 RK_PA1 2 &pcfg_pull_up>;
};
};
uart2-1 {
uart2m1_xfer: uart2m1-xfer {
- rockchip,pins = <2 RK_PA0 1 &pcfg_pull_up>,
- <2 RK_PA1 1 &pcfg_pull_none>;
+ rockchip,pins = <2 RK_PA0 1 &pcfg_pull_none>,
+ <2 RK_PA1 1 &pcfg_pull_up>;
};
};
@@ -1502,7 +1519,7 @@
rockchip,pins = <2 RK_PA7 1 &pcfg_pull_up_4ma>;
};
- sdmmc0m0_gpio: sdmmc0m0-gpio {
+ sdmmc0m0_pin: sdmmc0m0-pin {
rockchip,pins = <2 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up_4ma>;
};
};
@@ -1512,7 +1529,7 @@
rockchip,pins = <0 RK_PD6 3 &pcfg_pull_up_4ma>;
};
- sdmmc0m1_gpio: sdmmc0m1-gpio {
+ sdmmc0m1_pin: sdmmc0m1-pin {
rockchip,pins = <0 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up_4ma>;
};
};
@@ -1545,7 +1562,7 @@
<1 RK_PA3 1 &pcfg_pull_up_8ma>;
};
- sdmmc0_gpio: sdmmc0-gpio {
+ sdmmc0_pins: sdmmc0-pins {
rockchip,pins =
<1 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
<1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
@@ -1587,7 +1604,7 @@
<3 RK_PA7 3 &pcfg_pull_up_4ma>;
};
- sdmmc0ext_gpio: sdmmc0ext-gpio {
+ sdmmc0ext_pins: sdmmc0ext-pins {
rockchip,pins =
<3 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
<3 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
@@ -1632,7 +1649,7 @@
<1 RK_PC1 1 &pcfg_pull_up_8ma>;
};
- sdmmc1_gpio: sdmmc1-gpio {
+ sdmmc1_pins: sdmmc1-pins {
rockchip,pins =
<1 RK_PB4 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
<1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
@@ -1826,7 +1843,7 @@
tsadc_int: tsadc-int {
rockchip,pins = <2 RK_PB5 2 &pcfg_pull_none>;
};
- tsadc_gpio: tsadc-gpio {
+ tsadc_pin: tsadc-pin {
rockchip,pins = <2 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
--
2.31.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 3/3] arm: dts: sync the Rockhip 3368 SoCs from Linux
2021-07-22 15:20 [PATCH 1/3] arm: dts: sync the Rockhip 3399 SoCs from Linux Peter Robinson
2021-07-22 15:20 ` [PATCH 2/3] arm: dts: sync the Rockhip 3328 " Peter Robinson
@ 2021-07-22 15:20 ` Peter Robinson
2021-08-11 10:17 ` Kever Yang
2021-08-11 10:16 ` [PATCH 1/3] arm: dts: sync the Rockhip 3399 " Kever Yang
2021-08-12 0:55 ` Kever Yang
3 siblings, 1 reply; 7+ messages in thread
From: Peter Robinson @ 2021-07-22 15:20 UTC (permalink / raw)
To: David Bauer, Loic Devulder, Chen-Yu Tsai, Banglang Huang,
Matwey V. Kornilov, Philipp Tomsich, Klaus Goger, Heiko Stuebner,
Kever Yang, u-boot
Cc: Peter Robinson
Sync the rk3368 DTs and associated bits from 5.14-rc1.
Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
---
arch/arm/dts/rk3368-geekbox.dts | 70 +++--------
arch/arm/dts/rk3368-lion-haikou.dts | 4 +
arch/arm/dts/rk3368-lion.dtsi | 21 +---
arch/arm/dts/rk3368-px5-evb.dts | 178 +++++++++++-----------------
arch/arm/dts/rk3368.dtsi | 65 +++++-----
5 files changed, 118 insertions(+), 220 deletions(-)
diff --git a/arch/arm/dts/rk3368-geekbox.dts b/arch/arm/dts/rk3368-geekbox.dts
index 46cdddfcea..62aa97a0b8 100644
--- a/arch/arm/dts/rk3368-geekbox.dts
+++ b/arch/arm/dts/rk3368-geekbox.dts
@@ -1,43 +1,6 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (c) 2016 Andreas Färber
- *
- * This file is dual-licensed: you can use it either under the terms
- * of the GPL or the X11 license, at your option. Note that this dual
- * licensing only applies to this file, and not this project as a
- * whole.
- *
- * a) This file is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This file is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * Or, alternatively,
- *
- * b) Permission is hereby granted, free of charge, to any person
- * obtaining a copy of this software and associated documentation
- * files (the "Software"), to deal in the Software without
- * restriction, including without limitation the rights to use,
- * copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following
- * conditions:
- *
- * The above copyright notice and this permission notice shall be
- * included in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
*/
/dts-v1/;
@@ -48,6 +11,10 @@
model = "GeekBox";
compatible = "geekbuying,geekbox", "rockchip,rk3368";
+ aliases {
+ mmc0 = &emmc;
+ };
+
chosen {
stdout-path = "serial2:115200n8";
};
@@ -66,7 +33,7 @@
ir: ir-receiver {
compatible = "gpio-ir-receiver";
- gpios = <&gpio3 30 GPIO_ACTIVE_LOW>;
+ gpios = <&gpio3 RK_PD6 GPIO_ACTIVE_LOW>;
pinctrl-names = "default";
pinctrl-0 = <&ir_int>;
};
@@ -77,7 +44,7 @@
pinctrl-0 = <&pwr_key>;
power {
- gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
+ gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_LOW>;
label = "GPIO Power";
linux,code = <KEY_POWER>;
wakeup-source;
@@ -87,14 +54,14 @@
leds: gpio-leds {
compatible = "gpio-leds";
- blue {
- gpios = <&gpio2 2 GPIO_ACTIVE_HIGH>;
+ blue_led: led-0 {
+ gpios = <&gpio2 RK_PA2 GPIO_ACTIVE_HIGH>;
label = "geekbox:blue:led";
default-state = "on";
};
- red {
- gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
+ red_led: led-1 {
+ gpios = <&gpio2 RK_PA3 GPIO_ACTIVE_HIGH>;
label = "geekbox:red:led";
default-state = "off";
};
@@ -115,10 +82,7 @@
bus-width = <8>;
cap-mmc-highspeed;
clock-frequency = <150000000>;
- disable-wp;
- keep-power-in-suspend;
non-removable;
- num-slots = <1>;
vmmc-supply = <&vcc_io>;
vqmmc-supply = <&vcc18_flash>;
pinctrl-names = "default";
@@ -147,7 +111,7 @@
pinctrl-names = "default";
pinctrl-0 = <&pmic_int>, <&pmic_sleep>;
interrupt-parent = <&gpio0>;
- interrupts = <5 IRQ_TYPE_LEVEL_LOW>;
+ interrupts = <RK_PA5 IRQ_TYPE_LEVEL_LOW>;
rockchip,system-power-controller;
vcc1-supply = <&vcc_sys>;
vcc2-supply = <&vcc_sys>;
@@ -258,8 +222,6 @@
};
vcc_sd: SWITCH_REG1 {
- regulator-always-on;
- regulator-boot-on;
regulator-name = "vcc_sd";
};
@@ -275,23 +237,23 @@
&pinctrl {
ir {
ir_int: ir-int {
- rockchip,pins = <3 30 RK_FUNC_GPIO &pcfg_pull_none>;
+ rockchip,pins = <3 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
keys {
pwr_key: pwr-key {
- rockchip,pins = <0 2 RK_FUNC_GPIO &pcfg_pull_none>;
+ rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
pmic {
pmic_sleep: pmic-sleep {
- rockchip,pins = <0 0 RK_FUNC_2 &pcfg_pull_none>;
+ rockchip,pins = <0 RK_PA0 2 &pcfg_pull_none>;
};
pmic_int: pmic-int {
- rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>;
+ rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
};
};
};
diff --git a/arch/arm/dts/rk3368-lion-haikou.dts b/arch/arm/dts/rk3368-lion-haikou.dts
index 7fcb1eacea..cae01d35b9 100644
--- a/arch/arm/dts/rk3368-lion-haikou.dts
+++ b/arch/arm/dts/rk3368-lion-haikou.dts
@@ -10,6 +10,10 @@
model = "Theobroma Systems RK3368-uQ7 Baseboard";
compatible = "tsd,rk3368-lion-haikou", "rockchip,rk3368";
+ aliases {
+ mmc1 = &sdmmc;
+ };
+
chosen {
stdout-path = "serial0:115200n8";
};
diff --git a/arch/arm/dts/rk3368-lion.dtsi b/arch/arm/dts/rk3368-lion.dtsi
index 532e6a6828..bcd7977fb0 100644
--- a/arch/arm/dts/rk3368-lion.dtsi
+++ b/arch/arm/dts/rk3368-lion.dtsi
@@ -7,6 +7,10 @@
#include "rk3368.dtsi"
/ {
+ aliases {
+ mmc0 = &emmc;
+ };
+
chosen {
stdout-path = "serial0:115200n8";
};
@@ -150,7 +154,6 @@
assigned-clocks = <&cru SCLK_MAC>;
assigned-clock-parents = <&ext_gmac>;
clock_in_out = "input";
- phy-handle = <&phy0>;
phy-supply = <&vcc33_io>;
phy-mode = "rgmii";
pinctrl-names = "default";
@@ -161,22 +164,6 @@
tx_delay = <0x10>;
rx_delay = <0x10>;
status = "okay";
-
- mdio {
- compatible = "snps,dwmac-mdio";
- #address-cells = <1>;
- #size-cells = <0>;
-
- /* Microsemi VSC8531-02 */
- phy0: phy@0 {
- compatible = "ethernet-phy-id0007.0570";
- reg = <0>;
- vsc8531,clk-out-frequency = <125000000>;
- vsc8531,edge-slowdown = <7>;
- vsc8531,led-0-mode = <1>;
- vsc8531,led-1-mode = <2>;
- };
- };
};
&i2c0 {
diff --git a/arch/arm/dts/rk3368-px5-evb.dts b/arch/arm/dts/rk3368-px5-evb.dts
index e9c5ebad47..5ccaa5f7a3 100644
--- a/arch/arm/dts/rk3368-px5-evb.dts
+++ b/arch/arm/dts/rk3368-px5-evb.dts
@@ -1,43 +1,6 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
- * Copyright (c) 2017 Rockchip Electronics Co., Ltd
- *
- * This file is dual-licensed: you can use it either under the terms
- * of the GPL or the X11 license, at your option. Note that this dual
- * licensing only applies to this file, and not this project as a
- * whole.
- *
- * a) This file is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This file is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * Or, alternatively,
- *
- * b) Permission is hereby granted, free of charge, to any person
- * obtaining a copy of this software and associated documentation
- * files (the "Software"), to deal in the Software without
- * restriction, including without limitation the rights to use,
- * copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following
- * conditions:
- *
- * The above copyright notice and this permission notice shall be
- * included in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
+ * Copyright (c) 2016 Fuzhou Rockchip Electronics Co., Ltd
*/
/dts-v1/;
@@ -45,30 +8,21 @@
#include <dt-bindings/input/input.h>
/ {
- model = "PX5 EVB";
+ model = "Rockchip PX5 EVB";
compatible = "rockchip,px5-evb", "rockchip,px5", "rockchip,rk3368";
+ aliases {
+ mmc0 = &sdmmc;
+ mmc1 = &emmc;
+ };
+
chosen {
stdout-path = "serial4:115200n8";
};
memory@0 {
- device_type = "memory";
reg = <0x0 0x0 0x0 0x40000000>;
- };
-
- ext_gmac: gmac-clk {
- compatible = "fixed-clock";
- clock-frequency = <125000000>;
- clock-output-names = "ext_gmac";
- #clock-cells = <0>;
- };
-
- ir: ir-receiver {
- compatible = "gpio-ir-receiver";
- gpios = <&gpio3 30 GPIO_ACTIVE_LOW>;
- pinctrl-names = "default";
- pinctrl-0 = <&ir_int>;
+ device_type = "memory";
};
keys: gpio-keys {
@@ -77,29 +31,13 @@
pinctrl-0 = <&pwr_key>;
power {
- gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
+ gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_LOW>;
label = "GPIO Power";
linux,code = <KEY_POWER>;
wakeup-source;
};
};
- leds: gpio-leds {
- compatible = "gpio-leds";
-
- blue {
- gpios = <&gpio2 2 GPIO_ACTIVE_HIGH>;
- label = "geekbox:blue:led";
- default-state = "on";
- };
-
- red {
- gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
- label = "geekbox:red:led";
- default-state = "off";
- };
- };
-
vcc_sys: vcc-sys-regulator {
compatible = "regulator-fixed";
regulator-name = "vcc_sys";
@@ -115,27 +53,14 @@
bus-width = <8>;
cap-mmc-highspeed;
clock-frequency = <150000000>;
- disable-wp;
- keep-power-in-suspend;
+ mmc-hs200-1_8v;
+ no-sdio;
+ no-sd;
non-removable;
- num-slots = <1>;
- vmmc-supply = <&vcc_io>;
- vqmmc-supply = <&vcc18_flash>;
pinctrl-names = "default";
pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_bus8>;
-};
-
-&gmac {
- status = "okay";
- phy-supply = <&vcc_lan>;
- phy-mode = "rgmii";
- clock_in_out = "input";
- assigned-clocks = <&cru SCLK_MAC>;
- assigned-clock-parents = <&ext_gmac>;
- pinctrl-names = "default";
- pinctrl-0 = <&rgmii_pins>;
- tx_delay = <0x30>;
- rx_delay = <0x10>;
+ vmmc-supply = <&vcc_io>;
+ vqmmc-supply = <&vcc18_flash>;
};
&i2c0 {
@@ -144,10 +69,10 @@
rk808: pmic@1b {
compatible = "rockchip,rk808";
reg = <0x1b>;
+ interrupt-parent = <&gpio0>;
+ interrupts = <RK_PA5 IRQ_TYPE_LEVEL_LOW>;
pinctrl-names = "default";
pinctrl-0 = <&pmic_int>, <&pmic_sleep>;
- interrupt-parent = <&gpio0>;
- interrupts = <5 IRQ_TYPE_LEVEL_LOW>;
rockchip,system-power-controller;
vcc1-supply = <&vcc_sys>;
vcc2-supply = <&vcc_sys>;
@@ -202,12 +127,12 @@
regulator-name = "vcc18_flash";
};
- vcc33_lcd: LDO_REG2 {
+ vcca_33: LDO_REG2 {
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
- regulator-name = "vcc33_lcd";
+ regulator-name = "vcca_33";
};
vdd_10: LDO_REG3 {
@@ -218,11 +143,10 @@
regulator-name = "vdd_10";
};
- vcca_18: LDO_REG4 {
- regulator-boot-on;
- regulator-min-microvolt = <1800000>;
- regulator-max-microvolt = <1800000>;
- regulator-name = "vcca_18";
+ avdd_33: LDO_REG4 {
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-name = "avdd_33";
};
vccio_sd: LDO_REG5 {
@@ -258,46 +182,76 @@
};
vcc_sd: SWITCH_REG1 {
- regulator-always-on;
- regulator-boot-on;
regulator-name = "vcc_sd";
};
- vcc_lan: SWITCH_REG2 {
+ vcc33_lcd: SWITCH_REG2 {
regulator-always-on;
regulator-boot-on;
- regulator-name = "vcc_lan";
+ regulator-name = "vcc33_lcd";
};
};
};
};
-&pinctrl {
- ir {
- ir_int: ir-int {
- rockchip,pins = <3 30 RK_FUNC_GPIO &pcfg_pull_none>;
- };
+&i2c1 {
+ status = "okay";
+
+ accelerometer@18 {
+ compatible = "bosch,bma250";
+ reg = <0x18>;
+ interrupt-parent = <&gpio2>;
+ interrupts = <RK_PC1 IRQ_TYPE_LEVEL_LOW>;
};
+};
+&i2c2 {
+ status = "okay";
+
+ gsl1680: touchscreen@40 {
+ compatible = "silead,gsl1680";
+ reg = <0x40>;
+ interrupt-parent = <&gpio3>;
+ interrupts = <RK_PD4 IRQ_TYPE_EDGE_FALLING>;
+ power-gpios = <&gpio3 RK_PB7 GPIO_ACTIVE_HIGH>;
+ touchscreen-size-x = <800>;
+ touchscreen-size-y = <1280>;
+ silead,max-fingers = <5>;
+ };
+};
+
+&pinctrl {
keys {
pwr_key: pwr-key {
- rockchip,pins = <0 2 RK_FUNC_GPIO &pcfg_pull_none>;
+ rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
pmic {
pmic_sleep: pmic-sleep {
- rockchip,pins = <0 0 RK_FUNC_2 &pcfg_pull_none>;
+ rockchip,pins = <0 RK_PA0 2 &pcfg_pull_none>;
};
pmic_int: pmic-int {
- rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>;
+ rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
};
};
};
-&saradc {
+&sdmmc {
status = "okay";
+ bus-width = <4>;
+ cap-mmc-highspeed;
+ cap-sd-highspeed;
+ card-detect-delay = <200>;
+ no-sdio;
+ sd-uhs-sdr12;
+ sd-uhs-sdr25;
+ pinctrl-names = "default";
+ pinctrl-0 = <&sdmmc_clk>, <&sdmmc_cmd>, <&sdmmc_bus4>, <&sdmmc_cd>;
+ rockchip,default-sample-phase = <90>;
+ vmmc-supply = <&vcc_sd>;
+ vqmmc-supply = <&vccio_sd>;
};
&tsadc {
diff --git a/arch/arm/dts/rk3368.dtsi b/arch/arm/dts/rk3368.dtsi
index cd2c322071..4c64fbefb4 100644
--- a/arch/arm/dts/rk3368.dtsi
+++ b/arch/arm/dts/rk3368.dtsi
@@ -136,37 +136,6 @@
};
};
- amba: bus {
- compatible = "simple-bus";
- #address-cells = <2>;
- #size-cells = <2>;
- ranges;
-
- dmac_peri: dma-controller@ff250000 {
- compatible = "arm,pl330", "arm,primecell";
- reg = <0x0 0xff250000 0x0 0x4000>;
- interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
- #dma-cells = <1>;
- arm,pl330-broken-no-flushp;
- arm,pl330-periph-burst;
- clocks = <&cru ACLK_DMAC_PERI>;
- clock-names = "apb_pclk";
- };
-
- dmac_bus: dma-controller@ff600000 {
- compatible = "arm,pl330", "arm,primecell";
- reg = <0x0 0xff600000 0x0 0x4000>;
- interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
- #dma-cells = <1>;
- arm,pl330-broken-no-flushp;
- arm,pl330-periph-burst;
- clocks = <&cru ACLK_DMAC_BUS>;
- clock-names = "apb_pclk";
- };
- };
-
arm-pmu {
compatible = "arm,armv8-pmuv3";
interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
@@ -399,8 +368,20 @@
status = "disabled";
};
+ dmac_peri: dma-controller@ff250000 {
+ compatible = "arm,pl330", "arm,primecell";
+ reg = <0x0 0xff250000 0x0 0x4000>;
+ interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
+ #dma-cells = <1>;
+ arm,pl330-broken-no-flushp;
+ arm,pl330-periph-burst;
+ clocks = <&cru ACLK_DMAC_PERI>;
+ clock-names = "apb_pclk";
+ };
+
thermal-zones {
- cpu {
+ cpu_thermal: cpu-thermal {
polling-delay-passive = <100>; /* milliseconds */
polling-delay = <5000>; /* milliseconds */
@@ -444,7 +425,7 @@
};
};
- gpu {
+ gpu_thermal: gpu-thermal {
polling-delay-passive = <100>; /* milliseconds */
polling-delay = <5000>; /* milliseconds */
@@ -532,6 +513,18 @@
status = "disabled";
};
+ dmac_bus: dma-controller@ff600000 {
+ compatible = "arm,pl330", "arm,primecell";
+ reg = <0x0 0xff600000 0x0 0x4000>;
+ interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
+ #dma-cells = <1>;
+ arm,pl330-broken-no-flushp;
+ arm,pl330-periph-burst;
+ clocks = <&cru ACLK_DMAC_BUS>;
+ clock-names = "apb_pclk";
+ };
+
i2c0: i2c@ff650000 {
compatible = "rockchip,rk3368-i2c", "rockchip,rk3288-i2c";
reg = <0x0 0xff650000 0x0 0x1000>;
@@ -565,7 +558,6 @@
pinctrl-names = "default";
pinctrl-0 = <&pwm0_pin>;
clocks = <&cru PCLK_PWM1>;
- clock-names = "pwm";
status = "disabled";
};
@@ -576,7 +568,6 @@
pinctrl-names = "default";
pinctrl-0 = <&pwm1_pin>;
clocks = <&cru PCLK_PWM1>;
- clock-names = "pwm";
status = "disabled";
};
@@ -585,7 +576,6 @@
reg = <0x0 0xff680020 0x0 0x10>;
#pwm-cells = <3>;
clocks = <&cru PCLK_PWM1>;
- clock-names = "pwm";
status = "disabled";
};
@@ -596,7 +586,6 @@
pinctrl-names = "default";
pinctrl-0 = <&pwm3_pin>;
clocks = <&cru PCLK_PWM1>;
- clock-names = "pwm";
status = "disabled";
};
@@ -675,6 +664,8 @@
compatible = "rockchip,rk3368-timer", "rockchip,rk3288-timer";
reg = <0x0 0xff810000 0x0 0x20>;
interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&cru PCLK_TIMER0>, <&cru SCLK_TIMER00>;
+ clock-names = "pclk", "timer";
};
spdif: spdif@ff880000 {
--
2.31.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 1/3] arm: dts: sync the Rockhip 3399 SoCs from Linux
2021-07-22 15:20 [PATCH 1/3] arm: dts: sync the Rockhip 3399 SoCs from Linux Peter Robinson
2021-07-22 15:20 ` [PATCH 2/3] arm: dts: sync the Rockhip 3328 " Peter Robinson
2021-07-22 15:20 ` [PATCH 3/3] arm: dts: sync the Rockhip 3368 " Peter Robinson
@ 2021-08-11 10:16 ` Kever Yang
2021-08-12 0:55 ` Kever Yang
3 siblings, 0 replies; 7+ messages in thread
From: Kever Yang @ 2021-08-11 10:16 UTC (permalink / raw)
To: Peter Robinson
Cc: David Bauer, Loic Devulder, Chen-Yu Tsai, Banglang Huang,
Matwey V. Kornilov, Philipp Tomsich, Klaus Goger, Heiko Stuebner,
Kever Yang, U-Boot-Denx
Peter Robinson <pbrobinson@gmail.com> 于2021年7月22日周四 下午11:21写道:
>
> Sync the rk3399 DTs and associated bits from 5.14-rc1.
>
> Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
Thanks,
- Kever
> ---
> arch/arm/dts/rk3399-evb.dts | 4 +
> arch/arm/dts/rk3399-ficus.dts | 29 +-
> arch/arm/dts/rk3399-firefly.dts | 178 ++++++++++--
> arch/arm/dts/rk3399-gru.dtsi | 14 +-
> arch/arm/dts/rk3399-khadas-edge.dtsi | 40 ++-
> arch/arm/dts/rk3399-leez-p710.dts | 14 +-
> arch/arm/dts/rk3399-nanopc-t4.dts | 1 +
> arch/arm/dts/rk3399-nanopi-r4s.dts | 135 +++++----
> arch/arm/dts/rk3399-nanopi4.dtsi | 18 +-
> arch/arm/dts/rk3399-opp.dtsi | 40 +--
> arch/arm/dts/rk3399-orangepi.dts | 72 ++++-
> arch/arm/dts/rk3399-pinebook-pro.dts | 120 +++++---
> arch/arm/dts/rk3399-puma-haikou.dts | 10 +-
> arch/arm/dts/rk3399-puma.dtsi | 61 +---
> arch/arm/dts/rk3399-roc-pc-mezzanine.dts | 22 +-
> arch/arm/dts/rk3399-roc-pc.dtsi | 59 +++-
> arch/arm/dts/rk3399-rock-pi-4.dtsi | 29 +-
> arch/arm/dts/rk3399-rock-pi-4a.dts | 2 +-
> arch/arm/dts/rk3399-rock-pi-4b.dts | 6 +-
> arch/arm/dts/rk3399-rock-pi-4c.dts | 6 +-
> arch/arm/dts/rk3399-rock960.dts | 82 ++----
> arch/arm/dts/rk3399-rock960.dtsi | 10 +-
> arch/arm/dts/rk3399-rockpro64.dtsi | 95 ++++++-
> arch/arm/dts/rk3399.dtsi | 269 +++++++++++-------
> arch/arm/dts/rk3399pro-vmarc-som.dtsi | 22 +-
> .../dts/rockchip-radxa-dalang-carrier.dtsi | 21 ++
> 26 files changed, 897 insertions(+), 462 deletions(-)
>
> diff --git a/arch/arm/dts/rk3399-evb.dts b/arch/arm/dts/rk3399-evb.dts
> index 694b0d08d6..7b717ebec8 100644
> --- a/arch/arm/dts/rk3399-evb.dts
> +++ b/arch/arm/dts/rk3399-evb.dts
> @@ -11,6 +11,10 @@
> model = "Rockchip RK3399 Evaluation Board";
> compatible = "rockchip,rk3399-evb", "rockchip,rk3399";
>
> + aliases {
> + mmc0 = &sdhci;
> + };
> +
> backlight: backlight {
> compatible = "pwm-backlight";
> brightness-levels = <
> diff --git a/arch/arm/dts/rk3399-ficus.dts b/arch/arm/dts/rk3399-ficus.dts
> index ebe2ee77ba..1ce85a5816 100644
> --- a/arch/arm/dts/rk3399-ficus.dts
> +++ b/arch/arm/dts/rk3399-ficus.dts
> @@ -27,42 +27,43 @@
> leds {
> compatible = "gpio-leds";
> pinctrl-names = "default";
> - pinctrl-0 = <&user_led1>, <&user_led2>, <&user_led3>,
> - <&user_led4>, <&wlan_led>, <&bt_led>;
> + pinctrl-0 = <&user_led1_pin>, <&user_led2_pin>,
> + <&user_led3_pin>, <&user_led4_pin>,
> + <&wlan_led_pin>, <&bt_led_pin>;
>
> - user_led1 {
> + user_led1: led-1 {
> label = "red:user1";
> gpios = <&gpio4 25 0>;
> linux,default-trigger = "heartbeat";
> };
>
> - user_led2 {
> + user_led2: led-2 {
> label = "red:user2";
> gpios = <&gpio4 26 0>;
> linux,default-trigger = "mmc0";
> };
>
> - user_led3 {
> + user_led3: led-3 {
> label = "red:user3";
> gpios = <&gpio4 30 0>;
> linux,default-trigger = "mmc1";
> };
>
> - user_led4 {
> + user_led4: led-4 {
> label = "red:user4";
> gpios = <&gpio1 0 0>;
> panic-indicator;
> linux,default-trigger = "none";
> };
>
> - wlan_active_led {
> + wlan_active_led: led-5 {
> label = "red:wlan";
> gpios = <&gpio1 1 0>;
> linux,default-trigger = "phy0tx";
> default-state = "off";
> };
>
> - bt_active_led {
> + bt_active_led: led-6 {
> label = "red:bt";
> gpios = <&gpio1 4 0>;
> linux,default-trigger = "hci0-power";
> @@ -114,32 +115,32 @@
> };
>
> leds {
> - user_led1: user_led1 {
> + user_led1_pin: user-led1-pin {
> rockchip,pins =
> <4 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>;
> };
>
> - user_led2: user_led2 {
> + user_led2_pin: user-led2-pin {
> rockchip,pins =
> <4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
> };
>
> - user_led3: user_led3 {
> + user_led3_pin: user-led3-pin {
> rockchip,pins =
> <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>;
> };
>
> - user_led4: user_led4 {
> + user_led4_pin: user-led4-pin {
> rockchip,pins =
> <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
> };
>
> - wlan_led: wlan_led {
> + wlan_led_pin: wlan-led-pin {
> rockchip,pins =
> <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
> };
>
> - bt_led: bt_led {
> + bt_led_pin: bt-led-pin {
> rockchip,pins =
> <1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
> };
> diff --git a/arch/arm/dts/rk3399-firefly.dts b/arch/arm/dts/rk3399-firefly.dts
> index d63faf38cc..c4dd2a6b48 100644
> --- a/arch/arm/dts/rk3399-firefly.dts
> +++ b/arch/arm/dts/rk3399-firefly.dts
> @@ -6,6 +6,7 @@
> /dts-v1/;
> #include <dt-bindings/input/linux-event-codes.h>
> #include <dt-bindings/pwm/pwm.h>
> +#include <dt-bindings/usb/pd.h>
> #include "rk3399.dtsi"
> #include "rk3399-opp.dtsi"
>
> @@ -13,6 +14,12 @@
> model = "Firefly-RK3399 Board";
> compatible = "firefly,firefly-rk3399", "rockchip,rk3399";
>
> + aliases {
> + mmc0 = &sdio0;
> + mmc1 = &sdmmc;
> + mmc2 = &sdhci;
> + };
> +
> chosen {
> stdout-path = "serial2:1500000n8";
> };
> @@ -88,18 +95,25 @@
> };
> };
>
> + ir-receiver {
> + compatible = "gpio-ir-receiver";
> + gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_LOW>;
> + pinctrl-0 = <&ir_int>;
> + pinctrl-names = "default";
> + };
> +
> leds {
> compatible = "gpio-leds";
> pinctrl-names = "default";
> - pinctrl-0 = <&work_led_gpio>, <&diy_led_gpio>;
> + pinctrl-0 = <&work_led_pin>, <&diy_led_pin>;
>
> - work-led {
> + work_led: led-0 {
> label = "work";
> default-state = "on";
> gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>;
> };
>
> - diy-led {
> + diy_led: led-1 {
> label = "diy";
> default-state = "off";
> gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>;
> @@ -145,6 +159,23 @@
> reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>;
> };
>
> + sound-dit {
> + compatible = "audio-graph-card";
> + label = "SPDIF";
> + dais = <&spdif_p0>;
> + };
> +
> + spdif-dit {
> + compatible = "linux,spdif-dit";
> + #sound-dai-cells = <0>;
> +
> + port {
> + dit_p0_0: endpoint {
> + remote-endpoint = <&spdif_p0_0>;
> + };
> + };
> + };
> +
> /* switched by pmic_sleep */
> vcc1v8_s3: vcca1v8_s3: vcc1v8-s3 {
> compatible = "regulator-fixed";
> @@ -190,6 +221,17 @@
> vin-supply = <&vcc_sys>;
> };
>
> + vcc5v0_typec: vcc5v0-typec-regulator {
> + compatible = "regulator-fixed";
> + enable-active-high;
> + gpio = <&gpio1 RK_PA3 GPIO_ACTIVE_HIGH>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&vcc5v0_typec_en>;
> + regulator-name = "vcc5v0_typec";
> + regulator-always-on;
> + vin-supply = <&vcc_sys>;
> + };
> +
> vcc_sys: vcc-sys {
> compatible = "regulator-fixed";
> regulator-name = "vcc_sys";
> @@ -515,6 +557,53 @@
> i2c-scl-falling-time-ns = <20>;
> 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>;
> + status = "okay";
> +
> + connector {
> + compatible = "usb-c-connector";
> + data-role = "host";
> + label = "USB-C";
> + op-sink-microwatt = <1000000>;
> + power-role = "dual";
> + sink-pdos =
> + <PDO_FIXED(5000, 2500, PDO_FIXED_USB_COMM)>;
> + source-pdos =
> + <PDO_FIXED(5000, 1400, PDO_FIXED_USB_COMM)>;
> + try-power-role = "sink";
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port@0 {
> + reg = <0>;
> +
> + usbc_hs: endpoint {
> + remote-endpoint =
> + <&u2phy0_typec_hs>;
> + };
> + };
> +
> + port@1 {
> + reg = <1>;
> +
> + usbc_ss: endpoint {
> + remote-endpoint =
> + <&tcphy0_typec_ss>;
> + };
> + };
> + };
> + };
> + };
> +
> accelerometer@68 {
> compatible = "invensense,mpu6500";
> reg = <0x68>;
> @@ -572,12 +661,34 @@
> };
> };
>
> + fusb302x {
> + fusb0_int: fusb0-int {
> + rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
> + };
> + };
> +
> + ir {
> + ir_int: ir-int {
> + rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
> + };
> + };
> +
> lcd-panel {
> lcd_panel_reset: lcd-panel-reset {
> rockchip,pins = <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>;
> };
> };
>
> + leds {
> + work_led_pin: work-led-pin {
> + rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
> + };
> +
> + diy_led_pin: diy-led-pin {
> + rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
> + };
> + };
> +
> pcie {
> pcie_pwr_en: pcie-pwr-en {
> rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
> @@ -589,18 +700,16 @@
> };
>
> pmic {
> - vsel1_gpio: vsel1-gpio {
> - rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>;
> + pmic_int_l: pmic-int-l {
> + rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
> };
>
> - vsel2_gpio: vsel2-gpio {
> - rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
> + vsel1_pin: vsel1-pin {
> + rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>;
> };
> - };
>
> - sdio-pwrseq {
> - wifi_enable_h: wifi-enable-h {
> - rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
> + vsel2_pin: vsel2-pin {
> + rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
> };
> };
>
> @@ -610,9 +719,15 @@
> };
> };
>
> - pmic {
> - pmic_int_l: pmic-int-l {
> - rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
> + sdio-pwrseq {
> + wifi_enable_h: wifi-enable-h {
> + rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
> + };
> + };
> +
> + usb-typec {
> + vcc5v0_typec_en: vcc5v0_typec_en {
> + rockchip,pins = <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
> };
> };
>
> @@ -627,16 +742,6 @@
> rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
> };
> };
> -
> - leds {
> - work_led_gpio: work_led-gpio {
> - rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
> - };
> -
> - diy_led_gpio: diy_led-gpio {
> - rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
> - };
> - };
> };
>
> &pwm0 {
> @@ -704,10 +809,29 @@
> status = "okay";
> };
>
> +&spdif {
> + pinctrl-0 = <&spdif_bus_1>;
> + status = "okay";
> +
> + spdif_p0: port {
> + spdif_p0_0: endpoint {
> + remote-endpoint = <&dit_p0_0>;
> + };
> + };
> +};
> +
> &tcphy0 {
> status = "okay";
> };
>
> +&tcphy0_usb3 {
> + port {
> + tcphy0_typec_ss: endpoint {
> + remote-endpoint = <&usbc_ss>;
> + };
> + };
> +};
> +
> &tcphy1 {
> status = "okay";
> };
> @@ -731,6 +855,12 @@
> phy-supply = <&vcc5v0_host>;
> status = "okay";
> };
> +
> + port {
> + u2phy0_typec_hs: endpoint {
> + remote-endpoint = <&usbc_hs>;
> + };
> + };
> };
>
> &u2phy1 {
> diff --git a/arch/arm/dts/rk3399-gru.dtsi b/arch/arm/dts/rk3399-gru.dtsi
> index f9c5bb607b..b80f19066b 100644
> --- a/arch/arm/dts/rk3399-gru.dtsi
> +++ b/arch/arm/dts/rk3399-gru.dtsi
> @@ -10,6 +10,11 @@
> #include "rk3399-op1-opp.dtsi"
>
> / {
> + aliases {
> + mmc0 = &sdmmc;
> + mmc1 = &sdhci;
> + };
> +
> chosen {
> stdout-path = "serial2:115200n8";
> };
> @@ -247,8 +252,8 @@
> enable-active-high;
> enable-gpio = <&gpio2 2 GPIO_ACTIVE_HIGH>;
> gpios = <&gpio2 28 GPIO_ACTIVE_HIGH>;
> - states = <1800000 0x1
> - 3000000 0x0>;
> + states = <1800000 0x1>,
> + <3000000 0x0>;
>
> regulator-min-microvolt = <1800000>;
> regulator-max-microvolt = <3000000>;
> @@ -342,6 +347,7 @@
> cpu-supply = <&ppvar_bigcpu>;
> };
>
> +
> &cru {
> assigned-clocks =
> <&cru PLL_GPLL>, <&cru PLL_CPLL>,
> @@ -515,7 +521,7 @@ ap_i2c_audio: &i2c8 {
> * configured as SDMMC and not JTAG.
> */
> pinctrl-names = "default";
> - pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_cd_gpio
> + pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_cd_pin
> &sdmmc_bus4>;
>
> bus-width = <4>;
> @@ -766,7 +772,7 @@ ap_i2c_audio: &i2c8 {
> };
>
> /* This is where we actually hook up CD; has external pull */
> - sdmmc_cd_gpio: sdmmc-cd-gpio {
> + sdmmc_cd_pin: sdmmc-cd-pin {
> rockchip,pins = <4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
> };
> };
> diff --git a/arch/arm/dts/rk3399-khadas-edge.dtsi b/arch/arm/dts/rk3399-khadas-edge.dtsi
> index e87a044774..d5c7648c84 100644
> --- a/arch/arm/dts/rk3399-khadas-edge.dtsi
> +++ b/arch/arm/dts/rk3399-khadas-edge.dtsi
> @@ -11,6 +11,12 @@
> #include "rk3399-opp.dtsi"
>
> / {
> + aliases {
> + mmc0 = &sdio0;
> + mmc1 = &sdmmc;
> + mmc2 = &sdhci;
> + };
> +
> chosen {
> stdout-path = "serial2:1500000n8";
> };
> @@ -138,18 +144,26 @@
> };
> };
>
> + ir-receiver {
> + compatible = "gpio-ir-receiver";
> + gpios = <&gpio1 RK_PB6 GPIO_ACTIVE_LOW>;
> + linux,rc-map-name = "rc-khadas";
> + pinctrl-names = "default";
> + pinctrl-0 = <&ir_rx>;
> + };
> +
> leds {
> compatible = "gpio-leds";
> pinctrl-names = "default";
> - pinctrl-0 = <&sys_led_gpio>, <&user_led_gpio>;
> + pinctrl-0 = <&sys_led_pin>, <&user_led_pin>;
>
> - sys-led {
> + sys_led: led-0 {
> label = "sys_led";
> linux,default-trigger = "heartbeat";
> gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
> };
>
> - user-led {
> + user_led: led-1 {
> label = "user_led";
> default-state = "off";
> gpios = <&gpio4 RK_PD0 GPIO_ACTIVE_HIGH>;
> @@ -585,12 +599,18 @@
> };
> };
>
> + ir {
> + ir_rx: ir-rx {
> + rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
> + };
> + };
> +
> leds {
> - sys_led_gpio: sys_led-gpio {
> + sys_led_pin: sys-led-pin {
> rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
> };
>
> - user_led_gpio: user_led-gpio {
> + user_led_pin: user-led-pin {
> rockchip,pins = <4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
> };
> };
> @@ -690,6 +710,16 @@
> status = "okay";
> };
>
> +&spi1 {
> + status = "okay";
> +
> + spiflash: flash@0 {
> + compatible = "winbond,w25q128fw", "jedec,spi-nor";
> + reg = <0>;
> + spi-max-frequency = <104000000>;
> + };
> +};
> +
> &tcphy0 {
> status = "okay";
> };
> diff --git a/arch/arm/dts/rk3399-leez-p710.dts b/arch/arm/dts/rk3399-leez-p710.dts
> index 73be38a537..7c93f840bc 100644
> --- a/arch/arm/dts/rk3399-leez-p710.dts
> +++ b/arch/arm/dts/rk3399-leez-p710.dts
> @@ -13,6 +13,12 @@
> model = "Leez RK3399 P710";
> compatible = "leez,p710", "rockchip,rk3399";
>
> + aliases {
> + mmc0 = &sdio0;
> + mmc1 = &sdmmc;
> + mmc2 = &sdhci;
> + };
> +
> chosen {
> stdout-path = "serial2:1500000n8";
> };
> @@ -341,7 +347,7 @@
> reg = <0x40>;
> fcs,suspend-voltage-selector = <1>;
> pinctrl-names = "default";
> - pinctrl-0 = <&vsel1_gpio>;
> + pinctrl-0 = <&vsel1_pin>;
> regulator-name = "vdd_cpu_b";
> regulator-min-microvolt = <712500>;
> regulator-max-microvolt = <1500000>;
> @@ -360,7 +366,7 @@
> reg = <0x41>;
> fcs,suspend-voltage-selector = <1>;
> pinctrl-names = "default";
> - pinctrl-0 = <&vsel2_gpio>;
> + pinctrl-0 = <&vsel2_pin>;
> regulator-name = "vdd_gpu";
> regulator-min-microvolt = <712500>;
> regulator-max-microvolt = <1500000>;
> @@ -447,11 +453,11 @@
> rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
> };
>
> - vsel1_gpio: vsel1-gpio {
> + vsel1_pin: vsel1-pin {
> rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>;
> };
>
> - vsel2_gpio: vsel2-gpio {
> + vsel2_pin: vsel2-pin {
> rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
> };
> };
> diff --git a/arch/arm/dts/rk3399-nanopc-t4.dts b/arch/arm/dts/rk3399-nanopc-t4.dts
> index e0d75617bb..452728b82e 100644
> --- a/arch/arm/dts/rk3399-nanopc-t4.dts
> +++ b/arch/arm/dts/rk3399-nanopc-t4.dts
> @@ -95,6 +95,7 @@
> };
>
> &pcie0 {
> + ep-gpios = <&gpio2 RK_PA4 GPIO_ACTIVE_HIGH>;
> num-lanes = <4>;
> vpcie3v3-supply = <&vcc3v3_sys>;
> };
> diff --git a/arch/arm/dts/rk3399-nanopi-r4s.dts b/arch/arm/dts/rk3399-nanopi-r4s.dts
> index 6f2cf17bf1..cef4d18b59 100644
> --- a/arch/arm/dts/rk3399-nanopi-r4s.dts
> +++ b/arch/arm/dts/rk3399-nanopi-r4s.dts
> @@ -1,13 +1,15 @@
> // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> /*
> - * Copyright (c) 2016 Fuzhou Rockchip Electronics Co., Ltd
> + * FriendlyElec NanoPC-T4 board device tree source
> *
> - * Copyright (c) 2018 FriendlyElec Computer Tech. Co., Ltd.
> + * Copyright (c) 2020 FriendlyElec Computer Tech. Co., Ltd.
> * (http://www.friendlyarm.com)
> *
> * Copyright (c) 2018 Collabora Ltd.
> - * Copyright (c) 2019 Arm Ltd.
> - * Copyright (C) 2020 Xiaobo <peterwillcn@gmail.com>
> + *
> + * Copyright (c) 2020 Jensen Huang <jensenhuang@friendlyarm.com>
> + * Copyright (c) 2020 Marty Jones <mj8263788@gmail.com>
> + * Copyright (c) 2021 Tianling Shen <cnsztl@gmail.com>
> */
>
> /dts-v1/;
> @@ -17,94 +19,87 @@
> model = "FriendlyElec NanoPi R4S";
> compatible = "friendlyarm,nanopi-r4s", "rockchip,rk3399";
>
> - aliases {
> - ethernet1 = &r8169;
> - };
> + /delete-node/ display-subsystem;
>
> - vdd_5v: vdd-5v {
> - compatible = "regulator-fixed";
> - regulator-name = "vdd_5v";
> - regulator-always-on;
> - regulator-boot-on;
> - };
> + gpio-leds {
> + pinctrl-0 = <&lan_led_pin>, <&sys_led_pin>, <&wan_led_pin>;
>
> - fan: pwm-fan {
> - compatible = "pwm-fan";
> - cooling-levels = <0 12 18 255>;
> - #cooling-cells = <2>;
> - fan-supply = <&vdd_5v>;
> - pwms = <&pwm1 0 50000 0>;
> - };
> -};
> + /delete-node/ led-0;
>
> -&cpu_thermal {
> - trips {
> - cpu_warm: cpu_warm {
> - temperature = <55000>;
> - hysteresis = <2000>;
> - type = "active";
> + lan_led: led-lan {
> + gpios = <&gpio1 RK_PA1 GPIO_ACTIVE_HIGH>;
> + label = "green:lan";
> };
>
> - cpu_hot: cpu_hot {
> - temperature = <65000>;
> - hysteresis = <2000>;
> - type = "active";
> + sys_led: led-sys {
> + gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>;
> + label = "red:power";
> + default-state = "on";
> };
> - };
>
> - cooling-maps {
> - map2 {
> - trip = <&cpu_warm>;
> - cooling-device = <&fan THERMAL_NO_LIMIT 1>;
> + wan_led: led-wan {
> + gpios = <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>;
> + label = "green:wan";
> };
> + };
> +
> + gpio-keys {
> + pinctrl-0 = <&reset_button_pin>;
> +
> + /delete-node/ power;
>
> - map3 {
> - trip = <&cpu_hot>;
> - cooling-device = <&fan 2 THERMAL_NO_LIMIT>;
> + reset {
> + debounce-interval = <50>;
> + gpios = <&gpio1 RK_PC6 GPIO_ACTIVE_LOW>;
> + label = "reset";
> + linux,code = <KEY_RESTART>;
> };
> };
> +
> + vdd_5v: vdd-5v {
> + compatible = "regulator-fixed";
> + regulator-name = "vdd_5v";
> + regulator-always-on;
> + regulator-boot-on;
> + };
> };
>
> &emmc_phy {
> status = "disabled";
> };
>
> -&fusb0 {
> +&i2c4 {
> status = "disabled";
> };
>
> -&leds {
> - lan_led: led-1 {
> - gpios = <&gpio1 RK_PA1 GPIO_ACTIVE_HIGH>;
> - label = "nanopi-r4s:green:lan";
> - };
> -
> - wan_led: led-2 {
> - gpios = <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>;
> - label = "nanopi-r4s:green:wan";
> - };
> -};
> -
> -&leds_gpio {
> - rockchip,pins =
> - <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>,
> - <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>,
> - <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
> -};
> -
> &pcie0 {
> max-link-speed = <1>;
> num-lanes = <1>;
> vpcie3v3-supply = <&vcc3v3_sys>;
> +};
>
> - pcie@0 {
> - reg = <0x00000000 0 0 0 0>;
> - #address-cells = <3>;
> - #size-cells = <2>;
> +&pinctrl {
> + gpio-leds {
> + /delete-node/ status-led-pin;
>
> - r8169: pcie@0,0 {
> - reg = <0x000000 0 0 0 0>;
> - local-mac-address = [ 00 00 00 00 00 00 ];
> + lan_led_pin: lan-led-pin {
> + rockchip,pins = <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
> + };
> +
> + sys_led_pin: sys-led-pin {
> + rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
> + };
> +
> + wan_led_pin: wan-led-pin {
> + rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
> + };
> + };
> +
> + rockchip-key {
> + /delete-node/ power-key;
> +
> + reset_button_pin: reset-button-pin {
> + rockchip,pins = <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_up>;
> };
> };
> };
> @@ -117,10 +112,6 @@
> status = "disabled";
> };
>
> -&sdmmc {
> - host-index-min = <1>;
> -};
> -
> &u2phy0_host {
> phy-supply = <&vdd_5v>;
> };
> @@ -129,6 +120,10 @@
> status = "disabled";
> };
>
> +&uart0 {
> + status = "disabled";
> +};
> +
> &usbdrd_dwc3_0 {
> dr_mode = "host";
> };
> diff --git a/arch/arm/dts/rk3399-nanopi4.dtsi b/arch/arm/dts/rk3399-nanopi4.dtsi
> index c88018a0ef..8c0ff6c96e 100644
> --- a/arch/arm/dts/rk3399-nanopi4.dtsi
> +++ b/arch/arm/dts/rk3399-nanopi4.dtsi
> @@ -17,6 +17,12 @@
> #include "rk3399-opp.dtsi"
>
> / {
> + aliases {
> + mmc0 = &sdio0;
> + mmc1 = &sdmmc;
> + mmc2 = &sdhci;
> + };
> +
> chosen {
> stdout-path = "serial2:1500000n8";
> };
> @@ -117,9 +123,9 @@
> leds: gpio-leds {
> compatible = "gpio-leds";
> pinctrl-names = "default";
> - pinctrl-0 = <&leds_gpio>;
> + pinctrl-0 = <&status_led_pin>;
>
> - status {
> + status_led: led-0 {
> gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>;
> label = "status_led";
> linux,default-trigger = "heartbeat";
> @@ -182,7 +188,7 @@
> #address-cells = <1>;
> #size-cells = <0>;
>
> - rtl8211e: phy@1 {
> + rtl8211e: ethernet-phy@1 {
> reg = <1>;
> interrupt-parent = <&gpio3>;
> interrupts = <RK_PB2 IRQ_TYPE_LEVEL_LOW>;
> @@ -504,8 +510,6 @@
> };
>
> &pcie0 {
> - ep-gpios = <&gpio2 RK_PA4 GPIO_ACTIVE_HIGH>;
> - max-link-speed = <2>;
> num-lanes = <2>;
> vpcie0v9-supply = <&vcca0v9_s3>;
> vpcie1v8-supply = <&vcca1v8_s3>;
> @@ -520,12 +524,12 @@
> };
>
> gpio-leds {
> - leds_gpio: leds-gpio {
> + status_led_pin: status-led-pin {
> rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
> };
> };
>
> - phy {
> + gmac {
> phy_intb: phy-intb {
> rockchip,pins = <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>;
> };
> diff --git a/arch/arm/dts/rk3399-opp.dtsi b/arch/arm/dts/rk3399-opp.dtsi
> index d6f1095abb..da41cd81eb 100644
> --- a/arch/arm/dts/rk3399-opp.dtsi
> +++ b/arch/arm/dts/rk3399-opp.dtsi
> @@ -10,28 +10,28 @@
>
> opp00 {
> opp-hz = /bits/ 64 <408000000>;
> - opp-microvolt = <800000>;
> + opp-microvolt = <825000 825000 1250000>;
> clock-latency-ns = <40000>;
> };
> opp01 {
> opp-hz = /bits/ 64 <600000000>;
> - opp-microvolt = <800000>;
> + opp-microvolt = <825000 825000 1250000>;
> };
> opp02 {
> opp-hz = /bits/ 64 <816000000>;
> - opp-microvolt = <850000>;
> + opp-microvolt = <850000 850000 1250000>;
> };
> opp03 {
> opp-hz = /bits/ 64 <1008000000>;
> - opp-microvolt = <925000>;
> + opp-microvolt = <925000 925000 1250000>;
> };
> opp04 {
> opp-hz = /bits/ 64 <1200000000>;
> - opp-microvolt = <1000000>;
> + opp-microvolt = <1000000 1000000 1250000>;
> };
> opp05 {
> opp-hz = /bits/ 64 <1416000000>;
> - opp-microvolt = <1125000>;
> + opp-microvolt = <1125000 1125000 1250000>;
> };
> };
>
> @@ -41,36 +41,36 @@
>
> opp00 {
> opp-hz = /bits/ 64 <408000000>;
> - opp-microvolt = <800000>;
> + opp-microvolt = <825000 825000 1250000>;
> clock-latency-ns = <40000>;
> };
> opp01 {
> opp-hz = /bits/ 64 <600000000>;
> - opp-microvolt = <800000>;
> + opp-microvolt = <825000 825000 1250000>;
> };
> opp02 {
> opp-hz = /bits/ 64 <816000000>;
> - opp-microvolt = <825000>;
> + opp-microvolt = <825000 825000 1250000>;
> };
> opp03 {
> opp-hz = /bits/ 64 <1008000000>;
> - opp-microvolt = <875000>;
> + opp-microvolt = <875000 875000 1250000>;
> };
> opp04 {
> opp-hz = /bits/ 64 <1200000000>;
> - opp-microvolt = <950000>;
> + opp-microvolt = <950000 950000 1250000>;
> };
> opp05 {
> opp-hz = /bits/ 64 <1416000000>;
> - opp-microvolt = <1025000>;
> + opp-microvolt = <1025000 1025000 1250000>;
> };
> opp06 {
> opp-hz = /bits/ 64 <1608000000>;
> - opp-microvolt = <1100000>;
> + opp-microvolt = <1100000 1100000 1250000>;
> };
> opp07 {
> opp-hz = /bits/ 64 <1800000000>;
> - opp-microvolt = <1200000>;
> + opp-microvolt = <1200000 1200000 1250000>;
> };
> };
>
> @@ -79,27 +79,27 @@
>
> opp00 {
> opp-hz = /bits/ 64 <200000000>;
> - opp-microvolt = <800000>;
> + opp-microvolt = <825000 825000 1150000>;
> };
> opp01 {
> opp-hz = /bits/ 64 <297000000>;
> - opp-microvolt = <800000>;
> + opp-microvolt = <825000 825000 1150000>;
> };
> opp02 {
> opp-hz = /bits/ 64 <400000000>;
> - opp-microvolt = <825000>;
> + opp-microvolt = <825000 825000 1150000>;
> };
> opp03 {
> opp-hz = /bits/ 64 <500000000>;
> - opp-microvolt = <875000>;
> + opp-microvolt = <875000 875000 1150000>;
> };
> opp04 {
> opp-hz = /bits/ 64 <600000000>;
> - opp-microvolt = <925000>;
> + opp-microvolt = <925000 925000 1150000>;
> };
> opp05 {
> opp-hz = /bits/ 64 <800000000>;
> - opp-microvolt = <1100000>;
> + opp-microvolt = <1100000 1100000 1150000>;
> };
> };
> };
> diff --git a/arch/arm/dts/rk3399-orangepi.dts b/arch/arm/dts/rk3399-orangepi.dts
> index f9f7246d4d..04b54abea3 100644
> --- a/arch/arm/dts/rk3399-orangepi.dts
> +++ b/arch/arm/dts/rk3399-orangepi.dts
> @@ -7,6 +7,7 @@
>
> #include "dt-bindings/pwm/pwm.h"
> #include "dt-bindings/input/input.h"
> +#include "dt-bindings/usb/pd.h"
> #include "rk3399.dtsi"
> #include "rk3399-opp.dtsi"
>
> @@ -14,6 +15,12 @@
> model = "Orange Pi RK3399 Board";
> compatible = "rockchip,rk3399-orangepi", "rockchip,rk3399";
>
> + aliases {
> + mmc0 = &sdio0;
> + mmc1 = &sdmmc;
> + mmc2 = &sdhci;
> + };
> +
> chosen {
> stdout-path = "serial2:1500000n8";
> };
> @@ -214,7 +221,7 @@
> #address-cells = <1>;
> #size-cells = <0>;
>
> - rtl8211e: phy@1 {
> + rtl8211e: ethernet-phy@1 {
> reg = <1>;
> interrupt-parent = <&gpio3>;
> interrupts = <RK_PB2 IRQ_TYPE_LEVEL_LOW>;
> @@ -531,6 +538,43 @@
> pinctrl-names = "default";
> pinctrl-0 = <&chg_cc_int_l>;
> vbus-supply = <&vbus_typec>;
> +
> + typec_con: connector {
> + compatible = "usb-c-connector";
> + data-role = "host";
> + label = "USB-C";
> + op-sink-microwatt = <1000000>;
> + power-role = "dual";
> + sink-pdos =
> + <PDO_FIXED(5000, 2500, PDO_FIXED_USB_COMM)>;
> + source-pdos =
> + <PDO_FIXED(5000, 1400, PDO_FIXED_USB_COMM)>;
> + try-power-role = "sink";
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port@0 {
> + reg = <0>;
> + typec_hs: endpoint {
> + remote-endpoint = <&u2phy0_typec_hs>;
> + };
> + };
> + port@1 {
> + reg = <1>;
> + typec_ss: endpoint {
> + remote-endpoint = <&tcphy0_typec_ss>;
> + };
> + };
> + port@2 {
> + reg = <2>;
> + typec_dp: endpoint {
> + remote-endpoint = <&tcphy0_typec_dp>;
> + };
> + };
> + };
> + };
> };
> };
>
> @@ -554,7 +598,7 @@
> };
> };
>
> - phy {
> + gmac {
> phy_intb: phy-intb {
> rockchip,pins = <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>;
> };
> @@ -717,6 +761,22 @@
> status = "okay";
> };
>
> +&tcphy0_dp {
> + port {
> + tcphy0_typec_dp: endpoint {
> + remote-endpoint = <&typec_dp>;
> + };
> + };
> +};
> +
> +&tcphy0_usb3 {
> + port {
> + tcphy0_typec_ss: endpoint {
> + remote-endpoint = <&typec_ss>;
> + };
> + };
> +};
> +
> &tcphy1 {
> status = "okay";
> };
> @@ -739,6 +799,12 @@
> phy-supply = <&vcc5v0_host>;
> status = "okay";
> };
> +
> + port {
> + u2phy0_typec_hs: endpoint {
> + remote-endpoint = <&typec_hs>;
> + };
> + };
> };
>
> &u2phy1 {
> @@ -799,7 +865,7 @@
>
> &usbdrd_dwc3_0 {
> status = "okay";
> - dr_mode = "otg";
> + dr_mode = "host";
> };
>
> &usbdrd3_1 {
> diff --git a/arch/arm/dts/rk3399-pinebook-pro.dts b/arch/arm/dts/rk3399-pinebook-pro.dts
> index 294d21bf45..2b5f001ff4 100644
> --- a/arch/arm/dts/rk3399-pinebook-pro.dts
> +++ b/arch/arm/dts/rk3399-pinebook-pro.dts
> @@ -18,6 +18,12 @@
> model = "Pine64 Pinebook Pro";
> compatible = "pine64,pinebook-pro", "rockchip,rk3399";
>
> + aliases {
> + mmc0 = &sdio0;
> + mmc1 = &sdmmc;
> + mmc2 = &sdhci;
> + };
> +
> chosen {
> stdout-path = "serial2:1500000n8";
> };
> @@ -28,12 +34,19 @@
> pwms = <&pwm0 0 740740 0>;
> };
>
> + bat: battery {
> + compatible = "simple-battery";
> + charge-full-design-microamp-hours = <9800000>;
> + voltage-max-design-microvolt = <4350000>;
> + voltage-min-design-microvolt = <3000000>;
> + };
> +
> edp_panel: edp-panel {
> compatible = "boe,nv140fhmn49";
> backlight = <&backlight>;
> enable-gpios = <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>;
> pinctrl-names = "default";
> - pinctrl-0 = <&panel_en_gpio>;
> + pinctrl-0 = <&panel_en_pin>;
> power-supply = <&vcc3v3_panel>;
>
> ports {
> @@ -60,7 +73,7 @@
> gpio-key-lid {
> compatible = "gpio-keys";
> pinctrl-names = "default";
> - pinctrl-0 = <&lidbtn_gpio>;
> + pinctrl-0 = <&lidbtn_pin>;
>
> lid {
> debounce-interval = <20>;
> @@ -76,7 +89,7 @@
> gpio-key-power {
> compatible = "gpio-keys";
> pinctrl-names = "default";
> - pinctrl-0 = <&pwrbtn_gpio>;
> + pinctrl-0 = <&pwrbtn_pin>;
>
> power {
> debounce-interval = <20>;
> @@ -90,9 +103,9 @@
> leds {
> compatible = "gpio-leds";
> pinctrl-names = "default";
> - pinctrl-0 = <&pwrled_gpio &slpled_gpio>;
> + pinctrl-0 = <&pwr_led_pin &slp_led_pin>;
>
> - green-led {
> + green_led: led-0 {
> color = <LED_COLOR_ID_GREEN>;
> default-state = "on";
> function = LED_FUNCTION_POWER;
> @@ -100,7 +113,7 @@
> label = "green:power";
> };
>
> - red-led {
> + red_led: led-1 {
> color = <LED_COLOR_ID_RED>;
> default-state = "off";
> function = LED_FUNCTION_STANDBY;
> @@ -117,7 +130,7 @@
> clocks = <&rk808 1>;
> clock-names = "ext_clock";
> pinctrl-names = "default";
> - pinctrl-0 = <&wifi_enable_h_gpio>;
> + pinctrl-0 = <&wifi_enable_h_pin>;
> post-power-on-delay-ms = <100>;
> power-off-delay-us = <500000>;
>
> @@ -129,7 +142,7 @@
> es8316-sound {
> compatible = "simple-audio-card";
> pinctrl-names = "default";
> - pinctrl-0 = <&hp_det_gpio>;
> + pinctrl-0 = <&hp_det_pin>;
> simple-audio-card,name = "rockchip,es8316-codec";
> simple-audio-card,format = "i2s";
> simple-audio-card,mclk-fs = <256>;
> @@ -213,7 +226,7 @@
> enable-active-high;
> gpio = <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>;
> pinctrl-names = "default";
> - pinctrl-0 = <&pwr_5v_gpio>;
> + pinctrl-0 = <&pwr_5v_pin>;
> regulator-name = "vcc5v0_usb";
> regulator-always-on;
> regulator-min-microvolt = <5000000>;
> @@ -270,7 +283,7 @@
> enable-active-high;
> gpio = <&gpio0 RK_PA1 GPIO_ACTIVE_HIGH>;
> pinctrl-names = "default";
> - pinctrl-0 = <&sdmmc0_pwr_h_gpio>;
> + pinctrl-0 = <&sdmmc0_pwr_h_pin>;
> regulator-name = "vcc3v0_sd";
> regulator-always-on;
> regulator-min-microvolt = <3000000>;
> @@ -288,7 +301,7 @@
> enable-active-high;
> gpio = <&gpio1 RK_PC6 GPIO_ACTIVE_HIGH>;
> pinctrl-names = "default";
> - pinctrl-0 = <&lcdvcc_en_gpio>;
> + pinctrl-0 = <&lcdvcc_en_pin>;
> regulator-name = "vcc3v3_panel";
> regulator-always-on;
> regulator-min-microvolt = <3300000>;
> @@ -317,7 +330,7 @@
> enable-active-high;
> gpio = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>;
> pinctrl-names = "default";
> - pinctrl-0 = <&vcc5v0_host_en_gpio>;
> + pinctrl-0 = <&vcc5v0_host_en_pin>;
> regulator-name = "vcc5v0_otg";
> regulator-always-on;
> regulator-min-microvolt = <5000000>;
> @@ -336,7 +349,7 @@
> enable-active-high;
> gpio = <&gpio1 RK_PA3 GPIO_ACTIVE_HIGH>;
> pinctrl-names = "default";
> - pinctrl-0 = <&vcc5v0_typec0_en_gpio>;
> + pinctrl-0 = <&vcc5v0_typec0_en_pin>;
> regulator-name = "vbus_5vout";
> regulator-min-microvolt = <5000000>;
> regulator-max-microvolt = <5000000>;
> @@ -368,7 +381,7 @@
>
> /* Also triggered by USB charger */
> pinctrl-names = "default";
> - pinctrl-0 = <&dc_det_gpio>;
> + pinctrl-0 = <&dc_det_pin>;
> };
> };
>
> @@ -447,7 +460,7 @@
> interrupt-parent = <&gpio3>;
> interrupts = <10 IRQ_TYPE_LEVEL_LOW>;
> pinctrl-names = "default";
> - pinctrl-0 = <&pmic_int_l_gpio>;
> + pinctrl-0 = <&pmic_int_l_pin>;
> rockchip,system-power-controller;
> wakeup-source;
>
> @@ -627,7 +640,7 @@
> reg = <0x40>;
> fcs,suspend-voltage-selector = <1>;
> pinctrl-names = "default";
> - pinctrl-0 = <&vsel1_gpio>;
> + pinctrl-0 = <&vsel1_pin>;
> regulator-name = "vdd_cpu_b";
> regulator-always-on;
> regulator-boot-on;
> @@ -646,7 +659,7 @@
> reg = <0x41>;
> fcs,suspend-voltage-selector = <1>;
> pinctrl-names = "default";
> - pinctrl-0 = <&vsel2_gpio>;
> + pinctrl-0 = <&vsel2_pin>;
> regulator-name = "vdd_gpu";
> regulator-always-on;
> regulator-boot-on;
> @@ -690,9 +703,10 @@
> fusb0: fusb30x@22 {
> compatible = "fcs,fusb302";
> reg = <0x22>;
> - fcs,int_n = <&gpio1 RK_PA2 GPIO_ACTIVE_HIGH>;
> + interrupt-parent = <&gpio1>;
> + interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>;
> pinctrl-names = "default";
> - pinctrl-0 = <&fusb0_int_gpio>;
> + pinctrl-0 = <&fusb0_int_pin>;
> vbus-supply = <&vbus_typec>;
>
> connector {
> @@ -740,12 +754,29 @@
> };
> };
> };
> +
> + cw2015@62 {
> + compatible = "cellwise,cw2015";
> + reg = <0x62>;
> + cellwise,battery-profile = /bits/ 8 <
> + 0x17 0x67 0x80 0x73 0x6E 0x6C 0x6B 0x63
> + 0x77 0x51 0x5C 0x58 0x50 0x4C 0x48 0x36
> + 0x15 0x0C 0x0C 0x19 0x5B 0x7D 0x6F 0x69
> + 0x69 0x5B 0x0C 0x29 0x20 0x40 0x52 0x59
> + 0x57 0x56 0x54 0x4F 0x3B 0x1F 0x7F 0x17
> + 0x06 0x1A 0x30 0x5A 0x85 0x93 0x96 0x2D
> + 0x48 0x77 0x9C 0xB3 0x80 0x52 0x94 0xCB
> + 0x2F 0x00 0x64 0xA5 0xB5 0x11 0xF0 0x11
> + >;
> + cellwise,monitor-interval-ms = <5000>;
> + monitored-battery = <&bat>;
> + power-supplies = <&mains_charger>, <&fusb0>;
> + };
> };
>
> &i2s1 {
> - #sound-dai-cells = <0>;
> pinctrl-names = "default";
> - pinctrl-0 = <&i2s_8ch_mclk_gpio>, <&i2s1_2ch_bus>;
> + pinctrl-0 = <&i2s_8ch_mclk_pin>, <&i2s1_2ch_bus>;
> rockchip,capture-channels = <8>;
> rockchip,playback-channels = <8>;
> status = "okay";
> @@ -765,7 +796,6 @@
> &pcie0 {
> bus-scan-delay-ms = <1000>;
> ep-gpios = <&gpio2 RK_PD4 GPIO_ACTIVE_HIGH>;
> - max-link-speed = <2>;
> num-lanes = <4>;
> pinctrl-names = "default";
> pinctrl-0 = <&pcie_clkreqn_cpm>;
> @@ -777,116 +807,116 @@
>
> &pinctrl {
> buttons {
> - pwrbtn_gpio: pwrbtn-gpio {
> + pwrbtn_pin: pwrbtn-pin {
> rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
> };
>
> - lidbtn_gpio: lidbtn-gpio {
> + lidbtn_pin: lidbtn-pin {
> rockchip,pins = <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>;
> };
> };
>
> dc-charger {
> - dc_det_gpio: dc-det-gpio {
> + dc_det_pin: dc-det-pin {
> rockchip,pins = <4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_up>;
> };
> };
>
> es8316 {
> - hp_det_gpio: hp-det-gpio {
> + hp_det_pin: hp-det-pin {
> rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>;
> };
> };
>
> fusb302x {
> - fusb0_int_gpio: fusb0-int-gpio {
> + fusb0_int_pin: fusb0-int-pin {
> rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
> };
> };
>
> i2s1 {
> - i2s_8ch_mclk_gpio: i2s-8ch-mclk-gpio {
> + i2s_8ch_mclk_pin: i2s-8ch-mclk-pin {
> rockchip,pins = <4 RK_PA0 1 &pcfg_pull_none>;
> };
> };
>
> lcd-panel {
> - lcdvcc_en_gpio: lcdvcc-en-gpio {
> + lcdvcc_en_pin: lcdvcc-en-pin {
> rockchip,pins = <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
> };
>
> - panel_en_gpio: panel-en-gpio {
> + panel_en_pin: panel-en-pin {
> rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
> };
>
> - lcd_panel_reset_gpio: lcd-panel-reset-gpio {
> + lcd_panel_reset_pin: lcd-panel-reset-pin {
> rockchip,pins = <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>;
> };
> };
>
> leds {
> - pwrled_gpio: pwrled_gpio {
> + pwr_led_pin: pwr-led-pin {
> rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
> };
>
> - slpled_gpio: slpled_gpio {
> + slp_led_pin: slp-led-pin {
> rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
> };
> };
>
> pmic {
> - pmic_int_l_gpio: pmic-int-l-gpio {
> + pmic_int_l_pin: pmic-int-l-pin {
> rockchip,pins = <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>;
> };
>
> - vsel1_gpio: vsel1-gpio {
> + vsel1_pin: vsel1-pin {
> rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>;
> };
>
> - vsel2_gpio: vsel2-gpio {
> + vsel2_pin: vsel2-pin {
> rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
> };
> };
>
> sdcard {
> - sdmmc0_pwr_h_gpio: sdmmc0-pwr-h-gpio {
> + sdmmc0_pwr_h_pin: sdmmc0-pwr-h-pin {
> rockchip,pins = <0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
> };
>
> };
>
> sdio-pwrseq {
> - wifi_enable_h_gpio: wifi-enable-h-gpio {
> + wifi_enable_h_pin: wifi-enable-h-pin {
> rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
> };
> };
>
> usb-typec {
> - vcc5v0_typec0_en_gpio: vcc5v0-typec0-en-gpio {
> + vcc5v0_typec0_en_pin: vcc5v0-typec0-en-pin {
> rockchip,pins = <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
> };
> };
>
> usb2 {
> - pwr_5v_gpio: pwr-5v-gpio {
> + pwr_5v_pin: pwr-5v-pin {
> rockchip,pins = <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
> };
>
> - vcc5v0_host_en_gpio: vcc5v0-host-en-gpio {
> + vcc5v0_host_en_pin: vcc5v0-host-en-pin {
> rockchip,pins = <4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
> };
> };
>
> wireless-bluetooth {
> - bt_wake_gpio: bt-wake-gpio {
> + bt_wake_pin: bt-wake-pin {
> rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
> };
>
> - bt_host_wake_gpio: bt-host-wake-gpio {
> + bt_host_wake_pin: bt-host-wake-pin {
> rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
> };
>
> - bt_reset_gpio: bt-reset-gpio {
> + bt_reset_pin: bt-reset-pin {
> rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
> };
> };
> @@ -1034,7 +1064,7 @@
> host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>;
> max-speed = <1500000>;
> pinctrl-names = "default";
> - pinctrl-0 = <&bt_host_wake_gpio &bt_wake_gpio &bt_reset_gpio>;
> + pinctrl-0 = <&bt_host_wake_pin &bt_wake_pin &bt_reset_pin>;
> shutdown-gpios = <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>;
> vbat-supply = <&wifi_bat>;
> vddio-supply = <&vcc_wl>;
> diff --git a/arch/arm/dts/rk3399-puma-haikou.dts b/arch/arm/dts/rk3399-puma-haikou.dts
> index d80d6b7268..292bb7e80c 100644
> --- a/arch/arm/dts/rk3399-puma-haikou.dts
> +++ b/arch/arm/dts/rk3399-puma-haikou.dts
> @@ -10,14 +10,18 @@
> model = "Theobroma Systems RK3399-Q7 SoM";
> compatible = "tsd,rk3399-puma-haikou", "rockchip,rk3399";
>
> + aliases {
> + mmc1 = &sdmmc;
> + };
> +
> chosen {
> stdout-path = "serial0:115200n8";
> };
>
> leds {
> - pinctrl-0 = <&led_pin_module>, <&led_sd_haikou>;
> + pinctrl-0 = <&module_led_pin>, <&sd_card_led_pin>;
>
> - sd-card-led {
> + sd_card_led: led-1 {
> label = "sd_card_led";
> gpios = <&gpio1 RK_PA2 GPIO_ACTIVE_HIGH>;
> linux,default-trigger = "mmc0";
> @@ -179,7 +183,7 @@
> };
>
> leds {
> - led_sd_haikou: led-sd-gpio {
> + sd_card_led_pin: sd-card-led-pin {
> rockchip,pins =
> <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
> };
> diff --git a/arch/arm/dts/rk3399-puma.dtsi b/arch/arm/dts/rk3399-puma.dtsi
> index 72c06abd27..fb67db4619 100644
> --- a/arch/arm/dts/rk3399-puma.dtsi
> +++ b/arch/arm/dts/rk3399-puma.dtsi
> @@ -8,12 +8,16 @@
> #include "rk3399-opp.dtsi"
>
> / {
> + aliases {
> + mmc0 = &sdhci;
> + };
> +
> leds {
> compatible = "gpio-leds";
> pinctrl-names = "default";
> - pinctrl-0 = <&led_pin_module>;
> + pinctrl-0 = <&module_led_pin>;
>
> - module-led {
> + module_led: led-0 {
> label = "module_led";
> gpios = <&gpio2 RK_PD1 GPIO_ACTIVE_HIGH>;
> linux,default-trigger = "heartbeat";
> @@ -21,57 +25,6 @@
> };
> };
>
> - /*
> - * Overwrite the opp-table for CPUB as this board uses a different
> - * regulator (FAN53555) that only allows 10mV steps and therefore
> - * can't reach the operation point target voltages from rk3399-opp.dtsi
> - */
> - /delete-node/ opp-table1;
> - cluster1_opp: opp-table1 {
> - compatible = "operating-points-v2";
> - opp-shared;
> -
> - opp00 {
> - opp-hz = /bits/ 64 <408000000>;
> - opp-microvolt = <800000>;
> - clock-latency-ns = <40000>;
> - };
> - opp01 {
> - opp-hz = /bits/ 64 <600000000>;
> - opp-microvolt = <800000>;
> - };
> - opp02 {
> - opp-hz = /bits/ 64 <816000000>;
> - opp-microvolt = <830000>;
> - opp-suspend;
> - };
> - opp03 {
> - opp-hz = /bits/ 64 <1008000000>;
> - opp-microvolt = <880000>;
> - };
> - opp04 {
> - opp-hz = /bits/ 64 <1200000000>;
> - opp-microvolt = <950000>;
> - };
> - opp05 {
> - opp-hz = /bits/ 64 <1416000000>;
> - opp-microvolt = <1030000>;
> - };
> - opp06 {
> - opp-hz = /bits/ 64 <1608000000>;
> - opp-microvolt = <1100000>;
> - };
> - opp07 {
> - opp-hz = /bits/ 64 <1800000000>;
> - opp-microvolt = <1200000>;
> - };
> - opp08 {
> - opp-hz = /bits/ 64 <1992000000>;
> - opp-microvolt = <1230000>;
> - turbo-mode;
> - };
> - };
> -
> clkin_gmac: external-gmac-clock {
> compatible = "fixed-clock";
> clock-frequency = <125000000>;
> @@ -450,7 +403,7 @@
> };
>
> leds {
> - led_pin_module: led-module-gpio {
> + module_led_pin: module-led-pin {
> rockchip,pins =
> <2 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>;
> };
> diff --git a/arch/arm/dts/rk3399-roc-pc-mezzanine.dts b/arch/arm/dts/rk3399-roc-pc-mezzanine.dts
> index 2acb3d500f..9447c8724b 100644
> --- a/arch/arm/dts/rk3399-roc-pc-mezzanine.dts
> +++ b/arch/arm/dts/rk3399-roc-pc-mezzanine.dts
> @@ -11,6 +11,20 @@
> model = "Firefly ROC-RK3399-PC Mezzanine Board";
> compatible = "firefly,roc-rk3399-pc-mezzanine", "rockchip,rk3399";
>
> + aliases {
> + mmc2 = &sdio0;
> + };
> +
> + /* MP8009 PoE PD */
> + poe_12v: poe-12v {
> + compatible = "regulator-fixed";
> + regulator-name = "poe_12v";
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-min-microvolt = <12000000>;
> + regulator-max-microvolt = <12000000>;
> + };
> +
> vcc3v3_ngff: vcc3v3-ngff {
> compatible = "regulator-fixed";
> regulator-name = "vcc3v3_ngff";
> @@ -22,7 +36,7 @@
> regulator-boot-on;
> regulator-min-microvolt = <3300000>;
> regulator-max-microvolt = <3300000>;
> - vin-supply = <&dc_12v>;
> + vin-supply = <&sys_12v>;
> };
>
> vcc3v3_pcie: vcc3v3-pcie {
> @@ -34,10 +48,14 @@
> pinctrl-0 = <&vcc3v3_pcie_en>;
> regulator-min-microvolt = <3300000>;
> regulator-max-microvolt = <3300000>;
> - vin-supply = <&dc_12v>;
> + vin-supply = <&sys_12v>;
> };
> };
>
> +&sys_12v {
> + vin-supply = <&poe_12v>;
> +};
> +
> &pcie_phy {
> status = "okay";
> };
> diff --git a/arch/arm/dts/rk3399-roc-pc.dtsi b/arch/arm/dts/rk3399-roc-pc.dtsi
> index 9f225e9c3d..d1aaf8e833 100644
> --- a/arch/arm/dts/rk3399-roc-pc.dtsi
> +++ b/arch/arm/dts/rk3399-roc-pc.dtsi
> @@ -13,6 +13,11 @@
> model = "Firefly ROC-RK3399-PC Board";
> compatible = "firefly,roc-rk3399-pc", "rockchip,rk3399";
>
> + aliases {
> + mmc0 = &sdmmc;
> + mmc1 = &sdhci;
> + };
> +
> chosen {
> stdout-path = "serial2:1500000n8";
> };
> @@ -58,30 +63,37 @@
> };
> };
>
> + ir-receiver {
> + compatible = "gpio-ir-receiver";
> + gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_LOW>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&ir_int>;
> + };
> +
> leds {
> compatible = "gpio-leds";
> pinctrl-names = "default";
> - pinctrl-0 = <&work_led_gpio>, <&diy_led_gpio>, <&yellow_led_gpio>;
> + pinctrl-0 = <&work_led_pin>, <&diy_led_pin>, <&yellow_led_pin>;
>
> - work-led {
> + work_led: led-0 {
> label = "green:work";
> gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>;
> default-state = "on";
> linux,default-trigger = "heartbeat";
> };
>
> - diy-led {
> + diy_led: led-1 {
> label = "red:diy";
> gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>;
> default-state = "off";
> - linux,default-trigger = "mmc1";
> + linux,default-trigger = "mmc2";
> };
>
> - yellow-led {
> + yellow_led: led-2 {
> label = "yellow:yellow-led";
> gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>;
> default-state = "off";
> - linux,default-trigger = "mmc0";
> + linux,default-trigger = "mmc1";
> };
> };
>
> @@ -110,6 +122,14 @@
> regulator-max-microvolt = <5000000>;
> };
>
> + sys_12v: sys-12v {
> + compatible = "regulator-fixed";
> + regulator-name = "sys_12v";
> + regulator-always-on;
> + regulator-boot-on;
> + vin-supply = <&dc_12v>;
> + };
> +
> /* switched by pmic_sleep */
> vcc1v8_s3: vcca1v8_s3: vcc1v8-s3 {
> compatible = "regulator-fixed";
> @@ -141,7 +161,7 @@
> regulator-boot-on;
> regulator-min-microvolt = <3300000>;
> regulator-max-microvolt = <3300000>;
> - vin-supply = <&dc_12v>;
> + vin-supply = <&sys_12v>;
> };
>
> vcca_0v9: vcca-0v9 {
> @@ -186,7 +206,7 @@
> regulator-boot-on;
> regulator-min-microvolt = <5000000>;
> regulator-max-microvolt = <5000000>;
> - vin-supply = <&dc_12v>;
> + vin-supply = <&sys_12v>;
> };
>
> vdd_log: vdd-log {
> @@ -376,6 +396,7 @@
>
> vcc_sdio: LDO_REG4 {
> regulator-name = "vcc_sdio";
> + regulator-always-on;
> regulator-boot-on;
> regulator-min-microvolt = <1800000>;
> regulator-max-microvolt = <3000000>;
> @@ -456,7 +477,7 @@
> reg = <0x40>;
> fcs,suspend-voltage-selector = <1>;
> pinctrl-names = "default";
> - pinctrl-0 = <&vsel1_gpio>;
> + pinctrl-0 = <&vsel1_pin>;
> regulator-name = "vdd_cpu_b";
> regulator-min-microvolt = <712500>;
> regulator-max-microvolt = <1500000>;
> @@ -475,11 +496,13 @@
> reg = <0x41>;
> fcs,suspend-voltage-selector = <1>;
> pinctrl-names = "default";
> - pinctrl-0 = <&vsel2_gpio>;
> + pinctrl-0 = <&vsel2_pin>;
> regulator-name = "vdd_gpu";
> regulator-min-microvolt = <712500>;
> regulator-max-microvolt = <1500000>;
> regulator-ramp-delay = <1000>;
> + regulator-always-on;
> + regulator-boot-on;
> vin-supply = <&vcc3v3_sys>;
>
> regulator-state-mem {
> @@ -588,6 +611,12 @@
> };
> };
>
> + ir {
> + ir_int: ir-int {
> + rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
> + };
> + };
> +
> lcd-panel {
> lcd_panel_reset: lcd-panel-reset {
> rockchip,pins = <4 RK_PD5 RK_FUNC_GPIO &pcfg_pull_up>;
> @@ -595,25 +624,25 @@
> };
>
> leds {
> - diy_led_gpio: diy_led-gpio {
> + diy_led_pin: diy-led-pin {
> rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
> };
>
> - work_led_gpio: work_led-gpio {
> + work_led_pin: work-led-pin {
> rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
> };
>
> - yellow_led_gpio: yellow_led-gpio {
> + yellow_led_pin: yellow-led-pin {
> rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
> };
> };
>
> pmic {
> - vsel1_gpio: vsel1-gpio {
> + vsel1_pin: vsel1-pin {
> rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>;
> };
>
> - vsel2_gpio: vsel2-gpio {
> + vsel2_pin: vsel2-pin {
> rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
> };
> };
> diff --git a/arch/arm/dts/rk3399-rock-pi-4.dtsi b/arch/arm/dts/rk3399-rock-pi-4.dtsi
> index 1c55a4645b..b28888ea92 100644
> --- a/arch/arm/dts/rk3399-rock-pi-4.dtsi
> +++ b/arch/arm/dts/rk3399-rock-pi-4.dtsi
> @@ -11,6 +11,11 @@
> #include "rk3399-opp.dtsi"
>
> / {
> + aliases {
> + mmc0 = &sdmmc;
> + mmc1 = &sdhci;
> + };
> +
> chosen {
> stdout-path = "serial2:1500000n8";
> };
> @@ -111,10 +116,6 @@
> regulator-boot-on;
> regulator-min-microvolt = <3300000>;
> regulator-max-microvolt = <3300000>;
> -
> - regulator-state-mem {
> - regulator-off-in-suspend;
> - };
> };
>
> vdd_log: vdd-log {
> @@ -362,8 +363,6 @@
> regulator-name = "vcc_cam";
> regulator-always-on;
> regulator-boot-on;
> - regulator-min-microvolt = <3300000>;
> - regulator-max-microvolt = <3300000>;
> regulator-state-mem {
> regulator-off-in-suspend;
> };
> @@ -373,8 +372,6 @@
> regulator-name = "vcc_mipi";
> regulator-always-on;
> regulator-boot-on;
> - regulator-min-microvolt = <3300000>;
> - regulator-max-microvolt = <3300000>;
> regulator-state-mem {
> regulator-off-in-suspend;
> };
> @@ -387,7 +384,7 @@
> reg = <0x40>;
> fcs,suspend-voltage-selector = <1>;
> pinctrl-names = "default";
> - pinctrl-0 = <&vsel1_gpio>;
> + pinctrl-0 = <&vsel1_pin>;
> regulator-name = "vdd_cpu_b";
> regulator-min-microvolt = <712500>;
> regulator-max-microvolt = <1500000>;
> @@ -406,7 +403,7 @@
> reg = <0x41>;
> fcs,suspend-voltage-selector = <1>;
> pinctrl-names = "default";
> - pinctrl-0 = <&vsel2_gpio>;
> + pinctrl-0 = <&vsel2_pin>;
> regulator-name = "vdd_gpu";
> regulator-min-microvolt = <712500>;
> regulator-max-microvolt = <1500000>;
> @@ -440,8 +437,9 @@
> };
>
> &i2s0 {
> - rockchip,playback-channels = <8>;
> - rockchip,capture-channels = <8>;
> + pinctrl-0 = <&i2s0_2ch_bus>;
> + rockchip,capture-channels = <2>;
> + rockchip,playback-channels = <2>;
> status = "okay";
> };
>
> @@ -476,7 +474,6 @@
>
> &pcie0 {
> ep-gpios = <&gpio4 RK_PD3 GPIO_ACTIVE_HIGH>;
> - max-link-speed = <2>;
> num-lanes = <4>;
> pinctrl-0 = <&pcie_clkreqnb_cpm>;
> pinctrl-names = "default";
> @@ -529,11 +526,11 @@
> rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
> };
>
> - vsel1_gpio: vsel1-gpio {
> + vsel1_pin: vsel1-pin {
> rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>;
> };
>
> - vsel2_gpio: vsel2-gpio {
> + vsel2_pin: vsel2-pin {
> rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
> };
> };
> @@ -680,7 +677,7 @@
>
> &usbdrd_dwc3_0 {
> status = "okay";
> - dr_mode = "otg";
> + dr_mode = "host";
> };
>
> &usbdrd3_1 {
> diff --git a/arch/arm/dts/rk3399-rock-pi-4a.dts b/arch/arm/dts/rk3399-rock-pi-4a.dts
> index d96dd3ebd3..89f2af5e11 100644
> --- a/arch/arm/dts/rk3399-rock-pi-4a.dts
> +++ b/arch/arm/dts/rk3399-rock-pi-4a.dts
> @@ -9,5 +9,5 @@
>
> / {
> model = "Radxa ROCK Pi 4A";
> - compatible = "radxa,rockpi4", "rockchip,rk3399";
> + compatible = "radxa,rockpi4a", "radxa,rockpi4", "rockchip,rk3399";
> };
> diff --git a/arch/arm/dts/rk3399-rock-pi-4b.dts b/arch/arm/dts/rk3399-rock-pi-4b.dts
> index 4ca970acac..6c63e61706 100644
> --- a/arch/arm/dts/rk3399-rock-pi-4b.dts
> +++ b/arch/arm/dts/rk3399-rock-pi-4b.dts
> @@ -9,7 +9,11 @@
>
> / {
> model = "Radxa ROCK Pi 4B";
> - compatible = "radxa,rockpi4", "rockchip,rk3399";
> + compatible = "radxa,rockpi4b", "radxa,rockpi4", "rockchip,rk3399";
> +
> + aliases {
> + mmc2 = &sdio0;
> + };
> };
>
> &sdio0 {
> diff --git a/arch/arm/dts/rk3399-rock-pi-4c.dts b/arch/arm/dts/rk3399-rock-pi-4c.dts
> index 9d07ebd1ec..99169bcd51 100644
> --- a/arch/arm/dts/rk3399-rock-pi-4c.dts
> +++ b/arch/arm/dts/rk3399-rock-pi-4c.dts
> @@ -10,7 +10,11 @@
>
> / {
> model = "Radxa ROCK Pi 4C";
> - compatible = "radxa,rockpi4", "rockchip,rk3399";
> + compatible = "radxa,rockpi4c", "radxa,rockpi4", "rockchip,rk3399";
> +
> + aliases {
> + mmc2 = &sdio0;
> + };
> };
>
> &sdio0 {
> diff --git a/arch/arm/dts/rk3399-rock960.dts b/arch/arm/dts/rk3399-rock960.dts
> index 437a75f31a..1a23e8f3cd 100644
> --- a/arch/arm/dts/rk3399-rock960.dts
> +++ b/arch/arm/dts/rk3399-rock960.dts
> @@ -17,42 +17,43 @@
> leds {
> compatible = "gpio-leds";
> pinctrl-names = "default";
> - pinctrl-0 = <&user_led1>, <&user_led2>, <&user_led3>,
> - <&user_led4>, <&wlan_led>, <&bt_led>;
> + pinctrl-0 = <&user_led1_pin>, <&user_led2_pin>,
> + <&user_led3_pin>, <&user_led4_pin>,
> + <&wlan_led_pin>, <&bt_led_pin>;
>
> - user_led1 {
> + user_led1: led-1 {
> label = "green:user1";
> gpios = <&gpio4 RK_PC2 0>;
> linux,default-trigger = "heartbeat";
> };
>
> - user_led2 {
> + user_led2: led-2 {
> label = "green:user2";
> gpios = <&gpio4 RK_PC6 0>;
> linux,default-trigger = "mmc0";
> };
>
> - user_led3 {
> + user_led3: led-3 {
> label = "green:user3";
> gpios = <&gpio4 RK_PD0 0>;
> linux,default-trigger = "mmc1";
> };
>
> - user_led4 {
> + user_led4: led-4 {
> label = "green:user4";
> gpios = <&gpio4 RK_PD4 0>;
> panic-indicator;
> linux,default-trigger = "none";
> };
>
> - wlan_active_led {
> + wlan_active_led: led-5 {
> label = "yellow:wlan";
> gpios = <&gpio4 RK_PD5 0>;
> linux,default-trigger = "phy0tx";
> default-state = "off";
> };
>
> - bt_active_led {
> + bt_active_led: led-6 {
> label = "blue:bt";
> gpios = <&gpio4 RK_PD6 0>;
> linux,default-trigger = "hci0-power";
> @@ -62,38 +63,52 @@
>
> };
>
> +&cpu_alert0 {
> + temperature = <65000>;
> +};
> +
> +&cpu_thermal {
> + sustainable-power = <1550>;
> +
> + cooling-maps {
> + map0 {
> + trip = <&cpu_alert1>;
> + };
> + };
> +};
> +
> &pcie0 {
> ep-gpios = <&gpio2 RK_PA2 GPIO_ACTIVE_HIGH>;
> };
>
> &pinctrl {
> leds {
> - user_led1: user_led1 {
> + user_led1_pin: user-led1-pin {
> rockchip,pins =
> <4 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
> };
>
> - user_led2: user_led2 {
> + user_led2_pin: user-led2-pin {
> rockchip,pins =
> <4 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
> };
>
> - user_led3: user_led3 {
> + user_led3_pin: user-led3-pin {
> rockchip,pins =
> <4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
> };
>
> - user_led4: user_led4 {
> + user_led4_pin: user-led4-pin {
> rockchip,pins =
> <4 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
> };
>
> - wlan_led: wlan_led {
> + wlan_led_pin: wlan-led-pin {
> rockchip,pins =
> <4 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>;
> };
>
> - bt_led: bt_led {
> + bt_led_pin: bt-led-pin {
> rockchip,pins =
> <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>;
> };
> @@ -124,45 +139,6 @@
> status = "okay";
> };
>
> -&thermal_zones {
> - cpu_thermal: cpu {
> - polling-delay-passive = <100>;
> - polling-delay = <1000>;
> - thermal-sensors = <&tsadc 0>;
> - sustainable-power = <1550>;
> -
> - trips {
> - cpu_alert0: cpu_alert0 {
> - temperature = <65000>;
> - hysteresis = <2000>;
> - type = "passive";
> - };
> -
> - cpu_alert1: cpu_alert1 {
> - temperature = <75000>;
> - hysteresis = <2000>;
> - type = "passive";
> - };
> -
> - cpu_crit: cpu_crit {
> - temperature = <95000>;
> - hysteresis = <2000>;
> - type = "critical";
> - };
> - };
> -
> - cooling-maps {
> - map0 {
> -
> - trip = <&cpu_alert1>;
> - cooling-device =
> - <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
> - <&cpu_b1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
> - };
> - };
> - };
> -};
> -
> &usbdrd_dwc3_0 {
> dr_mode = "otg";
> };
> diff --git a/arch/arm/dts/rk3399-rock960.dtsi b/arch/arm/dts/rk3399-rock960.dtsi
> index ba7c75c9f2..25dc61c26a 100644
> --- a/arch/arm/dts/rk3399-rock960.dtsi
> +++ b/arch/arm/dts/rk3399-rock960.dtsi
> @@ -9,6 +9,12 @@
> #include "rk3399-opp.dtsi"
>
> / {
> + aliases {
> + mmc0 = &sdio0;
> + mmc1 = &sdmmc;
> + mmc2 = &sdhci;
> + };
> +
> sdio_pwrseq: sdio-pwrseq {
> compatible = "mmc-pwrseq-simple";
> clocks = <&rk808 1>;
> @@ -470,12 +476,12 @@
> <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
> };
>
> - vsel1_gpio: vsel1-gpio {
> + vsel1_pin: vsel1-pin {
> rockchip,pins =
> <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>;
> };
>
> - vsel2_gpio: vsel2-gpio {
> + vsel2_pin: vsel2-pin {
> rockchip,pins =
> <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
> };
> diff --git a/arch/arm/dts/rk3399-rockpro64.dtsi b/arch/arm/dts/rk3399-rockpro64.dtsi
> index 9bca258012..6bff8db7d3 100644
> --- a/arch/arm/dts/rk3399-rockpro64.dtsi
> +++ b/arch/arm/dts/rk3399-rockpro64.dtsi
> @@ -10,6 +10,12 @@
> #include "rk3399-opp.dtsi"
>
> / {
> + aliases {
> + mmc0 = &sdio0;
> + mmc1 = &sdmmc;
> + mmc2 = &sdhci;
> + };
> +
> chosen {
> stdout-path = "serial2:1500000n8";
> };
> @@ -36,18 +42,25 @@
> };
> };
>
> + ir-receiver {
> + compatible = "gpio-ir-receiver";
> + gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_LOW>;
> + pinctrl-0 = <&ir_int>;
> + pinctrl-names = "default";
> + };
> +
> leds {
> compatible = "gpio-leds";
> pinctrl-names = "default";
> - pinctrl-0 = <&work_led_gpio>, <&diy_led_gpio>;
> + pinctrl-0 = <&work_led_pin>, <&diy_led_pin>;
>
> - work-led {
> + work_led: led-0 {
> label = "work";
> default-state = "on";
> gpios = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
> };
>
> - diy-led {
> + diy_led: led-1 {
> label = "diy";
> default-state = "off";
> gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>;
> @@ -72,10 +85,27 @@
>
> sound {
> compatible = "audio-graph-card";
> - label = "rockchip,rk3399";
> + label = "Analog";
> dais = <&i2s1_p0>;
> };
>
> + sound-dit {
> + compatible = "audio-graph-card";
> + label = "SPDIF";
> + dais = <&spdif_p0>;
> + };
> +
> + spdif-dit {
> + compatible = "linux,spdif-dit";
> + #sound-dai-cells = <0>;
> +
> + port {
> + dit_p0_0: endpoint {
> + remote-endpoint = <&spdif_p0_0>;
> + };
> + };
> + };
> +
> vcc12v_dcin: vcc12v-dcin {
> compatible = "regulator-fixed";
> regulator-name = "vcc12v_dcin";
> @@ -96,6 +126,24 @@
> vin-supply = <&vcc_1v8>;
> };
>
> + /* micro SD card power */
> + vcc3v0_sd: vcc3v0-sd {
> + compatible = "regulator-fixed";
> + enable-active-high;
> + gpio = <&gpio0 RK_PA1 GPIO_ACTIVE_HIGH>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&sdmmc0_pwr_h>;
> + regulator-name = "vcc3v0_sd";
> + regulator-always-on;
> + regulator-min-microvolt = <3000000>;
> + regulator-max-microvolt = <3000000>;
> + vin-supply = <&vcc3v3_sys>;
> +
> + regulator-state-mem {
> + regulator-off-in-suspend;
> + };
> + };
> +
> vcc3v3_pcie: vcc3v3-pcie-regulator {
> compatible = "regulator-fixed";
> enable-active-high;
> @@ -427,7 +475,7 @@
> reg = <0x40>;
> fcs,suspend-voltage-selector = <1>;
> pinctrl-names = "default";
> - pinctrl-0 = <&vsel1_gpio>;
> + pinctrl-0 = <&vsel1_pin>;
> regulator-name = "vdd_cpu_b";
> regulator-min-microvolt = <712500>;
> regulator-max-microvolt = <1500000>;
> @@ -446,7 +494,7 @@
> reg = <0x41>;
> fcs,suspend-voltage-selector = <1>;
> pinctrl-names = "default";
> - pinctrl-0 = <&vsel2_gpio>;
> + pinctrl-0 = <&vsel2_pin>;
> regulator-name = "vdd_gpu";
> regulator-min-microvolt = <712500>;
> regulator-max-microvolt = <1500000>;
> @@ -569,12 +617,18 @@
> };
> };
>
> + ir {
> + ir_int: ir-int {
> + rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
> + };
> + };
> +
> leds {
> - work_led_gpio: work_led-gpio {
> + work_led_pin: work-led-pin {
> rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
> };
>
> - diy_led_gpio: diy_led-gpio {
> + diy_led_pin: diy-led-pin {
> rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
> };
> };
> @@ -594,15 +648,22 @@
> rockchip,pins = <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>;
> };
>
> - vsel1_gpio: vsel1-gpio {
> + vsel1_pin: vsel1-pin {
> rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>;
> };
>
> - vsel2_gpio: vsel2-gpio {
> + vsel2_pin: vsel2-pin {
> rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
> };
> };
>
> + sdcard {
> + sdmmc0_pwr_h: sdmmc0-pwr-h {
> + rockchip,pins = <0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
> + };
> +
> + };
> +
> sdio-pwrseq {
> wifi_enable_h: wifi-enable-h {
> rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
> @@ -661,6 +722,8 @@
> max-frequency = <150000000>;
> pinctrl-names = "default";
> pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>;
> + vmmc-supply = <&vcc3v0_sd>;
> + vqmmc-supply = <&vcc_sdio>;
> status = "okay";
> };
>
> @@ -671,6 +734,16 @@
> status = "okay";
> };
>
> +&spdif {
> + pinctrl-0 = <&spdif_bus_1>;
> +
> + spdif_p0: port {
> + spdif_p0_0: endpoint {
> + remote-endpoint = <&dit_p0_0>;
> + };
> + };
> +};
> +
> &spi1 {
> status = "okay";
>
> @@ -768,7 +841,7 @@
>
> &usbdrd_dwc3_0 {
> status = "okay";
> - dr_mode = "otg";
> + dr_mode = "host";
> };
>
> &usbdrd3_1 {
> diff --git a/arch/arm/dts/rk3399.dtsi b/arch/arm/dts/rk3399.dtsi
> index 74f2c3d490..3871c7fd83 100644
> --- a/arch/arm/dts/rk3399.dtsi
> +++ b/arch/arm/dts/rk3399.dtsi
> @@ -197,38 +197,12 @@
> #clock-cells = <0>;
> };
>
> - amba: bus {
> - compatible = "simple-bus";
> - #address-cells = <2>;
> - #size-cells = <2>;
> - ranges;
> -
> - dmac_bus: dma-controller@ff6d0000 {
> - compatible = "arm,pl330", "arm,primecell";
> - reg = <0x0 0xff6d0000 0x0 0x4000>;
> - interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH 0>,
> - <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH 0>;
> - #dma-cells = <1>;
> - clocks = <&cru ACLK_DMAC0_PERILP>;
> - clock-names = "apb_pclk";
> - };
> -
> - dmac_peri: dma-controller@ff6e0000 {
> - compatible = "arm,pl330", "arm,primecell";
> - reg = <0x0 0xff6e0000 0x0 0x4000>;
> - interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH 0>,
> - <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH 0>;
> - #dma-cells = <1>;
> - clocks = <&cru ACLK_DMAC1_PERILP>;
> - clock-names = "apb_pclk";
> - };
> - };
> -
> pcie0: pcie@f8000000 {
> compatible = "rockchip,rk3399-pcie";
> reg = <0x0 0xf8000000 0x0 0x2000000>,
> <0x0 0xfd000000 0x0 0x1000000>;
> reg-names = "axi-base", "apb-base";
> + device_type = "pci";
> #address-cells = <3>;
> #size-cells = <2>;
> #interrupt-cells = <1>;
> @@ -247,15 +221,14 @@
> <0 0 0 2 &pcie0_intc 1>,
> <0 0 0 3 &pcie0_intc 2>,
> <0 0 0 4 &pcie0_intc 3>;
> - linux,pci-domain = <0>;
> max-link-speed = <1>;
> msi-map = <0x0 &its 0x0 0x1000>;
> phys = <&pcie_phy 0>, <&pcie_phy 1>,
> <&pcie_phy 2>, <&pcie_phy 3>;
> phy-names = "pcie-phy-0", "pcie-phy-1",
> "pcie-phy-2", "pcie-phy-3";
> - ranges = <0x83000000 0x0 0xfa000000 0x0 0xfa000000 0x0 0x1e00000
> - 0x81000000 0x0 0xfbe00000 0x0 0xfbe00000 0x0 0x100000>;
> + ranges = <0x82000000 0x0 0xfa000000 0x0 0xfa000000 0x0 0x1e00000>,
> + <0x81000000 0x0 0xfbe00000 0x0 0xfbe00000 0x0 0x100000>;
> resets = <&cru SRST_PCIE_CORE>, <&cru SRST_PCIE_MGMT>,
> <&cru SRST_PCIE_MGMT_STICKY>, <&cru SRST_PCIE_PIPE>,
> <&cru SRST_PCIE_PM>, <&cru SRST_P_PCIE>,
> @@ -326,7 +299,7 @@
> status = "disabled";
> };
>
> - sdhci: sdhci@fe330000 {
> + sdhci: mmc@fe330000 {
> compatible = "rockchip,rk3399-sdhci-5.1", "arasan,sdhci-5.1";
> reg = <0x0 0xfe330000 0x0 0x10000>;
> interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH 0>;
> @@ -403,7 +376,7 @@
> reset-names = "usb3-otg";
> status = "disabled";
>
> - usbdrd_dwc3_0: dwc3 {
> + usbdrd_dwc3_0: usb@fe800000 {
> compatible = "snps,dwc3";
> reg = <0x0 0xfe800000 0x0 0x100000>;
> interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH 0>;
> @@ -439,7 +412,7 @@
> reset-names = "usb3-otg";
> status = "disabled";
>
> - usbdrd_dwc3_1: dwc3 {
> + usbdrd_dwc3_1: usb@fe900000 {
> compatible = "snps,dwc3";
> reg = <0x0 0xfe900000 0x0 0x100000>;
> interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH 0>;
> @@ -759,7 +732,7 @@
> };
>
> thermal_zones: thermal-zones {
> - cpu_thermal: cpu {
> + cpu_thermal: cpu-thermal {
> polling-delay-passive = <100>;
> polling-delay = <1000>;
>
> @@ -803,7 +776,7 @@
> };
> };
>
> - gpu_thermal: gpu {
> + gpu_thermal: gpu-thermal {
> polling-delay-passive = <100>;
> polling-delay = <1000>;
>
> @@ -845,135 +818,135 @@
> rockchip,grf = <&grf>;
> rockchip,hw-tshut-temp = <95000>;
> pinctrl-names = "init", "default", "sleep";
> - pinctrl-0 = <&otp_gpio>;
> + pinctrl-0 = <&otp_pin>;
> pinctrl-1 = <&otp_out>;
> - pinctrl-2 = <&otp_gpio>;
> + pinctrl-2 = <&otp_pin>;
> #thermal-sensor-cells = <1>;
> status = "disabled";
> };
>
> qos_emmc: qos@ffa58000 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffa58000 0x0 0x20>;
> };
>
> qos_gmac: qos@ffa5c000 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffa5c000 0x0 0x20>;
> };
>
> qos_pcie: qos@ffa60080 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffa60080 0x0 0x20>;
> };
>
> qos_usb_host0: qos@ffa60100 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffa60100 0x0 0x20>;
> };
>
> qos_usb_host1: qos@ffa60180 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffa60180 0x0 0x20>;
> };
>
> qos_usb_otg0: qos@ffa70000 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffa70000 0x0 0x20>;
> };
>
> qos_usb_otg1: qos@ffa70080 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffa70080 0x0 0x20>;
> };
>
> qos_sd: qos@ffa74000 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffa74000 0x0 0x20>;
> };
>
> qos_sdioaudio: qos@ffa76000 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffa76000 0x0 0x20>;
> };
>
> qos_hdcp: qos@ffa90000 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffa90000 0x0 0x20>;
> };
>
> qos_iep: qos@ffa98000 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffa98000 0x0 0x20>;
> };
>
> qos_isp0_m0: qos@ffaa0000 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffaa0000 0x0 0x20>;
> };
>
> qos_isp0_m1: qos@ffaa0080 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffaa0080 0x0 0x20>;
> };
>
> qos_isp1_m0: qos@ffaa8000 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffaa8000 0x0 0x20>;
> };
>
> qos_isp1_m1: qos@ffaa8080 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffaa8080 0x0 0x20>;
> };
>
> qos_rga_r: qos@ffab0000 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffab0000 0x0 0x20>;
> };
>
> qos_rga_w: qos@ffab0080 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffab0080 0x0 0x20>;
> };
>
> qos_video_m0: qos@ffab8000 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffab8000 0x0 0x20>;
> };
>
> qos_video_m1_r: qos@ffac0000 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffac0000 0x0 0x20>;
> };
>
> qos_video_m1_w: qos@ffac0080 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffac0080 0x0 0x20>;
> };
>
> qos_vop_big_r: qos@ffac8000 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffac8000 0x0 0x20>;
> };
>
> qos_vop_big_w: qos@ffac8080 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffac8080 0x0 0x20>;
> };
>
> qos_vop_little: qos@ffad0000 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffad0000 0x0 0x20>;
> };
>
> qos_perihp: qos@ffad8080 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffad8080 0x0 0x20>;
> };
>
> qos_gpu: qos@ffae0000 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffae0000 0x0 0x20>;
> };
>
> @@ -995,126 +968,146 @@
> #size-cells = <0>;
>
> /* These power domains are grouped by VD_CENTER */
> - pd_iep@RK3399_PD_IEP {
> + power-domain@RK3399_PD_IEP {
> reg = <RK3399_PD_IEP>;
> clocks = <&cru ACLK_IEP>,
> <&cru HCLK_IEP>;
> pm_qos = <&qos_iep>;
> + #power-domain-cells = <0>;
> };
> - pd_rga@RK3399_PD_RGA {
> + power-domain@RK3399_PD_RGA {
> reg = <RK3399_PD_RGA>;
> clocks = <&cru ACLK_RGA>,
> <&cru HCLK_RGA>;
> pm_qos = <&qos_rga_r>,
> <&qos_rga_w>;
> + #power-domain-cells = <0>;
> };
> - pd_vcodec@RK3399_PD_VCODEC {
> + power-domain@RK3399_PD_VCODEC {
> reg = <RK3399_PD_VCODEC>;
> clocks = <&cru ACLK_VCODEC>,
> <&cru HCLK_VCODEC>;
> pm_qos = <&qos_video_m0>;
> + #power-domain-cells = <0>;
> };
> - pd_vdu@RK3399_PD_VDU {
> + power-domain@RK3399_PD_VDU {
> reg = <RK3399_PD_VDU>;
> clocks = <&cru ACLK_VDU>,
> <&cru HCLK_VDU>;
> pm_qos = <&qos_video_m1_r>,
> <&qos_video_m1_w>;
> + #power-domain-cells = <0>;
> };
>
> /* These power domains are grouped by VD_GPU */
> - pd_gpu@RK3399_PD_GPU {
> + power-domain@RK3399_PD_GPU {
> reg = <RK3399_PD_GPU>;
> clocks = <&cru ACLK_GPU>;
> pm_qos = <&qos_gpu>;
> + #power-domain-cells = <0>;
> };
>
> /* These power domains are grouped by VD_LOGIC */
> - pd_edp@RK3399_PD_EDP {
> + power-domain@RK3399_PD_EDP {
> reg = <RK3399_PD_EDP>;
> clocks = <&cru PCLK_EDP_CTRL>;
> + #power-domain-cells = <0>;
> };
> - pd_emmc@RK3399_PD_EMMC {
> + power-domain@RK3399_PD_EMMC {
> reg = <RK3399_PD_EMMC>;
> clocks = <&cru ACLK_EMMC>;
> pm_qos = <&qos_emmc>;
> + #power-domain-cells = <0>;
> };
> - pd_gmac@RK3399_PD_GMAC {
> + power-domain@RK3399_PD_GMAC {
> reg = <RK3399_PD_GMAC>;
> clocks = <&cru ACLK_GMAC>,
> <&cru PCLK_GMAC>;
> pm_qos = <&qos_gmac>;
> + #power-domain-cells = <0>;
> };
> - pd_sd@RK3399_PD_SD {
> + power-domain@RK3399_PD_SD {
> reg = <RK3399_PD_SD>;
> clocks = <&cru HCLK_SDMMC>,
> <&cru SCLK_SDMMC>;
> pm_qos = <&qos_sd>;
> + #power-domain-cells = <0>;
> };
> - pd_sdioaudio@RK3399_PD_SDIOAUDIO {
> + power-domain@RK3399_PD_SDIOAUDIO {
> reg = <RK3399_PD_SDIOAUDIO>;
> clocks = <&cru HCLK_SDIO>;
> pm_qos = <&qos_sdioaudio>;
> + #power-domain-cells = <0>;
> + };
> + power-domain@RK3399_PD_TCPD0 {
> + reg = <RK3399_PD_TCPD0>;
> + clocks = <&cru SCLK_UPHY0_TCPDCORE>,
> + <&cru SCLK_UPHY0_TCPDPHY_REF>;
> + #power-domain-cells = <0>;
> + };
> + power-domain@RK3399_PD_TCPD1 {
> + reg = <RK3399_PD_TCPD1>;
> + clocks = <&cru SCLK_UPHY1_TCPDCORE>,
> + <&cru SCLK_UPHY1_TCPDPHY_REF>;
> + #power-domain-cells = <0>;
> };
> - pd_usb3@RK3399_PD_USB3 {
> + power-domain@RK3399_PD_USB3 {
> reg = <RK3399_PD_USB3>;
> clocks = <&cru ACLK_USB3>;
> pm_qos = <&qos_usb_otg0>,
> <&qos_usb_otg1>;
> + #power-domain-cells = <0>;
> };
> - pd_vio@RK3399_PD_VIO {
> + power-domain@RK3399_PD_VIO {
> reg = <RK3399_PD_VIO>;
> + #power-domain-cells = <1>;
> #address-cells = <1>;
> #size-cells = <0>;
>
> - pd_hdcp@RK3399_PD_HDCP {
> + power-domain@RK3399_PD_HDCP {
> reg = <RK3399_PD_HDCP>;
> clocks = <&cru ACLK_HDCP>,
> <&cru HCLK_HDCP>,
> <&cru PCLK_HDCP>;
> pm_qos = <&qos_hdcp>;
> + #power-domain-cells = <0>;
> };
> - pd_isp0@RK3399_PD_ISP0 {
> + power-domain@RK3399_PD_ISP0 {
> reg = <RK3399_PD_ISP0>;
> clocks = <&cru ACLK_ISP0>,
> <&cru HCLK_ISP0>;
> pm_qos = <&qos_isp0_m0>,
> <&qos_isp0_m1>;
> + #power-domain-cells = <0>;
> };
> - pd_isp1@RK3399_PD_ISP1 {
> + power-domain@RK3399_PD_ISP1 {
> reg = <RK3399_PD_ISP1>;
> clocks = <&cru ACLK_ISP1>,
> <&cru HCLK_ISP1>;
> pm_qos = <&qos_isp1_m0>,
> <&qos_isp1_m1>;
> + #power-domain-cells = <0>;
> };
> - pd_tcpc0@RK3399_PD_TCPC0 {
> - reg = <RK3399_PD_TCPD0>;
> - clocks = <&cru SCLK_UPHY0_TCPDCORE>,
> - <&cru SCLK_UPHY0_TCPDPHY_REF>;
> - };
> - pd_tcpc1@RK3399_PD_TCPC1 {
> - reg = <RK3399_PD_TCPD1>;
> - clocks = <&cru SCLK_UPHY1_TCPDCORE>,
> - <&cru SCLK_UPHY1_TCPDPHY_REF>;
> - };
> - pd_vo@RK3399_PD_VO {
> + power-domain@RK3399_PD_VO {
> reg = <RK3399_PD_VO>;
> + #power-domain-cells = <1>;
> #address-cells = <1>;
> #size-cells = <0>;
>
> - pd_vopb@RK3399_PD_VOPB {
> + power-domain@RK3399_PD_VOPB {
> reg = <RK3399_PD_VOPB>;
> clocks = <&cru ACLK_VOP0>,
> <&cru HCLK_VOP0>;
> pm_qos = <&qos_vop_big_r>,
> <&qos_vop_big_w>;
> + #power-domain-cells = <0>;
> };
> - pd_vopl@RK3399_PD_VOPL {
> + power-domain@RK3399_PD_VOPL {
> reg = <RK3399_PD_VOPL>;
> clocks = <&cru ACLK_VOP1>,
> <&cru HCLK_VOP1>;
> pm_qos = <&qos_vop_little>;
> + #power-domain-cells = <0>;
> };
> };
> };
> @@ -1124,8 +1117,6 @@
> pmugrf: syscon@ff320000 {
> compatible = "rockchip,rk3399-pmugrf", "syscon", "simple-mfd";
> reg = <0x0 0xff320000 0x0 0x1000>;
> - #address-cells = <1>;
> - #size-cells = <1>;
>
> pmu_io_domains: io-domains {
> compatible = "rockchip,rk3399-pmu-io-voltage-domain";
> @@ -1211,7 +1202,6 @@
> pinctrl-names = "default";
> pinctrl-0 = <&pwm0_pin>;
> clocks = <&pmucru PCLK_RKPWM_PMU>;
> - clock-names = "pwm";
> status = "disabled";
> };
>
> @@ -1222,7 +1212,6 @@
> pinctrl-names = "default";
> pinctrl-0 = <&pwm1_pin>;
> clocks = <&pmucru PCLK_RKPWM_PMU>;
> - clock-names = "pwm";
> status = "disabled";
> };
>
> @@ -1233,7 +1222,6 @@
> pinctrl-names = "default";
> pinctrl-0 = <&pwm2_pin>;
> clocks = <&pmucru PCLK_RKPWM_PMU>;
> - clock-names = "pwm";
> status = "disabled";
> };
>
> @@ -1244,7 +1232,6 @@
> pinctrl-names = "default";
> pinctrl-0 = <&pwm3a_pin>;
> clocks = <&pmucru PCLK_RKPWM_PMU>;
> - clock-names = "pwm";
> status = "disabled";
> };
>
> @@ -1271,6 +1258,17 @@
> power-domains = <&power RK3399_PD_VCODEC>;
> };
>
> + vdec: video-codec@ff660000 {
> + compatible = "rockchip,rk3399-vdec";
> + reg = <0x0 0xff660000 0x0 0x400>;
> + interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH 0>;
> + clocks = <&cru ACLK_VDU>, <&cru HCLK_VDU>,
> + <&cru SCLK_VDU_CA>, <&cru SCLK_VDU_CORE>;
> + clock-names = "axi", "ahb", "cabac", "core";
> + iommus = <&vdec_mmu>;
> + power-domains = <&power RK3399_PD_VDU>;
> + };
> +
> vdec_mmu: iommu@ff660480 {
> compatible = "rockchip,iommu";
> reg = <0x0 0xff660480 0x0 0x40>, <0x0 0xff6604c0 0x0 0x40>;
> @@ -1278,8 +1276,8 @@
> interrupt-names = "vdec_mmu";
> clocks = <&cru ACLK_VDU>, <&cru HCLK_VDU>;
> clock-names = "aclk", "iface";
> + power-domains = <&power RK3399_PD_VDU>;
> #iommu-cells = <0>;
> - status = "disabled";
> };
>
> iep_mmu: iommu@ff670800 {
> @@ -1336,6 +1334,28 @@
> };
> };
>
> + dmac_bus: dma-controller@ff6d0000 {
> + compatible = "arm,pl330", "arm,primecell";
> + reg = <0x0 0xff6d0000 0x0 0x4000>;
> + interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH 0>,
> + <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH 0>;
> + #dma-cells = <1>;
> + arm,pl330-periph-burst;
> + clocks = <&cru ACLK_DMAC0_PERILP>;
> + clock-names = "apb_pclk";
> + };
> +
> + dmac_peri: dma-controller@ff6e0000 {
> + compatible = "arm,pl330", "arm,primecell";
> + reg = <0x0 0xff6e0000 0x0 0x4000>;
> + interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH 0>,
> + <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH 0>;
> + #dma-cells = <1>;
> + arm,pl330-periph-burst;
> + clocks = <&cru ACLK_DMAC1_PERILP>;
> + clock-names = "apb_pclk";
> + };
> +
> pmucru: pmu-clock-controller@ff750000 {
> compatible = "rockchip,rk3399-pmucru";
> reg = <0x0 0xff750000 0x0 0x1000>;
> @@ -1387,7 +1407,18 @@
> status = "disabled";
> };
>
> - u2phy0: usb2-phy@e450 {
> + mipi_dphy_rx0: mipi-dphy-rx0 {
> + compatible = "rockchip,rk3399-mipi-dphy-rx0";
> + clocks = <&cru SCLK_MIPIDPHY_REF>,
> + <&cru SCLK_DPHY_RX0_CFG>,
> + <&cru PCLK_VIO_GRF>;
> + clock-names = "dphy-ref", "dphy-cfg", "grf";
> + power-domains = <&power RK3399_PD_VIO>;
> + #phy-cells = <0>;
> + status = "disabled";
> + };
> +
> + u2phy0: usb2phy@e450 {
> compatible = "rockchip,rk3399-usb2phy";
> reg = <0xe450 0x10>;
> clocks = <&cru SCLK_USB2PHY0_REF>;
> @@ -1414,7 +1445,7 @@
> };
> };
>
> - u2phy1: usb2-phy@e460 {
> + u2phy1: usb2phy@e460 {
> compatible = "rockchip,rk3399-usb2phy";
> reg = <0xe460 0x10>;
> clocks = <&cru SCLK_USB2PHY1_REF>;
> @@ -1513,7 +1544,7 @@
> };
>
> watchdog@ff848000 {
> - compatible = "snps,dw-wdt";
> + compatible = "rockchip,rk3399-wdt", "snps,dw-wdt";
> reg = <0x0 0xff848000 0x0 0x100>;
> clocks = <&cru PCLK_WDT>;
> interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH 0>;
> @@ -1700,6 +1731,32 @@
> status = "disabled";
> };
>
> + isp0: isp0@ff910000 {
> + compatible = "rockchip,rk3399-cif-isp";
> + reg = <0x0 0xff910000 0x0 0x4000>;
> + interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH 0>;
> + clocks = <&cru SCLK_ISP0>,
> + <&cru ACLK_ISP0_WRAPPER>,
> + <&cru HCLK_ISP0_WRAPPER>;
> + clock-names = "isp", "aclk", "hclk";
> + iommus = <&isp0_mmu>;
> + phys = <&mipi_dphy_rx0>;
> + phy-names = "dphy";
> + power-domains = <&power RK3399_PD_ISP0>;
> + status = "disabled";
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port@0 {
> + reg = <0>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> + };
> + };
> + };
> +
> isp0_mmu: iommu@ff914000 {
> compatible = "rockchip,iommu";
> reg = <0x0 0xff914000 0x0 0x100>, <0x0 0xff915000 0x0 0x100>;
> @@ -1883,10 +1940,10 @@
> gpu: gpu@ff9a0000 {
> compatible = "rockchip,rk3399-mali", "arm,mali-t860";
> reg = <0x0 0xff9a0000 0x0 0x10000>;
> - interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH 0>,
> - <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH 0>,
> - <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH 0>;
> - interrupt-names = "gpu", "job", "mmu";
> + interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH 0>,
> + <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH 0>,
> + <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH 0>;
> + interrupt-names = "job", "mmu", "gpu";
> clocks = <&cru ACLK_GPU>;
> #cooling-cells = <2>;
> power-domains = <&power RK3399_PD_GPU>;
> @@ -2317,7 +2374,7 @@
> };
> };
>
> - sleep {
> + suspend {
> ap_pwroff: ap-pwroff {
> rockchip,pins = <1 RK_PA5 1 &pcfg_pull_none>;
> };
> @@ -2475,7 +2532,7 @@
> };
>
> tsadc {
> - otp_gpio: otp-gpio {
> + otp_pin: otp-pin {
> rockchip,pins = <1 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
> };
>
> diff --git a/arch/arm/dts/rk3399pro-vmarc-som.dtsi b/arch/arm/dts/rk3399pro-vmarc-som.dtsi
> index 5d087be04a..01d1a75c8b 100644
> --- a/arch/arm/dts/rk3399pro-vmarc-som.dtsi
> +++ b/arch/arm/dts/rk3399pro-vmarc-som.dtsi
> @@ -12,6 +12,11 @@
> / {
> compatible = "vamrs,rk3399pro-vmarc-som", "rockchip,rk3399pro";
>
> + aliases {
> + mmc0 = &sdmmc;
> + mmc1 = &sdhci;
> + };
> +
> vcc3v3_pcie: vcc-pcie-regulator {
> compatible = "regulator-fixed";
> enable-active-high;
> @@ -324,7 +329,6 @@
>
> &pcie0 {
> ep-gpios = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>;
> - max-link-speed = <2>;
> num-lanes = <4>;
> pinctrl-0 = <&pcie_clkreqnb_cpm>;
> pinctrl-names = "default";
> @@ -353,6 +357,12 @@
> };
> };
>
> + sdio-pwrseq {
> + wifi_enable_h: wifi-enable-h {
> + rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
> + };
> + };
> +
> vbus_host {
> usb1_en_oc: usb1-en-oc {
> rockchip,pins = <4 RK_PD1 RK_FUNC_GPIO &pcfg_pull_up>;
> @@ -371,6 +381,16 @@
> pmu1830-supply = <&vcc_1v8>;
> };
>
> +&sdio_pwrseq {
> + /*
> + * On the module itself this is one of these (depending
> + * on the actual card populated):
> + * - SDIO_RESET_L_WL_REG_ON
> + * - PDN (power down when low)
> + */
> + reset-gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_LOW>;
> +};
> +
> &sdhci {
> bus-width = <8>;
> mmc-hs400-1_8v;
> diff --git a/arch/arm/dts/rockchip-radxa-dalang-carrier.dtsi b/arch/arm/dts/rockchip-radxa-dalang-carrier.dtsi
> index 26b53eac47..da1d548b73 100644
> --- a/arch/arm/dts/rockchip-radxa-dalang-carrier.dtsi
> +++ b/arch/arm/dts/rockchip-radxa-dalang-carrier.dtsi
> @@ -15,6 +15,14 @@
> #clock-cells = <0>;
> };
>
> + sdio_pwrseq: sdio-pwrseq {
> + compatible = "mmc-pwrseq-simple";
> + clocks = <&hym8563>;
> + clock-names = "ext_clock";
> + pinctrl-names = "default";
> + pinctrl-0 = <&wifi_enable_h>;
> + };
> +
> vcc12v_dcin: vcc12v-dcin-regulator {
> compatible = "regulator-fixed";
> regulator-name = "vcc12v_dcin";
> @@ -78,6 +86,19 @@
> status = "okay";
> };
>
> +&sdio0 {
> + bus-width = <4>;
> + cap-sd-highspeed;
> + cap-sdio-irq;
> + keep-power-in-suspend;
> + mmc-pwrseq = <&sdio_pwrseq>;
> + non-removable;
> + pinctrl-names = "default";
> + pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
> + sd-uhs-sdr104;
> + status = "okay";
> +};
> +
> &sdmmc {
> bus-width = <4>;
> cap-mmc-highspeed;
> --
> 2.31.1
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 2/3] arm: dts: sync the Rockhip 3328 SoCs from Linux
2021-07-22 15:20 ` [PATCH 2/3] arm: dts: sync the Rockhip 3328 " Peter Robinson
@ 2021-08-11 10:17 ` Kever Yang
0 siblings, 0 replies; 7+ messages in thread
From: Kever Yang @ 2021-08-11 10:17 UTC (permalink / raw)
To: Peter Robinson
Cc: David Bauer, Loic Devulder, Chen-Yu Tsai, Banglang Huang,
Matwey V. Kornilov, Philipp Tomsich, Klaus Goger, Heiko Stuebner,
Kever Yang, U-Boot-Denx
Peter Robinson <pbrobinson@gmail.com> 于2021年7月22日周四 下午11:21写道:
>
> Sync the rk3328 DTs and associated bits from 5.14-rc1.
>
> Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
Thanks,
- Kever
> ---
> arch/arm/dts/rk3328-evb.dts | 23 +-
> arch/arm/dts/rk3328-nanopi-r2s-u-boot.dtsi | 2 +-
> arch/arm/dts/rk3328-nanopi-r2s.dts | 51 ++-
> arch/arm/dts/rk3328-roc-cc-u-boot.dtsi | 2 +-
> arch/arm/dts/rk3328-roc-cc.dts | 41 +-
> arch/arm/dts/rk3328-rock-pi-e-u-boot.dtsi | 4 +-
> arch/arm/dts/rk3328-rock-pi-e.dts | 439 +++++++++++++--------
> arch/arm/dts/rk3328-rock64-u-boot.dtsi | 2 +-
> arch/arm/dts/rk3328-rock64.dts | 72 ++--
> arch/arm/dts/rk3328.dtsi | 109 ++---
> 10 files changed, 487 insertions(+), 258 deletions(-)
>
> diff --git a/arch/arm/dts/rk3328-evb.dts b/arch/arm/dts/rk3328-evb.dts
> index 6abc6f4a86..ff6b466e0e 100644
> --- a/arch/arm/dts/rk3328-evb.dts
> +++ b/arch/arm/dts/rk3328-evb.dts
> @@ -10,6 +10,12 @@
> model = "Rockchip RK3328 EVB";
> compatible = "rockchip,rk3328-evb", "rockchip,rk3328";
>
> + aliases {
> + mmc0 = &sdmmc;
> + mmc1 = &sdio;
> + mmc2 = &emmc;
> + };
> +
> chosen {
> stdout-path = "serial2:1500000n8";
> };
> @@ -41,7 +47,7 @@
> compatible = "regulator-fixed";
> gpio = <&gpio0 30 GPIO_ACTIVE_LOW>;
> pinctrl-names = "default";
> - pinctrl-0 = <&sdmmc0m1_gpio>;
> + pinctrl-0 = <&sdmmc0m1_pin>;
> regulator-name = "vcc_sd";
> regulator-min-microvolt = <3300000>;
> regulator-max-microvolt = <3300000>;
> @@ -70,6 +76,18 @@
> cpu-supply = <&vdd_arm>;
> };
>
> +&cpu1 {
> + cpu-supply = <&vdd_arm>;
> +};
> +
> +&cpu2 {
> + cpu-supply = <&vdd_arm>;
> +};
> +
> +&cpu3 {
> + cpu-supply = <&vdd_arm>;
> +};
> +
> &emmc {
> bus-width = <8>;
> cap-mmc-highspeed;
> @@ -82,11 +100,10 @@
> &gmac2phy {
> phy-supply = <&vcc_phy>;
> clock_in_out = "output";
> - assigned-clocks = <&cru SCLK_MAC2PHY_SRC>;
> assigned-clock-rate = <50000000>;
> assigned-clocks = <&cru SCLK_MAC2PHY>;
> assigned-clock-parents = <&cru SCLK_MAC2PHY_SRC>;
> -
> + status = "okay";
> };
>
> &i2c1 {
> diff --git a/arch/arm/dts/rk3328-nanopi-r2s-u-boot.dtsi b/arch/arm/dts/rk3328-nanopi-r2s-u-boot.dtsi
> index 9e2ced1541..8db5e55af6 100644
> --- a/arch/arm/dts/rk3328-nanopi-r2s-u-boot.dtsi
> +++ b/arch/arm/dts/rk3328-nanopi-r2s-u-boot.dtsi
> @@ -20,7 +20,7 @@
> u-boot,dm-spl;
> };
>
> -&sdmmc0m1_gpio {
> +&sdmmc0m1_pin {
> u-boot,dm-spl;
> };
>
> diff --git a/arch/arm/dts/rk3328-nanopi-r2s.dts b/arch/arm/dts/rk3328-nanopi-r2s.dts
> index 5445c5cb3d..3857d487ab 100644
> --- a/arch/arm/dts/rk3328-nanopi-r2s.dts
> +++ b/arch/arm/dts/rk3328-nanopi-r2s.dts
> @@ -13,6 +13,11 @@
> model = "FriendlyElec NanoPi R2S";
> compatible = "friendlyarm,nanopi-r2s", "rockchip,rk3328";
>
> + aliases {
> + ethernet1 = &rtl8153;
> + mmc0 = &sdmmc;
> + };
> +
> chosen {
> stdout-path = "serial2:1500000n8";
> };
> @@ -50,6 +55,7 @@
> sys_led: led-1 {
> gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>;
> label = "nanopi-r2s:red:sys";
> + default-state = "on";
> };
>
> wan_led: led-2 {
> @@ -71,15 +77,15 @@
> regulator-settling-time-us = <5000>;
> regulator-type = "voltage";
> startup-delay-us = <2000>;
> - states = <1800000 0x1
> - 3300000 0x0>;
> + states = <1800000 0x1>,
> + <3300000 0x0>;
> vin-supply = <&vcc_io_33>;
> };
>
> vcc_sd: sdmmc-regulator {
> compatible = "regulator-fixed";
> gpio = <&gpio0 RK_PD6 GPIO_ACTIVE_LOW>;
> - pinctrl-0 = <&sdmmc0m1_gpio>;
> + pinctrl-0 = <&sdmmc0m1_pin>;
> pinctrl-names = "default";
> regulator-name = "vcc_sd";
> regulator-boot-on;
> @@ -96,6 +102,18 @@
> regulator-min-microvolt = <5000000>;
> regulator-max-microvolt = <5000000>;
> };
> +
> + vdd_5v_lan: vdd-5v-lan {
> + compatible = "regulator-fixed";
> + enable-active-high;
> + gpio = <&gpio2 RK_PC6 GPIO_ACTIVE_HIGH>;
> + pinctrl-0 = <&lan_vdd_pin>;
> + pinctrl-names = "default";
> + regulator-name = "vdd_5v_lan";
> + regulator-always-on;
> + regulator-boot-on;
> + vin-supply = <&vdd_5v>;
> + };
> };
>
> &cpu0 {
> @@ -114,6 +132,10 @@
> cpu-supply = <&vdd_arm>;
> };
>
> +&display_subsystem {
> + status = "disabled";
> +};
> +
> &gmac2io {
> assigned-clocks = <&cru SCLK_MAC2IO>, <&cru SCLK_MAC2IO_EXT>;
> assigned-clock-parents = <&gmac_clk>, <&gmac_clk>;
> @@ -134,8 +156,6 @@
> #size-cells = <0>;
>
> rtl8211e: ethernet-phy@1 {
> - compatible = "ethernet-phy-id001c.c915",
> - "ethernet-phy-ieee802.3-c22";
> reg = <1>;
> pinctrl-0 = <ð_phy_reset_pin>;
> pinctrl-names = "default";
> @@ -282,7 +302,7 @@
> };
> };
>
> - ethernet-phy {
> + gmac2io {
> eth_phy_reset_pin: eth-phy-reset-pin {
> rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>;
> };
> @@ -302,6 +322,12 @@
> };
> };
>
> + lan {
> + lan_vdd_pin: lan-vdd-pin {
> + rockchip,pins = <2 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
> + };
> + };
> +
> pmic {
> pmic_int_l: pmic-int-l {
> rockchip,pins = <1 RK_PD0 RK_FUNC_GPIO &pcfg_pull_up>;
> @@ -361,6 +387,19 @@
> dr_mode = "host";
> };
>
> +&usbdrd3 {
> + dr_mode = "host";
> + status = "okay";
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + /* Second port is for USB 3.0 */
> + rtl8153: device@2 {
> + compatible = "usbbda,8153";
> + reg = <2>;
> + };
> +};
> +
> &usb_host0_ehci {
> status = "okay";
> };
> diff --git a/arch/arm/dts/rk3328-roc-cc-u-boot.dtsi b/arch/arm/dts/rk3328-roc-cc-u-boot.dtsi
> index 08806dfc0f..20a62134a0 100644
> --- a/arch/arm/dts/rk3328-roc-cc-u-boot.dtsi
> +++ b/arch/arm/dts/rk3328-roc-cc-u-boot.dtsi
> @@ -40,7 +40,7 @@
> u-boot,dm-spl;
> };
>
> -&sdmmc0m1_gpio {
> +&sdmmc0m1_pin {
> u-boot,dm-spl;
> };
>
> diff --git a/arch/arm/dts/rk3328-roc-cc.dts b/arch/arm/dts/rk3328-roc-cc.dts
> index 8d553c9218..aa22a0c222 100644
> --- a/arch/arm/dts/rk3328-roc-cc.dts
> +++ b/arch/arm/dts/rk3328-roc-cc.dts
> @@ -10,6 +10,11 @@
> model = "Firefly roc-rk3328-cc";
> compatible = "firefly,roc-rk3328-cc", "rockchip,rk3328";
>
> + aliases {
> + mmc0 = &sdmmc;
> + mmc1 = &emmc;
> + };
> +
> chosen {
> stdout-path = "serial2:1500000n8";
> };
> @@ -34,7 +39,7 @@
> compatible = "regulator-fixed";
> gpio = <&gpio0 RK_PD6 GPIO_ACTIVE_LOW>;
> pinctrl-names = "default";
> - pinctrl-0 = <&sdmmc0m1_gpio>;
> + pinctrl-0 = <&sdmmc0m1_pin>;
> regulator-boot-on;
> regulator-name = "vcc_sd";
> regulator-min-microvolt = <3300000>;
> @@ -45,8 +50,8 @@
> vcc_sdio: sdmmcio-regulator {
> compatible = "regulator-gpio";
> gpios = <&grf_gpio 0 GPIO_ACTIVE_HIGH>;
> - states = <1800000 0x1
> - 3300000 0x0>;
> + states = <1800000 0x1>,
> + <3300000 0x0>;
> regulator-name = "vcc_sdio";
> regulator-type = "voltage";
> regulator-min-microvolt = <1800000>;
> @@ -86,7 +91,7 @@
> leds {
> compatible = "gpio-leds";
>
> - power {
> + power_led: led-0 {
> label = "firefly:blue:power";
> linux,default-trigger = "heartbeat";
> gpios = <&rk805 1 GPIO_ACTIVE_LOW>;
> @@ -94,7 +99,7 @@
> mode = <0x23>;
> };
>
> - user {
> + user_led: led-1 {
> label = "firefly:yellow:user";
> linux,default-trigger = "mmc1";
> gpios = <&rk805 0 GPIO_ACTIVE_LOW>;
> @@ -104,6 +109,14 @@
> };
> };
>
> +&analog_sound {
> + status = "okay";
> +};
> +
> +&codec {
> + status = "okay";
> +};
> +
> &cpu0 {
> cpu-supply = <&vdd_arm>;
> };
> @@ -161,6 +174,10 @@
> status = "okay";
> };
>
> +&hdmi_sound {
> + status = "okay";
> +};
> +
> &i2c1 {
> status = "okay";
>
> @@ -270,6 +287,14 @@
> };
> };
>
> +&i2s0 {
> + status = "okay";
> +};
> +
> +&i2s1 {
> + status = "okay";
> +};
> +
> &io_domains {
> status = "okay";
>
> @@ -334,6 +359,12 @@
> };
>
> &usb20_otg {
> + dr_mode = "host";
> + status = "okay";
> +};
> +
> +&usbdrd3 {
> + dr_mode = "host";
> status = "okay";
> };
>
> diff --git a/arch/arm/dts/rk3328-rock-pi-e-u-boot.dtsi b/arch/arm/dts/rk3328-rock-pi-e-u-boot.dtsi
> index 4fc055eacb..9d557eb988 100644
> --- a/arch/arm/dts/rk3328-rock-pi-e-u-boot.dtsi
> +++ b/arch/arm/dts/rk3328-rock-pi-e-u-boot.dtsi
> @@ -37,7 +37,7 @@
> u-boot,dm-spl;
> };
>
> -&sdmmc0m1_gpio {
> +&sdmmc0m1_pin {
> u-boot,dm-spl;
> };
>
> @@ -46,7 +46,7 @@
> };
>
> &usb_host0_xhci {
> - vbus-supply = <&vcc5v0_host_xhci>;
> + vbus-supply = <&vcc_host_5v>;
> status = "okay";
> };
>
> diff --git a/arch/arm/dts/rk3328-rock-pi-e.dts b/arch/arm/dts/rk3328-rock-pi-e.dts
> index 4b9f9a8248..018a3a5075 100644
> --- a/arch/arm/dts/rk3328-rock-pi-e.dts
> +++ b/arch/arm/dts/rk3328-rock-pi-e.dts
> @@ -1,58 +1,118 @@
> -// SPDX-License-Identifier: GPL-2.0+
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> /*
> - * (C) Copyright 2020 Radxa
> + * (C) Copyright 2020 Chen-Yu Tsai <wens@csie.org>
> + *
> + * Based on ./rk3328-rock64.dts, which is
> + *
> + * Copyright (c) 2017 PINE64
> */
>
> /dts-v1/;
> +
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/input/input.h>
> +#include <dt-bindings/leds/common.h>
> +#include <dt-bindings/pinctrl/rockchip.h>
> +
> #include "rk3328.dtsi"
>
> / {
> - model = "Radxa Rockpi E";
> - compatible = "radxa,rock-pi-e", "rockchip,rk3328";
> + model = "Radxa ROCK Pi E";
> + compatible = "radxa,rockpi-e", "rockchip,rk3328";
> +
> + aliases {
> + mmc0 = &sdmmc;
> + mmc1 = &emmc;
> + };
>
> chosen {
> - stdout-path = "serial2:1500000n8";
> + stdout-path = "serial2:1500000n8";
> + };
> +
> + adc-keys {
> + compatible = "adc-keys";
> + io-channels = <&saradc 0>;
> + io-channel-names = "buttons";
> + keyup-threshold-microvolt = <1750000>;
> +
> + /* This button is unpopulated out of the factory. */
> + button-recovery {
> + label = "Recovery";
> + linux,code = <KEY_VENDOR>;
> + press-threshold-microvolt = <10000>;
> + };
> };
>
> gmac_clkin: external-gmac-clock {
> - compatible = "fixed-clock";
> - clock-frequency = <125000000>;
> - clock-output-names = "gmac_clkin";
> - #clock-cells = <0>;
> + compatible = "fixed-clock";
> + clock-frequency = <125000000>;
> + clock-output-names = "gmac_clkin";
> + #clock-cells = <0>;
> + };
> +
> + leds {
> + compatible = "gpio-leds";
> + pinctrl-0 = <&led_pin>;
> + pinctrl-names = "default";
> +
> + led-0 {
> + color = <LED_COLOR_ID_BLUE>;
> + gpios = <&gpio3 RK_PA5 GPIO_ACTIVE_LOW>;
> + linux,default-trigger = "heartbeat";
> + };
> };
>
> vcc_sd: sdmmc-regulator {
> - compatible = "regulator-fixed";
> - gpio = <&gpio0 RK_PD6 GPIO_ACTIVE_LOW>;
> - pinctrl-names = "default";
> - pinctrl-0 = <&sdmmc0m1_gpio>;
> - regulator-name = "vcc_sd";
> - regulator-always-on;
> - regulator-boot-on;
> - regulator-min-microvolt = <3300000>;
> - regulator-max-microvolt = <3300000>;
> - vin-supply = <&vcc_io>;
> + compatible = "regulator-fixed";
> + gpio = <&gpio0 RK_PD6 GPIO_ACTIVE_LOW>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&sdmmc0m1_pin>;
> + regulator-name = "vcc_sd";
> + regulator-boot-on;
> + vin-supply = <&vcc_io>;
> };
>
> - vcc5v0_host_xhci: vcc5v0-host-xhci-drv {
> - compatible = "regulator-fixed";
> - enable-active-high;
> - regulator-name = "vcc5v0_host_xhci";
> - gpio = <&gpio3 RK_PA7 GPIO_ACTIVE_HIGH>;
> - regulator-min-microvolt = <5000000>;
> - regulator-max-microvolt = <5000000>;
> + vcc_host_5v: vcc-host-5v-regulator {
> + compatible = "regulator-fixed";
> + gpio = <&gpio3 RK_PA7 GPIO_ACTIVE_HIGH>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&usb30_host_drv>;
> + enable-active-high;
> + regulator-name = "vcc_host_5v";
> + regulator-always-on;
> + regulator-boot-on;
> + vin-supply = <&vcc_sys>;
> };
>
> vcc_sys: vcc-sys {
> - compatible = "regulator-fixed";
> - regulator-name = "vcc_sys";
> - regulator-always-on;
> - regulator-boot-on;
> - regulator-min-microvolt = <5000000>;
> - regulator-max-microvolt = <5000000>;
> + compatible = "regulator-fixed";
> + regulator-name = "vcc_sys";
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-min-microvolt = <5000000>;
> + regulator-max-microvolt = <5000000>;
> + };
> +
> + vcc_wifi: vcc-wifi-regulator {
> + compatible = "regulator-fixed";
> + gpio = <&gpio0 RK_PA0 GPIO_ACTIVE_LOW>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&wifi_en>;
> + regulator-name = "vcc_wifi";
> + regulator-always-on;
> + regulator-boot-on;
> + vin-supply = <&vcc_io>;
> };
> };
>
> +&analog_sound {
> + status = "okay";
> +};
> +
> +&codec {
> + status = "okay";
> +};
> +
> &cpu0 {
> cpu-supply = <&vdd_arm>;
> };
> @@ -72,13 +132,11 @@
> &emmc {
> bus-width = <8>;
> cap-mmc-highspeed;
> + mmc-ddr-1_8v;
> mmc-hs200-1_8v;
> - supports-emmc;
> - disable-wp;
> non-removable;
> - num-slots = <1>;
> pinctrl-names = "default";
> - pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
> + pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_bus8>;
> vmmc-supply = <&vcc_io>;
> vqmmc-supply = <&vcc18_emmc>;
> status = "okay";
> @@ -88,180 +146,245 @@
> assigned-clocks = <&cru SCLK_MAC2IO>, <&cru SCLK_MAC2IO_EXT>;
> assigned-clock-parents = <&gmac_clkin>, <&gmac_clkin>;
> clock_in_out = "input";
> - phy-supply = <&vcc_io>;
> + phy-handle = <&rtl8211e>;
> phy-mode = "rgmii";
> + phy-supply = <&vcc_io>;
> pinctrl-names = "default";
> pinctrl-0 = <&rgmiim1_pins>;
> - snps,force_thresh_dma_mode;
> - snps,reset-gpio = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>;
> - snps,reset-active-low;
> - snps,reset-delays-us = <0 10000 50000>;
> + snps,aal;
> + snps,rxpbl = <0x4>;
> + snps,txpbl = <0x4>;
> tx_delay = <0x26>;
> rx_delay = <0x11>;
> status = "okay";
> +
> + mdio {
> + compatible = "snps,dwmac-mdio";
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + rtl8211e: ethernet-phy@1 {
> + reg = <1>;
> + pinctrl-0 = <ð_phy_int_pin>, <ð_phy_reset_pin>;
> + pinctrl-names = "default";
> + interrupt-parent = <&gpio1>;
> + interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
> + reset-assert-us = <10000>;
> + reset-deassert-us = <50000>;
> + reset-gpios = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>;
> + };
> + };
> };
>
> -&i2c1 {
> +&gmac2phy {
> status = "okay";
> +};
>
> - rk805: rk805@18 {
> - compatible = "rockchip,rk805";
> +&i2c1 {
> status = "okay";
> - reg = <0x18>;
> - interrupt-parent = <&gpio2>;
> - interrupts = <6 IRQ_TYPE_LEVEL_LOW>;
> - #clock-cells = <1>;
> - clock-output-names = "xin32k", "rk805-clkout2";
> - pinctrl-names = "default";
> - pinctrl-0 = <&pmic_int_l>;
> - rockchip,system-power-controller;
> - wakeup-source;
> -
> - vcc1-supply = <&vcc_sys>;
> - vcc2-supply = <&vcc_sys>;
> - vcc3-supply = <&vcc_sys>;
> - vcc4-supply = <&vcc_sys>;
> - vcc5-supply = <&vcc_io>;
> - vcc6-supply = <&vcc_sys>;
> -
> - regulators {
> - vdd_logic: DCDC_REG1 {
> - regulator-name = "vdd_logic";
> - regulator-min-microvolt = <712500>;
> - regulator-max-microvolt = <1450000>;
> - regulator-ramp-delay = <12500>;
> - regulator-always-on;
> - regulator-boot-on;
> - regulator-state-mem {
> - regulator-on-in-suspend;
> - regulator-suspend-microvolt = <1000000>;
> - };
> - };
> -
> - vdd_arm: DCDC_REG2 {
> - regulator-name = "vdd_arm";
> - regulator-min-microvolt = <712500>;
> - regulator-max-microvolt = <1450000>;
> - regulator-ramp-delay = <12500>;
> - regulator-always-on;
> - regulator-boot-on;
> - regulator-state-mem {
> - regulator-on-in-suspend;
> - regulator-suspend-microvolt = <950000>;
> - };
> - };
>
> - vcc_ddr: DCDC_REG3 {
> - regulator-name = "vcc_ddr";
> - regulator-always-on;
> - regulator-boot-on;
> - regulator-state-mem {
> - regulator-on-in-suspend;
> - };
> - };
> -
> - vcc_io: DCDC_REG4 {
> - regulator-name = "vcc_io";
> - regulator-min-microvolt = <3300000>;
> - regulator-max-microvolt = <3300000>;
> - regulator-always-on;
> - regulator-boot-on;
> - regulator-state-mem {
> - regulator-on-in-suspend;
> - regulator-suspend-microvolt = <3300000>;
> - };
> - };
> -
> - vcc_18: LDO_REG1 {
> - regulator-name = "vcc_18";
> - regulator-min-microvolt = <1800000>;
> - regulator-max-microvolt = <1800000>;
> - regulator-always-on;
> - regulator-boot-on;
> - regulator-state-mem {
> - regulator-on-in-suspend;
> - regulator-suspend-microvolt = <1800000>;
> - };
> - };
> -
> - vcc18_emmc: LDO_REG2 {
> - regulator-name = "vcc18_emmc";
> - regulator-min-microvolt = <1800000>;
> - regulator-max-microvolt = <1800000>;
> - regulator-always-on;
> - regulator-boot-on;
> - regulator-state-mem {
> - regulator-on-in-suspend;
> - regulator-suspend-microvolt = <1800000>;
> - };
> - };
> -
> - vdd_10: LDO_REG3 {
> - regulator-name = "vdd_10";
> - regulator-min-microvolt = <1000000>;
> - regulator-max-microvolt = <1000000>;
> - regulator-always-on;
> - regulator-boot-on;
> - regulator-state-mem {
> - regulator-on-in-suspend;
> - regulator-suspend-microvolt = <1000000>;
> - };
> - };
> - };
> + rk805: pmic@18 {
> + compatible = "rockchip,rk805";
> + reg = <0x18>;
> + interrupt-parent = <&gpio2>;
> + interrupts = <6 IRQ_TYPE_LEVEL_LOW>;
> + #clock-cells = <1>;
> + clock-output-names = "xin32k", "rk805-clkout2";
> + gpio-controller;
> + #gpio-cells = <2>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&pmic_int_l>;
> + rockchip,system-power-controller;
> + wakeup-source;
> +
> + vcc1-supply = <&vcc_sys>;
> + vcc2-supply = <&vcc_sys>;
> + vcc3-supply = <&vcc_sys>;
> + vcc4-supply = <&vcc_sys>;
> + vcc5-supply = <&vcc_io>;
> + vcc6-supply = <&vcc_sys>;
> +
> + regulators {
> + vdd_log: DCDC_REG1 {
> + regulator-name = "vdd_log";
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-min-microvolt = <712500>;
> + regulator-max-microvolt = <1450000>;
> + regulator-ramp-delay = <12500>;
> +
> + regulator-state-mem {
> + regulator-on-in-suspend;
> + regulator-suspend-microvolt = <1000000>;
> + };
> + };
> +
> + vdd_arm: DCDC_REG2 {
> + regulator-name = "vdd_arm";
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-min-microvolt = <712500>;
> + regulator-max-microvolt = <1450000>;
> + regulator-ramp-delay = <12500>;
> +
> + regulator-state-mem {
> + regulator-on-in-suspend;
> + regulator-suspend-microvolt = <950000>;
> + };
> + };
> +
> + vcc_ddr: DCDC_REG3 {
> + regulator-name = "vcc_ddr";
> + regulator-always-on;
> + regulator-boot-on;
> +
> + regulator-state-mem {
> + regulator-on-in-suspend;
> + };
> + };
> +
> + vcc_io: DCDC_REG4 {
> + regulator-name = "vcc_io";
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> +
> + regulator-state-mem {
> + regulator-on-in-suspend;
> + regulator-suspend-microvolt = <3300000>;
> + };
> + };
> +
> + vcc_18: LDO_REG1 {
> + regulator-name = "vcc_18";
> + 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>;
> + };
> + };
> +
> + vcc18_emmc: LDO_REG2 {
> + regulator-name = "vcc18_emmc";
> + 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>;
> + };
> + };
> +
> + vdd_10: LDO_REG3 {
> + regulator-name = "vdd_10";
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-min-microvolt = <1000000>;
> + regulator-max-microvolt = <1000000>;
> +
> + regulator-state-mem {
> + regulator-on-in-suspend;
> + regulator-suspend-microvolt = <1000000>;
> + };
> + };
> + };
> };
> };
>
> -&io_domains {
> +&i2s1 {
> status = "okay";
> +};
>
> +&io_domains {
> + pmuio-supply = <&vcc_io>;
> vccio1-supply = <&vcc_io>;
> vccio2-supply = <&vcc18_emmc>;
> vccio3-supply = <&vcc_io>;
> vccio4-supply = <&vcc_io>;
> vccio5-supply = <&vcc_io>;
> vccio6-supply = <&vcc_io>;
> - pmuio-supply = <&vcc_io>;
> + status = "okay";
> };
>
> &pinctrl {
> + ephy {
> + eth_phy_int_pin: eth-phy-int-pin {
> + rockchip,pins = <1 RK_PD0 RK_FUNC_GPIO &pcfg_pull_down>;
> + };
> +
> + eth_phy_reset_pin: eth-phy-reset-pin {
> + rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>;
> + };
> + };
> +
> + leds {
> + led_pin: led-pin {
> + rockchip,pins = <3 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
> + };
> + };
> +
> pmic {
> - pmic_int_l: pmic-int-l {
> - rockchip,pins = <2 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>;
> + pmic_int_l: pmic-int-l {
> + rockchip,pins = <2 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>;
> + };
> };
> +
> + usb3 {
> + usb30_host_drv: usb30-host-drv {
> + rockchip,pins = <3 RK_PA7 RK_FUNC_GPIO &pcfg_pull_none>;
> + };
> + };
> +
> + wifi {
> + wifi_en: wifi-en {
> + rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
> + };
> };
> };
>
> &sdmmc {
> bus-width = <4>;
> - cap-mmc-highspeed;
> cap-sd-highspeed;
> - card-detect-delay = <200>;
> disable-wp;
> - max-frequency = <150000000>;
> - num-slots = <1>;
> pinctrl-names = "default";
> - pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_dectn &sdmmc0_bus4>;
> - supports-sd;
> + pinctrl-0 = <&sdmmc0_clk>, <&sdmmc0_cmd>, <&sdmmc0_dectn>, <&sdmmc0_bus4>;
> vmmc-supply = <&vcc_sd>;
> status = "okay";
> };
>
> &saradc {
> + vref-supply = <&vcc_18>;
> status = "okay";
> };
>
> -&uart2 {
> +&tsadc {
> status = "okay";
> };
>
> -&usb20_otg {
> +&u2phy {
> status = "okay";
> };
>
> -&usb_host0_ehci {
> +&u2phy_host {
> status = "okay";
> };
>
> -&usb_host0_ohci {
> +&uart2 {
> + status = "okay";
> +};
> +
> +&usbdrd3 {
> + dr_mode = "host";
> + status = "okay";
> +};
> +
> +&usb_host0_ehci {
> status = "okay";
> };
> diff --git a/arch/arm/dts/rk3328-rock64-u-boot.dtsi b/arch/arm/dts/rk3328-rock64-u-boot.dtsi
> index 2af32aea05..3c3b1370e3 100644
> --- a/arch/arm/dts/rk3328-rock64-u-boot.dtsi
> +++ b/arch/arm/dts/rk3328-rock64-u-boot.dtsi
> @@ -40,7 +40,7 @@
> u-boot,dm-spl;
> };
>
> -&sdmmc0m1_gpio {
> +&sdmmc0m1_pin {
> u-boot,dm-spl;
> };
>
> diff --git a/arch/arm/dts/rk3328-rock64.dts b/arch/arm/dts/rk3328-rock64.dts
> index ebf3eb222e..1b0f7e4551 100644
> --- a/arch/arm/dts/rk3328-rock64.dts
> +++ b/arch/arm/dts/rk3328-rock64.dts
> @@ -10,6 +10,11 @@
> model = "Pine64 Rock64";
> compatible = "pine64,rock64", "rockchip,rk3328";
>
> + aliases {
> + mmc0 = &sdmmc;
> + mmc1 = &emmc;
> + };
> +
> chosen {
> stdout-path = "serial2:1500000n8";
> };
> @@ -25,7 +30,7 @@
> compatible = "regulator-fixed";
> gpio = <&gpio0 RK_PD6 GPIO_ACTIVE_LOW>;
> pinctrl-names = "default";
> - pinctrl-0 = <&sdmmc0m1_gpio>;
> + pinctrl-0 = <&sdmmc0m1_pin>;
> regulator-name = "vcc_sd";
> regulator-min-microvolt = <3300000>;
> regulator-max-microvolt = <3300000>;
> @@ -73,45 +78,43 @@
> leds {
> compatible = "gpio-leds";
>
> - power {
> + power_led: led-0 {
> gpios = <&rk805 1 GPIO_ACTIVE_LOW>;
> linux,default-trigger = "mmc0";
> };
>
> - standby {
> + standby_led: led-1 {
> gpios = <&rk805 0 GPIO_ACTIVE_LOW>;
> linux,default-trigger = "heartbeat";
> };
> };
>
> - sound {
> - compatible = "audio-graph-card";
> - label = "rockchip,rk3328";
> - dais = <&i2s1_p0
> - &spdif_p0>;
> + spdif_sound: spdif-sound {
> + compatible = "simple-audio-card";
> + simple-audio-card,name = "SPDIF";
> +
> + simple-audio-card,cpu {
> + sound-dai = <&spdif>;
> + };
> +
> + simple-audio-card,codec {
> + sound-dai = <&spdif_dit>;
> + };
> };
>
> - spdif-dit {
> + spdif_dit: spdif-dit {
> compatible = "linux,spdif-dit";
> #sound-dai-cells = <0>;
> -
> - port {
> - dit_p0_0: endpoint {
> - remote-endpoint = <&spdif_p0_0>;
> - };
> - };
> };
> };
>
> +&analog_sound {
> + status = "okay";
> +};
> +
> &codec {
> mute-gpios = <&grf_gpio 0 GPIO_ACTIVE_LOW>;
> status = "okay";
> -
> - port@0 {
> - codec_p0_0: endpoint {
> - remote-endpoint = <&i2s1_p0_0>;
> - };
> - };
> };
>
> &cpu0 {
> @@ -163,6 +166,10 @@
> status = "okay";
> };
>
> +&hdmi_sound {
> + status = "okay";
> +};
> +
> &hdmiphy {
> status = "okay";
> };
> @@ -278,16 +285,12 @@
> };
> };
>
> -&i2s1 {
> +&i2s0 {
> status = "okay";
> +};
>
> - i2s1_p0: port {
> - i2s1_p0_0: endpoint {
> - dai-format = "i2s";
> - mclk-fs = <256>;
> - remote-endpoint = <&codec_p0_0>;
> - };
> - };
> +&i2s1 {
> + status = "okay";
> };
>
> &io_domains {
> @@ -337,12 +340,6 @@
> &spdif {
> pinctrl-0 = <&spdifm0_tx>;
> status = "okay";
> -
> - spdif_p0: port {
> - spdif_p0_0: endpoint {
> - remote-endpoint = <&dit_p0_0>;
> - };
> - };
> };
>
> &spi0 {
> @@ -384,6 +381,11 @@
> status = "okay";
> };
>
> +&usbdrd3 {
> + dr_mode = "host";
> + status = "okay";
> +};
> +
> &usb_host0_ehci {
> status = "okay";
> };
> diff --git a/arch/arm/dts/rk3328.dtsi b/arch/arm/dts/rk3328.dtsi
> index 945387e579..27e45d5886 100644
> --- a/arch/arm/dts/rk3328.dtsi
> +++ b/arch/arm/dts/rk3328.dtsi
> @@ -142,23 +142,6 @@
> };
> };
>
> - amba: bus {
> - compatible = "simple-bus";
> - #address-cells = <2>;
> - #size-cells = <2>;
> - ranges;
> -
> - dmac: dmac@ff1f0000 {
> - compatible = "arm,pl330", "arm,primecell";
> - reg = <0x0 0xff1f0000 0x0 0x4000>;
> - interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
> - <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
> - clocks = <&cru ACLK_DMAC>;
> - clock-names = "apb_pclk";
> - #dma-cells = <1>;
> - };
> - };
> -
> analog_sound: analog-sound {
> compatible = "simple-audio-card";
> simple-audio-card,format = "i2s";
> @@ -305,7 +288,7 @@
> status = "disabled";
> };
>
> - grf_gpio: grf-gpio {
> + grf_gpio: gpio {
> compatible = "rockchip,rk3328-grf-gpio";
> gpio-controller;
> #gpio-cells = <2>;
> @@ -317,15 +300,18 @@
> #address-cells = <1>;
> #size-cells = <0>;
>
> - pd_hevc@RK3328_PD_HEVC {
> + power-domain@RK3328_PD_HEVC {
> reg = <RK3328_PD_HEVC>;
> + #power-domain-cells = <0>;
> };
> - pd_video@RK3328_PD_VIDEO {
> + power-domain@RK3328_PD_VIDEO {
> reg = <RK3328_PD_VIDEO>;
> + #power-domain-cells = <0>;
> };
> - pd_vpu@RK3328_PD_VPU {
> + power-domain@RK3328_PD_VPU {
> reg = <RK3328_PD_VPU>;
> clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>;
> + #power-domain-cells = <0>;
> };
> };
>
> @@ -452,7 +438,7 @@
> };
>
> wdt: watchdog@ff1a0000 {
> - compatible = "snps,dw-wdt";
> + compatible = "rockchip,rk3328-wdt", "snps,dw-wdt";
> reg = <0x0 0xff1a0000 0x0 0x100>;
> interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
> clocks = <&cru PCLK_WDT>;
> @@ -503,6 +489,17 @@
> status = "disabled";
> };
>
> + dmac: dmac@ff1f0000 {
> + compatible = "arm,pl330", "arm,primecell";
> + reg = <0x0 0xff1f0000 0x0 0x4000>;
> + interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
> + arm,pl330-periph-burst;
> + clocks = <&cru ACLK_DMAC>;
> + clock-names = "apb_pclk";
> + #dma-cells = <1>;
> + };
> +
> thermal-zones {
> soc_thermal: soc-thermal {
> polling-delay-passive = <20>;
> @@ -552,9 +549,9 @@
> clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>;
> clock-names = "tsadc", "apb_pclk";
> pinctrl-names = "init", "default", "sleep";
> - pinctrl-0 = <&otp_gpio>;
> + pinctrl-0 = <&otp_pin>;
> pinctrl-1 = <&otp_out>;
> - pinctrl-2 = <&otp_gpio>;
> + pinctrl-2 = <&otp_pin>;
> resets = <&cru SRST_TSADC>;
> reset-names = "tsadc-apb";
> rockchip,grf = <&grf>;
> @@ -822,7 +819,7 @@
> #address-cells = <1>;
> #size-cells = <1>;
>
> - u2phy: usb2-phy@100 {
> + u2phy: usb2phy@100 {
> compatible = "rockchip,rk3328-usb2phy";
> reg = <0x100 0x10>;
> clocks = <&xin24m>;
> @@ -922,11 +919,12 @@
> "mac_clk_tx", "clk_mac_ref",
> "aclk_mac", "pclk_mac",
> "clk_macphy";
> - resets = <&cru SRST_GMAC2PHY_A>, <&cru SRST_MACPHY>;
> - reset-names = "stmmaceth", "mac-phy";
> + resets = <&cru SRST_GMAC2PHY_A>;
> + reset-names = "stmmaceth";
> phy-mode = "rmii";
> phy-handle = <&phy>;
> snps,txpbl = <0x4>;
> + clock_in_out = "output";
> status = "disabled";
>
> mdio {
> @@ -934,7 +932,7 @@
> #address-cells = <1>;
> #size-cells = <0>;
>
> - phy: phy@0 {
> + phy: ethernet-phy@0 {
> compatible = "ethernet-phy-id1234.d400", "ethernet-phy-ieee802.3-c22";
> reg = <0>;
> clocks = <&cru SCLK_MAC2PHY_OUT>;
> @@ -966,6 +964,25 @@
> status = "disabled";
> };
>
> + usbdrd3: usb@ff600000 {
> + compatible = "rockchip,rk3328-dwc3", "snps,dwc3";
> + reg = <0x0 0xff600000 0x0 0x100000>;
> + interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&cru SCLK_USB3OTG_REF>, <&cru SCLK_USB3OTG_SUSPEND>,
> + <&cru ACLK_USB3OTG>;
> + clock-names = "ref_clk", "suspend_clk",
> + "bus_clk";
> + dr_mode = "otg";
> + phy_type = "utmi_wide";
> + snps,dis-del-phy-power-chg-quirk;
> + snps,dis_enblslpm_quirk;
> + snps,dis-tx-ipgap-linecheck-quirk;
> + snps,dis-u2-freeclk-exists-quirk;
> + snps,dis_u2_susphy_quirk;
> + snps,dis_u3_susphy_quirk;
> + status = "disabled";
> + };
> +
> /*
> * U-boot Specific Change
> *
> @@ -1163,7 +1180,7 @@
> rockchip,pins = <0 RK_PA5 2 &pcfg_pull_none>,
> <0 RK_PA6 2 &pcfg_pull_none>;
> };
> - i2c3_gpio: i2c3-gpio {
> + i2c3_pins: i2c3-pins {
> rockchip,pins =
> <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>,
> <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
> @@ -1234,7 +1251,7 @@
> };
>
> tsadc {
> - otp_gpio: otp-gpio {
> + otp_pin: otp-pin {
> rockchip,pins = <2 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
> };
>
> @@ -1245,8 +1262,8 @@
>
> uart0 {
> uart0_xfer: uart0-xfer {
> - rockchip,pins = <1 RK_PB1 1 &pcfg_pull_up>,
> - <1 RK_PB0 1 &pcfg_pull_none>;
> + rockchip,pins = <1 RK_PB1 1 &pcfg_pull_none>,
> + <1 RK_PB0 1 &pcfg_pull_up>;
> };
>
> uart0_cts: uart0-cts {
> @@ -1257,15 +1274,15 @@
> rockchip,pins = <1 RK_PB2 1 &pcfg_pull_none>;
> };
>
> - uart0_rts_gpio: uart0-rts-gpio {
> + uart0_rts_pin: uart0-rts-pin {
> rockchip,pins = <1 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
> };
> };
>
> uart1 {
> uart1_xfer: uart1-xfer {
> - rockchip,pins = <3 RK_PA4 4 &pcfg_pull_up>,
> - <3 RK_PA6 4 &pcfg_pull_none>;
> + rockchip,pins = <3 RK_PA4 4 &pcfg_pull_none>,
> + <3 RK_PA6 4 &pcfg_pull_up>;
> };
>
> uart1_cts: uart1-cts {
> @@ -1276,22 +1293,22 @@
> rockchip,pins = <3 RK_PA5 4 &pcfg_pull_none>;
> };
>
> - uart1_rts_gpio: uart1-rts-gpio {
> + uart1_rts_pin: uart1-rts-pin {
> rockchip,pins = <3 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
> };
> };
>
> uart2-0 {
> uart2m0_xfer: uart2m0-xfer {
> - rockchip,pins = <1 RK_PA0 2 &pcfg_pull_up>,
> - <1 RK_PA1 2 &pcfg_pull_none>;
> + rockchip,pins = <1 RK_PA0 2 &pcfg_pull_none>,
> + <1 RK_PA1 2 &pcfg_pull_up>;
> };
> };
>
> uart2-1 {
> uart2m1_xfer: uart2m1-xfer {
> - rockchip,pins = <2 RK_PA0 1 &pcfg_pull_up>,
> - <2 RK_PA1 1 &pcfg_pull_none>;
> + rockchip,pins = <2 RK_PA0 1 &pcfg_pull_none>,
> + <2 RK_PA1 1 &pcfg_pull_up>;
> };
> };
>
> @@ -1502,7 +1519,7 @@
> rockchip,pins = <2 RK_PA7 1 &pcfg_pull_up_4ma>;
> };
>
> - sdmmc0m0_gpio: sdmmc0m0-gpio {
> + sdmmc0m0_pin: sdmmc0m0-pin {
> rockchip,pins = <2 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up_4ma>;
> };
> };
> @@ -1512,7 +1529,7 @@
> rockchip,pins = <0 RK_PD6 3 &pcfg_pull_up_4ma>;
> };
>
> - sdmmc0m1_gpio: sdmmc0m1-gpio {
> + sdmmc0m1_pin: sdmmc0m1-pin {
> rockchip,pins = <0 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up_4ma>;
> };
> };
> @@ -1545,7 +1562,7 @@
> <1 RK_PA3 1 &pcfg_pull_up_8ma>;
> };
>
> - sdmmc0_gpio: sdmmc0-gpio {
> + sdmmc0_pins: sdmmc0-pins {
> rockchip,pins =
> <1 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
> <1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
> @@ -1587,7 +1604,7 @@
> <3 RK_PA7 3 &pcfg_pull_up_4ma>;
> };
>
> - sdmmc0ext_gpio: sdmmc0ext-gpio {
> + sdmmc0ext_pins: sdmmc0ext-pins {
> rockchip,pins =
> <3 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
> <3 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
> @@ -1632,7 +1649,7 @@
> <1 RK_PC1 1 &pcfg_pull_up_8ma>;
> };
>
> - sdmmc1_gpio: sdmmc1-gpio {
> + sdmmc1_pins: sdmmc1-pins {
> rockchip,pins =
> <1 RK_PB4 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
> <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
> @@ -1826,7 +1843,7 @@
> tsadc_int: tsadc-int {
> rockchip,pins = <2 RK_PB5 2 &pcfg_pull_none>;
> };
> - tsadc_gpio: tsadc-gpio {
> + tsadc_pin: tsadc-pin {
> rockchip,pins = <2 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
> };
> };
> --
> 2.31.1
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 3/3] arm: dts: sync the Rockhip 3368 SoCs from Linux
2021-07-22 15:20 ` [PATCH 3/3] arm: dts: sync the Rockhip 3368 " Peter Robinson
@ 2021-08-11 10:17 ` Kever Yang
0 siblings, 0 replies; 7+ messages in thread
From: Kever Yang @ 2021-08-11 10:17 UTC (permalink / raw)
To: Peter Robinson
Cc: David Bauer, Loic Devulder, Chen-Yu Tsai, Banglang Huang,
Matwey V. Kornilov, Philipp Tomsich, Klaus Goger, Heiko Stuebner,
Kever Yang, U-Boot-Denx
Peter Robinson <pbrobinson@gmail.com> 于2021年7月22日周四 下午11:21写道:
>
> Sync the rk3368 DTs and associated bits from 5.14-rc1.
>
> Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
Thanks,
- Kever
> ---
> arch/arm/dts/rk3368-geekbox.dts | 70 +++--------
> arch/arm/dts/rk3368-lion-haikou.dts | 4 +
> arch/arm/dts/rk3368-lion.dtsi | 21 +---
> arch/arm/dts/rk3368-px5-evb.dts | 178 +++++++++++-----------------
> arch/arm/dts/rk3368.dtsi | 65 +++++-----
> 5 files changed, 118 insertions(+), 220 deletions(-)
>
> diff --git a/arch/arm/dts/rk3368-geekbox.dts b/arch/arm/dts/rk3368-geekbox.dts
> index 46cdddfcea..62aa97a0b8 100644
> --- a/arch/arm/dts/rk3368-geekbox.dts
> +++ b/arch/arm/dts/rk3368-geekbox.dts
> @@ -1,43 +1,6 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> /*
> * Copyright (c) 2016 Andreas Färber
> - *
> - * This file is dual-licensed: you can use it either under the terms
> - * of the GPL or the X11 license, at your option. Note that this dual
> - * licensing only applies to this file, and not this project as a
> - * whole.
> - *
> - * a) This file is free software; you can redistribute it and/or
> - * modify it under the terms of the GNU General Public License as
> - * published by the Free Software Foundation; either version 2 of the
> - * License, or (at your option) any later version.
> - *
> - * This file is distributed in the hope that it will be useful,
> - * but WITHOUT ANY WARRANTY; without even the implied warranty of
> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> - * GNU General Public License for more details.
> - *
> - * Or, alternatively,
> - *
> - * b) Permission is hereby granted, free of charge, to any person
> - * obtaining a copy of this software and associated documentation
> - * files (the "Software"), to deal in the Software without
> - * restriction, including without limitation the rights to use,
> - * copy, modify, merge, publish, distribute, sublicense, and/or
> - * sell copies of the Software, and to permit persons to whom the
> - * Software is furnished to do so, subject to the following
> - * conditions:
> - *
> - * The above copyright notice and this permission notice shall be
> - * included in all copies or substantial portions of the Software.
> - *
> - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
> - * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
> - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
> - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
> - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
> - * OTHER DEALINGS IN THE SOFTWARE.
> */
>
> /dts-v1/;
> @@ -48,6 +11,10 @@
> model = "GeekBox";
> compatible = "geekbuying,geekbox", "rockchip,rk3368";
>
> + aliases {
> + mmc0 = &emmc;
> + };
> +
> chosen {
> stdout-path = "serial2:115200n8";
> };
> @@ -66,7 +33,7 @@
>
> ir: ir-receiver {
> compatible = "gpio-ir-receiver";
> - gpios = <&gpio3 30 GPIO_ACTIVE_LOW>;
> + gpios = <&gpio3 RK_PD6 GPIO_ACTIVE_LOW>;
> pinctrl-names = "default";
> pinctrl-0 = <&ir_int>;
> };
> @@ -77,7 +44,7 @@
> pinctrl-0 = <&pwr_key>;
>
> power {
> - gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
> + gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_LOW>;
> label = "GPIO Power";
> linux,code = <KEY_POWER>;
> wakeup-source;
> @@ -87,14 +54,14 @@
> leds: gpio-leds {
> compatible = "gpio-leds";
>
> - blue {
> - gpios = <&gpio2 2 GPIO_ACTIVE_HIGH>;
> + blue_led: led-0 {
> + gpios = <&gpio2 RK_PA2 GPIO_ACTIVE_HIGH>;
> label = "geekbox:blue:led";
> default-state = "on";
> };
>
> - red {
> - gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
> + red_led: led-1 {
> + gpios = <&gpio2 RK_PA3 GPIO_ACTIVE_HIGH>;
> label = "geekbox:red:led";
> default-state = "off";
> };
> @@ -115,10 +82,7 @@
> bus-width = <8>;
> cap-mmc-highspeed;
> clock-frequency = <150000000>;
> - disable-wp;
> - keep-power-in-suspend;
> non-removable;
> - num-slots = <1>;
> vmmc-supply = <&vcc_io>;
> vqmmc-supply = <&vcc18_flash>;
> pinctrl-names = "default";
> @@ -147,7 +111,7 @@
> pinctrl-names = "default";
> pinctrl-0 = <&pmic_int>, <&pmic_sleep>;
> interrupt-parent = <&gpio0>;
> - interrupts = <5 IRQ_TYPE_LEVEL_LOW>;
> + interrupts = <RK_PA5 IRQ_TYPE_LEVEL_LOW>;
> rockchip,system-power-controller;
> vcc1-supply = <&vcc_sys>;
> vcc2-supply = <&vcc_sys>;
> @@ -258,8 +222,6 @@
> };
>
> vcc_sd: SWITCH_REG1 {
> - regulator-always-on;
> - regulator-boot-on;
> regulator-name = "vcc_sd";
> };
>
> @@ -275,23 +237,23 @@
> &pinctrl {
> ir {
> ir_int: ir-int {
> - rockchip,pins = <3 30 RK_FUNC_GPIO &pcfg_pull_none>;
> + rockchip,pins = <3 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>;
> };
> };
>
> keys {
> pwr_key: pwr-key {
> - rockchip,pins = <0 2 RK_FUNC_GPIO &pcfg_pull_none>;
> + rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
> };
> };
>
> pmic {
> pmic_sleep: pmic-sleep {
> - rockchip,pins = <0 0 RK_FUNC_2 &pcfg_pull_none>;
> + rockchip,pins = <0 RK_PA0 2 &pcfg_pull_none>;
> };
>
> pmic_int: pmic-int {
> - rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>;
> + rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
> };
> };
> };
> diff --git a/arch/arm/dts/rk3368-lion-haikou.dts b/arch/arm/dts/rk3368-lion-haikou.dts
> index 7fcb1eacea..cae01d35b9 100644
> --- a/arch/arm/dts/rk3368-lion-haikou.dts
> +++ b/arch/arm/dts/rk3368-lion-haikou.dts
> @@ -10,6 +10,10 @@
> model = "Theobroma Systems RK3368-uQ7 Baseboard";
> compatible = "tsd,rk3368-lion-haikou", "rockchip,rk3368";
>
> + aliases {
> + mmc1 = &sdmmc;
> + };
> +
> chosen {
> stdout-path = "serial0:115200n8";
> };
> diff --git a/arch/arm/dts/rk3368-lion.dtsi b/arch/arm/dts/rk3368-lion.dtsi
> index 532e6a6828..bcd7977fb0 100644
> --- a/arch/arm/dts/rk3368-lion.dtsi
> +++ b/arch/arm/dts/rk3368-lion.dtsi
> @@ -7,6 +7,10 @@
> #include "rk3368.dtsi"
>
> / {
> + aliases {
> + mmc0 = &emmc;
> + };
> +
> chosen {
> stdout-path = "serial0:115200n8";
> };
> @@ -150,7 +154,6 @@
> assigned-clocks = <&cru SCLK_MAC>;
> assigned-clock-parents = <&ext_gmac>;
> clock_in_out = "input";
> - phy-handle = <&phy0>;
> phy-supply = <&vcc33_io>;
> phy-mode = "rgmii";
> pinctrl-names = "default";
> @@ -161,22 +164,6 @@
> tx_delay = <0x10>;
> rx_delay = <0x10>;
> status = "okay";
> -
> - mdio {
> - compatible = "snps,dwmac-mdio";
> - #address-cells = <1>;
> - #size-cells = <0>;
> -
> - /* Microsemi VSC8531-02 */
> - phy0: phy@0 {
> - compatible = "ethernet-phy-id0007.0570";
> - reg = <0>;
> - vsc8531,clk-out-frequency = <125000000>;
> - vsc8531,edge-slowdown = <7>;
> - vsc8531,led-0-mode = <1>;
> - vsc8531,led-1-mode = <2>;
> - };
> - };
> };
>
> &i2c0 {
> diff --git a/arch/arm/dts/rk3368-px5-evb.dts b/arch/arm/dts/rk3368-px5-evb.dts
> index e9c5ebad47..5ccaa5f7a3 100644
> --- a/arch/arm/dts/rk3368-px5-evb.dts
> +++ b/arch/arm/dts/rk3368-px5-evb.dts
> @@ -1,43 +1,6 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> /*
> - * Copyright (c) 2017 Rockchip Electronics Co., Ltd
> - *
> - * This file is dual-licensed: you can use it either under the terms
> - * of the GPL or the X11 license, at your option. Note that this dual
> - * licensing only applies to this file, and not this project as a
> - * whole.
> - *
> - * a) This file is free software; you can redistribute it and/or
> - * modify it under the terms of the GNU General Public License as
> - * published by the Free Software Foundation; either version 2 of the
> - * License, or (at your option) any later version.
> - *
> - * This file is distributed in the hope that it will be useful,
> - * but WITHOUT ANY WARRANTY; without even the implied warranty of
> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> - * GNU General Public License for more details.
> - *
> - * Or, alternatively,
> - *
> - * b) Permission is hereby granted, free of charge, to any person
> - * obtaining a copy of this software and associated documentation
> - * files (the "Software"), to deal in the Software without
> - * restriction, including without limitation the rights to use,
> - * copy, modify, merge, publish, distribute, sublicense, and/or
> - * sell copies of the Software, and to permit persons to whom the
> - * Software is furnished to do so, subject to the following
> - * conditions:
> - *
> - * The above copyright notice and this permission notice shall be
> - * included in all copies or substantial portions of the Software.
> - *
> - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
> - * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
> - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
> - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
> - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
> - * OTHER DEALINGS IN THE SOFTWARE.
> + * Copyright (c) 2016 Fuzhou Rockchip Electronics Co., Ltd
> */
>
> /dts-v1/;
> @@ -45,30 +8,21 @@
> #include <dt-bindings/input/input.h>
>
> / {
> - model = "PX5 EVB";
> + model = "Rockchip PX5 EVB";
> compatible = "rockchip,px5-evb", "rockchip,px5", "rockchip,rk3368";
>
> + aliases {
> + mmc0 = &sdmmc;
> + mmc1 = &emmc;
> + };
> +
> chosen {
> stdout-path = "serial4:115200n8";
> };
>
> memory@0 {
> - device_type = "memory";
> reg = <0x0 0x0 0x0 0x40000000>;
> - };
> -
> - ext_gmac: gmac-clk {
> - compatible = "fixed-clock";
> - clock-frequency = <125000000>;
> - clock-output-names = "ext_gmac";
> - #clock-cells = <0>;
> - };
> -
> - ir: ir-receiver {
> - compatible = "gpio-ir-receiver";
> - gpios = <&gpio3 30 GPIO_ACTIVE_LOW>;
> - pinctrl-names = "default";
> - pinctrl-0 = <&ir_int>;
> + device_type = "memory";
> };
>
> keys: gpio-keys {
> @@ -77,29 +31,13 @@
> pinctrl-0 = <&pwr_key>;
>
> power {
> - gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
> + gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_LOW>;
> label = "GPIO Power";
> linux,code = <KEY_POWER>;
> wakeup-source;
> };
> };
>
> - leds: gpio-leds {
> - compatible = "gpio-leds";
> -
> - blue {
> - gpios = <&gpio2 2 GPIO_ACTIVE_HIGH>;
> - label = "geekbox:blue:led";
> - default-state = "on";
> - };
> -
> - red {
> - gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
> - label = "geekbox:red:led";
> - default-state = "off";
> - };
> - };
> -
> vcc_sys: vcc-sys-regulator {
> compatible = "regulator-fixed";
> regulator-name = "vcc_sys";
> @@ -115,27 +53,14 @@
> bus-width = <8>;
> cap-mmc-highspeed;
> clock-frequency = <150000000>;
> - disable-wp;
> - keep-power-in-suspend;
> + mmc-hs200-1_8v;
> + no-sdio;
> + no-sd;
> non-removable;
> - num-slots = <1>;
> - vmmc-supply = <&vcc_io>;
> - vqmmc-supply = <&vcc18_flash>;
> pinctrl-names = "default";
> pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_bus8>;
> -};
> -
> -&gmac {
> - status = "okay";
> - phy-supply = <&vcc_lan>;
> - phy-mode = "rgmii";
> - clock_in_out = "input";
> - assigned-clocks = <&cru SCLK_MAC>;
> - assigned-clock-parents = <&ext_gmac>;
> - pinctrl-names = "default";
> - pinctrl-0 = <&rgmii_pins>;
> - tx_delay = <0x30>;
> - rx_delay = <0x10>;
> + vmmc-supply = <&vcc_io>;
> + vqmmc-supply = <&vcc18_flash>;
> };
>
> &i2c0 {
> @@ -144,10 +69,10 @@
> rk808: pmic@1b {
> compatible = "rockchip,rk808";
> reg = <0x1b>;
> + interrupt-parent = <&gpio0>;
> + interrupts = <RK_PA5 IRQ_TYPE_LEVEL_LOW>;
> pinctrl-names = "default";
> pinctrl-0 = <&pmic_int>, <&pmic_sleep>;
> - interrupt-parent = <&gpio0>;
> - interrupts = <5 IRQ_TYPE_LEVEL_LOW>;
> rockchip,system-power-controller;
> vcc1-supply = <&vcc_sys>;
> vcc2-supply = <&vcc_sys>;
> @@ -202,12 +127,12 @@
> regulator-name = "vcc18_flash";
> };
>
> - vcc33_lcd: LDO_REG2 {
> + vcca_33: LDO_REG2 {
> regulator-always-on;
> regulator-boot-on;
> regulator-min-microvolt = <3300000>;
> regulator-max-microvolt = <3300000>;
> - regulator-name = "vcc33_lcd";
> + regulator-name = "vcca_33";
> };
>
> vdd_10: LDO_REG3 {
> @@ -218,11 +143,10 @@
> regulator-name = "vdd_10";
> };
>
> - vcca_18: LDO_REG4 {
> - regulator-boot-on;
> - regulator-min-microvolt = <1800000>;
> - regulator-max-microvolt = <1800000>;
> - regulator-name = "vcca_18";
> + avdd_33: LDO_REG4 {
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-name = "avdd_33";
> };
>
> vccio_sd: LDO_REG5 {
> @@ -258,46 +182,76 @@
> };
>
> vcc_sd: SWITCH_REG1 {
> - regulator-always-on;
> - regulator-boot-on;
> regulator-name = "vcc_sd";
> };
>
> - vcc_lan: SWITCH_REG2 {
> + vcc33_lcd: SWITCH_REG2 {
> regulator-always-on;
> regulator-boot-on;
> - regulator-name = "vcc_lan";
> + regulator-name = "vcc33_lcd";
> };
> };
> };
> };
>
> -&pinctrl {
> - ir {
> - ir_int: ir-int {
> - rockchip,pins = <3 30 RK_FUNC_GPIO &pcfg_pull_none>;
> - };
> +&i2c1 {
> + status = "okay";
> +
> + accelerometer@18 {
> + compatible = "bosch,bma250";
> + reg = <0x18>;
> + interrupt-parent = <&gpio2>;
> + interrupts = <RK_PC1 IRQ_TYPE_LEVEL_LOW>;
> };
> +};
>
> +&i2c2 {
> + status = "okay";
> +
> + gsl1680: touchscreen@40 {
> + compatible = "silead,gsl1680";
> + reg = <0x40>;
> + interrupt-parent = <&gpio3>;
> + interrupts = <RK_PD4 IRQ_TYPE_EDGE_FALLING>;
> + power-gpios = <&gpio3 RK_PB7 GPIO_ACTIVE_HIGH>;
> + touchscreen-size-x = <800>;
> + touchscreen-size-y = <1280>;
> + silead,max-fingers = <5>;
> + };
> +};
> +
> +&pinctrl {
> keys {
> pwr_key: pwr-key {
> - rockchip,pins = <0 2 RK_FUNC_GPIO &pcfg_pull_none>;
> + rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
> };
> };
>
> pmic {
> pmic_sleep: pmic-sleep {
> - rockchip,pins = <0 0 RK_FUNC_2 &pcfg_pull_none>;
> + rockchip,pins = <0 RK_PA0 2 &pcfg_pull_none>;
> };
>
> pmic_int: pmic-int {
> - rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>;
> + rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
> };
> };
> };
>
> -&saradc {
> +&sdmmc {
> status = "okay";
> + bus-width = <4>;
> + cap-mmc-highspeed;
> + cap-sd-highspeed;
> + card-detect-delay = <200>;
> + no-sdio;
> + sd-uhs-sdr12;
> + sd-uhs-sdr25;
> + pinctrl-names = "default";
> + pinctrl-0 = <&sdmmc_clk>, <&sdmmc_cmd>, <&sdmmc_bus4>, <&sdmmc_cd>;
> + rockchip,default-sample-phase = <90>;
> + vmmc-supply = <&vcc_sd>;
> + vqmmc-supply = <&vccio_sd>;
> };
>
> &tsadc {
> diff --git a/arch/arm/dts/rk3368.dtsi b/arch/arm/dts/rk3368.dtsi
> index cd2c322071..4c64fbefb4 100644
> --- a/arch/arm/dts/rk3368.dtsi
> +++ b/arch/arm/dts/rk3368.dtsi
> @@ -136,37 +136,6 @@
> };
> };
>
> - amba: bus {
> - compatible = "simple-bus";
> - #address-cells = <2>;
> - #size-cells = <2>;
> - ranges;
> -
> - dmac_peri: dma-controller@ff250000 {
> - compatible = "arm,pl330", "arm,primecell";
> - reg = <0x0 0xff250000 0x0 0x4000>;
> - interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
> - <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
> - #dma-cells = <1>;
> - arm,pl330-broken-no-flushp;
> - arm,pl330-periph-burst;
> - clocks = <&cru ACLK_DMAC_PERI>;
> - clock-names = "apb_pclk";
> - };
> -
> - dmac_bus: dma-controller@ff600000 {
> - compatible = "arm,pl330", "arm,primecell";
> - reg = <0x0 0xff600000 0x0 0x4000>;
> - interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
> - <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
> - #dma-cells = <1>;
> - arm,pl330-broken-no-flushp;
> - arm,pl330-periph-burst;
> - clocks = <&cru ACLK_DMAC_BUS>;
> - clock-names = "apb_pclk";
> - };
> - };
> -
> arm-pmu {
> compatible = "arm,armv8-pmuv3";
> interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
> @@ -399,8 +368,20 @@
> status = "disabled";
> };
>
> + dmac_peri: dma-controller@ff250000 {
> + compatible = "arm,pl330", "arm,primecell";
> + reg = <0x0 0xff250000 0x0 0x4000>;
> + interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
> + #dma-cells = <1>;
> + arm,pl330-broken-no-flushp;
> + arm,pl330-periph-burst;
> + clocks = <&cru ACLK_DMAC_PERI>;
> + clock-names = "apb_pclk";
> + };
> +
> thermal-zones {
> - cpu {
> + cpu_thermal: cpu-thermal {
> polling-delay-passive = <100>; /* milliseconds */
> polling-delay = <5000>; /* milliseconds */
>
> @@ -444,7 +425,7 @@
> };
> };
>
> - gpu {
> + gpu_thermal: gpu-thermal {
> polling-delay-passive = <100>; /* milliseconds */
> polling-delay = <5000>; /* milliseconds */
>
> @@ -532,6 +513,18 @@
> status = "disabled";
> };
>
> + dmac_bus: dma-controller@ff600000 {
> + compatible = "arm,pl330", "arm,primecell";
> + reg = <0x0 0xff600000 0x0 0x4000>;
> + interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
> + #dma-cells = <1>;
> + arm,pl330-broken-no-flushp;
> + arm,pl330-periph-burst;
> + clocks = <&cru ACLK_DMAC_BUS>;
> + clock-names = "apb_pclk";
> + };
> +
> i2c0: i2c@ff650000 {
> compatible = "rockchip,rk3368-i2c", "rockchip,rk3288-i2c";
> reg = <0x0 0xff650000 0x0 0x1000>;
> @@ -565,7 +558,6 @@
> pinctrl-names = "default";
> pinctrl-0 = <&pwm0_pin>;
> clocks = <&cru PCLK_PWM1>;
> - clock-names = "pwm";
> status = "disabled";
> };
>
> @@ -576,7 +568,6 @@
> pinctrl-names = "default";
> pinctrl-0 = <&pwm1_pin>;
> clocks = <&cru PCLK_PWM1>;
> - clock-names = "pwm";
> status = "disabled";
> };
>
> @@ -585,7 +576,6 @@
> reg = <0x0 0xff680020 0x0 0x10>;
> #pwm-cells = <3>;
> clocks = <&cru PCLK_PWM1>;
> - clock-names = "pwm";
> status = "disabled";
> };
>
> @@ -596,7 +586,6 @@
> pinctrl-names = "default";
> pinctrl-0 = <&pwm3_pin>;
> clocks = <&cru PCLK_PWM1>;
> - clock-names = "pwm";
> status = "disabled";
> };
>
> @@ -675,6 +664,8 @@
> compatible = "rockchip,rk3368-timer", "rockchip,rk3288-timer";
> reg = <0x0 0xff810000 0x0 0x20>;
> interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&cru PCLK_TIMER0>, <&cru SCLK_TIMER00>;
> + clock-names = "pclk", "timer";
> };
>
> spdif: spdif@ff880000 {
> --
> 2.31.1
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/3] arm: dts: sync the Rockhip 3399 SoCs from Linux
2021-07-22 15:20 [PATCH 1/3] arm: dts: sync the Rockhip 3399 SoCs from Linux Peter Robinson
` (2 preceding siblings ...)
2021-08-11 10:16 ` [PATCH 1/3] arm: dts: sync the Rockhip 3399 " Kever Yang
@ 2021-08-12 0:55 ` Kever Yang
3 siblings, 0 replies; 7+ messages in thread
From: Kever Yang @ 2021-08-12 0:55 UTC (permalink / raw)
To: Peter Robinson, David Bauer, Loic Devulder, Chen-Yu Tsai,
Banglang Huang, Matwey V. Kornilov, Philipp Tomsich, Klaus Goger,
Heiko Stuebner, u-boot
On 2021/7/22 下午11:20, Peter Robinson wrote:
> Sync the rk3399 DTs and associated bits from 5.14-rc1.
>
> Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
> ---
> arch/arm/dts/rk3399-evb.dts | 4 +
> arch/arm/dts/rk3399-ficus.dts | 29 +-
> arch/arm/dts/rk3399-firefly.dts | 178 ++++++++++--
> arch/arm/dts/rk3399-gru.dtsi | 14 +-
> arch/arm/dts/rk3399-khadas-edge.dtsi | 40 ++-
> arch/arm/dts/rk3399-leez-p710.dts | 14 +-
> arch/arm/dts/rk3399-nanopc-t4.dts | 1 +
> arch/arm/dts/rk3399-nanopi-r4s.dts | 135 +++++----
> arch/arm/dts/rk3399-nanopi4.dtsi | 18 +-
> arch/arm/dts/rk3399-opp.dtsi | 40 +--
> arch/arm/dts/rk3399-orangepi.dts | 72 ++++-
> arch/arm/dts/rk3399-pinebook-pro.dts | 120 +++++---
> arch/arm/dts/rk3399-puma-haikou.dts | 10 +-
> arch/arm/dts/rk3399-puma.dtsi | 61 +---
> arch/arm/dts/rk3399-roc-pc-mezzanine.dts | 22 +-
> arch/arm/dts/rk3399-roc-pc.dtsi | 59 +++-
> arch/arm/dts/rk3399-rock-pi-4.dtsi | 29 +-
> arch/arm/dts/rk3399-rock-pi-4a.dts | 2 +-
> arch/arm/dts/rk3399-rock-pi-4b.dts | 6 +-
> arch/arm/dts/rk3399-rock-pi-4c.dts | 6 +-
> arch/arm/dts/rk3399-rock960.dts | 82 ++----
> arch/arm/dts/rk3399-rock960.dtsi | 10 +-
> arch/arm/dts/rk3399-rockpro64.dtsi | 95 ++++++-
> arch/arm/dts/rk3399.dtsi | 269 +++++++++++-------
> arch/arm/dts/rk3399pro-vmarc-som.dtsi | 22 +-
> .../dts/rockchip-radxa-dalang-carrier.dtsi | 21 ++
> 26 files changed, 897 insertions(+), 462 deletions(-)
>
> diff --git a/arch/arm/dts/rk3399-evb.dts b/arch/arm/dts/rk3399-evb.dts
> index 694b0d08d6..7b717ebec8 100644
> --- a/arch/arm/dts/rk3399-evb.dts
> +++ b/arch/arm/dts/rk3399-evb.dts
> @@ -11,6 +11,10 @@
> model = "Rockchip RK3399 Evaluation Board";
> compatible = "rockchip,rk3399-evb", "rockchip,rk3399";
>
> + aliases {
> + mmc0 = &sdhci;
> + };
> +
> backlight: backlight {
> compatible = "pwm-backlight";
> brightness-levels = <
> diff --git a/arch/arm/dts/rk3399-ficus.dts b/arch/arm/dts/rk3399-ficus.dts
> index ebe2ee77ba..1ce85a5816 100644
> --- a/arch/arm/dts/rk3399-ficus.dts
> +++ b/arch/arm/dts/rk3399-ficus.dts
> @@ -27,42 +27,43 @@
> leds {
> compatible = "gpio-leds";
> pinctrl-names = "default";
> - pinctrl-0 = <&user_led1>, <&user_led2>, <&user_led3>,
> - <&user_led4>, <&wlan_led>, <&bt_led>;
> + pinctrl-0 = <&user_led1_pin>, <&user_led2_pin>,
> + <&user_led3_pin>, <&user_led4_pin>,
> + <&wlan_led_pin>, <&bt_led_pin>;
>
> - user_led1 {
> + user_led1: led-1 {
> label = "red:user1";
> gpios = <&gpio4 25 0>;
> linux,default-trigger = "heartbeat";
> };
>
> - user_led2 {
> + user_led2: led-2 {
> label = "red:user2";
> gpios = <&gpio4 26 0>;
> linux,default-trigger = "mmc0";
> };
>
> - user_led3 {
> + user_led3: led-3 {
> label = "red:user3";
> gpios = <&gpio4 30 0>;
> linux,default-trigger = "mmc1";
> };
>
> - user_led4 {
> + user_led4: led-4 {
> label = "red:user4";
> gpios = <&gpio1 0 0>;
> panic-indicator;
> linux,default-trigger = "none";
> };
>
> - wlan_active_led {
> + wlan_active_led: led-5 {
> label = "red:wlan";
> gpios = <&gpio1 1 0>;
> linux,default-trigger = "phy0tx";
> default-state = "off";
> };
>
> - bt_active_led {
> + bt_active_led: led-6 {
> label = "red:bt";
> gpios = <&gpio1 4 0>;
> linux,default-trigger = "hci0-power";
> @@ -114,32 +115,32 @@
> };
>
> leds {
> - user_led1: user_led1 {
> + user_led1_pin: user-led1-pin {
> rockchip,pins =
> <4 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>;
> };
>
> - user_led2: user_led2 {
> + user_led2_pin: user-led2-pin {
> rockchip,pins =
> <4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
> };
>
> - user_led3: user_led3 {
> + user_led3_pin: user-led3-pin {
> rockchip,pins =
> <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>;
> };
>
> - user_led4: user_led4 {
> + user_led4_pin: user-led4-pin {
> rockchip,pins =
> <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
> };
>
> - wlan_led: wlan_led {
> + wlan_led_pin: wlan-led-pin {
> rockchip,pins =
> <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
> };
>
> - bt_led: bt_led {
> + bt_led_pin: bt-led-pin {
> rockchip,pins =
> <1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
> };
> diff --git a/arch/arm/dts/rk3399-firefly.dts b/arch/arm/dts/rk3399-firefly.dts
> index d63faf38cc..c4dd2a6b48 100644
> --- a/arch/arm/dts/rk3399-firefly.dts
> +++ b/arch/arm/dts/rk3399-firefly.dts
> @@ -6,6 +6,7 @@
> /dts-v1/;
> #include <dt-bindings/input/linux-event-codes.h>
> #include <dt-bindings/pwm/pwm.h>
> +#include <dt-bindings/usb/pd.h>
> #include "rk3399.dtsi"
> #include "rk3399-opp.dtsi"
>
> @@ -13,6 +14,12 @@
> model = "Firefly-RK3399 Board";
> compatible = "firefly,firefly-rk3399", "rockchip,rk3399";
>
> + aliases {
> + mmc0 = &sdio0;
> + mmc1 = &sdmmc;
> + mmc2 = &sdhci;
> + };
> +
> chosen {
> stdout-path = "serial2:1500000n8";
> };
> @@ -88,18 +95,25 @@
> };
> };
>
> + ir-receiver {
> + compatible = "gpio-ir-receiver";
> + gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_LOW>;
> + pinctrl-0 = <&ir_int>;
> + pinctrl-names = "default";
> + };
> +
> leds {
> compatible = "gpio-leds";
> pinctrl-names = "default";
> - pinctrl-0 = <&work_led_gpio>, <&diy_led_gpio>;
> + pinctrl-0 = <&work_led_pin>, <&diy_led_pin>;
>
> - work-led {
> + work_led: led-0 {
> label = "work";
> default-state = "on";
> gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>;
> };
>
> - diy-led {
> + diy_led: led-1 {
> label = "diy";
> default-state = "off";
> gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>;
> @@ -145,6 +159,23 @@
> reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>;
> };
>
> + sound-dit {
> + compatible = "audio-graph-card";
> + label = "SPDIF";
> + dais = <&spdif_p0>;
> + };
> +
> + spdif-dit {
> + compatible = "linux,spdif-dit";
> + #sound-dai-cells = <0>;
> +
> + port {
> + dit_p0_0: endpoint {
> + remote-endpoint = <&spdif_p0_0>;
> + };
> + };
> + };
> +
> /* switched by pmic_sleep */
> vcc1v8_s3: vcca1v8_s3: vcc1v8-s3 {
> compatible = "regulator-fixed";
> @@ -190,6 +221,17 @@
> vin-supply = <&vcc_sys>;
> };
>
> + vcc5v0_typec: vcc5v0-typec-regulator {
> + compatible = "regulator-fixed";
> + enable-active-high;
> + gpio = <&gpio1 RK_PA3 GPIO_ACTIVE_HIGH>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&vcc5v0_typec_en>;
> + regulator-name = "vcc5v0_typec";
> + regulator-always-on;
> + vin-supply = <&vcc_sys>;
> + };
> +
> vcc_sys: vcc-sys {
> compatible = "regulator-fixed";
> regulator-name = "vcc_sys";
> @@ -515,6 +557,53 @@
> i2c-scl-falling-time-ns = <20>;
> 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>;
> + status = "okay";
> +
> + connector {
> + compatible = "usb-c-connector";
> + data-role = "host";
> + label = "USB-C";
> + op-sink-microwatt = <1000000>;
> + power-role = "dual";
> + sink-pdos =
> + <PDO_FIXED(5000, 2500, PDO_FIXED_USB_COMM)>;
> + source-pdos =
> + <PDO_FIXED(5000, 1400, PDO_FIXED_USB_COMM)>;
> + try-power-role = "sink";
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port@0 {
> + reg = <0>;
> +
> + usbc_hs: endpoint {
> + remote-endpoint =
> + <&u2phy0_typec_hs>;
> + };
> + };
> +
> + port@1 {
> + reg = <1>;
> +
> + usbc_ss: endpoint {
> + remote-endpoint =
> + <&tcphy0_typec_ss>;
> + };
> + };
> + };
> + };
> + };
> +
> accelerometer@68 {
> compatible = "invensense,mpu6500";
> reg = <0x68>;
> @@ -572,12 +661,34 @@
> };
> };
>
> + fusb302x {
> + fusb0_int: fusb0-int {
> + rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
> + };
> + };
> +
> + ir {
> + ir_int: ir-int {
> + rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
> + };
> + };
> +
> lcd-panel {
> lcd_panel_reset: lcd-panel-reset {
> rockchip,pins = <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>;
> };
> };
>
> + leds {
> + work_led_pin: work-led-pin {
> + rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
> + };
> +
> + diy_led_pin: diy-led-pin {
> + rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
> + };
> + };
> +
> pcie {
> pcie_pwr_en: pcie-pwr-en {
> rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
> @@ -589,18 +700,16 @@
> };
>
> pmic {
> - vsel1_gpio: vsel1-gpio {
> - rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>;
> + pmic_int_l: pmic-int-l {
> + rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
> };
>
> - vsel2_gpio: vsel2-gpio {
> - rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
> + vsel1_pin: vsel1-pin {
> + rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>;
> };
> - };
>
> - sdio-pwrseq {
> - wifi_enable_h: wifi-enable-h {
> - rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
> + vsel2_pin: vsel2-pin {
> + rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
> };
> };
>
> @@ -610,9 +719,15 @@
> };
> };
>
> - pmic {
> - pmic_int_l: pmic-int-l {
> - rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
> + sdio-pwrseq {
> + wifi_enable_h: wifi-enable-h {
> + rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
> + };
> + };
> +
> + usb-typec {
> + vcc5v0_typec_en: vcc5v0_typec_en {
> + rockchip,pins = <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
> };
> };
>
> @@ -627,16 +742,6 @@
> rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
> };
> };
> -
> - leds {
> - work_led_gpio: work_led-gpio {
> - rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
> - };
> -
> - diy_led_gpio: diy_led-gpio {
> - rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
> - };
> - };
> };
>
> &pwm0 {
> @@ -704,10 +809,29 @@
> status = "okay";
> };
>
> +&spdif {
> + pinctrl-0 = <&spdif_bus_1>;
> + status = "okay";
> +
> + spdif_p0: port {
> + spdif_p0_0: endpoint {
> + remote-endpoint = <&dit_p0_0>;
> + };
> + };
> +};
> +
> &tcphy0 {
> status = "okay";
> };
>
> +&tcphy0_usb3 {
> + port {
> + tcphy0_typec_ss: endpoint {
> + remote-endpoint = <&usbc_ss>;
> + };
> + };
> +};
> +
> &tcphy1 {
> status = "okay";
> };
> @@ -731,6 +855,12 @@
> phy-supply = <&vcc5v0_host>;
> status = "okay";
> };
> +
> + port {
> + u2phy0_typec_hs: endpoint {
> + remote-endpoint = <&usbc_hs>;
> + };
> + };
> };
>
> &u2phy1 {
> diff --git a/arch/arm/dts/rk3399-gru.dtsi b/arch/arm/dts/rk3399-gru.dtsi
> index f9c5bb607b..b80f19066b 100644
> --- a/arch/arm/dts/rk3399-gru.dtsi
> +++ b/arch/arm/dts/rk3399-gru.dtsi
> @@ -10,6 +10,11 @@
> #include "rk3399-op1-opp.dtsi"
>
> / {
> + aliases {
> + mmc0 = &sdmmc;
> + mmc1 = &sdhci;
> + };
> +
> chosen {
> stdout-path = "serial2:115200n8";
> };
> @@ -247,8 +252,8 @@
> enable-active-high;
> enable-gpio = <&gpio2 2 GPIO_ACTIVE_HIGH>;
> gpios = <&gpio2 28 GPIO_ACTIVE_HIGH>;
> - states = <1800000 0x1
> - 3000000 0x0>;
> + states = <1800000 0x1>,
> + <3000000 0x0>;
>
> regulator-min-microvolt = <1800000>;
> regulator-max-microvolt = <3000000>;
> @@ -342,6 +347,7 @@
> cpu-supply = <&ppvar_bigcpu>;
> };
>
> +
> &cru {
> assigned-clocks =
> <&cru PLL_GPLL>, <&cru PLL_CPLL>,
> @@ -515,7 +521,7 @@ ap_i2c_audio: &i2c8 {
> * configured as SDMMC and not JTAG.
> */
> pinctrl-names = "default";
> - pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_cd_gpio
> + pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_cd_pin
> &sdmmc_bus4>;
>
> bus-width = <4>;
> @@ -766,7 +772,7 @@ ap_i2c_audio: &i2c8 {
> };
>
> /* This is where we actually hook up CD; has external pull */
> - sdmmc_cd_gpio: sdmmc-cd-gpio {
> + sdmmc_cd_pin: sdmmc-cd-pin {
> rockchip,pins = <4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
> };
> };
> diff --git a/arch/arm/dts/rk3399-khadas-edge.dtsi b/arch/arm/dts/rk3399-khadas-edge.dtsi
> index e87a044774..d5c7648c84 100644
> --- a/arch/arm/dts/rk3399-khadas-edge.dtsi
> +++ b/arch/arm/dts/rk3399-khadas-edge.dtsi
> @@ -11,6 +11,12 @@
> #include "rk3399-opp.dtsi"
>
> / {
> + aliases {
> + mmc0 = &sdio0;
> + mmc1 = &sdmmc;
> + mmc2 = &sdhci;
> + };
> +
> chosen {
> stdout-path = "serial2:1500000n8";
> };
> @@ -138,18 +144,26 @@
> };
> };
>
> + ir-receiver {
> + compatible = "gpio-ir-receiver";
> + gpios = <&gpio1 RK_PB6 GPIO_ACTIVE_LOW>;
> + linux,rc-map-name = "rc-khadas";
> + pinctrl-names = "default";
> + pinctrl-0 = <&ir_rx>;
> + };
> +
> leds {
> compatible = "gpio-leds";
> pinctrl-names = "default";
> - pinctrl-0 = <&sys_led_gpio>, <&user_led_gpio>;
> + pinctrl-0 = <&sys_led_pin>, <&user_led_pin>;
>
> - sys-led {
> + sys_led: led-0 {
> label = "sys_led";
> linux,default-trigger = "heartbeat";
> gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
> };
>
> - user-led {
> + user_led: led-1 {
> label = "user_led";
> default-state = "off";
> gpios = <&gpio4 RK_PD0 GPIO_ACTIVE_HIGH>;
> @@ -585,12 +599,18 @@
> };
> };
>
> + ir {
> + ir_rx: ir-rx {
> + rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
> + };
> + };
> +
> leds {
> - sys_led_gpio: sys_led-gpio {
> + sys_led_pin: sys-led-pin {
> rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
> };
>
> - user_led_gpio: user_led-gpio {
> + user_led_pin: user-led-pin {
> rockchip,pins = <4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
> };
> };
> @@ -690,6 +710,16 @@
> status = "okay";
> };
>
> +&spi1 {
> + status = "okay";
> +
> + spiflash: flash@0 {
> + compatible = "winbond,w25q128fw", "jedec,spi-nor";
> + reg = <0>;
> + spi-max-frequency = <104000000>;
> + };
> +};
> +
> &tcphy0 {
> status = "okay";
> };
> diff --git a/arch/arm/dts/rk3399-leez-p710.dts b/arch/arm/dts/rk3399-leez-p710.dts
> index 73be38a537..7c93f840bc 100644
> --- a/arch/arm/dts/rk3399-leez-p710.dts
> +++ b/arch/arm/dts/rk3399-leez-p710.dts
> @@ -13,6 +13,12 @@
> model = "Leez RK3399 P710";
> compatible = "leez,p710", "rockchip,rk3399";
>
> + aliases {
> + mmc0 = &sdio0;
> + mmc1 = &sdmmc;
> + mmc2 = &sdhci;
> + };
> +
> chosen {
> stdout-path = "serial2:1500000n8";
> };
> @@ -341,7 +347,7 @@
> reg = <0x40>;
> fcs,suspend-voltage-selector = <1>;
> pinctrl-names = "default";
> - pinctrl-0 = <&vsel1_gpio>;
> + pinctrl-0 = <&vsel1_pin>;
> regulator-name = "vdd_cpu_b";
> regulator-min-microvolt = <712500>;
> regulator-max-microvolt = <1500000>;
> @@ -360,7 +366,7 @@
> reg = <0x41>;
> fcs,suspend-voltage-selector = <1>;
> pinctrl-names = "default";
> - pinctrl-0 = <&vsel2_gpio>;
> + pinctrl-0 = <&vsel2_pin>;
> regulator-name = "vdd_gpu";
> regulator-min-microvolt = <712500>;
> regulator-max-microvolt = <1500000>;
> @@ -447,11 +453,11 @@
> rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
> };
>
> - vsel1_gpio: vsel1-gpio {
> + vsel1_pin: vsel1-pin {
> rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>;
> };
>
> - vsel2_gpio: vsel2-gpio {
> + vsel2_pin: vsel2-pin {
> rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
> };
> };
> diff --git a/arch/arm/dts/rk3399-nanopc-t4.dts b/arch/arm/dts/rk3399-nanopc-t4.dts
> index e0d75617bb..452728b82e 100644
> --- a/arch/arm/dts/rk3399-nanopc-t4.dts
> +++ b/arch/arm/dts/rk3399-nanopc-t4.dts
> @@ -95,6 +95,7 @@
> };
>
> &pcie0 {
> + ep-gpios = <&gpio2 RK_PA4 GPIO_ACTIVE_HIGH>;
> num-lanes = <4>;
> vpcie3v3-supply = <&vcc3v3_sys>;
> };
> diff --git a/arch/arm/dts/rk3399-nanopi-r4s.dts b/arch/arm/dts/rk3399-nanopi-r4s.dts
> index 6f2cf17bf1..cef4d18b59 100644
> --- a/arch/arm/dts/rk3399-nanopi-r4s.dts
> +++ b/arch/arm/dts/rk3399-nanopi-r4s.dts
> @@ -1,13 +1,15 @@
> // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> /*
> - * Copyright (c) 2016 Fuzhou Rockchip Electronics Co., Ltd
> + * FriendlyElec NanoPC-T4 board device tree source
> *
> - * Copyright (c) 2018 FriendlyElec Computer Tech. Co., Ltd.
> + * Copyright (c) 2020 FriendlyElec Computer Tech. Co., Ltd.
> * (http://www.friendlyarm.com)
> *
> * Copyright (c) 2018 Collabora Ltd.
> - * Copyright (c) 2019 Arm Ltd.
> - * Copyright (C) 2020 Xiaobo <peterwillcn@gmail.com>
> + *
> + * Copyright (c) 2020 Jensen Huang <jensenhuang@friendlyarm.com>
> + * Copyright (c) 2020 Marty Jones <mj8263788@gmail.com>
> + * Copyright (c) 2021 Tianling Shen <cnsztl@gmail.com>
> */
>
> /dts-v1/;
> @@ -17,94 +19,87 @@
> model = "FriendlyElec NanoPi R4S";
> compatible = "friendlyarm,nanopi-r4s", "rockchip,rk3399";
>
> - aliases {
> - ethernet1 = &r8169;
> - };
> + /delete-node/ display-subsystem;
>
> - vdd_5v: vdd-5v {
> - compatible = "regulator-fixed";
> - regulator-name = "vdd_5v";
> - regulator-always-on;
> - regulator-boot-on;
> - };
> + gpio-leds {
> + pinctrl-0 = <&lan_led_pin>, <&sys_led_pin>, <&wan_led_pin>;
>
> - fan: pwm-fan {
> - compatible = "pwm-fan";
> - cooling-levels = <0 12 18 255>;
> - #cooling-cells = <2>;
> - fan-supply = <&vdd_5v>;
> - pwms = <&pwm1 0 50000 0>;
> - };
> -};
> + /delete-node/ led-0;
>
> -&cpu_thermal {
> - trips {
> - cpu_warm: cpu_warm {
> - temperature = <55000>;
> - hysteresis = <2000>;
> - type = "active";
> + lan_led: led-lan {
> + gpios = <&gpio1 RK_PA1 GPIO_ACTIVE_HIGH>;
> + label = "green:lan";
> };
>
> - cpu_hot: cpu_hot {
> - temperature = <65000>;
> - hysteresis = <2000>;
> - type = "active";
> + sys_led: led-sys {
> + gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>;
> + label = "red:power";
> + default-state = "on";
> };
> - };
>
> - cooling-maps {
> - map2 {
> - trip = <&cpu_warm>;
> - cooling-device = <&fan THERMAL_NO_LIMIT 1>;
> + wan_led: led-wan {
> + gpios = <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>;
> + label = "green:wan";
> };
> + };
> +
> + gpio-keys {
> + pinctrl-0 = <&reset_button_pin>;
> +
> + /delete-node/ power;
>
> - map3 {
> - trip = <&cpu_hot>;
> - cooling-device = <&fan 2 THERMAL_NO_LIMIT>;
> + reset {
> + debounce-interval = <50>;
> + gpios = <&gpio1 RK_PC6 GPIO_ACTIVE_LOW>;
> + label = "reset";
> + linux,code = <KEY_RESTART>;
> };
> };
> +
> + vdd_5v: vdd-5v {
> + compatible = "regulator-fixed";
> + regulator-name = "vdd_5v";
> + regulator-always-on;
> + regulator-boot-on;
> + };
> };
>
> &emmc_phy {
> status = "disabled";
> };
>
> -&fusb0 {
> +&i2c4 {
> status = "disabled";
> };
>
> -&leds {
> - lan_led: led-1 {
> - gpios = <&gpio1 RK_PA1 GPIO_ACTIVE_HIGH>;
> - label = "nanopi-r4s:green:lan";
> - };
> -
> - wan_led: led-2 {
> - gpios = <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>;
> - label = "nanopi-r4s:green:wan";
> - };
> -};
> -
> -&leds_gpio {
> - rockchip,pins =
> - <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>,
> - <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>,
> - <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
> -};
> -
> &pcie0 {
> max-link-speed = <1>;
> num-lanes = <1>;
> vpcie3v3-supply = <&vcc3v3_sys>;
> +};
>
> - pcie@0 {
> - reg = <0x00000000 0 0 0 0>;
> - #address-cells = <3>;
> - #size-cells = <2>;
> +&pinctrl {
> + gpio-leds {
> + /delete-node/ status-led-pin;
>
> - r8169: pcie@0,0 {
> - reg = <0x000000 0 0 0 0>;
> - local-mac-address = [ 00 00 00 00 00 00 ];
> + lan_led_pin: lan-led-pin {
> + rockchip,pins = <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
> + };
> +
> + sys_led_pin: sys-led-pin {
> + rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
> + };
> +
> + wan_led_pin: wan-led-pin {
> + rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
> + };
> + };
> +
> + rockchip-key {
> + /delete-node/ power-key;
> +
> + reset_button_pin: reset-button-pin {
> + rockchip,pins = <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_up>;
> };
> };
> };
> @@ -117,10 +112,6 @@
> status = "disabled";
> };
>
> -&sdmmc {
> - host-index-min = <1>;
> -};
> -
> &u2phy0_host {
> phy-supply = <&vdd_5v>;
> };
> @@ -129,6 +120,10 @@
> status = "disabled";
> };
>
> +&uart0 {
> + status = "disabled";
> +};
> +
> &usbdrd_dwc3_0 {
> dr_mode = "host";
> };
> diff --git a/arch/arm/dts/rk3399-nanopi4.dtsi b/arch/arm/dts/rk3399-nanopi4.dtsi
> index c88018a0ef..8c0ff6c96e 100644
> --- a/arch/arm/dts/rk3399-nanopi4.dtsi
> +++ b/arch/arm/dts/rk3399-nanopi4.dtsi
> @@ -17,6 +17,12 @@
> #include "rk3399-opp.dtsi"
>
> / {
> + aliases {
> + mmc0 = &sdio0;
> + mmc1 = &sdmmc;
> + mmc2 = &sdhci;
> + };
> +
> chosen {
> stdout-path = "serial2:1500000n8";
> };
> @@ -117,9 +123,9 @@
> leds: gpio-leds {
> compatible = "gpio-leds";
> pinctrl-names = "default";
> - pinctrl-0 = <&leds_gpio>;
> + pinctrl-0 = <&status_led_pin>;
>
> - status {
> + status_led: led-0 {
> gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>;
> label = "status_led";
> linux,default-trigger = "heartbeat";
> @@ -182,7 +188,7 @@
> #address-cells = <1>;
> #size-cells = <0>;
>
> - rtl8211e: phy@1 {
> + rtl8211e: ethernet-phy@1 {
> reg = <1>;
> interrupt-parent = <&gpio3>;
> interrupts = <RK_PB2 IRQ_TYPE_LEVEL_LOW>;
> @@ -504,8 +510,6 @@
> };
>
> &pcie0 {
> - ep-gpios = <&gpio2 RK_PA4 GPIO_ACTIVE_HIGH>;
> - max-link-speed = <2>;
> num-lanes = <2>;
> vpcie0v9-supply = <&vcca0v9_s3>;
> vpcie1v8-supply = <&vcca1v8_s3>;
> @@ -520,12 +524,12 @@
> };
>
> gpio-leds {
> - leds_gpio: leds-gpio {
> + status_led_pin: status-led-pin {
> rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
> };
> };
>
> - phy {
> + gmac {
> phy_intb: phy-intb {
> rockchip,pins = <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>;
> };
> diff --git a/arch/arm/dts/rk3399-opp.dtsi b/arch/arm/dts/rk3399-opp.dtsi
> index d6f1095abb..da41cd81eb 100644
> --- a/arch/arm/dts/rk3399-opp.dtsi
> +++ b/arch/arm/dts/rk3399-opp.dtsi
> @@ -10,28 +10,28 @@
>
> opp00 {
> opp-hz = /bits/ 64 <408000000>;
> - opp-microvolt = <800000>;
> + opp-microvolt = <825000 825000 1250000>;
> clock-latency-ns = <40000>;
> };
> opp01 {
> opp-hz = /bits/ 64 <600000000>;
> - opp-microvolt = <800000>;
> + opp-microvolt = <825000 825000 1250000>;
> };
> opp02 {
> opp-hz = /bits/ 64 <816000000>;
> - opp-microvolt = <850000>;
> + opp-microvolt = <850000 850000 1250000>;
> };
> opp03 {
> opp-hz = /bits/ 64 <1008000000>;
> - opp-microvolt = <925000>;
> + opp-microvolt = <925000 925000 1250000>;
> };
> opp04 {
> opp-hz = /bits/ 64 <1200000000>;
> - opp-microvolt = <1000000>;
> + opp-microvolt = <1000000 1000000 1250000>;
> };
> opp05 {
> opp-hz = /bits/ 64 <1416000000>;
> - opp-microvolt = <1125000>;
> + opp-microvolt = <1125000 1125000 1250000>;
> };
> };
>
> @@ -41,36 +41,36 @@
>
> opp00 {
> opp-hz = /bits/ 64 <408000000>;
> - opp-microvolt = <800000>;
> + opp-microvolt = <825000 825000 1250000>;
> clock-latency-ns = <40000>;
> };
> opp01 {
> opp-hz = /bits/ 64 <600000000>;
> - opp-microvolt = <800000>;
> + opp-microvolt = <825000 825000 1250000>;
> };
> opp02 {
> opp-hz = /bits/ 64 <816000000>;
> - opp-microvolt = <825000>;
> + opp-microvolt = <825000 825000 1250000>;
> };
> opp03 {
> opp-hz = /bits/ 64 <1008000000>;
> - opp-microvolt = <875000>;
> + opp-microvolt = <875000 875000 1250000>;
> };
> opp04 {
> opp-hz = /bits/ 64 <1200000000>;
> - opp-microvolt = <950000>;
> + opp-microvolt = <950000 950000 1250000>;
> };
> opp05 {
> opp-hz = /bits/ 64 <1416000000>;
> - opp-microvolt = <1025000>;
> + opp-microvolt = <1025000 1025000 1250000>;
> };
> opp06 {
> opp-hz = /bits/ 64 <1608000000>;
> - opp-microvolt = <1100000>;
> + opp-microvolt = <1100000 1100000 1250000>;
> };
> opp07 {
> opp-hz = /bits/ 64 <1800000000>;
> - opp-microvolt = <1200000>;
> + opp-microvolt = <1200000 1200000 1250000>;
> };
> };
>
> @@ -79,27 +79,27 @@
>
> opp00 {
> opp-hz = /bits/ 64 <200000000>;
> - opp-microvolt = <800000>;
> + opp-microvolt = <825000 825000 1150000>;
> };
> opp01 {
> opp-hz = /bits/ 64 <297000000>;
> - opp-microvolt = <800000>;
> + opp-microvolt = <825000 825000 1150000>;
> };
> opp02 {
> opp-hz = /bits/ 64 <400000000>;
> - opp-microvolt = <825000>;
> + opp-microvolt = <825000 825000 1150000>;
> };
> opp03 {
> opp-hz = /bits/ 64 <500000000>;
> - opp-microvolt = <875000>;
> + opp-microvolt = <875000 875000 1150000>;
> };
> opp04 {
> opp-hz = /bits/ 64 <600000000>;
> - opp-microvolt = <925000>;
> + opp-microvolt = <925000 925000 1150000>;
> };
> opp05 {
> opp-hz = /bits/ 64 <800000000>;
> - opp-microvolt = <1100000>;
> + opp-microvolt = <1100000 1100000 1150000>;
> };
> };
> };
> diff --git a/arch/arm/dts/rk3399-orangepi.dts b/arch/arm/dts/rk3399-orangepi.dts
> index f9f7246d4d..04b54abea3 100644
> --- a/arch/arm/dts/rk3399-orangepi.dts
> +++ b/arch/arm/dts/rk3399-orangepi.dts
> @@ -7,6 +7,7 @@
>
> #include "dt-bindings/pwm/pwm.h"
> #include "dt-bindings/input/input.h"
> +#include "dt-bindings/usb/pd.h"
> #include "rk3399.dtsi"
> #include "rk3399-opp.dtsi"
>
> @@ -14,6 +15,12 @@
> model = "Orange Pi RK3399 Board";
> compatible = "rockchip,rk3399-orangepi", "rockchip,rk3399";
>
> + aliases {
> + mmc0 = &sdio0;
> + mmc1 = &sdmmc;
> + mmc2 = &sdhci;
> + };
> +
> chosen {
> stdout-path = "serial2:1500000n8";
> };
> @@ -214,7 +221,7 @@
> #address-cells = <1>;
> #size-cells = <0>;
>
> - rtl8211e: phy@1 {
> + rtl8211e: ethernet-phy@1 {
> reg = <1>;
> interrupt-parent = <&gpio3>;
> interrupts = <RK_PB2 IRQ_TYPE_LEVEL_LOW>;
> @@ -531,6 +538,43 @@
> pinctrl-names = "default";
> pinctrl-0 = <&chg_cc_int_l>;
> vbus-supply = <&vbus_typec>;
> +
> + typec_con: connector {
> + compatible = "usb-c-connector";
> + data-role = "host";
> + label = "USB-C";
> + op-sink-microwatt = <1000000>;
> + power-role = "dual";
> + sink-pdos =
> + <PDO_FIXED(5000, 2500, PDO_FIXED_USB_COMM)>;
> + source-pdos =
> + <PDO_FIXED(5000, 1400, PDO_FIXED_USB_COMM)>;
> + try-power-role = "sink";
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port@0 {
> + reg = <0>;
> + typec_hs: endpoint {
> + remote-endpoint = <&u2phy0_typec_hs>;
> + };
> + };
> + port@1 {
> + reg = <1>;
> + typec_ss: endpoint {
> + remote-endpoint = <&tcphy0_typec_ss>;
> + };
> + };
> + port@2 {
> + reg = <2>;
> + typec_dp: endpoint {
> + remote-endpoint = <&tcphy0_typec_dp>;
> + };
> + };
> + };
> + };
> };
> };
>
> @@ -554,7 +598,7 @@
> };
> };
>
> - phy {
> + gmac {
> phy_intb: phy-intb {
> rockchip,pins = <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>;
> };
> @@ -717,6 +761,22 @@
> status = "okay";
> };
>
> +&tcphy0_dp {
> + port {
> + tcphy0_typec_dp: endpoint {
> + remote-endpoint = <&typec_dp>;
> + };
> + };
> +};
> +
> +&tcphy0_usb3 {
> + port {
> + tcphy0_typec_ss: endpoint {
> + remote-endpoint = <&typec_ss>;
> + };
> + };
> +};
> +
> &tcphy1 {
> status = "okay";
> };
> @@ -739,6 +799,12 @@
> phy-supply = <&vcc5v0_host>;
> status = "okay";
> };
> +
> + port {
> + u2phy0_typec_hs: endpoint {
> + remote-endpoint = <&typec_hs>;
> + };
> + };
> };
>
> &u2phy1 {
> @@ -799,7 +865,7 @@
>
> &usbdrd_dwc3_0 {
> status = "okay";
> - dr_mode = "otg";
> + dr_mode = "host";
> };
>
> &usbdrd3_1 {
> diff --git a/arch/arm/dts/rk3399-pinebook-pro.dts b/arch/arm/dts/rk3399-pinebook-pro.dts
> index 294d21bf45..2b5f001ff4 100644
> --- a/arch/arm/dts/rk3399-pinebook-pro.dts
> +++ b/arch/arm/dts/rk3399-pinebook-pro.dts
> @@ -18,6 +18,12 @@
> model = "Pine64 Pinebook Pro";
> compatible = "pine64,pinebook-pro", "rockchip,rk3399";
>
> + aliases {
> + mmc0 = &sdio0;
> + mmc1 = &sdmmc;
> + mmc2 = &sdhci;
> + };
> +
> chosen {
> stdout-path = "serial2:1500000n8";
> };
> @@ -28,12 +34,19 @@
> pwms = <&pwm0 0 740740 0>;
> };
>
> + bat: battery {
> + compatible = "simple-battery";
> + charge-full-design-microamp-hours = <9800000>;
> + voltage-max-design-microvolt = <4350000>;
> + voltage-min-design-microvolt = <3000000>;
> + };
> +
> edp_panel: edp-panel {
> compatible = "boe,nv140fhmn49";
> backlight = <&backlight>;
> enable-gpios = <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>;
> pinctrl-names = "default";
> - pinctrl-0 = <&panel_en_gpio>;
> + pinctrl-0 = <&panel_en_pin>;
> power-supply = <&vcc3v3_panel>;
>
> ports {
> @@ -60,7 +73,7 @@
> gpio-key-lid {
> compatible = "gpio-keys";
> pinctrl-names = "default";
> - pinctrl-0 = <&lidbtn_gpio>;
> + pinctrl-0 = <&lidbtn_pin>;
>
> lid {
> debounce-interval = <20>;
> @@ -76,7 +89,7 @@
> gpio-key-power {
> compatible = "gpio-keys";
> pinctrl-names = "default";
> - pinctrl-0 = <&pwrbtn_gpio>;
> + pinctrl-0 = <&pwrbtn_pin>;
>
> power {
> debounce-interval = <20>;
> @@ -90,9 +103,9 @@
> leds {
> compatible = "gpio-leds";
> pinctrl-names = "default";
> - pinctrl-0 = <&pwrled_gpio &slpled_gpio>;
> + pinctrl-0 = <&pwr_led_pin &slp_led_pin>;
>
> - green-led {
> + green_led: led-0 {
> color = <LED_COLOR_ID_GREEN>;
> default-state = "on";
> function = LED_FUNCTION_POWER;
> @@ -100,7 +113,7 @@
> label = "green:power";
> };
>
> - red-led {
> + red_led: led-1 {
> color = <LED_COLOR_ID_RED>;
> default-state = "off";
> function = LED_FUNCTION_STANDBY;
> @@ -117,7 +130,7 @@
> clocks = <&rk808 1>;
> clock-names = "ext_clock";
> pinctrl-names = "default";
> - pinctrl-0 = <&wifi_enable_h_gpio>;
> + pinctrl-0 = <&wifi_enable_h_pin>;
> post-power-on-delay-ms = <100>;
> power-off-delay-us = <500000>;
>
> @@ -129,7 +142,7 @@
> es8316-sound {
> compatible = "simple-audio-card";
> pinctrl-names = "default";
> - pinctrl-0 = <&hp_det_gpio>;
> + pinctrl-0 = <&hp_det_pin>;
> simple-audio-card,name = "rockchip,es8316-codec";
> simple-audio-card,format = "i2s";
> simple-audio-card,mclk-fs = <256>;
> @@ -213,7 +226,7 @@
> enable-active-high;
> gpio = <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>;
> pinctrl-names = "default";
> - pinctrl-0 = <&pwr_5v_gpio>;
> + pinctrl-0 = <&pwr_5v_pin>;
> regulator-name = "vcc5v0_usb";
> regulator-always-on;
> regulator-min-microvolt = <5000000>;
> @@ -270,7 +283,7 @@
> enable-active-high;
> gpio = <&gpio0 RK_PA1 GPIO_ACTIVE_HIGH>;
> pinctrl-names = "default";
> - pinctrl-0 = <&sdmmc0_pwr_h_gpio>;
> + pinctrl-0 = <&sdmmc0_pwr_h_pin>;
> regulator-name = "vcc3v0_sd";
> regulator-always-on;
> regulator-min-microvolt = <3000000>;
> @@ -288,7 +301,7 @@
> enable-active-high;
> gpio = <&gpio1 RK_PC6 GPIO_ACTIVE_HIGH>;
> pinctrl-names = "default";
> - pinctrl-0 = <&lcdvcc_en_gpio>;
> + pinctrl-0 = <&lcdvcc_en_pin>;
> regulator-name = "vcc3v3_panel";
> regulator-always-on;
> regulator-min-microvolt = <3300000>;
> @@ -317,7 +330,7 @@
> enable-active-high;
> gpio = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>;
> pinctrl-names = "default";
> - pinctrl-0 = <&vcc5v0_host_en_gpio>;
> + pinctrl-0 = <&vcc5v0_host_en_pin>;
> regulator-name = "vcc5v0_otg";
> regulator-always-on;
> regulator-min-microvolt = <5000000>;
> @@ -336,7 +349,7 @@
> enable-active-high;
> gpio = <&gpio1 RK_PA3 GPIO_ACTIVE_HIGH>;
> pinctrl-names = "default";
> - pinctrl-0 = <&vcc5v0_typec0_en_gpio>;
> + pinctrl-0 = <&vcc5v0_typec0_en_pin>;
> regulator-name = "vbus_5vout";
> regulator-min-microvolt = <5000000>;
> regulator-max-microvolt = <5000000>;
> @@ -368,7 +381,7 @@
>
> /* Also triggered by USB charger */
> pinctrl-names = "default";
> - pinctrl-0 = <&dc_det_gpio>;
> + pinctrl-0 = <&dc_det_pin>;
> };
> };
>
> @@ -447,7 +460,7 @@
> interrupt-parent = <&gpio3>;
> interrupts = <10 IRQ_TYPE_LEVEL_LOW>;
> pinctrl-names = "default";
> - pinctrl-0 = <&pmic_int_l_gpio>;
> + pinctrl-0 = <&pmic_int_l_pin>;
> rockchip,system-power-controller;
> wakeup-source;
>
> @@ -627,7 +640,7 @@
> reg = <0x40>;
> fcs,suspend-voltage-selector = <1>;
> pinctrl-names = "default";
> - pinctrl-0 = <&vsel1_gpio>;
> + pinctrl-0 = <&vsel1_pin>;
> regulator-name = "vdd_cpu_b";
> regulator-always-on;
> regulator-boot-on;
> @@ -646,7 +659,7 @@
> reg = <0x41>;
> fcs,suspend-voltage-selector = <1>;
> pinctrl-names = "default";
> - pinctrl-0 = <&vsel2_gpio>;
> + pinctrl-0 = <&vsel2_pin>;
> regulator-name = "vdd_gpu";
> regulator-always-on;
> regulator-boot-on;
> @@ -690,9 +703,10 @@
> fusb0: fusb30x@22 {
> compatible = "fcs,fusb302";
> reg = <0x22>;
> - fcs,int_n = <&gpio1 RK_PA2 GPIO_ACTIVE_HIGH>;
> + interrupt-parent = <&gpio1>;
> + interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>;
> pinctrl-names = "default";
> - pinctrl-0 = <&fusb0_int_gpio>;
> + pinctrl-0 = <&fusb0_int_pin>;
> vbus-supply = <&vbus_typec>;
>
> connector {
> @@ -740,12 +754,29 @@
> };
> };
> };
> +
> + cw2015@62 {
> + compatible = "cellwise,cw2015";
> + reg = <0x62>;
> + cellwise,battery-profile = /bits/ 8 <
> + 0x17 0x67 0x80 0x73 0x6E 0x6C 0x6B 0x63
> + 0x77 0x51 0x5C 0x58 0x50 0x4C 0x48 0x36
> + 0x15 0x0C 0x0C 0x19 0x5B 0x7D 0x6F 0x69
> + 0x69 0x5B 0x0C 0x29 0x20 0x40 0x52 0x59
> + 0x57 0x56 0x54 0x4F 0x3B 0x1F 0x7F 0x17
> + 0x06 0x1A 0x30 0x5A 0x85 0x93 0x96 0x2D
> + 0x48 0x77 0x9C 0xB3 0x80 0x52 0x94 0xCB
> + 0x2F 0x00 0x64 0xA5 0xB5 0x11 0xF0 0x11
> + >;
> + cellwise,monitor-interval-ms = <5000>;
> + monitored-battery = <&bat>;
> + power-supplies = <&mains_charger>, <&fusb0>;
> + };
> };
>
> &i2s1 {
> - #sound-dai-cells = <0>;
> pinctrl-names = "default";
> - pinctrl-0 = <&i2s_8ch_mclk_gpio>, <&i2s1_2ch_bus>;
> + pinctrl-0 = <&i2s_8ch_mclk_pin>, <&i2s1_2ch_bus>;
> rockchip,capture-channels = <8>;
> rockchip,playback-channels = <8>;
> status = "okay";
> @@ -765,7 +796,6 @@
> &pcie0 {
> bus-scan-delay-ms = <1000>;
> ep-gpios = <&gpio2 RK_PD4 GPIO_ACTIVE_HIGH>;
> - max-link-speed = <2>;
> num-lanes = <4>;
> pinctrl-names = "default";
> pinctrl-0 = <&pcie_clkreqn_cpm>;
> @@ -777,116 +807,116 @@
>
> &pinctrl {
> buttons {
> - pwrbtn_gpio: pwrbtn-gpio {
> + pwrbtn_pin: pwrbtn-pin {
> rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
> };
>
> - lidbtn_gpio: lidbtn-gpio {
> + lidbtn_pin: lidbtn-pin {
> rockchip,pins = <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>;
> };
> };
>
> dc-charger {
> - dc_det_gpio: dc-det-gpio {
> + dc_det_pin: dc-det-pin {
> rockchip,pins = <4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_up>;
> };
> };
>
> es8316 {
> - hp_det_gpio: hp-det-gpio {
> + hp_det_pin: hp-det-pin {
> rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>;
> };
> };
>
> fusb302x {
> - fusb0_int_gpio: fusb0-int-gpio {
> + fusb0_int_pin: fusb0-int-pin {
> rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
> };
> };
>
> i2s1 {
> - i2s_8ch_mclk_gpio: i2s-8ch-mclk-gpio {
> + i2s_8ch_mclk_pin: i2s-8ch-mclk-pin {
> rockchip,pins = <4 RK_PA0 1 &pcfg_pull_none>;
> };
> };
>
> lcd-panel {
> - lcdvcc_en_gpio: lcdvcc-en-gpio {
> + lcdvcc_en_pin: lcdvcc-en-pin {
> rockchip,pins = <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
> };
>
> - panel_en_gpio: panel-en-gpio {
> + panel_en_pin: panel-en-pin {
> rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
> };
>
> - lcd_panel_reset_gpio: lcd-panel-reset-gpio {
> + lcd_panel_reset_pin: lcd-panel-reset-pin {
> rockchip,pins = <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>;
> };
> };
>
> leds {
> - pwrled_gpio: pwrled_gpio {
> + pwr_led_pin: pwr-led-pin {
> rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
> };
>
> - slpled_gpio: slpled_gpio {
> + slp_led_pin: slp-led-pin {
> rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
> };
> };
>
> pmic {
> - pmic_int_l_gpio: pmic-int-l-gpio {
> + pmic_int_l_pin: pmic-int-l-pin {
> rockchip,pins = <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>;
> };
>
> - vsel1_gpio: vsel1-gpio {
> + vsel1_pin: vsel1-pin {
> rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>;
> };
>
> - vsel2_gpio: vsel2-gpio {
> + vsel2_pin: vsel2-pin {
> rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
> };
> };
>
> sdcard {
> - sdmmc0_pwr_h_gpio: sdmmc0-pwr-h-gpio {
> + sdmmc0_pwr_h_pin: sdmmc0-pwr-h-pin {
> rockchip,pins = <0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
> };
>
> };
>
> sdio-pwrseq {
> - wifi_enable_h_gpio: wifi-enable-h-gpio {
> + wifi_enable_h_pin: wifi-enable-h-pin {
> rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
> };
> };
>
> usb-typec {
> - vcc5v0_typec0_en_gpio: vcc5v0-typec0-en-gpio {
> + vcc5v0_typec0_en_pin: vcc5v0-typec0-en-pin {
> rockchip,pins = <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
> };
> };
>
> usb2 {
> - pwr_5v_gpio: pwr-5v-gpio {
> + pwr_5v_pin: pwr-5v-pin {
> rockchip,pins = <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
> };
>
> - vcc5v0_host_en_gpio: vcc5v0-host-en-gpio {
> + vcc5v0_host_en_pin: vcc5v0-host-en-pin {
> rockchip,pins = <4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
> };
> };
>
> wireless-bluetooth {
> - bt_wake_gpio: bt-wake-gpio {
> + bt_wake_pin: bt-wake-pin {
> rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
> };
>
> - bt_host_wake_gpio: bt-host-wake-gpio {
> + bt_host_wake_pin: bt-host-wake-pin {
> rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
> };
>
> - bt_reset_gpio: bt-reset-gpio {
> + bt_reset_pin: bt-reset-pin {
> rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
> };
> };
> @@ -1034,7 +1064,7 @@
> host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>;
> max-speed = <1500000>;
> pinctrl-names = "default";
> - pinctrl-0 = <&bt_host_wake_gpio &bt_wake_gpio &bt_reset_gpio>;
> + pinctrl-0 = <&bt_host_wake_pin &bt_wake_pin &bt_reset_pin>;
> shutdown-gpios = <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>;
> vbat-supply = <&wifi_bat>;
> vddio-supply = <&vcc_wl>;
> diff --git a/arch/arm/dts/rk3399-puma-haikou.dts b/arch/arm/dts/rk3399-puma-haikou.dts
> index d80d6b7268..292bb7e80c 100644
> --- a/arch/arm/dts/rk3399-puma-haikou.dts
> +++ b/arch/arm/dts/rk3399-puma-haikou.dts
> @@ -10,14 +10,18 @@
> model = "Theobroma Systems RK3399-Q7 SoM";
> compatible = "tsd,rk3399-puma-haikou", "rockchip,rk3399";
>
> + aliases {
> + mmc1 = &sdmmc;
> + };
> +
> chosen {
> stdout-path = "serial0:115200n8";
> };
>
> leds {
> - pinctrl-0 = <&led_pin_module>, <&led_sd_haikou>;
> + pinctrl-0 = <&module_led_pin>, <&sd_card_led_pin>;
>
> - sd-card-led {
> + sd_card_led: led-1 {
> label = "sd_card_led";
> gpios = <&gpio1 RK_PA2 GPIO_ACTIVE_HIGH>;
> linux,default-trigger = "mmc0";
> @@ -179,7 +183,7 @@
> };
>
> leds {
> - led_sd_haikou: led-sd-gpio {
> + sd_card_led_pin: sd-card-led-pin {
> rockchip,pins =
> <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
> };
> diff --git a/arch/arm/dts/rk3399-puma.dtsi b/arch/arm/dts/rk3399-puma.dtsi
> index 72c06abd27..fb67db4619 100644
> --- a/arch/arm/dts/rk3399-puma.dtsi
> +++ b/arch/arm/dts/rk3399-puma.dtsi
> @@ -8,12 +8,16 @@
> #include "rk3399-opp.dtsi"
>
> / {
> + aliases {
> + mmc0 = &sdhci;
> + };
> +
> leds {
> compatible = "gpio-leds";
> pinctrl-names = "default";
> - pinctrl-0 = <&led_pin_module>;
> + pinctrl-0 = <&module_led_pin>;
>
> - module-led {
> + module_led: led-0 {
> label = "module_led";
> gpios = <&gpio2 RK_PD1 GPIO_ACTIVE_HIGH>;
> linux,default-trigger = "heartbeat";
> @@ -21,57 +25,6 @@
> };
> };
>
> - /*
> - * Overwrite the opp-table for CPUB as this board uses a different
> - * regulator (FAN53555) that only allows 10mV steps and therefore
> - * can't reach the operation point target voltages from rk3399-opp.dtsi
> - */
> - /delete-node/ opp-table1;
> - cluster1_opp: opp-table1 {
> - compatible = "operating-points-v2";
> - opp-shared;
> -
> - opp00 {
> - opp-hz = /bits/ 64 <408000000>;
> - opp-microvolt = <800000>;
> - clock-latency-ns = <40000>;
> - };
> - opp01 {
> - opp-hz = /bits/ 64 <600000000>;
> - opp-microvolt = <800000>;
> - };
> - opp02 {
> - opp-hz = /bits/ 64 <816000000>;
> - opp-microvolt = <830000>;
> - opp-suspend;
> - };
> - opp03 {
> - opp-hz = /bits/ 64 <1008000000>;
> - opp-microvolt = <880000>;
> - };
> - opp04 {
> - opp-hz = /bits/ 64 <1200000000>;
> - opp-microvolt = <950000>;
> - };
> - opp05 {
> - opp-hz = /bits/ 64 <1416000000>;
> - opp-microvolt = <1030000>;
> - };
> - opp06 {
> - opp-hz = /bits/ 64 <1608000000>;
> - opp-microvolt = <1100000>;
> - };
> - opp07 {
> - opp-hz = /bits/ 64 <1800000000>;
> - opp-microvolt = <1200000>;
> - };
> - opp08 {
> - opp-hz = /bits/ 64 <1992000000>;
> - opp-microvolt = <1230000>;
> - turbo-mode;
> - };
> - };
> -
> clkin_gmac: external-gmac-clock {
> compatible = "fixed-clock";
> clock-frequency = <125000000>;
> @@ -450,7 +403,7 @@
> };
>
> leds {
> - led_pin_module: led-module-gpio {
> + module_led_pin: module-led-pin {
> rockchip,pins =
> <2 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>;
> };
> diff --git a/arch/arm/dts/rk3399-roc-pc-mezzanine.dts b/arch/arm/dts/rk3399-roc-pc-mezzanine.dts
> index 2acb3d500f..9447c8724b 100644
> --- a/arch/arm/dts/rk3399-roc-pc-mezzanine.dts
> +++ b/arch/arm/dts/rk3399-roc-pc-mezzanine.dts
> @@ -11,6 +11,20 @@
> model = "Firefly ROC-RK3399-PC Mezzanine Board";
> compatible = "firefly,roc-rk3399-pc-mezzanine", "rockchip,rk3399";
>
> + aliases {
> + mmc2 = &sdio0;
> + };
> +
> + /* MP8009 PoE PD */
> + poe_12v: poe-12v {
> + compatible = "regulator-fixed";
> + regulator-name = "poe_12v";
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-min-microvolt = <12000000>;
> + regulator-max-microvolt = <12000000>;
> + };
> +
> vcc3v3_ngff: vcc3v3-ngff {
> compatible = "regulator-fixed";
> regulator-name = "vcc3v3_ngff";
> @@ -22,7 +36,7 @@
> regulator-boot-on;
> regulator-min-microvolt = <3300000>;
> regulator-max-microvolt = <3300000>;
> - vin-supply = <&dc_12v>;
> + vin-supply = <&sys_12v>;
> };
>
> vcc3v3_pcie: vcc3v3-pcie {
> @@ -34,10 +48,14 @@
> pinctrl-0 = <&vcc3v3_pcie_en>;
> regulator-min-microvolt = <3300000>;
> regulator-max-microvolt = <3300000>;
> - vin-supply = <&dc_12v>;
> + vin-supply = <&sys_12v>;
> };
> };
>
> +&sys_12v {
> + vin-supply = <&poe_12v>;
> +};
> +
> &pcie_phy {
> status = "okay";
> };
> diff --git a/arch/arm/dts/rk3399-roc-pc.dtsi b/arch/arm/dts/rk3399-roc-pc.dtsi
> index 9f225e9c3d..d1aaf8e833 100644
> --- a/arch/arm/dts/rk3399-roc-pc.dtsi
> +++ b/arch/arm/dts/rk3399-roc-pc.dtsi
> @@ -13,6 +13,11 @@
> model = "Firefly ROC-RK3399-PC Board";
> compatible = "firefly,roc-rk3399-pc", "rockchip,rk3399";
>
> + aliases {
> + mmc0 = &sdmmc;
> + mmc1 = &sdhci;
> + };
> +
> chosen {
> stdout-path = "serial2:1500000n8";
> };
> @@ -58,30 +63,37 @@
> };
> };
>
> + ir-receiver {
> + compatible = "gpio-ir-receiver";
> + gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_LOW>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&ir_int>;
> + };
> +
> leds {
> compatible = "gpio-leds";
> pinctrl-names = "default";
> - pinctrl-0 = <&work_led_gpio>, <&diy_led_gpio>, <&yellow_led_gpio>;
> + pinctrl-0 = <&work_led_pin>, <&diy_led_pin>, <&yellow_led_pin>;
>
> - work-led {
> + work_led: led-0 {
> label = "green:work";
> gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>;
> default-state = "on";
> linux,default-trigger = "heartbeat";
> };
>
> - diy-led {
> + diy_led: led-1 {
> label = "red:diy";
> gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>;
> default-state = "off";
> - linux,default-trigger = "mmc1";
> + linux,default-trigger = "mmc2";
> };
>
> - yellow-led {
> + yellow_led: led-2 {
> label = "yellow:yellow-led";
> gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>;
> default-state = "off";
> - linux,default-trigger = "mmc0";
> + linux,default-trigger = "mmc1";
> };
> };
>
> @@ -110,6 +122,14 @@
> regulator-max-microvolt = <5000000>;
> };
>
> + sys_12v: sys-12v {
> + compatible = "regulator-fixed";
> + regulator-name = "sys_12v";
> + regulator-always-on;
> + regulator-boot-on;
> + vin-supply = <&dc_12v>;
> + };
> +
> /* switched by pmic_sleep */
> vcc1v8_s3: vcca1v8_s3: vcc1v8-s3 {
> compatible = "regulator-fixed";
> @@ -141,7 +161,7 @@
> regulator-boot-on;
> regulator-min-microvolt = <3300000>;
> regulator-max-microvolt = <3300000>;
> - vin-supply = <&dc_12v>;
> + vin-supply = <&sys_12v>;
> };
>
> vcca_0v9: vcca-0v9 {
> @@ -186,7 +206,7 @@
> regulator-boot-on;
> regulator-min-microvolt = <5000000>;
> regulator-max-microvolt = <5000000>;
> - vin-supply = <&dc_12v>;
> + vin-supply = <&sys_12v>;
> };
>
> vdd_log: vdd-log {
> @@ -376,6 +396,7 @@
>
> vcc_sdio: LDO_REG4 {
> regulator-name = "vcc_sdio";
> + regulator-always-on;
> regulator-boot-on;
> regulator-min-microvolt = <1800000>;
> regulator-max-microvolt = <3000000>;
> @@ -456,7 +477,7 @@
> reg = <0x40>;
> fcs,suspend-voltage-selector = <1>;
> pinctrl-names = "default";
> - pinctrl-0 = <&vsel1_gpio>;
> + pinctrl-0 = <&vsel1_pin>;
> regulator-name = "vdd_cpu_b";
> regulator-min-microvolt = <712500>;
> regulator-max-microvolt = <1500000>;
> @@ -475,11 +496,13 @@
> reg = <0x41>;
> fcs,suspend-voltage-selector = <1>;
> pinctrl-names = "default";
> - pinctrl-0 = <&vsel2_gpio>;
> + pinctrl-0 = <&vsel2_pin>;
> regulator-name = "vdd_gpu";
> regulator-min-microvolt = <712500>;
> regulator-max-microvolt = <1500000>;
> regulator-ramp-delay = <1000>;
> + regulator-always-on;
> + regulator-boot-on;
> vin-supply = <&vcc3v3_sys>;
>
> regulator-state-mem {
> @@ -588,6 +611,12 @@
> };
> };
>
> + ir {
> + ir_int: ir-int {
> + rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
> + };
> + };
> +
> lcd-panel {
> lcd_panel_reset: lcd-panel-reset {
> rockchip,pins = <4 RK_PD5 RK_FUNC_GPIO &pcfg_pull_up>;
> @@ -595,25 +624,25 @@
> };
>
> leds {
> - diy_led_gpio: diy_led-gpio {
> + diy_led_pin: diy-led-pin {
> rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
> };
>
> - work_led_gpio: work_led-gpio {
> + work_led_pin: work-led-pin {
> rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
> };
>
> - yellow_led_gpio: yellow_led-gpio {
> + yellow_led_pin: yellow-led-pin {
> rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
> };
> };
>
> pmic {
> - vsel1_gpio: vsel1-gpio {
> + vsel1_pin: vsel1-pin {
> rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>;
> };
>
> - vsel2_gpio: vsel2-gpio {
> + vsel2_pin: vsel2-pin {
> rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
> };
> };
> diff --git a/arch/arm/dts/rk3399-rock-pi-4.dtsi b/arch/arm/dts/rk3399-rock-pi-4.dtsi
> index 1c55a4645b..b28888ea92 100644
> --- a/arch/arm/dts/rk3399-rock-pi-4.dtsi
> +++ b/arch/arm/dts/rk3399-rock-pi-4.dtsi
> @@ -11,6 +11,11 @@
> #include "rk3399-opp.dtsi"
>
> / {
> + aliases {
> + mmc0 = &sdmmc;
> + mmc1 = &sdhci;
> + };
> +
> chosen {
> stdout-path = "serial2:1500000n8";
> };
> @@ -111,10 +116,6 @@
> regulator-boot-on;
> regulator-min-microvolt = <3300000>;
> regulator-max-microvolt = <3300000>;
> -
> - regulator-state-mem {
> - regulator-off-in-suspend;
> - };
> };
>
> vdd_log: vdd-log {
> @@ -362,8 +363,6 @@
> regulator-name = "vcc_cam";
> regulator-always-on;
> regulator-boot-on;
> - regulator-min-microvolt = <3300000>;
> - regulator-max-microvolt = <3300000>;
> regulator-state-mem {
> regulator-off-in-suspend;
> };
> @@ -373,8 +372,6 @@
> regulator-name = "vcc_mipi";
> regulator-always-on;
> regulator-boot-on;
> - regulator-min-microvolt = <3300000>;
> - regulator-max-microvolt = <3300000>;
> regulator-state-mem {
> regulator-off-in-suspend;
> };
> @@ -387,7 +384,7 @@
> reg = <0x40>;
> fcs,suspend-voltage-selector = <1>;
> pinctrl-names = "default";
> - pinctrl-0 = <&vsel1_gpio>;
> + pinctrl-0 = <&vsel1_pin>;
> regulator-name = "vdd_cpu_b";
> regulator-min-microvolt = <712500>;
> regulator-max-microvolt = <1500000>;
> @@ -406,7 +403,7 @@
> reg = <0x41>;
> fcs,suspend-voltage-selector = <1>;
> pinctrl-names = "default";
> - pinctrl-0 = <&vsel2_gpio>;
> + pinctrl-0 = <&vsel2_pin>;
> regulator-name = "vdd_gpu";
> regulator-min-microvolt = <712500>;
> regulator-max-microvolt = <1500000>;
> @@ -440,8 +437,9 @@
> };
>
> &i2s0 {
> - rockchip,playback-channels = <8>;
> - rockchip,capture-channels = <8>;
> + pinctrl-0 = <&i2s0_2ch_bus>;
> + rockchip,capture-channels = <2>;
> + rockchip,playback-channels = <2>;
> status = "okay";
> };
>
> @@ -476,7 +474,6 @@
>
> &pcie0 {
> ep-gpios = <&gpio4 RK_PD3 GPIO_ACTIVE_HIGH>;
> - max-link-speed = <2>;
> num-lanes = <4>;
> pinctrl-0 = <&pcie_clkreqnb_cpm>;
> pinctrl-names = "default";
> @@ -529,11 +526,11 @@
> rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
> };
>
> - vsel1_gpio: vsel1-gpio {
> + vsel1_pin: vsel1-pin {
> rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>;
> };
>
> - vsel2_gpio: vsel2-gpio {
> + vsel2_pin: vsel2-pin {
> rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
> };
> };
> @@ -680,7 +677,7 @@
>
> &usbdrd_dwc3_0 {
> status = "okay";
> - dr_mode = "otg";
> + dr_mode = "host";
> };
>
> &usbdrd3_1 {
> diff --git a/arch/arm/dts/rk3399-rock-pi-4a.dts b/arch/arm/dts/rk3399-rock-pi-4a.dts
> index d96dd3ebd3..89f2af5e11 100644
> --- a/arch/arm/dts/rk3399-rock-pi-4a.dts
> +++ b/arch/arm/dts/rk3399-rock-pi-4a.dts
> @@ -9,5 +9,5 @@
>
> / {
> model = "Radxa ROCK Pi 4A";
> - compatible = "radxa,rockpi4", "rockchip,rk3399";
> + compatible = "radxa,rockpi4a", "radxa,rockpi4", "rockchip,rk3399";
> };
> diff --git a/arch/arm/dts/rk3399-rock-pi-4b.dts b/arch/arm/dts/rk3399-rock-pi-4b.dts
> index 4ca970acac..6c63e61706 100644
> --- a/arch/arm/dts/rk3399-rock-pi-4b.dts
> +++ b/arch/arm/dts/rk3399-rock-pi-4b.dts
> @@ -9,7 +9,11 @@
>
> / {
> model = "Radxa ROCK Pi 4B";
> - compatible = "radxa,rockpi4", "rockchip,rk3399";
> + compatible = "radxa,rockpi4b", "radxa,rockpi4", "rockchip,rk3399";
> +
> + aliases {
> + mmc2 = &sdio0;
> + };
> };
>
> &sdio0 {
> diff --git a/arch/arm/dts/rk3399-rock-pi-4c.dts b/arch/arm/dts/rk3399-rock-pi-4c.dts
> index 9d07ebd1ec..99169bcd51 100644
> --- a/arch/arm/dts/rk3399-rock-pi-4c.dts
> +++ b/arch/arm/dts/rk3399-rock-pi-4c.dts
> @@ -10,7 +10,11 @@
>
> / {
> model = "Radxa ROCK Pi 4C";
> - compatible = "radxa,rockpi4", "rockchip,rk3399";
> + compatible = "radxa,rockpi4c", "radxa,rockpi4", "rockchip,rk3399";
> +
> + aliases {
> + mmc2 = &sdio0;
> + };
> };
>
> &sdio0 {
> diff --git a/arch/arm/dts/rk3399-rock960.dts b/arch/arm/dts/rk3399-rock960.dts
> index 437a75f31a..1a23e8f3cd 100644
> --- a/arch/arm/dts/rk3399-rock960.dts
> +++ b/arch/arm/dts/rk3399-rock960.dts
> @@ -17,42 +17,43 @@
> leds {
> compatible = "gpio-leds";
> pinctrl-names = "default";
> - pinctrl-0 = <&user_led1>, <&user_led2>, <&user_led3>,
> - <&user_led4>, <&wlan_led>, <&bt_led>;
> + pinctrl-0 = <&user_led1_pin>, <&user_led2_pin>,
> + <&user_led3_pin>, <&user_led4_pin>,
> + <&wlan_led_pin>, <&bt_led_pin>;
>
> - user_led1 {
> + user_led1: led-1 {
> label = "green:user1";
> gpios = <&gpio4 RK_PC2 0>;
> linux,default-trigger = "heartbeat";
> };
>
> - user_led2 {
> + user_led2: led-2 {
> label = "green:user2";
> gpios = <&gpio4 RK_PC6 0>;
> linux,default-trigger = "mmc0";
> };
>
> - user_led3 {
> + user_led3: led-3 {
> label = "green:user3";
> gpios = <&gpio4 RK_PD0 0>;
> linux,default-trigger = "mmc1";
> };
>
> - user_led4 {
> + user_led4: led-4 {
> label = "green:user4";
> gpios = <&gpio4 RK_PD4 0>;
> panic-indicator;
> linux,default-trigger = "none";
> };
>
> - wlan_active_led {
> + wlan_active_led: led-5 {
> label = "yellow:wlan";
> gpios = <&gpio4 RK_PD5 0>;
> linux,default-trigger = "phy0tx";
> default-state = "off";
> };
>
> - bt_active_led {
> + bt_active_led: led-6 {
> label = "blue:bt";
> gpios = <&gpio4 RK_PD6 0>;
> linux,default-trigger = "hci0-power";
> @@ -62,38 +63,52 @@
>
> };
>
> +&cpu_alert0 {
> + temperature = <65000>;
> +};
> +
> +&cpu_thermal {
> + sustainable-power = <1550>;
> +
> + cooling-maps {
> + map0 {
> + trip = <&cpu_alert1>;
> + };
> + };
> +};
> +
> &pcie0 {
> ep-gpios = <&gpio2 RK_PA2 GPIO_ACTIVE_HIGH>;
> };
>
> &pinctrl {
> leds {
> - user_led1: user_led1 {
> + user_led1_pin: user-led1-pin {
> rockchip,pins =
> <4 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
> };
>
> - user_led2: user_led2 {
> + user_led2_pin: user-led2-pin {
> rockchip,pins =
> <4 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
> };
>
> - user_led3: user_led3 {
> + user_led3_pin: user-led3-pin {
> rockchip,pins =
> <4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
> };
>
> - user_led4: user_led4 {
> + user_led4_pin: user-led4-pin {
> rockchip,pins =
> <4 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
> };
>
> - wlan_led: wlan_led {
> + wlan_led_pin: wlan-led-pin {
> rockchip,pins =
> <4 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>;
> };
>
> - bt_led: bt_led {
> + bt_led_pin: bt-led-pin {
> rockchip,pins =
> <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>;
> };
> @@ -124,45 +139,6 @@
> status = "okay";
> };
>
> -&thermal_zones {
> - cpu_thermal: cpu {
> - polling-delay-passive = <100>;
> - polling-delay = <1000>;
> - thermal-sensors = <&tsadc 0>;
> - sustainable-power = <1550>;
> -
> - trips {
> - cpu_alert0: cpu_alert0 {
> - temperature = <65000>;
> - hysteresis = <2000>;
> - type = "passive";
> - };
> -
> - cpu_alert1: cpu_alert1 {
> - temperature = <75000>;
> - hysteresis = <2000>;
> - type = "passive";
> - };
> -
> - cpu_crit: cpu_crit {
> - temperature = <95000>;
> - hysteresis = <2000>;
> - type = "critical";
> - };
> - };
> -
> - cooling-maps {
> - map0 {
> -
> - trip = <&cpu_alert1>;
> - cooling-device =
> - <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
> - <&cpu_b1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
> - };
> - };
> - };
> -};
> -
> &usbdrd_dwc3_0 {
> dr_mode = "otg";
> };
> diff --git a/arch/arm/dts/rk3399-rock960.dtsi b/arch/arm/dts/rk3399-rock960.dtsi
> index ba7c75c9f2..25dc61c26a 100644
> --- a/arch/arm/dts/rk3399-rock960.dtsi
> +++ b/arch/arm/dts/rk3399-rock960.dtsi
> @@ -9,6 +9,12 @@
> #include "rk3399-opp.dtsi"
>
> / {
> + aliases {
> + mmc0 = &sdio0;
> + mmc1 = &sdmmc;
> + mmc2 = &sdhci;
> + };
> +
> sdio_pwrseq: sdio-pwrseq {
> compatible = "mmc-pwrseq-simple";
> clocks = <&rk808 1>;
> @@ -470,12 +476,12 @@
> <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
> };
>
> - vsel1_gpio: vsel1-gpio {
> + vsel1_pin: vsel1-pin {
> rockchip,pins =
> <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>;
> };
>
> - vsel2_gpio: vsel2-gpio {
> + vsel2_pin: vsel2-pin {
> rockchip,pins =
> <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
> };
> diff --git a/arch/arm/dts/rk3399-rockpro64.dtsi b/arch/arm/dts/rk3399-rockpro64.dtsi
> index 9bca258012..6bff8db7d3 100644
> --- a/arch/arm/dts/rk3399-rockpro64.dtsi
> +++ b/arch/arm/dts/rk3399-rockpro64.dtsi
> @@ -10,6 +10,12 @@
> #include "rk3399-opp.dtsi"
>
> / {
> + aliases {
> + mmc0 = &sdio0;
> + mmc1 = &sdmmc;
> + mmc2 = &sdhci;
> + };
> +
> chosen {
> stdout-path = "serial2:1500000n8";
> };
> @@ -36,18 +42,25 @@
> };
> };
>
> + ir-receiver {
> + compatible = "gpio-ir-receiver";
> + gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_LOW>;
> + pinctrl-0 = <&ir_int>;
> + pinctrl-names = "default";
> + };
> +
> leds {
> compatible = "gpio-leds";
> pinctrl-names = "default";
> - pinctrl-0 = <&work_led_gpio>, <&diy_led_gpio>;
> + pinctrl-0 = <&work_led_pin>, <&diy_led_pin>;
>
> - work-led {
> + work_led: led-0 {
> label = "work";
> default-state = "on";
> gpios = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
> };
>
> - diy-led {
> + diy_led: led-1 {
> label = "diy";
> default-state = "off";
> gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>;
> @@ -72,10 +85,27 @@
>
> sound {
> compatible = "audio-graph-card";
> - label = "rockchip,rk3399";
> + label = "Analog";
> dais = <&i2s1_p0>;
> };
>
> + sound-dit {
> + compatible = "audio-graph-card";
> + label = "SPDIF";
> + dais = <&spdif_p0>;
> + };
> +
> + spdif-dit {
> + compatible = "linux,spdif-dit";
> + #sound-dai-cells = <0>;
> +
> + port {
> + dit_p0_0: endpoint {
> + remote-endpoint = <&spdif_p0_0>;
> + };
> + };
> + };
> +
> vcc12v_dcin: vcc12v-dcin {
> compatible = "regulator-fixed";
> regulator-name = "vcc12v_dcin";
> @@ -96,6 +126,24 @@
> vin-supply = <&vcc_1v8>;
> };
>
> + /* micro SD card power */
> + vcc3v0_sd: vcc3v0-sd {
> + compatible = "regulator-fixed";
> + enable-active-high;
> + gpio = <&gpio0 RK_PA1 GPIO_ACTIVE_HIGH>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&sdmmc0_pwr_h>;
> + regulator-name = "vcc3v0_sd";
> + regulator-always-on;
> + regulator-min-microvolt = <3000000>;
> + regulator-max-microvolt = <3000000>;
> + vin-supply = <&vcc3v3_sys>;
> +
> + regulator-state-mem {
> + regulator-off-in-suspend;
> + };
> + };
> +
> vcc3v3_pcie: vcc3v3-pcie-regulator {
> compatible = "regulator-fixed";
> enable-active-high;
> @@ -427,7 +475,7 @@
> reg = <0x40>;
> fcs,suspend-voltage-selector = <1>;
> pinctrl-names = "default";
> - pinctrl-0 = <&vsel1_gpio>;
> + pinctrl-0 = <&vsel1_pin>;
> regulator-name = "vdd_cpu_b";
> regulator-min-microvolt = <712500>;
> regulator-max-microvolt = <1500000>;
> @@ -446,7 +494,7 @@
> reg = <0x41>;
> fcs,suspend-voltage-selector = <1>;
> pinctrl-names = "default";
> - pinctrl-0 = <&vsel2_gpio>;
> + pinctrl-0 = <&vsel2_pin>;
> regulator-name = "vdd_gpu";
> regulator-min-microvolt = <712500>;
> regulator-max-microvolt = <1500000>;
> @@ -569,12 +617,18 @@
> };
> };
>
> + ir {
> + ir_int: ir-int {
> + rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
> + };
> + };
> +
> leds {
> - work_led_gpio: work_led-gpio {
> + work_led_pin: work-led-pin {
> rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
> };
>
> - diy_led_gpio: diy_led-gpio {
> + diy_led_pin: diy-led-pin {
> rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
> };
> };
> @@ -594,15 +648,22 @@
> rockchip,pins = <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>;
> };
>
> - vsel1_gpio: vsel1-gpio {
> + vsel1_pin: vsel1-pin {
> rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>;
> };
>
> - vsel2_gpio: vsel2-gpio {
> + vsel2_pin: vsel2-pin {
> rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
> };
> };
>
> + sdcard {
> + sdmmc0_pwr_h: sdmmc0-pwr-h {
> + rockchip,pins = <0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
> + };
> +
> + };
> +
> sdio-pwrseq {
> wifi_enable_h: wifi-enable-h {
> rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
> @@ -661,6 +722,8 @@
> max-frequency = <150000000>;
> pinctrl-names = "default";
> pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>;
> + vmmc-supply = <&vcc3v0_sd>;
> + vqmmc-supply = <&vcc_sdio>;
> status = "okay";
> };
>
> @@ -671,6 +734,16 @@
> status = "okay";
> };
>
> +&spdif {
> + pinctrl-0 = <&spdif_bus_1>;
> +
> + spdif_p0: port {
> + spdif_p0_0: endpoint {
> + remote-endpoint = <&dit_p0_0>;
> + };
> + };
> +};
> +
> &spi1 {
> status = "okay";
>
> @@ -768,7 +841,7 @@
>
> &usbdrd_dwc3_0 {
> status = "okay";
> - dr_mode = "otg";
> + dr_mode = "host";
> };
>
> &usbdrd3_1 {
> diff --git a/arch/arm/dts/rk3399.dtsi b/arch/arm/dts/rk3399.dtsi
> index 74f2c3d490..3871c7fd83 100644
> --- a/arch/arm/dts/rk3399.dtsi
> +++ b/arch/arm/dts/rk3399.dtsi
> @@ -197,38 +197,12 @@
> #clock-cells = <0>;
> };
>
> - amba: bus {
> - compatible = "simple-bus";
> - #address-cells = <2>;
> - #size-cells = <2>;
> - ranges;
> -
> - dmac_bus: dma-controller@ff6d0000 {
> - compatible = "arm,pl330", "arm,primecell";
> - reg = <0x0 0xff6d0000 0x0 0x4000>;
> - interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH 0>,
> - <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH 0>;
> - #dma-cells = <1>;
> - clocks = <&cru ACLK_DMAC0_PERILP>;
> - clock-names = "apb_pclk";
> - };
> -
> - dmac_peri: dma-controller@ff6e0000 {
> - compatible = "arm,pl330", "arm,primecell";
> - reg = <0x0 0xff6e0000 0x0 0x4000>;
> - interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH 0>,
> - <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH 0>;
> - #dma-cells = <1>;
> - clocks = <&cru ACLK_DMAC1_PERILP>;
> - clock-names = "apb_pclk";
> - };
> - };
> -
> pcie0: pcie@f8000000 {
> compatible = "rockchip,rk3399-pcie";
> reg = <0x0 0xf8000000 0x0 0x2000000>,
> <0x0 0xfd000000 0x0 0x1000000>;
> reg-names = "axi-base", "apb-base";
> + device_type = "pci";
> #address-cells = <3>;
> #size-cells = <2>;
> #interrupt-cells = <1>;
> @@ -247,15 +221,14 @@
> <0 0 0 2 &pcie0_intc 1>,
> <0 0 0 3 &pcie0_intc 2>,
> <0 0 0 4 &pcie0_intc 3>;
> - linux,pci-domain = <0>;
> max-link-speed = <1>;
> msi-map = <0x0 &its 0x0 0x1000>;
> phys = <&pcie_phy 0>, <&pcie_phy 1>,
> <&pcie_phy 2>, <&pcie_phy 3>;
> phy-names = "pcie-phy-0", "pcie-phy-1",
> "pcie-phy-2", "pcie-phy-3";
> - ranges = <0x83000000 0x0 0xfa000000 0x0 0xfa000000 0x0 0x1e00000
> - 0x81000000 0x0 0xfbe00000 0x0 0xfbe00000 0x0 0x100000>;
> + ranges = <0x82000000 0x0 0xfa000000 0x0 0xfa000000 0x0 0x1e00000>,
> + <0x81000000 0x0 0xfbe00000 0x0 0xfbe00000 0x0 0x100000>;
> resets = <&cru SRST_PCIE_CORE>, <&cru SRST_PCIE_MGMT>,
> <&cru SRST_PCIE_MGMT_STICKY>, <&cru SRST_PCIE_PIPE>,
> <&cru SRST_PCIE_PM>, <&cru SRST_P_PCIE>,
> @@ -326,7 +299,7 @@
> status = "disabled";
> };
>
> - sdhci: sdhci@fe330000 {
> + sdhci: mmc@fe330000 {
> compatible = "rockchip,rk3399-sdhci-5.1", "arasan,sdhci-5.1";
> reg = <0x0 0xfe330000 0x0 0x10000>;
> interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH 0>;
> @@ -403,7 +376,7 @@
> reset-names = "usb3-otg";
> status = "disabled";
>
> - usbdrd_dwc3_0: dwc3 {
> + usbdrd_dwc3_0: usb@fe800000 {
> compatible = "snps,dwc3";
> reg = <0x0 0xfe800000 0x0 0x100000>;
> interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH 0>;
> @@ -439,7 +412,7 @@
> reset-names = "usb3-otg";
> status = "disabled";
>
> - usbdrd_dwc3_1: dwc3 {
> + usbdrd_dwc3_1: usb@fe900000 {
> compatible = "snps,dwc3";
> reg = <0x0 0xfe900000 0x0 0x100000>;
> interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH 0>;
> @@ -759,7 +732,7 @@
> };
>
> thermal_zones: thermal-zones {
> - cpu_thermal: cpu {
> + cpu_thermal: cpu-thermal {
> polling-delay-passive = <100>;
> polling-delay = <1000>;
>
> @@ -803,7 +776,7 @@
> };
> };
>
> - gpu_thermal: gpu {
> + gpu_thermal: gpu-thermal {
> polling-delay-passive = <100>;
> polling-delay = <1000>;
>
> @@ -845,135 +818,135 @@
> rockchip,grf = <&grf>;
> rockchip,hw-tshut-temp = <95000>;
> pinctrl-names = "init", "default", "sleep";
> - pinctrl-0 = <&otp_gpio>;
> + pinctrl-0 = <&otp_pin>;
> pinctrl-1 = <&otp_out>;
> - pinctrl-2 = <&otp_gpio>;
> + pinctrl-2 = <&otp_pin>;
> #thermal-sensor-cells = <1>;
> status = "disabled";
> };
>
> qos_emmc: qos@ffa58000 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffa58000 0x0 0x20>;
> };
>
> qos_gmac: qos@ffa5c000 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffa5c000 0x0 0x20>;
> };
>
> qos_pcie: qos@ffa60080 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffa60080 0x0 0x20>;
> };
>
> qos_usb_host0: qos@ffa60100 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffa60100 0x0 0x20>;
> };
>
> qos_usb_host1: qos@ffa60180 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffa60180 0x0 0x20>;
> };
>
> qos_usb_otg0: qos@ffa70000 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffa70000 0x0 0x20>;
> };
>
> qos_usb_otg1: qos@ffa70080 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffa70080 0x0 0x20>;
> };
>
> qos_sd: qos@ffa74000 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffa74000 0x0 0x20>;
> };
>
> qos_sdioaudio: qos@ffa76000 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffa76000 0x0 0x20>;
> };
>
> qos_hdcp: qos@ffa90000 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffa90000 0x0 0x20>;
> };
>
> qos_iep: qos@ffa98000 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffa98000 0x0 0x20>;
> };
>
> qos_isp0_m0: qos@ffaa0000 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffaa0000 0x0 0x20>;
> };
>
> qos_isp0_m1: qos@ffaa0080 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffaa0080 0x0 0x20>;
> };
>
> qos_isp1_m0: qos@ffaa8000 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffaa8000 0x0 0x20>;
> };
>
> qos_isp1_m1: qos@ffaa8080 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffaa8080 0x0 0x20>;
> };
>
> qos_rga_r: qos@ffab0000 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffab0000 0x0 0x20>;
> };
>
> qos_rga_w: qos@ffab0080 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffab0080 0x0 0x20>;
> };
>
> qos_video_m0: qos@ffab8000 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffab8000 0x0 0x20>;
> };
>
> qos_video_m1_r: qos@ffac0000 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffac0000 0x0 0x20>;
> };
>
> qos_video_m1_w: qos@ffac0080 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffac0080 0x0 0x20>;
> };
>
> qos_vop_big_r: qos@ffac8000 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffac8000 0x0 0x20>;
> };
>
> qos_vop_big_w: qos@ffac8080 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffac8080 0x0 0x20>;
> };
>
> qos_vop_little: qos@ffad0000 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffad0000 0x0 0x20>;
> };
>
> qos_perihp: qos@ffad8080 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffad8080 0x0 0x20>;
> };
>
> qos_gpu: qos@ffae0000 {
> - compatible = "syscon";
> + compatible = "rockchip,rk3399-qos", "syscon";
> reg = <0x0 0xffae0000 0x0 0x20>;
> };
>
> @@ -995,126 +968,146 @@
> #size-cells = <0>;
>
> /* These power domains are grouped by VD_CENTER */
> - pd_iep@RK3399_PD_IEP {
> + power-domain@RK3399_PD_IEP {
> reg = <RK3399_PD_IEP>;
> clocks = <&cru ACLK_IEP>,
> <&cru HCLK_IEP>;
> pm_qos = <&qos_iep>;
> + #power-domain-cells = <0>;
> };
> - pd_rga@RK3399_PD_RGA {
> + power-domain@RK3399_PD_RGA {
> reg = <RK3399_PD_RGA>;
> clocks = <&cru ACLK_RGA>,
> <&cru HCLK_RGA>;
> pm_qos = <&qos_rga_r>,
> <&qos_rga_w>;
> + #power-domain-cells = <0>;
> };
> - pd_vcodec@RK3399_PD_VCODEC {
> + power-domain@RK3399_PD_VCODEC {
> reg = <RK3399_PD_VCODEC>;
> clocks = <&cru ACLK_VCODEC>,
> <&cru HCLK_VCODEC>;
> pm_qos = <&qos_video_m0>;
> + #power-domain-cells = <0>;
> };
> - pd_vdu@RK3399_PD_VDU {
> + power-domain@RK3399_PD_VDU {
> reg = <RK3399_PD_VDU>;
> clocks = <&cru ACLK_VDU>,
> <&cru HCLK_VDU>;
> pm_qos = <&qos_video_m1_r>,
> <&qos_video_m1_w>;
> + #power-domain-cells = <0>;
> };
>
> /* These power domains are grouped by VD_GPU */
> - pd_gpu@RK3399_PD_GPU {
> + power-domain@RK3399_PD_GPU {
> reg = <RK3399_PD_GPU>;
> clocks = <&cru ACLK_GPU>;
> pm_qos = <&qos_gpu>;
> + #power-domain-cells = <0>;
> };
>
> /* These power domains are grouped by VD_LOGIC */
> - pd_edp@RK3399_PD_EDP {
> + power-domain@RK3399_PD_EDP {
> reg = <RK3399_PD_EDP>;
> clocks = <&cru PCLK_EDP_CTRL>;
> + #power-domain-cells = <0>;
> };
> - pd_emmc@RK3399_PD_EMMC {
> + power-domain@RK3399_PD_EMMC {
> reg = <RK3399_PD_EMMC>;
> clocks = <&cru ACLK_EMMC>;
> pm_qos = <&qos_emmc>;
> + #power-domain-cells = <0>;
> };
> - pd_gmac@RK3399_PD_GMAC {
> + power-domain@RK3399_PD_GMAC {
> reg = <RK3399_PD_GMAC>;
> clocks = <&cru ACLK_GMAC>,
> <&cru PCLK_GMAC>;
> pm_qos = <&qos_gmac>;
> + #power-domain-cells = <0>;
> };
> - pd_sd@RK3399_PD_SD {
> + power-domain@RK3399_PD_SD {
> reg = <RK3399_PD_SD>;
> clocks = <&cru HCLK_SDMMC>,
> <&cru SCLK_SDMMC>;
> pm_qos = <&qos_sd>;
> + #power-domain-cells = <0>;
> };
> - pd_sdioaudio@RK3399_PD_SDIOAUDIO {
> + power-domain@RK3399_PD_SDIOAUDIO {
> reg = <RK3399_PD_SDIOAUDIO>;
> clocks = <&cru HCLK_SDIO>;
> pm_qos = <&qos_sdioaudio>;
> + #power-domain-cells = <0>;
> + };
> + power-domain@RK3399_PD_TCPD0 {
> + reg = <RK3399_PD_TCPD0>;
> + clocks = <&cru SCLK_UPHY0_TCPDCORE>,
> + <&cru SCLK_UPHY0_TCPDPHY_REF>;
> + #power-domain-cells = <0>;
> + };
> + power-domain@RK3399_PD_TCPD1 {
> + reg = <RK3399_PD_TCPD1>;
> + clocks = <&cru SCLK_UPHY1_TCPDCORE>,
> + <&cru SCLK_UPHY1_TCPDPHY_REF>;
> + #power-domain-cells = <0>;
> };
> - pd_usb3@RK3399_PD_USB3 {
> + power-domain@RK3399_PD_USB3 {
> reg = <RK3399_PD_USB3>;
> clocks = <&cru ACLK_USB3>;
> pm_qos = <&qos_usb_otg0>,
> <&qos_usb_otg1>;
> + #power-domain-cells = <0>;
> };
> - pd_vio@RK3399_PD_VIO {
> + power-domain@RK3399_PD_VIO {
> reg = <RK3399_PD_VIO>;
> + #power-domain-cells = <1>;
> #address-cells = <1>;
> #size-cells = <0>;
>
> - pd_hdcp@RK3399_PD_HDCP {
> + power-domain@RK3399_PD_HDCP {
> reg = <RK3399_PD_HDCP>;
> clocks = <&cru ACLK_HDCP>,
> <&cru HCLK_HDCP>,
> <&cru PCLK_HDCP>;
> pm_qos = <&qos_hdcp>;
> + #power-domain-cells = <0>;
> };
> - pd_isp0@RK3399_PD_ISP0 {
> + power-domain@RK3399_PD_ISP0 {
> reg = <RK3399_PD_ISP0>;
> clocks = <&cru ACLK_ISP0>,
> <&cru HCLK_ISP0>;
> pm_qos = <&qos_isp0_m0>,
> <&qos_isp0_m1>;
> + #power-domain-cells = <0>;
> };
> - pd_isp1@RK3399_PD_ISP1 {
> + power-domain@RK3399_PD_ISP1 {
> reg = <RK3399_PD_ISP1>;
> clocks = <&cru ACLK_ISP1>,
> <&cru HCLK_ISP1>;
> pm_qos = <&qos_isp1_m0>,
> <&qos_isp1_m1>;
> + #power-domain-cells = <0>;
> };
> - pd_tcpc0@RK3399_PD_TCPC0 {
> - reg = <RK3399_PD_TCPD0>;
> - clocks = <&cru SCLK_UPHY0_TCPDCORE>,
> - <&cru SCLK_UPHY0_TCPDPHY_REF>;
> - };
> - pd_tcpc1@RK3399_PD_TCPC1 {
> - reg = <RK3399_PD_TCPD1>;
> - clocks = <&cru SCLK_UPHY1_TCPDCORE>,
> - <&cru SCLK_UPHY1_TCPDPHY_REF>;
> - };
> - pd_vo@RK3399_PD_VO {
> + power-domain@RK3399_PD_VO {
> reg = <RK3399_PD_VO>;
> + #power-domain-cells = <1>;
> #address-cells = <1>;
> #size-cells = <0>;
>
> - pd_vopb@RK3399_PD_VOPB {
> + power-domain@RK3399_PD_VOPB {
> reg = <RK3399_PD_VOPB>;
> clocks = <&cru ACLK_VOP0>,
> <&cru HCLK_VOP0>;
> pm_qos = <&qos_vop_big_r>,
> <&qos_vop_big_w>;
> + #power-domain-cells = <0>;
> };
> - pd_vopl@RK3399_PD_VOPL {
> + power-domain@RK3399_PD_VOPL {
> reg = <RK3399_PD_VOPL>;
> clocks = <&cru ACLK_VOP1>,
> <&cru HCLK_VOP1>;
> pm_qos = <&qos_vop_little>;
> + #power-domain-cells = <0>;
> };
> };
> };
> @@ -1124,8 +1117,6 @@
> pmugrf: syscon@ff320000 {
> compatible = "rockchip,rk3399-pmugrf", "syscon", "simple-mfd";
> reg = <0x0 0xff320000 0x0 0x1000>;
> - #address-cells = <1>;
> - #size-cells = <1>;
>
> pmu_io_domains: io-domains {
> compatible = "rockchip,rk3399-pmu-io-voltage-domain";
> @@ -1211,7 +1202,6 @@
> pinctrl-names = "default";
> pinctrl-0 = <&pwm0_pin>;
> clocks = <&pmucru PCLK_RKPWM_PMU>;
> - clock-names = "pwm";
> status = "disabled";
> };
>
> @@ -1222,7 +1212,6 @@
> pinctrl-names = "default";
> pinctrl-0 = <&pwm1_pin>;
> clocks = <&pmucru PCLK_RKPWM_PMU>;
> - clock-names = "pwm";
> status = "disabled";
> };
>
> @@ -1233,7 +1222,6 @@
> pinctrl-names = "default";
> pinctrl-0 = <&pwm2_pin>;
> clocks = <&pmucru PCLK_RKPWM_PMU>;
> - clock-names = "pwm";
> status = "disabled";
> };
>
> @@ -1244,7 +1232,6 @@
> pinctrl-names = "default";
> pinctrl-0 = <&pwm3a_pin>;
> clocks = <&pmucru PCLK_RKPWM_PMU>;
> - clock-names = "pwm";
> status = "disabled";
> };
>
> @@ -1271,6 +1258,17 @@
> power-domains = <&power RK3399_PD_VCODEC>;
> };
>
> + vdec: video-codec@ff660000 {
> + compatible = "rockchip,rk3399-vdec";
> + reg = <0x0 0xff660000 0x0 0x400>;
> + interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH 0>;
> + clocks = <&cru ACLK_VDU>, <&cru HCLK_VDU>,
> + <&cru SCLK_VDU_CA>, <&cru SCLK_VDU_CORE>;
> + clock-names = "axi", "ahb", "cabac", "core";
> + iommus = <&vdec_mmu>;
> + power-domains = <&power RK3399_PD_VDU>;
> + };
> +
> vdec_mmu: iommu@ff660480 {
> compatible = "rockchip,iommu";
> reg = <0x0 0xff660480 0x0 0x40>, <0x0 0xff6604c0 0x0 0x40>;
> @@ -1278,8 +1276,8 @@
> interrupt-names = "vdec_mmu";
> clocks = <&cru ACLK_VDU>, <&cru HCLK_VDU>;
> clock-names = "aclk", "iface";
> + power-domains = <&power RK3399_PD_VDU>;
> #iommu-cells = <0>;
> - status = "disabled";
> };
>
> iep_mmu: iommu@ff670800 {
> @@ -1336,6 +1334,28 @@
> };
> };
>
> + dmac_bus: dma-controller@ff6d0000 {
> + compatible = "arm,pl330", "arm,primecell";
> + reg = <0x0 0xff6d0000 0x0 0x4000>;
> + interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH 0>,
> + <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH 0>;
> + #dma-cells = <1>;
> + arm,pl330-periph-burst;
> + clocks = <&cru ACLK_DMAC0_PERILP>;
> + clock-names = "apb_pclk";
> + };
> +
> + dmac_peri: dma-controller@ff6e0000 {
> + compatible = "arm,pl330", "arm,primecell";
> + reg = <0x0 0xff6e0000 0x0 0x4000>;
> + interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH 0>,
> + <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH 0>;
> + #dma-cells = <1>;
> + arm,pl330-periph-burst;
> + clocks = <&cru ACLK_DMAC1_PERILP>;
> + clock-names = "apb_pclk";
> + };
> +
> pmucru: pmu-clock-controller@ff750000 {
> compatible = "rockchip,rk3399-pmucru";
> reg = <0x0 0xff750000 0x0 0x1000>;
> @@ -1387,7 +1407,18 @@
> status = "disabled";
> };
>
> - u2phy0: usb2-phy@e450 {
> + mipi_dphy_rx0: mipi-dphy-rx0 {
> + compatible = "rockchip,rk3399-mipi-dphy-rx0";
> + clocks = <&cru SCLK_MIPIDPHY_REF>,
> + <&cru SCLK_DPHY_RX0_CFG>,
> + <&cru PCLK_VIO_GRF>;
> + clock-names = "dphy-ref", "dphy-cfg", "grf";
> + power-domains = <&power RK3399_PD_VIO>;
> + #phy-cells = <0>;
> + status = "disabled";
> + };
> +
> + u2phy0: usb2phy@e450 {
> compatible = "rockchip,rk3399-usb2phy";
> reg = <0xe450 0x10>;
> clocks = <&cru SCLK_USB2PHY0_REF>;
> @@ -1414,7 +1445,7 @@
> };
> };
>
> - u2phy1: usb2-phy@e460 {
> + u2phy1: usb2phy@e460 {
> compatible = "rockchip,rk3399-usb2phy";
> reg = <0xe460 0x10>;
> clocks = <&cru SCLK_USB2PHY1_REF>;
> @@ -1513,7 +1544,7 @@
> };
>
> watchdog@ff848000 {
> - compatible = "snps,dw-wdt";
> + compatible = "rockchip,rk3399-wdt", "snps,dw-wdt";
> reg = <0x0 0xff848000 0x0 0x100>;
> clocks = <&cru PCLK_WDT>;
> interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH 0>;
> @@ -1700,6 +1731,32 @@
> status = "disabled";
> };
>
> + isp0: isp0@ff910000 {
> + compatible = "rockchip,rk3399-cif-isp";
> + reg = <0x0 0xff910000 0x0 0x4000>;
> + interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH 0>;
> + clocks = <&cru SCLK_ISP0>,
> + <&cru ACLK_ISP0_WRAPPER>,
> + <&cru HCLK_ISP0_WRAPPER>;
> + clock-names = "isp", "aclk", "hclk";
> + iommus = <&isp0_mmu>;
> + phys = <&mipi_dphy_rx0>;
> + phy-names = "dphy";
> + power-domains = <&power RK3399_PD_ISP0>;
> + status = "disabled";
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port@0 {
> + reg = <0>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> + };
> + };
> + };
> +
> isp0_mmu: iommu@ff914000 {
> compatible = "rockchip,iommu";
> reg = <0x0 0xff914000 0x0 0x100>, <0x0 0xff915000 0x0 0x100>;
> @@ -1883,10 +1940,10 @@
> gpu: gpu@ff9a0000 {
> compatible = "rockchip,rk3399-mali", "arm,mali-t860";
> reg = <0x0 0xff9a0000 0x0 0x10000>;
> - interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH 0>,
> - <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH 0>,
> - <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH 0>;
> - interrupt-names = "gpu", "job", "mmu";
> + interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH 0>,
> + <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH 0>,
> + <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH 0>;
> + interrupt-names = "job", "mmu", "gpu";
> clocks = <&cru ACLK_GPU>;
> #cooling-cells = <2>;
> power-domains = <&power RK3399_PD_GPU>;
> @@ -2317,7 +2374,7 @@
> };
> };
>
> - sleep {
> + suspend {
> ap_pwroff: ap-pwroff {
> rockchip,pins = <1 RK_PA5 1 &pcfg_pull_none>;
> };
> @@ -2475,7 +2532,7 @@
> };
>
> tsadc {
> - otp_gpio: otp-gpio {
> + otp_pin: otp-pin {
> rockchip,pins = <1 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
> };
>
> diff --git a/arch/arm/dts/rk3399pro-vmarc-som.dtsi b/arch/arm/dts/rk3399pro-vmarc-som.dtsi
> index 5d087be04a..01d1a75c8b 100644
> --- a/arch/arm/dts/rk3399pro-vmarc-som.dtsi
> +++ b/arch/arm/dts/rk3399pro-vmarc-som.dtsi
> @@ -12,6 +12,11 @@
> / {
> compatible = "vamrs,rk3399pro-vmarc-som", "rockchip,rk3399pro";
>
> + aliases {
> + mmc0 = &sdmmc;
> + mmc1 = &sdhci;
> + };
> +
> vcc3v3_pcie: vcc-pcie-regulator {
> compatible = "regulator-fixed";
> enable-active-high;
> @@ -324,7 +329,6 @@
>
> &pcie0 {
> ep-gpios = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>;
> - max-link-speed = <2>;
> num-lanes = <4>;
> pinctrl-0 = <&pcie_clkreqnb_cpm>;
> pinctrl-names = "default";
> @@ -353,6 +357,12 @@
> };
> };
>
> + sdio-pwrseq {
> + wifi_enable_h: wifi-enable-h {
> + rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
> + };
> + };
> +
> vbus_host {
> usb1_en_oc: usb1-en-oc {
> rockchip,pins = <4 RK_PD1 RK_FUNC_GPIO &pcfg_pull_up>;
> @@ -371,6 +381,16 @@
> pmu1830-supply = <&vcc_1v8>;
> };
>
> +&sdio_pwrseq {
> + /*
> + * On the module itself this is one of these (depending
> + * on the actual card populated):
> + * - SDIO_RESET_L_WL_REG_ON
> + * - PDN (power down when low)
> + */
> + reset-gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_LOW>;
> +};
> +
> &sdhci {
> bus-width = <8>;
> mmc-hs400-1_8v;
> diff --git a/arch/arm/dts/rockchip-radxa-dalang-carrier.dtsi b/arch/arm/dts/rockchip-radxa-dalang-carrier.dtsi
> index 26b53eac47..da1d548b73 100644
> --- a/arch/arm/dts/rockchip-radxa-dalang-carrier.dtsi
> +++ b/arch/arm/dts/rockchip-radxa-dalang-carrier.dtsi
> @@ -15,6 +15,14 @@
> #clock-cells = <0>;
> };
>
> + sdio_pwrseq: sdio-pwrseq {
> + compatible = "mmc-pwrseq-simple";
> + clocks = <&hym8563>;
> + clock-names = "ext_clock";
> + pinctrl-names = "default";
> + pinctrl-0 = <&wifi_enable_h>;
> + };
This file is also used by rk3288, 'hym8563 ' and 'wifi_enable_h' are no
defined in rk3288 platform.
I will remove this part and apply others.
Thanks,
- Kever
> +
> vcc12v_dcin: vcc12v-dcin-regulator {
> compatible = "regulator-fixed";
> regulator-name = "vcc12v_dcin";
> @@ -78,6 +86,19 @@
> status = "okay";
> };
>
> +&sdio0 {
> + bus-width = <4>;
> + cap-sd-highspeed;
> + cap-sdio-irq;
> + keep-power-in-suspend;
> + mmc-pwrseq = <&sdio_pwrseq>;
> + non-removable;
> + pinctrl-names = "default";
> + pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
> + sd-uhs-sdr104;
> + status = "okay";
> +};
> +
> &sdmmc {
> bus-width = <4>;
> cap-mmc-highspeed;
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2021-08-12 0:55 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-22 15:20 [PATCH 1/3] arm: dts: sync the Rockhip 3399 SoCs from Linux Peter Robinson
2021-07-22 15:20 ` [PATCH 2/3] arm: dts: sync the Rockhip 3328 " Peter Robinson
2021-08-11 10:17 ` Kever Yang
2021-07-22 15:20 ` [PATCH 3/3] arm: dts: sync the Rockhip 3368 " Peter Robinson
2021-08-11 10:17 ` Kever Yang
2021-08-11 10:16 ` [PATCH 1/3] arm: dts: sync the Rockhip 3399 " Kever Yang
2021-08-12 0:55 ` Kever Yang
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.