Merge tag 'u-boot-at91-fixes-2023.01-a' of https://source.denx.de/u-boot/custodians...
authorTom Rini <trini@konsulko.com>
Fri, 21 Oct 2022 12:33:48 +0000 (08:33 -0400)
committerTom Rini <trini@konsulko.com>
Fri, 21 Oct 2022 12:33:48 +0000 (08:33 -0400)
First set of u-boot-at91 fixes for the 2023.01 cycle:

This small fixes set includes an indentation fix for sam9x60 DT and one
name for one pin for sama7g5.

270 files changed:
Kconfig
arch/arm/dts/Makefile
arch/arm/dts/rk3288-thermal.dtsi [deleted file]
arch/arm/dts/rk3288-veyron-jerry.dts
arch/arm/dts/rk3288-veyron.dtsi
arch/arm/dts/rk3288.dtsi
arch/arm/dts/rk3399-eaidk-610-u-boot.dtsi [new file with mode: 0644]
arch/arm/dts/rk3399-eaidk-610.dts [new file with mode: 0644]
arch/arm/dts/rk3399-puma-haikou-u-boot.dtsi
arch/arm/dts/rk3566.dtsi [new file with mode: 0644]
arch/arm/dts/rk3568-evb-u-boot.dtsi
arch/arm/dts/rk3568-pinctrl.dtsi
arch/arm/dts/rk3568.dtsi
arch/arm/dts/rk356x-u-boot.dtsi [moved from arch/arm/dts/rk3568-u-boot.dtsi with 94% similarity]
arch/arm/dts/rk356x.dtsi [new file with mode: 0644]
arch/arm/dts/sun4i-a10-inet9f-rev03.dts
arch/arm/dts/sun4i-a10-pcduino.dts
arch/arm/dts/sun50i-a64-amarula-relic.dts
arch/arm/dts/sun50i-a64-bananapi-m64.dts
arch/arm/dts/sun50i-a64-nanopi-a64.dts
arch/arm/dts/sun50i-a64-olinuxino.dts
arch/arm/dts/sun50i-a64-orangepi-win.dts
arch/arm/dts/sun50i-a64-pinebook.dts
arch/arm/dts/sun50i-a64-pinephone-1.0.dts
arch/arm/dts/sun50i-a64-pinephone-1.1.dts
arch/arm/dts/sun50i-a64-teres-i.dts
arch/arm/dts/sun50i-a64.dtsi
arch/arm/dts/sun50i-h5-nanopi-r1s-h5.dts
arch/arm/dts/sun50i-h5-orangepi-pc2.dts
arch/arm/dts/sun50i-h5-orangepi-prime.dts
arch/arm/dts/sun50i-h6-orangepi-3.dts
arch/arm/dts/sun50i-h6-orangepi-lite2.dts
arch/arm/dts/sun50i-h6-tanix.dtsi
arch/arm/dts/sun50i-h6.dtsi
arch/arm/dts/sun50i-h616-orangepi-zero2.dts
arch/arm/dts/sun50i-h616-x96-mate.dts [new file with mode: 0644]
arch/arm/dts/sun50i-h616.dtsi
arch/arm/dts/sun5i-a13-licheepi-one.dts
arch/arm/dts/sun6i-a31.dtsi
arch/arm/dts/sun7i-a20-pcduino3.dts
arch/arm/dts/sun8i-a23-a33.dtsi
arch/arm/dts/sun8i-a23-ippo-q8h-v1.2.dts [changed from file to symlink]
arch/arm/dts/sun8i-a23-ippo-q8h-v5.dts [changed from file to symlink]
arch/arm/dts/sun8i-a33-et-q8-v1.6.dts [changed from file to symlink]
arch/arm/dts/sun8i-a33-ippo-q8h-v1.2.dts [changed from file to symlink]
arch/arm/dts/sun8i-h2-plus-bananapi-m2-zero.dts
arch/arm/dts/sun8i-h2-plus-orangepi-zero.dts
arch/arm/dts/sun8i-h3-beelink-x2.dts
arch/arm/dts/sun8i-h3-mapleboard-mp130.dts
arch/arm/dts/sun8i-h3-nanopi-duo2.dts
arch/arm/dts/sun8i-h3-nanopi-neo-air.dts
arch/arm/dts/sun8i-h3-nanopi-r1.dts
arch/arm/dts/sun8i-h3-nanopi.dtsi
arch/arm/dts/sun8i-h3-orangepi-2.dts
arch/arm/dts/sun8i-h3-orangepi-lite.dts
arch/arm/dts/sun8i-h3-orangepi-one.dts
arch/arm/dts/sun8i-h3-orangepi-pc.dts
arch/arm/dts/sun8i-r16-bananapi-m2m.dts
arch/arm/dts/sun8i-r40-bananapi-m2-ultra.dts
arch/arm/dts/sun8i-r40-cpu-opp.dtsi [new file with mode: 0644]
arch/arm/dts/sun8i-r40-feta40i.dtsi
arch/arm/dts/sun8i-r40.dtsi
arch/arm/dts/sun8i-t3-cqa3t-bv3.dts
arch/arm/dts/sun8i-v3s.dtsi
arch/arm/dts/sun8i-v40-bananapi-m2-berry.dts
arch/arm/dts/sun9i-a80.dtsi
arch/arm/dts/sunxi-bananapi-m2-plus.dtsi
arch/arm/dts/sunxi-h3-h5-emlid-neutis.dtsi
arch/arm/dts/sunxi-h3-h5.dtsi
arch/arm/dts/sunxi-libretech-all-h3-cc.dtsi
arch/arm/include/asm/arch-rockchip/cru_px30.h
arch/arm/mach-rockchip/px30/px30.c
arch/arm/mach-rockchip/rk3288/Kconfig
arch/arm/mach-rockchip/rk3399/rk3399.c
arch/arm/mach-sunxi/Kconfig
arch/arm/mach-sunxi/board.c
arch/arm/mach-sunxi/spl_spi_sunxi.c
arch/riscv/Kconfig
arch/riscv/Makefile
arch/riscv/lib/andes_plic.c
board/AndesTech/ax25-ae350/ax25-ae350.c
board/emulation/qemu-riscv/Kconfig
board/phytec/phycore_rk3288/phycore-rk3288.c
board/rockchip/evb_rk3399/MAINTAINERS
board/sunxi/MAINTAINERS
board/theobroma-systems/puma_rk3399/Kconfig
board/theobroma-systems/puma_rk3399/README
board/theobroma-systems/puma_rk3399/puma-rk3399.c
boot/Kconfig
cmd/Kconfig
cmd/riscv/sbi.c
common/spl/Kconfig
configs/A10-OLinuXino-Lime_defconfig
configs/A10s-OLinuXino-M_defconfig
configs/A13-OLinuXinoM_defconfig
configs/A13-OLinuXino_defconfig
configs/A20-OLinuXino-Lime2-eMMC_defconfig
configs/A20-OLinuXino-Lime2_defconfig
configs/A20-OLinuXino-Lime_defconfig
configs/A20-OLinuXino_MICRO-eMMC_defconfig
configs/A20-OLinuXino_MICRO_defconfig
configs/A20-Olimex-SOM-EVB_defconfig
configs/A20-Olimex-SOM204-EVB-eMMC_defconfig
configs/A20-Olimex-SOM204-EVB_defconfig
configs/A33-OLinuXino_defconfig
configs/Ainol_AW1_defconfig
configs/Ampe_A76_defconfig
configs/Auxtek-T003_defconfig
configs/Auxtek-T004_defconfig
configs/Bananapi_M2_Ultra_defconfig
configs/Bananapi_defconfig
configs/Bananapi_m2m_defconfig
configs/Bananapro_defconfig
configs/CHIP_defconfig
configs/CHIP_pro_defconfig
configs/CSQ_CS908_defconfig
configs/Chuwi_V7_CW0825_defconfig
configs/Colombus_defconfig
configs/Cubieboard2_defconfig
configs/Cubieboard4_defconfig
configs/Cubieboard_defconfig
configs/Cubietruck_defconfig
configs/Cubietruck_plus_defconfig
configs/Empire_electronix_d709_defconfig
configs/Empire_electronix_m712_defconfig
configs/Hummingbird_A31_defconfig
configs/Hyundai_A7HD_defconfig
configs/Itead_Ibox_A20_defconfig
configs/Lamobo_R1_defconfig
configs/LicheePi_Zero_defconfig
configs/Linksprite_pcDuino3_Nano_defconfig
configs/Linksprite_pcDuino3_defconfig
configs/Linksprite_pcDuino_defconfig
configs/MK808C_defconfig
configs/MSI_Primo73_defconfig
configs/MSI_Primo81_defconfig
configs/Marsboard_A10_defconfig
configs/Mele_A1000G_quad_defconfig
configs/Mele_A1000_defconfig
configs/Mele_I7_defconfig
configs/Mele_M3_defconfig
configs/Mele_M5_defconfig
configs/Mele_M9_defconfig
configs/Merrii_A80_Optimus_defconfig
configs/Mini-X_defconfig
configs/Nintendo_NES_Classic_Edition_defconfig
configs/Orangepi_defconfig
configs/Orangepi_mini_defconfig
configs/Sinlinx_SinA31s_defconfig
configs/Sinlinx_SinA33_defconfig
configs/Sinovoip_BPI_M2_defconfig
configs/Sinovoip_BPI_M3_defconfig
configs/Sunchip_CX-A99_defconfig
configs/UTOO_P66_defconfig
configs/Wexler_TAB7200_defconfig
configs/Wits_Pro_A20_DKT_defconfig
configs/Wobo_i5_defconfig
configs/Yones_Toptech_BD1078_defconfig
configs/Yones_Toptech_BS1078_V2_defconfig
configs/a64-olinuxino-emmc_defconfig
configs/a64-olinuxino_defconfig
configs/amarula_a64_relic_defconfig
configs/ba10_tv_box_defconfig
configs/bananapi_m1_plus_defconfig
configs/bananapi_m2_berry_defconfig
configs/bananapi_m2_plus_h3_defconfig
configs/bananapi_m2_plus_h5_defconfig
configs/bananapi_m2_zero_defconfig
configs/bananapi_m64_defconfig
configs/beelink_gs1_defconfig
configs/beelink_x2_defconfig
configs/chromebook_jerry_defconfig
configs/colorfly_e708_q1_defconfig
configs/difrnce_dit4350_defconfig
configs/dserve_dsrv9703c_defconfig
configs/eaidk-610-rk3399_defconfig [new file with mode: 0644]
configs/emlid_neutis_n5_devboard_defconfig
configs/ga10h_v1_1_defconfig
configs/gt90h_v4_defconfig
configs/h8_homlet_v2_defconfig
configs/i12-tvbox_defconfig
configs/iNet_3F_defconfig
configs/iNet_3W_defconfig
configs/iNet_86VS_defconfig
configs/iNet_D978_rev2_defconfig
configs/icnova-a20-swac_defconfig
configs/inet1_defconfig
configs/inet86dz_defconfig
configs/inet97fv2_defconfig
configs/inet98v_rev2_defconfig
configs/inet9f_rev03_defconfig
configs/inet_q972_defconfig
configs/jesurun_q5_defconfig
configs/libretech_all_h3_cc_h2_plus_defconfig
configs/libretech_all_h3_cc_h3_defconfig
configs/libretech_all_h3_cc_h5_defconfig
configs/libretech_all_h3_it_h5_defconfig
configs/libretech_all_h5_cc_h5_defconfig
configs/licheepi_nano_defconfig
configs/mixtile_loftq_defconfig
configs/mk802_a10s_defconfig
configs/mk802_defconfig
configs/mk802ii_defconfig
configs/nanopi_a64_defconfig
configs/nanopi_m1_defconfig
configs/nanopi_m1_plus_defconfig
configs/nanopi_neo2_defconfig
configs/nanopi_neo_air_defconfig
configs/nanopi_neo_defconfig
configs/nanopi_neo_plus2_defconfig
configs/nanopi_r1s_h5_defconfig
configs/oceanic_5205_5inmfd_defconfig
configs/orangepi_2_defconfig
configs/orangepi_3_defconfig
configs/orangepi_lite2_defconfig
configs/orangepi_lite_defconfig
configs/orangepi_one_defconfig
configs/orangepi_one_plus_defconfig
configs/orangepi_pc2_defconfig
configs/orangepi_pc_defconfig
configs/orangepi_pc_plus_defconfig
configs/orangepi_plus2e_defconfig
configs/orangepi_plus_defconfig
configs/orangepi_prime_defconfig
configs/orangepi_r1_defconfig
configs/orangepi_win_defconfig
configs/orangepi_zero2_defconfig
configs/orangepi_zero_defconfig
configs/orangepi_zero_plus2_defconfig
configs/orangepi_zero_plus2_h3_defconfig
configs/orangepi_zero_plus_defconfig
configs/parrot_r16_defconfig
configs/phycore-rk3288_defconfig
configs/pine64-lts_defconfig
configs/pine64_plus_defconfig
configs/pine_h64_defconfig
configs/pinebook_defconfig
configs/pinecube_defconfig
configs/pinephone_defconfig
configs/pinetab_defconfig
configs/polaroid_mid2407pxe03_defconfig
configs/polaroid_mid2809pxe04_defconfig
configs/pov_protab2_ips9_defconfig
configs/puma-rk3399_defconfig
configs/q8_a13_tablet_defconfig
configs/q8_a23_tablet_800x480_defconfig
configs/q8_a33_tablet_1024x600_defconfig
configs/q8_a33_tablet_800x480_defconfig
configs/r7-tv-dongle_defconfig
configs/sopine_baseboard_defconfig
configs/sun8i_a23_evb_defconfig
configs/sunxi_Gemei_G9_defconfig
configs/tanix_tx6_defconfig
configs/tbs_a711_defconfig
configs/teres_i_defconfig
configs/x96_mate_defconfig [new file with mode: 0644]
configs/zeropi_defconfig
drivers/clk/clk-uclass.c
drivers/clk/clk_k210.c
drivers/clk/rockchip/clk_pll.c
drivers/clk/rockchip/clk_rk3399.c
drivers/pinctrl/sunxi/pinctrl-sunxi.c
drivers/ram/rockchip/Kconfig
include/clk.h
include/configs/sunxi-common.h
include/dt-bindings/clock/sun50i-h6-r-ccu.h
include/dt-bindings/clock/sun50i-h616-ccu.h
include/dt-bindings/clock/sun6i-rtc.h [new file with mode: 0644]
include/dt-bindings/power/rk3568-power.h [new file with mode: 0644]
test/dm/k210_pll.c

diff --git a/Kconfig b/Kconfig
index 2ea735d..d297513 100644 (file)
--- a/Kconfig
+++ b/Kconfig
@@ -312,9 +312,9 @@ config SYS_MALLOC_LEN
        default 0x4000000 if SANDBOX
        default 0x2000000 if ARCH_ROCKCHIP || ARCH_OMAP2PLUS || ARCH_MESON
        default 0x200000 if ARCH_BMIPS || X86
-       default 0x120000 if MACH_SUNIV
-       default 0x220000 if MACH_SUN8I_V3S
-       default 0x4020000 if ARCH_SUNXI
+       default 0x4020000 if SUNXI_MINIMUM_DRAM_MB >= 256
+       default 0x220000 if SUNXI_MINIMUM_DRAM_MB >= 64
+       default 0x120000 if SUNXI_MINIMUM_DRAM_MB >= 32
        default 0x400000
        help
          This defines memory to be allocated for Dynamic allocation
index 54bff65..eeb0839 100644 (file)
@@ -136,6 +136,7 @@ dtb-$(CONFIG_ROCKCHIP_RK3368) += \
 
 dtb-$(CONFIG_ROCKCHIP_RK3399) += \
        rk3399-evb.dtb \
+       rk3399-eaidk-610.dtb \
        rk3399-ficus.dtb \
        rk3399-firefly.dtb \
        rk3399-gru-bob.dtb \
@@ -713,7 +714,8 @@ dtb-$(CONFIG_MACH_SUN50I_H6) += \
        sun50i-h6-tanix-tx6.dtb \
        sun50i-h6-tanix-tx6-mini.dtb
 dtb-$(CONFIG_MACH_SUN50I_H616) += \
-       sun50i-h616-orangepi-zero2.dtb
+       sun50i-h616-orangepi-zero2.dtb \
+       sun50i-h616-x96-mate.dtb
 dtb-$(CONFIG_MACH_SUN50I) += \
        sun50i-a64-amarula-relic.dtb \
        sun50i-a64-bananapi-m64.dtb \
diff --git a/arch/arm/dts/rk3288-thermal.dtsi b/arch/arm/dts/rk3288-thermal.dtsi
deleted file mode 100644 (file)
index 87dd814..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/*
- * Device Tree Source for RK3288 SoC thermal
- *
- * Copyright (c) 2014, Fuzhou Rockchip Electronics Co., Ltd
- */
-
-#include <dt-bindings/thermal/thermal.h>
-
-reserve_thermal: reserve_thermal {
-       polling-delay-passive = <1000>; /* milliseconds */
-       polling-delay = <5000>; /* milliseconds */
-
-                       /* sensor       ID */
-       thermal-sensors = <&tsadc       0>;
-
-};
-
-cpu_thermal: cpu_thermal {
-       polling-delay-passive = <100>; /* milliseconds */
-       polling-delay = <5000>; /* milliseconds */
-
-                       /* sensor       ID */
-       thermal-sensors = <&tsadc       1>;
-       linux,hwmon;
-
-       trips {
-               cpu_alert0: cpu_alert0 {
-                       temperature = <70000>; /* millicelsius */
-                       hysteresis = <2000>; /* millicelsius */
-                       type = "passive";
-               };
-               cpu_alert1: cpu_alert1 {
-                       temperature = <75000>; /* millicelsius */
-                       hysteresis = <2000>; /* millicelsius */
-                       type = "passive";
-               };
-               cpu_crit: cpu_crit {
-                       temperature = <100000>; /* millicelsius */
-                       hysteresis = <2000>; /* millicelsius */
-                       type = "critical";
-               };
-       };
-
-       cooling-maps {
-               map0 {
-                       trip = <&cpu_alert0>;
-                       cooling-device =
-                               <&cpu0 THERMAL_NO_LIMIT 6>;
-               };
-               map1 {
-                       trip = <&cpu_alert1>;
-                       cooling-device =
-                               <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
-               };
-       };
-};
-
-gpu_thermal: gpu_thermal {
-       polling-delay-passive = <100>; /* milliseconds */
-       polling-delay = <5000>; /* milliseconds */
-
-                       /* sensor       ID */
-       thermal-sensors = <&tsadc       2>;
-       linux,hwmon;
-
-       trips {
-               gpu_alert0: gpu_alert0 {
-                       temperature = <80000>; /* millicelsius */
-                       hysteresis = <2000>; /* millicelsius */
-                       type = "passive";
-               };
-               gpu_crit: gpu_crit {
-                       temperature = <100000>; /* millicelsius */
-                       hysteresis = <2000>; /* millicelsius */
-                       type = "critical";
-               };
-       };
-
-       cooling-maps {
-               map0 {
-                       trip = <&gpu_alert0>;
-                       cooling-device =
-                               <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
-               };
-       };
-};
index ff7669e..40fee55 100644 (file)
                };
        };
 
-       edp {
-               edp_hpd: edp_hpd {
-                       rockchip,pins = <7 11 RK_FUNC_2 &pcfg_pull_down>;
-               };
-       };
-
        emmc {
                /* Make sure eMMC is not in reset */
                emmc_deassert_reset: emmc-deassert-reset {
index 4a9c27a..35db882 100644 (file)
        status = "okay";
 };
 
-&hdmi_audio {
-       status = "okay";
-};
-
 &gpu {
        status = "okay";
 };
index 53ee760..8c394c1 100644 (file)
@@ -15,6 +15,7 @@
 
        interrupt-parent = <&gic>;
        aliases {
+               ethernet0 = &gmac;
                i2c0 = &i2c0;
                i2c1 = &i2c1;
                i2c2 = &i2c2;
                spi2 = &spi2;
        };
 
+       arm-pmu {
+               compatible = "arm,cortex-a12-pmu";
+               interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
+       };
+
        cpus {
                #address-cells = <1>;
                #size-cells = <0>;
                        device_type = "cpu";
                        compatible = "arm,cortex-a12";
                        reg = <0x500>;
-                       operating-points = <
-                               /* KHz    uV */
-                               1800000 1400000
-                               1704000 1350000
-                               1608000 1300000
-                               1512000 1250000
-                               1416000 1200000
-                               1200000 1100000
-                               1008000 1050000
-                                816000 1000000
-                                696000  950000
-                                600000  900000
-                                408000  900000
-                                216000  900000
-                                126000  900000
-                       >;
+                       resets = <&cru SRST_CORE0>;
+                       operating-points-v2 = <&cpu_opp_table>;
                        #cooling-cells = <2>; /* min followed by max */
                        clock-latency = <40000>;
                        clocks = <&cru ARMCLK>;
-                       resets = <&cru SRST_CORE0>;
+                       dynamic-power-coefficient = <370>;
                };
-               cpu@501 {
+               cpu1: cpu@501 {
                        device_type = "cpu";
                        compatible = "arm,cortex-a12";
                        reg = <0x501>;
                        resets = <&cru SRST_CORE1>;
+                       operating-points-v2 = <&cpu_opp_table>;
+                       #cooling-cells = <2>; /* min followed by max */
+                       clock-latency = <40000>;
+                       clocks = <&cru ARMCLK>;
+                       dynamic-power-coefficient = <370>;
                };
-               cpu@502 {
+               cpu2: cpu@502 {
                        device_type = "cpu";
                        compatible = "arm,cortex-a12";
                        reg = <0x502>;
                        resets = <&cru SRST_CORE2>;
+                       operating-points-v2 = <&cpu_opp_table>;
+                       #cooling-cells = <2>; /* min followed by max */
+                       clock-latency = <40000>;
+                       clocks = <&cru ARMCLK>;
+                       dynamic-power-coefficient = <370>;
                };
-               cpu@503 {
+               cpu3: cpu@503 {
                        device_type = "cpu";
                        compatible = "arm,cortex-a12";
                        reg = <0x503>;
                        resets = <&cru SRST_CORE3>;
+                       operating-points-v2 = <&cpu_opp_table>;
+                       #cooling-cells = <2>; /* min followed by max */
+                       clock-latency = <40000>;
+                       clocks = <&cru ARMCLK>;
+                       dynamic-power-coefficient = <370>;
+               };
+       };
+
+       cpu_opp_table: opp-table-0 {
+               compatible = "operating-points-v2";
+               opp-shared;
+
+               opp-126000000 {
+                       opp-hz = /bits/ 64 <126000000>;
+                       opp-microvolt = <900000>;
+               };
+               opp-216000000 {
+                       opp-hz = /bits/ 64 <216000000>;
+                       opp-microvolt = <900000>;
+               };
+               opp-312000000 {
+                       opp-hz = /bits/ 64 <312000000>;
+                       opp-microvolt = <900000>;
+               };
+               opp-408000000 {
+                       opp-hz = /bits/ 64 <408000000>;
+                       opp-microvolt = <900000>;
+               };
+               opp-600000000 {
+                       opp-hz = /bits/ 64 <600000000>;
+                       opp-microvolt = <900000>;
+               };
+               opp-696000000 {
+                       opp-hz = /bits/ 64 <696000000>;
+                       opp-microvolt = <950000>;
+               };
+               opp-816000000 {
+                       opp-hz = /bits/ 64 <816000000>;
+                       opp-microvolt = <1000000>;
+               };
+               opp-1008000000 {
+                       opp-hz = /bits/ 64 <1008000000>;
+                       opp-microvolt = <1050000>;
+               };
+               opp-1200000000 {
+                       opp-hz = /bits/ 64 <1200000000>;
+                       opp-microvolt = <1100000>;
+               };
+               opp-1416000000 {
+                       opp-hz = /bits/ 64 <1416000000>;
+                       opp-microvolt = <1200000>;
+               };
+               opp-1512000000 {
+                       opp-hz = /bits/ 64 <1512000000>;
+                       opp-microvolt = <1300000>;
+               };
+               opp-1608000000 {
+                       opp-hz = /bits/ 64 <1608000000>;
+                       opp-microvolt = <1350000>;
+               };
+       };
+
+       reserved-memory {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               /*
+                * The rk3288 cannot use the memory area above 0xfe000000
+                * for dma operations for some reason. While there is
+                * probably a better solution available somewhere, we
+                * haven't found it yet and while devices with 2GB of ram
+                * are not affected, this issue prevents 4GB from booting.
+                * So to make these devices at least bootable, block
+                * this area for the time being until the real solution
+                * is found.
+                */
+               dma-unusable@fe000000 {
+                       reg = <0xfe000000 0x1000000>;
                };
        };
 
        };
 
        timer {
-               arm,use-physical-timer;
                compatible = "arm,armv7-timer";
+               arm,cpu-registers-not-fw-configured;
                interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
                             <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
                             <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
                             <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
                clock-frequency = <24000000>;
-               always-on;
+               arm,no-tick-in-suspend;
+       };
+
+       timer: timer@ff810000 {
+               compatible = "rockchip,rk3288-timer";
+               reg = <0x0 0xff810000 0x0 0x20>;
+               interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru PCLK_TIMER>, <&xin24m>;
+               clock-names = "pclk", "timer";
        };
 
        display-subsystem {
                fifo-depth = <0x100>;
                interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
                reg = <0xff0c0000 0x4000>;
+               resets = <&cru SRST_MMC0>;
+               reset-names = "reset";
                status = "disabled";
        };
 
                fifo-depth = <0x100>;
                interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
                reg = <0xff0d0000 0x4000>;
+               resets = <&cru SRST_SDIO0>;
+               reset-names = "reset";
                status = "disabled";
        };
 
                fifo-depth = <0x100>;
                interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
                reg = <0xff0e0000 0x4000>;
+               resets = <&cru SRST_SDIO1>;
+               reset-names = "reset";
                status = "disabled";
        };
 
                fifo-depth = <0x100>;
                interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
                reg = <0xff0f0000 0x4000>;
+               resets = <&cru SRST_EMMC>;
+               reset-names = "reset";
                status = "disabled";
        };
 
                #io-channel-cells = <1>;
                clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
                clock-names = "saradc", "apb_pclk";
+               resets = <&cru SRST_SARADC>;
+               reset-names = "saradc-apb";
                status = "disabled";
        };
 
                pinctrl-0 = <&i2c5_xfer>;
                status = "disabled";
        };
+
        uart0: serial@ff180000 {
                compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
                reg = <0xff180000 0x100>;
                reg-io-width = <4>;
                clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
                clock-names = "baudclk", "apb_pclk";
+               dmas = <&dmac_peri 1>, <&dmac_peri 2>;
+               dma-names = "tx", "rx";
                pinctrl-names = "default";
                pinctrl-0 = <&uart0_xfer>;
                status = "disabled";
                reg-io-width = <4>;
                clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
                clock-names = "baudclk", "apb_pclk";
+               dmas = <&dmac_peri 3>, <&dmac_peri 4>;
+               dma-names = "tx", "rx";
                pinctrl-names = "default";
                pinctrl-0 = <&uart1_xfer>;
                status = "disabled";
                pinctrl-0 = <&uart2_xfer>;
                status = "disabled";
        };
+
        uart3: serial@ff1b0000 {
                compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
                reg = <0xff1b0000 0x100>;
                reg-io-width = <4>;
                clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
                clock-names = "baudclk", "apb_pclk";
+               dmas = <&dmac_peri 7>, <&dmac_peri 8>;
+               dma-names = "tx", "rx";
                pinctrl-names = "default";
                pinctrl-0 = <&uart3_xfer>;
                status = "disabled";
                reg-io-width = <4>;
                clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>;
                clock-names = "baudclk", "apb_pclk";
+               dmas = <&dmac_peri 9>, <&dmac_peri 10>;
+               dma-names = "tx", "rx";
                pinctrl-names = "default";
                pinctrl-0 = <&uart4_xfer>;
                status = "disabled";
                interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
                #dma-cells = <1>;
-               broken-no-flushp;
+               arm,pl330-broken-no-flushp;
+               arm,pl330-periph-burst;
                clocks = <&cru ACLK_DMAC2>;
                clock-names = "apb_pclk";
        };
 
        thermal: thermal-zones {
-               #include "rk3288-thermal.dtsi"
+               reserve_thermal: reserve-thermal {
+                       polling-delay-passive = <1000>; /* milliseconds */
+                       polling-delay = <5000>; /* milliseconds */
+
+                       thermal-sensors = <&tsadc 0>;
+               };
+
+               cpu_thermal: cpu-thermal {
+                       polling-delay-passive = <100>; /* milliseconds */
+                       polling-delay = <5000>; /* milliseconds */
+
+                       thermal-sensors = <&tsadc 1>;
+
+                       trips {
+                               cpu_alert0: cpu_alert0 {
+                                       temperature = <70000>; /* millicelsius */
+                                       hysteresis = <2000>; /* millicelsius */
+                                       type = "passive";
+                               };
+                               cpu_alert1: cpu_alert1 {
+                                       temperature = <75000>; /* millicelsius */
+                                       hysteresis = <2000>; /* millicelsius */
+                                       type = "passive";
+                               };
+                               cpu_crit: cpu_crit {
+                                       temperature = <90000>; /* millicelsius */
+                                       hysteresis = <2000>; /* millicelsius */
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&cpu_alert0>;
+                                       cooling-device =
+                                               <&cpu0 THERMAL_NO_LIMIT 6>,
+                                               <&cpu1 THERMAL_NO_LIMIT 6>,
+                                               <&cpu2 THERMAL_NO_LIMIT 6>,
+                                               <&cpu3 THERMAL_NO_LIMIT 6>;
+                               };
+                               map1 {
+                                       trip = <&cpu_alert1>;
+                                       cooling-device =
+                                               <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                               <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                               <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                               <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+
+               gpu_thermal: gpu-thermal {
+                       polling-delay-passive = <100>; /* milliseconds */
+                       polling-delay = <5000>; /* milliseconds */
+
+                       thermal-sensors = <&tsadc 2>;
+
+                       trips {
+                               gpu_alert0: gpu_alert0 {
+                                       temperature = <70000>; /* millicelsius */
+                                       hysteresis = <2000>; /* millicelsius */
+                                       type = "passive";
+                               };
+                               gpu_crit: gpu_crit {
+                                       temperature = <90000>; /* millicelsius */
+                                       hysteresis = <2000>; /* millicelsius */
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&gpu_alert0>;
+                                       cooling-device =
+                                               <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
        };
 
        tsadc: tsadc@ff280000 {
                        "mac_clk_rx", "mac_clk_tx",
                        "clk_mac_ref", "clk_mac_refout",
                        "aclk_mac", "pclk_mac";
+               resets = <&cru SRST_MAC>;
+               reset-names = "stmmaceth";
        };
 
        usb_host0_ehci: usb@ff500000 {
                status = "disabled";
        };
 
-       /* NOTE: doesn't work on RK3288, but fixed on RK3288W */
+       /* NOTE: doesn't work on RK3288, but was fixed on RK3288W */
        usb_host0_ohci: usb@ff520000 {
                compatible = "generic-ohci";
                reg = <0x0 0xff520000 0x0 0x100>;
                interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cru HCLK_USBHOST1>;
                clock-names = "otg";
+               dr_mode = "host";
                phys = <&usbphy2>;
                phy-names = "usb2-phy";
+               snps,reset-phy-on-wake;
                status = "disabled";
        };
 
                clocks = <&cru HCLK_OTG0>;
                clock-names = "otg";
                dr_mode = "otg";
+               g-np-tx-fifo-size = <16>;
+               g-rx-fifo-size = <275>;
+               g-tx-fifo-size = <256 128 128 64 64 32>;
                phys = <&usbphy0>;
                phy-names = "usb2-phy";
                status = "disabled";
                interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
                #dma-cells = <1>;
-               broken-no-flushp;
+               arm,pl330-broken-no-flushp;
+               arm,pl330-periph-burst;
                clocks = <&cru ACLK_DMAC1>;
                clock-names = "apb_pclk";
                status = "disabled";
                status = "disabled";
        };
 
-       bus_intmem: bus_intmem@ff700000 {
+       bus_intmem: sram@ff700000 {
                compatible = "mmio-sram";
                reg = <0xff700000 0x18000>;
                #address-cells = <1>;
                };
        };
 
-       sram@ff720000 {
+       pmu_sram: sram@ff720000 {
                compatible = "rockchip,rk3288-pmu-sram", "mmio-sram";
                reg = <0xff720000 0x1000>;
        };
                compatible = "rockchip,rk3288-wdt", "snps,dw-wdt";
                reg = <0xff800000 0x100>;
                clocks = <&cru PCLK_WDT>;
-               interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
+               interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
                status = "disabled";
        };
 
                compatible = "rockchip,rk3288-spdif", "rockchip,rk3066-spdif";
                reg = <0xff8b0000 0x10000>;
                #sound-dai-cells = <0>;
-               clock-names = "hclk", "mclk";
-               clocks = <&cru HCLK_SPDIF8CH>, <&cru SCLK_SPDIF8CH>;
+               clocks = <&cru SCLK_SPDIF8CH>, <&cru HCLK_SPDIF8CH>;
+               clock-names = "mclk", "hclk";
                dmas = <&dmac_bus_s 3>;
                dma-names = "tx";
-               interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
+               interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
                pinctrl-names = "default";
                pinctrl-0 = <&spdif_tx>;
                rockchip,grf = <&grf>;
        i2s: i2s@ff890000 {
                compatible = "rockchip,rk3288-i2s", "rockchip,rk3066-i2s";
                reg = <0xff890000 0x10000>;
-               interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               #sound-dai-cells = <1>;
+               #sound-dai-cells = <0>;
+               interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru SCLK_I2S0>, <&cru HCLK_I2S0>;
+               clock-names = "i2s_clk", "i2s_hclk";
                dmas = <&dmac_bus_s 0>, <&dmac_bus_s 1>;
                dma-names = "tx", "rx";
-               clock-names = "i2s_hclk", "i2s_clk";
-               clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>;
                pinctrl-names = "default";
                pinctrl-0 = <&i2s0_bus>;
+               rockchip,playback-channels = <8>;
+               rockchip,capture-channels = <2>;
+               status = "disabled";
+       };
+
+       crypto: crypto@ff8a0000 {
+               compatible = "rockchip,rk3288-crypto";
+               reg = <0xff8a0000 0x4000>;
+               interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru ACLK_CRYPTO>, <&cru HCLK_CRYPTO>,
+                        <&cru SCLK_CRYPTO>, <&cru ACLK_DMAC1>;
+               clock-names = "aclk", "hclk", "sclk", "apb_pclk";
+               resets = <&cru SRST_CRYPTO>;
+               reset-names = "crypto-rst";
+       };
+
+       iep_mmu: iommu@ff900800 {
+               compatible = "rockchip,iommu";
+               reg = <0xff900800 0x40>;
+               interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru ACLK_IEP>, <&cru HCLK_IEP>;
+               clock-names = "aclk", "iface";
+               #iommu-cells = <0>;
                status = "disabled";
        };
 
+       isp_mmu: iommu@ff914000 {
+               compatible = "rockchip,iommu";
+               reg = <0xff914000 0x100>, <0xff915000 0x100>;
+               interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru ACLK_ISP>, <&cru HCLK_ISP>;
+               clock-names = "aclk", "iface";
+               #iommu-cells = <0>;
+               rockchip,disable-mmu-reset;
+               status = "disabled";
+       };
+
+       rga: rga@ff920000 {
+               compatible = "rockchip,rk3288-rga";
+               reg = <0xff920000 0x180>;
+               interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru ACLK_RGA>, <&cru HCLK_RGA>, <&cru SCLK_RGA>;
+               clock-names = "aclk", "hclk", "sclk";
+               power-domains = <&power RK3288_PD_VIO>;
+               resets = <&cru SRST_RGA_CORE>, <&cru SRST_RGA_AXI>, <&cru SRST_RGA_AHB>;
+               reset-names = "core", "axi", "ahb";
+       };
+
        vopb: vop@ff930000 {
                compatible = "rockchip,rk3288-vop";
                reg = <0xff930000 0x19c>;
                interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cru ACLK_VOP0>, <&cru DCLK_VOP0>, <&cru HCLK_VOP0>;
                clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
+               power-domains = <&power RK3288_PD_VIO>;
                resets = <&cru SRST_LCDC0_AXI>, <&cru SRST_LCDC0_AHB>, <&cru SRST_LCDC0_DCLK>;
                reset-names = "axi", "ahb", "dclk";
                iommus = <&vopb_mmu>;
-               power-domains = <&power RK3288_PD_VIO>;
                status = "disabled";
+
                vopb_out: port {
                        #address-cells = <1>;
                        #size-cells = <0>;
+
                        vopb_out_edp: endpoint@0 {
                                reg = <0>;
                                remote-endpoint = <&edp_in_vopb>;
                        };
+
                        vopb_out_hdmi: endpoint@1 {
                                reg = <1>;
                                remote-endpoint = <&hdmi_in_vopb>;
                        };
+
                        vopb_out_lvds: endpoint@2 {
                                reg = <2>;
                                remote-endpoint = <&lvds_in_vopb>;
                        };
+
                        vopb_out_mipi: endpoint@3 {
                                reg = <3>;
                                remote-endpoint = <&mipi_in_vopb>;
                        };
-
                };
        };
 
                compatible = "rockchip,iommu";
                reg = <0xff930300 0x100>;
                interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
-               interrupt-names = "vopb_mmu";
+               clocks = <&cru ACLK_VOP0>, <&cru HCLK_VOP0>;
+               clock-names = "aclk", "iface";
                power-domains = <&power RK3288_PD_VIO>;
                #iommu-cells = <0>;
                status = "disabled";
                interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cru ACLK_VOP1>, <&cru DCLK_VOP1>, <&cru HCLK_VOP1>;
                clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
+               power-domains = <&power RK3288_PD_VIO>;
                resets = <&cru SRST_LCDC1_AXI>, <&cru SRST_LCDC1_AHB>, <&cru SRST_LCDC1_DCLK>;
                reset-names = "axi", "ahb", "dclk";
                iommus = <&vopl_mmu>;
-               power-domains = <&power RK3288_PD_VIO>;
                status = "disabled";
+
                vopl_out: port {
                        #address-cells = <1>;
                        #size-cells = <0>;
+
                        vopl_out_edp: endpoint@0 {
                                reg = <0>;
                                remote-endpoint = <&edp_in_vopl>;
                        };
+
                        vopl_out_hdmi: endpoint@1 {
                                reg = <1>;
                                remote-endpoint = <&hdmi_in_vopl>;
                        };
+
                        vopl_out_lvds: endpoint@2 {
                                reg = <2>;
                                remote-endpoint = <&lvds_in_vopl>;
                        };
+
                        vopl_out_mipi: endpoint@3 {
                                reg = <3>;
                                remote-endpoint = <&mipi_in_vopl>;
                        };
-
                };
        };
 
                compatible = "rockchip,iommu";
                reg = <0xff940300 0x100>;
                interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
-               interrupt-names = "vopl_mmu";
+               clocks = <&cru ACLK_VOP1>, <&cru HCLK_VOP1>;
+               clock-names = "aclk", "iface";
                power-domains = <&power RK3288_PD_VIO>;
                #iommu-cells = <0>;
                status = "disabled";
        mipi_dsi: mipi@ff960000 {
                compatible = "rockchip,rk3288_mipi_dsi";
                reg = <0xff960000 0x4000>;
+               interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cru PCLK_MIPI_DSI0>;
                clock-names = "pclk_mipi";
-               /*pinctrl-names = "default";
-               pinctrl-0 = <&lcdc0_ctl>;*/
+               power-domains = <&power RK3288_PD_VIO>;
                rockchip,grf = <&grf>;
-               #address-cells = <1>;
-               #size-cells = <0>;
                status = "disabled";
+
                ports {
-                       reg = <1>;
                        mipi_in: port {
                                #address-cells = <1>;
                                #size-cells = <0>;
                clocks = <&cru PCLK_LVDS_PHY>;
                clock-names = "pclk_lvds";
                pinctrl-names = "default";
-               pinctrl-0 = <&lcdc0_ctl>;
+               pinctrl-0 = <&lcdc_ctl>;
+               power-domains = <&power RK3288_PD_VIO>;
                rockchip,grf = <&grf>;
                status = "disabled";
+
                ports {
                        #address-cells = <1>;
                        #size-cells = <0>;
+
                        lvds_in: port@0 {
                                reg = <0>;
+
                                #address-cells = <1>;
                                #size-cells = <0>;
+
                                lvds_in_vopb: endpoint@0 {
                                        reg = <0>;
                                        remote-endpoint = <&vopb_out_lvds>;
                reg = <0xff970000 0x4000>;
                interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cru SCLK_EDP>, <&cru SCLK_EDP_24M>, <&cru PCLK_EDP_CTRL>;
-               rockchip,grf = <&grf>;
                clock-names = "clk_edp", "clk_edp_24m", "pclk_edp";
-               resets = <&cru 111>;
+               resets = <&cru SRST_EDP>;
                reset-names = "edp";
+               rockchip,grf = <&grf>;
                power-domains = <&power RK3288_PD_VIO>;
                status = "disabled";
+
                ports {
                        edp_in: port {
                                #address-cells = <1>;
                compatible = "rockchip,rk3288-dw-hdmi";
                reg = <0xff980000 0x20000>;
                reg-io-width = <4>;
-               ddc-i2c-bus = <&i2c5>;
+               #sound-dai-cells = <0>;
                rockchip,grf = <&grf>;
                interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cru  PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_HDCP>;
                clock-names = "iahb", "isfr";
+               power-domains = <&power RK3288_PD_VIO>;
                status = "disabled";
+
                ports {
                        hdmi_in: port {
                                #address-cells = <1>;
                };
        };
 
-       hdmi_audio: hdmi_audio {
-               compatible = "rockchip,rk3288-hdmi-audio";
-               i2s-controller = <&i2s>;
-               status = "disable";
-       };
-
        vpu: video-codec@ff9a0000 {
                compatible = "rockchip,rk3288-vpu";
                reg = <0xff9a0000 0x800>;
                interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
-                               <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
+                            <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
                interrupt-names = "vepu", "vdpu";
                clocks = <&cru ACLK_VCODEC>, <&cru HCLK_VCODEC>;
-               clock-names = "aclk_vcodec", "hclk_vcodec";
-               power-domains = <&power RK3288_PD_VIDEO>;
+               clock-names = "aclk", "hclk";
                iommus = <&vpu_mmu>;
+               power-domains = <&power RK3288_PD_VIDEO>;
        };
 
        vpu_mmu: iommu@ff9a0800 {
                compatible = "rockchip,iommu";
                reg = <0xff9a0800 0x100>;
                interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
-               interrupt-names = "vpu_mmu";
+               clocks = <&cru ACLK_VCODEC>, <&cru HCLK_VCODEC>;
+               clock-names = "aclk", "iface";
+               #iommu-cells = <0>;
                power-domains = <&power RK3288_PD_VIDEO>;
+       };
+
+       hevc_mmu: iommu@ff9c0440 {
+               compatible = "rockchip,iommu";
+               reg = <0xff9c0440 0x40>, <0xff9c0480 0x40>;
+               interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru ACLK_HEVC>, <&cru HCLK_HEVC>;
+               clock-names = "aclk", "iface";
                #iommu-cells = <0>;
+               status = "disabled";
        };
 
        gpu: gpu@ffa30000 {
-               compatible = "arm,malit764",
-                            "arm,malit76x",
-                            "arm,malit7xx",
-                            "arm,mali-midgard";
+               compatible = "rockchip,rk3288-mali", "arm,mali-t760";
                reg = <0xffa30000 0x10000>;
                interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
-               interrupt-names = "JOB", "MMU", "GPU";
+               interrupt-names = "job", "mmu", "gpu";
                clocks = <&cru ACLK_GPU>;
-               clock-names = "aclk_gpu";
-               operating-points = <
-                       /* KHz uV */
-                       100000 950000
-                       200000 950000
-                       300000 1000000
-                       400000 1100000
-                       /* 500000 1200000 - See crosbug.com/p/33857 */
-                       600000 1250000
-               >;
+               operating-points-v2 = <&gpu_opp_table>;
+               #cooling-cells = <2>; /* min followed by max */
                power-domains = <&power RK3288_PD_GPU>;
                status = "disabled";
        };
 
+       gpu_opp_table: opp-table-1 {
+               compatible = "operating-points-v2";
+
+               opp-100000000 {
+                       opp-hz = /bits/ 64 <100000000>;
+                       opp-microvolt = <950000>;
+               };
+               opp-200000000 {
+                       opp-hz = /bits/ 64 <200000000>;
+                       opp-microvolt = <950000>;
+               };
+               opp-300000000 {
+                       opp-hz = /bits/ 64 <300000000>;
+                       opp-microvolt = <1000000>;
+               };
+               opp-400000000 {
+                       opp-hz = /bits/ 64 <400000000>;
+                       opp-microvolt = <1100000>;
+               };
+               opp-600000000 {
+                       opp-hz = /bits/ 64 <600000000>;
+                       opp-microvolt = <1250000>;
+               };
+       };
+
+       qos_gpu_r: qos@ffaa0000 {
+               compatible = "rockchip,rk3288-qos", "syscon";
+               reg = <0xffaa0000 0x20>;
+       };
+
+       qos_gpu_w: qos@ffaa0080 {
+               compatible = "rockchip,rk3288-qos", "syscon";
+               reg = <0xffaa0080 0x20>;
+       };
+
+       qos_vio1_vop: qos@ffad0000 {
+               compatible = "rockchip,rk3288-qos", "syscon";
+               reg = <0xffad0000 0x20>;
+       };
+
+       qos_vio1_isp_w0: qos@ffad0100 {
+               compatible = "rockchip,rk3288-qos", "syscon";
+               reg = <0xffad0100 0x20>;
+       };
+
+       qos_vio1_isp_w1: qos@ffad0180 {
+               compatible = "rockchip,rk3288-qos", "syscon";
+               reg = <0x0 0xffad0180 0x0 0x20>;
+       };
+
+       qos_vio0_vop: qos@ffad0400 {
+               compatible = "rockchip,rk3288-qos", "syscon";
+               reg = <0x0 0xffad0400 0x0 0x20>;
+       };
+
+       qos_vio0_vip: qos@ffad0480 {
+               compatible = "rockchip,rk3288-qos", "syscon";
+               reg = <0xffad0480 0x20>;
+       };
+
+       qos_vio0_iep: qos@ffad0500 {
+               compatible = "rockchip,rk3288-qos", "syscon";
+               reg = <0xffad0500 0x20>;
+       };
+
+       qos_vio2_rga_r: qos@ffad0800 {
+               compatible = "rockchip,rk3288-qos", "syscon";
+               reg = <0xffad0800 0x20>;
+       };
+
+       qos_vio2_rga_w: qos@ffad0880 {
+               compatible = "rockchip,rk3288-qos", "syscon";
+               reg = <0xffad0880 0x20>;
+       };
+
+       qos_vio1_isp_r: qos@ffad0900 {
+               compatible = "rockchip,rk3288-qos", "syscon";
+               reg = <0xffad0900 0x20>;
+       };
+
+       qos_video: qos@ffae0000 {
+               compatible = "rockchip,rk3288-qos", "syscon";
+               reg = <0xffae0000 0x20>;
+       };
+
+       qos_hevc_r: qos@ffaf0000 {
+               compatible = "rockchip,rk3288-qos", "syscon";
+               reg = <0xffaf0000 0x20>;
+       };
+
+       qos_hevc_w: qos@ffaf0080 {
+               compatible = "rockchip,rk3288-qos", "syscon";
+               reg = <0xffaf0080 0x20>;
+       };
+
        dmac_bus_s: dma-controller@ffb20000 {
                compatible = "arm,pl330", "arm,primecell";
                reg = <0xffb20000 0x4000>;
                interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
                #dma-cells = <1>;
-               broken-no-flushp;
+               arm,pl330-broken-no-flushp;
+               arm,pl330-periph-burst;
                clocks = <&cru ACLK_DMAC1>;
                clock-names = "apb_pclk";
        };
        efuse: efuse@ffb40000 {
                compatible = "rockchip,rk3288-efuse";
                reg = <0xffb40000 0x10000>;
-               status = "disabled";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               clocks = <&cru PCLK_EFUSE256>;
+               clock-names = "pclk_efuse";
+
+               cpu_id: cpu-id@7 {
+                       reg = <0x07 0x10>;
+               };
+               cpu_leakage: cpu_leakage@17 {
+                       reg = <0x17 0x1>;
+               };
        };
 
        gic: interrupt-controller@ffc01000 {
 
                gpio0: gpio0@ff750000 {
                        compatible = "rockchip,gpio-bank";
-                       reg =   <0xff750000 0x100>;
+                       reg = <0xff750000 0x100>;
                        interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cru PCLK_GPIO0>;
 
                        hdmi_cec_c0: hdmi-cec-c0 {
                                rockchip,pins = <7 RK_PC0 2 &pcfg_pull_none>;
                        };
+
+                       hdmi_cec_c7: hdmi-cec-c7 {
+                               rockchip,pins = <7 RK_PC7 4 &pcfg_pull_none>;
+                       };
+
+                       hdmi_ddc: hdmi-ddc {
+                               rockchip,pins = <7 RK_PC3 2 &pcfg_pull_none>,
+                                               <7 RK_PC4 2 &pcfg_pull_none>;
+                       };
+
+                       hdmi_ddc_unwedge: hdmi-ddc-unwedge {
+                               rockchip,pins = <7 RK_PC3 RK_FUNC_GPIO &pcfg_output_low>,
+                                               <7 RK_PC4 2 &pcfg_pull_none>;
+                       };
+               };
+
+               pcfg_output_low: pcfg-output-low {
+                       output-low;
                };
 
                pcfg_pull_up: pcfg-pull-up {
                        drive-strength = <12>;
                };
 
-               sleep {
+               suspend {
                        global_pwroff: global-pwroff {
                                rockchip,pins = <0 RK_PA0 1 &pcfg_pull_none>;
                        };
                        };
                };
 
+               edp {
+                       edp_hpd: edp-hpd {
+                               rockchip,pins = <7 RK_PB3 2 &pcfg_pull_down>;
+                       };
+               };
+
                i2c0 {
                        i2c0_xfer: i2c0-xfer {
                                rockchip,pins = <0 RK_PB7 1 &pcfg_pull_none>,
                        };
                };
 
-               lcdc0 {
-                       lcdc0_ctl: lcdc0-ctl {
+               lcdc {
+                       lcdc_ctl: lcdc-ctl {
                                rockchip,pins = <1 RK_PD0 1 &pcfg_pull_none>,
                                                <1 RK_PD1 1 &pcfg_pull_none>,
                                                <1 RK_PD2 1 &pcfg_pull_none>,
                                rockchip,pins = <6 RK_PC5 1 &pcfg_pull_up>;
                        };
 
-                       sdmmc_cd: sdmcc-cd {
+                       sdmmc_cd: sdmmc-cd {
                                rockchip,pins = <6 RK_PC6 1 &pcfg_pull_up>;
                        };
 
                        };
 
                        uart0_cts: uart0-cts {
-                               rockchip,pins = <4 RK_PC2 1 &pcfg_pull_none>;
+                               rockchip,pins = <4 RK_PC2 1 &pcfg_pull_up>;
                        };
 
                        uart0_rts: uart0-rts {
                        };
 
                        uart1_cts: uart1-cts {
-                               rockchip,pins = <5 RK_PB2 1 &pcfg_pull_none>;
+                               rockchip,pins = <5 RK_PB2 1 &pcfg_pull_up>;
                        };
 
                        uart1_rts: uart1-rts {
                        };
 
                        uart3_cts: uart3-cts {
-                               rockchip,pins = <7 RK_PB1 1 &pcfg_pull_none>;
+                               rockchip,pins = <7 RK_PB1 1 &pcfg_pull_up>;
                        };
 
                        uart3_rts: uart3-rts {
 
                uart4 {
                        uart4_xfer: uart4-xfer {
-                               rockchip,pins = <5 RK_PB4 3 &pcfg_pull_up>,
-                                               <5 RK_PB5 3 &pcfg_pull_none>;
+                               rockchip,pins = <5 RK_PB7 3 &pcfg_pull_up>,
+                                               <5 RK_PB6 3 &pcfg_pull_none>;
                        };
 
                        uart4_cts: uart4-cts {
-                               rockchip,pins = <5 RK_PB6 3 &pcfg_pull_none>;
+                               rockchip,pins = <5 RK_PB4 3 &pcfg_pull_up>;
                        };
 
                        uart4_rts: uart4-rts {
-                               rockchip,pins = <5 RK_PB7 3 &pcfg_pull_none>;
+                               rockchip,pins = <5 RK_PB5 3 &pcfg_pull_none>;
                        };
                };
 
                tsadc {
+                       otp_pin: otp-pin {
+                               rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
+                       };
+
                        otp_out: otp-out {
                                rockchip,pins = <0 RK_PB2 1 &pcfg_pull_none>;
                        };
diff --git a/arch/arm/dts/rk3399-eaidk-610-u-boot.dtsi b/arch/arm/dts/rk3399-eaidk-610-u-boot.dtsi
new file mode 100644 (file)
index 0000000..a3f2756
--- /dev/null
@@ -0,0 +1,18 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (c) 2022 Andy Yan <andy.yan@gmail.com>
+ */
+
+#include "rk3399-u-boot.dtsi"
+#include "rk3399-sdram-lpddr3-4GB-1600.dtsi"
+
+/ {
+       chosen {
+               stdout-path = "serial2:1500000n8";
+               u-boot,spl-boot-order = "same-as-spl", &sdhci, &sdmmc;
+       };
+};
+
+&vdd_log {
+       regulator-init-microvolt = <950000>;
+};
diff --git a/arch/arm/dts/rk3399-eaidk-610.dts b/arch/arm/dts/rk3399-eaidk-610.dts
new file mode 100644 (file)
index 0000000..d1f3433
--- /dev/null
@@ -0,0 +1,939 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2022 Fuzhou Rockchip Electronics Co., Ltd.
+ */
+
+/dts-v1/;
+#include <dt-bindings/input/linux-event-codes.h>
+#include <dt-bindings/pwm/pwm.h>
+#include <dt-bindings/usb/pd.h>
+#include "rk3399.dtsi"
+#include "rk3399-opp.dtsi"
+
+/ {
+       model = "OPEN AI LAB EAIDK-610";
+       compatible = "openailab,eaidk-610", "rockchip,rk3399";
+
+       aliases {
+               mmc0 = &sdio0;
+               mmc1 = &sdmmc;
+               mmc2 = &sdhci;
+       };
+
+       backlight: backlight {
+               compatible = "pwm-backlight";
+               pwms = <&pwm0 0 25000 0>;
+               brightness-levels = <
+                         0   1   2   3   4   5   6   7
+                         8   9  10  11  12  13  14  15
+                        16  17  18  19  20  21  22  23
+                        24  25  26  27  28  29  30  31
+                        32  33  34  35  36  37  38  39
+                        40  41  42  43  44  45  46  47
+                        48  49  50  51  52  53  54  55
+                        56  57  58  59  60  61  62  63
+                        64  65  66  67  68  69  70  71
+                        72  73  74  75  76  77  78  79
+                        80  81  82  83  84  85  86  87
+                        88  89  90  91  92  93  94  95
+                        96  97  98  99 100 101 102 103
+                       104 105 106 107 108 109 110 111
+                       112 113 114 115 116 117 118 119
+                       120 121 122 123 124 125 126 127
+                       128 129 130 131 132 133 134 135
+                       136 137 138 139 140 141 142 143
+                       144 145 146 147 148 149 150 151
+                       152 153 154 155 156 157 158 159
+                       160 161 162 163 164 165 166 167
+                       168 169 170 171 172 173 174 175
+                       176 177 178 179 180 181 182 183
+                       184 185 186 187 188 189 190 191
+                       192 193 194 195 196 197 198 199
+                       200 201 202 203 204 205 206 207
+                       208 209 210 211 212 213 214 215
+                       216 217 218 219 220 221 222 223
+                       224 225 226 227 228 229 230 231
+                       232 233 234 235 236 237 238 239
+                       240 241 242 243 244 245 246 247
+                       248 249 250 251 252 253 254 255>;
+               default-brightness-level = <200>;
+       };
+
+       clkin_gmac: external-gmac-clock {
+               compatible = "fixed-clock";
+               clock-frequency = <125000000>;
+               clock-output-names = "clkin_gmac";
+               #clock-cells = <0>;
+       };
+
+       dc_12v: dc-12v {
+               compatible = "regulator-fixed";
+               regulator-name = "dc_12v";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <12000000>;
+               regulator-max-microvolt = <12000000>;
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               autorepeat;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pwrbtn>;
+
+               key-power {
+                       debounce-interval = <100>;
+                       gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
+                       label = "GPIO Key Power";
+                       linux,code = <KEY_POWER>;
+                       wakeup-source;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&work_led_pin>, <&user_led_pin>,
+                           <&heartbeat_led_pin>, <&wlan_active_led_pin>,
+                           <&bt_active_led_pin>;
+
+               work_led: led-0 {
+                       label = "blue:work";
+                       default-state = "on";
+                       gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>;
+               };
+
+               user_led: led-1 {
+                       label = "read:user";
+                       default-state = "off";
+                       gpios = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>;
+               };
+
+               heartbeat_led: led-2 {
+                       label = "green:heartbeat";
+                       linux,default-trigger = "heartbeat";
+                       gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>;
+               };
+
+               wlan_active_led: led-3 {
+                       label = "yellow:wlan";
+                       gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "phy0tx";
+                       default-state = "off";
+               };
+
+               bt_active_led: led-4 {
+                       label = "blue:bt";
+                       gpios = <&gpio2 RK_PD4 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "hci0-power";
+                       default-state = "off";
+               };
+       };
+
+       rt5651-sound {
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "realtek,rt5651-codec";
+               simple-audio-card,format = "i2s";
+               simple-audio-card,mclk-fs = <256>;
+               simple-audio-card,widgets =
+                       "Microphone", "Mic Jack",
+                       "Headphone", "Headphone Jack";
+               simple-audio-card,routing =
+                       "Mic Jack", "MICBIAS1",
+                       "IN1P", "Mic Jack",
+                       "Headphone Jack", "HPOL",
+                       "Headphone Jack", "HPOR";
+               simple-audio-card,cpu {
+                       sound-dai = <&i2s1>;
+               };
+               simple-audio-card,codec {
+                       sound-dai = <&rt5651>;
+               };
+       };
+
+       sdio_pwrseq: sdio-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               clocks = <&rk808 1>;
+               clock-names = "ext_clock";
+               pinctrl-names = "default";
+               pinctrl-0 = <&wifi_enable_h>;
+
+               /*
+                * On the module itself this is one of these (depending
+                * on the actual card populated):
+                * - SDIO_RESET_L_WL_REG_ON
+                * - PDN (power down when low)
+                */
+               reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>;
+       };
+
+       /* switched by pmic_sleep */
+       vcc1v8_s3: vcca1v8_s3: vcc1v8-s3 {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc1v8_s3";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               vin-supply = <&vcc_1v8>;
+       };
+
+       vcc3v3_sys: vcc3v3-sys {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc3v3_sys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&dc_12v>;
+       };
+
+       vcc5v0_sys: vcc5v0-sys {
+               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>;
+       };
+
+       /* For USB3.0 Port1/2 */
+       vcc5v0_host1: vcc5v0-host1-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vcc5v0_host1_en>;
+               regulator-name = "vcc5v0_host1";
+               regulator-always-on;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       /* For USB2.0 Port1/2 */
+       vcc5v0_host3: vcc5v0-host3-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio0 RK_PB0 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vcc5v0_host3_en>;
+               regulator-name = "vcc5v0_host3";
+               regulator-always-on;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc5v0_typec: vcc5v0-typec-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio4 RK_PC5 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vcc5v0_typec_en>;
+               regulator-name = "vcc5v0_typec";
+               regulator-always-on;
+               vin-supply = <&vcc3v3_sys>;
+       };
+
+       vdd_log: vdd-log {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_log";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <900000>;
+               regulator-max-microvolt = <900000>;
+       };
+};
+
+&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";
+};
+
+&gmac {
+       assigned-clocks = <&cru SCLK_RMII_SRC>;
+       assigned-clock-parents = <&clkin_gmac>;
+       clock_in_out = "input";
+       phy-supply = <&vcc_lan>;
+       phy-mode = "rgmii";
+       pinctrl-names = "default";
+       pinctrl-0 = <&rgmii_pins>;
+       snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
+       snps,reset-active-low;
+       snps,reset-delays-us = <0 10000 50000>;
+       tx_delay = <0x28>;
+       rx_delay = <0x11>;
+       status = "okay";
+};
+
+&gpu {
+       mali-supply = <&vdd_gpu>;
+       status = "okay";
+};
+
+&hdmi {
+       ddc-i2c-bus = <&i2c3>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&hdmi_cec>;
+       status = "okay";
+};
+
+&i2c0 {
+       status = "okay";
+
+       rk808: pmic@1b {
+               compatible = "rockchip,rk808";
+               reg = <0x1b>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pmic_int_l>;
+               rockchip,system-power-controller;
+               wakeup-source;
+               #clock-cells = <1>;
+               clock-output-names = "xin32k", "rk808-clkout2";
+
+               vcc1-supply = <&vcc3v3_sys>;
+               vcc2-supply = <&vcc3v3_sys>;
+               vcc3-supply = <&vcc3v3_sys>;
+               vcc4-supply = <&vcc3v3_sys>;
+               vcc6-supply = <&vcc3v3_sys>;
+               vcc7-supply = <&vcc3v3_sys>;
+               vcc8-supply = <&vcc3v3_sys>;
+               vcc9-supply = <&vcc3v3_sys>;
+               vcc10-supply = <&vcc3v3_sys>;
+               vcc11-supply = <&vcc3v3_sys>;
+               vcc12-supply = <&vcc3v3_sys>;
+               vddio-supply = <&vcc_3v0>;
+
+               regulators {
+                       vdd_center: DCDC_REG1 {
+                               regulator-name = "vdd_center";
+                               regulator-min-microvolt = <750000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-ramp-delay = <6001>;
+                               regulator-always-on;
+                               regulator-boot-on;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_cpu_l: DCDC_REG2 {
+                               regulator-name = "vdd_cpu_l";
+                               regulator-min-microvolt = <750000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-ramp-delay = <6001>;
+                               regulator-always-on;
+                               regulator-boot-on;
+
+                               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-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       vcc1v8_dvp: LDO_REG1 {
+                               regulator-name = "vcc1v8_dvp";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc2v8_dvp: LDO_REG2 {
+                               regulator-name = "vcc2v8_dvp";
+                               regulator-min-microvolt = <2800000>;
+                               regulator-max-microvolt = <2800000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc1v8_pmu: LDO_REG3 {
+                               regulator-name = "vcc1v8_pmu";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       vcc_sdio: LDO_REG4 {
+                               regulator-name = "vcc_sdio";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3000000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3000000>;
+                               };
+                       };
+
+                       vcca3v0_codec: LDO_REG5 {
+                               regulator-name = "vcca3v0_codec";
+                               regulator-min-microvolt = <3000000>;
+                               regulator-max-microvolt = <3000000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_1v5: LDO_REG6 {
+                               regulator-name = "vcc_1v5";
+                               regulator-min-microvolt = <1500000>;
+                               regulator-max-microvolt = <1500000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1500000>;
+                               };
+                       };
+
+                       vcca1v8_codec: LDO_REG7 {
+                               regulator-name = "vcca1v8_codec";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_3v0: LDO_REG8 {
+                               regulator-name = "vcc_3v0";
+                               regulator-min-microvolt = <3000000>;
+                               regulator-max-microvolt = <3000000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3000000>;
+                               };
+                       };
+
+                       vcc3v3_s3: vcc_lan: SWITCH_REG1 {
+                               regulator-name = "vcc3v3_s3";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc3v3_s0: SWITCH_REG2 {
+                               regulator-name = "vcc3v3_s0";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+               };
+       };
+
+       vdd_cpu_b: regulator@40 {
+               compatible = "silergy,syr827";
+               reg = <0x40>;
+               fcs,suspend-voltage-selector = <1>;
+               regulator-name = "vdd_cpu_b";
+               pinctrl-names = "default";
+               pinctrl-0 = <&vsel1_pin>;
+               regulator-min-microvolt = <712500>;
+               regulator-max-microvolt = <1500000>;
+               regulator-ramp-delay = <1000>;
+               regulator-always-on;
+               regulator-boot-on;
+               vin-supply = <&vcc3v3_sys>;
+
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+
+       vdd_gpu: regulator@41 {
+               compatible = "silergy,syr828";
+               reg = <0x41>;
+               fcs,suspend-voltage-selector = <1>;
+               regulator-name = "vdd_gpu";
+               pinctrl-names = "default";
+               pinctrl-0 = <&vsel2_pin>;
+               regulator-min-microvolt = <712500>;
+               regulator-max-microvolt = <1500000>;
+               regulator-ramp-delay = <1000>;
+               regulator-always-on;
+               regulator-boot-on;
+               vin-supply = <&vcc3v3_sys>;
+
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+};
+
+&i2c1 {
+       i2c-scl-rising-time-ns = <300>;
+       i2c-scl-falling-time-ns = <15>;
+       status = "okay";
+
+       rt5651: audio-codec@1a {
+               compatible = "rockchip,rt5651";
+               reg = <0x1a>;
+               clocks = <&cru SCLK_I2S_8CH_OUT>;
+               clock-names = "mclk";
+               hp-det-gpio = <&gpio4 RK_PD4 GPIO_ACTIVE_LOW>;
+               spk-con-gpio = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
+               #sound-dai-cells = <0>;
+       };
+
+};
+
+&i2c3 {
+       i2c-scl-rising-time-ns = <450>;
+       i2c-scl-falling-time-ns = <15>;
+       status = "okay";
+};
+
+&i2c4 {
+       i2c-scl-rising-time-ns = <600>;
+       i2c-scl-falling-time-ns = <20>;
+       status = "okay";
+
+       fusb0: typec-portc@22 {
+               compatible = "fcs,fusb302";
+               reg = <0x22>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&fusb0_int>;
+               vbus-supply = <&vcc5v0_typec>;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+                               usbc0_role_sw: endpoint@0 {
+                                       remote-endpoint = <&dwc3_0_role_switch>;
+                               };
+                       };
+               };
+
+               connector {
+                       compatible = "usb-c-connector";
+                       data-role = "dual";
+                       label = "USB-C";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       usbc_hs: endpoint {
+                                               remote-endpoint = <&u2phy0_typec_hs>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       usbc_ss: endpoint {
+                                               remote-endpoint = <&tcphy0_typec_ss>;
+                                       };
+                               };
+                       };
+               };
+       };
+};
+
+&i2s1 {
+       rockchip,playback-channels = <2>;
+       rockchip,capture-channels = <2>;
+       status = "okay";
+};
+
+&i2s2 {
+       status = "okay";
+};
+
+&io_domains {
+       status = "okay";
+
+       audio-supply = <&vcca1v8_codec>;
+       bt656-supply = <&vcc_3v0>;
+       gpio1830-supply = <&vcc_3v0>;
+       sdmmc-supply = <&vcc_sdio>;
+};
+
+&pmu_io_domains {
+       status = "okay";
+
+       pmu1830-supply = <&vcc_3v0>;
+};
+
+&pinctrl {
+       buttons {
+               pwrbtn: pwrbtn {
+                       rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       bt {
+               bt_enable_h: bt-enable-h {
+                       rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               bt_host_wake_l: bt-host-wake-l {
+                       rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               bt_wake_l: bt-wake-l {
+                       rockchip,pins = <2 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       fusb302x {
+               fusb0_int: fusb0-int {
+                       rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       lcd-panel {
+               lcd_panel_reset: lcd-panel-reset {
+                       rockchip,pins = <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       leds {
+               work_led_pin: work-led-pin {
+                       rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               user_led_pin: user-led-pin {
+                       rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               heartbeat_led_pin: heartbeat-led-pin {
+                       rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               wlan_active_led_pin: wlan-led-pin {
+                       rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               bt_active_led_pin: bt-led-pin {
+                       rockchip,pins = <2 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+
+       };
+
+       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>;
+               };
+       };
+
+       rt5651 {
+               rt5651_hpcon: rt5640-hpcon {
+                       rockchip,pins = <4 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       sdio-pwrseq {
+               wifi_enable_h: wifi-enable-h {
+                       rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       usb-typec {
+               vcc5v0_typec_en: vcc5v0_typec_en {
+                       rockchip,pins = <4 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       usb2 {
+               vcc5v0_host3_en: vcc5v0-host3-en {
+                       rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               vcc5v0_host1_en: vcc5v0-host1-en {
+                       rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       wifi {
+               wifi_host_wake_l: wifi-host-wake-l {
+                       rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+&pwm0 {
+       status = "okay";
+};
+
+&saradc {
+       vref-supply = <&vcca1v8_s3>;
+       status = "okay";
+};
+
+&sdio0 {
+       /* WiFi & BT combo module AMPAK AP6255 */
+       #address-cells = <1>;
+       #size-cells = <0>;
+       bus-width = <4>;
+       clock-frequency = <50000000>;
+       cap-sdio-irq;
+       cap-sd-highspeed;
+       keep-power-in-suspend;
+       mmc-pwrseq = <&sdio_pwrseq>;
+       non-removable;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
+       sd-uhs-sdr104;
+       status = "okay";
+
+       brcmf: wifi@1 {
+               compatible = "brcm,bcm4329-fmac";
+               reg = <1>;
+               interrupt-parent = <&gpio0>;
+               interrupts = <RK_PA3 GPIO_ACTIVE_HIGH>;
+               interrupt-names = "host-wake";
+               pinctrl-names = "default";
+               pinctrl-0 = <&wifi_host_wake_l>;
+       };
+};
+
+&sdmmc {
+       bus-width = <4>;
+       cap-mmc-highspeed;
+       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_bus4>;
+       status = "okay";
+};
+
+&sdhci {
+       bus-width = <8>;
+       non-removable;
+       status = "okay";
+};
+
+&tcphy0 {
+       status = "okay";
+};
+
+&tcphy0_usb3 {
+       orientation-switch;
+       port {
+               tcphy0_typec_ss: endpoint {
+                       remote-endpoint = <&usbc_ss>;
+               };
+       };
+};
+
+&tcphy1 {
+       status = "okay";
+};
+
+&tsadc {
+       /* tshut mode 0:CRU 1:GPIO */
+       rockchip,hw-tshut-mode = <1>;
+       /* tshut polarity 0:LOW 1:HIGH */
+       rockchip,hw-tshut-polarity = <1>;
+       status = "okay";
+};
+
+&u2phy0 {
+       status = "okay";
+
+       u2phy0_otg: otg-port {
+               status = "okay";
+       };
+
+       u2phy0_host: host-port {
+               phy-supply = <&vcc5v0_host3>;
+               status = "okay";
+       };
+
+       port {
+               u2phy0_typec_hs: endpoint {
+                       remote-endpoint = <&usbc_hs>;
+               };
+       };
+};
+
+&u2phy1 {
+       status = "okay";
+
+       u2phy1_otg: otg-port {
+               status = "okay";
+       };
+
+       u2phy1_host: host-port {
+               phy-supply = <&vcc5v0_host3>;
+               status = "okay";
+       };
+};
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
+       status = "okay";
+
+       bluetooth {
+               compatible = "brcm,bcm4345c5";
+               clocks = <&rk808 1>;
+               clock-names = "lpo";
+               device-wakeup-gpios = <&gpio2 RK_PD2 GPIO_ACTIVE_HIGH>;
+               host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>;
+               shutdown-gpios = <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>;
+               max-speed = <1500000>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&bt_host_wake_l &bt_wake_l &bt_enable_h>;
+               vbat-supply = <&vcc3v3_sys>;
+               vddio-supply = <&vcc_1v8>;
+       };
+};
+
+&uart2 {
+       status = "okay";
+};
+
+&usb_host0_ehci {
+       status = "okay";
+};
+
+&usb_host0_ohci {
+       status = "okay";
+};
+
+&usb_host1_ehci {
+       status = "okay";
+};
+
+&usb_host1_ohci {
+       status = "okay";
+};
+
+&usbdrd3_0 {
+       status = "okay";
+};
+
+&usbdrd_dwc3_0 {
+       status = "okay";
+       usb-role-switch;
+
+       port {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               dwc3_0_role_switch: endpoint@0 {
+                       reg = <0>;
+                       remote-endpoint = <&usbc0_role_sw>;
+               };
+       };
+};
+
+&usbdrd3_1 {
+       status = "okay";
+};
+
+&usbdrd_dwc3_1 {
+       status = "okay";
+       dr_mode = "host";
+};
+
+&vopb {
+       status = "okay";
+};
+
+&vopb_mmu {
+       status = "okay";
+};
+
+&vopl {
+       status = "okay";
+};
+
+&vopl_mmu {
+       status = "okay";
+};
index e0476ab..f8335c7 100644 (file)
@@ -14,7 +14,7 @@
 
 / {
        config {
-               u-boot,spl-payload-offset = <0x40000>; /* @ 256KB */
+               u-boot,spl-payload-offset = <0x80000>; /* @ 512KB */
                u-boot,mmc-env-offset = <0x4000>;      /* @  16KB */
                u-boot,efi-partition-entries-offset = <0x200000>; /* 2MB */
                u-boot,boot-led = "module_led";
                spi5 = &spi5;
        };
 
-       /*
-        * The Qseven BIOS_DISABLE signal on the RK3399-Q7 keeps the on-module
-        * eMMC and SPI flash powered-down initially (in fact it keeps the
-        * reset signal asserted).  Even though it is an enable signal, we
-        * model this as a regulator.
-        */
-       bios_enable: bios_enable {
-               compatible = "regulator-fixed";
-               u-boot,dm-pre-reloc;
-               regulator-name = "bios_enable";
-               enable-active-high;
-               gpio = <&gpio3 RK_PD5 GPIO_ACTIVE_LOW>;
-               regulator-always-on;
-               regulator-boot-on;
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-       };
-
        vdd_log: vdd-log {
                compatible = "pwm-regulator";
                pwms = <&pwm2 0 25000 1>;
        };
 };
 
+&binman {
+       simple-bin {
+               blob {
+                       offset = <((CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR - 64) * 512)>;
+               };
+       };
+
+#ifdef CONFIG_ROCKCHIP_SPI_IMAGE
+       simple-bin-spi {
+               blob {
+                       /* same as u-boot,spl-payload-offset */
+                       offset = <0x80000>;
+               };
+       };
+#endif
+};
+
 &gpio1 {
        u-boot,dm-pre-reloc;
 };
 
 &gpio3 {
        u-boot,dm-pre-reloc;
+
+       /*
+        * The Qseven BIOS_DISABLE signal on the RK3399-Q7 keeps the on-module
+        * eMMC and SPI flash powered-down initially (in fact it keeps the
+        * reset signal asserted). BIOS_DISABLE_OVERRIDE pin allows to re-enable
+        * eMMC and SPI after the SPL has been booted from SD Card.
+        */
+       bios_disable_override {
+               u-boot,dm-pre-reloc;
+               gpios = <RK_PD5 GPIO_ACTIVE_LOW>;
+               output-high;
+               line-name = "bios_disable_override";
+               gpio-hog;
+       };
+};
+
+&gpio4 {
+       u-boot,dm-pre-reloc;
 };
 
 &norflash {
        u-boot,dm-pre-reloc;
 };
+
+&pcfg_pull_none {
+       u-boot,dm-pre-reloc;
+};
+
+&pcfg_pull_up {
+       u-boot,dm-pre-reloc;
+};
+
+&sdmmc_bus4 {
+       u-boot,dm-pre-reloc;
+};
+
+&sdmmc_clk {
+       u-boot,dm-pre-reloc;
+};
+
+&sdmmc_cmd {
+       u-boot,dm-pre-reloc;
+};
diff --git a/arch/arm/dts/rk3566.dtsi b/arch/arm/dts/rk3566.dtsi
new file mode 100644 (file)
index 0000000..6c4b17d
--- /dev/null
@@ -0,0 +1,35 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+#include "rk356x.dtsi"
+
+/ {
+       compatible = "rockchip,rk3566";
+};
+
+&pipegrf {
+       compatible = "rockchip,rk3566-pipe-grf", "syscon";
+};
+
+&power {
+       power-domain@RK3568_PD_PIPE {
+               reg = <RK3568_PD_PIPE>;
+               clocks = <&cru PCLK_PIPE>;
+               pm_qos = <&qos_pcie2x1>,
+                        <&qos_sata1>,
+                        <&qos_sata2>,
+                        <&qos_usb3_0>,
+                        <&qos_usb3_1>;
+               #power-domain-cells = <0>;
+       };
+};
+
+&usb_host0_xhci {
+       phys = <&usb2phy0_otg>;
+       phy-names = "usb2-phy";
+       extcon = <&usb2phy0>;
+       maximum-speed = "high-speed";
+};
+
+&vop {
+       compatible = "rockchip,rk3566-vop";
+};
index b03cbea..17503d3 100644 (file)
@@ -3,7 +3,7 @@
  * (C) Copyright 2021 Rockchip Electronics Co., Ltd
  */
 
-#include "rk3568-u-boot.dtsi"
+#include "rk356x-u-boot.dtsi"
 
 / {
        chosen {
index a588ca9..8f90c66 100644 (file)
                                <4 RK_PA0 3 &pcfg_pull_none_drv_level_2>;
                };
        };
+
+       tsadc {
+               /omit-if-no-ref/
+               tsadc_pin: tsadc-pin {
+                       rockchip,pins =
+                               /* tsadc_pin */
+                               <0 RK_PA1 0 &pcfg_pull_none>;
+               };
+       };
 };
index 12a071e..2bdf8c7 100644 (file)
  * Copyright (c) 2021 Rockchip Electronics Co., Ltd.
  */
 
-#include <dt-bindings/clock/rk3568-cru.h>
-#include <dt-bindings/interrupt-controller/arm-gic.h>
-#include <dt-bindings/interrupt-controller/irq.h>
-#include <dt-bindings/phy/phy.h>
-#include <dt-bindings/pinctrl/rockchip.h>
-#include <dt-bindings/soc/rockchip,boot-mode.h>
-#include <dt-bindings/thermal/thermal.h>
+#include "rk356x.dtsi"
 
 / {
        compatible = "rockchip,rk3568";
 
-       interrupt-parent = <&gic>;
-       #address-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;
-               serial0 = &uart0;
-               serial1 = &uart1;
-               serial2 = &uart2;
-               serial3 = &uart3;
-               serial4 = &uart4;
-               serial5 = &uart5;
-               serial6 = &uart6;
-               serial7 = &uart7;
-               serial8 = &uart8;
-               serial9 = &uart9;
-       };
-
-       cpus {
-               #address-cells = <2>;
-               #size-cells = <0>;
-
-               cpu0: cpu@0 {
-                       device_type = "cpu";
-                       compatible = "arm,cortex-a55";
-                       reg = <0x0 0x0>;
-                       clocks = <&scmi_clk 0>;
-                       enable-method = "psci";
-                       operating-points-v2 = <&cpu0_opp_table>;
-               };
-
-               cpu1: cpu@100 {
-                       device_type = "cpu";
-                       compatible = "arm,cortex-a55";
-                       reg = <0x0 0x100>;
-                       enable-method = "psci";
-                       operating-points-v2 = <&cpu0_opp_table>;
-               };
-
-               cpu2: cpu@200 {
-                       device_type = "cpu";
-                       compatible = "arm,cortex-a55";
-                       reg = <0x0 0x200>;
-                       enable-method = "psci";
-                       operating-points-v2 = <&cpu0_opp_table>;
-               };
-
-               cpu3: cpu@300 {
-                       device_type = "cpu";
-                       compatible = "arm,cortex-a55";
-                       reg = <0x0 0x300>;
-                       enable-method = "psci";
-                       operating-points-v2 = <&cpu0_opp_table>;
-               };
-       };
-
-       cpu0_opp_table: cpu0-opp-table {
-               compatible = "operating-points-v2";
-               opp-shared;
-
-               opp-408000000 {
-                       opp-hz = /bits/ 64 <408000000>;
-                       opp-microvolt = <900000 900000 1150000>;
-                       clock-latency-ns = <40000>;
-               };
-
-               opp-600000000 {
-                       opp-hz = /bits/ 64 <600000000>;
-                       opp-microvolt = <900000 900000 1150000>;
-               };
-
-               opp-816000000 {
-                       opp-hz = /bits/ 64 <816000000>;
-                       opp-microvolt = <900000 900000 1150000>;
-                       opp-suspend;
-               };
-
-               opp-1104000000 {
-                       opp-hz = /bits/ 64 <1104000000>;
-                       opp-microvolt = <900000 900000 1150000>;
-               };
-
-               opp-1416000000 {
-                       opp-hz = /bits/ 64 <1416000000>;
-                       opp-microvolt = <900000 900000 1150000>;
-               };
-
-               opp-1608000000 {
-                       opp-hz = /bits/ 64 <1608000000>;
-                       opp-microvolt = <975000 975000 1150000>;
-               };
-
-               opp-1800000000 {
-                       opp-hz = /bits/ 64 <1800000000>;
-                       opp-microvolt = <1050000 1050000 1150000>;
-               };
-
-               opp-1992000000 {
-                       opp-hz = /bits/ 64 <1992000000>;
-                       opp-microvolt = <1150000 1150000 1150000>;
-               };
-       };
-
-       firmware {
-               scmi: scmi {
-                       compatible = "arm,scmi-smc";
-                       arm,smc-id = <0x82000010>;
-                       shmem = <&scmi_shmem>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-
-                       scmi_clk: protocol@14 {
-                               reg = <0x14>;
-                               #clock-cells = <1>;
-                       };
-               };
-
-       };
-
-       pmu {
-               compatible = "arm,cortex-a55-pmu";
-               interrupts = <GIC_SPI 228 IRQ_TYPE_LEVEL_HIGH>,
-                            <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>,
-                            <GIC_SPI 230 IRQ_TYPE_LEVEL_HIGH>,
-                            <GIC_SPI 231 IRQ_TYPE_LEVEL_HIGH>;
-               interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
-       };
-
-       psci {
-               compatible = "arm,psci-1.0";
-               method = "smc";
-       };
-
-       timer {
-               compatible = "arm,armv8-timer";
-               interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>,
-                            <GIC_PPI 14 IRQ_TYPE_LEVEL_HIGH>,
-                            <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>,
-                            <GIC_PPI 10 IRQ_TYPE_LEVEL_HIGH>;
-               arm,no-tick-in-suspend;
-       };
-
-       xin24m: xin24m {
-               compatible = "fixed-clock";
-               clock-frequency = <24000000>;
-               clock-output-names = "xin24m";
-               #clock-cells = <0>;
-       };
-
-       xin32k: xin32k {
-               compatible = "fixed-clock";
-               clock-frequency = <32768>;
-               clock-output-names = "xin32k";
-               pinctrl-0 = <&clk32k_out0>;
-               pinctrl-names = "default";
-               #clock-cells = <0>;
-       };
-
-       sram@10f000 {
-               compatible = "mmio-sram";
-               reg = <0x0 0x0010f000 0x0 0x100>;
-
-               #address-cells = <1>;
-               #size-cells = <1>;
-               ranges = <0 0x0 0x0010f000 0x100>;
-
-               scmi_shmem: sram@0 {
-                       compatible = "arm,scmi-shmem";
-                       reg = <0x0 0x100>;
-               };
-       };
-
-       gic: interrupt-controller@fd400000 {
-               compatible = "arm,gic-v3";
-               reg = <0x0 0xfd400000 0 0x10000>, /* GICD */
-                     <0x0 0xfd460000 0 0x80000>; /* GICR */
-               interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
-               interrupt-controller;
-               #interrupt-cells = <3>;
-               mbi-alias = <0x0 0xfd100000>;
-               mbi-ranges = <296 24>;
-               msi-controller;
-       };
-
-       pmugrf: syscon@fdc20000 {
-               compatible = "rockchip,rk3568-pmugrf", "syscon", "simple-mfd";
-               reg = <0x0 0xfdc20000 0x0 0x10000>;
-       };
-
-       grf: syscon@fdc60000 {
-               compatible = "rockchip,rk3568-grf", "syscon", "simple-mfd";
-               reg = <0x0 0xfdc60000 0x0 0x10000>;
-       };
-
-       pmucru: clock-controller@fdd00000 {
-               compatible = "rockchip,rk3568-pmucru";
-               reg = <0x0 0xfdd00000 0x0 0x1000>;
-               #clock-cells = <1>;
-               #reset-cells = <1>;
-       };
-
-       cru: clock-controller@fdd20000 {
-               compatible = "rockchip,rk3568-cru";
-               reg = <0x0 0xfdd20000 0x0 0x1000>;
-               #clock-cells = <1>;
-               #reset-cells = <1>;
-       };
-
-       i2c0: i2c@fdd40000 {
-               compatible = "rockchip,rk3568-i2c", "rockchip,rk3399-i2c";
-               reg = <0x0 0xfdd40000 0x0 0x1000>;
-               interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&pmucru CLK_I2C0>, <&pmucru PCLK_I2C0>;
-               clock-names = "i2c", "pclk";
-               pinctrl-0 = <&i2c0_xfer>;
-               pinctrl-names = "default";
-               #address-cells = <1>;
-               #size-cells = <0>;
+       sata0: sata@fc000000 {
+               compatible = "rockchip,rk3568-dwc-ahci", "snps,dwc-ahci";
+               reg = <0 0xfc000000 0 0x1000>;
+               clocks = <&cru ACLK_SATA0>, <&cru CLK_SATA0_PMALIVE>,
+                        <&cru CLK_SATA0_RXOOB>;
+               clock-names = "sata", "pmalive", "rxoob";
+               interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
+               phys = <&combphy0 PHY_TYPE_SATA>;
+               phy-names = "sata-phy";
+               ports-implemented = <0x1>;
+               power-domains = <&power RK3568_PD_PIPE>;
                status = "disabled";
        };
 
-       uart0: serial@fdd50000 {
-               compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
-               reg = <0x0 0xfdd50000 0x0 0x100>;
-               interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&pmucru SCLK_UART0>, <&pmucru PCLK_UART0>;
-               clock-names = "baudclk", "apb_pclk";
-               dmas = <&dmac0 0>, <&dmac0 1>;
-               pinctrl-0 = <&uart0_xfer>;
-               pinctrl-names = "default";
-               reg-io-width = <4>;
-               reg-shift = <2>;
-               status = "disabled";
+       pipe_phy_grf0: syscon@fdc70000 {
+               compatible = "rockchip,rk3568-pipe-phy-grf", "syscon";
+               reg = <0x0 0xfdc70000 0x0 0x1000>;
        };
 
-       pwm0: pwm@fdd70000 {
-               compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
-               reg = <0x0 0xfdd70000 0x0 0x10>;
-               clocks = <&pmucru CLK_PWM0>, <&pmucru PCLK_PWM0>;
-               clock-names = "pwm", "pclk";
-               pinctrl-0 = <&pwm0m0_pins>;
-               pinctrl-names = "active";
-               #pwm-cells = <3>;
-               status = "disabled";
+       qos_pcie3x1: qos@fe190080 {
+               compatible = "rockchip,rk3568-qos", "syscon";
+               reg = <0x0 0xfe190080 0x0 0x20>;
        };
 
-       pwm1: pwm@fdd70010 {
-               compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
-               reg = <0x0 0xfdd70010 0x0 0x10>;
-               clocks = <&pmucru CLK_PWM0>, <&pmucru PCLK_PWM0>;
-               clock-names = "pwm", "pclk";
-               pinctrl-0 = <&pwm1m0_pins>;
-               pinctrl-names = "active";
-               #pwm-cells = <3>;
-               status = "disabled";
+       qos_pcie3x2: qos@fe190100 {
+               compatible = "rockchip,rk3568-qos", "syscon";
+               reg = <0x0 0xfe190100 0x0 0x20>;
        };
 
-       pwm2: pwm@fdd70020 {
-               compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
-               reg = <0x0 0xfdd70020 0x0 0x10>;
-               clocks = <&pmucru CLK_PWM0>, <&pmucru PCLK_PWM0>;
-               clock-names = "pwm", "pclk";
-               pinctrl-0 = <&pwm2m0_pins>;
-               pinctrl-names = "active";
-               #pwm-cells = <3>;
-               status = "disabled";
+       qos_sata0: qos@fe190200 {
+               compatible = "rockchip,rk3568-qos", "syscon";
+               reg = <0x0 0xfe190200 0x0 0x20>;
        };
 
-       pwm3: pwm@fdd70030 {
-               compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
-               reg = <0x0 0xfdd70030 0x0 0x10>;
-               clocks = <&pmucru CLK_PWM0>, <&pmucru PCLK_PWM0>;
-               clock-names = "pwm", "pclk";
-               pinctrl-0 = <&pwm3_pins>;
-               pinctrl-names = "active";
-               #pwm-cells = <3>;
-               status = "disabled";
-       };
-
-       sdmmc2: mmc@fe000000 {
-               compatible = "rockchip,rk3568-dw-mshc", "rockchip,rk3288-dw-mshc";
-               reg = <0x0 0xfe000000 0x0 0x4000>;
-               interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&cru HCLK_SDMMC2>, <&cru CLK_SDMMC2>,
-                        <&cru SCLK_SDMMC2_DRV>, <&cru SCLK_SDMMC2_SAMPLE>;
-               clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
-               fifo-depth = <0x100>;
-               max-frequency = <150000000>;
-               resets = <&cru SRST_SDMMC2>;
-               reset-names = "reset";
-               status = "disabled";
-       };
-
-       sdmmc0: mmc@fe2b0000 {
-               compatible = "rockchip,rk3568-dw-mshc", "rockchip,rk3288-dw-mshc";
-               reg = <0x0 0xfe2b0000 0x0 0x4000>;
-               interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&cru HCLK_SDMMC0>, <&cru CLK_SDMMC0>,
-                        <&cru SCLK_SDMMC0_DRV>, <&cru SCLK_SDMMC0_SAMPLE>;
-               clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
-               fifo-depth = <0x100>;
-               max-frequency = <150000000>;
-               resets = <&cru SRST_SDMMC0>;
-               reset-names = "reset";
-               status = "disabled";
-       };
-
-       sdmmc1: mmc@fe2c0000 {
-               compatible = "rockchip,rk3568-dw-mshc", "rockchip,rk3288-dw-mshc";
-               reg = <0x0 0xfe2c0000 0x0 0x4000>;
-               interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&cru HCLK_SDMMC1>, <&cru CLK_SDMMC1>,
-                        <&cru SCLK_SDMMC1_DRV>, <&cru SCLK_SDMMC1_SAMPLE>;
-               clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
-               fifo-depth = <0x100>;
-               max-frequency = <150000000>;
-               resets = <&cru SRST_SDMMC1>;
-               reset-names = "reset";
-               status = "disabled";
-       };
-
-       sdhci: mmc@fe310000 {
-               compatible = "rockchip,rk3568-dwcmshc";
-               reg = <0x0 0xfe310000 0x0 0x10000>;
-               interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
-               assigned-clocks = <&cru BCLK_EMMC>, <&cru TCLK_EMMC>;
-               assigned-clock-rates = <200000000>, <24000000>;
-               clocks = <&cru CCLK_EMMC>, <&cru HCLK_EMMC>,
-                        <&cru ACLK_EMMC>, <&cru BCLK_EMMC>,
-                        <&cru TCLK_EMMC>;
-               clock-names = "core", "bus", "axi", "block", "timer";
-               status = "disabled";
-       };
-
-       dmac0: dmac@fe530000 {
-               compatible = "arm,pl330", "arm,primecell";
-               reg = <0x0 0xfe530000 0x0 0x4000>;
-               interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
-                            <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
-               arm,pl330-periph-burst;
-               clocks = <&cru ACLK_BUS>;
-               clock-names = "apb_pclk";
-               #dma-cells = <1>;
-       };
-
-       dmac1: dmac@fe550000 {
-               compatible = "arm,pl330", "arm,primecell";
-               reg = <0x0 0xfe550000 0x0 0x4000>;
-               interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
-                            <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
-               arm,pl330-periph-burst;
-               clocks = <&cru ACLK_BUS>;
-               clock-names = "apb_pclk";
-               #dma-cells = <1>;
-       };
-
-       i2c1: i2c@fe5a0000 {
-               compatible = "rockchip,rk3568-i2c", "rockchip,rk3399-i2c";
-               reg = <0x0 0xfe5a0000 0x0 0x1000>;
-               interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&cru CLK_I2C1>, <&cru PCLK_I2C1>;
-               clock-names = "i2c", "pclk";
-               pinctrl-0 = <&i2c1_xfer>;
-               pinctrl-names = "default";
-               #address-cells = <1>;
-               #size-cells = <0>;
-               status = "disabled";
-       };
-
-       i2c2: i2c@fe5b0000 {
-               compatible = "rockchip,rk3568-i2c", "rockchip,rk3399-i2c";
-               reg = <0x0 0xfe5b0000 0x0 0x1000>;
-               interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&cru CLK_I2C2>, <&cru PCLK_I2C2>;
-               clock-names = "i2c", "pclk";
-               pinctrl-0 = <&i2c2m0_xfer>;
-               pinctrl-names = "default";
-               #address-cells = <1>;
-               #size-cells = <0>;
-               status = "disabled";
-       };
-
-       i2c3: i2c@fe5c0000 {
-               compatible = "rockchip,rk3568-i2c", "rockchip,rk3399-i2c";
-               reg = <0x0 0xfe5c0000 0x0 0x1000>;
-               interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&cru CLK_I2C3>, <&cru PCLK_I2C3>;
-               clock-names = "i2c", "pclk";
-               pinctrl-0 = <&i2c3m0_xfer>;
-               pinctrl-names = "default";
-               #address-cells = <1>;
-               #size-cells = <0>;
-               status = "disabled";
-       };
-
-       i2c4: i2c@fe5d0000 {
-               compatible = "rockchip,rk3568-i2c", "rockchip,rk3399-i2c";
-               reg = <0x0 0xfe5d0000 0x0 0x1000>;
-               interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&cru CLK_I2C4>, <&cru PCLK_I2C4>;
-               clock-names = "i2c", "pclk";
-               pinctrl-0 = <&i2c4m0_xfer>;
-               pinctrl-names = "default";
-               #address-cells = <1>;
-               #size-cells = <0>;
-               status = "disabled";
-       };
-
-       i2c5: i2c@fe5e0000 {
-               compatible = "rockchip,rk3568-i2c", "rockchip,rk3399-i2c";
-               reg = <0x0 0xfe5e0000 0x0 0x1000>;
-               interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&cru CLK_I2C5>, <&cru PCLK_I2C5>;
-               clock-names = "i2c", "pclk";
-               pinctrl-0 = <&i2c5m0_xfer>;
-               pinctrl-names = "default";
-               #address-cells = <1>;
-               #size-cells = <0>;
-               status = "disabled";
-       };
-
-       wdt: watchdog@fe600000 {
-               compatible = "rockchip,rk3568-wdt", "snps,dw-wdt";
-               reg = <0x0 0xfe600000 0x0 0x100>;
-               interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&cru TCLK_WDT_NS>, <&cru PCLK_WDT_NS>;
-               clock-names = "tclk", "pclk";
-       };
-
-       uart1: serial@fe650000 {
-               compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
-               reg = <0x0 0xfe650000 0x0 0x100>;
-               interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
-               clock-names = "baudclk", "apb_pclk";
-               dmas = <&dmac0 2>, <&dmac0 3>;
-               pinctrl-0 = <&uart1m0_xfer>;
-               pinctrl-names = "default";
-               reg-io-width = <4>;
-               reg-shift = <2>;
-               status = "disabled";
-       };
-
-       uart2: serial@fe660000 {
-               compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
-               reg = <0x0 0xfe660000 0x0 0x100>;
-               interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
-               clock-names = "baudclk", "apb_pclk";
-               dmas = <&dmac0 4>, <&dmac0 5>;
-               pinctrl-0 = <&uart2m0_xfer>;
-               pinctrl-names = "default";
-               reg-io-width = <4>;
-               reg-shift = <2>;
-               status = "disabled";
-       };
-
-       uart3: serial@fe670000 {
-               compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
-               reg = <0x0 0xfe670000 0x0 0x100>;
-               interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
-               clock-names = "baudclk", "apb_pclk";
-               dmas = <&dmac0 6>, <&dmac0 7>;
-               pinctrl-0 = <&uart3m0_xfer>;
-               pinctrl-names = "default";
-               reg-io-width = <4>;
-               reg-shift = <2>;
-               status = "disabled";
-       };
-
-       uart4: serial@fe680000 {
-               compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
-               reg = <0x0 0xfe680000 0x0 0x100>;
-               interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>;
-               clock-names = "baudclk", "apb_pclk";
-               dmas = <&dmac0 8>, <&dmac0 9>;
-               pinctrl-0 = <&uart4m0_xfer>;
-               pinctrl-names = "default";
-               reg-io-width = <4>;
-               reg-shift = <2>;
-               status = "disabled";
-       };
-
-       uart5: serial@fe690000 {
-               compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
-               reg = <0x0 0xfe690000 0x0 0x100>;
-               interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&cru SCLK_UART5>, <&cru PCLK_UART5>;
-               clock-names = "baudclk", "apb_pclk";
-               dmas = <&dmac0 10>, <&dmac0 11>;
-               pinctrl-0 = <&uart5m0_xfer>;
-               pinctrl-names = "default";
-               reg-io-width = <4>;
-               reg-shift = <2>;
-               status = "disabled";
-       };
-
-       uart6: serial@fe6a0000 {
-               compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
-               reg = <0x0 0xfe6a0000 0x0 0x100>;
-               interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&cru SCLK_UART6>, <&cru PCLK_UART6>;
-               clock-names = "baudclk", "apb_pclk";
-               dmas = <&dmac0 12>, <&dmac0 13>;
-               pinctrl-0 = <&uart6m0_xfer>;
-               pinctrl-names = "default";
-               reg-io-width = <4>;
-               reg-shift = <2>;
-               status = "disabled";
-       };
-
-       uart7: serial@fe6b0000 {
-               compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
-               reg = <0x0 0xfe6b0000 0x0 0x100>;
-               interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&cru SCLK_UART7>, <&cru PCLK_UART7>;
-               clock-names = "baudclk", "apb_pclk";
-               dmas = <&dmac0 14>, <&dmac0 15>;
-               pinctrl-0 = <&uart7m0_xfer>;
-               pinctrl-names = "default";
-               reg-io-width = <4>;
-               reg-shift = <2>;
-               status = "disabled";
-       };
-
-       uart8: serial@fe6c0000 {
-               compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
-               reg = <0x0 0xfe6c0000 0x0 0x100>;
-               interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&cru SCLK_UART8>, <&cru PCLK_UART8>;
-               clock-names = "baudclk", "apb_pclk";
-               dmas = <&dmac0 16>, <&dmac0 17>;
-               pinctrl-0 = <&uart8m0_xfer>;
-               pinctrl-names = "default";
-               reg-io-width = <4>;
-               reg-shift = <2>;
-               status = "disabled";
-       };
-
-       uart9: serial@fe6d0000 {
-               compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
-               reg = <0x0 0xfe6d0000 0x0 0x100>;
-               interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&cru SCLK_UART9>, <&cru PCLK_UART9>;
-               clock-names = "baudclk", "apb_pclk";
-               dmas = <&dmac0 18>, <&dmac0 19>;
-               pinctrl-0 = <&uart9m0_xfer>;
-               pinctrl-names = "default";
-               reg-io-width = <4>;
-               reg-shift = <2>;
-               status = "disabled";
-       };
-
-       pwm4: pwm@fe6e0000 {
-               compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
-               reg = <0x0 0xfe6e0000 0x0 0x10>;
-               clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
-               clock-names = "pwm", "pclk";
-               pinctrl-0 = <&pwm4_pins>;
-               pinctrl-names = "active";
-               #pwm-cells = <3>;
-               status = "disabled";
-       };
-
-       pwm5: pwm@fe6e0010 {
-               compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
-               reg = <0x0 0xfe6e0010 0x0 0x10>;
-               clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
-               clock-names = "pwm", "pclk";
-               pinctrl-0 = <&pwm5_pins>;
-               pinctrl-names = "active";
-               #pwm-cells = <3>;
-               status = "disabled";
-       };
-
-       pwm6: pwm@fe6e0020 {
-               compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
-               reg = <0x0 0xfe6e0020 0x0 0x10>;
-               clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
-               clock-names = "pwm", "pclk";
-               pinctrl-0 = <&pwm6_pins>;
-               pinctrl-names = "active";
-               #pwm-cells = <3>;
-               status = "disabled";
-       };
-
-       pwm7: pwm@fe6e0030 {
-               compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
-               reg = <0x0 0xfe6e0030 0x0 0x10>;
-               clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
-               clock-names = "pwm", "pclk";
-               pinctrl-0 = <&pwm7_pins>;
-               pinctrl-names = "active";
-               #pwm-cells = <3>;
+       gmac0: ethernet@fe2a0000 {
+               compatible = "rockchip,rk3568-gmac", "snps,dwmac-4.20a";
+               reg = <0x0 0xfe2a0000 0x0 0x10000>;
+               interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "macirq", "eth_wake_irq";
+               clocks = <&cru SCLK_GMAC0>, <&cru SCLK_GMAC0_RX_TX>,
+                        <&cru SCLK_GMAC0_RX_TX>, <&cru CLK_MAC0_REFOUT>,
+                        <&cru ACLK_GMAC0>, <&cru PCLK_GMAC0>,
+                        <&cru SCLK_GMAC0_RX_TX>, <&cru CLK_GMAC0_PTP_REF>;
+               clock-names = "stmmaceth", "mac_clk_rx",
+                             "mac_clk_tx", "clk_mac_refout",
+                             "aclk_mac", "pclk_mac",
+                             "clk_mac_speed", "ptp_ref";
+               resets = <&cru SRST_A_GMAC0>;
+               reset-names = "stmmaceth";
+               rockchip,grf = <&grf>;
+               snps,axi-config = <&gmac0_stmmac_axi_setup>;
+               snps,mixed-burst;
+               snps,mtl-rx-config = <&gmac0_mtl_rx_setup>;
+               snps,mtl-tx-config = <&gmac0_mtl_tx_setup>;
+               snps,tso;
                status = "disabled";
-       };
 
-       pwm8: pwm@fe6f0000 {
-               compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
-               reg = <0x0 0xfe6f0000 0x0 0x10>;
-               clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
-               clock-names = "pwm", "pclk";
-               pinctrl-0 = <&pwm8m0_pins>;
-               pinctrl-names = "active";
-               #pwm-cells = <3>;
-               status = "disabled";
-       };
+               mdio0: mdio {
+                       compatible = "snps,dwmac-mdio";
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+               };
 
-       pwm9: pwm@fe6f0010 {
-               compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
-               reg = <0x0 0xfe6f0010 0x0 0x10>;
-               clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
-               clock-names = "pwm", "pclk";
-               pinctrl-0 = <&pwm9m0_pins>;
-               pinctrl-names = "active";
-               #pwm-cells = <3>;
-               status = "disabled";
-       };
+               gmac0_stmmac_axi_setup: stmmac-axi-config {
+                       snps,blen = <0 0 0 0 16 8 4>;
+                       snps,rd_osr_lmt = <8>;
+                       snps,wr_osr_lmt = <4>;
+               };
 
-       pwm10: pwm@fe6f0020 {
-               compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
-               reg = <0x0 0xfe6f0020 0x0 0x10>;
-               clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
-               clock-names = "pwm", "pclk";
-               pinctrl-0 = <&pwm10m0_pins>;
-               pinctrl-names = "active";
-               #pwm-cells = <3>;
-               status = "disabled";
-       };
+               gmac0_mtl_rx_setup: rx-queues-config {
+                       snps,rx-queues-to-use = <1>;
+                       queue0 {};
+               };
 
-       pwm11: pwm@fe6f0030 {
-               compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
-               reg = <0x0 0xfe6f0030 0x0 0x10>;
-               clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
-               clock-names = "pwm", "pclk";
-               pinctrl-0 = <&pwm11m0_pins>;
-               pinctrl-names = "active";
-               #pwm-cells = <3>;
-               status = "disabled";
+               gmac0_mtl_tx_setup: tx-queues-config {
+                       snps,tx-queues-to-use = <1>;
+                       queue0 {};
+               };
        };
 
-       pwm12: pwm@fe700000 {
-               compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
-               reg = <0x0 0xfe700000 0x0 0x10>;
-               clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
-               clock-names = "pwm", "pclk";
-               pinctrl-0 = <&pwm12m0_pins>;
-               pinctrl-names = "active";
-               #pwm-cells = <3>;
+       combphy0: phy@fe820000 {
+               compatible = "rockchip,rk3568-naneng-combphy";
+               reg = <0x0 0xfe820000 0x0 0x100>;
+               clocks = <&pmucru CLK_PCIEPHY0_REF>,
+                        <&cru PCLK_PIPEPHY0>,
+                        <&cru PCLK_PIPE>;
+               clock-names = "ref", "apb", "pipe";
+               assigned-clocks = <&pmucru CLK_PCIEPHY0_REF>;
+               assigned-clock-rates = <100000000>;
+               resets = <&cru SRST_PIPEPHY0>;
+               rockchip,pipe-grf = <&pipegrf>;
+               rockchip,pipe-phy-grf = <&pipe_phy_grf0>;
+               #phy-cells = <1>;
                status = "disabled";
        };
+};
 
-       pwm13: pwm@fe700010 {
-               compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
-               reg = <0x0 0xfe700010 0x0 0x10>;
-               clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
-               clock-names = "pwm", "pclk";
-               pinctrl-0 = <&pwm13m0_pins>;
-               pinctrl-names = "active";
-               #pwm-cells = <3>;
-               status = "disabled";
+&cpu0_opp_table {
+       opp-1992000000 {
+               opp-hz = /bits/ 64 <1992000000>;
+               opp-microvolt = <1150000 1150000 1150000>;
        };
+};
 
-       pwm14: pwm@fe700020 {
-               compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
-               reg = <0x0 0xfe700020 0x0 0x10>;
-               clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
-               clock-names = "pwm", "pclk";
-               pinctrl-0 = <&pwm14m0_pins>;
-               pinctrl-names = "active";
-               #pwm-cells = <3>;
-               status = "disabled";
-       };
+&pipegrf {
+       compatible = "rockchip,rk3568-pipe-grf", "syscon";
+};
 
-       pwm15: pwm@fe700030 {
-               compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
-               reg = <0x0 0xfe700030 0x0 0x10>;
-               clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
-               clock-names = "pwm", "pclk";
-               pinctrl-0 = <&pwm15m0_pins>;
-               pinctrl-names = "active";
-               #pwm-cells = <3>;
-               status = "disabled";
+&power {
+       power-domain@RK3568_PD_PIPE {
+               reg = <RK3568_PD_PIPE>;
+               clocks = <&cru PCLK_PIPE>;
+               pm_qos = <&qos_pcie2x1>,
+                        <&qos_pcie3x1>,
+                        <&qos_pcie3x2>,
+                        <&qos_sata0>,
+                        <&qos_sata1>,
+                        <&qos_sata2>,
+                        <&qos_usb3_0>,
+                        <&qos_usb3_1>;
+               #power-domain-cells = <0>;
        };
+};
 
-       pinctrl: pinctrl {
-               compatible = "rockchip,rk3568-pinctrl";
-               rockchip,grf = <&grf>;
-               rockchip,pmu = <&pmugrf>;
-               #address-cells = <2>;
-               #size-cells = <2>;
-               ranges;
-
-               gpio0: gpio@fdd60000 {
-                       compatible = "rockchip,gpio-bank";
-                       reg = <0x0 0xfdd60000 0x0 0x100>;
-                       interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&pmucru PCLK_GPIO0>, <&pmucru DBCLK_GPIO0>;
-                       gpio-controller;
-                       #gpio-cells = <2>;
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpio1: gpio@fe740000 {
-                       compatible = "rockchip,gpio-bank";
-                       reg = <0x0 0xfe740000 0x0 0x100>;
-                       interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&cru PCLK_GPIO1>, <&cru DBCLK_GPIO1>;
-                       gpio-controller;
-                       #gpio-cells = <2>;
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpio2: gpio@fe750000 {
-                       compatible = "rockchip,gpio-bank";
-                       reg = <0x0 0xfe750000 0x0 0x100>;
-                       interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&cru PCLK_GPIO2>, <&cru DBCLK_GPIO2>;
-                       gpio-controller;
-                       #gpio-cells = <2>;
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpio3: gpio@fe760000 {
-                       compatible = "rockchip,gpio-bank";
-                       reg = <0x0 0xfe760000 0x0 0x100>;
-                       interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&cru PCLK_GPIO3>, <&cru DBCLK_GPIO3>;
-                       gpio-controller;
-                       #gpio-cells = <2>;
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpio4: gpio@fe770000 {
-                       compatible = "rockchip,gpio-bank";
-                       reg = <0x0 0xfe770000 0x0 0x100>;
-                       interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&cru PCLK_GPIO4>, <&cru DBCLK_GPIO4>;
-                       gpio-controller;
-                       #gpio-cells = <2>;
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-       };
+&usb_host0_xhci {
+       phys = <&usb2phy0_otg>, <&combphy0 PHY_TYPE_USB3>;
+       phy-names = "usb2-phy", "usb3-phy";
 };
 
-#include "rk3568-pinctrl.dtsi"
+&vop {
+       compatible = "rockchip,rk3568-vop";
+};
similarity index 94%
rename from arch/arm/dts/rk3568-u-boot.dtsi
rename to arch/arm/dts/rk356x-u-boot.dtsi
index fa9b6ae..ccb8db0 100644 (file)
        status = "okay";
 };
 
-&sdmmc0 {
+&sdhci {
        u-boot,dm-spl;
        status = "okay";
 };
 
-&sdhci {
-       bus-width = <8>;
+&sdmmc0 {
        u-boot,dm-spl;
-       mmc-hs200-1_8v;
        status = "okay";
 };
-
diff --git a/arch/arm/dts/rk356x.dtsi b/arch/arm/dts/rk356x.dtsi
new file mode 100644 (file)
index 0000000..319981c
--- /dev/null
@@ -0,0 +1,1706 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2021 Rockchip Electronics Co., Ltd.
+ */
+
+#include <dt-bindings/clock/rk3568-cru.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/phy/phy.h>
+#include <dt-bindings/pinctrl/rockchip.h>
+#include <dt-bindings/power/rk3568-power.h>
+#include <dt-bindings/soc/rockchip,boot-mode.h>
+#include <dt-bindings/thermal/thermal.h>
+
+/ {
+       interrupt-parent = <&gic>;
+       #address-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;
+               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;
+       };
+
+       cpus {
+               #address-cells = <2>;
+               #size-cells = <0>;
+
+               cpu0: cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a55";
+                       reg = <0x0 0x0>;
+                       clocks = <&scmi_clk 0>;
+                       #cooling-cells = <2>;
+                       enable-method = "psci";
+                       operating-points-v2 = <&cpu0_opp_table>;
+               };
+
+               cpu1: cpu@100 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a55";
+                       reg = <0x0 0x100>;
+                       #cooling-cells = <2>;
+                       enable-method = "psci";
+                       operating-points-v2 = <&cpu0_opp_table>;
+               };
+
+               cpu2: cpu@200 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a55";
+                       reg = <0x0 0x200>;
+                       #cooling-cells = <2>;
+                       enable-method = "psci";
+                       operating-points-v2 = <&cpu0_opp_table>;
+               };
+
+               cpu3: cpu@300 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a55";
+                       reg = <0x0 0x300>;
+                       #cooling-cells = <2>;
+                       enable-method = "psci";
+                       operating-points-v2 = <&cpu0_opp_table>;
+               };
+       };
+
+       cpu0_opp_table: opp-table-0 {
+               compatible = "operating-points-v2";
+               opp-shared;
+
+               opp-408000000 {
+                       opp-hz = /bits/ 64 <408000000>;
+                       opp-microvolt = <900000 900000 1150000>;
+                       clock-latency-ns = <40000>;
+               };
+
+               opp-600000000 {
+                       opp-hz = /bits/ 64 <600000000>;
+                       opp-microvolt = <900000 900000 1150000>;
+               };
+
+               opp-816000000 {
+                       opp-hz = /bits/ 64 <816000000>;
+                       opp-microvolt = <900000 900000 1150000>;
+                       opp-suspend;
+               };
+
+               opp-1104000000 {
+                       opp-hz = /bits/ 64 <1104000000>;
+                       opp-microvolt = <900000 900000 1150000>;
+               };
+
+               opp-1416000000 {
+                       opp-hz = /bits/ 64 <1416000000>;
+                       opp-microvolt = <900000 900000 1150000>;
+               };
+
+               opp-1608000000 {
+                       opp-hz = /bits/ 64 <1608000000>;
+                       opp-microvolt = <975000 975000 1150000>;
+               };
+
+               opp-1800000000 {
+                       opp-hz = /bits/ 64 <1800000000>;
+                       opp-microvolt = <1050000 1050000 1150000>;
+               };
+       };
+
+       display_subsystem: display-subsystem {
+               compatible = "rockchip,display-subsystem";
+               ports = <&vop_out>;
+       };
+
+       firmware {
+               scmi: scmi {
+                       compatible = "arm,scmi-smc";
+                       arm,smc-id = <0x82000010>;
+                       shmem = <&scmi_shmem>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       scmi_clk: protocol@14 {
+                               reg = <0x14>;
+                               #clock-cells = <1>;
+                       };
+               };
+       };
+
+       gpu_opp_table: opp-table-1 {
+               compatible = "operating-points-v2";
+
+               opp-200000000 {
+                       opp-hz = /bits/ 64 <200000000>;
+                       opp-microvolt = <825000>;
+               };
+
+               opp-300000000 {
+                       opp-hz = /bits/ 64 <300000000>;
+                       opp-microvolt = <825000>;
+               };
+
+               opp-400000000 {
+                       opp-hz = /bits/ 64 <400000000>;
+                       opp-microvolt = <825000>;
+               };
+
+               opp-600000000 {
+                       opp-hz = /bits/ 64 <600000000>;
+                       opp-microvolt = <825000>;
+               };
+
+               opp-700000000 {
+                       opp-hz = /bits/ 64 <700000000>;
+                       opp-microvolt = <900000>;
+               };
+
+               opp-800000000 {
+                       opp-hz = /bits/ 64 <800000000>;
+                       opp-microvolt = <1000000>;
+               };
+       };
+
+       hdmi_sound: hdmi-sound {
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "HDMI";
+               simple-audio-card,format = "i2s";
+               simple-audio-card,mclk-fs = <256>;
+               status = "disabled";
+
+               simple-audio-card,codec {
+                       sound-dai = <&hdmi>;
+               };
+
+               simple-audio-card,cpu {
+                       sound-dai = <&i2s0_8ch>;
+               };
+       };
+
+       pmu {
+               compatible = "arm,cortex-a55-pmu";
+               interrupts = <GIC_SPI 228 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 230 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 231 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
+       };
+
+       psci {
+               compatible = "arm,psci-1.0";
+               method = "smc";
+       };
+
+       timer {
+               compatible = "arm,armv8-timer";
+               interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_PPI 14 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_PPI 10 IRQ_TYPE_LEVEL_HIGH>;
+               arm,no-tick-in-suspend;
+       };
+
+       xin24m: xin24m {
+               compatible = "fixed-clock";
+               clock-frequency = <24000000>;
+               clock-output-names = "xin24m";
+               #clock-cells = <0>;
+       };
+
+       xin32k: xin32k {
+               compatible = "fixed-clock";
+               clock-frequency = <32768>;
+               clock-output-names = "xin32k";
+               pinctrl-0 = <&clk32k_out0>;
+               pinctrl-names = "default";
+               #clock-cells = <0>;
+       };
+
+       sram@10f000 {
+               compatible = "mmio-sram";
+               reg = <0x0 0x0010f000 0x0 0x100>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges = <0 0x0 0x0010f000 0x100>;
+
+               scmi_shmem: sram@0 {
+                       compatible = "arm,scmi-shmem";
+                       reg = <0x0 0x100>;
+               };
+       };
+
+       sata1: sata@fc400000 {
+               compatible = "rockchip,rk3568-dwc-ahci", "snps,dwc-ahci";
+               reg = <0 0xfc400000 0 0x1000>;
+               clocks = <&cru ACLK_SATA1>, <&cru CLK_SATA1_PMALIVE>,
+                        <&cru CLK_SATA1_RXOOB>;
+               clock-names = "sata", "pmalive", "rxoob";
+               interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
+               phys = <&combphy1 PHY_TYPE_SATA>;
+               phy-names = "sata-phy";
+               ports-implemented = <0x1>;
+               power-domains = <&power RK3568_PD_PIPE>;
+               status = "disabled";
+       };
+
+       sata2: sata@fc800000 {
+               compatible = "rockchip,rk3568-dwc-ahci", "snps,dwc-ahci";
+               reg = <0 0xfc800000 0 0x1000>;
+               clocks = <&cru ACLK_SATA2>, <&cru CLK_SATA2_PMALIVE>,
+                        <&cru CLK_SATA2_RXOOB>;
+               clock-names = "sata", "pmalive", "rxoob";
+               interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
+               phys = <&combphy2 PHY_TYPE_SATA>;
+               phy-names = "sata-phy";
+               ports-implemented = <0x1>;
+               power-domains = <&power RK3568_PD_PIPE>;
+               status = "disabled";
+       };
+
+       usb_host0_xhci: usb@fcc00000 {
+               compatible = "rockchip,rk3568-dwc3", "snps,dwc3";
+               reg = <0x0 0xfcc00000 0x0 0x400000>;
+               interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru CLK_USB3OTG0_REF>, <&cru CLK_USB3OTG0_SUSPEND>,
+                        <&cru ACLK_USB3OTG0>;
+               clock-names = "ref_clk", "suspend_clk",
+                             "bus_clk";
+               dr_mode = "otg";
+               phy_type = "utmi_wide";
+               power-domains = <&power RK3568_PD_PIPE>;
+               resets = <&cru SRST_USB3OTG0>;
+               snps,dis_u2_susphy_quirk;
+               status = "disabled";
+       };
+
+       usb_host1_xhci: usb@fd000000 {
+               compatible = "rockchip,rk3568-dwc3", "snps,dwc3";
+               reg = <0x0 0xfd000000 0x0 0x400000>;
+               interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru CLK_USB3OTG1_REF>, <&cru CLK_USB3OTG1_SUSPEND>,
+                        <&cru ACLK_USB3OTG1>;
+               clock-names = "ref_clk", "suspend_clk",
+                             "bus_clk";
+               dr_mode = "host";
+               phys = <&usb2phy0_host>, <&combphy1 PHY_TYPE_USB3>;
+               phy-names = "usb2-phy", "usb3-phy";
+               phy_type = "utmi_wide";
+               power-domains = <&power RK3568_PD_PIPE>;
+               resets = <&cru SRST_USB3OTG1>;
+               snps,dis_u2_susphy_quirk;
+               status = "disabled";
+       };
+
+       gic: interrupt-controller@fd400000 {
+               compatible = "arm,gic-v3";
+               reg = <0x0 0xfd400000 0 0x10000>, /* GICD */
+                     <0x0 0xfd460000 0 0x80000>; /* GICR */
+               interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-controller;
+               #interrupt-cells = <3>;
+               mbi-alias = <0x0 0xfd410000>;
+               mbi-ranges = <296 24>;
+               msi-controller;
+       };
+
+       usb_host0_ehci: usb@fd800000 {
+               compatible = "generic-ehci";
+               reg = <0x0 0xfd800000 0x0 0x40000>;
+               interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru HCLK_USB2HOST0>, <&cru HCLK_USB2HOST0_ARB>,
+                        <&cru PCLK_USB>;
+               phys = <&usb2phy1_otg>;
+               phy-names = "usb";
+               status = "disabled";
+       };
+
+       usb_host0_ohci: usb@fd840000 {
+               compatible = "generic-ohci";
+               reg = <0x0 0xfd840000 0x0 0x40000>;
+               interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru HCLK_USB2HOST0>, <&cru HCLK_USB2HOST0_ARB>,
+                        <&cru PCLK_USB>;
+               phys = <&usb2phy1_otg>;
+               phy-names = "usb";
+               status = "disabled";
+       };
+
+       usb_host1_ehci: usb@fd880000 {
+               compatible = "generic-ehci";
+               reg = <0x0 0xfd880000 0x0 0x40000>;
+               interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru HCLK_USB2HOST1>, <&cru HCLK_USB2HOST1_ARB>,
+                        <&cru PCLK_USB>;
+               phys = <&usb2phy1_host>;
+               phy-names = "usb";
+               status = "disabled";
+       };
+
+       usb_host1_ohci: usb@fd8c0000 {
+               compatible = "generic-ohci";
+               reg = <0x0 0xfd8c0000 0x0 0x40000>;
+               interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru HCLK_USB2HOST1>, <&cru HCLK_USB2HOST1_ARB>,
+                        <&cru PCLK_USB>;
+               phys = <&usb2phy1_host>;
+               phy-names = "usb";
+               status = "disabled";
+       };
+
+       pmugrf: syscon@fdc20000 {
+               compatible = "rockchip,rk3568-pmugrf", "syscon", "simple-mfd";
+               reg = <0x0 0xfdc20000 0x0 0x10000>;
+
+               pmu_io_domains: io-domains {
+                       compatible = "rockchip,rk3568-pmu-io-voltage-domain";
+                       status = "disabled";
+               };
+       };
+
+       pipegrf: syscon@fdc50000 {
+               reg = <0x0 0xfdc50000 0x0 0x1000>;
+       };
+
+       grf: syscon@fdc60000 {
+               compatible = "rockchip,rk3568-grf", "syscon", "simple-mfd";
+               reg = <0x0 0xfdc60000 0x0 0x10000>;
+       };
+
+       pipe_phy_grf1: syscon@fdc80000 {
+               compatible = "rockchip,rk3568-pipe-phy-grf", "syscon";
+               reg = <0x0 0xfdc80000 0x0 0x1000>;
+       };
+
+       pipe_phy_grf2: syscon@fdc90000 {
+               compatible = "rockchip,rk3568-pipe-phy-grf", "syscon";
+               reg = <0x0 0xfdc90000 0x0 0x1000>;
+       };
+
+       usb2phy0_grf: syscon@fdca0000 {
+               compatible = "rockchip,rk3568-usb2phy-grf", "syscon";
+               reg = <0x0 0xfdca0000 0x0 0x8000>;
+       };
+
+       usb2phy1_grf: syscon@fdca8000 {
+               compatible = "rockchip,rk3568-usb2phy-grf", "syscon";
+               reg = <0x0 0xfdca8000 0x0 0x8000>;
+       };
+
+       pmucru: clock-controller@fdd00000 {
+               compatible = "rockchip,rk3568-pmucru";
+               reg = <0x0 0xfdd00000 0x0 0x1000>;
+               #clock-cells = <1>;
+               #reset-cells = <1>;
+       };
+
+       cru: clock-controller@fdd20000 {
+               compatible = "rockchip,rk3568-cru";
+               reg = <0x0 0xfdd20000 0x0 0x1000>;
+               clocks = <&xin24m>;
+               clock-names = "xin24m";
+               #clock-cells = <1>;
+               #reset-cells = <1>;
+               assigned-clocks = <&cru PLL_GPLL>, <&pmucru PLL_PPLL>;
+               assigned-clock-rates = <1200000000>, <200000000>;
+               rockchip,grf = <&grf>;
+       };
+
+       i2c0: i2c@fdd40000 {
+               compatible = "rockchip,rk3568-i2c", "rockchip,rk3399-i2c";
+               reg = <0x0 0xfdd40000 0x0 0x1000>;
+               interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&pmucru CLK_I2C0>, <&pmucru PCLK_I2C0>;
+               clock-names = "i2c", "pclk";
+               pinctrl-0 = <&i2c0_xfer>;
+               pinctrl-names = "default";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       uart0: serial@fdd50000 {
+               compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
+               reg = <0x0 0xfdd50000 0x0 0x100>;
+               interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&pmucru SCLK_UART0>, <&pmucru PCLK_UART0>;
+               clock-names = "baudclk", "apb_pclk";
+               dmas = <&dmac0 0>, <&dmac0 1>;
+               pinctrl-0 = <&uart0_xfer>;
+               pinctrl-names = "default";
+               reg-io-width = <4>;
+               reg-shift = <2>;
+               status = "disabled";
+       };
+
+       pwm0: pwm@fdd70000 {
+               compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
+               reg = <0x0 0xfdd70000 0x0 0x10>;
+               clocks = <&pmucru CLK_PWM0>, <&pmucru PCLK_PWM0>;
+               clock-names = "pwm", "pclk";
+               pinctrl-0 = <&pwm0m0_pins>;
+               pinctrl-names = "default";
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       pwm1: pwm@fdd70010 {
+               compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
+               reg = <0x0 0xfdd70010 0x0 0x10>;
+               clocks = <&pmucru CLK_PWM0>, <&pmucru PCLK_PWM0>;
+               clock-names = "pwm", "pclk";
+               pinctrl-0 = <&pwm1m0_pins>;
+               pinctrl-names = "default";
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       pwm2: pwm@fdd70020 {
+               compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
+               reg = <0x0 0xfdd70020 0x0 0x10>;
+               clocks = <&pmucru CLK_PWM0>, <&pmucru PCLK_PWM0>;
+               clock-names = "pwm", "pclk";
+               pinctrl-0 = <&pwm2m0_pins>;
+               pinctrl-names = "default";
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       pwm3: pwm@fdd70030 {
+               compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
+               reg = <0x0 0xfdd70030 0x0 0x10>;
+               clocks = <&pmucru CLK_PWM0>, <&pmucru PCLK_PWM0>;
+               clock-names = "pwm", "pclk";
+               pinctrl-0 = <&pwm3_pins>;
+               pinctrl-names = "default";
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       pmu: power-management@fdd90000 {
+               compatible = "rockchip,rk3568-pmu", "syscon", "simple-mfd";
+               reg = <0x0 0xfdd90000 0x0 0x1000>;
+
+               power: power-controller {
+                       compatible = "rockchip,rk3568-power-controller";
+                       #power-domain-cells = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       /* These power domains are grouped by VD_GPU */
+                       power-domain@RK3568_PD_GPU {
+                               reg = <RK3568_PD_GPU>;
+                               clocks = <&cru ACLK_GPU_PRE>,
+                                        <&cru PCLK_GPU_PRE>;
+                               pm_qos = <&qos_gpu>;
+                               #power-domain-cells = <0>;
+                       };
+
+                       /* These power domains are grouped by VD_LOGIC */
+                       power-domain@RK3568_PD_VI {
+                               reg = <RK3568_PD_VI>;
+                               clocks = <&cru HCLK_VI>,
+                                        <&cru PCLK_VI>;
+                               pm_qos = <&qos_isp>,
+                                        <&qos_vicap0>,
+                                        <&qos_vicap1>;
+                               #power-domain-cells = <0>;
+                       };
+
+                       power-domain@RK3568_PD_VO {
+                               reg = <RK3568_PD_VO>;
+                               clocks = <&cru HCLK_VO>,
+                                        <&cru PCLK_VO>,
+                                        <&cru ACLK_VOP_PRE>;
+                               pm_qos = <&qos_hdcp>,
+                                        <&qos_vop_m0>,
+                                        <&qos_vop_m1>;
+                               #power-domain-cells = <0>;
+                       };
+
+                       power-domain@RK3568_PD_RGA {
+                               reg = <RK3568_PD_RGA>;
+                               clocks = <&cru HCLK_RGA_PRE>,
+                                        <&cru PCLK_RGA_PRE>;
+                               pm_qos = <&qos_ebc>,
+                                        <&qos_iep>,
+                                        <&qos_jpeg_dec>,
+                                        <&qos_jpeg_enc>,
+                                        <&qos_rga_rd>,
+                                        <&qos_rga_wr>;
+                               #power-domain-cells = <0>;
+                       };
+
+                       power-domain@RK3568_PD_VPU {
+                               reg = <RK3568_PD_VPU>;
+                               clocks = <&cru HCLK_VPU_PRE>;
+                               pm_qos = <&qos_vpu>;
+                               #power-domain-cells = <0>;
+                       };
+
+                       power-domain@RK3568_PD_RKVDEC {
+                               clocks = <&cru HCLK_RKVDEC_PRE>;
+                               reg = <RK3568_PD_RKVDEC>;
+                               pm_qos = <&qos_rkvdec>;
+                               #power-domain-cells = <0>;
+                       };
+
+                       power-domain@RK3568_PD_RKVENC {
+                               reg = <RK3568_PD_RKVENC>;
+                               clocks = <&cru HCLK_RKVENC_PRE>;
+                               pm_qos = <&qos_rkvenc_rd_m0>,
+                                        <&qos_rkvenc_rd_m1>,
+                                        <&qos_rkvenc_wr_m0>;
+                               #power-domain-cells = <0>;
+                       };
+               };
+       };
+
+       gpu: gpu@fde60000 {
+               compatible = "rockchip,rk3568-mali", "arm,mali-bifrost";
+               reg = <0x0 0xfde60000 0x0 0x4000>;
+               interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "job", "mmu", "gpu";
+               clocks = <&scmi_clk 1>, <&cru CLK_GPU>;
+               clock-names = "gpu", "bus";
+               #cooling-cells = <2>;
+               operating-points-v2 = <&gpu_opp_table>;
+               power-domains = <&power RK3568_PD_GPU>;
+               status = "disabled";
+       };
+
+       sdmmc2: mmc@fe000000 {
+               compatible = "rockchip,rk3568-dw-mshc", "rockchip,rk3288-dw-mshc";
+               reg = <0x0 0xfe000000 0x0 0x4000>;
+               interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru HCLK_SDMMC2>, <&cru CLK_SDMMC2>,
+                        <&cru SCLK_SDMMC2_DRV>, <&cru SCLK_SDMMC2_SAMPLE>;
+               clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
+               fifo-depth = <0x100>;
+               max-frequency = <150000000>;
+               resets = <&cru SRST_SDMMC2>;
+               reset-names = "reset";
+               status = "disabled";
+       };
+
+       gmac1: ethernet@fe010000 {
+               compatible = "rockchip,rk3568-gmac", "snps,dwmac-4.20a";
+               reg = <0x0 0xfe010000 0x0 0x10000>;
+               interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "macirq", "eth_wake_irq";
+               clocks = <&cru SCLK_GMAC1>, <&cru SCLK_GMAC1_RX_TX>,
+                        <&cru SCLK_GMAC1_RX_TX>, <&cru CLK_MAC1_REFOUT>,
+                        <&cru ACLK_GMAC1>, <&cru PCLK_GMAC1>,
+                        <&cru SCLK_GMAC1_RX_TX>, <&cru CLK_GMAC1_PTP_REF>;
+               clock-names = "stmmaceth", "mac_clk_rx",
+                             "mac_clk_tx", "clk_mac_refout",
+                             "aclk_mac", "pclk_mac",
+                             "clk_mac_speed", "ptp_ref";
+               resets = <&cru SRST_A_GMAC1>;
+               reset-names = "stmmaceth";
+               rockchip,grf = <&grf>;
+               snps,axi-config = <&gmac1_stmmac_axi_setup>;
+               snps,mixed-burst;
+               snps,mtl-rx-config = <&gmac1_mtl_rx_setup>;
+               snps,mtl-tx-config = <&gmac1_mtl_tx_setup>;
+               snps,tso;
+               status = "disabled";
+
+               mdio1: mdio {
+                       compatible = "snps,dwmac-mdio";
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+               };
+
+               gmac1_stmmac_axi_setup: stmmac-axi-config {
+                       snps,blen = <0 0 0 0 16 8 4>;
+                       snps,rd_osr_lmt = <8>;
+                       snps,wr_osr_lmt = <4>;
+               };
+
+               gmac1_mtl_rx_setup: rx-queues-config {
+                       snps,rx-queues-to-use = <1>;
+                       queue0 {};
+               };
+
+               gmac1_mtl_tx_setup: tx-queues-config {
+                       snps,tx-queues-to-use = <1>;
+                       queue0 {};
+               };
+       };
+
+       vop: vop@fe040000 {
+               reg = <0x0 0xfe040000 0x0 0x3000>, <0x0 0xfe044000 0x0 0x1000>;
+               reg-names = "vop", "gamma-lut";
+               interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru ACLK_VOP>, <&cru HCLK_VOP>, <&cru DCLK_VOP0>,
+                        <&cru DCLK_VOP1>, <&cru DCLK_VOP2>;
+               clock-names = "aclk", "hclk", "dclk_vp0", "dclk_vp1", "dclk_vp2";
+               iommus = <&vop_mmu>;
+               power-domains = <&power RK3568_PD_VO>;
+               rockchip,grf = <&grf>;
+               status = "disabled";
+
+               vop_out: ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       vp0: port@0 {
+                               reg = <0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+
+                       vp1: port@1 {
+                               reg = <1>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+
+                       vp2: port@2 {
+                               reg = <2>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+               };
+       };
+
+       vop_mmu: iommu@fe043e00 {
+               compatible = "rockchip,rk3568-iommu";
+               reg = <0x0 0xfe043e00 0x0 0x100>, <0x0 0xfe043f00 0x0 0x100>;
+               interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru ACLK_VOP>, <&cru HCLK_VOP>;
+               clock-names = "aclk", "iface";
+               #iommu-cells = <0>;
+               status = "disabled";
+       };
+
+       hdmi: hdmi@fe0a0000 {
+               compatible = "rockchip,rk3568-dw-hdmi";
+               reg = <0x0 0xfe0a0000 0x0 0x20000>;
+               interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru PCLK_HDMI_HOST>,
+                        <&cru CLK_HDMI_SFR>,
+                        <&cru CLK_HDMI_CEC>,
+                        <&pmucru CLK_HDMI_REF>,
+                        <&cru HCLK_VO>;
+               clock-names = "iahb", "isfr", "cec", "ref";
+               pinctrl-names = "default";
+               pinctrl-0 = <&hdmitx_scl &hdmitx_sda &hdmitxm0_cec>;
+               power-domains = <&power RK3568_PD_VO>;
+               reg-io-width = <4>;
+               rockchip,grf = <&grf>;
+               #sound-dai-cells = <0>;
+               status = "disabled";
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       hdmi_in: port@0 {
+                               reg = <0>;
+                       };
+
+                       hdmi_out: port@1 {
+                               reg = <1>;
+                       };
+               };
+       };
+
+       qos_gpu: qos@fe128000 {
+               compatible = "rockchip,rk3568-qos", "syscon";
+               reg = <0x0 0xfe128000 0x0 0x20>;
+       };
+
+       qos_rkvenc_rd_m0: qos@fe138080 {
+               compatible = "rockchip,rk3568-qos", "syscon";
+               reg = <0x0 0xfe138080 0x0 0x20>;
+       };
+
+       qos_rkvenc_rd_m1: qos@fe138100 {
+               compatible = "rockchip,rk3568-qos", "syscon";
+               reg = <0x0 0xfe138100 0x0 0x20>;
+       };
+
+       qos_rkvenc_wr_m0: qos@fe138180 {
+               compatible = "rockchip,rk3568-qos", "syscon";
+               reg = <0x0 0xfe138180 0x0 0x20>;
+       };
+
+       qos_isp: qos@fe148000 {
+               compatible = "rockchip,rk3568-qos", "syscon";
+               reg = <0x0 0xfe148000 0x0 0x20>;
+       };
+
+       qos_vicap0: qos@fe148080 {
+               compatible = "rockchip,rk3568-qos", "syscon";
+               reg = <0x0 0xfe148080 0x0 0x20>;
+       };
+
+       qos_vicap1: qos@fe148100 {
+               compatible = "rockchip,rk3568-qos", "syscon";
+               reg = <0x0 0xfe148100 0x0 0x20>;
+       };
+
+       qos_vpu: qos@fe150000 {
+               compatible = "rockchip,rk3568-qos", "syscon";
+               reg = <0x0 0xfe150000 0x0 0x20>;
+       };
+
+       qos_ebc: qos@fe158000 {
+               compatible = "rockchip,rk3568-qos", "syscon";
+               reg = <0x0 0xfe158000 0x0 0x20>;
+       };
+
+       qos_iep: qos@fe158100 {
+               compatible = "rockchip,rk3568-qos", "syscon";
+               reg = <0x0 0xfe158100 0x0 0x20>;
+       };
+
+       qos_jpeg_dec: qos@fe158180 {
+               compatible = "rockchip,rk3568-qos", "syscon";
+               reg = <0x0 0xfe158180 0x0 0x20>;
+       };
+
+       qos_jpeg_enc: qos@fe158200 {
+               compatible = "rockchip,rk3568-qos", "syscon";
+               reg = <0x0 0xfe158200 0x0 0x20>;
+       };
+
+       qos_rga_rd: qos@fe158280 {
+               compatible = "rockchip,rk3568-qos", "syscon";
+               reg = <0x0 0xfe158280 0x0 0x20>;
+       };
+
+       qos_rga_wr: qos@fe158300 {
+               compatible = "rockchip,rk3568-qos", "syscon";
+               reg = <0x0 0xfe158300 0x0 0x20>;
+       };
+
+       qos_npu: qos@fe180000 {
+               compatible = "rockchip,rk3568-qos", "syscon";
+               reg = <0x0 0xfe180000 0x0 0x20>;
+       };
+
+       qos_pcie2x1: qos@fe190000 {
+               compatible = "rockchip,rk3568-qos", "syscon";
+               reg = <0x0 0xfe190000 0x0 0x20>;
+       };
+
+       qos_sata1: qos@fe190280 {
+               compatible = "rockchip,rk3568-qos", "syscon";
+               reg = <0x0 0xfe190280 0x0 0x20>;
+       };
+
+       qos_sata2: qos@fe190300 {
+               compatible = "rockchip,rk3568-qos", "syscon";
+               reg = <0x0 0xfe190300 0x0 0x20>;
+       };
+
+       qos_usb3_0: qos@fe190380 {
+               compatible = "rockchip,rk3568-qos", "syscon";
+               reg = <0x0 0xfe190380 0x0 0x20>;
+       };
+
+       qos_usb3_1: qos@fe190400 {
+               compatible = "rockchip,rk3568-qos", "syscon";
+               reg = <0x0 0xfe190400 0x0 0x20>;
+       };
+
+       qos_rkvdec: qos@fe198000 {
+               compatible = "rockchip,rk3568-qos", "syscon";
+               reg = <0x0 0xfe198000 0x0 0x20>;
+       };
+
+       qos_hdcp: qos@fe1a8000 {
+               compatible = "rockchip,rk3568-qos", "syscon";
+               reg = <0x0 0xfe1a8000 0x0 0x20>;
+       };
+
+       qos_vop_m0: qos@fe1a8080 {
+               compatible = "rockchip,rk3568-qos", "syscon";
+               reg = <0x0 0xfe1a8080 0x0 0x20>;
+       };
+
+       qos_vop_m1: qos@fe1a8100 {
+               compatible = "rockchip,rk3568-qos", "syscon";
+               reg = <0x0 0xfe1a8100 0x0 0x20>;
+       };
+
+       pcie2x1: pcie@fe260000 {
+               compatible = "rockchip,rk3568-pcie";
+               reg = <0x3 0xc0000000 0x0 0x00400000>,
+                     <0x0 0xfe260000 0x0 0x00010000>,
+                     <0x3 0x3f000000 0x0 0x01000000>;
+               reg-names = "dbi", "apb", "config";
+               interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "sys", "pmc", "msi", "legacy", "err";
+               bus-range = <0x0 0xf>;
+               clocks = <&cru ACLK_PCIE20_MST>, <&cru ACLK_PCIE20_SLV>,
+                        <&cru ACLK_PCIE20_DBI>, <&cru PCLK_PCIE20>,
+                        <&cru CLK_PCIE20_AUX_NDFT>;
+               clock-names = "aclk_mst", "aclk_slv",
+                             "aclk_dbi", "pclk", "aux";
+               device_type = "pci";
+               interrupt-map-mask = <0 0 0 7>;
+               interrupt-map = <0 0 0 1 &pcie_intc 0>,
+                               <0 0 0 2 &pcie_intc 1>,
+                               <0 0 0 3 &pcie_intc 2>,
+                               <0 0 0 4 &pcie_intc 3>;
+               linux,pci-domain = <0>;
+               num-ib-windows = <6>;
+               num-ob-windows = <2>;
+               max-link-speed = <2>;
+               msi-map = <0x0 &gic 0x0 0x1000>;
+               num-lanes = <1>;
+               phys = <&combphy2 PHY_TYPE_PCIE>;
+               phy-names = "pcie-phy";
+               power-domains = <&power RK3568_PD_PIPE>;
+               ranges = <0x01000000 0x0 0x3ef00000 0x3 0x3ef00000 0x0 0x00100000
+                         0x02000000 0x0 0x00000000 0x3 0x00000000 0x0 0x3ef00000>;
+               resets = <&cru SRST_PCIE20_POWERUP>;
+               reset-names = "pipe";
+               #address-cells = <3>;
+               #size-cells = <2>;
+               status = "disabled";
+
+               pcie_intc: legacy-interrupt-controller {
+                       #address-cells = <0>;
+                       #interrupt-cells = <1>;
+                       interrupt-controller;
+                       interrupt-parent = <&gic>;
+                       interrupts = <GIC_SPI 72 IRQ_TYPE_EDGE_RISING>;
+               };
+       };
+
+       sdmmc0: mmc@fe2b0000 {
+               compatible = "rockchip,rk3568-dw-mshc", "rockchip,rk3288-dw-mshc";
+               reg = <0x0 0xfe2b0000 0x0 0x4000>;
+               interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru HCLK_SDMMC0>, <&cru CLK_SDMMC0>,
+                        <&cru SCLK_SDMMC0_DRV>, <&cru SCLK_SDMMC0_SAMPLE>;
+               clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
+               fifo-depth = <0x100>;
+               max-frequency = <150000000>;
+               resets = <&cru SRST_SDMMC0>;
+               reset-names = "reset";
+               status = "disabled";
+       };
+
+       sdmmc1: mmc@fe2c0000 {
+               compatible = "rockchip,rk3568-dw-mshc", "rockchip,rk3288-dw-mshc";
+               reg = <0x0 0xfe2c0000 0x0 0x4000>;
+               interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru HCLK_SDMMC1>, <&cru CLK_SDMMC1>,
+                        <&cru SCLK_SDMMC1_DRV>, <&cru SCLK_SDMMC1_SAMPLE>;
+               clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
+               fifo-depth = <0x100>;
+               max-frequency = <150000000>;
+               resets = <&cru SRST_SDMMC1>;
+               reset-names = "reset";
+               status = "disabled";
+       };
+
+       sfc: spi@fe300000 {
+               compatible = "rockchip,sfc";
+               reg = <0x0 0xfe300000 0x0 0x4000>;
+               interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru SCLK_SFC>, <&cru HCLK_SFC>;
+               clock-names = "clk_sfc", "hclk_sfc";
+               pinctrl-0 = <&fspi_pins>;
+               pinctrl-names = "default";
+               status = "disabled";
+       };
+
+       sdhci: mmc@fe310000 {
+               compatible = "rockchip,rk3568-dwcmshc";
+               reg = <0x0 0xfe310000 0x0 0x10000>;
+               interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
+               assigned-clocks = <&cru BCLK_EMMC>, <&cru TCLK_EMMC>;
+               assigned-clock-rates = <200000000>, <24000000>;
+               clocks = <&cru CCLK_EMMC>, <&cru HCLK_EMMC>,
+                        <&cru ACLK_EMMC>, <&cru BCLK_EMMC>,
+                        <&cru TCLK_EMMC>;
+               clock-names = "core", "bus", "axi", "block", "timer";
+               status = "disabled";
+       };
+
+       spdif: spdif@fe460000 {
+               compatible = "rockchip,rk3568-spdif";
+               reg = <0x0 0xfe460000 0x0 0x1000>;
+               interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
+               clock-names = "mclk", "hclk";
+               clocks = <&cru MCLK_SPDIF_8CH>, <&cru HCLK_SPDIF_8CH>;
+               dmas = <&dmac1 1>;
+               dma-names = "tx";
+               pinctrl-names = "default";
+               pinctrl-0 = <&spdifm0_tx>;
+               #sound-dai-cells = <0>;
+               status = "disabled";
+       };
+
+       i2s0_8ch: i2s@fe400000 {
+               compatible = "rockchip,rk3568-i2s-tdm";
+               reg = <0x0 0xfe400000 0x0 0x1000>;
+               interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
+               assigned-clocks = <&cru CLK_I2S0_8CH_TX_SRC>, <&cru CLK_I2S0_8CH_RX_SRC>;
+               assigned-clock-rates = <1188000000>, <1188000000>;
+               clocks = <&cru MCLK_I2S0_8CH_TX>, <&cru MCLK_I2S0_8CH_RX>, <&cru HCLK_I2S0_8CH>;
+               clock-names = "mclk_tx", "mclk_rx", "hclk";
+               dmas = <&dmac1 0>;
+               dma-names = "tx";
+               resets = <&cru SRST_M_I2S0_8CH_TX>, <&cru SRST_M_I2S0_8CH_RX>;
+               reset-names = "tx-m", "rx-m";
+               rockchip,grf = <&grf>;
+               #sound-dai-cells = <0>;
+               status = "disabled";
+       };
+
+       i2s1_8ch: i2s@fe410000 {
+               compatible = "rockchip,rk3568-i2s-tdm";
+               reg = <0x0 0xfe410000 0x0 0x1000>;
+               interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
+               assigned-clocks = <&cru CLK_I2S1_8CH_TX_SRC>, <&cru CLK_I2S1_8CH_RX_SRC>;
+               assigned-clock-rates = <1188000000>, <1188000000>;
+               clocks = <&cru MCLK_I2S1_8CH_TX>, <&cru MCLK_I2S1_8CH_RX>,
+                        <&cru HCLK_I2S1_8CH>;
+               clock-names = "mclk_tx", "mclk_rx", "hclk";
+               dmas = <&dmac1 3>, <&dmac1 2>;
+               dma-names = "rx", "tx";
+               resets = <&cru SRST_M_I2S1_8CH_TX>, <&cru SRST_M_I2S1_8CH_RX>;
+               reset-names = "tx-m", "rx-m";
+               rockchip,grf = <&grf>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2s1m0_sclktx &i2s1m0_sclkrx
+                            &i2s1m0_lrcktx &i2s1m0_lrckrx
+                            &i2s1m0_sdi0   &i2s1m0_sdi1
+                            &i2s1m0_sdi2   &i2s1m0_sdi3
+                            &i2s1m0_sdo0   &i2s1m0_sdo1
+                            &i2s1m0_sdo2   &i2s1m0_sdo3>;
+               #sound-dai-cells = <0>;
+               status = "disabled";
+       };
+
+       i2s3_2ch: i2s@fe430000 {
+               compatible = "rockchip,rk3568-i2s-tdm";
+               reg = <0x0 0xfe430000 0x0 0x1000>;
+               interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru MCLK_I2S3_2CH_TX>, <&cru MCLK_I2S3_2CH_RX>,
+                        <&cru HCLK_I2S3_2CH>;
+               clock-names = "mclk_tx", "mclk_rx", "hclk";
+               dmas = <&dmac1 6>, <&dmac1 7>;
+               dma-names = "tx", "rx";
+               resets = <&cru SRST_M_I2S3_2CH_TX>, <&cru SRST_M_I2S3_2CH_RX>;
+               reset-names = "tx-m", "rx-m";
+               rockchip,grf = <&grf>;
+               #sound-dai-cells = <0>;
+               status = "disabled";
+       };
+
+       pdm: pdm@fe440000 {
+               compatible = "rockchip,rk3568-pdm";
+               reg = <0x0 0xfe440000 0x0 0x1000>;
+               interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru MCLK_PDM>, <&cru HCLK_PDM>;
+               clock-names = "pdm_clk", "pdm_hclk";
+               dmas = <&dmac1 9>;
+               dma-names = "rx";
+               pinctrl-0 = <&pdmm0_clk
+                            &pdmm0_clk1
+                            &pdmm0_sdi0
+                            &pdmm0_sdi1
+                            &pdmm0_sdi2
+                            &pdmm0_sdi3>;
+               pinctrl-names = "default";
+               resets = <&cru SRST_M_PDM>;
+               reset-names = "pdm-m";
+               #sound-dai-cells = <0>;
+               status = "disabled";
+       };
+
+       dmac0: dma-controller@fe530000 {
+               compatible = "arm,pl330", "arm,primecell";
+               reg = <0x0 0xfe530000 0x0 0x4000>;
+               interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
+               arm,pl330-periph-burst;
+               clocks = <&cru ACLK_BUS>;
+               clock-names = "apb_pclk";
+               #dma-cells = <1>;
+       };
+
+       dmac1: dma-controller@fe550000 {
+               compatible = "arm,pl330", "arm,primecell";
+               reg = <0x0 0xfe550000 0x0 0x4000>;
+               interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
+               arm,pl330-periph-burst;
+               clocks = <&cru ACLK_BUS>;
+               clock-names = "apb_pclk";
+               #dma-cells = <1>;
+       };
+
+       i2c1: i2c@fe5a0000 {
+               compatible = "rockchip,rk3568-i2c", "rockchip,rk3399-i2c";
+               reg = <0x0 0xfe5a0000 0x0 0x1000>;
+               interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru CLK_I2C1>, <&cru PCLK_I2C1>;
+               clock-names = "i2c", "pclk";
+               pinctrl-0 = <&i2c1_xfer>;
+               pinctrl-names = "default";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       i2c2: i2c@fe5b0000 {
+               compatible = "rockchip,rk3568-i2c", "rockchip,rk3399-i2c";
+               reg = <0x0 0xfe5b0000 0x0 0x1000>;
+               interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru CLK_I2C2>, <&cru PCLK_I2C2>;
+               clock-names = "i2c", "pclk";
+               pinctrl-0 = <&i2c2m0_xfer>;
+               pinctrl-names = "default";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       i2c3: i2c@fe5c0000 {
+               compatible = "rockchip,rk3568-i2c", "rockchip,rk3399-i2c";
+               reg = <0x0 0xfe5c0000 0x0 0x1000>;
+               interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru CLK_I2C3>, <&cru PCLK_I2C3>;
+               clock-names = "i2c", "pclk";
+               pinctrl-0 = <&i2c3m0_xfer>;
+               pinctrl-names = "default";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       i2c4: i2c@fe5d0000 {
+               compatible = "rockchip,rk3568-i2c", "rockchip,rk3399-i2c";
+               reg = <0x0 0xfe5d0000 0x0 0x1000>;
+               interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru CLK_I2C4>, <&cru PCLK_I2C4>;
+               clock-names = "i2c", "pclk";
+               pinctrl-0 = <&i2c4m0_xfer>;
+               pinctrl-names = "default";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       i2c5: i2c@fe5e0000 {
+               compatible = "rockchip,rk3568-i2c", "rockchip,rk3399-i2c";
+               reg = <0x0 0xfe5e0000 0x0 0x1000>;
+               interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru CLK_I2C5>, <&cru PCLK_I2C5>;
+               clock-names = "i2c", "pclk";
+               pinctrl-0 = <&i2c5m0_xfer>;
+               pinctrl-names = "default";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       wdt: watchdog@fe600000 {
+               compatible = "rockchip,rk3568-wdt", "snps,dw-wdt";
+               reg = <0x0 0xfe600000 0x0 0x100>;
+               interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru TCLK_WDT_NS>, <&cru PCLK_WDT_NS>;
+               clock-names = "tclk", "pclk";
+       };
+
+       spi0: spi@fe610000 {
+               compatible = "rockchip,rk3568-spi", "rockchip,rk3066-spi";
+               reg = <0x0 0xfe610000 0x0 0x1000>;
+               interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru CLK_SPI0>, <&cru PCLK_SPI0>;
+               clock-names = "spiclk", "apb_pclk";
+               dmas = <&dmac0 20>, <&dmac0 21>;
+               dma-names = "tx", "rx";
+               pinctrl-names = "default";
+               pinctrl-0 = <&spi0m0_cs0 &spi0m0_cs1 &spi0m0_pins>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       spi1: spi@fe620000 {
+               compatible = "rockchip,rk3568-spi", "rockchip,rk3066-spi";
+               reg = <0x0 0xfe620000 0x0 0x1000>;
+               interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru CLK_SPI1>, <&cru PCLK_SPI1>;
+               clock-names = "spiclk", "apb_pclk";
+               dmas = <&dmac0 22>, <&dmac0 23>;
+               dma-names = "tx", "rx";
+               pinctrl-names = "default";
+               pinctrl-0 = <&spi1m0_cs0 &spi1m0_cs1 &spi1m0_pins>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       spi2: spi@fe630000 {
+               compatible = "rockchip,rk3568-spi", "rockchip,rk3066-spi";
+               reg = <0x0 0xfe630000 0x0 0x1000>;
+               interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru CLK_SPI2>, <&cru PCLK_SPI2>;
+               clock-names = "spiclk", "apb_pclk";
+               dmas = <&dmac0 24>, <&dmac0 25>;
+               dma-names = "tx", "rx";
+               pinctrl-names = "default";
+               pinctrl-0 = <&spi2m0_cs0 &spi2m0_cs1 &spi2m0_pins>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       spi3: spi@fe640000 {
+               compatible = "rockchip,rk3568-spi", "rockchip,rk3066-spi";
+               reg = <0x0 0xfe640000 0x0 0x1000>;
+               interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru CLK_SPI3>, <&cru PCLK_SPI3>;
+               clock-names = "spiclk", "apb_pclk";
+               dmas = <&dmac0 26>, <&dmac0 27>;
+               dma-names = "tx", "rx";
+               pinctrl-names = "default";
+               pinctrl-0 = <&spi3m0_cs0 &spi3m0_cs1 &spi3m0_pins>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       uart1: serial@fe650000 {
+               compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
+               reg = <0x0 0xfe650000 0x0 0x100>;
+               interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
+               clock-names = "baudclk", "apb_pclk";
+               dmas = <&dmac0 2>, <&dmac0 3>;
+               pinctrl-0 = <&uart1m0_xfer>;
+               pinctrl-names = "default";
+               reg-io-width = <4>;
+               reg-shift = <2>;
+               status = "disabled";
+       };
+
+       uart2: serial@fe660000 {
+               compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
+               reg = <0x0 0xfe660000 0x0 0x100>;
+               interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
+               clock-names = "baudclk", "apb_pclk";
+               dmas = <&dmac0 4>, <&dmac0 5>;
+               pinctrl-0 = <&uart2m0_xfer>;
+               pinctrl-names = "default";
+               reg-io-width = <4>;
+               reg-shift = <2>;
+               status = "disabled";
+       };
+
+       uart3: serial@fe670000 {
+               compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
+               reg = <0x0 0xfe670000 0x0 0x100>;
+               interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
+               clock-names = "baudclk", "apb_pclk";
+               dmas = <&dmac0 6>, <&dmac0 7>;
+               pinctrl-0 = <&uart3m0_xfer>;
+               pinctrl-names = "default";
+               reg-io-width = <4>;
+               reg-shift = <2>;
+               status = "disabled";
+       };
+
+       uart4: serial@fe680000 {
+               compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
+               reg = <0x0 0xfe680000 0x0 0x100>;
+               interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>;
+               clock-names = "baudclk", "apb_pclk";
+               dmas = <&dmac0 8>, <&dmac0 9>;
+               pinctrl-0 = <&uart4m0_xfer>;
+               pinctrl-names = "default";
+               reg-io-width = <4>;
+               reg-shift = <2>;
+               status = "disabled";
+       };
+
+       uart5: serial@fe690000 {
+               compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
+               reg = <0x0 0xfe690000 0x0 0x100>;
+               interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru SCLK_UART5>, <&cru PCLK_UART5>;
+               clock-names = "baudclk", "apb_pclk";
+               dmas = <&dmac0 10>, <&dmac0 11>;
+               pinctrl-0 = <&uart5m0_xfer>;
+               pinctrl-names = "default";
+               reg-io-width = <4>;
+               reg-shift = <2>;
+               status = "disabled";
+       };
+
+       uart6: serial@fe6a0000 {
+               compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
+               reg = <0x0 0xfe6a0000 0x0 0x100>;
+               interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru SCLK_UART6>, <&cru PCLK_UART6>;
+               clock-names = "baudclk", "apb_pclk";
+               dmas = <&dmac0 12>, <&dmac0 13>;
+               pinctrl-0 = <&uart6m0_xfer>;
+               pinctrl-names = "default";
+               reg-io-width = <4>;
+               reg-shift = <2>;
+               status = "disabled";
+       };
+
+       uart7: serial@fe6b0000 {
+               compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
+               reg = <0x0 0xfe6b0000 0x0 0x100>;
+               interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru SCLK_UART7>, <&cru PCLK_UART7>;
+               clock-names = "baudclk", "apb_pclk";
+               dmas = <&dmac0 14>, <&dmac0 15>;
+               pinctrl-0 = <&uart7m0_xfer>;
+               pinctrl-names = "default";
+               reg-io-width = <4>;
+               reg-shift = <2>;
+               status = "disabled";
+       };
+
+       uart8: serial@fe6c0000 {
+               compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
+               reg = <0x0 0xfe6c0000 0x0 0x100>;
+               interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru SCLK_UART8>, <&cru PCLK_UART8>;
+               clock-names = "baudclk", "apb_pclk";
+               dmas = <&dmac0 16>, <&dmac0 17>;
+               pinctrl-0 = <&uart8m0_xfer>;
+               pinctrl-names = "default";
+               reg-io-width = <4>;
+               reg-shift = <2>;
+               status = "disabled";
+       };
+
+       uart9: serial@fe6d0000 {
+               compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
+               reg = <0x0 0xfe6d0000 0x0 0x100>;
+               interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru SCLK_UART9>, <&cru PCLK_UART9>;
+               clock-names = "baudclk", "apb_pclk";
+               dmas = <&dmac0 18>, <&dmac0 19>;
+               pinctrl-0 = <&uart9m0_xfer>;
+               pinctrl-names = "default";
+               reg-io-width = <4>;
+               reg-shift = <2>;
+               status = "disabled";
+       };
+
+       thermal_zones: thermal-zones {
+               cpu_thermal: cpu-thermal {
+                       polling-delay-passive = <100>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsadc 0>;
+
+                       trips {
+                               cpu_alert0: cpu_alert0 {
+                                       temperature = <70000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+                               cpu_alert1: cpu_alert1 {
+                                       temperature = <75000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+                               cpu_crit: cpu_crit {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&cpu_alert0>;
+                                       cooling-device =
+                                               <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                               <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                               <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                               <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+
+               gpu_thermal: gpu-thermal {
+                       polling-delay-passive = <20>; /* milliseconds */
+                       polling-delay = <1000>; /* milliseconds */
+
+                       thermal-sensors = <&tsadc 1>;
+
+                       trips {
+                               gpu_threshold: gpu-threshold {
+                                       temperature = <70000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+                               gpu_target: gpu-target {
+                                       temperature = <75000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+                               gpu_crit: gpu-crit {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&gpu_target>;
+                                       cooling-device =
+                                               <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+       };
+
+       tsadc: tsadc@fe710000 {
+               compatible = "rockchip,rk3568-tsadc";
+               reg = <0x0 0xfe710000 0x0 0x100>;
+               interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
+               assigned-clocks = <&cru CLK_TSADC_TSEN>, <&cru CLK_TSADC>;
+               assigned-clock-rates = <17000000>, <700000>;
+               clocks = <&cru CLK_TSADC>, <&cru PCLK_TSADC>;
+               clock-names = "tsadc", "apb_pclk";
+               resets = <&cru SRST_P_TSADC>, <&cru SRST_TSADC>,
+                        <&cru SRST_TSADCPHY>;
+               rockchip,grf = <&grf>;
+               rockchip,hw-tshut-temp = <95000>;
+               pinctrl-names = "init", "default", "sleep";
+               pinctrl-0 = <&tsadc_pin>;
+               pinctrl-1 = <&tsadc_shutorg>;
+               pinctrl-2 = <&tsadc_pin>;
+               #thermal-sensor-cells = <1>;
+               status = "disabled";
+       };
+
+       saradc: saradc@fe720000 {
+               compatible = "rockchip,rk3568-saradc", "rockchip,rk3399-saradc";
+               reg = <0x0 0xfe720000 0x0 0x100>;
+               interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru CLK_SARADC>, <&cru PCLK_SARADC>;
+               clock-names = "saradc", "apb_pclk";
+               resets = <&cru SRST_P_SARADC>;
+               reset-names = "saradc-apb";
+               #io-channel-cells = <1>;
+               status = "disabled";
+       };
+
+       pwm4: pwm@fe6e0000 {
+               compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
+               reg = <0x0 0xfe6e0000 0x0 0x10>;
+               clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
+               clock-names = "pwm", "pclk";
+               pinctrl-0 = <&pwm4_pins>;
+               pinctrl-names = "default";
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       pwm5: pwm@fe6e0010 {
+               compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
+               reg = <0x0 0xfe6e0010 0x0 0x10>;
+               clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
+               clock-names = "pwm", "pclk";
+               pinctrl-0 = <&pwm5_pins>;
+               pinctrl-names = "default";
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       pwm6: pwm@fe6e0020 {
+               compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
+               reg = <0x0 0xfe6e0020 0x0 0x10>;
+               clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
+               clock-names = "pwm", "pclk";
+               pinctrl-0 = <&pwm6_pins>;
+               pinctrl-names = "default";
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       pwm7: pwm@fe6e0030 {
+               compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
+               reg = <0x0 0xfe6e0030 0x0 0x10>;
+               clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
+               clock-names = "pwm", "pclk";
+               pinctrl-0 = <&pwm7_pins>;
+               pinctrl-names = "default";
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       pwm8: pwm@fe6f0000 {
+               compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
+               reg = <0x0 0xfe6f0000 0x0 0x10>;
+               clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
+               clock-names = "pwm", "pclk";
+               pinctrl-0 = <&pwm8m0_pins>;
+               pinctrl-names = "default";
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       pwm9: pwm@fe6f0010 {
+               compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
+               reg = <0x0 0xfe6f0010 0x0 0x10>;
+               clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
+               clock-names = "pwm", "pclk";
+               pinctrl-0 = <&pwm9m0_pins>;
+               pinctrl-names = "default";
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       pwm10: pwm@fe6f0020 {
+               compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
+               reg = <0x0 0xfe6f0020 0x0 0x10>;
+               clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
+               clock-names = "pwm", "pclk";
+               pinctrl-0 = <&pwm10m0_pins>;
+               pinctrl-names = "default";
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       pwm11: pwm@fe6f0030 {
+               compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
+               reg = <0x0 0xfe6f0030 0x0 0x10>;
+               clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
+               clock-names = "pwm", "pclk";
+               pinctrl-0 = <&pwm11m0_pins>;
+               pinctrl-names = "default";
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       pwm12: pwm@fe700000 {
+               compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
+               reg = <0x0 0xfe700000 0x0 0x10>;
+               clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
+               clock-names = "pwm", "pclk";
+               pinctrl-0 = <&pwm12m0_pins>;
+               pinctrl-names = "default";
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       pwm13: pwm@fe700010 {
+               compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
+               reg = <0x0 0xfe700010 0x0 0x10>;
+               clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
+               clock-names = "pwm", "pclk";
+               pinctrl-0 = <&pwm13m0_pins>;
+               pinctrl-names = "default";
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       pwm14: pwm@fe700020 {
+               compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
+               reg = <0x0 0xfe700020 0x0 0x10>;
+               clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
+               clock-names = "pwm", "pclk";
+               pinctrl-0 = <&pwm14m0_pins>;
+               pinctrl-names = "default";
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       pwm15: pwm@fe700030 {
+               compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
+               reg = <0x0 0xfe700030 0x0 0x10>;
+               clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
+               clock-names = "pwm", "pclk";
+               pinctrl-0 = <&pwm15m0_pins>;
+               pinctrl-names = "default";
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       combphy1: phy@fe830000 {
+               compatible = "rockchip,rk3568-naneng-combphy";
+               reg = <0x0 0xfe830000 0x0 0x100>;
+               clocks = <&pmucru CLK_PCIEPHY1_REF>,
+                        <&cru PCLK_PIPEPHY1>,
+                        <&cru PCLK_PIPE>;
+               clock-names = "ref", "apb", "pipe";
+               assigned-clocks = <&pmucru CLK_PCIEPHY1_REF>;
+               assigned-clock-rates = <100000000>;
+               resets = <&cru SRST_PIPEPHY1>;
+               rockchip,pipe-grf = <&pipegrf>;
+               rockchip,pipe-phy-grf = <&pipe_phy_grf1>;
+               #phy-cells = <1>;
+               status = "disabled";
+       };
+
+       combphy2: phy@fe840000 {
+               compatible = "rockchip,rk3568-naneng-combphy";
+               reg = <0x0 0xfe840000 0x0 0x100>;
+               clocks = <&pmucru CLK_PCIEPHY2_REF>,
+                        <&cru PCLK_PIPEPHY2>,
+                        <&cru PCLK_PIPE>;
+               clock-names = "ref", "apb", "pipe";
+               assigned-clocks = <&pmucru CLK_PCIEPHY2_REF>;
+               assigned-clock-rates = <100000000>;
+               resets = <&cru SRST_PIPEPHY2>;
+               rockchip,pipe-grf = <&pipegrf>;
+               rockchip,pipe-phy-grf = <&pipe_phy_grf2>;
+               #phy-cells = <1>;
+               status = "disabled";
+       };
+
+       usb2phy0: usb2phy@fe8a0000 {
+               compatible = "rockchip,rk3568-usb2phy";
+               reg = <0x0 0xfe8a0000 0x0 0x10000>;
+               clocks = <&pmucru CLK_USBPHY0_REF>;
+               clock-names = "phyclk";
+               clock-output-names = "clk_usbphy0_480m";
+               interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>;
+               rockchip,usbgrf = <&usb2phy0_grf>;
+               #clock-cells = <0>;
+               status = "disabled";
+
+               usb2phy0_host: host-port {
+                       #phy-cells = <0>;
+                       status = "disabled";
+               };
+
+               usb2phy0_otg: otg-port {
+                       #phy-cells = <0>;
+                       status = "disabled";
+               };
+       };
+
+       usb2phy1: usb2phy@fe8b0000 {
+               compatible = "rockchip,rk3568-usb2phy";
+               reg = <0x0 0xfe8b0000 0x0 0x10000>;
+               clocks = <&pmucru CLK_USBPHY1_REF>;
+               clock-names = "phyclk";
+               clock-output-names = "clk_usbphy1_480m";
+               interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
+               rockchip,usbgrf = <&usb2phy1_grf>;
+               #clock-cells = <0>;
+               status = "disabled";
+
+               usb2phy1_host: host-port {
+                       #phy-cells = <0>;
+                       status = "disabled";
+               };
+
+               usb2phy1_otg: otg-port {
+                       #phy-cells = <0>;
+                       status = "disabled";
+               };
+       };
+
+       pinctrl: pinctrl {
+               compatible = "rockchip,rk3568-pinctrl";
+               rockchip,grf = <&grf>;
+               rockchip,pmu = <&pmugrf>;
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               gpio0: gpio@fdd60000 {
+                       compatible = "rockchip,gpio-bank";
+                       reg = <0x0 0xfdd60000 0x0 0x100>;
+                       interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&pmucru PCLK_GPIO0>, <&pmucru DBCLK_GPIO0>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               gpio1: gpio@fe740000 {
+                       compatible = "rockchip,gpio-bank";
+                       reg = <0x0 0xfe740000 0x0 0x100>;
+                       interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cru PCLK_GPIO1>, <&cru DBCLK_GPIO1>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               gpio2: gpio@fe750000 {
+                       compatible = "rockchip,gpio-bank";
+                       reg = <0x0 0xfe750000 0x0 0x100>;
+                       interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cru PCLK_GPIO2>, <&cru DBCLK_GPIO2>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               gpio3: gpio@fe760000 {
+                       compatible = "rockchip,gpio-bank";
+                       reg = <0x0 0xfe760000 0x0 0x100>;
+                       interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cru PCLK_GPIO3>, <&cru DBCLK_GPIO3>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               gpio4: gpio@fe770000 {
+                       compatible = "rockchip,gpio-bank";
+                       reg = <0x0 0xfe770000 0x0 0x100>;
+                       interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cru PCLK_GPIO4>, <&cru DBCLK_GPIO4>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+       };
+};
+
+#include "rk3568-pinctrl.dtsi"
index 0a562b2..62e7aa5 100644 (file)
@@ -63,7 +63,7 @@
                compatible = "gpio-keys-polled";
                poll-interval = <20>;
 
-               left-joystick-left {
+               event-left-joystick-left {
                        label = "Left Joystick Left";
                        linux,code = <ABS_X>;
                        linux,input-type = <EV_ABS>;
@@ -71,7 +71,7 @@
                        gpios = <&pio 0 6 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PA6 */
                };
 
-               left-joystick-right {
+               event-left-joystick-right {
                        label = "Left Joystick Right";
                        linux,code = <ABS_X>;
                        linux,input-type = <EV_ABS>;
@@ -79,7 +79,7 @@
                        gpios = <&pio 0 5 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PA5 */
                };
 
-               left-joystick-up {
+               event-left-joystick-up {
                        label = "Left Joystick Up";
                        linux,code = <ABS_Y>;
                        linux,input-type = <EV_ABS>;
@@ -87,7 +87,7 @@
                        gpios = <&pio 0 8 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PA8 */
                };
 
-               left-joystick-down {
+               event-left-joystick-down {
                        label = "Left Joystick Down";
                        linux,code = <ABS_Y>;
                        linux,input-type = <EV_ABS>;
@@ -95,7 +95,7 @@
                        gpios = <&pio 0 9 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PA9 */
                };
 
-               right-joystick-left {
+               event-right-joystick-left {
                        label = "Right Joystick Left";
                        linux,code = <ABS_Z>;
                        linux,input-type = <EV_ABS>;
                        gpios = <&pio 0 1 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PA1 */
                };
 
-               right-joystick-right {
+               event-right-joystick-right {
                        label = "Right Joystick Right";
                        linux,code = <ABS_Z>;
                        linux,input-type = <EV_ABS>;
                        gpios = <&pio 0 0 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PA0 */
                };
 
-               right-joystick-up {
+               event-right-joystick-up {
                        label = "Right Joystick Up";
                        linux,code = <ABS_RZ>;
                        linux,input-type = <EV_ABS>;
                        gpios = <&pio 0 3 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PA3 */
                };
 
-               right-joystick-down {
+               event-right-joystick-down {
                        label = "Right Joystick Down";
                        linux,code = <ABS_RZ>;
                        linux,input-type = <EV_ABS>;
                        gpios = <&pio 0 4 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PA4 */
                };
 
-               dpad-left {
+               event-dpad-left {
                        label = "DPad Left";
                        linux,code = <ABS_HAT0X>;
                        linux,input-type = <EV_ABS>;
                        gpios = <&pio 7 23 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PH23 */
                };
 
-               dpad-right {
+               event-dpad-right {
                        label = "DPad Right";
                        linux,code = <ABS_HAT0X>;
                        linux,input-type = <EV_ABS>;
                        gpios = <&pio 7 24 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PH24 */
                };
 
-               dpad-up {
+               event-dpad-up {
                        label = "DPad Up";
                        linux,code = <ABS_HAT0Y>;
                        linux,input-type = <EV_ABS>;
                        gpios = <&pio 7 25 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PH25 */
                };
 
-               dpad-down {
+               event-dpad-down {
                        label = "DPad Down";
                        linux,code = <ABS_HAT0Y>;
                        linux,input-type = <EV_ABS>;
                        gpios = <&pio 7 26 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PH26 */
                };
 
-               x {
+               event-x {
                        label = "Button X";
                        linux,code = <BTN_X>;
                        gpios = <&pio 0 16 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PA16 */
                };
 
-               y {
+               event-y {
                        label = "Button Y";
                        linux,code = <BTN_Y>;
                        gpios = <&pio 0 14 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PA14 */
                };
 
-               a {
+               event-a {
                        label = "Button A";
                        linux,code = <BTN_A>;
                        gpios = <&pio 0 17 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PA17 */
                };
 
-               b {
+               event-b {
                        label = "Button B";
                        linux,code = <BTN_B>;
                        gpios = <&pio 0 15 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PA15 */
                };
 
-               select {
+               event-select {
                        label = "Select Button";
                        linux,code = <BTN_SELECT>;
                        gpios = <&pio 0 11 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PA11 */
                };
 
-               start {
+               event-start {
                        label = "Start Button";
                        linux,code = <BTN_START>;
                        gpios = <&pio 0 12 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PA12 */
                };
 
-               top-left {
+               event-top-left {
                        label = "Top Left Button";
                        linux,code = <BTN_TL>;
                        gpios = <&pio 7 22 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PH22 */
                };
 
-               top-right {
+               event-top-right {
                        label = "Top Right Button";
                        linux,code = <BTN_TR>;
                        gpios = <&pio 0 13 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PA13 */
index 1ac8237..a332d61 100644 (file)
        gpio-keys {
                compatible = "gpio-keys";
 
-               back {
+               key-back {
                        label = "Key Back";
                        linux,code = <KEY_BACK>;
                        gpios = <&pio 7 17 GPIO_ACTIVE_LOW>;
                };
 
-               home {
+               key-home {
                        label = "Key Home";
                        linux,code = <KEY_HOME>;
                        gpios = <&pio 7 18 GPIO_ACTIVE_LOW>;
                };
 
-               menu {
+               key-menu {
                        label = "Key Menu";
                        linux,code = <KEY_MENU>;
                        gpios = <&pio 7 19 GPIO_ACTIVE_LOW>;
index c7bd73f..ce8f6aa 100644 (file)
@@ -58,7 +58,7 @@
 
        wifi_pwrseq: wifi-pwrseq {
                compatible = "mmc-pwrseq-simple";
-               clocks = <&rtc 1>;
+               clocks = <&rtc CLK_OSC32K_FANOUT>;
                clock-names = "ext_clock";
                reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* WL-PMU-EN: PL2 */
        };
index f7fe9fa..bf66b64 100644 (file)
@@ -56,7 +56,7 @@
        wifi_pwrseq: wifi_pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
-               clocks = <&rtc 1>;
+               clocks = <&rtc CLK_OSC32K_FANOUT>;
                clock-names = "ext_clock";
        };
 };
 
        bluetooth {
                compatible = "brcm,bcm43438-bt";
-               clocks = <&rtc 1>;
+               clocks = <&rtc CLK_OSC32K_FANOUT>;
                clock-names = "lpo";
                vbat-supply = <&reg_dldo2>;
                vddio-supply = <&reg_dldo4>;
index 09b3c7f..ffc3b4c 100644 (file)
@@ -43,7 +43,7 @@
 
        wifi_pwrseq: wifi_pwrseq {
                compatible = "mmc-pwrseq-simple";
-               clocks = <&rtc 1>;
+               clocks = <&rtc CLK_OSC32K_FANOUT>;
                clock-names = "ext_clock";
                reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
        };
index f3f8e17..22d3502 100644 (file)
        };
 };
 
+&codec {
+       status = "okay";
+};
+
+&codec_analog {
+       cpvdd-supply = <&reg_eldo1>;
+       status = "okay";
+};
+
 &cpu0 {
        cpu-supply = <&reg_dcdc2>;
 };
        cpu-supply = <&reg_dcdc2>;
 };
 
+&dai {
+       status = "okay";
+};
+
 &de {
        status = "okay";
 };
        vcc-hdmi-supply = <&reg_dldo1>;
 };
 
+&sound {
+       simple-audio-card,aux-devs = <&codec_analog>;
+       simple-audio-card,widgets = "Microphone", "Microphone Jack Left",
+                   "Microphone", "Microphone Jack Right",
+                   "Headphone", "Headphone Jack";
+       simple-audio-card,routing = "Left DAC", "DACL",
+                   "Right DAC", "DACR",
+                   "Headphone Jack", "HP",
+                   "ADCL", "Left ADC",
+                   "ADCR", "Right ADC",
+                   "Microphone Jack Left", "MBIAS",
+                   "MIC1", "Microphone Jack Left",
+                   "Microphone Jack Right", "MBIAS",
+                   "MIC2", "Microphone Jack Right";
+       status = "okay";
+};
+
 &uart0 {
        pinctrl-names = "default";
        pinctrl-0 = <&uart0_pb_pins>;
index 8eee805..714a270 100644 (file)
@@ -40,7 +40,7 @@
        leds {
                compatible = "gpio-leds";
 
-               status {
+               led-0 {
                        label = "orangepi:green:status";
                        gpios = <&pio 7 11 GPIO_ACTIVE_HIGH>; /* PH11 */
                };
@@ -71,7 +71,7 @@
        wifi_pwrseq: wifi_pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 8 GPIO_ACTIVE_LOW>; /* PL8 */
-               clocks = <&rtc 1>;
+               clocks = <&rtc CLK_OSC32K_FANOUT>;
                clock-names = "ext_clock";
        };
 };
        bluetooth {
                compatible = "brcm,bcm43438-bt";
                max-speed = <1500000>;
-               clocks = <&rtc 1>;
+               clocks = <&rtc CLK_OSC32K_FANOUT>;
                clock-names = "lpo";
                vbat-supply = <&reg_dldo2>;
                vddio-supply = <&reg_dldo4>;
index 68b6ab4..c00c4c1 100644 (file)
                stdout-path = "serial0:115200n8";
        };
 
-       gpio_keys {
+       gpio-keys {
                compatible = "gpio-keys";
 
-               lid_switch {
+               lid-switch {
                        label = "Lid Switch";
                        gpios = <&r_pio 0 12 GPIO_ACTIVE_LOW>; /* PL12 */
                        linux,input-type = <EV_SW>;
index fb65319..219f720 100644 (file)
        compatible = "pine64,pinephone-1.0", "pine64,pinephone", "allwinner,sun50i-a64";
 };
 
+&codec_analog {
+       allwinner,internal-bias-resistor;
+};
+
 &sgm3140 {
        enable-gpios = <&pio 2 3 GPIO_ACTIVE_HIGH>; /* PC3 */
        flash-gpios = <&pio 3 24 GPIO_ACTIVE_HIGH>; /* PD24 */
index 5e59d37..723af64 100644 (file)
        default-brightness-level = <400>;
 };
 
+&codec_analog {
+       allwinner,internal-bias-resistor;
+};
+
 &sgm3140 {
        enable-gpios = <&pio 3 24 GPIO_ACTIVE_HIGH>; /* PD24 */
        flash-gpios = <&pio 2 3 GPIO_ACTIVE_HIGH>; /* PC3 */
index 6668431..945afdb 100644 (file)
        status = "okay";
 };
 
+&pio {
+       vcc-pc-supply = <&reg_dcdc1>;
+       vcc-pd-supply = <&reg_dldo2>;
+       vcc-pe-supply = <&reg_aldo1>;
+       vcc-pf-supply = <&reg_dcdc1>;  /* No dedicated supply-pin for this */
+       vcc-pg-supply = <&reg_aldo2>;
+};
+
 &pwm {
        status = "okay";
 };
index 555bc92..b04f492 100644 (file)
@@ -4,6 +4,7 @@
 //    Copyright (C) 2015 Jens Kuske <jenskuske@gmail.com>
 
 #include <dt-bindings/clock/sun50i-a64-ccu.h>
+#include <dt-bindings/clock/sun6i-rtc.h>
 #include <dt-bindings/clock/sun8i-de2.h>
 #include <dt-bindings/clock/sun8i-r-ccu.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
                ccu: clock@1c20000 {
                        compatible = "allwinner,sun50i-a64-ccu";
                        reg = <0x01c20000 0x400>;
-                       clocks = <&osc24M>, <&rtc 0>;
+                       clocks = <&osc24M>, <&rtc CLK_OSC32K>;
                        clock-names = "hosc", "losc";
                        #clock-cells = <1>;
                        #reset-cells = <1>;
                        interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&ccu CLK_BUS_PIO>, <&osc24M>, <&rtc 0>;
+                       clocks = <&ccu CLK_BUS_PIO>, <&osc24M>,
+                                <&rtc CLK_OSC32K>;
                        clock-names = "apb", "hosc", "losc";
                        gpio-controller;
                        #gpio-cells = <3>;
                        reg-io-width = <1>;
                        interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&ccu CLK_BUS_HDMI>, <&ccu CLK_HDMI_DDC>,
-                                <&ccu CLK_HDMI>, <&rtc 0>;
+                                <&ccu CLK_HDMI>, <&rtc CLK_OSC32K>;
                        clock-names = "iahb", "isfr", "tmds", "cec";
                        resets = <&ccu RST_BUS_HDMI1>;
                        reset-names = "ctrl";
                r_ccu: clock@1f01400 {
                        compatible = "allwinner,sun50i-a64-r-ccu";
                        reg = <0x01f01400 0x100>;
-                       clocks = <&osc24M>, <&rtc 0>, <&rtc 2>,
+                       clocks = <&osc24M>, <&rtc CLK_OSC32K>, <&rtc CLK_IOSC>,
                                 <&ccu CLK_PLL_PERIPH0>;
                        clock-names = "hosc", "losc", "iosc", "pll-periph";
                        #clock-cells = <1>;
index 55b3695..a3e040d 100644 (file)
                };
        };
 
-       r-gpio-keys {
+       gpio-keys {
                compatible = "gpio-keys";
 
-               reset {
+               key-reset {
                        label = "reset";
                        linux,code = <KEY_RESTART>;
                        gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>;
index 1010c1b..b5c1ff1 100644 (file)
                };
        };
 
-       r-gpio-keys {
+       gpio-keys {
                compatible = "gpio-keys";
 
-               sw4 {
+               key-sw4 {
                        label = "sw4";
                        linux,code = <BTN_0>;
                        gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>;
index 74e0444..d7f8bad 100644 (file)
                };
        };
 
-       r-gpio-keys {
+       gpio-keys {
                compatible = "gpio-keys";
 
-               sw4 {
+               key-sw4 {
                        label = "sw4";
                        linux,code = <BTN_0>;
                        gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>;
index 9f12c05..f1957bb 100644 (file)
@@ -86,7 +86,7 @@
 
        wifi_pwrseq: wifi-pwrseq {
                compatible = "mmc-pwrseq-simple";
-               clocks = <&rtc 1>;
+               clocks = <&rtc CLK_OSC32K_FANOUT>;
                clock-names = "ext_clock";
                reset-gpios = <&r_pio 1 3 GPIO_ACTIVE_LOW>; /* PM3 */
                post-power-on-delay-ms = <200>;
 
        bluetooth {
                compatible = "brcm,bcm4345c5";
-               clocks = <&rtc 1>;
+               clocks = <&rtc CLK_OSC32K_FANOUT>;
                clock-names = "lpo";
                device-wakeup-gpios = <&r_pio 1 2 GPIO_ACTIVE_HIGH>; /* PM2 */
                host-wakeup-gpios = <&r_pio 1 1 GPIO_ACTIVE_HIGH>; /* PM1 */
index e877085..fb31dcb 100644 (file)
@@ -13,7 +13,7 @@
 
        wifi_pwrseq: wifi_pwrseq {
                compatible = "mmc-pwrseq-simple";
-               clocks = <&rtc 1>;
+               clocks = <&rtc CLK_OSC32K_FANOUT>;
                clock-names = "ext_clock";
                reset-gpios = <&r_pio 1 3 GPIO_ACTIVE_LOW>; /* PM3 */
                post-power-on-delay-ms = <200>;
@@ -64,7 +64,7 @@
 
        bluetooth {
                compatible = "brcm,bcm4345c5";
-               clocks = <&rtc 1>;
+               clocks = <&rtc CLK_OSC32K_FANOUT>;
                clock-names = "lpo";
                device-wakeup-gpios = <&r_pio 1 2 GPIO_ACTIVE_HIGH>; /* PM2 */
                host-wakeup-gpios = <&r_pio 1 1 GPIO_ACTIVE_HIGH>; /* PM1 */
index edb71e4..4903d63 100644 (file)
@@ -78,7 +78,7 @@
 
        wifi_pwrseq: wifi-pwrseq {
                compatible = "mmc-pwrseq-simple";
-               clocks = <&rtc 1>;
+               clocks = <&rtc CLK_OSC32K_FANOUT>;
                clock-names = "ext_clock";
                reset-gpios = <&r_pio 1 3 GPIO_ACTIVE_LOW>; /* PM3 */
        };
index 71a45a6..afbbfc2 100644 (file)
@@ -4,6 +4,7 @@
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/clock/sun50i-h6-ccu.h>
 #include <dt-bindings/clock/sun50i-h6-r-ccu.h>
+#include <dt-bindings/clock/sun6i-rtc.h>
 #include <dt-bindings/clock/sun8i-de2.h>
 #include <dt-bindings/clock/sun8i-tcon-top.h>
 #include <dt-bindings/reset/sun50i-h6-ccu.h>
                ccu: clock@3001000 {
                        compatible = "allwinner,sun50i-h6-ccu";
                        reg = <0x03001000 0x1000>;
-                       clocks = <&osc24M>, <&rtc 0>, <&rtc 2>;
+                       clocks = <&osc24M>, <&rtc CLK_OSC32K>, <&rtc CLK_IOSC>;
                        clock-names = "hosc", "losc", "iosc";
                        #clock-cells = <1>;
                        #reset-cells = <1>;
                                     <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&ccu CLK_APB1>, <&osc24M>, <&rtc 0>;
+                       clocks = <&ccu CLK_APB1>, <&osc24M>, <&rtc CLK_OSC32K>;
                        clock-names = "apb", "hosc", "losc";
                        gpio-controller;
                        #gpio-cells = <3>;
                        interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&ccu CLK_BUS_XHCI>,
                                 <&ccu CLK_BUS_XHCI>,
-                                <&rtc 0>;
+                                <&rtc CLK_OSC32K>;
                        clock-names = "ref", "bus_early", "suspend";
                        resets = <&ccu RST_BUS_XHCI>;
                        /*
                r_ccu: clock@7010000 {
                        compatible = "allwinner,sun50i-h6-r-ccu";
                        reg = <0x07010000 0x400>;
-                       clocks = <&osc24M>, <&rtc 0>, <&rtc 2>,
+                       clocks = <&osc24M>, <&rtc CLK_OSC32K>, <&rtc CLK_IOSC>,
                                 <&ccu CLK_PLL_PERIPH0>;
                        clock-names = "hosc", "losc", "iosc", "pll-periph";
                        #clock-cells = <1>;
                        reg = <0x07022000 0x400>;
                        interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&r_ccu CLK_R_APB1>, <&osc24M>, <&rtc 0>;
+                       clocks = <&r_ccu CLK_R_APB1>, <&osc24M>,
+                                <&rtc CLK_OSC32K>;
                        clock-names = "apb", "hosc", "losc";
                        gpio-controller;
                        #gpio-cells = <3>;
index e6de49f..02893f3 100644 (file)
                regulator-max-microvolt = <5000000>;
                regulator-always-on;
        };
-
-       reg_usb1_vbus: usb1-vbus {
-               compatible = "regulator-fixed";
-               regulator-name = "usb1-vbus";
-               regulator-min-microvolt = <5000000>;
-               regulator-max-microvolt = <5000000>;
-               vin-supply = <&reg_vcc5v>;
-               enable-active-high;
-               gpio = <&pio 2 16 GPIO_ACTIVE_HIGH>; /* PC16 */
-               status = "okay";
-       };
-};
-
-&ehci0 {
-       status = "okay";
-};
-
-&ehci1 {
-       status = "okay";
 };
 
-/* USB 2 & 3 are on headers only. */
-
 &emac0 {
        pinctrl-names = "default";
        pinctrl-0 = <&ext_rgmii_pins>;
        status = "okay";
 };
 
-&ohci0 {
-       status = "okay";
-};
-
-&ohci1 {
-       status = "okay";
-};
-
 &r_rsb {
        status = "okay";
 
                        reg_dcdca: dcdca {
                                regulator-always-on;
                                regulator-min-microvolt = <810000>;
-                               regulator-max-microvolt = <1080000>;
+                               regulator-max-microvolt = <1100000>;
                                regulator-name = "vdd-cpu";
                        };
 
                        reg_dcdcc: dcdcc {
                                regulator-always-on;
                                regulator-min-microvolt = <810000>;
-                               regulator-max-microvolt = <1080000>;
+                               regulator-max-microvolt = <990000>;
                                regulator-name = "vdd-gpu-sys";
                        };
 
                        };
 
                        reg_dcdce: dcdce {
-                               regulator-boot-on;
+                               regulator-always-on;
                                regulator-min-microvolt = <3300000>;
                                regulator-max-microvolt = <3300000>;
                                regulator-name = "vcc-eth-mmc";
        };
 };
 
+&pio {
+       vcc-pc-supply = <&reg_aldo1>;
+       vcc-pf-supply = <&reg_aldo1>;
+       vcc-pg-supply = <&reg_bldo1>;
+       vcc-ph-supply = <&reg_aldo1>;
+       vcc-pi-supply = <&reg_aldo1>;
+};
+
 &spi0  {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&spi0_pins>, <&spi0_cs0_pin>;
 
        flash@0 {
                #address-cells = <1>;
        pinctrl-0 = <&uart0_ph_pins>;
        status = "okay";
 };
-
-&usbotg {
-       dr_mode = "peripheral";
-       status = "okay";
-};
-
-&usbphy {
-       usb1_vbus-supply = <&reg_usb1_vbus>;
-       status = "okay";
-};
diff --git a/arch/arm/dts/sun50i-h616-x96-mate.dts b/arch/arm/dts/sun50i-h616-x96-mate.dts
new file mode 100644 (file)
index 0000000..6619db3
--- /dev/null
@@ -0,0 +1,177 @@
+// SPDX-License-Identifier: (GPL-2.0+ or MIT)
+/*
+ * Copyright (C) 2021 Arm Ltd.
+ */
+
+/dts-v1/;
+
+#include "sun50i-h616.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+
+/ {
+       model = "X96 Mate";
+       compatible = "hechuang,x96-mate", "allwinner,sun50i-h616";
+
+       aliases {
+               serial0 = &uart0;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       reg_vcc5v: vcc5v {
+               /* board wide 5V supply directly from the DC input */
+               compatible = "regulator-fixed";
+               regulator-name = "vcc-5v";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+       };
+};
+
+&ir {
+       status = "okay";
+};
+
+&mmc0 {
+       vmmc-supply = <&reg_dcdce>;
+       cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;  /* PF6 */
+       bus-width = <4>;
+       status = "okay";
+};
+
+&mmc2 {
+       vmmc-supply = <&reg_dcdce>;
+       vqmmc-supply = <&reg_bldo1>;
+       bus-width = <8>;
+       non-removable;
+       cap-mmc-hw-reset;
+       mmc-ddr-1_8v;
+       mmc-hs200-1_8v;
+       status = "okay";
+};
+
+&r_rsb {
+       status = "okay";
+
+       axp305: pmic@745 {
+               compatible = "x-powers,axp305", "x-powers,axp805",
+                            "x-powers,axp806";
+               interrupt-controller;
+               #interrupt-cells = <1>;
+               reg = <0x745>;
+
+               x-powers,self-working-mode;
+               vina-supply = <&reg_vcc5v>;
+               vinb-supply = <&reg_vcc5v>;
+               vinc-supply = <&reg_vcc5v>;
+               vind-supply = <&reg_vcc5v>;
+               vine-supply = <&reg_vcc5v>;
+               aldoin-supply = <&reg_vcc5v>;
+               bldoin-supply = <&reg_vcc5v>;
+               cldoin-supply = <&reg_vcc5v>;
+
+               regulators {
+                       reg_aldo1: aldo1 {
+                               regulator-always-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-name = "vcc-sys";
+                       };
+
+                       /* Enabled by the Android BSP */
+                       reg_aldo2: aldo2 {
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-name = "vcc3v3-ext";
+                               status = "disabled";
+                       };
+
+                       /* Enabled by the Android BSP */
+                       reg_aldo3: aldo3 {
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-name = "vcc3v3-ext2";
+                               status = "disabled";
+                       };
+
+                       reg_bldo1: bldo1 {
+                               regulator-always-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "vcc1v8";
+                       };
+
+                       /* Enabled by the Android BSP */
+                       reg_bldo2: bldo2 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "vcc1v8-2";
+                               status = "disabled";
+                       };
+
+                       bldo3 {
+                               /* unused */
+                       };
+
+                       bldo4 {
+                               /* unused */
+                       };
+
+                       cldo1 {
+                               regulator-min-microvolt = <2500000>;
+                               regulator-max-microvolt = <2500000>;
+                               regulator-name = "vcc2v5";
+                       };
+
+                       cldo2 {
+                               /* unused */
+                       };
+
+                       cldo3 {
+                               /* unused */
+                       };
+
+                       reg_dcdca: dcdca {
+                               regulator-always-on;
+                               regulator-min-microvolt = <810000>;
+                               regulator-max-microvolt = <1100000>;
+                               regulator-name = "vdd-cpu";
+                       };
+
+                       reg_dcdcc: dcdcc {
+                               regulator-always-on;
+                               regulator-min-microvolt = <810000>;
+                               regulator-max-microvolt = <990000>;
+                               regulator-name = "vdd-gpu-sys";
+                       };
+
+                       reg_dcdcd: dcdcd {
+                               regulator-always-on;
+                               regulator-min-microvolt = <1360000>;
+                               regulator-max-microvolt = <1360000>;
+                               regulator-name = "vdd-dram";
+                       };
+
+                       reg_dcdce: dcdce {
+                               regulator-always-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-name = "vcc-eth-mmc";
+                       };
+
+                       sw {
+                               /* unused */
+                       };
+               };
+       };
+};
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_ph_pins>;
+       status = "okay";
+};
index 2f71e85..622a1f7 100644 (file)
@@ -6,6 +6,7 @@
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/clock/sun50i-h616-ccu.h>
 #include <dt-bindings/clock/sun50i-h6-r-ccu.h>
+#include <dt-bindings/clock/sun6i-rtc.h>
 #include <dt-bindings/reset/sun50i-h616-ccu.h>
 #include <dt-bindings/reset/sun50i-h6-r-ccu.h>
 
                };
        };
 
-       osc24M: osc24M_clk {
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               /*
+                * 256 KiB reserved for Trusted Firmware-A (BL31).
+                * This is added by BL31 itself, but some bootloaders fail
+                * to propagate this into the DTB handed to kernels.
+                */
+               secmon@40000000 {
+                       reg = <0x0 0x40000000 0x0 0x40000>;
+                       no-map;
+               };
+       };
+
+       osc24M: osc24M-clk {
                #clock-cells = <0>;
                compatible = "fixed-clock";
                clock-frequency = <24000000>;
                ccu: clock@3001000 {
                        compatible = "allwinner,sun50i-h616-ccu";
                        reg = <0x03001000 0x1000>;
-                       clocks = <&osc24M>, <&rtc 0>, <&rtc 2>;
+                       clocks = <&osc24M>, <&rtc CLK_OSC32K>, <&rtc CLK_IOSC>;
                        clock-names = "hosc", "losc", "iosc";
                        #clock-cells = <1>;
                        #reset-cells = <1>;
                                     <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&ccu CLK_APB1>, <&osc24M>, <&rtc 0>;
+                       clocks = <&ccu CLK_APB1>, <&osc24M>, <&rtc CLK_OSC32K>;
                        clock-names = "apb", "hosc", "losc";
                        gpio-controller;
                        #gpio-cells = <3>;
                                function = "i2c3";
                        };
 
-                       ir_rx_pin: ir_rx_pin {
+                       ir_rx_pin: ir-rx-pin {
                                pins = "PH10";
                                function = "ir_rx";
                        };
                                bias-pull-up;
                        };
 
+                       /omit-if-no-ref/
                        mmc1_pins: mmc1-pins {
                                pins = "PG0", "PG1", "PG2", "PG3",
                                       "PG4", "PG5";
                                bias-pull-up;
                        };
 
+                       /omit-if-no-ref/
                        spi0_pins: spi0-pins {
-                               pins = "PC0", "PC2", "PC3", "PC4";
+                               pins = "PC0", "PC2", "PC4";
                                function = "spi0";
                        };
 
+                       /omit-if-no-ref/
+                       spi0_cs0_pin: spi0-cs0-pin {
+                               pins = "PC3";
+                               function = "spi0";
+                       };
+
+                       /omit-if-no-ref/
                        spi1_pins: spi1-pins {
                                pins = "PH6", "PH7", "PH8";
                                function = "spi1";
                        };
 
-                       spi1_cs_pin: spi1-cs-pin {
+                       /omit-if-no-ref/
+                       spi1_cs0_pin: spi1-cs0-pin {
                                pins = "PH5";
                                function = "spi1";
                        };
                                function = "uart0";
                        };
 
+                       /omit-if-no-ref/
                        uart1_pins: uart1-pins {
                                pins = "PG6", "PG7";
                                function = "uart1";
                        };
 
+                       /omit-if-no-ref/
                        uart1_rts_cts_pins: uart1-rts-cts-pins {
                                pins = "PG8", "PG9";
                                function = "uart1";
                        pinctrl-names = "default";
                        pinctrl-0 = <&mmc0_pins>;
                        status = "disabled";
+                       max-frequency = <150000000>;
                        cap-sd-highspeed;
                        cap-mmc-highspeed;
                        mmc-ddr-3_3v;
-                       mmc-ddr-1_8v;
                        cap-sdio-irq;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        pinctrl-names = "default";
                        pinctrl-0 = <&mmc1_pins>;
                        status = "disabled";
+                       max-frequency = <150000000>;
                        cap-sd-highspeed;
                        cap-mmc-highspeed;
                        mmc-ddr-3_3v;
-                       mmc-ddr-1_8v;
                        cap-sdio-irq;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        pinctrl-names = "default";
                        pinctrl-0 = <&mmc2_pins>;
                        status = "disabled";
+                       max-frequency = <150000000>;
                        cap-sd-highspeed;
                        cap-mmc-highspeed;
                        mmc-ddr-3_3v;
-                       mmc-ddr-1_8v;
                        cap-sdio-irq;
                        #address-cells = <1>;
                        #size-cells = <0>;
 
                i2c0: i2c@5002000 {
                        compatible = "allwinner,sun50i-h616-i2c",
+                                    "allwinner,sun8i-v536-i2c",
                                     "allwinner,sun6i-a31-i2c";
                        reg = <0x05002000 0x400>;
                        interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
 
                i2c1: i2c@5002400 {
                        compatible = "allwinner,sun50i-h616-i2c",
+                                    "allwinner,sun8i-v536-i2c",
                                     "allwinner,sun6i-a31-i2c";
                        reg = <0x05002400 0x400>;
                        interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
 
                i2c2: i2c@5002800 {
                        compatible = "allwinner,sun50i-h616-i2c",
+                                    "allwinner,sun8i-v536-i2c",
                                     "allwinner,sun6i-a31-i2c";
                        reg = <0x05002800 0x400>;
                        interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
 
                i2c3: i2c@5002c00 {
                        compatible = "allwinner,sun50i-h616-i2c",
+                                    "allwinner,sun8i-v536-i2c",
                                     "allwinner,sun6i-a31-i2c";
                        reg = <0x05002c00 0x400>;
                        interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
 
                i2c4: i2c@5003000 {
                        compatible = "allwinner,sun50i-h616-i2c",
+                                    "allwinner,sun8i-v536-i2c",
                                     "allwinner,sun6i-a31-i2c";
                        reg = <0x05003000 0x400>;
                        interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&ccu CLK_BUS_SPI0>, <&ccu CLK_SPI0>;
                        clock-names = "ahb", "mod";
                        resets = <&ccu RST_BUS_SPI0>;
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&spi0_pins>;
                        status = "disabled";
                        #address-cells = <1>;
                        #size-cells = <0>;
                        clocks = <&ccu CLK_BUS_SPI1>, <&ccu CLK_SPI1>;
                        clock-names = "ahb", "mod";
                        resets = <&ccu RST_BUS_SPI1>;
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&spi1_pins>;
                        status = "disabled";
                        #address-cells = <1>;
                        #size-cells = <0>;
                };
 
                emac0: ethernet@5020000 {
-                       compatible = "allwinner,sun50i-h616-emac",
+                       compatible = "allwinner,sun50i-h616-emac0",
                                     "allwinner,sun50i-a64-emac";
-                       syscon = <&syscon>;
                        reg = <0x05020000 0x10000>;
                        interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "macirq";
-                       resets = <&ccu RST_BUS_EMAC0>;
-                       reset-names = "stmmaceth";
                        clocks = <&ccu CLK_BUS_EMAC0>;
                        clock-names = "stmmaceth";
-                       status = "disabled";
-
-                       mdio0: mdio {
-                               compatible = "snps,dwmac-mdio";
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                       };
-               };
-
-               emac1: ethernet@5030000 {
-                       compatible = "allwinner,sun50i-h616-emac";
-                       syscon = <&syscon 1>;
-                       reg = <0x05030000 0x10000>;
-                       interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "macirq";
-                       resets = <&ccu RST_BUS_EMAC1>;
+                       resets = <&ccu RST_BUS_EMAC0>;
                        reset-names = "stmmaceth";
-                       clocks = <&ccu CLK_BUS_EMAC1>;
-                       clock-names = "stmmaceth";
+                       syscon = <&syscon>;
                        status = "disabled";
 
-                       mdio1: mdio {
+                       mdio0: mdio {
                                compatible = "snps,dwmac-mdio";
                                #address-cells = <1>;
                                #size-cells = <0>;
                        };
                };
 
-               usbotg: usb@5100000 {
-                       compatible = "allwinner,sun50i-h616-musb",
-                                    "allwinner,sun8i-h3-musb";
-                       reg = <0x05100000 0x0400>;
-                       clocks = <&ccu CLK_BUS_OTG>;
-                       resets = <&ccu RST_BUS_OTG>;
-                       interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "mc";
-                       phys = <&usbphy 0>;
-                       phy-names = "usb";
-                       extcon = <&usbphy 0>;
-                       status = "disabled";
-               };
-
-               usbphy: phy@5100400 {
-                       compatible = "allwinner,sun50i-h616-usb-phy";
-                       reg = <0x05100400 0x24>,
-                             <0x05101800 0x14>,
-                             <0x05200800 0x14>,
-                             <0x05310800 0x14>,
-                             <0x05311800 0x14>;
-                       reg-names = "phy_ctrl",
-                                   "pmu0",
-                                   "pmu1",
-                                   "pmu2",
-                                   "pmu3";
-                       clocks = <&ccu CLK_USB_PHY0>,
-                                <&ccu CLK_USB_PHY1>,
-                                <&ccu CLK_USB_PHY2>,
-                                <&ccu CLK_USB_PHY3>;
-                       clock-names = "usb0_phy",
-                                     "usb1_phy",
-                                     "usb2_phy",
-                                     "usb3_phy";
-                       resets = <&ccu RST_USB_PHY0>,
-                                <&ccu RST_USB_PHY1>,
-                                <&ccu RST_USB_PHY2>,
-                                <&ccu RST_USB_PHY3>;
-                       reset-names = "usb0_reset",
-                                     "usb1_reset",
-                                     "usb2_reset",
-                                     "usb3_reset";
-                       status = "disabled";
-                       #phy-cells = <1>;
-               };
-
-               ehci0: usb@5101000 {
-                       compatible = "allwinner,sun50i-h616-ehci",
-                                    "generic-ehci";
-                       reg = <0x05101000 0x100>;
-                       interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&ccu CLK_BUS_OHCI0>,
-                                <&ccu CLK_BUS_EHCI0>,
-                                <&ccu CLK_USB_OHCI0>;
-                       resets = <&ccu RST_BUS_OHCI0>,
-                                <&ccu RST_BUS_EHCI0>;
-                       phys = <&usbphy 0>;
-                       phy-names = "usb";
-                       status = "disabled";
-               };
-
-               ohci0: usb@5101400 {
-                       compatible = "allwinner,sun50i-h616-ohci",
-                                    "generic-ohci";
-                       reg = <0x05101400 0x100>;
-                       interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&ccu CLK_BUS_OHCI0>,
-                                <&ccu CLK_USB_OHCI0>;
-                       resets = <&ccu RST_BUS_OHCI0>;
-                       phys = <&usbphy 0>;
-                       phy-names = "usb";
-                       status = "disabled";
-               };
-
-               ehci1: usb@5200000 {
-                       compatible = "allwinner,sun50i-h616-ehci",
-                                    "generic-ehci";
-                       reg = <0x05200000 0x100>;
-                       interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&ccu CLK_BUS_OHCI1>,
-                                <&ccu CLK_BUS_EHCI1>,
-                                <&ccu CLK_USB_OHCI1>;
-                       resets = <&ccu RST_BUS_OHCI1>,
-                                <&ccu RST_BUS_EHCI1>;
-                       phys = <&usbphy 1>;
-                       phy-names = "usb";
-                       status = "disabled";
-               };
-
-               ohci1: usb@5200400 {
-                       compatible = "allwinner,sun50i-h616-ohci",
-                                    "generic-ohci";
-                       reg = <0x05200400 0x100>;
-                       interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&ccu CLK_BUS_OHCI1>,
-                                <&ccu CLK_USB_OHCI1>;
-                       resets = <&ccu RST_BUS_OHCI1>;
-                       phys = <&usbphy 1>;
-                       phy-names = "usb";
-                       status = "disabled";
-               };
-
-               ehci2: usb@5310000 {
-                       compatible = "allwinner,sun50i-h616-ehci",
-                                    "generic-ehci";
-                       reg = <0x05310000 0x100>;
-                       interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&ccu CLK_BUS_OHCI2>,
-                                <&ccu CLK_BUS_EHCI2>,
-                                <&ccu CLK_USB_OHCI2>;
-                       resets = <&ccu RST_BUS_OHCI2>,
-                                <&ccu RST_BUS_EHCI2>;
-                       phys = <&usbphy 2>;
-                       phy-names = "usb";
-                       status = "disabled";
-               };
-
-               ohci2: usb@5310400 {
-                       compatible = "allwinner,sun50i-h616-ohci",
-                                    "generic-ohci";
-                       reg = <0x05310400 0x100>;
-                       interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&ccu CLK_BUS_OHCI2>,
-                                <&ccu CLK_USB_OHCI2>;
-                       resets = <&ccu RST_BUS_OHCI2>;
-                       phys = <&usbphy 2>;
-                       phy-names = "usb";
-                       status = "disabled";
-               };
-
-               ehci3: usb@5311000 {
-                       compatible = "allwinner,sun50i-h616-ehci",
-                                    "generic-ehci";
-                       reg = <0x05311000 0x100>;
-                       interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&ccu CLK_BUS_OHCI3>,
-                                <&ccu CLK_BUS_EHCI3>,
-                                <&ccu CLK_USB_OHCI3>;
-                       resets = <&ccu RST_BUS_OHCI3>,
-                                <&ccu RST_BUS_EHCI3>;
-                       phys = <&usbphy 3>;
-                       phy-names = "usb";
-                       status = "disabled";
-               };
-
-               ohci3: usb@5311400 {
-                       compatible = "allwinner,sun50i-h616-ohci",
-                                    "generic-ohci";
-                       reg = <0x05311400 0x100>;
-                       interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&ccu CLK_BUS_OHCI3>,
-                                <&ccu CLK_USB_OHCI3>;
-                       resets = <&ccu RST_BUS_OHCI3>;
-                       phys = <&usbphy 3>;
-                       phy-names = "usb";
-                       status = "disabled";
-               };
-
                rtc: rtc@7000000 {
-                       compatible = "allwinner,sun50i-h616-rtc",
-                                    "allwinner,sun50i-h6-rtc";
+                       compatible = "allwinner,sun50i-h616-rtc";
                        reg = <0x07000000 0x400>;
-                       interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
-                       clock-output-names = "osc32k", "osc32k-out", "iosc";
+                       interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&r_ccu CLK_R_APB1_RTC>, <&osc24M>,
+                                <&ccu CLK_PLL_SYSTEM_32K>;
+                       clock-names = "bus", "hosc",
+                                     "pll-32k";
                        #clock-cells = <1>;
                };
 
                r_ccu: clock@7010000 {
                        compatible = "allwinner,sun50i-h616-r-ccu";
-                       reg = <0x07010000 0x400>;
-                       clocks = <&osc24M>, <&rtc 0>, <&rtc 2>,
+                       reg = <0x07010000 0x210>;
+                       clocks = <&osc24M>, <&rtc CLK_OSC32K>, <&rtc CLK_IOSC>,
                                 <&ccu CLK_PLL_PERIPH0>;
                        clock-names = "hosc", "losc", "iosc", "pll-periph";
                        #clock-cells = <1>;
                r_pio: pinctrl@7022000 {
                        compatible = "allwinner,sun50i-h616-r-pinctrl";
                        reg = <0x07022000 0x400>;
-                       interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&r_ccu CLK_R_APB1>, <&osc24M>, <&rtc 0>;
+                       clocks = <&r_ccu CLK_R_APB1>, <&osc24M>,
+                                <&rtc CLK_OSC32K>;
                        clock-names = "apb", "hosc", "losc";
                        gpio-controller;
                        #gpio-cells = <3>;
-                       interrupt-controller;
-                       #interrupt-cells = <3>;
 
+                       /omit-if-no-ref/
                        r_i2c_pins: r-i2c-pins {
                                pins = "PL0", "PL1";
                                function = "s_i2c";
                };
 
                ir: ir@7040000 {
-                               compatible = "allwinner,sun50i-h616-ir",
-                                            "allwinner,sun6i-a31-ir";
-                               reg = <0x07040000 0x400>;
-                               interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&r_ccu CLK_R_APB1_IR>,
-                                        <&r_ccu CLK_IR>;
-                               clock-names = "apb", "ir";
-                               resets = <&r_ccu RST_R_APB1_IR>;
-                               pinctrl-names = "default";
-                               pinctrl-0 = <&ir_rx_pin>;
-                               status = "disabled";
+                       compatible = "allwinner,sun50i-h616-ir",
+                                    "allwinner,sun6i-a31-ir";
+                       reg = <0x07040000 0x400>;
+                       interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&r_ccu CLK_R_APB1_IR>,
+                                <&r_ccu CLK_IR>;
+                       clock-names = "apb", "ir";
+                       resets = <&r_ccu RST_R_APB1_IR>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&ir_rx_pin>;
+                       status = "disabled";
                };
 
                r_i2c: i2c@7081400 {
                        compatible = "allwinner,sun50i-h616-i2c",
+                                    "allwinner,sun8i-v536-i2c",
                                     "allwinner,sun6i-a31-i2c";
                        reg = <0x07081400 0x400>;
                        interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
index 2ce361f..3a6c4bd 100644 (file)
                compatible = "gpio-leds";
 
                led-0 {
-                       label ="licheepi:red:usr";
+                       label = "licheepi:red:usr";
                        gpios = <&pio 2 5 GPIO_ACTIVE_LOW>;
                };
 
                led-1 {
-                       label ="licheepi:green:usr";
+                       label = "licheepi:green:usr";
                        gpios = <&pio 2 19 GPIO_ACTIVE_LOW>;
                        default-state = "on";
                };
 
                led-2 {
-                       label ="licheepi:blue:usr";
+                       label = "licheepi:blue:usr";
                        gpios = <&pio 2 4 GPIO_ACTIVE_LOW>;
                };
 
index d7d920e..f6701ec 100644 (file)
@@ -46,6 +46,7 @@
 #include <dt-bindings/thermal/thermal.h>
 
 #include <dt-bindings/clock/sun6i-a31-ccu.h>
+#include <dt-bindings/clock/sun6i-rtc.h>
 #include <dt-bindings/reset/sun6i-a31-ccu.h>
 
 / {
                ccu: clock@1c20000 {
                        compatible = "allwinner,sun6i-a31-ccu";
                        reg = <0x01c20000 0x400>;
-                       clocks = <&osc24M>, <&rtc 0>;
+                       clocks = <&osc24M>, <&rtc CLK_OSC32K>;
                        clock-names = "hosc", "losc";
                        #clock-cells = <1>;
                        #reset-cells = <1>;
                                     <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&ccu CLK_APB1_PIO>, <&osc24M>, <&rtc 0>;
+                       clocks = <&ccu CLK_APB1_PIO>, <&osc24M>,
+                                <&rtc CLK_OSC32K>;
                        clock-names = "apb", "hosc", "losc";
                        gpio-controller;
                        interrupt-controller;
                        ar100: ar100_clk {
                                compatible = "allwinner,sun6i-a31-ar100-clk";
                                #clock-cells = <0>;
-                               clocks = <&rtc 0>, <&osc24M>,
+                               clocks = <&rtc CLK_OSC32K>, <&osc24M>,
                                         <&ccu CLK_PLL_PERIPH>,
                                         <&ccu CLK_PLL_PERIPH>;
                                clock-output-names = "ar100";
                        ir_clk: ir_clk {
                                #clock-cells = <0>;
                                compatible = "allwinner,sun4i-a10-mod0-clk";
-                               clocks = <&rtc 0>, <&osc24M>;
+                               clocks = <&rtc CLK_OSC32K>, <&osc24M>;
                                clock-output-names = "ir";
                        };
 
                        reg = <0x01f02c00 0x400>;
                        interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&apb0_gates 0>, <&osc24M>, <&rtc 0>;
+                       clocks = <&apb0_gates 0>, <&osc24M>, <&rtc CLK_OSC32K>;
                        clock-names = "apb", "hosc", "losc";
-                       resets = <&apb0_rst 0>;
                        gpio-controller;
                        interrupt-controller;
                        #interrupt-cells = <3>;
index 4f8d55d..928b86a 100644 (file)
        gpio-keys {
                compatible = "gpio-keys";
 
-               back {
+               key-back {
                        label = "Key Back";
                        linux,code = <KEY_BACK>;
                        gpios = <&pio 7 17 GPIO_ACTIVE_LOW>;
                };
 
-               home {
+               key-home {
                        label = "Key Home";
                        linux,code = <KEY_HOME>;
                        gpios = <&pio 7 18 GPIO_ACTIVE_LOW>;
                };
 
-               menu {
+               key-menu {
                        label = "Key Menu";
                        linux,code = <KEY_MENU>;
                        gpios = <&pio 7 19 GPIO_ACTIVE_LOW>;
index a42fac6..06809c3 100644 (file)
@@ -44,6 +44,7 @@
 
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 
+#include <dt-bindings/clock/sun6i-rtc.h>
 #include <dt-bindings/clock/sun8i-a23-a33-ccu.h>
 #include <dt-bindings/reset/sun8i-a23-a33-ccu.h>
 
 
                ccu: clock@1c20000 {
                        reg = <0x01c20000 0x400>;
-                       clocks = <&osc24M>, <&rtc 0>;
+                       clocks = <&osc24M>, <&rtc CLK_OSC32K>;
                        clock-names = "hosc", "losc";
                        #clock-cells = <1>;
                        #reset-cells = <1>;
                        /* compatible gets set in SoC specific dtsi file */
                        reg = <0x01c20800 0x400>;
                        /* interrupts get set in SoC specific dtsi file */
-                       clocks = <&ccu CLK_BUS_PIO>, <&osc24M>, <&rtc 0>;
+                       clocks = <&ccu CLK_BUS_PIO>, <&osc24M>,
+                                <&rtc CLK_OSC32K>;
                        clock-names = "apb", "hosc", "losc";
                        gpio-controller;
                        interrupt-controller;
                        compatible = "allwinner,sun8i-a23-r-pinctrl";
                        reg = <0x01f02c00 0x400>;
                        interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&apb0_gates 0>, <&osc24M>, <&rtc 0>;
+                       clocks = <&apb0_gates 0>, <&osc24M>, <&rtc CLK_OSC32K>;
                        clock-names = "apb", "hosc", "losc";
-                       resets = <&apb0_rst 0>;
                        gpio-controller;
                        interrupt-controller;
                        #interrupt-cells = <3>;
deleted file mode 100644 (file)
index 51097c77a152c4a8fb0b0c8801f2870130b6f36c..0000000000000000000000000000000000000000
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright 2015 Hans de Goede <hdegoede@redhat.com>
- *
- * This file is dual-licensed: you can use it either under the terms
- * of the GPL or the X11 license, at your option. Note that this dual
- * licensing only applies to this file, and not this project as a
- * whole.
- *
- *  a) This file is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This file is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- * Or, alternatively,
- *
- *  b) Permission is hereby granted, free of charge, to any person
- *     obtaining a copy of this software and associated documentation
- *     files (the "Software"), to deal in the Software without
- *     restriction, including without limitation the rights to use,
- *     copy, modify, merge, publish, distribute, sublicense, and/or
- *     sell copies of the Software, and to permit persons to whom the
- *     Software is furnished to do so, subject to the following
- *     conditions:
- *
- *     The above copyright notice and this permission notice shall be
- *     included in all copies or substantial portions of the Software.
- *
- *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- *     OTHER DEALINGS IN THE SOFTWARE.
- */
-
-/dts-v1/;
-#include "sun8i-a23.dtsi"
-#include "sun8i-q8-common.dtsi"
-
-/ {
-       model = "Q8 A23 Tablet";
-       compatible = "allwinner,q8-a23", "allwinner,sun8i-a23";
-};
-
-&codec {
-       allwinner,pa-gpios = <&pio 7 9 GPIO_ACTIVE_HIGH>; /* PH9 */
-       allwinner,audio-routing =
-               "Headphone", "HP",
-               "Headphone", "HPCOM",
-               "Speaker", "HP",
-               "MIC1", "Mic",
-               "MIC2", "Headset Mic",
-               "Mic",  "MBIAS",
-               "Headset Mic", "HBIAS";
-       status = "okay";
-};
-
-&panel {
-       compatible = "bananapi,s070wv20-ct16";
-};
-
-&tcon0_out {
-       tcon0_out_lcd: endpoint {
-               remote-endpoint = <&panel_input>;
-       };
-};
new file mode 120000 (symlink)
index 0000000000000000000000000000000000000000..c2f22fc3381107322545a350fa5b9620ba8647af
--- /dev/null
@@ -0,0 +1 @@
+sun8i-a23-q8-tablet.dts
\ No newline at end of file
deleted file mode 100644 (file)
index 51097c77a152c4a8fb0b0c8801f2870130b6f36c..0000000000000000000000000000000000000000
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright 2015 Hans de Goede <hdegoede@redhat.com>
- *
- * This file is dual-licensed: you can use it either under the terms
- * of the GPL or the X11 license, at your option. Note that this dual
- * licensing only applies to this file, and not this project as a
- * whole.
- *
- *  a) This file is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This file is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- * Or, alternatively,
- *
- *  b) Permission is hereby granted, free of charge, to any person
- *     obtaining a copy of this software and associated documentation
- *     files (the "Software"), to deal in the Software without
- *     restriction, including without limitation the rights to use,
- *     copy, modify, merge, publish, distribute, sublicense, and/or
- *     sell copies of the Software, and to permit persons to whom the
- *     Software is furnished to do so, subject to the following
- *     conditions:
- *
- *     The above copyright notice and this permission notice shall be
- *     included in all copies or substantial portions of the Software.
- *
- *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- *     OTHER DEALINGS IN THE SOFTWARE.
- */
-
-/dts-v1/;
-#include "sun8i-a23.dtsi"
-#include "sun8i-q8-common.dtsi"
-
-/ {
-       model = "Q8 A23 Tablet";
-       compatible = "allwinner,q8-a23", "allwinner,sun8i-a23";
-};
-
-&codec {
-       allwinner,pa-gpios = <&pio 7 9 GPIO_ACTIVE_HIGH>; /* PH9 */
-       allwinner,audio-routing =
-               "Headphone", "HP",
-               "Headphone", "HPCOM",
-               "Speaker", "HP",
-               "MIC1", "Mic",
-               "MIC2", "Headset Mic",
-               "Mic",  "MBIAS",
-               "Headset Mic", "HBIAS";
-       status = "okay";
-};
-
-&panel {
-       compatible = "bananapi,s070wv20-ct16";
-};
-
-&tcon0_out {
-       tcon0_out_lcd: endpoint {
-               remote-endpoint = <&panel_input>;
-       };
-};
new file mode 120000 (symlink)
index 0000000000000000000000000000000000000000..c2f22fc3381107322545a350fa5b9620ba8647af
--- /dev/null
@@ -0,0 +1 @@
+sun8i-a23-q8-tablet.dts
\ No newline at end of file
deleted file mode 100644 (file)
index 9c5750c25613f98be37dd59ffc87a11c29ecb082..0000000000000000000000000000000000000000
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright 2015 Hans de Goede <hdegoede@redhat.com>
- *
- * This file is dual-licensed: you can use it either under the terms
- * of the GPL or the X11 license, at your option. Note that this dual
- * licensing only applies to this file, and not this project as a
- * whole.
- *
- *  a) This file is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This file is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- * Or, alternatively,
- *
- *  b) Permission is hereby granted, free of charge, to any person
- *     obtaining a copy of this software and associated documentation
- *     files (the "Software"), to deal in the Software without
- *     restriction, including without limitation the rights to use,
- *     copy, modify, merge, publish, distribute, sublicense, and/or
- *     sell copies of the Software, and to permit persons to whom the
- *     Software is furnished to do so, subject to the following
- *     conditions:
- *
- *     The above copyright notice and this permission notice shall be
- *     included in all copies or substantial portions of the Software.
- *
- *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- *     OTHER DEALINGS IN THE SOFTWARE.
- */
-
-/dts-v1/;
-#include "sun8i-a33.dtsi"
-#include "sun8i-q8-common.dtsi"
-
-/ {
-       model = "Q8 A33 Tablet";
-       compatible = "allwinner,q8-a33", "allwinner,sun8i-a33";
-};
-
-&tcon0_out {
-       tcon0_out_lcd: endpoint@0 {
-               reg = <0>;
-               remote-endpoint = <&panel_input>;
-       };
-};
new file mode 120000 (symlink)
index 0000000000000000000000000000000000000000..4519fd791a8f9077bfb769c88027b0b0df47f627
--- /dev/null
@@ -0,0 +1 @@
+sun8i-a33-q8-tablet.dts
\ No newline at end of file
deleted file mode 100644 (file)
index 9c5750c25613f98be37dd59ffc87a11c29ecb082..0000000000000000000000000000000000000000
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright 2015 Hans de Goede <hdegoede@redhat.com>
- *
- * This file is dual-licensed: you can use it either under the terms
- * of the GPL or the X11 license, at your option. Note that this dual
- * licensing only applies to this file, and not this project as a
- * whole.
- *
- *  a) This file is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This file is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- * Or, alternatively,
- *
- *  b) Permission is hereby granted, free of charge, to any person
- *     obtaining a copy of this software and associated documentation
- *     files (the "Software"), to deal in the Software without
- *     restriction, including without limitation the rights to use,
- *     copy, modify, merge, publish, distribute, sublicense, and/or
- *     sell copies of the Software, and to permit persons to whom the
- *     Software is furnished to do so, subject to the following
- *     conditions:
- *
- *     The above copyright notice and this permission notice shall be
- *     included in all copies or substantial portions of the Software.
- *
- *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- *     OTHER DEALINGS IN THE SOFTWARE.
- */
-
-/dts-v1/;
-#include "sun8i-a33.dtsi"
-#include "sun8i-q8-common.dtsi"
-
-/ {
-       model = "Q8 A33 Tablet";
-       compatible = "allwinner,q8-a33", "allwinner,sun8i-a33";
-};
-
-&tcon0_out {
-       tcon0_out_lcd: endpoint@0 {
-               reg = <0>;
-               remote-endpoint = <&panel_input>;
-       };
-};
new file mode 120000 (symlink)
index 0000000000000000000000000000000000000000..4519fd791a8f9077bfb769c88027b0b0df47f627
--- /dev/null
@@ -0,0 +1 @@
+sun8i-a33-q8-tablet.dts
\ No newline at end of file
index d5c7b79..d729b7c 100644 (file)
                };
        };
 
-       gpio_keys {
+       gpio-keys {
                compatible = "gpio-keys";
 
-               sw4 {
+               switch-4 {
                        label = "power";
                        linux,code = <KEY_POWER>;
                        gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>;
        wifi_pwrseq: wifi_pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
-               clocks = <&rtc 1>;
+               clocks = <&rtc CLK_OSC32K_FANOUT>;
                clock-names = "ext_clock";
        };
 };
        bluetooth {
                compatible = "brcm,bcm43438-bt";
                max-speed = <1500000>;
-               clocks = <&rtc 1>;
+               clocks = <&rtc CLK_OSC32K_FANOUT>;
                clock-names = "lpo";
                vbat-supply = <&reg_vcc3v3>;
                vddio-supply = <&reg_vcc3v3>;
index f19ed98..3706216 100644 (file)
        flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
-               compatible = "mxicy,mx25l1606e", "winbond,w25q128";
+               compatible = "mxicy,mx25l1606e", "jedec,spi-nor";
                reg = <0>;
                spi-max-frequency = <40000000>;
        };
index cd9f655..27a0d51 100644 (file)
                };
        };
 
-       r-gpio-keys {
+       gpio-keys {
                compatible = "gpio-keys";
 
-               power {
+               key-power {
                        label = "power";
                        linux,code = <KEY_POWER>;
                        gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>;
        wifi_pwrseq: wifi_pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
-               clocks = <&rtc 1>;
+               clocks = <&rtc CLK_OSC32K_FANOUT>;
                clock-names = "ext_clock";
        };
 };
index ff0a7a9..f5c8ccc 100644 (file)
                };
        };
 
-       r_gpio_keys {
+       gpio-keys {
                compatible = "gpio-keys";
 
-               power {
+               key-power {
                        label = "power";
                        linux,code = <KEY_POWER>;
                        gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>; /* PL3 */
                };
 
-               user {
+               key-user {
                        label = "user";
                        linux,code = <BTN_0>;
                        gpios = <&r_pio 0 4 GPIO_ACTIVE_LOW>;
index 8e7dfcf..43641cb 100644 (file)
                };
        };
 
-       r_gpio_keys {
+       gpio-keys {
                compatible = "gpio-keys";
 
-               k1 {
+               key-0 {
                        label = "k1";
                        linux,code = <BTN_0>;
                        gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>; /* PL3 */
@@ -90,7 +90,7 @@
        wifi_pwrseq: wifi_pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
-               clocks = <&rtc 1>;
+               clocks = <&rtc CLK_OSC32K_FANOUT>;
                clock-names = "ext_clock";
        };
 
 
        bluetooth {
                compatible = "brcm,bcm43438-bt";
-               clocks = <&rtc 1>;
+               clocks = <&rtc CLK_OSC32K_FANOUT>;
                clock-names = "lpo";
                vbat-supply = <&reg_vcc3v3>;
                vddio-supply = <&reg_vcc3v3>;
index cd3df12..9e1a33f 100644 (file)
 
        bluetooth {
                compatible = "brcm,bcm43438-bt";
-               clocks = <&rtc 1>;
+               clocks = <&rtc CLK_OSC32K_FANOUT>;
                clock-names = "lpo";
                vbat-supply = <&reg_vcc3v3>;
                vddio-supply = <&reg_vcc3v3>;
index 26e2e61..42cd113 100644 (file)
@@ -46,7 +46,7 @@
        wifi_pwrseq: wifi_pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
-               clocks = <&rtc 1>;
+               clocks = <&rtc CLK_OSC32K_FANOUT>;
                clock-names = "ext_clock";
        };
 
 
        bluetooth {
                compatible = "brcm,bcm43438-bt";
-               clocks = <&rtc 1>;
+               clocks = <&rtc CLK_OSC32K_FANOUT>;
                clock-names = "lpo";
                vbat-supply = <&reg_vcc3v3>;
                vddio-supply = <&reg_vcc3v3>;
index fc45d5a..cf8413f 100644 (file)
                };
        };
 
-       r_gpio_keys {
+       gpio-keys {
                compatible = "gpio-keys";
-               input-name = "k1";
 
-               k1 {
+               key-0 {
                        label = "k1";
                        linux,code = <KEY_POWER>;
                        gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>;
index 9daffd9..f1f9dbe 100644 (file)
                };
        };
 
-       r_gpio_keys {
+       gpio-keys {
                compatible = "gpio-keys";
 
-               sw2 {
+               switch-2 {
                        label = "sw2";
                        linux,code = <BTN_1>;
                        gpios = <&r_pio 0 4 GPIO_ACTIVE_LOW>;
                };
 
-               sw4 {
+               switch-4 {
                        label = "sw4";
                        linux,code = <KEY_POWER>;
                        gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>;
index 6f9c97a..305b34a 100644 (file)
                };
        };
 
-       r_gpio_keys {
+       gpio-keys {
                compatible = "gpio-keys";
 
-               sw4 {
+               switch-4 {
                        label = "sw4";
                        linux,code = <BTN_0>;
                        gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>;
index 4759ba3..59f6f6d 100644 (file)
                };
        };
 
-       r_gpio_keys {
+       gpio-keys {
                compatible = "gpio-keys";
 
-               sw4 {
+               switch-4 {
                        label = "sw4";
                        linux,code = <BTN_0>;
                        gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>;
index 90f75fa..b96e015 100644 (file)
                };
        };
 
-       r_gpio_keys {
+       gpio-keys {
                compatible = "gpio-keys";
 
-               sw4 {
+               switch-4 {
                        label = "sw4";
                        linux,code = <KEY_POWER>;
                        gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>;
index 293016d..f97218e 100644 (file)
@@ -91,7 +91,7 @@
        wifi_pwrseq: wifi_pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 6 GPIO_ACTIVE_LOW>; /* PL06 */
-               clocks = <&rtc 1>;
+               clocks = <&rtc CLK_OSC32K_FANOUT>;
                clock-names = "ext_clock";
        };
 };
 
        bluetooth {
                compatible = "brcm,bcm43438-bt";
-               clocks = <&rtc 1>;
+               clocks = <&rtc CLK_OSC32K_FANOUT>;
                clock-names = "lpo";
                vbat-supply = <&reg_dldo1>;
                vddio-supply = <&reg_aldo3>;
index a6a1087..28197bb 100644 (file)
@@ -43,6 +43,7 @@
 
 /dts-v1/;
 #include "sun8i-r40.dtsi"
+#include "sun8i-r40-cpu-opp.dtsi"
 
 #include <dt-bindings/gpio/gpio.h>
 
        status = "okay";
 };
 
+&cpu0 {
+       cpu-supply = <&reg_dcdc2>;
+};
+
 &de {
        status = "okay";
 };
diff --git a/arch/arm/dts/sun8i-r40-cpu-opp.dtsi b/arch/arm/dts/sun8i-r40-cpu-opp.dtsi
new file mode 100644 (file)
index 0000000..649928b
--- /dev/null
@@ -0,0 +1,52 @@
+/{
+       cpu0_opp_table: opp-table-cpu {
+               compatible = "operating-points-v2";
+               opp-shared;
+
+               opp-720000000 {
+                       opp-hz = /bits/ 64 <720000000>;
+                       opp-microvolt = <1000000 1000000 1300000>;
+                       clock-latency-ns = <2000000>;
+               };
+
+               opp-912000000 {
+                       opp-hz = /bits/ 64 <912000000>;
+                       opp-microvolt = <1100000 1100000 1300000>;
+                       clock-latency-ns = <2000000>;
+               };
+
+               opp-1008000000 {
+                       opp-hz = /bits/ 64 <1008000000>;
+                       opp-microvolt = <1160000 1160000 1300000>;
+                       clock-latency-ns = <2000000>;
+               };
+
+               opp-1104000000 {
+                       opp-hz = /bits/ 64 <1104000000>;
+                       opp-microvolt = <1240000 1240000 1300000>;
+                       clock-latency-ns = <2000000>;
+               };
+
+               opp-1200000000 {
+                       opp-hz = /bits/ 64 <1200000000>;
+                       opp-microvolt = <1300000 1300000 1300000>;
+                       clock-latency-ns = <2000000>;
+               };
+       };
+};
+
+&cpu0 {
+       operating-points-v2 = <&cpu0_opp_table>;
+};
+
+&cpu1 {
+       operating-points-v2 = <&cpu0_opp_table>;
+};
+
+&cpu2 {
+       operating-points-v2 = <&cpu0_opp_table>;
+};
+
+&cpu3 {
+       operating-points-v2 = <&cpu0_opp_table>;
+};
index 265e0fa..9f39b5a 100644 (file)
@@ -5,6 +5,11 @@
 //  Copyright (C) 2017 Icenowy Zheng <icenowy@aosc.io>
 
 #include "sun8i-r40.dtsi"
+#include "sun8i-r40-cpu-opp.dtsi"
+
+&cpu0 {
+       cpu-supply = <&reg_dcdc2>;
+};
 
 &i2c0 {
        status = "okay";
index 03d3e5f..4ef26d8 100644 (file)
@@ -42,6 +42,7 @@
  */
 
 #include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/clock/sun6i-rtc.h>
 #include <dt-bindings/clock/sun8i-de2.h>
 #include <dt-bindings/clock/sun8i-r40-ccu.h>
 #include <dt-bindings/clock/sun8i-tcon-top.h>
                        compatible = "arm,cortex-a7";
                        device_type = "cpu";
                        reg = <0>;
+                       clocks = <&ccu CLK_CPU>;
+                       clock-names = "cpu";
+                       #cooling-cells = <2>;
                };
 
                cpu1: cpu@1 {
                        compatible = "arm,cortex-a7";
                        device_type = "cpu";
                        reg = <1>;
+                       clocks = <&ccu CLK_CPU>;
+                       clock-names = "cpu";
+                       #cooling-cells = <2>;
                };
 
                cpu2: cpu@2 {
                        compatible = "arm,cortex-a7";
                        device_type = "cpu";
                        reg = <2>;
+                       clocks = <&ccu CLK_CPU>;
+                       clock-names = "cpu";
+                       #cooling-cells = <2>;
                };
 
                cpu3: cpu@3 {
                        compatible = "arm,cortex-a7";
                        device_type = "cpu";
                        reg = <3>;
+                       clocks = <&ccu CLK_CPU>;
+                       clock-names = "cpu";
+                       #cooling-cells = <2>;
                };
        };
 
                        polling-delay-passive = <0>;
                        polling-delay = <0>;
                        thermal-sensors = <&ths 0>;
+
+                       trips {
+                               cpu_hot_trip: cpu-hot {
+                                       temperature = <80000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu_very_hot_trip: cpu-very-hot {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               cpu-hot-limit {
+                                       trip = <&cpu_hot_trip>;
+                                       cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
                };
 
                gpu_thermal: gpu-thermal {
                ccu: clock@1c20000 {
                        compatible = "allwinner,sun8i-r40-ccu";
                        reg = <0x01c20000 0x400>;
-                       clocks = <&osc24M>, <&rtc 0>;
+                       clocks = <&osc24M>, <&rtc CLK_OSC32K>;
                        clock-names = "hosc", "losc";
                        #clock-cells = <1>;
                        #reset-cells = <1>;
                        compatible = "allwinner,sun8i-r40-pinctrl";
                        reg = <0x01c20800 0x400>;
                        interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&ccu CLK_BUS_PIO>, <&osc24M>, <&rtc 0>;
+                       clocks = <&ccu CLK_BUS_PIO>, <&osc24M>,
+                                <&rtc CLK_OSC32K>;
                        clock-names = "apb", "hosc", "losc";
                        gpio-controller;
                        interrupt-controller;
                        reg-io-width = <1>;
                        interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&ccu CLK_BUS_HDMI0>, <&ccu CLK_HDMI_SLOW>,
-                                <&ccu CLK_HDMI>, <&rtc 0>;
+                                <&ccu CLK_HDMI>, <&rtc CLK_OSC32K>;
                        clock-names = "iahb", "isfr", "tmds", "cec";
                        resets = <&ccu RST_BUS_HDMI1>;
                        reset-names = "ctrl";
index 6931aaa..9f47252 100644 (file)
@@ -45,6 +45,7 @@
 
 /dts-v1/;
 #include "sun8i-r40.dtsi"
+#include "sun8i-r40-cpu-opp.dtsi"
 
 #include <dt-bindings/gpio/gpio.h>
 
        status = "okay";
 };
 
+&cpu0 {
+       cpu-supply = <&reg_dcdc2>;
+};
+
 &de {
        status = "okay";
 };
index 084323d..db194c6 100644 (file)
@@ -42,6 +42,7 @@
  */
 
 #include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/clock/sun6i-rtc.h>
 #include <dt-bindings/clock/sun8i-v3s-ccu.h>
 #include <dt-bindings/reset/sun8i-v3s-ccu.h>
 #include <dt-bindings/clock/sun8i-de2.h>
                ccu: clock@1c20000 {
                        compatible = "allwinner,sun8i-v3s-ccu";
                        reg = <0x01c20000 0x400>;
-                       clocks = <&osc24M>, <&rtc 0>;
+                       clocks = <&osc24M>, <&rtc CLK_OSC32K>;
                        clock-names = "hosc", "losc";
                        #clock-cells = <1>;
                        #reset-cells = <1>;
                        reg = <0x01c20800 0x400>;
                        interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&ccu CLK_BUS_PIO>, <&osc24M>, <&rtc 0>;
+                       clocks = <&ccu CLK_BUS_PIO>, <&osc24M>,
+                                <&rtc CLK_OSC32K>;
                        clock-names = "apb", "hosc", "losc";
                        gpio-controller;
                        #gpio-cells = <3>;
index 4795455..4348710 100644 (file)
@@ -42,6 +42,7 @@
 
 /dts-v1/;
 #include "sun8i-r40.dtsi"
+#include "sun8i-r40-cpu-opp.dtsi"
 
 #include <dt-bindings/gpio/gpio.h>
 
        status = "okay";
 };
 
+&cpu0 {
+       cpu-supply = <&reg_dcdc2>;
+};
+
 &de {
        status = "okay";
 };
index ce4fa67..7d3f330 100644 (file)
                                     <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&apbs_gates 0>, <&osc24M>, <&osc32k>;
                        clock-names = "apb", "hosc", "losc";
-                       resets = <&apbs_rst 0>;
                        gpio-controller;
                        interrupt-controller;
                        #interrupt-cells = <3>;
index d03f585..e899d14 100644 (file)
                };
        };
 
-       gpio_keys {
+       gpio-keys {
                compatible = "gpio-keys";
 
-               sw4 {
+               switch-4 {
                        label = "power";
                        linux,code = <KEY_POWER>;
                        gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>;
        wifi_pwrseq: wifi_pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
-               clocks = <&rtc 1>;
+               clocks = <&rtc CLK_OSC32K_FANOUT>;
                clock-names = "ext_clock";
        };
 };
        bluetooth {
                compatible = "brcm,bcm43438-bt";
                max-speed = <1500000>;
-               clocks = <&rtc 1>;
+               clocks = <&rtc CLK_OSC32K_FANOUT>;
                clock-names = "lpo";
                vbat-supply = <&reg_vcc3v3>;
                vddio-supply = <&reg_vcc3v3>;
index fc67e30..60804b0 100644 (file)
@@ -22,7 +22,7 @@
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&pio 2 7 GPIO_ACTIVE_LOW>; /* PC7 */
                post-power-on-delay-ms = <200>;
-               clocks = <&rtc 1>;
+               clocks = <&rtc CLK_OSC32K_FANOUT>;
                clock-names = "ext_clock";
        };
 };
 
        bluetooth {
                compatible = "brcm,bcm43438-bt";
-               clocks = <&rtc 1>;
+               clocks = <&rtc CLK_OSC32K_FANOUT>;
                clock-names = "lpo";
                vbat-supply = <&reg_vcc3v3>;
                vddio-supply = <&reg_vcc3v3>;
index 6cea57e..6439141 100644 (file)
@@ -40,6 +40,7 @@
  *     OTHER DEALINGS IN THE SOFTWARE.
  */
 
+#include <dt-bindings/clock/sun6i-rtc.h>
 #include <dt-bindings/clock/sun8i-de2.h>
 #include <dt-bindings/clock/sun8i-h3-ccu.h>
 #include <dt-bindings/clock/sun8i-r-ccu.h>
                ccu: clock@1c20000 {
                        /* compatible is in per SoC .dtsi file */
                        reg = <0x01c20000 0x400>;
-                       clocks = <&osc24M>, <&rtc 0>;
+                       clocks = <&osc24M>, <&rtc CLK_OSC32K>;
                        clock-names = "hosc", "losc";
                        #clock-cells = <1>;
                        #reset-cells = <1>;
                        reg = <0x01c20800 0x400>;
                        interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&ccu CLK_BUS_PIO>, <&osc24M>, <&rtc 0>;
+                       clocks = <&ccu CLK_BUS_PIO>, <&osc24M>,
+                                <&rtc CLK_OSC32K>;
                        clock-names = "apb", "hosc", "losc";
                        gpio-controller;
                        #gpio-cells = <3>;
                        reg-io-width = <1>;
                        interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&ccu CLK_BUS_HDMI>, <&ccu CLK_HDMI_DDC>,
-                                <&ccu CLK_HDMI>, <&rtc 0>;
+                                <&ccu CLK_HDMI>, <&rtc CLK_OSC32K>;
                        clock-names = "iahb", "isfr", "tmds", "cec";
                        resets = <&ccu RST_BUS_HDMI1>;
                        reset-names = "ctrl";
                r_ccu: clock@1f01400 {
                        compatible = "allwinner,sun8i-h3-r-ccu";
                        reg = <0x01f01400 0x100>;
-                       clocks = <&osc24M>, <&rtc 0>, <&rtc 2>,
+                       clocks = <&osc24M>, <&rtc CLK_OSC32K>, <&rtc CLK_IOSC>,
                                 <&ccu CLK_PLL_PERIPH0>;
                        clock-names = "hosc", "losc", "iosc", "pll-periph";
                        #clock-cells = <1>;
                        compatible = "allwinner,sun8i-h3-r-pinctrl";
                        reg = <0x01f02c00 0x400>;
                        interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&r_ccu CLK_APB0_PIO>, <&osc24M>, <&rtc 0>;
+                       clocks = <&r_ccu CLK_APB0_PIO>, <&osc24M>,
+                                <&rtc CLK_OSC32K>;
                        clock-names = "apb", "hosc", "losc";
                        gpio-controller;
                        #gpio-cells = <3>;
index 9e14fe5..89731bb 100644 (file)
                };
        };
 
-       gpio_keys {
+       gpio-keys {
                compatible = "gpio-keys";
 
-               power {
+               key-power {
                        label = "power";
                        linux,code = <KEY_POWER>;
                        gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
index 732ca37..b66277f 100644 (file)
@@ -445,5 +445,24 @@ enum {
        /* CRU_PMU_CLK_SEL0_CON */
        CLK_PMU_PCLK_DIV_SHIFT          = 0,
        CLK_PMU_PCLK_DIV_MASK           = 0x1f << CLK_PMU_PCLK_DIV_SHIFT,
+
+       /* CRU_PMU_CLKSEL3_CON */
+       UART0_PLL_SEL_SHIFT             = 14,
+       UART0_PLL_SEL_MASK              = 3 << UART0_PLL_SEL_SHIFT,
+       UART0_PLL_SEL_GPLL              = 0,
+       UART0_PLL_SEL_24M,
+       UART0_PLL_SEL_480M,
+       UART0_PLL_SEL_NPLL,
+       UART0_DIV_CON_SHIFT             = 0,
+       UART0_DIV_CON_MASK              = 0x1f << UART0_DIV_CON_SHIFT,
+
+       /* CRU_PMU_CLKSEL4_CON */
+       UART0_CLK_SEL_SHIFT             = 14,
+       UART0_CLK_SEL_MASK              = 3 << UART0_PLL_SEL_SHIFT,
+       UART0_CLK_SEL_UART0             = 0,
+       UART0_CLK_SEL_UART0_NP5,
+       UART0_CLK_SEL_UART0_FRAC,
+       UART0_DIVNP5_SHIFT              = 0,
+       UART0_DIVNP5_MASK               = 0x1f << UART0_DIVNP5_SHIFT,
 };
 #endif
index be70d30..0641e6a 100644 (file)
@@ -41,6 +41,7 @@ struct mm_region *mem_map = px30_mem_map;
 #define PMUGRF_BASE                    0xff010000
 #define GRF_BASE                       0xff140000
 #define CRU_BASE                       0xff2b0000
+#define PMUCRU_BASE                    0xff2bc000
 #define VIDEO_PHY_BASE                 0xff2e0000
 #define SERVICE_CORE_ADDR              0xff508000
 #define DDR_FW_BASE                    0xff534000
@@ -198,6 +199,21 @@ enum {
        GPIO3A1_UART5_RX        = 4,
 };
 
+/* PMUGRF_GPIO0BL_IOMUX */
+enum {
+       GPIO0B3_SHIFT           = 6,
+       GPIO0B3_MASK            = 0x3 << GPIO0B3_SHIFT,
+       GPIO0B3_GPIO            = 0,
+       GPIO0B3_UART0_RX,
+       GPIO0B3_PMU_DEBUG1,
+
+       GPIO0B2_SHIFT           = 4,
+       GPIO0B2_MASK            = 0x3 << GPIO0B2_SHIFT,
+       GPIO0B2_GPIO            = 0,
+       GPIO0B2_UART0_TX,
+       GPIO0B2_PMU_DEBUG0,
+};
+
 /* PMUGRF_GPIO0CL_IOMUX */
 enum {
        GPIO0C1_SHIFT           = 2,
@@ -276,12 +292,16 @@ int arch_cpu_init(void)
 void board_debug_uart_init(void)
 {
 #if defined(CONFIG_DEBUG_UART_BASE) && \
-       (CONFIG_DEBUG_UART_BASE == 0xff168000) && \
-       (CONFIG_DEBUG_UART_CHANNEL != 1)
+       (((CONFIG_DEBUG_UART_BASE == 0xff168000) && \
+       (CONFIG_DEBUG_UART_CHANNEL != 1)) || \
+       CONFIG_DEBUG_UART_BASE == 0xff030000)
        static struct px30_pmugrf * const pmugrf = (void *)PMUGRF_BASE;
 #endif
        static struct px30_grf * const grf = (void *)GRF_BASE;
        static struct px30_cru * const cru = (void *)CRU_BASE;
+#if defined(CONFIG_DEBUG_UART_BASE) && CONFIG_DEBUG_UART_BASE == 0xff030000
+       static struct px30_pmucru * const pmucru = (void *)PMUCRU_BASE;
+#endif
 
 #if defined(CONFIG_DEBUG_UART_BASE) && (CONFIG_DEBUG_UART_BASE == 0xff158000)
        /* uart_sel_clk default select 24MHz */
@@ -346,6 +366,19 @@ void board_debug_uart_init(void)
                     GPIO3A2_MASK | GPIO3A1_MASK,
                     GPIO3A2_UART5_TX << GPIO3A2_SHIFT |
                     GPIO3A1_UART5_RX << GPIO3A1_SHIFT);
+#elif defined(CONFIG_DEBUG_UART_BASE) && (CONFIG_DEBUG_UART_BASE == 0xff030000)
+       /* uart_sel_clk default select 24MHz */
+       rk_clrsetreg(&pmucru->pmu_clksel_con[3],
+                    UART0_PLL_SEL_MASK | UART0_DIV_CON_MASK,
+                    UART0_PLL_SEL_24M << UART0_PLL_SEL_SHIFT | 0);
+       rk_clrsetreg(&pmucru->pmu_clksel_con[4],
+                    UART0_CLK_SEL_MASK,
+                    UART0_CLK_SEL_UART0 << UART0_CLK_SEL_SHIFT);
+
+       rk_clrsetreg(&pmugrf->gpio0bl_iomux,
+                    GPIO0B3_MASK | GPIO0B2_MASK,
+                    GPIO0B3_UART0_RX << GPIO0B3_SHIFT |
+                    GPIO0B2_UART0_TX << GPIO0B2_SHIFT);
 #else
        /* GRF_IOFUNC_CON0 */
        enum {
index e8c5784..1be2b58 100644 (file)
@@ -89,7 +89,6 @@ config TARGET_MIQI_RK3288
 config TARGET_PHYCORE_RK3288
        bool "phyCORE-RK3288"
         select BOARD_LATE_INIT
-       select SPL_BOARD_INIT if SPL
        help
          Add basic support for the PCM-947 carrier board, a RK3288 based
          development board made by PHYTEC. This board works in a combination
index 21db03b..a7cc91a 100644 (file)
@@ -15,6 +15,7 @@
 #include <asm/io.h>
 #include <asm/arch-rockchip/bootrom.h>
 #include <asm/arch-rockchip/clock.h>
+#include <asm/arch-rockchip/cru.h>
 #include <asm/arch-rockchip/gpio.h>
 #include <asm/arch-rockchip/grf_rk3399.h>
 #include <asm/arch-rockchip/hardware.h>
@@ -221,12 +222,17 @@ void spl_perform_fixups(struct spl_image_info *spl_image)
                           "u-boot,spl-boot-device", boot_ofpath);
 }
 
-#if defined(SPL_GPIO)
 static void rk3399_force_power_on_reset(void)
 {
        ofnode node;
        struct gpio_desc sysreset_gpio;
 
+       if (!IS_ENABLED(CONFIG_SPL_GPIO)) {
+               debug("%s: trying to force a power-on reset but no GPIO "
+                     "support in SPL!\n", __func__);
+               return;
+       }
+
        debug("%s: trying to force a power-on reset\n", __func__);
 
        node = ofnode_path("/config");
@@ -243,7 +249,6 @@ static void rk3399_force_power_on_reset(void)
 
        dm_gpio_set_value(&sysreset_gpio, 1);
 }
-#endif
 
 void __weak led_setup(void)
 {
@@ -253,35 +258,37 @@ void spl_board_init(void)
 {
        led_setup();
 
-#if defined(SPL_GPIO)
-       struct rockchip_cru *cru = rockchip_get_cru();
+       if (IS_ENABLED(CONFIG_SPL_GPIO)) {
+               struct rockchip_cru *cru = rockchip_get_cru();
 
-       /*
-        * The RK3399 resets only 'almost all logic' (see also in the TRM
-        * "3.9.4 Global software reset"), when issuing a software reset.
-        * This may cause issues during boot-up for some configurations of
-        * the application software stack.
-        *
-        * To work around this, we test whether the last reset reason was
-        * a power-on reset and (if not) issue an overtemp-reset to reset
-        * the entire module.
-        *
-        * While this was previously fixed by modifying the various places
-        * that could generate a software reset (e.g. U-Boot's sysreset
-        * driver, the ATF or Linux), we now have it here to ensure that
-        * we no longer have to track this through the various components.
-        */
-       if (cru->glb_rst_st != 0)
-               rk3399_force_power_on_reset();
-#endif
+               /*
+                * The RK3399 resets only 'almost all logic' (see also in the
+                * TRM "3.9.4 Global software reset"), when issuing a software
+                * reset. This may cause issues during boot-up for some
+                * configurations of the application software stack.
+                *
+                * To work around this, we test whether the last reset reason
+                * was a power-on reset and (if not) issue an overtemp-reset to
+                * reset the entire module.
+                *
+                * While this was previously fixed by modifying the various
+                * places that could generate a software reset (e.g. U-Boot's
+                * sysreset driver, the ATF or Linux), we now have it here to
+                * ensure that we no longer have to track this through the
+                * various components.
+                */
+               if (cru->glb_rst_st != 0)
+                       rk3399_force_power_on_reset();
+       }
 
-#if defined(SPL_DM_REGULATOR)
-       /*
-        * Turning the eMMC and SPI back on (if disabled via the Qseven
-        * BIOS_ENABLE) signal is done through a always-on regulator).
-        */
-       if (regulators_enable_boot_on(false))
-               debug("%s: Cannot enable boot on regulator\n", __func__);
-#endif
+       if (IS_ENABLED(CONFIG_SPL_DM_REGULATOR)) {
+               /*
+                * Turning the eMMC and SPI back on (if disabled via the Qseven
+                * BIOS_ENABLE) signal is done through a always-on regulator).
+                */
+               if (regulators_enable_boot_on(false))
+                       debug("%s: Cannot enable boot on regulator\n",
+                             __func__);
+       }
 }
 #endif
index 5712576..fc5d8bb 100644 (file)
@@ -185,6 +185,8 @@ config MACH_SUNIV
        select CPU_ARM926EJS
        select SUNXI_GEN_SUN6I
        select SUPPORT_SPL
+       select SKIP_LOWLEVEL_INIT_ONLY
+       select SPL_SKIP_LOWLEVEL_INIT_ONLY
 
 config MACH_SUN4I
        bool "sun4i (Allwinner A10)"
@@ -615,6 +617,18 @@ config SYS_BOARD
 config SYS_SOC
        default "sunxi"
 
+config SUNXI_MINIMUM_DRAM_MB
+       int "minimum DRAM size"
+       default 32 if MACH_SUNIV
+       default 64 if MACH_SUN8I_V3S
+       default 256
+       ---help---
+       Minimum DRAM size expected on the board. Traditionally we assumed
+       256 MB, so that U-Boot would load at 160MB. With co-packaged DRAM
+       we have smaller sizes, though, so that U-Boot's own load address and
+       the default payload addresses must be shifted down.
+       This is expected to be fixed by the SoC selection.
+
 config UART0_PORT_F
        bool "UART0 on MicroSD breakout board"
        ---help---
@@ -998,7 +1012,7 @@ config SPL_STACK_R_ADDR
 
 config SPL_SPI_SUNXI
        bool "Support for SPI Flash on Allwinner SoCs in SPL"
-       depends on MACH_SUN4I || MACH_SUN5I || MACH_SUN7I || MACH_SUNXI_H3_H5 || MACH_SUN50I || MACH_SUN8I_R40 || MACH_SUN50I_H6 || MACH_SUNIV
+       depends on MACH_SUN4I || MACH_SUN5I || MACH_SUN7I || MACH_SUNXI_H3_H5 || MACH_SUN50I || MACH_SUN8I_R40 || SUN50I_GEN_H6 || MACH_SUNIV
        help
          Enable support for SPI Flash. This option allows SPL to read from
          sunxi SPI Flash. It uses the same method as the boot ROM, so does
index 62bb40b..220ed80 100644 (file)
@@ -147,6 +147,10 @@ static int gpio_init(void)
        sunxi_gpio_set_cfgpin(SUNXI_GPH(12), SUN9I_GPH_UART0);
        sunxi_gpio_set_cfgpin(SUNXI_GPH(13), SUN9I_GPH_UART0);
        sunxi_gpio_set_pull(SUNXI_GPH(13), SUNXI_GPIO_PULL_UP);
+#elif CONFIG_CONS_INDEX == 2 && defined(CONFIG_MACH_SUNIV)
+       sunxi_gpio_set_cfgpin(SUNXI_GPA(2), SUNIV_GPE_UART0);
+       sunxi_gpio_set_cfgpin(SUNXI_GPA(3), SUNIV_GPE_UART0);
+       sunxi_gpio_set_pull(SUNXI_GPA(3), SUNXI_GPIO_PULL_UP);
 #elif CONFIG_CONS_INDEX == 2 && defined(CONFIG_MACH_SUN5I)
        sunxi_gpio_set_cfgpin(SUNXI_GPG(3), SUN5I_GPG_UART1);
        sunxi_gpio_set_cfgpin(SUNXI_GPG(4), SUN5I_GPG_UART1);
@@ -488,7 +492,7 @@ void reset_cpu(void)
 }
 #endif
 
-#if !CONFIG_IS_ENABLED(SYS_DCACHE_OFF) && !defined(CONFIG_ARM64)
+#if !CONFIG_IS_ENABLED(SYS_DCACHE_OFF) && defined(CONFIG_CPU_V7A)
 void enable_caches(void)
 {
        /* Enable D-cache. I-cache is already enabled in start.S */
index 925bf85..520f14e 100644 (file)
@@ -78,7 +78,7 @@
 
 #define CCM_AHB_GATING0             (0x01C20000 + 0x60)
 #define CCM_H6_SPI_BGR_REG          (0x03001000 + 0x96c)
-#ifdef CONFIG_MACH_SUN50I_H6
+#ifdef CONFIG_SUN50I_GEN_H6
 #define CCM_SPI0_CLK                (0x03001000 + 0x940)
 #else
 #define CCM_SPI0_CLK                (0x01C20000 + 0xA0)
@@ -97,7 +97,7 @@
 /*
  * Allwinner A10/A20 SoCs were using pins PC0,PC1,PC2,PC23 for booting
  * from SPI Flash, everything else is using pins PC0,PC1,PC2,PC3.
- * The H6 uses PC0, PC2, PC3, PC5.
+ * The H6 uses PC0, PC2, PC3, PC5, the H616 PC0, PC2, PC3, PC4.
  */
 static void spi0_pinmux_setup(unsigned int pin_function)
 {
@@ -105,11 +105,14 @@ static void spi0_pinmux_setup(unsigned int pin_function)
        sunxi_gpio_set_cfgpin(SUNXI_GPC(0), pin_function);
        sunxi_gpio_set_cfgpin(SUNXI_GPC(2), pin_function);
 
-       /* All chips except H6 use PC1, and only H6 uses PC5. */
-       if (!IS_ENABLED(CONFIG_MACH_SUN50I_H6))
+       /* All chips except H6 and H616 use PC1. */
+       if (!IS_ENABLED(CONFIG_SUN50I_GEN_H6))
                sunxi_gpio_set_cfgpin(SUNXI_GPC(1), pin_function);
-       else
+
+       if (IS_ENABLED(CONFIG_MACH_SUN50I_H6))
                sunxi_gpio_set_cfgpin(SUNXI_GPC(5), pin_function);
+       if (IS_ENABLED(CONFIG_MACH_SUN50I_H616))
+               sunxi_gpio_set_cfgpin(SUNXI_GPC(4), pin_function);
 
        /* Older generations use PC23 for CS, newer ones use PC3. */
        if (IS_ENABLED(CONFIG_MACH_SUN4I) || IS_ENABLED(CONFIG_MACH_SUN7I) ||
@@ -122,7 +125,7 @@ static void spi0_pinmux_setup(unsigned int pin_function)
 static bool is_sun6i_gen_spi(void)
 {
        return IS_ENABLED(CONFIG_SUNXI_GEN_SUN6I) ||
-              IS_ENABLED(CONFIG_MACH_SUN50I_H6);
+              IS_ENABLED(CONFIG_SUN50I_GEN_H6);
 }
 
 static uintptr_t spi0_base_address(void)
@@ -130,7 +133,7 @@ static uintptr_t spi0_base_address(void)
        if (IS_ENABLED(CONFIG_MACH_SUN8I_R40))
                return 0x01C05000;
 
-       if (IS_ENABLED(CONFIG_MACH_SUN50I_H6))
+       if (IS_ENABLED(CONFIG_SUN50I_GEN_H6))
                return 0x05010000;
 
        if (!is_sun6i_gen_spi() ||
@@ -148,14 +151,14 @@ static void spi0_enable_clock(void)
        uintptr_t base = spi0_base_address();
 
        /* Deassert SPI0 reset on SUN6I */
-       if (IS_ENABLED(CONFIG_MACH_SUN50I_H6))
+       if (IS_ENABLED(CONFIG_SUN50I_GEN_H6))
                setbits_le32(CCM_H6_SPI_BGR_REG, (1U << 16) | 0x1);
        else if (is_sun6i_gen_spi())
                setbits_le32(SUN6I_BUS_SOFT_RST_REG0,
                             (1 << AHB_RESET_SPI0_SHIFT));
 
        /* Open the SPI0 gate */
-       if (!IS_ENABLED(CONFIG_MACH_SUN50I_H6))
+       if (!IS_ENABLED(CONFIG_SUN50I_GEN_H6))
                setbits_le32(CCM_AHB_GATING0, (1 << AHB_GATE_OFFSET_SPI0));
 
        if (IS_ENABLED(CONFIG_MACH_SUNIV)) {
@@ -202,11 +205,11 @@ static void spi0_disable_clock(void)
                writel(0, CCM_SPI0_CLK);
 
        /* Close the SPI0 gate */
-       if (!IS_ENABLED(CONFIG_MACH_SUN50I_H6))
+       if (!IS_ENABLED(CONFIG_SUN50I_GEN_H6))
                clrbits_le32(CCM_AHB_GATING0, (1 << AHB_GATE_OFFSET_SPI0));
 
        /* Assert SPI0 reset on SUN6I */
-       if (IS_ENABLED(CONFIG_MACH_SUN50I_H6))
+       if (IS_ENABLED(CONFIG_SUN50I_GEN_H6))
                clrbits_le32(CCM_H6_SPI_BGR_REG, (1U << 16) | 0x1);
        else if (is_sun6i_gen_spi())
                clrbits_le32(SUN6I_BUS_SOFT_RST_REG0,
@@ -218,7 +221,7 @@ static void spi0_init(void)
        unsigned int pin_function = SUNXI_GPC_SPI0;
 
        if (IS_ENABLED(CONFIG_MACH_SUN50I) ||
-           IS_ENABLED(CONFIG_MACH_SUN50I_H6))
+           IS_ENABLED(CONFIG_SUN50I_GEN_H6))
                pin_function = SUN50I_GPC_SPI0;
        else if (IS_ENABLED(CONFIG_MACH_SUNIV))
                pin_function = SUNIV_GPC_SPI0;
index 32a90b8..8f95781 100644 (file)
@@ -152,6 +152,21 @@ config RISCV_ISA_C
          when building U-Boot, which results in compressed instructions in the
          U-Boot binary.
 
+config RISCV_ISA_F
+       bool "Standard extension for Single-Precision Floating Point"
+       default y
+       help
+         Adds "F" to the ISA string passed to the compiler.
+
+config RISCV_ISA_D
+       bool "Standard extension for Double-Precision Floating Point"
+       depends on RISCV_ISA_F
+       default y
+       help
+         Adds "D" to the ISA string passed to the compiler and changes the
+         riscv32 ABI from ilp32 to ilp32d and the riscv64 ABI from lp64 to
+         lp64d.
+
 config RISCV_ISA_A
        def_bool y
 
index 53d1194..4963b51 100644 (file)
@@ -5,15 +5,22 @@
 
 ifeq ($(CONFIG_ARCH_RV64I),y)
        ARCH_BASE = rv64im
-       ABI = lp64
+       ABI_BASE = lp64
 endif
 ifeq ($(CONFIG_ARCH_RV32I),y)
        ARCH_BASE = rv32im
-       ABI = ilp32
+       ABI_BASE = ilp32
 endif
 ifeq ($(CONFIG_RISCV_ISA_A),y)
        ARCH_A = a
 endif
+ifeq ($(CONFIG_RISCV_ISA_F),y)
+       ARCH_F = f
+endif
+ifeq ($(CONFIG_RISCV_ISA_D),y)
+       ARCH_D = d
+       ABI_D = d
+endif
 ifeq ($(CONFIG_RISCV_ISA_C),y)
        ARCH_C = c
 endif
@@ -24,7 +31,9 @@ ifeq ($(CONFIG_CMODEL_MEDANY),y)
        CMODEL = medany
 endif
 
-RISCV_MARCH = $(ARCH_BASE)$(ARCH_A)$(ARCH_C)
+
+RISCV_MARCH = $(ARCH_BASE)$(ARCH_A)$(ARCH_F)$(ARCH_D)$(ARCH_C)
+ABI = $(ABI_BASE)$(ABI_D)
 
 # Newer binutils versions default to ISA spec version 20191213 which moves some
 # instructions from the I extension to the Zicsr and Zifencei extensions.
index 6851475..1eabcac 100644 (file)
@@ -27,8 +27,8 @@
 /* claim register */
 #define CLAIM_REG(base, hart)  ((ulong)(base) + 0x200004 + (hart) * 0x1000)
 
-#define ENABLE_HART_IPI         (0x80808080)
-#define SEND_IPI_TO_HART(hart)  (0x80 >> (hart))
+#define ENABLE_HART_IPI         (0x01010101)
+#define SEND_IPI_TO_HART(hart)  (0x1 << (hart))
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -36,8 +36,9 @@ static int enable_ipi(int hart)
 {
        unsigned int en;
 
-       en = ENABLE_HART_IPI >> hart;
+       en = ENABLE_HART_IPI << hart;
        writel(en, (void __iomem *)ENABLE_REG(gd->arch.plic, hart));
+       writel(en, (void __iomem *)ENABLE_REG(gd->arch.plic + 0x4, hart));
 
        return 0;
 }
index 36f0dd4..63a966e 100644 (file)
@@ -60,7 +60,7 @@ void *board_fdt_blob_setup(int *err)
        *err = 0;
 
        if (IS_ENABLED(CONFIG_OF_SEPARATE) || IS_ENABLED(CONFIG_OF_BOARD)) {
-               if (gd->arch.firmware_fdt_addr)
+               if (fdt_magic((uintptr_t)gd->arch.firmware_fdt_addr) == FDT_MAGIC)
                        return (void *)(ulong)gd->arch.firmware_fdt_addr;
        }
 
index d8c57e6..f9883f1 100644 (file)
@@ -23,7 +23,7 @@ config SPL_TEXT_BASE
 
 config SPL_OPENSBI_LOAD_ADDR
        hex
-       default 0x81000000
+       default 0x80100000
 
 config BOARD_SPECIFIC_OPTIONS # dummy
        def_bool y
index 17b987f..3f49f39 100644 (file)
@@ -19,8 +19,6 @@
 #include <netdev.h>
 #include <linux/bitops.h>
 #include "som.h"
-#include <power/regulator.h>
-#include <power/rk8xx_pmic.h>
 
 static int valid_rk3288_som(struct rk3288_som *som)
 {
@@ -77,47 +75,3 @@ int rk3288_board_late_init(void)
 
        return 0;
 }
-
-#ifdef CONFIG_SPL_BUILD
-#if !defined(CONFIG_SPL_OF_PLATDATA)
-static int phycore_init(void)
-{
-       struct udevice *pmic;
-       int ret;
-
-       ret = uclass_first_device_err(UCLASS_PMIC, &pmic);
-       if (ret)
-               return ret;
-
-#if defined(CONFIG_SPL_POWER)
-       /* Increase USB input current to 2A */
-       ret = rk818_spl_configure_usb_input_current(pmic, 2000);
-       if (ret)
-               return ret;
-
-       /* Close charger when USB lower then 3.26V */
-       ret = rk818_spl_configure_usb_chrg_shutdown(pmic, 3260000);
-       if (ret)
-               return ret;
-#endif
-
-       return 0;
-}
-#endif
-
-void spl_board_init(void)
-{
-#if !defined(CONFIG_SPL_OF_PLATDATA)
-       int ret;
-
-       if (of_machine_is_compatible("phytec,rk3288-phycore-som")) {
-               ret = phycore_init();
-               if (ret) {
-                       debug("Failed to set up phycore power settings: %d\n",
-                             ret);
-                       return;
-               }
-       }
-#endif
-}
-#endif
index 25e308d..5be58f8 100644 (file)
@@ -6,6 +6,12 @@ F:      include/configs/evb_rk3399.h
 F:      configs/evb-rk3399_defconfig
 F:      configs/firefly-rk3399_defconfig
 
+EAIDK-610
+M:      Andy Yan <andy.yan@rock-chips.com>
+S:      Maintained
+F:     configs/eaidk-610-rk3399_defconfig
+F:     arch/arm/dts/rk3399-eaidk-610-u-boot.dtsi
+
 KHADAS-EDGE
 M:     Nick Xie <nick@khadas.com>
 S:     Maintained
index 5a0b598..80e3f4b 100644 (file)
@@ -535,6 +535,11 @@ M: Aleksei Mamlin <mamlinav@gmail.com>
 S:     Maintained
 F:     configs/Wexler_TAB7200_defconfig
 
+X96 MATE TV BOX
+M:     Andre Przywara <andre.przywara@arm.com>
+S:     Maintained
+F:     configs/x96_mate_defconfig
+
 YONES TOPTECH BD1078 BOARD
 M:     Paul Kocialkowski <contact@paulk.fr>
 S:     Maintained
index 21946d9..15af555 100644 (file)
@@ -15,9 +15,6 @@ config BOARD_SPECIFIC_OPTIONS # dummy
 config ENV_SIZE
        default 0x4000
 
-config ENV_OFFSET
-       default 0x3fc000 if ENV_IS_IN_SPI_FLASH
-
 choice
        prompt "Theobroma Systems RK3399-Q7 DDR Option"
        default TARGET_PUMA_RK3399_RAM_DDR3_1333
index 254c3bb..649aa3c 100644 (file)
@@ -44,26 +44,16 @@ Compile the U-Boot
   > cd ../u-boot
   > make CROSS_COMPILE=aarch64-linux-gnu- puma-rk3399_defconfig all
 
-Package the image
-=================
-
-The SPL image for SD-Card/eMMC is readily available in idbloader.img at the
-root of U-Boot after compilation.
-
-Creating an SPL image for SPI-NOR:
-  > tools/mkimage -n rk3399 -T rkspi -d spl/u-boot-spl.bin idbloader-spi.img
-
 Flash the image
 ===============
 
-Copy the SPL to offset 32k for SD/eMMC, offset 0 for NOR-Flash and the FIT
-image to offset 256k.
+Copy u-boot-rockchip.bin to offset 32k for SD/eMMC.
+Copy u-boot-rockchip-spi.bin to offset 0 for NOR-flash.
 
 SD-Card
 -------
 
-  > dd if=idbloader.img of=/dev/sdb seek=64
-  > dd if=u-boot.itb of=/dev/sdb seek=512
+  > dd if=u-boot-rockchip.bin of=/dev/sdb seek=64
 
 eMMC
 ----
@@ -79,8 +69,7 @@ help of the Rockchip loader binary.
   > ./tools/boot_merger RKBOOT/RK3399MINIALL.ini
   > cd ..
   > ./rkdeveloptool db rkbin/rk3399_loader_v1.25.126.bin
-  > ./rkdeveloptool wl 64 ../idbloader.img
-  > ./rkdeveloptool wl 512 ../u-boot.itb
+  > ./rkdeveloptool wl 64 ../u-boot-rockchip.bin
 
 NOR-Flash
 ---------
@@ -97,5 +86,4 @@ help of the Rockchip loader binary.
   > cd ..
   > ./rkdeveloptool db rkbin/rk3399_loader_spinor_v1.25.114.bin
   > ./rkdeveloptool ef
-  > ./rkdeveloptool wl 0 ../idbloader-spi.img
-  > ./rkdeveloptool wl 512 ../u-boot.itb
+  > ./rkdeveloptool wl 0 ../u-boot-rockchip-spi.bin
index deeba30..97f398b 100644 (file)
@@ -6,6 +6,7 @@
 #include <common.h>
 #include <dm.h>
 #include <env.h>
+#include <env_internal.h>
 #include <init.h>
 #include <log.h>
 #include <misc.h>
@@ -77,18 +78,16 @@ static int setup_boottargets(void)
        }
 
        /*
-        * Only run, if booting from mmc1 (i.e. /mmc@fe320000) and
-        * only consider cases where the default boot-order first
-        * tries to boot from mmc0 (eMMC) and then from mmc1
-        * (i.e. external SD).
-        *
-        * In other words: the SD card will be moved to earlier in the
-        * order, if U-Boot was also loaded from the SD-card.
+        * Make the default boot medium between SD Card and eMMC, the one that
+        * was used to load U-Boot proper. If SPI-NOR flash was used, keep
+        * original default order.
         */
-       if (!strcmp(boot_device, "/mmc@fe320000")) {
+       if (strcmp(boot_device, "/spi@ff1d0000/flash@0")) {
+               bool sd_booted = !strcmp(boot_device, "/mmc@fe320000");
                char *mmc0, *mmc1;
 
-               debug("%s: booted from SD-Card\n", __func__);
+               debug("%s: booted from %s\n", __func__,
+                     sd_booted ? "SD-Card" : "eMMC");
                mmc0 = strstr(env, "mmc0");
                mmc1 = strstr(env, "mmc1");
 
@@ -98,10 +97,13 @@ static int setup_boottargets(void)
                }
 
                /*
-                * If mmc0 comes first in the boot order, we need to change
-                * the strings to make mmc1 first.
+                * If mmc0 comes first in the boot order and U-Boot proper was
+                * loaded from mmc1, swap mmc0 and mmc1 in the list.
+                * If mmc1 comes first in the boot order and U-Boot proper was
+                * loaded from mmc0, swap mmc0 and mmc1 in the list.
                 */
-               if (mmc0 < mmc1) {
+               if ((mmc0 < mmc1 && sd_booted) ||
+                   (mmc0 > mmc1 && !sd_booted)) {
                        mmc0[3] = '1';
                        mmc1[3] = '0';
                        debug("%s: set boot_targets to: %s\n", __func__, env);
@@ -112,6 +114,64 @@ static int setup_boottargets(void)
        return 0;
 }
 
+int mmc_get_env_dev(void)
+{
+       const char *boot_device =
+               ofnode_read_chosen_string("u-boot,spl-boot-device");
+
+       if (!boot_device) {
+               debug("%s: /chosen/u-boot,spl-boot-device not set\n",
+                     __func__);
+               return CONFIG_SYS_MMC_ENV_DEV;
+       }
+
+       debug("%s: booted from %s\n", __func__, boot_device);
+
+       if (!strcmp(boot_device, "/mmc@fe320000"))
+               return 1;
+
+       if (!strcmp(boot_device, "/mmc@fe330000"))
+               return 0;
+
+       return CONFIG_SYS_MMC_ENV_DEV;
+}
+
+#if !IS_ENABLED(CONFIG_ENV_IS_NOWHERE)
+#error Please enable CONFIG_ENV_IS_NOWHERE
+#endif
+
+enum env_location arch_env_get_location(enum env_operation op, int prio)
+{
+       const char *boot_device =
+               ofnode_read_chosen_string("u-boot,spl-boot-device");
+
+       if (prio > 0)
+               return ENVL_UNKNOWN;
+
+       if (!boot_device) {
+               debug("%s: /chosen/u-boot,spl-boot-device not set\n",
+                     __func__);
+               return ENVL_NOWHERE;
+       }
+
+       debug("%s: booted from %s\n", __func__, boot_device);
+
+       if (IS_ENABLED(CONFIG_ENV_IS_IN_SPI_FLASH) &&
+           !strcmp(boot_device, "/spi@ff1d0000/flash@0"))
+               return ENVL_SPI_FLASH;
+
+       if (IS_ENABLED(CONFIG_ENV_IS_IN_MMC) &&
+           (!strcmp(boot_device, "/mmc@fe320000") ||
+            !strcmp(boot_device, "/mmc@fe330000")))
+               return ENVL_MMC;
+
+       printf("%s: No environment available: booted from %s but U-Boot "
+              "config does not allow loading environment from it.",
+              __func__, boot_device);
+
+       return ENVL_NOWHERE;
+}
+
 int misc_init_r(void)
 {
        const u32 cpuid_offset = 0x7;
@@ -136,19 +196,3 @@ int misc_init_r(void)
 
        return 0;
 }
-
-#ifdef CONFIG_SERIAL_TAG
-void get_board_serial(struct tag_serialnr *serialnr)
-{
-       char *serial_string;
-       u64 serial = 0;
-
-       serial_string = env_get("serial#");
-
-       if (serial_string)
-               serial = simple_strtoull(serial_string, NULL, 16);
-
-       serialnr->high = (u32)(serial >> 32);
-       serialnr->low = (u32)(serial & 0xffffffff);
-}
-#endif
index 6b3b8f0..45f86e9 100644 (file)
@@ -499,8 +499,8 @@ config SYS_TEXT_BASE
        default 0x80800000 if ARCH_OMAP2PLUS || ARCH_K3
        default 0x81700000 if MACH_SUNIV
        default 0x2a000000 if MACH_SUN9I
-       default 0x42e00000 if MACH_SUN8I_V3S
-       default 0x4a000000 if ARCH_SUNXI
+       default 0x4a000000 if SUNXI_MINIMUM_DRAM_MB >= 256
+       default 0x42e00000 if SUNXI_MINIMUM_DRAM_MB >= 64
        hex "Text Base"
        help
          The address in memory that U-Boot will be running from, initially.
index 49247a4..16030e3 100644 (file)
@@ -86,6 +86,7 @@ config SYS_CBSIZE
 
 config SYS_PBSIZE
        int "Buffer size for console output"
+       default 1024 if ARCH_SUNXI
        default 1044
 
 config SYS_XTRACE
index 522f502..6f2cad4 100644 (file)
@@ -30,15 +30,15 @@ static struct sbi_imp implementations[] = {
 };
 
 static struct sbi_ext extensions[] = {
-       { SBI_EXT_0_1_SET_TIMER,              "sbi_set_timer" },
-       { SBI_EXT_0_1_CONSOLE_PUTCHAR,        "sbi_console_putchar" },
-       { SBI_EXT_0_1_CONSOLE_GETCHAR,        "sbi_console_getchar" },
-       { SBI_EXT_0_1_CLEAR_IPI,              "sbi_clear_ipi" },
-       { SBI_EXT_0_1_SEND_IPI,               "sbi_send_ipi" },
-       { SBI_EXT_0_1_REMOTE_FENCE_I,         "sbi_remote_fence_i" },
-       { SBI_EXT_0_1_REMOTE_SFENCE_VMA,      "sbi_remote_sfence_vma" },
-       { SBI_EXT_0_1_REMOTE_SFENCE_VMA_ASID, "sbi_remote_sfence_vma_asid" },
-       { SBI_EXT_0_1_SHUTDOWN,               "sbi_shutdown" },
+       { SBI_EXT_0_1_SET_TIMER,              "Set Timer" },
+       { SBI_EXT_0_1_CONSOLE_PUTCHAR,        "Console Putchar" },
+       { SBI_EXT_0_1_CONSOLE_GETCHAR,        "Console Getchar" },
+       { SBI_EXT_0_1_CLEAR_IPI,              "Clear IPI" },
+       { SBI_EXT_0_1_SEND_IPI,               "Send IPI" },
+       { SBI_EXT_0_1_REMOTE_FENCE_I,         "Remote FENCE.I" },
+       { SBI_EXT_0_1_REMOTE_SFENCE_VMA,      "Remote SFENCE.VMA" },
+       { SBI_EXT_0_1_REMOTE_SFENCE_VMA_ASID, "Remote SFENCE.VMA with ASID" },
+       { SBI_EXT_0_1_SHUTDOWN,               "System Shutdown" },
        { SBI_EXT_BASE,                       "SBI Base Functionality" },
        { SBI_EXT_TIME,                       "Timer Extension" },
        { SBI_EXT_IPI,                        "IPI Extension" },
@@ -56,8 +56,11 @@ static int do_sbi(struct cmd_tbl *cmdtp, int flag, int argc,
        long mvendorid, marchid, mimpid;
 
        ret = sbi_get_spec_version();
-       if (ret >= 0)
-               printf("SBI %ld.%ld", ret >> 24, ret & 0xffffff);
+       if (ret < 0) {
+               printf("No SBI 0.2+\n");
+               return CMD_RET_FAILURE;
+       }
+       printf("SBI %ld.%ld", ret >> 24, ret & 0xffffff);
        impl_id = sbi_get_impl_id();
        if (impl_id >= 0) {
                for (i = 0; i < ARRAY_SIZE(implementations); ++i) {
@@ -74,6 +77,7 @@ static int do_sbi(struct cmd_tbl *cmdtp, int flag, int argc,
                                               vers >> 16, vers & 0xffff);
                                        break;
                                case 3: /* KVM */
+                               case 4: /* RustSBI */
                                        printf("%ld.%ld.%ld",
                                               vers >> 16,
                                               (vers >> 8) & 0xff,
index f2422d2..b1b9e09 100644 (file)
@@ -81,6 +81,7 @@ config SPL_MAX_SIZE
        default 0x10000 if ARCH_MX6 && !MX6_OCRAM_256KB
        default 0x7fa0 if SUNXI_SRAM_ADDRESS = 0x10000
        default 0x7fa0 if SUNXI_SRAM_ADDRESS = 0x20000 && !MACH_SUN50I_H616
+       default 0xbfa0 if MACH_SUN50I_H616
        default 0x7000 if RCAR_GEN3
        default 0x5fa0 if SUNXI_SRAM_ADDRESS = 0x0
        default 0x10000 if ASPEED_AST2600
@@ -353,6 +354,11 @@ config SPL_STACK
        default 0x946bb8 if ARCH_MX7
        default 0x93ffb8 if ARCH_MX6 && MX6_OCRAM_256KB
        default 0x91ffb8 if ARCH_MX6 && !MX6_OCRAM_256KB
+       default 0x118000 if MACH_SUN50I_H6
+       default 0x58000 if MACH_SUN50I_H616
+       default 0x54000 if MACH_SUN50I || MACH_SUN50I_H5
+       default 0x18000 if MACH_SUN9I
+       default 0x8000 if ARCH_SUNXI
        help
          Address of the start of the stack SPL will use before SDRAM is
          initialized.
index 26a9212..6727932 100644 (file)
@@ -11,9 +11,7 @@ CONFIG_I2C1_ENABLE=y
 CONFIG_SATAPWR="PC3"
 CONFIG_AHCI=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SCSI_AHCI=y
 CONFIG_SYS_64BIT_LBA=y
 CONFIG_SYS_I2C_MVTWSI=y
index 7e9b92e..99f5785 100644 (file)
@@ -9,9 +9,7 @@ CONFIG_MMC1_CD_PIN="PG13"
 CONFIG_MMC_SUNXI_SLOT_EXTRA=1
 CONFIG_USB1_VBUS_PIN="PB10"
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SYS_I2C_SLAVE=0x7f
 CONFIG_SYS_I2C_SPEED=400000
index 625a331..f9d17b1 100644 (file)
@@ -13,8 +13,6 @@ CONFIG_VIDEO_VGA_VIA_LCD_FORCE_SYNC_ACTIVE_HIGH=y
 CONFIG_VIDEO_LCD_POWER="PB10"
 CONFIG_VIDEO_LCD_BL_PWM="PB2"
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SYS_I2C_SLAVE=0x7f
 CONFIG_SYS_I2C_SPEED=400000
index 5e0396c..8c90435 100644 (file)
@@ -15,9 +15,7 @@ CONFIG_VIDEO_VGA_VIA_LCD_FORCE_SYNC_ACTIVE_HIGH=y
 CONFIG_VIDEO_LCD_POWER="AXP0-0"
 CONFIG_VIDEO_LCD_BL_PWM="PB2"
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_CMD_DFU=y
 CONFIG_CMD_USB_MASS_STORAGE=y
 CONFIG_DFU_RAM=y
index b580281..bccadcc 100644 (file)
@@ -13,9 +13,7 @@ CONFIG_SATAPWR="PC3"
 CONFIG_SPL_SPI_SUNXI=y
 CONFIG_AHCI=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_CMD_DFU=y
 CONFIG_CMD_USB_MASS_STORAGE=y
 CONFIG_SCSI_AHCI=y
index de4f631..0a9de5e 100644 (file)
@@ -11,9 +11,7 @@ CONFIG_I2C1_ENABLE=y
 CONFIG_SATAPWR="PC3"
 CONFIG_AHCI=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_CMD_DFU=y
 CONFIG_CMD_USB_MASS_STORAGE=y
 CONFIG_SCSI_AHCI=y
index ebb3a02..38daf33 100644 (file)
@@ -9,9 +9,7 @@ CONFIG_I2C1_ENABLE=y
 CONFIG_SATAPWR="PC3"
 CONFIG_AHCI=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SCSI_AHCI=y
 CONFIG_SYS_64BIT_LBA=y
 CONFIG_SYS_I2C_MVTWSI=y
index c880243..d73e64c 100644 (file)
@@ -11,9 +11,7 @@ CONFIG_VIDEO_VGA=y
 CONFIG_SATAPWR="PB8"
 CONFIG_AHCI=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SCSI_AHCI=y
 CONFIG_SYS_64BIT_LBA=y
 CONFIG_SYS_I2C_MVTWSI=y
index f449641..8a6bb88 100644 (file)
@@ -12,9 +12,7 @@ CONFIG_VIDEO_VGA=y
 CONFIG_SATAPWR="PB8"
 CONFIG_AHCI=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SCSI_AHCI=y
 CONFIG_SYS_64BIT_LBA=y
 CONFIG_SYS_I2C_MVTWSI=y
index 67b47f5..5de6c2d 100644 (file)
@@ -12,9 +12,7 @@ CONFIG_USB0_VBUS_DET="PH5"
 CONFIG_SATAPWR="PC3"
 CONFIG_AHCI=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SCSI_AHCI=y
 CONFIG_SYS_64BIT_LBA=y
 CONFIG_SYS_I2C_MVTWSI=y
index e02d67d..6e9bdc2 100644 (file)
@@ -13,9 +13,7 @@ CONFIG_SATAPWR="PC3"
 CONFIG_GMAC_TX_DELAY=4
 CONFIG_AHCI=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SCSI_AHCI=y
 CONFIG_SYS_64BIT_LBA=y
 CONFIG_FASTBOOT_CMD_OEM_FORMAT=y
index 317a1e6..e051745 100644 (file)
@@ -12,9 +12,7 @@ CONFIG_SATAPWR="PC3"
 CONFIG_GMAC_TX_DELAY=4
 CONFIG_AHCI=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SCSI_AHCI=y
 CONFIG_SYS_64BIT_LBA=y
 CONFIG_FASTBOOT_CMD_OEM_FORMAT=y
index c9eec1f..351a454 100644 (file)
@@ -16,7 +16,5 @@ CONFIG_VIDEO_LCD_DCLK_PHASE=0
 CONFIG_VIDEO_LCD_BL_EN="PB2"
 CONFIG_VIDEO_LCD_BL_PWM="PH0"
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_AXP_DCDC1_VOLT=3300
 CONFIG_USB_MUSB_HOST=y
index 8cd38f7..9a18af8 100644 (file)
@@ -14,9 +14,7 @@ CONFIG_VIDEO_LCD_POWER="PH8"
 CONFIG_VIDEO_LCD_BL_EN="PH7"
 CONFIG_VIDEO_LCD_BL_PWM="PB2"
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SYS_I2C_SLAVE=0x7f
 CONFIG_SYS_I2C_SPEED=400000
index 68707ed..7bf3dfc 100644 (file)
@@ -15,9 +15,7 @@ CONFIG_VIDEO_LCD_POWER="AXP0-0"
 CONFIG_VIDEO_LCD_BL_EN="AXP0-1"
 CONFIG_VIDEO_LCD_BL_PWM="PB2"
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SYS_I2C_SLAVE=0x7f
 CONFIG_SYS_I2C_SPEED=400000
index 703df18..7d81f12 100644 (file)
@@ -8,9 +8,7 @@ CONFIG_DRAM_EMR1=0
 CONFIG_USB1_VBUS_PIN="PB10"
 CONFIG_VIDEO_COMPOSITE=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SYS_I2C_SLAVE=0x7f
 CONFIG_SYS_I2C_SPEED=400000
index a8d236e..4c7154b 100644 (file)
@@ -6,9 +6,7 @@ CONFIG_MACH_SUN5I=y
 CONFIG_DRAM_CLK=432
 CONFIG_USB1_VBUS_PIN="PG13"
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SYS_I2C_SLAVE=0x7f
 CONFIG_SYS_I2C_SPEED=400000
index be5be9a..18ee81b 100644 (file)
@@ -12,9 +12,7 @@ CONFIG_USB2_VBUS_PIN="PH23"
 # CONFIG_HAS_ARMV7_SECURE_BASE is not set
 CONFIG_AHCI=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SCSI_AHCI=y
 CONFIG_SYS_64BIT_LBA=y
 CONFIG_SYS_I2C_MVTWSI=y
index 053ba13..6c2a1f6 100644 (file)
@@ -9,9 +9,7 @@ CONFIG_VIDEO_COMPOSITE=y
 CONFIG_GMAC_TX_DELAY=3
 CONFIG_AHCI=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_NETCONSOLE=y
 CONFIG_SCSI_AHCI=y
 CONFIG_SYS_64BIT_LBA=y
index 6a07f26..bad38a6 100644 (file)
@@ -10,8 +10,6 @@ CONFIG_MMC0_CD_PIN="PB4"
 CONFIG_MMC_SUNXI_SLOT_EXTRA=2
 CONFIG_USB0_ID_DET="PH8"
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_FASTBOOT_CMD_OEM_FORMAT=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_OHCI_HCD=y
index 36f9bf8..94fd747 100644 (file)
@@ -11,9 +11,7 @@ CONFIG_VIDEO_COMPOSITE=y
 CONFIG_GMAC_TX_DELAY=3
 CONFIG_AHCI=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_NETCONSOLE=y
 CONFIG_SCSI_AHCI=y
 CONFIG_SYS_64BIT_LBA=y
index 40d2c5b..cd9bdbf 100644 (file)
@@ -7,9 +7,7 @@ CONFIG_DRAM_TIMINGS_DDR3_800E_1066G_1333J=y
 CONFIG_USB0_VBUS_PIN="PB10"
 CONFIG_VIDEO_COMPOSITE=y
 CONFIG_CHIP_DIP_SCAN=y
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_CMD_DFU=y
 CONFIG_DFU_RAM=y
 CONFIG_SYS_I2C_MVTWSI=y
index 9016801..2917960 100644 (file)
@@ -5,9 +5,7 @@ CONFIG_SPL=y
 CONFIG_MACH_SUN5I=y
 CONFIG_DRAM_TIMINGS_DDR3_800E_1066G_1333J=y
 CONFIG_USB0_VBUS_PIN="PB10"
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 # CONFIG_CMD_FLASH is not set
 CONFIG_CMD_MTDPARTS=y
 CONFIG_MTDIDS_DEFAULT="nand0=sunxi-nand.0"
index 49be3fc..1cd39d4 100644 (file)
@@ -7,8 +7,6 @@ CONFIG_DRAM_CLK=432
 CONFIG_USB1_VBUS_PIN=""
 CONFIG_USB2_VBUS_PIN=""
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_PHY_REALTEK=y
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_MII=y
index b59d178..02b3e69 100644 (file)
@@ -14,9 +14,7 @@ CONFIG_VIDEO_LCD_BL_EN="PH7"
 CONFIG_VIDEO_LCD_BL_PWM="PB2"
 CONFIG_VIDEO_LCD_PANEL_HITACHI_TX18D42VM=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SYS_I2C_SLAVE=0x7f
 CONFIG_SYS_I2C_SPEED=400000
index 24b55bf..270bd7d 100644 (file)
@@ -15,8 +15,6 @@ CONFIG_VIDEO_LCD_BL_EN="PM1"
 CONFIG_VIDEO_LCD_BL_PWM="PH13"
 CONFIG_VIDEO_LCD_PANEL_EDP_4_LANE_1620M_VIA_ANX9804=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SPL_SYS_I2C_LEGACY=y
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SYS_I2C_SLAVE=0x7f
index 315c52f..ab5e53f 100644 (file)
@@ -8,9 +8,7 @@ CONFIG_MMC0_CD_PIN="PH1"
 CONFIG_SATAPWR="PB8"
 CONFIG_AHCI=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SCSI_AHCI=y
 CONFIG_SYS_64BIT_LBA=y
 CONFIG_SYS_I2C_MVTWSI=y
index 928299e..04ed79a 100644 (file)
@@ -12,7 +12,5 @@ CONFIG_USB0_ID_DET="PH16"
 CONFIG_USB1_VBUS_PIN="PH14"
 CONFIG_USB3_VBUS_PIN="PH15"
 CONFIG_AXP_GPIO=y
-CONFIG_SPL_STACK=0x18000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SYS_I2C_SUN8I_RSB=y
 CONFIG_AXP809_POWER=y
index 49eb018..c017b12 100644 (file)
@@ -8,9 +8,7 @@ CONFIG_MMC0_CD_PIN="PH1"
 CONFIG_SATAPWR="PB8"
 CONFIG_AHCI=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SCSI_AHCI=y
 CONFIG_SYS_64BIT_LBA=y
 CONFIG_SYS_I2C_MVTWSI=y
index 62668df..c85468e 100644 (file)
@@ -13,9 +13,7 @@ CONFIG_SATAPWR="PH12"
 CONFIG_GMAC_TX_DELAY=1
 CONFIG_AHCI=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_CMD_DFU=y
 CONFIG_CMD_USB_MASS_STORAGE=y
 CONFIG_SCSI_AHCI=y
index 8119b8b..13f9589 100644 (file)
@@ -16,8 +16,6 @@ CONFIG_I2C0_ENABLE=y
 CONFIG_AXP_GPIO=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
 CONFIG_CONSOLE_MUX=y
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SPL_SYS_I2C_LEGACY=y
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SYS_I2C_SLAVE=0x7f
index 0187b89..a9bbe8b 100644 (file)
@@ -16,9 +16,7 @@ CONFIG_VIDEO_LCD_POWER="AXP0-0"
 CONFIG_VIDEO_LCD_BL_EN="AXP0-1"
 CONFIG_VIDEO_LCD_BL_PWM="PB2"
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SYS_I2C_SLAVE=0x7f
 CONFIG_SYS_I2C_SPEED=400000
index 6570b97..fc1f26b 100644 (file)
@@ -15,9 +15,7 @@ CONFIG_VIDEO_LCD_POWER="AXP0-0"
 CONFIG_VIDEO_LCD_BL_EN="AXP0-1"
 CONFIG_VIDEO_LCD_BL_PWM="PB2"
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SYS_I2C_SLAVE=0x7f
 CONFIG_SYS_I2C_SPEED=400000
index 3afe4c5..24e8b5b 100644 (file)
@@ -9,8 +9,6 @@ CONFIG_USB2_VBUS_PIN=""
 CONFIG_VIDEO_VGA_VIA_LCD=y
 CONFIG_VIDEO_VGA_EXTERNAL_DAC_EN="PH25"
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_PHY_REALTEK=y
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_RGMII=y
index 8bf7d1e..482e0fb 100644 (file)
@@ -15,9 +15,7 @@ CONFIG_VIDEO_LCD_BL_PWM="PB2"
 # CONFIG_VIDEO_LCD_BL_PWM_ACTIVE_LOW is not set
 CONFIG_VIDEO_LCD_PANEL_LVDS=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SYS_I2C_SLAVE=0x7f
 CONFIG_SYS_I2C_SPEED=400000
index 1a16155..99df9cf 100644 (file)
@@ -8,9 +8,7 @@ CONFIG_MMC0_CD_PIN="PH1"
 CONFIG_SATAPWR="PB8"
 CONFIG_AHCI=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SCSI_AHCI=y
 CONFIG_SYS_64BIT_LBA=y
 CONFIG_SYS_I2C_MVTWSI=y
index 3627e4d..f97dc13 100644 (file)
@@ -10,9 +10,7 @@ CONFIG_SATAPWR="PB3"
 CONFIG_GMAC_TX_DELAY=4
 CONFIG_AHCI=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SCSI_AHCI=y
 CONFIG_SYS_64BIT_LBA=y
 CONFIG_SYS_I2C_MVTWSI=y
index 2e0b0b7..9815348 100644 (file)
@@ -5,6 +5,4 @@ CONFIG_SPL=y
 CONFIG_MACH_SUN8I_V3S=y
 CONFIG_DRAM_CLK=360
 # CONFIG_HAS_ARMV7_SECURE_BASE is not set
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 # CONFIG_NETDEVICES is not set
index 41ed46a..e3e30a4 100644 (file)
@@ -10,9 +10,7 @@ CONFIG_SATAPWR="PH2"
 CONFIG_GMAC_TX_DELAY=3
 CONFIG_AHCI=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SCSI_AHCI=y
 CONFIG_SYS_64BIT_LBA=y
 CONFIG_SYS_I2C_MVTWSI=y
index 44a3901..1fda0db 100644 (file)
@@ -8,9 +8,7 @@ CONFIG_DRAM_ZQ=122
 CONFIG_SATAPWR="PH2"
 CONFIG_AHCI=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SCSI_AHCI=y
 CONFIG_SYS_64BIT_LBA=y
 CONFIG_SYS_I2C_MVTWSI=y
index 2796415..49dcfa0 100644 (file)
@@ -6,9 +6,7 @@ CONFIG_MACH_SUN4I=y
 CONFIG_USB1_VBUS_PIN=""
 CONFIG_USB2_VBUS_PIN=""
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SYS_I2C_SLAVE=0x7f
 CONFIG_SYS_I2C_SPEED=400000
index 4e678bd..3ed962d 100644 (file)
@@ -5,9 +5,7 @@ CONFIG_SPL=y
 CONFIG_MACH_SUN7I=y
 CONFIG_DRAM_CLK=384
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SYS_I2C_SLAVE=0x7f
 CONFIG_SYS_I2C_SPEED=400000
index 7a4b224..071169f 100644 (file)
@@ -10,9 +10,7 @@ CONFIG_VIDEO_LCD_POWER="PH8"
 CONFIG_VIDEO_LCD_BL_EN="PH7"
 CONFIG_VIDEO_LCD_BL_PWM="PB2"
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SYS_I2C_SLAVE=0x7f
 CONFIG_SYS_I2C_SPEED=400000
index bb820fd..e77b007 100644 (file)
@@ -13,8 +13,6 @@ CONFIG_VIDEO_LCD_BL_EN="PA25"
 CONFIG_VIDEO_LCD_BL_PWM="PH13"
 CONFIG_VIDEO_LCD_PANEL_MIPI_4_LANE_513_MBPS_VIA_SSD2828=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_AXP_DLDO1_VOLT=3300
 # CONFIG_REQUIRE_SERIAL_CONSOLE is not set
 CONFIG_USB_MUSB_HOST=y
index 1584778..3c5312d 100644 (file)
@@ -5,8 +5,6 @@ CONFIG_SPL=y
 CONFIG_MACH_SUN4I=y
 CONFIG_AHCI=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SCSI_AHCI=y
 CONFIG_SYS_64BIT_LBA=y
 CONFIG_SYS_I2C_MVTWSI=y
index acd751b..c697d28 100644 (file)
@@ -7,8 +7,6 @@ CONFIG_DRAM_ZQ=120
 CONFIG_USB1_VBUS_PIN="PC27"
 CONFIG_USB2_VBUS_PIN=""
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_PHY_REALTEK=y
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_MII=y
index eb3e798..f5b6d90 100644 (file)
@@ -8,9 +8,7 @@ CONFIG_VIDEO_VGA=y
 CONFIG_VIDEO_COMPOSITE=y
 CONFIG_AHCI=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SCSI_AHCI=y
 CONFIG_SYS_64BIT_LBA=y
 CONFIG_SYS_I2C_MVTWSI=y
index 48dad60..2b9bca1 100644 (file)
@@ -7,8 +7,6 @@ CONFIG_DRAM_ZQ=120
 CONFIG_USB1_VBUS_PIN="PC27"
 CONFIG_USB2_VBUS_PIN=""
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_PHY_REALTEK=y
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_MII=y
index ce96239..77cb464 100644 (file)
@@ -9,9 +9,7 @@ CONFIG_MMC_SUNXI_SLOT_EXTRA=2
 CONFIG_VIDEO_VGA=y
 CONFIG_VIDEO_COMPOSITE=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SYS_I2C_SLAVE=0x7f
 CONFIG_SYS_I2C_SPEED=400000
index 2e6d5dd..b07dbbd 100644 (file)
@@ -9,9 +9,7 @@ CONFIG_MMC0_CD_PIN="PH1"
 CONFIG_VIDEO_COMPOSITE=y
 CONFIG_AHCI=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SCSI_AHCI=y
 CONFIG_SYS_64BIT_LBA=y
 CONFIG_SYS_I2C_MVTWSI=y
index b84a2ae..be6dd41 100644 (file)
@@ -7,8 +7,6 @@ CONFIG_DRAM_ZQ=120
 CONFIG_USB1_VBUS_PIN="PC27"
 CONFIG_USB2_VBUS_PIN=""
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_PHY_REALTEK=y
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_MII=y
index 3709a11..c5d1f40 100644 (file)
@@ -12,7 +12,5 @@ CONFIG_USB0_ID_DET="PH3"
 CONFIG_USB1_VBUS_PIN="PH4"
 CONFIG_USB3_VBUS_PIN="PH5"
 CONFIG_AXP_GPIO=y
-CONFIG_SPL_STACK=0x18000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SYS_I2C_SUN8I_RSB=y
 CONFIG_AXP809_POWER=y
index 76b6b7d..e8bc148 100644 (file)
@@ -6,9 +6,7 @@ CONFIG_MACH_SUN4I=y
 CONFIG_USB0_VBUS_PIN="PB9"
 CONFIG_VIDEO_COMPOSITE=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SYS_I2C_SLAVE=0x7f
 CONFIG_SYS_I2C_SPEED=400000
index 5b1a1d4..b660234 100644 (file)
@@ -9,8 +9,6 @@ CONFIG_DRAM_ODT_EN=y
 CONFIG_USB0_VBUS_DET="AXP0-VBUS-DETECT"
 CONFIG_AXP_GPIO=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 # CONFIG_CMD_FLASH is not set
 CONFIG_CMD_MTDPARTS=y
 # CONFIG_MMC is not set
index ba976f8..c89a9a1 100644 (file)
@@ -12,9 +12,7 @@ CONFIG_VIDEO_COMPOSITE=y
 CONFIG_GMAC_TX_DELAY=3
 CONFIG_AHCI=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SCSI_AHCI=y
 CONFIG_SYS_64BIT_LBA=y
 CONFIG_SYS_I2C_MVTWSI=y
index 720e9e5..8757dcb 100644 (file)
@@ -14,9 +14,7 @@ CONFIG_VIDEO_COMPOSITE=y
 CONFIG_GMAC_TX_DELAY=3
 CONFIG_AHCI=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SCSI_AHCI=y
 CONFIG_SYS_64BIT_LBA=y
 CONFIG_SYS_I2C_MVTWSI=y
index 2d33331..238b007 100644 (file)
@@ -10,8 +10,6 @@ CONFIG_MMC_SUNXI_SLOT_EXTRA=3
 CONFIG_USB1_VBUS_PIN=""
 CONFIG_USB2_VBUS_PIN=""
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_PHY_REALTEK=y
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_MII=y
index fcee14b..4eb5300 100644 (file)
@@ -13,8 +13,6 @@ CONFIG_VIDEO_LCD_DCLK_PHASE=0
 CONFIG_VIDEO_LCD_BL_EN="PH6"
 CONFIG_VIDEO_LCD_BL_PWM="PH0"
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_CMD_DFU=y
 CONFIG_DFU_RAM=y
 CONFIG_FASTBOOT_CMD_OEM_FORMAT=y
index c080a24..aba9527 100644 (file)
@@ -7,8 +7,6 @@ CONFIG_DRAM_CLK=432
 CONFIG_USB1_VBUS_PIN=""
 CONFIG_USB2_VBUS_PIN=""
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_PHY_REALTEK=y
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_RGMII=y
index 9760f9f..5116fab 100644 (file)
@@ -16,8 +16,6 @@ CONFIG_AXP_GPIO=y
 CONFIG_SATAPWR="PD25"
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
 CONFIG_CONSOLE_MUX=y
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_PHY_REALTEK=y
 CONFIG_SUN8I_EMAC=y
 CONFIG_INITIAL_USB_SCAN_DELAY=500
index 749bf1c..bb62ae9 100644 (file)
@@ -12,5 +12,3 @@ CONFIG_USB0_VBUS_PIN="PH15"
 CONFIG_USB1_VBUS_PIN="PL7"
 CONFIG_USB3_VBUS_PIN="PL8"
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x18000
-CONFIG_SYS_PBSIZE=1024
index 4e6652d..b021b0a 100644 (file)
@@ -20,9 +20,7 @@ CONFIG_VIDEO_LCD_BL_EN="AXP0-1"
 CONFIG_VIDEO_LCD_BL_PWM="PB2"
 CONFIG_VIDEO_LCD_TL059WV5C0=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SYS_I2C_SLAVE=0x7f
 CONFIG_SYS_I2C_SPEED=400000
index f63d18c..101ce57 100644 (file)
@@ -13,9 +13,7 @@ CONFIG_VIDEO_LCD_POWER="PH8"
 CONFIG_VIDEO_LCD_BL_EN="PH7"
 CONFIG_VIDEO_LCD_BL_PWM="PB2"
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SYS_I2C_SLAVE=0x7f
 CONFIG_SYS_I2C_SPEED=400000
index c9d2253..f401ac7 100644 (file)
@@ -12,9 +12,7 @@ CONFIG_VIDEO_LCD_BL_PWM="PB2"
 CONFIG_VIDEO_LCD_PANEL_LVDS=y
 CONFIG_AHCI=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SCSI_AHCI=y
 CONFIG_SYS_64BIT_LBA=y
 CONFIG_SYS_I2C_MVTWSI=y
index ab919c0..e0687bf 100644 (file)
@@ -7,9 +7,7 @@ CONFIG_DRAM_CLK=432
 CONFIG_MMC0_CD_PIN="PB3"
 CONFIG_USB1_VBUS_PIN="PG12"
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SYS_I2C_SLAVE=0x7f
 CONFIG_SYS_I2C_SPEED=400000
index 1117e14..f1ceb8b 100644 (file)
@@ -19,9 +19,7 @@ CONFIG_VIDEO_LCD_BL_PWM="PB2"
 # CONFIG_VIDEO_LCD_BL_PWM_ACTIVE_LOW is not set
 CONFIG_VIDEO_LCD_PANEL_LVDS=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SYS_I2C_SLAVE=0x7f
 CONFIG_SYS_I2C_SPEED=400000
index ef30aee..6701ecc 100644 (file)
@@ -16,7 +16,5 @@ CONFIG_VIDEO_LCD_BL_EN="PA25"
 CONFIG_VIDEO_LCD_BL_PWM="PH13"
 CONFIG_VIDEO_LCD_PANEL_LVDS=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_AXP_DLDO1_VOLT=3300
 CONFIG_USB_MUSB_HOST=y
index afa0c24..8ec9eb3 100644 (file)
@@ -6,9 +6,6 @@ CONFIG_MACH_SUN50I=y
 CONFIG_RESERVE_ALLWINNER_BOOT0_HEADER=y
 CONFIG_MMC_SUNXI_SLOT_EXTRA=2
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x54000
-CONFIG_SYS_PBSIZE=1024
-CONFIG_SYS_BOOTM_LEN=0x2000000
 CONFIG_SUPPORT_EMMC_BOOT=y
 CONFIG_SUN8I_EMAC=y
 CONFIG_USB_EHCI_HCD=y
index ccb5abc..16cef18 100644 (file)
@@ -6,9 +6,6 @@ CONFIG_MACH_SUN50I=y
 CONFIG_RESERVE_ALLWINNER_BOOT0_HEADER=y
 CONFIG_MMC_SUNXI_SLOT_EXTRA=2
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x54000
-CONFIG_SYS_PBSIZE=1024
-CONFIG_SYS_BOOTM_LEN=0x2000000
 CONFIG_SUN8I_EMAC=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_OHCI_HCD=y
index 72f97ce..ae44b66 100644 (file)
@@ -7,9 +7,6 @@ CONFIG_RESERVE_ALLWINNER_BOOT0_HEADER=y
 CONFIG_MMC_SUNXI_SLOT_EXTRA=2
 # CONFIG_VIDEO_DE2 is not set
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x54000
-CONFIG_SYS_PBSIZE=1024
-CONFIG_SYS_BOOTM_LEN=0x2000000
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_OHCI_HCD=y
 CONFIG_USB_MUSB_GADGET=y
index 66c444f..b89dd8e 100644 (file)
@@ -9,9 +9,7 @@ CONFIG_USB0_VBUS_PIN="PB9"
 CONFIG_USB2_VBUS_PIN="PH12"
 CONFIG_VIDEO_COMPOSITE=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SYS_I2C_SLAVE=0x7f
 CONFIG_SYS_I2C_SPEED=400000
index 290e9c1..0fbb619 100644 (file)
@@ -9,9 +9,7 @@ CONFIG_VIDEO_COMPOSITE=y
 CONFIG_GMAC_TX_DELAY=3
 CONFIG_AHCI=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_NETCONSOLE=y
 CONFIG_SCSI_AHCI=y
 CONFIG_SYS_64BIT_LBA=y
index e6b8f0f..588eea2 100644 (file)
@@ -9,9 +9,7 @@ CONFIG_USB1_VBUS_PIN="PH23"
 # CONFIG_HAS_ARMV7_SECURE_BASE is not set
 CONFIG_AHCI=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SCSI_AHCI=y
 CONFIG_SYS_64BIT_LBA=y
 CONFIG_SYS_I2C_MVTWSI=y
index d0981f6..26ced59 100644 (file)
@@ -7,8 +7,6 @@ CONFIG_DRAM_CLK=672
 CONFIG_MACPWR="PD6"
 CONFIG_MMC_SUNXI_SLOT_EXTRA=2
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SUN8I_EMAC=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_OHCI_HCD=y
index a68742e..fb6c945 100644 (file)
@@ -7,9 +7,6 @@ CONFIG_DRAM_CLK=672
 CONFIG_MACPWR="PD6"
 CONFIG_MMC_SUNXI_SLOT_EXTRA=2
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x54000
-CONFIG_SYS_PBSIZE=1024
-CONFIG_SYS_BOOTM_LEN=0x2000000
 CONFIG_SUN8I_EMAC=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_OHCI_HCD=y
index 6a3594c..ac3f8f5 100644 (file)
@@ -6,5 +6,3 @@ CONFIG_MACH_SUN8I_H3=y
 CONFIG_DRAM_CLK=408
 CONFIG_MMC0_CD_PIN=""
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
index 36aa80a..5463b04 100644 (file)
@@ -7,9 +7,6 @@ CONFIG_RESERVE_ALLWINNER_BOOT0_HEADER=y
 CONFIG_MMC0_CD_PIN="PH13"
 CONFIG_MMC_SUNXI_SLOT_EXTRA=2
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x54000
-CONFIG_SYS_PBSIZE=1024
-CONFIG_SYS_BOOTM_LEN=0x2000000
 CONFIG_SUPPORT_EMMC_BOOT=y
 CONFIG_SUN8I_EMAC=y
 CONFIG_USB_EHCI_HCD=y
index 2c440e4..42925ea 100644 (file)
@@ -8,9 +8,6 @@ CONFIG_MMC0_CD_PIN="PF6"
 CONFIG_MMC_SUNXI_SLOT_EXTRA=2
 # CONFIG_PSCI_RESET is not set
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x118000
-CONFIG_SYS_PBSIZE=1024
-CONFIG_SYS_BOOTM_LEN=0x2000000
 CONFIG_LED=y
 CONFIG_LED_GPIO=y
 CONFIG_USB_EHCI_HCD=y
index 4065e64..6206d90 100644 (file)
@@ -6,7 +6,5 @@ CONFIG_MACH_SUN8I_H3=y
 CONFIG_DRAM_CLK=567
 CONFIG_MMC_SUNXI_SLOT_EXTRA=2
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SUN8I_EMAC=y
 CONFIG_USB_EHCI_HCD=y
index 35d546e..a60468e 100644 (file)
@@ -95,6 +95,7 @@ CONFIG_REGULATOR_RK8XX=y
 CONFIG_PWM_ROCKCHIP=y
 CONFIG_RAM=y
 CONFIG_SPL_RAM=y
+CONFIG_DM_RESET=y
 CONFIG_DEBUG_UART_SHIFT=2
 CONFIG_ROCKCHIP_SERIAL=y
 CONFIG_SOUND=y
index f170833..5d3636e 100644 (file)
@@ -16,8 +16,6 @@ CONFIG_VIDEO_LCD_BL_EN="PA25"
 CONFIG_VIDEO_LCD_BL_PWM="PH13"
 CONFIG_VIDEO_LCD_PANEL_LVDS=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_AXP_DLDO1_VOLT=3300
 CONFIG_AXP_DLDO2_VOLT=1800
 CONFIG_USB_MUSB_HOST=y
index a3917ea..e1067b6 100644 (file)
@@ -15,9 +15,7 @@ CONFIG_VIDEO_LCD_POWER="AXP0-0"
 CONFIG_VIDEO_LCD_BL_EN="AXP0-1"
 CONFIG_VIDEO_LCD_BL_PWM="PB2"
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SYS_I2C_SLAVE=0x7f
 CONFIG_SYS_I2C_SPEED=400000
index c737cdb..60910c3 100644 (file)
@@ -14,9 +14,7 @@ CONFIG_VIDEO_LCD_BL_EN="PH7"
 CONFIG_VIDEO_LCD_BL_PWM="PB2"
 CONFIG_VIDEO_LCD_PANEL_LVDS=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SYS_I2C_SLAVE=0x7f
 CONFIG_SYS_I2C_SPEED=400000
diff --git a/configs/eaidk-610-rk3399_defconfig b/configs/eaidk-610-rk3399_defconfig
new file mode 100644 (file)
index 0000000..b41a66f
--- /dev/null
@@ -0,0 +1,61 @@
+CONFIG_ARM=y
+CONFIG_SKIP_LOWLEVEL_INIT=y
+CONFIG_COUNTER_FREQUENCY=24000000
+CONFIG_ARCH_ROCKCHIP=y
+CONFIG_SYS_TEXT_BASE=0x00200000
+CONFIG_NR_DRAM_BANKS=1
+CONFIG_ENV_OFFSET=0x3F8000
+CONFIG_DEFAULT_DEVICE_TREE="rk3399-eaidk-610"
+CONFIG_ROCKCHIP_RK3399=y
+CONFIG_TARGET_EVB_RK3399=y
+CONFIG_DEBUG_UART_BASE=0xFF1A0000
+CONFIG_DEBUG_UART_CLOCK=24000000
+CONFIG_SYS_LOAD_ADDR=0x800800
+CONFIG_DEBUG_UART=y
+CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
+CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x300000
+CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-eaidk-610.dtb"
+CONFIG_DISPLAY_BOARDINFO_LATE=y
+CONFIG_SPL_MAX_SIZE=0x2e000
+CONFIG_SPL_PAD_TO=0x7f8000
+CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
+CONFIG_SPL_BSS_START_ADDR=0x400000
+CONFIG_SPL_BSS_MAX_SIZE=0x2000
+# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
+# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
+CONFIG_SPL_STACK=0x400000
+CONFIG_SPL_STACK_R=y
+CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x10000
+CONFIG_TPL=y
+CONFIG_CMD_BOOTZ=y
+CONFIG_CMD_GPT=y
+CONFIG_CMD_MMC=y
+CONFIG_CMD_USB=y
+# CONFIG_CMD_SETEXPR is not set
+CONFIG_CMD_TIME=y
+CONFIG_SPL_OF_CONTROL=y
+CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
+CONFIG_ENV_IS_IN_MMC=y
+CONFIG_SYS_RELOC_GD_ENV_ADDR=y
+CONFIG_ROCKCHIP_GPIO=y
+CONFIG_SYS_I2C_ROCKCHIP=y
+CONFIG_MMC_DW=y
+CONFIG_MMC_DW_ROCKCHIP=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_ROCKCHIP=y
+CONFIG_ETH_DESIGNWARE=y
+CONFIG_GMAC_ROCKCHIP=y
+CONFIG_PMIC_RK8XX=y
+CONFIG_REGULATOR_PWM=y
+CONFIG_REGULATOR_RK8XX=y
+CONFIG_PWM_ROCKCHIP=y
+CONFIG_BAUDRATE=1500000
+CONFIG_DEBUG_UART_SHIFT=2
+CONFIG_SYSRESET=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_GENERIC=y
+CONFIG_SPL_TINY_MEMSET=y
+CONFIG_ERRNO_STR=y
index 73121f2..a3b43df 100644 (file)
@@ -8,7 +8,4 @@ CONFIG_DRAM_ZQ=3881977
 # CONFIG_DRAM_ODT_EN is not set
 CONFIG_MMC_SUNXI_SLOT_EXTRA=2
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x54000
-CONFIG_SYS_PBSIZE=1024
-CONFIG_SYS_BOOTM_LEN=0x2000000
 CONFIG_SUPPORT_EMMC_BOOT=y
index 7cdb6c5..599eeb9 100644 (file)
@@ -17,8 +17,6 @@ CONFIG_VIDEO_LCD_BL_EN="PH6"
 CONFIG_VIDEO_LCD_BL_PWM="PH0"
 CONFIG_VIDEO_LCD_PANEL_LVDS=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_AXP_DLDO1_VOLT=3300
 CONFIG_CONS_INDEX=5
 CONFIG_USB_EHCI_HCD=y
index c81f0f6..1a5fe06 100644 (file)
@@ -16,8 +16,6 @@ CONFIG_VIDEO_LCD_POWER="PH7"
 CONFIG_VIDEO_LCD_BL_EN="PH6"
 CONFIG_VIDEO_LCD_BL_PWM="PH0"
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_AXP_DLDO1_VOLT=3300
 CONFIG_CONS_INDEX=5
 CONFIG_USB_MUSB_HOST=y
index 8af0b3c..29f9652 100644 (file)
@@ -11,8 +11,6 @@ CONFIG_USB1_VBUS_PIN="PL6"
 CONFIG_AXP_GPIO=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
 CONFIG_CONSOLE_MUX=y
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_AXP_DLDO4_VOLT=3300
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_OHCI_HCD=y
index 29cea18..257dd89 100644 (file)
@@ -7,9 +7,7 @@ CONFIG_DRAM_CLK=384
 CONFIG_MACPWR="PH21"
 CONFIG_VIDEO_COMPOSITE=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SYS_I2C_SLAVE=0x7f
 CONFIG_SYS_I2C_SPEED=400000
index 8b69364..436e3a8 100644 (file)
@@ -14,9 +14,7 @@ CONFIG_VIDEO_LCD_BL_EN="PH7"
 CONFIG_VIDEO_LCD_BL_PWM="PB2"
 CONFIG_VIDEO_LCD_PANEL_LVDS=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SYS_I2C_SLAVE=0x7f
 CONFIG_SYS_I2C_SPEED=400000
index a05876a..6978f8b 100644 (file)
@@ -14,9 +14,7 @@ CONFIG_VIDEO_LCD_POWER="PH8"
 CONFIG_VIDEO_LCD_BL_EN="PH7"
 CONFIG_VIDEO_LCD_BL_PWM="PB2"
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SYS_I2C_SLAVE=0x7f
 CONFIG_SYS_I2C_SPEED=400000
index 3a9f308..2c8ecb5 100644 (file)
@@ -13,9 +13,7 @@ CONFIG_VIDEO_LCD_POWER="AXP0-0"
 CONFIG_VIDEO_LCD_BL_EN="AXP0-1"
 CONFIG_VIDEO_LCD_BL_PWM="PB2"
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SYS_I2C_SLAVE=0x7f
 CONFIG_SYS_I2C_SPEED=400000
index 664745c..9a90252 100644 (file)
@@ -17,8 +17,6 @@ CONFIG_VIDEO_LCD_BL_EN="PH6"
 CONFIG_VIDEO_LCD_BL_PWM="PH0"
 CONFIG_VIDEO_LCD_PANEL_LVDS=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_AXP_DLDO1_VOLT=3300
 # CONFIG_REQUIRE_SERIAL_CONSOLE is not set
 CONFIG_CONS_INDEX=5
index e50db01..c759d7e 100644 (file)
@@ -17,9 +17,7 @@ CONFIG_VIDEO_LCD_MODE="x:800,y:480,depth:24,pclk_khz:33000,le:45,ri:209,up:22,lo
 CONFIG_VIDEO_LCD_POWER="PH22"
 CONFIG_VIDEO_LCD_PANEL_LVDS=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_CMD_UNZIP=y
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SYS_I2C_SLAVE=0x7f
index dae6b23..f81120b 100644 (file)
@@ -14,9 +14,7 @@ CONFIG_VIDEO_LCD_BL_EN="PH7"
 CONFIG_VIDEO_LCD_BL_PWM="PB2"
 CONFIG_VIDEO_LCD_PANEL_LVDS=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SYS_I2C_SLAVE=0x7f
 CONFIG_SYS_I2C_SPEED=400000
index 0382a4a..3ade9fe 100644 (file)
@@ -16,8 +16,6 @@ CONFIG_VIDEO_LCD_POWER="PH7"
 CONFIG_VIDEO_LCD_BL_EN="PH6"
 CONFIG_VIDEO_LCD_BL_PWM="PH0"
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_AXP_DLDO1_VOLT=3300
 CONFIG_CONS_INDEX=5
 CONFIG_USB_MUSB_HOST=y
index f3e374c..d5d2dc3 100644 (file)
@@ -13,9 +13,7 @@ CONFIG_VIDEO_LCD_POWER="PH8"
 CONFIG_VIDEO_LCD_BL_EN="PH7"
 CONFIG_VIDEO_LCD_BL_PWM="PB2"
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SYS_I2C_SLAVE=0x7f
 CONFIG_SYS_I2C_SPEED=400000
index c392fc2..bd6c45b 100644 (file)
@@ -15,9 +15,7 @@ CONFIG_VIDEO_LCD_POWER="AXP0-0"
 CONFIG_VIDEO_LCD_BL_EN="AXP0-1"
 CONFIG_VIDEO_LCD_BL_PWM="PB2"
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SYS_I2C_SLAVE=0x7f
 CONFIG_SYS_I2C_SPEED=400000
index 81a1c99..4485f93 100644 (file)
@@ -13,9 +13,7 @@ CONFIG_VIDEO_LCD_POWER="PH8"
 CONFIG_VIDEO_LCD_BL_EN="PH7"
 CONFIG_VIDEO_LCD_BL_PWM="PB2"
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SYS_I2C_SLAVE=0x7f
 CONFIG_SYS_I2C_SPEED=400000
index a4a828c..1769256 100644 (file)
@@ -15,8 +15,6 @@ CONFIG_VIDEO_LCD_DCLK_PHASE=0
 CONFIG_VIDEO_LCD_BL_EN="PA25"
 CONFIG_VIDEO_LCD_BL_PWM="PH13"
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_AXP_DLDO1_VOLT=3300
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_OHCI_HCD=y
index 5fce583..0ff666b 100644 (file)
@@ -8,9 +8,7 @@ CONFIG_MACPWR="PH19"
 CONFIG_USB0_VBUS_PIN="PB9"
 CONFIG_VIDEO_COMPOSITE=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SYS_I2C_SLAVE=0x7f
 CONFIG_SYS_I2C_SPEED=400000
index ca99556..8725fe6 100644 (file)
@@ -6,8 +6,6 @@ CONFIG_MACH_SUN8I_H3=y
 CONFIG_DRAM_CLK=672
 CONFIG_MMC_SUNXI_SLOT_EXTRA=2
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SUN8I_EMAC=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_OHCI_HCD=y
index 7ca312c..5275fdc 100644 (file)
@@ -6,8 +6,6 @@ CONFIG_MACH_SUN8I_H3=y
 CONFIG_DRAM_CLK=672
 CONFIG_MMC_SUNXI_SLOT_EXTRA=2
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SUN8I_EMAC=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_OHCI_HCD=y
index 13ff758..9627401 100644 (file)
@@ -6,9 +6,6 @@ CONFIG_MACH_SUN50I_H5=y
 CONFIG_DRAM_CLK=672
 CONFIG_MMC_SUNXI_SLOT_EXTRA=2
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x54000
-CONFIG_SYS_PBSIZE=1024
-CONFIG_SYS_BOOTM_LEN=0x2000000
 CONFIG_SUN8I_EMAC=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_OHCI_HCD=y
index 75280ee..cb7ffb4 100644 (file)
@@ -7,9 +7,6 @@ CONFIG_DRAM_CLK=672
 CONFIG_MMC_SUNXI_SLOT_EXTRA=2
 CONFIG_SPL_SPI_SUNXI=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x54000
-CONFIG_SYS_PBSIZE=1024
-CONFIG_SYS_BOOTM_LEN=0x2000000
 CONFIG_SPI_FLASH_XMC=y
 CONFIG_SPI=y
 CONFIG_USB_EHCI_HCD=y
index f42747e..c3aa4b1 100644 (file)
@@ -7,9 +7,6 @@ CONFIG_DRAM_CLK=672
 CONFIG_MMC_SUNXI_SLOT_EXTRA=2
 CONFIG_SPL_SPI_SUNXI=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x54000
-CONFIG_SYS_PBSIZE=1024
-CONFIG_SYS_BOOTM_LEN=0x2000000
 CONFIG_SPI_FLASH_XMC=y
 CONFIG_SUN8I_EMAC=y
 CONFIG_SPI=y
index a9776bb..12a43c1 100644 (file)
@@ -1,7 +1,4 @@
 CONFIG_ARM=y
-CONFIG_SKIP_LOWLEVEL_INIT_ONLY=y
-CONFIG_SPL_SKIP_LOWLEVEL_INIT_ONLY=y
-CONFIG_SYS_DCACHE_OFF=y
 CONFIG_ARCH_SUNXI=y
 CONFIG_DEFAULT_DEVICE_TREE="suniv-f1c100s-licheepi-nano"
 CONFIG_SPL=y
@@ -10,8 +7,6 @@ CONFIG_DRAM_CLK=156
 CONFIG_DRAM_ZQ=0
 # CONFIG_VIDEO_SUNXI is not set
 CONFIG_SPL_SPI_SUNXI=y
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SPI_FLASH_WINBOND=y
 CONFIG_SPI_FLASH_XTX=y
 CONFIG_SPI=y
index 11e3dfc..0e4cdc4 100644 (file)
@@ -9,8 +9,6 @@ CONFIG_MMC_SUNXI_SLOT_EXTRA=2
 CONFIG_USB1_VBUS_PIN="PH24"
 CONFIG_USB2_VBUS_PIN=""
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_PHY_REALTEK=y
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_RGMII=y
index 3ce7e5f..21f7a6e 100644 (file)
@@ -7,9 +7,7 @@ CONFIG_DRAM_CLK=432
 CONFIG_DRAM_EMR1=0
 CONFIG_USB1_VBUS_PIN="PB10"
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SYS_I2C_SLAVE=0x7f
 CONFIG_SYS_I2C_SPEED=400000
index 0fd8d3a..416565e 100644 (file)
@@ -5,8 +5,6 @@ CONFIG_SPL=y
 CONFIG_MACH_SUN4I=y
 CONFIG_USB2_VBUS_PIN="PH12"
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SYS_I2C_SLAVE=0x7f
 CONFIG_SYS_I2C_SPEED=400000
index 942911b..965a9cd 100644 (file)
@@ -4,9 +4,7 @@ CONFIG_DEFAULT_DEVICE_TREE="sun4i-a10-mk802ii"
 CONFIG_SPL=y
 CONFIG_MACH_SUN4I=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SYS_I2C_SLAVE=0x7f
 CONFIG_SYS_I2C_SPEED=400000
index 226ccaa..70fc257 100644 (file)
@@ -5,9 +5,6 @@ CONFIG_SPL=y
 CONFIG_MACH_SUN50I=y
 CONFIG_RESERVE_ALLWINNER_BOOT0_HEADER=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x54000
-CONFIG_SYS_PBSIZE=1024
-CONFIG_SYS_BOOTM_LEN=0x2000000
 CONFIG_SUN8I_EMAC=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_OHCI_HCD=y
index 47a6b78..dc2dbd6 100644 (file)
@@ -5,7 +5,5 @@ CONFIG_SPL=y
 CONFIG_MACH_SUN8I_H3=y
 CONFIG_DRAM_CLK=408
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_OHCI_HCD=y
index c71d721..37b7817 100644 (file)
@@ -8,8 +8,6 @@ CONFIG_MACPWR="PD6"
 CONFIG_MMC0_CD_PIN="PH13"
 CONFIG_MMC_SUNXI_SLOT_EXTRA=2
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SUN8I_EMAC=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_OHCI_HCD=y
index 6fedf05..95dd56a 100644 (file)
@@ -7,9 +7,6 @@ CONFIG_DRAM_CLK=672
 CONFIG_DRAM_ZQ=3881977
 # CONFIG_DRAM_ODT_EN is not set
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x54000
-CONFIG_SYS_PBSIZE=1024
-CONFIG_SYS_BOOTM_LEN=0x2000000
 CONFIG_SUN8I_EMAC=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_OHCI_HCD=y
index b83b6a3..806d95c 100644 (file)
@@ -7,7 +7,5 @@ CONFIG_DRAM_CLK=408
 # CONFIG_VIDEO_DE2 is not set
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
 CONFIG_CONSOLE_MUX=y
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_OHCI_HCD=y
index f837753..c025519 100644 (file)
@@ -7,8 +7,6 @@ CONFIG_DRAM_CLK=408
 # CONFIG_VIDEO_DE2 is not set
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
 CONFIG_CONSOLE_MUX=y
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SUN8I_EMAC=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_OHCI_HCD=y
index 3f834b7..924ff38 100644 (file)
@@ -9,9 +9,6 @@ CONFIG_DRAM_ZQ=3881977
 CONFIG_MACPWR="PD6"
 CONFIG_MMC_SUNXI_SLOT_EXTRA=2
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x54000
-CONFIG_SYS_PBSIZE=1024
-CONFIG_SYS_BOOTM_LEN=0x2000000
 CONFIG_SUN8I_EMAC=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_OHCI_HCD=y
index a0cf8ff..27cf172 100644 (file)
@@ -9,9 +9,6 @@ CONFIG_DRAM_ZQ=3881977
 CONFIG_MACPWR="PD6"
 CONFIG_MMC_SUNXI_SLOT_EXTRA=2
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x54000
-CONFIG_SYS_PBSIZE=1024
-CONFIG_SYS_BOOTM_LEN=0x2000000
 CONFIG_SUN8I_EMAC=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_OHCI_HCD=y
index 1cd8e9f..7ce63ba 100644 (file)
@@ -10,9 +10,6 @@ CONFIG_DRAM_ZQ=3881949
 CONFIG_MMC0_CD_PIN=""
 CONFIG_SPL_SPI_SUNXI=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x54000
-CONFIG_SYS_PBSIZE=1024
-CONFIG_SYS_BOOTM_LEN=0x2000000
 CONFIG_SUN8I_EMAC=y
 CONFIG_SPI=y
 CONFIG_USB_EHCI_HCD=y
index e18b861..7aaa519 100644 (file)
@@ -7,9 +7,7 @@ CONFIG_MACH_SUN8I_H3=y
 CONFIG_DRAM_CLK=672
 CONFIG_USB1_VBUS_PIN="PG13"
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SPL_SYS_I2C_LEGACY=y
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SUN8I_EMAC=y
index dbca66d..ebecf49 100644 (file)
@@ -8,9 +8,6 @@ CONFIG_MMC0_CD_PIN="PF6"
 CONFIG_MMC_SUNXI_SLOT_EXTRA=2
 CONFIG_BLUETOOTH_DT_DEVICE_FIXUP="brcm,bcm4345c5"
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x118000
-CONFIG_SYS_PBSIZE=1024
-CONFIG_SYS_BOOTM_LEN=0x2000000
 CONFIG_PHY_SUN50I_USB3=y
 CONFIG_USB_XHCI_HCD=y
 CONFIG_USB_XHCI_DWC3=y
index 14c8806..75c97d6 100644 (file)
@@ -7,8 +7,5 @@ CONFIG_SUNXI_DRAM_H6_LPDDR3=y
 CONFIG_MMC0_CD_PIN="PF6"
 # CONFIG_PSCI_RESET is not set
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x118000
-CONFIG_SYS_PBSIZE=1024
-CONFIG_SYS_BOOTM_LEN=0x2000000
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_OHCI_HCD=y
index c717417..96bbd1b 100644 (file)
@@ -5,7 +5,5 @@ CONFIG_SPL=y
 CONFIG_MACH_SUN8I_H3=y
 CONFIG_DRAM_CLK=672
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_OHCI_HCD=y
index 112ff5e..1064b4a 100644 (file)
@@ -5,8 +5,6 @@ CONFIG_SPL=y
 CONFIG_MACH_SUN8I_H3=y
 CONFIG_DRAM_CLK=672
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SUN8I_EMAC=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_OHCI_HCD=y
index a433633..55a8b00 100644 (file)
@@ -7,8 +7,5 @@ CONFIG_SUNXI_DRAM_H6_LPDDR3=y
 CONFIG_MMC0_CD_PIN="PF6"
 # CONFIG_PSCI_RESET is not set
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x118000
-CONFIG_SYS_PBSIZE=1024
-CONFIG_SYS_BOOTM_LEN=0x2000000
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_OHCI_HCD=y
index d0cad2a..777af8c 100644 (file)
@@ -8,10 +8,7 @@ CONFIG_DRAM_ZQ=3881977
 CONFIG_MACPWR="PD6"
 CONFIG_SPL_SPI_SUNXI=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x54000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
-CONFIG_SYS_BOOTM_LEN=0x2000000
 CONFIG_SPL_SYS_I2C_LEGACY=y
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SPI_FLASH_MACRONIX=y
index 28107ad..905ff7b 100644 (file)
@@ -5,9 +5,7 @@ CONFIG_SPL=y
 CONFIG_MACH_SUN8I_H3=y
 CONFIG_DRAM_CLK=624
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SPL_SYS_I2C_LEGACY=y
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SUN8I_EMAC=y
index 3063867..f845138 100644 (file)
@@ -6,9 +6,7 @@ CONFIG_MACH_SUN8I_H3=y
 CONFIG_DRAM_CLK=624
 CONFIG_MMC_SUNXI_SLOT_EXTRA=2
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SPL_SYS_I2C_LEGACY=y
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SUN8I_EMAC=y
index 85b25dd..138a6a7 100644 (file)
@@ -7,9 +7,7 @@ CONFIG_DRAM_CLK=672
 CONFIG_MACPWR="PD6"
 CONFIG_MMC_SUNXI_SLOT_EXTRA=2
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SPL_SYS_I2C_LEGACY=y
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SUN8I_EMAC=y
index dff0a2f..76de72a 100644 (file)
@@ -9,9 +9,7 @@ CONFIG_MMC_SUNXI_SLOT_EXTRA=2
 CONFIG_USB1_VBUS_PIN="PG13"
 CONFIG_SATAPWR="PG11"
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SPL_SYS_I2C_LEGACY=y
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SUN8I_EMAC=y
index 690a5f1..95a82e2 100644 (file)
@@ -7,9 +7,6 @@ CONFIG_DRAM_CLK=672
 CONFIG_DRAM_ZQ=3881977
 # CONFIG_DRAM_ODT_EN is not set
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x54000
-CONFIG_SYS_PBSIZE=1024
-CONFIG_SYS_BOOTM_LEN=0x2000000
 CONFIG_SUN8I_EMAC=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_OHCI_HCD=y
index e15069c..4496aa4 100644 (file)
@@ -8,8 +8,6 @@ CONFIG_DRAM_CLK=624
 CONFIG_SPL_SPI_SUNXI=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
 CONFIG_CONSOLE_MUX=y
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SPI_FLASH_WINBOND=y
 CONFIG_SUN8I_EMAC=y
 CONFIG_SPI=y
index 7a9ca8e..3b78ad7 100644 (file)
@@ -7,9 +7,6 @@ CONFIG_RESERVE_ALLWINNER_BOOT0_HEADER=y
 CONFIG_MACPWR="PD14"
 CONFIG_SPL_SPI_SUNXI=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x54000
-CONFIG_SYS_PBSIZE=1024
-CONFIG_SYS_BOOTM_LEN=0x2000000
 CONFIG_SPI_FLASH_WINBOND=y
 CONFIG_PHY_REALTEK=y
 CONFIG_SUN8I_EMAC=y
index cad7a7b..ceef51b 100644 (file)
@@ -9,12 +9,9 @@ CONFIG_DRAM_SUN50I_H616_WRITE_TRAINING=y
 CONFIG_MACH_SUN50I_H616=y
 CONFIG_MMC0_CD_PIN="PF6"
 CONFIG_R_I2C_ENABLE=y
+CONFIG_SPL_SPI_SUNXI=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_MAX_SIZE=0xbfa0
-CONFIG_SPL_STACK=0x58000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
-CONFIG_SYS_BOOTM_LEN=0x2000000
 CONFIG_SPL_SYS_I2C_LEGACY=y
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SYS_I2C_SLAVE=0x7f
index b6de0b9..f7f3bfb 100644 (file)
@@ -8,8 +8,6 @@ CONFIG_DRAM_CLK=624
 CONFIG_SPL_SPI_SUNXI=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
 CONFIG_CONSOLE_MUX=y
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SPI_FLASH_MACRONIX=y
 CONFIG_SPI_FLASH_WINBOND=y
 CONFIG_SUN8I_EMAC=y
index 02f70cc..9583d24 100644 (file)
@@ -9,9 +9,6 @@ CONFIG_DRAM_ZQ=3881977
 CONFIG_MMC0_CD_PIN="PH13"
 CONFIG_MMC_SUNXI_SLOT_EXTRA=2
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x54000
-CONFIG_SYS_PBSIZE=1024
-CONFIG_SYS_BOOTM_LEN=0x2000000
 CONFIG_SUN8I_EMAC=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_OHCI_HCD=y
index b2d4f3f..55a2513 100644 (file)
@@ -8,8 +8,6 @@ CONFIG_DRAM_CLK=672
 CONFIG_MMC0_CD_PIN="PH13"
 CONFIG_MMC_SUNXI_SLOT_EXTRA=2
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SUN8I_EMAC=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_OHCI_HCD=y
index 1552095..f3ecf35 100644 (file)
@@ -7,9 +7,6 @@ CONFIG_DRAM_CLK=624
 CONFIG_DRAM_ZQ=3881977
 # CONFIG_DRAM_ODT_EN is not set
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x54000
-CONFIG_SYS_PBSIZE=1024
-CONFIG_SYS_BOOTM_LEN=0x2000000
 CONFIG_SUN8I_EMAC=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_OHCI_HCD=y
index 14e9b45..d56c450 100644 (file)
@@ -11,8 +11,6 @@ CONFIG_USB0_ID_DET="PD10"
 CONFIG_USB1_VBUS_PIN="PD12"
 CONFIG_AXP_GPIO=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_FASTBOOT_CMD_OEM_FORMAT=y
 CONFIG_CONS_INDEX=5
 CONFIG_USB_EHCI_HCD=y
index cfe02df..1a62f24 100644 (file)
@@ -42,6 +42,7 @@ CONFIG_CMD_CACHE=y
 CONFIG_CMD_TIME=y
 CONFIG_CMD_PMIC=y
 CONFIG_CMD_REGULATOR=y
+# CONFIG_SPL_PARTITIONS is not set
 # CONFIG_SPL_DOS_PARTITION is not set
 # CONFIG_SPL_EFI_PARTITION is not set
 CONFIG_SPL_OF_CONTROL=y
index 3f9ea1e..7e7c2d7 100644 (file)
@@ -10,9 +10,6 @@ CONFIG_MMC0_CD_PIN=""
 CONFIG_MMC_SUNXI_SLOT_EXTRA=2
 CONFIG_SPL_SPI_SUNXI=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x54000
-CONFIG_SYS_PBSIZE=1024
-CONFIG_SYS_BOOTM_LEN=0x2000000
 CONFIG_SUPPORT_EMMC_BOOT=y
 CONFIG_SPI_FLASH_WINBOND=y
 CONFIG_SUN8I_EMAC=y
index 62608f9..f42f4e5 100644 (file)
@@ -6,9 +6,6 @@ CONFIG_MACH_SUN50I=y
 CONFIG_RESERVE_ALLWINNER_BOOT0_HEADER=y
 CONFIG_PINE64_DT_SELECTION=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x54000
-CONFIG_SYS_PBSIZE=1024
-CONFIG_SYS_BOOTM_LEN=0x2000000
 CONFIG_OF_LIST="sun50i-a64-pine64 sun50i-a64-pine64-plus"
 CONFIG_PHY_REALTEK=y
 CONFIG_SUN8I_EMAC=y
index 2f511c8..09a4275 100644 (file)
@@ -11,9 +11,6 @@ CONFIG_USB3_VBUS_PIN="PL5"
 CONFIG_SPL_SPI_SUNXI=y
 # CONFIG_PSCI_RESET is not set
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x118000
-CONFIG_SYS_PBSIZE=1024
-CONFIG_SYS_BOOTM_LEN=0x2000000
 CONFIG_SUPPORT_EMMC_BOOT=y
 CONFIG_SPI_FLASH_WINBOND=y
 CONFIG_SUN8I_EMAC=y
index 982f681..26918dd 100644 (file)
@@ -8,9 +8,6 @@ CONFIG_DRAM_CLK=552
 CONFIG_DRAM_ZQ=3881949
 CONFIG_MMC_SUNXI_SLOT_EXTRA=2
 CONFIG_R_I2C_ENABLE=y
-CONFIG_SPL_STACK=0x54000
-CONFIG_SYS_PBSIZE=1024
-CONFIG_SYS_BOOTM_LEN=0x2000000
 CONFIG_SPL_SYS_I2C_LEGACY=y
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_DM_REGULATOR_FIXED=y
index 531cf0f..28e347b 100644 (file)
@@ -8,9 +8,7 @@ CONFIG_DRAM_CLK=504
 CONFIG_DRAM_ODT_EN=y
 CONFIG_I2C0_ENABLE=y
 # CONFIG_HAS_ARMV7_SECURE_BASE is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SPL_SYS_I2C_LEGACY=y
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SYS_I2C_SLAVE=0x7f
index 905b47d..9d39204 100644 (file)
@@ -10,9 +10,6 @@ CONFIG_DRAM_ZQ=3881949
 CONFIG_MMC_SUNXI_SLOT_EXTRA=2
 CONFIG_PINEPHONE_DT_SELECTION=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x54000
-CONFIG_SYS_PBSIZE=1024
-CONFIG_SYS_BOOTM_LEN=0x2000000
 CONFIG_OF_LIST="sun50i-a64-pinephone-1.1 sun50i-a64-pinephone-1.2"
 CONFIG_LED_STATUS=y
 CONFIG_LED_STATUS_GPIO=y
index e20d20a..0cc2414 100644 (file)
@@ -8,6 +8,3 @@ CONFIG_DRAM_CLK=552
 CONFIG_DRAM_ZQ=3881949
 CONFIG_MMC_SUNXI_SLOT_EXTRA=2
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x54000
-CONFIG_SYS_PBSIZE=1024
-CONFIG_SYS_BOOTM_LEN=0x2000000
index 74ffaf1..17fffeb 100644 (file)
@@ -16,8 +16,6 @@ CONFIG_VIDEO_LCD_POWER="PH7"
 CONFIG_VIDEO_LCD_BL_EN="PH6"
 CONFIG_VIDEO_LCD_BL_PWM="PH0"
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_AXP_DLDO1_VOLT=3300
 CONFIG_CONS_INDEX=5
 CONFIG_USB_MUSB_HOST=y
index 10057ad..e542b71 100644 (file)
@@ -16,8 +16,6 @@ CONFIG_VIDEO_LCD_POWER="PH7"
 CONFIG_VIDEO_LCD_BL_EN="PH6"
 CONFIG_VIDEO_LCD_BL_PWM="PH0"
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_AXP_DLDO1_VOLT=3300
 CONFIG_CONS_INDEX=5
 CONFIG_USB_MUSB_HOST=y
index 523de63..a62c9f8 100644 (file)
@@ -14,9 +14,7 @@ CONFIG_VIDEO_LCD_BL_EN="PH7"
 CONFIG_VIDEO_LCD_BL_PWM="PB2"
 CONFIG_VIDEO_LCD_PANEL_LVDS=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SYS_I2C_SLAVE=0x7f
 CONFIG_SYS_I2C_SPEED=400000
index 6acc442..34186d1 100644 (file)
@@ -7,9 +7,9 @@ CONFIG_SPL_GPIO=y
 CONFIG_NR_DRAM_BANKS=1
 CONFIG_ENV_OFFSET=0x3F8000
 CONFIG_DEFAULT_DEVICE_TREE="rk3399-puma-haikou"
-CONFIG_SPL_TEXT_BASE=0xff8c2000
 CONFIG_ROCKCHIP_RK3399=y
 CONFIG_ROCKCHIP_BOOT_MODE_REG=0x0
+CONFIG_ROCKCHIP_SPI_IMAGE=y
 CONFIG_TARGET_PUMA_RK3399=y
 CONFIG_DEBUG_UART_BASE=0xFF180000
 CONFIG_DEBUG_UART_CLOCK=24000000
@@ -31,12 +31,12 @@ CONFIG_SPL_BSS_MAX_SIZE=0x10000
 # CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
 CONFIG_SPL_STACK=0xff8effff
 CONFIG_SPL_STACK_R=y
-CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x4000
+CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x10000
 CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x200
 CONFIG_SPL_I2C=y
 CONFIG_SPL_POWER=y
 CONFIG_SPL_SPI_LOAD=y
-CONFIG_SYS_SPI_U_BOOT_OFFS=0x20000
+CONFIG_TPL=y
 CONFIG_CMD_BOOTZ=y
 CONFIG_CMD_GPT=y
 CONFIG_CMD_I2C=y
@@ -51,13 +51,18 @@ CONFIG_CMD_PMIC=y
 CONFIG_CMD_REGULATOR=y
 CONFIG_SPL_OF_CONTROL=y
 CONFIG_OF_LIVE=y
-CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
+CONFIG_OF_SPL_REMOVE_PROPS="interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
 CONFIG_ENV_OVERWRITE=y
+CONFIG_ENV_IS_NOWHERE=y
 CONFIG_ENV_IS_IN_MMC=y
+CONFIG_ENV_IS_IN_SPI_FLASH=y
+CONFIG_ENV_SPI_MAX_HZ=50000000
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_SYS_MMC_ENV_DEV=1
 CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
 CONFIG_SPL_DM_SEQ_ALIAS=y
+CONFIG_GPIO_HOG=y
+CONFIG_SPL_GPIO_HOG=y
 CONFIG_ROCKCHIP_GPIO=y
 CONFIG_SYS_I2C_ROCKCHIP=y
 CONFIG_MISC=y
@@ -80,10 +85,7 @@ CONFIG_PHY_ROCKCHIP_TYPEC=y
 CONFIG_DM_PMIC_FAN53555=y
 CONFIG_PMIC_RK8XX=y
 CONFIG_SPL_PMIC_RK8XX=y
-CONFIG_SPL_DM_REGULATOR=y
 CONFIG_REGULATOR_PWM=y
-CONFIG_SPL_DM_REGULATOR_FIXED=y
-CONFIG_DM_REGULATOR_GPIO=y
 CONFIG_REGULATOR_RK8XX=y
 CONFIG_PWM_ROCKCHIP=y
 CONFIG_DM_RESET=y
index 83981d3..f269b8a 100644 (file)
@@ -15,9 +15,7 @@ CONFIG_VIDEO_LCD_POWER="AXP0-0"
 CONFIG_VIDEO_LCD_BL_EN="AXP0-1"
 CONFIG_VIDEO_LCD_BL_PWM="PB2"
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SYS_I2C_SLAVE=0x7f
 CONFIG_SYS_I2C_SPEED=400000
index 11d208a..dda1a0c 100644 (file)
@@ -16,8 +16,6 @@ CONFIG_VIDEO_LCD_POWER="PH7"
 CONFIG_VIDEO_LCD_BL_EN="PH6"
 CONFIG_VIDEO_LCD_BL_PWM="PH0"
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_AXP_DLDO1_VOLT=3300
 CONFIG_CONS_INDEX=5
 CONFIG_USB_MUSB_HOST=y
index c848e62..7925677 100644 (file)
@@ -16,8 +16,6 @@ CONFIG_VIDEO_LCD_POWER="PH7"
 CONFIG_VIDEO_LCD_BL_EN="PH6"
 CONFIG_VIDEO_LCD_BL_PWM="PH0"
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_AXP_DLDO1_VOLT=3300
 CONFIG_CONS_INDEX=5
 CONFIG_USB_MUSB_HOST=y
index ee56541..f3335f9 100644 (file)
@@ -16,8 +16,6 @@ CONFIG_VIDEO_LCD_POWER="PH7"
 CONFIG_VIDEO_LCD_BL_EN="PH6"
 CONFIG_VIDEO_LCD_BL_PWM="PH0"
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_AXP_DLDO1_VOLT=3300
 CONFIG_CONS_INDEX=5
 CONFIG_USB_MUSB_HOST=y
index f5adbd3..8875a09 100644 (file)
@@ -6,9 +6,7 @@ CONFIG_MACH_SUN5I=y
 CONFIG_DRAM_CLK=384
 CONFIG_USB1_VBUS_PIN="PG13"
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SYS_I2C_SLAVE=0x7f
 CONFIG_SYS_I2C_SPEED=400000
index 55116f7..fbbef7a 100644 (file)
@@ -11,9 +11,6 @@ CONFIG_MMC0_CD_PIN=""
 CONFIG_MMC_SUNXI_SLOT_EXTRA=2
 CONFIG_SPL_SPI_SUNXI=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x54000
-CONFIG_SYS_PBSIZE=1024
-CONFIG_SYS_BOOTM_LEN=0x2000000
 CONFIG_SUPPORT_EMMC_BOOT=y
 CONFIG_SPI_FLASH_WINBOND=y
 CONFIG_SUN8I_EMAC=y
index 59315cd..a3b1d76 100644 (file)
@@ -9,8 +9,6 @@ CONFIG_USB0_VBUS_PIN="axp_drivebus"
 CONFIG_USB0_VBUS_DET="axp_vbus_detect"
 CONFIG_USB1_VBUS_PIN="PH7"
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_CONS_INDEX=5
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_OHCI_HCD=y
index b77c4e7..3fee7c2 100644 (file)
@@ -11,9 +11,7 @@ CONFIG_VIDEO_LCD_BL_EN="PH7"
 CONFIG_VIDEO_LCD_BL_PWM="PB2"
 CONFIG_VIDEO_LCD_PANEL_LVDS=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
 CONFIG_SPL_I2C=y
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_SYS_I2C_SLAVE=0x7f
 CONFIG_SYS_I2C_SPEED=400000
index 84dbf10..0390347 100644 (file)
@@ -8,6 +8,3 @@ CONFIG_DRAM_CLK=648
 CONFIG_MMC0_CD_PIN="PF6"
 CONFIG_MMC_SUNXI_SLOT_EXTRA=2
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x118000
-CONFIG_SYS_PBSIZE=1024
-CONFIG_SYS_BOOTM_LEN=0x2000000
index 3dd9252..b3c2e69 100644 (file)
@@ -13,8 +13,6 @@ CONFIG_USB0_VBUS_DET="AXP0-VBUS-DETECT"
 CONFIG_USB0_ID_DET="PH11"
 CONFIG_AXP_GPIO=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_FASTBOOT_CMD_OEM_FORMAT=y
 CONFIG_AXP_DCDC5_VOLT=1200
 CONFIG_USB_EHCI_HCD=y
index 6f202dc..e7de85e 100644 (file)
@@ -9,9 +9,6 @@ CONFIG_MMC_SUNXI_SLOT_EXTRA=2
 CONFIG_USB1_VBUS_PIN="PL7"
 CONFIG_I2C0_ENABLE=y
 CONFIG_PREBOOT="setenv usb_pgood_delay 2000; usb start"
-CONFIG_SPL_STACK=0x54000
-CONFIG_SYS_PBSIZE=1024
-CONFIG_SYS_BOOTM_LEN=0x2000000
 CONFIG_SPL_SYS_I2C_LEGACY=y
 CONFIG_SYS_I2C_MVTWSI=y
 CONFIG_DM_REGULATOR_FIXED=y
diff --git a/configs/x96_mate_defconfig b/configs/x96_mate_defconfig
new file mode 100644 (file)
index 0000000..4276f4f
--- /dev/null
@@ -0,0 +1,15 @@
+CONFIG_ARM=y
+CONFIG_ARCH_SUNXI=y
+CONFIG_DEFAULT_DEVICE_TREE="sun50i-h616-x96-mate"
+CONFIG_SPL=y
+CONFIG_DRAM_SUN50I_H616_READ_CALIBRATION=y
+CONFIG_MACH_SUN50I_H616=y
+CONFIG_MMC0_CD_PIN="PF6"
+CONFIG_R_I2C_ENABLE=y
+# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
+CONFIG_SPL_I2C=y
+CONFIG_SPL_SYS_I2C_LEGACY=y
+CONFIG_SYS_I2C_MVTWSI=y
+CONFIG_SYS_I2C_SLAVE=0x7f
+CONFIG_SYS_I2C_SPEED=400000
+CONFIG_SUPPORT_EMMC_BOOT=y
index 7d45440..11f3715 100644 (file)
@@ -8,8 +8,6 @@ CONFIG_MACPWR="PD6"
 # CONFIG_VIDEO_DE2 is not set
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
 CONFIG_CONSOLE_MUX=y
-CONFIG_SPL_STACK=0x8000
-CONFIG_SYS_PBSIZE=1024
 CONFIG_SUN8I_EMAC=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_OHCI_HCD=y
index b89c77b..2f96355 100644 (file)
@@ -505,7 +505,7 @@ struct clk *clk_get_parent(struct clk *clk)
        return pclk;
 }
 
-long long clk_get_parent_rate(struct clk *clk)
+ulong clk_get_parent_rate(struct clk *clk)
 {
        const struct clk_ops *ops;
        struct clk *pclk;
@@ -544,6 +544,19 @@ ulong clk_round_rate(struct clk *clk, ulong rate)
        return ops->round_rate(clk, rate);
 }
 
+static void clk_get_priv(struct clk *clk, struct clk **clkp)
+{
+       *clkp = clk;
+
+       /* get private clock struct associated to the provided clock */
+       if (CONFIG_IS_ENABLED(CLK_CCF)) {
+               /* Take id 0 as a non-valid clk, such as dummy */
+               if (clk->id)
+                       clk_get_by_id(clk->id, clkp);
+       }
+}
+
+/* clean cache, called with private clock struct */
 static void clk_clean_rate_cache(struct clk *clk)
 {
        struct udevice *child_dev;
@@ -563,6 +576,7 @@ static void clk_clean_rate_cache(struct clk *clk)
 ulong clk_set_rate(struct clk *clk, ulong rate)
 {
        const struct clk_ops *ops;
+       struct clk *clkp;
 
        debug("%s(clk=%p, rate=%lu)\n", __func__, clk, rate);
        if (!clk_valid(clk))
@@ -572,8 +586,10 @@ ulong clk_set_rate(struct clk *clk, ulong rate)
        if (!ops->set_rate)
                return -ENOSYS;
 
+       /* get private clock struct used for cache */
+       clk_get_priv(clk, &clkp);
        /* Clean up cached rates for us and all child clocks */
-       clk_clean_rate_cache(clk);
+       clk_clean_rate_cache(clkp);
 
        return ops->set_rate(clk, rate);
 }
index 1961efa..f7d3696 100644 (file)
@@ -846,7 +846,7 @@ again:
 
                error = DIV_ROUND_CLOSEST_ULL(f * inv_ratio, r * od);
                /* The lower 16 bits are spurious */
-               error = abs((error - BIT(32))) >> 16;
+               error = abs64((error - BIT_ULL(32))) >> 16;
 
                if (error < best_error) {
                        best->r = r;
index 8d2aaf5..09b97cf 100644 (file)
@@ -31,7 +31,7 @@ static struct rockchip_pll_rate_table rockchip_auto_table;
 #define RK3036_PLLCON1_DSMPD_SHIFT             12
 #define RK3036_PLLCON2_FRAC_MASK               0xffffff
 #define RK3036_PLLCON2_FRAC_SHIFT              0
-#define RK3036_PLLCON1_PWRDOWN_SHI           13
+#define RK3036_PLLCON1_PWRDOWN_SHIFT           13
 
 #define MHZ            1000000
 #define KHZ            1000
@@ -207,7 +207,7 @@ static int rk3036_pll_set_rate(struct rockchip_pll_clock *pll,
 
        /* Power down */
        rk_setreg(base + pll->con_offset + 0x4,
-                 1 << RK3036_PLLCON1_PWRDOWN_SHIT);
+                 1 << RK3036_PLLCON1_PWRDOWN_SHIFT);
 
        rk_clrsetreg(base + pll->con_offset,
                     (RK3036_PLLCON0_POSTDIV1_MASK |
@@ -231,7 +231,7 @@ static int rk3036_pll_set_rate(struct rockchip_pll_clock *pll,
 
        /* Power Up */
        rk_clrreg(base + pll->con_offset + 0x4,
-                 1 << RK3036_PLLCON1_PWRDOWN_SHIT);
+                 1 << RK3036_PLLCON1_PWRDOWN_SHIFT);
 
        /* waiting for pll lock */
        while (!(readl(base + pll->con_offset + 0x4) & (1 << pll->lock_shift)))
index 97bf1c6..eaeac45 100644 (file)
@@ -856,7 +856,7 @@ static ulong rk3399_ddr_set_clk(struct rockchip_cru *cru,
        switch (set_rate) {
        case 50 * MHz:
                dpll_cfg = (struct pll_div)
-               {.refdiv = 1, .fbdiv = 12, .postdiv1 = 3, .postdiv2 = 2};
+               {.refdiv = 2, .fbdiv = 75, .postdiv1 = 3, .postdiv2 = 6};
                break;
        case 200 * MHz:
                dpll_cfg = (struct pll_div)
index 9ce2bc1..061104b 100644 (file)
@@ -245,6 +245,7 @@ static const struct sunxi_pinctrl_function suniv_f1c100s_pinctrl_functions[] = {
 #else
        { "uart0",      5 },    /* PE0-PE1 */
 #endif
+       { "uart1",      5 },    /* PA0-PA3 */
 };
 
 static const struct sunxi_pinctrl_desc __maybe_unused suniv_f1c100s_pinctrl_desc = {
index c459bbf..c29d5e8 100644 (file)
@@ -23,7 +23,7 @@ config RAM_ROCKCHIP_DEBUG
          initialization, configurations and etc.
 
 config RAM_PX30_DDR4
-       bool "DDR3 support for Rockchip PX30"
+       bool "DDR4 support for Rockchip PX30"
        depends on RAM_ROCKCHIP && ROCKCHIP_PX30
        help
          This enables DDR4 sdram support instead of the default DDR3 support
index 407513e..138766b 100644 (file)
@@ -474,7 +474,7 @@ struct clk *clk_get_parent(struct clk *clk);
  *
  * Return: clock rate in Hz, or -ve error code.
  */
-long long clk_get_parent_rate(struct clk *clk);
+ulong clk_get_parent_rate(struct clk *clk);
 
 /**
  * clk_round_rate() - Adjust a rate to the exact rate a clock can provide
@@ -607,7 +607,7 @@ static inline struct clk *clk_get_parent(struct clk *clk)
        return ERR_PTR(-ENOSYS);
 }
 
-static inline long long clk_get_parent_rate(struct clk *clk)
+static inline ulong clk_get_parent_rate(struct clk *clk)
 {
        return -ENOSYS;
 }
index 0f0ef4f..fe90d55 100644 (file)
 #define FDTOVERLAY_ADDR_R __stringify(SDRAM_OFFSET(FE00000))
 #define RAMDISK_ADDR_R    __stringify(SDRAM_OFFSET(FF00000))
 
-#elif defined(CONFIG_MACH_SUN8I_V3S)
+#elif (CONFIG_SUNXI_MINIMUM_DRAM_MB >= 256)
+/*
+ * 160M RAM (256M minimum minus 64MB heap + 32MB for u-boot, stack, fb, etc.
+ * 32M uncompressed kernel, 16M compressed kernel, 1M fdt,
+ * 1M script, 1M pxe, 1M dt overlay and the ramdisk at the end.
+ */
+#define BOOTM_SIZE        __stringify(0xa000000)
+#define KERNEL_ADDR_R     __stringify(SDRAM_OFFSET(2000000))
+#define FDT_ADDR_R        __stringify(SDRAM_OFFSET(3000000))
+#define SCRIPT_ADDR_R     __stringify(SDRAM_OFFSET(3100000))
+#define PXEFILE_ADDR_R    __stringify(SDRAM_OFFSET(3200000))
+#define FDTOVERLAY_ADDR_R __stringify(SDRAM_OFFSET(3300000))
+#define RAMDISK_ADDR_R    __stringify(SDRAM_OFFSET(3400000))
+
+#elif (CONFIG_SUNXI_MINIMUM_DRAM_MB >= 64)
 /*
  * 64M RAM minus 2MB heap + 16MB for u-boot, stack, fb, etc.
  * 16M uncompressed kernel, 8M compressed kernel, 1M fdt,
 #define FDTOVERLAY_ADDR_R __stringify(SDRAM_OFFSET(1B00000))
 #define RAMDISK_ADDR_R    __stringify(SDRAM_OFFSET(1C00000))
 
-#elif defined(CONFIG_MACH_SUNIV)
+#elif (CONFIG_SUNXI_MINIMUM_DRAM_MB >= 32)
 /*
- * 32M RAM minus 1MB heap + 8MB for u-boot, stack, fb, etc.
- * 8M uncompressed kernel, 4M compressed kernel, 512K fdt,
- * 512K script, 512K pxe and the ramdisk at the end.
+ * 32M RAM minus 2.5MB for u-boot, heap, stack, etc.
+ * 16M uncompressed kernel, 7M compressed kernel, 128K fdt, 64K script,
+ * 128K DT overlay, 128K PXE and the ramdisk in the rest (max. 5MB)
  */
 #define BOOTM_SIZE        __stringify(0x1700000)
-#define KERNEL_ADDR_R     __stringify(SDRAM_OFFSET(0500000))
-#define FDT_ADDR_R        __stringify(SDRAM_OFFSET(0C00000))
-#define SCRIPT_ADDR_R     __stringify(SDRAM_OFFSET(0C50000))
-#define PXEFILE_ADDR_R    __stringify(SDRAM_OFFSET(0D00000))
-#define FDTOVERLAY_ADDR_R __stringify(SDRAM_OFFSET(0D50000))
-#define RAMDISK_ADDR_R    __stringify(SDRAM_OFFSET(0D60000))
+#define KERNEL_ADDR_R     __stringify(SDRAM_OFFSET(1000000))
+#define FDT_ADDR_R        __stringify(SDRAM_OFFSET(1d50000))
+#define SCRIPT_ADDR_R     __stringify(SDRAM_OFFSET(1d40000))
+#define PXEFILE_ADDR_R    __stringify(SDRAM_OFFSET(1d00000))
+#define FDTOVERLAY_ADDR_R __stringify(SDRAM_OFFSET(1d20000))
+#define RAMDISK_ADDR_R    __stringify(SDRAM_OFFSET(1800000))
 
 #else
-/*
- * 160M RAM (256M minimum minus 64MB heap + 32MB for u-boot, stack, fb, etc.
- * 32M uncompressed kernel, 16M compressed kernel, 1M fdt,
- * 1M script, 1M pxe, 1M dt overlay and the ramdisk at the end.
- */
-#define BOOTM_SIZE        __stringify(0xa000000)
-#define KERNEL_ADDR_R     __stringify(SDRAM_OFFSET(2000000))
-#define FDT_ADDR_R        __stringify(SDRAM_OFFSET(3000000))
-#define SCRIPT_ADDR_R     __stringify(SDRAM_OFFSET(3100000))
-#define PXEFILE_ADDR_R    __stringify(SDRAM_OFFSET(3200000))
-#define FDTOVERLAY_ADDR_R __stringify(SDRAM_OFFSET(3300000))
-#define RAMDISK_ADDR_R    __stringify(SDRAM_OFFSET(3400000))
+#error Need at least 32MB of DRAM. Please adjust load addresses.
 #endif
 
 #define MEM_LAYOUT_ENV_SETTINGS \
index 890368d..a96087a 100644 (file)
@@ -22,5 +22,6 @@
 #define CLK_W1                 12
 
 #define CLK_R_APB2_RSB         13
+#define CLK_R_APB1_RTC         14
 
 #endif /* _DT_BINDINGS_CLK_SUN50I_H6_R_CCU_H_ */
index 4fc08b0..1191aca 100644 (file)
 #define CLK_BUS_TVE0           125
 #define CLK_HDCP               126
 #define CLK_BUS_HDCP           127
+#define CLK_PLL_SYSTEM_32K     128
 
 #endif /* _DT_BINDINGS_CLK_SUN50I_H616_H_ */
diff --git a/include/dt-bindings/clock/sun6i-rtc.h b/include/dt-bindings/clock/sun6i-rtc.h
new file mode 100644 (file)
index 0000000..c845493
--- /dev/null
@@ -0,0 +1,10 @@
+/* SPDX-License-Identifier: (GPL-2.0+ or MIT) */
+
+#ifndef _DT_BINDINGS_CLK_SUN6I_RTC_H_
+#define _DT_BINDINGS_CLK_SUN6I_RTC_H_
+
+#define CLK_OSC32K             0
+#define CLK_OSC32K_FANOUT      1
+#define CLK_IOSC               2
+
+#endif /* _DT_BINDINGS_CLK_SUN6I_RTC_H_ */
diff --git a/include/dt-bindings/power/rk3568-power.h b/include/dt-bindings/power/rk3568-power.h
new file mode 100644 (file)
index 0000000..6cc1af1
--- /dev/null
@@ -0,0 +1,32 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef __DT_BINDINGS_POWER_RK3568_POWER_H__
+#define __DT_BINDINGS_POWER_RK3568_POWER_H__
+
+/* VD_CORE */
+#define RK3568_PD_CPU_0                0
+#define RK3568_PD_CPU_1                1
+#define RK3568_PD_CPU_2                2
+#define RK3568_PD_CPU_3                3
+#define RK3568_PD_CORE_ALIVE   4
+
+/* VD_PMU */
+#define RK3568_PD_PMU          5
+
+/* VD_NPU */
+#define RK3568_PD_NPU          6
+
+/* VD_GPU */
+#define RK3568_PD_GPU          7
+
+/* VD_LOGIC */
+#define RK3568_PD_VI           8
+#define RK3568_PD_VO           9
+#define RK3568_PD_RGA          10
+#define RK3568_PD_VPU          11
+#define RK3568_PD_CENTER       12
+#define RK3568_PD_RKVDEC       13
+#define RK3568_PD_RKVENC       14
+#define RK3568_PD_PIPE         15
+#define RK3568_PD_LOGIC_ALIVE  16
+
+#endif
index a0cc84c..354720f 100644 (file)
@@ -33,7 +33,7 @@ static int dm_test_k210_pll_calc_config(u32 rate, u32 rate_in,
                                error = DIV_ROUND_CLOSEST_ULL(f * inv_ratio,
                                                              r * od);
                                /* The lower 16 bits are spurious */
-                               error = abs((error - BIT(32))) >> 16;
+                               error = abs64((error - BIT_ULL(32))) >> 16;
                                if (error < best_error) {
                                        best->r = r;
                                        best->f = f;