Commit 16e6e974 authored by Arnd Bergmann's avatar Arnd Bergmann

Merge tag 'v6.8-rockchip-dts64-1' of...

Merge tag 'v6.8-rockchip-dts64-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/dt

New boards are the Anberic RG351V handheld (rk3326), Theobroma Systems Jaguar
SBC (rk3588), Powkiddy X55 and RK2023 handheld (rk3566), Edgeble-Neu6b (rk3588)

The rk3588 got attention with one working usb3 host on Rock-5a/5b, Orangepi-5
and audio for the EVB1.

Some smaller improvements for the other socs (fifo-depths on rk3328,
gpio-line-names on rk3308-rock-pi-s, gpu power-coefficients on rk3399,
and a fix for the newly converted gpio-fan yaml binding).

Also a number of aliases were moved. Always-numbered core busses can have their
aliases in the soc dtsi, as is done in a number of cases already and other alises
like ethernet really should be per board.

* tag 'v6.8-rockchip-dts64-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip: (31 commits)
  arm64: dts: rockchip: Add Anbernic RG351V
  arm64: dts: rockchip: Split RG351M from Odroid Go Advance
  dt-bindings: arm: rockchip: Add Anbernic RG351V
  arm64: dts: rockchip: Add ethernet0 alias to the dts for RK3588(S) boards
  arm64: dts: rockchip: Add ethernet0 alias to the dts for RK3566 boards
  arm64: dts: rockchip: Remove ethernet0 alias from the SoC dtsi for PX30
  arm64: dts: rockchip: Remove ethernetX aliases from the SoC dtsi for RK3328
  arm64: dts: rockchip: Remove ethernet0 alias from the SoC dtsi for RK3368
  arm64: dts: rockchip: Remove ethernet0 alias from the SoC dtsi for RK3399
  arm64: dts: rockchip: make dts use gpio-fan matrix instead of array
  arm64: dts: rockchip: add gpio alias for gpio dt nodes
  arm64: dts: rockchip: Add dynamic-power-coefficient to rk3399 GPU
  arm64: dts: rockchip: add rk3588 spi aliases to soc dtsi
  arm64: dts: rockchip: add rk3588 gpio aliases to soc dtsi
  arm64: dts: rockchip: add rk3588 i2c aliases to soc dtsi
  arm64: dts: rockchip: move rk3588 serial aliases to soc dtsi
  arm64: dts: rockchip: add Theobroma Jaguar SBC
  dt-bindings: arm: rockchip: Add Theobroma-Systems Jaguar SBC
  arm64: dts: rockchip: Add Powkiddy X55
  dt-bindings: arm: rockchip: Add Powkiddy X55
  ...

Link: https://lore.kernel.org/r/3535836.iIbC2pHGDl@philSigned-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parents 76955bc8 8174dff9
...@@ -30,9 +30,11 @@ properties: ...@@ -30,9 +30,11 @@ properties:
- const: amarula,vyasa-rk3288 - const: amarula,vyasa-rk3288
- const: rockchip,rk3288 - const: rockchip,rk3288
- description: Anbernic RG351M - description: Anbernic RK3326 Handheld Gaming Console
items: items:
- const: anbernic,rg351m - enum:
- anbernic,rg351m
- anbernic,rg351v
- const: rockchip,rk3326 - const: rockchip,rk3326
- description: Anbernic RG353P - description: Anbernic RG353P
...@@ -101,16 +103,12 @@ properties: ...@@ -101,16 +103,12 @@ properties:
- const: edgeble,neural-compute-module-2 # Edgeble Neural Compute Module 2 SoM - const: edgeble,neural-compute-module-2 # Edgeble Neural Compute Module 2 SoM
- const: rockchip,rv1126 - const: rockchip,rv1126
- description: Edgeble Neural Compute Module 6(Neu6) Model A SoM based boards - description: Edgeble Neural Compute Module 6(Neu6) SoM based boards
items: items:
- const: edgeble,neural-compute-module-6a-io # Edgeble Neural Compute Module 6A IO Board - const: edgeble,neural-compute-module-6a-io # Edgeble NCM6A-IO Board
- const: edgeble,neural-compute-module-6a # Edgeble Neural Compute Module 6A SoM - enum:
- const: rockchip,rk3588 - edgeble,neural-compute-module-6a # Edgeble Neural Compute Module 6A SoM
- edgeble,neural-compute-module-6b # Edgeble Neural Compute Module 6B SoM
- description: Edgeble Neural Compute Module 6(Neu6) Model B SoM based boards
items:
- const: edgeble,neural-compute-module-6b-io # Edgeble Neural Compute Module 6B IO Board
- const: edgeble,neural-compute-module-6b # Edgeble Neural Compute Module 6B SoM
- const: rockchip,rk3588 - const: rockchip,rk3588
- description: Elgin RV1108 R1 - description: Elgin RV1108 R1
...@@ -674,9 +672,12 @@ properties: ...@@ -674,9 +672,12 @@ properties:
- const: pine64,soquartz - const: pine64,soquartz
- const: rockchip,rk3566 - const: rockchip,rk3566
- description: Powkiddy RGB30 - description: Powkiddy RK3566 Handheld Gaming Console
items: items:
- const: powkiddy,rgb30 - enum:
- powkiddy,rgb30
- powkiddy,rk2023
- powkiddy,x55
- const: rockchip,rk3566 - const: rockchip,rk3566
- description: Radxa Compute Module 3(CM3) - description: Radxa Compute Module 3(CM3)
...@@ -875,6 +876,11 @@ properties: ...@@ -875,6 +876,11 @@ properties:
- const: tsd,rk3399-puma-haikou - const: tsd,rk3399-puma-haikou
- const: rockchip,rk3399 - const: rockchip,rk3399
- description: Theobroma Systems RK3588-SBC Jaguar
items:
- const: tsd,rk3588-jaguar
- const: rockchip,rk3588
- description: Tronsmart Orion R68 Meta - description: Tronsmart Orion R68 Meta
items: items:
- const: tronsmart,orion-r68-meta - const: tronsmart,orion-r68-meta
......
...@@ -9,6 +9,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3308-roc-cc.dtb ...@@ -9,6 +9,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3308-roc-cc.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3308-rock-pi-s.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3308-rock-pi-s.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3318-a95x-z2.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3318-a95x-z2.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3326-anbernic-rg351m.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3326-anbernic-rg351m.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3326-anbernic-rg351v.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3326-odroid-go2.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3326-odroid-go2.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3326-odroid-go2-v11.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3326-odroid-go2-v11.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3326-odroid-go3.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3326-odroid-go3.dtb
...@@ -78,6 +79,8 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-anbernic-rg503.dtb ...@@ -78,6 +79,8 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-anbernic-rg503.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-pinenote-v1.1.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-pinenote-v1.1.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-pinenote-v1.2.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-pinenote-v1.2.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-powkiddy-rgb30.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-powkiddy-rgb30.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-powkiddy-rk2023.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-powkiddy-x55.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-quartz64-a.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-quartz64-a.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-quartz64-b.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-quartz64-b.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-radxa-cm3-io.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-radxa-cm3-io.dtb
...@@ -101,6 +104,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-rock-3a.dtb ...@@ -101,6 +104,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-rock-3a.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-edgeble-neu6a-io.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-edgeble-neu6a-io.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-edgeble-neu6b-io.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-edgeble-neu6b-io.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-evb1-v10.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-evb1-v10.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-jaguar.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-nanopc-t6.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-nanopc-t6.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-orangepi-5-plus.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-orangepi-5-plus.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-quartzpro64.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-quartzpro64.dtb
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
/ { / {
aliases { aliases {
ethernet0 = &gmac;
mmc1 = &sdmmc; mmc1 = &sdmmc;
mmc2 = &sdio; mmc2 = &sdio;
}; };
......
...@@ -14,6 +14,7 @@ / { ...@@ -14,6 +14,7 @@ / {
compatible = "rockchip,px30-evb", "rockchip,px30"; compatible = "rockchip,px30-evb", "rockchip,px30";
aliases { aliases {
ethernet0 = &gmac;
mmc0 = &sdmmc; mmc0 = &sdmmc;
mmc1 = &sdio; mmc1 = &sdio;
mmc2 = &emmc; mmc2 = &emmc;
......
...@@ -13,6 +13,7 @@ / { ...@@ -13,6 +13,7 @@ / {
compatible = "tsd,px30-ringneck-haikou", "rockchip,px30"; compatible = "tsd,px30-ringneck-haikou", "rockchip,px30";
aliases { aliases {
ethernet0 = &gmac;
mmc2 = &sdmmc; mmc2 = &sdmmc;
}; };
......
...@@ -20,7 +20,6 @@ / { ...@@ -20,7 +20,6 @@ / {
#size-cells = <2>; #size-cells = <2>;
aliases { aliases {
ethernet0 = &gmac;
i2c0 = &i2c0; i2c0 = &i2c0;
i2c1 = &i2c1; i2c1 = &i2c1;
i2c2 = &i2c2; i2c2 = &i2c2;
......
...@@ -250,3 +250,61 @@ &usb20_otg { ...@@ -250,3 +250,61 @@ &usb20_otg {
&wdt { &wdt {
status = "okay"; status = "okay";
}; };
&gpio0 {
gpio-line-names =
/* GPIO0_A0 - A7 */
"", "", "", "", "", "", "", "",
/* GPIO0_B0 - B7 */
"", "", "", "header1-pin3 [GPIO0_B3]", "header1-pin5 [GPIO0_B4]",
"", "", "header1-pin11 [GPIO0_B7]",
/* GPIO0_C0 - C7 */
"header1-pin13 [GPIO0_C0]", "header1-pin15 [GPIO0_C1]", "", "", "",
"", "", "",
/* GPIO0_D0 - D8 */
"", "", "", "", "", "", "", "";
};
&gpio1 {
gpio-line-names =
/* GPIO1_A0 - A7 */
"", "", "", "", "", "", "", "",
/* GPIO1_B0 - B7 */
"", "", "", "", "", "", "", "",
/* GPIO1_C0 - C7 */
"", "", "", "", "", "", "header1-pin21 [GPIO1_C6]",
"header1-pin19 [GPIO1_C7]",
/* GPIO1_D0 - D8 */
"header1-pin23 [GPIO1_D0]", "header1-pin24 [GPIO1_D1]", "", "", "",
"", "", "";
};
&gpio2 {
gpio-line-names =
/* GPIO2_A0 - A7 */
"header1-pin10 [GPIO2_A0]", "header1-pin8 [GPIO2_A1]", "", "",
"header1-pin7 [GPIO2_A4]", "header1-pin12 [GPIO2_A5]",
"header2-pin46 [GPIO2_A6]", "header1-pin22 [GPIO1_A7]",
/* GPIO2_B0 - B7 */
"header2-pin45 [GPIO2_B0]", "header1-pin18 [GPIO2_B1]",
"header1-pin16 [GPIO2_B2]", "header2-pin44 [GPIO2_B3]",
"header2-pin43 [GPIO2_B4]", "header2-pin28 [GPIO2_B5]",
"header2-pin30 [GPIO2_B6]", "header2-pin32 [GPIO2_B7]",
/* GPIO2_C0 - C7 */
"header2-pin34 [GPIO2_C0]", "", "", "", "", "", "", "",
/* GPIO2_D0 - D8 */
"", "", "", "", "", "", "", "";
};
&gpio3 {
gpio-line-names =
/* GPIO3_A0 - A7 */
"", "", "", "", "", "", "", "",
/* GPIO3_B0 - B7 */
"", "", "header2-pin42 [GPIO3_B2]", "header2-pin41 [GPIO3_B3]",
"header2-pin40 [GPIO3_B4]", "header2-pin39 [GPIO3_B5]", "", "",
/* GPIO3_C0 - C7 */
"", "", "", "", "", "", "", "",
/* GPIO3_D0 - D8 */
"", "", "", "", "", "", "", "";
};
...@@ -20,6 +20,11 @@ / { ...@@ -20,6 +20,11 @@ / {
#size-cells = <2>; #size-cells = <2>;
aliases { aliases {
gpio0 = &gpio0;
gpio1 = &gpio1;
gpio2 = &gpio2;
gpio3 = &gpio3;
gpio4 = &gpio4;
i2c0 = &i2c0; i2c0 = &i2c0;
i2c1 = &i2c1; i2c1 = &i2c1;
i2c2 = &i2c2; i2c2 = &i2c2;
......
...@@ -9,6 +9,7 @@ / { ...@@ -9,6 +9,7 @@ / {
compatible = "zkmagic,a95x-z2", "rockchip,rk3318"; compatible = "zkmagic,a95x-z2", "rockchip,rk3318";
aliases { aliases {
ethernet0 = &gmac2phy;
mmc0 = &sdmmc; mmc0 = &sdmmc;
mmc1 = &sdio; mmc1 = &sdio;
mmc2 = &emmc; mmc2 = &emmc;
......
...@@ -6,30 +6,16 @@ ...@@ -6,30 +6,16 @@
*/ */
/dts-v1/; /dts-v1/;
#include "rk3326-odroid-go.dtsi" #include "rk3326-anbernic-rg351m.dtsi"
/ { / {
model = "Anbernic RG351M"; model = "Anbernic RG351M";
compatible = "anbernic,rg351m", "rockchip,rk3326"; compatible = "anbernic,rg351m", "rockchip,rk3326";
vibrator {
compatible = "pwm-vibrator";
pwms = <&pwm0 0 1000000 0>;
pwm-names = "enable";
};
}; };
/delete-node/ &builtin_gamepad;
/delete-node/ &vcc_host; /* conflicts with pwm vibration motor */
&internal_display { &internal_display {
compatible = "elida,kd35t133"; compatible = "elida,kd35t133";
iovcc-supply = <&vcc_lcd>; iovcc-supply = <&vcc_lcd>;
rotation = <270>;
vdd-supply = <&vcc_lcd>; vdd-supply = <&vcc_lcd>;
}; };
&pwm0 {
status = "okay";
};
/delete-node/ &rk817_charger;
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (c) 2019 Hardkernel Co., Ltd
* Copyright (c) 2020 Theobroma Systems Design und Consulting GmbH
* Copyright (c) 2022 Maya Matuszczyk <maccraft123mc@gmail.com>
*/
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/pinctrl/rockchip.h>
#include "rk3326.dtsi"
/ {
aliases {
mmc0 = &sdmmc;
};
chosen {
stdout-path = "serial2:115200n8";
};
backlight: backlight {
compatible = "pwm-backlight";
power-supply = <&vcc_bl>;
pwms = <&pwm1 0 25000 0>;
};
/*
* LED is a tri-state. Driven high it is red, driven low it is
* green, and not driven at all (pin set to input) it is amber.
* Additionally, there is a 2nd LED that is not controllable
* that is on (red) when plugged in to power.
*/
gpio_led: gpio-leds {
compatible = "gpio-leds";
pinctrl-names = "default";
pinctrl-0 = <&led_pin>;
red_green_led: led-0 {
color = <LED_COLOR_ID_RED>;
gpios = <&gpio2 RK_PB5 GPIO_ACTIVE_HIGH>;
function = LED_FUNCTION_CHARGING;
};
};
rk817-sound {
compatible = "simple-audio-card";
simple-audio-card,name = "rk817_int";
simple-audio-card,format = "i2s";
simple-audio-card,hp-det-gpio = <&gpio2 RK_PC6 GPIO_ACTIVE_HIGH>;
simple-audio-card,mclk-fs = <256>;
simple-audio-card,widgets =
"Microphone", "Mic Jack",
"Headphone", "Headphones",
"Speaker", "Speaker";
simple-audio-card,routing =
"MICL", "Mic Jack",
"Headphones", "HPOL",
"Headphones", "HPOR",
"Speaker", "SPKO";
simple-audio-card,codec {
sound-dai = <&rk817>;
};
simple-audio-card,cpu {
sound-dai = <&i2s1_2ch>;
};
};
vccsys: vccsys {
compatible = "regulator-fixed";
regulator-name = "vcc3v8_sys";
regulator-always-on;
regulator-min-microvolt = <3800000>;
regulator-max-microvolt = <3800000>;
};
vibrator {
compatible = "pwm-vibrator";
pwms = <&pwm0 0 1000000 0>;
pwm-names = "enable";
};
};
&cpu0 {
cpu-supply = <&vdd_arm>;
};
&cpu1 {
cpu-supply = <&vdd_arm>;
};
&cpu2 {
cpu-supply = <&vdd_arm>;
};
&cpu3 {
cpu-supply = <&vdd_arm>;
};
&cru {
assigned-clocks = <&cru PLL_NPLL>,
<&cru ACLK_BUS_PRE>, <&cru ACLK_PERI_PRE>,
<&cru HCLK_BUS_PRE>, <&cru HCLK_PERI_PRE>,
<&cru PCLK_BUS_PRE>, <&cru SCLK_GPU>;
assigned-clock-rates = <1188000000>,
<200000000>, <200000000>,
<150000000>, <150000000>,
<100000000>, <200000000>;
};
&display_subsystem {
status = "okay";
};
&dsi {
status = "okay";
ports {
mipi_out: port@1 {
reg = <1>;
mipi_out_panel: endpoint {
remote-endpoint = <&mipi_in_panel>;
};
};
};
internal_display: panel@0 {
reg = <0>;
backlight = <&backlight>;
reset-gpios = <&gpio3 RK_PC0 GPIO_ACTIVE_LOW>;
port {
mipi_in_panel: endpoint {
remote-endpoint = <&mipi_out_panel>;
};
};
};
};
&dsi_dphy {
status = "okay";
};
&gpu {
mali-supply = <&vdd_logic>;
status = "okay";
};
&i2c0 {
clock-frequency = <400000>;
i2c-scl-falling-time-ns = <16>;
i2c-scl-rising-time-ns = <280>;
status = "okay";
rk817: pmic@20 {
compatible = "rockchip,rk817";
reg = <0x20>;
#clock-cells = <1>;
clock-names = "mclk";
clock-output-names = "rk808-clkout1", "xin32k";
clocks = <&cru SCLK_I2S1_OUT>;
interrupt-parent = <&gpio0>;
interrupts = <RK_PB2 IRQ_TYPE_LEVEL_LOW>;
pinctrl-0 = <&pmic_int>, <&i2s1_2ch_mclk>;
pinctrl-names = "default";
#sound-dai-cells = <0>;
wakeup-source;
vcc1-supply = <&vccsys>;
vcc2-supply = <&vccsys>;
vcc3-supply = <&vccsys>;
vcc4-supply = <&vccsys>;
vcc5-supply = <&vccsys>;
vcc6-supply = <&vccsys>;
vcc7-supply = <&vccsys>;
vcc8-supply = <&vccsys>;
regulators {
vdd_logic: DCDC_REG1 {
regulator-always-on;
regulator-boot-on;
regulator-max-microvolt = <1150000>;
regulator-min-microvolt = <950000>;
regulator-name = "vdd_logic";
regulator-ramp-delay = <6001>;
regulator-state-mem {
regulator-on-in-suspend;
regulator-suspend-microvolt = <950000>;
};
};
vdd_arm: DCDC_REG2 {
regulator-always-on;
regulator-boot-on;
regulator-max-microvolt = <1350000>;
regulator-min-microvolt = <950000>;
regulator-name = "vdd_arm";
regulator-ramp-delay = <6001>;
regulator-state-mem {
regulator-off-in-suspend;
regulator-suspend-microvolt = <950000>;
};
};
vcc_ddr: DCDC_REG3 {
regulator-always-on;
regulator-boot-on;
regulator-name = "vcc_ddr";
regulator-state-mem {
regulator-on-in-suspend;
};
};
vcc_3v3: DCDC_REG4 {
regulator-always-on;
regulator-boot-on;
regulator-max-microvolt = <3300000>;
regulator-min-microvolt = <3300000>;
regulator-name = "vcc_3v3";
regulator-state-mem {
regulator-off-in-suspend;
regulator-suspend-microvolt = <3300000>;
};
};
vcc_1v8: LDO_REG2 {
regulator-always-on;
regulator-boot-on;
regulator-max-microvolt = <1800000>;
regulator-min-microvolt = <1800000>;
regulator-name = "vcc_1v8";
regulator-state-mem {
regulator-on-in-suspend;
regulator-suspend-microvolt = <1800000>;
};
};
vdd_1v0: LDO_REG3 {
regulator-always-on;
regulator-boot-on;
regulator-max-microvolt = <1000000>;
regulator-min-microvolt = <1000000>;
regulator-name = "vdd_1v0";
regulator-state-mem {
regulator-on-in-suspend;
regulator-suspend-microvolt = <1000000>;
};
};
vcc3v3_pmu: LDO_REG4 {
regulator-always-on;
regulator-boot-on;
regulator-max-microvolt = <3300000>;
regulator-min-microvolt = <3300000>;
regulator-name = "vcc3v3_pmu";
regulator-state-mem {
regulator-on-in-suspend;
regulator-suspend-microvolt = <3300000>;
};
};
vccio_sd: LDO_REG5 {
regulator-always-on;
regulator-boot-on;
regulator-max-microvolt = <3300000>;
regulator-min-microvolt = <1800000>;
regulator-name = "vccio_sd";
regulator-state-mem {
regulator-on-in-suspend;
regulator-suspend-microvolt = <3300000>;
};
};
vcc_sd: LDO_REG6 {
regulator-boot-on;
regulator-max-microvolt = <3300000>;
regulator-min-microvolt = <3300000>;
regulator-name = "vcc_sd";
regulator-state-mem {
regulator-on-in-suspend;
regulator-suspend-microvolt = <3300000>;
};
};
vcc_bl: LDO_REG7 {
regulator-max-microvolt = <3300000>;
regulator-min-microvolt = <3300000>;
regulator-name = "vcc_bl";
regulator-state-mem {
regulator-off-in-suspend;
regulator-suspend-microvolt = <3300000>;
};
};
vcc_lcd: LDO_REG8 {
regulator-max-microvolt = <2800000>;
regulator-min-microvolt = <2800000>;
regulator-name = "vcc_lcd";
regulator-state-mem {
regulator-off-in-suspend;
regulator-suspend-microvolt = <2800000>;
};
};
vcc_wifi: LDO_REG9 {
regulator-max-microvolt = <3300000>;
regulator-min-microvolt = <3300000>;
regulator-name = "vcc_wifi";
regulator-state-mem {
regulator-off-in-suspend;
regulator-suspend-microvolt = <3300000>;
};
};
usb_midu: BOOST {
regulator-always-on;
regulator-boot-on;
regulator-max-microvolt = <5400000>;
regulator-min-microvolt = <5000000>;
regulator-name = "usb_midu";
};
};
rk817_codec: codec {
rockchip,mic-in-differential;
};
};
};
&i2s1_2ch {
status = "okay";
};
&io_domains {
vccio1-supply = <&vcc_3v3>;
vccio2-supply = <&vccio_sd>;
vccio3-supply = <&vcc_3v3>;
vccio4-supply = <&vcc_3v3>;
vccio5-supply = <&vcc_3v3>;
vccio6-supply = <&vcc_3v3>;
status = "okay";
};
&pmu_io_domains {
pmuio1-supply = <&vcc3v3_pmu>;
pmuio2-supply = <&vcc3v3_pmu>;
status = "okay";
};
&pwm0 {
status = "okay";
};
&pwm1 {
status = "okay";
};
&saradc {
vref-supply = <&vcc_1v8>;
status = "okay";
};
&sdmmc {
cap-sd-highspeed;
card-detect-delay = <200>;
cd-gpios = <&gpio0 RK_PA3 GPIO_ACTIVE_LOW>;
sd-uhs-sdr12;
sd-uhs-sdr25;
sd-uhs-sdr50;
sd-uhs-sdr104;
vmmc-supply = <&vcc_sd>;
vqmmc-supply = <&vccio_sd>;
status = "okay";
};
&sfc {
#address-cells = <1>;
pinctrl-0 = <&sfc_clk &sfc_cs0 &sfc_bus2>;
pinctrl-names = "default";
#size-cells = <0>;
status = "okay";
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <108000000>;
spi-rx-bus-width = <2>;
spi-tx-bus-width = <1>;
};
};
&tsadc {
status = "okay";
};
&u2phy {
status = "okay";
u2phy_host: host-port {
status = "okay";
};
u2phy_otg: otg-port {
status = "disabled";
};
};
&usb20_otg {
status = "okay";
};
&uart2 {
pinctrl-0 = <&uart2m1_xfer>;
pinctrl-names = "default";
status = "okay";
};
&vopb {
status = "okay";
};
&vopb_mmu {
status = "okay";
};
&pinctrl {
headphone {
hp_det: hp-det {
rockchip,pins = <2 RK_PC6 RK_FUNC_GPIO &pcfg_pull_down>;
};
};
leds {
led_pin: led-pin {
rockchip,pins = <2 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
pmic {
dc_det: dc-det {
rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
};
pmic_int: pmic-int {
rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>;
};
soc_slppin_gpio: soc_slppin_gpio {
rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_output_low>;
};
soc_slppin_rst: soc_slppin_rst {
rockchip,pins = <0 RK_PA4 2 &pcfg_pull_none>;
};
soc_slppin_slp: soc_slppin_slp {
rockchip,pins = <0 RK_PA4 1 &pcfg_pull_none>;
};
};
};
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/dts-v1/;
#include "rk3326-anbernic-rg351m.dtsi"
/ {
model = "Anbernic RG351V";
compatible = "anbernic,rg351v", "rockchip,rk3326";
gpio_keys_vol: gpio-keys-vol {
compatible = "gpio-keys";
autorepeat;
button-vol-down {
gpios = <&gpio2 RK_PA1 GPIO_ACTIVE_LOW>;
label = "VOLUMEDOWN";
linux,code = <KEY_VOLUMEDOWN>;
};
button-vol-up {
gpios = <&gpio2 RK_PA0 GPIO_ACTIVE_LOW>;
label = "VOLUMEUP";
linux,code = <KEY_VOLUMEUP>;
};
};
};
&internal_display {
compatible = "anbernic,rg351v-panel", "newvision,nv3051d";
vdd-supply = <&vcc_lcd>;
};
&io_domains {
vccio1-supply = <&vccio_sd>;
};
&vcc_sd {
regulator-max-microvolt = <3000000>;
regulator-min-microvolt = <1800000>;
};
&vccio_sd {
regulator-max-microvolt = <1800000>;
};
...@@ -9,6 +9,7 @@ / { ...@@ -9,6 +9,7 @@ / {
compatible = "azw,beelink-a1", "rockchip,rk3328"; compatible = "azw,beelink-a1", "rockchip,rk3328";
aliases { aliases {
ethernet0 = &gmac2io;
mmc0 = &sdmmc; mmc0 = &sdmmc;
mmc1 = &emmc; mmc1 = &emmc;
}; };
......
...@@ -11,6 +11,7 @@ / { ...@@ -11,6 +11,7 @@ / {
compatible = "rockchip,rk3328-evb", "rockchip,rk3328"; compatible = "rockchip,rk3328-evb", "rockchip,rk3328";
aliases { aliases {
ethernet0 = &gmac2phy;
mmc0 = &sdmmc; mmc0 = &sdmmc;
mmc1 = &sdio; mmc1 = &sdio;
mmc2 = &emmc; mmc2 = &emmc;
......
...@@ -14,6 +14,7 @@ / { ...@@ -14,6 +14,7 @@ / {
compatible = "friendlyarm,nanopi-r2s", "rockchip,rk3328"; compatible = "friendlyarm,nanopi-r2s", "rockchip,rk3328";
aliases { aliases {
ethernet0 = &gmac2io;
ethernet1 = &rtl8153; ethernet1 = &rtl8153;
mmc0 = &sdmmc; mmc0 = &sdmmc;
}; };
......
...@@ -15,6 +15,7 @@ / { ...@@ -15,6 +15,7 @@ / {
compatible = "xunlong,orangepi-r1-plus", "rockchip,rk3328"; compatible = "xunlong,orangepi-r1-plus", "rockchip,rk3328";
aliases { aliases {
ethernet0 = &gmac2io;
ethernet1 = &rtl8153; ethernet1 = &rtl8153;
mmc0 = &sdmmc; mmc0 = &sdmmc;
}; };
......
...@@ -11,6 +11,7 @@ / { ...@@ -11,6 +11,7 @@ / {
compatible = "firefly,roc-rk3328-cc", "rockchip,rk3328"; compatible = "firefly,roc-rk3328-cc", "rockchip,rk3328";
aliases { aliases {
ethernet0 = &gmac2io;
mmc0 = &sdmmc; mmc0 = &sdmmc;
mmc1 = &emmc; mmc1 = &emmc;
}; };
......
...@@ -21,6 +21,8 @@ / { ...@@ -21,6 +21,8 @@ / {
compatible = "radxa,rockpi-e", "rockchip,rk3328"; compatible = "radxa,rockpi-e", "rockchip,rk3328";
aliases { aliases {
ethernet0 = &gmac2io;
ethernet1 = &gmac2phy;
mmc0 = &sdmmc; mmc0 = &sdmmc;
mmc1 = &emmc; mmc1 = &emmc;
}; };
......
...@@ -11,6 +11,7 @@ / { ...@@ -11,6 +11,7 @@ / {
compatible = "pine64,rock64", "rockchip,rk3328"; compatible = "pine64,rock64", "rockchip,rk3328";
aliases { aliases {
ethernet0 = &gmac2io;
mmc0 = &sdmmc; mmc0 = &sdmmc;
mmc1 = &emmc; mmc1 = &emmc;
}; };
......
...@@ -20,6 +20,10 @@ / { ...@@ -20,6 +20,10 @@ / {
#size-cells = <2>; #size-cells = <2>;
aliases { aliases {
gpio0 = &gpio0;
gpio1 = &gpio1;
gpio2 = &gpio2;
gpio3 = &gpio3;
serial0 = &uart0; serial0 = &uart0;
serial1 = &uart1; serial1 = &uart1;
serial2 = &uart2; serial2 = &uart2;
...@@ -27,8 +31,6 @@ aliases { ...@@ -27,8 +31,6 @@ aliases {
i2c1 = &i2c1; i2c1 = &i2c1;
i2c2 = &i2c2; i2c2 = &i2c2;
i2c3 = &i2c3; i2c3 = &i2c3;
ethernet0 = &gmac2io;
ethernet1 = &gmac2phy;
}; };
cpus { cpus {
...@@ -916,6 +918,8 @@ gmac2io: ethernet@ff540000 { ...@@ -916,6 +918,8 @@ gmac2io: ethernet@ff540000 {
resets = <&cru SRST_GMAC2IO_A>; resets = <&cru SRST_GMAC2IO_A>;
reset-names = "stmmaceth"; reset-names = "stmmaceth";
rockchip,grf = <&grf>; rockchip,grf = <&grf>;
tx-fifo-depth = <2048>;
rx-fifo-depth = <4096>;
snps,txpbl = <0x4>; snps,txpbl = <0x4>;
status = "disabled"; status = "disabled";
}; };
...@@ -938,6 +942,8 @@ gmac2phy: ethernet@ff550000 { ...@@ -938,6 +942,8 @@ gmac2phy: ethernet@ff550000 {
reset-names = "stmmaceth"; reset-names = "stmmaceth";
phy-mode = "rmii"; phy-mode = "rmii";
phy-handle = <&phy>; phy-handle = <&phy>;
tx-fifo-depth = <2048>;
rx-fifo-depth = <4096>;
snps,txpbl = <0x4>; snps,txpbl = <0x4>;
clock_in_out = "output"; clock_in_out = "output";
status = "disabled"; status = "disabled";
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
/ { / {
aliases { aliases {
ethernet0 = &gmac;
mmc0 = &emmc; mmc0 = &emmc;
}; };
......
...@@ -12,6 +12,7 @@ / { ...@@ -12,6 +12,7 @@ / {
compatible = "geekbuying,geekbox", "rockchip,rk3368"; compatible = "geekbuying,geekbox", "rockchip,rk3368";
aliases { aliases {
ethernet0 = &gmac;
mmc0 = &emmc; mmc0 = &emmc;
}; };
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
/ { / {
aliases { aliases {
ethernet0 = &gmac;
mmc0 = &emmc; mmc0 = &emmc;
}; };
......
...@@ -12,6 +12,7 @@ / { ...@@ -12,6 +12,7 @@ / {
compatible = "tronsmart,orion-r68-meta", "rockchip,rk3368"; compatible = "tronsmart,orion-r68-meta", "rockchip,rk3368";
aliases { aliases {
ethernet0 = &gmac;
mmc0 = &sdmmc; mmc0 = &sdmmc;
mmc1 = &emmc; mmc1 = &emmc;
}; };
......
...@@ -12,6 +12,7 @@ / { ...@@ -12,6 +12,7 @@ / {
compatible = "rockchip,r88", "rockchip,rk3368"; compatible = "rockchip,r88", "rockchip,rk3368";
aliases { aliases {
ethernet0 = &gmac;
mmc0 = &sdio0; mmc0 = &sdio0;
mmc1 = &emmc; mmc1 = &emmc;
}; };
......
...@@ -19,7 +19,10 @@ / { ...@@ -19,7 +19,10 @@ / {
#size-cells = <2>; #size-cells = <2>;
aliases { aliases {
ethernet0 = &gmac; gpio0 = &gpio0;
gpio1 = &gpio1;
gpio2 = &gpio2;
gpio3 = &gpio3;
i2c0 = &i2c0; i2c0 = &i2c0;
i2c1 = &i2c1; i2c1 = &i2c1;
i2c2 = &i2c2; i2c2 = &i2c2;
......
...@@ -15,6 +15,7 @@ / { ...@@ -15,6 +15,7 @@ / {
compatible = "openailab,eaidk-610", "rockchip,rk3399"; compatible = "openailab,eaidk-610", "rockchip,rk3399";
aliases { aliases {
ethernet0 = &gmac;
mmc0 = &sdio0; mmc0 = &sdio0;
mmc1 = &sdmmc; mmc1 = &sdmmc;
mmc2 = &sdhci; mmc2 = &sdhci;
......
...@@ -12,6 +12,7 @@ / { ...@@ -12,6 +12,7 @@ / {
compatible = "rockchip,rk3399-evb", "rockchip,rk3399"; compatible = "rockchip,rk3399-evb", "rockchip,rk3399";
aliases { aliases {
ethernet0 = &gmac;
mmc0 = &sdhci; mmc0 = &sdhci;
}; };
......
...@@ -13,6 +13,10 @@ / { ...@@ -13,6 +13,10 @@ / {
model = "96boards RK3399 Ficus"; model = "96boards RK3399 Ficus";
compatible = "vamrs,ficus", "rockchip,rk3399"; compatible = "vamrs,ficus", "rockchip,rk3399";
aliases {
ethernet0 = &gmac;
};
chosen { chosen {
stdout-path = "serial2:1500000n8"; stdout-path = "serial2:1500000n8";
}; };
......
...@@ -16,6 +16,7 @@ / { ...@@ -16,6 +16,7 @@ / {
compatible = "firefly,firefly-rk3399", "rockchip,rk3399"; compatible = "firefly,firefly-rk3399", "rockchip,rk3399";
aliases { aliases {
ethernet0 = &gmac;
mmc0 = &sdio0; mmc0 = &sdio0;
mmc1 = &sdmmc; mmc1 = &sdmmc;
mmc2 = &sdhci; mmc2 = &sdhci;
......
...@@ -11,6 +11,7 @@ / { ...@@ -11,6 +11,7 @@ / {
compatible = "hugsun,x99", "rockchip,rk3399"; compatible = "hugsun,x99", "rockchip,rk3399";
aliases { aliases {
ethernet0 = &gmac;
mmc0 = &sdio0; mmc0 = &sdio0;
mmc1 = &sdmmc; mmc1 = &sdmmc;
mmc2 = &sdhci; mmc2 = &sdhci;
......
...@@ -10,6 +10,10 @@ ...@@ -10,6 +10,10 @@
/ { / {
model = "Khadas Edge-Captain"; model = "Khadas Edge-Captain";
compatible = "khadas,edge-captain", "rockchip,rk3399"; compatible = "khadas,edge-captain", "rockchip,rk3399";
aliases {
ethernet0 = &gmac;
};
}; };
&gmac { &gmac {
......
...@@ -10,6 +10,10 @@ ...@@ -10,6 +10,10 @@
/ { / {
model = "Khadas Edge-V"; model = "Khadas Edge-V";
compatible = "khadas,edge-v", "rockchip,rk3399"; compatible = "khadas,edge-v", "rockchip,rk3399";
aliases {
ethernet0 = &gmac;
};
}; };
&gmac { &gmac {
......
...@@ -19,6 +19,7 @@ / { ...@@ -19,6 +19,7 @@ / {
compatible = "kobol,helios64", "rockchip,rk3399"; compatible = "kobol,helios64", "rockchip,rk3399";
aliases { aliases {
ethernet0 = &gmac;
mmc0 = &sdmmc; mmc0 = &sdmmc;
mmc1 = &sdhci; mmc1 = &sdhci;
spi1 = &spi1; spi1 = &spi1;
......
...@@ -15,6 +15,7 @@ / { ...@@ -15,6 +15,7 @@ / {
compatible = "leez,p710", "rockchip,rk3399"; compatible = "leez,p710", "rockchip,rk3399";
aliases { aliases {
ethernet0 = &gmac;
mmc0 = &sdio0; mmc0 = &sdio0;
mmc1 = &sdmmc; mmc1 = &sdmmc;
mmc2 = &sdhci; mmc2 = &sdhci;
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
/ { / {
aliases { aliases {
ethernet0 = &gmac;
mmc0 = &sdio0; mmc0 = &sdio0;
mmc1 = &sdmmc; mmc1 = &sdmmc;
mmc2 = &sdhci; mmc2 = &sdhci;
......
...@@ -17,6 +17,7 @@ / { ...@@ -17,6 +17,7 @@ / {
compatible = "rockchip,rk3399-orangepi", "rockchip,rk3399"; compatible = "rockchip,rk3399-orangepi", "rockchip,rk3399";
aliases { aliases {
ethernet0 = &gmac;
mmc0 = &sdio0; mmc0 = &sdio0;
mmc1 = &sdmmc; mmc1 = &sdmmc;
mmc2 = &sdhci; mmc2 = &sdhci;
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
/ { / {
aliases { aliases {
ethernet0 = &gmac;
mmc0 = &sdhci; mmc0 = &sdhci;
}; };
......
...@@ -14,6 +14,7 @@ / { ...@@ -14,6 +14,7 @@ / {
compatible = "firefly,roc-rk3399-pc", "rockchip,rk3399"; compatible = "firefly,roc-rk3399-pc", "rockchip,rk3399";
aliases { aliases {
ethernet0 = &gmac;
mmc0 = &sdmmc; mmc0 = &sdmmc;
mmc1 = &sdhci; mmc1 = &sdhci;
}; };
......
...@@ -15,6 +15,7 @@ / { ...@@ -15,6 +15,7 @@ / {
compatible = "radxa,rock-4c-plus", "rockchip,rk3399"; compatible = "radxa,rock-4c-plus", "rockchip,rk3399";
aliases { aliases {
ethernet0 = &gmac;
mmc0 = &sdhci; mmc0 = &sdhci;
mmc1 = &sdmmc; mmc1 = &sdmmc;
}; };
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
/ { / {
aliases { aliases {
ethernet0 = &gmac;
mmc0 = &sdhci; mmc0 = &sdhci;
mmc1 = &sdmmc; mmc1 = &sdmmc;
}; };
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
/ { / {
aliases { aliases {
ethernet0 = &gmac;
mmc0 = &sdio0; mmc0 = &sdio0;
mmc1 = &sdmmc; mmc1 = &sdmmc;
mmc2 = &sdhci; mmc2 = &sdhci;
......
...@@ -12,6 +12,7 @@ / { ...@@ -12,6 +12,7 @@ / {
compatible = "rockchip,rk3399-sapphire", "rockchip,rk3399"; compatible = "rockchip,rk3399-sapphire", "rockchip,rk3399";
aliases { aliases {
ethernet0 = &gmac;
mmc0 = &sdmmc; mmc0 = &sdmmc;
mmc1 = &sdhci; mmc1 = &sdhci;
}; };
...@@ -44,7 +45,7 @@ dc_12v: dc-12v { ...@@ -44,7 +45,7 @@ dc_12v: dc-12v {
fan0: gpio-fan { fan0: gpio-fan {
#cooling-cells = <2>; #cooling-cells = <2>;
compatible = "gpio-fan"; compatible = "gpio-fan";
gpio-fan,speed-map = <0 0 3000 1>; gpio-fan,speed-map = <0 0>, <3000 1>;
gpios = <&gpio1 RK_PC2 GPIO_ACTIVE_HIGH>; gpios = <&gpio1 RK_PC2 GPIO_ACTIVE_HIGH>;
status = "okay"; status = "okay";
}; };
......
...@@ -19,7 +19,11 @@ / { ...@@ -19,7 +19,11 @@ / {
#size-cells = <2>; #size-cells = <2>;
aliases { aliases {
ethernet0 = &gmac; gpio0 = &gpio0;
gpio1 = &gpio1;
gpio2 = &gpio2;
gpio3 = &gpio3;
gpio4 = &gpio4;
i2c0 = &i2c0; i2c0 = &i2c0;
i2c1 = &i2c1; i2c1 = &i2c1;
i2c2 = &i2c2; i2c2 = &i2c2;
...@@ -2112,6 +2116,7 @@ gpu: gpu@ff9a0000 { ...@@ -2112,6 +2116,7 @@ gpu: gpu@ff9a0000 {
interrupt-names = "job", "mmu", "gpu"; interrupt-names = "job", "mmu", "gpu";
clocks = <&cru ACLK_GPU>; clocks = <&cru ACLK_GPU>;
#cooling-cells = <2>; #cooling-cells = <2>;
dynamic-power-coefficient = <2640>;
power-domains = <&power RK3399_PD_GPU>; power-domains = <&power RK3399_PD_GPU>;
status = "disabled"; status = "disabled";
}; };
......
...@@ -13,6 +13,7 @@ / { ...@@ -13,6 +13,7 @@ / {
compatible = "vamrs,rk3399pro-vmarc-som", "rockchip,rk3399pro"; compatible = "vamrs,rk3399pro-vmarc-som", "rockchip,rk3399pro";
aliases { aliases {
ethernet0 = &gmac;
mmc0 = &sdhci; mmc0 = &sdhci;
mmc1 = &sdmmc; mmc1 = &sdmmc;
}; };
......
...@@ -5,67 +5,11 @@ ...@@ -5,67 +5,11 @@
#include <dt-bindings/gpio/gpio.h> #include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/linux-event-codes.h> #include <dt-bindings/input/linux-event-codes.h>
#include <dt-bindings/pinctrl/rockchip.h> #include <dt-bindings/pinctrl/rockchip.h>
#include "rk3566-anbernic-rg353x.dtsi" #include "rk3566-powkiddy-rk2023.dtsi"
/ { / {
model = "RGB30"; model = "RGB30";
compatible = "powkiddy,rgb30", "rockchip,rk3566"; compatible = "powkiddy,rgb30", "rockchip,rk3566";
aliases {
mmc1 = &sdmmc0;
mmc2 = &sdmmc1;
mmc3 = &sdmmc2;
};
battery: battery {
compatible = "simple-battery";
charge-full-design-microamp-hours = <3151000>;
charge-term-current-microamp = <300000>;
constant-charge-current-max-microamp = <2000000>;
constant-charge-voltage-max-microvolt = <4250000>;
factory-internal-resistance-micro-ohms = <117000>;
voltage-max-design-microvolt = <4172000>;
voltage-min-design-microvolt = <3400000>;
ocv-capacity-celsius = <20>;
ocv-capacity-table-0 = <4172000 100>, <4092000 95>, <4035000 90>, <3990000 85>,
<3939000 80>, <3895000 75>, <3852000 70>, <3807000 65>,
<3762000 60>, <3713000 55>, <3672000 50>, <3647000 45>,
<3629000 40>, <3613000 35>, <3598000 30>, <3578000 25>,
<3550000 20>, <3519000 15>, <3479000 10>, <3438000 5>,
<3400000 0>;
};
/*
* Channels reversed for speakers. Headphones automatically switch via hardware when
* detected with no ability to control output in software. Headphones appear to be mono
* (each output channel receives all audio). No microphone support on 3.5mm jack.
*/
sound {
compatible = "simple-audio-card";
simple-audio-card,name = "rk817_ext";
simple-audio-card,format = "i2s";
simple-audio-card,mclk-fs = <256>;
simple-audio-card,widgets =
"Headphone", "Headphones";
simple-audio-card,routing =
"Headphones", "HPOL",
"Headphones", "HPOR";
simple-audio-card,codec {
sound-dai = <&rk817>;
};
simple-audio-card,cpu {
sound-dai = <&i2s1_8ch>;
};
};
};
/delete-node/ &adc_keys;
&chosen {
/delete-property/ stdout-path;
}; };
&cru { &cru {
...@@ -75,87 +19,21 @@ &cru { ...@@ -75,87 +19,21 @@ &cru {
<200000000>, <292500000>; <200000000>, <292500000>;
}; };
&gpio_keys_control { &dsi0 {
button-r1 { panel: panel@0 {
gpios = <&gpio3 RK_PB3 GPIO_ACTIVE_LOW>; compatible = "powkiddy,rgb30-panel";
label = "TR"; reg = <0>;
linux,code = <BTN_TR>; backlight = <&backlight>;
}; pinctrl-names = "default";
pinctrl-0 = <&lcd_rst>;
button-r2 { reset-gpios = <&gpio4 RK_PA0 GPIO_ACTIVE_LOW>;
gpios = <&gpio3 RK_PB4 GPIO_ACTIVE_LOW>; vcc-supply = <&vcc3v3_lcd0_n>;
label = "TR2"; iovcc-supply = <&vcc3v3_lcd0_n>;
linux,code = <BTN_TR2>;
}; port {
}; mipi_in_panel: endpoint {
remote-endpoint = <&mipi_out_panel>;
/delete-node/ &{/i2c@fdd40000/regulator@40}; };
&i2c0 {
vdd_cpu: regulator@1c {
compatible = "tcs,tcs4525";
reg = <0x1c>;
fcs,suspend-voltage-selector = <1>;
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <712500>;
regulator-max-microvolt = <1390000>;
regulator-name = "vdd_cpu";
regulator-ramp-delay = <2300>;
vin-supply = <&vcc_sys>;
regulator-state-mem {
regulator-off-in-suspend;
}; };
}; };
}; };
/*
* Device has 2 red LEDs instead of an amber and a red. Relabel LEDs as
* red_led0 and red_led1.
*/
/delete-node/ &{/pwm-leds/led-1};
/delete-node/ &{/pwm-leds/led-2};
&leds {
red_led0: led-1 {
color = <LED_COLOR_ID_RED>;
function = LED_FUNCTION_CHARGING;
max-brightness = <255>;
pwms = <&pwm7 0 25000 0>;
};
red_led1: led-2 {
color = <LED_COLOR_ID_RED>;
default-state = "off";
function = LED_FUNCTION_STATUS;
max-brightness = <255>;
pwms = <&pwm0 0 25000 0>;
};
};
&panel {
compatible = "powkiddy,rgb30-panel";
vcc-supply = <&vcc3v3_lcd0_n>;
iovcc-supply = <&vcc3v3_lcd0_n>;
/delete-property/ vdd-supply;
};
&pwm5 {
status = "disabled";
};
&rk817 {
rk817_charger: charger {
monitored-battery = <&battery>;
rockchip,resistor-sense-micro-ohms = <10000>;
rockchip,sleep-enter-current-microamp = <300000>;
rockchip,sleep-filter-current-microamp = <100000>;
};
};
/* There is no UART header visible on the board for this device. */
&uart2 {
status = "disabled";
};
/delete-node/ &vibrator;
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/linux-event-codes.h>
#include <dt-bindings/pinctrl/rockchip.h>
#include "rk3566-powkiddy-rk2023.dtsi"
/ {
model = "RK2023";
compatible = "powkiddy,rk2023", "rockchip,rk3566";
};
&cru {
assigned-clocks = <&pmucru CLK_RTC_32K>, <&cru PLL_GPLL>,
<&pmucru PLL_PPLL>, <&cru PLL_VPLL>;
assigned-clock-rates = <32768>, <1200000000>,
<200000000>, <115200000>;
};
&dsi0 {
panel: panel@0 {
compatible = "powkiddy,rk2023-panel", "newvision,nv3051d";
reg = <0>;
backlight = <&backlight>;
pinctrl-names = "default";
pinctrl-0 = <&lcd_rst>;
reset-gpios = <&gpio4 RK_PA0 GPIO_ACTIVE_LOW>;
vdd-supply = <&vcc3v3_lcd0_n>;
port {
mipi_in_panel: endpoint {
remote-endpoint = <&mipi_out_panel>;
};
};
};
};
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/linux-event-codes.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/pinctrl/rockchip.h>
#include <dt-bindings/soc/rockchip,vop2.h>
#include "rk3566.dtsi"
/ {
aliases {
mmc1 = &sdmmc0;
mmc2 = &sdmmc1;
mmc3 = &sdmmc2;
};
adc-joystick {
compatible = "adc-joystick";
io-channels = <&adc_mux 0>,
<&adc_mux 1>,
<&adc_mux 2>,
<&adc_mux 3>;
pinctrl-0 = <&joy_mux_en>;
pinctrl-names = "default";
poll-interval = <60>;
#address-cells = <1>;
#size-cells = <0>;
axis@0 {
reg = <0>;
abs-flat = <32>;
abs-fuzz = <32>;
abs-range = <1023 15>;
linux,code = <ABS_X>;
};
axis@1 {
reg = <1>;
abs-flat = <32>;
abs-fuzz = <32>;
abs-range = <15 1023>;
linux,code = <ABS_RX>;
};
axis@2 {
reg = <2>;
abs-flat = <32>;
abs-fuzz = <32>;
abs-range = <15 1023>;
linux,code = <ABS_Y>;
};
axis@3 {
reg = <3>;
abs-flat = <32>;
abs-fuzz = <32>;
abs-range = <1023 15>;
linux,code = <ABS_RY>;
};
};
adc_mux: adc-mux {
compatible = "io-channel-mux";
channels = "left_x", "right_x", "left_y", "right_y";
#io-channel-cells = <1>;
io-channels = <&saradc 3>;
io-channel-names = "parent";
mux-controls = <&gpio_mux>;
settle-time-us = <100>;
};
backlight: backlight {
compatible = "pwm-backlight";
power-supply = <&vcc_sys>;
pwms = <&pwm4 0 25000 0>;
};
battery: battery {
compatible = "simple-battery";
charge-full-design-microamp-hours = <3151000>;
charge-term-current-microamp = <300000>;
constant-charge-current-max-microamp = <2000000>;
constant-charge-voltage-max-microvolt = <4250000>;
factory-internal-resistance-micro-ohms = <117000>;
voltage-max-design-microvolt = <4172000>;
voltage-min-design-microvolt = <3400000>;
ocv-capacity-celsius = <20>;
ocv-capacity-table-0 = <4172000 100>, <4092000 95>, <4035000 90>, <3990000 85>,
<3939000 80>, <3895000 75>, <3852000 70>, <3807000 65>,
<3762000 60>, <3713000 55>, <3672000 50>, <3647000 45>,
<3629000 40>, <3613000 35>, <3598000 30>, <3578000 25>,
<3550000 20>, <3519000 15>, <3479000 10>, <3438000 5>,
<3400000 0>;
};
gpio_keys_control: gpio-keys-control {
compatible = "gpio-keys";
pinctrl-0 = <&btn_pins_ctrl>;
pinctrl-names = "default";
button-a {
gpios = <&gpio3 RK_PC2 GPIO_ACTIVE_LOW>;
label = "EAST";
linux,code = <BTN_EAST>;
};
button-b {
gpios = <&gpio3 RK_PC3 GPIO_ACTIVE_LOW>;
label = "SOUTH";
linux,code = <BTN_SOUTH>;
};
button-down {
gpios = <&gpio3 RK_PA4 GPIO_ACTIVE_LOW>;
label = "DPAD-DOWN";
linux,code = <BTN_DPAD_DOWN>;
};
button-l1 {
gpios = <&gpio3 RK_PB1 GPIO_ACTIVE_LOW>;
label = "TL";
linux,code = <BTN_TL>;
};
button-l2 {
gpios = <&gpio3 RK_PB2 GPIO_ACTIVE_LOW>;
label = "TL2";
linux,code = <BTN_TL2>;
};
button-left {
gpios = <&gpio3 RK_PA6 GPIO_ACTIVE_LOW>;
label = "DPAD-LEFT";
linux,code = <BTN_DPAD_LEFT>;
};
button-r1 {
gpios = <&gpio3 RK_PB3 GPIO_ACTIVE_LOW>;
label = "TR";
linux,code = <BTN_TR>;
};
button-r2 {
gpios = <&gpio3 RK_PB4 GPIO_ACTIVE_LOW>;
label = "TR2";
linux,code = <BTN_TR2>;
};
button-right {
gpios = <&gpio3 RK_PA5 GPIO_ACTIVE_LOW>;
label = "DPAD-RIGHT";
linux,code = <BTN_DPAD_RIGHT>;
};
button-select {
gpios = <&gpio3 RK_PB6 GPIO_ACTIVE_LOW>;
label = "SELECT";
linux,code = <BTN_SELECT>;
};
button-start {
gpios = <&gpio3 RK_PB5 GPIO_ACTIVE_LOW>;
label = "START";
linux,code = <BTN_START>;
};
button-thumbl {
gpios = <&gpio3 RK_PA1 GPIO_ACTIVE_LOW>;
label = "THUMBL";
linux,code = <BTN_THUMBL>;
};
button-thumbr {
gpios = <&gpio3 RK_PA2 GPIO_ACTIVE_LOW>;
label = "THUMBR";
linux,code = <BTN_THUMBR>;
};
button-up {
gpios = <&gpio3 RK_PA3 GPIO_ACTIVE_LOW>;
label = "DPAD-UP";
linux,code = <BTN_DPAD_UP>;
};
button-x {
gpios = <&gpio3 RK_PC0 GPIO_ACTIVE_LOW>;
label = "NORTH";
linux,code = <BTN_NORTH>;
};
button-y {
gpios = <&gpio3 RK_PC1 GPIO_ACTIVE_LOW>;
label = "WEST";
linux,code = <BTN_WEST>;
};
};
gpio_keys_vol: gpio-keys-vol {
compatible = "gpio-keys";
autorepeat;
pinctrl-0 = <&btn_pins_vol>;
pinctrl-names = "default";
button-vol-down {
gpios = <&gpio3 RK_PB0 GPIO_ACTIVE_LOW>;
label = "VOLUMEDOWN";
linux,code = <KEY_VOLUMEDOWN>;
};
button-vol-up {
gpios = <&gpio3 RK_PA7 GPIO_ACTIVE_LOW>;
label = "VOLUMEUP";
linux,code = <KEY_VOLUMEUP>;
};
};
gpio_mux: mux-controller {
compatible = "gpio-mux";
mux-gpios = <&gpio0 RK_PB6 GPIO_ACTIVE_LOW>,
<&gpio0 RK_PB7 GPIO_ACTIVE_LOW>;
#mux-control-cells = <0>;
};
hdmi-con {
compatible = "hdmi-connector";
ddc-i2c-bus = <&i2c5>;
type = "c";
port {
hdmi_con_in: endpoint {
remote-endpoint = <&hdmi_out_con>;
};
};
};
/*
* Device also includes an always on LED that is wired to the 5V input
* voltage and is on when the device is plugged in.
*/
leds: pwm-leds {
compatible = "pwm-leds";
green_led: led-0 {
color = <LED_COLOR_ID_GREEN>;
function = LED_FUNCTION_STATUS;
max-brightness = <255>;
pwms = <&pwm6 0 25000 0>;
};
red_led: led-1 {
color = <LED_COLOR_ID_RED>;
function = LED_FUNCTION_CHARGING;
max-brightness = <255>;
pwms = <&pwm7 0 25000 0>;
};
};
sdio_pwrseq: sdio-pwrseq {
compatible = "mmc-pwrseq-simple";
clocks = <&rk817 1>;
clock-names = "ext_clock";
pinctrl-0 = <&wifi_enable_h>;
pinctrl-names = "default";
post-power-on-delay-ms = <200>;
reset-gpios = <&gpio4 RK_PA2 GPIO_ACTIVE_LOW>;
};
/*
* Channels reversed for speakers. Headphones automatically switch via hardware when
* detected with no ability to control output in software. Headphones appear to be mono
* (each output channel receives all audio). No microphone support on 3.5mm jack.
*/
sound {
compatible = "simple-audio-card";
simple-audio-card,name = "rk817_ext";
simple-audio-card,format = "i2s";
simple-audio-card,mclk-fs = <256>;
simple-audio-card,widgets =
"Headphone", "Headphones";
simple-audio-card,routing =
"Headphones", "HPOL",
"Headphones", "HPOR";
simple-audio-card,codec {
sound-dai = <&rk817>;
};
simple-audio-card,cpu {
sound-dai = <&i2s1_8ch>;
};
};
vcc3v3_lcd0_n: regulator-vcc3v3-lcd0 {
compatible = "regulator-fixed";
gpio = <&gpio0 RK_PC2 GPIO_ACTIVE_HIGH>;
enable-active-high;
pinctrl-0 = <&vcc_lcd_h>;
pinctrl-names = "default";
regulator-boot-on;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-name = "vcc3v3_lcd0_n";
vin-supply = <&vcc_3v3>;
regulator-state-mem {
regulator-off-in-suspend;
};
};
vcc_sys: regulator-vcc-sys {
compatible = "regulator-fixed";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <3800000>;
regulator-max-microvolt = <3800000>;
regulator-name = "vcc_sys";
};
vcc_wifi: regulator-vcc-wifi {
compatible = "regulator-fixed";
enable-active-high;
gpio = <&gpio0 RK_PA0 GPIO_ACTIVE_HIGH>;
pinctrl-0 = <&vcc_wifi_h>;
pinctrl-names = "default";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-name = "vcc_wifi";
};
};
&combphy1 {
status = "okay";
};
&cpu0 {
cpu-supply = <&vdd_cpu>;
};
&cpu1 {
cpu-supply = <&vdd_cpu>;
};
&cpu2 {
cpu-supply = <&vdd_cpu>;
};
&cpu3 {
cpu-supply = <&vdd_cpu>;
};
&dsi0 {
status = "okay";
#address-cells = <1>;
#size-cells = <0>;
ports {
dsi0_in: port@0 {
reg = <0>;
dsi0_in_vp1: endpoint {
remote-endpoint = <&vp1_out_dsi0>;
};
};
dsi0_out: port@1 {
reg = <1>;
mipi_out_panel: endpoint {
remote-endpoint = <&mipi_in_panel>;
};
};
};
};
&dsi_dphy0 {
status = "okay";
};
&gpu {
mali-supply = <&vdd_gpu>;
status = "okay";
};
&hdmi {
ddc-i2c-bus = <&i2c5>;
pinctrl-0 = <&hdmitxm0_cec>;
pinctrl-names = "default";
status = "okay";
};
&hdmi_in {
hdmi_in_vp0: endpoint {
remote-endpoint = <&vp0_out_hdmi>;
};
};
&hdmi_out {
hdmi_out_con: endpoint {
remote-endpoint = <&hdmi_con_in>;
};
};
&hdmi_sound {
status = "okay";
};
&i2c0 {
status = "okay";
rk817: pmic@20 {
compatible = "rockchip,rk817";
reg = <0x20>;
interrupt-parent = <&gpio0>;
interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
clock-output-names = "rk808-clkout1", "rk808-clkout2";
clock-names = "mclk";
clocks = <&cru I2S1_MCLKOUT_TX>;
assigned-clocks = <&cru I2S1_MCLKOUT_TX>;
assigned-clock-parents = <&cru CLK_I2S1_8CH_TX>;
#clock-cells = <1>;
#sound-dai-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&i2s1m0_mclk>, <&pmic_int_l>;
wakeup-source;
vcc1-supply = <&vcc_sys>;
vcc2-supply = <&vcc_sys>;
vcc3-supply = <&vcc_sys>;
vcc4-supply = <&vcc_sys>;
vcc5-supply = <&vcc_sys>;
vcc6-supply = <&vcc_sys>;
vcc7-supply = <&vcc_sys>;
vcc8-supply = <&vcc_sys>;
vcc9-supply = <&dcdc_boost>;
regulators {
vdd_logic: DCDC_REG1 {
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <1350000>;
regulator-ramp-delay = <6001>;
regulator-initial-mode = <0x2>;
regulator-name = "vdd_logic";
regulator-state-mem {
regulator-off-in-suspend;
regulator-suspend-microvolt = <900000>;
};
};
vdd_gpu: DCDC_REG2 {
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <1350000>;
regulator-ramp-delay = <6001>;
regulator-initial-mode = <0x2>;
regulator-name = "vdd_gpu";
regulator-state-mem {
regulator-off-in-suspend;
};
};
vcc_ddr: DCDC_REG3 {
regulator-always-on;
regulator-boot-on;
regulator-initial-mode = <0x2>;
regulator-name = "vcc_ddr";
regulator-state-mem {
regulator-on-in-suspend;
};
};
vcc_3v3: DCDC_REG4 {
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-initial-mode = <0x2>;
regulator-name = "vcc_3v3";
regulator-state-mem {
regulator-on-in-suspend;
regulator-suspend-microvolt = <3300000>;
};
};
vcca1v8_pmu: LDO_REG1 {
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-name = "vcca1v8_pmu";
regulator-state-mem {
regulator-on-in-suspend;
regulator-suspend-microvolt = <1800000>;
};
};
vdda_0v9: LDO_REG2 {
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <900000>;
regulator-max-microvolt = <900000>;
regulator-name = "vdda_0v9";
regulator-state-mem {
regulator-off-in-suspend;
};
};
vdda0v9_pmu: LDO_REG3 {
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <900000>;
regulator-max-microvolt = <900000>;
regulator-name = "vdda0v9_pmu";
regulator-state-mem {
regulator-on-in-suspend;
regulator-suspend-microvolt = <900000>;
};
};
vccio_acodec: LDO_REG4 {
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-name = "vccio_acodec";
regulator-state-mem {
regulator-off-in-suspend;
};
};
vccio_sd: LDO_REG5 {
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
regulator-name = "vccio_sd";
regulator-state-mem {
regulator-off-in-suspend;
};
};
vcc3v3_pmu: LDO_REG6 {
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-name = "vcc3v3_pmu";
regulator-state-mem {
regulator-on-in-suspend;
regulator-suspend-microvolt = <3300000>;
};
};
vcc_1v8: LDO_REG7 {
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-name = "vcc_1v8";
regulator-state-mem {
regulator-off-in-suspend;
};
};
vcc1v8_dvp: LDO_REG8 {
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
regulator-name = "vcc1v8_dvp";
regulator-state-mem {
regulator-off-in-suspend;
};
};
vcc2v8_dvp: LDO_REG9 {
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-name = "vcc2v8_dvp";
regulator-state-mem {
regulator-off-in-suspend;
};
};
dcdc_boost: BOOST {
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <4700000>;
regulator-max-microvolt = <5400000>;
regulator-name = "boost";
regulator-state-mem {
regulator-off-in-suspend;
};
};
otg_switch: OTG_SWITCH {
regulator-name = "otg_switch";
regulator-state-mem {
regulator-off-in-suspend;
};
};
};
rk817_charger: charger {
monitored-battery = <&battery>;
rockchip,resistor-sense-micro-ohms = <10000>;
rockchip,sleep-enter-current-microamp = <300000>;
rockchip,sleep-filter-current-microamp = <100000>;
};
};
vdd_cpu: regulator@1c {
compatible = "tcs,tcs4525";
reg = <0x1c>;
fcs,suspend-voltage-selector = <1>;
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <712500>;
regulator-max-microvolt = <1390000>;
regulator-name = "vdd_cpu";
regulator-ramp-delay = <2300>;
vin-supply = <&vcc_sys>;
regulator-state-mem {
regulator-off-in-suspend;
};
};
};
&i2c5 {
pinctrl-0 = <&i2c5m1_xfer>;
pinctrl-names = "default";
status = "okay";
};
&i2s0_8ch {
status = "okay";
};
&i2s1_8ch {
pinctrl-0 = <&i2s1m0_sclktx
&i2s1m0_lrcktx
&i2s1m0_sdi0
&i2s1m0_sdo0>;
pinctrl-names = "default";
rockchip,trcm-sync-tx-only;
status = "okay";
};
&pinctrl {
gpio-btns {
btn_pins_ctrl: btn-pins-ctrl {
rockchip,pins =
<3 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>,
<3 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>,
<3 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>,
<3 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>,
<3 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>,
<3 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>,
<3 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>,
<3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>,
<3 RK_PB3 RK_FUNC_GPIO &pcfg_pull_up>,
<3 RK_PB4 RK_FUNC_GPIO &pcfg_pull_up>,
<3 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up>,
<3 RK_PB6 RK_FUNC_GPIO &pcfg_pull_up>,
<3 RK_PC0 RK_FUNC_GPIO &pcfg_pull_up>,
<3 RK_PC1 RK_FUNC_GPIO &pcfg_pull_up>,
<3 RK_PC2 RK_FUNC_GPIO &pcfg_pull_up>,
<3 RK_PC3 RK_FUNC_GPIO &pcfg_pull_up>;
};
btn_pins_vol: btn-pins-vol {
rockchip,pins =
<3 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>,
<3 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>;
};
};
joy-mux {
joy_mux_en: joy-mux-en {
rockchip,pins =
<0 RK_PB5 RK_FUNC_GPIO &pcfg_output_low>;
};
};
gpio-lcd {
lcd_rst: lcd-rst {
rockchip,pins =
<4 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
pmic {
pmic_int_l: pmic-int-l {
rockchip,pins =
<0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
};
};
sdio-pwrseq {
wifi_enable_h: wifi-enable-h {
rockchip,pins =
<4 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
vcc3v3-lcd {
vcc_lcd_h: vcc-lcd-h {
rockchip,pins =
<0 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
vcc-wifi {
vcc_wifi_h: vcc-wifi-h {
rockchip,pins =
<0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
};
&pmu_io_domains {
status = "okay";
pmuio1-supply = <&vcc3v3_pmu>;
pmuio2-supply = <&vcc3v3_pmu>;
vccio1-supply = <&vccio_acodec>;
vccio3-supply = <&vccio_sd>;
vccio4-supply = <&vcc_1v8>;
vccio5-supply = <&vcc_3v3>;
vccio6-supply = <&vcc1v8_dvp>;
vccio7-supply = <&vcc_3v3>;
};
&pwm4 {
status = "okay";
};
&pwm6 {
status = "okay";
};
&pwm7 {
status = "okay";
};
&saradc {
vref-supply = <&vcc_1v8>;
status = "okay";
};
&sdmmc0 {
bus-width = <4>;
cap-sd-highspeed;
cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
disable-wp;
pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
pinctrl-names = "default";
sd-uhs-sdr104;
vmmc-supply = <&vcc_3v3>;
vqmmc-supply = <&vccio_sd>;
status = "okay";
};
&sdmmc1 {
bus-width = <4>;
cap-sd-highspeed;
cd-gpios = <&gpio2 RK_PB2 GPIO_ACTIVE_LOW>;
disable-wp;
pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_cmd &sdmmc1_clk &sdmmc1_det>;
pinctrl-names = "default";
sd-uhs-sdr104;
vmmc-supply = <&vcc_3v3>;
vqmmc-supply = <&vcc1v8_dvp>;
status = "okay";
};
&sdmmc2 {
bus-width = <4>;
cap-sd-highspeed;
cap-sdio-irq;
keep-power-in-suspend;
mmc-pwrseq = <&sdio_pwrseq>;
non-removable;
pinctrl-0 = <&sdmmc2m0_bus4 &sdmmc2m0_cmd &sdmmc2m0_clk>;
pinctrl-names = "default";
vmmc-supply = <&vcc_wifi>;
vqmmc-supply = <&vcca1v8_pmu>;
status = "okay";
};
&tsadc {
rockchip,hw-tshut-mode = <1>;
rockchip,hw-tshut-polarity = <0>;
status = "okay";
};
&uart1 {
pinctrl-0 = <&uart1m1_xfer &uart1m1_ctsn &uart1m1_rtsn>;
pinctrl-names = "default";
uart-has-rtscts;
status = "okay";
bluetooth {
compatible = "realtek,rtl8821cs-bt", "realtek,rtl8723bs-bt";
device-wake-gpios = <&gpio4 4 GPIO_ACTIVE_HIGH>;
enable-gpios = <&gpio4 3 GPIO_ACTIVE_HIGH>;
host-wake-gpios = <&gpio4 5 GPIO_ACTIVE_HIGH>;
};
};
&usb_host0_xhci {
dr_mode = "peripheral";
phys = <&usb2phy0_otg>;
phy-names = "usb2-phy";
status = "okay";
};
&usb_host1_ehci {
status = "okay";
};
&usb_host1_ohci {
status = "okay";
};
&usb_host1_xhci {
phy-names = "usb2-phy", "usb3-phy";
phys = <&usb2phy1_host>, <&combphy1 PHY_TYPE_USB3>;
status = "okay";
};
&usb2phy0 {
status = "okay";
};
&usb2phy0_otg {
status = "okay";
};
&usb2phy1 {
status = "okay";
};
&usb2phy1_host {
status = "okay";
};
&vop {
assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>;
assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>;
status = "okay";
};
&vop_mmu {
status = "okay";
};
&vp0 {
vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 {
reg = <ROCKCHIP_VOP2_EP_HDMI0>;
remote-endpoint = <&hdmi_in_vp0>;
};
};
&vp1 {
vp1_out_dsi0: endpoint@ROCKCHIP_VOP2_EP_MIPI0 {
reg = <ROCKCHIP_VOP2_EP_MIPI0>;
remote-endpoint = <&dsi0_in_vp1>;
};
};
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/linux-event-codes.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/pinctrl/rockchip.h>
#include <dt-bindings/soc/rockchip,vop2.h>
#include "rk3566.dtsi"
/ {
model = "Powkiddy x55";
compatible = "powkiddy,x55", "rockchip,rk3566";
aliases {
mmc0 = &sdhci;
mmc1 = &sdmmc0;
mmc2 = &sdmmc2;
mmc3 = &sdmmc1;
};
chosen: chosen {
stdout-path = "serial2:1500000n8";
};
adc_joystick: adc-joystick {
compatible = "adc-joystick";
io-channels = <&saradc 0>, <&saradc 1>,
<&saradc 2>, <&saradc 3>;
poll-interval = <60>;
#address-cells = <1>;
#size-cells = <0>;
axis@0 {
reg = <0>;
abs-flat = <30>;
abs-fuzz = <20>;
abs-range = <15 1023>;
linux,code = <ABS_X>;
};
axis@1 {
reg = <1>;
abs-flat = <30>;
abs-fuzz = <20>;
abs-range = <1023 15>;
linux,code = <ABS_Y>;
};
axis@2 {
reg = <2>;
abs-flat = <30>;
abs-fuzz = <20>;
abs-range = <15 1023>;
linux,code = <ABS_RX>;
};
axis@3 {
reg = <3>;
abs-flat = <30>;
abs-fuzz = <20>;
abs-range = <1023 15>;
linux,code = <ABS_RY>;
};
};
backlight: backlight {
compatible = "pwm-backlight";
power-supply = <&vcc_sys>;
pwms = <&pwm4 0 25000 0>;
};
battery: battery {
compatible = "simple-battery";
charge-full-design-microamp-hours = <4000000>;
charge-term-current-microamp = <300000>;
constant-charge-current-max-microamp = <2000000>;
constant-charge-voltage-max-microvolt = <4300000>;
factory-internal-resistance-micro-ohms = <91000>;
voltage-max-design-microvolt = <4138000>;
voltage-min-design-microvolt = <3400000>;
ocv-capacity-celsius = <20>;
ocv-capacity-table-0 = <4138000 100>, <4083000 95>, <4059000 90>, <4044000 85>,
<4030000 80>, <4020000 75>, <4006000 70>, <3972000 65>,
<3934000 60>, <3904000 55>, <3878000 50>, <3857000 45>,
<3843000 40>, <3826000 35>, <3801000 30>, <3768000 25>,
<3735000 20>, <3688000 15>, <3621000 10>, <3553000 5>,
<3400000 0>;
};
gpio_keys_control: gpio-keys-control {
compatible = "gpio-keys";
pinctrl-0 = <&btn_pins_ctrl>;
pinctrl-names = "default";
button-a {
gpios = <&gpio3 RK_PD3 GPIO_ACTIVE_LOW>;
label = "EAST";
linux,code = <BTN_EAST>;
};
button-b {
gpios = <&gpio3 RK_PD2 GPIO_ACTIVE_LOW>;
label = "SOUTH";
linux,code = <BTN_SOUTH>;
};
button-down {
gpios = <&gpio4 RK_PA1 GPIO_ACTIVE_LOW>;
label = "DPAD-DOWN";
linux,code = <BTN_DPAD_DOWN>;
};
button-l1 {
gpios = <&gpio3 RK_PD0 GPIO_ACTIVE_LOW>;
label = "TL";
linux,code = <BTN_TL>;
};
button-l2 {
gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_LOW>;
label = "TL2";
linux,code = <BTN_TL2>;
};
button-left {
gpios = <&gpio3 RK_PD6 GPIO_ACTIVE_LOW>;
label = "DPAD-LEFT";
linux,code = <BTN_DPAD_LEFT>;
};
button-right {
gpios = <&gpio3 RK_PD7 GPIO_ACTIVE_LOW>;
label = "DPAD-RIGHT";
linux,code = <BTN_DPAD_RIGHT>;
};
button-select {
gpios = <&gpio4 RK_PA4 GPIO_ACTIVE_LOW>;
label = "SELECT";
linux,code = <BTN_SELECT>;
};
button-start {
gpios = <&gpio4 RK_PA2 GPIO_ACTIVE_LOW>;
label = "START";
linux,code = <BTN_START>;
};
button-thumbl {
gpios = <&gpio4 RK_PA7 GPIO_ACTIVE_LOW>;
label = "THUMBL";
linux,code = <BTN_THUMBL>;
};
button-thumbr {
gpios = <&gpio4 RK_PB0 GPIO_ACTIVE_LOW>;
label = "THUMBR";
linux,code = <BTN_THUMBR>;
};
button-r1 {
gpios = <&gpio3 RK_PC6 GPIO_ACTIVE_LOW>;
label = "TR";
linux,code = <BTN_TR>;
};
button-r2 {
gpios = <&gpio3 RK_PC7 GPIO_ACTIVE_LOW>;
label = "TR2";
linux,code = <BTN_TR2>;
};
button-up {
gpios = <&gpio4 RK_PA0 GPIO_ACTIVE_LOW>;
label = "DPAD-UP";
linux,code = <BTN_DPAD_UP>;
};
button-x {
gpios = <&gpio3 RK_PD5 GPIO_ACTIVE_LOW>;
label = "NORTH";
linux,code = <BTN_NORTH>;
};
button-y {
gpios = <&gpio3 RK_PD4 GPIO_ACTIVE_LOW>;
label = "WEST";
linux,code = <BTN_WEST>;
};
};
gpio_keys_vol: gpio-keys-vol {
compatible = "gpio-keys";
autorepeat;
pinctrl-0 = <&btn_pins_vol>;
pinctrl-names = "default";
button-voldown {
gpios = <&gpio4 RK_PA3 GPIO_ACTIVE_LOW>;
label = "VOLUMEDOWN";
linux,code = <KEY_VOLUMEDOWN>;
};
button-volup {
gpios = <&gpio4 RK_PA5 GPIO_ACTIVE_LOW>;
label = "VOLUMEUP";
linux,code = <KEY_VOLUMEUP>;
};
};
gpio_leds: gpio-leds {
compatible = "gpio-leds";
pinctrl-names = "default";
pinctrl-0 = <&led_pins>;
red_led: led-0 {
color = <LED_COLOR_ID_RED>;
default-state = "off";
gpios = <&gpio4 RK_PB4 GPIO_ACTIVE_HIGH>;
function = LED_FUNCTION_STATUS;
};
green_led: led-1 {
color = <LED_COLOR_ID_GREEN>;
default-state = "on";
gpios = <&gpio4 RK_PB5 GPIO_ACTIVE_HIGH>;
function = LED_FUNCTION_POWER;
};
amber_led: led-2 {
color = <LED_COLOR_ID_AMBER>;
gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>;
function = LED_FUNCTION_CHARGING;
};
};
hdmi-con {
compatible = "hdmi-connector";
ddc-i2c-bus = <&i2c5>;
type = "c";
port {
hdmi_con_in: endpoint {
remote-endpoint = <&hdmi_out_con>;
};
};
};
sdio_pwrseq: sdio-pwrseq {
compatible = "mmc-pwrseq-simple";
clocks = <&rk817 1>;
clock-names = "ext_clock";
pinctrl-0 = <&wifi_enable_h>;
pinctrl-names = "default";
post-power-on-delay-ms = <200>;
reset-gpios = <&gpio0 RK_PC0 GPIO_ACTIVE_LOW>;
};
/* Channels reversed for both headphones and speakers. */
sound {
compatible = "simple-audio-card";
pinctrl-0 = <&hp_det>;
pinctrl-names = "default";
simple-audio-card,name = "rk817_ext";
simple-audio-card,aux-devs = <&spk_amp>;
simple-audio-card,format = "i2s";
simple-audio-card,hp-det-gpio = <&gpio4 RK_PC6 GPIO_ACTIVE_HIGH>;
simple-audio-card,mclk-fs = <256>;
simple-audio-card,widgets =
"Microphone", "Mic Jack",
"Headphone", "Headphones",
"Speaker", "Internal Speakers";
simple-audio-card,routing =
"MICL", "Mic Jack",
"Headphones", "HPOL",
"Headphones", "HPOR",
"Internal Speakers", "Speaker Amp OUTL",
"Internal Speakers", "Speaker Amp OUTR",
"Speaker Amp INL", "HPOL",
"Speaker Amp INR", "HPOR";
simple-audio-card,pin-switches = "Internal Speakers";
simple-audio-card,codec {
sound-dai = <&rk817>;
};
simple-audio-card,cpu {
sound-dai = <&i2s1_8ch>;
};
};
spk_amp: audio-amplifier {
compatible = "simple-audio-amplifier";
enable-gpios = <&gpio4 RK_PC2 GPIO_ACTIVE_HIGH>;
pinctrl-0 = <&spk_amp_enable_h>;
pinctrl-names = "default";
sound-name-prefix = "Speaker Amp";
};
vcc5v0_host: regulator-vcc5v0-host {
compatible = "regulator-fixed";
enable-active-high;
gpio = <&gpio4 RK_PC4 GPIO_ACTIVE_HIGH>;
pinctrl-0 = <&vcc5v0_host_en>;
pinctrl-names = "default";
regulator-name = "vcc5v0_host";
vin-supply = <&dcdc_boost>;
};
vcc_lcd: regulator-vcc-lcd {
compatible = "regulator-fixed";
enable-active-high;
gpio = <&gpio0 RK_PC7 GPIO_ACTIVE_HIGH>;
pinctrl-0 = <&vcc_lcd_en>;
pinctrl-names = "default";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-name = "vcc_lcd";
};
vcc_sys: regulator-vcc-sys {
compatible = "regulator-fixed";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <3800000>;
regulator-max-microvolt = <3800000>;
regulator-name = "vcc_sys";
};
vcc_wifi: regulator-vcc-wifi {
compatible = "regulator-fixed";
gpio = <&gpio0 RK_PA0 GPIO_ACTIVE_LOW>;
pinctrl-0 = <&vcc_wifi_h>;
pinctrl-names = "default";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-name = "vcc_wifi";
};
};
&combphy1 {
status = "okay";
};
&cru {
assigned-clocks = <&pmucru CLK_RTC_32K>, <&cru PLL_GPLL>,
<&pmucru PLL_PPLL>, <&cru PLL_VPLL>;
assigned-clock-rates = <32768>, <1200000000>,
<200000000>, <126400000>;
};
&cpu0 {
cpu-supply = <&vdd_cpu>;
};
&cpu1 {
cpu-supply = <&vdd_cpu>;
};
&cpu2 {
cpu-supply = <&vdd_cpu>;
};
&cpu3 {
cpu-supply = <&vdd_cpu>;
};
&dsi_dphy0 {
status = "okay";
};
&dsi0 {
status = "okay";
#address-cells = <1>;
#size-cells = <0>;
ports {
dsi0_in: port@0 {
reg = <0>;
dsi0_in_vp1: endpoint {
remote-endpoint = <&vp1_out_dsi0>;
};
};
dsi0_out: port@1 {
reg = <1>;
mipi_out_panel: endpoint {
remote-endpoint = <&mipi_in_panel>;
};
};
};
panel: panel@0 {
compatible = "powkiddy,x55-panel", "himax,hx8394";
reg = <0>;
backlight = <&backlight>;
iovcc-supply = <&vcc_lcd>;
pinctrl-names = "default";
pinctrl-0 = <&lcd_rst>;
reset-gpios = <&gpio0 RK_PD5 GPIO_ACTIVE_LOW>;
rotation = <270>;
vcc-supply = <&vcc_lcd>;
port {
mipi_in_panel: endpoint {
remote-endpoint = <&mipi_out_panel>;
};
};
};
};
&gpu {
mali-supply = <&vdd_gpu>;
status = "okay";
};
&hdmi {
ddc-i2c-bus = <&i2c5>;
pinctrl-0 = <&hdmitxm0_cec>;
pinctrl-names = "default";
status = "okay";
};
&hdmi_in {
hdmi_in_vp0: endpoint {
remote-endpoint = <&vp0_out_hdmi>;
};
};
&hdmi_out {
hdmi_out_con: endpoint {
remote-endpoint = <&hdmi_con_in>;
};
};
&hdmi_sound {
status = "okay";
};
&i2c0 {
status = "okay";
rk817: pmic@20 {
compatible = "rockchip,rk817";
reg = <0x20>;
assigned-clocks = <&cru I2S1_MCLKOUT_TX>;
assigned-clock-parents = <&cru CLK_I2S1_8CH_TX>;
clock-names = "mclk";
clock-output-names = "rk808-clkout1", "rk808-clkout2";
clocks = <&cru I2S1_MCLKOUT_TX>;
interrupt-parent = <&gpio0>;
interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
pinctrl-names = "default";
pinctrl-0 = <&i2s1m0_mclk>, <&pmic_int_l>;
wakeup-source;
#clock-cells = <1>;
#sound-dai-cells = <0>;
vcc1-supply = <&vcc_sys>;
vcc2-supply = <&vcc_sys>;
vcc3-supply = <&vcc_sys>;
vcc4-supply = <&vcc_sys>;
vcc5-supply = <&vcc_sys>;
vcc6-supply = <&vcc_sys>;
vcc7-supply = <&vcc_sys>;
vcc8-supply = <&vcc_sys>;
vcc9-supply = <&dcdc_boost>;
regulators {
vdd_logic: DCDC_REG1 {
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <1350000>;
regulator-ramp-delay = <6001>;
regulator-initial-mode = <0x2>;
regulator-name = "vdd_logic";
regulator-state-mem {
regulator-off-in-suspend;
regulator-suspend-microvolt = <900000>;
};
};
vdd_gpu: DCDC_REG2 {
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <1350000>;
regulator-ramp-delay = <6001>;
regulator-initial-mode = <0x2>;
regulator-name = "vdd_gpu";
regulator-state-mem {
regulator-off-in-suspend;
};
};
vcc_ddr: DCDC_REG3 {
regulator-always-on;
regulator-boot-on;
regulator-initial-mode = <0x2>;
regulator-name = "vcc_ddr";
regulator-state-mem {
regulator-on-in-suspend;
};
};
vcc_3v3: DCDC_REG4 {
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-initial-mode = <0x2>;
regulator-name = "vcc_3v3";
regulator-state-mem {
regulator-on-in-suspend;
regulator-suspend-microvolt = <3300000>;
};
};
vcca1v8_pmu: LDO_REG1 {
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-name = "vcca1v8_pmu";
regulator-state-mem {
regulator-on-in-suspend;
regulator-suspend-microvolt = <1800000>;
};
};
vdda_0v9: LDO_REG2 {
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <900000>;
regulator-max-microvolt = <900000>;
regulator-name = "vdda_0v9";
regulator-state-mem {
regulator-off-in-suspend;
};
};
vdda0v9_pmu: LDO_REG3 {
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <900000>;
regulator-max-microvolt = <900000>;
regulator-name = "vdda0v9_pmu";
regulator-state-mem {
regulator-on-in-suspend;
regulator-suspend-microvolt = <900000>;
};
};
vccio_acodec: LDO_REG4 {
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-name = "vccio_acodec";
regulator-state-mem {
regulator-off-in-suspend;
};
};
vccio_sd: LDO_REG5 {
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
regulator-name = "vccio_sd";
regulator-state-mem {
regulator-off-in-suspend;
};
};
vcc3v3_pmu: LDO_REG6 {
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-name = "vcc3v3_pmu";
regulator-state-mem {
regulator-on-in-suspend;
regulator-suspend-microvolt = <3300000>;
};
};
vcc_1v8: LDO_REG7 {
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-name = "vcc_1v8";
regulator-state-mem {
regulator-off-in-suspend;
};
};
vcc1v8_dvp: LDO_REG8 {
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-name = "vcc1v8_dvp";
regulator-state-mem {
regulator-on-in-suspend;
};
};
vcc2v8_dvp: LDO_REG9 {
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
regulator-name = "vcc2v8_dvp";
regulator-state-mem {
regulator-off-in-suspend;
};
};
dcdc_boost: BOOST {
regulator-min-microvolt = <4700000>;
regulator-max-microvolt = <5400000>;
regulator-name = "boost";
regulator-state-mem {
regulator-off-in-suspend;
};
};
otg_switch: OTG_SWITCH {
regulator-name = "otg_switch";
regulator-state-mem {
regulator-off-in-suspend;
};
};
};
rk817_charger: charger {
monitored-battery = <&battery>;
rockchip,resistor-sense-micro-ohms = <10000>;
rockchip,sleep-enter-current-microamp = <150000>;
rockchip,sleep-filter-current-microamp = <100000>;
};
};
vdd_cpu: regulator@1c {
compatible = "tcs,tcs4525";
reg = <0x1c>;
fcs,suspend-voltage-selector = <1>;
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <712500>;
regulator-max-microvolt = <1390000>;
regulator-name = "vdd_cpu";
regulator-ramp-delay = <2300>;
vin-supply = <&vcc_sys>;
regulator-state-mem {
regulator-off-in-suspend;
};
};
};
&i2c5 {
pinctrl-0 = <&i2c5m1_xfer>;
pinctrl-names = "default";
status = "okay";
};
&i2s0_8ch {
status = "okay";
};
&i2s1_8ch {
pinctrl-0 = <&i2s1m0_sclktx>, <&i2s1m0_lrcktx>, <&i2s1m0_sdi0>,
<&i2s1m0_sdo0>;
pinctrl-names = "default";
rockchip,trcm-sync-tx-only;
status = "okay";
};
&pinctrl {
audio-amplifier {
spk_amp_enable_h: spk-amp-enable-h {
rockchip,pins =
<4 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
gpio-control {
btn_pins_ctrl: btn-pins-ctrl {
rockchip,pins =
<3 RK_PC6 RK_FUNC_GPIO &pcfg_pull_up>,
<3 RK_PC7 RK_FUNC_GPIO &pcfg_pull_up>,
<3 RK_PD0 RK_FUNC_GPIO &pcfg_pull_up>,
<3 RK_PD1 RK_FUNC_GPIO &pcfg_pull_up>,
<3 RK_PD2 RK_FUNC_GPIO &pcfg_pull_up>,
<3 RK_PD3 RK_FUNC_GPIO &pcfg_pull_up>,
<3 RK_PD4 RK_FUNC_GPIO &pcfg_pull_up>,
<3 RK_PD5 RK_FUNC_GPIO &pcfg_pull_up>,
<3 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>,
<3 RK_PD7 RK_FUNC_GPIO &pcfg_pull_up>,
<4 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>,
<4 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>,
<4 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>,
<4 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>,
<4 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>,
<4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>;
};
btn_pins_vol: btn-pins-vol {
rockchip,pins =
<4 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>,
<4 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
};
};
gpio-lcd {
lcd_rst: lcd-rst {
rockchip,pins =
<0 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
gpio-leds {
led_pins: led-pins {
rockchip,pins =
<4 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>,
<4 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>,
<4 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
hp-detect {
hp_det: hp-det {
rockchip,pins =
<4 RK_PC6 RK_FUNC_GPIO &pcfg_pull_up>;
};
};
pmic {
pmic_int_l: pmic-int-l {
rockchip,pins =
<0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
};
};
sdio-pwrseq {
wifi_enable_h: wifi-enable-h {
rockchip,pins =
<0 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
usb {
vcc5v0_host_en: vcc5v0-host-en {
rockchip,pins =
<4 RK_PC4 RK_FUNC_GPIO &pcfg_pull_up>;
};
vcc5v0_otg_en: vcc5v0-otg-en {
rockchip,pins =
<4 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
};
};
vcc-lcd {
vcc_lcd_en: vcc-lcd-en {
rockchip,pins =
<0 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
vcc-wifi {
vcc_wifi_h: vcc-wifi-h {
rockchip,pins =
<0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
};
&pmu_io_domains {
status = "okay";
pmuio1-supply = <&vcc3v3_pmu>;
pmuio2-supply = <&vcca1v8_pmu>;
vccio1-supply = <&vccio_acodec>;
vccio3-supply = <&vccio_sd>;
vccio4-supply = <&vcca1v8_pmu>;
vccio5-supply = <&vcc2v8_dvp>;
vccio6-supply = <&vcc1v8_dvp>;
vccio7-supply = <&vcc_3v3>;
};
&pwm4 {
status = "okay";
};
&saradc {
vref-supply = <&vcc_1v8>;
status = "okay";
};
&sdhci {
bus-width = <8>;
mmc-hs200-1_8v;
non-removable;
pinctrl-0 = <&emmc_bus8>, <&emmc_clk>, <&emmc_cmd>,
<&emmc_datastrobe>, <&emmc_rstnout>;
pinctrl-names = "default";
status = "okay";
};
&sdmmc0 {
bus-width = <4>;
cap-mmc-highspeed;
cap-sd-highspeed;
disable-wp;
pinctrl-0 = <&sdmmc0_bus4>, <&sdmmc0_clk>, <&sdmmc0_cmd>,
<&sdmmc0_det>;
pinctrl-names = "default";
sd-uhs-sdr104;
vqmmc-supply = <&vccio_sd>;
status = "okay";
};
&sdmmc1 {
bus-width = <4>;
cap-sd-highspeed;
cap-sdio-irq;
keep-power-in-suspend;
mmc-pwrseq = <&sdio_pwrseq>;
non-removable;
pinctrl-0 = <&sdmmc1_bus4>, <&sdmmc1_cmd>, <&sdmmc1_clk>;
pinctrl-names = "default";
vmmc-supply = <&vcc_wifi>;
status = "okay";
};
&sdmmc2 {
bus-width = <4>;
cap-mmc-highspeed;
cap-sd-highspeed;
disable-wp;
pinctrl-0 = <&sdmmc2m1_bus4>, <&sdmmc2m1_cmd>, <&sdmmc2m1_clk>,
<&sdmmc2m1_det>;
pinctrl-names = "default";
sd-uhs-sdr104;
vqmmc-supply = <&vcc2v8_dvp>;
status = "okay";
};
&tsadc {
rockchip,hw-tshut-mode = <1>;
rockchip,hw-tshut-polarity = <0>;
status = "okay";
};
&uart1 {
pinctrl-0 = <&uart1m0_xfer>, <&uart1m0_ctsn>, <&uart1m0_rtsn>;
pinctrl-names = "default";
uart-has-rtscts;
status = "okay";
bluetooth {
compatible = "realtek,rtl8821cs-bt", "realtek,rtl8723bs-bt";
device-wake-gpios = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
enable-gpios = <&gpio0 RK_PC1 GPIO_ACTIVE_HIGH>;
host-wake-gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>;
};
};
&uart2 {
status = "okay";
};
&usb_host0_xhci {
phys = <&usb2phy0_otg>;
phy-names = "usb2-phy";
status = "okay";
};
&usb_host1_xhci {
status = "okay";
};
&usb2phy0 {
status = "okay";
};
&usb2phy0_otg {
status = "okay";
};
&usb2phy0_host {
phy-supply = <&vcc5v0_host>;
status = "okay";
};
&vop {
assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>;
assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>;
status = "okay";
};
&vop_mmu {
status = "okay";
};
&vp0 {
vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 {
reg = <ROCKCHIP_VOP2_EP_HDMI0>;
remote-endpoint = <&hdmi_in_vp0>;
};
};
&vp1 {
vp1_out_dsi0: endpoint@ROCKCHIP_VOP2_EP_MIPI0 {
reg = <ROCKCHIP_VOP2_EP_MIPI0>;
remote-endpoint = <&dsi0_in_vp1>;
};
};
...@@ -31,8 +31,9 @@ gmac1_clkin: external-gmac1-clock { ...@@ -31,8 +31,9 @@ gmac1_clkin: external-gmac1-clock {
fan: gpio_fan { fan: gpio_fan {
compatible = "gpio-fan"; compatible = "gpio-fan";
gpios = <&gpio0 RK_PD5 GPIO_ACTIVE_HIGH>; gpios = <&gpio0 RK_PD5 GPIO_ACTIVE_HIGH>;
gpio-fan,speed-map = <0 0 gpio-fan,speed-map =
4500 1>; < 0 0>,
<4500 1>;
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&fan_en_h>; pinctrl-0 = <&fan_en_h>;
#cooling-cells = <2>; #cooling-cells = <2>;
......
...@@ -14,6 +14,7 @@ / { ...@@ -14,6 +14,7 @@ / {
compatible = "radxa,cm3-io", "radxa,cm3", "rockchip,rk3566"; compatible = "radxa,cm3-io", "radxa,cm3", "rockchip,rk3566";
aliases { aliases {
ethernet0 = &gmac1;
mmc1 = &sdmmc0; mmc1 = &sdmmc0;
}; };
......
...@@ -12,6 +12,7 @@ / { ...@@ -12,6 +12,7 @@ / {
compatible = "firefly,rk3566-roc-pc", "rockchip,rk3566"; compatible = "firefly,rk3566-roc-pc", "rockchip,rk3566";
aliases { aliases {
ethernet0 = &gmac1;
mmc0 = &sdmmc0; mmc0 = &sdmmc0;
mmc1 = &sdhci; mmc1 = &sdhci;
mmc2 = &sdmmc1; mmc2 = &sdmmc1;
......
...@@ -13,6 +13,10 @@ / { ...@@ -13,6 +13,10 @@ / {
model = "PINE64 RK3566 SOQuartz on Blade carrier board"; model = "PINE64 RK3566 SOQuartz on Blade carrier board";
compatible = "pine64,soquartz-blade", "pine64,soquartz", "rockchip,rk3566"; compatible = "pine64,soquartz-blade", "pine64,soquartz", "rockchip,rk3566";
aliases {
ethernet0 = &gmac1;
};
/* labeled VCC3V0_SD in schematic to not conflict with PMIC regulator */ /* labeled VCC3V0_SD in schematic to not conflict with PMIC regulator */
vcc3v0_sd: vcc3v0-sd-regulator { vcc3v0_sd: vcc3v0-sd-regulator {
compatible = "regulator-fixed"; compatible = "regulator-fixed";
......
...@@ -8,6 +8,10 @@ / { ...@@ -8,6 +8,10 @@ / {
model = "Pine64 RK3566 SoQuartz with CM4-IO Carrier Board"; model = "Pine64 RK3566 SoQuartz with CM4-IO Carrier Board";
compatible = "pine64,soquartz-cm4io", "pine64,soquartz", "rockchip,rk3566"; compatible = "pine64,soquartz-cm4io", "pine64,soquartz", "rockchip,rk3566";
aliases {
ethernet0 = &gmac1;
};
/* labeled +12v in schematic */ /* labeled +12v in schematic */
vcc12v_dcin: vcc12v-dcin-regulator { vcc12v_dcin: vcc12v-dcin-regulator {
compatible = "regulator-fixed"; compatible = "regulator-fixed";
......
...@@ -8,6 +8,10 @@ / { ...@@ -8,6 +8,10 @@ / {
model = "PINE64 RK3566 SOQuartz on Model A carrier board"; model = "PINE64 RK3566 SOQuartz on Model A carrier board";
compatible = "pine64,soquartz-model-a", "pine64,soquartz", "rockchip,rk3566"; compatible = "pine64,soquartz-model-a", "pine64,soquartz", "rockchip,rk3566";
aliases {
ethernet0 = &gmac1;
};
/* labeled DCIN_12V in schematic */ /* labeled DCIN_12V in schematic */
vcc12v_dcin: vcc12v-dcin-regulator { vcc12v_dcin: vcc12v-dcin-regulator {
compatible = "regulator-fixed"; compatible = "regulator-fixed";
......
...@@ -12,7 +12,6 @@ / { ...@@ -12,7 +12,6 @@ / {
compatible = "pine64,soquartz", "rockchip,rk3566"; compatible = "pine64,soquartz", "rockchip,rk3566";
aliases { aliases {
ethernet0 = &gmac1;
mmc0 = &sdmmc0; mmc0 = &sdmmc0;
mmc1 = &sdhci; mmc1 = &sdhci;
mmc2 = &sdmmc1; mmc2 = &sdmmc1;
......
...@@ -12,10 +12,6 @@ / { ...@@ -12,10 +12,6 @@ / {
compatible = "edgeble,neural-compute-module-6a-io", compatible = "edgeble,neural-compute-module-6a-io",
"edgeble,neural-compute-module-6a", "rockchip,rk3588"; "edgeble,neural-compute-module-6a", "rockchip,rk3588";
aliases {
serial2 = &uart2;
};
chosen { chosen {
stdout-path = "serial2:1500000n8"; stdout-path = "serial2:1500000n8";
}; };
......
...@@ -9,13 +9,9 @@ ...@@ -9,13 +9,9 @@
/ { / {
model = "Edgeble Neu6B IO Board"; model = "Edgeble Neu6B IO Board";
compatible = "edgeble,neural-compute-module-6b-io", compatible = "edgeble,neural-compute-module-6a-io",
"edgeble,neural-compute-module-6b", "rockchip,rk3588"; "edgeble,neural-compute-module-6b", "rockchip,rk3588";
aliases {
serial2 = &uart2;
};
chosen { chosen {
stdout-path = "serial2:1500000n8"; stdout-path = "serial2:1500000n8";
}; };
......
...@@ -16,8 +16,8 @@ / { ...@@ -16,8 +16,8 @@ / {
compatible = "rockchip,rk3588-evb1-v10", "rockchip,rk3588"; compatible = "rockchip,rk3588-evb1-v10", "rockchip,rk3588";
aliases { aliases {
ethernet0 = &gmac0;
mmc0 = &sdhci; mmc0 = &sdhci;
serial2 = &uart2;
}; };
chosen { chosen {
...@@ -56,6 +56,63 @@ button-escape { ...@@ -56,6 +56,63 @@ button-escape {
}; };
}; };
analog-sound {
compatible = "simple-audio-card";
pinctrl-names = "default";
pinctrl-0 = <&hp_detect>;
simple-audio-card,name = "RK3588 EVB1 Audio";
simple-audio-card,aux-devs = <&amp_headphone>, <&amp_speaker>;
simple-audio-card,bitclock-master = <&masterdai>;
simple-audio-card,format = "i2s";
simple-audio-card,frame-master = <&masterdai>;
simple-audio-card,hp-det-gpio = <&gpio1 RK_PD5 GPIO_ACTIVE_LOW>;
simple-audio-card,mclk-fs = <256>;
simple-audio-card,pin-switches = "Headphones", "Speaker";
simple-audio-card,routing =
"Speaker Amplifier INL", "LOUT2",
"Speaker Amplifier INR", "ROUT2",
"Speaker", "Speaker Amplifier OUTL",
"Speaker", "Speaker Amplifier OUTR",
"Headphones Amplifier INL", "LOUT1",
"Headphones Amplifier INR", "ROUT1",
"Headphones", "Headphones Amplifier OUTL",
"Headphones", "Headphones Amplifier OUTR",
"LINPUT1", "Onboard Microphone",
"RINPUT1", "Onboard Microphone",
"LINPUT2", "Microphone Jack",
"RINPUT2", "Microphone Jack";
simple-audio-card,widgets =
"Microphone", "Microphone Jack",
"Microphone", "Onboard Microphone",
"Headphone", "Headphones",
"Speaker", "Speaker";
simple-audio-card,cpu {
sound-dai = <&i2s0_8ch>;
};
masterdai: simple-audio-card,codec {
sound-dai = <&es8388>;
system-clock-frequency = <12288000>;
};
};
amp_headphone: headphone-amplifier {
compatible = "simple-audio-amplifier";
enable-gpios = <&gpio1 RK_PD2 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&headphone_amplifier_en>;
sound-name-prefix = "Headphones Amplifier";
};
amp_speaker: speaker-amplifier {
compatible = "simple-audio-amplifier";
enable-gpios = <&gpio1 RK_PD3 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&speaker_amplifier_en>;
sound-name-prefix = "Speaker Amplifier";
};
backlight: backlight { backlight: backlight {
compatible = "pwm-backlight"; compatible = "pwm-backlight";
power-supply = <&vcc12v_dcin>; power-supply = <&vcc12v_dcin>;
...@@ -240,6 +297,32 @@ hym8563: rtc@51 { ...@@ -240,6 +297,32 @@ hym8563: rtc@51 {
}; };
}; };
&i2c7 {
status = "okay";
es8388: audio-codec@11 {
compatible = "everest,es8388";
reg = <0x11>;
clocks = <&cru I2S0_8CH_MCLKOUT>;
assigned-clocks = <&cru I2S0_8CH_MCLKOUT>;
assigned-clock-rates = <12288000>;
AVDD-supply = <&avcc_1v8_codec_s0>;
DVDD-supply = <&avcc_1v8_codec_s0>;
HPVDD-supply = <&vcc_3v3_s0>;
PVDD-supply = <&vcc_3v3_s0>;
#sound-dai-cells = <0>;
};
};
&i2s0_8ch {
pinctrl-0 = <&i2s0_lrck
&i2s0_mclk
&i2s0_sclk
&i2s0_sdi0
&i2s0_sdo0>;
status = "okay";
};
&mdio0 { &mdio0 {
rgmii_phy: ethernet-phy@1 { rgmii_phy: ethernet-phy@1 {
/* RTL8211F */ /* RTL8211F */
...@@ -273,6 +356,20 @@ &pcie3x4 { ...@@ -273,6 +356,20 @@ &pcie3x4 {
}; };
&pinctrl { &pinctrl {
audio {
hp_detect: headphone-detect {
rockchip,pins = <1 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>;
};
headphone_amplifier_en: headphone-amplifier-en {
rockchip,pins = <1 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
};
speaker_amplifier_en: speaker-amplifier-en {
rockchip,pins = <1 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
rtl8111 { rtl8111 {
rtl8111_isolate: rtl8111-isolate { rtl8111_isolate: rtl8111-isolate {
rockchip,pins = <1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>; rockchip,pins = <1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>;
......
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (c) 2023 Theobroma Systems Design und Consulting GmbH
*/
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/pinctrl/rockchip.h>
#include <dt-bindings/usb/pd.h>
#include "rk3588.dtsi"
/ {
model = "Theobroma Systems RK3588-SBC Jaguar";
compatible = "tsd,rk3588-jaguar", "rockchip,rk3588";
adc-keys {
compatible = "adc-keys";
io-channels = <&saradc 0>;
io-channel-names = "buttons";
keyup-threshold-microvolt = <1800000>;
poll-interval = <100>;
/* Can be controlled through SW2 but also GPIO1 on CP2102 on P20 */
button-bios-disable {
label = "BIOS_DISABLE";
linux,code = <KEY_VENDOR>;
press-threshold-microvolt = <0>;
};
};
aliases {
ethernet0 = &gmac0;
mmc0 = &sdhci;
mmc1 = &sdmmc;
rtc0 = &rtc_twi;
};
chosen {
stdout-path = "serial2:115200n8";
};
/* DCIN is 12-24V but standard is 12V */
dc_12v: dc-12v-regulator {
compatible = "regulator-fixed";
regulator-name = "dc_12v";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <12000000>;
regulator-max-microvolt = <12000000>;
};
emmc_pwrseq: emmc-pwrseq {
compatible = "mmc-pwrseq-emmc";
pinctrl-0 = <&emmc_reset>;
pinctrl-names = "default";
reset-gpios = <&gpio2 RK_PA3 GPIO_ACTIVE_HIGH>;
};
leds {
compatible = "gpio-leds";
pinctrl-names = "default";
pinctrl-0 = <&led1_pin>;
status = "okay";
/* LED1 on PCB */
led-1 {
gpios = <&gpio1 RK_PD4 GPIO_ACTIVE_HIGH>;
function = LED_FUNCTION_HEARTBEAT;
linux,default-trigger = "heartbeat";
color = <LED_COLOR_ID_AMBER>;
};
};
pps {
compatible = "pps-gpio";
gpios = <&gpio0 RK_PD5 GPIO_ACTIVE_HIGH>;
};
vcc_1v1_nldo_s3: vcc-1v1-nldo-s3-regulator {
compatible = "regulator-fixed";
regulator-name = "vcc_1v1_nldo_s3";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <1100000>;
regulator-max-microvolt = <1100000>;
vin-supply = <&vcc5v0_sys>;
};
vcc_1v2_s3: vcc-1v2-s3-regulator {
compatible = "regulator-fixed";
regulator-name = "vcc_1v2_s3";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
vin-supply = <&vcc5v0_sys>;
};
/* Exposed on P14 and P15 */
vcc_2v8_s3: vcc-2v8-s3-regulator {
compatible = "regulator-fixed";
regulator-name = "vcc_2v8_s3";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
vin-supply = <&vcc_3v3_s3>;
};
vcc_5v0_usb_a: vcc-5v0-usb-a-regulator {
compatible = "regulator-fixed";
regulator-name = "usb_a_vcc";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
vin-supply = <&vcc5v0_sys>;
gpio = <&gpio1 RK_PB4 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
vcc_5v0_usb_c1: vcc-5v0-usb-c1-regulator {
compatible = "regulator-fixed";
regulator-name = "5v_usbc1";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
vin-supply = <&vcc5v0_usb>;
gpio = <&gpio4 RK_PB5 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
vcc_5v0_usb_c2: vcc-5v0-usb-c2-regulator {
compatible = "regulator-fixed";
regulator-name = "5v_usbc2";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
vin-supply = <&vcc5v0_usb>;
gpio = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
vcc3v3_mdot2: vcc3v3-mdot2-regulator {
compatible = "regulator-fixed";
regulator-name = "vcc3v3_mdot2";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
vin-supply = <&dc_12v>;
};
vcc5v0_sys: vcc5v0-sys-regulator {
compatible = "regulator-fixed";
regulator-name = "vcc5v0_sys";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
vin-supply = <&dc_12v>;
};
vcc5v0_usb: vcc5v0-usb-regulator {
compatible = "regulator-fixed";
regulator-name = "vcc5v0_usb";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
vin-supply = <&vcc5v0_sys>;
};
};
&combphy1_ps {
status = "okay";
};
&cpu_b0 {
cpu-supply = <&vdd_cpu_big0_s0>;
};
&cpu_b1 {
cpu-supply = <&vdd_cpu_big0_s0>;
};
&cpu_b2 {
cpu-supply = <&vdd_cpu_big1_s0>;
};
&cpu_b3 {
cpu-supply = <&vdd_cpu_big1_s0>;
};
&cpu_l0 {
cpu-supply = <&vdd_cpu_lit_s0>;
};
&cpu_l1 {
cpu-supply = <&vdd_cpu_lit_s0>;
};
&cpu_l2 {
cpu-supply = <&vdd_cpu_lit_s0>;
};
&cpu_l3 {
cpu-supply = <&vdd_cpu_lit_s0>;
};
&gmac0 {
clock_in_out = "output";
phy-handle = <&rgmii_phy>;
phy-mode = "rgmii";
phy-supply = <&vcc_1v2_s3>;
pinctrl-names = "default";
pinctrl-0 = <&gmac0_miim
&gmac0_rx_bus2
&gmac0_tx_bus2
&gmac0_rgmii_clk
&gmac0_rgmii_bus
&eth0_pins
&eth_reset>;
tx_delay = <0x10>;
rx_delay = <0x10>;
snps,reset-gpio = <&gpio4 RK_PC3 GPIO_ACTIVE_LOW>;
snps,reset-active-low;
snps,reset-delays-us = <0 10000 100000>;
status = "okay";
};
&gpio1 {
mdot2e-w-disable1-n-hog {
gpios = <RK_PB1 GPIO_ACTIVE_LOW>;
output-low;
line-name = "m.2 E-key W_DISABLE1#";
gpio-hog;
};
};
&gpio4 {
mdot2e-w-disable2-n-hog {
gpios = <RK_PC1 GPIO_ACTIVE_LOW>;
output-low;
line-name = "m.2 E-key W_DISABLE2#";
gpio-hog;
};
};
&i2c0 {
pinctrl-0 = <&i2c0m2_xfer>;
status = "okay";
fan@18 {
compatible = "ti,amc6821";
reg = <0x18>;
};
vdd_npu_s0: regulator@42 {
compatible = "rockchip,rk8602";
reg = <0x42>;
fcs,suspend-voltage-selector = <1>;
regulator-name = "vdd_npu_s0";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <550000>;
regulator-max-microvolt = <950000>;
regulator-ramp-delay = <2300>;
vin-supply = <&vcc5v0_sys>;
regulator-state-mem {
regulator-off-in-suspend;
};
};
vdd_cpu_big1_s0: regulator@43 {
compatible = "rockchip,rk8603", "rockchip,rk8602";
reg = <0x43>;
fcs,suspend-voltage-selector = <1>;
regulator-name = "vdd_cpu_big1_s0";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <550000>;
regulator-max-microvolt = <1050000>;
regulator-ramp-delay = <2300>;
vin-supply = <&vcc5v0_sys>;
regulator-state-mem {
regulator-off-in-suspend;
};
};
rtc_twi: rtc@6f {
compatible = "isil,isl1208";
reg = <0x6f>;
};
};
&i2c1 {
pinctrl-0 = <&i2c1m4_xfer>;
};
&i2c6 {
pinctrl-0 = <&i2c6m4_xfer>;
};
&i2c7 {
status = "okay";
/* SE050 Secure Element at 0x48; GPIO1_A4 for enable pin */
/* Also on 0x55 */
eeprom@54 {
compatible = "st,24c04", "atmel,24c04";
reg = <0x54>;
pagesize = <16>;
vcc-supply = <&vcc_3v3_s3>;
};
};
&i2c8 {
pinctrl-0 = <&i2c8m2_xfer>;
status = "okay";
vdd_cpu_big0_s0: regulator@42 {
compatible = "rockchip,rk8602";
reg = <0x42>;
fcs,suspend-voltage-selector = <1>;
regulator-name = "vdd_cpu_big0_s0";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <550000>;
regulator-max-microvolt = <1050000>;
regulator-ramp-delay = <2300>;
vin-supply = <&vcc5v0_sys>;
regulator-state-mem {
regulator-off-in-suspend;
};
};
};
&mdio0 {
rgmii_phy: ethernet-phy@6 {
/* KSZ9031 or KSZ9131 */
compatible = "ethernet-phy-ieee802.3-c22";
reg = <0x6>;
clocks = <&cru REFCLKO25M_ETH0_OUT>;
};
};
&pcie2x1l0 {
reset-gpios = <&gpio4 RK_PB3 GPIO_ACTIVE_HIGH>; /* WIFI_PERST0# */
vpcie3v3-supply = <&vcc3v3_mdot2>;
status = "okay";
};
&pinctrl {
emmc {
emmc_reset: emmc-reset {
rockchip,pins = <2 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
ethernet {
eth_reset: eth-reset {
rockchip,pins = <4 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
leds {
led1_pin: led1-pin {
rockchip,pins = <1 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
};
&saradc {
vref-supply = <&vcc_1v8_s0>;
status = "okay";
};
&sdhci {
bus-width = <8>;
cap-mmc-highspeed;
mmc-ddr-1_8v;
mmc-hs200-1_8v;
mmc-hs400-1_8v;
mmc-hs400-enhanced-strobe;
mmc-pwrseq = <&emmc_pwrseq>;
no-sdio;
no-sd;
non-removable;
pinctrl-names = "default";
pinctrl-0 = <&emmc_bus8 &emmc_cmd &emmc_clk &emmc_data_strobe>;
supports-cqe;
vmmc-supply = <&vcc_3v3_s3>;
vqmmc-supply = <&vcc_1v8_s3>;
status = "okay";
};
&sdmmc {
broken-cd;
bus-width = <4>;
cap-sd-highspeed;
disable-wp;
max-frequency = <150000000>;
pinctrl-names = "default";
pinctrl-0 = <&sdmmc_bus4 &sdmmc_cmd &sdmmc_clk>;
sd-uhs-sdr12;
sd-uhs-sdr25;
sd-uhs-sdr50;
sd-uhs-ddr50;
sd-uhs-sdr104;
vmmc-supply = <&vcc_3v3_s3>;
vqmmc-supply = <&vccio_sd_s0>;
status = "okay";
};
&spi2 {
assigned-clocks = <&cru CLK_SPI2>;
assigned-clock-rates = <200000000>;
num-cs = <1>;
pinctrl-names = "default";
pinctrl-0 = <&spi2m2_cs0 &spi2m2_pins>;
status = "okay";
pmic@0 {
compatible = "rockchip,rk806";
reg = <0x0>;
interrupt-parent = <&gpio0>;
interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
gpio-controller;
#gpio-cells = <2>;
pinctrl-names = "default";
pinctrl-0 = <&pmic_pins>, <&rk806_dvs1_null>,
<&rk806_dvs2_null>, <&rk806_dvs3_null>;
spi-max-frequency = <1000000>;
system-power-controller;
vcc1-supply = <&vcc5v0_sys>;
vcc2-supply = <&vcc5v0_sys>;
vcc3-supply = <&vcc5v0_sys>;
vcc4-supply = <&vcc5v0_sys>;
vcc5-supply = <&vcc5v0_sys>;
vcc6-supply = <&vcc5v0_sys>;
vcc7-supply = <&vcc5v0_sys>;
vcc8-supply = <&vcc5v0_sys>;
vcc9-supply = <&vcc5v0_sys>;
vcc10-supply = <&vcc5v0_sys>;
vcc11-supply = <&vcc_2v0_pldo_s3>;
vcc12-supply = <&vcc5v0_sys>;
vcc13-supply = <&vcc_1v1_nldo_s3>;
vcc14-supply = <&vcc_1v1_nldo_s3>;
vcca-supply = <&vcc5v0_sys>;
rk806_dvs1_null: dvs1-null-pins {
pins = "gpio_pwrctrl2";
function = "pin_fun0";
};
rk806_dvs2_null: dvs2-null-pins {
pins = "gpio_pwrctrl2";
function = "pin_fun0";
};
rk806_dvs3_null: dvs3-null-pins {
pins = "gpio_pwrctrl3";
function = "pin_fun0";
};
regulators {
vdd_gpu_s0: dcdc-reg1 {
regulator-boot-on;
regulator-min-microvolt = <550000>;
regulator-max-microvolt = <950000>;
regulator-ramp-delay = <12500>;
regulator-name = "vdd_gpu_s0";
regulator-enable-ramp-delay = <400>;
regulator-state-mem {
regulator-off-in-suspend;
};
};
vdd_cpu_lit_s0: dcdc-reg2 {
regulator-name = "vdd_cpu_lit_s0";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <550000>;
regulator-max-microvolt = <950000>;
regulator-ramp-delay = <12500>;
regulator-state-mem {
regulator-off-in-suspend;
};
};
vdd_log_s0: dcdc-reg3 {
regulator-name = "vdd_log_s0";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <675000>;
regulator-max-microvolt = <750000>;
regulator-ramp-delay = <12500>;
regulator-state-mem {
regulator-off-in-suspend;
regulator-suspend-microvolt = <750000>;
};
};
vdd_vdenc_s0: dcdc-reg4 {
regulator-name = "vdd_vdenc_s0";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <550000>;
regulator-max-microvolt = <950000>;
regulator-ramp-delay = <12500>;
regulator-state-mem {
regulator-off-in-suspend;
};
};
vdd_ddr_s0: dcdc-reg5 {
regulator-name = "vdd_ddr_s0";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <675000>;
regulator-max-microvolt = <900000>;
regulator-ramp-delay = <12500>;
regulator-state-mem {
regulator-off-in-suspend;
regulator-suspend-microvolt = <850000>;
};
};
vdd2_ddr_s3: dcdc-reg6 {
regulator-name = "vdd2_ddr_s3";
regulator-always-on;
regulator-boot-on;
regulator-state-mem {
regulator-on-in-suspend;
};
};
vcc_2v0_pldo_s3: dcdc-reg7 {
regulator-name = "vdd_2v0_pldo_s3";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <2000000>;
regulator-max-microvolt = <2000000>;
regulator-ramp-delay = <12500>;
regulator-state-mem {
regulator-on-in-suspend;
regulator-suspend-microvolt = <2000000>;
};
};
vcc_3v3_s3: dcdc-reg8 {
regulator-name = "vcc_3v3_s3";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-state-mem {
regulator-on-in-suspend;
regulator-suspend-microvolt = <3300000>;
};
};
vddq_ddr_s0: dcdc-reg9 {
regulator-name = "vddq_ddr_s0";
regulator-always-on;
regulator-boot-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
vcc_1v8_s3: dcdc-reg10 {
regulator-name = "vcc_1v8_s3";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-state-mem {
regulator-on-in-suspend;
regulator-suspend-microvolt = <1800000>;
};
};
vcca_1v8_s0: pldo-reg1 {
regulator-name = "vcca_1v8_s0";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-state-mem {
regulator-off-in-suspend;
};
};
vcc_1v8_s0: pldo-reg2 {
regulator-name = "vcc_1v8_s0";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-state-mem {
regulator-off-in-suspend;
regulator-suspend-microvolt = <1800000>;
};
};
vdda_1v2_s0: pldo-reg3 {
regulator-name = "vdda_1v2_s0";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-state-mem {
regulator-off-in-suspend;
};
};
vcca_3v3_s0: pldo-reg4 {
regulator-name = "vcca_3v3_s0";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-ramp-delay = <12500>;
regulator-state-mem {
regulator-off-in-suspend;
};
};
vccio_sd_s0: pldo-reg5 {
regulator-name = "vccio_sd_s0";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
regulator-ramp-delay = <12500>;
regulator-state-mem {
regulator-off-in-suspend;
};
};
pldo6_s3: pldo-reg6 {
regulator-name = "pldo6_s3";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-state-mem {
regulator-on-in-suspend;
regulator-suspend-microvolt = <1800000>;
};
};
vdd_0v75_s3: nldo-reg1 {
regulator-name = "vdd_0v75_s3";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <750000>;
regulator-max-microvolt = <750000>;
regulator-state-mem {
regulator-on-in-suspend;
regulator-suspend-microvolt = <750000>;
};
};
vdda_ddr_pll_s0: nldo-reg2 {
regulator-name = "vdda_ddr_pll_s0";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <850000>;
regulator-max-microvolt = <850000>;
regulator-state-mem {
regulator-off-in-suspend;
regulator-suspend-microvolt = <850000>;
};
};
vdda_0v75_s0: nldo-reg3 {
regulator-name = "vdda_0v75_s0";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <750000>;
regulator-max-microvolt = <750000>;
regulator-state-mem {
regulator-off-in-suspend;
};
};
vdda_0v85_s0: nldo-reg4 {
regulator-name = "vdda_0v85_s0";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <850000>;
regulator-max-microvolt = <850000>;
regulator-state-mem {
regulator-off-in-suspend;
};
};
vdd_0v75_s0: nldo-reg5 {
regulator-name = "vdd_0v75_s0";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <750000>;
regulator-max-microvolt = <750000>;
regulator-state-mem {
regulator-off-in-suspend;
};
};
};
};
};
&tsadc {
status = "okay";
};
&u2phy2 {
status = "okay";
};
&u2phy2_host {
phy-supply = <&vcc_5v0_usb_a>;
status = "okay";
};
&u2phy3 {
status = "okay";
};
&u2phy3_host {
status = "okay";
};
/* Mule-ATtiny debug UART; typically baudrate 9600 */
&uart0 {
pinctrl-0 = <&uart0m0_xfer>;
status = "okay";
};
/* Main debug interface on P20 micro-USB B port and P21 header */
&uart2 {
pinctrl-0 = <&uart2m0_xfer>;
status = "okay";
};
/* RS485 on P19 */
&uart3 {
pinctrl-0 = <&uart3m2_xfer &uart3_rtsn>;
linux,rs485-enabled-at-boot-time;
status = "okay";
};
/* Mule-ATtiny UPDI flashing UART */
&uart7 {
pinctrl-0 = <&uart7m0_xfer>;
status = "okay";
};
/* host0 on P10 USB-A */
&usb_host0_ehci {
status = "okay";
};
/* host0 on P10 USB-A */
&usb_host0_ohci {
status = "okay";
};
/* host1 on M.2 E-key */
&usb_host1_ehci {
status = "okay";
};
/* host1 on M.2 E-key */
&usb_host1_ohci {
status = "okay";
};
...@@ -19,7 +19,6 @@ / { ...@@ -19,7 +19,6 @@ / {
aliases { aliases {
mmc0 = &sdhci; mmc0 = &sdhci;
mmc1 = &sdmmc; mmc1 = &sdmmc;
serial2 = &uart2;
}; };
chosen { chosen {
......
...@@ -19,7 +19,6 @@ / { ...@@ -19,7 +19,6 @@ / {
aliases { aliases {
mmc0 = &sdhci; mmc0 = &sdhci;
mmc1 = &sdmmc; mmc1 = &sdmmc;
serial2 = &uart2;
}; };
chosen { chosen {
......
...@@ -17,9 +17,9 @@ / { ...@@ -17,9 +17,9 @@ / {
compatible = "pine64,quartzpro64", "rockchip,rk3588"; compatible = "pine64,quartzpro64", "rockchip,rk3588";
aliases { aliases {
ethernet0 = &gmac0;
mmc0 = &sdhci; mmc0 = &sdhci;
mmc1 = &sdmmc; mmc1 = &sdmmc;
serial2 = &uart2;
}; };
chosen { chosen {
......
...@@ -14,7 +14,6 @@ aliases { ...@@ -14,7 +14,6 @@ aliases {
mmc0 = &sdhci; mmc0 = &sdhci;
mmc1 = &sdmmc; mmc1 = &sdmmc;
mmc2 = &sdio; mmc2 = &sdio;
serial2 = &uart2;
}; };
chosen { chosen {
...@@ -138,6 +137,10 @@ &combphy1_ps { ...@@ -138,6 +137,10 @@ &combphy1_ps {
status = "okay"; status = "okay";
}; };
&combphy2_psu {
status = "okay";
};
&cpu_b0 { &cpu_b0 {
cpu-supply = <&vdd_cpu_big0_s0>; cpu-supply = <&vdd_cpu_big0_s0>;
}; };
...@@ -765,3 +768,7 @@ &usb_host1_ehci { ...@@ -765,3 +768,7 @@ &usb_host1_ehci {
&usb_host1_ohci { &usb_host1_ohci {
status = "okay"; status = "okay";
}; };
&usb_host2_xhci {
status = "okay";
};
...@@ -19,8 +19,6 @@ / { ...@@ -19,8 +19,6 @@ / {
aliases { aliases {
ethernet0 = &gmac1; ethernet0 = &gmac1;
mmc0 = &sdhci; mmc0 = &sdhci;
serial2 = &uart2;
serial9 = &uart9;
}; };
fan: pwm-fan { fan: pwm-fan {
......
...@@ -44,7 +44,6 @@ aliases { ...@@ -44,7 +44,6 @@ aliases {
mmc0 = &sdhci; mmc0 = &sdhci;
mmc1 = &sdmmc; mmc1 = &sdmmc;
mmc2 = &sdio; mmc2 = &sdio;
serial2 = &uart2;
}; };
chosen { chosen {
......
...@@ -12,7 +12,6 @@ / { ...@@ -12,7 +12,6 @@ / {
aliases { aliases {
mmc0 = &sdhci; mmc0 = &sdhci;
serial2 = &uart2;
}; };
chosen { chosen {
......
...@@ -13,8 +13,8 @@ / { ...@@ -13,8 +13,8 @@ / {
compatible = "xunlong,orangepi-5", "rockchip,rk3588s"; compatible = "xunlong,orangepi-5", "rockchip,rk3588s";
aliases { aliases {
ethernet0 = &gmac1;
mmc0 = &sdmmc; mmc0 = &sdmmc;
serial2 = &uart2;
}; };
chosen { chosen {
...@@ -660,3 +660,7 @@ &usb_host1_ehci { ...@@ -660,3 +660,7 @@ &usb_host1_ehci {
&usb_host1_ohci { &usb_host1_ohci {
status = "okay"; status = "okay";
}; };
&usb_host2_xhci {
status = "okay";
};
...@@ -12,9 +12,9 @@ / { ...@@ -12,9 +12,9 @@ / {
compatible = "radxa,rock-5a", "rockchip,rk3588s"; compatible = "radxa,rock-5a", "rockchip,rk3588s";
aliases { aliases {
ethernet0 = &gmac1;
mmc0 = &sdhci; mmc0 = &sdhci;
mmc1 = &sdmmc; mmc1 = &sdmmc;
serial2 = &uart2;
}; };
analog-sound { analog-sound {
...@@ -114,6 +114,10 @@ vcc_1v1_nldo_s3: vcc-1v1-nldo-s3-regulator { ...@@ -114,6 +114,10 @@ vcc_1v1_nldo_s3: vcc-1v1-nldo-s3-regulator {
}; };
}; };
&combphy2_psu {
status = "okay";
};
&cpu_b0 { &cpu_b0 {
cpu-supply = <&vdd_cpu_big0_s0>; cpu-supply = <&vdd_cpu_big0_s0>;
}; };
...@@ -734,3 +738,7 @@ &usb_host1_ehci { ...@@ -734,3 +738,7 @@ &usb_host1_ehci {
&usb_host1_ohci { &usb_host1_ohci {
status = "okay"; status = "okay";
}; };
&usb_host2_xhci {
status = "okay";
};
...@@ -18,6 +18,38 @@ / { ...@@ -18,6 +18,38 @@ / {
#address-cells = <2>; #address-cells = <2>;
#size-cells = <2>; #size-cells = <2>;
aliases {
gpio0 = &gpio0;
gpio1 = &gpio1;
gpio2 = &gpio2;
gpio3 = &gpio3;
gpio4 = &gpio4;
i2c0 = &i2c0;
i2c1 = &i2c1;
i2c2 = &i2c2;
i2c3 = &i2c3;
i2c4 = &i2c4;
i2c5 = &i2c5;
i2c6 = &i2c6;
i2c7 = &i2c7;
i2c8 = &i2c8;
serial0 = &uart0;
serial1 = &uart1;
serial2 = &uart2;
serial3 = &uart3;
serial4 = &uart4;
serial5 = &uart5;
serial6 = &uart6;
serial7 = &uart7;
serial8 = &uart8;
serial9 = &uart9;
spi0 = &spi0;
spi1 = &spi1;
spi2 = &spi2;
spi3 = &spi3;
spi4 = &spi4;
};
cpus { cpus {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment