On Sat, Oct 05, 2019 at 12:20:57PM -0400, k...@intricatesoftware.com wrote: > Various rockchip u-boot 2019.10rc4 aarch64 improvements: > * u-boot.itb is included in the all target for rockpro64 and > firefly-rk3399 so remove duplicate make for it. > * Build rock64-rk3328, except exclude idbloader.img which is broken. > * Install u-boot-spl-dtb.bin and mkimage for rock64, rockpro64 and > firefly-rk3399 so that idbloader.img can be created using rkbin TPL > layer. > * Provide a script to make idbloader.img from rkbin's TPL layer. > * For rockpro64 backport PCIe support from 5.3 dtb. > * For rock64 backport most 4.20 dtb components and additional bug > fixes. > > For rockpro64, I no longer need to have an updated dtb installed > in the i partition for PCIe to work. Although I am using the > rkbin TPL layer because the u-boot one doesn't recognize half > of my memory (other versions of this board dont have this > problem). > > For rock64 the dtb updates corrects the clock bindings so an > updated dtb is not needed in the i partition as well. However, > u-boot's TPL layer isn't working yet so the following steps > are needed to create a usable idbloader.img on a uSD for > install with miniroot66.fs: > > /usr/local/libexec/u-boot/mkidbloader-rkbin rock64-rk3328 > dd if=miniroot66.fs of=/dev/<uSD> bs=1m > dd if=idbloader.img of=/dev/<uSD> bs=512 seek=64 conv=sync > dd if=/usr/local/share/u-boot/rock64-rk3328/u-boot.itb \ > of=/dev/<uSD> bs=512 seek=16384 conv=sync > > One of the downsides of installing mkimage is the removal of > PKG_ARCH=*, but we get better support for both rock64 and > rockpro64 for where rkbin is still needed. I'm not sure how > well firefly works with the the u-boot TPL layer so it may > benefit from the ability to build idbloader.img with the > rkbin TPL layer as well. > > Thoughts?
Dropping PKG_ARCH=* isn't something we should do in my opinion. For example arm package snapshots seem to be made every few months and with U-Boot 2019.10 final planned for Monday US time there wouldn't be a package available for arm in time for the final release build. I think for now you should drop the rk3328/mkimage parts and keep the rockpro64 dtb change. > > PS: My examples include dd with bs=512 with seek's to avoid > someone from setting a different bs to write faster; and > conv=sync since this is needed on MacOS and FreeBSD to write > the partial final blocks. Both of these things tripped me up > the first time I initially tried to setup my uSD from my Mac. > > Index: Makefile > =================================================================== > RCS file: /cvs/ports/sysutils/u-boot/Makefile,v > retrieving revision 1.59 > diff -u -p -u -r1.59 Makefile > --- Makefile 28 Sep 2019 01:40:24 -0000 1.59 > +++ Makefile 5 Oct 2019 16:15:13 -0000 > @@ -7,6 +7,7 @@ FLAVOR?= arm > > COMMENT= U-Boot firmware > VERSION= 2019.10-rc4 > +REVISION= 0 > DISTNAME= u-boot-${VERSION} > PKGNAME= u-boot-${FLAVOR}-${VERSION:S/-//} > FULLPKGNAME= ${PKGNAME} > @@ -19,7 +20,6 @@ PERMIT_PACKAGE= Yes > > MASTER_SITES= https://ftp.denx.de/pub/u-boot/ > EXTRACT_SUFX= .tar.bz2 > -PKG_ARCH= * > > BUILD_DEPENDS= devel/bison \ > devel/dtc \ > @@ -36,10 +36,12 @@ MAKE_ENV= KBUILD_VERBOSE=1 \ > PYTHON="${MODPY_BIN}" > > .if "${FLAVOR}" == "aarch64" > +WANTLIB+= c > BUILD_DEPENDS+= devel/arm-none-eabi/gcc-linaro,aarch64 \ > devel/py-elftools \ > sysutils/arm-trusted-firmware > MAKE_ENV+= CROSS_COMPILE="aarch64-none-elf-" > +RK3328_BL31= "${LOCALBASE}/share/arm-trusted-firmware/rk3328-bl31.elf" > RK3399_BL31= "${LOCALBASE}/share/arm-trusted-firmware/rk3399-bl31.elf" > SUNXI_BL31= "${LOCALBASE}/share/arm-trusted-firmware/sun50i_a64-bl31.bin" > .elif "${FLAVOR}" == "arm" > @@ -68,9 +70,14 @@ BOARDS=\ > mvebu_espressobin-88f3720 \ > mvebu_mcbin-88f8040 \ > qemu_arm64 \ > + rock64-rk3328 \ > rockpro64-rk3399 \ > rpi_3 \ > rpi_4 > +MKIMAGE=\ > + firefly-rk3399 \ > + rock64-rk3328 \ > + rockpro64-rk3399 > .elif "${FLAVOR}" == "arm" > OMAP=\ > omap4_panda \ > @@ -129,6 +136,7 @@ BOARDS=\ > tinker-rk3288 \ > turris_omnia \ > vexpress_ca15_tc2 > +MKIMAGE= > .endif > > FILES=\ > @@ -143,6 +151,7 @@ FILES=\ > u-boot-with-spl.bin \ > u-boot.itb \ > idbloader.img \ > + spl/u-boot-spl-dtb.bin \ > spl/sunxi-spl.bin \ > > do-build: > @@ -151,25 +160,34 @@ do-build: > mkdir -p build/${BOARD} && \ > ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} ${MAKE_FLAGS} \ > O="build/${BOARD}" \ > - -f ${MAKE_FILE} "${BOARD}"_defconfig && \ > + -f ${MAKE_FILE} "${BOARD}"_defconfig > +.if "${BOARD}" == "firefly-rk3399" || "${BOARD}" == "rockpro64-rk3399" > + cd ${WRKSRC} && \ > + ${SETENV} ${MAKE_ENV} BL31=${RK3399_BL31} ${MAKE_PROGRAM} \ > + ${MAKE_FLAGS} O="build/${BOARD}" \ > + -f ${MAKE_FILE} ${ALL_TARGET} > +.elif "${BOARD}" == "rock64-rk3328" > + cd ${WRKSRC} && \ > + ${SETENV} ${MAKE_ENV} BL31=${RK3328_BL31} ${MAKE_PROGRAM} \ > + ${MAKE_FLAGS} O="build/${BOARD}" \ > + -f ${MAKE_FILE} ${ALL_TARGET} > + cd ${WRKSRC}/build/${BOARD} && \ > + ${SETENV} ${MAKE_ENV} BL31=${RK3328_BL31} ${MAKE_PROGRAM} \ > + ${MAKE_FLAGS} O="build/${BOARD}" \ > + -f ${MAKE_FILE} u-boot.itb && \ > + rm idbloader.img > +.else > + cd ${WRKSRC} && \ > ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} ${MAKE_FLAGS} \ > O="build/${BOARD}" \ > -f ${MAKE_FILE} ${ALL_TARGET} > +.endif > .if "${BOARD}" == "tinker-rk3288" > cd ${WRKSRC}/build/${BOARD} && \ > tools/mkimage -n rk3288 -T rksd -d tpl/u-boot-tpl.bin \ > idbloader.img && \ > cat spl/u-boot-spl-dtb.bin >> idbloader.img > .endif > -.if "${BOARD}" == "firefly-rk3399" || "${BOARD}" == "rockpro64-rk3399" > - cd ${WRKSRC}/build/${BOARD} && \ > - ${SETENV} ${MAKE_ENV} BL31=${RK3399_BL31} ${MAKE_PROGRAM} \ > - ${MAKE_FLAGS} O="build/${BOARD}" \ > - -f ${MAKE_FILE} u-boot.itb && \ > - tools/mkimage -n rk3399 -T rksd -d tpl/u-boot-tpl.bin \ > - idbloader.img && \ > - cat spl/u-boot-spl-dtb.bin >> idbloader.img > -.endif > .endfor > .for BOARD in ${SUNXI64} > cd ${WRKSRC} && \ > @@ -194,5 +212,15 @@ do-install: > -cd ${WRKSRC}/build/${BOARD} && \ > cp ${FILES} ${PREFIX}/share/u-boot/${BOARD}/ > .endfor > +.if "${MKIMAGE}" != "" > + ${INSTALL_DATA_DIR} ${PREFIX}/libexec/u-boot > + ${INSTALL_PROGRAM} ${FILESDIR}/mkidbloader-rkbin > ${PREFIX}/libexec/u-boot > +.for BOARD in ${MKIMAGE} > + ${INSTALL_DATA_DIR} ${PREFIX}/libexec/u-boot/${BOARD}/ > + -cd ${WRKSRC}/build/${BOARD}/tools && \ > + ${INSTALL_PROGRAM} mkimage \ > + ${PREFIX}/libexec/u-boot/${BOARD}/ > +.endfor > +.endif > > .include <bsd.port.mk> > Index: files/mkidbloader-rkbin > =================================================================== > RCS file: files/mkidbloader-rkbin > diff -N files/mkidbloader-rkbin > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ files/mkidbloader-rkbin 5 Oct 2019 16:15:13 -0000 > @@ -0,0 +1,54 @@ > +#!/bin/sh -e > + > +usage_exit() { > + echo "Usage: mkidbloader-rkbin <board>" > + echo " <board> can be one of the following:" > + echo " rock64-rk3328" > + echo " rockpro64-rk3399" > + echo " firefly-rk3399" > + exit 1 > +} > + > +if [[ $# -ne 1 ]]; then > + echo "ERROR: missing board argument" > + usage_exit > +fi > + > +BOARD=$1 > +case "$BOARD" in > + rock64-rk3328) > + SOC=rk3328 > + RKBIN_TPL=rk3328_ddr_333MHz_v1.16.bin > + RKBIN_TPL_SHA256=mHGeBGzI8zyjHOk6Vp3D1O4WSY33b54fPRjC9NcXrHA= > + GITHUB_COMMIT=016471bcfb1a0b1e1269895cb7b6f534813edfdc > + ;; > + rockpro64-rk3399) > + SOC=rk3399 > + RKBIN_TPL=rk3399_ddr_800MHz_v1.23.bin > + RKBIN_TPL_SHA256=eeufH1rAOUxkjQ321Ta+G+PKb+Le3zOr6INDzjnZHyE= > + GITHUB_COMMIT=016471bcfb1a0b1e1269895cb7b6f534813edfdc > + ;; > + firefly-rk3399) > + SOC=rk3399 > + RKBIN_TPL=rk3399_ddr_666MHz_v1.23.bin > + RKBIN_TPL_SHA256=cNb8+lhNyTFTI+WXfs6isrb61u611VbrDHU/MHhBJqY= > + GITHUB_COMMIT=016471bcfb1a0b1e1269895cb7b6f534813edfdc > + ;; > + *) > + echo "ERROR: unrecognized board $1" > + usage_exit > + ;; > +esac > + > +ftp > https://github.com/rockchip-linux/rkbin/raw/${GITHUB_COMMIT}/bin/rk33/${RKBIN_TPL} > +if [ "`/bin/sha256 -qb ${RKBIN_TPL}`" != "${RKBIN_TPL_SHA256}" ]; then > + echo "ERROR: failed sha256 check on ${RKBIN_TPL}" > + exit 1; > +fi > +/usr/local/libexec/u-boot/${BOARD}/mkimage -n ${SOC} -T rksd -d ${RKBIN_TPL} > idbloader.img.tmp > +cat /usr/local/share/u-boot/${BOARD}/u-boot-spl-dtb.bin >> idbloader.img.tmp > +mv idbloader.img.tmp idbloader.img > + > +echo "idbloader.img created for ${BOARD}" > + > +exit 0 > Index: patches/patch-arch_arm_dts_rk3328-rock64_dts > =================================================================== > RCS file: patches/patch-arch_arm_dts_rk3328-rock64_dts > diff -N patches/patch-arch_arm_dts_rk3328-rock64_dts > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ patches/patch-arch_arm_dts_rk3328-rock64_dts 5 Oct 2019 16:15:13 > -0000 > @@ -0,0 +1,115 @@ > +$OpenBSD$ > + > +Index: arch/arm/dts/rk3328-rock64.dts > +--- arch/arm/dts/rk3328-rock64.dts.orig > ++++ arch/arm/dts/rk3328-rock64.dts > +@@ -11,7 +11,7 @@ > + compatible = "pine64,rock64", "rockchip,rk3328"; > + > + chosen { > +- stdout-path = "serial2:1500000n8"; > ++ stdout-path = "serial2:115200n8"; > + }; > + > + gmac_clkin: external-gmac-clock { > +@@ -51,6 +51,23 @@ > + regulator-min-microvolt = <5000000>; > + regulator-max-microvolt = <5000000>; > + }; > ++ > ++ sound { > ++ compatible = "audio-graph-card"; > ++ label = "rockchip,rk3328"; > ++ dais = <&spdif_p0>; > ++ }; > ++ > ++ spdif-dit { > ++ compatible = "linux,spdif-dit"; > ++ #sound-dai-cells = <0>; > ++ > ++ port { > ++ dit_p0_0: endpoint { > ++ remote-endpoint = <&spdif_p0_0>; > ++ }; > ++ }; > ++ }; > + }; > + > + &cpu0 { > +@@ -98,6 +115,14 @@ > + status = "okay"; > + }; > + > ++&hdmi { > ++ status = "okay"; > ++}; > ++ > ++&hdmiphy { > ++ status = "okay"; > ++}; > ++ > + &i2c1 { > + status = "okay"; > + > +@@ -245,6 +270,18 @@ > + status = "okay"; > + }; > + > ++&spdif { > ++ pinctrl-0 = <&spdifm0_tx>; > ++ status = "okay"; > ++ #sound-dai-cells = <0>; > ++ > ++ spdif_p0: port { > ++ spdif_p0_0: endpoint { > ++ remote-endpoint = <&dit_p0_0>; > ++ }; > ++ }; > ++}; > ++ > + &spi0 { > + status = "okay"; > + > +@@ -257,10 +294,28 @@ > + }; > + }; > + > ++&tsadc { > ++ rockchip,hw-tshut-mode = <0>; > ++ rockchip,hw-tshut-polarity = <0>; > ++ status = "okay"; > ++}; > ++ > + &uart2 { > + status = "okay"; > + }; > + > ++&u2phy { > ++ status = "okay"; > ++ > ++ u2phy_host: host-port { > ++ status = "okay"; > ++ }; > ++ > ++ u2phy_otg: otg-port { > ++ status = "okay"; > ++ }; > ++}; > ++ > + &usb20_otg { > + dr_mode = "host"; > + status = "okay"; > +@@ -271,5 +326,13 @@ > + }; > + > + &usb_host0_ohci { > ++ status = "okay"; > ++}; > ++ > ++&vop { > ++ status = "okay"; > ++}; > ++ > ++&vop_mmu { > + status = "okay"; > + }; > Index: patches/patch-arch_arm_dts_rk3328_dtsi > =================================================================== > RCS file: patches/patch-arch_arm_dts_rk3328_dtsi > diff -N patches/patch-arch_arm_dts_rk3328_dtsi > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ patches/patch-arch_arm_dts_rk3328_dtsi 5 Oct 2019 16:15:13 -0000 > @@ -0,0 +1,2008 @@ > +$OpenBSD$ > + > +Index: arch/arm/dts/rk3328.dtsi > +--- arch/arm/dts/rk3328.dtsi.orig > ++++ arch/arm/dts/rk3328.dtsi > +@@ -1,6 +1,6 @@ > +-// SPDX-License-Identifier: GPL-2.0+ > ++// SPDX-License-Identifier: (GPL-2.0+ OR MIT) > + /* > +- * (C) Copyright 2016 Rockchip Electronics Co., Ltd > ++ * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd > + */ > + > + #include <dt-bindings/clock/rk3328-cru.h> > +@@ -26,7 +26,7 @@ > + i2c3 = &i2c3; > + mmc0 = &emmc; > + mmc1 = &sdmmc; > +- mmc2 = &sdmmc_ext; > ++ mmc2 = &usb_host0_ehci; > + }; > + > + cpus { > +@@ -37,67 +37,101 @@ > + device_type = "cpu"; > + compatible = "arm,cortex-a53", "arm,armv8"; > + reg = <0x0 0x0>; > ++ clocks = <&cru ARMCLK>; > + enable-method = "psci"; > +-// clocks = <&cru ARMCLK>; > ++ next-level-cache = <&l2>; > + operating-points-v2 = <&cpu0_opp_table>; > + }; > ++ > + cpu1: cpu@1 { > + device_type = "cpu"; > + compatible = "arm,cortex-a53", "arm,armv8"; > + reg = <0x0 0x1>; > ++ clocks = <&cru ARMCLK>; > + enable-method = "psci"; > ++ next-level-cache = <&l2>; > ++ operating-points-v2 = <&cpu0_opp_table>; > + }; > ++ > + cpu2: cpu@2 { > + device_type = "cpu"; > + compatible = "arm,cortex-a53", "arm,armv8"; > + reg = <0x0 0x2>; > ++ clocks = <&cru ARMCLK>; > + enable-method = "psci"; > ++ next-level-cache = <&l2>; > ++ operating-points-v2 = <&cpu0_opp_table>; > + }; > ++ > + cpu3: cpu@3 { > + device_type = "cpu"; > + compatible = "arm,cortex-a53", "arm,armv8"; > + reg = <0x0 0x3>; > ++ clocks = <&cru ARMCLK>; > + enable-method = "psci"; > ++ next-level-cache = <&l2>; > ++ operating-points-v2 = <&cpu0_opp_table>; > + }; > ++ > ++ l2: l2-cache0 { > ++ compatible = "cache"; > ++ }; > + }; > + > + cpu0_opp_table: opp_table0 { > + compatible = "operating-points-v2"; > + opp-shared; > + > +- opp@408000000 { > ++ opp-408000000 { > + opp-hz = /bits/ 64 <408000000>; > + opp-microvolt = <950000>; > + clock-latency-ns = <40000>; > + opp-suspend; > + }; > +- opp@600000000 { > ++ opp-600000000 { > + opp-hz = /bits/ 64 <600000000>; > + opp-microvolt = <950000>; > + clock-latency-ns = <40000>; > + }; > +- opp@816000000 { > ++ opp-816000000 { > + opp-hz = /bits/ 64 <816000000>; > + opp-microvolt = <1000000>; > + clock-latency-ns = <40000>; > + }; > +- opp@1008000000 { > ++ opp-1008000000 { > + opp-hz = /bits/ 64 <1008000000>; > + opp-microvolt = <1100000>; > + clock-latency-ns = <40000>; > + }; > +- opp@1200000000 { > ++ opp-1200000000 { > + opp-hz = /bits/ 64 <1200000000>; > + opp-microvolt = <1225000>; > + clock-latency-ns = <40000>; > + }; > +- opp@1296000000 { > ++ opp-1296000000 { > + opp-hz = /bits/ 64 <1296000000>; > + opp-microvolt = <1300000>; > + clock-latency-ns = <40000>; > + }; > + }; > + > ++ amba { > ++ compatible = "simple-bus"; > ++ #address-cells = <2>; > ++ #size-cells = <2>; > ++ ranges; > ++ > ++ dmac: dmac@ff1f0000 { > ++ compatible = "arm,pl330", "arm,primecell"; > ++ reg = <0x0 0xff1f0000 0x0 0x4000>; > ++ interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>, > ++ <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>; > ++ clocks = <&cru ACLK_DMAC>; > ++ clock-names = "apb_pclk"; > ++ #dma-cells = <1>; > ++ }; > ++ }; > ++ > + arm-pmu { > + compatible = "arm,cortex-a53-pmu"; > + interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>, > +@@ -107,8 +141,13 @@ > + interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>; > + }; > + > ++ display_subsystem: display-subsystem { > ++ compatible = "rockchip,display-subsystem"; > ++ ports = <&vop_out>; > ++ }; > ++ > + psci { > +- compatible = "arm,psci-1.0"; > ++ compatible = "arm,psci-1.0", "arm,psci-0.2"; > + method = "smc"; > + }; > + > +@@ -134,7 +173,6 @@ > + clocks = <&cru SCLK_I2S0>, <&cru HCLK_I2S0_8CH>; > + clock-names = "i2s_clk", "i2s_hclk"; > + dmas = <&dmac 11>, <&dmac 12>; > +- #dma-cells = <2>; > + dma-names = "tx", "rx"; > + status = "disabled"; > + }; > +@@ -146,7 +184,6 @@ > + clocks = <&cru SCLK_I2S1>, <&cru HCLK_I2S1_8CH>; > + clock-names = "i2s_clk", "i2s_hclk"; > + dmas = <&dmac 14>, <&dmac 15>; > +- #dma-cells = <2>; > + dma-names = "tx", "rx"; > + status = "disabled"; > + }; > +@@ -158,16 +195,7 @@ > + clocks = <&cru SCLK_I2S2>, <&cru HCLK_I2S2_2CH>; > + clock-names = "i2s_clk", "i2s_hclk"; > + dmas = <&dmac 0>, <&dmac 1>; > +- #dma-cells = <2>; > + dma-names = "tx", "rx"; > +- pinctrl-names = "default", "sleep"; > +- pinctrl-0 = <&i2s2m0_mclk > +- &i2s2m0_sclk > +- &i2s2m0_lrcktx > +- &i2s2m0_lrckrx > +- &i2s2m0_sdo > +- &i2s2m0_sdi>; > +- pinctrl-1 = <&i2s2m0_sleep>; > + status = "disabled"; > + }; > + > +@@ -178,21 +206,49 @@ > + clocks = <&cru SCLK_SPDIF>, <&cru HCLK_SPDIF_8CH>; > + clock-names = "mclk", "hclk"; > + dmas = <&dmac 10>; > +- #dma-cells = <1>; > + dma-names = "tx"; > + pinctrl-names = "default"; > + pinctrl-0 = <&spdifm2_tx>; > + status = "disabled"; > + }; > + > ++ pdm: pdm@ff040000 { > ++ compatible = "rockchip,pdm"; > ++ reg = <0x0 0xff040000 0x0 0x1000>; > ++ clocks = <&cru SCLK_PDM>, <&cru HCLK_PDM>; > ++ clock-names = "pdm_clk", "pdm_hclk"; > ++ dmas = <&dmac 16>; > ++ dma-names = "rx"; > ++ pinctrl-names = "default", "sleep"; > ++ pinctrl-0 = <&pdmm0_clk > ++ &pdmm0_sdi0 > ++ &pdmm0_sdi1 > ++ &pdmm0_sdi2 > ++ &pdmm0_sdi3>; > ++ pinctrl-1 = <&pdmm0_clk_sleep > ++ &pdmm0_sdi0_sleep > ++ &pdmm0_sdi1_sleep > ++ &pdmm0_sdi2_sleep > ++ &pdmm0_sdi3_sleep>; > ++ status = "disabled"; > ++ }; > ++ > + grf: syscon@ff100000 { > + compatible = "rockchip,rk3328-grf", "syscon", "simple-mfd"; > + reg = <0x0 0xff100000 0x0 0x1000>; > ++ #address-cells = <1>; > ++ #size-cells = <1>; > + > + io_domains: io-domains { > + compatible = "rockchip,rk3328-io-voltage-domain"; > + status = "disabled"; > + }; > ++ > ++ grf_gpio: grf-gpio { > ++ compatible = "rockchip,rk3328-grf-gpio"; > ++ gpio-controller; > ++ #gpio-cells = <2>; > ++ }; > + }; > + > + uart0: serial@ff110000 { > +@@ -201,12 +257,12 @@ > + interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>; > + clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>; > + clock-names = "baudclk", "apb_pclk"; > +- reg-shift = <2>; > +- reg-io-width = <4>; > + dmas = <&dmac 2>, <&dmac 3>; > +- #dma-cells = <2>; > ++ dma-names = "tx", "rx"; > + pinctrl-names = "default"; > + pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>; > ++ reg-io-width = <4>; > ++ reg-shift = <2>; > + status = "disabled"; > + }; > + > +@@ -215,13 +271,13 @@ > + reg = <0x0 0xff120000 0x0 0x100>; > + interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>; > + clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>; > +- clock-names = "sclk_uart", "pclk_uart"; > +- reg-shift = <2>; > +- reg-io-width = <4>; > ++ clock-names = "baudclk", "apb_pclk"; > + dmas = <&dmac 4>, <&dmac 5>; > +- #dma-cells = <2>; > ++ dma-names = "tx", "rx"; > + pinctrl-names = "default"; > + pinctrl-0 = <&uart1_xfer &uart1_cts &uart1_rts>; > ++ reg-io-width = <4>; > ++ reg-shift = <2>; > + status = "disabled"; > + }; > + > +@@ -231,22 +287,17 @@ > + interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>; > + clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>; > + clock-names = "baudclk", "apb_pclk"; > +- reg-shift = <2>; > +- reg-io-width = <4>; > + dmas = <&dmac 6>, <&dmac 7>; > +- #dma-cells = <2>; > ++ dma-names = "tx", "rx"; > + pinctrl-names = "default"; > + pinctrl-0 = <&uart2m1_xfer>; > ++ reg-io-width = <4>; > ++ reg-shift = <2>; > + status = "disabled"; > + }; > + > +- pmu: power-management@ff140000 { > +- compatible = "rockchip,rk3328-pmu", "syscon", "simple-mfd"; > +- reg = <0x0 0xff140000 0x0 0x1000>; > +- }; > +- > + i2c0: i2c@ff150000 { > +- compatible = "rockchip,rk3328-i2c"; > ++ compatible = "rockchip,rk3328-i2c", "rockchip,rk3399-i2c"; > + reg = <0x0 0xff150000 0x0 0x1000>; > + interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; > + #address-cells = <1>; > +@@ -259,7 +310,7 @@ > + }; > + > + i2c1: i2c@ff160000 { > +- compatible = "rockchip,rk3328-i2c"; > ++ compatible = "rockchip,rk3328-i2c", "rockchip,rk3399-i2c"; > + reg = <0x0 0xff160000 0x0 0x1000>; > + interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; > + #address-cells = <1>; > +@@ -272,7 +323,7 @@ > + }; > + > + i2c2: i2c@ff170000 { > +- compatible = "rockchip,rk3328-i2c"; > ++ compatible = "rockchip,rk3328-i2c", "rockchip,rk3399-i2c"; > + reg = <0x0 0xff170000 0x0 0x1000>; > + interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>; > + #address-cells = <1>; > +@@ -285,7 +336,7 @@ > + }; > + > + i2c3: i2c@ff180000 { > +- compatible = "rockchip,rk3328-i2c"; > ++ compatible = "rockchip,rk3328-i2c", "rockchip,rk3399-i2c"; > + reg = <0x0 0xff180000 0x0 0x1000>; > + interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>; > + #address-cells = <1>; > +@@ -306,7 +357,6 @@ > + clocks = <&cru SCLK_SPI>, <&cru PCLK_SPI>; > + clock-names = "spiclk", "apb_pclk"; > + dmas = <&dmac 8>, <&dmac 9>; > +- #dma-cells = <2>; > + dma-names = "tx", "rx"; > + pinctrl-names = "default"; > + pinctrl-0 = <&spi0m2_clk &spi0m2_tx &spi0m2_rx &spi0m2_cs0>; > +@@ -317,28 +367,100 @@ > + compatible = "snps,dw-wdt"; > + reg = <0x0 0xff1a0000 0x0 0x100>; > + interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>; > ++ }; > ++ > ++ pwm0: pwm@ff1b0000 { > ++ compatible = "rockchip,rk3328-pwm"; > ++ reg = <0x0 0xff1b0000 0x0 0x10>; > ++ clocks = <&cru SCLK_PWM>, <&cru PCLK_PWM>; > ++ clock-names = "pwm", "pclk"; > ++ pinctrl-names = "default"; > ++ pinctrl-0 = <&pwm0_pin>; > ++ #pwm-cells = <3>; > + status = "disabled"; > + }; > + > +- amba { > +- compatible = "simple-bus"; > +- #address-cells = <2>; > +- #size-cells = <2>; > +- ranges; > ++ pwm1: pwm@ff1b0010 { > ++ compatible = "rockchip,rk3328-pwm"; > ++ reg = <0x0 0xff1b0010 0x0 0x10>; > ++ clocks = <&cru SCLK_PWM>, <&cru PCLK_PWM>; > ++ clock-names = "pwm", "pclk"; > ++ pinctrl-names = "default"; > ++ pinctrl-0 = <&pwm1_pin>; > ++ #pwm-cells = <3>; > ++ status = "disabled"; > ++ }; > + > +- dmac: dmac@ff1f0000 { > +- compatible = "arm,pl330", "arm,primecell"; > +- reg = <0x0 0xff1f0000 0x0 0x4000>; > +- interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>, > +- <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>; > +- clocks = <&cru ACLK_DMAC>; > +- clock-names = "apb_pclk"; > +- #dma-cells = <1>; > ++ pwm2: pwm@ff1b0020 { > ++ compatible = "rockchip,rk3328-pwm"; > ++ reg = <0x0 0xff1b0020 0x0 0x10>; > ++ clocks = <&cru SCLK_PWM>, <&cru PCLK_PWM>; > ++ clock-names = "pwm", "pclk"; > ++ pinctrl-names = "default"; > ++ pinctrl-0 = <&pwm2_pin>; > ++ #pwm-cells = <3>; > ++ status = "disabled"; > ++ }; > ++ > ++ pwm3: pwm@ff1b0030 { > ++ compatible = "rockchip,rk3328-pwm"; > ++ reg = <0x0 0xff1b0030 0x0 0x10>; > ++ interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>; > ++ clocks = <&cru SCLK_PWM>, <&cru PCLK_PWM>; > ++ clock-names = "pwm", "pclk"; > ++ pinctrl-names = "default"; > ++ pinctrl-0 = <&pwmir_pin>; > ++ #pwm-cells = <3>; > ++ status = "disabled"; > ++ }; > ++ > ++ tsadc: tsadc@ff250000 { > ++ compatible = "rockchip,rk3328-tsadc"; > ++ reg = <0x0 0xff250000 0x0 0x100>; > ++ interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>; > ++ assigned-clocks = <&cru SCLK_TSADC>; > ++ assigned-clock-rates = <50000>; > ++ clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>; > ++ clock-names = "tsadc", "apb_pclk"; > ++ pinctrl-names = "init", "default", "sleep"; > ++ pinctrl-0 = <&otp_gpio>; > ++ pinctrl-1 = <&otp_out>; > ++ pinctrl-2 = <&otp_gpio>; > ++ resets = <&cru SRST_TSADC>; > ++ reset-names = "tsadc-apb"; > ++ rockchip,grf = <&grf>; > ++ rockchip,hw-tshut-temp = <100000>; > ++ #thermal-sensor-cells = <1>; > ++ status = "disabled"; > ++ }; > ++ > ++ efuse: efuse@ff260000 { > ++ compatible = "rockchip,rk3328-efuse"; > ++ reg = <0x0 0xff260000 0x0 0x50>; > ++ #address-cells = <1>; > ++ #size-cells = <1>; > ++ clocks = <&cru SCLK_EFUSE>; > ++ clock-names = "pclk_efuse"; > ++ rockchip,efuse-size = <0x20>; > ++ > ++ /* Data cells */ > ++ efuse_id: id@7 { > ++ reg = <0x07 0x10>; > + }; > ++ cpu_leakage: cpu-leakage@17 { > ++ reg = <0x17 0x1>; > ++ }; > ++ logic_leakage: logic-leakage@19 { > ++ reg = <0x19 0x1>; > ++ }; > ++ efuse_cpu_version: cpu-version@1a { > ++ reg = <0x1a 0x1>; > ++ bits = <3 3>; > ++ }; > + }; > + > +- saradc: saradc@ff280000 { > +- compatible = "rockchip,rk3328-saradc", "rockchip,saradc"; > ++ saradc: adc@ff280000 { > ++ compatible = "rockchip,rk3328-saradc", "rockchip,rk3399-saradc"; > + reg = <0x0 0xff280000 0x0 0x100>; > + interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>; > + #io-channel-cells = <1>; > +@@ -349,6 +471,145 @@ > + status = "disabled"; > + }; > + > ++ gpu: gpu@ff300000 { > ++ compatible = "rockchip,rk3328-mali", "arm,mali-450"; > ++ reg = <0x0 0xff300000 0x0 0x40000>; > ++ interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>, > ++ <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>, > ++ <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>, > ++ <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>, > ++ <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>, > ++ <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>, > ++ <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>; > ++ interrupt-names = "gp", > ++ "gpmmu", > ++ "pp", > ++ "pp0", > ++ "ppmmu0", > ++ "pp1", > ++ "ppmmu1"; > ++ clocks = <&cru ACLK_GPU>, <&cru ACLK_GPU>; > ++ clock-names = "bus", "core"; > ++ resets = <&cru SRST_GPU_A>; > ++ }; > ++ > ++ h265e_mmu: iommu@ff330200 { > ++ compatible = "rockchip,iommu"; > ++ reg = <0x0 0xff330200 0 0x100>; > ++ interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>; > ++ interrupt-names = "h265e_mmu"; > ++ clocks = <&cru ACLK_H265>, <&cru PCLK_H265>; > ++ clock-names = "aclk", "iface"; > ++ #iommu-cells = <0>; > ++ status = "disabled"; > ++ }; > ++ > ++ vepu_mmu: iommu@ff340800 { > ++ compatible = "rockchip,iommu"; > ++ reg = <0x0 0xff340800 0x0 0x40>; > ++ interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; > ++ interrupt-names = "vepu_mmu"; > ++ clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>; > ++ clock-names = "aclk", "iface"; > ++ #iommu-cells = <0>; > ++ status = "disabled"; > ++ }; > ++ > ++ vpu_mmu: iommu@ff350800 { > ++ compatible = "rockchip,iommu"; > ++ reg = <0x0 0xff350800 0x0 0x40>; > ++ interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>; > ++ interrupt-names = "vpu_mmu"; > ++ clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>; > ++ clock-names = "aclk", "iface"; > ++ #iommu-cells = <0>; > ++ status = "disabled"; > ++ }; > ++ > ++ rkvdec_mmu: iommu@ff360480 { > ++ compatible = "rockchip,iommu"; > ++ reg = <0x0 0xff360480 0x0 0x40>, <0x0 0xff3604c0 0x0 0x40>; > ++ interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; > ++ interrupt-names = "rkvdec_mmu"; > ++ clocks = <&cru ACLK_RKVDEC>, <&cru HCLK_RKVDEC>; > ++ clock-names = "aclk", "iface"; > ++ #iommu-cells = <0>; > ++ status = "disabled"; > ++ }; > ++ > ++ vop: vop@ff370000 { > ++ compatible = "rockchip,rk3328-vop"; > ++ reg = <0x0 0xff370000 0x0 0x3efc>; > ++ interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; > ++ clocks = <&cru ACLK_VOP>, <&cru DCLK_LCDC>, <&cru HCLK_VOP>; > ++ clock-names = "aclk_vop", "dclk_vop", "hclk_vop"; > ++ resets = <&cru SRST_VOP_A>, <&cru SRST_VOP_H>, <&cru > SRST_VOP_D>; > ++ reset-names = "axi", "ahb", "dclk"; > ++ iommus = <&vop_mmu>; > ++ status = "disabled"; > ++ > ++ vop_out: port { > ++ #address-cells = <1>; > ++ #size-cells = <0>; > ++ > ++ vop_out_hdmi: endpoint@0 { > ++ reg = <0>; > ++ remote-endpoint = <&hdmi_in_vop>; > ++ }; > ++ }; > ++ }; > ++ > ++ vop_mmu: iommu@ff373f00 { > ++ compatible = "rockchip,iommu"; > ++ reg = <0x0 0xff373f00 0x0 0x100>; > ++ interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; > ++ interrupt-names = "vop_mmu"; > ++ clocks = <&cru ACLK_VOP>, <&cru HCLK_VOP>; > ++ clock-names = "aclk", "iface"; > ++ #iommu-cells = <0>; > ++ status = "disabled"; > ++ }; > ++ > ++ hdmi: hdmi@ff3c0000 { > ++ compatible = "rockchip,rk3328-dw-hdmi"; > ++ reg = <0x0 0xff3c0000 0x0 0x20000>; > ++ reg-io-width = <4>; > ++ interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>, > ++ <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>; > ++ clocks = <&cru PCLK_HDMI>, > ++ <&cru SCLK_HDMI_SFC>; > ++ clock-names = "iahb", > ++ "isfr"; > ++ phys = <&hdmiphy>; > ++ phy-names = "hdmi"; > ++ pinctrl-names = "default"; > ++ pinctrl-0 = <&hdmi_cec &hdmii2c_xfer &hdmi_hpd>; > ++ rockchip,grf = <&grf>; > ++ status = "disabled"; > ++ > ++ ports { > ++ hdmi_in: port { > ++ hdmi_in_vop: endpoint { > ++ remote-endpoint = <&vop_out_hdmi>; > ++ }; > ++ }; > ++ }; > ++ }; > ++ > ++ hdmiphy: phy@ff430000 { > ++ compatible = "rockchip,rk3328-hdmi-phy"; > ++ reg = <0x0 0xff430000 0x0 0x10000>; > ++ interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; > ++ clocks = <&cru PCLK_HDMIPHY>, <&xin24m>, <&cru DCLK_HDMIPHY>; > ++ clock-names = "sysclk", "refoclk", "refpclk"; > ++ clock-output-names = "hdmi_phy"; > ++ #clock-cells = <0>; > ++ nvmem-cells = <&efuse_cpu_version>; > ++ nvmem-cell-names = "cpu-version"; > ++ #phy-cells = <0>; > ++ status = "disabled"; > ++ }; > ++ > + cru: clock-controller@ff440000 { > + compatible = "rockchip,rk3328-cru", "rockchip,cru", "syscon"; > + reg = <0x0 0xff440000 0x0 0x1000>; > +@@ -356,6 +617,12 @@ > + #clock-cells = <1>; > + #reset-cells = <1>; > + assigned-clocks = > ++ /* > ++ * CPLL should run at 1200, but that is to high for > ++ * the initial dividers of most of its children. > ++ * We need set cpll child clk div first, > ++ * and then set the cpll frequency. > ++ */ > + <&cru DCLK_LCDC>, <&cru SCLK_PDM>, > + <&cru SCLK_RTC32K>, <&cru SCLK_UART0>, > + <&cru SCLK_UART1>, <&cru SCLK_UART2>, > +@@ -371,15 +638,7 @@ > + <&cru ACLK_BUS_PRE>, <&cru HCLK_BUS_PRE>, > + <&cru PCLK_BUS_PRE>, <&cru ACLK_PERI_PRE>, > + <&cru HCLK_PERI>, <&cru PCLK_PERI>, > +- <&cru ACLK_VIO_PRE>, <&cru HCLK_VIO_PRE>, > +- <&cru ACLK_RGA_PRE>, <&cru SCLK_RGA>, > +- <&cru ACLK_VOP_PRE>, <&cru ACLK_RKVDEC_PRE>, > +- <&cru ACLK_RKVENC>, <&cru ACLK_VPU_PRE>, > +- <&cru SCLK_VDEC_CABAC>, <&cru SCLK_VDEC_CORE>, > +- <&cru SCLK_VENC_CORE>, <&cru SCLK_VENC_DSP>, > +- <&cru SCLK_EFUSE>, <&cru PCLK_DDR>, > +- <&cru ACLK_GMAC>, <&cru PCLK_GMAC>, > +- <&cru SCLK_RTC32K>, <&cru SCLK_USB3OTG_SUSPEND>; > ++ <&cru SCLK_RTC32K>; > + assigned-clock-parents = > + <&cru HDMIPHY>, <&cru PLL_APLL>, > + <&cru PLL_GPLL>, <&xin24m>, > +@@ -400,55 +659,82 @@ > + <150000000>, <75000000>, > + <75000000>, <150000000>, > + <75000000>, <75000000>, > +- <300000000>, <100000000>, > +- <300000000>, <200000000>, > +- <400000000>, <500000000>, > +- <200000000>, <300000000>, > +- <300000000>, <250000000>, > +- <200000000>, <100000000>, > +- <24000000>, <100000000>, > +- <150000000>, <50000000>, > +- <32768>, <32768>; > ++ <32768>; > + }; > + > +- sdmmc: rksdmmc@ff500000 { > ++ usb2phy_grf: syscon@ff450000 { > ++ compatible = "rockchip,rk3328-usb2phy-grf", "syscon", > ++ "simple-mfd"; > ++ reg = <0x0 0xff450000 0x0 0x10000>; > ++ #address-cells = <1>; > ++ #size-cells = <1>; > ++ > ++ u2phy: usb2-phy@100 { > ++ compatible = "rockchip,rk3328-usb2phy"; > ++ reg = <0x100 0x10>; > ++ clocks = <&xin24m>; > ++ clock-names = "phyclk"; > ++ clock-output-names = "usb480m_phy"; > ++ #clock-cells = <0>; > ++ assigned-clocks = <&cru USB480M>; > ++ assigned-clock-parents = <&u2phy>; > ++ status = "disabled"; > ++ > ++ u2phy_otg: otg-port { > ++ #phy-cells = <0>; > ++ interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>, > ++ <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>, > ++ <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>; > ++ interrupt-names = "otg-bvalid", "otg-id", > ++ "linestate"; > ++ status = "disabled"; > ++ }; > ++ > ++ u2phy_host: host-port { > ++ #phy-cells = <0>; > ++ interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>; > ++ interrupt-names = "linestate"; > ++ status = "disabled"; > ++ }; > ++ }; > ++ }; > ++ > ++ sdmmc: dwmmc@ff500000 { > + compatible = "rockchip,rk3328-dw-mshc", > "rockchip,rk3288-dw-mshc"; > + reg = <0x0 0xff500000 0x0 0x4000>; > +- max-frequency = <150000000>; > +- clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>; > +- clock-names = "biu", "ciu"; > +- fifo-depth = <0x100>; > + interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; > ++ clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>, > ++ <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>; > ++ clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; > ++ fifo-depth = <0x100>; > + status = "disabled"; > + }; > + > + sdio: dwmmc@ff510000 { > + compatible = "rockchip,rk3328-dw-mshc", > "rockchip,rk3288-dw-mshc"; > + reg = <0x0 0xff510000 0x0 0x4000>; > +- max-frequency = <150000000>; > ++ interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; > + clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>, > + <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>; > +- clock-names = "biu", "ciu", "ciu_drv", "ciu_sample"; > ++ clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; > + fifo-depth = <0x100>; > +- interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; > + status = "disabled"; > + }; > + > +- emmc: rksdmmc@ff520000 { > ++ emmc: dwmmc@ff520000 { > + compatible = "rockchip,rk3328-dw-mshc", > "rockchip,rk3288-dw-mshc"; > + reg = <0x0 0xff520000 0x0 0x4000>; > +- max-frequency = <150000000>; > +- clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>; > +- clock-names = "biu", "ciu"; > +- fifo-depth = <0x100>; > + interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; > ++ clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>, > ++ <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>; > ++ clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; > ++ fifo-depth = <0x100>; > + status = "disabled"; > + }; > + > + gmac2io: ethernet@ff540000 { > + compatible = "rockchip,rk3328-gmac"; > + reg = <0x0 0xff540000 0x0 0x10000>; > +- rockchip,grf = <&grf>; > + interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; > + interrupt-names = "macirq"; > + clocks = <&cru SCLK_MAC2IO>, <&cru SCLK_MAC2IO_RX>, > +@@ -461,21 +747,45 @@ > + "pclk_mac"; > + resets = <&cru SRST_GMAC2IO_A>; > + reset-names = "stmmaceth"; > ++ rockchip,grf = <&grf>; > + status = "disabled"; > + }; > + > +- usb_host0_ehci: usb@ff5c0000 { > +- compatible = "generic-ehci"; > +- reg = <0x0 0xff5c0000 0x0 0x10000>; > +- interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; > ++ gmac2phy: ethernet@ff550000 { > ++ compatible = "rockchip,rk3328-gmac"; > ++ reg = <0x0 0xff550000 0x0 0x10000>; > ++ rockchip,grf = <&grf>; > ++ interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; > ++ interrupt-names = "macirq"; > ++ clocks = <&cru SCLK_MAC2PHY_SRC>, <&cru SCLK_MAC2PHY_RXTX>, > ++ <&cru SCLK_MAC2PHY_RXTX>, <&cru SCLK_MAC2PHY_REF>, > ++ <&cru ACLK_MAC2PHY>, <&cru PCLK_MAC2PHY>, > ++ <&cru SCLK_MAC2PHY_OUT>; > ++ clock-names = "stmmaceth", "mac_clk_rx", > ++ "mac_clk_tx", "clk_mac_ref", > ++ "aclk_mac", "pclk_mac", > ++ "clk_macphy"; > ++ resets = <&cru SRST_GMAC2PHY_A>, <&cru SRST_MACPHY>; > ++ reset-names = "stmmaceth", "mac-phy"; > ++ phy-mode = "rmii"; > ++ phy-handle = <&phy>; > + status = "disabled"; > +- }; > + > +- usb_host0_ohci: usb@ff5d0000 { > +- compatible = "generic-ohci"; > +- reg = <0x0 0xff5d0000 0x0 0x10000>; > +- interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; > +- status = "disabled"; > ++ mdio { > ++ compatible = "snps,dwmac-mdio"; > ++ #address-cells = <1>; > ++ #size-cells = <0>; > ++ > ++ phy: phy@0 { > ++ compatible = "ethernet-phy-id1234.d400", > "ethernet-phy-ieee802.3-c22"; > ++ reg = <0>; > ++ clocks = <&cru SCLK_MAC2PHY_OUT>; > ++ resets = <&cru SRST_MACPHY>; > ++ pinctrl-names = "default"; > ++ pinctrl-0 = <&fephyled_rxm1 &fephyled_linkm1>; > ++ phy-is-integrated; > ++ }; > ++ }; > + }; > + > + usb20_otg: usb@ff580000 { > +@@ -483,23 +793,41 @@ > + "snps,dwc2"; > + reg = <0x0 0xff580000 0x0 0x40000>; > + interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>; > +- hnp-srp-disable; > ++ clocks = <&cru HCLK_OTG>; > ++ clock-names = "otg"; > + dr_mode = "otg"; > ++ g-np-tx-fifo-size = <16>; > ++ g-rx-fifo-size = <280>; > ++ g-tx-fifo-size = <256 128 128 64 32 16>; > ++ g-use-dma; > ++ phys = <&u2phy_otg>; > ++ phy-names = "usb2-phy"; > + status = "disabled"; > + }; > + > +- sdmmc_ext: rksdmmc@ff5f0000 { > +- compatible = "rockchip,rk3328-dw-mshc", > "rockchip,rk3288-dw-mshc"; > +- reg = <0x0 0xff5f0000 0x0 0x4000>; > +- max-frequency = <150000000>; > +- clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>; > +- clock-names = "biu", "ciu"; > +- fifo-depth = <0x100>; > +- interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; > ++ usb_host0_ehci: usb@ff5c0000 { > ++ compatible = "generic-ehci"; > ++ reg = <0x0 0xff5c0000 0x0 0x10000>; > ++ interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; > ++ clocks = <&cru HCLK_HOST0>, <&u2phy>; > ++ clock-names = "usbhost", "utmi"; > ++ phys = <&u2phy_host>; > ++ phy-names = "usb"; > + status = "disabled"; > + }; > + > +- gic: interrupt-controller@ffb70000 { > ++ usb_host0_ohci: usb@ff5d0000 { > ++ compatible = "generic-ohci"; > ++ reg = <0x0 0xff5d0000 0x0 0x10000>; > ++ interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; > ++ clocks = <&cru HCLK_HOST0>, <&u2phy>; > ++ clock-names = "usbhost", "utmi"; > ++ phys = <&u2phy_host>; > ++ phy-names = "usb"; > ++ status = "disabled"; > ++ }; > ++ > ++ gic: interrupt-controller@ff811000 { > + compatible = "arm,gic-400"; > + #interrupt-cells = <3>; > + #address-cells = <0>; > +@@ -647,812 +975,721 @@ > + > + i2c0 { > + i2c0_xfer: i2c0-xfer { > +- rockchip,pins = > +- <2 24 RK_FUNC_1 &pcfg_pull_none>, > +- <2 25 RK_FUNC_1 &pcfg_pull_none>; > ++ rockchip,pins = <2 RK_PD0 1 &pcfg_pull_none>, > ++ <2 RK_PD1 1 &pcfg_pull_none>; > + }; > + }; > + > + i2c1 { > + i2c1_xfer: i2c1-xfer { > +- rockchip,pins = > +- <2 4 RK_FUNC_2 &pcfg_pull_none>, > +- <2 5 RK_FUNC_2 &pcfg_pull_none>; > ++ rockchip,pins = <2 RK_PA4 2 &pcfg_pull_none>, > ++ <2 RK_PA5 2 &pcfg_pull_none>; > + }; > + }; > + > + i2c2 { > + i2c2_xfer: i2c2-xfer { > +- rockchip,pins = > +- <2 13 RK_FUNC_1 &pcfg_pull_none>, > +- <2 14 RK_FUNC_1 &pcfg_pull_none>; > ++ rockchip,pins = <2 RK_PB5 1 &pcfg_pull_none>, > ++ <2 RK_PB6 1 &pcfg_pull_none>; > + }; > + }; > + > + i2c3 { > + i2c3_xfer: i2c3-xfer { > +- rockchip,pins = > +- <0 5 RK_FUNC_2 &pcfg_pull_none>, > +- <0 6 RK_FUNC_2 &pcfg_pull_none>; > ++ rockchip,pins = <0 RK_PA5 2 &pcfg_pull_none>, > ++ <0 RK_PA6 2 &pcfg_pull_none>; > + }; > + i2c3_gpio: i2c3-gpio { > + rockchip,pins = > +- <0 5 RK_FUNC_GPIO &pcfg_pull_none>, > +- <0 6 RK_FUNC_GPIO &pcfg_pull_none>; > ++ <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>, > ++ <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>; > + }; > + }; > + > + hdmi_i2c { > + hdmii2c_xfer: hdmii2c-xfer { > ++ rockchip,pins = <0 RK_PA5 1 &pcfg_pull_none>, > ++ <0 RK_PA6 1 &pcfg_pull_none>; > ++ }; > ++ }; > ++ > ++ pdm-0 { > ++ pdmm0_clk: pdmm0-clk { > ++ rockchip,pins = <2 RK_PC2 2 &pcfg_pull_none>; > ++ }; > ++ > ++ pdmm0_fsync: pdmm0-fsync { > ++ rockchip,pins = <2 RK_PC7 2 &pcfg_pull_none>; > ++ }; > ++ > ++ pdmm0_sdi0: pdmm0-sdi0 { > ++ rockchip,pins = <2 RK_PC3 2 &pcfg_pull_none>; > ++ }; > ++ > ++ pdmm0_sdi1: pdmm0-sdi1 { > ++ rockchip,pins = <2 RK_PC4 2 &pcfg_pull_none>; > ++ }; > ++ > ++ pdmm0_sdi2: pdmm0-sdi2 { > ++ rockchip,pins = <2 RK_PC5 2 &pcfg_pull_none>; > ++ }; > ++ > ++ pdmm0_sdi3: pdmm0-sdi3 { > ++ rockchip,pins = <2 RK_PC6 2 &pcfg_pull_none>; > ++ }; > ++ > ++ pdmm0_clk_sleep: pdmm0-clk-sleep { > + rockchip,pins = > +- <0 5 RK_FUNC_1 &pcfg_pull_none>, > +- <0 6 RK_FUNC_1 &pcfg_pull_none>; > ++ <2 RK_PC2 RK_FUNC_GPIO > &pcfg_input_high>; > + }; > ++ > ++ pdmm0_sdi0_sleep: pdmm0-sdi0-sleep { > ++ rockchip,pins = > ++ <2 RK_PC3 RK_FUNC_GPIO > &pcfg_input_high>; > ++ }; > ++ > ++ pdmm0_sdi1_sleep: pdmm0-sdi1-sleep { > ++ rockchip,pins = > ++ <2 RK_PC4 RK_FUNC_GPIO > &pcfg_input_high>; > ++ }; > ++ > ++ pdmm0_sdi2_sleep: pdmm0-sdi2-sleep { > ++ rockchip,pins = > ++ <2 RK_PC5 RK_FUNC_GPIO > &pcfg_input_high>; > ++ }; > ++ > ++ pdmm0_sdi3_sleep: pdmm0-sdi3-sleep { > ++ rockchip,pins = > ++ <2 RK_PC6 RK_FUNC_GPIO > &pcfg_input_high>; > ++ }; > ++ > ++ pdmm0_fsync_sleep: pdmm0-fsync-sleep { > ++ rockchip,pins = > ++ <2 RK_PC7 RK_FUNC_GPIO > &pcfg_input_high>; > ++ }; > + }; > + > ++ tsadc { > ++ otp_gpio: otp-gpio { > ++ rockchip,pins = <2 RK_PB5 RK_FUNC_GPIO > &pcfg_pull_none>; > ++ }; > ++ > ++ otp_out: otp-out { > ++ rockchip,pins = <2 RK_PB5 1 &pcfg_pull_none>; > ++ }; > ++ }; > ++ > + uart0 { > + uart0_xfer: uart0-xfer { > +- rockchip,pins = > +- <1 9 RK_FUNC_1 &pcfg_pull_up>, > +- <1 8 RK_FUNC_1 &pcfg_pull_none>; > ++ rockchip,pins = <1 RK_PB1 1 &pcfg_pull_up>, > ++ <1 RK_PB0 1 &pcfg_pull_none>; > + }; > + > + uart0_cts: uart0-cts { > +- rockchip,pins = > +- <1 11 RK_FUNC_1 &pcfg_pull_none>; > ++ rockchip,pins = <1 RK_PB3 1 &pcfg_pull_none>; > + }; > + > + uart0_rts: uart0-rts { > +- rockchip,pins = > +- <1 10 RK_FUNC_1 &pcfg_pull_none>; > ++ rockchip,pins = <1 RK_PB2 1 &pcfg_pull_none>; > + }; > + > + uart0_rts_gpio: uart0-rts-gpio { > +- rockchip,pins = > +- <1 10 RK_FUNC_GPIO &pcfg_pull_none>; > ++ rockchip,pins = <1 RK_PB2 RK_FUNC_GPIO > &pcfg_pull_none>; > + }; > + }; > + > + uart1 { > + uart1_xfer: uart1-xfer { > +- rockchip,pins = > +- <3 4 RK_FUNC_4 &pcfg_pull_up>, > +- <3 6 RK_FUNC_4 &pcfg_pull_none>; > ++ rockchip,pins = <3 RK_PA4 4 &pcfg_pull_up>, > ++ <3 RK_PA6 4 &pcfg_pull_none>; > + }; > + > + uart1_cts: uart1-cts { > +- rockchip,pins = > +- <3 7 RK_FUNC_4 &pcfg_pull_none>; > ++ rockchip,pins = <3 RK_PA7 4 &pcfg_pull_none>; > + }; > + > + uart1_rts: uart1-rts { > +- rockchip,pins = > +- <3 5 RK_FUNC_4 &pcfg_pull_none>; > ++ rockchip,pins = <3 RK_PA5 4 &pcfg_pull_none>; > + }; > + > + uart1_rts_gpio: uart1-rts-gpio { > +- rockchip,pins = > +- <3 5 RK_FUNC_GPIO &pcfg_pull_none>; > ++ rockchip,pins = <3 RK_PA5 RK_FUNC_GPIO > &pcfg_pull_none>; > + }; > + }; > + > + uart2-0 { > + uart2m0_xfer: uart2m0-xfer { > +- rockchip,pins = > +- <1 0 RK_FUNC_2 &pcfg_pull_up>, > +- <1 1 RK_FUNC_2 &pcfg_pull_none>; > ++ rockchip,pins = <1 RK_PA0 2 &pcfg_pull_up>, > ++ <1 RK_PA1 2 &pcfg_pull_none>; > + }; > + }; > + > + uart2-1 { > + uart2m1_xfer: uart2m1-xfer { > +- rockchip,pins = > +- <2 0 RK_FUNC_1 &pcfg_pull_up>, > +- <2 1 RK_FUNC_1 &pcfg_pull_none>; > ++ rockchip,pins = <2 RK_PA0 1 &pcfg_pull_up>, > ++ <2 RK_PA1 1 &pcfg_pull_none>; > + }; > + }; > + > + spi0-0 { > + spi0m0_clk: spi0m0-clk { > +- rockchip,pins = > +- <2 8 RK_FUNC_1 &pcfg_pull_up>; > ++ rockchip,pins = <2 RK_PB0 1 &pcfg_pull_up>; > + }; > + > + spi0m0_cs0: spi0m0-cs0 { > +- rockchip,pins = > +- <2 11 RK_FUNC_1 &pcfg_pull_up>; > ++ rockchip,pins = <2 RK_PB3 1 &pcfg_pull_up>; > + }; > + > + spi0m0_tx: spi0m0-tx { > +- rockchip,pins = > +- <2 9 RK_FUNC_1 &pcfg_pull_up>; > ++ rockchip,pins = <2 RK_PB1 1 &pcfg_pull_up>; > + }; > + > + spi0m0_rx: spi0m0-rx { > +- rockchip,pins = > +- <2 10 RK_FUNC_1 &pcfg_pull_up>; > ++ rockchip,pins = <2 RK_PB2 1 &pcfg_pull_up>; > + }; > + > + spi0m0_cs1: spi0m0-cs1 { > +- rockchip,pins = > +- <2 12 RK_FUNC_1 &pcfg_pull_up>; > ++ rockchip,pins = <2 RK_PB4 1 &pcfg_pull_up>; > + }; > + }; > + > + spi0-1 { > + spi0m1_clk: spi0m1-clk { > +- rockchip,pins = > +- <3 23 RK_FUNC_2 &pcfg_pull_up>; > ++ rockchip,pins = <3 RK_PC7 2 &pcfg_pull_up>; > + }; > + > + spi0m1_cs0: spi0m1-cs0 { > +- rockchip,pins = > +- <3 26 RK_FUNC_2 &pcfg_pull_up>; > ++ rockchip,pins = <3 RK_PD2 2 &pcfg_pull_up>; > + }; > + > + spi0m1_tx: spi0m1-tx { > +- rockchip,pins = > +- <3 25 RK_FUNC_2 &pcfg_pull_up>; > ++ rockchip,pins = <3 RK_PD1 2 &pcfg_pull_up>; > + }; > + > + spi0m1_rx: spi0m1-rx { > +- rockchip,pins = > +- <3 24 RK_FUNC_2 &pcfg_pull_up>; > ++ rockchip,pins = <3 RK_PD0 2 &pcfg_pull_up>; > + }; > + > + spi0m1_cs1: spi0m1-cs1 { > +- rockchip,pins = > +- <3 27 RK_FUNC_2 &pcfg_pull_up>; > ++ rockchip,pins = <3 RK_PD3 2 &pcfg_pull_up>; > + }; > + }; > + > + spi0-2 { > + spi0m2_clk: spi0m2-clk { > +- rockchip,pins = > +- <3 0 RK_FUNC_4 &pcfg_pull_up>; > ++ rockchip,pins = <3 RK_PA0 4 &pcfg_pull_up>; > + }; > + > + spi0m2_cs0: spi0m2-cs0 { > +- rockchip,pins = > +- <3 8 RK_FUNC_3 &pcfg_pull_up>; > ++ rockchip,pins = <3 RK_PB0 3 &pcfg_pull_up>; > + }; > + > + spi0m2_tx: spi0m2-tx { > +- rockchip,pins = > +- <3 1 RK_FUNC_4 &pcfg_pull_up>; > ++ rockchip,pins = <3 RK_PA1 4 &pcfg_pull_up>; > + }; > + > + spi0m2_rx: spi0m2-rx { > +- rockchip,pins = > +- <3 2 RK_FUNC_4 &pcfg_pull_up>; > ++ rockchip,pins = <3 RK_PA2 4 &pcfg_pull_up>; > + }; > + }; > + > + i2s1 { > + i2s1_mclk: i2s1-mclk { > +- rockchip,pins = > +- <2 15 RK_FUNC_1 &pcfg_pull_none>; > ++ rockchip,pins = <2 RK_PB7 1 &pcfg_pull_none>; > + }; > + > + i2s1_sclk: i2s1-sclk { > +- rockchip,pins = > +- <2 18 RK_FUNC_1 &pcfg_pull_none>; > ++ rockchip,pins = <2 RK_PC2 1 &pcfg_pull_none>; > + }; > + > + i2s1_lrckrx: i2s1-lrckrx { > +- rockchip,pins = > +- <2 16 RK_FUNC_1 &pcfg_pull_none>; > ++ rockchip,pins = <2 RK_PC0 1 &pcfg_pull_none>; > + }; > + > + i2s1_lrcktx: i2s1-lrcktx { > +- rockchip,pins = > +- <2 17 RK_FUNC_1 &pcfg_pull_none>; > ++ rockchip,pins = <2 RK_PC1 1 &pcfg_pull_none>; > + }; > + > + i2s1_sdi: i2s1-sdi { > +- rockchip,pins = > +- <2 19 RK_FUNC_1 &pcfg_pull_none>; > ++ rockchip,pins = <2 RK_PC3 1 &pcfg_pull_none>; > + }; > + > + i2s1_sdo: i2s1-sdo { > +- rockchip,pins = > +- <2 23 RK_FUNC_1 &pcfg_pull_none>; > ++ rockchip,pins = <2 RK_PC7 1 &pcfg_pull_none>; > + }; > + > + i2s1_sdio1: i2s1-sdio1 { > +- rockchip,pins = > +- <2 20 RK_FUNC_1 &pcfg_pull_none>; > ++ rockchip,pins = <2 RK_PC4 1 &pcfg_pull_none>; > + }; > + > + i2s1_sdio2: i2s1-sdio2 { > +- rockchip,pins = > +- <2 21 RK_FUNC_1 &pcfg_pull_none>; > ++ rockchip,pins = <2 RK_PC5 1 &pcfg_pull_none>; > + }; > + > + i2s1_sdio3: i2s1-sdio3 { > +- rockchip,pins = > +- <2 22 RK_FUNC_1 &pcfg_pull_none>; > ++ rockchip,pins = <2 RK_PC6 1 &pcfg_pull_none>; > + }; > + > + i2s1_sleep: i2s1-sleep { > + rockchip,pins = > +- <2 15 RK_FUNC_GPIO &pcfg_input_high>, > +- <2 16 RK_FUNC_GPIO &pcfg_input_high>, > +- <2 17 RK_FUNC_GPIO &pcfg_input_high>, > +- <2 18 RK_FUNC_GPIO &pcfg_input_high>, > +- <2 19 RK_FUNC_GPIO &pcfg_input_high>, > +- <2 20 RK_FUNC_GPIO &pcfg_input_high>, > +- <2 21 RK_FUNC_GPIO &pcfg_input_high>, > +- <2 22 RK_FUNC_GPIO &pcfg_input_high>, > +- <2 23 RK_FUNC_GPIO &pcfg_input_high>; > ++ <2 RK_PB7 RK_FUNC_GPIO > &pcfg_input_high>, > ++ <2 RK_PC0 RK_FUNC_GPIO > &pcfg_input_high>, > ++ <2 RK_PC1 RK_FUNC_GPIO > &pcfg_input_high>, > ++ <2 RK_PC2 RK_FUNC_GPIO > &pcfg_input_high>, > ++ <2 RK_PC3 RK_FUNC_GPIO > &pcfg_input_high>, > ++ <2 RK_PC4 RK_FUNC_GPIO > &pcfg_input_high>, > ++ <2 RK_PC5 RK_FUNC_GPIO > &pcfg_input_high>, > ++ <2 RK_PC6 RK_FUNC_GPIO > &pcfg_input_high>, > ++ <2 RK_PC7 RK_FUNC_GPIO > &pcfg_input_high>; > + }; > + }; > + > + i2s2-0 { > + i2s2m0_mclk: i2s2m0-mclk { > +- rockchip,pins = > +- <1 21 RK_FUNC_1 &pcfg_pull_none>; > ++ rockchip,pins = <1 RK_PC5 1 &pcfg_pull_none>; > + }; > + > + i2s2m0_sclk: i2s2m0-sclk { > +- rockchip,pins = > +- <1 22 RK_FUNC_1 &pcfg_pull_none>; > ++ rockchip,pins = <1 RK_PC6 1 &pcfg_pull_none>; > + }; > + > + i2s2m0_lrckrx: i2s2m0-lrckrx { > +- rockchip,pins = > +- <1 26 RK_FUNC_1 &pcfg_pull_none>; > ++ rockchip,pins = <1 RK_PD2 1 &pcfg_pull_none>; > + }; > + > + i2s2m0_lrcktx: i2s2m0-lrcktx { > +- rockchip,pins = > +- <1 23 RK_FUNC_1 &pcfg_pull_none>; > ++ rockchip,pins = <1 RK_PC7 1 &pcfg_pull_none>; > + }; > + > + i2s2m0_sdi: i2s2m0-sdi { > +- rockchip,pins = > +- <1 24 RK_FUNC_1 &pcfg_pull_none>; > ++ rockchip,pins = <1 RK_PD0 1 &pcfg_pull_none>; > + }; > + > + i2s2m0_sdo: i2s2m0-sdo { > +- rockchip,pins = > +- <1 25 RK_FUNC_1 &pcfg_pull_none>; > ++ rockchip,pins = <1 RK_PD1 1 &pcfg_pull_none>; > + }; > + > + i2s2m0_sleep: i2s2m0-sleep { > + rockchip,pins = > +- <1 21 RK_FUNC_GPIO &pcfg_input_high>, > +- <1 22 RK_FUNC_GPIO &pcfg_input_high>, > +- <1 26 RK_FUNC_GPIO &pcfg_input_high>, > +- <1 23 RK_FUNC_GPIO &pcfg_input_high>, > +- <1 24 RK_FUNC_GPIO &pcfg_input_high>, > +- <1 25 RK_FUNC_GPIO &pcfg_input_high>; > ++ <1 RK_PC5 RK_FUNC_GPIO > &pcfg_input_high>, > ++ <1 RK_PC6 RK_FUNC_GPIO > &pcfg_input_high>, > ++ <1 RK_PD2 RK_FUNC_GPIO > &pcfg_input_high>, > ++ <1 RK_PC7 RK_FUNC_GPIO > &pcfg_input_high>, > ++ <1 RK_PD0 RK_FUNC_GPIO > &pcfg_input_high>, > ++ <1 RK_PD1 RK_FUNC_GPIO > &pcfg_input_high>; > + }; > + }; > + > + i2s2-1 { > + i2s2m1_mclk: i2s2m1-mclk { > +- rockchip,pins = > +- <1 21 RK_FUNC_1 &pcfg_pull_none>; > ++ rockchip,pins = <1 RK_PC5 1 &pcfg_pull_none>; > + }; > + > + i2s2m1_sclk: i2s2m1-sclk { > +- rockchip,pins = > +- <3 0 RK_FUNC_6 &pcfg_pull_none>; > ++ rockchip,pins = <3 RK_PA0 6 &pcfg_pull_none>; > + }; > + > + i2s2m1_lrckrx: i2sm1-lrckrx { > +- rockchip,pins = > +- <3 8 RK_FUNC_6 &pcfg_pull_none>; > ++ rockchip,pins = <3 RK_PB0 6 &pcfg_pull_none>; > + }; > + > + i2s2m1_lrcktx: i2s2m1-lrcktx { > +- rockchip,pins = > +- <3 8 RK_FUNC_4 &pcfg_pull_none>; > ++ rockchip,pins = <3 RK_PB0 4 &pcfg_pull_none>; > + }; > + > + i2s2m1_sdi: i2s2m1-sdi { > +- rockchip,pins = > +- <3 2 RK_FUNC_6 &pcfg_pull_none>; > ++ rockchip,pins = <3 RK_PA2 6 &pcfg_pull_none>; > + }; > + > + i2s2m1_sdo: i2s2m1-sdo { > +- rockchip,pins = > +- <3 1 RK_FUNC_6 &pcfg_pull_none>; > ++ rockchip,pins = <3 RK_PA1 6 &pcfg_pull_none>; > + }; > + > + i2s2m1_sleep: i2s2m1-sleep { > + rockchip,pins = > +- <1 21 RK_FUNC_GPIO &pcfg_input_high>, > +- <3 0 RK_FUNC_GPIO &pcfg_input_high>, > +- <3 8 RK_FUNC_GPIO &pcfg_input_high>, > +- <3 2 RK_FUNC_GPIO &pcfg_input_high>, > +- <3 1 RK_FUNC_GPIO &pcfg_input_high>; > ++ <1 RK_PC5 RK_FUNC_GPIO > &pcfg_input_high>, > ++ <3 RK_PA0 RK_FUNC_GPIO > &pcfg_input_high>, > ++ <3 RK_PB0 RK_FUNC_GPIO > &pcfg_input_high>, > ++ <3 RK_PA2 RK_FUNC_GPIO > &pcfg_input_high>, > ++ <3 RK_PA1 RK_FUNC_GPIO > &pcfg_input_high>; > + }; > + }; > + > + spdif-0 { > + spdifm0_tx: spdifm0-tx { > +- rockchip,pins = > +- <0 27 RK_FUNC_1 &pcfg_pull_none>; > ++ rockchip,pins = <0 RK_PD3 1 &pcfg_pull_none>; > + }; > + }; > + > + spdif-1 { > + spdifm1_tx: spdifm1-tx { > +- rockchip,pins = > +- <2 17 RK_FUNC_2 &pcfg_pull_none>; > ++ rockchip,pins = <2 RK_PC1 2 &pcfg_pull_none>; > + }; > + }; > + > + spdif-2 { > + spdifm2_tx: spdifm2-tx { > +- rockchip,pins = > +- <0 2 RK_FUNC_2 &pcfg_pull_none>; > ++ rockchip,pins = <0 RK_PA2 2 &pcfg_pull_none>; > + }; > + }; > + > + sdmmc0-0 { > + sdmmc0m0_pwren: sdmmc0m0-pwren { > +- rockchip,pins = > +- <2 7 RK_FUNC_1 &pcfg_pull_up_4ma>; > ++ rockchip,pins = <2 RK_PA7 1 &pcfg_pull_up_4ma>; > + }; > + > + sdmmc0m0_gpio: sdmmc0m0-gpio { > +- rockchip,pins = > +- <2 7 RK_FUNC_GPIO &pcfg_pull_up_4ma>; > ++ rockchip,pins = <2 RK_PA7 RK_FUNC_GPIO > &pcfg_pull_up_4ma>; > + }; > + }; > + > + sdmmc0-1 { > + sdmmc0m1_pwren: sdmmc0m1-pwren { > +- rockchip,pins = > +- <0 30 RK_FUNC_3 &pcfg_pull_up_4ma>; > ++ rockchip,pins = <0 RK_PD6 3 &pcfg_pull_up_4ma>; > + }; > + > + sdmmc0m1_gpio: sdmmc0m1-gpio { > +- rockchip,pins = > +- <0 30 RK_FUNC_GPIO &pcfg_pull_up_4ma>; > ++ rockchip,pins = <0 RK_PD6 RK_FUNC_GPIO > &pcfg_pull_up_4ma>; > + }; > + }; > + > + sdmmc0 { > + sdmmc0_clk: sdmmc0-clk { > +- rockchip,pins = > +- <1 6 RK_FUNC_1 &pcfg_pull_none_4ma>; > ++ rockchip,pins = <1 RK_PA6 1 > &pcfg_pull_none_4ma>; > + }; > + > + sdmmc0_cmd: sdmmc0-cmd { > +- rockchip,pins = > +- <1 4 RK_FUNC_1 &pcfg_pull_up_4ma>; > ++ rockchip,pins = <1 RK_PA4 1 &pcfg_pull_up_4ma>; > + }; > + > + sdmmc0_dectn: sdmmc0-dectn { > +- rockchip,pins = > +- <1 5 RK_FUNC_1 &pcfg_pull_up_4ma>; > ++ rockchip,pins = <1 RK_PA5 1 &pcfg_pull_up_4ma>; > + }; > + > + sdmmc0_wrprt: sdmmc0-wrprt { > +- rockchip,pins = > +- <1 7 RK_FUNC_1 &pcfg_pull_up_4ma>; > ++ rockchip,pins = <1 RK_PA7 1 &pcfg_pull_up_4ma>; > + }; > + > + sdmmc0_bus1: sdmmc0-bus1 { > +- rockchip,pins = > +- <1 0 RK_FUNC_1 &pcfg_pull_up_4ma>; > ++ rockchip,pins = <1 RK_PA0 1 &pcfg_pull_up_4ma>; > + }; > + > + sdmmc0_bus4: sdmmc0-bus4 { > +- rockchip,pins = > +- <1 0 RK_FUNC_1 &pcfg_pull_up_4ma>, > +- <1 1 RK_FUNC_1 &pcfg_pull_up_4ma>, > +- <1 2 RK_FUNC_1 &pcfg_pull_up_4ma>, > +- <1 3 RK_FUNC_1 &pcfg_pull_up_4ma>; > ++ rockchip,pins = <1 RK_PA0 1 &pcfg_pull_up_4ma>, > ++ <1 RK_PA1 1 &pcfg_pull_up_4ma>, > ++ <1 RK_PA2 1 &pcfg_pull_up_4ma>, > ++ <1 RK_PA3 1 &pcfg_pull_up_4ma>; > + }; > + > + sdmmc0_gpio: sdmmc0-gpio { > + rockchip,pins = > +- <1 6 RK_FUNC_GPIO &pcfg_pull_up_4ma>, > +- <1 4 RK_FUNC_GPIO &pcfg_pull_up_4ma>, > +- <1 5 RK_FUNC_GPIO &pcfg_pull_up_4ma>, > +- <1 7 RK_FUNC_GPIO &pcfg_pull_up_4ma>, > +- <1 3 RK_FUNC_GPIO &pcfg_pull_up_4ma>, > +- <1 2 RK_FUNC_GPIO &pcfg_pull_up_4ma>, > +- <1 1 RK_FUNC_GPIO &pcfg_pull_up_4ma>, > +- <1 0 RK_FUNC_GPIO &pcfg_pull_up_4ma>; > ++ <1 RK_PA6 RK_FUNC_GPIO > &pcfg_pull_up_4ma>, > ++ <1 RK_PA4 RK_FUNC_GPIO > &pcfg_pull_up_4ma>, > ++ <1 RK_PA5 RK_FUNC_GPIO > &pcfg_pull_up_4ma>, > ++ <1 RK_PA7 RK_FUNC_GPIO > &pcfg_pull_up_4ma>, > ++ <1 RK_PA3 RK_FUNC_GPIO > &pcfg_pull_up_4ma>, > ++ <1 RK_PA2 RK_FUNC_GPIO > &pcfg_pull_up_4ma>, > ++ <1 RK_PA1 RK_FUNC_GPIO > &pcfg_pull_up_4ma>, > ++ <1 RK_PA0 RK_FUNC_GPIO > &pcfg_pull_up_4ma>; > + }; > + }; > + > + sdmmc0ext { > + sdmmc0ext_clk: sdmmc0ext-clk { > +- rockchip,pins = > +- <3 2 RK_FUNC_3 &pcfg_pull_none_4ma>; > ++ rockchip,pins = <3 RK_PA2 3 > &pcfg_pull_none_4ma>; > + }; > + > + sdmmc0ext_cmd: sdmmc0ext-cmd { > +- rockchip,pins = > +- <3 0 RK_FUNC_3 &pcfg_pull_up_4ma>; > ++ rockchip,pins = <3 RK_PA0 3 &pcfg_pull_up_4ma>; > + }; > + > + sdmmc0ext_wrprt: sdmmc0ext-wrprt { > +- rockchip,pins = > +- <3 3 RK_FUNC_3 &pcfg_pull_up_4ma>; > ++ rockchip,pins = <3 RK_PA3 3 &pcfg_pull_up_4ma>; > + }; > + > + sdmmc0ext_dectn: sdmmc0ext-dectn { > +- rockchip,pins = > +- <3 1 RK_FUNC_3 &pcfg_pull_up_4ma>; > ++ rockchip,pins = <3 RK_PA1 3 &pcfg_pull_up_4ma>; > + }; > + > + sdmmc0ext_bus1: sdmmc0ext-bus1 { > +- rockchip,pins = > +- <3 4 RK_FUNC_3 &pcfg_pull_up_4ma>; > ++ rockchip,pins = <3 RK_PA4 3 &pcfg_pull_up_4ma>; > + }; > + > + sdmmc0ext_bus4: sdmmc0ext-bus4 { > + rockchip,pins = > +- <3 4 RK_FUNC_3 &pcfg_pull_up_4ma>, > +- <3 5 RK_FUNC_3 &pcfg_pull_up_4ma>, > +- <3 6 RK_FUNC_3 &pcfg_pull_up_4ma>, > +- <3 7 RK_FUNC_3 &pcfg_pull_up_4ma>; > ++ <3 RK_PA4 3 &pcfg_pull_up_4ma>, > ++ <3 RK_PA5 3 &pcfg_pull_up_4ma>, > ++ <3 RK_PA6 3 &pcfg_pull_up_4ma>, > ++ <3 RK_PA7 3 &pcfg_pull_up_4ma>; > + }; > + > + sdmmc0ext_gpio: sdmmc0ext-gpio { > + rockchip,pins = > +- <3 0 RK_FUNC_GPIO &pcfg_pull_up_4ma>, > +- <3 1 RK_FUNC_GPIO &pcfg_pull_up_4ma>, > +- <3 2 RK_FUNC_GPIO &pcfg_pull_up_4ma>, > +- <3 3 RK_FUNC_GPIO &pcfg_pull_up_4ma>, > +- <3 4 RK_FUNC_GPIO &pcfg_pull_up_4ma>, > +- <3 5 RK_FUNC_GPIO &pcfg_pull_up_4ma>, > +- <3 6 RK_FUNC_GPIO &pcfg_pull_up_4ma>, > +- <3 7 RK_FUNC_GPIO &pcfg_pull_up_4ma>; > ++ <3 RK_PA0 RK_FUNC_GPIO > &pcfg_pull_up_4ma>, > ++ <3 RK_PA1 RK_FUNC_GPIO > &pcfg_pull_up_4ma>, > ++ <3 RK_PA2 RK_FUNC_GPIO > &pcfg_pull_up_4ma>, > ++ <3 RK_PA3 RK_FUNC_GPIO > &pcfg_pull_up_4ma>, > ++ <3 RK_PA4 RK_FUNC_GPIO > &pcfg_pull_up_4ma>, > ++ <3 RK_PA5 RK_FUNC_GPIO > &pcfg_pull_up_4ma>, > ++ <3 RK_PA6 RK_FUNC_GPIO > &pcfg_pull_up_4ma>, > ++ <3 RK_PA7 RK_FUNC_GPIO > &pcfg_pull_up_4ma>; > + }; > + }; > + > + sdmmc1 { > + sdmmc1_clk: sdmmc1-clk { > +- rockchip,pins = > +- <1 12 RK_FUNC_1 &pcfg_pull_none_8ma>; > ++ rockchip,pins = <1 RK_PB4 1 > &pcfg_pull_none_8ma>; > + }; > + > + sdmmc1_cmd: sdmmc1-cmd { > +- rockchip,pins = > +- <1 13 RK_FUNC_1 &pcfg_pull_up_8ma>; > ++ rockchip,pins = <1 RK_PB5 1 &pcfg_pull_up_8ma>; > + }; > + > + sdmmc1_pwren: sdmmc1-pwren { > +- rockchip,pins = > +- <1 18 RK_FUNC_1 &pcfg_pull_up_8ma>; > ++ rockchip,pins = <1 RK_PC2 1 &pcfg_pull_up_8ma>; > + }; > + > + sdmmc1_wrprt: sdmmc1-wrprt { > +- rockchip,pins = > +- <1 20 RK_FUNC_1 &pcfg_pull_up_8ma>; > ++ rockchip,pins = <1 RK_PC4 1 &pcfg_pull_up_8ma>; > + }; > + > + sdmmc1_dectn: sdmmc1-dectn { > +- rockchip,pins = > +- <1 19 RK_FUNC_1 &pcfg_pull_up_8ma>; > ++ rockchip,pins = <1 RK_PC3 1 &pcfg_pull_up_8ma>; > + }; > + > + sdmmc1_bus1: sdmmc1-bus1 { > +- rockchip,pins = > +- <1 14 RK_FUNC_1 &pcfg_pull_up_8ma>; > ++ rockchip,pins = <1 RK_PB6 1 &pcfg_pull_up_8ma>; > + }; > + > + sdmmc1_bus4: sdmmc1-bus4 { > +- rockchip,pins = > +- <1 12 RK_FUNC_1 &pcfg_pull_up_8ma>, > +- <1 13 RK_FUNC_1 &pcfg_pull_up_8ma>, > +- <1 16 RK_FUNC_1 &pcfg_pull_up_8ma>, > +- <1 17 RK_FUNC_1 &pcfg_pull_up_8ma>; > ++ rockchip,pins = <1 RK_PB6 1 &pcfg_pull_up_8ma>, > ++ <1 RK_PB7 1 &pcfg_pull_up_8ma>, > ++ <1 RK_PC0 1 &pcfg_pull_up_8ma>, > ++ <1 RK_PC1 1 &pcfg_pull_up_8ma>; > + }; > + > + sdmmc1_gpio: sdmmc1-gpio { > + rockchip,pins = > +- <1 12 RK_FUNC_GPIO &pcfg_pull_up_4ma>, > +- <1 13 RK_FUNC_GPIO &pcfg_pull_up_4ma>, > +- <1 14 RK_FUNC_GPIO &pcfg_pull_up_4ma>, > +- <1 15 RK_FUNC_GPIO &pcfg_pull_up_4ma>, > +- <1 16 RK_FUNC_GPIO &pcfg_pull_up_4ma>, > +- <1 17 RK_FUNC_GPIO &pcfg_pull_up_4ma>, > +- <1 18 RK_FUNC_GPIO &pcfg_pull_up_4ma>, > +- <1 19 RK_FUNC_GPIO &pcfg_pull_up_4ma>, > +- <1 20 RK_FUNC_GPIO &pcfg_pull_up_4ma>; > ++ <1 RK_PB4 RK_FUNC_GPIO > &pcfg_pull_up_4ma>, > ++ <1 RK_PB5 RK_FUNC_GPIO > &pcfg_pull_up_4ma>, > ++ <1 RK_PB6 RK_FUNC_GPIO > &pcfg_pull_up_4ma>, > ++ <1 RK_PB7 RK_FUNC_GPIO > &pcfg_pull_up_4ma>, > ++ <1 RK_PC0 RK_FUNC_GPIO > &pcfg_pull_up_4ma>, > ++ <1 RK_PC1 RK_FUNC_GPIO > &pcfg_pull_up_4ma>, > ++ <1 RK_PC2 RK_FUNC_GPIO > &pcfg_pull_up_4ma>, > ++ <1 RK_PC3 RK_FUNC_GPIO > &pcfg_pull_up_4ma>, > ++ <1 RK_PC4 RK_FUNC_GPIO > &pcfg_pull_up_4ma>; > + }; > + }; > + > + emmc { > + emmc_clk: emmc-clk { > +- rockchip,pins = > +- <3 21 RK_FUNC_2 &pcfg_pull_none_12ma>; > ++ rockchip,pins = <3 RK_PC5 2 > &pcfg_pull_none_12ma>; > + }; > + > + emmc_cmd: emmc-cmd { > +- rockchip,pins = > +- <3 19 RK_FUNC_2 &pcfg_pull_up_12ma>; > ++ rockchip,pins = <3 RK_PC3 2 &pcfg_pull_up_12ma>; > + }; > + > + emmc_pwren: emmc-pwren { > +- rockchip,pins = > +- <3 22 RK_FUNC_2 &pcfg_pull_none>; > ++ rockchip,pins = <3 RK_PC6 2 &pcfg_pull_none>; > + }; > + > + emmc_rstnout: emmc-rstnout { > +- rockchip,pins = > +- <3 20 RK_FUNC_2 &pcfg_pull_none>; > ++ rockchip,pins = <3 RK_PC4 2 &pcfg_pull_none>; > + }; > + > + emmc_bus1: emmc-bus1 { > +- rockchip,pins = > +- <0 7 RK_FUNC_2 &pcfg_pull_up_12ma>; > ++ rockchip,pins = <0 RK_PA7 2 &pcfg_pull_up_12ma>; > + }; > + > + emmc_bus4: emmc-bus4 { > + rockchip,pins = > +- <0 7 RK_FUNC_2 &pcfg_pull_up_12ma>, > +- <2 28 RK_FUNC_2 &pcfg_pull_up_12ma>, > +- <2 29 RK_FUNC_2 &pcfg_pull_up_12ma>, > +- <2 30 RK_FUNC_2 &pcfg_pull_up_12ma>; > ++ <0 RK_PA7 2 &pcfg_pull_up_12ma>, > ++ <2 RK_PD4 2 &pcfg_pull_up_12ma>, > ++ <2 RK_PD5 2 &pcfg_pull_up_12ma>, > ++ <2 RK_PD6 2 &pcfg_pull_up_12ma>; > + }; > + > + emmc_bus8: emmc-bus8 { > + rockchip,pins = > +- <0 7 RK_FUNC_2 &pcfg_pull_up_12ma>, > +- <2 28 RK_FUNC_2 &pcfg_pull_up_12ma>, > +- <2 29 RK_FUNC_2 &pcfg_pull_up_12ma>, > +- <2 30 RK_FUNC_2 &pcfg_pull_up_12ma>, > +- <2 31 RK_FUNC_2 &pcfg_pull_up_12ma>, > +- <3 16 RK_FUNC_2 &pcfg_pull_up_12ma>, > +- <3 17 RK_FUNC_2 &pcfg_pull_up_12ma>, > +- <3 18 RK_FUNC_2 &pcfg_pull_up_12ma>; > ++ <0 RK_PA7 2 &pcfg_pull_up_12ma>, > ++ <2 RK_PD4 2 &pcfg_pull_up_12ma>, > ++ <2 RK_PD5 2 &pcfg_pull_up_12ma>, > ++ <2 RK_PD6 2 &pcfg_pull_up_12ma>, > ++ <2 RK_PD7 2 &pcfg_pull_up_12ma>, > ++ <3 RK_PC0 2 &pcfg_pull_up_12ma>, > ++ <3 RK_PC1 2 &pcfg_pull_up_12ma>, > ++ <3 RK_PC2 2 &pcfg_pull_up_12ma>; > + }; > + }; > + > + pwm0 { > + pwm0_pin: pwm0-pin { > +- rockchip,pins = > +- <2 4 RK_FUNC_1 &pcfg_pull_none>; > ++ rockchip,pins = <2 RK_PA4 1 &pcfg_pull_none>; > + }; > + }; > + > + pwm1 { > + pwm1_pin: pwm1-pin { > +- rockchip,pins = > +- <2 5 RK_FUNC_1 &pcfg_pull_none>; > ++ rockchip,pins = <2 RK_PA5 1 &pcfg_pull_none>; > + }; > + }; > + > + pwm2 { > + pwm2_pin: pwm2-pin { > +- rockchip,pins = > +- <2 6 RK_FUNC_1 &pcfg_pull_none>; > ++ rockchip,pins = <2 RK_PA6 1 &pcfg_pull_none>; > + }; > + }; > + > + pwmir { > + pwmir_pin: pwmir-pin { > +- rockchip,pins = > +- <2 2 RK_FUNC_1 &pcfg_pull_none>; > ++ rockchip,pins = <2 RK_PA2 1 &pcfg_pull_none>; > + }; > + }; > + > +- gmac-0 { > +- rgmiim0_pins: rgmiim0-pins { > +- rockchip,pins = > +- /* mac_txclk */ > +- <0 8 RK_FUNC_1 &pcfg_pull_none_12ma>, > +- /* mac_rxclk */ > +- <0 10 RK_FUNC_1 &pcfg_pull_none>, > +- /* mac_mdio */ > +- <0 11 RK_FUNC_1 &pcfg_pull_none>, > +- /* mac_txen */ > +- <0 12 RK_FUNC_1 &pcfg_pull_none_12ma>, > +- /* mac_clk */ > +- <0 24 RK_FUNC_1 &pcfg_pull_none>, > +- /* mac_rxdv */ > +- <0 25 RK_FUNC_1 &pcfg_pull_none>, > +- /* mac_mdc */ > +- <0 19 RK_FUNC_1 &pcfg_pull_none>, > +- /* mac_rxd1 */ > +- <0 14 RK_FUNC_1 &pcfg_pull_none>, > +- /* mac_rxd0 */ > +- <0 15 RK_FUNC_1 &pcfg_pull_none>, > +- /* mac_txd1 */ > +- <0 16 RK_FUNC_1 &pcfg_pull_none_12ma>, > +- /* mac_txd0 */ > +- <0 17 RK_FUNC_1 &pcfg_pull_none_12ma>, > +- /* mac_rxd3 */ > +- <0 20 RK_FUNC_1 &pcfg_pull_none>, > +- /* mac_rxd2 */ > +- <0 21 RK_FUNC_1 &pcfg_pull_none>, > +- /* mac_txd3 */ > +- <0 23 RK_FUNC_1 &pcfg_pull_none_12ma>, > +- /* mac_txd2 */ > +- <0 22 RK_FUNC_1 &pcfg_pull_none_12ma>; > +- }; > +- > +- rmiim0_pins: rmiim0-pins { > +- rockchip,pins = > +- /* mac_mdio */ > +- <0 11 RK_FUNC_1 &pcfg_pull_none>, > +- /* mac_txen */ > +- <0 12 RK_FUNC_1 &pcfg_pull_none_12ma>, > +- /* mac_clk */ > +- <0 24 RK_FUNC_1 &pcfg_pull_none>, > +- /* mac_rxer */ > +- <0 13 RK_FUNC_1 &pcfg_pull_none>, > +- /* mac_rxdv */ > +- <0 25 RK_FUNC_1 &pcfg_pull_none>, > +- /* mac_mdc */ > +- <0 19 RK_FUNC_1 &pcfg_pull_none>, > +- /* mac_rxd1 */ > +- <0 14 RK_FUNC_1 &pcfg_pull_none>, > +- /* mac_rxd0 */ > +- <0 15 RK_FUNC_1 &pcfg_pull_none>, > +- /* mac_txd1 */ > +- <0 16 RK_FUNC_1 &pcfg_pull_none_12ma>, > +- /* mac_txd0 */ > +- <0 17 RK_FUNC_1 &pcfg_pull_none_12ma>; > +- }; > +- }; > +- > + gmac-1 { > + rgmiim1_pins: rgmiim1-pins { > + rockchip,pins = > + /* mac_txclk */ > +- <1 12 RK_FUNC_2 &pcfg_pull_none_12ma>, > ++ <1 RK_PB4 2 &pcfg_pull_none_12ma>, > + /* mac_rxclk */ > +- <1 13 RK_FUNC_2 &pcfg_pull_none_2ma>, > ++ <1 RK_PB5 2 &pcfg_pull_none_2ma>, > + /* mac_mdio */ > +- <1 19 RK_FUNC_2 &pcfg_pull_none_2ma>, > ++ <1 RK_PC3 2 &pcfg_pull_none_2ma>, > + /* mac_txen */ > +- <1 25 RK_FUNC_2 &pcfg_pull_none_12ma>, > ++ <1 RK_PD1 2 &pcfg_pull_none_12ma>, > + /* mac_clk */ > +- <1 21 RK_FUNC_2 &pcfg_pull_none_2ma>, > ++ <1 RK_PC5 2 &pcfg_pull_none_2ma>, > + /* mac_rxdv */ > +- <1 22 RK_FUNC_2 &pcfg_pull_none_2ma>, > ++ <1 RK_PC6 2 &pcfg_pull_none_2ma>, > + /* mac_mdc */ > +- <1 23 RK_FUNC_2 &pcfg_pull_none_2ma>, > ++ <1 RK_PC7 2 &pcfg_pull_none_2ma>, > + /* mac_rxd1 */ > +- <1 10 RK_FUNC_2 &pcfg_pull_none_2ma>, > ++ <1 RK_PB2 2 &pcfg_pull_none_2ma>, > + /* mac_rxd0 */ > +- <1 11 RK_FUNC_2 &pcfg_pull_none_2ma>, > ++ <1 RK_PB3 2 &pcfg_pull_none_2ma>, > + /* mac_txd1 */ > +- <1 8 RK_FUNC_2 &pcfg_pull_none_12ma>, > ++ <1 RK_PB0 2 &pcfg_pull_none_12ma>, > + /* mac_txd0 */ > +- <1 9 RK_FUNC_2 &pcfg_pull_none_12ma>, > ++ <1 RK_PB1 2 &pcfg_pull_none_12ma>, > + /* mac_rxd3 */ > +- <1 14 RK_FUNC_2 &pcfg_pull_none_2ma>, > ++ <1 RK_PB6 2 &pcfg_pull_none_2ma>, > + /* mac_rxd2 */ > +- <1 15 RK_FUNC_2 &pcfg_pull_none_2ma>, > ++ <1 RK_PB7 2 &pcfg_pull_none_2ma>, > + /* mac_txd3 */ > +- <1 16 RK_FUNC_2 &pcfg_pull_none_12ma>, > ++ <1 RK_PC0 2 &pcfg_pull_none_12ma>, > + /* mac_txd2 */ > +- <1 17 RK_FUNC_2 &pcfg_pull_none_12ma>, > ++ <1 RK_PC1 2 &pcfg_pull_none_12ma>, > + > + /* mac_txclk */ > +- <0 8 RK_FUNC_1 &pcfg_pull_none>, > ++ <0 RK_PB0 1 &pcfg_pull_none>, > + /* mac_txen */ > +- <0 12 RK_FUNC_1 &pcfg_pull_none>, > ++ <0 RK_PB4 1 &pcfg_pull_none>, > + /* mac_clk */ > +- <0 24 RK_FUNC_1 &pcfg_pull_none>, > ++ <0 RK_PD0 1 &pcfg_pull_none>, > + /* mac_txd1 */ > +- <0 16 RK_FUNC_1 &pcfg_pull_none>, > ++ <0 RK_PC0 1 &pcfg_pull_none>, > + /* mac_txd0 */ > +- <0 17 RK_FUNC_1 &pcfg_pull_none>, > ++ <0 RK_PC1 1 &pcfg_pull_none>, > + /* mac_txd3 */ > +- <0 23 RK_FUNC_1 &pcfg_pull_none>, > ++ <0 RK_PC7 1 &pcfg_pull_none>, > + /* mac_txd2 */ > +- <0 22 RK_FUNC_1 &pcfg_pull_none>; > ++ <0 RK_PC6 1 &pcfg_pull_none>; > + }; > + > + rmiim1_pins: rmiim1-pins { > + rockchip,pins = > + /* mac_mdio */ > +- <1 19 RK_FUNC_2 &pcfg_pull_none_2ma>, > ++ <1 RK_PC3 2 &pcfg_pull_none_2ma>, > + /* mac_txen */ > +- <1 25 RK_FUNC_2 &pcfg_pull_none_12ma>, > ++ <1 RK_PD1 2 &pcfg_pull_none_12ma>, > + /* mac_clk */ > +- <1 21 RK_FUNC_2 &pcfg_pull_none_2ma>, > ++ <1 RK_PC5 2 &pcfg_pull_none_2ma>, > + /* mac_rxer */ > +- <1 24 RK_FUNC_2 &pcfg_pull_none_2ma>, > ++ <1 RK_PD0 2 &pcfg_pull_none_2ma>, > + /* mac_rxdv */ > +- <1 22 RK_FUNC_2 &pcfg_pull_none_2ma>, > ++ <1 RK_PC6 2 &pcfg_pull_none_2ma>, > + /* mac_mdc */ > +- <1 23 RK_FUNC_2 &pcfg_pull_none_2ma>, > ++ <1 RK_PC7 2 &pcfg_pull_none_2ma>, > + /* mac_rxd1 */ > +- <1 10 RK_FUNC_2 &pcfg_pull_none_2ma>, > ++ <1 RK_PB2 2 &pcfg_pull_none_2ma>, > + /* mac_rxd0 */ > +- <1 11 RK_FUNC_2 &pcfg_pull_none_2ma>, > ++ <1 RK_PB3 2 &pcfg_pull_none_2ma>, > + /* mac_txd1 */ > +- <1 8 RK_FUNC_2 &pcfg_pull_none_12ma>, > ++ <1 RK_PB0 2 &pcfg_pull_none_12ma>, > + /* mac_txd0 */ > +- <1 9 RK_FUNC_2 &pcfg_pull_none_12ma>, > ++ <1 RK_PB1 2 &pcfg_pull_none_12ma>, > + > + /* mac_mdio */ > +- <0 11 RK_FUNC_1 &pcfg_pull_none>, > ++ <0 RK_PB3 1 &pcfg_pull_none>, > + /* mac_txen */ > +- <0 12 RK_FUNC_1 &pcfg_pull_none>, > ++ <0 RK_PB4 1 &pcfg_pull_none>, > + /* mac_clk */ > +- <0 24 RK_FUNC_1 &pcfg_pull_none>, > ++ <0 RK_PD0 1 &pcfg_pull_none>, > + /* mac_mdc */ > +- <0 19 RK_FUNC_1 &pcfg_pull_none>, > ++ <0 RK_PC3 1 &pcfg_pull_none>, > + /* mac_txd1 */ > +- <0 16 RK_FUNC_1 &pcfg_pull_none>, > ++ <0 RK_PC0 1 &pcfg_pull_none>, > + /* mac_txd0 */ > +- <0 17 RK_FUNC_1 &pcfg_pull_none>; > ++ <0 RK_PC1 1 &pcfg_pull_none>; > + }; > + }; > + > + gmac2phy { > + fephyled_speed100: fephyled-speed100 { > +- rockchip,pins = > +- <0 31 RK_FUNC_1 &pcfg_pull_none>; > ++ rockchip,pins = <0 RK_PD7 1 &pcfg_pull_none>; > + }; > + > + fephyled_speed10: fephyled-speed10 { > +- rockchip,pins = > +- <0 30 RK_FUNC_1 &pcfg_pull_none>; > ++ rockchip,pins = <0 RK_PD6 1 &pcfg_pull_none>; > + }; > + > + fephyled_duplex: fephyled-duplex { > +- rockchip,pins = > +- <0 30 RK_FUNC_2 &pcfg_pull_none>; > ++ rockchip,pins = <0 RK_PD6 2 &pcfg_pull_none>; > + }; > + > + fephyled_rxm0: fephyled-rxm0 { > +- rockchip,pins = > +- <0 29 RK_FUNC_1 &pcfg_pull_none>; > ++ rockchip,pins = <0 RK_PD5 1 &pcfg_pull_none>; > + }; > + > + fephyled_txm0: fephyled-txm0 { > +- rockchip,pins = > +- <0 29 RK_FUNC_2 &pcfg_pull_none>; > ++ rockchip,pins = <0 RK_PD5 2 &pcfg_pull_none>; > + }; > + > + fephyled_linkm0: fephyled-linkm0 { > +- rockchip,pins = > +- <0 28 RK_FUNC_1 &pcfg_pull_none>; > ++ rockchip,pins = <0 RK_PD4 1 &pcfg_pull_none>; > + }; > + > + fephyled_rxm1: fephyled-rxm1 { > +- rockchip,pins = > +- <2 25 RK_FUNC_2 &pcfg_pull_none>; > ++ rockchip,pins = <2 RK_PD1 2 &pcfg_pull_none>; > + }; > + > + fephyled_txm1: fephyled-txm1 { > +- rockchip,pins = > +- <2 25 RK_FUNC_3 &pcfg_pull_none>; > ++ rockchip,pins = <2 RK_PD1 3 &pcfg_pull_none>; > + }; > + > + fephyled_linkm1: fephyled-linkm1 { > +- rockchip,pins = > +- <2 24 RK_FUNC_2 &pcfg_pull_none>; > ++ rockchip,pins = <2 RK_PD0 2 &pcfg_pull_none>; > + }; > + }; > + > + tsadc_pin { > + tsadc_int: tsadc-int { > +- rockchip,pins = > +- <2 13 RK_FUNC_2 &pcfg_pull_none>; > ++ rockchip,pins = <2 RK_PB5 2 &pcfg_pull_none>; > + }; > + tsadc_gpio: tsadc-gpio { > +- rockchip,pins = > +- <2 13 RK_FUNC_GPIO &pcfg_pull_none>; > ++ rockchip,pins = <2 RK_PB5 RK_FUNC_GPIO > &pcfg_pull_none>; > + }; > + }; > + > + hdmi_pin { > + hdmi_cec: hdmi-cec { > +- rockchip,pins = > +- <0 3 RK_FUNC_1 &pcfg_pull_none>; > ++ rockchip,pins = <0 RK_PA3 1 &pcfg_pull_none>; > + }; > + > + hdmi_hpd: hdmi-hpd { > +- rockchip,pins = > +- <0 4 RK_FUNC_1 &pcfg_pull_down>; > ++ rockchip,pins = <0 RK_PA4 1 &pcfg_pull_down>; > + }; > + }; > + > +@@ -1460,29 +1697,29 @@ > + dvp_d2d9_m0:dvp-d2d9-m0 { > + rockchip,pins = > + /* cif_d0 */ > +- <3 4 RK_FUNC_2 &pcfg_pull_none>, > ++ <3 RK_PA4 2 &pcfg_pull_none>, > + /* cif_d1 */ > +- <3 5 RK_FUNC_2 &pcfg_pull_none>, > ++ <3 RK_PA5 2 &pcfg_pull_none>, > + /* cif_d2 */ > +- <3 6 RK_FUNC_2 &pcfg_pull_none>, > ++ <3 RK_PA6 2 &pcfg_pull_none>, > + /* cif_d3 */ > +- <3 7 RK_FUNC_2 &pcfg_pull_none>, > ++ <3 RK_PA7 2 &pcfg_pull_none>, > + /* cif_d4 */ > +- <3 8 RK_FUNC_2 &pcfg_pull_none>, > ++ <3 RK_PB0 2 &pcfg_pull_none>, > + /* cif_d5m0 */ > +- <3 9 RK_FUNC_2 &pcfg_pull_none>, > ++ <3 RK_PB1 2 &pcfg_pull_none>, > + /* cif_d6m0 */ > +- <3 10 RK_FUNC_2 &pcfg_pull_none>, > ++ <3 RK_PB2 2 &pcfg_pull_none>, > + /* cif_d7m0 */ > +- <3 11 RK_FUNC_2 &pcfg_pull_none>, > ++ <3 RK_PB3 2 &pcfg_pull_none>, > + /* cif_href */ > +- <3 1 RK_FUNC_2 &pcfg_pull_none>, > ++ <3 RK_PA1 2 &pcfg_pull_none>, > + /* cif_vsync */ > +- <3 0 RK_FUNC_2 &pcfg_pull_none>, > ++ <3 RK_PA0 2 &pcfg_pull_none>, > + /* cif_clkoutm0 */ > +- <3 3 RK_FUNC_2 &pcfg_pull_none>, > ++ <3 RK_PA3 2 &pcfg_pull_none>, > + /* cif_clkin */ > +- <3 2 RK_FUNC_2 &pcfg_pull_none>; > ++ <3 RK_PA2 2 &pcfg_pull_none>; > + }; > + }; > + > +@@ -1490,29 +1727,29 @@ > + dvp_d2d9_m1:dvp-d2d9-m1 { > + rockchip,pins = > + /* cif_d0 */ > +- <3 4 RK_FUNC_2 &pcfg_pull_none>, > ++ <3 RK_PA4 2 &pcfg_pull_none>, > + /* cif_d1 */ > +- <3 5 RK_FUNC_2 &pcfg_pull_none>, > ++ <3 RK_PA5 2 &pcfg_pull_none>, > + /* cif_d2 */ > +- <3 6 RK_FUNC_2 &pcfg_pull_none>, > ++ <3 RK_PA6 2 &pcfg_pull_none>, > + /* cif_d3 */ > +- <3 7 RK_FUNC_2 &pcfg_pull_none>, > ++ <3 RK_PA7 2 &pcfg_pull_none>, > + /* cif_d4 */ > +- <3 8 RK_FUNC_2 &pcfg_pull_none>, > ++ <3 RK_PB0 2 &pcfg_pull_none>, > + /* cif_d5m1 */ > +- <2 16 RK_FUNC_4 &pcfg_pull_none>, > ++ <2 RK_PC0 4 &pcfg_pull_none>, > + /* cif_d6m1 */ > +- <2 17 RK_FUNC_4 &pcfg_pull_none>, > ++ <2 RK_PC1 4 &pcfg_pull_none>, > + /* cif_d7m1 */ > +- <2 18 RK_FUNC_4 &pcfg_pull_none>, > ++ <2 RK_PC2 4 &pcfg_pull_none>, > + /* cif_href */ > +- <3 1 RK_FUNC_2 &pcfg_pull_none>, > ++ <3 RK_PA1 2 &pcfg_pull_none>, > + /* cif_vsync */ > +- <3 0 RK_FUNC_2 &pcfg_pull_none>, > ++ <3 RK_PA0 2 &pcfg_pull_none>, > + /* cif_clkoutm1 */ > +- <2 15 RK_FUNC_4 &pcfg_pull_none>, > ++ <2 RK_PB7 4 &pcfg_pull_none>, > + /* cif_clkin */ > +- <3 2 RK_FUNC_2 &pcfg_pull_none>; > ++ <3 RK_PA2 2 &pcfg_pull_none>; > + }; > + }; > + }; > Index: patches/patch-arch_arm_dts_rk3399-rockpro64_dts > =================================================================== > RCS file: > /cvs/ports/sysutils/u-boot/patches/patch-arch_arm_dts_rk3399-rockpro64_dts,v > retrieving revision 1.1 > diff -u -p -u -r1.1 patch-arch_arm_dts_rk3399-rockpro64_dts > --- patches/patch-arch_arm_dts_rk3399-rockpro64_dts 28 Sep 2019 01:40:24 > -0000 1.1 > +++ patches/patch-arch_arm_dts_rk3399-rockpro64_dts 5 Oct 2019 16:15:13 > -0000 > @@ -12,3 +12,52 @@ Index: arch/arm/dts/rk3399-rockpro64.dts > }; > > clkin_gmac: external-gmac-clock { > +@@ -222,6 +222,10 @@ > + status = "okay"; > + }; > + > ++&hdmi_sound { > ++ status = "okay"; > ++}; > ++ > + &gpu { > + mali-supply = <&vdd_gpu>; > + status = "okay"; > +@@ -504,11 +508,25 @@ > + status = "okay"; > + > + bt656-supply = <&vcc1v8_dvp>; > +- audio-supply = <&vcca1v8_codec>; > ++ audio-supply = <&vcc_3v0>; > + sdmmc-supply = <&vcc_sdio>; > + gpio1830-supply = <&vcc_3v0>; > + }; > + > ++&pcie0 { > ++ ep-gpios = <&gpio2 RK_PD4 GPIO_ACTIVE_HIGH>; > ++ num-lanes = <4>; > ++ pinctrl-names = "default"; > ++ pinctrl-0 = <&pcie_perst>; > ++ vpcie12v-supply = <&vcc12v_dcin>; > ++ vpcie3v3-supply = <&vcc3v3_pcie>; > ++ status = "okay"; > ++}; > ++ > ++&pcie_phy { > ++ status = "okay"; > ++}; > ++ > + &pmu_io_domains { > + pmu1830-supply = <&vcc_3v0>; > + status = "okay"; > +@@ -538,6 +556,10 @@ > + }; > + > + pcie { > ++ pcie_perst: pcie-perst { > ++ rockchip,pins = <2 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>; > ++ }; > ++ > + pcie_pwr_en: pcie-pwr-en { > + rockchip,pins = <1 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>; > + }; > Index: patches/patch-configs_rock64-rk3328_defconfig > =================================================================== > RCS file: patches/patch-configs_rock64-rk3328_defconfig > diff -N patches/patch-configs_rock64-rk3328_defconfig > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ patches/patch-configs_rock64-rk3328_defconfig 5 Oct 2019 16:15:13 > -0000 > @@ -0,0 +1,14 @@ > +$OpenBSD$ > + > +Index: configs/rock64-rk3328_defconfig > +--- configs/rock64-rk3328_defconfig.orig > ++++ configs/rock64-rk3328_defconfig > +@@ -76,7 +76,7 @@ CONFIG_RAM=y > + CONFIG_SPL_RAM=y > + CONFIG_TPL_RAM=y > + CONFIG_DM_RESET=y > +-CONFIG_BAUDRATE=1500000 > ++CONFIG_BAUDRATE=115200 > + CONFIG_DEBUG_UART_SHIFT=2 > + CONFIG_SYSRESET=y > + CONFIG_USB=y > Index: patches/patch-include_dt-bindings_clock_rk3328-cru_h > =================================================================== > RCS file: patches/patch-include_dt-bindings_clock_rk3328-cru_h > diff -N patches/patch-include_dt-bindings_clock_rk3328-cru_h > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ patches/patch-include_dt-bindings_clock_rk3328-cru_h 5 Oct 2019 > 16:15:13 -0000 > @@ -0,0 +1,237 @@ > +$OpenBSD$ > + > +Index: include/dt-bindings/clock/rk3328-cru.h > +--- include/dt-bindings/clock/rk3328-cru.h.orig > ++++ include/dt-bindings/clock/rk3328-cru.h > +@@ -1,6 +1,7 @@ > +-/* SPDX-License-Identifier: GPL-2.0+ */ > ++/* SPDX-License-Identifier: GPL-2.0-or-later */ > + /* > +- * (C) Copyright 2016 Rockchip Electronics Co., Ltd > ++ * Copyright (c) 2016 Rockchip Electronics Co. Ltd. > ++ * Author: Elaine <zhangq...@rock-chips.com> > + */ > + > + #ifndef _DT_BINDINGS_CLK_ROCKCHIP_RK3328_H > +@@ -90,118 +91,117 @@ > + #define SCLK_MAC2IO_EXT 102 > + > + /* dclk gates */ > +-#define DCLK_LCDC 180 > +-#define DCLK_HDMIPHY 181 > +-#define HDMIPHY 182 > +-#define USB480M 183 > +-#define DCLK_LCDC_SRC 184 > ++#define DCLK_LCDC 120 > ++#define DCLK_HDMIPHY 121 > ++#define HDMIPHY 122 > ++#define USB480M 123 > ++#define DCLK_LCDC_SRC 124 > + > + /* aclk gates */ > +-#define ACLK_AXISRAM 190 > +-#define ACLK_VOP_PRE 191 > +-#define ACLK_USB3OTG 192 > +-#define ACLK_RGA_PRE 193 > +-#define ACLK_DMAC 194 > +-#define ACLK_GPU 195 > +-#define ACLK_BUS_PRE 196 > +-#define ACLK_PERI_PRE 197 > +-#define ACLK_RKVDEC_PRE 198 > +-#define ACLK_RKVDEC 199 > +-#define ACLK_RKVENC 200 > +-#define ACLK_VPU_PRE 201 > +-#define ACLK_VIO_PRE 202 > +-#define ACLK_VPU 203 > +-#define ACLK_VIO 204 > +-#define ACLK_VOP 205 > +-#define ACLK_GMAC 206 > +-#define ACLK_H265 207 > +-#define ACLK_H264 208 > +-#define ACLK_MAC2PHY 209 > +-#define ACLK_MAC2IO 210 > +-#define ACLK_DCF 211 > +-#define ACLK_TSP 212 > +-#define ACLK_PERI 213 > +-#define ACLK_RGA 214 > +-#define ACLK_IEP 215 > +-#define ACLK_CIF 216 > +-#define ACLK_HDCP 217 > ++#define ACLK_AXISRAM 130 > ++#define ACLK_VOP_PRE 131 > ++#define ACLK_USB3OTG 132 > ++#define ACLK_RGA_PRE 133 > ++#define ACLK_DMAC 134 > ++#define ACLK_GPU 135 > ++#define ACLK_BUS_PRE 136 > ++#define ACLK_PERI_PRE 137 > ++#define ACLK_RKVDEC_PRE 138 > ++#define ACLK_RKVDEC 139 > ++#define ACLK_RKVENC 140 > ++#define ACLK_VPU_PRE 141 > ++#define ACLK_VIO_PRE 142 > ++#define ACLK_VPU 143 > ++#define ACLK_VIO 144 > ++#define ACLK_VOP 145 > ++#define ACLK_GMAC 146 > ++#define ACLK_H265 147 > ++#define ACLK_H264 148 > ++#define ACLK_MAC2PHY 149 > ++#define ACLK_MAC2IO 150 > ++#define ACLK_DCF 151 > ++#define ACLK_TSP 152 > ++#define ACLK_PERI 153 > ++#define ACLK_RGA 154 > ++#define ACLK_IEP 155 > ++#define ACLK_CIF 156 > ++#define ACLK_HDCP 157 > + > + /* pclk gates */ > +-#define PCLK_GPIO0 300 > +-#define PCLK_GPIO1 301 > +-#define PCLK_GPIO2 302 > +-#define PCLK_GPIO3 303 > +-#define PCLK_GRF 304 > +-#define PCLK_I2C0 305 > +-#define PCLK_I2C1 306 > +-#define PCLK_I2C2 307 > +-#define PCLK_I2C3 308 > +-#define PCLK_SPI 309 > +-#define PCLK_UART0 310 > +-#define PCLK_UART1 311 > +-#define PCLK_UART2 312 > +-#define PCLK_TSADC 313 > +-#define PCLK_PWM 314 > +-#define PCLK_TIMER 315 > +-#define PCLK_BUS_PRE 316 > +-#define PCLK_PERI_PRE 317 > +-#define PCLK_HDMI_CTRL 318 > +-#define PCLK_HDMI_PHY 319 > +-#define PCLK_GMAC 320 > +-#define PCLK_H265 321 > +-#define PCLK_MAC2PHY 322 > +-#define PCLK_MAC2IO 323 > +-#define PCLK_USB3PHY_OTG 324 > +-#define PCLK_USB3PHY_PIPE 325 > +-#define PCLK_USB3_GRF 326 > +-#define PCLK_USB2_GRF 327 > +-#define PCLK_HDMIPHY 328 > +-#define PCLK_DDR 329 > +-#define PCLK_PERI 330 > +-#define PCLK_HDMI 331 > +-#define PCLK_HDCP 332 > +-#define PCLK_DCF 333 > +-#define PCLK_SARADC 334 > ++#define PCLK_GPIO0 200 > ++#define PCLK_GPIO1 201 > ++#define PCLK_GPIO2 202 > ++#define PCLK_GPIO3 203 > ++#define PCLK_GRF 204 > ++#define PCLK_I2C0 205 > ++#define PCLK_I2C1 206 > ++#define PCLK_I2C2 207 > ++#define PCLK_I2C3 208 > ++#define PCLK_SPI 209 > ++#define PCLK_UART0 210 > ++#define PCLK_UART1 211 > ++#define PCLK_UART2 212 > ++#define PCLK_TSADC 213 > ++#define PCLK_PWM 214 > ++#define PCLK_TIMER 215 > ++#define PCLK_BUS_PRE 216 > ++#define PCLK_PERI_PRE 217 > ++#define PCLK_HDMI_CTRL 218 > ++#define PCLK_HDMI_PHY 219 > ++#define PCLK_GMAC 220 > ++#define PCLK_H265 221 > ++#define PCLK_MAC2PHY 222 > ++#define PCLK_MAC2IO 223 > ++#define PCLK_USB3PHY_OTG 224 > ++#define PCLK_USB3PHY_PIPE 225 > ++#define PCLK_USB3_GRF 226 > ++#define PCLK_USB2_GRF 227 > ++#define PCLK_HDMIPHY 228 > ++#define PCLK_DDR 229 > ++#define PCLK_PERI 230 > ++#define PCLK_HDMI 231 > ++#define PCLK_HDCP 232 > ++#define PCLK_DCF 233 > ++#define PCLK_SARADC 234 > ++#define PCLK_ACODECPHY 235 > ++#define PCLK_WDT 236 > + > + /* hclk gates */ > +-#define HCLK_PERI 408 > +-#define HCLK_TSP 409 > +-#define HCLK_GMAC 410 > +-#define HCLK_I2S0_8CH 411 > +-#define HCLK_I2S1_8CH 413 > +-#define HCLK_I2S2_2CH 413 > +-#define HCLK_SPDIF_8CH 414 > +-#define HCLK_VOP 415 > +-#define HCLK_NANDC 416 > +-#define HCLK_SDMMC 417 > +-#define HCLK_SDIO 418 > +-#define HCLK_EMMC 419 > +-#define HCLK_SDMMC_EXT 420 > +-#define HCLK_RKVDEC_PRE 421 > +-#define HCLK_RKVDEC 422 > +-#define HCLK_RKVENC 423 > +-#define HCLK_VPU_PRE 424 > +-#define HCLK_VIO_PRE 425 > +-#define HCLK_VPU 426 > +-#define HCLK_VIO 427 > +-#define HCLK_BUS_PRE 428 > +-#define HCLK_PERI_PRE 429 > +-#define HCLK_H264 430 > +-#define HCLK_CIF 431 > +-#define HCLK_OTG_PMU 432 > +-#define HCLK_OTG 433 > +-#define HCLK_HOST0 434 > +-#define HCLK_HOST0_ARB 435 > +-#define HCLK_CRYPTO_MST 436 > +-#define HCLK_CRYPTO_SLV 437 > +-#define HCLK_PDM 438 > +-#define HCLK_IEP 439 > +-#define HCLK_RGA 440 > +-#define HCLK_HDCP 441 > ++#define HCLK_PERI 308 > ++#define HCLK_TSP 309 > ++#define HCLK_GMAC 310 > ++#define HCLK_I2S0_8CH 311 > ++#define HCLK_I2S1_8CH 312 > ++#define HCLK_I2S2_2CH 313 > ++#define HCLK_SPDIF_8CH 314 > ++#define HCLK_VOP 315 > ++#define HCLK_NANDC 316 > ++#define HCLK_SDMMC 317 > ++#define HCLK_SDIO 318 > ++#define HCLK_EMMC 319 > ++#define HCLK_SDMMC_EXT 320 > ++#define HCLK_RKVDEC_PRE 321 > ++#define HCLK_RKVDEC 322 > ++#define HCLK_RKVENC 323 > ++#define HCLK_VPU_PRE 324 > ++#define HCLK_VIO_PRE 325 > ++#define HCLK_VPU 326 > ++#define HCLK_BUS_PRE 328 > ++#define HCLK_PERI_PRE 329 > ++#define HCLK_H264 330 > ++#define HCLK_CIF 331 > ++#define HCLK_OTG_PMU 332 > ++#define HCLK_OTG 333 > ++#define HCLK_HOST0 334 > ++#define HCLK_HOST0_ARB 335 > ++#define HCLK_CRYPTO_MST 336 > ++#define HCLK_CRYPTO_SLV 337 > ++#define HCLK_PDM 338 > ++#define HCLK_IEP 339 > ++#define HCLK_RGA 340 > ++#define HCLK_HDCP 341 > + > + #define CLK_NR_CLKS (HCLK_HDCP + 1) > +- > +-#define CLKGRF_NR_CLKS (SCLK_MAC2PHY + 1) > + > + /* soft-reset indices */ > + #define SRST_CORE0_PO 0 > Index: pkg/PFRAG.aarch64 > =================================================================== > RCS file: /cvs/ports/sysutils/u-boot/pkg/PFRAG.aarch64,v > retrieving revision 1.13 > diff -u -p -u -r1.13 PFRAG.aarch64 > --- pkg/PFRAG.aarch64 28 Sep 2019 01:40:25 -0000 1.13 > +++ pkg/PFRAG.aarch64 5 Oct 2019 16:15:13 -0000 > @@ -1,5 +1,13 @@ > @comment $OpenBSD: PFRAG.aarch64,v 1.13 2019/09/28 01:40:25 jsg Exp $ > @pkgpath sysutils/u-boot-pinebook > +libexec/u-boot/ > +libexec/u-boot/firefly-rk3399/ > +@bin libexec/u-boot/firefly-rk3399/mkimage > +libexec/u-boot/mkidbloader-rkbin > +libexec/u-boot/rock64-rk3328/ > +@bin libexec/u-boot/rock64-rk3328/mkimage > +libexec/u-boot/rockpro64-rk3399/ > +@bin libexec/u-boot/rockpro64-rk3399/mkimage > share/u-boot/ > share/u-boot/a64-olinuxino/ > share/u-boot/a64-olinuxino/sunxi-spl.bin > @@ -18,6 +26,7 @@ share/u-boot/bananapi_m64/u-boot.itb > share/u-boot/firefly-rk3399/ > share/u-boot/firefly-rk3399/idbloader.img > share/u-boot/firefly-rk3399/u-boot > +share/u-boot/firefly-rk3399/u-boot-spl-dtb.bin > share/u-boot/firefly-rk3399/u-boot.bin > share/u-boot/firefly-rk3399/u-boot.img > share/u-boot/firefly-rk3399/u-boot.itb > @@ -86,9 +95,16 @@ share/u-boot/pinebook/u-boot.itb > share/u-boot/qemu_arm64/ > share/u-boot/qemu_arm64/u-boot > share/u-boot/qemu_arm64/u-boot.bin > +share/u-boot/rock64-rk3328/ > +share/u-boot/rock64-rk3328/u-boot > +share/u-boot/rock64-rk3328/u-boot-spl-dtb.bin > +share/u-boot/rock64-rk3328/u-boot.bin > +share/u-boot/rock64-rk3328/u-boot.img > +share/u-boot/rock64-rk3328/u-boot.itb > share/u-boot/rockpro64-rk3399/ > share/u-boot/rockpro64-rk3399/idbloader.img > share/u-boot/rockpro64-rk3399/u-boot > +share/u-boot/rockpro64-rk3399/u-boot-spl-dtb.bin > share/u-boot/rockpro64-rk3399/u-boot.bin > share/u-boot/rockpro64-rk3399/u-boot.img > share/u-boot/rockpro64-rk3399/u-boot.itb > Index: pkg/PFRAG.arm > =================================================================== > RCS file: /cvs/ports/sysutils/u-boot/pkg/PFRAG.arm,v > retrieving revision 1.20 > diff -u -p -u -r1.20 PFRAG.arm > --- pkg/PFRAG.arm 28 Sep 2019 01:40:25 -0000 1.20 > +++ pkg/PFRAG.arm 5 Oct 2019 16:15:13 -0000 > @@ -146,6 +146,7 @@ share/u-boot/bananapi_m2_zero/u-boot.bin > share/u-boot/bananapi_m2_zero/u-boot.img > share/u-boot/clearfog/ > share/u-boot/clearfog/u-boot > +share/u-boot/clearfog/u-boot-spl-dtb.bin > share/u-boot/clearfog/u-boot-spl.kwb > share/u-boot/clearfog/u-boot.bin > share/u-boot/clearfog/u-boot.img > @@ -243,10 +244,12 @@ share/u-boot/rpi_3_32b/u-boot.bin > share/u-boot/tinker-rk3288/ > share/u-boot/tinker-rk3288/idbloader.img > share/u-boot/tinker-rk3288/u-boot > +share/u-boot/tinker-rk3288/u-boot-spl-dtb.bin > share/u-boot/tinker-rk3288/u-boot.bin > share/u-boot/tinker-rk3288/u-boot.img > share/u-boot/turris_omnia/ > share/u-boot/turris_omnia/u-boot > +share/u-boot/turris_omnia/u-boot-spl-dtb.bin > share/u-boot/turris_omnia/u-boot-spl.kwb > share/u-boot/turris_omnia/u-boot.bin > share/u-boot/turris_omnia/u-boot.img >