[U-Boot] [PATCH] board: rockchip: rk3399: add Rockpro64 board support

Rockpro64 is rk3399 based board from pine64.org. add initial board support for Rockpro64. complete board support will be added later in upcoming patchsets.
Signed-off-by: Akash Gajjar akash@openedev.com --- arch/arm/dts/Makefile | 1 + arch/arm/dts/rk3399-rockpro64.dts | 519 +++++++ arch/arm/dts/rk3399-sdram-lpddr4-1600.dtsi | 1535 ++++++++++++++++++++ arch/arm/mach-rockchip/rk3399/Kconfig | 10 + board/rockchip/rockpro64/Kconfig | 15 + board/rockchip/rockpro64/MAINTAINERS | 6 + board/rockchip/rockpro64/Makefile | 7 + board/rockchip/rockpro64/rockpro64.c | 94 ++ configs/rockpro64-rk3399_defconfig | 78 + include/configs/rockpro64.h | 15 + 10 files changed, 2280 insertions(+) create mode 100644 arch/arm/dts/rk3399-rockpro64.dts create mode 100644 arch/arm/dts/rk3399-sdram-lpddr4-1600.dtsi create mode 100644 board/rockchip/rockpro64/Kconfig create mode 100644 board/rockchip/rockpro64/MAINTAINERS create mode 100644 board/rockchip/rockpro64/Makefile create mode 100644 board/rockchip/rockpro64/rockpro64.c create mode 100644 configs/rockpro64-rk3399_defconfig create mode 100644 include/configs/rockpro64.h
diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile index d36447d18d..8a84cf55a3 100644 --- a/arch/arm/dts/Makefile +++ b/arch/arm/dts/Makefile @@ -51,6 +51,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += \ rk3399-puma-ddr1333.dtb \ rk3399-puma-ddr1600.dtb \ rk3399-puma-ddr1866.dtb \ + rk3399-rockpro64.dtb \ rv1108-evb.dtb dtb-$(CONFIG_ARCH_MESON) += \ meson-gxbb-nanopi-k2.dtb \ diff --git a/arch/arm/dts/rk3399-rockpro64.dts b/arch/arm/dts/rk3399-rockpro64.dts new file mode 100644 index 0000000000..8497a1124b --- /dev/null +++ b/arch/arm/dts/rk3399-rockpro64.dts @@ -0,0 +1,519 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (c) 2018 Akash Gajjar akash@openedev.com + */ + +/dts-v1/; +#include <dt-bindings/pwm/pwm.h> +#include <dt-bindings/pinctrl/rockchip.h> +#include "rk3399.dtsi" +#include "rk3399-sdram-lpddr4-1600.dtsi" + +/ { + model = "Pine64 Rockpro64-RK3399 Board"; + compatible = "pine64,rockpro64", "rockchip,rk3399"; + + chosen { + stdout-path = &uart2; + u-boot,spl-boot-order = &sdhci, &sdmmc; + }; + + clkin_gmac: external-gmac-clock { + compatible = "fixed-clock"; + clock-frequency = <125000000>; + clock-output-names = "clkin_gmac"; + #clock-cells = <0>; + }; + + 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>; + }; + + vcc5v0_host: vcc5v0-host-regulator { + compatible = "regulator-fixed"; + enable-active-high; + gpio = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&host_vbus_drv>; + regulator-name = "vcc5v0_host"; + regulator-always-on; + }; + + 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>; + }; + + vcc_phy: vcc-phy-regulator { + compatible = "regulator-fixed"; + regulator-name = "vcc_phy"; + regulator-always-on; + regulator-boot-on; + }; + + vdd_log: vdd-log { + compatible = "pwm-regulator"; + pwms = <&pwm2 0 25000 1>; + regulator-name = "vdd_log"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <430000>; + regulator-max-microvolt = <1400000>; + regulator-init-microvolt = <950000>; + }; + + vccadc_ref: vccadc-ref { + compatible = "regulator-fixed"; + regulator-name = "vcc1v8_sys"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; +}; + +&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_phy>; + 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 = <0x33>; + rx_delay = <0x45>; + status = "okay"; +}; + +&i2c0 { + clock-frequency = <400000>; + i2c-scl-rising-time-ns = <168>; + i2c-scl-falling-time-ns = <4>; + status = "okay"; + + rk808: pmic@1b { + compatible = "rockchip,rk808"; + reg = <0x1b>; + interrupt-parent = <&gpio1>; + interrupts = <21 IRQ_TYPE_LEVEL_LOW>; + #clock-cells = <1>; + clock-output-names = "xin32k", "rk808-clkout2"; + pinctrl-names = "default"; + pinctrl-0 = <&pmic_int_l>; + rockchip,system-power-controller; + wakeup-source; + + vcc1-supply = <&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 = <&vcc1v8_pmu>; + + regulators { + vdd_center: DCDC_REG1 { + regulator-name = "vdd_center"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <750000>; + regulator-max-microvolt = <1350000>; + regulator-ramp-delay = <6001>; + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vdd_cpu_l: DCDC_REG2 { + regulator-name = "vdd_cpu_l"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <750000>; + regulator-max-microvolt = <1350000>; + regulator-ramp-delay = <6001>; + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vcc_ddr: DCDC_REG3 { + regulator-name = "vcc_ddr"; + regulator-always-on; + regulator-boot-on; + regulator-state-mem { + regulator-on-in-suspend; + }; + }; + + vcc_1v8: DCDC_REG4 { + regulator-name = "vcc_1v8"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <1800000>; + }; + }; + + vcc1v8_dvp: LDO_REG1 { + regulator-name = "vcc1v8_dvp"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vcc3v0_tp: LDO_REG2 { + regulator-name = "vcc3v0_tp"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vcc1v8_pmu: LDO_REG3 { + regulator-name = "vcc1v8_pmu"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <1800000>; + }; + }; + + vcc_sd: LDO_REG4 { + regulator-name = "vcc_sd"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3000000>; + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <3000000>; + }; + }; + + vcca3v0_codec: LDO_REG5 { + regulator-name = "vcca3v0_codec"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vcc_1v5: LDO_REG6 { + regulator-name = "vcc_1v5"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1500000>; + regulator-max-microvolt = <1500000>; + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <1500000>; + }; + }; + + vcca1v8_codec: LDO_REG7 { + regulator-name = "vcca1v8_codec"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vcc_3v0: LDO_REG8 { + regulator-name = "vcc_3v0"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <3000000>; + }; + }; + + vcc3v3_s3: 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 = <0>; + regulator-name = "vdd_cpu_b"; + regulator-min-microvolt = <712500>; + regulator-max-microvolt = <1500000>; + regulator-ramp-delay = <1000>; + regulator-always-on; + regulator-boot-on; + vin-supply = <&vcc5v0_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"; + regulator-min-microvolt = <712500>; + regulator-max-microvolt = <1500000>; + regulator-ramp-delay = <1000>; + regulator-always-on; + regulator-boot-on; + vin-supply = <&vcc5v0_sys>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; +}; + +&i2c1 { + i2c-scl-rising-time-ns = <300>; + i2c-scl-falling-time-ns = <15>; + status = "okay"; +}; + +&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"; +}; + +&i2s0 { + rockchip,playback-channels = <8>; + rockchip,capture-channels = <8>; + #sound-dai-cells = <0>; + status = "okay"; +}; + +&i2s1 { + rockchip,playback-channels = <2>; + rockchip,capture-channels = <2>; + #sound-dai-cells = <0>; + status = "okay"; +}; + +&i2s2 { + #sound-dai-cells = <0>; + status = "okay"; +}; + +&io_domains { + status = "okay"; + + bt656-supply = <&vcc1v8_dvp>; + audio-supply = <&vcca1v8_codec>; + sdmmc-supply = <&vcc_sd>; + gpio1830-supply = <&vcc_3v0>; +}; + +&pmu_io_domains { + pmu1830-supply = <&vcc_3v0>; + status = "okay"; +}; + +&pinctrl { + buttons { + pwrbtn: pwrbtn { + rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>; + }; + }; + + pmic { + vsel1_gpio: vsel1-gpio { + rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>; + }; + + vsel2_gpio: vsel2-gpio { + rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>; + }; + }; + + pmic { + pmic_int_l: pmic-int-l { + rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>; + }; + }; + + usb2 { + host_vbus_drv: host-vbus-drv { + rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; +}; + +&pwm0 { + status = "okay"; +}; + +&pwm2 { + status = "okay"; +}; + +&saradc { + vref-supply = <&vccadc_ref>; + status = "okay"; +}; + +&sdmmc { + u-boot,dm-pre-reloc; + bus-width = <4>; + status = "okay"; +}; + +&sdhci { + bus-width = <8>; + keep-power-in-suspend; + mmc-hs400-1_8v; + mmc-hs400-enhanced-strobe; + non-removable; + 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_host>; + status = "okay"; + }; +}; + +&u2phy1 { + status = "okay"; + + u2phy1_otg: otg-port { + status = "okay"; + }; + + u2phy1_host: host-port { + phy-supply = <&vcc5v0_host>; + status = "okay"; + }; +}; + +&uart0 { + pinctrl-names = "default"; + pinctrl-0 = <&uart0_xfer &uart0_cts>; + status = "okay"; +}; + +&uart2 { + status = "okay"; +}; + +&usb_host0_ehci { + status = "okay"; +}; + +&usb_host0_ohci { + status = "okay"; +}; + +&usb_host1_ehci { + status = "okay"; +}; + +&usb_host1_ohci { + status = "okay"; +}; diff --git a/arch/arm/dts/rk3399-sdram-lpddr4-1600.dtsi b/arch/arm/dts/rk3399-sdram-lpddr4-1600.dtsi new file mode 100644 index 0000000000..fa26e1cf01 --- /dev/null +++ b/arch/arm/dts/rk3399-sdram-lpddr4-1600.dtsi @@ -0,0 +1,1535 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * (C) Copyright 2018 Akash Gajjar akash@openedev.com + */ + +&dmc { + rockchip,sdram-params = < + 0x2 + 0xa + 0x3 + 0x2 + 0x2 + 0x0 + 0xf + 0xf + 1 + 0x80191519 + 0x14040808 + 0x00000002 + 0x00006226 + 0x0000004c + 0x00000000 + 0x2 + 0xa + 0x3 + 0x2 + 0x2 + 0x0 + 0xf + 0xf + 1 + 0x80191519 + 0x14040808 + 0x00000002 + 0x00006226 + 0x0000004c + 0x00000000 + 800 + 6 + 2 + 13 + 1 + 0x00000700 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000050 + 0x00027100 + 0x00000320 + 0x00001f40 + 0x00000050 + 0x00027100 + 0x00000320 + 0x00001f40 + 0x00000050 + 0x00027100 + 0x00000320 + 0x01001f40 + 0x00000000 + 0x00000101 + 0x00020100 + 0x000000a0 + 0x00000190 + 0x00000000 + 0x06180000 + 0x00061800 + 0x04000618 + 0x33080004 + 0x280f0622 + 0x22330800 + 0x00280f06 + 0x06223308 + 0x0600280f + 0x00000a0a + 0x0600dac0 + 0x0a0a060c + 0x0600dac0 + 0x0a0a060c + 0x0600dac0 + 0x0203000c + 0x0f0c0f00 + 0x040c0f0c + 0x14000a0a + 0x03030a0a + 0x00010003 + 0x031b1b1b + 0x00111111 + 0x00000000 + 0x03010000 + 0x0c2800a8 + 0x0c2800a8 + 0x0c2800a8 + 0x00000000 + 0x00060006 + 0x00140006 + 0x00140014 + 0x000f0f0f + 0x00000000 + 0x00000000 + 0x00000000 + 0x00b00000 + 0x00b000b0 + 0x00b000b0 + 0x000000b0 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000301 + 0x00000001 + 0x00000000 + 0x00000000 + 0x01000000 + 0x80104002 + 0x00040003 + 0x00040005 + 0x00030000 + 0x00050004 + 0x00000004 + 0x00040003 + 0x00040005 + 0x30a00000 + 0x00001850 + 0x185030a0 + 0x30a00000 + 0x00001850 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x02020200 + 0x00020202 + 0x00030200 + 0x00040700 + 0x00000302 + 0x02000407 + 0x00000003 + 0x00030f04 + 0x00070004 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00010000 + 0x20040020 + 0x00200400 + 0x01000400 + 0x00000b80 + 0x00000000 + 0x00000001 + 0x00000002 + 0x0000000e + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00a00000 + 0x00c80050 + 0x00c80000 + 0x005000a0 + 0x000000c8 + 0x00a000c8 + 0x00c80050 + 0x00c80000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00430000 + 0x0000001a + 0x001a0043 + 0x00430000 + 0x0000001a + 0x00010001 + 0x07000001 + 0x00000707 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00430000 + 0x0000001a + 0x001a0043 + 0x00430000 + 0x0000001a + 0x00010001 + 0x07000001 + 0x00000707 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x01000000 + 0x00000000 + 0x00000000 + 0x18151100 + 0x0000000c + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00032003 + 0x00480120 + 0x00000000 + 0x01200320 + 0x00000048 + 0x00032000 + 0x00480120 + 0x00000000 + 0x00280000 + 0x00280028 + 0x01010100 + 0x01000202 + 0x0a000002 + 0x01000f0f + 0x00000000 + 0x00000000 + 0x00010003 + 0x00000c03 + 0x00000100 + 0x00010000 + 0x01000000 + 0x00010000 + 0x00000001 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00010000 + 0x03030301 + 0x01010808 + 0x03030001 + 0x0a0a0a03 + 0x08080808 + 0x08050103 + 0x08050103 + 0x00050103 + 0x00020202 + 0x05020500 + 0x00020502 + 0x00000000 + 0x00000000 + 0x0d000001 + 0x00010028 + 0x00010000 + 0x00000003 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00010100 + 0x01000000 + 0x00000001 + 0x00000303 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x000556aa + 0x000aaaaa + 0x000aa955 + 0x00055555 + 0x000b3133 + 0x0004cd33 + 0x0004cecc + 0x000b32cc + 0x00010300 + 0x03000100 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00ffff00 + 0x1e1e0000 + 0x0800001e + 0x00001850 + 0x00000200 + 0x00000200 + 0x00000200 + 0x00000200 + 0x00001850 + 0x0000f320 + 0x1850050a + 0x00000200 + 0x00000200 + 0x00000200 + 0x00000200 + 0x00001850 + 0x0000f320 + 0x1850050a + 0x00000200 + 0x00000200 + 0x00000200 + 0x00000200 + 0x00001850 + 0x0000f320 + 0x0202050a + 0x03030202 + 0x00000018 + 0x00000000 + 0x00000000 + 0x00001403 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00030000 + 0x000e0020 + 0x000e0020 + 0x000e0020 + 0x00000000 + 0x00000000 + 0x01000000 + 0x00070007 + 0x00050007 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x01000101 + 0x01010101 + 0x01000101 + 0x01000100 + 0x00010001 + 0x00010002 + 0x00020100 + 0x00000002 + 0x00000700 + 0x00000000 + 0x000030a0 + 0x00001850 + 0x000030a0 + 0x00001850 + 0x000030a0 + 0x18501850 + 0x00000200 + 0x00000200 + 0x00000200 + 0x00000200 + 0x00001850 + 0x00000200 + 0x00000200 + 0x00000200 + 0x00000200 + 0x00001850 + 0x00000200 + 0x00000200 + 0x00000200 + 0x00000200 + 0x00010000 + 0x00000007 + 0x81000001 + 0x0f0003f0 + 0x3fffffff + 0x0f0000a0 + 0x377ff000 + 0x0f000020 + 0x377ff000 + 0x0f000030 + 0x377ff000 + 0x0f0000b0 + 0x377ff000 + 0x0f000100 + 0x377ff000 + 0x0f000110 + 0x377ff000 + 0x0f000010 + 0x377ff000 + 0x03000101 + 0x042e2e2e + 0x06180006 + 0x00061800 + 0x00000018 + 0x0c2800a8 + 0x0c2800a8 + 0x0c2800a8 + 0x00000500 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x04040000 + 0x0d000004 + 0x00000128 + 0x00000000 + 0x00030003 + 0x00000018 + 0x00000000 + 0x00000000 + 0x03060002 + 0x03010301 + 0x00080801 + 0x00020001 + 0x00080004 + 0x00000000 + 0x03030000 + 0x0a0a0a03 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00030300 + 0x00000014 + 0x00000000 + 0x01010300 + 0x00000000 + 0x00000000 + 0x01000000 + 0x00000101 + 0x55555a5a + 0x55555a5a + 0x55555a5a + 0x55555a5a + 0x0a0a0001 + 0x0505000a + 0x00000005 + 0x00000100 + 0x00030000 + 0x17030000 + 0x000e0020 + 0x000e0020 + 0x000e0020 + 0x00000000 + 0x00000000 + 0x00000100 + 0x140a0000 + 0x000a030a + 0x03000a03 + 0x010a000a + 0x00000100 + 0x01000000 + 0x00000000 + 0x00000100 + 0x1e1a0000 + 0x10010204 + 0x07070705 + 0x20000202 + 0x00201000 + 0x00201000 + 0x04041000 + 0x10100100 + 0x00010110 + 0x004b004a + 0x1a030000 + 0x0102041e + 0x34000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00004300 + 0x0001001a + 0x004d4d07 + 0x001a0043 + 0x4d070001 + 0x0000434d + 0x0001001a + 0x004d4d07 + 0x001a0043 + 0x4d070001 + 0x0000434d + 0x0001001a + 0x004d4d07 + 0x001a0043 + 0x4d070001 + 0x0043004d + 0x0001001a + 0x004d4d07 + 0x001a0043 + 0x4d070001 + 0x0000434d + 0x0001001a + 0x004d4d07 + 0x001a0043 + 0x4d070001 + 0x0000434d + 0x0001001a + 0x004d4d07 + 0x001a0043 + 0x4d070001 + 0x0100004d + 0x00c800c8 + 0x060400c8 + 0x0c060f11 + 0x2200d890 + 0x0a0c2005 + 0x0f11060a + 0x00000c06 + 0x2200d890 + 0x0a0c2005 + 0x0f11060a + 0x00000c06 + 0x2200d890 + 0x0a0c2005 + 0x0200020a + 0x02000200 + 0x02000200 + 0x02000200 + 0x02000200 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x01000300 + 0x00185000 + 0x0000f320 + 0x00001850 + 0x0000f320 + 0x00001850 + 0x0000f320 + 0x08000000 + 0x00000100 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000002 + 0x76543210 + 0x0004c008 + 0x000000b3 + 0x00000000 + 0x00000000 + 0x00010000 + 0x01665555 + 0x00665555 + 0x00010f00 + 0x05010200 + 0x00000003 + 0x001700c0 + 0x00cc0101 + 0x00030066 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x04080000 + 0x04080400 + 0x08000000 + 0x0c00c007 + 0x00000100 + 0x00000100 + 0x55555555 + 0xaaaaaaaa + 0x55555555 + 0xaaaaaaaa + 0x00005555 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00200000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x02700270 + 0x02700270 + 0x02700270 + 0x02700270 + 0x00000270 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00800000 + 0x00800080 + 0x00800080 + 0x00800080 + 0x00800080 + 0x00800080 + 0x00800080 + 0x00800080 + 0x00800080 + 0x00b30080 + 0x00000003 + 0x00000000 + 0x00020000 + 0x00000200 + 0x00000000 + 0x51315152 + 0xc0013150 + 0x020000c0 + 0x00100001 + 0x07054208 + 0x000f0c18 + 0x01000140 + 0x00000c20 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x76543210 + 0x0004c008 + 0x000000b3 + 0x00000000 + 0x00000000 + 0x00010000 + 0x01665555 + 0x00665555 + 0x00010f00 + 0x05010200 + 0x00000003 + 0x001700c0 + 0x00cc0101 + 0x00030066 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x04080000 + 0x04080400 + 0x08000000 + 0x0c00c007 + 0x00000100 + 0x00000100 + 0x55555555 + 0xaaaaaaaa + 0x55555555 + 0xaaaaaaaa + 0x00005555 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00200000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x02700270 + 0x02700270 + 0x02700270 + 0x02700270 + 0x00000270 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00800000 + 0x00800080 + 0x00800080 + 0x00800080 + 0x00800080 + 0x00800080 + 0x00800080 + 0x00800080 + 0x00800080 + 0x00b30080 + 0x00000003 + 0x00000000 + 0x00020000 + 0x00000200 + 0x00000000 + 0x51315152 + 0xc0013150 + 0x020000c0 + 0x00100001 + 0x07054208 + 0x000f0c18 + 0x01000140 + 0x00000c20 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x76543210 + 0x0004c008 + 0x000000b3 + 0x00000000 + 0x00000000 + 0x00010000 + 0x01665555 + 0x00665555 + 0x00010f00 + 0x05010200 + 0x00000003 + 0x001700c0 + 0x00cc0101 + 0x00030066 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x04080000 + 0x04080400 + 0x08000000 + 0x0c00c007 + 0x00000100 + 0x00000100 + 0x55555555 + 0xaaaaaaaa + 0x55555555 + 0xaaaaaaaa + 0x00005555 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00200000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x02700270 + 0x02700270 + 0x02700270 + 0x02700270 + 0x00000270 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00800000 + 0x00800080 + 0x00800080 + 0x00800080 + 0x00800080 + 0x00800080 + 0x00800080 + 0x00800080 + 0x00800080 + 0x00b30080 + 0x00000003 + 0x00000000 + 0x00020000 + 0x00000200 + 0x00000000 + 0x51315152 + 0xc0013150 + 0x020000c0 + 0x00100001 + 0x07054208 + 0x000f0c18 + 0x01000140 + 0x00000c20 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x76543210 + 0x0004c008 + 0x000000b3 + 0x00000000 + 0x00000000 + 0x00010000 + 0x01665555 + 0x00665555 + 0x00010f00 + 0x05010200 + 0x00000003 + 0x001700c0 + 0x00cc0101 + 0x00030066 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x04080000 + 0x04080400 + 0x08000000 + 0x0c00c007 + 0x00000100 + 0x00000100 + 0x55555555 + 0xaaaaaaaa + 0x55555555 + 0xaaaaaaaa + 0x00005555 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00200000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x02700270 + 0x02700270 + 0x02700270 + 0x02700270 + 0x00000270 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00800000 + 0x00800080 + 0x00800080 + 0x00800080 + 0x00800080 + 0x00800080 + 0x00800080 + 0x00800080 + 0x00800080 + 0x00b30080 + 0x00000003 + 0x00000000 + 0x00020000 + 0x00000200 + 0x00000000 + 0x51315152 + 0xc0013150 + 0x020000c0 + 0x00100001 + 0x07054208 + 0x000f0c18 + 0x01000140 + 0x00000c20 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00800000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000001 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00400320 + 0x00000040 + 0x00806420 + 0x00917531 + 0x00806420 + 0x01917531 + 0x00020003 + 0x00000000 + 0x00000000 + 0x00000000 + 0x000556aa + 0x000aaaaa + 0x000aa955 + 0x00055555 + 0x000b3133 + 0x0004cd33 + 0x0004cecc + 0x000b32cc + 0x0a418820 + 0x103f0000 + 0x0000003f + 0x00038055 + 0x03800380 + 0x03800380 + 0x00000380 + 0x42080010 + 0x00000003 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00800000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000001 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00400320 + 0x00000040 + 0x00008eca + 0x00009fdb + 0x00008eca + 0x01009fdb + 0x00020003 + 0x00000000 + 0x00000000 + 0x00000000 + 0x000556aa + 0x000aaaaa + 0x000aa955 + 0x00055555 + 0x000b3133 + 0x0004cd33 + 0x0004cecc + 0x000b32cc + 0x0004a0e6 + 0x080f0000 + 0x0000000f + 0x00038055 + 0x03800380 + 0x03800380 + 0x00000380 + 0x42080010 + 0x00000003 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00800000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000001 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00400320 + 0x00000040 + 0x00008eca + 0x00009fdb + 0x00008eca + 0x01009fdb + 0x00020003 + 0x00000000 + 0x00000000 + 0x00000000 + 0x000556aa + 0x000aaaaa + 0x000aa955 + 0x00055555 + 0x000b3133 + 0x0004cd33 + 0x0004cecc + 0x000b32cc + 0x1ee6b16a + 0x10000000 + 0x00000000 + 0x00038055 + 0x03800380 + 0x03800380 + 0x00000380 + 0x42080010 + 0x00000003 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000001 + 0x00000000 + 0x01000005 + 0x04000f00 + 0x00020040 + 0x00020055 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000050 + 0x00000000 + 0x00010100 + 0x00000601 + 0x00000000 + 0x00006400 + 0x01221102 + 0x00000000 + 0x00051f00 + 0x051f051f + 0x051f051f + 0x00030003 + 0x03000300 + 0x00000300 + 0x01221102 + 0x00000000 + 0x00000000 + 0x03020000 + 0x00000001 + 0x00000011 + 0x00000011 + 0x00000400 + 0x00000000 + 0x00000011 + 0x00000011 + 0x00004410 + 0x00004410 + 0x00004410 + 0x00004410 + 0x00004410 + 0x00000011 + 0x00004410 + 0x00000011 + 0x00004410 + 0x00000011 + 0x00004410 + 0x00000000 + 0x00000000 + 0x00000000 + 0x04000000 + 0x00000000 + 0x00000000 + 0x00000508 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0x00000000 + 0xe4000000 + 0x00000000 + 0x00000000 + 0x01010000 + 0x00000000 + >; +}; diff --git a/arch/arm/mach-rockchip/rk3399/Kconfig b/arch/arm/mach-rockchip/rk3399/Kconfig index 415466a49b..84e9d34800 100644 --- a/arch/arm/mach-rockchip/rk3399/Kconfig +++ b/arch/arm/mach-rockchip/rk3399/Kconfig @@ -28,6 +28,15 @@ config TARGET_PUMA_RK3399 * HDMI, eDP, MIPI-DSI, MIPI-DSI/CSI and MIPI-CSI * SPI, I2C, I2S, UART, GPIO, ...
+config TARGET_ROCKPRO64_RK3399 + bool "RK3399 Rockpro64" + help + The Rockpro64 is a RK3399 based board from pine64.org. + Rockpro64 has a LPDDR4 (2GB and 4GB variant), PCIex4, HDMI, MIPI-DSI, + MIPI-CSI, eDP, CSI parallel, SPI, I2C, I2S, UART, USB2.0, USB3.0, USB + Type C, es8316 codec, SPDIF out, SD, eMMC and WiFI module support on + board. + endchoice
config SYS_SOC @@ -37,6 +46,7 @@ config SYS_MALLOC_F_LEN default 0x0800
source "board/rockchip/evb_rk3399/Kconfig" +source "board/rockchip/rockpro64/Kconfig" source "board/theobroma-systems/puma_rk3399/Kconfig"
endif diff --git a/board/rockchip/rockpro64/Kconfig b/board/rockchip/rockpro64/Kconfig new file mode 100644 index 0000000000..9cc2a8c382 --- /dev/null +++ b/board/rockchip/rockpro64/Kconfig @@ -0,0 +1,15 @@ +if TARGET_ROCKPRO64_RK3399 + +config SYS_BOARD + default "rockpro64" + +config SYS_VENDOR + default "rockchip" + +config SYS_CONFIG_NAME + default "rockpro64" + +config BOARD_SPECIFIC_OPTIONS # dummy + def_bool y + +endif diff --git a/board/rockchip/rockpro64/MAINTAINERS b/board/rockchip/rockpro64/MAINTAINERS new file mode 100644 index 0000000000..66dccf67ec --- /dev/null +++ b/board/rockchip/rockpro64/MAINTAINERS @@ -0,0 +1,6 @@ +ROCKPRO64-RK3399 +M: Akash Gajjar akash@openedev.com +S: Maintained +F: board/rockchip/rockpro64 +F: include/configs/rockpro64.h +F: configs/rockpro64-rk3399_defconfig diff --git a/board/rockchip/rockpro64/Makefile b/board/rockchip/rockpro64/Makefile new file mode 100644 index 0000000000..3bbb808b59 --- /dev/null +++ b/board/rockchip/rockpro64/Makefile @@ -0,0 +1,7 @@ +# +# (C) Copyright 2018 Akash Gajjar akash@openedev.com +# +# SPDX-License-Identifier: GPL-2.0+ +# + +obj-y += rockpro64.o diff --git a/board/rockchip/rockpro64/rockpro64.c b/board/rockchip/rockpro64/rockpro64.c new file mode 100644 index 0000000000..74c7a56bd5 --- /dev/null +++ b/board/rockchip/rockpro64/rockpro64.c @@ -0,0 +1,94 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * (C) Copyright 2018 Akash Gajjar akash@openedev.com + */ + +#include <common.h> +#include <dm.h> +#include <dm/pinctrl.h> +#include <dm/uclass-internal.h> +#include <asm/arch/periph.h> +#include <power/regulator.h> +#include <spl.h> + +int board_init(void) +{ + struct udevice *pinctrl, *regulator; + int ret; + + /* + * The PWM do not have decicated interrupt number in dts and can + * not get periph_id by pinctrl framework, so let's init them here. + * The PWM2 and PWM3 are for pwm regulater. + */ + ret = uclass_get_device(UCLASS_PINCTRL, 0, &pinctrl); + if (ret) { + debug("%s: Cannot find pinctrl device\n", __func__); + goto out; + } + + /* Enable pwm0 for panel backlight */ + ret = pinctrl_request_noflags(pinctrl, PERIPH_ID_PWM0); + if (ret) { + debug("%s PWM0 pinctrl init fail! (ret=%d)\n", __func__, ret); + goto out; + } + + ret = pinctrl_request_noflags(pinctrl, PERIPH_ID_PWM2); + if (ret) { + debug("%s PWM2 pinctrl init fail!\n", __func__); + goto out; + } + + ret = pinctrl_request_noflags(pinctrl, PERIPH_ID_PWM3); + if (ret) { + debug("%s PWM3 pinctrl init fail!\n", __func__); + goto out; + } + + ret = regulators_enable_boot_on(false); + if (ret) + debug("%s: Cannot enable boot on regulator\n", __func__); + + ret = regulator_get_by_platname("vcc5v0_host", ®ulator); + if (ret) { + debug("%s vcc5v0_host init fail! ret %d\n", __func__, ret); + goto out; + } + + ret = regulator_set_enable(regulator, true); + if (ret) { + debug("%s vcc5v0-host-en set fail!\n", __func__); + goto out; + } + +out: + return 0; +} + +void spl_board_init(void) +{ + struct udevice *pinctrl; + int ret; + + ret = uclass_get_device(UCLASS_PINCTRL, 0, &pinctrl); + if (ret) { + debug("%s: Cannot find pinctrl device\n", __func__); + goto err; + } + + /* Enable debug UART */ + ret = pinctrl_request_noflags(pinctrl, PERIPH_ID_UART_DBG); + if (ret) { + debug("%s: Failed to set up console UART\n", __func__); + goto err; + } + + preloader_console_init(); + return; +err: + printf("%s: Error %d\n", __func__, ret); + + /* No way to report error here */ + hang(); +} diff --git a/configs/rockpro64-rk3399_defconfig b/configs/rockpro64-rk3399_defconfig new file mode 100644 index 0000000000..88422f2db4 --- /dev/null +++ b/configs/rockpro64-rk3399_defconfig @@ -0,0 +1,78 @@ +CONFIG_ARM=y +CONFIG_ARCH_ROCKCHIP=y +CONFIG_SYS_TEXT_BASE=0x00200000 +CONFIG_SPL_LIBCOMMON_SUPPORT=y +CONFIG_SPL_LIBGENERIC_SUPPORT=y +CONFIG_SYS_MALLOC_F_LEN=0x4000 +CONFIG_ROCKCHIP_RK3399=y +CONFIG_TARGET_ROCKPRO64_RK3399=y +CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x4000 +CONFIG_DEBUG_UART_BASE=0xFF1A0000 +CONFIG_DEBUG_UART_CLOCK=24000000 +CONFIG_SPL_STACK_R_ADDR=0x80000 +CONFIG_DEBUG_UART=y +CONFIG_NR_DRAM_BANKS=1 +CONFIG_FIT=y +CONFIG_SPL_LOAD_FIT=y +CONFIG_SPL_FIT_GENERATOR="arch/arm/mach-rockchip/make_fit_atf.py" +CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-rockpro64.dtb" +# CONFIG_DISPLAY_CPUINFO is not set +CONFIG_DISPLAY_BOARDINFO_LATE=y +CONFIG_SPL_STACK_R=y +CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x4000 +CONFIG_SPL_ATF=y +CONFIG_SPL_ATF_NO_PLATFORM_PARAM=y +CONFIG_CMD_BOOTZ=y +CONFIG_CMD_GPT=y +CONFIG_CMD_MMC=y +CONFIG_CMD_SF=y +CONFIG_CMD_USB=y +# CONFIG_CMD_SETEXPR is not set +CONFIG_CMD_TIME=y +CONFIG_SPL_OF_CONTROL=y +CONFIG_DEFAULT_DEVICE_TREE="rk3399-rockpro64" +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_REGMAP=y +CONFIG_SPL_REGMAP=y +CONFIG_SYSCON=y +CONFIG_SPL_SYSCON=y +CONFIG_CLK=y +CONFIG_SPL_CLK=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_DM_ETH=y +CONFIG_ETH_DESIGNWARE=y +CONFIG_GMAC_ROCKCHIP=y +CONFIG_PINCTRL=y +CONFIG_SPL_PINCTRL=y +CONFIG_PINCTRL_ROCKCHIP_RK3399=y +CONFIG_DM_PMIC=y +CONFIG_PMIC_RK8XX=y +CONFIG_REGULATOR_PWM=y +CONFIG_DM_REGULATOR_FIXED=y +CONFIG_REGULATOR_RK8XX=y +CONFIG_PWM_ROCKCHIP=y +CONFIG_RAM=y +CONFIG_SPL_RAM=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_USB_STORAGE=y +CONFIG_USB_HOST_ETHER=y +CONFIG_USB_ETHER_ASIX=y +CONFIG_USB_ETHER_ASIX88179=y +CONFIG_USB_ETHER_MCS7830=y +CONFIG_USB_ETHER_RTL8152=y +CONFIG_USB_ETHER_SMSC95XX=y +CONFIG_USE_TINY_PRINTF=y +CONFIG_ERRNO_STR=y diff --git a/include/configs/rockpro64.h b/include/configs/rockpro64.h new file mode 100644 index 0000000000..1a7e850c94 --- /dev/null +++ b/include/configs/rockpro64.h @@ -0,0 +1,15 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/* + * (C) Copyright 2018 Akash Gajjar akash@openedev.com + */ + +#ifndef __ROCKPRO64_RK3399_H +#define __ROCKPRO64_RK3399_H + +#include <configs/rk3399_common.h> + +#define CONFIG_SYS_MMC_ENV_DEV 1 + +#define SDRAM_BANK_SIZE (2UL << 30) + +#endif

On 03/11/18 4:58 PM, Akash Gajjar wrote:
Rockpro64 is rk3399 based board from pine64.org. add initial board support for Rockpro64. complete board support will be added later in upcoming patchsets.
Signed-off-by: Akash Gajjar akash@openedev.com
arch/arm/dts/Makefile | 1 + arch/arm/dts/rk3399-rockpro64.dts | 519 +++++++
Does it pure Linux sync file? if yes mention the commit id details on commit message.
arch/arm/dts/rk3399-sdram-lpddr4-1600.dtsi | 1535 ++++++++++++++++++++
Send this separately, more convenient to review ddr changes separately.
arch/arm/mach-rockchip/rk3399/Kconfig | 10 + board/rockchip/rockpro64/Kconfig | 15 + board/rockchip/rockpro64/MAINTAINERS | 6 + board/rockchip/rockpro64/Makefile | 7 + board/rockchip/rockpro64/rockpro64.c | 94 ++ configs/rockpro64-rk3399_defconfig | 78 + include/configs/rockpro64.h | 15 + 10 files changed, 2280 insertions(+) create mode 100644 arch/arm/dts/rk3399-rockpro64.dts create mode 100644 arch/arm/dts/rk3399-sdram-lpddr4-1600.dtsi create mode 100644 board/rockchip/rockpro64/Kconfig create mode 100644 board/rockchip/rockpro64/MAINTAINERS create mode 100644 board/rockchip/rockpro64/Makefile create mode 100644 board/rockchip/rockpro64/rockpro64.c create mode 100644 configs/rockpro64-rk3399_defconfig create mode 100644 include/configs/rockpro64.h
diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile index d36447d18d..8a84cf55a3 100644 --- a/arch/arm/dts/Makefile +++ b/arch/arm/dts/Makefile @@ -51,6 +51,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += \ rk3399-puma-ddr1333.dtb \ rk3399-puma-ddr1600.dtb \ rk3399-puma-ddr1866.dtb \
- rk3399-rockpro64.dtb \ rv1108-evb.dtb dtb-$(CONFIG_ARCH_MESON) += \ meson-gxbb-nanopi-k2.dtb \
diff --git a/arch/arm/dts/rk3399-rockpro64.dts b/arch/arm/dts/rk3399-rockpro64.dts new file mode 100644 index 0000000000..8497a1124b --- /dev/null +++ b/arch/arm/dts/rk3399-rockpro64.dts @@ -0,0 +1,519 @@ +// SPDX-License-Identifier: GPL-2.0+ +/*
- Copyright (c) 2018 Akash Gajjar akash@openedev.com
- */
+/dts-v1/; +#include <dt-bindings/pwm/pwm.h> +#include <dt-bindings/pinctrl/rockchip.h> +#include "rk3399.dtsi" +#include "rk3399-sdram-lpddr4-1600.dtsi"
if this change related to u-boot, just sync Linux dts file and create -u-boot.dtsi and include this on that.
Just to understand, what has been tested with this support?

Hi Jagan,
On 05/11/18 12:40 PM, Jagan Teki wrote:
On 03/11/18 4:58 PM, Akash Gajjar wrote:
Rockpro64 is rk3399 based board from pine64.org. add initial board support for Rockpro64. complete board support will be added later in upcoming patchsets.
Signed-off-by: Akash Gajjar akash@openedev.com
arch/arm/dts/Makefile | 1 + arch/arm/dts/rk3399-rockpro64.dts | 519 +++++++
Does it pure Linux sync file? if yes mention the commit id details on commit message.
Nope, it is not pure Linux sync file. though dts support is queued for Linux 4.20.
arch/arm/dts/rk3399-sdram-lpddr4-1600.dtsi | 1535 ++++++++++++++++++++
Send this separately, more convenient to review ddr changes separately.
Will do this in v2 changes.
arch/arm/mach-rockchip/rk3399/Kconfig | 10 + board/rockchip/rockpro64/Kconfig | 15 + board/rockchip/rockpro64/MAINTAINERS | 6 + board/rockchip/rockpro64/Makefile | 7 + board/rockchip/rockpro64/rockpro64.c | 94 ++ configs/rockpro64-rk3399_defconfig | 78 + include/configs/rockpro64.h | 15 + 10 files changed, 2280 insertions(+) create mode 100644 arch/arm/dts/rk3399-rockpro64.dts create mode 100644 arch/arm/dts/rk3399-sdram-lpddr4-1600.dtsi create mode 100644 board/rockchip/rockpro64/Kconfig create mode 100644 board/rockchip/rockpro64/MAINTAINERS create mode 100644 board/rockchip/rockpro64/Makefile create mode 100644 board/rockchip/rockpro64/rockpro64.c create mode 100644 configs/rockpro64-rk3399_defconfig create mode 100644 include/configs/rockpro64.h
diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile index d36447d18d..8a84cf55a3 100644 --- a/arch/arm/dts/Makefile +++ b/arch/arm/dts/Makefile @@ -51,6 +51,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += \ rk3399-puma-ddr1333.dtb \ rk3399-puma-ddr1600.dtb \ rk3399-puma-ddr1866.dtb \ + rk3399-rockpro64.dtb \ rv1108-evb.dtb dtb-$(CONFIG_ARCH_MESON) += \ meson-gxbb-nanopi-k2.dtb \ diff --git a/arch/arm/dts/rk3399-rockpro64.dts b/arch/arm/dts/rk3399-rockpro64.dts new file mode 100644 index 0000000000..8497a1124b --- /dev/null +++ b/arch/arm/dts/rk3399-rockpro64.dts @@ -0,0 +1,519 @@ +// SPDX-License-Identifier: GPL-2.0+ +/*
- Copyright (c) 2018 Akash Gajjar akash@openedev.com
- */
+/dts-v1/; +#include <dt-bindings/pwm/pwm.h> +#include <dt-bindings/pinctrl/rockchip.h> +#include "rk3399.dtsi" +#include "rk3399-sdram-lpddr4-1600.dtsi"
if this change related to u-boot, just sync Linux dts file and create -u-boot.dtsi and include this on that.
Just to understand, what has been tested with this support?
This initial phase patchsets are just to notify community that board support is in progress.
In V2 changes will add complete support of u-boot for Rockpro64.

On 05.11.18 08:42, akash wrote:
Hi Jagan,
On 05/11/18 12:40 PM, Jagan Teki wrote:
On 03/11/18 4:58 PM, Akash Gajjar wrote:
Rockpro64 is rk3399 based board from pine64.org. add initial board support for Rockpro64. complete board support will be added later in upcoming patchsets.
Signed-off-by: Akash Gajjar akash@openedev.com
arch/arm/dts/Makefile | 1 + arch/arm/dts/rk3399-rockpro64.dts | 519 +++++++
Does it pure Linux sync file? if yes mention the commit id details on commit message.
Nope, it is not pure Linux sync file. though dts support is queued for Linux 4.20.
Please make sure to reuse the Linux dts. That way we can in the distro boot path just not load yet another DT and simply reuse the U-Boot one. For stable SoCs (and rk3399 should be one of them) this has worked quite well in the past.
arch/arm/dts/rk3399-sdram-lpddr4-1600.dtsi | 1535 ++++++++++++++++++++
Send this separately, more convenient to review ddr changes separately.
Will do this in v2 changes.
arch/arm/mach-rockchip/rk3399/Kconfig | 10 + board/rockchip/rockpro64/Kconfig | 15 + board/rockchip/rockpro64/MAINTAINERS | 6 + board/rockchip/rockpro64/Makefile | 7 + board/rockchip/rockpro64/rockpro64.c | 94 ++ configs/rockpro64-rk3399_defconfig | 78 + include/configs/rockpro64.h | 15 + 10 files changed, 2280 insertions(+) create mode 100644 arch/arm/dts/rk3399-rockpro64.dts create mode 100644 arch/arm/dts/rk3399-sdram-lpddr4-1600.dtsi create mode 100644 board/rockchip/rockpro64/Kconfig create mode 100644 board/rockchip/rockpro64/MAINTAINERS create mode 100644 board/rockchip/rockpro64/Makefile create mode 100644 board/rockchip/rockpro64/rockpro64.c create mode 100644 configs/rockpro64-rk3399_defconfig create mode 100644 include/configs/rockpro64.h
diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile index d36447d18d..8a84cf55a3 100644 --- a/arch/arm/dts/Makefile +++ b/arch/arm/dts/Makefile @@ -51,6 +51,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += \ rk3399-puma-ddr1333.dtb \ rk3399-puma-ddr1600.dtb \ rk3399-puma-ddr1866.dtb \ + rk3399-rockpro64.dtb \ rv1108-evb.dtb dtb-$(CONFIG_ARCH_MESON) += \ meson-gxbb-nanopi-k2.dtb \ diff --git a/arch/arm/dts/rk3399-rockpro64.dts b/arch/arm/dts/rk3399-rockpro64.dts new file mode 100644 index 0000000000..8497a1124b --- /dev/null +++ b/arch/arm/dts/rk3399-rockpro64.dts @@ -0,0 +1,519 @@ +// SPDX-License-Identifier: GPL-2.0+ +/*
- Copyright (c) 2018 Akash Gajjar akash@openedev.com
- */
+/dts-v1/; +#include <dt-bindings/pwm/pwm.h> +#include <dt-bindings/pinctrl/rockchip.h> +#include "rk3399.dtsi" +#include "rk3399-sdram-lpddr4-1600.dtsi"
if this change related to u-boot, just sync Linux dts file and create -u-boot.dtsi and include this on that.
Just to understand, what has been tested with this support?
This initial phase patchsets are just to notify community that board support is in progress.
In V2 changes will add complete support of u-boot for Rockpro64.
When can we expect v2? The merge window is opening :)
Alex

On 14/11/18 01:10, Alexander Graf wrote:
On 05.11.18 08:42, akash wrote:
Hi Jagan,
On 05/11/18 12:40 PM, Jagan Teki wrote:
On 03/11/18 4:58 PM, Akash Gajjar wrote:
Rockpro64 is rk3399 based board from pine64.org. add initial board support for Rockpro64. complete board support will be added later in upcoming patchsets.
Signed-off-by: Akash Gajjar akash@openedev.com
arch/arm/dts/Makefile | 1 + arch/arm/dts/rk3399-rockpro64.dts | 519 +++++++
Does it pure Linux sync file? if yes mention the commit id details on commit message.
Nope, it is not pure Linux sync file. though dts support is queued for Linux 4.20.
Please make sure to reuse the Linux dts. That way we can in the distro boot path just not load yet another DT and simply reuse the U-Boot one. For stable SoCs (and rk3399 should be one of them) this has worked quite well in the past.
arch/arm/dts/rk3399-sdram-lpddr4-1600.dtsi | 1535 ++++++++++++++++++++
Send this separately, more convenient to review ddr changes separately.
Will do this in v2 changes.
arch/arm/mach-rockchip/rk3399/Kconfig | 10 + board/rockchip/rockpro64/Kconfig | 15 + board/rockchip/rockpro64/MAINTAINERS | 6 + board/rockchip/rockpro64/Makefile | 7 + board/rockchip/rockpro64/rockpro64.c | 94 ++ configs/rockpro64-rk3399_defconfig | 78 + include/configs/rockpro64.h | 15 + 10 files changed, 2280 insertions(+) create mode 100644 arch/arm/dts/rk3399-rockpro64.dts create mode 100644 arch/arm/dts/rk3399-sdram-lpddr4-1600.dtsi create mode 100644 board/rockchip/rockpro64/Kconfig create mode 100644 board/rockchip/rockpro64/MAINTAINERS create mode 100644 board/rockchip/rockpro64/Makefile create mode 100644 board/rockchip/rockpro64/rockpro64.c create mode 100644 configs/rockpro64-rk3399_defconfig create mode 100644 include/configs/rockpro64.h
diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile index d36447d18d..8a84cf55a3 100644 --- a/arch/arm/dts/Makefile +++ b/arch/arm/dts/Makefile @@ -51,6 +51,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += \ rk3399-puma-ddr1333.dtb \ rk3399-puma-ddr1600.dtb \ rk3399-puma-ddr1866.dtb \ + rk3399-rockpro64.dtb \ rv1108-evb.dtb dtb-$(CONFIG_ARCH_MESON) += \ meson-gxbb-nanopi-k2.dtb \ diff --git a/arch/arm/dts/rk3399-rockpro64.dts b/arch/arm/dts/rk3399-rockpro64.dts new file mode 100644 index 0000000000..8497a1124b --- /dev/null +++ b/arch/arm/dts/rk3399-rockpro64.dts @@ -0,0 +1,519 @@ +// SPDX-License-Identifier: GPL-2.0+ +/*
- Copyright (c) 2018 Akash Gajjar akash@openedev.com
- */
+/dts-v1/; +#include <dt-bindings/pwm/pwm.h> +#include <dt-bindings/pinctrl/rockchip.h> +#include "rk3399.dtsi" +#include "rk3399-sdram-lpddr4-1600.dtsi"
if this change related to u-boot, just sync Linux dts file and create -u-boot.dtsi and include this on that.
Just to understand, what has been tested with this support?
This initial phase patchsets are just to notify community that board support is in progress.
In V2 changes will add complete support of u-boot for Rockpro64.
When can we expect v2? The merge window is opening :)
Hi Alex,
I took little long to update the status of this development.
Firmware provided by Rock-chip bringing up the DDR4 and starting it with 50Mhz, 400Mhz, and 800Mhz respectively. Long ago I have extracted parameters from rk3399_ddr_933MHz_v1.13.bin for 50Mhz, 400Mhz and 800Mhz. I tested those timing data and it fails in write leveling. I took hex-dump of DDR CTL, PHY and PI address from working U-boot and found similar parameters like hex-dump of DDR firmware with the difference in few parameters. but this plain parameters is not helpful as out of box bring up of lpddr4 ram, as the firmware itself tunes these parameters at runtime. As of now, so I have kept this task on hold until I arrange for the HW debugger.
Akash
Alex

Hi Akash,
You'd better add Philipp and Simon in CC for Rockchip SoC based patches,
because they are U-Boot rockchip maintainer, and I will be happy if you can
also CC me in the list for I may able to share some advice for patches.
Thanks, - Kever On 12/04/2018 02:39 PM, Akash Gajjar wrote:
On 14/11/18 01:10, Alexander Graf wrote:
On 05.11.18 08:42, akash wrote:
Hi Jagan,
On 05/11/18 12:40 PM, Jagan Teki wrote:
On 03/11/18 4:58 PM, Akash Gajjar wrote:
Rockpro64 is rk3399 based board from pine64.org. add initial board support for Rockpro64. complete board support will be added later in upcoming patchsets.
Signed-off-by: Akash Gajjar akash@openedev.com
arch/arm/dts/Makefile | 1 + arch/arm/dts/rk3399-rockpro64.dts | 519 +++++++
Does it pure Linux sync file? if yes mention the commit id details on commit message.
Nope, it is not pure Linux sync file. though dts support is queued for Linux 4.20.
Please make sure to reuse the Linux dts. That way we can in the distro boot path just not load yet another DT and simply reuse the U-Boot one. For stable SoCs (and rk3399 should be one of them) this has worked quite well in the past.
arch/arm/dts/rk3399-sdram-lpddr4-1600.dtsi | 1535 ++++++++++++++++++++
Send this separately, more convenient to review ddr changes separately.
Will do this in v2 changes.
arch/arm/mach-rockchip/rk3399/Kconfig | 10 + board/rockchip/rockpro64/Kconfig | 15 + board/rockchip/rockpro64/MAINTAINERS | 6 + board/rockchip/rockpro64/Makefile | 7 + board/rockchip/rockpro64/rockpro64.c | 94 ++ configs/rockpro64-rk3399_defconfig | 78 + include/configs/rockpro64.h | 15 + 10 files changed, 2280 insertions(+) create mode 100644 arch/arm/dts/rk3399-rockpro64.dts create mode 100644 arch/arm/dts/rk3399-sdram-lpddr4-1600.dtsi create mode 100644 board/rockchip/rockpro64/Kconfig create mode 100644 board/rockchip/rockpro64/MAINTAINERS create mode 100644 board/rockchip/rockpro64/Makefile create mode 100644 board/rockchip/rockpro64/rockpro64.c create mode 100644 configs/rockpro64-rk3399_defconfig create mode 100644 include/configs/rockpro64.h
diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile index d36447d18d..8a84cf55a3 100644 --- a/arch/arm/dts/Makefile +++ b/arch/arm/dts/Makefile @@ -51,6 +51,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += \ rk3399-puma-ddr1333.dtb \ rk3399-puma-ddr1600.dtb \ rk3399-puma-ddr1866.dtb \ + rk3399-rockpro64.dtb \ rv1108-evb.dtb dtb-$(CONFIG_ARCH_MESON) += \ meson-gxbb-nanopi-k2.dtb \ diff --git a/arch/arm/dts/rk3399-rockpro64.dts b/arch/arm/dts/rk3399-rockpro64.dts new file mode 100644 index 0000000000..8497a1124b --- /dev/null +++ b/arch/arm/dts/rk3399-rockpro64.dts @@ -0,0 +1,519 @@ +// SPDX-License-Identifier: GPL-2.0+ +/*
- Copyright (c) 2018 Akash Gajjar akash@openedev.com
- */
+/dts-v1/; +#include <dt-bindings/pwm/pwm.h> +#include <dt-bindings/pinctrl/rockchip.h> +#include "rk3399.dtsi" +#include "rk3399-sdram-lpddr4-1600.dtsi"
if this change related to u-boot, just sync Linux dts file and create -u-boot.dtsi and include this on that.
Just to understand, what has been tested with this support?
This initial phase patchsets are just to notify community that board support is in progress.
In V2 changes will add complete support of u-boot for Rockpro64.
When can we expect v2? The merge window is opening :)
Hi Alex,
I took little long to update the status of this development.
Firmware provided by Rock-chip bringing up the DDR4 and starting it with 50Mhz, 400Mhz, and 800Mhz respectively. Long ago I have extracted parameters from rk3399_ddr_933MHz_v1.13.bin for 50Mhz, 400Mhz and 800Mhz. I tested those timing data and it fails in write leveling. I took hex-dump of DDR CTL, PHY and PI address from working U-boot and found similar parameters like hex-dump of DDR firmware with the difference in few parameters. but this plain parameters is not helpful as out of box bring up of lpddr4 ram, as the firmware itself tunes these parameters at runtime. As of now, so I have kept this task on hold until I arrange for the HW debugger.
Akash
Alex
U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot

On 03.11.18 12:28, Akash Gajjar wrote:
Rockpro64 is rk3399 based board from pine64.org. add initial board support for Rockpro64. complete board support will be added later in upcoming patchsets.
Signed-off-by: Akash Gajjar akash@openedev.com
[...]
diff --git a/board/rockchip/rockpro64/rockpro64.c b/board/rockchip/rockpro64/rockpro64.c new file mode 100644 index 0000000000..74c7a56bd5 --- /dev/null +++ b/board/rockchip/rockpro64/rockpro64.c @@ -0,0 +1,94 @@ +// SPDX-License-Identifier: GPL-2.0+ +/*
- (C) Copyright 2018 Akash Gajjar akash@openedev.com
Given the file is copied from another copyrighted file, you can not just go and replace the (c) with yours.
- */
+#include <common.h> +#include <dm.h> +#include <dm/pinctrl.h> +#include <dm/uclass-internal.h> +#include <asm/arch/periph.h> +#include <power/regulator.h> +#include <spl.h>
+int board_init(void) +{
- struct udevice *pinctrl, *regulator;
- int ret;
- /*
* The PWM do not have decicated interrupt number in dts and can
dedicated?
This whole file seems to just be a copy of board/rockchip/evb_rk3399/evb-rk3399.c. Maybe you can abstract and share code?
But please double check if what they do is actually necessary on RockPro64 first.
Alex
* not get periph_id by pinctrl framework, so let's init them here.
* The PWM2 and PWM3 are for pwm regulater.
*/
- ret = uclass_get_device(UCLASS_PINCTRL, 0, &pinctrl);
- if (ret) {
debug("%s: Cannot find pinctrl device\n", __func__);
goto out;
- }
- /* Enable pwm0 for panel backlight */
- ret = pinctrl_request_noflags(pinctrl, PERIPH_ID_PWM0);
- if (ret) {
debug("%s PWM0 pinctrl init fail! (ret=%d)\n", __func__, ret);
goto out;
- }
- ret = pinctrl_request_noflags(pinctrl, PERIPH_ID_PWM2);
- if (ret) {
debug("%s PWM2 pinctrl init fail!\n", __func__);
goto out;
- }
- ret = pinctrl_request_noflags(pinctrl, PERIPH_ID_PWM3);
- if (ret) {
debug("%s PWM3 pinctrl init fail!\n", __func__);
goto out;
- }
- ret = regulators_enable_boot_on(false);
- if (ret)
debug("%s: Cannot enable boot on regulator\n", __func__);
- ret = regulator_get_by_platname("vcc5v0_host", ®ulator);
- if (ret) {
debug("%s vcc5v0_host init fail! ret %d\n", __func__, ret);
goto out;
- }
- ret = regulator_set_enable(regulator, true);
- if (ret) {
debug("%s vcc5v0-host-en set fail!\n", __func__);
goto out;
- }
+out:
- return 0;
+}
+void spl_board_init(void) +{
- struct udevice *pinctrl;
- int ret;
- ret = uclass_get_device(UCLASS_PINCTRL, 0, &pinctrl);
- if (ret) {
debug("%s: Cannot find pinctrl device\n", __func__);
goto err;
- }
- /* Enable debug UART */
- ret = pinctrl_request_noflags(pinctrl, PERIPH_ID_UART_DBG);
- if (ret) {
debug("%s: Failed to set up console UART\n", __func__);
goto err;
- }
- preloader_console_init();
- return;
+err:
- printf("%s: Error %d\n", __func__, ret);
- /* No way to report error here */
- hang();
+} diff --git a/configs/rockpro64-rk3399_defconfig b/configs/rockpro64-rk3399_defconfig new file mode 100644 index 0000000000..88422f2db4 --- /dev/null +++ b/configs/rockpro64-rk3399_defconfig @@ -0,0 +1,78 @@ +CONFIG_ARM=y +CONFIG_ARCH_ROCKCHIP=y +CONFIG_SYS_TEXT_BASE=0x00200000 +CONFIG_SPL_LIBCOMMON_SUPPORT=y +CONFIG_SPL_LIBGENERIC_SUPPORT=y +CONFIG_SYS_MALLOC_F_LEN=0x4000 +CONFIG_ROCKCHIP_RK3399=y +CONFIG_TARGET_ROCKPRO64_RK3399=y +CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x4000 +CONFIG_DEBUG_UART_BASE=0xFF1A0000 +CONFIG_DEBUG_UART_CLOCK=24000000 +CONFIG_SPL_STACK_R_ADDR=0x80000 +CONFIG_DEBUG_UART=y +CONFIG_NR_DRAM_BANKS=1 +CONFIG_FIT=y +CONFIG_SPL_LOAD_FIT=y +CONFIG_SPL_FIT_GENERATOR="arch/arm/mach-rockchip/make_fit_atf.py" +CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-rockpro64.dtb" +# CONFIG_DISPLAY_CPUINFO is not set +CONFIG_DISPLAY_BOARDINFO_LATE=y +CONFIG_SPL_STACK_R=y +CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x4000 +CONFIG_SPL_ATF=y +CONFIG_SPL_ATF_NO_PLATFORM_PARAM=y +CONFIG_CMD_BOOTZ=y +CONFIG_CMD_GPT=y +CONFIG_CMD_MMC=y +CONFIG_CMD_SF=y +CONFIG_CMD_USB=y +# CONFIG_CMD_SETEXPR is not set +CONFIG_CMD_TIME=y +CONFIG_SPL_OF_CONTROL=y +CONFIG_DEFAULT_DEVICE_TREE="rk3399-rockpro64" +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_REGMAP=y +CONFIG_SPL_REGMAP=y +CONFIG_SYSCON=y +CONFIG_SPL_SYSCON=y +CONFIG_CLK=y +CONFIG_SPL_CLK=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_DM_ETH=y +CONFIG_ETH_DESIGNWARE=y +CONFIG_GMAC_ROCKCHIP=y +CONFIG_PINCTRL=y +CONFIG_SPL_PINCTRL=y +CONFIG_PINCTRL_ROCKCHIP_RK3399=y +CONFIG_DM_PMIC=y +CONFIG_PMIC_RK8XX=y +CONFIG_REGULATOR_PWM=y +CONFIG_DM_REGULATOR_FIXED=y +CONFIG_REGULATOR_RK8XX=y +CONFIG_PWM_ROCKCHIP=y +CONFIG_RAM=y +CONFIG_SPL_RAM=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_USB_STORAGE=y +CONFIG_USB_HOST_ETHER=y +CONFIG_USB_ETHER_ASIX=y +CONFIG_USB_ETHER_ASIX88179=y +CONFIG_USB_ETHER_MCS7830=y +CONFIG_USB_ETHER_RTL8152=y +CONFIG_USB_ETHER_SMSC95XX=y +CONFIG_USE_TINY_PRINTF=y +CONFIG_ERRNO_STR=y diff --git a/include/configs/rockpro64.h b/include/configs/rockpro64.h new file mode 100644 index 0000000000..1a7e850c94 --- /dev/null +++ b/include/configs/rockpro64.h @@ -0,0 +1,15 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/*
- (C) Copyright 2018 Akash Gajjar akash@openedev.com
- */
+#ifndef __ROCKPRO64_RK3399_H +#define __ROCKPRO64_RK3399_H
+#include <configs/rk3399_common.h>
+#define CONFIG_SYS_MMC_ENV_DEV 1
+#define SDRAM_BANK_SIZE (2UL << 30)
+#endif

Hi Alexander Graf,
On 11/14/2018 1:17 AM, Alexander Graf wrote:
On 03.11.18 12:28, Akash Gajjar wrote:
Rockpro64 is rk3399 based board from pine64.org. add initial board support for Rockpro64. complete board support will be added later in upcoming patchsets.
Signed-off-by: Akash Gajjar akash@openedev.com
[...]
diff --git a/board/rockchip/rockpro64/rockpro64.c b/board/rockchip/rockpro64/rockpro64.c new file mode 100644 index 0000000000..74c7a56bd5 --- /dev/null +++ b/board/rockchip/rockpro64/rockpro64.c @@ -0,0 +1,94 @@ +// SPDX-License-Identifier: GPL-2.0+ +/*
- (C) Copyright 2018 Akash Gajjar akash@openedev.com
Given the file is copied from another copyrighted file, you can not just go and replace the (c) with yours.
Thanks for correction, will add original copyrights.
- */
+#include <common.h> +#include <dm.h> +#include <dm/pinctrl.h> +#include <dm/uclass-internal.h> +#include <asm/arch/periph.h> +#include <power/regulator.h> +#include <spl.h>
+int board_init(void) +{
- struct udevice *pinctrl, *regulator;
- int ret;
- /*
* The PWM do not have decicated interrupt number in dts and can
dedicated?
This whole file seems to just be a copy of board/rockchip/evb_rk3399/evb-rk3399.c. Maybe you can abstract and share code?
But please double check if what they do is actually necessary on RockPro64 first.
yes, we have taken evb rk3399 bsp support for reference.
will add only necessary support in v2 patch-sets and submit in couple of days.
Alex
* not get periph_id by pinctrl framework, so let's init them here.
* The PWM2 and PWM3 are for pwm regulater.
*/
- ret = uclass_get_device(UCLASS_PINCTRL, 0, &pinctrl);
- if (ret) {
debug("%s: Cannot find pinctrl device\n", __func__);
goto out;
- }
- /* Enable pwm0 for panel backlight */
- ret = pinctrl_request_noflags(pinctrl, PERIPH_ID_PWM0);
- if (ret) {
debug("%s PWM0 pinctrl init fail! (ret=%d)\n", __func__, ret);
goto out;
- }
- ret = pinctrl_request_noflags(pinctrl, PERIPH_ID_PWM2);
- if (ret) {
debug("%s PWM2 pinctrl init fail!\n", __func__);
goto out;
- }
- ret = pinctrl_request_noflags(pinctrl, PERIPH_ID_PWM3);
- if (ret) {
debug("%s PWM3 pinctrl init fail!\n", __func__);
goto out;
- }
- ret = regulators_enable_boot_on(false);
- if (ret)
debug("%s: Cannot enable boot on regulator\n", __func__);
- ret = regulator_get_by_platname("vcc5v0_host", ®ulator);
- if (ret) {
debug("%s vcc5v0_host init fail! ret %d\n", __func__, ret);
goto out;
- }
- ret = regulator_set_enable(regulator, true);
- if (ret) {
debug("%s vcc5v0-host-en set fail!\n", __func__);
goto out;
- }
+out:
- return 0;
+}
+void spl_board_init(void) +{
- struct udevice *pinctrl;
- int ret;
- ret = uclass_get_device(UCLASS_PINCTRL, 0, &pinctrl);
- if (ret) {
debug("%s: Cannot find pinctrl device\n", __func__);
goto err;
- }
- /* Enable debug UART */
- ret = pinctrl_request_noflags(pinctrl, PERIPH_ID_UART_DBG);
- if (ret) {
debug("%s: Failed to set up console UART\n", __func__);
goto err;
- }
- preloader_console_init();
- return;
+err:
- printf("%s: Error %d\n", __func__, ret);
- /* No way to report error here */
- hang();
+} diff --git a/configs/rockpro64-rk3399_defconfig b/configs/rockpro64-rk3399_defconfig new file mode 100644 index 0000000000..88422f2db4 --- /dev/null +++ b/configs/rockpro64-rk3399_defconfig @@ -0,0 +1,78 @@ +CONFIG_ARM=y +CONFIG_ARCH_ROCKCHIP=y +CONFIG_SYS_TEXT_BASE=0x00200000 +CONFIG_SPL_LIBCOMMON_SUPPORT=y +CONFIG_SPL_LIBGENERIC_SUPPORT=y +CONFIG_SYS_MALLOC_F_LEN=0x4000 +CONFIG_ROCKCHIP_RK3399=y +CONFIG_TARGET_ROCKPRO64_RK3399=y +CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x4000 +CONFIG_DEBUG_UART_BASE=0xFF1A0000 +CONFIG_DEBUG_UART_CLOCK=24000000 +CONFIG_SPL_STACK_R_ADDR=0x80000 +CONFIG_DEBUG_UART=y +CONFIG_NR_DRAM_BANKS=1 +CONFIG_FIT=y +CONFIG_SPL_LOAD_FIT=y +CONFIG_SPL_FIT_GENERATOR="arch/arm/mach-rockchip/make_fit_atf.py" +CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-rockpro64.dtb" +# CONFIG_DISPLAY_CPUINFO is not set +CONFIG_DISPLAY_BOARDINFO_LATE=y +CONFIG_SPL_STACK_R=y +CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x4000 +CONFIG_SPL_ATF=y +CONFIG_SPL_ATF_NO_PLATFORM_PARAM=y +CONFIG_CMD_BOOTZ=y +CONFIG_CMD_GPT=y +CONFIG_CMD_MMC=y +CONFIG_CMD_SF=y +CONFIG_CMD_USB=y +# CONFIG_CMD_SETEXPR is not set +CONFIG_CMD_TIME=y +CONFIG_SPL_OF_CONTROL=y +CONFIG_DEFAULT_DEVICE_TREE="rk3399-rockpro64" +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_REGMAP=y +CONFIG_SPL_REGMAP=y +CONFIG_SYSCON=y +CONFIG_SPL_SYSCON=y +CONFIG_CLK=y +CONFIG_SPL_CLK=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_DM_ETH=y +CONFIG_ETH_DESIGNWARE=y +CONFIG_GMAC_ROCKCHIP=y +CONFIG_PINCTRL=y +CONFIG_SPL_PINCTRL=y +CONFIG_PINCTRL_ROCKCHIP_RK3399=y +CONFIG_DM_PMIC=y +CONFIG_PMIC_RK8XX=y +CONFIG_REGULATOR_PWM=y +CONFIG_DM_REGULATOR_FIXED=y +CONFIG_REGULATOR_RK8XX=y +CONFIG_PWM_ROCKCHIP=y +CONFIG_RAM=y +CONFIG_SPL_RAM=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_USB_STORAGE=y +CONFIG_USB_HOST_ETHER=y +CONFIG_USB_ETHER_ASIX=y +CONFIG_USB_ETHER_ASIX88179=y +CONFIG_USB_ETHER_MCS7830=y +CONFIG_USB_ETHER_RTL8152=y +CONFIG_USB_ETHER_SMSC95XX=y +CONFIG_USE_TINY_PRINTF=y +CONFIG_ERRNO_STR=y diff --git a/include/configs/rockpro64.h b/include/configs/rockpro64.h new file mode 100644 index 0000000000..1a7e850c94 --- /dev/null +++ b/include/configs/rockpro64.h @@ -0,0 +1,15 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/*
- (C) Copyright 2018 Akash Gajjar akash@openedev.com
- */
+#ifndef __ROCKPRO64_RK3399_H +#define __ROCKPRO64_RK3399_H
+#include <configs/rk3399_common.h>
+#define CONFIG_SYS_MMC_ENV_DEV 1
+#define SDRAM_BANK_SIZE (2UL << 30)
+#endif

Hi,
On Sat, 2018-11-03 at 16:58 +0530, Akash Gajjar wrote:
Rockpro64 is rk3399 based board from pine64.org. add initial board support for Rockpro64. complete board support will be added later in upcoming patchsets.
Thanks for contributing this initial support patchset!
Now that the dts has landed in Linux, do you have plans for making a new revision of this series?
I plan on using the board soon-ish and I'd like to get an upstream U- Boot + Linux setup on it, so I'm definitely interested in this series.
Feel free to let me know if I could help with anything when I get the board!
Cheers,
Paul
Signed-off-by: Akash Gajjar akash@openedev.com
arch/arm/dts/Makefile | 1 + arch/arm/dts/rk3399-rockpro64.dts | 519 +++++++ arch/arm/dts/rk3399-sdram-lpddr4-1600.dtsi | 1535 ++++++++++++++++++++ arch/arm/mach-rockchip/rk3399/Kconfig | 10 + board/rockchip/rockpro64/Kconfig | 15 + board/rockchip/rockpro64/MAINTAINERS | 6 + board/rockchip/rockpro64/Makefile | 7 + board/rockchip/rockpro64/rockpro64.c | 94 ++ configs/rockpro64-rk3399_defconfig | 78 + include/configs/rockpro64.h | 15 + 10 files changed, 2280 insertions(+) create mode 100644 arch/arm/dts/rk3399-rockpro64.dts create mode 100644 arch/arm/dts/rk3399-sdram-lpddr4-1600.dtsi create mode 100644 board/rockchip/rockpro64/Kconfig create mode 100644 board/rockchip/rockpro64/MAINTAINERS create mode 100644 board/rockchip/rockpro64/Makefile create mode 100644 board/rockchip/rockpro64/rockpro64.c create mode 100644 configs/rockpro64-rk3399_defconfig create mode 100644 include/configs/rockpro64.h
diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile index d36447d18d..8a84cf55a3 100644 --- a/arch/arm/dts/Makefile +++ b/arch/arm/dts/Makefile @@ -51,6 +51,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += \ rk3399-puma-ddr1333.dtb \ rk3399-puma-ddr1600.dtb \ rk3399-puma-ddr1866.dtb \
- rk3399-rockpro64.dtb \ rv1108-evb.dtb
dtb-$(CONFIG_ARCH_MESON) += \ meson-gxbb-nanopi-k2.dtb \ diff --git a/arch/arm/dts/rk3399-rockpro64.dts b/arch/arm/dts/rk3399-rockpro64.dts new file mode 100644 index 0000000000..8497a1124b --- /dev/null +++ b/arch/arm/dts/rk3399-rockpro64.dts @@ -0,0 +1,519 @@ +// SPDX-License-Identifier: GPL-2.0+ +/*
- Copyright (c) 2018 Akash Gajjar akash@openedev.com
- */
+/dts-v1/; +#include <dt-bindings/pwm/pwm.h> +#include <dt-bindings/pinctrl/rockchip.h> +#include "rk3399.dtsi" +#include "rk3399-sdram-lpddr4-1600.dtsi"
+/ {
- model = "Pine64 Rockpro64-RK3399 Board";
- compatible = "pine64,rockpro64", "rockchip,rk3399";
- chosen {
stdout-path = &uart2;
u-boot,spl-boot-order = &sdhci, &sdmmc;
- };
- clkin_gmac: external-gmac-clock {
compatible = "fixed-clock";
clock-frequency = <125000000>;
clock-output-names = "clkin_gmac";
#clock-cells = <0>;
- };
- 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>;
- };
- vcc5v0_host: vcc5v0-host-regulator {
compatible = "regulator-fixed";
enable-active-high;
gpio = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&host_vbus_drv>;
regulator-name = "vcc5v0_host";
regulator-always-on;
- };
- 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>;
- };
- vcc_phy: vcc-phy-regulator {
compatible = "regulator-fixed";
regulator-name = "vcc_phy";
regulator-always-on;
regulator-boot-on;
- };
- vdd_log: vdd-log {
compatible = "pwm-regulator";
pwms = <&pwm2 0 25000 1>;
regulator-name = "vdd_log";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <430000>;
regulator-max-microvolt = <1400000>;
regulator-init-microvolt = <950000>;
- };
- vccadc_ref: vccadc-ref {
compatible = "regulator-fixed";
regulator-name = "vcc1v8_sys";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
- };
+};
+&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_phy>;
- 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 = <0x33>;
- rx_delay = <0x45>;
- status = "okay";
+};
+&i2c0 {
- clock-frequency = <400000>;
- i2c-scl-rising-time-ns = <168>;
- i2c-scl-falling-time-ns = <4>;
- status = "okay";
- rk808: pmic@1b {
compatible = "rockchip,rk808";
reg = <0x1b>;
interrupt-parent = <&gpio1>;
interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
#clock-cells = <1>;
clock-output-names = "xin32k", "rk808-clkout2";
pinctrl-names = "default";
pinctrl-0 = <&pmic_int_l>;
rockchip,system-power-controller;
wakeup-source;
vcc1-supply = <&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 = <&vcc1v8_pmu>;
regulators {
vdd_center: DCDC_REG1 {
regulator-name = "vdd_center";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <750000>;
regulator-max-microvolt = <1350000>;
regulator-ramp-delay = <6001>;
regulator-state-mem {
regulator-off-in-suspend;
};
};
vdd_cpu_l: DCDC_REG2 {
regulator-name = "vdd_cpu_l";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <750000>;
regulator-max-microvolt = <1350000>;
regulator-ramp-delay = <6001>;
regulator-state-mem {
regulator-off-in-suspend;
};
};
vcc_ddr: DCDC_REG3 {
regulator-name = "vcc_ddr";
regulator-always-on;
regulator-boot-on;
regulator-state-mem {
regulator-on-in-suspend;
};
};
vcc_1v8: DCDC_REG4 {
regulator-name = "vcc_1v8";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-state-mem {
regulator-on-in-suspend;
regulator-suspend-microvolt = <1800000>;
};
};
vcc1v8_dvp: LDO_REG1 {
regulator-name = "vcc1v8_dvp";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-state-mem {
regulator-off-in-suspend;
};
};
vcc3v0_tp: LDO_REG2 {
regulator-name = "vcc3v0_tp";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
regulator-state-mem {
regulator-off-in-suspend;
};
};
vcc1v8_pmu: LDO_REG3 {
regulator-name = "vcc1v8_pmu";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-state-mem {
regulator-on-in-suspend;
regulator-suspend-microvolt = <1800000>;
};
};
vcc_sd: LDO_REG4 {
regulator-name = "vcc_sd";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3000000>;
regulator-state-mem {
regulator-on-in-suspend;
regulator-suspend-microvolt = <3000000>;
};
};
vcca3v0_codec: LDO_REG5 {
regulator-name = "vcca3v0_codec";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
regulator-state-mem {
regulator-off-in-suspend;
};
};
vcc_1v5: LDO_REG6 {
regulator-name = "vcc_1v5";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <1500000>;
regulator-max-microvolt = <1500000>;
regulator-state-mem {
regulator-on-in-suspend;
regulator-suspend-microvolt = <1500000>;
};
};
vcca1v8_codec: LDO_REG7 {
regulator-name = "vcca1v8_codec";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-state-mem {
regulator-off-in-suspend;
};
};
vcc_3v0: LDO_REG8 {
regulator-name = "vcc_3v0";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
regulator-state-mem {
regulator-on-in-suspend;
regulator-suspend-microvolt = <3000000>;
};
};
vcc3v3_s3: 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 = <0>;
regulator-name = "vdd_cpu_b";
regulator-min-microvolt = <712500>;
regulator-max-microvolt = <1500000>;
regulator-ramp-delay = <1000>;
regulator-always-on;
regulator-boot-on;
vin-supply = <&vcc5v0_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";
regulator-min-microvolt = <712500>;
regulator-max-microvolt = <1500000>;
regulator-ramp-delay = <1000>;
regulator-always-on;
regulator-boot-on;
vin-supply = <&vcc5v0_sys>;
regulator-state-mem {
regulator-off-in-suspend;
};
- };
+};
+&i2c1 {
- i2c-scl-rising-time-ns = <300>;
- i2c-scl-falling-time-ns = <15>;
- status = "okay";
+};
+&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";
+};
+&i2s0 {
- rockchip,playback-channels = <8>;
- rockchip,capture-channels = <8>;
- #sound-dai-cells = <0>;
- status = "okay";
+};
+&i2s1 {
- rockchip,playback-channels = <2>;
- rockchip,capture-channels = <2>;
- #sound-dai-cells = <0>;
- status = "okay";
+};
+&i2s2 {
- #sound-dai-cells = <0>;
- status = "okay";
+};
+&io_domains {
- status = "okay";
- bt656-supply = <&vcc1v8_dvp>;
- audio-supply = <&vcca1v8_codec>;
- sdmmc-supply = <&vcc_sd>;
- gpio1830-supply = <&vcc_3v0>;
+};
+&pmu_io_domains {
- pmu1830-supply = <&vcc_3v0>;
- status = "okay";
+};
+&pinctrl {
- buttons {
pwrbtn: pwrbtn {
rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
};
- };
- pmic {
vsel1_gpio: vsel1-gpio {
rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>;
};
vsel2_gpio: vsel2-gpio {
rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
};
- };
- pmic {
pmic_int_l: pmic-int-l {
rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
};
- };
- usb2 {
host_vbus_drv: host-vbus-drv {
rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
};
- };
+};
+&pwm0 {
- status = "okay";
+};
+&pwm2 {
- status = "okay";
+};
+&saradc {
- vref-supply = <&vccadc_ref>;
- status = "okay";
+};
+&sdmmc {
- u-boot,dm-pre-reloc;
- bus-width = <4>;
- status = "okay";
+};
+&sdhci {
- bus-width = <8>;
- keep-power-in-suspend;
- mmc-hs400-1_8v;
- mmc-hs400-enhanced-strobe;
- non-removable;
- 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_host>;
status = "okay";
- };
+};
+&u2phy1 {
- status = "okay";
- u2phy1_otg: otg-port {
status = "okay";
- };
- u2phy1_host: host-port {
phy-supply = <&vcc5v0_host>;
status = "okay";
- };
+};
+&uart0 {
- pinctrl-names = "default";
- pinctrl-0 = <&uart0_xfer &uart0_cts>;
- status = "okay";
+};
+&uart2 {
- status = "okay";
+};
+&usb_host0_ehci {
- status = "okay";
+};
+&usb_host0_ohci {
- status = "okay";
+};
+&usb_host1_ehci {
- status = "okay";
+};
+&usb_host1_ohci {
- status = "okay";
+}; diff --git a/arch/arm/dts/rk3399-sdram-lpddr4-1600.dtsi b/arch/arm/dts/rk3399-sdram-lpddr4-1600.dtsi new file mode 100644 index 0000000000..fa26e1cf01 --- /dev/null +++ b/arch/arm/dts/rk3399-sdram-lpddr4-1600.dtsi @@ -0,0 +1,1535 @@ +// SPDX-License-Identifier: GPL-2.0+ +/*
- (C) Copyright 2018 Akash Gajjar akash@openedev.com
- */
+&dmc {
- rockchip,sdram-params = <
0x2
0xa
0x3
0x2
0x2
0x0
0xf
0xf
1
0x80191519
0x14040808
0x00000002
0x00006226
0x0000004c
0x00000000
0x2
0xa
0x3
0x2
0x2
0x0
0xf
0xf
1
0x80191519
0x14040808
0x00000002
0x00006226
0x0000004c
0x00000000
800
6
2
13
1
0x00000700
0x00000000
0x00000000
0x00000000
0x00000000
0x00000050
0x00027100
0x00000320
0x00001f40
0x00000050
0x00027100
0x00000320
0x00001f40
0x00000050
0x00027100
0x00000320
0x01001f40
0x00000000
0x00000101
0x00020100
0x000000a0
0x00000190
0x00000000
0x06180000
0x00061800
0x04000618
0x33080004
0x280f0622
0x22330800
0x00280f06
0x06223308
0x0600280f
0x00000a0a
0x0600dac0
0x0a0a060c
0x0600dac0
0x0a0a060c
0x0600dac0
0x0203000c
0x0f0c0f00
0x040c0f0c
0x14000a0a
0x03030a0a
0x00010003
0x031b1b1b
0x00111111
0x00000000
0x03010000
0x0c2800a8
0x0c2800a8
0x0c2800a8
0x00000000
0x00060006
0x00140006
0x00140014
0x000f0f0f
0x00000000
0x00000000
0x00000000
0x00b00000
0x00b000b0
0x00b000b0
0x000000b0
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000301
0x00000001
0x00000000
0x00000000
0x01000000
0x80104002
0x00040003
0x00040005
0x00030000
0x00050004
0x00000004
0x00040003
0x00040005
0x30a00000
0x00001850
0x185030a0
0x30a00000
0x00001850
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x02020200
0x00020202
0x00030200
0x00040700
0x00000302
0x02000407
0x00000003
0x00030f04
0x00070004
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00010000
0x20040020
0x00200400
0x01000400
0x00000b80
0x00000000
0x00000001
0x00000002
0x0000000e
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00a00000
0x00c80050
0x00c80000
0x005000a0
0x000000c8
0x00a000c8
0x00c80050
0x00c80000
0x00000000
0x00000000
0x00000000
0x00430000
0x0000001a
0x001a0043
0x00430000
0x0000001a
0x00010001
0x07000001
0x00000707
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00430000
0x0000001a
0x001a0043
0x00430000
0x0000001a
0x00010001
0x07000001
0x00000707
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x01000000
0x00000000
0x00000000
0x18151100
0x0000000c
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00032003
0x00480120
0x00000000
0x01200320
0x00000048
0x00032000
0x00480120
0x00000000
0x00280000
0x00280028
0x01010100
0x01000202
0x0a000002
0x01000f0f
0x00000000
0x00000000
0x00010003
0x00000c03
0x00000100
0x00010000
0x01000000
0x00010000
0x00000001
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00010000
0x03030301
0x01010808
0x03030001
0x0a0a0a03
0x08080808
0x08050103
0x08050103
0x00050103
0x00020202
0x05020500
0x00020502
0x00000000
0x00000000
0x0d000001
0x00010028
0x00010000
0x00000003
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00010100
0x01000000
0x00000001
0x00000303
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x000556aa
0x000aaaaa
0x000aa955
0x00055555
0x000b3133
0x0004cd33
0x0004cecc
0x000b32cc
0x00010300
0x03000100
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00ffff00
0x1e1e0000
0x0800001e
0x00001850
0x00000200
0x00000200
0x00000200
0x00000200
0x00001850
0x0000f320
0x1850050a
0x00000200
0x00000200
0x00000200
0x00000200
0x00001850
0x0000f320
0x1850050a
0x00000200
0x00000200
0x00000200
0x00000200
0x00001850
0x0000f320
0x0202050a
0x03030202
0x00000018
0x00000000
0x00000000
0x00001403
0x00000000
0x00000000
0x00000000
0x00030000
0x000e0020
0x000e0020
0x000e0020
0x00000000
0x00000000
0x01000000
0x00070007
0x00050007
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x01000101
0x01010101
0x01000101
0x01000100
0x00010001
0x00010002
0x00020100
0x00000002
0x00000700
0x00000000
0x000030a0
0x00001850
0x000030a0
0x00001850
0x000030a0
0x18501850
0x00000200
0x00000200
0x00000200
0x00000200
0x00001850
0x00000200
0x00000200
0x00000200
0x00000200
0x00001850
0x00000200
0x00000200
0x00000200
0x00000200
0x00010000
0x00000007
0x81000001
0x0f0003f0
0x3fffffff
0x0f0000a0
0x377ff000
0x0f000020
0x377ff000
0x0f000030
0x377ff000
0x0f0000b0
0x377ff000
0x0f000100
0x377ff000
0x0f000110
0x377ff000
0x0f000010
0x377ff000
0x03000101
0x042e2e2e
0x06180006
0x00061800
0x00000018
0x0c2800a8
0x0c2800a8
0x0c2800a8
0x00000500
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x04040000
0x0d000004
0x00000128
0x00000000
0x00030003
0x00000018
0x00000000
0x00000000
0x03060002
0x03010301
0x00080801
0x00020001
0x00080004
0x00000000
0x03030000
0x0a0a0a03
0x00000000
0x00000000
0x00000000
0x00030300
0x00000014
0x00000000
0x01010300
0x00000000
0x00000000
0x01000000
0x00000101
0x55555a5a
0x55555a5a
0x55555a5a
0x55555a5a
0x0a0a0001
0x0505000a
0x00000005
0x00000100
0x00030000
0x17030000
0x000e0020
0x000e0020
0x000e0020
0x00000000
0x00000000
0x00000100
0x140a0000
0x000a030a
0x03000a03
0x010a000a
0x00000100
0x01000000
0x00000000
0x00000100
0x1e1a0000
0x10010204
0x07070705
0x20000202
0x00201000
0x00201000
0x04041000
0x10100100
0x00010110
0x004b004a
0x1a030000
0x0102041e
0x34000000
0x00000000
0x00000000
0x00000000
0x00004300
0x0001001a
0x004d4d07
0x001a0043
0x4d070001
0x0000434d
0x0001001a
0x004d4d07
0x001a0043
0x4d070001
0x0000434d
0x0001001a
0x004d4d07
0x001a0043
0x4d070001
0x0043004d
0x0001001a
0x004d4d07
0x001a0043
0x4d070001
0x0000434d
0x0001001a
0x004d4d07
0x001a0043
0x4d070001
0x0000434d
0x0001001a
0x004d4d07
0x001a0043
0x4d070001
0x0100004d
0x00c800c8
0x060400c8
0x0c060f11
0x2200d890
0x0a0c2005
0x0f11060a
0x00000c06
0x2200d890
0x0a0c2005
0x0f11060a
0x00000c06
0x2200d890
0x0a0c2005
0x0200020a
0x02000200
0x02000200
0x02000200
0x02000200
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x01000300
0x00185000
0x0000f320
0x00001850
0x0000f320
0x00001850
0x0000f320
0x08000000
0x00000100
0x00000000
0x00000000
0x00000000
0x00000000
0x00000002
0x76543210
0x0004c008
0x000000b3
0x00000000
0x00000000
0x00010000
0x01665555
0x00665555
0x00010f00
0x05010200
0x00000003
0x001700c0
0x00cc0101
0x00030066
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x04080000
0x04080400
0x08000000
0x0c00c007
0x00000100
0x00000100
0x55555555
0xaaaaaaaa
0x55555555
0xaaaaaaaa
0x00005555
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00200000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x02700270
0x02700270
0x02700270
0x02700270
0x00000270
0x00000000
0x00000000
0x00000000
0x00000000
0x00800000
0x00800080
0x00800080
0x00800080
0x00800080
0x00800080
0x00800080
0x00800080
0x00800080
0x00b30080
0x00000003
0x00000000
0x00020000
0x00000200
0x00000000
0x51315152
0xc0013150
0x020000c0
0x00100001
0x07054208
0x000f0c18
0x01000140
0x00000c20
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x76543210
0x0004c008
0x000000b3
0x00000000
0x00000000
0x00010000
0x01665555
0x00665555
0x00010f00
0x05010200
0x00000003
0x001700c0
0x00cc0101
0x00030066
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x04080000
0x04080400
0x08000000
0x0c00c007
0x00000100
0x00000100
0x55555555
0xaaaaaaaa
0x55555555
0xaaaaaaaa
0x00005555
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00200000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x02700270
0x02700270
0x02700270
0x02700270
0x00000270
0x00000000
0x00000000
0x00000000
0x00000000
0x00800000
0x00800080
0x00800080
0x00800080
0x00800080
0x00800080
0x00800080
0x00800080
0x00800080
0x00b30080
0x00000003
0x00000000
0x00020000
0x00000200
0x00000000
0x51315152
0xc0013150
0x020000c0
0x00100001
0x07054208
0x000f0c18
0x01000140
0x00000c20
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x76543210
0x0004c008
0x000000b3
0x00000000
0x00000000
0x00010000
0x01665555
0x00665555
0x00010f00
0x05010200
0x00000003
0x001700c0
0x00cc0101
0x00030066
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x04080000
0x04080400
0x08000000
0x0c00c007
0x00000100
0x00000100
0x55555555
0xaaaaaaaa
0x55555555
0xaaaaaaaa
0x00005555
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00200000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x02700270
0x02700270
0x02700270
0x02700270
0x00000270
0x00000000
0x00000000
0x00000000
0x00000000
0x00800000
0x00800080
0x00800080
0x00800080
0x00800080
0x00800080
0x00800080
0x00800080
0x00800080
0x00b30080
0x00000003
0x00000000
0x00020000
0x00000200
0x00000000
0x51315152
0xc0013150
0x020000c0
0x00100001
0x07054208
0x000f0c18
0x01000140
0x00000c20
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x76543210
0x0004c008
0x000000b3
0x00000000
0x00000000
0x00010000
0x01665555
0x00665555
0x00010f00
0x05010200
0x00000003
0x001700c0
0x00cc0101
0x00030066
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x04080000
0x04080400
0x08000000
0x0c00c007
0x00000100
0x00000100
0x55555555
0xaaaaaaaa
0x55555555
0xaaaaaaaa
0x00005555
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00200000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x02700270
0x02700270
0x02700270
0x02700270
0x00000270
0x00000000
0x00000000
0x00000000
0x00000000
0x00800000
0x00800080
0x00800080
0x00800080
0x00800080
0x00800080
0x00800080
0x00800080
0x00800080
0x00b30080
0x00000003
0x00000000
0x00020000
0x00000200
0x00000000
0x51315152
0xc0013150
0x020000c0
0x00100001
0x07054208
0x000f0c18
0x01000140
0x00000c20
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00800000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000001
0x00000000
0x00000000
0x00000000
0x00400320
0x00000040
0x00806420
0x00917531
0x00806420
0x01917531
0x00020003
0x00000000
0x00000000
0x00000000
0x000556aa
0x000aaaaa
0x000aa955
0x00055555
0x000b3133
0x0004cd33
0x0004cecc
0x000b32cc
0x0a418820
0x103f0000
0x0000003f
0x00038055
0x03800380
0x03800380
0x00000380
0x42080010
0x00000003
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00800000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000001
0x00000000
0x00000000
0x00000000
0x00400320
0x00000040
0x00008eca
0x00009fdb
0x00008eca
0x01009fdb
0x00020003
0x00000000
0x00000000
0x00000000
0x000556aa
0x000aaaaa
0x000aa955
0x00055555
0x000b3133
0x0004cd33
0x0004cecc
0x000b32cc
0x0004a0e6
0x080f0000
0x0000000f
0x00038055
0x03800380
0x03800380
0x00000380
0x42080010
0x00000003
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00800000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000001
0x00000000
0x00000000
0x00000000
0x00400320
0x00000040
0x00008eca
0x00009fdb
0x00008eca
0x01009fdb
0x00020003
0x00000000
0x00000000
0x00000000
0x000556aa
0x000aaaaa
0x000aa955
0x00055555
0x000b3133
0x0004cd33
0x0004cecc
0x000b32cc
0x1ee6b16a
0x10000000
0x00000000
0x00038055
0x03800380
0x03800380
0x00000380
0x42080010
0x00000003
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000001
0x00000000
0x01000005
0x04000f00
0x00020040
0x00020055
0x00000000
0x00000000
0x00000000
0x00000050
0x00000000
0x00010100
0x00000601
0x00000000
0x00006400
0x01221102
0x00000000
0x00051f00
0x051f051f
0x051f051f
0x00030003
0x03000300
0x00000300
0x01221102
0x00000000
0x00000000
0x03020000
0x00000001
0x00000011
0x00000011
0x00000400
0x00000000
0x00000011
0x00000011
0x00004410
0x00004410
0x00004410
0x00004410
0x00004410
0x00000011
0x00004410
0x00000011
0x00004410
0x00000011
0x00004410
0x00000000
0x00000000
0x00000000
0x04000000
0x00000000
0x00000000
0x00000508
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0xe4000000
0x00000000
0x00000000
0x01010000
0x00000000
;+}; diff --git a/arch/arm/mach-rockchip/rk3399/Kconfig b/arch/arm/mach-rockchip/rk3399/Kconfig index 415466a49b..84e9d34800 100644 --- a/arch/arm/mach-rockchip/rk3399/Kconfig +++ b/arch/arm/mach-rockchip/rk3399/Kconfig @@ -28,6 +28,15 @@ config TARGET_PUMA_RK3399 * HDMI, eDP, MIPI-DSI, MIPI-DSI/CSI and MIPI-CSI * SPI, I2C, I2S, UART, GPIO, ...
+config TARGET_ROCKPRO64_RK3399
- bool "RK3399 Rockpro64"
- help
The Rockpro64 is a RK3399 based board from pine64.org.
Rockpro64 has a LPDDR4 (2GB and 4GB variant), PCIex4, HDMI, MIPI-DSI,
MIPI-CSI, eDP, CSI parallel, SPI, I2C, I2S, UART, USB2.0, USB3.0, USB
Type C, es8316 codec, SPDIF out, SD, eMMC and WiFI module support on
board.
endchoice
config SYS_SOC @@ -37,6 +46,7 @@ config SYS_MALLOC_F_LEN default 0x0800
source "board/rockchip/evb_rk3399/Kconfig" +source "board/rockchip/rockpro64/Kconfig" source "board/theobroma-systems/puma_rk3399/Kconfig"
endif diff --git a/board/rockchip/rockpro64/Kconfig b/board/rockchip/rockpro64/Kconfig new file mode 100644 index 0000000000..9cc2a8c382 --- /dev/null +++ b/board/rockchip/rockpro64/Kconfig @@ -0,0 +1,15 @@ +if TARGET_ROCKPRO64_RK3399
+config SYS_BOARD
- default "rockpro64"
+config SYS_VENDOR
- default "rockchip"
+config SYS_CONFIG_NAME
- default "rockpro64"
+config BOARD_SPECIFIC_OPTIONS # dummy
- def_bool y
+endif diff --git a/board/rockchip/rockpro64/MAINTAINERS b/board/rockchip/rockpro64/MAINTAINERS new file mode 100644 index 0000000000..66dccf67ec --- /dev/null +++ b/board/rockchip/rockpro64/MAINTAINERS @@ -0,0 +1,6 @@ +ROCKPRO64-RK3399 +M: Akash Gajjar akash@openedev.com +S: Maintained +F: board/rockchip/rockpro64 +F: include/configs/rockpro64.h +F: configs/rockpro64-rk3399_defconfig diff --git a/board/rockchip/rockpro64/Makefile b/board/rockchip/rockpro64/Makefile new file mode 100644 index 0000000000..3bbb808b59 --- /dev/null +++ b/board/rockchip/rockpro64/Makefile @@ -0,0 +1,7 @@ +# +# (C) Copyright 2018 Akash Gajjar akash@openedev.com +# +# SPDX-License-Identifier: GPL-2.0+ +#
+obj-y += rockpro64.o diff --git a/board/rockchip/rockpro64/rockpro64.c b/board/rockchip/rockpro64/rockpro64.c new file mode 100644 index 0000000000..74c7a56bd5 --- /dev/null +++ b/board/rockchip/rockpro64/rockpro64.c @@ -0,0 +1,94 @@ +// SPDX-License-Identifier: GPL-2.0+ +/*
- (C) Copyright 2018 Akash Gajjar akash@openedev.com
- */
+#include <common.h> +#include <dm.h> +#include <dm/pinctrl.h> +#include <dm/uclass-internal.h> +#include <asm/arch/periph.h> +#include <power/regulator.h> +#include <spl.h>
+int board_init(void) +{
- struct udevice *pinctrl, *regulator;
- int ret;
- /*
* The PWM do not have decicated interrupt number in dts and can
* not get periph_id by pinctrl framework, so let's init them here.
* The PWM2 and PWM3 are for pwm regulater.
*/
- ret = uclass_get_device(UCLASS_PINCTRL, 0, &pinctrl);
- if (ret) {
debug("%s: Cannot find pinctrl device\n", __func__);
goto out;
- }
- /* Enable pwm0 for panel backlight */
- ret = pinctrl_request_noflags(pinctrl, PERIPH_ID_PWM0);
- if (ret) {
debug("%s PWM0 pinctrl init fail! (ret=%d)\n", __func__, ret);
goto out;
- }
- ret = pinctrl_request_noflags(pinctrl, PERIPH_ID_PWM2);
- if (ret) {
debug("%s PWM2 pinctrl init fail!\n", __func__);
goto out;
- }
- ret = pinctrl_request_noflags(pinctrl, PERIPH_ID_PWM3);
- if (ret) {
debug("%s PWM3 pinctrl init fail!\n", __func__);
goto out;
- }
- ret = regulators_enable_boot_on(false);
- if (ret)
debug("%s: Cannot enable boot on regulator\n", __func__);
- ret = regulator_get_by_platname("vcc5v0_host", ®ulator);
- if (ret) {
debug("%s vcc5v0_host init fail! ret %d\n", __func__, ret);
goto out;
- }
- ret = regulator_set_enable(regulator, true);
- if (ret) {
debug("%s vcc5v0-host-en set fail!\n", __func__);
goto out;
- }
+out:
- return 0;
+}
+void spl_board_init(void) +{
- struct udevice *pinctrl;
- int ret;
- ret = uclass_get_device(UCLASS_PINCTRL, 0, &pinctrl);
- if (ret) {
debug("%s: Cannot find pinctrl device\n", __func__);
goto err;
- }
- /* Enable debug UART */
- ret = pinctrl_request_noflags(pinctrl, PERIPH_ID_UART_DBG);
- if (ret) {
debug("%s: Failed to set up console UART\n", __func__);
goto err;
- }
- preloader_console_init();
- return;
+err:
- printf("%s: Error %d\n", __func__, ret);
- /* No way to report error here */
- hang();
+} diff --git a/configs/rockpro64-rk3399_defconfig b/configs/rockpro64-rk3399_defconfig new file mode 100644 index 0000000000..88422f2db4 --- /dev/null +++ b/configs/rockpro64-rk3399_defconfig @@ -0,0 +1,78 @@ +CONFIG_ARM=y +CONFIG_ARCH_ROCKCHIP=y +CONFIG_SYS_TEXT_BASE=0x00200000 +CONFIG_SPL_LIBCOMMON_SUPPORT=y +CONFIG_SPL_LIBGENERIC_SUPPORT=y +CONFIG_SYS_MALLOC_F_LEN=0x4000 +CONFIG_ROCKCHIP_RK3399=y +CONFIG_TARGET_ROCKPRO64_RK3399=y +CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x4000 +CONFIG_DEBUG_UART_BASE=0xFF1A0000 +CONFIG_DEBUG_UART_CLOCK=24000000 +CONFIG_SPL_STACK_R_ADDR=0x80000 +CONFIG_DEBUG_UART=y +CONFIG_NR_DRAM_BANKS=1 +CONFIG_FIT=y +CONFIG_SPL_LOAD_FIT=y +CONFIG_SPL_FIT_GENERATOR="arch/arm/mach-rockchip/make_fit_atf.py" +CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-rockpro64.dtb" +# CONFIG_DISPLAY_CPUINFO is not set +CONFIG_DISPLAY_BOARDINFO_LATE=y +CONFIG_SPL_STACK_R=y +CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x4000 +CONFIG_SPL_ATF=y +CONFIG_SPL_ATF_NO_PLATFORM_PARAM=y +CONFIG_CMD_BOOTZ=y +CONFIG_CMD_GPT=y +CONFIG_CMD_MMC=y +CONFIG_CMD_SF=y +CONFIG_CMD_USB=y +# CONFIG_CMD_SETEXPR is not set +CONFIG_CMD_TIME=y +CONFIG_SPL_OF_CONTROL=y +CONFIG_DEFAULT_DEVICE_TREE="rk3399-rockpro64" +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_REGMAP=y +CONFIG_SPL_REGMAP=y +CONFIG_SYSCON=y +CONFIG_SPL_SYSCON=y +CONFIG_CLK=y +CONFIG_SPL_CLK=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_DM_ETH=y +CONFIG_ETH_DESIGNWARE=y +CONFIG_GMAC_ROCKCHIP=y +CONFIG_PINCTRL=y +CONFIG_SPL_PINCTRL=y +CONFIG_PINCTRL_ROCKCHIP_RK3399=y +CONFIG_DM_PMIC=y +CONFIG_PMIC_RK8XX=y +CONFIG_REGULATOR_PWM=y +CONFIG_DM_REGULATOR_FIXED=y +CONFIG_REGULATOR_RK8XX=y +CONFIG_PWM_ROCKCHIP=y +CONFIG_RAM=y +CONFIG_SPL_RAM=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_USB_STORAGE=y +CONFIG_USB_HOST_ETHER=y +CONFIG_USB_ETHER_ASIX=y +CONFIG_USB_ETHER_ASIX88179=y +CONFIG_USB_ETHER_MCS7830=y +CONFIG_USB_ETHER_RTL8152=y +CONFIG_USB_ETHER_SMSC95XX=y +CONFIG_USE_TINY_PRINTF=y +CONFIG_ERRNO_STR=y diff --git a/include/configs/rockpro64.h b/include/configs/rockpro64.h new file mode 100644 index 0000000000..1a7e850c94 --- /dev/null +++ b/include/configs/rockpro64.h @@ -0,0 +1,15 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/*
- (C) Copyright 2018 Akash Gajjar akash@openedev.com
- */
+#ifndef __ROCKPRO64_RK3399_H +#define __ROCKPRO64_RK3399_H
+#include <configs/rk3399_common.h>
+#define CONFIG_SYS_MMC_ENV_DEV 1
+#define SDRAM_BANK_SIZE (2UL << 30)
+#endif

On Thu, Apr 4, 2019 at 1:43 PM Paul Kocialkowski contact@paulk.fr wrote:
Hi,
On Sat, 2018-11-03 at 16:58 +0530, Akash Gajjar wrote:
Rockpro64 is rk3399 based board from pine64.org. add initial board support for Rockpro64. complete board support will be added later in upcoming patchsets.
Thanks for contributing this initial support patchset!
Now that the dts has landed in Linux, do you have plans for making a new revision of this series?
I plan on using the board soon-ish and I'd like to get an upstream U- Boot + Linux setup on it, so I'm definitely interested in this series.
Feel free to let me know if I could help with anything when I get the board!
It is paused because of LPDDR4 code dependency, right now we are working on it. Will update once the code gets ready to push it on Mainline.
Thanks, Jagan.

Hi,
Le jeudi 04 avril 2019 à 14:12 +0530, Jagan Teki a écrit :
On Thu, Apr 4, 2019 at 1:43 PM Paul Kocialkowski contact@paulk.fr wrote:
Hi,
On Sat, 2018-11-03 at 16:58 +0530, Akash Gajjar wrote:
Rockpro64 is rk3399 based board from pine64.org. add initial board support for Rockpro64. complete board support will be added later in upcoming patchsets.
Thanks for contributing this initial support patchset!
Now that the dts has landed in Linux, do you have plans for making a new revision of this series?
I plan on using the board soon-ish and I'd like to get an upstream U- Boot + Linux setup on it, so I'm definitely interested in this series.
Feel free to let me know if I could help with anything when I get the board!
It is paused because of LPDDR4 code dependency, right now we are working on it. Will update once the code gets ready to push it on Mainline.
Sound great, thanks for the update!
Cheers,
Paul
participants (8)
-
akash
-
Akash Gajjar
-
Akash Gajjar
-
Alexander Graf
-
Jagan Teki
-
Jagan Teki
-
Kever Yang
-
Paul Kocialkowski