Message ID | 20210722152044.1407388-1-pbrobinson@gmail.com |
---|---|
State | Accepted |
Delegated to: | Kever Yang |
Headers | show |
Series | [1/3] arm: dts: sync the Rockhip 3399 SoCs from Linux | expand |
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 >
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;
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;
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(-)