Commit b5a88262 authored by Arnd Bergmann's avatar Arnd Bergmann

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

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

New boards the Anberic RG353P and RG503, Radxa Rock4c+ (variant with
different display outputs), Pine64 Pinephone Pro, Open AI Lab EAIDK-610.

New components of the rk356x (Video encoder/decoder, pcie, CSI dphy).

New board-peripherals for rock3a (pcie, i2c, regulators, rtc), quartz64-b
(pcie, analog audio) and BPI-R2-Pro (pcie), ROCK Pi (leds), Odroid Go (charger)

Usage of the new-ish bclk special handling for audio on rk3399.

* tag 'v6.1-rockchip-dts64-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip: (29 commits)
  arm64: dts: rockchip: use BCLK to GPIO switch on rk3399
  arm64: dts: rockchip: Add Hantro encoder node to rk356x
  arm64: dts: rockchip: Add VPU support for RK3568/RK3566
  arm64: dts: rockchip: Enable PCIe controller on rock3a
  arm64: dts: rockchip: add rtc to rock3a
  arm64: dts: rockchip: Add PCIe 2 nodes to quartz64-b
  arm64: dts: rockchip: add Anbernic RG353P and RG503
  dt-bindings: arm: rockchip: Add Anbernic RG353P and RG503
  dt-bindings: vendor-prefixes: add Anbernic
  arm64: dts: rockchip: Add regulator suffix to BPI-R2-Pro
  arm64: dts: rockchip: add LEDs for ROCK 4C+
  arm64: dts: rockchip: add LED for ROCK Pi 4A/B/C/A+/B+
  arm64: dts: rockchip: add rk817 chg to Odroid Go Advance
  arm64: dts: rockchip: Fix SD card controller probe on Pinephone Pro
  arm64: dts: rockchip: rk3399: Radxa ROCK 4C+
  arm64: dts: rockchip: Add RK3399-T OPP table
  dt-bindings: arm: rockchip: Document Radxa ROCK 4C+
  arm64: dts: rockchip: Add initial support for Pine64 PinePhone Pro
  dt-bindings: arm: rockchip: Add PinePhone Pro bindings
  arm64: dts: rockchip: Add dts for a rk3399 based board EAIDK-610
  ...

Link: https://lore.kernel.org/r/5600929.DvuYhMxLoT@philSigned-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parents 0cb66809 91419ae0
...@@ -30,6 +30,16 @@ properties: ...@@ -30,6 +30,16 @@ properties:
- const: amarula,vyasa-rk3288 - const: amarula,vyasa-rk3288
- const: rockchip,rk3288 - const: rockchip,rk3288
- description: Anbernic RG353P
items:
- const: anbernic,rg353p
- const: rockchip,rk3566
- description: Anbernic RG503
items:
- const: anbernic,rg503
- const: rockchip,rk3566
- description: Asus Tinker board - description: Asus Tinker board
items: items:
- const: asus,rk3288-tinker - const: asus,rk3288-tinker
...@@ -470,6 +480,11 @@ properties: ...@@ -470,6 +480,11 @@ properties:
- const: netxeon,r89 - const: netxeon,r89
- const: rockchip,rk3288 - const: rockchip,rk3288
- description: OPEN AI LAB EAIDK-610
items:
- const: openailab,eaidk-610
- const: rockchip,rk3399
- description: Orange Pi RK3399 board - description: Orange Pi RK3399 board
items: items:
- const: rockchip,rk3399-orangepi - const: rockchip,rk3399-orangepi
...@@ -494,6 +509,11 @@ properties: ...@@ -494,6 +509,11 @@ properties:
- const: pine64,pinenote - const: pine64,pinenote
- const: rockchip,rk3566 - const: rockchip,rk3566
- description: Pine64 PinePhonePro
items:
- const: pine64,pinephone-pro
- const: rockchip,rk3399
- description: Pine64 Rock64 - description: Pine64 Rock64
items: items:
- const: pine64,rock64 - const: pine64,rock64
...@@ -537,6 +557,11 @@ properties: ...@@ -537,6 +557,11 @@ properties:
- const: radxa,rockpi4 - const: radxa,rockpi4
- const: rockchip,rk3399 - const: rockchip,rk3399
- description: Radxa ROCK 4C+
items:
- const: radxa,rock-4c-plus
- const: rockchip,rk3399
- description: Radxa ROCK Pi E - description: Radxa ROCK Pi E
items: items:
- const: radxa,rockpi-e - const: radxa,rockpi-e
......
...@@ -105,6 +105,8 @@ patternProperties: ...@@ -105,6 +105,8 @@ patternProperties:
description: AMS-Taos Inc. description: AMS-Taos Inc.
"^analogix,.*": "^analogix,.*":
description: Analogix Semiconductor, Inc. description: Analogix Semiconductor, Inc.
"^anbernic,.*":
description: Anbernic
"^andestech,.*": "^andestech,.*":
description: Andes Technology Corporation description: Andes Technology Corporation
"^anvo,.*": "^anvo,.*":
...@@ -925,6 +927,8 @@ patternProperties: ...@@ -925,6 +927,8 @@ patternProperties:
description: On Tat Industrial Company description: On Tat Industrial Company
"^opalkelly,.*": "^opalkelly,.*":
description: Opal Kelly Incorporated description: Opal Kelly Incorporated
"^openailab,.*":
description: openailab.com
"^opencores,.*": "^opencores,.*":
description: OpenCores.org description: OpenCores.org
"^openembed,.*": "^openembed,.*":
......
...@@ -21,6 +21,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-lion-haikou.dtb ...@@ -21,6 +21,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-lion-haikou.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-orion-r68-meta.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-orion-r68-meta.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-px5-evb.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-px5-evb.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-r88.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-r88.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-eaidk-610.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-evb.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-evb.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-ficus.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-ficus.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-firefly.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-firefly.dtb
...@@ -42,10 +43,12 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-nanopi-neo4.dtb ...@@ -42,10 +43,12 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-nanopi-neo4.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-nanopi-r4s.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-nanopi-r4s.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-orangepi.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-orangepi.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-pinebook-pro.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-pinebook-pro.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-pinephone-pro.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-puma-haikou.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-puma-haikou.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-roc-pc.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-roc-pc.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-roc-pc-mezzanine.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-roc-pc-mezzanine.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-roc-pc-plus.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-roc-pc-plus.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-rock-4c-plus.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-rock-pi-4a.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-rock-pi-4a.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-rock-pi-4a-plus.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-rock-pi-4a-plus.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-rock-pi-4b.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-rock-pi-4b.dtb
...@@ -57,6 +60,8 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-rockpro64.dtb ...@@ -57,6 +60,8 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-rockpro64.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-sapphire.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-sapphire.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-sapphire-excavator.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-sapphire-excavator.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399pro-rock-pi-n10.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399pro-rock-pi-n10.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-anbernic-rg353p.dtb
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-quartz64-a.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-quartz64-a.dtb
......
...@@ -52,6 +52,25 @@ backlight: backlight { ...@@ -52,6 +52,25 @@ backlight: backlight {
pwms = <&pwm1 0 25000 0>; pwms = <&pwm1 0 25000 0>;
}; };
battery: battery {
compatible = "simple-battery";
charge-full-design-microamp-hours = <3000000>;
charge-term-current-microamp = <300000>;
constant-charge-current-max-microamp = <2000000>;
constant-charge-voltage-max-microvolt = <4200000>;
factory-internal-resistance-micro-ohms = <180000>;
voltage-max-design-microvolt = <4100000>;
voltage-min-design-microvolt = <3500000>;
ocv-capacity-celsius = <20>;
ocv-capacity-table-0 = <4046950 100>, <4001920 95>, <3967900 90>, <3919950 85>,
<3888450 80>, <3861850 75>, <3831540 70>, <3799130 65>,
<3768190 60>, <3745650 55>, <3726610 50>, <3711630 45>,
<3696720 40>, <3685660 35>, <3674950 30>, <3663050 25>,
<3649470 20>, <3635260 15>, <3616920 10>, <3592440 5>,
<3574170 0>;
};
gpio-keys { gpio-keys {
compatible = "gpio-keys"; compatible = "gpio-keys";
pinctrl-names = "default"; pinctrl-names = "default";
...@@ -472,6 +491,13 @@ usb_midu: BOOST { ...@@ -472,6 +491,13 @@ usb_midu: BOOST {
}; };
}; };
rk817_charger: charger {
monitored-battery = <&battery>;
rockchip,resistor-sense-micro-ohms = <10000>;
rockchip,sleep-enter-current-microamp = <300000>;
rockchip,sleep-filter-current-microamp = <100000>;
};
rk817_codec: codec { rk817_codec: codec {
rockchip,mic-in-differential; rockchip,mic-in-differential;
}; };
......
This diff is collapsed.
...@@ -768,6 +768,16 @@ &i2s0_8ch_bus { ...@@ -768,6 +768,16 @@ &i2s0_8ch_bus {
<4 RK_PA0 1 &pcfg_pull_none_6ma>; <4 RK_PA0 1 &pcfg_pull_none_6ma>;
}; };
&i2s0_8ch_bus_bclk_off {
rockchip,pins =
<3 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none_6ma>,
<3 RK_PD1 1 &pcfg_pull_none_6ma>,
<3 RK_PD2 1 &pcfg_pull_none_6ma>,
<3 RK_PD3 1 &pcfg_pull_none_6ma>,
<3 RK_PD7 1 &pcfg_pull_none_6ma>,
<4 RK_PA0 1 &pcfg_pull_none_6ma>;
};
/* there is no external pull up, so need to set this pin pull up */ /* there is no external pull up, so need to set this pin pull up */
&sdmmc_cd_pin { &sdmmc_cd_pin {
rockchip,pins = <1 RK_PB3 RK_FUNC_GPIO &pcfg_pull_up>; rockchip,pins = <1 RK_PB3 RK_FUNC_GPIO &pcfg_pull_up>;
......
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (c) 2020 Martijn Braam <martijn@brixit.nl>
* Copyright (c) 2021 Kamil Trzciński <ayufan@ayufan.eu>
*/
/*
* PinePhone Pro datasheet:
* https://files.pine64.org/doc/PinePhonePro/PinephonePro-Schematic-V1.0-20211127.pdf
*/
/dts-v1/;
#include <dt-bindings/input/linux-event-codes.h>
#include "rk3399.dtsi"
#include "rk3399-opp.dtsi"
/ {
model = "Pine64 PinePhonePro";
compatible = "pine64,pinephone-pro", "rockchip,rk3399";
chassis-type = "handset";
aliases {
mmc0 = &sdio0;
mmc1 = &sdmmc;
mmc2 = &sdhci;
};
chosen {
stdout-path = "serial2:115200n8";
};
gpio-keys {
compatible = "gpio-keys";
pinctrl-names = "default";
pinctrl-0 = <&pwrbtn_pin>;
key-power {
debounce-interval = <20>;
gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
label = "Power";
linux,code = <KEY_POWER>;
wakeup-source;
};
};
vcc_sys: vcc-sys-regulator {
compatible = "regulator-fixed";
regulator-name = "vcc_sys";
regulator-always-on;
regulator-boot-on;
};
vcc3v3_sys: vcc3v3-sys-regulator {
compatible = "regulator-fixed";
regulator-name = "vcc3v3_sys";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
vin-supply = <&vcc_sys>;
};
vcca1v8_s3: vcc1v8-s3-regulator {
compatible = "regulator-fixed";
regulator-name = "vcca1v8_s3";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
vin-supply = <&vcc3v3_sys>;
regulator-always-on;
regulator-boot-on;
};
vcc1v8_codec: vcc1v8-codec-regulator {
compatible = "regulator-fixed";
enable-active-high;
gpio = <&gpio3 RK_PA4 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&vcc1v8_codec_en>;
regulator-name = "vcc1v8_codec";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
vin-supply = <&vcc3v3_sys>;
};
};
&cpu_l0 {
cpu-supply = <&vdd_cpu_l>;
};
&cpu_l1 {
cpu-supply = <&vdd_cpu_l>;
};
&cpu_l2 {
cpu-supply = <&vdd_cpu_l>;
};
&cpu_l3 {
cpu-supply = <&vdd_cpu_l>;
};
&cpu_b0 {
cpu-supply = <&vdd_cpu_b>;
};
&cpu_b1 {
cpu-supply = <&vdd_cpu_b>;
};
&emmc_phy {
status = "okay";
};
&i2c0 {
clock-frequency = <400000>;
i2c-scl-rising-time-ns = <168>;
i2c-scl-falling-time-ns = <4>;
status = "okay";
rk818: pmic@1c {
compatible = "rockchip,rk818";
reg = <0x1c>;
interrupt-parent = <&gpio1>;
interrupts = <RK_PC5 IRQ_TYPE_LEVEL_LOW>;
#clock-cells = <1>;
clock-output-names = "xin32k", "rk808-clkout2";
pinctrl-names = "default";
pinctrl-0 = <&pmic_int_l>;
rockchip,system-power-controller;
wakeup-source;
vcc1-supply = <&vcc_sys>;
vcc2-supply = <&vcc_sys>;
vcc3-supply = <&vcc_sys>;
vcc4-supply = <&vcc_sys>;
vcc6-supply = <&vcc_sys>;
vcc7-supply = <&vcc3v3_sys>;
vcc8-supply = <&vcc_sys>;
vcc9-supply = <&vcc3v3_sys>;
regulators {
vdd_cpu_l: DCDC_REG1 {
regulator-name = "vdd_cpu_l";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <875000>;
regulator-max-microvolt = <975000>;
regulator-ramp-delay = <6001>;
regulator-state-mem {
regulator-off-in-suspend;
};
};
vdd_center: DCDC_REG2 {
regulator-name = "vdd_center";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <1000000>;
regulator-ramp-delay = <6001>;
regulator-state-mem {
regulator-off-in-suspend;
};
};
vcc_ddr: DCDC_REG3 {
regulator-name = "vcc_ddr";
regulator-always-on;
regulator-boot-on;
regulator-state-mem {
regulator-on-in-suspend;
};
};
vcc_1v8: DCDC_REG4 {
regulator-name = "vcc_1v8";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-state-mem {
regulator-on-in-suspend;
};
};
vcca3v0_codec: LDO_REG1 {
regulator-name = "vcca3v0_codec";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
};
vcc3v0_touch: LDO_REG2 {
regulator-name = "vcc3v0_touch";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
};
vcca1v8_codec: LDO_REG3 {
regulator-name = "vcca1v8_codec";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
rk818_pwr_on: LDO_REG4 {
regulator-name = "rk818_pwr_on";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-state-mem {
regulator-on-in-suspend;
};
};
vcc_3v0: LDO_REG5 {
regulator-name = "vcc_3v0";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
regulator-state-mem {
regulator-on-in-suspend;
};
};
vcc_1v5: LDO_REG6 {
regulator-name = "vcc_1v5";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <1500000>;
regulator-max-microvolt = <1500000>;
regulator-state-mem {
regulator-on-in-suspend;
};
};
vcc1v8_dvp: LDO_REG7 {
regulator-name = "vcc1v8_dvp";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
vcc3v3_s3: LDO_REG8 {
regulator-name = "vcc3v3_s3";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-state-mem {
regulator-off-in-suspend;
};
};
vccio_sd: LDO_REG9 {
regulator-name = "vccio_sd";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
};
vcc3v3_s0: SWITCH_REG {
regulator-name = "vcc3v3_s0";
regulator-always-on;
regulator-boot-on;
regulator-state-mem {
regulator-on-in-suspend;
};
};
};
};
vdd_cpu_b: regulator@40 {
compatible = "silergy,syr827";
reg = <0x40>;
fcs,suspend-voltage-selector = <1>;
pinctrl-names = "default";
pinctrl-0 = <&vsel1_pin>;
regulator-name = "vdd_cpu_b";
regulator-min-microvolt = <875000>;
regulator-max-microvolt = <1150000>;
regulator-ramp-delay = <1000>;
regulator-always-on;
regulator-boot-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
vdd_gpu: regulator@41 {
compatible = "silergy,syr828";
reg = <0x41>;
fcs,suspend-voltage-selector = <1>;
pinctrl-names = "default";
pinctrl-0 = <&vsel2_pin>;
regulator-name = "vdd_gpu";
regulator-min-microvolt = <875000>;
regulator-max-microvolt = <975000>;
regulator-ramp-delay = <1000>;
regulator-always-on;
regulator-boot-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
};
&cluster0_opp {
opp04 {
status = "disabled";
};
opp05 {
status = "disabled";
};
};
&cluster1_opp {
opp06 {
opp-hz = /bits/ 64 <1500000000>;
opp-microvolt = <1100000 1100000 1150000>;
};
opp07 {
status = "disabled";
};
};
&io_domains {
bt656-supply = <&vcc1v8_dvp>;
audio-supply = <&vcca1v8_codec>;
sdmmc-supply = <&vccio_sd>;
gpio1830-supply = <&vcc_3v0>;
status = "okay";
};
&pmu_io_domains {
pmu1830-supply = <&vcc_1v8>;
status = "okay";
};
&pinctrl {
buttons {
pwrbtn_pin: pwrbtn-pin {
rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
};
};
pmic {
pmic_int_l: pmic-int-l {
rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
};
vsel1_pin: vsel1-pin {
rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>;
};
vsel2_pin: vsel2-pin {
rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
};
};
sound {
vcc1v8_codec_en: vcc1v8-codec-en {
rockchip,pins = <3 RK_PA4 RK_FUNC_GPIO &pcfg_pull_down>;
};
};
};
&sdmmc {
bus-width = <4>;
cap-sd-highspeed;
cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>;
disable-wp;
max-frequency = <150000000>;
pinctrl-names = "default";
pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
vmmc-supply = <&vcc3v3_sys>;
vqmmc-supply = <&vccio_sd>;
status = "okay";
};
&sdhci {
bus-width = <8>;
mmc-hs200-1_8v;
non-removable;
status = "okay";
};
&tsadc {
rockchip,hw-tshut-mode = <1>;
rockchip,hw-tshut-polarity = <1>;
status = "okay";
};
&uart2 {
status = "okay";
};
This diff is collapsed.
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
/dts-v1/; /dts-v1/;
#include <dt-bindings/input/linux-event-codes.h> #include <dt-bindings/input/linux-event-codes.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/pwm/pwm.h> #include <dt-bindings/pwm/pwm.h>
#include "rk3399.dtsi" #include "rk3399.dtsi"
#include "rk3399-opp.dtsi" #include "rk3399-opp.dtsi"
...@@ -27,6 +28,20 @@ clkin_gmac: external-gmac-clock { ...@@ -27,6 +28,20 @@ clkin_gmac: external-gmac-clock {
#clock-cells = <0>; #clock-cells = <0>;
}; };
leds {
compatible = "gpio-leds";
pinctrl-names = "default";
pinctrl-0 = <&user_led2>;
/* USER_LED2 */
led-0 {
function = LED_FUNCTION_STATUS;
color = <LED_COLOR_ID_BLUE>;
gpios = <&gpio3 RK_PD5 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "heartbeat";
};
};
sdio_pwrseq: sdio-pwrseq { sdio_pwrseq: sdio-pwrseq {
compatible = "mmc-pwrseq-simple"; compatible = "mmc-pwrseq-simple";
clocks = <&rk808 1>; clocks = <&rk808 1>;
...@@ -553,6 +568,12 @@ hp_int: hp-int { ...@@ -553,6 +568,12 @@ hp_int: hp-int {
}; };
}; };
leds {
user_led2: user-led2 {
rockchip,pins = <3 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
pcie { pcie {
pcie_pwr_en: pcie-pwr-en { pcie_pwr_en: pcie-pwr-en {
rockchip,pins = <2 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>; rockchip,pins = <2 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
......
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (c) 2016-2017 Fuzhou Rockchip Electronics Co., Ltd
* Copyright (c) 2022 Radxa Limited
*/
/ {
cluster0_opp: opp-table-0 {
compatible = "operating-points-v2";
opp-shared;
opp00 {
opp-hz = /bits/ 64 <408000000>;
opp-microvolt = <875000 875000 1250000>;
clock-latency-ns = <40000>;
};
opp01 {
opp-hz = /bits/ 64 <600000000>;
opp-microvolt = <875000 875000 1250000>;
};
opp02 {
opp-hz = /bits/ 64 <816000000>;
opp-microvolt = <900000 900000 1250000>;
};
opp03 {
opp-hz = /bits/ 64 <1008000000>;
opp-microvolt = <975000 975000 1250000>;
};
};
cluster1_opp: opp-table-1 {
compatible = "operating-points-v2";
opp-shared;
opp00 {
opp-hz = /bits/ 64 <408000000>;
opp-microvolt = <875000 875000 1250000>;
clock-latency-ns = <40000>;
};
opp01 {
opp-hz = /bits/ 64 <600000000>;
opp-microvolt = <875000 875000 1250000>;
};
opp02 {
opp-hz = /bits/ 64 <816000000>;
opp-microvolt = <875000 875000 1250000>;
};
opp03 {
opp-hz = /bits/ 64 <1008000000>;
opp-microvolt = <925000 925000 1250000>;
};
opp04 {
opp-hz = /bits/ 64 <1200000000>;
opp-microvolt = <1000000 1000000 1250000>;
};
opp05 {
opp-hz = /bits/ 64 <1416000000>;
opp-microvolt = <1075000 1075000 1250000>;
};
opp06 {
opp-hz = /bits/ 64 <1512000000>;
opp-microvolt = <1150000 1150000 1250000>;
};
};
gpu_opp_table: opp-table-2 {
compatible = "operating-points-v2";
opp00 {
opp-hz = /bits/ 64 <200000000>;
opp-microvolt = <875000 875000 1150000>;
};
opp01 {
opp-hz = /bits/ 64 <300000000>;
opp-microvolt = <875000 875000 1150000>;
};
opp02 {
opp-hz = /bits/ 64 <400000000>;
opp-microvolt = <875000 875000 1150000>;
};
opp03 {
opp-hz = /bits/ 64 <600000000>;
opp-microvolt = <975000 975000 1150000>;
};
};
};
&cpu_l0 {
operating-points-v2 = <&cluster0_opp>;
};
&cpu_l1 {
operating-points-v2 = <&cluster0_opp>;
};
&cpu_l2 {
operating-points-v2 = <&cluster0_opp>;
};
&cpu_l3 {
operating-points-v2 = <&cluster0_opp>;
};
&cpu_b0 {
operating-points-v2 = <&cluster1_opp>;
};
&cpu_b1 {
operating-points-v2 = <&cluster1_opp>;
};
&gpu {
operating-points-v2 = <&gpu_opp_table>;
};
...@@ -1664,8 +1664,9 @@ i2s0: i2s@ff880000 { ...@@ -1664,8 +1664,9 @@ i2s0: i2s@ff880000 {
dma-names = "tx", "rx"; dma-names = "tx", "rx";
clock-names = "i2s_clk", "i2s_hclk"; clock-names = "i2s_clk", "i2s_hclk";
clocks = <&cru SCLK_I2S0_8CH>, <&cru HCLK_I2S0_8CH>; clocks = <&cru SCLK_I2S0_8CH>, <&cru HCLK_I2S0_8CH>;
pinctrl-names = "default"; pinctrl-names = "bclk_on", "bclk_off";
pinctrl-0 = <&i2s0_8ch_bus>; pinctrl-0 = <&i2s0_8ch_bus>;
pinctrl-1 = <&i2s0_8ch_bus_bclk_off>;
power-domains = <&power RK3399_PD_SDIOAUDIO>; power-domains = <&power RK3399_PD_SDIOAUDIO>;
#sound-dai-cells = <0>; #sound-dai-cells = <0>;
status = "disabled"; status = "disabled";
...@@ -2409,6 +2410,19 @@ i2s0_8ch_bus: i2s0-8ch-bus { ...@@ -2409,6 +2410,19 @@ i2s0_8ch_bus: i2s0-8ch-bus {
<3 RK_PD7 1 &pcfg_pull_none>, <3 RK_PD7 1 &pcfg_pull_none>,
<4 RK_PA0 1 &pcfg_pull_none>; <4 RK_PA0 1 &pcfg_pull_none>;
}; };
i2s0_8ch_bus_bclk_off: i2s0-8ch-bus-bclk-off {
rockchip,pins =
<3 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>,
<3 RK_PD1 1 &pcfg_pull_none>,
<3 RK_PD2 1 &pcfg_pull_none>,
<3 RK_PD3 1 &pcfg_pull_none>,
<3 RK_PD4 1 &pcfg_pull_none>,
<3 RK_PD5 1 &pcfg_pull_none>,
<3 RK_PD6 1 &pcfg_pull_none>,
<3 RK_PD7 1 &pcfg_pull_none>,
<4 RK_PA0 1 &pcfg_pull_none>;
};
}; };
i2s1 { i2s1 {
...@@ -2420,6 +2434,15 @@ i2s1_2ch_bus: i2s1-2ch-bus { ...@@ -2420,6 +2434,15 @@ i2s1_2ch_bus: i2s1-2ch-bus {
<4 RK_PA6 1 &pcfg_pull_none>, <4 RK_PA6 1 &pcfg_pull_none>,
<4 RK_PA7 1 &pcfg_pull_none>; <4 RK_PA7 1 &pcfg_pull_none>;
}; };
i2s1_2ch_bus_bclk_off: i2s1-2ch-bus-bclk-off {
rockchip,pins =
<4 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>,
<4 RK_PA4 1 &pcfg_pull_none>,
<4 RK_PA5 1 &pcfg_pull_none>,
<4 RK_PA6 1 &pcfg_pull_none>,
<4 RK_PA7 1 &pcfg_pull_none>;
};
}; };
sdio0 { sdio0 {
......
// 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-anbernic-rgxx3.dtsi"
/ {
model = "RG353P";
compatible = "anbernic,rg353p", "rockchip,rk3566";
aliases {
mmc0 = &sdhci;
mmc1 = &sdmmc0;
mmc2 = &sdmmc1;
mmc3 = &sdmmc2;
};
backlight: backlight {
compatible = "pwm-backlight";
power-supply = <&vcc_sys>;
pwms = <&pwm4 0 25000 0>;
};
};
&gpio_keys_control {
button-a {
gpios = <&gpio3 RK_PC2 GPIO_ACTIVE_LOW>;
label = "EAST";
linux,code = <BTN_EAST>;
};
button-left {
gpios = <&gpio3 RK_PA6 GPIO_ACTIVE_LOW>;
label = "DPAD-LEFT";
linux,code = <BTN_DPAD_LEFT>;
};
button-r1 {
gpios = <&gpio3 RK_PB4 GPIO_ACTIVE_LOW>;
label = "TR";
linux,code = <BTN_TR>;
};
button-r2 {
gpios = <&gpio3 RK_PB3 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-y {
gpios = <&gpio3 RK_PC1 GPIO_ACTIVE_LOW>;
label = "WEST";
linux,code = <BTN_WEST>;
};
};
&i2c0 {
/* This hardware is physically present but unused. */
power-monitor@62 {
compatible = "cellwise,cw2015";
reg = <0x62>;
status = "disabled";
};
};
&i2c2 {
pintctrl-names = "default";
pinctrl-0 = <&i2c2m1_xfer>;
status = "okay";
};
&pwm4 {
status = "okay";
};
&sdhci {
pinctrl-0 = <&emmc_bus8>, <&emmc_clk>, <&emmc_cmd>, <&emmc_datastrobe>, <&emmc_rstnout>;
pinctrl-names = "default";
bus-width = <8>;
mmc-hs200-1_8v;
non-removable;
vmmc-supply = <&vcc_3v3>;
vqmmc-supply = <&vcc_1v8>;
status = "okay";
};
// 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-anbernic-rgxx3.dtsi"
/ {
model = "RG503";
compatible = "anbernic,rg503", "rockchip,rk3566";
aliases {
mmc0 = &sdmmc0;
mmc1 = &sdmmc1;
mmc2 = &sdmmc2;
};
gpio_spi: spi {
compatible = "spi-gpio";
pinctrl-names = "default";
pinctrl-0 = <&spi_pins>;
#address-cells = <1>;
#size-cells = <0>;
sck-gpios = <&gpio4 RK_PB3 GPIO_ACTIVE_HIGH>;
mosi-gpios = <&gpio4 RK_PB0 GPIO_ACTIVE_HIGH>;
cs-gpios = <&gpio4 RK_PA7 GPIO_ACTIVE_HIGH>;
num-chipselects = <0>;
};
};
&gpio_keys_control {
button-a {
gpios = <&gpio3 RK_PC1 GPIO_ACTIVE_LOW>;
label = "EAST";
linux,code = <BTN_EAST>;
};
button-left {
gpios = <&gpio3 RK_PA5 GPIO_ACTIVE_LOW>;
label = "DPAD-LEFT";
linux,code = <BTN_DPAD_LEFT>;
};
button-right {
gpios = <&gpio3 RK_PA6 GPIO_ACTIVE_LOW>;
label = "DPAD-RIGHT";
linux,code = <BTN_DPAD_RIGHT>;
};
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_PA6 GPIO_ACTIVE_LOW>;
label = "DPAD-RIGHT";
linux,code = <BTN_DPAD_RIGHT>;
};
button-y {
gpios = <&gpio3 RK_PC2 GPIO_ACTIVE_LOW>;
label = "WEST";
linux,code = <BTN_WEST>;
};
};
&pinctrl {
gpio-spi {
spi_pins: spi-pins {
rockchip,pins =
<4 RK_PA7 RK_FUNC_GPIO &pcfg_pull_none>,
<4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>,
<4 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
};
This diff is collapsed.
...@@ -42,6 +42,21 @@ led-user { ...@@ -42,6 +42,21 @@ led-user {
}; };
}; };
sound {
compatible = "simple-audio-card";
simple-audio-card,format = "i2s";
simple-audio-card,name = "Analog RK809";
simple-audio-card,mclk-fs = <256>;
simple-audio-card,cpu {
sound-dai = <&i2s1_8ch>;
};
simple-audio-card,codec {
sound-dai = <&rk809>;
};
};
sdio_pwrseq: sdio-pwrseq { sdio_pwrseq: sdio-pwrseq {
status = "okay"; status = "okay";
compatible = "mmc-pwrseq-simple"; compatible = "mmc-pwrseq-simple";
...@@ -54,6 +69,18 @@ sdio_pwrseq: sdio-pwrseq { ...@@ -54,6 +69,18 @@ sdio_pwrseq: sdio-pwrseq {
power-off-delay-us = <5000000>; power-off-delay-us = <5000000>;
}; };
vcc3v3_pcie_p: vcc3v3-pcie-p-regulator {
compatible = "regulator-fixed";
enable-active-high;
gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&pcie_enable_h>;
regulator-name = "vcc3v3_pcie_p";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
vin-supply = <&vcc_3v3>;
};
vcc5v0_in: vcc5v0-in-regulator { vcc5v0_in: vcc5v0-in-regulator {
compatible = "regulator-fixed"; compatible = "regulator-fixed";
regulator-name = "vcc5v0_in"; regulator-name = "vcc5v0_in";
...@@ -113,6 +140,10 @@ &combphy1 { ...@@ -113,6 +140,10 @@ &combphy1 {
status = "okay"; status = "okay";
}; };
&combphy2 {
status = "okay";
};
&cpu0 { &cpu0 {
cpu-supply = <&vdd_cpu>; cpu-supply = <&vdd_cpu>;
}; };
...@@ -177,11 +208,16 @@ rk809: pmic@20 { ...@@ -177,11 +208,16 @@ rk809: pmic@20 {
reg = <0x20>; reg = <0x20>;
interrupt-parent = <&gpio0>; interrupt-parent = <&gpio0>;
interrupts = <RK_PA7 IRQ_TYPE_LEVEL_LOW>; interrupts = <RK_PA7 IRQ_TYPE_LEVEL_LOW>;
assigned-clocks = <&cru I2S1_MCLKOUT_TX>;
assigned-clock-parents = <&cru CLK_I2S1_8CH_TX>;
clock-names = "mclk";
clocks = <&cru I2S1_MCLKOUT_TX>;
clock-output-names = "rk808-clkout1", "rk808-clkout2"; clock-output-names = "rk808-clkout1", "rk808-clkout2";
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&pmic_int>; pinctrl-0 = <&pmic_int>, <&i2s1m0_mclk>;
rockchip,system-power-controller; rockchip,system-power-controller;
#sound-dai-cells = <0>;
wakeup-source; wakeup-source;
#clock-cells = <1>; #clock-cells = <1>;
...@@ -420,6 +456,16 @@ &i2c5 { ...@@ -420,6 +456,16 @@ &i2c5 {
status = "disabled"; status = "disabled";
}; };
&i2s1_8ch {
pinctrl-names = "default";
pinctrl-0 = <&i2s1m0_sclktx
&i2s1m0_lrcktx
&i2s1m0_sdi0
&i2s1m0_sdo0>;
rockchip,trcm-sync-tx-only;
status = "okay";
};
&mdio1 { &mdio1 {
rgmii_phy1: ethernet-phy@1 { rgmii_phy1: ethernet-phy@1 {
compatible = "ethernet-phy-ieee802.3-c22"; compatible = "ethernet-phy-ieee802.3-c22";
...@@ -427,6 +473,14 @@ rgmii_phy1: ethernet-phy@1 { ...@@ -427,6 +473,14 @@ rgmii_phy1: ethernet-phy@1 {
}; };
}; };
&pcie2x1 {
pinctrl-names = "default";
pinctrl-0 = <&pcie_reset_h>;
reset-gpios = <&gpio1 RK_PB2 GPIO_ACTIVE_HIGH>;
vpcie3v3-supply = <&vcc3v3_pcie_p>;
status = "okay";
};
&pinctrl { &pinctrl {
bt { bt {
bt_enable_h: bt-enable-h { bt_enable_h: bt-enable-h {
...@@ -448,6 +502,16 @@ user_led_enable_h: user-led-enable-h { ...@@ -448,6 +502,16 @@ user_led_enable_h: user-led-enable-h {
}; };
}; };
pcie {
pcie_enable_h: pcie-enable-h {
rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
};
pcie_reset_h: pcie-reset-h {
rockchip,pins = <1 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
pmic { pmic {
pmic_int: pmic_int { pmic_int: pmic_int {
rockchip,pins = rockchip,pins =
......
...@@ -46,7 +46,7 @@ green_led: led-1 { ...@@ -46,7 +46,7 @@ green_led: led-1 {
}; };
}; };
dc_12v: dc-12v { dc_12v: dc-12v-regulator {
compatible = "regulator-fixed"; compatible = "regulator-fixed";
regulator-name = "dc_12v"; regulator-name = "dc_12v";
regulator-always-on; regulator-always-on;
...@@ -66,7 +66,7 @@ hdmi_con_in: endpoint { ...@@ -66,7 +66,7 @@ hdmi_con_in: endpoint {
}; };
}; };
vcc3v3_sys: vcc3v3-sys { vcc3v3_sys: vcc3v3-sys-regulator {
compatible = "regulator-fixed"; compatible = "regulator-fixed";
regulator-name = "vcc3v3_sys"; regulator-name = "vcc3v3_sys";
regulator-always-on; regulator-always-on;
...@@ -76,7 +76,7 @@ vcc3v3_sys: vcc3v3-sys { ...@@ -76,7 +76,7 @@ vcc3v3_sys: vcc3v3-sys {
vin-supply = <&dc_12v>; vin-supply = <&dc_12v>;
}; };
vcc5v0_sys: vcc5v0-sys { vcc5v0_sys: vcc5v0-sys-regulator {
compatible = "regulator-fixed"; compatible = "regulator-fixed";
regulator-name = "vcc5v0_sys"; regulator-name = "vcc5v0_sys";
regulator-always-on; regulator-always-on;
...@@ -86,7 +86,67 @@ vcc5v0_sys: vcc5v0-sys { ...@@ -86,7 +86,67 @@ vcc5v0_sys: vcc5v0-sys {
vin-supply = <&dc_12v>; vin-supply = <&dc_12v>;
}; };
vcc5v0_usb: vcc5v0_usb { pcie30_avdd0v9: pcie30-avdd0v9-regulator {
compatible = "regulator-fixed";
regulator-name = "pcie30_avdd0v9";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <900000>;
regulator-max-microvolt = <900000>;
vin-supply = <&vcc3v3_sys>;
};
pcie30_avdd1v8: pcie30-avdd1v8-regulator {
compatible = "regulator-fixed";
regulator-name = "pcie30_avdd1v8";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
vin-supply = <&vcc3v3_sys>;
};
/* pi6c pcie clock generator feeds both ports */
vcc3v3_pi6c_05: vcc3v3-pi6c-05-regulator {
compatible = "regulator-fixed";
regulator-name = "vcc3v3_pcie";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
enable-active-high;
gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>;
startup-delay-us = <200000>;
vin-supply = <&vcc5v0_sys>;
};
/* actually fed by vcc3v3_sys, dependent on pi6c clock generator */
vcc3v3_minipcie: vcc3v3-minipcie-regulator {
compatible = "regulator-fixed";
regulator-name = "vcc3v3_minipcie";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
enable-active-high;
gpio = <&gpio0 RK_PC6 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&minipcie_enable_h>;
startup-delay-us = <50000>;
vin-supply = <&vcc3v3_pi6c_05>;
};
/* actually fed by vcc3v3_sys, dependent on pi6c clock generator */
vcc3v3_ngff: vcc3v3-ngff-regulator {
compatible = "regulator-fixed";
regulator-name = "vcc3v3_ngff";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
enable-active-high;
gpio = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&ngffpcie_enable_h>;
startup-delay-us = <50000>;
vin-supply = <&vcc3v3_pi6c_05>;
};
vcc5v0_usb: vcc5v0-usb-regulator {
compatible = "regulator-fixed"; compatible = "regulator-fixed";
regulator-name = "vcc5v0_usb"; regulator-name = "vcc5v0_usb";
regulator-always-on; regulator-always-on;
...@@ -96,7 +156,7 @@ vcc5v0_usb: vcc5v0_usb { ...@@ -96,7 +156,7 @@ vcc5v0_usb: vcc5v0_usb {
vin-supply = <&dc_12v>; vin-supply = <&dc_12v>;
}; };
vcc5v0_usb_host: vcc5v0-usb-host { vcc5v0_usb_host: vcc5v0-usb-host-regulator {
compatible = "regulator-fixed"; compatible = "regulator-fixed";
enable-active-high; enable-active-high;
gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>; gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
...@@ -108,7 +168,7 @@ vcc5v0_usb_host: vcc5v0-usb-host { ...@@ -108,7 +168,7 @@ vcc5v0_usb_host: vcc5v0-usb-host {
vin-supply = <&vcc5v0_usb>; vin-supply = <&vcc5v0_usb>;
}; };
vcc5v0_usb_otg: vcc5v0-usb-otg { vcc5v0_usb_otg: vcc5v0-usb-otg-regulator {
compatible = "regulator-fixed"; compatible = "regulator-fixed";
enable-active-high; enable-active-high;
gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>; gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;
...@@ -513,6 +573,32 @@ rgmii_phy1: ethernet-phy@0 { ...@@ -513,6 +573,32 @@ rgmii_phy1: ethernet-phy@0 {
}; };
}; };
&pcie30phy {
data-lanes = <1 2>;
phy-supply = <&vcc3v3_pi6c_05>;
status = "okay";
};
&pcie3x1 {
/* M.2 slot */
num-lanes = <1>;
pinctrl-names = "default";
pinctrl-0 = <&ngffpcie_reset_h>;
reset-gpios = <&gpio3 RK_PA1 GPIO_ACTIVE_HIGH>;
vpcie3v3-supply = <&vcc3v3_ngff>;
status = "okay";
};
&pcie3x2 {
/* mPCIe slot */
num-lanes = <1>;
pinctrl-names = "default";
pinctrl-0 = <&minipcie_reset_h>;
reset-gpios = <&gpio2 RK_PD6 GPIO_ACTIVE_HIGH>;
vpcie3v3-supply = <&vcc3v3_minipcie>;
status = "okay";
};
&pinctrl { &pinctrl {
leds { leds {
blue_led_pin: blue-led-pin { blue_led_pin: blue-led-pin {
...@@ -529,6 +615,24 @@ hym8563_int: hym8563-int { ...@@ -529,6 +615,24 @@ hym8563_int: hym8563-int {
}; };
}; };
pcie {
minipcie_enable_h: minipcie-enable-h {
rockchip,pins = <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none_drv_level_5>;
};
ngffpcie_enable_h: ngffpcie-enable-h {
rockchip,pins = <0 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none_drv_level_5>;
};
minipcie_reset_h: minipcie-reset-h {
rockchip,pins = <2 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none_drv_level_5>;
};
ngffpcie_reset_h: ngffpcie-reset-h {
rockchip,pins = <3 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none_drv_level_5>;
};
};
pmic { pmic {
pmic_int: pmic_int { pmic_int: pmic_int {
rockchip,pins = rockchip,pins =
...@@ -708,6 +812,19 @@ &usb2phy0_otg { ...@@ -708,6 +812,19 @@ &usb2phy0_otg {
status = "okay"; status = "okay";
}; };
&usb2phy1 {
/* USB for PCIe/M2 */
status = "okay";
};
&usb2phy1_host {
status = "okay";
};
&usb2phy1_otg {
status = "okay";
};
&vop { &vop {
assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>; assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>;
assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>; assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>;
......
...@@ -67,6 +67,18 @@ vcc12v_dcin: vcc12v-dcin { ...@@ -67,6 +67,18 @@ vcc12v_dcin: vcc12v-dcin {
regulator-boot-on; regulator-boot-on;
}; };
vcc3v3_pcie: vcc3v3-pcie-regulator {
compatible = "regulator-fixed";
enable-active-high;
gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&pcie_enable_h>;
regulator-name = "vcc3v3_pcie";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
vin-supply = <&vcc5v0_sys>;
};
vcc3v3_sys: vcc3v3-sys { vcc3v3_sys: vcc3v3-sys {
compatible = "regulator-fixed"; compatible = "regulator-fixed";
regulator-name = "vcc3v3_sys"; regulator-name = "vcc3v3_sys";
...@@ -131,6 +143,38 @@ vcc5v0_usb_otg: vcc5v0-usb-otg-regulator { ...@@ -131,6 +143,38 @@ vcc5v0_usb_otg: vcc5v0-usb-otg-regulator {
regulator-max-microvolt = <5000000>; regulator-max-microvolt = <5000000>;
vin-supply = <&vcc5v0_usb>; vin-supply = <&vcc5v0_usb>;
}; };
vcc_cam: vcc-cam {
compatible = "regulator-fixed";
enable-active-high;
gpio = <&gpio1 RK_PB1 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&vcc_cam_en>;
regulator-name = "vcc_cam";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
vin-supply = <&vcc3v3_sys>;
regulator-state-mem {
regulator-off-in-suspend;
};
};
vcc_mipi: vcc-mipi {
compatible = "regulator-fixed";
enable-active-high;
gpio = <&gpio3 RK_PC0 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&vcc_mipi_en>;
regulator-name = "vcc_mipi";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
vin-supply = <&vcc3v3_sys>;
regulator-state-mem {
regulator-off-in-suspend;
};
};
}; };
&combphy0 { &combphy0 {
...@@ -141,6 +185,10 @@ &combphy1 { ...@@ -141,6 +185,10 @@ &combphy1 {
status = "okay"; status = "okay";
}; };
&combphy2 {
status = "okay";
};
&cpu0 { &cpu0 {
cpu-supply = <&vdd_cpu>; cpu-supply = <&vdd_cpu>;
}; };
...@@ -440,6 +488,35 @@ codec { ...@@ -440,6 +488,35 @@ codec {
}; };
}; };
&i2c3 {
pinctrl-names = "default";
pinctrl-0 = <&i2c3m1_xfer>;
status = "disabled";
};
&i2c4 {
pinctrl-names = "default";
pinctrl-0 = <&i2c4m1_xfer>;
status = "disabled";
};
&i2c5 {
status = "okay";
hym8563: rtc@51 {
compatible = "haoyu,hym8563";
reg = <0x51>;
interrupt-parent = <&gpio0>;
interrupts = <RK_PD3 IRQ_TYPE_LEVEL_LOW>;
#clock-cells = <0>;
clock-frequency = <32768>;
clock-output-names = "rtcic_32kout";
pinctrl-names = "default";
pinctrl-0 = <&hym8563_int>;
wakeup-source;
};
};
&i2s0_8ch { &i2s0_8ch {
status = "okay"; status = "okay";
}; };
...@@ -461,19 +538,55 @@ rgmii_phy1: ethernet-phy@0 { ...@@ -461,19 +538,55 @@ rgmii_phy1: ethernet-phy@0 {
}; };
}; };
&pcie2x1 {
pinctrl-names = "default";
pinctrl-0 = <&pcie_reset_h>;
reset-gpios = <&gpio3 RK_PC1 GPIO_ACTIVE_HIGH>;
vpcie3v3-supply = <&vcc3v3_pcie>;
status = "okay";
};
&pinctrl { &pinctrl {
cam {
vcc_cam_en: vcc_cam_en {
rockchip,pins = <1 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
display {
vcc_mipi_en: vcc_mipi_en {
rockchip,pins = <3 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
ethernet { ethernet {
eth_phy_rst: eth_phy_rst { eth_phy_rst: eth_phy_rst {
rockchip,pins = <3 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; rockchip,pins = <3 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
}; };
}; };
hym8563 {
hym8563_int: hym8563-int {
rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_up>;
};
};
leds { leds {
led_user_en: led_user_en { led_user_en: led_user_en {
rockchip,pins = <0 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>; rockchip,pins = <0 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
}; };
}; };
pcie {
pcie_enable_h: pcie-enable-h {
rockchip,pins = <0 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
};
pcie_reset_h: pcie-reset-h {
rockchip,pins = <3 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
pmic { pmic {
pmic_int: pmic_int { pmic_int: pmic_int {
rockchip,pins = rockchip,pins =
......
...@@ -42,6 +42,128 @@ qos_sata0: qos@fe190200 { ...@@ -42,6 +42,128 @@ qos_sata0: qos@fe190200 {
reg = <0x0 0xfe190200 0x0 0x20>; reg = <0x0 0xfe190200 0x0 0x20>;
}; };
pcie30_phy_grf: syscon@fdcb8000 {
compatible = "rockchip,rk3568-pcie3-phy-grf", "syscon";
reg = <0x0 0xfdcb8000 0x0 0x10000>;
};
pcie30phy: phy@fe8c0000 {
compatible = "rockchip,rk3568-pcie3-phy";
reg = <0x0 0xfe8c0000 0x0 0x20000>;
#phy-cells = <0>;
clocks = <&pmucru CLK_PCIE30PHY_REF_M>, <&pmucru CLK_PCIE30PHY_REF_N>,
<&cru PCLK_PCIE30PHY>;
clock-names = "refclk_m", "refclk_n", "pclk";
resets = <&cru SRST_PCIE30PHY>;
reset-names = "phy";
rockchip,phy-grf = <&pcie30_phy_grf>;
status = "disabled";
};
pcie3x1: pcie@fe270000 {
compatible = "rockchip,rk3568-pcie";
#address-cells = <3>;
#size-cells = <2>;
bus-range = <0x0 0xf>;
clocks = <&cru ACLK_PCIE30X1_MST>, <&cru ACLK_PCIE30X1_SLV>,
<&cru ACLK_PCIE30X1_DBI>, <&cru PCLK_PCIE30X1>,
<&cru CLK_PCIE30X1_AUX_NDFT>;
clock-names = "aclk_mst", "aclk_slv",
"aclk_dbi", "pclk", "aux";
device_type = "pci";
interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "sys", "pmc", "msg", "legacy", "err";
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 7>;
interrupt-map = <0 0 0 1 &pcie3x1_intc 0>,
<0 0 0 2 &pcie3x1_intc 1>,
<0 0 0 3 &pcie3x1_intc 2>,
<0 0 0 4 &pcie3x1_intc 3>;
linux,pci-domain = <1>;
num-ib-windows = <6>;
num-ob-windows = <2>;
max-link-speed = <3>;
msi-map = <0x0 &gic 0x1000 0x1000>;
num-lanes = <1>;
phys = <&pcie30phy>;
phy-names = "pcie-phy";
power-domains = <&power RK3568_PD_PIPE>;
reg = <0x3 0xc0400000 0x0 0x00400000>,
<0x0 0xfe270000 0x0 0x00010000>,
<0x3 0x7f000000 0x0 0x01000000>;
ranges = <0x01000000 0x0 0x3ef00000 0x3 0x7ef00000 0x0 0x00100000>,
<0x02000000 0x0 0x00000000 0x3 0x40000000 0x0 0x3ef00000>;
reg-names = "dbi", "apb", "config";
resets = <&cru SRST_PCIE30X1_POWERUP>;
reset-names = "pipe";
/* bifurcation; lane1 when using 1+1 */
status = "disabled";
pcie3x1_intc: legacy-interrupt-controller {
interrupt-controller;
#address-cells = <0>;
#interrupt-cells = <1>;
interrupt-parent = <&gic>;
interrupts = <GIC_SPI 157 IRQ_TYPE_EDGE_RISING>;
};
};
pcie3x2: pcie@fe280000 {
compatible = "rockchip,rk3568-pcie";
#address-cells = <3>;
#size-cells = <2>;
bus-range = <0x0 0xf>;
clocks = <&cru ACLK_PCIE30X2_MST>, <&cru ACLK_PCIE30X2_SLV>,
<&cru ACLK_PCIE30X2_DBI>, <&cru PCLK_PCIE30X2>,
<&cru CLK_PCIE30X2_AUX_NDFT>;
clock-names = "aclk_mst", "aclk_slv",
"aclk_dbi", "pclk", "aux";
device_type = "pci";
interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "sys", "pmc", "msg", "legacy", "err";
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 7>;
interrupt-map = <0 0 0 1 &pcie3x2_intc 0>,
<0 0 0 2 &pcie3x2_intc 1>,
<0 0 0 3 &pcie3x2_intc 2>,
<0 0 0 4 &pcie3x2_intc 3>;
linux,pci-domain = <2>;
num-ib-windows = <6>;
num-ob-windows = <2>;
max-link-speed = <3>;
msi-map = <0x0 &gic 0x2000 0x1000>;
num-lanes = <2>;
phys = <&pcie30phy>;
phy-names = "pcie-phy";
power-domains = <&power RK3568_PD_PIPE>;
reg = <0x3 0xc0800000 0x0 0x00400000>,
<0x0 0xfe280000 0x0 0x00010000>,
<0x3 0xbf000000 0x0 0x01000000>;
ranges = <0x01000000 0x0 0x3ef00000 0x3 0xbef00000 0x0 0x00100000>,
<0x02000000 0x0 0x00000000 0x3 0x80000000 0x0 0x3ef00000>;
reg-names = "dbi", "apb", "config";
resets = <&cru SRST_PCIE30X2_POWERUP>;
reset-names = "pipe";
/* bifurcation; lane0 when using 1+1 */
status = "disabled";
pcie3x2_intc: legacy-interrupt-controller {
interrupt-controller;
#address-cells = <0>;
#interrupt-cells = <1>;
interrupt-parent = <&gic>;
interrupts = <GIC_SPI 162 IRQ_TYPE_EDGE_RISING>;
};
};
gmac0: ethernet@fe2a0000 { gmac0: ethernet@fe2a0000 {
compatible = "rockchip,rk3568-gmac", "snps,dwmac-4.20a"; compatible = "rockchip,rk3568-gmac", "snps,dwmac-4.20a";
reg = <0x0 0xfe2a0000 0x0 0x10000>; reg = <0x0 0xfe2a0000 0x0 0x10000>;
......
...@@ -592,6 +592,46 @@ gpu: gpu@fde60000 { ...@@ -592,6 +592,46 @@ gpu: gpu@fde60000 {
status = "disabled"; status = "disabled";
}; };
vpu: video-codec@fdea0400 {
compatible = "rockchip,rk3568-vpu";
reg = <0x0 0xfdea0000 0x0 0x800>;
interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>;
clock-names = "aclk", "hclk";
iommus = <&vdpu_mmu>;
power-domains = <&power RK3568_PD_VPU>;
};
vdpu_mmu: iommu@fdea0800 {
compatible = "rockchip,rk3568-iommu";
reg = <0x0 0xfdea0800 0x0 0x40>;
interrupts = <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
clock-names = "aclk", "iface";
clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>;
power-domains = <&power RK3568_PD_VPU>;
#iommu-cells = <0>;
};
vepu: video-codec@fdee0000 {
compatible = "rockchip,rk3568-vepu";
reg = <0x0 0xfdee0000 0x0 0x800>;
interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&cru ACLK_JENC>, <&cru HCLK_JENC>;
clock-names = "aclk", "hclk";
iommus = <&vepu_mmu>;
power-domains = <&power RK3568_PD_RGA>;
};
vepu_mmu: iommu@fdee0800 {
compatible = "rockchip,rk3568-iommu";
reg = <0x0 0xfdee0800 0x0 0x40>;
interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&cru ACLK_JENC>, <&cru HCLK_JENC>;
clock-names = "aclk", "iface";
power-domains = <&power RK3568_PD_RGA>;
#iommu-cells = <0>;
};
sdmmc2: mmc@fe000000 { sdmmc2: mmc@fe000000 {
compatible = "rockchip,rk3568-dw-mshc", "rockchip,rk3288-dw-mshc"; compatible = "rockchip,rk3568-dw-mshc", "rockchip,rk3288-dw-mshc";
reg = <0x0 0xfe000000 0x0 0x4000>; reg = <0x0 0xfe000000 0x0 0x4000>;
...@@ -1594,6 +1634,18 @@ combphy2: phy@fe840000 { ...@@ -1594,6 +1634,18 @@ combphy2: phy@fe840000 {
status = "disabled"; status = "disabled";
}; };
csi_dphy: phy@fe870000 {
compatible = "rockchip,rk3568-csi-dphy";
reg = <0x0 0xfe870000 0x0 0x10000>;
clocks = <&cru PCLK_MIPICSIPHY>;
clock-names = "pclk";
#phy-cells = <0>;
resets = <&cru SRST_P_MIPICSIPHY>;
reset-names = "apb";
rockchip,grf = <&grf>;
status = "disabled";
};
usb2phy0: usb2phy@fe8a0000 { usb2phy0: usb2phy@fe8a0000 {
compatible = "rockchip,rk3568-usb2phy"; compatible = "rockchip,rk3568-usb2phy";
reg = <0x0 0xfe8a0000 0x0 0x10000>; reg = <0x0 0xfe8a0000 0x0 0x10000>;
......
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