Jump to content

CSC Armbian for RK3318/RK3328 TV box boards


jock
 Share

Recommended Posts

@Wester_Minsk
 

Quote

....or share a link to a simple instruction


I suppose you want to build a uboot for supporting booting from usb3 .
This isn't a simple task and if it was simple,  somebody else already could had done for all of us. It is needed deep knowledge of processes undergoing the compilation and the modding of c sources. It isn't just a flag " boot from usb3..." but a chain on changes to do to the code, if someone already has written a code for it

By the way here is the link
https://github.com/rockchip-linux/u-boot

but then don't ask for assistance in what when and where apply patch since if this infos were clear and well known uboot already had have usb3 support.

But you really welcome to study and share your results

Link to comment
Share on other sites

Donate and support the project!

9 часов назад, fabiobassa сказал:

@Wester_Minsk
 


I suppose you want to build a uboot for supporting booting from usb3 .
This isn't a simple task and if it was simple,  somebody else already could had done for all of us. It is needed deep knowledge of processes undergoing the compilation and the modding of c sources. It isn't just a flag " boot from usb3..." but a chain on changes to do to the code, if someone already has written a code for it

By the way here is the link
https://github.com/rockchip-linux/u-boot

but then don't ask for assistance in what when and where apply patch since if this infos were clear and well known uboot already had have usb3 support.

But you really welcome to study and share your results

Thanks for the link!
A very interesting topic for me.
Jokingly speaking - "@ I have "Windows" of the brain."
I've been goofing around in xp,7,10 for 25 years. Linux is difficult for me so far, but I'm trying and moving a little.

I've done some experiments. 1 was successful.
I erased the eMMC, burned the image to SD and deleted the USR and VAR folders from it and inserted it into the board. Then I recorded the same image on an SSD and connected it to USB 3. The system started and works very well and quickly until the first reboot, then u-boot no longer sees the kernel on the SSD:

Скрытый текст

20220115_211352.thumb.jpg.30aae4d3a9c75b008f24f6d2006f76d8.jpg

After overwriting the SD and SSD images, the system starts again.

Can such a method be workable?

Maybe you can build an image with a u-boot without a kernel?
I'll continue the tests.
If this is a lot of work for you, then I'll try again.

Link to comment
Share on other sites

a few tests on cpu 1000

https://storage.jamesachambers.com/

     Category                  Test                      Result
HDParm                    Disk Read                 290.29 MB/s
HDParm                    Cached Disk Read          256.37 MB/s
DD                        Disk Write                90.2 MB/s
FIO                       4k random read            12256 IOPS (49024 KB/s)
FIO                       4k random write           5804 IOPS (23219 KB/s)
IOZone                    4k read                   26091 KB/s
IOZone                    4k write                  16847 KB/s
IOZone                    4k random read            16587 KB/s
IOZone                    4k random write           24202 KB/s

                          Score: 5507

my raspberry have 7,590

if up cpu is on the board, the result will be about with pi4

Link to comment
Share on other sites

15 hours ago, jock said:

First post: there is a list of things useful for support and debug.

Thanks for the direction .
since i am allow of one post / day let hope i have all the info.

Photo : https://imgur.com/a/nSiPiN2
DTB  i cant attache file yet ... but it is the rk3318-box.dtb from the Armbian 21.11 - Debian Bullseye desktop [xfce] - mainline kernel 5.15.2 - Download
armbianmonitor -u : http://ix.io/3Mgd

 

i can ssh to the box via wired 
i am running from sd for now, i did not move to emmc for now.

 

hope that will help

Thanks

Link to comment
Share on other sites

4 hours ago, Wester_Minsk said:


I erased the eMMC, burned the image to SD and deleted the USR and VAR folders from it and inserted it into the board. Then I recorded the same image on an SSD and connected it to USB 3. The system started and works very well and quickly until the first reboot, then u-boot no longer sees the kernel on the SSD:

 

After overwriting the SD and SSD images, the system starts again.

 

 

Correct me if I'm wrong. But you want to run the system from a USB3 SSD?

If so, I think the easiest would be to just have the boot on eMMC or SD-card, and the rest of the system on the SSD, then "almost" everything would be running from the fast SSD.

Link to comment
Share on other sites

5 часов назад, curse сказал:

Correct me if I'm wrong. But you want to run the system from a USB3 SSD?

If so, I think the easiest would be to just have the boot on eMMC or SD-card, and the rest of the system on the SSD, then "almost" everything would be running from the fast SSD.

You understood correctly.  I see it like this: U-boot (no kernel) with sd/emmc , kernel on SSD.

Link to comment
Share on other sites

2 hours ago, Wester_Minsk said:

You understood correctly.  I see it like this: U-boot (no kernel) with sd/emmc , kernel on SSD.

Well not just the kernel, but the whole rootfs must sit on SSD.

Plus if you cloned you sdcard on SSD, both sdcard rootfs and SSD rootfs have the same UUID, and this may confuse the kernel about which rootfs use at boot.

This is pretty normal if you think about it: how does the kernel can know if you want to boot from sdcard or boot from SSD when both contain the same bootable system?

The rootfs UUID is specified in /boot/armbianEnv.txt.

 

There are several approaches:

  • You clone the sdcard on SSD, then you remove the rootfs partition from the sdcard
  • Install just the bootloader on the eMMC erasing the eMMC and then copying the first 4 megabytes of the sdcard (/dev/mmblk0) on the eMMC (/dev/mmcblk2)
  • Change the UUID of the sdcard rootfs, but this will prevent the sdcard rootfs from full boot

The most clean approach is #2, taking in account that you should not plug both sdcard and SSD at the same time when the same cloned filesystem is on them for the usual UUID reason of above.

Link to comment
Share on other sites

6 минут назад, jock сказал:

Well not just the kernel, but the whole rootfs must sit on SSD.

Plus if you cloned you sdcard on SSD, both sdcard rootfs and SSD rootfs have the same UUID, and this may confuse the kernel about which rootfs use at boot.

This is pretty normal if you think about it: how does the kernel can know if you want to boot from sdcard or boot from SSD when both contain the same bootable system?

The rootfs UUID is specified in /boot/armbianEnv.txt.

 

There are several approaches:

  • You clone the sdcard on SSD, then you remove the rootfs partition from the sdcard
  • Install just the bootloader on the eMMC erasing the eMMC and then copying the first 4 megabytes of the sdcard (/dev/mmblk0) on the eMMC (/dev/mmcblk2)
  • Change the UUID of the sdcard rootfs, but this will prevent the sdcard rootfs from full boot

The most clean approach is #2, taking in account that you should not plug both sdcard and SSD at the same time when the same cloned filesystem is on them for the usual UUID reason of above.

Thank you.

I will work with it.

Link to comment
Share on other sites

There was a simple way, and it was in front of my nose.


This is the standard way from the official instructions of the Armbian:

 

Start the install script:

nand-sata-install

I chose:
of booting from eMMC/NAND, system to SATA/USB

 

The system migrates to a USB3 SSD
Restart and boot the system from USB3

 

now a stable start with USB3

Link to comment
Share on other sites

I have done a lot of hardware tests to start with USB 3 on my RK3318 board
result:
I have 3 usb 3.0 to sata controllers, only one worked on my board via usb 3, on the core 5.12.2. But at the same time, after migrating from eMMC to SSD, this controller loaded the system poorly, I had to switch to hot so that u-boot could see the system partition. I connected another controller, u-boot reads it perfectly and the system starts stably.

At the moment, I have a confident start with usb3 ports, and continue testing.

Link to comment
Share on other sites

I have Armbian_21.11.0-trunk_Rk3318-box_hirsute_edge_5.14.14_xfce_desktop running on a Z28 (original). This has the RK3328 SoC with an RTL8188 WifI chip. Quite acceptable.

 

I replaced xfce with mate following:

and a lot of tweaking.

 

I also am running the xRDP server following https://www.hiroom2.com/ubuntu-2004-xrdp-mate-en and https://github.com/neutrinolabs/pulseaudio-module-xrdp/wiki/README , with a bit of tweaking.

 

I can give more details if anyone expresses interest.

.

There are two issues that I would like some help with if anyone has any info to share:

 

1. RTL8188 WiFi chip is not recognized

 

2. My (admittedly cheap) HDMI TV is recognized as 1080P 30Hz. However other devices I connect to it do use 1080P 60Hz. These refresh rates are as reported by the TV in an info panel that reports the HDMI connectivity status.

Edited by glenb
specify WiFi chip in point 1.
Link to comment
Share on other sites

18 hours ago, Wester_Minsk said:

There was a simple way, and it was in front of my nose.


This is the standard way from the official instructions of the Armbian:

 

Start the install script:
nand-data-installation

I chose:
of booting from eMMC/NAND, system to SATA/USB

 

The system migrates to a USB3 SSD
Restart and boot the system from USB3

 

now a stable start with USB3

Much better, I totally forgot about nand-sata-install script, mostly because I never tested it on rk3318 boards :)

Link to comment
Share on other sites

4 часа назад, jock сказал:

Much better, I totally forgot about nand-sata-install script, mostly because I never tested it on rk3318 boards :)

 

I have done the migration to SSD several times. It works well.
I also noticed that armbian-config started to work incorrectly. As I understand it, the path to the folder with scripts has changed, it does not work to change the language or region. I think this is a solvable problem.

Otherwise, everything is OK! :) 🍺

 

Link to comment
Share on other sites

I'm trying to use the 7-segment display on my H96 Max box.
The display is controlled by an FD6551 driver IC.
I'm using Armbian 21.11 - Debian Bullseye minimal-mainline kernel 5.15.2. It was very difficult, but I managed to compile a driver for it, which resulted in an openvfd.ko kernel module. I put this in the /lib/modules/5.15.2-rockchip64 directory. I tried different config files and placed them in the /etc/modprobe.d directory called vfd.conf. When I try to load the module (modprobe openvfd), this error always occurs:

libkmod: ERROR ../libkmod/libkmod-config.c:657 kmod_config_parse: /etc/modprobe.d/vfd.conf line 10: ignoring bad line starting with 'vfd_gpio_clk='0,65,0''
libkmod: ERROR ../libkmod/libkmod-config.c:657 kmod_config_parse: /etc/modprobe.d/vfd.conf line 11: ignoring bad line starting with 'vfd_gpio_dat='0,64,0''
libkmod: ERROR ../libkmod/libkmod-config.c:657 kmod_config_parse: /etc/modprobe.d/vfd.conf line 12: ignoring bad line starting with 'vfd_gpio_stb='0,0,0xFF''
libkmod: ERROR ../libkmod/libkmod-config.c:657 kmod_config_parse: /etc/modprobe.d/vfd.conf line 17: ignoring bad line starting with 'vfd_chars='0,4,3,2,1''
libkmod: ERROR ../libkmod/libkmod-config.c:657 kmod_config_parse: /etc/modprobe.d/vfd.conf line 28: ignoring bad line starting with 'vfd_dot_bits='0,1,3,2,4,5,6''
libkmod: ERROR ../libkmod/libkmod-config.c:657 kmod_config_parse: /etc/modprobe.d/vfd.conf line 36: ignoring bad line starting with 'vfd_display_type='0x00,0x00,0x00,0x00'

Unfortunately, I'm stuck here, I can't find more information on how to install openvfd properly.

Link to comment
Share on other sites

11 hours ago, paradigman said:

I'm trying to use the 7-segment display on my H96 Max box.
The display is controlled by an FD6551 driver IC.
I'm using Armbian 21.11 - Debian Bullseye minimal-mainline kernel 5.15.2. It was very difficult, but I managed to compile a driver for it, which resulted in an openvfd.ko kernel module. I put this in the /lib/modules/5.15.2-rockchip64 directory. I tried different config files and placed them in the /etc/modprobe.d directory called vfd.conf. When I try to load the module (modprobe openvfd), this error always occurs:

libkmod: ERROR ../libkmod/libkmod-config.c:657 kmod_config_parse: /etc/modprobe.d/vfd.conf line 10: ignoring bad line starting with 'vfd_gpio_clk='0,65,0''
libkmod: ERROR ../libkmod/libkmod-config.c:657 kmod_config_parse: /etc/modprobe.d/vfd.conf line 11: ignoring bad line starting with 'vfd_gpio_dat='0,64,0''
libkmod: ERROR ../libkmod/libkmod-config.c:657 kmod_config_parse: /etc/modprobe.d/vfd.conf line 12: ignoring bad line starting with 'vfd_gpio_stb='0,0,0xFF''
libkmod: ERROR ../libkmod/libkmod-config.c:657 kmod_config_parse: /etc/modprobe.d/vfd.conf line 17: ignoring bad line starting with 'vfd_chars='0,4,3,2,1''
libkmod: ERROR ../libkmod/libkmod-config.c:657 kmod_config_parse: /etc/modprobe.d/vfd.conf line 28: ignoring bad line starting with 'vfd_dot_bits='0,1,3,2,4,5,6''
libkmod: ERROR ../libkmod/libkmod-config.c:657 kmod_config_parse: /etc/modprobe.d/vfd.conf line 36: ignoring bad line starting with 'vfd_display_type='0x00,0x00,0x00,0x00'

Unfortunately, I'm stuck here, I can't find more information on how to install openvfd properly.

BAD LINE means that your syntax is wrong...
Also try to check in hex form if there are some "hidden" chars (usually when you did copy/paste from web pages). Sometimes also the type of EOL (End of Line) chars can be a problem.
 

Link to comment
Share on other sites

Minor upgrade!

 

Not so many fancy things, this time, but those interested in rtl8723cs, rtl8703bs and ssv6051 wifi chips may give a look into!

 

I upgraded the Debian Bullseye Minimal image (not the others) to kernel 5.15.16 kernel.

Also deb packages have been updated for manual upgrade to avoid system reinstall (instruction on first page, as usual).

 

@Zippy may be particularly interested in this.

 

Enjoy and give feedback! ;)

Link to comment
Share on other sites

13 hours ago, lucky62 said:

BAD LINE means that your syntax is wrong...
Also try to check in hex form if there are some "hidden" chars (usually when you did copy/paste from web pages). Sometimes also the type of EOL (End of Line) chars can be a problem.
 

i opened the config file with notepad ++ but i don't see any unusual hidden characters. The file is utf-8 encoded anyway.

 

Spoiler

ooo.thumb.jpg.f63d3d6739b1046b6cde8e56e8ea5f86.jpg

 

Link to comment
Share on other sites

1 hour ago, jock said:

@Zippy may be particularly interested in this.

 

Enjoy and give feedback! ;)

Hey @jock thanks for this upgrade....
it is chrismas in January :)

the upgrade works nicely and the wireless show up after reboot:
 

3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether 00:e0:4c:05:67:86 brd ff:ff:ff:ff:ff:ff

 

i have this in the log but i think it is related to bluetooth :
 

Jan 20 16:32:58 olivia dbus-daemon[1651]: [system] Activating via systemd: service name='org.bluez' unit='dbus-org.bluez.service' requested by ':1.2' (uid=0 pid=592 comm="/bin/brltty --no-daemon ")
Jan 20 16:32:58 olivia systemd[1]: Condition check resulted in Bluetooth service being skipped.


Now i can check on the vfd , but this is really secondary
I will move to the EMMC with
 

nand-sata-install

 

Do you need any data, or me to test anything. my Box is a pretty standard box T9 people was throwing away :) i hate waste
Thanks again for this great work.
Z.

Link to comment
Share on other sites

@Zippy Glad to hear it works!

For bluetooth there is the need for some more bits in the kernel config and a device tree overlay.

Everything is already working for rk322x board series so I need to find some time to transpose the things on rk3318, hoping it works the very same way.

 

You may find some instructions here and there to get bluetooth up and running using only userland applications for realtek. I'm not experienced with realtek, but I can say that for broadcom it required quite a bit of time to get things squared out.

 

Link to comment
Share on other sites

10 minutes ago, jock said:

@Zippy Glad to hear it works!

For bluetooth there is the need for some more bits in the kernel config and a device tree overlay.

Everything is already working for rk322x board series so I need to find some time to transpose the things on rk3318, hoping it works the very same way.

 

You may find some instructions here and there to get bluetooth up and running using only userland applications for realtek. I'm not experienced with realtek, but I can say that for broadcom it required quite a bit of time to get things squared out.

 

Yeah Thanks 
i am reading a lot , not yet comfortable with the tree overlay, but i guess it will come.
the wireless was the more annoying...

I think i will work on the vfd for now seems more reachable for me , as i am new to that... (i mean this kind of chip) not new to linux tho ;) , even if it is quite a while since i play with kernel :) i will probably reveal my age if i tell you the first kernel i built was 0.98 on a slak :)
Thanks again

Link to comment
Share on other sites

20 hours ago, Zippy said:

I think i will work on the vfd for now ..

I'm really pushing, it would be nice to finally have some advice that works in practice.

 

Edit:
meanwhile I realized that I shouldn't use a config file, since my dts contains the same data that I included in the config file.

Edited by paradigman
add plus information
Link to comment
Share on other sites

@jock

Your latest Debian Bullseye Minimal image doesn't include armbian-config.

 

Which is great! It is tiny and super fast to flash on the box!

But at the same time, it breaks the installation instructions and makes it more difficult for noobs like me who relies on WiFi connection.

 

Simple instructions to install armbian-config:

sudo iwconfig
sudo iwlist [interface from previous command] scan | greo ESSID
nmcli d wifi connect [your network name from previous command] password [your wifi password]
sudo apt update
sudo apt install armbian-config

 

Somehow this failed with 404 for versioning issues, so I installed it manually:

wget https://imola.armbian.com/apt/pool/main/a/armbian-config/armbian-config_21.11.0-trunk.85_all.deb
sudo apt install ./armbian-config_21.11.0-trunk.85_all.deb

 

Maybe this will be useful for someone (maybe the instructions for minimal images can indicate how to connect over WiFi manually / install armbian-config?)

 

I still have no luck with bluetooth on this latest release. Any help would be appreciated!

rk3318-config says "No Wifi chip detected" (maybe a clue?) but Wifi works anyway

I enabled rk3318-box-wlan-ap6330 through armbian-config

"sudo hciconfig -a" indicate that the interface "hci0" is down

"sudo hciconfig hci0 up" returns "Operation not supported (95)"

In dmesg, I see "Direct Firmware load for brcm/brcmfmac4330-sdio.rockchip,rk3318-box.bin failed with error -2". I previously was able to correct this (maybe?) by creating a symlink but that didn't fix the BT issue so not sure if I should mess up with that again.

 

My box: x88Pro-B-RK3318-D4-V1.2 4G/32G, (the same as @Huafu and @lucky62)

Wifi/BT chip: Sp6330

 

Any pointers in which direction I should dig to get Bluetooth working? I don't think my box is that uncommon...

Except the command written above, I am on a brand new Armbian_22.02.0-trunk_Rk3318-box_bullseye_edge_5.15.16_minimal installation

 

Thanks!

 

Link to comment
Share on other sites

@jock:

Today I compiled a new kernel module for openvfd again. The compilation went smoothly, but when I later tried to load it with insmod during a new installation, this error occurred:
version magic '3.14.29 SMP mod_unload aarch64' should be '5.15.16-rockchip64 SMP preempt mod_unload aarch64'
Maybe the kernel for the new image was created without CONFIG_LOCALVERSION?

Edit: 
back to the whole thing, the former error was due to an accidentally trying to load a compiled kernel module last time. It does not load the current freshly baked module, It now writes:

Message from syslogd@rk3318-box at Jan 21 21:48:32 ...
 kernel:[  591.624102] Internal error: Oops: 96000004 [#1] PREEMPT SMP

Message from syslogd@rk3318-box at Jan 21 21:48:32 ...
 kernel:[  591.968480] Code: 32000000 39016420 f9401a60 f9404be1 (f9406022)
Segmentation error

Link to comment
Share on other sites

@paradigman

you need sources for your kernel that is 5.15.16-rockchip64
you compiled from sources that are 3.14.29 SMP

in few words wrong sources so the module will never fit and it isn't a problem of CONFIG_LOCALVERSION
Is a problem you are usign wrong one

Link to comment
Share on other sites

@MarcoFdN

Yes, armbian-config is not included in any Armbian minimal releases (not just mine), because if it was it would not be minimal  anymore: armbian-config requires lots of dependencies and, for this reason, it is undergoing a vast refactoring which I don't know when it will be ready.

 

In the meantime, no armbian-config for minimal images.

Plus minimal images are for more experienced debian users, since target is server-like tasks.

 

dmesg log is essential for such issues: x88 boards have wifi over "external" sdmmc controller, thus rk3318-config should already have warned you that you had to configure, reboot and then run again rk3318-config to get wifi and bluetooth detected and working.

 

wifi can be configured either from command line with nmcli, but also with nmtui which provide a nice and simpler text-based UI even on minimal distros.

Link to comment
Share on other sites

I switched to - Armbian 22.02 - Debian Bullseye minimal - mainline kernel 5.15.16


Everything is ok on my board.


I migrated the system to a usb3 ssd drive, and connected a usb3 hub with a 1 Gbit LAN.


On the new version of the image, the armbian-config works fine after migration.

 

Thank you so much for the new release!!!

Link to comment
Share on other sites

@jock

Thanks!

 

rk3318-config is never detecting my WiFi card, it always ask to reconfigure and reboot again.

 

I found the issue with rk3318-config!

My wifi device dev path is /sys/bus/sdio/devices/mmc4:0001:1 instead of mmc1 or mmc3.

After modifying the rk3318-config script, it now detects my WiFi card and configure Bluetooth!

(maybe another lookup path should be added in rk3318-config?)

 

However, same issue as before, I cannot power up Bluetooth:

sudo hciconfig hci0 up

Returns "Can't init device hci0: Operation not supported (95)"

 

Any other directions I can explore?

 

Relevant logs in dmesg:

[    9.315966] Bluetooth: hci0: BCM: chip id 62
[    9.316820] Bluetooth: hci0: BCM: features 0x0f
[    9.318676] Bluetooth: hci0: BCM4330B1
[    9.318722] Bluetooth: hci0: BCM4330B1 (002.001.003) build 0000
[    9.321515] Bluetooth: hci0: BCM4330B1 'brcm/BCM4330B1.hcd' Patch
[    9.487098] EXT4-fs (zram1): mounted filesystem without journal. Opts: discard. Quota mode: none.
[    9.487270] ext4 filesystem being mounted at /var/log supports timestamps until 2038 (0x7fffffff)
[    9.543657] brcmfmac: F1 signature read @0x18000000=0x16044330
[    9.566771] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac4330-sdio for chip BCM4330/4
[    9.567115] brcmfmac mmc4:0001:1: Direct firmware load for brcm/brcmfmac4330-sdio.rockchip,rk3318-box.bin failed with error -2
[    9.569469] usbcore: registered new interface driver brcmfmac
[    9.865889] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac4330-sdio for chip BCM4330/4
[    9.866233] brcmfmac: brcmf_c_process_clm_blob: no clm_blob available (err=-2), device may have limited channels available
[    9.867427] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM4330/4 wl0: Oct 25 2011 19:34:12 version 5.90.125.104

 

In a previous install, I created a symlink to bypass the "failed with error -2" but that didn't help with Bluetooth.

 

Additional information:

Hardware:

Android TV Box 10.0 4GB 32GB by "C Cosycost" available on Amazon for $40

 

Full dmseg in case I missing something:

Spoiler

[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[    0.000000] Linux version 5.15.16-rockchip64 (root@armbianbuild) (aarch64-linux-gnu-gcc (GNU Toolchain for the A-profile Architecture 8.3-2019.03 (arm-rel-8.36)) 8.3.0, GNU ld (GNU Toolchain for the A-profile Architecture 8.3-2019.03 (arm-rel-8.36)) 2.32.0.20190321) #trunk SMP PREEMPT Thu Jan 20 20:09:47 UTC 2022
[    0.000000] Machine model: Rockchip RK3318 BOX
[    0.000000] efi: UEFI not found.
[    0.000000] NUMA: No NUMA configuration found
[    0.000000] NUMA: Faking a node at [mem 0x0000000000200000-0x00000000feffffff]
[    0.000000] NUMA: NODE_DATA [mem 0xfe7b3100-0xfe7b4fff]
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000000200000-0x00000000feffffff]
[    0.000000]   DMA32    empty
[    0.000000]   Normal   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000200000-0x00000000feffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000200000-0x00000000feffffff]
[    0.000000] cma: Reserved 128 MiB at 0x00000000f2400000
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.1 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: MIGRATE_INFO_TYPE not supported.
[    0.000000] psci: SMC Calling Convention v1.2
[    0.000000] percpu: Embedded 29 pages/cpu s80856 r8192 d29736 u118784
[    0.000000] pcpu-alloc: s80856 r8192 d29736 u118784 alloc=29*4096
[    0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: detected: ARM erratum 845719
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 1027656
[    0.000000] Policy zone: DMA
[    0.000000] Kernel command line: root=UUID=a8117730-a298-46ed-a286-1f85756ca11c rootwait rootfstype=ext4 console=ttyS2,1500000 console=tty1 consoleblank=0 loglevel=1 ubootpart=eddb8750-01 usb-storage.quirks=0x2537:0x1066:u,0x2537:0x1068:u   cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory swapaccount=1
[    0.000000] Unknown kernel command line parameters "ubootpart=eddb8750-01 cgroup_enable=memory cgroup_memory=1", will be passed to user space.
[    0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes, linear)
[    0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:on, heap free:off
[    0.000000] Memory: 3922948K/4175872K available (15744K kernel code, 2690K rwdata, 6508K rodata, 4288K init, 576K bss, 121852K reserved, 131072K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] trace event string verifier disabled
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000] rcu:     RCU event tracing is enabled.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=4.
[    0.000000]     Trampoline variant of Tasks RCU enabled.
[    0.000000]     Rude variant of Tasks RCU enabled.
[    0.000000]     Tracing variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] Root IRQ handler: gic_handle_irq
[    0.000000] GIC: Using split EOI/Deactivate mode
[    0.000000] random: get_random_bytes called from start_kernel+0x838/0xa18 with crng_init=0
[    0.000000] arch_timer: cp15 timer(s) running at 24.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns
[    0.000001] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
[    0.001452] Console: colour dummy device 80x25
[    0.001518] printk: console [tty1] enabled
[    0.001679] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=96000)
[    0.001702] pid_max: default: 32768 minimum: 301
[    0.001864] LSM: Security Framework initializing
[    0.001911] Yama: becoming mindful.
[    0.002083] AppArmor: AppArmor initialized
[    0.002188] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.002243] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.005947] rcu: Hierarchical SRCU implementation.
[    0.009200] EFI services will not be available.
[    0.009998] smp: Bringing up secondary CPUs ...
[    0.011146] Detected VIPT I-cache on CPU1
[    0.011262] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
[    0.012689] Detected VIPT I-cache on CPU2
[    0.012795] CPU2: Booted secondary processor 0x0000000002 [0x410fd034]
[    0.014102] Detected VIPT I-cache on CPU3
[    0.014205] CPU3: Booted secondary processor 0x0000000003 [0x410fd034]
[    0.014405] smp: Brought up 1 node, 4 CPUs
[    0.014430] SMP: Total of 4 processors activated.
[    0.014442] CPU features: detected: 32-bit EL0 Support
[    0.014451] CPU features: detected: 32-bit EL1 Support
[    0.014463] CPU features: detected: CRC32 instructions
[    0.036661] CPU: All CPU(s) started at EL2
[    0.036730] alternatives: patching kernel code
[    0.040459] devtmpfs: initialized
[    0.063629] Registered cp15_barrier emulation handler
[    0.063670] Registered setend emulation handler
[    0.064094] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.064209] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[    0.072588] pinctrl core: initialized pinctrl subsystem
[    0.073878] DMI not present or invalid.
[    0.074853] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.080003] DMA: preallocated 2048 KiB GFP_KERNEL pool for atomic allocations
[    0.081597] DMA: preallocated 2048 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    0.084826] DMA: preallocated 2048 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.085066] audit: initializing netlink subsys (disabled)
[    0.085759] audit: type=2000 audit(0.084:1): state=initialized audit_enabled=0 res=1
[    0.087377] thermal_sys: Registered thermal governor 'fair_share'
[    0.087396] thermal_sys: Registered thermal governor 'bang_bang'
[    0.087408] thermal_sys: Registered thermal governor 'step_wise'
[    0.087420] thermal_sys: Registered thermal governor 'user_space'
[    0.088030] cpuidle: using governor menu
[    0.088565] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.088778] ASID allocator initialised with 65536 entries
[    0.090753] Serial: AMBA PL011 UART driver
[    0.113180] platform ff3c0000.hdmi: Fixing up cyclic dependency with ff370000.vop
[    0.140246] rockchip-gpio ff210000.gpio0: probed /pinctrl/gpio0@ff210000
[    0.141836] rockchip-gpio ff220000.gpio1: probed /pinctrl/gpio1@ff220000
[    0.143101] rockchip-gpio ff230000.gpio2: probed /pinctrl/gpio2@ff230000
[    0.144419] rockchip-gpio ff240000.gpio3: probed /pinctrl/gpio3@ff240000
[    0.180467] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages
[    0.180500] HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages
[    0.180514] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
[    0.180525] HugeTLB registered 64.0 KiB page size, pre-allocated 0 pages
[    0.186500] cryptd: max_cpu_qlen set to 1000
[    0.265242] raid6: neonx8   gen()  1045 MB/s
[    0.333411] raid6: neonx8   xor()   775 MB/s
[    0.401679] raid6: neonx4   gen()  1061 MB/s
[    0.469779] raid6: neonx4   xor()   768 MB/s
[    0.537935] raid6: neonx2   gen()  1012 MB/s
[    0.606074] raid6: neonx2   xor()   708 MB/s
[    0.674214] raid6: neonx1   gen()   888 MB/s
[    0.742363] raid6: neonx1   xor()   606 MB/s
[    0.810530] raid6: int64x8  gen()   747 MB/s
[    0.878714] raid6: int64x8  xor()   392 MB/s
[    0.946810] raid6: int64x4  gen()   830 MB/s
[    1.014957] raid6: int64x4  xor()   424 MB/s
[    1.083110] raid6: int64x2  gen()   708 MB/s
[    1.151247] raid6: int64x2  xor()   374 MB/s
[    1.219377] raid6: int64x1  gen()   526 MB/s
[    1.287554] raid6: int64x1  xor()   274 MB/s
[    1.287565] raid6: using algorithm neonx4 gen() 1061 MB/s
[    1.287575] raid6: .... xor() 768 MB/s, rmw enabled
[    1.287588] raid6: using neon recovery algorithm
[    1.291983] vcc_sd: supplied by vccio_3v3
[    1.292916] vcc_host_vbus: supplied by vcc_sys
[    1.293847] vcc_otg_vbus: supplied by vcc_sys
[    1.294793] iommu: Default domain type: Translated 
[    1.294810] iommu: DMA domain TLB invalidation policy: strict mode 
[    1.299232] vgaarb: loaded
[    1.300134] SCSI subsystem initialized
[    1.300541] libata version 3.00 loaded.
[    1.301099] usbcore: registered new interface driver usbfs
[    1.301178] usbcore: registered new interface driver hub
[    1.301255] usbcore: registered new device driver usb
[    1.302299] pps_core: LinuxPPS API ver. 1 registered
[    1.302311] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    1.302342] PTP clock support registered
[    1.302727] EDAC MC: Ver: 3.0.0
[    1.305223] NetLabel: Initializing
[    1.305248] NetLabel:  domain hash size = 128
[    1.305259] NetLabel:  protocols = UNLABELED CIPSOv4 CALIPSO
[    1.305394] NetLabel:  unlabeled traffic allowed by default
[    1.306372] clocksource: Switched to clocksource arch_sys_counter
[    1.415120] VFS: Disk quotas dquot_6.6.0
[    1.415261] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    1.416915] AppArmor: AppArmor Filesystem Enabled
[    1.432016] NET: Registered PF_INET protocol family
[    1.432433] IP idents hash table entries: 65536 (order: 7, 524288 bytes, linear)
[    1.436299] tcp_listen_portaddr_hash hash table entries: 2048 (order: 3, 32768 bytes, linear)
[    1.436638] TCP established hash table entries: 32768 (order: 6, 262144 bytes, linear)
[    1.437277] TCP bind hash table entries: 32768 (order: 7, 524288 bytes, linear)
[    1.438034] TCP: Hash tables configured (established 32768 bind 32768)
[    1.438453] UDP hash table entries: 2048 (order: 4, 65536 bytes, linear)
[    1.438666] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes, linear)
[    1.439162] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    1.439222] NET: Registered PF_XDP protocol family
[    1.439246] PCI: CLS 0 bytes, default 64
[    1.440145] Trying to unpack rootfs image as initramfs...
[    1.450712] hw perfevents: enabled with armv8_cortex_a53 PMU driver, 7 counters available
[    1.451757] kvm [1]: IPA Size Limit: 40 bits
[    1.454308] kvm [1]: vgic interrupt IRQ9
[    1.454719] kvm [1]: Hyp mode initialized successfully
[    1.471881] Initialise system trusted keyrings
[    1.471963] Key type blacklist registered
[    1.472428] workingset: timestamp_bits=44 max_order=20 bucket_order=0
[    1.484948] zbud: loaded
[    1.488215] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    1.489800] fuse: init (API version 7.34)
[    1.492530] integrity: Platform Keyring initialized
[    1.567245] xor: measuring software checksum speed
[    1.575443]    8regs           :  1217 MB/sec
[    1.582597]    32regs          :  1400 MB/sec
[    1.591858]    arm64_neon      :  1073 MB/sec
[    1.591884] xor: using function: 32regs (1400 MB/sec)
[    1.591909] Key type asymmetric registered
[    1.591919] Asymmetric key parser 'x509' registered
[    1.592180] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 246)
[    1.592596] io scheduler mq-deadline registered
[    1.592617] io scheduler kyber registered
[    1.593024] io scheduler bfq registered
[    1.621927] dma-pl330 ff1f0000.dmac: Loaded driver for PL330 DMAC-241330
[    1.621966] dma-pl330 ff1f0000.dmac:     DBUFF-128x8bytes Num_Chans-8 Num_Peri-20 Num_Events-16
[    1.629992] vdd_arm: supplied by vcc_sys
[    1.631009] vdd_log: supplied by vcc_sys
[    1.633469] Serial: 8250/16550 driver, 8 ports, IRQ sharing disabled
[    1.639539] ff110000.serial: ttyS0 at MMIO 0xff110000 (irq = 21, base_baud = 1500000) is a 16550A
[    1.639951] serial serial0: tty port ttyS0 registered
[    1.642015] ff130000.serial: ttyS2 at MMIO 0xff130000 (irq = 22, base_baud = 1500000) is a 16550A
[    1.642316] printk: console [ttyS2] enabled
[    1.644553] Serial: AMBA driver
[    1.647239] rockchip-vop ff370000.vop: Adding to iommu group 4
[    1.674754] loop: module loaded
[    1.683147] libphy: Fixed MDIO Bus: probed
[    1.684348] tun: Universal TUN/TAP device driver, 1.6
[    1.686217] thunder_xcv, ver 1.0
[    1.686311] thunder_bgx, ver 1.0
[    1.686503] nicpf, ver 1.0
[    1.688027] e1000e: Intel(R) PRO/1000 Network Driver
[    1.688044] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[    1.688157] igb: Intel(R) Gigabit Ethernet Network Driver
[    1.688167] igb: Copyright (c) 2007-2014 Intel Corporation.
[    1.688251] igbvf: Intel(R) Gigabit Virtual Function Network Driver
[    1.688262] igbvf: Copyright (c) 2009 - 2012 Intel Corporation.
[    1.688663] sky2: driver version 1.30
[    1.689841] VFIO - User Level meta-driver version: 0.3
[    1.693842] dwc2 ff580000.usb: supply vusb_d not found, using dummy regulator
[    1.694179] dwc2 ff580000.usb: supply vusb_a not found, using dummy regulator
[    1.707481] dwc2 ff580000.usb: DWC OTG Controller
[    1.707548] dwc2 ff580000.usb: new USB bus registered, assigned bus number 1
[    1.707621] dwc2 ff580000.usb: irq 50, io mem 0xff580000
[    1.708035] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.15
[    1.708058] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.708073] usb usb1: Product: DWC OTG Controller
[    1.708085] usb usb1: Manufacturer: Linux 5.15.16-rockchip64 dwc2_hsotg
[    1.708099] usb usb1: SerialNumber: ff580000.usb
[    1.709234] hub 1-0:1.0: USB hub found
[    1.709324] hub 1-0:1.0: 1 port detected
[    1.711734] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    1.711809] ehci-pci: EHCI PCI platform driver
[    1.711898] ehci-platform: EHCI generic platform driver
[    1.714500] ehci-platform ff5c0000.usb: EHCI Host Controller
[    1.714591] ehci-platform ff5c0000.usb: new USB bus registered, assigned bus number 2
[    1.714895] ehci-platform ff5c0000.usb: irq 51, io mem 0xff5c0000
[    1.734516] ehci-platform ff5c0000.usb: USB 2.0 started, EHCI 1.00
[    1.735061] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.15
[    1.735090] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.735106] usb usb2: Product: EHCI Host Controller
[    1.735121] usb usb2: Manufacturer: Linux 5.15.16-rockchip64 ehci_hcd
[    1.735135] usb usb2: SerialNumber: ff5c0000.usb
[    1.736201] hub 2-0:1.0: USB hub found
[    1.736281] hub 2-0:1.0: 1 port detected
[    1.737213] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    1.737280] ohci-pci: OHCI PCI platform driver
[    1.737408] ohci-platform: OHCI generic platform driver
[    1.738289] ohci-platform ff5d0000.usb: Generic Platform OHCI controller
[    1.738337] ohci-platform ff5d0000.usb: new USB bus registered, assigned bus number 3
[    1.738734] ohci-platform ff5d0000.usb: irq 52, io mem 0xff5d0000
[    1.802881] usb usb3: New USB device found, idVendor=1d6b, idProduct=0001, bcdDevice= 5.15
[    1.802923] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.802938] usb usb3: Product: Generic Platform OHCI controller
[    1.802953] usb usb3: Manufacturer: Linux 5.15.16-rockchip64 ohci_hcd
[    1.802966] usb usb3: SerialNumber: ff5d0000.usb
[    1.804047] hub 3-0:1.0: USB hub found
[    1.804138] hub 3-0:1.0: 1 port detected
[    1.806285] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
[    1.806424] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 4
[    1.806739] xhci-hcd xhci-hcd.0.auto: hcc params 0x0220fe64 hci version 0x110 quirks 0x0000000002010010
[    1.806866] xhci-hcd xhci-hcd.0.auto: irq 53, io mem 0xff600000
[    1.807694] usb usb4: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.15
[    1.807728] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.807744] usb usb4: Product: xHCI Host Controller
[    1.807756] usb usb4: Manufacturer: Linux 5.15.16-rockchip64 xhci-hcd
[    1.807769] usb usb4: SerialNumber: xhci-hcd.0.auto
[    1.808811] hub 4-0:1.0: USB hub found
[    1.808893] hub 4-0:1.0: 1 port detected
[    1.809593] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
[    1.809637] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 5
[    1.809674] xhci-hcd xhci-hcd.0.auto: Host supports USB 3.0 SuperSpeed
[    1.809844] usb usb5: We don't know the algorithms for LPM for this host, disabling LPM.
[    1.810100] usb usb5: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 5.15
[    1.810125] usb usb5: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.810141] usb usb5: Product: xHCI Host Controller
[    1.810153] usb usb5: Manufacturer: Linux 5.15.16-rockchip64 xhci-hcd
[    1.810168] usb usb5: SerialNumber: xhci-hcd.0.auto
[    1.811642] hub 5-0:1.0: USB hub found
[    1.811732] hub 5-0:1.0: 1 port detected
[    1.812759] usbcore: registered new interface driver usb-storage
[    1.816677] mousedev: PS/2 mouse device common for all mice
[    1.819143] i2c_dev: i2c /dev entries driver
[    1.824423] dw_wdt ff1a0000.watchdog: No valid TOPs array specified
[    1.828830] sdhci: Secure Digital Host Controller Interface driver
[    1.828859] sdhci: Copyright(c) Pierre Ossman
[    1.828910] Synopsys Designware Multimedia Card Interface Driver
[    1.830668] sdhci-pltfm: SDHCI platform and OF driver helper
[    1.832219] dwmmc_rockchip ff520000.mmc: IDMAC supports 32-bit address mode.
[    1.832304] dwmmc_rockchip ff520000.mmc: Using internal DMA controller.
[    1.832324] dwmmc_rockchip ff520000.mmc: Version ID is 270a
[    1.832439] dwmmc_rockchip ff520000.mmc: DW MMC controller at irq 48,32 bit host data width,256 deep fifo
[    1.833359] dwmmc_rockchip ff5f0000.mmc: IDMAC supports 32-bit address mode.
[    1.833400] mmc_host mmc2: card is non-removable.
[    1.833441] dwmmc_rockchip ff5f0000.mmc: Using internal DMA controller.
[    1.833461] dwmmc_rockchip ff5f0000.mmc: Version ID is 270a
[    1.833582] dwmmc_rockchip ff5f0000.mmc: DW MMC controller at irq 58,32 bit host data width,256 deep fifo
[    1.833838] dwmmc_rockchip ff500000.mmc: IDMAC supports 32-bit address mode.
[    1.833894] dwmmc_rockchip ff500000.mmc: Using internal DMA controller.
[    1.833912] dwmmc_rockchip ff500000.mmc: Version ID is 270a
[    1.834020] dwmmc_rockchip ff500000.mmc: DW MMC controller at irq 47,32 bit host data width,256 deep fifo
[    1.834148] dwmmc_rockchip ff5f0000.mmc: allocated mmc-pwrseq
[    1.834172] mmc_host mmc4: card is non-removable.
[    1.834802] dwmmc_rockchip ff500000.mmc: Got CD GPIO
[    1.835607] ledtrig-cpu: registered to indicate activity on CPUs
[    1.837522] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
[    1.838010] hid: raw HID events driver (C) Jiri Kosina
[    1.838276] usbcore: registered new interface driver usbhid
[    1.838289] usbhid: USB HID core driver
[    1.846543] mmc_host mmc2: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)
[    1.846704] mmc_host mmc0: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)
[    1.847184] mmc_host mmc4: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)
[    1.847446] drop_monitor: Initializing network drop monitor service
[    1.848814] NET: Registered PF_INET6 protocol family
[    1.927431] mmc_host mmc4: Bus speed (slot 0) = 50000000Hz (slot req 50000000Hz, actual 50000000HZ div = 0)
[    1.928447] random: fast init done
[    1.929834] mmc4: new high speed SDIO card at address 0001
[    2.010512] usb 1-1: new low-speed USB device number 2 using dwc2
[    2.069491] mmc_host mmc2: Bus speed (slot 0) = 150000000Hz (slot req 150000000Hz, actual 150000000HZ div = 0)
[    2.135537] Freeing initrd memory: 11104K
[    2.200596] Segment Routing with IPv6
[    2.200780] In-situ OAM (IOAM) with IPv6
[    2.200961] NET: Registered PF_PACKET protocol family
[    2.201264] 8021q: 802.1Q VLAN Support v1.8
[    2.201362] Key type dns_resolver registered
[    2.203522] registered taskstats version 1
[    2.203564] Loading compiled-in X.509 certificates
[    2.209720] Loaded X.509 cert 'Build time autogenerated kernel key: e442f4dae2f94d5179eb3e23342c56e73888fead'
[    2.215847] zswap: loaded using pool zstd/z3fold
[    2.217394] Key type ._fscrypt registered
[    2.217420] Key type .fscrypt registered
[    2.217429] Key type fscrypt-provisioning registered
[    2.221762] Btrfs loaded, crc32c=crc32c-generic, zoned=yes, fsverity=yes
[    2.231316] usb 1-1: New USB device found, idVendor=04f2, idProduct=0833, bcdDevice= 2.30
[    2.231358] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    2.231374] usb 1-1: Product: USB Keyboard
[    2.231388] usb 1-1: Manufacturer: CHICONY
[    2.238213] input: CHICONY USB Keyboard as /devices/platform/ff580000.usb/usb1/1-1/1-1:1.0/0003:04F2:0833.0001/input/input0
[    2.253824] Key type encrypted registered
[    2.253876] AppArmor: AppArmor sha1 policy hashing enabled
[    2.295554] hid-generic 0003:04F2:0833.0001: input,hidraw0: USB HID v1.11 Keyboard [CHICONY USB Keyboard] on usb-ff580000.usb-1/input0
[    2.306919] input: CHICONY USB Keyboard System Control as /devices/platform/ff580000.usb/usb1/1-1/1-1:1.1/0003:04F2:0833.0002/input/input1
[    2.314200] rockchip-vop ff370000.vop: using dedicated hwcursor plane
[    2.316653] rockchip-drm display-subsystem: bound ff370000.vop (ops vop_component_ops)
[    2.317266] dwhdmi-rockchip ff3c0000.hdmi: Detected HDMI TX controller v2.11a with HDCP (inno_dw_hdmi_phy2)
[    2.318548] dwhdmi-rockchip ff3c0000.hdmi: registered DesignWare HDMI I2C bus driver
[    2.319625] rockchip-drm display-subsystem: bound ff3c0000.hdmi (ops dw_hdmi_rockchip_ops)
[    2.336525] dwmmc_rockchip ff520000.mmc: Successfully tuned phase to 231
[    2.336753] mmc2: new HS200 MMC card at address 0001
[    2.338801] mmcblk2: mmc2:0001 BJNB4R 29.1 GiB 
[    2.344015]  mmcblk2: p1
[    2.345778] mmcblk2boot0: mmc2:0001 BJNB4R 4.00 MiB 
[    2.351106] mmcblk2boot1: mmc2:0001 BJNB4R 4.00 MiB 
[    2.355502] mmcblk2rpmb: mmc2:0001 BJNB4R 4.00 MiB, chardev (241:0)
[    2.366970] input: CHICONY USB Keyboard Consumer Control as /devices/platform/ff580000.usb/usb1/1-1/1-1:1.1/0003:04F2:0833.0002/input/input2
[    2.367453] input: CHICONY USB Keyboard as /devices/platform/ff580000.usb/usb1/1-1/1-1:1.1/0003:04F2:0833.0002/input/input3
[    2.368197] hid-generic 0003:04F2:0833.0002: input,hiddev96,hidraw1: USB HID v1.11 Device [CHICONY USB Keyboard] on usb-ff580000.usb-1/input1
[    2.472512] Console: switching to colour frame buffer device 240x67
[    2.554752] rockchip-drm display-subsystem: [drm] fb0: rockchipdrmfb frame buffer device
[    2.555994] [drm] Initialized rockchip 1.0.0 20140818 for display-subsystem on minor 0
[    2.557632] of_cfs_init
[    2.557724] of_cfs_init: OK
[    2.563447] Freeing unused kernel memory: 4288K
[    2.570534] Run /init as init process
[    2.570554]   with arguments:
[    2.570565]     /init
[    2.570574]   with environment:
[    2.570582]     HOME=/
[    2.570591]     TERM=linux
[    2.570599]     ubootpart=eddb8750-01
[    2.570609]     cgroup_enable=memory
[    2.570618]     cgroup_memory=1
[    3.458776] input: adc-keys as /devices/platform/adc-keys/input/input4
[    3.495832] gpio-syscon ff100000.syscon:gpio: can't read the data register offset!
[    3.939112] rk_gmac-dwmac ff550000.ethernet: IRQ eth_wake_irq not found
[    3.939160] rk_gmac-dwmac ff550000.ethernet: IRQ eth_lpi not found
[    3.939410] rk_gmac-dwmac ff550000.ethernet: PTP uses main clock
[    3.939977] rk_gmac-dwmac ff550000.ethernet: clock input or output? (output).
[    3.940026] rk_gmac-dwmac ff550000.ethernet: TX delay(0x30).
[    3.940044] rk_gmac-dwmac ff550000.ethernet: RX delay(0x10).
[    3.940098] rk_gmac-dwmac ff550000.ethernet: integrated PHY? (yes).
[    3.940278] rk_gmac-dwmac ff550000.ethernet: cannot get clock clk_mac_refout
[    3.940306] rk_gmac-dwmac ff550000.ethernet: cannot get clock clk_mac_speed
[    3.945706] rk_gmac-dwmac ff550000.ethernet: init for RMII
[    3.986936] rk_gmac-dwmac ff550000.ethernet: User ID: 0x10, Synopsys ID: 0x35
[    3.986988] rk_gmac-dwmac ff550000.ethernet:     DWMAC1000
[    3.987003] rk_gmac-dwmac ff550000.ethernet: DMA HW capability register supported
[    3.987017] rk_gmac-dwmac ff550000.ethernet: RX Checksum Offload Engine supported
[    3.987028] rk_gmac-dwmac ff550000.ethernet: COE Type 2
[    3.987041] rk_gmac-dwmac ff550000.ethernet: TX Checksum insertion supported
[    3.987054] rk_gmac-dwmac ff550000.ethernet: Wake-Up On Lan supported
[    3.987281] rk_gmac-dwmac ff550000.ethernet: Normal descriptors
[    3.987296] rk_gmac-dwmac ff550000.ethernet: Ring mode enabled
[    3.987308] rk_gmac-dwmac ff550000.ethernet: Enable RX Mitigation via HW Watchdog Timer
[    3.988525] libphy: stmmac: probed
[    4.202814] EXT4-fs (mmcblk2p1): mounted filesystem with writeback data mode. Opts: (null). Quota mode: none.
[    4.730551] systemd[1]: System time before build time, advancing clock.
[    4.763719] systemd[1]: Inserted module 'autofs4'
[    4.839707] systemd[1]: systemd 247.3-6 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +ZSTD +SECCOMP +BLKID +ELFUTILS +KMOD +IDN2 -IDN +PCRE2 default-hierarchy=unified)
[    4.841080] systemd[1]: Detected architecture arm64.
[    4.848864] systemd[1]: Set hostname to <safe-gate>.
[    5.009153] dw-apb-uart ff130000.serial: forbid DMA for kernel console
[    5.884863] systemd[1]: Queued start job for default target Graphical Interface.
[    5.887662] random: systemd: uninitialized urandom read (16 bytes read)
[    5.894725] systemd[1]: Created slice system-getty.slice.
[    5.896450] random: systemd: uninitialized urandom read (16 bytes read)
[    5.899875] systemd[1]: Created slice system-modprobe.slice.
[    5.900867] random: systemd: uninitialized urandom read (16 bytes read)
[    5.904655] systemd[1]: Created slice system-serial\x2dgetty.slice.
[    5.908139] systemd[1]: Created slice User and Session Slice.
[    5.909953] systemd[1]: Started Dispatch Password Requests to Console Directory Watch when bootsplash is active.
[    5.911898] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[    5.915036] systemd[1]: Set up automount Arbitrary Executable File Formats File System Automount Point.
[    5.916501] systemd[1]: Reached target Local Encrypted Volumes.
[    5.917683] systemd[1]: Reached target Paths.
[    5.918590] systemd[1]: Reached target Remote File Systems.
[    5.919456] systemd[1]: Reached target Slices.
[    5.920264] systemd[1]: Reached target Swap.
[    5.921073] systemd[1]: Reached target System Time Set.
[    5.923301] systemd[1]: Listening on Syslog Socket.
[    5.925416] systemd[1]: Listening on fsck to fsckd communication Socket.
[    5.927224] systemd[1]: Listening on initctl Compatibility Named Pipe.
[    5.929857] systemd[1]: Listening on Journal Audit Socket.
[    5.932458] systemd[1]: Listening on Journal Socket (/dev/log).
[    5.935409] systemd[1]: Listening on Journal Socket.
[    5.938158] systemd[1]: Listening on udev Control Socket.
[    5.940484] systemd[1]: Listening on udev Kernel Socket.
[    5.950220] systemd[1]: Mounting Huge Pages File System...
[    5.961018] systemd[1]: Mounting POSIX Message Queue File System...
[    5.973519] systemd[1]: Mounting Kernel Debug File System...
[    5.985461] systemd[1]: Mounting Kernel Trace File System...
[    6.000556] systemd[1]: Starting Restore / save the current clock...
[    6.012579] systemd[1]: Starting Set the console keyboard layout...
[    6.026223] systemd[1]: Starting Create list of static device nodes for the current kernel...
[    6.041116] systemd[1]: Starting Load Kernel Module configfs...
[    6.058651] systemd[1]: Starting Load Kernel Module drm...
[    6.073959] systemd[1]: Starting Load Kernel Module fuse...
[    6.087810] systemd[1]: Started Nameserver information manager.
[    6.091386] systemd[1]: Reached target Network (Pre).
[    6.104074] systemd[1]: Condition check resulted in Set Up Additional Binary Formats being skipped.
[    6.104455] systemd[1]: Condition check resulted in File System Check on Root Device being skipped.
[    6.119367] systemd[1]: Starting Load Kernel Modules...
[    6.132293] systemd[1]: Starting Remount Root and Kernel File Systems...
[    6.145250] systemd[1]: Starting Coldplug All udev Devices...
[    6.170949] systemd[1]: Mounted Huge Pages File System.
[    6.173773] systemd[1]: Mounted POSIX Message Queue File System.
[    6.176190] systemd[1]: Mounted Kernel Debug File System.
[    6.178944] systemd[1]: Mounted Kernel Trace File System.
[    6.185255] systemd[1]: Finished Restore / save the current clock.
[    6.191712] systemd[1]: Finished Create list of static device nodes for the current kernel.
[    6.196403] systemd[1]: modprobe@configfs.service: Succeeded.
[    6.201194] systemd[1]: Finished Load Kernel Module configfs.
[    6.207691] systemd[1]: modprobe@drm.service: Succeeded.
[    6.212646] systemd[1]: Finished Load Kernel Module drm.
[    6.218265] systemd[1]: modprobe@fuse.service: Succeeded.
[    6.223946] systemd[1]: Finished Load Kernel Module fuse.
[    6.244474] systemd[1]: Mounting FUSE Control File System...
[    6.256312] EXT4-fs (mmcblk2p1): re-mounted. Opts: commit=600,errors=remount-ro. Quota mode: none.
[    6.260807] systemd[1]: Mounting Kernel Configuration File System...
[    6.284923] systemd[1]: Finished Load Kernel Modules.
[    6.296248] systemd[1]: Finished Remount Root and Kernel File Systems.
[    6.299025] systemd[1]: Mounted FUSE Control File System.
[    6.301174] systemd[1]: Mounted Kernel Configuration File System.
[    6.316286] systemd[1]: Condition check resulted in Rebuild Hardware Database being skipped.
[    6.316814] systemd[1]: Condition check resulted in Platform Persistent Storage Archival being skipped.
[    6.325410] systemd[1]: Starting Load/Save Random Seed...
[    6.345757] systemd[1]: Starting Apply Kernel Variables...
[    6.378861] systemd[1]: Starting Create System Users...
[    6.447331] systemd[1]: Finished Apply Kernel Variables.
[    6.484967] systemd[1]: Finished Create System Users.
[    6.505161] systemd[1]: Starting Create Static Device Nodes in /dev...
[    6.609349] systemd[1]: Finished Create Static Device Nodes in /dev.
[    6.637858] systemd[1]: Starting Rule-based Manager for Device Events and Files...
[    6.723213] systemd[1]: Finished Set the console keyboard layout.
[    6.736246] systemd[1]: Reached target Local File Systems (Pre).
[    6.761656] systemd[1]: Mounting /tmp...
[    6.790167] systemd[1]: Mounted /tmp.
[    6.803144] systemd[1]: Reached target Local File Systems.
[    6.827992] systemd[1]: Starting Armbian ZRAM config...
[    6.858272] systemd[1]: Starting Set console font and keymap...
[    6.880010] systemd[1]: Started Rule-based Manager for Device Events and Files.
[    6.929796] systemd[1]: Finished Set console font and keymap.
[    7.656408] zram: Added device: zram0
[    7.936130] zram: Added device: zram1
[    7.938156] zram: Added device: zram2
[    8.152221] systemd[1]: Finished Coldplug All udev Devices.
[    8.239168] zram0: detected capacity change from 0 to 4069416
[    8.284517] systemd[1]: Starting Helper to synchronize boot up for ifupdown...
[    8.340727] Bluetooth: Core ver 2.22
[    8.340947] NET: Registered PF_BLUETOOTH protocol family
[    8.340958] Bluetooth: HCI device and connection manager initialized
[    8.340987] Bluetooth: HCI socket layer initialized
[    8.340999] Bluetooth: L2CAP socket layer initialized
[    8.341046] Bluetooth: SCO socket layer initialized
[    8.374460] systemd[1]: Finished Helper to synchronize boot up for ifupdown.
[    8.385540] systemd[1]: Found device /dev/ttyS2.
[    8.400632] systemd[1]: Starting Raise network interfaces...
[    8.422596] mc: Linux media interface: v0.10
[    8.504611] random: crng init done
[    8.504647] random: 7 urandom warning(s) missed due to ratelimiting
[    8.525532] systemd[1]: Finished Load/Save Random Seed.
[    8.534066] systemd[1]: Condition check resulted in First Boot Complete being skipped.
[    8.534279] systemd[1]: Condition check resulted in Store a System Token in an EFI Variable being skipped.
[    8.534713] systemd[1]: Condition check resulted in Commit a transient machine-id on disk being skipped.
[    8.564359] Adding 2034704k swap on /dev/zram0.  Priority:5 extents:1 across:2034704k SSFS
[    8.571168] videodev: Linux video capture interface: v2.00
[    8.700174] lima ff300000.gpu: gp - mali450 version major 0 minor 0
[    8.700411] lima ff300000.gpu: pp0 - mali450 version major 0 minor 0
[    8.700513] lima ff300000.gpu: pp1 - mali450 version major 0 minor 0
[    8.700620] lima ff300000.gpu: l2 cache 8K, 4-way, 64byte cache line, 128bit external bus
[    8.700636] lima ff300000.gpu: l2 cache 64K, 4-way, 64byte cache line, 128bit external bus
[    8.743628] lima ff300000.gpu: bus rate = 491520000
[    8.743783] lima ff300000.gpu: mod rate = 491520000
[    8.762872] [drm] Initialized lima 1.1.0 20191231 for ff300000.gpu on minor 1
[    8.805391] Bluetooth: HCI UART driver ver 2.3
[    8.805435] Bluetooth: HCI UART protocol H4 registered
[    8.805443] Bluetooth: HCI UART protocol BCSP registered
[    8.805640] Bluetooth: HCI UART protocol LL registered
[    8.805662] Bluetooth: HCI UART protocol ATH3K registered
[    8.805785] Bluetooth: HCI UART protocol Three-wire (H5) registered
[    8.843236] Bluetooth: HCI UART protocol Intel registered
[    8.900460] Bluetooth: HCI UART protocol Broadcom registered
[    8.900494] Driver 'hci_uart_qca' needs updating - please use bus_type methods
[    8.900608] Bluetooth: HCI UART protocol QCA registered
[    8.900616] Bluetooth: HCI UART protocol AG6XX registered
[    8.900667] Bluetooth: HCI UART protocol Marvell registered
[    8.935074] rk3328-codec ff410000.codec: spk_depop_time use default value.
[    8.947442] rockchip-rga ff390000.rga: HW Version: 0x04.00
[    9.031250] zram1: detected capacity change from 0 to 102400
[    9.042815] rockchip_vdec: module is from the staging directory, the quality is unknown, you have been warned.
[    9.054196] hantro_vpu: module is from the staging directory, the quality is unknown, you have been warned.
[    9.062318] hantro-vpu ff350000.video-codec: Adding to iommu group 2
[    9.071313] hantro-vpu ff350000.video-codec: registered rockchip,rk3328-vpu-dec as /dev/video1
[    9.072663] rkvdec ff360000.video-codec: Adding to iommu group 3
[    9.077648] rockchip-iep ff3a0000.iep: Adding to iommu group 5
[    9.090839] rockchip-iep ff3a0000.iep: Device rockchip-iep registered as /dev/video2
[    9.091312] rockchip-rga ff390000.rga: Registered rockchip-rga as /dev/video0
[    9.099167] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[    9.107054] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    9.114907] cfg80211: loaded regulatory.db is malformed or signature is missing/invalid
[    9.135860] Registered IR keymap rc-empty
[    9.136163] rc rc0: gpio_ir_recv as /devices/platform/ir-receiver/rc/rc0
[    9.136780] rc rc0: lirc_dev: driver gpio_ir_recv registered at minor = 0, raw IR receiver, no transmitter
[    9.143252] input: gpio_ir_recv as /devices/platform/ir-receiver/rc/rc0/input5
[    9.148129] systemd[1]: Finished Raise network interfaces.
[    9.201014] systemd[1]: Finished Armbian ZRAM config.
[    9.292289] systemd[1]: Starting Armbian memory supported logging...
[    9.315966] Bluetooth: hci0: BCM: chip id 62
[    9.316820] Bluetooth: hci0: BCM: features 0x0f
[    9.318676] Bluetooth: hci0: BCM4330B1
[    9.318722] Bluetooth: hci0: BCM4330B1 (002.001.003) build 0000
[    9.321515] Bluetooth: hci0: BCM4330B1 'brcm/BCM4330B1.hcd' Patch
[    9.487098] EXT4-fs (zram1): mounted filesystem without journal. Opts: discard. Quota mode: none.
[    9.487270] ext4 filesystem being mounted at /var/log supports timestamps until 2038 (0x7fffffff)
[    9.543657] brcmfmac: F1 signature read @0x18000000=0x16044330
[    9.566771] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac4330-sdio for chip BCM4330/4
[    9.567115] brcmfmac mmc4:0001:1: Direct firmware load for brcm/brcmfmac4330-sdio.rockchip,rk3318-box.bin failed with error -2
[    9.569469] usbcore: registered new interface driver brcmfmac
[    9.865889] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac4330-sdio for chip BCM4330/4
[    9.866233] brcmfmac: brcmf_c_process_clm_blob: no clm_blob available (err=-2), device may have limited channels available
[    9.867427] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM4330/4 wl0: Oct 25 2011 19:34:12 version 5.90.125.104
[    9.941218] ieee80211 phy0: brcmf_construct_chaninfo: Ignoring unexpected firmware channel 184
[    9.941269] ieee80211 phy0: brcmf_construct_chaninfo: Ignoring unexpected firmware channel 188
[    9.941277] ieee80211 phy0: brcmf_construct_chaninfo: Ignoring unexpected firmware channel 192
[    9.941283] ieee80211 phy0: brcmf_construct_chaninfo: Ignoring unexpected firmware channel 196
[    9.941291] ieee80211 phy0: brcmf_construct_chaninfo: Ignoring unexpected firmware channel 200
[    9.941297] ieee80211 phy0: brcmf_construct_chaninfo: Ignoring unexpected firmware channel 204
[    9.941304] ieee80211 phy0: brcmf_construct_chaninfo: Ignoring unexpected firmware channel 208
[    9.941311] ieee80211 phy0: brcmf_construct_chaninfo: Ignoring unexpected firmware channel 212
[    9.941318] ieee80211 phy0: brcmf_construct_chaninfo: Ignoring unexpected firmware channel 216
[   10.061932] systemd[1]: Listening on Load/Save RF Kill Switch Status /dev/rfkill Watch.
[   10.106256] Bluetooth: hci0: BCM4330B1 37.4 MHz Class 1 Ampak
[   10.106312] Bluetooth: hci0: BCM4330B1 (002.001.003) build 0000
[   10.107411] Bluetooth: hci0: BCM: Using default device address (43:30:b1:00:00:00)
[   10.341770] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
[   10.349710] systemd[1]: Reached target Sound Card.
[   10.358322] systemd[1]: Condition check resulted in Set Up Additional Binary Formats being skipped.
[   10.359328] systemd[1]: Condition check resulted in Store a System Token in an EFI Variable being skipped.
[   10.360555] systemd[1]: Condition check resulted in Rebuild Hardware Database being skipped.
[   10.361334] systemd[1]: Condition check resulted in Commit a transient machine-id on disk being skipped.
[   10.361899] systemd[1]: Condition check resulted in Platform Persistent Storage Archival being skipped.
[   10.380067] systemd[1]: Starting Load/Save RF Kill Switch Status...
[   10.495398] systemd[1]: Started Load/Save RF Kill Switch Status.
[   15.507828] systemd[1]: systemd-rfkill.service: Succeeded.
[   15.862139] systemd[1]: Finished Armbian memory supported logging.
[   15.874625] systemd[1]: Starting Journal Service...
[   16.190224] systemd[1]: Started Journal Service.
[   16.250607] systemd-journald[642]: Received client request to flush runtime journal.
[   16.253097] systemd-journald[642]: File /var/log/journal/53c8163343f74a239ee11087dd5ddb25/system.journal corrupted or uncleanly shut down, renaming and replacing.
[   16.257095] systemd-journald[642]: Failed to open system journal: No space left on device
[   16.959556] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   16.959603] Bluetooth: BNEP filters: protocol multicast
[   16.959646] Bluetooth: BNEP socket layer initialized
[   19.588842] rk_gmac-dwmac ff550000.ethernet eth0: PHY [stmmac-1:00] driver [Rockchip integrated EPHY] (irq=POLL)
[   19.591849] rk_gmac-dwmac ff550000.ethernet eth0: Register MEM_TYPE_PAGE_POOL RxQ-0
[   19.602595] rk_gmac-dwmac ff550000.ethernet eth0: No Safety Features support found
[   19.602653] rk_gmac-dwmac ff550000.ethernet eth0: PTP not supported by HW
[   19.614901] rk_gmac-dwmac ff550000.ethernet eth0: configuring for phy/rmii link mode
[   21.794546] ieee80211 phy0: brcmf_p2p_create_p2pdev: timeout occurred
[   21.794593] ieee80211 phy0: brcmf_cfg80211_add_iface: add iface p2p-dev-wlan0 type 10 failed: err=-5
[   26.662441] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready

 

armbianEnv.txt

Spoiler

verbosity=1
bootlogo=false
overlay_prefix=rockchip
fdtfile=rockchip/rk3318-box.dtb
rootdev=UUID=a8117730-a298-46ed-a286-1f85756ca11c
rootfstype=ext4
console=both
overlays=rk3318-box-wlan-ext rk3318-box-cpu-hs rk3318-box-emmc-ddr rk3318-box-emmc-hs200 rk3318-box-led-conf2 rk3318-box-wlan-ap6330
usbstoragequirks=0x2537:0x1066:u,0x2537:0x1068:u

 

Decompiled dtd from the original Android OS (the file was called rockchip,rk3328-box-liantong.dtb):

Spoiler

/dts-v1/;

/ {
    compatible = "rockchip,rk3328-box-liantong\0rockchip,rk3328";
    interrupt-parent = <0x01>;
    #address-cells = <0x02>;
    #size-cells = <0x02>;
    model = "Rockchip RK3328 box liantong";

    ddr_timing {
        compatible = "rockchip,ddr-timing";
        ddr3_speed_bin = <0x15>;
        ddr4_speed_bin = <0x0c>;
        pd_idle = <0x00>;
        sr_idle = <0x00>;
        sr_mc_gate_idle = <0x00>;
        srpd_lite_idle = <0x00>;
        standby_idle = <0x00>;
        auto_pd_dis_freq = <0x42a>;
        auto_sr_dis_freq = <0x320>;
        ddr3_dll_dis_freq = <0x12c>;
        ddr4_dll_dis_freq = <0x271>;
        phy_dll_dis_freq = <0x190>;
        ddr3_odt_dis_freq = <0x64>;
        phy_ddr3_odt_dis_freq = <0x64>;
        ddr3_drv = <0x28>;
        ddr3_odt = <0x78>;
        phy_ddr3_ca_drv = <0x1b>;
        phy_ddr3_ck_drv = <0x15>;
        phy_ddr3_dq_drv = <0x15>;
        phy_ddr3_odt = <0x03>;
        lpddr3_odt_dis_freq = <0x29a>;
        phy_lpddr3_odt_dis_freq = <0x29a>;
        lpddr3_drv = <0x28>;
        lpddr3_odt = <0xf0>;
        phy_lpddr3_ca_drv = <0x16>;
        phy_lpddr3_ck_drv = <0x13>;
        phy_lpddr3_dq_drv = <0x16>;
        phy_lpddr3_odt = <0x02>;
        lpddr4_odt_dis_freq = <0x320>;
        phy_lpddr4_odt_dis_freq = <0x320>;
        lpddr4_drv = <0x3c>;
        lpddr4_dq_odt = <0x28>;
        lpddr4_ca_odt = <0x28>;
        phy_lpddr4_ca_drv = <0x14>;
        phy_lpddr4_ck_cs_drv = <0x06>;
        phy_lpddr4_dq_drv = <0x06>;
        phy_lpddr4_odt = <0x10>;
        ddr4_odt_dis_freq = <0x29a>;
        phy_ddr4_odt_dis_freq = <0x29a>;
        ddr4_drv = <0x22>;
        ddr4_odt = <0xf0>;
        phy_ddr4_ca_drv = <0x16>;
        phy_ddr4_ck_drv = <0x13>;
        phy_ddr4_dq_drv = <0x16>;
        phy_ddr4_odt = <0x02>;
        ddr3a1_ddr4a9_de-skew = <0x02>;
        ddr3a0_ddr4a10_de-skew = <0x03>;
        ddr3a3_ddr4a6_de-skew = <0x03>;
        ddr3a2_ddr4a4_de-skew = <0x02>;
        ddr3a5_ddr4a8_de-skew = <0x03>;
        ddr3a4_ddr4a5_de-skew = <0x02>;
        ddr3a7_ddr4a11_de-skew = <0x03>;
        ddr3a6_ddr4a7_de-skew = <0x02>;
        ddr3a9_ddr4a0_de-skew = <0x02>;
        ddr3a8_ddr4a13_de-skew = <0x01>;
        ddr3a11_ddr4a3_de-skew = <0x02>;
        ddr3a10_ddr4cs0_de-skew = <0x02>;
        ddr3a13_ddr4a2_de-skew = <0x01>;
        ddr3a12_ddr4ba1_de-skew = <0x02>;
        ddr3a15_ddr4odt0_de-skew = <0x03>;
        ddr3a14_ddr4a1_de-skew = <0x02>;
        ddr3ba1_ddr4a15_de-skew = <0x02>;
        ddr3ba0_ddr4bg0_de-skew = <0x04>;
        ddr3ras_ddr4cke_de-skew = <0x04>;
        ddr3ba2_ddr4ba0_de-skew = <0x03>;
        ddr3we_ddr4bg1_de-skew = <0x02>;
        ddr3cas_ddr4a12_de-skew = <0x02>;
        ddr3ckn_ddr4ckn_de-skew = <0x0b>;
        ddr3ckp_ddr4ckp_de-skew = <0x0b>;
        ddr3cke_ddr4a16_de-skew = <0x02>;
        ddr3odt0_ddr4a14_de-skew = <0x04>;
        ddr3cs0_ddr4act_de-skew = <0x04>;
        ddr3reset_ddr4reset_de-skew = <0x07>;
        ddr3cs1_ddr4cs1_de-skew = <0x07>;
        ddr3odt1_ddr4odt1_de-skew = <0x07>;
        cs0_dm0_rx_de-skew = <0x0c>;
        cs0_dm0_tx_de-skew = <0x0a>;
        cs0_dq0_rx_de-skew = <0x0c>;
        cs0_dq0_tx_de-skew = <0x0a>;
        cs0_dq1_rx_de-skew = <0x0c>;
        cs0_dq1_tx_de-skew = <0x0a>;
        cs0_dq2_rx_de-skew = <0x0c>;
        cs0_dq2_tx_de-skew = <0x0a>;
        cs0_dq3_rx_de-skew = <0x0c>;
        cs0_dq3_tx_de-skew = <0x0a>;
        cs0_dq4_rx_de-skew = <0x0c>;
        cs0_dq4_tx_de-skew = <0x0a>;
        cs0_dq5_rx_de-skew = <0x0c>;
        cs0_dq5_tx_de-skew = <0x0a>;
        cs0_dq6_rx_de-skew = <0x0c>;
        cs0_dq6_tx_de-skew = <0x0a>;
        cs0_dq7_rx_de-skew = <0x0c>;
        cs0_dq7_tx_de-skew = <0x0a>;
        cs0_dqs0_rx_de-skew = <0x0a>;
        cs0_dqs0p_tx_de-skew = <0x0c>;
        cs0_dqs0n_tx_de-skew = <0x0c>;
        cs0_dm1_rx_de-skew = <0x0a>;
        cs0_dm1_tx_de-skew = <0x08>;
        cs0_dq8_rx_de-skew = <0x0a>;
        cs0_dq8_tx_de-skew = <0x08>;
        cs0_dq9_rx_de-skew = <0x0a>;
        cs0_dq9_tx_de-skew = <0x08>;
        cs0_dq10_rx_de-skew = <0x0a>;
        cs0_dq10_tx_de-skew = <0x08>;
        cs0_dq11_rx_de-skew = <0x0a>;
        cs0_dq11_tx_de-skew = <0x08>;
        cs0_dq12_rx_de-skew = <0x0a>;
        cs0_dq12_tx_de-skew = <0x08>;
        cs0_dq13_rx_de-skew = <0x0a>;
        cs0_dq13_tx_de-skew = <0x08>;
        cs0_dq14_rx_de-skew = <0x0a>;
        cs0_dq14_tx_de-skew = <0x08>;
        cs0_dq15_rx_de-skew = <0x0a>;
        cs0_dq15_tx_de-skew = <0x08>;
        cs0_dqs1_rx_de-skew = <0x09>;
        cs0_dqs1p_tx_de-skew = <0x0a>;
        cs0_dqs1n_tx_de-skew = <0x0a>;
        cs0_dm2_rx_de-skew = <0x0a>;
        cs0_dm2_tx_de-skew = <0x09>;
        cs0_dq16_rx_de-skew = <0x0a>;
        cs0_dq16_tx_de-skew = <0x09>;
        cs0_dq17_rx_de-skew = <0x0a>;
        cs0_dq17_tx_de-skew = <0x09>;
        cs0_dq18_rx_de-skew = <0x0a>;
        cs0_dq18_tx_de-skew = <0x09>;
        cs0_dq19_rx_de-skew = <0x0a>;
        cs0_dq19_tx_de-skew = <0x09>;
        cs0_dq20_rx_de-skew = <0x0a>;
        cs0_dq20_tx_de-skew = <0x09>;
        cs0_dq21_rx_de-skew = <0x0a>;
        cs0_dq21_tx_de-skew = <0x09>;
        cs0_dq22_rx_de-skew = <0x0a>;
        cs0_dq22_tx_de-skew = <0x09>;
        cs0_dq23_rx_de-skew = <0x0a>;
        cs0_dq23_tx_de-skew = <0x09>;
        cs0_dqs2_rx_de-skew = <0x09>;
        cs0_dqs2p_tx_de-skew = <0x0b>;
        cs0_dqs2n_tx_de-skew = <0x0b>;
        cs0_dm3_rx_de-skew = <0x07>;
        cs0_dm3_tx_de-skew = <0x07>;
        cs0_dq24_rx_de-skew = <0x07>;
        cs0_dq24_tx_de-skew = <0x07>;
        cs0_dq25_rx_de-skew = <0x07>;
        cs0_dq25_tx_de-skew = <0x07>;
        cs0_dq26_rx_de-skew = <0x07>;
        cs0_dq26_tx_de-skew = <0x07>;
        cs0_dq27_rx_de-skew = <0x07>;
        cs0_dq27_tx_de-skew = <0x07>;
        cs0_dq28_rx_de-skew = <0x07>;
        cs0_dq28_tx_de-skew = <0x07>;
        cs0_dq29_rx_de-skew = <0x07>;
        cs0_dq29_tx_de-skew = <0x07>;
        cs0_dq30_rx_de-skew = <0x07>;
        cs0_dq30_tx_de-skew = <0x07>;
        cs0_dq31_rx_de-skew = <0x07>;
        cs0_dq31_tx_de-skew = <0x07>;
        cs0_dqs3_rx_de-skew = <0x07>;
        cs0_dqs3p_tx_de-skew = <0x0a>;
        cs0_dqs3n_tx_de-skew = <0x0a>;
        cs1_dm0_rx_de-skew = <0x07>;
        cs1_dm0_tx_de-skew = <0x08>;
        cs1_dq0_rx_de-skew = <0x07>;
        cs1_dq0_tx_de-skew = <0x08>;
        cs1_dq1_rx_de-skew = <0x07>;
        cs1_dq1_tx_de-skew = <0x08>;
        cs1_dq2_rx_de-skew = <0x07>;
        cs1_dq2_tx_de-skew = <0x08>;
        cs1_dq3_rx_de-skew = <0x07>;
        cs1_dq3_tx_de-skew = <0x08>;
        cs1_dq4_rx_de-skew = <0x07>;
        cs1_dq4_tx_de-skew = <0x08>;
        cs1_dq5_rx_de-skew = <0x07>;
        cs1_dq5_tx_de-skew = <0x08>;
        cs1_dq6_rx_de-skew = <0x07>;
        cs1_dq6_tx_de-skew = <0x08>;
        cs1_dq7_rx_de-skew = <0x07>;
        cs1_dq7_tx_de-skew = <0x08>;
        cs1_dqs0_rx_de-skew = <0x06>;
        cs1_dqs0p_tx_de-skew = <0x09>;
        cs1_dqs0n_tx_de-skew = <0x09>;
        cs1_dm1_rx_de-skew = <0x07>;
        cs1_dm1_tx_de-skew = <0x07>;
        cs1_dq8_rx_de-skew = <0x07>;
        cs1_dq8_tx_de-skew = <0x08>;
        cs1_dq9_rx_de-skew = <0x07>;
        cs1_dq9_tx_de-skew = <0x07>;
        cs1_dq10_rx_de-skew = <0x07>;
        cs1_dq10_tx_de-skew = <0x08>;
        cs1_dq11_rx_de-skew = <0x07>;
        cs1_dq11_tx_de-skew = <0x07>;
        cs1_dq12_rx_de-skew = <0x07>;
        cs1_dq12_tx_de-skew = <0x08>;
        cs1_dq13_rx_de-skew = <0x07>;
        cs1_dq13_tx_de-skew = <0x07>;
        cs1_dq14_rx_de-skew = <0x07>;
        cs1_dq14_tx_de-skew = <0x08>;
        cs1_dq15_rx_de-skew = <0x07>;
        cs1_dq15_tx_de-skew = <0x07>;
        cs1_dqs1_rx_de-skew = <0x07>;
        cs1_dqs1p_tx_de-skew = <0x09>;
        cs1_dqs1n_tx_de-skew = <0x09>;
        cs1_dm2_rx_de-skew = <0x07>;
        cs1_dm2_tx_de-skew = <0x08>;
        cs1_dq16_rx_de-skew = <0x07>;
        cs1_dq16_tx_de-skew = <0x08>;
        cs1_dq17_rx_de-skew = <0x07>;
        cs1_dq17_tx_de-skew = <0x08>;
        cs1_dq18_rx_de-skew = <0x07>;
        cs1_dq18_tx_de-skew = <0x08>;
        cs1_dq19_rx_de-skew = <0x07>;
        cs1_dq19_tx_de-skew = <0x08>;
        cs1_dq20_rx_de-skew = <0x07>;
        cs1_dq20_tx_de-skew = <0x08>;
        cs1_dq21_rx_de-skew = <0x07>;
        cs1_dq21_tx_de-skew = <0x08>;
        cs1_dq22_rx_de-skew = <0x07>;
        cs1_dq22_tx_de-skew = <0x08>;
        cs1_dq23_rx_de-skew = <0x07>;
        cs1_dq23_tx_de-skew = <0x08>;
        cs1_dqs2_rx_de-skew = <0x06>;
        cs1_dqs2p_tx_de-skew = <0x09>;
        cs1_dqs2n_tx_de-skew = <0x09>;
        cs1_dm3_rx_de-skew = <0x07>;
        cs1_dm3_tx_de-skew = <0x07>;
        cs1_dq24_rx_de-skew = <0x07>;
        cs1_dq24_tx_de-skew = <0x08>;
        cs1_dq25_rx_de-skew = <0x07>;
        cs1_dq25_tx_de-skew = <0x07>;
        cs1_dq26_rx_de-skew = <0x07>;
        cs1_dq26_tx_de-skew = <0x07>;
        cs1_dq27_rx_de-skew = <0x07>;
        cs1_dq27_tx_de-skew = <0x07>;
        cs1_dq28_rx_de-skew = <0x07>;
        cs1_dq28_tx_de-skew = <0x07>;
        cs1_dq29_rx_de-skew = <0x07>;
        cs1_dq29_tx_de-skew = <0x07>;
        cs1_dq30_rx_de-skew = <0x07>;
        cs1_dq30_tx_de-skew = <0x07>;
        cs1_dq31_rx_de-skew = <0x07>;
        cs1_dq31_tx_de-skew = <0x07>;
        cs1_dqs3_rx_de-skew = <0x07>;
        cs1_dqs3p_tx_de-skew = <0x09>;
        cs1_dqs3n_tx_de-skew = <0x09>;
        phandle = <0x7c>;
    };

    aliases {
        ethernet0 = "/ethernet@ff540000";
        ethernet1 = "/ethernet@ff550000";
        i2c0 = "/i2c@ff150000";
        i2c1 = "/i2c@ff160000";
        i2c2 = "/i2c@ff170000";
        i2c3 = "/i2c@ff180000";
        serial0 = "/serial@ff110000";
        serial1 = "/serial@ff120000";
        serial2 = "/serial@ff130000";
    };

    cpus {
        #address-cells = <0x02>;
        #size-cells = <0x00>;

        cpu@0 {
            device_type = "cpu";
            compatible = "arm,cortex-a53\0arm,armv8";
            reg = <0x00 0x00>;
            enable-method = "psci";
            clocks = <0x02 0x06>;
            #cooling-cells = <0x02>;
            dynamic-power-coefficient = <0x78>;
            operating-points-v2 = <0x03>;
            cpu-supply = <0x04>;
            phandle = <0x06>;
        };

        cpu@1 {
            device_type = "cpu";
            compatible = "arm,cortex-a53\0arm,armv8";
            reg = <0x00 0x01>;
            enable-method = "psci";
            operating-points-v2 = <0x03>;
            phandle = <0x07>;
        };

        cpu@2 {
            device_type = "cpu";
            compatible = "arm,cortex-a53\0arm,armv8";
            reg = <0x00 0x02>;
            enable-method = "psci";
            operating-points-v2 = <0x03>;
            phandle = <0x08>;
        };

        cpu@3 {
            device_type = "cpu";
            compatible = "arm,cortex-a53\0arm,armv8";
            reg = <0x00 0x03>;
            enable-method = "psci";
            operating-points-v2 = <0x03>;
            phandle = <0x09>;
        };
    };

    cpu0-opp-table {
        compatible = "operating-points-v2";
        opp-shared;
        rockchip,video-4k-freq = <0xf6180>;
        rockchip,leakage-voltage-sel = <0x01 0x0a 0x00 0x0b 0xfe 0x01>;
        nvmem-cells = <0x05>;
        nvmem-cell-names = "cpu_leakage";
        phandle = <0x03>;

        opp-408000000 {
            opp-hz = <0x00 0x18519600>;
            opp-microvolt = <0xe7ef0 0xe7ef0 0x149970>;
            opp-microvolt-L0 = <0xe7ef0 0xe7ef0 0x149970>;
            opp-microvolt-L1 = <0xe7ef0 0xe7ef0 0x149970>;
            clock-latency-ns = <0x9c40>;
            opp-suspend;
        };

        opp-600000000 {
            opp-hz = <0x00 0x23c34600>;
            opp-microvolt = <0xe7ef0 0xe7ef0 0x149970>;
            opp-microvolt-L0 = <0xe7ef0 0xe7ef0 0x149970>;
            opp-microvolt-L1 = <0xe7ef0 0xe7ef0 0x149970>;
            clock-latency-ns = <0x9c40>;
        };

        opp-816000000 {
            opp-hz = <0x00 0x30a32c00>;
            opp-microvolt = <0x100590 0x100590 0x149970>;
            opp-microvolt-L0 = <0x100590 0x100590 0x149970>;
            opp-microvolt-L1 = <0xf4240 0xf4240 0x149970>;
            clock-latency-ns = <0x9c40>;
        };

        opp-1008000000 {
            opp-hz = <0x00 0x3c14dc00>;
            opp-microvolt = <0x118c30 0x118c30 0x149970>;
            opp-microvolt-L0 = <0x118c30 0x118c30 0x149970>;
            opp-microvolt-L1 = <0x10c8e0 0x10c8e0 0x149970>;
            clock-latency-ns = <0x9c40>;
        };

        opp-1200000000 {
            opp-hz = <0x00 0x47868c00>;
            opp-microvolt = <0x137478 0x137478 0x149970>;
            opp-microvolt-L0 = <0x137478 0x137478 0x149970>;
            opp-microvolt-L1 = <0x12b128 0x12b128 0x149970>;
            clock-latency-ns = <0x9c40>;
        };

        opp-1296000000 {
            opp-hz = <0x00 0x4d3f6400>;
            opp-microvolt = <0x149970 0x149970 0x149970>;
            opp-microvolt-L0 = <0x149970 0x149970 0x149970>;
            opp-microvolt-L1 = <0x13d620 0x13d620 0x149970>;
            clock-latency-ns = <0x9c40>;
        };
    };

    arm-pmu {
        compatible = "arm,cortex-a53-pmu";
        interrupts = <0x00 0x64 0x04 0x00 0x65 0x04 0x00 0x66 0x04 0x00 0x67 0x04>;
        interrupt-affinity = <0x06 0x07 0x08 0x09>;
    };

    cpuinfo {
        compatible = "rockchip,cpuinfo";
        nvmem-cells = <0x0a 0x0b>;
        nvmem-cell-names = "id\0cpu-version";
    };

    firmware {

        optee {
            compatible = "linaro,optee-tz";
            method = "smc";
        };

        android {
            compatible = "android,firmware";
            boot_devices = "ff520000.dwmmc";

            vbmeta {
                compatible = "android,vbmeta";
                parts = "vbmeta,boot,system,vendor,dtbo";
            };

            fstab {
                compatible = "android,fstab";

                vendor {
                    compatible = "android,vendor";
                    dev = "/dev/block/by-name/vendor";
                    type = "ext4";
                    mnt_flags = "ro,barrier=1,inode_readahead_blks=8";
                    fsmgr_flags = "wait,avb";
                };
            };
        };
    };

    psci {
        compatible = "arm,psci-1.0";
        method = "smc";
    };

    rockchip-suspend {
        compatible = "rockchip,pm-rk3328";
        status = "okay";
        rockchip,sleep-mode-config = <0xc00>;
        rockchip,virtual-poweroff = <0x01>;
        phandle = <0x9b>;
    };

    timer {
        compatible = "arm,armv8-timer";
        interrupts = <0x01 0x0d 0xf08 0x01 0x0e 0xf08 0x01 0x0b 0xf08 0x01 0x0a 0xf08>;
    };

    xin24m {
        compatible = "fixed-clock";
        #clock-cells = <0x00>;
        clock-frequency = <0x16e3600>;
        clock-output-names = "xin24m";
        phandle = <0x61>;
    };

    i2s@ff000000 {
        compatible = "rockchip,rk3328-i2s\0rockchip,rk3066-i2s";
        reg = <0x00 0xff000000 0x00 0x1000>;
        interrupts = <0x00 0x1a 0x04>;
        clocks = <0x02 0x29 0x02 0x137>;
        clock-names = "i2s_clk\0i2s_hclk";
        dmas = <0x0c 0x0b 0x0c 0x0c>;
        dma-names = "tx\0rx";
        status = "okay";
        #sound-dai-cells = <0x00>;
        rockchip,bclk-fs = <0x80>;
        phandle = <0x8e>;
    };

    i2s@ff010000 {
        compatible = "rockchip,rk3328-i2s\0rockchip,rk3066-i2s";
        reg = <0x00 0xff010000 0x00 0x1000>;
        interrupts = <0x00 0x1b 0x04>;
        clocks = <0x02 0x2a 0x02 0x138>;
        clock-names = "i2s_clk\0i2s_hclk";
        dmas = <0x0c 0x0e 0x0c 0x0f>;
        dma-names = "tx\0rx";
        status = "okay";
        #sound-dai-cells = <0x00>;
        phandle = <0x8c>;
    };

    i2s@ff020000 {
        compatible = "rockchip,rk3328-i2s\0rockchip,rk3066-i2s";
        reg = <0x00 0xff020000 0x00 0x1000>;
        interrupts = <0x00 0x1c 0x04>;
        clocks = <0x02 0x2b 0x02 0x139>;
        clock-names = "i2s_clk\0i2s_hclk";
        dmas = <0x0c 0x00 0x0c 0x01>;
        dma-names = "tx\0rx";
        pinctrl-names = "default\0sleep";
        pinctrl-0 = <0x0d 0x0e 0x0f 0x10 0x11 0x12>;
        pinctrl-1 = <0x13>;
        status = "disabled";
        phandle = <0x9c>;
    };

    spdif@ff030000 {
        compatible = "rockchip,rk3328-spdif";
        reg = <0x00 0xff030000 0x00 0x1000>;
        interrupts = <0x00 0x1d 0x04>;
        clocks = <0x02 0x2e 0x02 0x13a>;
        clock-names = "mclk\0hclk";
        dmas = <0x0c 0x0a>;
        dma-names = "tx";
        pinctrl-names = "default";
        pinctrl-0 = <0x14>;
        status = "okay";
        #sound-dai-cells = <0x00>;
        phandle = <0x90>;
    };

    pdm@ff040000 {
        compatible = "rockchip,pdm";
        reg = <0x00 0xff040000 0x00 0x1000>;
        clocks = <0x02 0x3d 0x02 0x152>;
        clock-names = "pdm_clk\0pdm_hclk";
        dmas = <0x0c 0x10>;
        dma-names = "rx";
        pinctrl-names = "default\0sleep";
        pinctrl-0 = <0x15 0x16 0x17 0x18 0x19 0x1a>;
        pinctrl-1 = <0x1b>;
        status = "disabled";
        phandle = <0x9d>;
    };

    tsp@ff050000 {
        compatible = "rockchip,rk3328-tsp";
        reg = <0x00 0xff050000 0x00 0x10000>;
        rockchip,grf = <0x1c>;
        interrupts = <0x00 0x48 0x04>;
        interrupt-names = "irq_tsp";
        clocks = <0x02 0x5c 0x02 0x98 0x02 0x135>;
        clock-names = "clk_tsp\0aclk_tsp\0hclk_tsp";
        pinctrl-names = "default";
        pinctrl-0 = <0x1d 0x1e 0x1f 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28>;
        status = "disabled";
        phandle = <0x9e>;
    };

    syscon@ff100000 {
        compatible = "rockchip,rk3328-grf\0syscon\0simple-mfd";
        reg = <0x00 0xff100000 0x00 0x1000>;
        #address-cells = <0x01>;
        #size-cells = <0x01>;
        phandle = <0x1c>;

        io-domains {
            compatible = "rockchip,rk3328-io-voltage-domain";
            status = "okay";
            vccio1-supply = <0x29>;
            vccio2-supply = <0x2a>;
            vccio3-supply = <0x29>;
            vccio4-supply = <0x2a>;
            vccio5-supply = <0x29>;
            vccio6-supply = <0x2a>;
            pmuio-supply = <0x29>;
            phandle = <0x9f>;
        };

        power-controller {
            compatible = "rockchip,rk3328-power-controller";
            #power-domain-cells = <0x01>;
            #address-cells = <0x01>;
            #size-cells = <0x00>;
            status = "okay";
            phandle = <0x4b>;

            pd_hevc@6 {
                reg = <0x06>;
            };

            pd_video@5 {
                reg = <0x05>;
                clocks = <0x02 0x8b 0x02 0x142 0x02 0x41 0x02 0x42>;
                pm_qos = <0x2b 0x2c>;
            };

            pd_vpu@8 {
                reg = <0x08>;
                clocks = <0x02 0x8f 0x02 0x146>;
                pm_qos = <0x2d>;
            };
        };

        reboot-mode {
            compatible = "syscon-reboot-mode";
            offset = <0x5c8>;
            mode-bootloader = <0x5242c301>;
            mode-charge = <0x5242c30b>;
            mode-fastboot = <0x5242c309>;
            mode-loader = <0x5242c301>;
            mode-normal = <0x5242c300>;
            mode-recovery = <0x5242c303>;
            mode-ums = <0x5242c30c>;
        };
    };

    thermal-zones {

        soc-thermal {
            polling-delay-passive = <0x14>;
            polling-delay = <0x3e8>;
            sustainable-power = <0x3e8>;
            thermal-sensors = <0x2e 0x00>;
            phandle = <0xa0>;

            trips {

                trip-point-0 {
                    temperature = <0x15f90>;
                    hysteresis = <0x7d0>;
                    type = "passive";
                    phandle = <0xa1>;
                };

                trip-point-1 {
                    temperature = <0x19a28>;
                    hysteresis = <0x7d0>;
                    type = "passive";
                    phandle = <0x2f>;
                };

                soc-crit {
                    temperature = <0x1c138>;
                    hysteresis = <0x7d0>;
                    type = "critical";
                    phandle = <0xa2>;
                };
            };

            cooling-maps {

                map0 {
                    trip = <0x2f>;
                    cooling-device = <0x06 0xffffffff 0xffffffff>;
                    contribution = <0x1000>;
                };

                map1 {
                    trip = <0x2f>;
                    cooling-device = <0x30 0xffffffff 0xffffffff>;
                    contribution = <0x1000>;
                };

                map2 {
                    trip = <0x2f>;
                    cooling-device = <0x31 0xffffffff 0xffffffff>;
                    contribution = <0x400>;
                };

                map3 {
                    trip = <0x2f>;
                    cooling-device = <0x32 0xffffffff 0xffffffff>;
                    contribution = <0x400>;
                };
            };
        };
    };

    tsadc@ff250000 {
        compatible = "rockchip,rk3328-tsadc";
        reg = <0x00 0xff250000 0x00 0x100>;
        interrupts = <0x00 0x3a 0x04>;
        rockchip,grf = <0x1c>;
        clocks = <0x02 0x24 0x02 0xd5>;
        clock-names = "tsadc\0apb_pclk";
        assigned-clocks = <0x02 0x24>;
        assigned-clock-rates = <0xc350>;
        resets = <0x02 0x42>;
        reset-names = "tsadc-apb";
        pinctrl-names = "init\0default\0sleep";
        pinctrl-0 = <0x33>;
        pinctrl-1 = <0x34>;
        pinctrl-2 = <0x33>;
        #thermal-sensor-cells = <0x01>;
        rockchip,hw-tshut-temp = <0x1d4c0>;
        status = "okay";
        phandle = <0x2e>;
    };

    serial@ff110000 {
        compatible = "rockchip,rk3328-uart\0snps,dw-apb-uart";
        reg = <0x00 0xff110000 0x00 0x100>;
        interrupts = <0x00 0x37 0x04>;
        clocks = <0x02 0x26 0x02 0xd2>;
        clock-names = "baudclk\0apb_pclk";
        reg-shift = <0x02>;
        reg-io-width = <0x04>;
        dmas = <0x0c 0x02 0x0c 0x03>;
        pinctrl-names = "default";
        pinctrl-0 = <0x35 0x36>;
        status = "okay";
        dma-names = "!tx\0!rx";
        phandle = <0xa3>;
    };

    serial@ff120000 {
        compatible = "rockchip,rk3328-uart\0snps,dw-apb-uart";
        reg = <0x00 0xff120000 0x00 0x100>;
        interrupts = <0x00 0x38 0x04>;
        clocks = <0x02 0x27 0x02 0xd3>;
        clock-names = "baudclk\0apb_pclk";
        reg-shift = <0x02>;
        reg-io-width = <0x04>;
        dmas = <0x0c 0x04 0x0c 0x05>;
        pinctrl-names = "default";
        pinctrl-0 = <0x37 0x38 0x39>;
        status = "disabled";
        phandle = <0xa4>;
    };

    serial@ff130000 {
        compatible = "rockchip,rk3328-uart\0snps,dw-apb-uart";
        reg = <0x00 0xff130000 0x00 0x100>;
        interrupts = <0x00 0x39 0x04>;
        clocks = <0x02 0x28 0x02 0xd4>;
        clock-names = "baudclk\0apb_pclk";
        reg-shift = <0x02>;
        reg-io-width = <0x04>;
        dmas = <0x0c 0x06 0x0c 0x07>;
        pinctrl-names = "default";
        pinctrl-0 = <0x3a>;
        status = "disabled";
        phandle = <0xa5>;
    };

    power-management@ff140000 {
        compatible = "rockchip,rk3328-pmu\0syscon\0simple-mfd";
        reg = <0x00 0xff140000 0x00 0x1000>;
        phandle = <0xa6>;
    };

    i2c@ff150000 {
        compatible = "rockchip,rk3328-i2c\0rockchip,rk3399-i2c";
        reg = <0x00 0xff150000 0x00 0x1000>;
        interrupts = <0x00 0x24 0x04>;
        #address-cells = <0x01>;
        #size-cells = <0x00>;
        clocks = <0x02 0x37 0x02 0xcd>;
        clock-names = "i2c\0pclk";
        pinctrl-names = "default";
        pinctrl-0 = <0x3b>;
        status = "disabled";
        phandle = <0xa7>;
    };

    i2c@ff160000 {
        compatible = "rockchip,rk3328-i2c\0rockchip,rk3399-i2c";
        reg = <0x00 0xff160000 0x00 0x1000>;
        interrupts = <0x00 0x25 0x04>;
        #address-cells = <0x01>;
        #size-cells = <0x00>;
        clocks = <0x02 0x38 0x02 0xce>;
        clock-names = "i2c\0pclk";
        pinctrl-names = "default";
        pinctrl-0 = <0x3c>;
        status = "disabled";
        phandle = <0xa8>;
    };

    i2c@ff170000 {
        compatible = "rockchip,rk3328-i2c\0rockchip,rk3399-i2c";
        reg = <0x00 0xff170000 0x00 0x1000>;
        interrupts = <0x00 0x26 0x04>;
        #address-cells = <0x01>;
        #size-cells = <0x00>;
        clocks = <0x02 0x39 0x02 0xcf>;
        clock-names = "i2c\0pclk";
        pinctrl-names = "default";
        pinctrl-0 = <0x3d>;
        status = "disabled";
        phandle = <0xa9>;
    };

    i2c@ff180000 {
        compatible = "rockchip,rk3328-i2c\0rockchip,rk3399-i2c";
        reg = <0x00 0xff180000 0x00 0x1000>;
        interrupts = <0x00 0x27 0x04>;
        #address-cells = <0x01>;
        #size-cells = <0x00>;
        clocks = <0x02 0x3a 0x02 0xd0>;
        clock-names = "i2c\0pclk";
        pinctrl-names = "default";
        pinctrl-0 = <0x3e>;
        status = "disabled";
        phandle = <0xaa>;
    };

    spi@ff190000 {
        compatible = "rockchip,rk3328-spi\0rockchip,rk3066-spi";
        reg = <0x00 0xff190000 0x00 0x1000>;
        interrupts = <0x00 0x31 0x04>;
        #address-cells = <0x01>;
        #size-cells = <0x00>;
        clocks = <0x02 0x20 0x02 0xd1>;
        clock-names = "spiclk\0apb_pclk";
        dmas = <0x0c 0x08 0x0c 0x09>;
        dma-names = "tx\0rx";
        pinctrl-names = "default";
        pinctrl-0 = <0x3f 0x40 0x41 0x42>;
        status = "disabled";
        phandle = <0xab>;
    };

    watchdog@ff1a0000 {
        compatible = "snps,dw-wdt";
        reg = <0x00 0xff1a0000 0x00 0x100>;
        interrupts = <0x00 0x28 0x04>;
        status = "disabled";
        phandle = <0xac>;
    };

    pwm@ff1b0000 {
        compatible = "rockchip,rk3328-pwm";
        reg = <0x00 0xff1b0000 0x00 0x10>;
        #pwm-cells = <0x03>;
        pinctrl-names = "active";
        pinctrl-0 = <0x43>;
        clocks = <0x02 0x3c 0x02 0xd6>;
        clock-names = "pwm\0pclk";
        status = "okay";
        phandle = <0x96>;
    };

    pwm@ff1b0010 {
        compatible = "rockchip,rk3328-pwm";
        reg = <0x00 0xff1b0010 0x00 0x10>;
        #pwm-cells = <0x03>;
        pinctrl-names = "active";
        pinctrl-0 = <0x44>;
        clocks = <0x02 0x3c 0x02 0xd6>;
        clock-names = "pwm\0pclk";
        status = "okay";
        phandle = <0x97>;
    };

    pwm@ff1b0020 {
        compatible = "rockchip,rk3328-pwm";
        reg = <0x00 0xff1b0020 0x00 0x10>;
        #pwm-cells = <0x03>;
        pinctrl-names = "active";
        pinctrl-0 = <0x45>;
        clocks = <0x02 0x3c 0x02 0xd6>;
        clock-names = "pwm\0pclk";
        status = "disabled";
        phandle = <0xad>;
    };

    pwm@ff1b0030 {
        compatible = "rockchip,remotectl-pwm";
        reg = <0x00 0xff1b0030 0x00 0x10>;
        interrupts = <0x00 0x32 0x04>;
        #pwm-cells = <0x03>;
        pinctrl-names = "default";
        pinctrl-0 = <0x46>;
        clocks = <0x02 0x3c 0x02 0xd6>;
        clock-names = "pwm\0pclk";
        status = "okay";
        remote_pwm_id = <0x03>;
        handle_cpu_id = <0x01>;
        remote_support_psci = <0x01>;
        phandle = <0xae>;

        ir_key1 {
            rockchip,usercode = <0x4040>;
            rockchip,key_table = <0xf2 0xe8 0xba 0x9e 0xf4 0x67 0xf1 0x6c 0xef 0x69 0xee 0x6a 0xbd 0x66 0xea 0x73 0xe3 0x72 0xe2 0xd9 0xb2 0x74 0x4d 0x74 0xbc 0x71 0xec 0x8b 0xbf 0x190 0xe0 0x191 0xe1 0x192 0xe9 0xb7 0xe6 0xf8 0xe8 0xb9 0xe7 0xba 0xf0 0x184 0xbe 0x175>;
        };

        ir_key3 {
            rockchip,usercode = <0x1dcc>;
            rockchip,key_table = <0xee 0xe8 0xf0 0x9e 0xf8 0x67 0xbb 0x6c 0xef 0x69 0xed 0x6a 0xfc 0x66 0xf1 0x73 0xfd 0x72 0xb7 0xd9 0xff 0x74 0xf3 0x71 0xbf 0x8b 0xf9 0x191 0xf5 0x192 0xb3 0x184 0xbe 0x02 0xba 0x03 0xb2 0x04 0xbd 0x05 0xf9 0x06 0xb1 0x07 0xfc 0x08 0xf8 0x09 0xb0 0x0a 0xb6 0x0b 0xb5 0x0e>;
        };

        ir_key4 {
            rockchip,usercode = <0xfe01>;
            rockchip,key_table = <0xec 0xe8 0xe6 0x9e 0xe9 0x67 0xe5 0x6c 0xae 0x69 0xaf 0x6a 0xee 0x66 0xe7 0x73 0xef 0x72 0xbf 0x74 0xbe 0x71 0xb3 0x8b 0xff 0x184 0xb1 0x02 0xf2 0x03 0xf3 0x04 0xb5 0x05 0xf6 0x06 0xf7 0x07 0xb9 0x08 0xfa 0x09 0xfb 0x0a 0xfe 0x0b 0xbb 0x3c 0xaa 0x7a 0xa5 0xa4 0xad 0xa4 0xab 0x7b 0xbd 0x0e 0xbc 0xb7 0xf0 0xb8>;
        };

        ir_key5 {
            rockchip,usercode = <0x7f80>;
            rockchip,key_table = <0xec 0xe8 0xd8 0x9e 0xc7 0x67 0xbf 0x6c 0xc8 0x69 0xc6 0x6a 0x8c 0x66 0x78 0x73 0x76 0x72 0x7e 0x74 0xed 0x74 0x7c 0x8b 0xb7 0x184>;
        };

        ir_key6 {
            rockchip,usercode = <0xff00>;
            rockchip,key_table = <0xe5 0x66 0xaf 0x9e 0xb1 0x8b 0xfd 0xe8 0xbc 0x67 0xf5 0x6c 0xf9 0x69 0xf1 0x6a 0xa7 0x72 0xe4 0x73 0xbc 0x71 0xa8 0x74 0xb2 0x184 0xb0 0xb7 0xa4 0xb8 0xa8 0xb9 0xab 0xba 0xb3 0x7b 0xf0 0x7a 0xef 0x02 0xee 0x03 0xed 0x04 0xec 0x05 0xeb 0x74 0xea 0x07 0xe8 0x08 0xe7 0x09 0xe6 0x0a 0xe2 0x0b 0xf0 0x39 0xe1 0x0e>;
        };

        ir_key7 {
            rockchip,usercode = <0x807f>;
            rockchip,key_table = <0x7e 0x74>;
        };

        ir_key8 {
            rockchip,usercode = <0xef10>;
            rockchip,key_table = <0xa2 0x74 0xe8 0x73 0xec 0x72 0xa6 0xb7 0xa5 0x184 0xff 0x9e 0xba 0x67 0xf8 0x69 0xbe 0xe8 0xfe 0x6a 0xaa 0x6c 0xb9 0x66 0xfa 0x8b 0xe5 0xa8 0xa7 0xa4 0xe2 0xd0 0xa0 0x4d 0xb0 0x0b 0xa1 0x0e 0xaf 0x02 0xad 0x03 0xef 0x04 0xb3 0x05 0xb5 0x06 0xee 0x07 0xf0 0x08 0xb1 0x09 0xf2 0x0a>;
        };

        ir_key9 {
            rockchip,usercode = <0xdf00>;
            rockchip,key_table = <0xe3 0x74 0xb4 0x3f 0xfe 0x43 0xa2 0x73 0xb0 0x42 0xa0 0x44 0xa3 0x72 0xbd 0x66 0xf5 0x9e 0xe5 0x67 0xb8 0x69 0xf9 0xe8 0xf8 0x6a 0xb7 0x6c 0xfc 0x184 0xe7 0x8b 0xab 0x02 0xe9 0x03 0xea 0x04 0xaf 0x05 0xed 0x06 0xee 0x07 0xb3 0x08 0xf1 0x09 0xf2 0x0a 0xbe 0xe3 0xf3 0x0b 0xef 0x0e>;
        };

        ir_key10 {
            rockchip,usercode = <0xf708>;
            rockchip,key_table = <0xfc 0x74 0xf5 0x96 0xfa 0x67 0xeb 0x69 0xe9 0xe8 0xf4 0x6a 0xaf 0x6c 0xea 0x66 0xaa 0x73 0xad 0x72 0xac 0x8b 0xab 0x9e 0xfe 0x02 0xfd 0x03 0xae 0x04 0xfb 0x05 0xf9 0x06 0xe8 0x07 0xf8 0x08 0xf7 0x09 0xb7 0x0a 0xe3 0x184 0xf6 0x0b 0xf3 0x0e>;
        };
    };

    amba {
        compatible = "simple-bus";
        #address-cells = <0x02>;
        #size-cells = <0x02>;
        ranges;

        dmac@ff1f0000 {
            compatible = "arm,pl330\0arm,primecell";
            reg = <0x00 0xff1f0000 0x00 0x4000>;
            interrupts = <0x00 0x00 0x04 0x00 0x01 0x04>;
            clocks = <0x02 0x86>;
            clock-names = "apb_pclk";
            #dma-cells = <0x01>;
            peripherals-req-type-burst;
            phandle = <0x0c>;
        };
    };

    efuse@ff260000 {
        compatible = "rockchip,rk3328-efuse";
        reg = <0x00 0xff260000 0x00 0x50>;
        #address-cells = <0x01>;
        #size-cells = <0x01>;
        clocks = <0x02 0x3e>;
        clock-names = "pclk_efuse";
        rockchip,efuse-size = <0x20>;
        phandle = <0xaf>;

        id@7 {
            reg = <0x07 0x10>;
            phandle = <0x0a>;
        };

        cpu-leakage@17 {
            reg = <0x17 0x01>;
            phandle = <0x05>;
        };

        logic-leakage@19 {
            reg = <0x19 0x01>;
            phandle = <0x49>;
        };

        cpu-version@1a {
            reg = <0x1a 0x01>;
            bits = <0x03 0x03>;
            phandle = <0x0b>;
        };
    };

    saradc@ff280000 {
        compatible = "rockchip,rk3328-saradc\0rockchip,rk3399-saradc";
        reg = <0x00 0xff280000 0x00 0x100>;
        interrupts = <0x00 0x50 0x04>;
        #io-channel-cells = <0x01>;
        clocks = <0x02 0x25 0x02 0xea>;
        clock-names = "saradc\0apb_pclk";
        resets = <0x02 0x56>;
        reset-names = "saradc-apb";
        status = "okay";
        vref-supply = <0x2a>;
        phandle = <0xb0>;
    };

    gpu@ff300000 {
        compatible = "arm,mali-450";
        reg = <0x00 0xff300000 0x00 0x40000 0x00 0xff300000 0x00 0x40000>;
        interrupts = <0x00 0x5a 0x04 0x00 0x57 0x04 0x00 0x5d 0x04 0x00 0x58 0x04 0x00 0x59 0x04 0x00 0x5b 0x04 0x00 0x5c 0x04>;
        interrupt-names = "Mali_GP_IRQ\0Mali_GP_MMU_IRQ\0IRQPP\0Mali_PP0_IRQ\0Mali_PP0_MMU_IRQ\0Mali_PP1_IRQ\0Mali_PP1_MMU_IRQ";
        clocks = <0x02 0x87>;
        clock-names = "clk_mali";
        #cooling-cells = <0x02>;
        operating-points-v2 = <0x47>;
        status = "okay";
        mali-supply = <0x48>;
        phandle = <0x30>;

        power_model {
            compatible = "arm,mali-simple-power-model";
            voltage = <0x384>;
            frequency = <0x1f4>;
            static-power = <0x12c>;
            dynamic-power = <0x18c>;
            ts = <0x7d00 0x125c 0xffffffb0 0x02>;
            thermal-zone = "soc-thermal";
            phandle = <0xb1>;
        };
    };

    gpu-opp-table {
        compatible = "operating-points-v2";
        rockchip,leakage-voltage-sel = <0x01 0x0a 0x00 0x0b 0xfe 0x01>;
        nvmem-cells = <0x49>;
        nvmem-cell-names = "gpu_leakage";
        phandle = <0x47>;

        opp-200000000 {
            opp-hz = <0x00 0xbebc200>;
            opp-microvolt = <0xe7ef0>;
            opp-microvolt-L0 = <0xe7ef0>;
            opp-microvolt-L1 = <0xe7ef0>;
        };

        opp-300000000 {
            opp-hz = <0x00 0x11e1a300>;
            opp-microvolt = <0xee098>;
            opp-microvolt-L0 = <0xee098>;
            opp-microvolt-L1 = <0xe7ef0>;
        };

        opp-400000000 {
            opp-hz = <0x00 0x17d78400>;
            opp-microvolt = <0x100590>;
            opp-microvolt-L0 = <0x100590>;
            opp-microvolt-L1 = <0xfa3e8>;
        };

        opp-500000000 {
            opp-hz = <0x00 0x1dcd6500>;
            opp-microvolt = <0x118c30>;
            opp-microvolt-L0 = <0x118c30>;
            opp-microvolt-L1 = <0x10c8e0>;
        };
    };

    vpu_service@ff350000 {
        compatible = "vpu,sub";
        iommu_enabled = <0x01>;
        iommus = <0x4a>;
        allocator = <0x01>;
        reg = <0x00 0xff350000 0x00 0x800>;
        interrupts = <0x00 0x09 0x04>;
        interrupt-names = "irq_dec";
        dev_mode = <0x00>;
        power-domains = <0x4b 0x08>;
        phandle = <0x4c>;
    };

    iommu@ff350800 {
        compatible = "rockchip,iommu";
        reg = <0x00 0xff350800 0x00 0x40>;
        interrupts = <0x00 0x0b 0x04>;
        interrupt-names = "vpu_mmu";
        clock-names = "aclk\0hclk";
        clocks = <0x02 0x8f 0x02 0x146>;
        power-domains = <0x4b 0x08>;
        #iommu-cells = <0x00>;
        phandle = <0x4a>;
    };

    avsd@ff351000 {
        compatible = "vpu,sub";
        iommu_enabled = <0x01>;
        iommus = <0x4a>;
        allocator = <0x01>;
        reg = <0x00 0xff351000 0x00 0x200>;
        interrupts = <0x00 0x09 0x04>;
        interrupt-names = "irq_dec";
        power-domains = <0x4b 0x08>;
        dev_mode = <0x00>;
        phandle = <0x4d>;
    };

    vpu_combo {
        compatible = "rockchip,rk3328-vpu-combo\0rockchip,vpu_combo";
        rockchip,grf = <0x1c>;
        subcnt = <0x02>;
        rockchip,sub = <0x4c 0x4d>;
        clocks = <0x02 0x8f 0x02 0x146>;
        clock-names = "aclk_vcodec\0hclk_vcodec";
        resets = <0x02 0xa0 0x02 0xa2>;
        reset-names = "video_a\0video_h";
        mode_bit = <0x00>;
        mode_ctrl = <0x00>;
        power-domains = <0x4b 0x08>;
        status = "okay";
        phandle = <0xb2>;
    };

    rkvdec@ff36000 {
        compatible = "rockchip,rk3328-rkvdec\0rockchip,rkvdec";
        reg = <0x00 0xff360000 0x00 0x400>;
        interrupts = <0x00 0x07 0x04>;
        interrupt-names = "irq_dec";
        clocks = <0x02 0x8b 0x02 0x142 0x02 0x41 0x02 0x42>;
        clock-names = "aclk_vcodec\0hclk_vcodec\0clk_cabac\0clk_core";
        resets = <0x02 0xa4 0x02 0xa6 0x02 0xa5 0x02 0xa7 0x02 0xa9 0x02 0xa8>;
        reset-names = "video_a\0video_h\0niu_a\0niu_h\0video_cabac\0video_core";
        rockchip,grf = <0x1c>;
        iommus = <0x4e>;
        allocator = <0x01>;
        power-domains = <0x4b 0x05>;
        operating-points-v2 = <0x4f>;
        #cooling-cells = <0x02>;
        devfreq = <0x32>;
        status = "okay";
        vcodec-supply = <0x48>;
        phandle = <0x31>;

        vcodec_power_model {
            compatible = "vcodec_power_model";
            dynamic-power-coefficient = <0x78>;
            static-power-coefficient = <0xc8>;
            ts = <0x7d00 0x125c 0xffffffb0 0x02>;
            thermal-zone = "soc-thermal";
            phandle = <0xb3>;
        };
    };

    rkvdec-opp-table {
        compatible = "operating-points-v2";
        rockchip,leakage-voltage-sel = <0x01 0x0a 0x00 0x0b 0xfe 0x01>;
        nvmem-cells = <0x49>;
        nvmem-cell-names = "rkvdec_leakage";
        phandle = <0x4f>;

        opp-100000000 {
            opp-hz = <0x00 0x5f5e100>;
            opp-microvolt = <0xee098>;
            opp-microvolt-L0 = <0xee098>;
            opp-microvolt-L1 = <0xe7ef0>;
        };

        opp-200000000 {
            opp-hz = <0x00 0xbebc200>;
            opp-microvolt = <0xee098>;
            opp-microvolt-L0 = <0xee098>;
            opp-microvolt-L1 = <0xe7ef0>;
        };

        opp-500000000 {
            opp-hz = <0x00 0x1dcd6500>;
            opp-microvolt = <0x106738>;
            opp-microvolt-L0 = <0x106738>;
            opp-microvolt-L1 = <0x100590>;
        };
    };

    iommu@ff360480 {
        compatible = "rockchip,iommu";
        reg = <0x00 0xff360480 0x00 0x40 0x00 0xff3604c0 0x00 0x40>;
        interrupts = <0x00 0x4a 0x04>;
        interrupt-names = "rkvdec_mmu";
        clocks = <0x02 0x8b 0x02 0x142>;
        clock-names = "aclk_vcodec\0hclk_vcodec";
        power-domains = <0x4b 0x05>;
        #iommu-cells = <0x00>;
        phandle = <0x4e>;
    };

    h265e@ff330000 {
        compatible = "rockchip,h265e";
        rockchip,grf = <0x1c>;
        iommu_enabled = <0x01>;
        iommus = <0x50>;
        reg = <0x00 0xff330000 0x00 0x200>;
        interrupts = <0x00 0x5f 0x04>;
        clocks = <0x02 0x93 0x02 0xdd 0x02 0x44 0x02 0x43 0x02 0x8c 0x02 0x82>;
        clock-names = "aclk_h265\0pclk_h265\0clk_core\0clk_dsp\0aclk_venc\0aclk_axi2sram";
        rockchip,srv = <0x51>;
        mode_bit = <0x0b>;
        mode_ctrl = <0x40c>;
        allocator = <0x01>;
        power-domains = <0x4b 0x06>;
        status = "okay";
        phandle = <0xb4>;
    };

    iommu@ff330200 {
        compatible = "rockchip,iommu";
        reg = <0x00 0xff330200 0x00 0x100>;
        interrupts = <0x00 0x60 0x04>;
        interrupt-names = "h265e_mmu";
        clocks = <0x02 0x93 0x02 0xdd>;
        clock-names = "aclk\0hclk";
        power-domains = <0x4b 0x06>;
        #iommu-cells = <0x00>;
        phandle = <0x50>;
    };

    vepu@ff340000 {
        compatible = "rockchip,rk3328-vepu\0rockchip,vepu";
        rockchip,grf = <0x1c>;
        iommu_enabled = <0x01>;
        iommus = <0x52>;
        reg = <0x00 0xff340000 0x00 0x400>;
        interrupts = <0x00 0x61 0x04>;
        clocks = <0x02 0x94 0x02 0x14a 0x02 0x44>;
        clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core";
        resets = <0x02 0xb7 0x02 0xb6>;
        reset-names = "video_h\0video_a";
        rockchip,srv = <0x51>;
        mode_bit = <0x0b>;
        mode_ctrl = <0x40c>;
        allocator = <0x01>;
        power-domains = <0x4b 0x06>;
        status = "okay";
        phandle = <0xb5>;
    };

    iommu@ff340800 {
        compatible = "rockchip,iommu";
        reg = <0x00 0xff340800 0x00 0x40>;
        interrupts = <0x00 0x62 0x04>;
        interrupt-names = "vepu_mmu";
        clocks = <0x02 0x94 0x02 0x14a>;
        clock-names = "aclk\0hclk";
        power-domains = <0x4b 0x06>;
        #iommu-cells = <0x00>;
        phandle = <0x52>;
    };

    venc_srv {
        compatible = "rockchip,mpp_service";
        phandle = <0x51>;
    };

    vop@ff370000 {
        compatible = "rockchip,rk3328-vop";
        reg = <0x00 0xff370000 0x00 0x3efc>;
        interrupts = <0x00 0x20 0x04>;
        clocks = <0x02 0x91 0x02 0x78 0x02 0x13b>;
        clock-names = "aclk_vop\0dclk_vop\0hclk_vop";
        assigned-clocks = <0x02 0x78>;
        assigned-clock-parents = <0x02 0x7a>;
        resets = <0x02 0x85 0x02 0x86 0x02 0x87>;
        reset-names = "axi\0ahb\0dclk";
        iommus = <0x53>;
        status = "okay";
        phandle = <0xb6>;

        port {
            #address-cells = <0x01>;
            #size-cells = <0x00>;
            phandle = <0x5e>;

            endpoint@0 {
                reg = <0x00>;
                remote-endpoint = <0x54>;
                phandle = <0x5c>;
            };

            endpoint@1 {
                reg = <0x01>;
                remote-endpoint = <0x55>;
                phandle = <0x5d>;
            };
        };
    };

    iommu@ff373f00 {
        compatible = "rockchip,iommu";
        reg = <0x00 0xff373f00 0x00 0x100>;
        interrupts = <0x00 0x20 0x04>;
        interrupt-names = "vop_mmu";
        clocks = <0x02 0x91 0x02 0x13b>;
        clock-names = "aclk\0hclk";
        #iommu-cells = <0x00>;
        status = "okay";
        phandle = <0x53>;
    };

    rga@ff3900000 {
        compatible = "rockchip,rga2";
        dev_mode = <0x01>;
        reg = <0x00 0xff390000 0x00 0x1000>;
        interrupts = <0x00 0x21 0x04>;
        clocks = <0x02 0x9a 0x02 0x154 0x02 0x45>;
        clock-names = "aclk_rga\0hclk_rga\0clk_rga";
        dma-coherent;
        status = "okay";
        phandle = <0xb7>;
    };

    iep@ff3a0000 {
        compatible = "rockchip,iep";
        iommu_enabled = <0x01>;
        iommus = <0x56>;
        reg = <0x00 0xff3a0000 0x00 0x800>;
        interrupts = <0x00 0x1f 0x04>;
        clocks = <0x02 0x9b 0x02 0x153>;
        clock-names = "aclk_iep\0hclk_iep";
        power-domains = <0x4b 0x05>;
        allocator = <0x01>;
        version = <0x02>;
        status = "okay";
        phandle = <0xb8>;
    };

    iommu@ff3a0800 {
        compatible = "rockchip,iommu";
        reg = <0x00 0xff3a0800 0x00 0x40>;
        interrupts = <0x00 0x1f 0x04>;
        interrupt-names = "iep_mmu";
        clocks = <0x02 0x9b 0x02 0x153>;
        clock-names = "aclk\0hclk";
        power-domains = <0x4b 0x05>;
        #iommu-cells = <0x00>;
        status = "okay";
        phandle = <0x56>;
    };

    hdmi@ff3c0000 {
        compatible = "rockchip,rk3328-dw-hdmi";
        reg = <0x00 0xff3c0000 0x00 0x20000>;
        reg-io-width = <0x04>;
        interrupts = <0x00 0x23 0x04 0x00 0x47 0x04>;
        clocks = <0x02 0xe7 0x02 0x46 0x02 0x1e 0x02 0x147>;
        clock-names = "iahb\0isfr\0cec\0hclk_vio";
        phys = <0x57>;
        phy-names = "hdmi_phy";
        pinctrl-names = "default\0gpio";
        pinctrl-0 = <0x58 0x59 0x5a>;
        pinctrl-1 = <0x5b>;
        resets = <0x02 0x8f 0x02 0x51>;
        reset-names = "hdmi\0hdmiphy";
        rockchip,grf = <0x1c>;
        status = "okay";
        #sound-dai-cells = <0x00>;
        ddc-i2c-scl-high-time-ns = <0x2599>;
        ddc-i2c-scl-low-time-ns = <0x2710>;
        phandle = <0x8f>;

        ports {

            port {
                #address-cells = <0x01>;
                #size-cells = <0x00>;
                phandle = <0xb9>;

                endpoint@0 {
                    reg = <0x00>;
                    remote-endpoint = <0x5c>;
                    phandle = <0x54>;
                };
            };
        };
    };

    tve@ff373e00 {
        compatible = "rockchip,rk3328-tve";
        reg = <0x00 0xff373e00 0x00 0x100 0x00 0xff420000 0x00 0x10000>;
        rockchip,saturation = <0x376749>;
        rockchip,brightcontrast = <0xa305>;
        rockchip,adjtiming = <0xb6c00880>;
        rockchip,lumafilter0 = <0x1ff0000>;
        rockchip,lumafilter1 = <0xf40200fe>;
        rockchip,lumafilter2 = <0xf332d70c>;
        rockchip,daclevel = <0x22>;
        rockchip,dac1level = <0x07>;
        status = "okay";
        phandle = <0xba>;

        ports {

            port {
                #address-cells = <0x01>;
                #size-cells = <0x00>;
                phandle = <0xbb>;

                endpoint@0 {
                    reg = <0x00>;
                    remote-endpoint = <0x5d>;
                    phandle = <0x55>;
                };
            };
        };
    };

    display-subsystem {
        compatible = "rockchip,display-subsystem";
        ports = <0x5e>;
        status = "okay";
        logo-memory-region = <0x5f>;
        secure-memory-region = <0x60>;
        phandle = <0xbc>;

        route {

            route-hdmi {
                status = "okay";
                logo,uboot = "logo.bmp";
                logo,kernel = "logo_kernel.bmp";
                logo,mode = "fullscreen";
                charge_logo,mode = "fullscreen";
                connect = <0x5c>;
                phandle = <0xbd>;
            };

            route-tve {
                status = "okay";
                logo,uboot = "logo.bmp";
                logo,kernel = "logo_kernel.bmp";
                logo,mode = "fullscreen";
                charge_logo,mode = "fullscreen";
                connect = <0x5d>;
                phandle = <0xbe>;
            };
        };
    };

    codec@ff410000 {
        compatible = "rockchip,rk3328-codec";
        reg = <0x00 0xff410000 0x00 0x1000>;
        rockchip,grf = <0x1c>;
        clocks = <0x02 0xeb 0x02 0x2a>;
        clock-names = "pclk\0mclk";
        status = "okay";
        #sound-dai-cells = <0x00>;
        phandle = <0x8d>;
    };

    hdmiphy@ff430000 {
        compatible = "rockchip,rk3328-hdmi-phy";
        reg = <0x00 0xff430000 0x00 0x10000>;
        interrupts = <0x00 0x53 0x04>;
        #phy-cells = <0x00>;
        clocks = <0x02 0xe4 0x61>;
        clock-names = "sysclk\0refclk";
        #clock-cells = <0x00>;
        clock-output-names = "hdmi_phy";
        status = "okay";
        rockchip,phy-table = <0x9d5b340 0x07 0x0a 0x0a 0x0a 0x00 0x00 0x08 0x08 0x08 0x00 0xac 0xcc 0xcc 0xcc 0x1443fd00 0x0b 0x0d 0x0d 0x0d 0x07 0x15 0x08 0x08 0x08 0x3f 0xac 0xcc 0xcd 0xdd 0x2367b880 0x10 0x1a 0x1a 0x1a 0x07 0x15 0x08 0x08 0x08 0x00 0xac 0xcc 0xcc 0xcc>;
        phandle = <0x57>;
    };

    clock-controller@ff440000 {
        compatible = "rockchip,rk3328-cru\0rockchip,cru\0syscon";
        reg = <0x00 0xff440000 0x00 0x1000>;
        rockchip,grf = <0x1c>;
        #clock-cells = <0x01>;
        #reset-cells = <0x01>;
        assigned-clocks = <0x02 0x78 0x02 0x3d 0x02 0x1e 0x02 0x26 0x02 0x27 0x02 0x28 0x02 0x88 0x02 0x89 0x02 0x85 0x02 0x8a 0x02 0x8c 0x02 0x8d 0x02 0x41 0x02 0x42 0x02 0x44 0x02 0x43 0x02 0x22 0x02 0x5c 0x02 0x35 0x02 0x06 0x02 0x04 0x02 0x03 0x02 0x88 0x02 0x148 0x02 0xd8 0x02 0x89 0x02 0x134 0x02 0xe6 0x02 0x8e 0x02 0x145 0x02 0x85 0x02 0x45 0x02 0x83 0x02 0x8a 0x02 0x8c 0x02 0x8d 0x02 0x41 0x02 0x42 0x02 0x44 0x02 0x43 0x02 0x3e 0x02 0xe5 0x02 0x92 0x02 0xdc 0x02 0x1e 0x02 0x61>;
        assigned-clock-parents = <0x02 0x7a 0x02 0x01 0x02 0x04 0x61 0x61 0x61>;
        assigned-clock-rates = <0x00 0x3a98000 0x00 0x16e3600 0x16e3600 0x16e3600 0xe4e1c0 0xe4e1c0 0x5f5e100 0x5f5e100 0x2faf080 0x5f5e100 0x5f5e100 0x5f5e100 0x2faf080 0x2faf080 0x2faf080 0x2faf080 0x16e3600 0x23c34600 0x1d4c0000 0x47868c00 0x8f0d180 0x47868c0 0x47868c0 0x8f0d180 0x47868c0 0x47868c0 0x11e1a300 0x5f5e100 0x11e1a300 0xbebc200 0x17d78400 0x1dcd6500 0xbebc200 0x11e1a300 0x11e1a300 0xee6b280 0xbebc200 0x5f5e100 0x16e3600 0x5f5e100 0x8f0d180 0x2faf080 0x8000 0x8000>;
        phandle = <0x02>;
    };

    syscon@ff450000 {
        compatible = "rockchip,rk3328-usb2phy-grf\0syscon\0simple-mfd";
        reg = <0x00 0xff450000 0x00 0x10000>;
        #address-cells = <0x01>;
        #size-cells = <0x01>;
        phandle = <0xbf>;

        usb2-phy@100 {
            compatible = "rockchip,rk3328-usb2phy";
            reg = <0x100 0x10>;
            clocks = <0x61>;
            clock-names = "phyclk";
            #clock-cells = <0x00>;
            assigned-clocks = <0x02 0x7b>;
            assigned-clock-parents = <0x62>;
            clock-output-names = "usb480m_phy";
            status = "okay";
            phandle = <0x62>;

            host-port {
                #phy-cells = <0x00>;
                interrupts = <0x00 0x3e 0x04>;
                interrupt-names = "linestate";
                status = "okay";
                phandle = <0x73>;
            };

            otg-port {
                #phy-cells = <0x00>;
                interrupts = <0x00 0x3b 0x04 0x00 0x3c 0x04 0x00 0x3d 0x04>;
                interrupt-names = "otg-bvalid\0otg-id\0linestate";
                status = "okay";
                vbus-supply = <0x63>;
                phandle = <0x72>;
            };
        };
    };

    syscon@ff460000 {
        compatible = "rockchip,usb3phy-grf\0syscon";
        reg = <0x00 0xff460000 0x00 0x1000>;
        phandle = <0x64>;
    };

    usb3-phy@ff470000 {
        compatible = "rockchip,rk3328-u3phy";
        reg = <0x00 0xff470000 0x00 0x00>;
        rockchip,u3phygrf = <0x64>;
        rockchip,grf = <0x1c>;
        interrupts = <0x00 0x4d 0x04>;
        interrupt-names = "linestate";
        clocks = <0x02 0xe0 0x02 0xe1>;
        clock-names = "u3phy-otg\0u3phy-pipe";
        resets = <0x02 0x7d 0x02 0x7e 0x02 0x7f 0x02 0x7c 0x02 0x9e 0x02 0x9f>;
        reset-names = "u3phy-u2-por\0u3phy-u3-por\0u3phy-pipe-mac\0u3phy-utmi-mac\0u3phy-utmi-apb\0u3phy-pipe-apb";
        #address-cells = <0x02>;
        #size-cells = <0x02>;
        ranges;
        status = "okay";
        vbus-supply = <0x65>;
        phandle = <0xc0>;

        utmi@ff470000 {
            reg = <0x00 0xff470000 0x00 0x8000>;
            #phy-cells = <0x00>;
            status = "okay";
            phandle = <0x78>;
        };

        pipe@ff478000 {
            reg = <0x00 0xff478000 0x00 0x8000>;
            #phy-cells = <0x00>;
            status = "okay";
            phandle = <0x79>;
        };
    };

    dwmmc@ff500000 {
        compatible = "rockchip,rk3328-dw-mshc\0rockchip,rk3288-dw-mshc";
        reg = <0x00 0xff500000 0x00 0x4000>;
        max-frequency = <0x8f0d180>;
        clocks = <0x02 0x13d 0x02 0x21 0x02 0x4a 0x02 0x4e>;
        clock-names = "biu\0ciu\0ciu-drive\0ciu-sample";
        fifo-depth = <0x100>;
        interrupts = <0x00 0x0c 0x04>;
        status = "okay";
        bus-width = <0x04>;
        cap-mmc-highspeed;
        cap-sd-highspeed;
        disable-wp;
        num-slots = <0x01>;
        pinctrl-names = "default";
        pinctrl-0 = <0x66 0x67 0x68 0x69>;
        supports-sd;
        vmmc-supply = <0x6a>;
        phandle = <0xc1>;
    };

    dwmmc@ff510000 {
        compatible = "rockchip,rk3328-dw-mshc\0rockchip,rk3288-dw-mshc";
        reg = <0x00 0xff510000 0x00 0x4000>;
        max-frequency = <0x8f0d180>;
        clocks = <0x02 0x13e 0x02 0x22 0x02 0x4b 0x02 0x4f>;
        clock-names = "biu\0ciu\0ciu-drive\0ciu-sample";
        fifo-depth = <0x100>;
        interrupts = <0x00 0x0d 0x04>;
        status = "disabled";
        phandle = <0xc2>;
    };

    dwmmc@ff520000 {
        compatible = "rockchip,rk3328-dw-mshc\0rockchip,rk3288-dw-mshc";
        reg = <0x00 0xff520000 0x00 0x4000>;
        max-frequency = <0x8f0d180>;
        clocks = <0x02 0x13f 0x02 0x23 0x02 0x4c 0x02 0x50>;
        clock-names = "biu\0ciu\0ciu-drive\0ciu-sample";
        fifo-depth = <0x100>;
        interrupts = <0x00 0x0e 0x04>;
        status = "okay";
        bus-width = <0x08>;
        cap-mmc-highspeed;
        mmc-hs200-1_8v;
        supports-emmc;
        disable-wp;
        non-removable;
        num-slots = <0x01>;
        pinctrl-names = "default";
        pinctrl-0 = <0x6b 0x6c 0x6d>;
        phandle = <0xc3>;
    };

    ethernet@ff540000 {
        compatible = "rockchip,rk3328-gmac";
        reg = <0x00 0xff540000 0x00 0x10000>;
        rockchip,grf = <0x1c>;
        interrupts = <0x00 0x18 0x04>;
        interrupt-names = "macirq";
        clocks = <0x02 0x64 0x02 0x57 0x02 0x58 0x02 0x5a 0x02 0x59 0x02 0x96 0x02 0xdf>;
        clock-names = "stmmaceth\0mac_clk_rx\0mac_clk_tx\0clk_mac_ref\0clk_mac_refout\0aclk_mac\0pclk_mac";
        resets = <0x02 0x63>;
        reset-names = "stmmaceth";
        status = "disabled";
        phy-supply = <0x6e>;
        phy-mode = "rgmii";
        clock_in_out = "input";
        snps,reset-gpio = <0x6f 0x12 0x01>;
        snps,reset-active-low;
        snps,reset-delays-us = <0x00 0x2710 0xc350>;
        assigned-clocks = <0x02 0x64 0x02 0x66>;
        assigned-clock-parents = <0x70 0x70>;
        pinctrl-names = "default";
        pinctrl-0 = <0x71>;
        tx_delay = <0x26>;
        rx_delay = <0x11>;
        phandle = <0xc4>;
    };

    ethernet@ff550000 {
        compatible = "rockchip,rk3328-gmac";
        reg = <0x00 0xff550000 0x00 0x10000>;
        rockchip,grf = <0x1c>;
        interrupts = <0x00 0x15 0x04>;
        interrupt-names = "macirq";
        clocks = <0x02 0x54 0x02 0x53 0x02 0x53 0x02 0x55 0x02 0x95 0x02 0xde 0x02 0x56>;
        clock-names = "stmmaceth\0mac_clk_rx\0mac_clk_tx\0clk_mac_ref\0aclk_mac\0pclk_mac\0clk_macphy";
        resets = <0x02 0x62 0x02 0x64>;
        reset-names = "stmmaceth\0mac-phy";
        phy-mode = "rmii";
        phy-is-integrated;
        pinctrl-names = "default";
        status = "okay";
        phy-supply = <0x6e>;
        clock_in_out = "output";
        assigned-clocks = <0x02 0x65>;
        assigned-clock-rate = <0x2faf080>;
        assigned-clock-parents = <0x02 0x54>;
        phandle = <0xc5>;
    };

    usb@ff580000 {
        compatible = "rockchip,rk3328-usb\0rockchip,rk3066-usb\0snps,dwc2";
        reg = <0x00 0xff580000 0x00 0x40000>;
        interrupts = <0x00 0x17 0x04>;
        clocks = <0x02 0x14d 0x02 0x14c>;
        clock-names = "otg\0otg_pmu";
        dr_mode = "host";
        g-np-tx-fifo-size = <0x10>;
        g-rx-fifo-size = <0x118>;
        g-tx-fifo-size = <0x100 0x80 0x80 0x40 0x20 0x10>;
        g-use-dma;
        phys = <0x72>;
        phy-names = "usb2-phy";
        status = "okay";
        phandle = <0xc6>;
    };

    usb@ff5c0000 {
        compatible = "generic-ehci";
        reg = <0x00 0xff5c0000 0x00 0x10000>;
        interrupts = <0x00 0x10 0x04>;
        clocks = <0x02 0x14e 0x02 0x14f 0x62>;
        clock-names = "usbhost\0arbiter\0utmi";
        phys = <0x73>;
        phy-names = "usb";
        status = "okay";
        phandle = <0xc7>;
    };

    usb@ff5d0000 {
        compatible = "generic-ohci";
        reg = <0x00 0xff5d0000 0x00 0x10000>;
        interrupts = <0x00 0x11 0x04>;
        clocks = <0x02 0x14e 0x02 0x14f 0x62>;
        clock-names = "usbhost\0arbiter\0utmi";
        phys = <0x73>;
        phy-names = "usb";
        status = "okay";
        phandle = <0xc8>;
    };

    dwmmc@ff5f0000 {
        compatible = "rockchip,rk3328-dw-mshc\0rockchip,rk3288-dw-mshc";
        reg = <0x00 0xff5f0000 0x00 0x4000>;
        clock-freq-min-max = <0x61a80 0x8f0d180>;
        clocks = <0x02 0x140 0x02 0x1f 0x02 0x4d 0x02 0x51>;
        clock-names = "biu\0ciu\0ciu-drv\0ciu-sample";
        fifo-depth = <0x100>;
        interrupts = <0x00 0x04 0x04>;
        status = "okay";
        bus-width = <0x04>;
        cap-sd-highspeed;
        cap-sdio-irq;
        disable-wp;
        keep-power-in-suspend;
        max-frequency = <0x5f5e100>;
        mmc-pwrseq = <0x74>;
        non-removable;
        num-slots = <0x01>;
        pinctrl-names = "default";
        pinctrl-0 = <0x75 0x76 0x77>;
        supports-sdio;
        sd-uhs-sdr104;
        phandle = <0xc9>;
    };

    usb@ff600000 {
        compatible = "rockchip,rk3328-dwc3";
        clocks = <0x02 0x60 0x02 0x61 0x02 0x84>;
        clock-names = "ref_clk\0suspend_clk\0bus_clk";
        #address-cells = <0x02>;
        #size-cells = <0x02>;
        ranges;
        status = "okay";
        phandle = <0xca>;

        dwc3@ff600000 {
            compatible = "snps,dwc3";
            reg = <0x00 0xff600000 0x00 0x100000>;
            interrupts = <0x00 0x43 0x04>;
            dr_mode = "host";
            phys = <0x78 0x79>;
            phy-names = "usb2-phy\0usb3-phy";
            phy_type = "utmi_wide";
            snps,dis_enblslpm_quirk;
            snps,dis-u2-freeclk-exists-quirk;
            snps,dis_u2_susphy_quirk;
            snps,dis-u3-autosuspend-quirk;
            snps,dis_u3_susphy_quirk;
            snps,dis-del-phy-power-chg-quirk;
            snps,tx-ipgap-linecheck-dis-quirk;
            status = "okay";
            phandle = <0xcb>;
        };
    };

    qos@ff750000 {
        compatible = "syscon";
        reg = <0x00 0xff750000 0x00 0x20>;
        phandle = <0x2b>;
    };

    qos@ff750080 {
        compatible = "syscon";
        reg = <0x00 0xff750080 0x00 0x20>;
        phandle = <0x2c>;
    };

    qos@ff778000 {
        compatible = "syscon";
        reg = <0x00 0xff778000 0x00 0x20>;
        phandle = <0x2d>;
    };

    dfi@ff790000 {
        reg = <0x00 0xff790000 0x00 0x400>;
        compatible = "rockchip,rk3328-dfi";
        rockchip,grf = <0x1c>;
        status = "okay";
        phandle = <0x7a>;
    };

    dmc {
        compatible = "rockchip,rk3328-dmc";
        devfreq-events = <0x7a>;
        clocks = <0x02 0x40>;
        clock-names = "dmc_clk";
        operating-points-v2 = <0x7b>;
        ddr_timing = <0x7c>;
        upthreshold = <0x28>;
        downdifferential = <0x14>;
        system-status-freq = <0x01 0xbfe50 0x08 0xbfe50 0x02 0xbfe50 0x20 0xbfe50 0x10 0xbfe50 0x10000 0xbfe50 0x2000 0xbfe50 0x1000 0xbfe50>;
        auto-min-freq = <0xbfe50>;
        auto-freq-en = <0x00>;
        #cooling-cells = <0x02>;
        status = "okay";
        center-supply = <0x48>;
        phandle = <0x32>;

        ddr_power_model {
            compatible = "ddr_power_model";
            dynamic-power-coefficient = <0x78>;
            static-power-coefficient = <0xc8>;
            ts = <0x7d00 0x125c 0xffffffb0 0x02>;
            thermal-zone = "soc-thermal";
            phandle = <0xcc>;
        };
    };

    dmc-opp-table {
        compatible = "operating-points-v2";
        rockchip,leakage-voltage-sel = <0x01 0x0a 0x00 0x0b 0xfe 0x01>;
        nvmem-cells = <0x49>;
        nvmem-cell-names = "ddr_leakage";
        phandle = <0x7b>;

        opp-400000000 {
            opp-hz = <0x00 0x17d78400>;
            opp-microvolt = <0xfa3e8>;
            opp-microvolt-L0 = <0xfa3e8>;
            opp-microvolt-L1 = <0xfa3e8>;
            status = "disabled";
        };

        opp-600000000 {
            opp-hz = <0x00 0x23c34600>;
            opp-microvolt = <0x106738>;
            opp-microvolt-L0 = <0x106738>;
            opp-microvolt-L1 = <0x106738>;
            status = "disabled";
        };

        opp-786000000 {
            opp-hz = <0x00 0x2ed96880>;
            opp-microvolt = <0x112a88>;
            opp-microvolt-L0 = <0x112a88>;
            opp-microvolt-L1 = <0x112a88>;
        };

        opp-800000000 {
            opp-hz = <0x00 0x2faf0800>;
            opp-microvolt = <0x11edd8>;
            opp-microvolt-L0 = <0x11edd8>;
            opp-microvolt-L1 = <0x118c30>;
            status = "disabled";
        };

        opp-850000000 {
            opp-hz = <0x00 0x32a9f880>;
            opp-microvolt = <0x106738>;
            opp-microvolt-L0 = <0x106738>;
            opp-microvolt-L1 = <0x100590>;
            status = "disabled";
        };

        opp-933000000 {
            opp-hz = <0x00 0x379c7340>;
            opp-microvolt = <0x10c8e0>;
            opp-microvolt-L0 = <0x10c8e0>;
            opp-microvolt-L1 = <0x106738>;
            status = "disabled";
        };

        opp-1066000000 {
            opp-hz = <0x00 0x3f89de80>;
            opp-microvolt = <0x11edd8>;
            opp-microvolt-L0 = <0x11edd8>;
            opp-microvolt-L1 = <0x118c30>;
            status = "disabled";
        };
    };

    interrupt-controller@ff811000 {
        compatible = "arm,gic-400";
        #interrupt-cells = <0x03>;
        #address-cells = <0x00>;
        interrupt-controller;
        reg = <0x00 0xff811000 0x00 0x1000 0x00 0xff812000 0x00 0x2000 0x00 0xff814000 0x00 0x2000 0x00 0xff816000 0x00 0x2000>;
        interrupts = <0x01 0x09 0xf04>;
        phandle = <0x01>;
    };

    rockchip-system-monitor {
        compatible = "rockchip,system-monitor";
        rockchip,thermal-zone = "soc-thermal";
        rockchip,polling-delay = <0xc8>;
        rockchip,video-4k-offline-cpus = [33 00];
        phandle = <0xcd>;
    };

    pinctrl {
        compatible = "rockchip,rk3328-pinctrl";
        rockchip,grf = <0x1c>;
        #address-cells = <0x02>;
        #size-cells = <0x02>;
        ranges;
        pinctrl-names = "default";
        pinctrl-0 = <0x7d>;
        phandle = <0xce>;

        gpio0@ff210000 {
            compatible = "rockchip,gpio-bank";
            reg = <0x00 0xff210000 0x00 0x100>;
            interrupts = <0x00 0x33 0x04>;
            clocks = <0x02 0xc8>;
            gpio-controller;
            #gpio-cells = <0x02>;
            interrupt-controller;
            #interrupt-cells = <0x02>;
            phandle = <0x92>;
        };

        gpio1@ff220000 {
            compatible = "rockchip,gpio-bank";
            reg = <0x00 0xff220000 0x00 0x100>;
            interrupts = <0x00 0x34 0x04>;
            clocks = <0x02 0xc9>;
            gpio-controller;
            #gpio-cells = <0x02>;
            interrupt-controller;
            #interrupt-cells = <0x02>;
            phandle = <0x6f>;
        };

        gpio2@ff230000 {
            compatible = "rockchip,gpio-bank";
            reg = <0x00 0xff230000 0x00 0x100>;
            interrupts = <0x00 0x35 0x04>;
            clocks = <0x02 0xca>;
            gpio-controller;
            #gpio-cells = <0x02>;
            interrupt-controller;
            #interrupt-cells = <0x02>;
            phandle = <0x8a>;
        };

        gpio3@ff240000 {
            compatible = "rockchip,gpio-bank";
            reg = <0x00 0xff240000 0x00 0x100>;
            interrupts = <0x00 0x36 0x04>;
            clocks = <0x02 0xcb>;
            gpio-controller;
            #gpio-cells = <0x02>;
            interrupt-controller;
            #interrupt-cells = <0x02>;
            phandle = <0x9a>;
        };

        pcfg-pull-up {
            bias-pull-up;
            phandle = <0x7f>;
        };

        pcfg-pull-down {
            bias-pull-down;
            phandle = <0x88>;
        };

        pcfg-pull-none {
            bias-disable;
            phandle = <0x7e>;
        };

        pcfg-pull-none-2ma {
            bias-disable;
            drive-strength = <0x02>;
            phandle = <0x87>;
        };

        pcfg-pull-up-2ma {
            bias-pull-up;
            drive-strength = <0x02>;
            phandle = <0xcf>;
        };

        pcfg-pull-up-4ma {
            bias-pull-up;
            drive-strength = <0x04>;
            phandle = <0x81>;
        };

        pcfg-pull-none-4ma {
            bias-disable;
            drive-strength = <0x04>;
            phandle = <0x82>;
        };

        pcfg-pull-down-4ma {
            bias-pull-down;
            drive-strength = <0x04>;
            phandle = <0xd0>;
        };

        pcfg-pull-none-8ma {
            bias-disable;
            drive-strength = <0x08>;
            phandle = <0x83>;
        };

        pcfg-pull-up-8ma {
            bias-pull-up;
            drive-strength = <0x08>;
            phandle = <0x84>;
        };

        pcfg-pull-none-12ma {
            bias-disable;
            drive-strength = <0x0c>;
            phandle = <0x85>;
        };

        pcfg-pull-up-12ma {
            bias-pull-up;
            drive-strength = <0x0c>;
            phandle = <0x86>;
        };

        pcfg-output-high {
            output-high;
            phandle = <0xd1>;
        };

        pcfg-output-low {
            output-low;
            phandle = <0xd2>;
        };

        pcfg-input-high {
            bias-pull-up;
            input-enable;
            phandle = <0x80>;
        };

        pcfg-input {
            input-enable;
            phandle = <0xd3>;
        };

        i2c0 {

            i2c0-xfer {
                rockchip,pins = <0x02 0x18 0x01 0x7e 0x02 0x19 0x01 0x7e>;
                phandle = <0x3b>;
            };
        };

        i2c1 {

            i2c1-xfer {
                rockchip,pins = <0x02 0x04 0x02 0x7e 0x02 0x05 0x02 0x7e>;
                phandle = <0x3c>;
            };
        };

        i2c2 {

            i2c2-xfer {
                rockchip,pins = <0x02 0x0d 0x01 0x7e 0x02 0x0e 0x01 0x7e>;
                phandle = <0x3d>;
            };
        };

        i2c3 {

            i2c3-xfer {
                rockchip,pins = <0x00 0x05 0x02 0x7e 0x00 0x06 0x02 0x7e>;
                phandle = <0x3e>;
            };

            i2c3-gpio {
                rockchip,pins = <0x00 0x05 0x00 0x7e 0x00 0x06 0x00 0x7e>;
                phandle = <0x5b>;
            };
        };

        tsp {

            tsp-d0 {
                rockchip,pins = <0x03 0x04 0x01 0x7e>;
                phandle = <0x1d>;
            };

            tsp-d1 {
                rockchip,pins = <0x03 0x05 0x01 0x7e>;
                phandle = <0x1e>;
            };

            tsp-d2 {
                rockchip,pins = <0x03 0x06 0x01 0x7e>;
                phandle = <0x1f>;
            };

            tsp-d3 {
                rockchip,pins = <0x03 0x07 0x01 0x7e>;
                phandle = <0x20>;
            };

            tsp-d4 {
                rockchip,pins = <0x03 0x08 0x01 0x7e>;
                phandle = <0x21>;
            };

            tsp-d5 {
                rockchip,pins = <0x02 0x10 0x03 0x7e>;
                phandle = <0x22>;
            };

            tsp-d6 {
                rockchip,pins = <0x02 0x11 0x03 0x7e>;
                phandle = <0x23>;
            };

            tsp-d7 {
                rockchip,pins = <0x02 0x12 0x03 0x7e>;
                phandle = <0x24>;
            };

            tsp-sync {
                rockchip,pins = <0x02 0x0f 0x03 0x7e>;
                phandle = <0x25>;
            };

            tsp-clk {
                rockchip,pins = <0x03 0x02 0x01 0x7e>;
                phandle = <0x26>;
            };

            tsp-fail {
                rockchip,pins = <0x03 0x01 0x01 0x7e>;
                phandle = <0x27>;
            };

            tsp-valid {
                rockchip,pins = <0x03 0x00 0x01 0x7e>;
                phandle = <0x28>;
            };
        };

        hdmi_i2c {

            hdmii2c-xfer {
                rockchip,pins = <0x00 0x05 0x01 0x7e 0x00 0x06 0x01 0x7e>;
                phandle = <0x59>;
            };
        };

        tsadc {

            otp-gpio {
                rockchip,pins = <0x02 0x0d 0x00 0x7e>;
                phandle = <0x33>;
            };

            otp-out {
                rockchip,pins = <0x02 0x0d 0x01 0x7e>;
                phandle = <0x34>;
            };
        };

        uart0 {

            uart0-xfer {
                rockchip,pins = <0x01 0x09 0x01 0x7f 0x01 0x08 0x01 0x7e>;
                phandle = <0x35>;
            };

            uart0-cts {
                rockchip,pins = <0x01 0x0b 0x01 0x7e>;
                phandle = <0x36>;
            };

            uart0-rts {
                rockchip,pins = <0x01 0x0a 0x01 0x7e>;
                phandle = <0x98>;
            };

            uart0-rts-gpio {
                rockchip,pins = <0x01 0x0a 0x00 0x7e>;
                phandle = <0xd4>;
            };
        };

        uart1 {

            uart1-xfer {
                rockchip,pins = <0x03 0x04 0x04 0x7f 0x03 0x06 0x04 0x7e>;
                phandle = <0x37>;
            };

            uart1-cts {
                rockchip,pins = <0x03 0x07 0x04 0x7e>;
                phandle = <0x38>;
            };

            uart1-rts {
                rockchip,pins = <0x03 0x05 0x04 0x7e>;
                phandle = <0x39>;
            };

            uart1-rts-gpio {
                rockchip,pins = <0x03 0x05 0x00 0x7e>;
                phandle = <0xd5>;
            };
        };

        uart2-0 {

            uart2m0-xfer {
                rockchip,pins = <0x01 0x00 0x02 0x7f 0x01 0x01 0x02 0x7e>;
                phandle = <0xd6>;
            };
        };

        uart2-1 {

            uart2m1-xfer {
                rockchip,pins = <0x02 0x00 0x01 0x7f 0x02 0x01 0x01 0x7e>;
                phandle = <0x3a>;
            };
        };

        spi0-0 {

            spi0m0-clk {
                rockchip,pins = <0x02 0x08 0x01 0x7f>;
                phandle = <0xd7>;
            };

            spi0m0-cs0 {
                rockchip,pins = <0x02 0x0b 0x01 0x7f>;
                phandle = <0xd8>;
            };

            spi0m0-tx {
                rockchip,pins = <0x02 0x09 0x01 0x7f>;
                phandle = <0xd9>;
            };

            spi0m0-rx {
                rockchip,pins = <0x02 0x0a 0x01 0x7f>;
                phandle = <0xda>;
            };

            spi0m0-cs1 {
                rockchip,pins = <0x02 0x0c 0x01 0x7f>;
                phandle = <0xdb>;
            };
        };

        spi0-1 {

            spi0m1-clk {
                rockchip,pins = <0x03 0x17 0x02 0x7f>;
                phandle = <0xdc>;
            };

            spi0m1-cs0 {
                rockchip,pins = <0x03 0x1a 0x02 0x7f>;
                phandle = <0xdd>;
            };

            spi0m1-tx {
                rockchip,pins = <0x03 0x19 0x02 0x7f>;
                phandle = <0xde>;
            };

            spi0m1-rx {
                rockchip,pins = <0x03 0x18 0x02 0x7f>;
                phandle = <0xdf>;
            };

            spi0m1-cs1 {
                rockchip,pins = <0x03 0x1b 0x02 0x7f>;
                phandle = <0xe0>;
            };
        };

        spi0-2 {

            spi0m2-clk {
                rockchip,pins = <0x03 0x00 0x04 0x7f>;
                phandle = <0x3f>;
            };

            spi0m2-cs0 {
                rockchip,pins = <0x03 0x08 0x03 0x7f>;
                phandle = <0x42>;
            };

            spi0m2-tx {
                rockchip,pins = <0x03 0x01 0x04 0x7f>;
                phandle = <0x40>;
            };

            spi0m2-rx {
                rockchip,pins = <0x03 0x02 0x04 0x7f>;
                phandle = <0x41>;
            };
        };

        pdm-0 {

            pdmm0-clk {
                rockchip,pins = <0x02 0x12 0x02 0x7e>;
                phandle = <0x15>;
            };

            pdmm0-fsync {
                rockchip,pins = <0x02 0x17 0x02 0x7e>;
                phandle = <0x16>;
            };

            pdmm0-sdi0 {
                rockchip,pins = <0x02 0x13 0x02 0x7e>;
                phandle = <0x17>;
            };

            pdmm0-sdi1 {
                rockchip,pins = <0x02 0x14 0x02 0x7e>;
                phandle = <0x18>;
            };

            pdmm0-sdi2 {
                rockchip,pins = <0x02 0x15 0x02 0x7e>;
                phandle = <0x19>;
            };

            pdmm0-sdi3 {
                rockchip,pins = <0x02 0x16 0x02 0x7e>;
                phandle = <0x1a>;
            };

            pdmm0-sleep {
                rockchip,pins = <0x02 0x12 0x00 0x80 0x02 0x13 0x00 0x80 0x02 0x14 0x00 0x80 0x02 0x15 0x00 0x80 0x02 0x16 0x00 0x80 0x02 0x17 0x00 0x80>;
                phandle = <0x1b>;
            };
        };

        i2s1 {

            i2s1-mclk {
                rockchip,pins = <0x02 0x0f 0x01 0x7e>;
                phandle = <0xe1>;
            };

            i2s1-sclk {
                rockchip,pins = <0x02 0x12 0x01 0x7e>;
                phandle = <0xe2>;
            };

            i2s1-lrckrx {
                rockchip,pins = <0x02 0x10 0x01 0x7e>;
                phandle = <0xe3>;
            };

            i2s1-lrcktx {
                rockchip,pins = <0x02 0x11 0x01 0x7e>;
                phandle = <0xe4>;
            };

            i2s1-sdi {
                rockchip,pins = <0x02 0x13 0x01 0x7e>;
                phandle = <0xe5>;
            };

            i2s1-sdo {
                rockchip,pins = <0x02 0x17 0x01 0x7e>;
                phandle = <0xe6>;
            };

            i2s1-sdio1 {
                rockchip,pins = <0x02 0x14 0x01 0x7e>;
                phandle = <0xe7>;
            };

            i2s1-sdio2 {
                rockchip,pins = <0x02 0x15 0x01 0x7e>;
                phandle = <0xe8>;
            };

            i2s1-sdio3 {
                rockchip,pins = <0x02 0x16 0x01 0x7e>;
                phandle = <0xe9>;
            };

            i2s1-sleep {
                rockchip,pins = <0x02 0x0f 0x00 0x80 0x02 0x10 0x00 0x80 0x02 0x11 0x00 0x80 0x02 0x12 0x00 0x80 0x02 0x13 0x00 0x80 0x02 0x14 0x00 0x80 0x02 0x15 0x00 0x80 0x02 0x16 0x00 0x80 0x02 0x17 0x00 0x80>;
                phandle = <0xea>;
            };
        };

        i2s2-0 {

            i2s2m0-mclk {
                rockchip,pins = <0x01 0x15 0x01 0x7e>;
                phandle = <0x0d>;
            };

            i2s2m0-sclk {
                rockchip,pins = <0x01 0x16 0x01 0x7e>;
                phandle = <0x0e>;
            };

            i2s2m0-lrckrx {
                rockchip,pins = <0x01 0x1a 0x01 0x7e>;
                phandle = <0x10>;
            };

            i2s2m0-lrcktx {
                rockchip,pins = <0x01 0x17 0x01 0x7e>;
                phandle = <0x0f>;
            };

            i2s2m0-sdi {
                rockchip,pins = <0x01 0x18 0x01 0x7e>;
                phandle = <0x12>;
            };

            i2s2m0-sdo {
                rockchip,pins = <0x01 0x19 0x01 0x7e>;
                phandle = <0x11>;
            };

            i2s2m0-sleep {
                rockchip,pins = <0x01 0x15 0x00 0x80 0x01 0x16 0x00 0x80 0x01 0x1a 0x00 0x80 0x01 0x17 0x00 0x80 0x01 0x18 0x00 0x80 0x01 0x19 0x00 0x80>;
                phandle = <0x13>;
            };
        };

        i2s2-1 {

            i2s2m1-mclk {
                rockchip,pins = <0x01 0x15 0x01 0x7e>;
                phandle = <0xeb>;
            };

            i2s2m1-sclk {
                rockchip,pins = <0x03 0x00 0x06 0x7e>;
                phandle = <0xec>;
            };

            i2sm1-lrckrx {
                rockchip,pins = <0x03 0x08 0x06 0x7e>;
                phandle = <0xed>;
            };

            i2s2m1-lrcktx {
                rockchip,pins = <0x03 0x08 0x04 0x7e>;
                phandle = <0xee>;
            };

            i2s2m1-sdi {
                rockchip,pins = <0x03 0x02 0x06 0x7e>;
                phandle = <0xef>;
            };

            i2s2m1-sdo {
                rockchip,pins = <0x03 0x01 0x06 0x7e>;
                phandle = <0xf0>;
            };

            i2s2m1-sleep {
                rockchip,pins = <0x01 0x15 0x00 0x80 0x03 0x00 0x00 0x80 0x03 0x08 0x00 0x80 0x03 0x02 0x00 0x80 0x03 0x01 0x00 0x80>;
                phandle = <0xf1>;
            };
        };

        spdif-0 {

            spdifm0-tx {
                rockchip,pins = <0x00 0x1b 0x01 0x7e>;
                phandle = <0xf2>;
            };
        };

        spdif-1 {

            spdifm1-tx {
                rockchip,pins = <0x02 0x11 0x02 0x7e>;
                phandle = <0x14>;
            };
        };

        spdif-2 {

            spdifm2-tx {
                rockchip,pins = <0x00 0x02 0x02 0x7e>;
                phandle = <0xf3>;
            };
        };

        sdmmc0-0 {

            sdmmc0m0-pwren {
                rockchip,pins = <0x02 0x07 0x01 0x81>;
                phandle = <0xf4>;
            };

            sdmmc0m0-gpio {
                rockchip,pins = <0x02 0x07 0x00 0x81>;
                phandle = <0xf5>;
            };
        };

        sdmmc0-1 {

            sdmmc0m1-pwren {
                rockchip,pins = <0x00 0x1e 0x03 0x81>;
                phandle = <0xf6>;
            };

            sdmmc0m1-gpio {
                rockchip,pins = <0x00 0x1e 0x00 0x81>;
                phandle = <0x95>;
            };
        };

        sdmmc0 {

            sdmmc0-clk {
                rockchip,pins = <0x01 0x06 0x01 0x82>;
                phandle = <0x66>;
            };

            sdmmc0-cmd {
                rockchip,pins = <0x01 0x04 0x01 0x81>;
                phandle = <0x67>;
            };

            sdmmc0-dectn {
                rockchip,pins = <0x01 0x05 0x01 0x81>;
                phandle = <0x68>;
            };

            sdmmc0-wrprt {
                rockchip,pins = <0x01 0x07 0x01 0x81>;
                phandle = <0xf7>;
            };

            sdmmc0-bus1 {
                rockchip,pins = <0x01 0x00 0x01 0x81>;
                phandle = <0xf8>;
            };

            sdmmc0-bus4 {
                rockchip,pins = <0x01 0x00 0x01 0x81 0x01 0x01 0x01 0x81 0x01 0x02 0x01 0x81 0x01 0x03 0x01 0x81>;
                phandle = <0x69>;
            };

            sdmmc0-gpio {
                rockchip,pins = <0x01 0x06 0x00 0x81 0x01 0x04 0x00 0x81 0x01 0x05 0x00 0x81 0x01 0x07 0x00 0x81 0x01 0x03 0x00 0x81 0x01 0x02 0x00 0x81 0x01 0x01 0x00 0x81 0x01 0x00 0x00 0x81>;
                phandle = <0xf9>;
            };
        };

        sdmmc0ext {

            sdmmc0ext-clk {
                rockchip,pins = <0x03 0x02 0x03 0x82>;
                phandle = <0x77>;
            };

            sdmmc0ext-cmd {
                rockchip,pins = <0x03 0x00 0x03 0x81>;
                phandle = <0x76>;
            };

            sdmmc0ext-wrprt {
                rockchip,pins = <0x03 0x03 0x03 0x81>;
                phandle = <0xfa>;
            };

            sdmmc0ext-dectn {
                rockchip,pins = <0x03 0x01 0x03 0x81>;
                phandle = <0xfb>;
            };

            sdmmc0ext-bus1 {
                rockchip,pins = <0x03 0x04 0x03 0x81>;
                phandle = <0xfc>;
            };

            sdmmc0ext-bus4 {
                rockchip,pins = <0x03 0x04 0x03 0x81 0x03 0x05 0x03 0x81 0x03 0x06 0x03 0x81 0x03 0x07 0x03 0x81>;
                phandle = <0x75>;
            };

            sdmmc0ext-gpio {
                rockchip,pins = <0x03 0x00 0x00 0x81 0x03 0x01 0x00 0x81 0x03 0x02 0x00 0x81 0x03 0x03 0x00 0x81 0x03 0x04 0x00 0x81 0x03 0x05 0x00 0x81 0x03 0x06 0x00 0x81 0x03 0x07 0x00 0x81>;
                phandle = <0xfd>;
            };
        };

        sdmmc1 {

            sdmmc1-clk {
                rockchip,pins = <0x01 0x0c 0x01 0x83>;
                phandle = <0xfe>;
            };

            sdmmc1-cmd {
                rockchip,pins = <0x01 0x0d 0x01 0x84>;
                phandle = <0xff>;
            };

            sdmmc1-pwren {
                rockchip,pins = <0x01 0x12 0x01 0x84>;
                phandle = <0x100>;
            };

            sdmmc1-wrprt {
                rockchip,pins = <0x01 0x14 0x01 0x84>;
                phandle = <0x101>;
            };

            sdmmc1-dectn {
                rockchip,pins = <0x01 0x13 0x01 0x84>;
                phandle = <0x102>;
            };

            sdmmc1-bus1 {
                rockchip,pins = <0x01 0x0e 0x01 0x84>;
                phandle = <0x103>;
            };

            sdmmc1-bus4 {
                rockchip,pins = <0x01 0x0e 0x01 0x84 0x01 0x0f 0x01 0x84 0x01 0x10 0x01 0x84 0x01 0x11 0x01 0x84>;
                phandle = <0x104>;
            };

            sdmmc1-gpio {
                rockchip,pins = <0x01 0x0c 0x00 0x81 0x01 0x0d 0x00 0x81 0x01 0x0e 0x00 0x81 0x01 0x0f 0x00 0x81 0x01 0x10 0x00 0x81 0x01 0x11 0x00 0x81 0x01 0x12 0x00 0x81 0x01 0x13 0x00 0x81 0x01 0x14 0x00 0x81>;
                phandle = <0x105>;
            };
        };

        emmc {

            emmc-clk {
                rockchip,pins = <0x03 0x15 0x02 0x85>;
                phandle = <0x6b>;
            };

            emmc-cmd {
                rockchip,pins = <0x03 0x13 0x02 0x86>;
                phandle = <0x6c>;
            };

            emmc-pwren {
                rockchip,pins = <0x03 0x16 0x02 0x7e>;
                phandle = <0x106>;
            };

            emmc-rstnout {
                rockchip,pins = <0x03 0x14 0x02 0x7e>;
                phandle = <0x107>;
            };

            emmc-bus1 {
                rockchip,pins = <0x00 0x07 0x02 0x86>;
                phandle = <0x108>;
            };

            emmc-bus4 {
                rockchip,pins = <0x00 0x07 0x02 0x86 0x02 0x1c 0x02 0x86 0x02 0x1d 0x02 0x86 0x02 0x1e 0x02 0x86>;
                phandle = <0x109>;
            };

            emmc-bus8 {
                rockchip,pins = <0x00 0x07 0x02 0x86 0x02 0x1c 0x02 0x86 0x02 0x1d 0x02 0x86 0x02 0x1e 0x02 0x86 0x02 0x1f 0x02 0x86 0x03 0x10 0x02 0x86 0x03 0x11 0x02 0x86 0x03 0x12 0x02 0x86>;
                phandle = <0x6d>;
            };
        };

        pwm0 {

            pwm0-pin {
                rockchip,pins = <0x02 0x04 0x01 0x7e>;
                phandle = <0x10a>;
            };

            pwm0-pin-pull-up {
                rockchip,pins = <0x02 0x04 0x01 0x7f>;
                phandle = <0x43>;
            };
        };

        pwm1 {

            pwm1-pin {
                rockchip,pins = <0x02 0x05 0x01 0x7e>;
                phandle = <0x10b>;
            };

            pwm1-pin-pull-up {
                rockchip,pins = <0x02 0x05 0x01 0x7f>;
                phandle = <0x44>;
            };
        };

        pwm2 {

            pwm2-pin {
                rockchip,pins = <0x02 0x06 0x01 0x7e>;
                phandle = <0x45>;
            };
        };

        pwmir {

            pwmir-pin {
                rockchip,pins = <0x02 0x02 0x01 0x7e>;
                phandle = <0x46>;
            };
        };

        gmac-1 {

            rgmiim1-pins {
                rockchip,pins = <0x01 0x0c 0x02 0x85 0x01 0x0d 0x02 0x87 0x01 0x13 0x02 0x87 0x01 0x19 0x02 0x85 0x01 0x15 0x02 0x87 0x01 0x16 0x02 0x87 0x01 0x17 0x02 0x87 0x01 0x0a 0x02 0x87 0x01 0x0b 0x02 0x87 0x01 0x08 0x02 0x85 0x01 0x09 0x02 0x85 0x01 0x0e 0x02 0x87 0x01 0x0f 0x02 0x87 0x01 0x10 0x02 0x85 0x01 0x11 0x02 0x85 0x00 0x08 0x01 0x7e 0x00 0x0c 0x01 0x7e 0x00 0x18 0x01 0x7e 0x00 0x10 0x01 0x7e 0x00 0x11 0x01 0x7e 0x00 0x17 0x01 0x7e 0x00 0x16 0x01 0x7e>;
                phandle = <0x71>;
            };

            rmiim1-pins {
                rockchip,pins = <0x01 0x13 0x02 0x87 0x01 0x19 0x02 0x85 0x01 0x15 0x02 0x87 0x01 0x18 0x02 0x87 0x01 0x16 0x02 0x87 0x01 0x17 0x02 0x87 0x01 0x0a 0x02 0x87 0x01 0x0b 0x02 0x87 0x01 0x08 0x02 0x85 0x01 0x09 0x02 0x85 0x00 0x0b 0x01 0x7e 0x00 0x0c 0x01 0x7e 0x00 0x18 0x01 0x7e 0x00 0x13 0x01 0x7e 0x00 0x10 0x01 0x7e 0x00 0x11 0x01 0x7e>;
                phandle = <0x10c>;
            };
        };

        gmac2phy {

            fephyled-speed100 {
                rockchip,pins = <0x00 0x1f 0x01 0x7e>;
                phandle = <0x10d>;
            };

            fephyled-speed10 {
                rockchip,pins = <0x00 0x1e 0x01 0x7e>;
                phandle = <0x10e>;
            };

            fephyled-duplex {
                rockchip,pins = <0x00 0x1e 0x02 0x7e>;
                phandle = <0x10f>;
            };

            fephyled-rxm0 {
                rockchip,pins = <0x00 0x1d 0x01 0x7e>;
                phandle = <0x110>;
            };

            fephyled-txm0 {
                rockchip,pins = <0x00 0x1d 0x02 0x7e>;
                phandle = <0x111>;
            };

            fephyled-linkm0 {
                rockchip,pins = <0x00 0x1c 0x01 0x7e>;
                phandle = <0x112>;
            };

            fephyled-rxm1 {
                rockchip,pins = <0x02 0x19 0x02 0x7e>;
                phandle = <0x113>;
            };

            fephyled-txm1 {
                rockchip,pins = <0x02 0x19 0x03 0x7e>;
                phandle = <0x114>;
            };

            fephyled-linkm1 {
                rockchip,pins = <0x02 0x18 0x02 0x7e>;
                phandle = <0x115>;
            };
        };

        tsadc_pin {

            tsadc-int {
                rockchip,pins = <0x02 0x0d 0x02 0x7e>;
                phandle = <0x116>;
            };

            tsadc-gpio {
                rockchip,pins = <0x02 0x0d 0x00 0x7e>;
                phandle = <0x117>;
            };
        };

        hdmi_pin {

            hdmi-cec {
                rockchip,pins = <0x00 0x03 0x01 0x7e>;
                phandle = <0x58>;
            };

            hdmi-hpd {
                rockchip,pins = <0x00 0x04 0x01 0x88>;
                phandle = <0x5a>;
            };
        };

        cif-0 {

            dvp-d2d9-m0 {
                rockchip,pins = <0x03 0x04 0x02 0x7e 0x03 0x05 0x02 0x7e 0x03 0x06 0x02 0x7e 0x03 0x07 0x02 0x7e 0x03 0x08 0x02 0x7e 0x03 0x09 0x02 0x7e 0x03 0x0a 0x02 0x7e 0x03 0x0b 0x02 0x7e 0x03 0x01 0x02 0x7e 0x03 0x00 0x02 0x7e 0x03 0x03 0x02 0x7e 0x03 0x02 0x02 0x7e>;
                phandle = <0x118>;
            };
        };

        cif-1 {

            dvp-d2d9-m1 {
                rockchip,pins = <0x03 0x04 0x02 0x7e 0x03 0x05 0x02 0x7e 0x03 0x06 0x02 0x7e 0x03 0x07 0x02 0x7e 0x03 0x08 0x02 0x7e 0x02 0x10 0x04 0x7e 0x02 0x11 0x04 0x7e 0x02 0x12 0x04 0x7e 0x03 0x01 0x02 0x7e 0x03 0x00 0x02 0x7e 0x02 0x0f 0x04 0x7e 0x03 0x02 0x02 0x7e>;
                phandle = <0x119>;
            };
        };

        clk_32k {

            clk-32k-out {
                rockchip,pins = <0x01 0x1c 0x01 0x7e>;
                phandle = <0x7d>;
            };
        };

        sdio-pwrseq {

            wifi-enable-h {
                rockchip,pins = <0x01 0x12 0x00 0x7e>;
                phandle = <0x8b>;
            };
        };

        usb {

            host-vbus-drv {
                rockchip,pins = <0x00 0x00 0x00 0x7e>;
                phandle = <0x93>;
            };

            otg-vbus-drv {
                rockchip,pins = <0x00 0x1b 0x00 0x7e>;
                phandle = <0x94>;
            };
        };

        wireless-bluetooth {

            uart0-gpios {
                rockchip,pins = <0x01 0x0a 0x00 0x7e>;
                phandle = <0x99>;
            };
        };
    };

    chosen {
        bootargs = "earlycon=uart8250,mmio32,0xff130000 swiotlb=1 kpti=0";
    };

    fiq-debugger {
        compatible = "rockchip,fiq-debugger";
        rockchip,serial-id = <0x02>;
        rockchip,signal-irq = <0x9f>;
        rockchip,wake-irq = <0x00>;
        rockchip,irq-mode-enable = <0x00>;
        rockchip,baudrate = <0x16e360>;
        interrupts = <0x00 0x7f 0x08>;
        status = "okay";
    };

    reserved-memory {
        #address-cells = <0x02>;
        #size-cells = <0x02>;
        ranges;

        drm-logo@00000000 {
            compatible = "rockchip,drm-logo";
            reg = <0x00 0x00 0x00 0x00>;
            phandle = <0x5f>;
        };

        secure-memory@20000000 {
            compatible = "rockchip,secure-memory";
            reg = <0x00 0x20000000 0x00 0x00>;
            phandle = <0x60>;
        };

        ramoops@68000000 {
            reg = <0x00 0x110000 0x00 0xf0000>;
            phandle = <0x89>;
        };

        linux,cma {
            compatible = "shared-dma-pool";
            reusable;
            size = <0x00 0x2000000>;
            linux,cma-default;
        };
    };

    ramoops {
        compatible = "ramoops";
        record-size = <0x00 0x20000>;
        console-size = <0x00 0x80000>;
        ftrace-size = <0x00 0x00>;
        pmsg-size = <0x00 0x50000>;
        memory-region = <0x89>;
    };

    sk-keypad {
        compatible = "rockchip,key";

        power-key {
            gpios = <0x8a 0x15 0x01>;
            linux,code = <0x74>;
            label = "power";
            gpio-key,wakeup;
        };
    };

    external-gmac-clock {
        compatible = "fixed-clock";
        clock-frequency = <0x7735940>;
        clock-output-names = "gmac_clkin";
        #clock-cells = <0x00>;
        phandle = <0x70>;
    };

    sdio-pwrseq {
        compatible = "mmc-pwrseq-simple";
        pinctrl-names = "default";
        pinctrl-0 = <0x8b>;
        reset-gpios = <0x6f 0x12 0x01>;
        phandle = <0x74>;
    };

    skykirin_led {
        compatible = "skykirin-ht1628";
        spi_cs = <0x8a 0x12 0x00>;
        spi_clk = <0x8a 0x13 0x00>;
        spi_data = <0x8a 0x16 0x00>;
        status = "okay";
    };

    sound {
        compatible = "simple-audio-card";
        simple-audio-card,format = "i2s";
        simple-audio-card,mclk-fs = <0x100>;
        simple-audio-card,name = "rockchip-rk3328";

        simple-audio-card,cpu {
            sound-dai = <0x8c>;
        };

        simple-audio-card,codec {
            sound-dai = <0x8d>;
        };
    };

    hdmi-sound {
        compatible = "simple-audio-card";
        simple-audio-card,format = "i2s";
        simple-audio-card,mclk-fs = <0x80>;
        simple-audio-card,name = "rockchip-hdmi";

        simple-audio-card,cpu {
            sound-dai = <0x8e>;
        };

        simple-audio-card,codec {
            sound-dai = <0x8f>;
        };
    };

    regulators {
        compatible = "simple-bus";
        #address-cells = <0x01>;
        #size-cells = <0x00>;

        regulator@0 {
            compatible = "regulator-fixed";
            regulator-name = "vccio_1v8";
            regulator-min-microvolt = <0x1b7740>;
            regulator-max-microvolt = <0x1b7740>;
            regulator-always-on;
            phandle = <0x2a>;
        };

        regulator@1 {
            compatible = "regulator-fixed";
            regulator-name = "vccio_3v3";
            regulator-min-microvolt = <0x325aa0>;
            regulator-max-microvolt = <0x325aa0>;
            regulator-always-on;
            phandle = <0x29>;
        };
    };

    rtc-fake {
        compatible = "rtc-fake";
        status = "okay";
    };

    spdif-sound {
        compatible = "simple-audio-card";
        simple-audio-card,name = "rockchip-spdif";

        simple-audio-card,cpu {
            sound-dai = <0x90>;
        };

        simple-audio-card,codec {
            sound-dai = <0x91>;
        };
    };

    spdif-out {
        compatible = "linux,spdif-dit";
        #sound-dai-cells = <0x00>;
        phandle = <0x91>;
    };

    host-vbus-regulator {
        compatible = "regulator-fixed";
        gpio = <0x92 0x00 0x00>;
        pinctrl-names = "default";
        pinctrl-0 = <0x93>;
        regulator-name = "vcc_host_vbus";
        regulator-min-microvolt = <0x4c4b40>;
        regulator-max-microvolt = <0x4c4b40>;
        enable-active-high;
        phandle = <0x65>;
    };

    otg-vbus-regulator {
        compatible = "regulator-fixed";
        gpio = <0x92 0x1b 0x00>;
        pinctrl-names = "default";
        pinctrl-0 = <0x94>;
        regulator-name = "vcc_otg_vbus";
        regulator-min-microvolt = <0x4c4b40>;
        regulator-max-microvolt = <0x4c4b40>;
        enable-active-high;
        phandle = <0x63>;
    };

    vcc-phy-regulator {
        compatible = "regulator-fixed";
        regulator-name = "vcc_phy";
        regulator-always-on;
        regulator-boot-on;
        phandle = <0x6e>;
    };

    sdmmc-regulator {
        compatible = "regulator-fixed";
        gpio = <0x92 0x1e 0x01>;
        pinctrl-names = "default";
        pinctrl-0 = <0x95>;
        regulator-name = "vcc_sd";
        regulator-min-microvolt = <0x325aa0>;
        regulator-max-microvolt = <0x325aa0>;
        vin-supply = <0x29>;
        phandle = <0x6a>;
    };

    vdd-center {
        compatible = "pwm-regulator";
        rockchip,pwm_id = <0x00>;
        rockchip,pwm_voltage = <0x1312d0>;
        pwms = <0x96 0x00 0x1388 0x01>;
        regulator-name = "vcc_arm";
        regulator-min-microvolt = <0xe7ef0>;
        regulator-max-microvolt = <0x155cc0>;
        regulator-settling-time-up-us = <0xfa>;
        regulator-always-on;
        regulator-boot-on;
        phandle = <0x04>;
    };

    vdd-log {
        compatible = "pwm-regulator";
        rockchip,pwm_id = <0x01>;
        rockchip,pwm_voltage = <0x10c8e0>;
        pwms = <0x97 0x00 0x1388 0x01>;
        regulator-name = "vcc_log";
        regulator-min-microvolt = <0xdbba0>;
        regulator-max-microvolt = <0x13d620>;
        regulator-settling-time-up-us = <0xfa>;
        regulator-always-on;
        regulator-boot-on;
        phandle = <0x48>;
    };

    xin32k {
        compatible = "fixed-clock";
        clock-frequency = <0x8000>;
        clock-output-names = "xin32k";
        #clock-cells = <0x00>;
        phandle = <0x11a>;
    };

    wireless-bluetooth {
        compatible = "bluetooth-platdata";
        clocks = <0x02 0x1e>;
        clock-names = "ext_clock";
        uart_rts_gpios = <0x6f 0x0a 0x01>;
        pinctrl-names = "default\0rts_gpio";
        pinctrl-0 = <0x98>;
        pinctrl-1 = <0x99>;
        BT,reset_gpio = <0x6f 0x15 0x00>;
        BT,wake_gpio = <0x6f 0x17 0x00>;
        BT,wake_host_irq = <0x6f 0x1a 0x00>;
        status = "okay";
    };

    wireless-wlan {
        compatible = "wlan-platdata";
        clocks = <0x02 0x1e>;
        clock-names = "ext_clock";
        rockchip,grf = <0x1c>;
        wifi_chip_type = [00];
        sdio_vref = <0x708>;
        #WIFI,poweren_gpio = <0x9a 0x08 0x00>;
        WIFI,host_wake_irq = <0x9a 0x01 0x00>;
        status = "okay";
    };

    leds {
        compatible = "gpio-leds";

        power-green {
            gpios = <0x8a 0x06 0x01>;
            linux,default-trigger = "none";
            default-state = "on";
            mode = <0x23>;
        };
    };

    __symbols__ {
        ddr_timing = "/ddr_timing";
        cpu0 = "/cpus/cpu@0";
        cpu1 = "/cpus/cpu@1";
        cpu2 = "/cpus/cpu@2";
        cpu3 = "/cpus/cpu@3";
        cpu0_opp_table = "/cpu0-opp-table";
        rockchip_suspend = "/rockchip-suspend";
        xin24m = "/xin24m";
        i2s0 = "/i2s@ff000000";
        i2s1 = "/i2s@ff010000";
        i2s2 = "/i2s@ff020000";
        spdif = "/spdif@ff030000";
        pdm = "/pdm@ff040000";
        tsp = "/tsp@ff050000";
        grf = "/syscon@ff100000";
        io_domains = "/syscon@ff100000/io-domains";
        power = "/syscon@ff100000/power-controller";
        soc_thermal = "/thermal-zones/soc-thermal";
        threshold = "/thermal-zones/soc-thermal/trips/trip-point-0";
        target = "/thermal-zones/soc-thermal/trips/trip-point-1";
        soc_crit = "/thermal-zones/soc-thermal/trips/soc-crit";
        tsadc = "/tsadc@ff250000";
        uart0 = "/serial@ff110000";
        uart1 = "/serial@ff120000";
        uart2 = "/serial@ff130000";
        pmu = "/power-management@ff140000";
        i2c0 = "/i2c@ff150000";
        i2c1 = "/i2c@ff160000";
        i2c2 = "/i2c@ff170000";
        i2c3 = "/i2c@ff180000";
        spi0 = "/spi@ff190000";
        wdt = "/watchdog@ff1a0000";
        pwm0 = "/pwm@ff1b0000";
        pwm1 = "/pwm@ff1b0010";
        pwm2 = "/pwm@ff1b0020";
        pwm3 = "/pwm@ff1b0030";
        dmac = "/amba/dmac@ff1f0000";
        efuse = "/efuse@ff260000";
        efuse_id = "/efuse@ff260000/id@7";
        cpu_leakage = "/efuse@ff260000/cpu-leakage@17";
        logic_leakage = "/efuse@ff260000/logic-leakage@19";
        efuse_cpu_version = "/efuse@ff260000/cpu-version@1a";
        saradc = "/saradc@ff280000";
        gpu = "/gpu@ff300000";
        gpu_power_model = "/gpu@ff300000/power_model";
        gpu_opp_table = "/gpu-opp-table";
        vdpu = "/vpu_service@ff350000";
        vpu_mmu = "/iommu@ff350800";
        avsd = "/avsd@ff351000";
        vpu_service = "/vpu_combo";
        rkvdec = "/rkvdec@ff36000";
        vcodec_power_model = "/rkvdec@ff36000/vcodec_power_model";
        rkvdec_opp_table = "/rkvdec-opp-table";
        rkvdec_mmu = "/iommu@ff360480";
        h265e = "/h265e@ff330000";
        h265e_mmu = "/iommu@ff330200";
        vepu = "/vepu@ff340000";
        vepu_mmu = "/iommu@ff340800";
        venc_srv = "/venc_srv";
        vop = "/vop@ff370000";
        vop_out = "/vop@ff370000/port";
        vop_out_hdmi = "/vop@ff370000/port/endpoint@0";
        vop_out_tve = "/vop@ff370000/port/endpoint@1";
        vop_mmu = "/iommu@ff373f00";
        rga = "/rga@ff3900000";
        iep = "/iep@ff3a0000";
        iep_mmu = "/iommu@ff3a0800";
        hdmi = "/hdmi@ff3c0000";
        hdmi_in = "/hdmi@ff3c0000/ports/port";
        hdmi_in_vop = "/hdmi@ff3c0000/ports/port/endpoint@0";
        tve = "/tve@ff373e00";
        tve_in = "/tve@ff373e00/ports/port";
        tve_in_vop = "/tve@ff373e00/ports/port/endpoint@0";
        display_subsystem = "/display-subsystem";
        route_hdmi = "/display-subsystem/route/route-hdmi";
        route_tve = "/display-subsystem/route/route-tve";
        codec = "/codec@ff410000";
        hdmiphy = "/hdmiphy@ff430000";
        cru = "/clock-controller@ff440000";
        usb2phy_grf = "/syscon@ff450000";
        u2phy = "/syscon@ff450000/usb2-phy@100";
        u2phy_host = "/syscon@ff450000/usb2-phy@100/host-port";
        u2phy_otg = "/syscon@ff450000/usb2-phy@100/otg-port";
        usb3phy_grf = "/syscon@ff460000";
        u3phy = "/usb3-phy@ff470000";
        u3phy_utmi = "/usb3-phy@ff470000/utmi@ff470000";
        u3phy_pipe = "/usb3-phy@ff470000/pipe@ff478000";
        sdmmc = "/dwmmc@ff500000";
        sdio = "/dwmmc@ff510000";
        emmc = "/dwmmc@ff520000";
        gmac2io = "/ethernet@ff540000";
        gmac2phy = "/ethernet@ff550000";
        usb20_otg = "/usb@ff580000";
        usb_host0_ehci = "/usb@ff5c0000";
        usb_host0_ohci = "/usb@ff5d0000";
        sdmmc_ext = "/dwmmc@ff5f0000";
        usbdrd3 = "/usb@ff600000";
        usbdrd_dwc3 = "/usb@ff600000/dwc3@ff600000";
        qos_rkvdec_r = "/qos@ff750000";
        qos_rkvdec_w = "/qos@ff750080";
        qos_vpu = "/qos@ff778000";
        dfi = "/dfi@ff790000";
        dmc = "/dmc";
        ddr_power_model = "/dmc/ddr_power_model";
        dmc_opp_table = "/dmc-opp-table";
        gic = "/interrupt-controller@ff811000";
        rockchip_system_monitor = "/rockchip-system-monitor";
        pinctrl = "/pinctrl";
        gpio0 = "/pinctrl/gpio0@ff210000";
        gpio1 = "/pinctrl/gpio1@ff220000";
        gpio2 = "/pinctrl/gpio2@ff230000";
        gpio3 = "/pinctrl/gpio3@ff240000";
        pcfg_pull_up = "/pinctrl/pcfg-pull-up";
        pcfg_pull_down = "/pinctrl/pcfg-pull-down";
        pcfg_pull_none = "/pinctrl/pcfg-pull-none";
        pcfg_pull_none_2ma = "/pinctrl/pcfg-pull-none-2ma";
        pcfg_pull_up_2ma = "/pinctrl/pcfg-pull-up-2ma";
        pcfg_pull_up_4ma = "/pinctrl/pcfg-pull-up-4ma";
        pcfg_pull_none_4ma = "/pinctrl/pcfg-pull-none-4ma";
        pcfg_pull_down_4ma = "/pinctrl/pcfg-pull-down-4ma";
        pcfg_pull_none_8ma = "/pinctrl/pcfg-pull-none-8ma";
        pcfg_pull_up_8ma = "/pinctrl/pcfg-pull-up-8ma";
        pcfg_pull_none_12ma = "/pinctrl/pcfg-pull-none-12ma";
        pcfg_pull_up_12ma = "/pinctrl/pcfg-pull-up-12ma";
        pcfg_output_high = "/pinctrl/pcfg-output-high";
        pcfg_output_low = "/pinctrl/pcfg-output-low";
        pcfg_input_high = "/pinctrl/pcfg-input-high";
        pcfg_input = "/pinctrl/pcfg-input";
        i2c0_xfer = "/pinctrl/i2c0/i2c0-xfer";
        i2c1_xfer = "/pinctrl/i2c1/i2c1-xfer";
        i2c2_xfer = "/pinctrl/i2c2/i2c2-xfer";
        i2c3_xfer = "/pinctrl/i2c3/i2c3-xfer";
        i2c3_gpio = "/pinctrl/i2c3/i2c3-gpio";
        tsp_d0 = "/pinctrl/tsp/tsp-d0";
        tsp_d1 = "/pinctrl/tsp/tsp-d1";
        tsp_d2 = "/pinctrl/tsp/tsp-d2";
        tsp_d3 = "/pinctrl/tsp/tsp-d3";
        tsp_d4 = "/pinctrl/tsp/tsp-d4";
        tsp_d5 = "/pinctrl/tsp/tsp-d5";
        tsp_d6 = "/pinctrl/tsp/tsp-d6";
        tsp_d7 = "/pinctrl/tsp/tsp-d7";
        tsp_sync = "/pinctrl/tsp/tsp-sync";
        tsp_clk = "/pinctrl/tsp/tsp-clk";
        tsp_fail = "/pinctrl/tsp/tsp-fail";
        tsp_valid = "/pinctrl/tsp/tsp-valid";
        hdmii2c_xfer = "/pinctrl/hdmi_i2c/hdmii2c-xfer";
        otp_gpio = "/pinctrl/tsadc/otp-gpio";
        otp_out = "/pinctrl/tsadc/otp-out";
        uart0_xfer = "/pinctrl/uart0/uart0-xfer";
        uart0_cts = "/pinctrl/uart0/uart0-cts";
        uart0_rts = "/pinctrl/uart0/uart0-rts";
        uart0_rts_gpio = "/pinctrl/uart0/uart0-rts-gpio";
        uart1_xfer = "/pinctrl/uart1/uart1-xfer";
        uart1_cts = "/pinctrl/uart1/uart1-cts";
        uart1_rts = "/pinctrl/uart1/uart1-rts";
        uart1_rts_gpio = "/pinctrl/uart1/uart1-rts-gpio";
        uart2m0_xfer = "/pinctrl/uart2-0/uart2m0-xfer";
        uart2m1_xfer = "/pinctrl/uart2-1/uart2m1-xfer";
        spi0m0_clk = "/pinctrl/spi0-0/spi0m0-clk";
        spi0m0_cs0 = "/pinctrl/spi0-0/spi0m0-cs0";
        spi0m0_tx = "/pinctrl/spi0-0/spi0m0-tx";
        spi0m0_rx = "/pinctrl/spi0-0/spi0m0-rx";
        spi0m0_cs1 = "/pinctrl/spi0-0/spi0m0-cs1";
        spi0m1_clk = "/pinctrl/spi0-1/spi0m1-clk";
        spi0m1_cs0 = "/pinctrl/spi0-1/spi0m1-cs0";
        spi0m1_tx = "/pinctrl/spi0-1/spi0m1-tx";
        spi0m1_rx = "/pinctrl/spi0-1/spi0m1-rx";
        spi0m1_cs1 = "/pinctrl/spi0-1/spi0m1-cs1";
        spi0m2_clk = "/pinctrl/spi0-2/spi0m2-clk";
        spi0m2_cs0 = "/pinctrl/spi0-2/spi0m2-cs0";
        spi0m2_tx = "/pinctrl/spi0-2/spi0m2-tx";
        spi0m2_rx = "/pinctrl/spi0-2/spi0m2-rx";
        pdmm0_clk = "/pinctrl/pdm-0/pdmm0-clk";
        pdmm0_fsync = "/pinctrl/pdm-0/pdmm0-fsync";
        pdmm0_sdi0 = "/pinctrl/pdm-0/pdmm0-sdi0";
        pdmm0_sdi1 = "/pinctrl/pdm-0/pdmm0-sdi1";
        pdmm0_sdi2 = "/pinctrl/pdm-0/pdmm0-sdi2";
        pdmm0_sdi3 = "/pinctrl/pdm-0/pdmm0-sdi3";
        pdmm0_sleep = "/pinctrl/pdm-0/pdmm0-sleep";
        i2s1_mclk = "/pinctrl/i2s1/i2s1-mclk";
        i2s1_sclk = "/pinctrl/i2s1/i2s1-sclk";
        i2s1_lrckrx = "/pinctrl/i2s1/i2s1-lrckrx";
        i2s1_lrcktx = "/pinctrl/i2s1/i2s1-lrcktx";
        i2s1_sdi = "/pinctrl/i2s1/i2s1-sdi";
        i2s1_sdo = "/pinctrl/i2s1/i2s1-sdo";
        i2s1_sdio1 = "/pinctrl/i2s1/i2s1-sdio1";
        i2s1_sdio2 = "/pinctrl/i2s1/i2s1-sdio2";
        i2s1_sdio3 = "/pinctrl/i2s1/i2s1-sdio3";
        i2s1_sleep = "/pinctrl/i2s1/i2s1-sleep";
        i2s2m0_mclk = "/pinctrl/i2s2-0/i2s2m0-mclk";
        i2s2m0_sclk = "/pinctrl/i2s2-0/i2s2m0-sclk";
        i2s2m0_lrckrx = "/pinctrl/i2s2-0/i2s2m0-lrckrx";
        i2s2m0_lrcktx = "/pinctrl/i2s2-0/i2s2m0-lrcktx";
        i2s2m0_sdi = "/pinctrl/i2s2-0/i2s2m0-sdi";
        i2s2m0_sdo = "/pinctrl/i2s2-0/i2s2m0-sdo";
        i2s2m0_sleep = "/pinctrl/i2s2-0/i2s2m0-sleep";
        i2s2m1_mclk = "/pinctrl/i2s2-1/i2s2m1-mclk";
        i2s2m1_sclk = "/pinctrl/i2s2-1/i2s2m1-sclk";
        i2s2m1_lrckrx = "/pinctrl/i2s2-1/i2sm1-lrckrx";
        i2s2m1_lrcktx = "/pinctrl/i2s2-1/i2s2m1-lrcktx";
        i2s2m1_sdi = "/pinctrl/i2s2-1/i2s2m1-sdi";
        i2s2m1_sdo = "/pinctrl/i2s2-1/i2s2m1-sdo";
        i2s2m1_sleep = "/pinctrl/i2s2-1/i2s2m1-sleep";
        spdifm0_tx = "/pinctrl/spdif-0/spdifm0-tx";
        spdifm1_tx = "/pinctrl/spdif-1/spdifm1-tx";
        spdifm2_tx = "/pinctrl/spdif-2/spdifm2-tx";
        sdmmc0m0_pwren = "/pinctrl/sdmmc0-0/sdmmc0m0-pwren";
        sdmmc0m0_gpio = "/pinctrl/sdmmc0-0/sdmmc0m0-gpio";
        sdmmc0m1_pwren = "/pinctrl/sdmmc0-1/sdmmc0m1-pwren";
        sdmmc0m1_gpio = "/pinctrl/sdmmc0-1/sdmmc0m1-gpio";
        sdmmc0_clk = "/pinctrl/sdmmc0/sdmmc0-clk";
        sdmmc0_cmd = "/pinctrl/sdmmc0/sdmmc0-cmd";
        sdmmc0_dectn = "/pinctrl/sdmmc0/sdmmc0-dectn";
        sdmmc0_wrprt = "/pinctrl/sdmmc0/sdmmc0-wrprt";
        sdmmc0_bus1 = "/pinctrl/sdmmc0/sdmmc0-bus1";
        sdmmc0_bus4 = "/pinctrl/sdmmc0/sdmmc0-bus4";
        sdmmc0_gpio = "/pinctrl/sdmmc0/sdmmc0-gpio";
        sdmmc0ext_clk = "/pinctrl/sdmmc0ext/sdmmc0ext-clk";
        sdmmc0ext_cmd = "/pinctrl/sdmmc0ext/sdmmc0ext-cmd";
        sdmmc0ext_wrprt = "/pinctrl/sdmmc0ext/sdmmc0ext-wrprt";
        sdmmc0ext_dectn = "/pinctrl/sdmmc0ext/sdmmc0ext-dectn";
        sdmmc0ext_bus1 = "/pinctrl/sdmmc0ext/sdmmc0ext-bus1";
        sdmmc0ext_bus4 = "/pinctrl/sdmmc0ext/sdmmc0ext-bus4";
        sdmmc0ext_gpio = "/pinctrl/sdmmc0ext/sdmmc0ext-gpio";
        sdmmc1_clk = "/pinctrl/sdmmc1/sdmmc1-clk";
        sdmmc1_cmd = "/pinctrl/sdmmc1/sdmmc1-cmd";
        sdmmc1_pwren = "/pinctrl/sdmmc1/sdmmc1-pwren";
        sdmmc1_wrprt = "/pinctrl/sdmmc1/sdmmc1-wrprt";
        sdmmc1_dectn = "/pinctrl/sdmmc1/sdmmc1-dectn";
        sdmmc1_bus1 = "/pinctrl/sdmmc1/sdmmc1-bus1";
        sdmmc1_bus4 = "/pinctrl/sdmmc1/sdmmc1-bus4";
        sdmmc1_gpio = "/pinctrl/sdmmc1/sdmmc1-gpio";
        emmc_clk = "/pinctrl/emmc/emmc-clk";
        emmc_cmd = "/pinctrl/emmc/emmc-cmd";
        emmc_pwren = "/pinctrl/emmc/emmc-pwren";
        emmc_rstnout = "/pinctrl/emmc/emmc-rstnout";
        emmc_bus1 = "/pinctrl/emmc/emmc-bus1";
        emmc_bus4 = "/pinctrl/emmc/emmc-bus4";
        emmc_bus8 = "/pinctrl/emmc/emmc-bus8";
        pwm0_pin = "/pinctrl/pwm0/pwm0-pin";
        pwm0_pin_pull_up = "/pinctrl/pwm0/pwm0-pin-pull-up";
        pwm1_pin = "/pinctrl/pwm1/pwm1-pin";
        pwm1_pin_pull_up = "/pinctrl/pwm1/pwm1-pin-pull-up";
        pwm2_pin = "/pinctrl/pwm2/pwm2-pin";
        pwmir_pin = "/pinctrl/pwmir/pwmir-pin";
        rgmiim1_pins = "/pinctrl/gmac-1/rgmiim1-pins";
        rmiim1_pins = "/pinctrl/gmac-1/rmiim1-pins";
        fephyled_speed100 = "/pinctrl/gmac2phy/fephyled-speed100";
        fephyled_speed10 = "/pinctrl/gmac2phy/fephyled-speed10";
        fephyled_duplex = "/pinctrl/gmac2phy/fephyled-duplex";
        fephyled_rxm0 = "/pinctrl/gmac2phy/fephyled-rxm0";
        fephyled_txm0 = "/pinctrl/gmac2phy/fephyled-txm0";
        fephyled_linkm0 = "/pinctrl/gmac2phy/fephyled-linkm0";
        fephyled_rxm1 = "/pinctrl/gmac2phy/fephyled-rxm1";
        fephyled_txm1 = "/pinctrl/gmac2phy/fephyled-txm1";
        fephyled_linkm1 = "/pinctrl/gmac2phy/fephyled-linkm1";
        tsadc_int = "/pinctrl/tsadc_pin/tsadc-int";
        tsadc_gpio = "/pinctrl/tsadc_pin/tsadc-gpio";
        hdmi_cec = "/pinctrl/hdmi_pin/hdmi-cec";
        hdmi_hpd = "/pinctrl/hdmi_pin/hdmi-hpd";
        dvp_d2d9_m0 = "/pinctrl/cif-0/dvp-d2d9-m0";
        dvp_d2d9_m1 = "/pinctrl/cif-1/dvp-d2d9-m1";
        clk_32k_out = "/pinctrl/clk_32k/clk-32k-out";
        wifi_enable_h = "/pinctrl/sdio-pwrseq/wifi-enable-h";
        host_vbus_drv = "/pinctrl/usb/host-vbus-drv";
        otg_vbus_drv = "/pinctrl/usb/otg-vbus-drv";
        uart0_gpios = "/pinctrl/wireless-bluetooth/uart0-gpios";
        drm_logo = "/reserved-memory/drm-logo@00000000";
        secure_memory = "/reserved-memory/secure-memory@20000000";
        ramoops_mem = "/reserved-memory/ramoops@68000000";
        gmac_clkin = "/external-gmac-clock";
        sdio_pwrseq = "/sdio-pwrseq";
        vccio_1v8_reg = "/regulators/regulator@0";
        vccio_3v3_reg = "/regulators/regulator@1";
        spdif_out = "/spdif-out";
        vcc_host_vbus = "/host-vbus-regulator";
        vcc_otg_vbus = "/otg-vbus-regulator";
        vcc_phy = "/vcc-phy-regulator";
        vcc_sd = "/sdmmc-regulator";
        vdd_arm = "/vdd-center";
        vdd_logic = "/vdd-log";
        xin32k = "/xin32k";
    };
};

 

Link to comment
Share on other sites

Hello again..
I have the working LCD display - openvfd driver and service compiled and installed.
When service is running then it is showing the current time.

I can switch on/off particular other LEDs (Wifi-Hi, Power, LAN) by commands e.g.:
 

echo eth > /sys/class/leds/openvfd/led_on
echo eth > /sys/class/leds/openvfd/led_off

 

I would like to LEDs showing the actual status - mainly LAN and WiFi (power is not very important).
I was reading some docs about the LED triggers but I don't know how to get it working.
This is some info from running system:

# ls -l /sys/class/leds/
total 0
lrwxrwxrwx 1 root root 0 Jan 24 20:14 openvfd -> ../../devices/platform/openvfd/leds/openvfd
lrwxrwxrwx 1 root root 0 Jan  1  1970 working -> ../../devices/platform/gpio-leds/leds/working

# ls -l /sys/class/leds/openvfd/
total 0
-rw-r--r-- 1 root root 4096 Jan 24 20:19 brightness
lrwxrwxrwx 1 root root    0 Jan 24 20:19 device -> ../../../openvfd
-rw-rw---- 1 root root 4096 Jan 24 20:19 led_cmd
-rw-rw---- 1 root root 4096 Jan 24 20:16 led_off
-rw-rw---- 1 root root 4096 Jan 24 20:16 led_on
-r--r--r-- 1 root root 4096 Jan 24 20:19 max_brightness
drwxr-xr-x 2 root root    0 Jan 24 20:19 power
lrwxrwxrwx 1 root root    0 Jan 24 20:19 subsystem -> ../../../../../class/leds
-rw-r--r-- 1 root root    0 Jan 24 20:19 trigger
-rw-r--r-- 1 root root 4096 Jan 24 19:59 uevent

# cat /sys/class/leds/openvfd/trigger
[none] usb-gadget usb-host kbd-scrolllock kbd-numlock kbd-capslock kbd-kanalock kbd-shiftlock kbd-altgrlock kbd-ctrllock kbd-altlock kbd-shiftllock kbd-shiftrlock kbd-ctrlllock kbd-ctrlrlock usbport mmc0 mmc2 disk-activity disk-read disk-write ide-disk mtd nand-disk heartbeat cpu cpu0 cpu1 cpu2 cpu3 activity default-on panic mmc4 rfkill-any rfkill-none bluetooth-power hci0-power rfkill0 rc-feedback rfkill1 stmmac-1:00:link stmmac-1:00:100Mbps stmmac-1:00:10Mbps


Has anyone something working?
Can someone to help me?

Thanks in advance.


 

Link to comment
Share on other sites

3 minutes ago, lucky62 said:

Hello again..
I have the working LCD display - openvfd driver and service compiled and installed.
When service is running then it is showing the current time.

  ...

Hello, could you share a few details on how you were able to display the clock? If I could get here, maybe I could help you with your problem.

This is because after compiling the driver, when I load the .ko module, it shows me:


Message from syslogd @ rk3318-box at Jan 21 21:48:32 ...   kernel: [591.624102] Internal error: Oops: 96000004 [# 1] PREEMPT SMP

Message from syslogd @ rk3318-box at Jan 21 21:48:32 ...   kernel: [591.968480] Code: 32000000 39016420 f9401a60 f9404be1 (f9406022)
Segmentation error

 

I saw that you had this error before, but then you didn't write what fixed it.

 

Link to comment
Share on other sites

 Share

×
×
  • Create New...