Jump to content

Search the Community

Showing results for 'tv'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Armbian
    • Armbian project administration
  • Community
    • Announcements
    • SBC News
    • Framework and userspace feature requests
    • Off-topic
  • Using Armbian
    • Beginners
    • Software, Applications, Userspace
    • Advanced users - Development
  • Standard support
    • Amlogic meson
    • Allwinner sunxi
    • Rockchip
    • Other families
  • Community maintained / Staging
    • TV boxes
    • Amlogic meson
    • Allwinner sunxi
    • Marvell mvebu
    • Rockchip
    • Other families
  • Support

Categories

  • Volunteering opportunities
  • Part time jobs

Categories

  • Official giveaways
  • Community giveaways
  • Raffles

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Matrix


Mastodon


IRC


Website URL


XMPP/Jabber


Skype


Github


Discord


Location


Interests

  1. Currently working on a build for this device. It boots and is about 90% functional on 6.6 and 6.7 Kernel https://github.com/sicXnull/armbian-build/tree/X96Q-TVBOX-LPDDR3 Working - Desktop - Ethernet - Wifi Not working - DTS could use some work. Right now it does not detect internal EMMC so installing to EMMC is not an option. - Likely other things i've missed. I've uploaded two images to my git. Full w/Mate Desktop Minimal/Server Feel free to compile this yourself if you don't trust my images, it's encouraged. Changes are on the X96Q-TVBOX-LPDDR3 Branch Full W/Desktop ./compile.sh build BOARD=x96q-tvbox BRANCH=current BUILD_DESKTOP=yes BUILD_MINIMAL=no EXPERT=yes KERNEL_CONFIGURE=no KERNEL_GIT=shallow RELEASE=bookworm Minimal/Server ./compile.sh build BOARD=x96q-tvbox BRANCH=current BUILD_DESKTOP=no BUILD_MINIMAL=yes EXPERT=yes KERNEL_CONFIGURE=no KERNEL_GIT=shallow RELEASE=bookworm
  2. 🏆 help to add other boards in armbian standart, you don't need to be a programmer to help the community, just need a copy of the ARM BOARD and a x86 computer to compile new versions. If you like what you see here and want to help: Donate Armbian, the like button only costs a few dollars. Armbian Needs you help! This Armbian adventure was summarized in my Public Github Repository. SD-Card unofficial images: Tutorial SD-Card Version v0.5 DEBIAN12 BETA unofficial Tutorial SD-Card Version v0.5 ARMBIAN23 BETA unofficial EMMC unofficial images: Tutorial MMC Version V0.7 DEBIAN12 BETA unofficial Tutorial MMC Version V0.7 ARMBIAN23 BETA unofficial EMMC HZDM unofficial images: Tutorial EMMC Version v0.9 ARMBIAN BETA unofficial EMMC unofficial images: Tutorial EMMC Version v1.0 ARMBIAN unofficial EMMC Hzdm Mainline Boot Custom unofficial images: Tutorial Build Your own Armbian EMMC image unofficial EMMC Raspiblitz HotnikQ unofficial images: Tutorial Build Raspiblitz on EMMC Armbian Bullseye unofficial EMMC Hzdm Mainline Boot unofficial images: Tutorial Build Your own Armbian EMMC image unofficial EMMC Mainline Boot Latest official images: Armbian EMMC image official Armbian Desktop Gnome Latest official Debian BookWorm Server Minimal Latest official H96 MAX V56 RK3566 8gb Vendor Kernel 5.1.16 Tutorial Build Your own Armbian Rockchip Kernel vendor Kernel 5.1.16 Armbian Joshua Riek Ubuntu Rockchip Images kernel 5.1 H96 MAX V56 RK3566 8gb Vendor Kernel 6.1.43 Tutorial Build Your own Armbian Rockchip Kernel vendor Kernel 6.1.43 Armbian Joshua Riek Ubuntu Rockchip Images Kernel 6.1 H96 MAX V56 RK3566 Desktop Mainline Kernel 6.6.34 Pre-Build Desktop 22.04 Armbian Test Image (PT-BR) Community Official Images: Armbian_community_25.2.0-trunk.410_H96-tvbox-3566_bookworm_current_6.12.11_minimal.img.xz Armbian_community_25.2.0-trunk.410_H96-tvbox-3566_noble_current_6.12.11_gnome_desktop.img.xz From @fevangelou Tutorial Flash on linux desktop Bleding Edge images: Armbian-unofficial_25.11.0-trunk_H96-tvbox-3566_bookworm_edge_6.16.10_gnome_desktop.xz Software description: V0.5 = @armbian The Armbian SD card image "Compiled From Armbian Project" V0.8 = @hzdm Project with Mainline Bootloader "Boot the 64gb Emmc Armbian with Mainline Rockchip" V0.9 = @hzdm Release Mainline Bootloader "Boot the 32gb and 64gb Emmc Armbian with Mainline Rockchip" V1.0 = @hotnikq The Armbian SD card inside the Android Legacy Rockchip Image "Glued Image: Android boot for Linux" V1.2 = @ning Release Device Tree and Bootloader to longterm 6.6.27 Kernel "Boot with Mainline Rockchip" V1.3 = @Hqnicolas Github PR Enable h96 Rk3566 TV-Box device for Kernel 6.8 V1.4 = @pocosparc Github PR Enable h96 Rk3566 TV-Box OpenVFD and IR controller V1.5 = @dfahren Github PR Update U-boot 2025.01 for Kernel 6.12+ @fevangelou Linux Flash Tutorial @WINEDS Build Armbian for Maxios Lan Chip Board Video drivers: https://developer.arm.com/downloads/-/mali-drivers/bifrost-kernel https://docs.mesa3d.org/download.html https://docs.mesa3d.org/drivers/panfrost.html Wifi Drivers: https://drive.google.com/file/d/1B1LmAylalETcnBEWiPiJHL0MjK5xlIV4/view?usp=sharing Front Panel Display: Tutorial Repo:https://github.com/jefflessard/tm16xx-display UEFI: https://github.com/hqnicolas/h96v56_uefi/releases/tag/v1.2.1 Or Just Live install Wifi Driver: cd /lib/firmware/brcm/ sudo wget https://github.com/LibreELEC/brcmfmac_sdio-firmware/raw/master/BCM4335A0.hcd sudo wget https://github.com/CoreELEC/brcmfmac_sdio-firmware-aml/raw/master/firmware/brcm/fw_bcm4335b0_ag.bin sudo ln -s fw_bcm4335b0_ag.bin brcmfmac4335-sdio.h96-TVbox,rk3566.bin sudo reboot now nmcli dev wifi sudo rmmod brcmfmac_wcc brcmfmac brcmutil modprobe brcmfmac Topic description: This topic aims to demonstrate the path taken to the Armibian EMMC solution. In our path we create a lot of ready-to-use ROM files, some users burn an use this images without learning with the Linux compilation process. the name of the topic is efforts but that's no effort at all, you should try compile your own images. Device Capability Test: Using Rockchip SoCs NPU. Drivers: https://github.com/rockchip-linux/rknpu2 User Guide: https://github.com/rockchip-linux/rknpu2/blob/master/doc/Rockchip_RKNPU_User_Guide_RKNN_API_V1.4.0_EN.pdf OpenCV: https://opencv.org/blog/2022/11/29/working-with-neural-processing-units-npus-using-opencv/ A discussion on Reddit: https://www.reddit.com/r/OrangePI/comments/12b3jmj/accessing_the_npu_on_the_orange_pi/ Transformers models: https://github.com/usefulsensors/useful-transformers Usage: https://www.crowdsupply.com/useful-sensors/ai-in-a-box/ Usage: https://youtu.be/pN8mKZ5wpdQ
  3. 🏆 Become a sponsor, help to add other boards in armbian standart, you don't need to be a programmer to help the community, just need a copy of the ARM BOARD and a x86 computer to compile new versions. If you like what you see here and want to help: Donate Armbian the like button only costs a few dollars. Armbian Needs you help! This Armbian adventure was summarized in my Public Github Repository. H96 MAX V56 RK3566 8gb Ram SD-Card unofficial images: Tutorial SD-Card Version v0.5 ARMBIAN BETA unofficial H96 MAX V56 RK3566 8gb EMMC Chainloader to mainline HotnikQ unofficial images: Tutorial EMMC Version V0.7 ARMBIAN BETA unofficial H96 MAX V56 RK3566 8gb EMMC Mainline Boot Hzdm unofficial images: Tutorial EMMC Version v0.8 ARMBIAN unofficial H96 MAX V56 RK3566 8gb EMMC Mainline Boot Hzdm unofficial images: Tutorial EMMC Version v0.9 ARMBIAN BETA unofficial H96 MAX V56 RK3566 8gb EMMC Chainloader to mainline HotnikQ unofficial images: Tutorial EMMC Version v1.0 ARMBIAN unofficial H96 MAX V56 RK3566 8gb EMMC Hzdm Mainline Boot Custom unofficial images: Tutorial Build Your own Armbian EMMC unofficial image H96 MAX V56 RK3566 EMMC Raspiblitz HotnikQ unofficial images: Tutorial Build Raspiblitz on EMMC Armbian Bullseye unofficial H96 MAX V56 RK3566 8gb EMMC Hzdm Mainline Boot unofficial images: Tutorial Build Your own V1.1 Armbian EMMC unofficial image H96 MAX V56 RK3566 8gb Vendor Kernel 5.1.16 Tutorial Build Your own Armbian Rockchip Kernel vendor Kernel 5.1.16 Armbian Joshua Riek Ubuntu Rockchip Images kernel 5.1 H96 MAX V56 RK3566 8gb Vendor Kernel 6.1.43 Tutorial Build Your own Armbian Rockchip Kernel vendor Kernel 6.1.43 Armbian Joshua Riek Ubuntu Rockchip Images Kernel 6.1 Tutorial Flash H96 Max on Linux Desktop Tutorial Build Your own Armbian with Maxios Lan Device Using Linux Power Shell H96 MAX V56 RK3566 8gb EMMC Ning Mainline Kernel: Armbian EMMC official image Armbian Desktop Gnome kernel The Latest official Debian BookWorm Server Kernel Minimal The Latest official Desktop Test Images: Pre-Build Desktop 22.04 Armbian Test Image (PT-BR) Community Official Images: Armbian_community_25.2.0-trunk.410_H96-tvbox-3566_bookworm_current_6.12.11_minimal.img.xz Armbian_community_25.2.0-trunk.410_H96-tvbox-3566_noble_current_6.12.11_gnome_desktop.img.xz Bleding Edge images: Armbian-unofficial_25.11.0-trunk_H96-tvbox-3566_bookworm_edge_6.16.10_gnome_desktop.tar.xz Software description: V0.5 = @armbian The Armbian SD card image "Compiled From Armbian Project" V0.8 = @hzdm Project with Mainline Bootloader "Boot the 64gb Emmc Armbian with Mainline Rockchip" V0.9 = @hzdm Release Mainline Bootloader "Boot the 32gb and 64gb Emmc Armbian with Mainline Rockchip" V1.0 = @hotnikq The Armbian SD card inside the Android Legacy Rockchip Image "Two Original Glued Images: Android boot for Linux" V1.2 = @ning Release Device Tree and Bootloader to longterm 6.6.27 Kernel "Boot with Mainline Rockchip" V1.3 = @Hqnicolas Github PR Enable h96 Rk3566 TV-Box device for Kernel 6.8 V1.4 = @pocosparc Github PR Enable OpenVFD and IR controller V1.5 = @dfahren Github PR Update U-boot 2025.01 for Kernel 6.12+ @fevangelou Linux Flash Tutorial @WINEDS Build Armbian for Maxios Lan Chip Board Video drivers: https://developer.arm.com/downloads/-/mali-drivers/bifrost-kernel https://docs.mesa3d.org/download.html https://docs.mesa3d.org/drivers/panfrost.html Wifi Driver: https://drive.google.com/file/d/1B1LmAylalETcnBEWiPiJHL0MjK5xlIV4/view?usp=sharing For Boards Newer than 2025: Follow @WINEDS method to compile Armbian with the ethernet and wifi drivers Front Panel Display: Tutorial Repo: https://github.com/jefflessard/tm16xx-display UEFI: https://github.com/hqnicolas/h96v56_uefi/releases/tag/v1.2.1 Or Just Live install Wifi Driver: cd /lib/firmware/brcm/ sudo wget https://github.com/CoreELEC/brcmfmac_sdio-firmware-aml/raw/master/firmware/brcm/fw_bcm4335b0_ag.bin sudo ln -s fw_bcm4335b0_ag.bin brcmfmac4335-sdio.h96-TVbox,rk3566.bin sudo reboot now nmcli dev wifi sudo rmmod brcmfmac_wcc brcmfmac brcmutil modprobe brcmfmac Topic description: This topic aims to demonstrate the path taken to the Armibian EMMC solution. In our path we create a lot of ready-to-use ROM files, some users burn an use this images without learning with the Linux compilation process. the name of the topic is efforts but that's no effort at all, you should try compile your own images. Device Capability Test: Using Rockchip SoCs NPU. Drivers: https://github.com/rockchip-linux/rknpu2 User Guide: https://github.com/rockchip-linux/rknpu2/blob/master/doc/Rockchip_RKNPU_User_Guide_RKNN_API_V1.4.0_EN.pdf OpenCV: https://opencv.org/blog/2022/11/29/working-with-neural-processing-units-npus-using-opencv/ A discussion on Reddit: https://www.reddit.com/r/OrangePI/comments/12b3jmj/accessing_the_npu_on_the_orange_pi/ Transformers models: https://github.com/usefulsensors/useful-transformers Usage: https://www.crowdsupply.com/useful-sensors/ai-in-a-box/ Usage: https://youtu.be/pN8mKZ5wpdQ
  4. DISCLAIMERS (PLEASE READ): Everything you can find in this thread (binaries, texts, code snippets, etc...) are provided AS-IS and are not part of official Armbian project. For this reason not people from Armbian project nor myself are responsible for misuse or loss of functionality of hardware. THIS POST explains very well the troubles with TV Boxes and why they are not suitable for everyone Please don't ask about support or assistance in other non-community forums nor in the official Armbian github repository, instead post your questions in this thread, in the TV Boxes forum section (hardware related) or in the Peer-to-peer support section (general linux/software related). Following the recent thread on LibreElec forum about an unofficial image for rk3229 devices, I would like to make public the work made by me and @fabiobassa about bringing rk322x support to armbian. The project is now in -> mainline Armbian <- development fork -> here <- This first page and the last 3 or 4 pages of the thread are enough to get up to date with recent developments. Many useful experiences are scattered through the thread, but the most important things are collected here in the first page, so please read it carefully! Mainline kernel is fully supported and will receive most support in the future. Legacy kernel 4.4 is deprecated, but is kept around only for special purposes. What works: Should boot and work flawlessy on all boards with RK3228a, RK3228b and RK3229, with either DDR2 and DDR3 memories. Mainline u-boot Proprietary OPTEE provided as Trusted Execution Environment (needed for DRAM frequency scaling) All 4 cores are working Ethernet Serial UART (configured at 115200 bps, not 1.5Mbps!) Thermals, CPU and DRAM frequency scaling OTG USB 2.0 port (also as boot device!) EHCI/OHCI USB 2.0 ports MMC subsystem (including eMMC, SD and sdio devices) Hardware video acceleration NAND is available only on legacy kernel. To fully boot from NAND, use the Multitool and its steP-nand installation (instructions are below) Various WIFI over SDIO are supported (SSV6051P, SSV6256P, ESP8089, Realtek chips, etc...), ssv6256p driver is available only on legacy kernel Full GPU acceleration U-boot boot order priority: first the sdcard, then the USB OTG port and eventually the internal eMMC; you can install u-boot (and the whole system) in the internal eMMC and u-boot will always check for images on external sdcard/USB first. Unbrick: Technically, rockchip devices cannot be bricked. If the internal flash does not contain a bootable system, they will always boot from the sdcard. If, for a reason, the bootable system on the internal flash is corrupted or is unable to boot correctly, you can always force the maskrom mode shorting the eMMC clock pin on the PCB. Here there is the procedure, but you can also google around if you get stuck on a faulty bootloader, the technique is pretty simple and requires a simple screwdriver. There are however some unfortunate cases (expecially newer boards) where shorting the eMMC clock pin is difficult or impossibile, like eMMC or eMCP BGA chips with no exposed pins. In those cases pay double attention when burning something on the internal eMMC/eMCP and always test first the image from the sdcard to be sure it works before burning anything on eMMC/eMCP. Some useful links with pins, pads or procedures for some boards: Generic procedure for boards with non-BGA eMMC MXQPRO_V71 - eMCP H20 - eMCP ZQ01 - eMCP NAND vs eMMC vs eMCP difference: RK3228 and RK3229 tv boxes comes with three different flash memory chips: eMMC, NAND and eMCP. It does not depend upon the market name of the tv box and neither the internal board; manufacturers put whatever they find cheaper when they buy the components. NAND chip is just the non-volatile memory eMMC chip contains both the non-volatile memory plus a controller. eMCP chip contains the non-volatile memory, a controller for the non-volatile memory (like eMMC), but also contains a bank of DDR SDRAM memory on the same physical chip. The difference is very important, because eMMC and eMCP are far easier to support at various levels: the controller deals with the physical characteristics of the non-volatile memory, so the software has no to deal with. NAND chips instead are harder to support, because the software is required to deal with the physical characteristics and non-standard things that depends upon the NAND manufacturer. If you have a NAND chips you're unlucky because mainline kernel currently cannot access it, but also because you need special care and instructions explained later. You can discover if you have a NAND, eMMC or eMCP chip looking on the board are reading the signature on the flash memory chip. The Multitool (see later) also can detect which chip you have onboard: the program will warn you at startup if you have a NAND chip. NAND bootloader upgrade: IMPORTANT: don't do this is you have an eMMC or eMCP; skip this paragraph if you are unsure too! For very expert people who are having issues when (re)booting images, there is the chance to upgrade the bootloader on NAND. The NAND bootloader is nothing else than a regular idbloader (see official rockchip documentation) but contains some bits to correctly access the data on your flash memory. Upgrading requires to erase the existing flash content, in the worst case will require you to follow the Unbrick procedure above or restore an older but more compatible bootloader. If you are not mentally ready to overcome possible further issues, don't do this! The detailed instructions and the binaries are available at this post Multimedia: Mainline kernel: 3D acceleration is provided by Lima driver and is already enabled. Hardware video decoding: https://forum.armbian.com/topic/19258-testing-hardware-video-decoding-rockchip-allwinner/ Deprecated legacy kernel: multimedia features, like OpenGL/OpenGL ES acceleration, hardware accelerated Kodi, ffmpeg and mpv you can take a look to this post An effective tutorial from @Hai Nguyen on how to configure a box as a hi-quality music player using an USB audio card, and controlling it via remote control is available in this post Brief explanation about kernel naming: current kernel is the mainline LTS kernel version, most maintained and tested. This is the suggested version for production devices. If you don't know what to pick, pick this. legacy kernel (version 4.4) is provided by manufacturer; it is deprecated, unmaintained and not suggested. edge kernel is the development mainline kernel version, with experimental features and drivers; usually stable but perhaps suitable for production devices. You can switch from one kernel flavour to another using armbian-config or manually via apt. Installation (via SD card): Building: You can build your own image follow the common steps to build armbian for other tv boxes devices: when you are in the moment to choose the target board, switch to CSC/TVB/EOL boards and select "rk322x-box" from the list. Download prebuilt images from the following links: Archive builds (GPG-signed) - https://imola.armbian.com/dl/rk322x-box/archive/ SUGGESTED - Nightly built from trunk each week by Armbian servers (GPG-signed) - https://github.com/armbian/community Old images provided by me (unsigned and outdated) - https://users.armbian.com/jock/rk322x/armbian/stable Archived/older images: https://armbian.hosthatch.com/archive/rk322x-box/archive/ Multitool: The Multitool is a small but powerful tool to do quick backup/restore of internal flash, but also burn images and general system rescue and maintenance via terminal or SSH. Compressed images will be uncompressed on fly. Multitool - A small but powerful image for RK322x TV Box maintenance (instructions to access via network here) Quick installation instructions on eMMC: Build or download your preferred Armbian image and a copy of the Multitool; Burn the Multitool on an SD card; once done, place the Armbian image in images folder of the SD card NTFS partition; Plug the SD card in the TV box and plug in the power cord. After some seconds the blue led starts blinking and the Multitool appears; OPTIONAL: you can do a backup of the existing firmware with "Backup flash" menu option; Choose "Burn image to flash" from the menu, then select the destination device (usually mmcblk2) and the image to burn; Wait for the process to complete, then choose "Shutdown" from main menu; Unplug the power cord and the SD card, then replug the power cord; Wait for 10 seconds, then the led should start blinking and HDMI will turn on. The first time the boot process will take a couple of minutes or more because the filesystem is going to be resized, so be patient and wait for the login prompt. On first boot you will be asked for entering a password for root user of your choice and the name and password for a regular user Run sudo rk322x-config and select your board characteristics to enable leds, wifi chips, high-speed eMMC, etc... Run sudo armbian-config to configure timezone, locales and other personal options Congratulations, Armbian is now installed and configured! Despite the procedure above is simple and reliable, I always recommend to first test that your device boots Armbian images from SD Card. Due to the really large hardware variety, there is the rare chance that the images proposed here may not boot. If a bad image is burned in eMMC, the box may not boot anymore forcing you to follow the unbrick section at the top of this post. Quick installation instructions on NAND: Build or download your preferred Armbian image and a copy of the Multitool; Burn the Multitool on an SD card; once done, place the Armbian legacy kernel image in images folder of the SD card NTFS partition; Plug the SD card in the TV box and plug in the power cord. After some seconds the blue led starts blinking and the Multitool appears; OPTIONAL: you can do a backup of the existing firmware with "Backup flash" menu option; Choose "Burn Armbian image via steP-nand" from the menu, then select the destination device (usually rknand0) and the image to burn; Wait for the process to complete, then choose "Shutdown" from main menu; Unplug the power cord and the SD card, then replug the power cord; Wait for 10 seconds, then the led should start blinking and HDMI will turn on. The first time the boot process will take a couple of minutes or more because the filesystem is going to be resized, so be patient and wait for the login prompt. On first boot you will be asked for entering a password for root user of your choice and the name and password for a regular user Run sudo rk322x-config and select your board characteristics to enable leds, wifi chips, etc... Run armbian-config to configure timezone, locales and other personal options Congratulations, Armbian is now installed! Alternative: you can install the bootloader in NAND and let it boot from SD Card or USB: Download a copy of the Multitool and burn it on an SD card; Plug the SD card in the TV box and plug in the power cord. After some seconds the blue led starts blinking and the Multitool appears; RECOMMENDED: make a backup of the existing firmware with "Backup flash" menu option; Choose "Install Jump Start for Armbian" menu option: the Jump Start uses the internal NAND to boot from external SD Card or external USB Stick; Follow the general instructions to boot from SD Card below, skip the first erase eMMC step. Quick installation instructions to boot from SD Card: If you are already running Armbian from eMMC, skip to the next step. Instead if you are running the original firmware you need to first erase the internal eMMC; to do so download the Multitool, burn it on an SD Card, plug the SD Card and power the TV Box. Use "Backup flash" if you want to do a backup of the existing firmware, then choose "Erase flash" menu option. Build or download your preferred Armbian image; Uncompress and burn the Armbian image on the SD Card; Plug the SD Card in the TV Box and power it on; Wait for 10 seconds, then the led should start blinking and HDMI will turn on. The first time the boot process will take a couple of minutes or more because the filesystem is going to be resized, so be patient and wait for the login prompt; On first boot you will be asked for entering a password for root user of your choice and the name and password for a regular user Run sudo rk322x-config and select your board characteristics to enable leds, wifi chips, high-speed eMMC or NAND, etc... Run armbian-config to configure timezone, locales and other personal options, or also to transfer the SD Card installation to internal eMMC; Congratulations, Armbian is running from SD Card! A note about boot device order: With Armbian also comes mainline U-boot. If you install Armbian or just the bootloader in the eMMC or the Jump Start on internal NAND, the bootloader will look for valid bootable images in this order: External SD Card External USB Stick in OTG Port Internal eMMC Installation (without SD card, board with eMMC) If you have no sd card slot and your board has an eMMC, you can burn the armbian image directly on the internal eMMC using rkdeveloptool and a male-to-male USB cable: Download your preferred Armbian image from Armbian download page and decompress it. Download the rk322x bootloader: rk322x_loader_v1.10.238_256.bin Download a copy of rkdeveloptool: a compiled binary is available in the official rockchip-linux rkbin github repository. Unplug the power cord from the tv box Plug an end of an USB Male-to-male cable into the OTG port (normally it is the lone USB port on the same side of the Ethernet, HDMI, analog AV connectors) while pressing the reset microbutton with a toothpick. You can find the reset microbutton in a hole in the back of the box, but sometimes it is hidden into the AV analog jack Plug the other end of the USB Male-to-male cable into an USB port of your computer If everything went well, run lsusb: you should see a device with ID 2207:320b Run sudo rkdeveloptool rd 3 (if this fails don't worry and proceed to next step) Run sudo rkdeveloptool db rk322x_loader_v1.10.238_256.bin Run sudo rkdeveloptool wl 0x0 image.img (change image.img this with the real Armbian image filename) Unplug the power cord Done! Installation (without SD card, board with NAND) If you are in the unfortunate case you can't use an SD card for installation and your board has a NAND chip, you still have an option to use the quick Multitool installation steps via USB. Obtain a copy of rkdeveloptool: a compiled binary is available in the official rockchip-linux rkbin github repository. Unplug the power cord from the tv box Plug an end of an USB Male-to-male cable into the OTG port (normally it is the lone USB port on the same side of the Ethernet, HDMI, analog AV connectors) while pressing the reset microbutton with a toothpick. You can find the reset microbutton in a hole in the back of the box, but sometimes it is hidden into the AV analog jack Plug the other end of the USB Male-to-male cable into an USB port of your computer If everyting went well, using lsusb you should see a device with ID 2207:320b Run sudo rkdeveloptool wl 0x4000 u-boot-main.img (download u-boot-main.img.xz , don't forget to decompress it!) Unplug the power cord Now you can follow the instructions on how to install on eMMC/NAND via SD card, just use instead an USB stick to do all the operations and plug it into the USB OTG port. Once you reboot, USB OTG port will be used as a boot device. NOTE: NAND users without SD slot may be unhappy to know that it will be difficult to do extra maintenance with Multitool in case something breaks in the installed Armbian system: installing u-boot-main.img makes the installed system unbootable because it is missing the NAND driver. Alternative backup, restore and erase flash for EXPERTS: These backup, restore and erase flash procedures are for experts only. They are kept here mostly for reference, since the Multitool is perfectly able to do same from a very comfy interface and is the suggested way to do maintenance. Backup: Obtain a copy of rkdeveloptool: a compiled binary is available in the official rockchip-linux rkbin github repository. If you prefer, you can compile it yourself from the sources available at official rockchip repository Unplug the power cord from the tv box Plug an end of an USB Male-to-male cable into the OTG port (normally it is the lone USB port on the same side of the Ethernet, HDMI, analog AV connectors) while pressing the reset microbutton with a toothpick. You can find the reset microbutton in a hole in the back of the box, but sometimes it is hidden into the AV analog jack Plug the other end of the USB Male-to-male cable into an USB port of your computer If everyting went well, using lsusb you should see a device with ID 2207:320b change directory and move into rkbin/tools directory, run ./rkdeveloptool rfi then take note of the FLASH SIZE megabytes (my eMMC is 8Gb, rkdeveloptool reports 7393 megabytes) run ./rkdeveloptool rl 0x0 $((FLASH_SIZE * 2048)) backup.data (change FLASH_SIZE with the value you obtained the step before) once done, the internal eMMC is backed up to backup.data file Restore: first we have to restore the original bootloader, then restore the original firmware. Running rkdeveloptool with these switches will accomplish both the jobs: ./rkdeveloptool db rk322x_loader_v1.10.238_256.bin Downloading bootloader succeeded. ./rkdeveloptool ul rk322x_loader_v1.10.238_256.bin Upgrading loader succeeded. ./rkdeveloptool wl 0x0 backup.data Write LBA from file (100%) Download here: Erase the flash memory: clearing the internal eMMC/NAND memory makes the SoC look for external SD Card as first boot option. If there isn't any suitable SD Card, the SoC enters maskrom mode, which can then be used for full eMMC/NAND access using rkdeveloptool. This is perfectly fine if your box has an eMMC flash memory. NOTE: In case you have a NAND flash memory this option is however discouraged. The original bootloader contains some special parameters to correctly access the data. Clearing the flash memory will probably garbage the NAND data and restoring the bootloader may require some special instructions. Obtain a copy of rkdeveloptool: a compiled binary is available in the official rockchip-linux rkbin github repository. If you prefer, you can compile it yourself from the sources available at official rockchip repository Unplug the power cord from the board Plug an end of an USB Male-to-male cable into the OTG port (normally it is the lone USB port on the same side of the Ethernet, HDMI, analog AV connectors) while pressing the reset microbutton with a toothpick. You can find the reset microbutton in a hole in the back of the box, but sometimes it is hidden into the AV analog jack Plug the other end of the USB Male-to-male cable into an USB port of your computer If everyting went well, using lsusb you should see a device with ID 2207:320b run ./rkdeveloptool ef and wait a few seconds once done, the internal eMMC is erased and the device will boot from the sdcard from now on Partecipation and debugging: If you want to partecipate or need help debugging issues, do not hesitate to share your experience with the installation procedure of the boxes. In case of issues and missed support, provide as many as possible of these things is very useful to try and bring support for an unsupported board: some photos of both sides of the board. Details of the eMMC, DDR and Wifi chips are very useful! upload the device tree binary (dtb) of your device. We can understand a lot of things of the hardware from that small piece of data; and alternative is a link to the original firmware (you can do a full backup with the Multitool); dmesg and other logs (use armbianmonitor -u that automatically collects and uploads the logs online) attach a serial converter to the device and provide the output of the serial port; Critics, suggestions and contributions are welcome! Credits: @fabiobassa for his ideas, inspiration, great generosity in giving the boards for development and testing. The project of bringing rk322x into armbian would not have begun without his support! Justin Swartz, for his work and research to bring mainline linux on rk3229 (repository here) @knaerzche for his great contribution to libreelec support and mainline patches @Alex83 for his patience in testing the NAND bootloader upgrade procedure on his board @Jason Duhamell for his generous donation that allowed researching eMCP boards and esp8089 wifi chip
  5. So I bought this chinise Android TV Box and would love to install armbian on it. I am new on this and discovered armbian just after buying it. I didn't know there was no support and not official open source for the Rockchip RK3528, otherwise I would have chosen any other. The box works fine but it has that known malware that send packets to suspicious links (I scanned activity with pi-hole). Description says it has 2GB RAM and 16GB storage (Hynix H26M51002KPR) WiFi chip is LGX8800D I attach images of the board and all of it's componentes, including IR sensor and display. It also has a red LED that turns on when in stand-by mode. I hope this help to develop or patch a working version of armbian for it. I have already read about some patches around that would probably work, but I' new to this and I'm not sure how to start. What I would like to do first is a completly ROM backup, and start doing test with a pendrive or SD card, not writting directly to the eMMC (if possible) until the important things get working. And any help would be appreciated. Edit: I will keep posting in this thread with my progress (or attemps!)
  6. These instructions are for Amlogic CPUs for TV Boxes. Note: If you have previously run other distributions on the box such as coreelec the below installation will not work. You will need to restore the original android firmware before attempting the install. coreelec changes the boot environment in ways that are incompatible with these Armbian builds. Download links: Weekly Community Rolling Builds: https://www.armbian.com/amlogic-s9xx-tv-box/ or build your own image using the Armbian build framework Once you download your chosen build, you need to burn the image to an SD card. Generally balenaEtcher is recommended as it does a verification of the burn. Also be sure to use high quality SD cards. Once you have the SD card with your chosen build, then you need to edit the boot configuration file on the SD card. In the BOOT partition of the SD card there will be a file /boot/extlinux/extlinux.conf, that you need to edit. There will also be a extlinux.conf.template file to use as a reference. You will need to add a line into the extlinux.conf file for the Device Tree (dtb) file you will be using for your box. Place this line before the APPEND line as shown in the .template file. Basically you need to have the correct dtb for your box. You may need to attempt to use different dtb files until you find the one that works the best for your box's hardware (there are a bunch of dtb files in /boot/dtb/amlogic/... to try depending on your cpu architecture and hardware). It is unlikely that there will be a matching dtb file for your TV box. The idea is to find the one that works best for your box. This may mean that you try booting with different dtb files until you fine one that works good enough for your needs. By searching the forums you will find information about what dtbs other users have found work best for different boxes. Because you are booting from an SD card, you can easily try different dtb files. The dtd files are named by cpu family. So for example dtb files for the s905x2 cpu are named meson-g12a-*. Below there is a table that shows the identifiers for each familiy (g12a for s905x2 in this case). Next you need to copy the correct uboot for your box. This is needed for how these builds boot on amlogic boxes. There are four different u-boot files located in the /boot directory: u-boot-s905, u-boot-s905x-s912, u-boot-s905x2-s922, u-boot-s905x3 You need to copy (note copy not move) the u-boot file that matches your cpu to a new file named u-boot.ext in the /boot directory So for example with a TX3 mini box that has an s905w cpu you would copy u-boot-s905x-s912 to u-boot.ext: cp u-boot-s905x-s912 u-boot.ext (See table below for more details on which u-boot to use for which cpu) Once you have your SD card prepared you need to enable multiboot on the box. There are different ways documented to do this, but the most common is the "toothpick" method. The "toothpick" method means to hold the reset button while applying power to the box. The reset button is often hidden and located at the back of the audio/video jack connector. By pressing that button with a toothpick or other such pointed device you can enable multiboot. What you need to do is have the box unplugged, have your prepared sd card inserted, then press and hold the button while inserting the power connector. Then after a bit of time you can release the button. (I don't know exactly how long you need to hold the button after power is applied, but if it doesn't work the first time try again holding for longer or shorter times). You should now be booting into armbian/linux. Note that the first boot takes longer as it is enlarging the root filesystem to utilize the entire SD card. After you are satisfied that your box is working correctly for your needs you can optionally copy the installation from the SD card to internal emmc storage (assuming your box has emmc). (Note: Installing to emmc has some risks of bricking your box. Don't do this unless you feel you understand how to reinstall your box's android firmware) You install armbian to emmc by running the shell script in the /root directory: install-aml.sh. Note: It is not possible to install into emmc on boxes with the s905 cpu (s905x, s905w, s905x2, etc however should all be supported). It is recommended that you make a backup of emmc first. Also be prepared if anything goes horribly wrong with your emmc install to reinstall the android firmware using the Amlogic USB Burning Tool to unbrick your device. If you have or can find an original android firmware on the internet and you can generally (but not always) recover a bricked box using the Amlogic tool and the original firmware file. Mapping from CPU to uboot and dtb: u-boot-s905 s905 - gxbb u-boot-s905x2-s912 S905X - gxl S905W - gxl S905D - gxl S905L - gxl S805X - gxl S912 - gxm A311D - gxm u-boot-s905x2-s922 S905X2 - g12a S922 - g12b u-boot-s905x3 S905X3 - sm1 Not supported or not tested S805 - S905W2 - S905X4 - S805X2 - s4 A113D - axg A113X - axg Note: Followup posts in this thread should be limited to comments to improve or better understand these instructions. Other issues should be posted as new questions in the Amlogic CPU Boxes sub-forum.
  7. Is it possible to switch the operation to the OpenWRT system OR Linux OR DTB Q17 android tv box = Tanix TX11 android tv box = Q1 android tv box .... Works but ≠ X96Q android tv box AND ≠ Tanix TX1 android tv box .... It doesn't work current system firmware: Android 14 specs: - ARM Cortex-A53 - 32 bit - Mali-G31 - Allwinner H313 - arm,sun50iw9p1 4 GB RAM DDR3 32 GB HDD model = "sun50iw9"; compatible = "arm,sun50iw9p1";
  8. Hello, sorry for my very bad english. I recently I bought a TV box with an h618 processor And I want to install Linux to make it a server but I only find images for the h616 processor, can I install one of these images on my TV box? It seems that the h616 processor and the h618 procesador are almost the same Thanks :D
  9. Stock rom of this tv stick is so bad that it lags even with just watching youtube and it wrote it can play 4k. So I need armbian/any other linux distro for this tv stick.
  10. ­DISCLAIMER (PLEASE READ): everything you can find in this thread (binaries, texts, code snippets, etc...) are provided AS-IS and are not part of official Armbian project. For this reason not people from Armbian project nor myself are responsible for misuse or loss of functionality of hardware. Please don't ask about support or assistance in other non-community forums nor in the official Armbian github repository, instead post your questions in this thread, in the TV Boxes forum section (hardware related) or in the Peer-to-peer support section (general linux/software related). Thank you! This thread is to give stable and mature long-term range support to rk3318/rk3328 found in many tv boxes in Armbian project as Community Supported Configuration (CSC). The current work is mainlined into Armbian project, but your mileage may vary; most recent developments live on my personal fork on github -> here <- Important notes: is just a personal opinion, but apparently widely supported, that rk3318 chip is not an official rockchip part. They probably are scrap rk3328 parts which have not passed conformance tests but are sold anyway to tv boxes manufacturers. They don’t reach the same operating frequency of the rk3328, have much higher leakage currents (and thus higher temperatures) and often the boards they are installed on are low quality with low quality components, in fact a very very common issue is the eMMC failure due to bad parts and bad soldering. So said, I personally suggest not to buy any rk3318 tv box, but instead find a properly supported SBC (Single Board Computer) if you need a reliable product. In the unfortunate case you already have such product, this thread may help you have some fun with them. What works: • Works on RK3318 and RK3328 TV boxes with DDR3 memories • Mainline u-boot • Mainline ATF provided as Trusted Execution Environment • All 4 cores are working • Ethernet • Serial UART (configured at stock 1.5Mbps) • Thermals and frequency scaling • OTG USB 2.0 port (also as boot device!) • EHCI/OHCI USB 2.0 ports and XHCI USB 3.0 ports • MMC subsystem (including , SD and sdio devices) • Hardware video acceleration (fully supported via RKMPP on legacy kernel, support via hantro and rkvdec kernel driver on mainline) • Various WIFI over SDIO are supported • Full acceleration on legacy kernel and mainline kernel • U-boot boot order priority: first the sdcard, then the USB OTG port and eventually the internal ; you can install u-boot (and the whole system) in the internal and u-boot will always check for images on external sdcard/USB first. Unbrick: Technically, rockchip devices cannot be bricked. If the internal flash does not contain a bootable system, they will always boot from the sdcard. If, for a reason, the bootable system on the internal flash is corrupted or is unable to boot correctly, you can always force the maskrom mode shorting the clock pin on the PCB. The procedure is explained here for rk322x, but for rk3318/28 is the same. In most of the rk3318/28 boards, shorting the clock pin is difficult or impossible because eMMC are BGA chips with no exposed pins. Pay double attention when burning something on the internal flash memory and always test first the image booting from the sdcard to be sure it works before burning anything in internal flash. This is a list of posts where forum users have been able to spot the eMMC clock pin to trigger the maskrom mode: H96 Max+ (board signature: RK3318_V1.4) by @Gausus X88 PRO 10 (board signature: X88_PRO_B) by @mathgaming HK1 Max (board signature YX_RK3318) by @Constantin Gatej Ninkbox N1 Max RK3318 by @enigmasphinx Hongtop H50 (board signature t98-3318-221-v11) by @GmP Partecipation and debugging: If you want to partecipate or need help debugging issues, do not hesitate to share your experience with the installation procedure of the boxes. In case of issues and missed support, provide as many as possible of these things is very useful to try and bring support for an unsupported board: some photos of both sides of the board. Details of the eMMC, DDR and Wifi chips are very useful! upload the device tree binary (dtb) of your device. We can understand a lot of things of the hardware from that small piece of data; and alternative is a link to the original firmware (you can do a full backup with the Multitool); dmesg and other logs (use armbianmonitor -u that automatically collects and uploads the logs online) attach a serial converter to the device and provide the output of the serial port; Multimedia: Mainline kernel: 3D acceleration is provided by Lima driver and is already enabled. Hardware video decoding: https://forum.armbian.com/topic/19258-testing-hardware-video-decoding-rockchip-allwinner/ Legacy kernel: If you need multimedia features, like OpenGL/OpenGL ES acceleration, hardware accelerated Kodi, ffmpeg and mpv you can take a look to this post Installation (via SD card): Building: You can build your own image follow the common steps to build armbian for other tv boxes devices: when you are in the moment to choose the target board, switch to /TVB/ boards and select "rk3318-box" from the list. Prebuilt images: Nightly stables - built from trunk by Armbian servers and GPG-signed: https://github.com/armbian/community Multitool: Multitool - A small but powerful image for RK3318/RK3328 TV Box maintenance. Download it from here Quick installation instructions on eMMC: Build or download your preferred Armbian image and a copy of the Multitool; Burn the Multitool on an SD card; once done, place the Armbian image in images folder of the SD card NTFS partition; Plug the SD card in the TV box and plug in the power cord. After some seconds the blue led starts blinking and the Multitool appears; OPTIONAL: you can do a backup of the existing firmware with "Backup flash" menu option; Choose "Burn image to flash" from the menu, then select the destination device (usually mmcblk2) and the image to burn; Wait for the process to complete, then choose "Shutdown" from main menu; Unplug the power cord and the SD card, then replug the power cord; Wait for 10 seconds, then the led should start blinking and HDMI will turn on. The first time the boot process will take a couple of minutes or more because the filesystem is going to be resized, so be patient and wait for the login prompt. On first boot you will be asked for entering a password for root user of your choice and the name and password for a regular user Run rk3318-config to configure the board specific options Run armbian-config to configure timezone, locales and other personal options Congratulations, Armbian is now installed! Despite the procedure above is simple and reliable, I always recommend to first test that your device boots Armbian images from SD Card. Due to the really large hardware variety, there is the rare chance that the images proposed here may not boot. If a bad image is burned in , the box may not boot anymore forcing you to follow the unbrick section at the top of this post. Quick installation instructions to boot from SD Card: If you are already running Armbian from eMMC, skip to the next step. Instead if you are running the original firmware you need to first erase the internal flash; to do so download the Multitool, burn it on an SD Card, plug the SD Card and power the TV Box. Use "Backup flash" if you want to do a backup of the existing firmware, then choose "Erase flash" menu option. Build or download your preferred Armbian image; Uncompress and burn the Armbian image on the SD Card; Plug the SD Card in the TV Box and power it on; Wait for 10 seconds, then the led should start blinking and HDMI will turn on. The first time the boot process will take a couple of minutes or more because the filesystem is going to be resized, so be patient and wait for the login prompt; On first boot you will be asked for entering a password for root user of your choice and the name and password for a regular user Run rk3318-config to configure the board specific options Run armbian-config to configure timezone, locales and other personal options, or also to transfer the SD Card installation to internal ; Congratulations, Armbian is running from SD Card! Tutorial - How to install Armbian on your TV Box (by @awawa) : https://www.hyperhdr.eu/2022/01/tv-box-mania-i-part-x88-pro-10.html A note about boot device order: With Armbian also comes mainline U-boot. If you install Armbian, the bootloader will look for valid bootable images in this order: External SD Card External USB Stick in OTG Port Internal The Multitool does not boot / How to burn image directly on eMMC: Some boards have the sdcard attached to an auxiliary (called also sdmmc_ext or external) controller which is not the common one. Forum findings declare that those boards are not able to boot from sdcard with stock firmware and they neither do in maskrom mode: the stock firmware always boots even if you put the multitool on sdcard. In such case, burning images directly on eMMC is the only way to have a working Armbian installation. You can follow these instructions by @fabiobassa to burn images directly on eMMC: https://forum.armbian.com/topic/17597-csc-armbian-for-rk3318rk3328-tv-box-boards/?do=findComment&comment=130453 Notes and special hardware: Script to change DDR memory frequency here Wireless chip AP2734, SP2734, HY2734C and similars: they are clones of AmPAK AP6334 which is combo wifi + bluetooth of broadcom BCM4334/B0 chips. You may need a special nvram file, instructions by @paradigman are here Critics, suggestions and contributions are welcome! Credits: @fabiobassa for his ideas, inspiration, great generosity in giving the boards for development and testing. The project of bringing rk3318 into armbian would not have begun without his support! @hexdump for his precious support in early testing, ideas and suggestions @MX10.AC2Nfor his patience in testing mxq-rk3328-d4 board support All the rockhip64 maintainers at Armbian project who have done and do most of the work to support the platform
  11. I installed ambian in this tv box to run klipper for my 3d printer, but its been a years since I last used it and I totally forgot what was the user I created. I really didn't want to wipe the SD card because of my 3d printer's config files etc. Is there anything I can do to retrieve the user and password? Thanks.
  12. I use a X88pro13 TV box. i got a log messige by changeing the file config/bootscripts/boot-rk35xx.cmd: line 15: setenv earlycon "on" line 29,30: if test "${console}" = "serial" || test "${console}" = "both"; then setenv consoleargs "console=ttyS0,1500000 ${consoleargs}"; fi if test "${earlycon}" = "on"; then setenv consoleargs "earlyprintk earlycon=snps,dw-apb-uart,ff9f0000 loglevel=7 ${consoleargs}"; fi for bumping to kernel 6.19 I add a additional edge case in config/sources/families/rk35xx.conf: case $BRANCH in ... ... edge) BOOTDIR='u-boot-rockchip64' declare -g KERNEL_MAJOR_MINOR="6.19" declare -g LINUXFAMILY=rk35xx KERNELPATCHDIR='rk35xx-edge-6.19' KERNELBRANCH='branch:v6.19-rc1' SERIALCON="ttyS0" ;; esac Bumping to kernel to 6.19-rc1 I got following: ## Loading init Ramdisk from Legacy Image at 0a200000 ... Image Name: uInitrd Image Type: AArch64 Linux RAMDisk Image (gzip compressed) Data Size: 26299482 Bytes = 25.1 MiB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK ## Flattened Device Tree blob at 0x08300000 Booting using the fdt blob at 0x08300000 reserving fdt memory region: addr=8300000 size=74000 Using Device Tree in place at 0000000008300000, end 0000000008376fff [Vendor ERROR]:Invalid boot device type(0) ## reserved-memory: shmem@10f000: addr=10f000 size=100 ramoops@110000: addr=110000 size=e0000 Adding bank: 0x00200000 - 0xfc000000 (size: 0xfbe00000) Total: 201703.160/201977.24 ms Starting kernel ... [ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034] [ 0.000000] Linux version 6.19.0-rc1-edge-rk35xx (build@armbian) (aarch64-linux-gnu-gcc (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0, GNU ld (GNU Binutils for Ubuntu) 2.42) #2 SMP PREEMPT Sun Dec 14 04:05:07 UTC 2025 [ 0.000000] KASLR disabled due to lack of seed [ 0.000000] Machine model: Hungsun X88 TV box [ 0.000000] earlycon: uart8250 at MMIO32 0x00000000ff9f0000 (options '') [ 0.000000] printk: legacy bootconsole [uart8250] enabled [ 0.000000] efi: UEFI not found. [ 0.000000] OF: reserved mem: Reserved memory: failed to reserve memory for node 'drm-logo@0': base 0x0000000000000000, size 0 MiB [ 0.000000] OF: reserved mem: Reserved memory: failed to reserve memory for node 'drm-cubic-lut@0': base 0x0000000000000000, size 0 MiB [ 0.000000] OF: reserved mem: 0x000000000010f000..0x000000000010f0ff (0KiB) nomap non-reusable shmem@10f000 [ 0.000000] OF: reserved mem: 0x0000000000110000..0x00000000001effff (896 KiB) map non-reusable ramoops@110000 [ 0.000000] NUMA: Faking a node at [mem 0x0000000000200000-0x00000000fbffffff] [ 0.000000] NODE_DATA(0) allocated [mem 0xfb7d5980-0xfb7d813f] [ 0.000000] Zone ranges: [ 0.000000] DMA [mem 0x0000000000200000-0x00000000fbffffff] [ 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-0x00000000fbffffff] [ 0.000000] Initmem setup node 0 [mem 0x0000000000200000-0x00000000fbffffff] [ 0.000000] On node 0, zone DMA: 512 pages in unavailable ranges [ 0.000000] On node 0, zone DMA: 16384 pages in unavailable ranges [ 0.000000] cma: Reserved 128 MiB at 0x00000000ef600000 [ 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 34 pages/cpu s101016 r8192 d30056 u139264 [ 0.000000] Detected VIPT I-cache on CPU0 [ 0.000000] CPU features: detected: ARM erratum 845719 [ 0.000000] alternatives: applying boot alternatives [ 0.000000] Kernel command line: root=/dev/mmcblk0p1 rootwait rootfstype=ext4 console=ttyFIQ0 earlyprintk earlycon=uart8250,mmio32,0xff9f0000 loglevel=7 consoleblank=0 androidboot.fwver=bl31-v1.17,uboot-rmbian-201-12/17/2025 [ 0.000000] Unknown kernel command line parameters "earlyprintk", willbe passed to user space. [ 0.000000] printk: log buffer data + meta data: 262144 + 917504 = 1179648 bytes [ 0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304bytes, linear) [ 0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes, linear) [ 0.000000] software IO TLB: SWIOTLB bounce buffer size adjusted to 3MB [ 0.000000] software IO TLB: area num 4. [ 0.000000] software IO TLB: mapped [mem 0x00000000eec00000-0x00000000e f000000] (4MB) [ 0.000000] Fallback order for Node 0: 0 [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 1031680 [ 0.000000] Policy zone: DMA [ 0.000000] mem auto-init: stack:all(zero), heap alloc:on, heap free:off [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1 [ 0.000000] ftrace: allocating 59497 entries in 234 pages [ 0.000000] ftrace: allocated 234 pages with 5 groups [ 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] RCU Tasks: Setting shift to 2 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=4. [ 0.000000] RCU Tasks Rude: Setting shift to 2 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=4. [ 0.000000] RCU Tasks Trace: Setting shift to 2 and lim to 1 rcu_task_cb_adjust=1 rcu_task_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] rcu: srcu_init: Setting srcu_struct sizes based on contenti on. [ 0.00000 [ 0.046619] DMA: preallocated 512 KiB GFP_KERNEL pool for atomic allocations [ 0.047742] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations [ 0.049191] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations [ 0.049978] audit: initializing netlink subsys (disabled) [ 0.050726] audit: type=2000 audit(0.048:1): state=initialized audit_enabled=0 res=1 [ 0.052262] thermal_sys: Registered thermal governor 'fair_share' [ 0.052275] thermal_sys: Registered thermal governor 'bang_bang' [ 0.052833] thermal_sys: Registered thermal governor 'step_wise' [ 0.053379] thermal_sys: Registered thermal governor 'user_space' [ 0.053986] cpuidle: using governor menu [ 0.055119] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers. [ 0.055835] ASID allocator initialised with 65536 entries [ 0.056589] Serial: AMBA PL011 UART driver [ 0.062489] /vop@ff840000: Fixed dependency cycle(s) with /hdmi@ff8d0000 [ 0.063177] /hdmi@ff8d0000: Fixed dependency cycle(s) with /vop@ff840000 [ 0.071348] /soc/interrupt-controller@fed01000: Fixed dependency cycle(s) with /soc/interrupt-controller@fed01000 [ 0.078511] rockchip-pm-domain ff600000.power-management:power-controller: power-domain: failed to get clk at index 0: -517 [ 0.079540] rockchip-pm-domain ff600000.power-management:power-controller: failed to handle node power-domain: -517 [ 0.088535] HugeTLB: registered 1.00 GiB page size, pre-allocated 0 pages [ 0.089226] HugeTLB: 0 KiB vmemmap can be freed for a 1.00 GiB page [ 0.089799] HugeTLB: registered 32.0 MiB page size, pre-allocated 0 pages [ 0.090416] HugeTLB: 0 KiB vmemmap can be freed for a 32.0 MiB page [ 0.090988] HugeTLB: registered 2.00 MiB page size, pre-allocated 0 pages [ 0.091604] HugeTLB: 0 KiB vmemmap can be freed for a 2.00 MiB page [ 0.092175] HugeTLB: registered 64.0 KiB page size, pre-allocated 0 pages [ 0.092793] HugeTLB: 0 KiB vmemmap can be freed for a 64.0 KiB page [ 0.161513] raid6: neonx8 gen() 2502 MB/s [ 0.229617] raid6: neonx4 gen() 2461 MB/s [ 0.297733] raid6: neonx2 gen() 2364 MB/s [ 0.365826] raid6: neonx1 gen() 2018 MB/s [ 0.433922] raid6: int64x8 gen() 1609 MB/s [ 0.502020] raid6: int64x4 gen() 1783 MB/s [ 0.570112] raid6: int64x2 gen() 1595 MB/s [ 0.638202] raid6: int64x1 gen() 1182 MB/s [ 0.638592] raid6: using algorithm neonx8 gen() 2502 MB/s [ 0.706279] raid6: .... xor() 1852 MB/s, rmw enabled [ 0.706733] raid6: using neon recovery algorithm [ 0.708358] iommu: Default domain type: Translated [ 0.708816] iommu: DMA domain TLB invalidation policy: strict mode [ 0.709929] SCSI subsystem initialized [ 0.710804] usbcore: registered new interface driver usbfs [ 0.711337] usbcore: registered new interface driver hub [ 0.711861] usbcore: registered new device driver usb [ 0.712860] pps_core: LinuxPPS API ver. 1 registered [ 0.713318] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it> [ 0.714157] PTP clock support registered [ 0.714577] EDAC MC: Ver: 3.0.0 [ 0.715269] scmi_core: SCMI protocol bus registered [ 0.716129] Advanced Linux Sound Architecture Driver Initialized. [ 0.717504] NetLabel: Initializing [ 0.717824] NetLabel: domain hash size = 128 [ 0.718220] NetLabel: protocols = UNLABELED CIPSOv4 CALIPSO [ 0.718836] NetLabel: unlabeled traffic allowed by default [ 0.719615] vgaarb: loaded [ 0.720328] clocksource: Switched to clocksource arch_sys_counter [ 0.724134] VFS: Disk quotas dquot_6.6.0 [ 0.724565] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes) [ 0.725999] AppArmor: AppArmor Filesystem Enabled [ 0.733475] NET: Registered PF_INET protocol family [ 0.734167] IP idents hash table entries: 65536 (order: 7, 524288 bytes , linear) [ 0.790913] tcp_listen_portaddr_hash hash table entries: 2048 (order: 3 , 32768 bytes, linear) [ 0.791838] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear) [ 0.792647] TCP established hash table entries: 32768 (order: 6, 262144 bytes, linear) [ 0.793734] TCP bind hash table entries: 32768 (order: 8, 1048576 bytes , linear) [ 0.795145] TCP: Hash tables configured (established 32768 bind 32768) [ 0.795913] UDP hash table entries: 2048 (order: 5, 131072 bytes, linear) [ 0.796737] UDP-Lite hash table entries: 2048 (order: 5, 131072 bytes, linear) [ 0.797707] NET: Registered PF_UNIX/PF_LOCAL protocol family [ 0.798259] NET: Registered PF_XDP protocol family [ 0.798709] PCI: CLS 0 bytes, default 64 [ 0.799346] Trying to unpack rootfs image as initramfs... [ 0.803852] kvm [1]: nv: 568 coarse grained trap handlers [ 0.804928] kvm [1]: IPA Size Limit: 40 bits [ 0.807675] kvm [1]: vgic interrupt IRQ9 [ 0.808099] kvm [1]: Hyp nVHE mode initialized successfully [ 0.810649] Initialise system trusted keyrings [ 0.811123] Key type blacklist registered [ 0.811814] workingset: timestamp_bits=44 max_order=20 bucket_order=0 [ 0.813065] squashfs: version 4.0 (2009/01/31) Phillip Lougher [ 0.814196] fuse: init (API version 7.45) [ 0.816106] integrity: Platform Keyring initialized [ 0.816952] cryptd: max_cpu_qlen set to 1000 [ 0.865647] xor: measuring software checksum speed [ 0.867255] 8regs : 2856 MB/sec [ 0.868849] 32regs : 2763 MB/sec [ 0.870578] arm64_neon : 2496 MB/sec [ 0.870979] xor: using function: 8regs (2856 MB/sec) [ 0.871446] Key type asymmetric registered [ 0.871826] Asymmetric key parser 'x509' registered [ 0.872459] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 245) [ 0.873462] io scheduler mq-deadline registered [ 0.873894] io scheduler kyber registered [ 0.874322] io scheduler bfq registered [ 0.879699] ledtrig-cpu: registered to indicate activity on CPUs [ 0.885032] of_clk_src_onecell_get: invalid clock index 511 [ 0.885566] clk: couldn't get clock 0 for /soc/clock-controller@ff4a0000 [ 0.886192] rockchip_clk_of_add_provider: could not register clk provider [ 0.890652] Serial: 8250/16550 driver, 8 ports, IRQ sharing disabled [ 0.895705] Serial: AMBA driver [ 0.906220] loop: module loaded [ 0.908175] Key type psk registered [ 0.913352] thunder_xcv, ver 1.0 [ 0.913713] thunder_bgx, ver 1.0 [ 0.914048] nicpf, ver 1.0 [ 0.915653] /usbdrd: Failed to get clk index: 0 ret: -517 [ 0.919011] usbcore: registered new interface driver usb-storage [ 0.922031] mousedev: PS/2 mouse device common for all mice [ 0.923143] i2c_dev: i2c /dev entries driver [ 0.926968] sdhci: Secure Digital Host Controller Interface driver [ 0.927548] sdhci: Copyright(c) Pierre Ossman [ 0.927976] Synopsys Designware Multimedia Card Interface Driver [ 0.929813] sdhci-pltfm: SDHCI platform and OF driver helper [ 0.933161] arm-scmi arm-scmi.0.auto: Using scmi_smc_transport [ 0.933714] arm-scmi arm-scmi.0.auto: SCMI max-rx-timeout: 30ms / max-msg-size: 104bytes / max-msg: 20 [ 0.934752] scmi_protocol scmi_dev.1: Enabled polling mode TX channel -prot_id:16 [ 0.935703] arm-scmi arm-scmi.0.auto: SCMI Notifications - Core Enabled . [ 0.936451] arm-scmi arm-scmi.0.auto: SCMI Protocol v2.0 'rockchip:' Firmware version 0x0 [ 0.937293] arm-scmi arm-scmi.0.auto: Enabling SCMI Quirk [quirk_clock_ rates_triplet_out_of_spec] [ 0.938892] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping .... [ 0.940075] hid: raw HID events driver (C) Jiri Kosina [ 0.940762] usbcore: registered new interface driver usbhid [ 0.941283] usbhid: USB HID core driver [ 0.947869] NET: Registered PF_INET6 protocol family [ 0.949807] Segment Routing with IPv6 [ 0.950212] In-situ OAM (IOAM) with IPv6 [ 0.950687] NET: Registered PF_PACKET protocol family [ 0.951228] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this. [ 0.952714] Key type dns_resolver registered [ 0.962105] registered taskstats version 1 [ 0.962941] Loading compiled-in X.509 certificates [ 0.974817] zswap: loaded using pool zstd [ 0.975474] Demotion targets for Node 0: null [ 0.976392] Key type .fscrypt registered [ 0.976770] Key type fscrypt-provisioning registered [ 0.978529] Btrfs loaded, zoned=yes, fsverity=yes [ 0.979182] Key type encrypted registered [ 0.979562] AppArmor: AppArmor sha256 policy hashing enabled [ 0.998097] rockchip-pm-domain ff600000.power-management:power-controller: power-domain: failed to get clk at index 0: -517 [ 0.999134] rockchip-pm-domain ff600000.power-management:power-controller: failed to handle node power-domain: -517 [ 1.0
  13. 🏆 Become a sponsor, help to add other boards in armbian standart, you don't need to be a programmer to help the community, just need a copy of the ARM BOARD and a x86 computer to compile new versions. If you like what you see here and want to help: Donate Armbian the like button only costs a few dollars. Armbian Needs you help! Product Specification: Chipset: Rockchip RK3576 Octa Core ARM Mali G52 MC3 WIFI: WiFi6 11ax 1x1 80 MHz wifi controller: AP6275P RAM: DDR4 4GB/8GB ROM: eMMC 32GB/64GB/128GB OS: Android 14.0 || Armbian Vendor 6.1 Ethernet: 1000M Standard RJ-45 Bluetooth: BT 5.0 The RK3576 is indeed a lower-cost SoC but features four Cortex-A72 and four Cortex-A53 cores instead Android Base Files: H96-RK3576-ANDROID.dts H96-RK3576-ANDROID.dts H96-RK3576-BOX.dtb H96-RK3576-BOX.dtb RK3576_MiniLoaderAll.bin Vendor Kernel DTS: @RealAn H96-RK3576-VENDOR.dts Mainline status: Verify wifi controller: AP6275P Wifi Driver: https://drive.google.com/file/d/1n6x4tg5Xh24nWllOTJTq1ldVyDkK8W2Q/view?usp=sharing Flashing Tools: https://drive.google.com/file/d/1nLgPCBN0qmbzufWDFmISYc92JUpvwMPc/view?usp=sharing build_armbian.csc: https://drive.google.com/file/d/1VNR5QJlPylPsce9PI9O2TB3wOpshK2Bh/view?usp=sharing @hzdm Stock Firmware: method https://drive.google.com/file/d/1zLGvIxLE6vf8iSTjsyEr-Ly4MZ6ZahBB/view?usp=sharing Flashing Firmware Tutorial Factory Firmware for H96 Max M9 https://disk.yandex.ru/d/pWGEtRel0P9ejg https://drive.google.com/drive/folders/1g63F8fGSLEA9iK2_Mqzd6F0xfaTRnGlm?usp=sharing Factory Firmware for H96 Max M9S https://disk.yandex.ru/d/H17eGTYCjgmCsg https://drive.google.com/drive/folders/1Q360l5XbTVsWIvWkqy2xJ0sLpqHRSApM?usp=sharing TTL debug: RX TX GND pins: Enable SDCARD Reader: @rustamt method from 4pda Force board Maskrom Mode Maskrom Pins:
  14. The purpose in this guide is to make installation simple for those who wish to follow what I did. This is specifically for the Yoka TV KB2 Pro which uses the S912 chipset with 3GB RAM and 32 GB ROM. It was successful and works for setting up windows mapped drives just fine with Samba. (for example Z:\) I am using it off the SD card, I left Android 7.1 on the EMMC. Notes: My intentions are to use it for a file server for use with USB 2.0 drives I have laying around that are old but still technically usable. The file transfer speed is only expected to be around 30% of the 1GBPS wired network. The bottleneck will definitely be the USB 2.0, but for what I am using it for, it should work just fine. Leaving it on 24/7 is only slightly more power than a Raspberry PI 4, so very low cost. The Wireless and Bluetooth do not work as is, I am not sure if you can get the drivers to make them work, I did not try. The 1GBPS network port works just fine. There is also no GPU/VPU acceleration, but for a file server who cares? This was done with windows 11 and win32diskimager (note the original website is https://sourceforge.net/projects/win32diskimager/) the other links are not what you are looking for and likely viruses and malware. Balena Etcher did not like the image file, win32diskimager had no issues once I extracted the .img file. Head to https://www.armbian.com/amlogic-s9xx-tv-box/ Download the Armbian 26.2.0-trunk.22 Noble Gnome - I did not test any of the other images. Burn it to an SD card - note (it says it will only work with up to 32GB micro SD cards. My 64GB amazon micro SD card worked just fine after upgrading my Yoka TV KB2 PRO to android 7.1 earlier, go figure.) I would suggest for this get a name brand SD card that is 32GB or less (the image uses around 2GB) At the boot partition you have to rename the file u-boot-s905x-s912 to u-boot.ext Now you have to edit the /extlinux/extlinux.conf file, look for the line that says FDT /dtb/meson-something (and change it to say FDT /dtb/meson-gxm-q200.dtb save the file This lets it know what chipset/model you are using, this is for the S912 chip that is in your Yoka TV kb2 pro You will need a usb keyboard and mouse, you also have to have it plugged into an HDMI cord that runs to a monitor or TV. Now for booting it in multiboot mode - hold the reset button (between AV and HDMI ports, this button is inside and very small, google suggests a toothpick, I used a phone sim remover tool) for 10 seconds before and while powering it on, do not let go until you hit 10 seconds. Now every time you restart it, it defaults to SD card first. It may take 2 or 3 attempts, but it does work. To boot to Android, just remove the SD card. First boot username and password is root and 1234, it will force you to change the password. When it asks for bash or zsh, I chose bash because I am way more familiar with it. When it asks for locale I used en_US.UTF-8 Time zone is based on wherever you are I used America/Chicago It will also ask you to create a new user account (non-root) and a password) This should get you up and running. The button to access everything is in the upper left corner, then you can access all your apps. There are tutorials to upgrade it to android 7.1 - it does work and well documented. I upgraded mine to android 7.1 it worked just fine. Do Not try to upgrade to android 9 slimBOXtv, there are no successful attempts proven, just bricked devices. I did not see a single picture of anyone having it running. I did however see plenty of complaints for bricked devices. Good enough for me to steer clear. I know this is rather long, but it will get you through the entire process, be safe, and hope you enjoy this how-to guide.
  15. With modifications to lightdm.conf I got lightdm working with your tutorial, however lightdm and labwc don't seem to use the SPI display. I verified the setup works on an HDMI screen (with a large box of random color artifacts filling the right quarter side, but that's hopefully just because it was a TV I tested with. I don't really care about HDMI). Do i need to specify lightdm / labwc to use the /sys/class/drm/card0-SPI-1? I'm curious if you simply launched LightDM and had it use the SPI display by default, without changing any configurations (as that is what it sounds like you achieved) I'm realizing I don't know enough about how wayland works to even know how to start debugging the issue or getting it to use the tinydrm device or even the legacy framebuffer device it adds for compatibility. Maybe I need to get Raspbian running and copy their configuration files, since Raspbian Trixie runs on wayland. The only difference between your guide and my setup is I am running kernel 6.18, as I can't seem to find how to compile or install kernel 6.13. Available installable kernels are 6.12, 6.14, and 6.18 as of 26.0.2 Armbian Trixie. The steps you outline in the github repo work with some modification, namely I will edit to include the lightdm.conf when I get home, since it requires modification from the original installed version. Further, certain packages are uninstallable, or named differently than in your guide. Here is the one line APT command to install all the packages you list, with the package names fixed. Certain packages don't seem to be required at all - namely freerdp, providing the windows equivalent of VNC, so its not included in this list. There are likely others and I assume you collected these packages to install from multiple guides / forums, so the inconsistencies are understandable. sudo apt install libcairo2-dev libpango1.0-dev libxml2-dev libglib2.0-dev libdisplay-info-dev hwdata libgbm-dev libdisplay-info-dev libseat-dev libinput-dev libpango1.0-dev libpangocairo-1.0-0 libcairo2-dev libglib2.0-dev libpixman-1-dev libxkbcommon-dev liblcms2-dev libxcb-xinput-dev libxcb-errors-dev libxcb-render-util0-dev libxcb-present-dev libxcb-res0-dev libxcb-dri3-dev libxcb-ewmh-dev libxcb-icccm4-dev libxcb-composite0-dev cmake libxml2-dev libliftoff-dev build-essential cmake libwayland-dev wayland-protocols libegl1-mesa-dev libgles2-mesa-dev libdrm-dev libgbm-dev libinput-dev libxkbcommon-dev libudev-dev libpixman-1-dev libsystemd-dev libcap-dev libxcb1-dev libxcb-composite0-dev libxcb-xfixes0-dev libxcb-xinput-dev libxcb-image0-dev libxcb-render-util0-dev libx11-xcb-dev libxcb-icccm4-dev libwinpr3-dev libpng-dev libavutil-dev libavcodec-dev libavformat-dev universal-ctags expat libexpat1 libexpat1-dev seatd foot librsvg2-dev scdoc gettext appmenu-gtk-module-common libaccountsservice-dev gir1.2-accountsservice-1.0 liblightdm-gobject-dev liblightdm-gobject-1-0 libgtk-3-dev gnome-common nasm meson I am running Armbian Trixie, and I did not need to install any packages from trixie-backports or oldstable-backports to get your setup to work properly. EDIT: It actually seemed to be my SPI clock speed was too high for the display. Lowering it to a conservative 16 or 20 MHz gets labwc to work, without having to configure and specify the display to output on.
  16. How I can install armbian on Xiaomi Mi tv stick 4k with SoC Amlogic S905Y4 & GPU Arm Mali-G31 MP2? Specifications Output Resolution - 4k CPU - Quad-core Cortex-A35 GPU - Mali-G31 MP2 RAM - 2GB Storage - 8GB Operating System - Android TV™ 11 Wireless connectivity - Wi-Fi 2.4GHz/5GHz, Bluetooth 5.2
  17. Help for install ambian 22 or 23 in box TV with soc rk3528 i have instaled in box with amlogic no problème but with rockchip no support no boot......
  18. I have once again returned to this post in need of assistance. I have recently acquired from my tech wizard father a MXQ Pro 5G 4K TV box, which not even he managed to get working. According to him, its eMMC. Attached are photos of the motherboard, i did some looking at previous recent pages, so i have my suspicions, if someone though knows if this is a false print, or a just a freak motherboard please do tell. The problem itself is that it wont boot to the SD card, sometimes it will boot in sometimes not, but every time it boots if i try to access the files or sd card the Android freezes up. CPU: According to the print, RK3228A If any questions about any other components arise, please circle them in a photo because my knowledge on hardware electronics is limited.
  19. Hello everyone, I’m trying to flash a firmware on a generic Android TV Box and I’m stuck at a hardware/bootloader compatibility issue. Device technical details: - SoC: Allwinner H618 - Board / PCB: FX-H618-D4_V10 - RAM: 4GB DDR4 - Storage: eMMC (unknown size, likely 32GB) - USB FEL ID: VID_1F3A PID_EFE8 - Original OS: BigdroidOS (Android generic) - Commercial name: Transpeed 8K618-T Current situation: - Device enters FEL mode correctly (VID_1F3A PID_EFE8) - PhoenixSuit detects the device but firmware upgrade hangs at “Beginning Firmware Upgrade” - Tried multiple PCs (Windows 10 and 11), different USB ports and cables - Allwinner FEL driver installed correctly - SD card flashing with PhoenixCard (Startup mode) is ignored, device boots normally to Android - Reset timing variations tested (short press / long press / no reset) Tested firmware: - sbx_transpeed_h618_atv_12_11.img - H618.apollo-p3.T-H618_100M_12_FD650.2023.09.13.1720.img Both firmwares show similar behavior (FEL detected but no successful flash). I believe the issue is bootloader / DDR4 initialization mismatch. I’m specifically looking for: - A firmware confirmed to work with board FX-H618-D4_V10 - Or the original BigdroidOS firmware dump for this board - Or confirmation whether this board requires a specific boot0/boot1 Any help, working firmware, or dump from the same board would be greatly appreciated. Thank you! Allwinner H618, FX-H618, DDR4, PhoenixSuit, FEL, Transpeed
  20. @John Taylor I finally had some time to test this today and it is working fine for me. I built a fresh image on an ubuntu laptop, copied the image to a SD card, it mounted fine on ubuntu, where I edited the extlinux.conf file and then used the SD card to boot on an amlogic based TV box. You mention etcher as your sd card tool. Etcher in recent versions (recent being the last two years or so) is known to have problems. It is no longer recommended for use with Armbian images. I have noticed that in particular if Etcher is burning a compressed image it doesn't work for me. But I have had some success if the image is uncompressed first. But others have reported that it fails in general.
  21. Hello People, I Bring to you the Lemfo HK1 RBOX K8S 4G/64G. This box came with Android 13 and can be rooted easy, follow some specs of the box: Processor: Rockchip RK3528 GPU: Mali 450 Memory: 4Gb (micron) Storage: 64Gb (eMMC 5.1 Samsung) Network: PHY Integrated stmmac-0:02 Driver RK630 100Mbps Wireless: 5G driver: rtl8822cs on gpio Bluetooth: 5.1 USB 3.0: 01 5Gbps USB 2.0: 01 HDMI: 01 TV-Out: 01 Power: 5v 2A Aliexpress link: Lemfo HK1 Rbox K8S What is Working: HDMI: partial (read bellow) Network: partial (read bellow) Bluetooth: no Wifi: no USB 3.0: yes Sound: yes over HDMI Obs: You need to use hinlink-ht2 image, but no wireless, nor ethernet, only HDMI work, and you need to turn on monitor around 15 seconds after turn on the TVBox I get the FDT from Android, and this FDT with hilink-ht2 images boot without HDMI, but with network, if you boot with hinlink-ht2 make the initial configs and start the desktop you can replace the rk-3528-hinlink-ht2.dtb with the android FDT and the box will boot, wait around 30 seconds and turn on the monitor and you have the HDMI and network working. I have build the image with xfce and include some drivers (mail450, RK630, rtl8822cs) and enable some DRM options (under test yet) I Have the Andoid boot partition dump, and other partions, I will share the files later (need some dropbox os gdrive to share) I have attached the Android.DTB and dmesg from android and armbian, if someone want take a look. Any help and sugestion will be great! Some pictures of the board: Lemfo-hk1rbox-k8s.dtb android_dmesg.log linux_dmesg.log linux-syslog
  22. Recently has appeared some 3566 tv boxes in the wild, would be doable to run armbian on them? Since Rockchip seems kinda dedicated to openness the same goes for the RK3566?
  23. /dts-v1/; /memreserve/ 0x0000000048000000 0x0000000001000000; / { interrupt-parent = <0x1>; #address-cells = <0x2>; #size-cells = <0x2>; model = "sun50iw9"; compatible = "allwinner,h616", "arm,sun50iw9p1"; clocks { compatible = "allwinner,clk-init"; device_type = "clocks"; #address-cells = <0x2>; #size-cells = <0x2>; ranges; reg = <0x0 0x3001000 0x0 0x1000 0x0 0x7010000 0x0 0x400 0x0 0x7000000 0x0 0x4>; losc { #clock-cells = <0x0>; compatible = "allwinner,fixed-clock"; clock-frequency = <0x8000>; clock-output-names = "losc"; linux,phandle = <0x1e>; phandle = <0x1e>; }; iosc { #clock-cells = <0x0>; compatible = "allwinner,fixed-clock"; clock-frequency = <0xf42400>; clock-output-names = "iosc"; linux,phandle = <0x20>; phandle = <0x20>; }; hosc { #clock-cells = <0x0>; compatible = "allwinner,fixed-clock"; clock-frequency = <0x16e3600>; clock-output-names = "hosc"; linux,phandle = <0x9>; phandle = <0x9>; }; osc48m { #clock-cells = <0x0>; compatible = "allwinner,fixed-clock"; clock-frequency = <0x2dc6c00>; clock-output-names = "osc48m"; linux,phandle = <0xa>; phandle = <0xa>; }; hoscdiv32k { #clock-cells = <0x0>; compatible = "allwinner,fixed-clock"; clock-frequency = <0x8000>; clock-output-names = "hoscdiv32k"; linux,phandle = <0xe1>; phandle = <0xe1>; }; pll_periph0div25m { #clock-cells = <0x0>; compatible = "allwinner,fixed-clock"; clock-frequency = <0x17d7840>; clock-output-names = "pll_periph0div25m"; linux,phandle = <0xe2>; phandle = <0xe2>; }; pll_cpu { #clock-cells = <0x0>; compatible = "allwinner,pll-clock"; lock-mode = "new"; clock-output-names = "pll_cpu"; linux,phandle = <0xd5>; phandle = <0xd5>; }; pll_ddr0 { #clock-cells = <0x0>; compatible = "allwinner,pll-clock"; lock-mode = "new"; clock-output-names = "pll_ddr0"; linux,phandle = <0xda>; phandle = <0xda>; }; pll_ddr1 { #clock-cells = <0x0>; compatible = "allwinner,pll-clock"; lock-mode = "new"; clock-output-names = "pll_ddr1"; linux,phandle = <0xe3>; phandle = <0xe3>; }; pll_periph0 { #clock-cells = <0x0>; compatible = "allwinner,pll-clock"; assigned-clocks = <0x2>; assigned-clock-rates = <0x23c34600>; lock-mode = "new"; clock-output-names = "pll_periph0"; linux,phandle = <0x2>; phandle = <0x2>; }; pll_periph1 { #clock-cells = <0x0>; compatible = "allwinner,pll-clock"; assigned-clocks = <0x3>; assigned-clock-rates = <0x23c34600>; lock-mode = "new"; clock-output-names = "pll_periph1"; linux,phandle = <0x3>; phandle = <0x3>; }; pll_gpu { #clock-cells = <0x0>; compatible = "allwinner,pll-clock"; lock-mode = "new"; clock-output-names = "pll_gpu"; linux,phandle = <0xdc>; phandle = <0xdc>; }; pll_video0x4 { #clock-cells = <0x0>; compatible = "allwinner,pll-clock"; lock-mode = "new"; clock-output-names = "pll_video0x4"; linux,phandle = <0x8>; phandle = <0x8>; }; pll_video1 { #clock-cells = <0x0>; compatible = "allwinner,pll-clock"; lock-mode = "new"; assigned-clocks = <0x4>; assigned-clock-rates = <0x19bfcc00>; clock-output-names = "pll_video1"; linux,phandle = <0x4>; phandle = <0x4>; }; pll_video2 { #clock-cells = <0x0>; compatible = "allwinner,pll-clock"; lock-mode = "new"; assigned-clocks = <0x5>; clock-output-names = "pll_video2"; linux,phandle = <0x5>; phandle = <0x5>; }; pll_ve { #clock-cells = <0x0>; compatible = "allwinner,pll-clock"; device_type = "clk_pll_ve"; lock-mode = "new"; clock-output-names = "pll_ve"; linux,phandle = <0x26>; phandle = <0x26>; }; pll_de { #clock-cells = <0x0>; compatible = "allwinner,pll-clock"; assigned-clocks = <0x6>; assigned-clock-rates = <0x297c1e00>; lock-mode = "new"; clock-output-names = "pll_de"; linux,phandle = <0x6>; phandle = <0x6>; }; pll_csi { #clock-cells = <0x0>; compatible = "allwinner,pll-clock"; lock-mode = "new"; clock-output-names = "pll_csi"; linux,phandle = <0xa5>; phandle = <0xa5>; }; pll_audiox4 { #clock-cells = <0x0>; compatible = "allwinner,pll-clock"; assigned-clocks = <0x7>; assigned-clock-rates = <0x5dc0000>; lock-mode = "new"; clock-output-names = "pll_audiox4"; linux,phandle = <0x7>; phandle = <0x7>; }; pll_periph0x2 { #clock-cells = <0x0>; compatible = "allwinner,fixed-factor-clock"; clocks = <0x2>; clock-mult = <0x2>; clock-div = <0x1>; clock-output-names = "pll_periph0x2"; linux,phandle = <0xc>; phandle = <0xc>; }; pll_periph0x4 { #clock-cells = <0x0>; compatible = "allwinner,fixed-factor-clock"; clocks = <0x2>; clock-mult = <0x4>; clock-div = <0x1>; clock-output-names = "pll_periph0x4"; linux,phandle = <0xe4>; phandle = <0xe4>; }; periph32k { #clock-cells = <0x0>; compatible = "allwinner,fixed-factor-clock"; clocks = <0x2>; clock-mult = <0x2>; clock-div = <0x8f0d>; clock-output-names = "periph32k"; linux,phandle = <0xe5>; phandle = <0xe5>; }; pll_periph1x2 { #clock-cells = <0x0>; compatible = "allwinner,fixed-factor-clock"; clocks = <0x3>; clock-mult = <0x2>; clock-div = <0x1>; clock-output-names = "pll_periph1x2"; linux,phandle = <0x86>; phandle = <0x86>; }; pll_audio { #clock-cells = <0x0>; compatible = "allwinner,fixed-factor-clock"; clocks = <0x7>; clock-mult = <0x1>; clock-div = <0x4>; clock-output-names = "pll_audio"; linux,phandle = <0x60>; phandle = <0x60>; }; pll_audiox2 { #clock-cells = <0x0>; compatible = "allwinner,fixed-factor-clock"; clocks = <0x7>; clock-mult = <0x1>; clock-div = <0x2>; clock-output-names = "pll_audiox2"; linux,phandle = <0xe6>; phandle = <0xe6>; }; pll_video0 { #clock-cells = <0x0>; compatible = "allwinner,fixed-factor-clock"; clocks = <0x8>; clock-mult = <0x1>; clock-div = <0x4>; clock-output-names = "pll_video0"; linux,phandle = <0xe7>; phandle = <0xe7>; }; pll_video1x4 { #clock-cells = <0x0>; compatible = "allwinner,fixed-factor-clock"; clocks = <0x4>; clock-mult = <0x4>; clock-div = <0x1>; clock-output-names = "pll_video1x4"; linux,phandle = <0xe8>; phandle = <0xe8>; }; pll_video2x4 { #clock-cells = <0x0>; compatible = "allwinner,fixed-factor-clock"; clocks = <0x5>; clock-mult = <0x4>; clock-div = <0x1>; clock-output-names = "pll_video2x4"; linux,phandle = <0xe9>; phandle = <0xe9>; }; hoscd2 { #clock-cells = <0x0>; compatible = "allwinner,fixed-factor-clock"; clocks = <0x9>; clock-mult = <0x1>; clock-div = <0x2>; clock-output-names = "hoscd2"; linux,phandle = <0xea>; phandle = <0xea>; }; osc48md4 { #clock-cells = <0x0>; compatible = "allwinner,fixed-factor-clock"; clocks = <0xa>; clock-mult = <0x1>; clock-div = <0x4>; clock-output-names = "osc48md4"; linux,phandle = <0x52>; phandle = <0x52>; }; pll_periph0d6 { #clock-cells = <0x0>; compatible = "allwinner,fixed-factor-clock"; clocks = <0x2>; clock-mult = <0x1>; clock-div = <0x6>; clock-output-names = "pll_periph0d6"; linux,phandle = <0xeb>; phandle = <0xeb>; }; cpu { #clock-cells = <0x0>; compatible = "allwinner,cpu-clock"; clock-output-names = "cpu"; linux,phandle = <0xec>; phandle = <0xec>; }; axi { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "axi"; linux,phandle = <0xed>; phandle = <0xed>; }; cpuapb { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "cpuapb"; linux,phandle = <0xee>; phandle = <0xee>; }; psi { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "psi"; linux,phandle = <0xef>; phandle = <0xef>; }; ahb1 { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "ahb1"; linux,phandle = <0xf0>; phandle = <0xf0>; }; ahb2 { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "ahb2"; linux,phandle = <0xf1>; phandle = <0xf1>; }; ahb3 { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "ahb3"; linux,phandle = <0xf2>; phandle = <0xf2>; }; apb1 { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "apb1"; linux,phandle = <0xf3>; phandle = <0xf3>; }; apb2 { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "apb2"; linux,phandle = <0xb7>; phandle = <0xb7>; }; mbus { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "mbus"; linux,phandle = <0xf4>; phandle = <0xf4>; }; de { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; assigned-clock-parents = <0x6>; assigned-clock-rates = <0x297c1e00>; assigned-clocks = <0xb>; clock-output-names = "de"; linux,phandle = <0xb>; phandle = <0xb>; }; g2d { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; assigned-clock-parents = <0xc>; assigned-clock-rates = <0x11e1a300>; assigned-clocks = <0xd>; clock-output-names = "g2d"; linux,phandle = <0xd>; phandle = <0xd>; }; di { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; assigned-clock-parents = <0xc>; assigned-clock-rates = <0x11e1a300>; assigned-clocks = <0xe>; clock-output-names = "di"; linux,phandle = <0xe>; phandle = <0xe>; }; gpu0 { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "gpu0"; linux,phandle = <0xdd>; phandle = <0xdd>; }; gpu1 { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "gpu1"; linux,phandle = <0xde>; phandle = <0xde>; }; ce { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "ce"; linux,phandle = <0xb5>; phandle = <0xb5>; }; ve { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "ve"; linux,phandle = <0x27>; phandle = <0x27>; }; dma { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "dma"; linux,phandle = <0x1f>; phandle = <0x1f>; }; msgbox { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "msgbox"; linux,phandle = <0x21>; phandle = <0x21>; }; hwspinlock_rst { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "hwspinlock_rst"; linux,phandle = <0x22>; phandle = <0x22>; }; hwspinlock_bus { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "hwspinlock_bus"; linux,phandle = <0x23>; phandle = <0x23>; }; hstimer { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "hstimer"; linux,phandle = <0xf5>; phandle = <0xf5>; }; avs { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "avs"; linux,phandle = <0xf6>; phandle = <0xf6>; }; dbgsys { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "dbgsys"; linux,phandle = <0xf7>; phandle = <0xf7>; }; pwm { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "pwm"; linux,phandle = <0x9b>; phandle = <0x9b>; }; iommu { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "iommu"; linux,phandle = <0xdb>; phandle = <0xdb>; }; sdram { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "sdram"; linux,phandle = <0xf8>; phandle = <0xf8>; }; nand0 { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "nand0"; linux,phandle = <0xbb>; phandle = <0xbb>; }; nand1 { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "nand1"; linux,phandle = <0xbc>; phandle = <0xbc>; }; sdmmc0_mod { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "sdmmc0_mod"; linux,phandle = <0x8d>; phandle = <0x8d>; }; sdmmc0_bus { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "sdmmc0_bus"; linux,phandle = <0x8e>; phandle = <0x8e>; }; sdmmc0_rst { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "sdmmc0_rst"; linux,phandle = <0x8f>; phandle = <0x8f>; }; sdmmc1_mod { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "sdmmc1_mod"; linux,phandle = <0x93>; phandle = <0x93>; }; sdmmc1_bus { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "sdmmc1_bus"; linux,phandle = <0x94>; phandle = <0x94>; }; sdmmc1_rst { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "sdmmc1_rst"; linux,phandle = <0x95>; phandle = <0x95>; }; sdmmc2_mod { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "sdmmc2_mod"; linux,phandle = <0x87>; phandle = <0x87>; }; sdmmc2_bus { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "sdmmc2_bus"; linux,phandle = <0x88>; phandle = <0x88>; }; sdmmc2_rst { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "sdmmc2_rst"; linux,phandle = <0x89>; phandle = <0x89>; }; uart0 { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "uart0"; linux,phandle = <0x29>; phandle = <0x29>; }; uart1 { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "uart1"; linux,phandle = <0x2c>; phandle = <0x2c>; }; uart2 { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "uart2"; linux,phandle = <0x2f>; phandle = <0x2f>; }; uart3 { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "uart3"; linux,phandle = <0x32>; phandle = <0x32>; }; uart4 { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "uart4"; linux,phandle = <0x35>; phandle = <0x35>; }; uart5 { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "uart5"; linux,phandle = <0x38>; phandle = <0x38>; }; twi0 { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "twi0"; linux,phandle = <0x3b>; phandle = <0x3b>; }; twi1 { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "twi1"; linux,phandle = <0x3e>; phandle = <0x3e>; }; twi2 { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "twi2"; linux,phandle = <0x41>; phandle = <0x41>; }; twi3 { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "twi3"; linux,phandle = <0x44>; phandle = <0x44>; }; twi4 { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "twi4"; linux,phandle = <0x47>; phandle = <0x47>; }; scr0 { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "scr0"; linux,phandle = <0xb6>; phandle = <0xb6>; }; spi0 { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "spi0"; linux,phandle = <0x7d>; phandle = <0x7d>; }; spi1 { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "spi1"; linux,phandle = <0x81>; phandle = <0x81>; }; ephy_25m { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "ephy_25m"; linux,phandle = <0xcd>; phandle = <0xcd>; }; gmac0 { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "gmac0"; linux,phandle = <0xcc>; phandle = <0xcc>; }; gmac1 { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "gmac1"; linux,phandle = <0xd0>; phandle = <0xd0>; }; gpadc { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "gpadc"; linux,phandle = <0xca>; phandle = <0xca>; }; ts { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "ts"; linux,phandle = <0xc0>; phandle = <0xc0>; }; ths { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "ths"; linux,phandle = <0xc3>; phandle = <0xc3>; }; spdif { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "spdif"; linux,phandle = <0x61>; phandle = <0x61>; }; dmic { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "dmic"; linux,phandle = <0x64>; phandle = <0x64>; }; codec_1x { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "codec_1x"; linux,phandle = <0x67>; phandle = <0x67>; }; codec_4x { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "codec_4x"; linux,phandle = <0xf9>; phandle = <0xf9>; }; ahub { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "ahub"; linux,phandle = <0x6a>; phandle = <0x6a>; }; usbphy0 { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "usbphy0"; linux,phandle = <0x4d>; phandle = <0x4d>; }; usbphy1 { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "usbphy1"; linux,phandle = <0x54>; phandle = <0x54>; }; usbphy2 { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "usbphy2"; linux,phandle = <0x58>; phandle = <0x58>; }; usbphy3 { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "usbphy3"; linux,phandle = <0x5c>; phandle = <0x5c>; }; usbohci0 { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "usbohci0"; linux,phandle = <0x50>; phandle = <0x50>; }; usbohci0_12m { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "usbohci0_12m"; linux,phandle = <0x51>; phandle = <0x51>; }; usbohci1 { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "usbohci1"; linux,phandle = <0x56>; phandle = <0x56>; }; usbohci1_12m { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "usbohci1_12m"; linux,phandle = <0x57>; phandle = <0x57>; }; usbohci2 { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "usbohci2"; linux,phandle = <0x5a>; phandle = <0x5a>; }; usbohci2_12m { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "usbohci2_12m"; linux,phandle = <0x5b>; phandle = <0x5b>; }; usbohci3 { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "usbohci3"; linux,phandle = <0x5e>; phandle = <0x5e>; }; usbohci3_12m { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "usbohci3_12m"; linux,phandle = <0x5f>; phandle = <0x5f>; }; usbehci0 { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "usbehci0"; linux,phandle = <0x4f>; phandle = <0x4f>; }; usbehci1 { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "usbehci1"; linux,phandle = <0x55>; phandle = <0x55>; }; usbehci2 { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "usbehci2"; linux,phandle = <0x59>; phandle = <0x59>; }; usbehci3 { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "usbehci3"; linux,phandle = <0x5d>; phandle = <0x5d>; }; usb3_0_host { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "usb3_0_host"; linux,phandle = <0xfa>; phandle = <0xfa>; }; usbotg { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "usbotg"; linux,phandle = <0x4e>; phandle = <0x4e>; }; lradc { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "lradc"; linux,phandle = <0xcb>; phandle = <0xcb>; }; hdmi { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; assigned-clock-parents = <0x5>; assigned-clocks = <0xf>; clock-output-names = "hdmi"; linux,phandle = <0xf>; phandle = <0xf>; }; hdmi_slow { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; assigned-clocks = <0x10>; clock-output-names = "hdmi_slow"; linux,phandle = <0x10>; phandle = <0x10>; }; hdmi_cec { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; assigned-clocks = <0x11>; clock-output-names = "hdmi_cec"; linux,phandle = <0x11>; phandle = <0x11>; }; display_top { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "display_top"; linux,phandle = <0x98>; phandle = <0x98>; }; tcon_lcd { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "tcon_lcd"; assigned-clock-parents = <0x8>; assigned-clocks = <0x12>; linux,phandle = <0x12>; phandle = <0x12>; }; tcon_lcd1 { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "tcon_lcd1"; assigned-clock-parents = <0x4>; assigned-clocks = <0x13>; linux,phandle = <0x13>; phandle = <0x13>; }; tcon_tv { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; assigned-clock-parents = <0x5>; assigned-clocks = <0x14>; clock-output-names = "tcon_tv"; linux,phandle = <0x14>; phandle = <0x14>; }; tcon_tv1 { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; assigned-clock-parents = <0x4>; assigned-clocks = <0x15>; clock-output-names = "tcon_tv1"; linux,phandle = <0x15>; phandle = <0x15>; }; lvds { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "lvds"; assigned-clocks = <0x16>; linux,phandle = <0x16>; phandle = <0x16>; }; tve { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "tve"; assigned-clock-parents = <0x4>; assigned-clocks = <0x17>; linux,phandle = <0x17>; phandle = <0x17>; }; tve_top { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "tve_top"; assigned-clock-parents = <0x4>; assigned-clocks = <0x18>; linux,phandle = <0x18>; phandle = <0x18>; }; csi_top { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "csi_top"; linux,phandle = <0xa4>; phandle = <0xa4>; }; csi_master0 { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "csi_master0"; linux,phandle = <0xa6>; phandle = <0xa6>; }; csi_master1 { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "csi_master1"; linux,phandle = <0xa7>; phandle = <0xa7>; }; hdmi_hdcp { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; assigned-clock-parents = <0x3>; assigned-clocks = <0x19>; clock-output-names = "hdmi_hdcp"; linux,phandle = <0x19>; phandle = <0x19>; }; pio { #clock-cells = <0x0>; compatible = "allwinner,periph-clock"; clock-output-names = "pio"; linux,phandle = <0x1d>; phandle = <0x1d>; }; cpurcir { #clock-cells = <0x0>; compatible = "allwinner,periph-cpus-clock"; clock-output-names = "cpurcir"; linux,phandle = <0x25>; phandle = <0x25>; }; hosc32k { #clock-cells = <0x0>; compatible = "allwinner,periph-cpus-clock"; clock-output-names = "hosc32k"; linux,phandle = <0x1a>; phandle = <0x1a>; }; losc_out { #clock-cells = <0x0>; compatible = "allwinner,periph-cpus-clock"; assigned-clock-parents = <0x1a>; assigned-clocks = <0x1b>; clock-output-names = "losc_out"; linux,phandle = <0x1b>; phandle = <0x1b>; }; cpurcpus_pll { #clock-cells = <0x0>; compatible = "allwinner,periph-cpus-clock"; clock-output-names = "cpurcpus_pll"; linux,phandle = <0xfb>; phandle = <0xfb>; }; cpurcpus { #clock-cells = <0x0>; compatible = "allwinner,periph-cpus-clock"; clock-output-names = "cpurcpus"; linux,phandle = <0xfc>; phandle = <0xfc>; }; cpurahbs { #clock-cells = <0x0>; compatible = "allwinner,periph-cpus-clock"; clock-output-names = "cpurahbs"; linux,phandle = <0xfd>; phandle = <0xfd>; }; cpurapbs1 { #clock-cells = <0x0>; compatible = "allwinner,periph-cpus-clock"; clock-output-names = "cpurapbs1"; linux,phandle = <0xfe>; phandle = <0xfe>; }; cpurapbs2_pll { #clock-cells = <0x0>; compatible = "allwinner,periph-cpus-clock"; clock-output-names = "cpurapbs2_pll"; linux,phandle = <0xff>; phandle = <0xff>; }; cpurapbs2 { #clock-cells = <0x0>; compatible = "allwinner,periph-cpus-clock"; clock-output-names = "cpurapbs2"; linux,phandle = <0x100>; phandle = <0x100>; }; cpurpio { #clock-cells = <0x0>; compatible = "allwinner,periph-cpus-clock"; clock-output-names = "cpurpio"; linux,phandle = <0x1c>; phandle = <0x1c>; }; dcxo_out { #clock-cells = <0x0>; compatible = "allwinner,periph-cpus-clock"; clock-output-names = "dcxo_out"; linux,phandle = <0x101>; phandle = <0x101>; }; stwi { #clock-cells = <0x0>; compatible = "allwinner,periph-cpus-clock"; clock-output-names = "stwi"; linux,phandle = <0x4a>; phandle = <0x4a>; }; }; soc@03000000 { compatible = "simple-bus"; #address-cells = <0x2>; #size-cells = <0x2>; ranges; device_type = "soc"; linux,phandle = <0x102>; phandle = <0x102>; pinctrl@07022000 { compatible = "allwinner,sun50iw9p1-r-pinctrl"; reg = <0x0 0x7022000 0x0 0x400>; clocks = <0x1c>; device_type = "r_pio"; gpio-controller; interrupt-controller; #interrupt-cells = <0x3>; #size-cells = <0x0>; #gpio-cells = <0x6>; linux,phandle = <0x103>; phandle = <0x103>; s_rsb0@0 { allwinner,pins = "PL0", "PL1"; allwinner,function = "s_rsb0"; allwinner,muxsel = <0x2>; allwinner,drive = <0x2>; allwinner,pull = <0x1>; linux,phandle = <0x104>; phandle = <0x104>; }; s_twi0@0 { allwinner,pins = "PL0", "PL1"; allwinner,pname = "s_twi0_scl", "s_twi0_sda"; allwinner,function = "s_twi0"; allwinner,muxsel = <0x3>; allwinner,drive = <0x1>; allwinner,pull = <0x1>; linux,phandle = <0x4b>; phandle = <0x4b>; }; s_twi0@1 { allwinner,pins = "PL0", "PL1"; allwinner,function = "io_disabled"; allwinner,muxsel = <0x7>; allwinner,drive = <0x1>; allwinner,pull = <0x0>; linux,phandle = <0x4c>; phandle = <0x4c>; }; }; pinctrl@0300b000 { compatible = "allwinner,sun50iw9p1-pinctrl"; reg = <0x0 0x300b000 0x0 0x400>; interrupts = <0x0 0x33 0x4 0x0 0x34 0x4 0x0 0x35 0x4 0x0 0x2b 0x4 0x0 0x36 0x4 0x0 0x37 0x4 0x0 0x38 0x4 0x0 0x39 0x4>; device_type = "pio"; clocks = <0x1d 0x1e 0x9>; gpio-controller; interrupt-controller; #interrupt-cells = <0x3>; #size-cells = <0x0>; #gpio-cells = <0x6>; input-debounce = <0x0 0x0 0x0 0x0 0x0 0x0 0x0>; linux,phandle = <0x53>; phandle = <0x53>; clk_losc@0 { allwinner,pins = "PG10"; allwinner,function = "x32kfout"; allwinner,muxsel = <0x3>; allwinner,drive = <0x2>; allwinner,pull = <0x1>; linux,phandle = <0xd3>; phandle = <0xd3>; }; s_cir0@0 { allwinner,pins = "PH10"; allwinner,function = "ir"; allwinner,muxsel = <0x3>; allwinner,drive = <0x2>; allwinner,pull = <0x1>; linux,phandle = <0x24>; phandle = <0x24>; }; vdevice@0 { allwinner,pins = "PA1", "PA2"; allwinner,function = "Vdevice"; allwinner,muxsel = <0x5>; allwinner,drive = <0x1>; allwinner,pull = <0x1>; linux,phandle = <0xb4>; phandle = <0xb4>; }; uart0@1 { allwinner,pins = "PH0", "PH1"; allwinner,function = "uart0"; allwinner,muxsel = <0x7>; allwinner,drive = <0x1>; allwinner,pull = <0x0>; linux,phandle = <0x2b>; phandle = <0x2b>; }; uart1@0 { allwinner,pins = "PG6", "PG7", "PG8", "PG9"; allwinner,pname = "uart1_tx", "uart1_rx", "uart1_rts", "uart1_cts"; allwinner,function = "uart1"; allwinner,muxsel = <0x2>; allwinner,drive = <0x1>; allwinner,pull = <0x1>; linux,phandle = <0x2d>; phandle = <0x2d>; }; uart1@1 { allwinner,pins = "PG6", "PG7", "PG8", "PG9"; allwinner,function = "io_disabled"; allwinner,muxsel = <0x7>; allwinner,drive = <0x1>; allwinner,pull = <0x0>; linux,phandle = <0x2e>; phandle = <0x2e>; }; uart2@0 { allwinner,pins = "PH5", "PH6", "PH7", "PH8"; allwinner,pname = "uart2_tx", "uart2_rx", "uart2_rts", "uart2_cts"; allwinner,function = "uart2"; allwinner,muxsel = <0x2>; allwinner,drive = <0x1>; allwinner,pull = <0x1>; linux,phandle = <0x30>; phandle = <0x30>; }; uart2@1 { allwinner,pins = "PH5", "PH6", "PH7", "PH8"; allwinner,function = "io_disabled"; allwinner,muxsel = <0x7>; allwinner,drive = <0x1>; allwinner,pull = <0x0>; linux,phandle = <0x31>; phandle = <0x31>; }; uart3@0 { allwinner,pins = "PI9", "PI10", "PI11", "PI12"; allwinner,pname = "uart3_tx", "uart3_rx", "uart3_rts", "uart3_cts"; allwinner,function = "uart3"; allwinner,muxsel = <0x3>; allwinner,drive = <0x1>; allwinner,pull = <0x1>; linux,phandle = <0x33>; phandle = <0x33>; }; uart3@1 { allwinner,pins = "PI9", "PI10", "PI11", "PI12"; allwinner,function = "io_disabled"; allwinner,muxsel = <0x7>; allwinner,drive = <0x1>; allwinner,pull = <0x0>; linux,phandle = <0x34>; phandle = <0x34>; }; uart4@0 { allwinner,pins = "PI13", "PI14", "PI15", "PI16"; allwinner,pname = "uart4_tx", "uart4_rx", "uart4_rts", "uart4_cts"; allwinner,function = "uart4"; allwinner,muxsel = <0x3>; allwinner,drive = <0x1>; allwinner,pull = <0x1>; linux,phandle = <0x36>; phandle = <0x36>; }; uart4@1 { allwinner,pins = "PI13", "PI14", "PI15", "PI16"; allwinner,function = "io_disabled"; allwinner,muxsel = <0x7>; allwinner,drive = <0x1>; allwinner,pull = <0x0>; linux,phandle = <0x37>; phandle = <0x37>; }; uart5@0 { allwinner,pins = "PH2", "PH3"; allwinner,pname = "uart3_tx", "uart3_rx"; allwinner,function = "uart5"; allwinner,muxsel = <0x2>; allwinner,drive = <0x1>; allwinner,pull = <0x1>; linux,phandle = <0x39>; phandle = <0x39>; }; uart5@1 { allwinner,pins = "PH2", "PH3"; allwinner,function = "io_disabled"; allwinner,muxsel = <0x7>; allwinner,drive = <0x1>; allwinner,pull = <0x0>; linux,phandle = <0x3a>; phandle = <0x3a>; }; twi0@0 { allwinner,pins = "PA0", "PA1"; allwinner,pname = "twi0_scl", "twi0_sda"; allwinner,function = "twi0"; allwinner,muxsel = <0x4>; allwinner,drive = <0x1>; allwinner,pull = <0x0>; linux,phandle = <0x3c>; phandle = <0x3c>; }; twi0@1 { allwinner,pins = "PA0", "PA1"; allwinner,function = "io_disabled"; allwinner,muxsel = <0x7>; allwinner,drive = <0x1>; allwinner,pull = <0x0>; linux,phandle = <0x3d>; phandle = <0x3d>; }; twi1@0 { allwinner,pins = "PA2", "PA3"; allwinner,pname = "twi1_scl", "twi1_sda"; allwinner,function = "twi1"; allwinner,muxsel = <0x4>; allwinner,drive = <0x1>; allwinner,pull = <0x0>; linux,phandle = <0x3f>; phandle = <0x3f>; }; twi1@1 { allwinner,pins = "PA2", "PA3"; allwinner,function = "io_disabled"; allwinner,muxsel = <0x7>; allwinner,drive = <0x1>; allwinner,pull = <0x0>; linux,phandle = <0x40>; phandle = <0x40>; }; twi2@0 { allwinner,pins = "PE20", "PE21"; allwinner,pname = "twi2_scl", "twi2_sda"; allwinner,function = "twi2"; allwinner,muxsel = <0x5>; allwinner,drive = <0x1>; allwinner,pull = <0x0>; linux,phandle = <0x42>; phandle = <0x42>; }; twi2@1 { allwinner,pins = "PE20", "PE21"; allwinner,function = "io_disabled"; allwinner,muxsel = <0x7>; allwinner,drive = <0x1>; allwinner,pull = <0x0>; linux,phandle = <0x43>; phandle = <0x43>; }; twi3@0 { allwinner,pins = "PA10", "PA11"; allwinner,pname = "twi3_scl", "twi3_sda"; allwinner,function = "twi3"; allwinner,muxsel = <0x2>; allwinner,drive = <0x1>; allwinner,pull = <0x1>; linux,phandle = <0x45>; phandle = <0x45>; }; twi3@1 { allwinner,pins = "PA10", "PA11"; allwinner,function = "io_disabled"; allwinner,muxsel = <0x7>; allwinner,drive = <0x1>; allwinner,pull = <0x0>; linux,phandle = <0x46>; phandle = <0x46>; }; twi4@0 { allwinner,pins = "PG15", "PG16"; allwinner,pname = "twi4_scl", "twi4_sda"; allwinner,function = "twi4"; allwinner,muxsel = <0x5>; allwinner,drive = <0x1>; allwinner,pull = <0x0>; linux,phandle = <0x48>; phandle = <0x48>; }; twi4@1 { allwinner,pins = "PG15", "PG16"; allwinner,function = "io_disabled"; allwinner,muxsel = <0x7>; allwinner,drive = <0x1>; allwinner,pull = <0x0>; linux,phandle = <0x49>; phandle = <0x49>; }; ts0@0 { allwinner,pins = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11"; allwinner,pname = "ts0_clk", "ts0_err", "ts0_sync", "ts0_dvld", "ts0_d0", "ts0_d1", "ts0_d2", "ts0_d3", "ts0_d4", "ts0_d5", "ts0_d6", "ts0_d7"; allwinner,function = "ts0"; allwinner,muxsel = <0x4>; allwinner,drive = <0x1>; allwinner,pull = <0x0>; linux,phandle = <0xc1>; phandle = <0xc1>; }; ts0_sleep@0 { allwinner,pins = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11"; allwinner,pname = "ts0_clk", "ts0_err", "ts0_sync", "ts0_dvld", "ts0_d0", "ts0_d1", "ts0_d2", "ts0_d3", "ts0_d4", "ts0_d5", "ts0_d6", "ts0_d7"; allwinner,function = "io_disabled"; allwinner,muxsel = <0x7>; allwinner,drive = <0x1>; allwinner,pull = <0x0>; linux,phandle = <0xc2>; phandle = <0xc2>; }; spi0@0 { allwinner,pins = "PC0", "PC2", "PC4", "PC15", "PC16"; allwinner,pname = "spi0_sclk", "spi0_mosi", "spi0_miso", "spi0_wp", "spi0_hold"; allwinner,function = "spi0"; allwinner,muxsel = <0x4>; allwinner,drive = <0x1>; allwinner,pull = <0x0>; linux,phandle = <0x7e>; phandle = <0x7e>; }; spi0@1 { allwinner,pins = "PC3", "PC7"; allwinner,pname = "spi0_cs0", "spi0_cs1"; allwinner,function = "spi0"; allwinner,muxsel = <0x4>; allwinner,drive = <0x1>; allwinner,pull = <0x1>; linux,phandle = <0x7f>; phandle = <0x7f>; }; spi0@2 { allwinner,pins = "PC0", "PC2", "PC3", "PC4", "PC7", "PC15", "PC16"; allwinner,function = "io_disabled"; allwinner,muxsel = <0x7>; allwinner,drive = <0x1>; allwinner,pull = <0x0>; linux,phandle = <0x80>; phandle = <0x80>; }; spi1@0 { allwinner,pins = "PH6", "PH7", "PH8"; allwinner,pname = "spi1_sclk", "spi1_mosi", "spi1_miso"; allwinner,function = "spi1"; allwinner,muxsel = <0x4>; allwinner,drive = <0x1>; allwinner,pull = <0x0>; linux,phandle = <0x82>; phandle = <0x82>; }; spi1@1 { allwinner,pins = "PH5", "PH9"; allwinner,pname = "spi1_cs0", "spi1_cs1"; allwinner,function = "spi1"; allwinner,muxsel = <0x4>; allwinner,drive = <0x1>; allwinner,pull = <0x1>; linux,phandle = <0x83>; phandle = <0x83>; }; spi1@2 { allwinner,pins = "PH5", "PH6", "PH7", "PH8", "PH9"; allwinner,function = "io_disabled"; allwinner,muxsel = <0x7>; allwinner,drive = <0x1>; allwinner,pull = <0x0>; linux,phandle = <0x84>; phandle = <0x84>; }; sdc0@0 { allwinner,pins = "PF0", "PF1", "PF2", "PF3", "PF4", "PF5"; allwinner,function = "sdc0"; allwinner,muxsel = <0x2>; allwinner,drive = <0x3>; allwinner,pull = <0x1>; linux,phandle = <0x90>; phandle = <0x90>; }; sdc0@1 { allwinner,pins = "PF0", "PF1", "PF2", "PF3", "PF4", "PF5"; allwinner,function = "io_disabled"; allwinner,muxsel = <0x7>; allwinner,drive = <0x1>; allwinner,pull = <0x1>; linux,phandle = <0x91>; phandle = <0x91>; }; sdc0@2 { allwinner,pins = "PF0", "PF1", "PF2", "PF3", "PF4", "PF5"; allwinner,function = "uart0_jtag"; allwinner,muxsel = <0x3>; allwinner,drive = <0x1>; allwinner,pull = <0x1>; linux,phandle = <0x92>; phandle = <0x92>; }; sdc1@0 { allwinner,pins = "PG0", "PG1", "PG2", "PG3", "PG4", "PG5"; allwinner,function = "sdc1"; allwinner,muxsel = <0x2>; allwinner,drive = <0x3>; allwinner,pull = <0x1>; linux,phandle = <0x96>; phandle = <0x96>; }; sdc1@1 { allwinner,pins = "PG0", "PG1", "PG2", "PG3", "PG4", "PG5"; allwinner,function = "io_disabled"; allwinner,muxsel = <0x7>; allwinner,drive = <0x1>; allwinner,pull = <0x1>; linux,phandle = <0x97>; phandle = <0x97>; }; sdc2@0 { allwinner,pins = "PC1", "PC5", "PC6", "PC8", "PC9", "PC10", "PC11", "PC13", "PC14", "PC15", "PC16"; allwinner,function = "sdc2"; allwinner,muxsel = <0x3>; allwinner,drive = <0x2>; allwinner,pull = <0x1>; linux,phandle = <0x8a>; phandle = <0x8a>; }; sdc2@1 { allwinner,pins = "PC0", "PC1", "PC5", "PC6", "PC8", "PC9", "PC10", "PC11", "PC13", "PC14", "PC15", "PC16"; allwinner,function = "io_disabled"; allwinner,muxsel = <0x7>; allwinner,drive = <0x1>; allwinner,pull = <0x1>; linux,phandle = <0x8c>; phandle = <0x8c>; }; sdc2@2 { allwinner,pins = "PC0"; allwinner,function = "sdc2"; allwinner,muxsel = <0x3>; allwinner,drive = <0x2>; allwinner,pull = <0x2>; linux,phandle = <0x8b>; phandle = <0x8b>; }; spdif@0 { allwinner,pins = "PH2", "PH3", "PH4"; allwinner,function = "spdif"; allwinner,muxsel = <0x3>; allwinner,drive = <0x1>; allwinner,pull = <0x0>; linux,phandle = <0x62>; phandle = <0x62>; }; spdif_sleep@0 { allwinner,pins = "PH2", "PH3", "PH4"; allwinner,function = "io_disabled"; allwinner,muxsel = <0x7>; allwinner,drive = <0x1>; allwinner,pull = <0x0>; linux,phandle = <0x63>; phandle = <0x63>; }; dmic@0 { allwinner,pins = "PI0", "PI1", "PI2", "PI3", "PI4"; allwinner,function = "dmic"; allwinner,muxsel = <0x3>; allwinner,drive = <0x1>; allwinner,pull = <0x0>; linux,phandle = <0x65>; phandle = <0x65>; }; dmic_sleep@0 { allwinner,pins = "PI0", "PI1", "PI2", "PI3", "PI4"; allwinner,function = "io_disabled"; allwinner,muxsel = <0x7>; allwinner,drive = <0x1>; allwinner,pull = <0x0>; linux,phandle = <0x66>; phandle = <0x66>; }; ahub_daudio0@0 { allwinner,pins = "PA6", "PA7", "PA8", "PA9"; allwinner,function = "h_pcm0"; allwinner,muxsel = <0x3>; allwinner,drive = <0x1>; allwinner,pull = <0x0>; linux,phandle = <0x105>; phandle = <0x105>; }; ahub_daudio0_sleep@0 { allwinner,pins = "PA6", "PA7", "PA8", "PA9"; allwinner,function = "io_disabled"; allwinner,muxsel = <0x7>; allwinner,drive = <0x1>; allwinner,pull = <0x0>; linux,phandle = <0x106>; phandle = <0x106>; }; h_ahub_daudio0@0 { allwinner,pins = "PI0", "PI1", "PI2", "PI3", "PI4"; allwinner,function = "h_pcm0"; allwinner,muxsel = <0x4>; allwinner,drive = <0x1>; allwinner,pull = <0x0>; linux,phandle = <0x6b>; phandle = <0x6b>; }; h_ahub_daudio0_sleep@0 { allwinner,pins = "PI0", "PI1", "PI2", "PI3", "PI4"; allwinner,function = "io_disabled"; allwinner,muxsel = <0x7>; allwinner,drive = <0x1>; allwinner,pull = <0x0>; linux,phandle = <0x6c>; phandle = <0x6c>; }; ahub_daudio2@0 { allwinner,pins = "PG10", "PG11", "PG12", "PG13", "PG14"; allwinner,function = "h_pcm2"; allwinner,muxsel = <0x2>; allwinner,drive = <0x1>; allwinner,pull = <0x0>; linux,phandle = <0x6d>; phandle = <0x6d>; }; ahub_daudio2_sleep@0 { allwinner,pins = "PG10", "PG11", "PG12", "PG13", "PG14"; allwinner,function = "io_disabled"; allwinner,muxsel = <0x7>; allwinner,drive = <0x1>; allwinner,pull = <0x0>; linux,phandle = <0x6e>; phandle = <0x6e>; }; ahub_daudio3@0 { allwinner,pins = "PH5", "PH6", "PH7", "PH8", "PH9"; allwinner,function = "h_pcm3"; allwinner,muxsel = <0x3>; allwinner,drive = <0x1>; allwinner,pull = <0x0>; linux,phandle = <0x6f>; phandle = <0x6f>; }; ahub_daudio3_sleep@0 { allwinner,pins = "PH5", "PH6", "PH7", "PH8", "PH9"; allwinner,function = "io_disabled"; allwinner,muxsel = <0x7>; allwinner,drive = <0x1>; allwinner,pull = <0x0>; linux,phandle = <0x70>; phandle = <0x70>; }; csi1@0 { allwinner,pins = "PE0", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PE16", "PE17", "PE18", "PE19"; allwinner,pname = "csi1_pck", "csi1_hsync", "csi1_vsync", "csi1_d0", "csi1_d1", "csi1_d2", "csi1_d3", "csi1_d4", "csi1_d5", "csi1_d6", "csi1_d7", "csi1_d8", "csi1_d9", "csi1_d10", "csi1_d11", "csi1_d12", "csi1_d13", "csi1_d14", "csi1_d15"; allwinner,function = "csi1"; allwinner,muxsel = <0x2>; allwinner,drive = <0x1>; allwinner,pull = <0x0>; linux,phandle = <0xb0>; phandle = <0xb0>; }; csi1@1 { allwinner,pins = "PE0", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PE16", "PE17", "PE18", "PE19"; allwinner,pname = "csi1_pck", "csi1_hsync", "csi1_vsync", "csi1_d0", "csi1_d1", "csi1_d2", "csi1_d3", "csi1_d4", "csi1_d5", "csi1_d6", "csi1_d7", "csi1_d8", "csi1_d9", "csi1_d10", "csi1_d11", "csi1_d12", "csi1_d13", "csi1_d14", "csi1_d15"; allwinner,function = "io_disabled"; allwinner,muxsel = <0x7>; allwinner,drive = <0x1>; allwinner,pull = <0x0>; linux,phandle = <0xb1>; phandle = <0xb1>; }; csi_mclk0@0 { allwinner,pins = "PG19"; allwinner,pname = "csi_mclk0"; allwinner,function = "csi_mclk0"; allwinner,muxsel = <0x3>; allwinner,drive = <0x2>; allwinner,pull = <0x0>; linux,phandle = <0xa8>; phandle = <0xa8>; }; csi_mclk0@1 { allwinner,pins = "PG19"; allwinner,pname = "csi_mclk0"; allwinner,function = "io_disabled"; allwinner,muxsel = <0x7>; allwinner,drive = <0x2>; allwinner,pull = <0x0>; linux,phandle = <0xa9>; phandle = <0xa9>; }; csi_cci0@0 { allwinner,pins = "PG17", "PG18"; allwinner,pname = "csi_cci0_sck", "csi_cci0_sda"; allwinner,function = "csi_cci0"; allwinner,muxsel = <0x3>; allwinner,drive = <0x2>; allwinner,pull = <0x0>; linux,phandle = <0xac>; phandle = <0xac>; }; csi_cci0@1 { allwinner,pins = "PG17", "PG18"; allwinner,pname = "csi_cci0_sck", "csi_cci0_sda"; allwinner,function = "io_disabled"; allwinner,muxsel = <0x7>; allwinner,drive = <0x2>; allwinner,pull = <0x0>; linux,phandle = <0xad>; phandle = <0xad>; }; csi_mclk1@0 { allwinner,pins = "PE1"; allwinner,pname = "csi_mclk1"; allwinner,function = "csi_mclk1"; allwinner,muxsel = <0x2>; allwinner,drive = <0x2>; allwinner,pull = <0x0>; linux,phandle = <0xaa>; phandle = <0xaa>; }; csi_mclk1@1 { allwinner,pins = "PE1"; allwinner,pname = "csi_mclk1"; allwinner,function = "io_disabled"; allwinner,muxsel = <0x7>; allwinner,drive = <0x2>; allwinner,pull = <0x0>; linux,phandle = <0xab>; phandle = <0xab>; }; csi_cci1@0 { allwinner,pins = "PE20", "PE21"; allwinner,pname = "csi_cci1_sck", "csi_cci1_sda"; allwinner,function = "csi_cci1"; allwinner,muxsel = <0x2>; allwinner,drive = <0x2>; allwinner,pull = <0x0>; linux,phandle = <0xae>; phandle = <0xae>; }; csi_cci1@1 { allwinner,pins = "PE20", "PE21"; allwinner,pname = "csi_cci1_sck", "csi_cci1_sda"; allwinner,function = "io_disabled"; allwinner,muxsel = <0x7>; allwinner,drive = <0x2>; allwinner,pull = <0x0>; linux,phandle = <0xaf>; phandle = <0xaf>; }; scr0@0 { allwinner,pins = "PG13", "PG14", "PG10", "PG11", "PG12"; allwinner,pname = "scr0_rst", "scr0_det", "scr0_vccen", "scr0_sck", "scr0_sda"; allwinner,function = "sim0"; allwinner,muxsel = <0x4>; allwinner,drive = <0x0>; allwinner,pull = <0x1>; linux,phandle = <0xb8>; phandle = <0xb8>; }; scr0@1 { allwinner,pins = "PG8", "PG9"; allwinner,pname = "scr0_vppen", "scr0_vppp"; allwinner,function = "sim0"; allwinner,muxsel = <0x4>; allwinner,drive = <0x0>; allwinner,pull = <0x1>; linux,phandle = <0xb9>; phandle = <0xb9>; }; scr0@2 { allwinner,pins = "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14"; allwinner,function = "io_disabled"; allwinner,muxsel = <0x7>; allwinner,drive = <0x0>; allwinner,pull = <0x0>; linux,phandle = <0xba>; phandle = <0xba>; }; scr1@0 { allwinner,pins = "PH5", "PH6", "PH2", "PH3", "PH4"; allwinner,pname = "scr1_rst", "scr1_det", "scr1_vccen", "scr1_sck", "scr1_sda"; allwinner,function = "sim1"; allwinner,muxsel = <0x5>; allwinner,drive = <0x1>; allwinner,pull = <0x1>; linux,phandle = <0x107>; phandle = <0x107>; }; scr1@1 { allwinner,pins = "PH0", "PH1"; allwinner,pname = "scr1_vppen", "scr1_vppp"; allwinner,function = "sim1"; allwinner,muxsel = <0x5>; allwinner,drive = <0x1>; allwinner,pull = <0x1>; linux,phandle = <0x108>; phandle = <0x108>; }; scr1@2 { allwinner,pins = "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6"; allwinner,function = "io_disabled"; allwinner,muxsel = <0x7>; allwinner,drive = <0x1>; allwinner,pull = <0x0>; linux,phandle = <0x109>; phandle = <0x109>; }; nand0@2 { allwinner,pins = "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PC16"; allwinner,function = "io_disabled"; allwinner,muxsel = <0x7>; allwinner,drive = <0x1>; allwinner,pull = <0x0>; linux,phandle = <0xbf>; phandle = <0xbf>; }; ac200@2 { allwinner,pins = "PB0"; allwinner,function = "ac200"; allwinner,muxsel = <0x2>; allwinner,drive = <0x1>; allwinner,pull = <0x0>; linux,phandle = <0x10a>; phandle = <0x10a>; }; ac200@3 { allwinner,pins = "PB0"; allwinner,function = "io_disabled"; allwinner,muxsel = <0x7>; allwinner,drive = <0x1>; allwinner,pull = <0x0>; linux,phandle = <0x10b>; phandle = <0x10b>; }; gmac@0 { allwinner,pins = "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15", "PI16"; allwinner,function = "gmac0"; allwinner,muxsel = <0x2>; allwinner,drive = <0x3>; allwinner,pull = <0x0>; linux,phandle = <0xce>; phandle = <0xce>; }; gmac@1 { allwinner,pins = "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15", "PI16"; allwinner,function = "io_disabled"; allwinner,muxsel = <0x7>; allwinner,drive = <0x3>; allwinner,pull = <0x0>; linux,phandle = <0xcf>; phandle = <0xcf>; }; gmac1@0 { allwinner,pins = "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9"; allwinner,function = "gmac1"; allwinner,muxsel = <0x2>; allwinner,drive = <0x3>; allwinner,pull = <0x0>; linux,phandle = <0xd1>; phandle = <0xd1>; }; gmac1@1 { allwinner,pins = "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9"; allwinner,function = "io_disabled"; allwinner,muxsel = <0x7>; allwinner,drive = <0x3>; allwinner,pull = <0x0>; linux,phandle = <0xd2>; phandle = <0xd2>; }; lvds0@0 { allwinner,pins = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD8", "PD9", "PD6", "PD7"; allwinner,pname = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD8", "PD9", "PD6", "PD7"; allwinner,function = "lvds0"; allwinner,muxsel = <0x3>; allwinner,drive = <0x3>; allwinner,pull = <0x0>; linux,phandle = <0x10c>; phandle = <0x10c>; }; lvds0@1 { allwinner,pins = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD8", "PD9", "PD6", "PD7"; allwinner,pname = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD8", "PD9", "PD6", "PD7"; allwinner,function = "lvds0_suspend"; allwinner,muxsel = <0x7>; allwinner,drive = <0x3>; allwinner,pull = <0x0>; linux,phandle = <0x10d>; phandle = <0x10d>; }; lvds1@0 { allwinner,pins = "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PD18", "PD19", "PD16", "PD17"; allwinner,pname = "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PD18", "PD19", "PD16", "PD17"; allwinner,function = "lvds1"; allwinner,muxsel = <0x3>; allwinner,drive = <0x3>; allwinner,pull = <0x0>; linux,phandle = <0x10e>; phandle = <0x10e>; }; lvds1@1 { allwinner,pins = "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PD18", "PD19", "PD16", "PD17"; allwinner,pname = "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PD18", "PD19", "PD16", "PD17"; allwinner,function = "lvds1_suspend"; allwinner,muxsel = <0x7>; allwinner,drive = <0x3>; allwinner,pull = <0x0>; linux,phandle = <0x10f>; phandle = <0x10f>; }; lvds2link@0 { allwinner,pins = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD8", "PD9", "PD6", "PD7", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PD18", "PD19", "PD16", "PD17"; allwinner,pname = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD8", "PD9", "PD6", "PD7", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PD18", "PD19", "PD16", "PD17"; allwinner,function = "lvds1"; allwinner,muxsel = <0x3>; allwinner,drive = <0x3>; allwinner,pull = <0x0>; linux,phandle = <0x110>; phandle = <0x110>; }; lvds2link@1 { allwinner,pins = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD8", "PD9", "PD6", "PD7", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PD18", "PD19", "PD16", "PD17"; allwinner,pname = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD8", "PD9", "PD6", "PD7", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PD18", "PD19", "PD16", "PD17"; allwinner,function = "lvds1_suspend"; allwinner,muxsel = <0x7>; allwinner,drive = <0x3>; allwinner,pull = <0x0>; linux,phandle = <0x111>; phandle = <0x111>; }; rgb24@0 { allwinner,pins = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PD16", "PD17", "PD18", "PD19", "PD20", "PD21", "PD22", "PD23", "PD24", "PD25", "PD26", "PD27"; allwinner,pname = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PD16", "PD17", "PD18", "PD19", "PD20", "PD21", "PD22", "PD23", "PD24", "PD25", "PD26", "PD27"; allwinner,function = "rgb24"; allwinner,muxsel = <0x2>; allwinner,drive = <0x3>; allwinner,pull = <0x0>; linux,phandle = <0x99>; phandle = <0x99>; }; rgb24@1 { allwinner,pins = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PD16", "PD17", "PD18", "PD19", "PD20", "PD21", "PD22", "PD23", "PD24", "PD25", "PD26", "PD27"; allwinner,pname = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PD16", "PD17", "PD18", "PD19", "PD20", "PD21", "PD22", "PD23", "PD24", "PD25", "PD26", "PD27"; allwinner,function = "rgb24_suspend"; allwinner,muxsel = <0x7>; allwinner,drive = <0x3>; allwinner,pull = <0x0>; linux,phandle = <0x9a>; phandle = <0x9a>; }; pwm5@0 { allwinner,pins = "PA12"; allwinner,function = "pwm5"; allwinner,muxsel = <0x2>; allwinner,drive = <0xffffffff>; allwinner,pull = <0x0>; allwinner,data = <0xffffffff>; linux,phandle = <0xa2>; phandle = <0xa2>; }; pwm5@1 { allwinner,pins = "PA12"; allwinner,function = "io_disabled"; allwinner,muxsel = <0x7>; allwinner,drive = <0xffffffff>; allwinner,pull = <0x0>; allwinner,data = <0xffffffff>; linux,phandle = <0xa3>; phandle = <0xa3>; }; standby@0 { allwinner,pins = "PH6"; allwinner,function = "gpio_out"; allwinner,muxsel = <0x1>; allwinner,data = <0x0>; allwinner,drive = <0x0>; allwinner,pull = <0x0>; linux,phandle = <0xe0>; phandle = <0xe0>; }; standby@1 { allwinner,pins = "PH7"; allwinner,function = "gpio_out"; allwinner,muxsel = <0x1>; allwinner,data = <0x0>; allwinner,drive = <0x2>; allwinner,pull = <0x2>; linux,phandle = <0xdf>; phandle = <0xdf>; }; standby@2 { allwinner,pins = "PG16"; allwinner,function = "gpio_in"; allwinner,muxsel = <0x0>; allwinner,data = <0x0>; allwinner,drive = <0x0>; allwinner,pull = <0x0>; linux,phandle = <0x112>; phandle = <0x112>; }; card0_boot_para@0 { linux,phandle = <0x184>; phandle = <0x184>; allwinner,pins = "PF0", "PF1", "PF2", "PF3", "PF4", "PF5"; allwinner,function = "card0_boot_para"; allwinner,pname = "sdc_d1", "sdc_d0", "sdc_clk", "sdc_cmd", "sdc_d3", "sdc_d2"; allwinner,muxsel = <0x2>; allwinner,pull = <0x1>; allwinner,drive = <0x3>; allwinner,data = <0xffffffff>; }; card2_boot_para@0 { linux,phandle = <0x185>; phandle = <0x185>; allwinner,pins = "PC5", "PC6", "PC10", "PC13", "PC15", "PC8", "PC9", "PC11", "PC14", "PC16", "PC1"; allwinner,function = "card2_boot_para"; allwinner,pname = "sdc_clk", "sdc_cmd", "sdc_d0", "sdc_d1", "sdc_d2", "sdc_d3", "sdc_d4", "sdc_d5", "sdc_d6", "sdc_d7", "sdc_emmc_rst"; allwinner,muxsel = <0x3>; allwinner,pull = <0x1>; allwinner,drive = <0x3>; allwinner,data = <0xffffffff>; }; card2_boot_para@1 { linux,phandle = <0x186>; phandle = <0x186>; allwinner,pins = "PC0"; allwinner,function = "card2_boot_para"; allwinner,pname = "sdc_ds"; allwinner,muxsel = <0x3>; allwinner,pull = <0x2>; allwinner,drive = <0x3>; allwinner,data = <0xffffffff>; }; twi_para@0 { linux,phandle = <0x187>; phandle = <0x187>; allwinner,pins = "PH14", "PH15"; allwinner,function = "twi_para"; allwinner,pname = "twi_scl", "twi_sda"; allwinner,muxsel = <0x2>; allwinner,pull = <0xffffffff>; allwinner,drive = <0xffffffff>; allwinner,data = <0xffffffff>; }; uart_para@0 { linux,phandle = <0x188>; phandle = <0x188>; allwinner,pins = "PH0", "PH1"; allwinner,function = "uart_para"; allwinner,pname = "uart_debug_tx", "uart_debug_rx"; allwinner,muxsel = <0x2>; allwinner,pull = <0x1>; allwinner,drive = <0xffffffff>; allwinner,data = <0xffffffff>; }; jtag_para@0 { linux,phandle = <0x189>; phandle = <0x189>; allwinner,pins = "PH9", "PH10", "PH11", "PH12"; allwinner,function = "jtag_para"; allwinner,pname = "jtag_ms", "jtag_ck", "jtag_do", "jtag_di"; allwinner,muxsel = <0x3>; allwinner,pull = <0xffffffff>; allwinner,drive = <0xffffffff>; allwinner,data = <0xffffffff>; }; uart0@0 { linux,phandle = <0x18a>; phandle = <0x18a>; allwinner,pins = "PH0", "PH1"; allwinner,function = "uart0"; allwinner,pname = "uart0_tx", "uart0_rx"; allwinner,muxsel = <0x2>; allwinner,pull = <0x1>; allwinner,drive = <0xffffffff>; allwinner,data = <0xffffffff>; }; nand0@0 { linux,phandle = <0x18b>; phandle = <0x18b>; allwinner,pins = "PC0", "PC1", "PC2", "PC4", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14"; allwinner,function = "nand0"; allwinner,pname = "nand0_we", "nand0_ale", "nand0_cle", "nand0_nre", "nand0_d0", "nand0_d1", "nand0_d2", "nand0_d3", "nand0_d4", "nand0_d5", "nand0_d6", "nand0_d7", "nand0_ndqs"; allwinner,muxsel = <0x2>; allwinner,pull = <0x0>; allwinner,drive = <0x1>; allwinner,data = <0xffffffff>; }; nand0@1 { linux,phandle = <0x18c>; phandle = <0x18c>; allwinner,pins = "PC3", "PC5", "PC15", "PC16"; allwinner,function = "nand0"; allwinner,pname = "nand0_ce0", "nand0_rb0", "nand0_ce1", "nand0_rb1"; allwinner,muxsel = <0x2>; allwinner,pull = <0x1>; allwinner,drive = <0x1>; allwinner,data = <0xffffffff>; }; }; auto_print { device_type = "auto_print"; status = "okay"; }; dma-controller@03002000 { compatible = "allwinner,sun50i-dma"; reg = <0x0 0x3002000 0x0 0x1000>; interrupts = <0x0 0x2a 0x4>; clocks = <0x1f>; #dma-cells = <0x1>; linux,phandle = <0x113>; phandle = <0x113>; }; mbus-controller@047fa000 { compatible = "allwinner,sun50i-mbus"; reg = <0x0 0x47fa000 0x0 0x1000>; #mbus-cells = <0x1>; linux,phandle = <0x114>; phandle = <0x114>; }; arisc { compatible = "allwinner,sunxi-arisc"; #address-cells = <0x2>; #size-cells = <0x2>; clocks = <0x1e 0x20 0x9 0x2>; clock-names = "losc", "iosc", "hosc", "pll_periph0"; powchk_used = <0x0>; power_reg = <0x2309621>; system_power = <0x32>; }; arisc_space { compatible = "allwinner,arisc_space"; space1 = <0x48040000 0x0 0x14000>; space2 = <0x48100000 0x18000 0x4000>; space3 = <0x48104000 0x0 0x1000>; space4 = <0x48105000 0x0 0x1000>; }; standby_space { compatible = "allwinner,sun50iw9-usbstandby"; space1 = <0x40020000 0x0 0x800>; }; msgbox@03003000 { compatible = "allwinner,msgbox"; clocks = <0x21>; clock-names = "clk_msgbox"; reg = <0x0 0x3003000 0x0 0x1000>; interrupts = <0x0 0x27 0x1>; status = "okay"; linux,phandle = <0x115>; phandle = <0x115>; }; hwspinlock@3004000 { compatible = "allwinner,sunxi-hwspinlock"; clocks = <0x22 0x23>; clock-names = "clk_hwspinlock_rst", "clk_hwspinlock_bus"; reg = <0x0 0x3004000 0x0 0x1000>; num-locks = <0x8>; status = "okay"; linux,phandle = <0x116>; phandle = <0x116>; }; s_cir@07040000 { compatible = "allwinner,s_cir"; reg = <0x0 0x7040000 0x0 0x400>; interrupts = <0x0 0x6a 0x4>; pinctrl-names = "default"; pinctrl-0 = <0x24>; clocks = <0x9 0x25>; supply = "vcc-pl"; supply_vol = "3300000"; status = "okay"; s_cir0_used = <0x1>; ir_power_key_code0 = <0x40>; ir_addr_code0 = <0xfe01>; ir_power_key_code1 = <0x1a>; ir_addr_code1 = <0xfb04>; ir_power_key_code2 = <0xf2>; ir_addr_code2 = <0x2992>; ir_power_key_code3 = <0x57>; ir_addr_code3 = <0x9f00>; ir_power_key_code4 = <0xdc>; ir_addr_code4 = <0x4cb3>; ir_power_key_code5 = <0x18>; ir_addr_code5 = <0xff00>; ir_power_key_code6 = <0xdc>; ir_addr_code6 = <0xdd22>; ir_power_key_code7 = <0xd>; ir_addr_code7 = <0xbc00>; ir_power_key_code8 = <0x4d>; ir_addr_code8 = <0x4040>; ir_power_key_code9 = <0x51>; ir_addr_code9 = <0x7f80>; wakeup-source; linux,phandle = <0x117>; phandle = <0x117>; }; timer@03009000 { compatible = "allwinner,sun4i-a10-timer"; device_type = "soc_timer"; reg = <0x0 0x3009000 0x0 0x400>; interrupts = <0x0 0x30 0x4>; clocks = <0x9>; linux,phandle = <0x118>; phandle = <0x118>; }; rtc@07000000 { compatible = "allwinner,sunxi-rtc"; device_type = "rtc"; auto_switch; wakeup-source; reg = <0x0 0x7000000 0x0 0x200>; interrupts = <0x0 0x68 0x4>; gpr_offset = <0x100>; gpr_len = <0x8>; gpr_cur_pos = <0x6>; linux,phandle = <0x119>; phandle = <0x119>; }; watchdog@030090a0 { compatible = "allwinner,sun50i-wdt"; reg = <0x0 0x30090a0 0x0 0x20>; interrupts = <0x0 0x32 0x4>; linux,phandle = <0x11a>; phandle = <0x11a>; }; ve@01c0e000 { compatible = "allwinner,sunxi-cedar-ve"; reg = <0x0 0x1c0e000 0x0 0x1000 0x0 0x3000000 0x0 0x10 0x0 0x3001000 0x0 0x1000>; interrupts = <0x0 0x5d 0x4>; clocks = <0x26 0x27>; iommus = <0x28 0x3 0x1>; linux,phandle = <0x11b>; phandle = <0x11b>; }; vp9@01c00000 { compatible = "allwinner,sunxi-google-vp9"; reg = <0x0 0x1c00000 0x0 0x1000 0x0 0x3000000 0x0 0x10 0x0 0x3001000 0x0 0x1000>; interrupts = <0x0 0x5a 0x4>; clocks = <0x26>; iommus = <0x28 0x2 0x1>; #clocks = <0xc>; linux,phandle = <0x11c>; phandle = <0x11c>; }; uart@05000000 { compatible = "allwinner,sun50i-uart"; device_type = "uart0"; reg = <0x0 0x5000000 0x0 0x400>; interrupts = <0x0 0x0 0x4>; clocks = <0x29>; pinctrl-names = "default", "sleep"; pinctrl-1 = <0x2b>; uart0_port = <0x0>; uart0_type = <0x2>; status = "okay"; linux,phandle = <0x11d>; phandle = <0x11d>; pinctrl-0 = <0x18a>; }; uart@05000400 { compatible = "allwinner,sun50i-uart"; device_type = "uart1"; reg = <0x0 0x5000400 0x0 0x400>; interrupts = <0x0 0x1 0x4>; clocks = <0x2c>; pinctrl-names = "default", "sleep"; pinctrl-0 = <0x2d>; pinctrl-1 = <0x2e>; uart1_port = <0x1>; uart1_type = <0x4>; status = "okay"; linux,phandle = <0x11e>; phandle = <0x11e>; }; uart@05000800 { compatible = "allwinner,sun50i-uart"; device_type = "uart2"; reg = <0x0 0x5000800 0x0 0x400>; interrupts = <0x0 0x2 0x4>; clocks = <0x2f>; pinctrl-names = "default", "sleep"; pinctrl-0 = <0x30>; pinctrl-1 = <0x31>; uart2_port = <0x2>; uart2_type = <0x4>; status = "disabled"; linux,phandle = <0x11f>; phandle = <0x11f>; }; uart@05000c00 { compatible = "allwinner,sun50i-uart"; device_type = "uart3"; reg = <0x0 0x5000c00 0x0 0x400>; interrupts = <0x0 0x3 0x4>; clocks = <0x32>; pinctrl-names = "default", "sleep"; pinctrl-0 = <0x33>; pinctrl-1 = <0x34>; uart3_port = <0x3>; uart3_type = <0x4>; status = "disabled"; linux,phandle = <0x120>; phandle = <0x120>; }; uart@05001000 { compatible = "allwinner,sun50i-uart"; device_type = "uart4"; reg = <0x0 0x5001000 0x0 0x400>; interrupts = <0x0 0x4 0x4>; clocks = <0x35>; pinctrl-names = "default", "sleep"; pinctrl-0 = <0x36>; pinctrl-1 = <0x37>; uart4_port = <0x4>; uart4_type = <0x4>; status = "disabled"; linux,phandle = <0x121>; phandle = <0x121>; }; uart@05001400 { compatible = "allwinner,sun50i-uart"; device_type = "uart5"; reg = <0x0 0x5001400 0x0 0x400>; interrupts = <0x0 0x5 0x4>; clocks = <0x38>; pinctrl-names = "default", "sleep"; pinctrl-0 = <0x39>; pinctrl-1 = <0x3a>; uart5_port = <0x5>; uart5_type = <0x2>; status = "disabled"; linux,phandle = <0x122>; phandle = <0x122>; }; twi@0x05002000 { #address-cells = <0x1>; #size-cells = <0x0>; compatible = "allwinner,sun50i-twi"; device_type = "twi0"; reg = <0x0 0x5002000 0x0 0x400>; interrupts = <0x0 0x6 0x4>; clocks = <0x3b>; clock-frequency = <0x61a80>; pinctrl-names = "default", "sleep"; pinctrl-0 = <0x3c>; pinctrl-1 = <0x3d>; status = "disable"; linux,phandle = <0x123>; phandle = <0x123>; }; twi@0x05002400 { #address-cells = <0x1>; #size-cells = <0x0>; compatible = "allwinner,sun50i-twi"; device_type = "twi1"; reg = <0x0 0x5002400 0x0 0x400>; interrupts = <0x0 0x7 0x4>; clocks = <0x3e>; clock-frequency = <0x30d40>; pinctrl-names = "default", "sleep"; pinctrl-0 = <0x3f>; pinctrl-1 = <0x40>; status = "disable"; linux,phandle = <0x124>; phandle = <0x124>; }; twi@0x05002800 { #address-cells = <0x1>; #size-cells = <0x0>; compatible = "allwinner,sun50i-twi"; device_type = "twi2"; reg = <0x0 0x5002800 0x0 0x400>; interrupts = <0x0 0x8 0x4>; clocks = <0x41>; clock-frequency = <0x30d40>; pinctrl-names = "default", "sleep"; pinctrl-0 = <0x42>; pinctrl-1 = <0x43>; status = "disable"; linux,phandle = <0x125>; phandle = <0x125>; }; twi@0x05002c00 { #address-cells = <0x1>; #size-cells = <0x0>; compatible = "allwinner,sun50i-twi"; device_type = "twi3"; reg = <0x0 0x5002c00 0x0 0x400>; interrupts = <0x0 0x9 0x4>; clocks = <0x44>; clock-frequency = <0x30d40>; pinctrl-names = "default", "sleep"; pinctrl-0 = <0x45>; pinctrl-1 = <0x46>; status = "okay"; linux,phandle = <0x126>; phandle = <0x126>; }; twi@0x05003000 { #address-cells = <0x1>; #size-cells = <0x0>; compatible = "allwinner,sun50i-twi"; device_type = "twi4"; reg = <0x0 0x5003000 0x0 0x400>; interrupts = <0x0 0xa 0x4>; clocks = <0x47>; clock-frequency = <0x30d40>; pinctrl-names = "default", "sleep"; pinctrl-0 = <0x48>; pinctrl-1 = <0x49>; status = "disable"; linux,phandle = <0x127>; phandle = <0x127>; }; twi@0x07081400 { #address-cells = <0x1>; #size-cells = <0x0>; compatible = "allwinner,sun50i-twi"; device_type = "twi5"; reg = <0x0 0x7081400 0x0 0x400>; interrupts = <0x0 0x69 0x4>; clocks = <0x4a>; clock-frequency = <0x30d40>; pinctrl-names = "default", "sleep"; pinctrl-0 = <0x4b>; pinctrl-1 = <0x4c>; status = "okay"; no_suspend = <0x1>; linux,phandle = <0x128>; phandle = <0x128>; pmu { compatible = "x-powers,axp1530"; reg = <0x36>; wakeup-source; linux,phandle = <0x129>; phandle = <0x129>; standby_param { vcc-dram = <0x4>; linux,phandle = <0x12a>; phandle = <0x12a>; }; regulators { dcdc1 { regulator-name = "axp1530-dcdc1"; regulator-min-microvolt = <0x7a120>; regulator-max-microvolt = <0x33e140>; regulator-step-delay-us = <0x19>; regulator-final-delay-us = <0x32>; regulator-always-on; linux,phandle = <0x12b>; phandle = <0x12b>; }; dcdc2 { regulator-name = "axp1530-dcdc2"; regulator-min-microvolt = <0x7a120>; regulator-max-microvolt = <0x177fa0>; regulator-step-delay-us = <0x19>; regulator-final-delay-us = <0x32>; regulator-ramp-delay = <0xc8>; regulator-always-on; linux,phandle = <0xd8>; phandle = <0xd8>; }; dcdc3 { regulator-name = "axp1530-dcdc3"; regulator-min-microvolt = <0x7a120>; regulator-max-microvolt = <0x1c1380>; regulator-step-delay-us = <0x19>; regulator-final-delay-us = <0x32>; regulator-always-on; linux,phandle = <0x12c>; phandle = <0x12c>; }; ldo1 { regulator-name = "axp1530-aldo1"; regulator-min-microvolt = <0x7a120>; regulator-max-microvolt = <0x3567e0>; regulator-step-delay-us = <0x19>; regulator-final-delay-us = <0x32>; regulator-always-on; linux,phandle = <0x68>; phandle = <0x68>; }; ldo2 { regulator-name = "axp1530-dldo1"; regulator-min-microvolt = <0x7a120>; regulator-max-microvolt = <0x3567e0>; regulator-step-delay-us = <0x19>; regulator-final-delay-us = <0x32>; regulator-always-on; linux,phandle = <0x69>; phandle = <0x69>; }; }; }; }; usbc0@0 { device_type = "usbc0"; compatible = "allwinner,sunxi-otg-manager"; usb_port_type = <0x1>; usb_detect_type = <0x1>; usb_id_gpio; usb_det_vbus_gpio; usb_drv_vbus_gpio; usb_host_init_state = <0x0>; usb_regulator_io = "nocare"; usb_wakeup_suspend = <0x2>; usb_luns = <0x3>; usb_serial_unique = <0x0>; usb_serial_number = "20080411"; rndis_wceis = <0x1>; wakeup-source; status = "okay"; usb_detect_mode = <0x0>; linux,phandle = <0x12d>; phandle = <0x12d>; }; udc-controller@0x05100000 { compatible = "allwinner,sunxi-udc"; reg = <0x0 0x5100000 0x0 0x1000 0x0 0x0 0x0 0x100>; interrupts = <0x0 0x19 0x4>; clocks = <0x4d 0x4e>; status = "okay"; linux,phandle = <0x12e>; phandle = <0x12e>; }; ehci0-controller@0x05101000 { compatible = "allwinner,sunxi-ehci0"; reg = <0x0 0x5101000 0x0 0xfff 0x0 0x0 0x0 0x100 0x0 0x5100000 0x0 0x1000>; interrupts = <0x0 0x1a 0x4>; clocks = <0x4d 0x4f>; hci_ctrl_no = <0x0>; status = "okay"; linux,phandle = <0x12f>; phandle = <0x12f>; }; ohci0-controller@0x05101400 { compatible = "allwinner,sunxi-ohci0"; reg = <0x0 0x5101000 0x0 0xfff 0x0 0x0 0x0 0x100 0x0 0x5100000 0x0 0x1000>; interrupts = <0x0 0x1b 0x4>; clocks = <0x4d 0x50 0x51 0x52 0x9 0x1e>; hci_ctrl_no = <0x0>; status = "okay"; linux,phandle = <0x130>; phandle = <0x130>; }; usbc1@0 { device_type = "usbc1"; usb_drv_vbus_gpio = <0x53 0x7 0x8 0x0 0x1 0xffffffff 0xffffffff>; usb_host_init_state = <0x1>; usb_regulator_io = "nocare"; usb_wakeup_suspend = <0x2>; wakeup-source; status = "okay"; linux,phandle = <0x131>; phandle = <0x131>; }; ehci1-controller@0x05200000 { compatible = "allwinner,sunxi-ehci1"; reg = <0x0 0x5200000 0x0 0xfff 0x0 0x0 0x0 0x100 0x0 0x5100000 0x0 0x1000>; interrupts = <0x0 0x1c 0x4>; clocks = <0x54 0x55>; hci_ctrl_no = <0x1>; status = "okay"; linux,phandle = <0x132>; phandle = <0x132>; }; ohci1-controller@0x05200400 { compatible = "allwinner,sunxi-ohci1"; reg = <0x0 0x5200000 0x0 0xfff 0x0 0x0 0x0 0x100 0x0 0x5100000 0x0 0x1000>; interrupts = <0x0 0x1d 0x4>; clocks = <0x54 0x56 0x57 0x52 0x9 0x1e>; hci_ctrl_no = <0x1>; status = "okay"; linux,phandle = <0x133>; phandle = <0x133>; }; usbc2@0 { device_type = "usbc2"; usb_drv_vbus_gpio; usb_host_init_state = <0x1>; usb_regulator_io = "nocare"; usb_wakeup_suspend = <0x2>; wakeup-source; status = "okay"; linux,phandle = <0x134>; phandle = <0x134>; }; ehci2-controller@0x05310000 { compatible = "allwinner,sunxi-ehci2"; reg = <0x0 0x5310000 0x0 0xfff 0x0 0x0 0x0 0x100 0x0 0x5100000 0x0 0x1000>; interrupts = <0x0 0x1e 0x4>; clocks = <0x58 0x59>; hci_ctrl_no = <0x2>; status = "okay"; linux,phandle = <0x135>; phandle = <0x135>; }; ohci2-controller@0x05310400 { compatible = "allwinner,sunxi-ohci2"; reg = <0x0 0x5310000 0x0 0xfff 0x0 0x0 0x0 0x100 0x0 0x5100000 0x0 0x1000>; interrupts = <0x0 0x1f 0x4>; clocks = <0x58 0x5a 0x5b 0x52 0x9 0x1e>; hci_ctrl_no = <0x2>; status = "okay"; linux,phandle = <0x136>; phandle = <0x136>; }; usbc3@0 { device_type = "usbc3"; usb_drv_vbus_gpio; usb_host_init_state = <0x1>; usb_regulator_io = "nocare"; usb_wakeup_suspend = <0x2>; wakeup-source; status = "okay"; linux,phandle = <0x137>; phandle = <0x137>; }; ehci3-controller@0x05311000 { compatible = "allwinner,sunxi-ehci3"; reg = <0x0 0x5311000 0x0 0xfff 0x0 0x0 0x0 0x100 0x0 0x5100000 0x0 0x1000>; interrupts = <0x0 0x20 0x4>; clocks = <0x5c 0x5d>; hci_ctrl_no = <0x3>; status = "okay"; linux,phandle = <0x138>; phandle = <0x138>; }; ohci3-controller@0x05311400 { compatible = "allwinner,sunxi-ohci3"; reg = <0x0 0x5311000 0x0 0xfff 0x0 0x0 0x0 0x100 0x0 0x5100000 0x0 0x1000>; interrupts = <0x0 0x21 0x4>; clocks = <0x5c 0x5e 0x5f 0x52 0x9 0x1e>; hci_ctrl_no = <0x3>; status = "okay"; linux,phandle = <0x139>; phandle = <0x139>; }; ac200_codec { compatible = "allwinner,ac200_codec"; status = "disabled"; linux,phandle = <0x13a>; phandle = <0x13a>; }; spdif-controller@0x05093000 { compatible = "allwinner,sunxi-spdif"; reg = <0x0 0x5093000 0x0 0x40>; clocks = <0x60 0x7 0x61>; pinctrl-names = "default", "sleep"; pinctrl-0 = <0x62>; pinctrl-1 = <0x63>; device_type = "spdif"; status = "okay"; linux,phandle = <0x75>; phandle = <0x75>; }; dmic-controller@0x05095000 { compatible = "allwinner,sunxi-dmic"; reg = <0x0 0x5095000 0x0 0x50>; clocks = <0x60 0x7 0x64>; pinctrl-names = "default", "sleep"; pinctrl-0 = <0x65>; pinctrl-1 = <0x66>; device_type = "dmic"; status = "disabled"; linux,phandle = <0x76>; phandle = <0x76>; }; codec@0x05096000 { compatible = "allwinner,sunxi-internal-codec"; reg = <0x0 0x5096000 0x0 0x31c>; clocks = <0x60 0x7 0x67>; device_type = "codec"; status = "okay"; adcdrc_cfg = <0x0>; adchpf_cfg = <0x0>; dacdrc_cfg = <0x0>; dachpf_cfg = <0x0>; fmin_gain = <0x3>; linein_gain = <0x3>; digital_vol = <0x0>; lineout_vol = <0x1a>; ramp_func_used = <0x1>; avcc-supply = <0x68>; vcc33_audio-supply = <0x69>; linux,phandle = <0x78>; phandle = <0x78>; }; cpudai-controller@0x05096000 { compatible = "allwinner,sunxi-internal-cpudai"; reg = <0x0 0x5096000 0x0 0x31c>; device_type = "cpudai"; status = "okay"; linux,phandle = <0x77>; phandle = <0x77>; }; cpudai0-controller@0x05097000 { compatible = "allwinner,sunxi-ahub-cpudai"; reg = <0x0 0x5097000 0x0 0xadf>; id = <0x0>; status = "okay"; linux,phandle = <0x79>; phandle = <0x79>; }; cpudai1-controller@0x05097000 { compatible = "allwinner,sunxi-ahub-cpudai"; reg = <0x0 0x5097000 0x0 0xadf>; id = <0x1>; status = "okay"; linux,phandle = <0x7a>; phandle = <0x7a>; }; cpudai2-controller@0x05097000 { compatible = "allwinner,sunxi-ahub-cpudai"; reg = <0x0 0x5097000 0x0 0xadf>; id = <0x2>; status = "okay"; linux,phandle = <0x7b>; phandle = <0x7b>; }; cpudai3-controller@0x05097000 { compatible = "allwinner,sunxi-ahub-cpudai"; reg = <0x0 0x5097000 0x0 0xadf>; id = <0x3>; status = "okay"; linux,phandle = <0x13b>; phandle = <0x13b>; }; ahub_codec@0x05097000 { compatible = "allwinner,sunxi-ahub"; reg = <0x0 0x5097000 0x0 0xadf>; clocks = <0x60 0x7 0x6a>; status = "okay"; linux,phandle = <0x7c>; phandle = <0x7c>; }; ahub_daudio0@0x05097000 { compatible = "allwinner,sunxi-ahub-daudio"; reg = <0x0 0x5097000 0x0 0xadf>; clocks = <0x60 0x7 0x6a>; pinctrl-names = "default", "sleep"; pinctrl-0 = <0x6b>; pinctrl-1 = <0x6c>; tdm_num = <0x0>; device_type = "ahub_daudio0"; status = "okay"; pinconfig = <0x1>; frametype = <0x0>; pcm_lrck_period = <0x20>; slot_width_select = <0x20>; daudio_master = <0x4>; audio_format = <0x1>; signal_inversion = <0x1>; tdm_config = <0x1>; mclk_div = <0x0>; linux,phandle = <0x71>; phandle = <0x71>; }; ahub_daudio1@0x05097000 { compatible = "allwinner,sunxi-ahub-daudio"; reg = <0x0 0x5097000 0x0 0xadf>; clocks = <0x60 0x7 0x6a>; tdm_num = <0x1>; device_type = "ahub_daudio1"; status = "okay"; pinconfig = <0x0>; frametype = <0x0>; pcm_lrck_period = <0x20>; slot_width_select = <0x20>; daudio_master = <0x4>; audio_format = <0x1>; signal_inversion = <0x1>; tdm_config = <0x1>; mclk_div = <0x1>; linux,phandle = <0x72>; phandle = <0x72>; }; ahub_daudio2@0x05097000 { compatible = "allwinner,sunxi-ahub-daudio"; reg = <0x0 0x5097000 0x0 0xadf>; clocks = <0x60 0x7 0x6a>; pinctrl-names = "default", "sleep"; pinctrl-0 = <0x6d>; pinctrl-1 = <0x6e>; tdm_num = <0x2>; device_type = "ahub_daudio2"; status = "disabled"; pinconfig = <0x1>; frametype = <0x0>; pcm_lrck_period = <0x20>; slot_width_select = <0x20>; daudio_master = <0x4>; audio_format = <0x1>; signal_inversion = <0x1>; tdm_config = <0x1>; mclk_div = <0x4>; linux,phandle = <0x73>; phandle = <0x73>; }; ahub_daudio3@0x05097000 { compatible = "allwinner,sunxi-ahub-daudio"; reg = <0x0 0x5097000 0x0 0xadf>; clocks = <0x60 0x7 0x6a>; pinctrl-names = "default", "sleep"; pinctrl-0 = <0x6f>; pinctrl-1 = <0x70>; tdm_num = <0x3>; device_type = "ahub_daudio3"; status = "disabled"; pinconfig = <0x1>; frametype = <0x0>; pcm_lrck_period = <0x20>; slot_width_select = <0x20>; daudio_master = <0x4>; audio_format = <0x1>; signal_inversion = <0x1>; tdm_config = <0x1>; mclk_div = <0x4>; linux,phandle = <0x74>; phandle = <0x74>; }; sound@0 { compatible = "allwinner,sunxi-daudio0-machine"; sunxi,cpudai-controller = <0x71>; device_type = "snddaudio0"; status = "okay"; linux,phandle = <0x13c>; phandle = <0x13c>; }; sound@1 { compatible = "allwinner,sunxi-hdmi-machine"; sunxi,cpudai-controller = <0x72>; device_type = "sndhdmi"; status = "okay"; linux,phandle = <0x13d>; phandle = <0x13d>; }; sound@2 { compatible = "allwinner,sunxi-daudio2-machine"; sunxi,cpudai-controller = <0x73>; device_type = "snddaudio2"; status = "disabled"; linux,phandle = <0x13e>; phandle = <0x13e>; }; sound@3 { compatible = "allwinner,sunxi-daudio3-machine"; sunxi,cpudai-controller = <0x74>; device_type = "snddaudio3"; status = "disabled"; linux,phandle = <0x13f>; phandle = <0x13f>; }; sound@4 { compatible = "allwinner,sunxi-spdif-machine"; sunxi,spdif-controller = <0x75>; device_type = "sndspdif"; status = "okay"; linux,phandle = <0x140>; phandle = <0x140>; }; sound@5 { compatible = "allwinner,sunxi-dmic-machine"; sunxi,dmic-controller = <0x76>; device_type = "snddmic"; status = "disabled"; linux,phandle = <0x141>; phandle = <0x141>; }; sound@6 { compatible = "allwinner,sunxi-codec-machine"; sunxi,cpudai-controller = <0x77>; sunxi,audio-codec = <0x78>; device_type = "sndcodec"; status = "okay"; linux,phandle = <0x142>; phandle = <0x142>; }; sound@7 { compatible = "allwinner,sunxi-ahub-machine"; sunxi,cpudai-controller0 = <0x79>; sunxi,cpudai-controller1 = <0x7a>; sunxi,cpudai-controller2 = <0x7b>; sunxi,audio-codec = <0x7c>; device_type = "sndahub"; status = "okay"; linux,phandle = <0x143>; phandle = <0x143>; }; spi@05010000 { #address-cells = <0x1>; #size-cells = <0x0>; compatible = "allwinner,sun50i-spi"; device_type = "spi0"; reg = <0x0 0x5010000 0x0 0x1000>; interrupts = <0x0 0xc 0x4>; clocks = <0x2 0x7d>; clock-frequency = <0x5f5e100>; pinctrl-names = "default", "sleep"; pinctrl-0 = <0x7e 0x7f>; pinctrl-1 = <0x80>; spi0_cs_number = <0x1>; spi0_cs_bitmap = <0x1>; status = "disabled"; linux,phandle = <0x144>; phandle = <0x144>; }; spi@05011000 { #address-cells = <0x1>; #size-cells = <0x0>; compatible = "allwinner,sun50i-spi"; device_type = "spi1"; reg = <0x0 0x5011000 0x0 0x1000>; interrupts = <0x0 0xd 0x4>; clocks = <0x2 0x81>; clock-frequency = <0x5f5e100>; pinctrl-names = "default", "sleep"; pinctrl-0 = <0x82 0x83>; pinctrl-1 = <0x84>; spi1_cs_number = <0x1>; spi1_cs_bitmap = <0x1>; status = "disable"; spi_slave_mode = <0x0>; linux,phandle = <0x145>; phandle = <0x145>; spi_board1 { device_type = "spi_board1"; compatible = "rohm,dh2228fv"; spi-max-frequency = <0x5f5e100>; reg = <0x0>; spi-rx-bus-width = <0x1>; spi-tx-bus-width = <0x1>; }; }; pcie@0x05400000 { #address-cells = <0x3>; #size-cells = <0x2>; compatible = "allwinner,sun50i-pcie"; reg = <0x0 0x5400000 0x0 0x2000 0x0 0x5410000 0x0 0x10000>; reg-names = "dbi", "config"; device_type = "pci"; ranges = <0x800 0x0 0x5410000 0x0 0x5410000 0x0 0x10000 0x81000000 0x0 0x0 0x0 0x5e00000 0x0 0x10000 0x82000000 0x0 0x5500000 0x0 0x5500000 0x0 0x800000>; num-lanes = <0x1>; interrupts = <0x0 0x7f 0x4 0x0 0x7e 0x4>; interrupt-names = "msi"; #interrupt-cells = <0x1>; interrupt-map-mask = <0x0 0x0 0x0 0x0>; interrupt-map = <0x0 0x0 0x0 0x1 0x85 0x0 0x7f 0x4>; status = "okay"; linux,phandle = <0x146>; phandle = <0x146>; }; sdmmc@04022000 { compatible = "allwinner,sunxi-mmc-v4p6x"; device_type = "sdc2"; reg = <0x0 0x4022000 0x0 0x1000>; interrupts = <0x0 0x25 0x4>; clocks = <0x9 0x86 0x87 0x88 0x89>; clock-names = "osc24m", "pll_periph", "mmc", "ahb", "rst"; pinctrl-names = "default", "sleep"; pinctrl-0 = <0x8a 0x8b>; pinctrl-1 = <0x8c>; bus-width = <0x8>; cap-mmc-highspeed; cap-cmd23; mmc-cache-ctrl; non-removable; max-frequency = <0x5f5e100>; cap-erase; mmc-high-capacity-erase-size; no-sdio; no-sd; sdc_tm4_sm0_freq0 = <0x0>; sdc_tm4_sm0_freq1 = <0x0>; sdc_tm4_sm1_freq0 = <0x0>; sdc_tm4_sm1_freq1 = <0x0>; sdc_tm4_sm2_freq0 = <0x0>; sdc_tm4_sm2_freq1 = <0x0>; sdc_tm4_sm3_freq0 = <0x5000000>; sdc_tm4_sm3_freq1 = <0x5>; sdc_tm4_sm4_freq0 = <0x50000>; sdc_tm4_sm4_freq1 = <0x4>; status = "disabled"; mmc-ddr-1_8v; mmc-hs200-1_8v; mmc-hs400-1_8v; sunxi-power-save-mode; sunxi-dis-signal-vol-sw; ctl-spec-caps = <0x8>; vmmc-supply = <0x69>; vqmmc-supply = <0x68>; linux,phandle = <0x147>; phandle = <0x147>; }; sdmmc@04020000 { compatible = "allwinner,sunxi-mmc-v4p1x"; device_type = "sdc0"; reg = <0x0 0x4020000 0x0 0x1000>; interrupts = <0x0 0x23 0x4>; clocks = <0x9 0x86 0x8d 0x8e 0x8f>; clock-names = "osc24m", "pll_periph", "mmc", "ahb", "rst"; pinctrl-names = "default", "sleep", "uart_jtag"; pinctrl-0 = <0x90>; pinctrl-1 = <0x91>; pinctrl-2 = <0x92>; max-frequency = <0x8f0d180>; bus-width = <0x4>; cd-gpios = <0x53 0x8 0x10 0x6 0x1 0x3 0xffffffff>; cap-sd-highspeed; cap-wait-while-busy; no-sdio; no-mmc; sunxi-power-save-mode; status = "okay"; cd-used-24M; sd-uhs-sdr50; sd-uhs-ddr50; sd-uhs-sdr104; ctl-spec-caps = <0x8>; vmmc-supply = <0x69>; vqmmc33sw-supply = <0x69>; vdmmc33sw-supply = <0x69>; vqmmc18sw-supply = <0x68>; vdmmc18sw-supply = <0x68>; linux,phandle = <0x148>; phandle = <0x148>; }; sdmmc@04021000 { compatible = "allwinner,sunxi-mmc-v4p1x"; device_type = "sdc1"; reg = <0x0 0x4021000 0x0 0x1000>; interrupts = <0x0 0x24 0x4>; clocks = <0x9 0x86 0x93 0x94 0x95>; clock-names = "osc24m", "pll_periph", "mmc", "ahb", "rst"; pinctrl-names = "default", "sleep"; pinctrl-0 = <0x96>; pinctrl-1 = <0x97>; max-frequency = <0x8f0d180>; bus-width = <0x4>; keep-power-in-suspend; sunxi-dly-52M-ddr4 = <0x1 0x0 0x0 0x0 0x2>; sunxi-dly-104M = <0x1 0x0 0x0 0x0 0x1>; sunxi-dly-208M = <0x1 0x0 0x0 0x0 0x1>; status = "okay"; no-mmc; no-sd; cap-sd-highspeed; sd-uhs-sdr50; sd-uhs-ddr50; sd-uhs-sdr104; sunxi-dis-signal-vol-sw; cap-sdio-irq; ignore-pm-notify; ctl-spec-caps = <0x8>; linux,phandle = <0xd4>; phandle = <0xd4>; }; disp@01000000 { compatible = "allwinner,sunxi-disp"; reg = <0x0 0x1000000 0x0 0x1400000 0x0 0x6510000 0x0 0x200 0x0 0x6511000 0x0 0x1000 0x0 0x6512000 0x0 0x1000 0x0 0x6515000 0x0 0x1000 0x0 0x6516000 0x0 0x1000>; interrupts = <0x0 0x58 0x4 0x0 0x40 0x4 0x0 0x41 0x4 0x0 0x42 0x4 0x0 0x43 0x4>; clocks = <0xb 0x98 0x12 0x13 0x14 0x15 0x16>; boot_disp = <0x0>; fb_base = <0x0>; iommus = <0x28 0x0 0x0>; status = "okay"; disp_init_enable = <0x1>; disp_mode = <0x0>; screen0_output_type = <0x3>; screen0_output_mode = <0xa>; screen0_output_format = <0x0>; screen0_output_bits = <0x0>; screen0_output_eotf = <0x4>; screen0_output_cs = <0x101>; screen0_output_dvi_hdmi = <0x2>; screen0_output_range = <0x2>; screen0_output_scan = <0x0>; screen0_output_aspect_ratio = <0x8>; screen1_output_type = <0x2>; screen1_output_mode = <0xb>; screen1_output_format = <0x1>; screen1_output_bits = <0x0>; screen1_output_eotf = <0x4>; screen1_output_cs = <0x104>; screen1_output_dvi_hdmi = <0x0>; screen1_output_range = <0x2>; screen1_output_scan = <0x0>; screen1_output_aspect_ratio = <0x8>; dev0_output_type = <0x4>; dev0_output_mode = <0xa>; dev0_screen_id = <0x0>; dev0_do_hpd = <0x1>; dev1_output_type = <0x2>; dev1_output_mode = <0xb>; dev1_screen_id = <0x1>; dev1_do_hpd = <0x1>; dev2_output_type = <0x0>; def_output_dev = <0x0>; hdmi_mode_check = <0x1>; fb0_format = <0x0>; fb0_width = <0x500>; fb0_height = <0x2d0>; fb1_format = <0x0>; fb1_width = <0x0>; fb1_height = <0x0>; chn_cfg_mode = <0x1>; disp_para_zone = <0x1>; linux,phandle = <0x149>; phandle = <0x149>; }; tv0@01c94000 { compatible = "allwinner,sunxi-tv"; reg = <0x0 0x6520000 0x0 0x100 0x0 0x6524000 0x0 0x3fc>; clocks = <0x18 0x17>; device_type = "tv0"; pinctrl-names = "active", "sleep"; status = "okay"; dac_src0 = <0x0>; dac_type0 = <0x0>; interface = <0x1>; linux,phandle = <0x14a>; phandle = <0x14a>; }; lcd0@01c0c000 { compatible = "allwinner,sunxi-lcd0"; pinctrl-names = "active", "sleep"; status = "okay"; lcd_used = <0x0>; lcd_driver_name = "default_lcd"; lcd_backlight = <0x32>; lcd_if = <0x0>; lcd_x = <0x500>; lcd_y = <0x320>; lcd_width = <0x96>; lcd_height = <0x5e>; lcd_dclk_freq = <0x46>; lcd_pwm_used = <0x0>; lcd_pwm_ch = <0x0>; lcd_pwm_freq = <0xc350>; lcd_pwm_pol = <0x0>; lcd_pwm_max_limit = <0xff>; lcd_hbp = <0x14>; lcd_ht = <0x58a>; lcd_hspw = <0xa>; lcd_vbp = <0xa>; lcd_vt = <0x32e>; lcd_vspw = <0x5>; lcd_lvds_if = <0x0>; lcd_lvds_colordepth = <0x0>; lcd_lvds_mode = <0x0>; lcd_frm = <0x0>; lcd_hv_clk_phase = <0x0>; lcd_hv_sync_polarity = <0x0>; lcd_gamma_en = <0x0>; lcd_bright_curve_en = <0x0>; lcd_cmap_en = <0x0>; deu_mode = <0x0>; lcdgamma4iep = <0x16>; smart_color = <0x5a>; lcd_pin_power = "bldo1"; lcd_power = "dc1sw"; pinctrl-0 = <0x99>; pinctrl-1 = <0x9a>; linux,phandle = <0x14b>; phandle = <0x14b>; }; lcd1@01c0c001 { compatible = "allwinner,sunxi-lcd1"; pinctrl-names = "active", "sleep"; status = "okay"; linux,phandle = <0x14c>; phandle = <0x14c>; }; boot_disp { compatible = "allwinner,boot_disp"; linux,phandle = <0x14d>; phandle = <0x14d>; }; hdmi@06000000 { compatible = "allwinner,sunxi-hdmi"; reg = <0x0 0x6000000 0x0 0x100000>; interrupts = <0x0 0x3f 0x0>; clocks = <0xf 0x10 0x19 0x11>; status = "okay"; hdmi_used = <0x1>; hdmi_power_cnt = <0x2>; hdmi_power0 = "vcc-hdmi"; hdmi_power1 = "vdd-hdmi"; hdmi_hdcp_enable = <0x1>; hdmi_hdcp22_enable = <0x1>; hdmi_cts_compatibility = <0x0>; hdmi_cec_support = <0x0>; hdmi_cec_super_standby = <0x0>; hdmi_skip_bootedid = <0x1>; ddc_en_io_ctrl = <0x0>; power_io_ctrl = <0x0>; linux,phandle = <0x14e>; phandle = <0x14e>; }; g2d@01480000 { compatible = "allwinner,sunxi-g2d"; reg = <0x0 0x1480000 0x0 0x3ffff>; interrupts = <0x0 0x5a 0x4>; clocks = <0xd>; iommus = <0x28 0x6 0x1>; linux,phandle = <0x14f>; phandle = <0x14f>; }; tr@01000000 { compatible = "allwinner,sun50i-tr"; reg = <0x0 0x1000000 0x0 0x200bc>; interrupts = <0x0 0x60 0x4>; clocks = <0xb>; status = "okay"; linux,phandle = <0x150>; phandle = <0x150>; }; pwm@0300a000 { compatible = "allwinner,sunxi-pwm"; reg = <0x0 0x300a000 0x0 0x3ff>; clocks = <0x9b>; pwm-number = <0x6>; pwm-base = <0x0>; pwms = <0x9c 0x9d 0x9e 0x9f 0xa0 0xa1>; linux,phandle = <0x151>; phandle = <0x151>; }; pwm0@0300a000 { compatible = "allwinner,sunxi-pwm0"; pinctrl-names = "active", "sleep"; reg_base = <0x300a000>; linux,phandle = <0x9c>; phandle = <0x9c>; }; pwm1@0300a000 { compatible = "allwinner,sunxi-pwm1"; pinctrl-names = "active", "sleep"; reg_base = <0x300a000>; linux,phandle = <0x9d>; phandle = <0x9d>; }; pwm2@0300a000 { compatible = "allwinner,sunxi-pwm2"; pinctrl-names = "active", "sleep"; reg_base = <0x300a000>; linux,phandle = <0x9e>; phandle = <0x9e>; }; pwm3@0300a000 { compatible = "allwinner,sunxi-pwm3"; pinctrl-names = "active", "sleep"; reg_base = <0x300a000>; linux,phandle = <0x9f>; phandle = <0x9f>; }; pwm4@0300a000 { compatible = "allwinner,sunxi-pwm4"; pinctrl-names = "active", "sleep"; reg_base = <0x300a000>; linux,phandle = <0xa0>; phandle = <0xa0>; }; pwm5@0300a000 { compatible = "allwinner,sunxi-pwm5"; pinctrl-names = "active", "sleep"; reg_base = <0x300a000>; pinctrl-0 = <0xa2>; pinctrl-1 = <0xa3>; clk_bypass_output = <0x1>; linux,phandle = <0xa1>; phandle = <0xa1>; }; ac200 { compatible = "allwinner,sunxi-ac200"; status = "okay"; tv_used = <0x1>; tv_twi_used = <0x1>; tv_twi_id = <0x3>; tv_twi_addr = <0x10>; tv_pwm_ch = <0x5>; linux,phandle = <0x152>; phandle = <0x152>; }; vind@0 { compatible = "allwinner,sunxi-vin-media", "simple-bus"; #address-cells = <0x2>; #size-cells = <0x2>; ranges; device_id = <0x0>; vind0_clk = <0x16e36000>; reg = <0x0 0x6600800 0x0 0x200 0x0 0x6600000 0x0 0x800>; clocks = <0xa4 0xa5 0xa6 0x9 0xa5 0xa7 0x9 0xa5>; pinctrl-names = "mclk0-default", "mclk0-sleep", "mclk1-default", "mclk1-sleep"; pinctrl-0 = <0xa8>; pinctrl-1 = <0xa9>; pinctrl-2 = <0xaa>; pinctrl-3 = <0xab>; status = "okay"; linux,phandle = <0x153>; phandle = <0x153>; cci@0 { compatible = "allwinner,sunxi-csi_cci"; reg = <0x0 0x6614000 0x0 0x400>; interrupts = <0x0 0x4b 0x4>; pinctrl-names = "default", "sleep"; pinctrl-0 = <0xac>; pinctrl-1 = <0xad>; device_id = <0x0>; status = "okay"; linux,phandle = <0x154>; phandle = <0x154>; }; cci@1 { compatible = "allwinner,sunxi-csi_cci"; reg = <0x0 0x6614400 0x0 0x400>; interrupts = <0x0 0x4c 0x4>; pinctrl-names = "default", "sleep"; pinctrl-0 = <0xae>; pinctrl-1 = <0xaf>; device_id = <0x1>; status = "okay"; linux,phandle = <0x155>; phandle = <0x155>; }; csi@0 { device_type = "csi0"; compatible = "allwinner,sunxi-csi"; reg = <0x0 0x6601000 0x0 0x1000>; interrupts = <0x0 0x49 0x4>; device_id = <0x0>; iommus = <0x28 0x4 0x1>; status = "okay"; linux,phandle = <0x156>; phandle = <0x156>; }; csi@1 { device_type = "csi1"; compatible = "allwinner,sunxi-csi"; reg = <0x0 0x6602000 0x0 0x1000>; interrupts = <0x0 0x4a 0x4>; pinctrl-names = "default", "sleep"; pinctrl-0 = <0xb0>; pinctrl-1 = <0xb1>; device_id = <0x1>; iommus = <0x28 0x4 0x1>; status = "okay"; linux,phandle = <0x157>; phandle = <0x157>; }; mipi@0 { compatible = "allwinner,sunxi-mipi"; reg = <0x0 0x660c000 0x0 0x1000>; interrupts = <0x0 0x4d 0x4>; device_id = <0x0>; status = "okay"; linux,phandle = <0x158>; phandle = <0x158>; }; isp@0 { compatible = "allwinner,sunxi-isp"; device_id = <0x0>; status = "okay"; linux,phandle = <0x159>; phandle = <0x159>; }; isp@1 { compatible = "allwinner,sunxi-isp"; device_id = <0x1>; status = "okay"; linux,phandle = <0x15a>; phandle = <0x15a>; }; scaler@0 { compatible = "allwinner,sunxi-scaler"; device_id = <0x0>; iommus = <0x28 0x4 0x1>; status = "okay"; linux,phandle = <0x15b>; phandle = <0x15b>; }; scaler@1 { compatible = "allwinner,sunxi-scaler"; device_id = <0x1>; iommus = <0x28 0x4 0x1>; status = "okay"; linux,phandle = <0x15c>; phandle = <0x15c>; }; scaler@2 { compatible = "allwinner,sunxi-scaler"; device_id = <0x2>; iommus = <0x28 0x4 0x1>; status = "okay"; linux,phandle = <0x15d>; phandle = <0x15d>; }; scaler@3 { compatible = "allwinner,sunxi-scaler"; device_id = <0x3>; iommus = <0x28 0x4 0x1>; status = "okay"; linux,phandle = <0x15e>; phandle = <0x15e>; }; scaler@4 { compatible = "allwinner,sunxi-scaler"; device_id = <0x4>; iommus = <0x28 0x4 0x1>; status = "okay"; linux,phandle = <0x15f>; phandle = <0x15f>; }; scaler@5 { compatible = "allwinner,sunxi-scaler"; device_id = <0x5>; iommus = <0x28 0x4 0x1>; status = "okay"; linux,phandle = <0x160>; phandle = <0x160>; }; actuator@0 { device_type = "actuator0"; compatible = "allwinner,sunxi-actuator"; actuator0_name = "ad5820_act"; actuator0_slave = <0x18>; actuator0_af_pwdn; actuator0_afvdd = "afvcc-csi"; actuator0_afvdd_vol = <0x2ab980>; status = "disabled"; linux,phandle = <0xb3>; phandle = <0xb3>; }; flash@0 { device_type = "flash0"; compatible = "allwinner,sunxi-flash"; flash0_type = <0x2>; flash0_en; flash0_mode; flash0_flvdd = [00]; flash0_flvdd_vol; device_id = <0x0>; status = "disabled"; linux,phandle = <0xb2>; phandle = <0xb2>; }; sensor@0 { device_type = "sensor0"; compatible = "allwinner,sunxi-sensor"; sensor0_mname = "ov5640"; sensor0_twi_cci_id = <0x0>; sensor0_twi_addr = <0x78>; sensor0_mclk_id = <0x0>; sensor0_pos = "rear"; sensor0_isp_used = <0x0>; sensor0_fmt = <0x0>; sensor0_stby_mode = <0x0>; sensor0_vflip = <0x0>; sensor0_hflip = <0x0>; sensor0_cameravdd-supply; sensor0_cameravdd_vol = <0x2ab980>; sensor0_iovdd-supply; sensor0_iovdd_vol = <0x2ab980>; sensor0_avdd-supply; sensor0_avdd_vol = <0x2ab980>; sensor0_dvdd-supply; sensor0_dvdd_vol = <0x16e360>; sensor0_power_en; sensor0_reset = <0x53 0x4 0xe 0x1 0x0 0x1 0x0>; sensor0_pwdn = <0x53 0x4 0x10 0x1 0x0 0x1 0x0>; sensor0_sm_vs; flash_handle = <0xb2>; act_handle = <0xb3>; device_id = <0x0>; status = "okay"; linux,phandle = <0x161>; phandle = <0x161>; }; sensor@1 { device_type = "sensor1"; compatible = "allwinner,sunxi-sensor"; sensor1_mname = "ov5647"; sensor1_twi_cci_id = <0x1>; sensor1_twi_addr = <0x6c>; sensor1_mclk_id = <0x1>; sensor1_pos = "front"; sensor1_isp_used = <0x0>; sensor1_fmt = <0x0>; sensor1_stby_mode = <0x0>; sensor1_vflip = <0x0>; sensor1_hflip = <0x0>; sensor1_cameravdd-supply; sensor1_cameravdd_vol = <0x2ab980>; sensor1_iovdd-supply; sensor1_iovdd_vol = <0x2ab980>; sensor1_avdd-supply; sensor1_avdd_vol = <0x2ab980>; sensor1_dvdd-supply; sensor1_dvdd_vol = <0x16e360>; sensor1_power_en; sensor1_reset = <0x53 0x4 0xe 0x1 0x0 0x1 0x0>; sensor1_pwdn = <0x53 0x4 0xf 0x1 0x0 0x1 0x0>; sensor1_sm_vs; flash_handle; act_handle; device_id = <0x1>; status = "okay"; linux,phandle = <0x162>; phandle = <0x162>; }; vinc@0 { device_type = "vinc0"; compatible = "allwinner,sunxi-vin-core"; reg = <0x0 0x6609000 0x0 0x200>; interrupts = <0x0 0x45 0x4>; vinc0_csi_sel = <0x0>; vinc0_mipi_sel = <0x0>; vinc0_isp_sel = <0x0>; vinc0_isp_tx_ch = <0x0>; vinc0_rear_sensor_sel = <0x0>; vinc0_front_sensor_sel = <0x0>; vinc0_sensor_list = <0x0>; device_id = <0x0>; iommus = <0x28 0x4 0x1>; status = "okay"; linux,phandle = <0x163>; phandle = <0x163>; }; vinc@1 { device_type = "vinc1"; compatible = "allwinner,sunxi-vin-core"; reg = <0x0 0x6609200 0x0 0x200>; interrupts = <0x0 0x46 0x4>; vinc1_csi_sel = <0x0>; vinc1_mipi_sel = <0x0>; vinc1_isp_sel = <0x0>; vinc1_isp_tx_ch = <0x0>; vinc1_rear_sensor_sel = <0x0>; vinc1_front_sensor_sel = <0x0>; vinc1_sensor_list = <0x0>; device_id = <0x1>; iommus = <0x28 0x4 0x1>; status = "okay"; linux,phandle = <0x164>; phandle = <0x164>; }; vinc@2 { device_type = "vinc2"; compatible = "allwinner,sunxi-vin-core"; reg = <0x0 0x6609400 0x0 0x200>; interrupts = <0x0 0x47 0x4>; vinc2_csi_sel = <0x0>; vinc2_mipi_sel = <0x0>; vinc2_isp_sel = <0x0>; vinc2_isp_tx_ch = <0x0>; vinc2_rear_sensor_sel = <0x0>; vinc2_front_sensor_sel = <0x0>; vinc2_sensor_list = <0x0>; device_id = <0x2>; iommus = <0x28 0x4 0x1>; status = "disabled"; linux,phandle = <0x165>; phandle = <0x165>; }; vinc@3 { device_type = "vinc3"; compatible = "allwinner,sunxi-vin-core"; reg = <0x0 0x6609600 0x0 0x200>; interrupts = <0x0 0x48 0x4>; vinc3_csi_sel = <0x0>; vinc3_mipi_sel = <0x0>; vinc3_isp_sel = <0x0>; vinc3_isp_tx_ch = <0x0>; vinc3_rear_sensor_sel = <0x0>; vinc3_front_sensor_sel = <0x0>; vinc3_sensor_list = <0x0>; device_id = <0x3>; iommus = <0x28 0x4 0x1>; status = "disabled"; linux,phandle = <0x166>; phandle = <0x166>; }; vinc@4 { device_type = "vinc4"; compatible = "allwinner,sunxi-vin-core"; reg = <0x0 0x6609800 0x0 0x200>; interrupts = <0x0 0x4f 0x4>; vinc4_csi_sel = <0x1>; vinc4_mipi_sel = <0xff>; vinc4_isp_sel = <0x1>; vinc4_isp_tx_ch = <0x0>; vinc4_rear_sensor_sel = <0x1>; vinc4_front_sensor_sel = <0x1>; vinc4_sensor_list = <0x0>; device_id = <0x4>; iommus = <0x28 0x5 0x1>; status = "disabled"; linux,phandle = <0x167>; phandle = <0x167>; }; vinc@5 { device_type = "vinc5"; compatible = "allwinner,sunxi-vin-core"; reg = <0x0 0x6609a00 0x0 0x200>; interrupts = <0x0 0x50 0x4>; vinc5_csi_sel = <0x1>; vinc5_mipi_sel = <0xff>; vinc5_isp_sel = <0x1>; vinc5_isp_tx_ch = <0x0>; vinc5_rear_sensor_sel = <0x1>; vinc5_front_sensor_sel = <0x1>; vinc5_sensor_list = <0x0>; device_id = <0x5>; iommus = <0x28 0x5 0x1>; status = "disabled"; linux,phandle = <0x168>; phandle = <0x168>; }; }; vdevice@0 { compatible = "allwinner,sun50i-vdevice"; device_type = "Vdevice"; pinctrl-names = "default"; interrupt-parent = <0x53>; interrupts = <0x0 0x3 0x4>; pinctrl-0 = <0xb4>; test-gpios = <0x53 0x0 0x0 0x1 0x2 0x2 0x1>; status = "okay"; linux,phandle = <0x169>; phandle = <0x169>; }; emce@01905000 { compatible = "allwinner,sunxi-emce"; device_name = "emce"; reg = <0x0 0x1905000 0x0 0x100>; clock-frequency = <0x11e1a300>; linux,phandle = <0x16a>; phandle = <0x16a>; }; ce@1904000 { compatible = "allwinner,sunxi-ce"; device_name = "ce"; reg = <0x0 0x1904000 0x0 0xa0 0x0 0x1904800 0x0 0xa0>; interrupts = <0x0 0x5b 0x1 0x0 0x5c 0x1>; clock-frequency = <0x11e1a300>; clocks = <0xb5 0xc>; linux,phandle = <0x16b>; phandle = <0x16b>; }; deinterlace@0x01420000 { #address-cells = <0x1>; #size-cells = <0x0>; compatible = "allwinner,sunxi-deinterlace"; reg = <0x0 0x1420000 0x0 0x40000>; interrupts = <0x0 0x59 0x4>; clocks = <0xe 0xc>; iommus = <0x28 0x1 0x1>; status = "okay"; linux,phandle = <0x16c>; phandle = <0x16c>; }; smartcard@0x05005000 { #address-cells = <0x1>; #size-cells = <0x0>; compatible = "allwinner,sunxi-scr"; device_type = "scr0"; reg = <0x0 0x5005000 0x0 0x400>; interrupts = <0x0 0x8 0x4>; clocks = <0xb6 0xb7>; clock-frequency = <0x16e3600>; pinctrl-names = "default", "sleep"; pinctrl-0 = <0xb8 0xb9>; pinctrl-1 = <0xba>; status = "disabled"; linux,phandle = <0x16d>; phandle = <0x16d>; }; nand0@04011000 { compatible = "allwinner,sun50iw9-nand"; device_type = "nand0"; reg = <0x0 0x4011000 0x0 0x1000>; interrupts = <0x0 0x22 0x4>; clocks = <0xc 0xbb 0xbc>; pinctrl-names = "default", "sleep"; pinctrl-1 = <0xbf>; nand0_regulator1 = "vcc-nand"; nand0_regulator2 = "none"; nand0_cache_level = <0x55aaaa55>; nand0_flush_cache_num = <0x55aaaa55>; nand0_capacity_level = <0x55aaaa55>; nand0_id_number_ctl = <0x55aaaa55>; nand0_print_level = <0x55aaaa55>; nand0_p0 = <0x55aaaa55>; nand0_p1 = <0x55aaaa55>; nand0_p2 = <0x55aaaa55>; nand0_p3 = <0x55aaaa55>; chip_code = "sun50iw9"; status = "disabled"; linux,phandle = <0x16e>; phandle = <0x16e>; nand0_support_2ch = <0x0>; pinctrl-0 = <0x18b 0x18c>; }; ts0@05060000 { compatible = "allwinner,sun50i-tsc"; device_type = "ts0"; reg = <0x0 0x5060000 0x0 0x1000>; interrupts = <0x0 0x11 0x4>; clocks = <0x2 0xc0>; clock-frequency = <0x7270e00>; pinctrl-names = "ts0-default", "ts0-sleep"; pinctrl-0 = <0xc1>; pinctrl-1 = <0xc2>; ts0config = <0x1>; status = "okay"; linux,phandle = <0x16f>; phandle = <0x16f>; }; thermal_sensor { compatible = "arm,sun50iw9p1"; reg = <0x0 0x5070400 0x0 0x400>; clocks = <0xc3>; clock-names = "bus"; nvmem-cells = <0xc4>; nvmem-cell-names = "calibration"; nvmem-names = "sid"; nvmem = <0xc5>; #thermal-sensor-cells = <0x1>; linux,phandle = <0xc6>; phandle = <0xc6>; }; thermal-zones { cpu_thermal_zone { polling-delay-passive = <0x1f4>; polling-delay = <0x3e8>; thermal-sensors = <0xc6 0x2>; sustainable-power = <0x3e8>; k_po = <0x14>; k_pu = <0x28>; k_i = <0x0>; trips { linux,phandle = <0x170>; phandle = <0x170>; trip-point@0 { temperature = <0xea60>; type = "passive"; hysteresis = <0x0>; linux,phandle = <0x171>; phandle = <0x171>; }; trip-point@1 { temperature = <0x11170>; type = "passive"; hysteresis = <0x0>; linux,phandle = <0xc7>; phandle = <0xc7>; }; cpu_crit@0 { temperature = <0x1c138>; type = "critical"; hysteresis = <0x0>; linux,phandle = <0x172>; phandle = <0x172>; }; }; cooling-maps { map0 { trip = <0xc7>; cooling-device = <0xc8 0xffffffff 0xffffffff>; contribution = <0x400>; }; map1 { trip = <0xc7>; cooling-device = <0xc9 0xffffffff 0xffffffff>; contribution = <0x400>; }; }; }; gpu_thermal_zone { polling-delay-passive = <0x1f4>; polling-delay = <0x3e8>; thermal-sensors = <0xc6 0x0>; sustainable-power = <0x44c>; }; ve_thermal_zone { polling-delay-passive = <0x0>; polling-delay = <0x0>; thermal-sensors = <0xc6 0x1>; }; ddr_thermal_zone { polling-delay-passive = <0x0>; polling-delay = <0x0>; thermal-sensors = <0xc6 0x3>; }; }; gpadc { compatible = "allwinner,sunxi-gpadc"; reg = <0x0 0x5070000 0x0 0x400>; interrupts = <0x0 0x12 0x0>; clocks = <0xca>; status = "okay"; channel_num = <0x1>; channel_select = <0x1>; channel_data_select = <0x0>; channel_compare_select = <0x1>; channel_cld_select = <0x1>; channel_chd_select = <0x0>; channel0_compare_lowdata = <0x19f0a0>; channel0_compare_higdata = <0x124f80>; key_cnt = <0x5>; key0_vol = <0x73>; key0_val = <0x73>; key1_vol = <0xf0>; key1_val = <0x72>; key2_vol = <0x168>; key2_val = <0x8b>; key3_vol = <0x1e0>; key3_val = <0x1c>; key4_vol = <0x258>; key4_val = <0x66>; linux,phandle = <0x173>; phandle = <0x173>; }; keyboard { compatible = "allwinner,keyboard_1350mv"; reg = <0x0 0x5070800 0x0 0x400>; clocks = <0xcb>; interrupts = <0x0 0x14 0x0>; status = "okay"; key_cnt = <0x5>; key0 = <0xd2 0x73>; key1 = <0x19a 0x72>; key2 = <0x24e 0x8b>; key3 = <0x2ee 0x1c>; key4 = <0x370 0xac>; linux,phandle = <0x174>; phandle = <0x174>; }; eth@05020000 { compatible = "allwinner,sunxi-gmac"; reg = <0x0 0x5020000 0x0 0x10000 0x0 0x3000030 0x0 0x4>; interrupts = <0x0 0xe 0x4>; interrupt-names = "gmacirq"; clocks = <0xcc 0xcd>; clock-names = "gmac", "ephy"; device_type = "gmac0"; pinctrl-0 = <0xce>; pinctrl-1 = <0xcf>; pinctrl-names = "default", "sleep"; phy-mode; tx-delay = <0x7>; rx-delay = <0x1f>; phy-rst; gmac-power0; gmac-power1; gmac-power2; status = "disable"; linux,phandle = <0x175>; phandle = <0x175>; }; eth@05030000 { compatible = "allwinner,sunxi-gmac"; reg = <0x0 0x5030000 0x0 0x10000 0x0 0x3000034 0x0 0x4>; interrupts = <0x0 0xf 0x4>; interrupt-names = "gmacirq"; clocks = <0xd0>; clock-names = "gmac"; device_type = "gmac1"; pinctrl-0 = <0xd1>; pinctrl-1 = <0xd2>; pinctrl-names = "default", "sleep"; phy-mode = "rmii"; tx-delay = <0x7>; rx-delay = <0x1f>; phy-rst; gmac-power0; gmac-power1; gmac-power2; status = "okay"; linux,phandle = <0x176>; phandle = <0x176>; }; gpio_encrypt { compatible = "allwinner,gpio_encrypt"; gpio_number_sun = <0x5>; gpio1_value = <0x0>; gpio2_value = <0x0>; gpio3_value = <0x0>; gpio4_value = <0x0>; gpio5_value = <0x0>; gpio1_pin = <0x53 0x8 0x1 0x1 0xffffffff 0xffffffff 0x0>; gpio2_pin = <0x53 0x8 0x2 0x1 0xffffffff 0xffffffff 0x0>; gpio3_pin = <0x53 0x8 0x3 0x1 0xffffffff 0xffffffff 0x0>; gpio4_pin = <0x53 0x8 0x4 0x1 0xffffffff 0xffffffff 0x0>; gpio5_pin = <0x53 0x8 0x5 0x1 0xffffffff 0xffffffff 0x0>; status = "disable"; linux,phandle = <0x177>; phandle = <0x177>; }; fd650 { compatible = "oranth,fd650"; status = "okay"; fd650_gpio_clk = <0x53 0x8 0xb 0x1 0xffffffff 0xffffffff 0x0>; fd650_gpio_dat = <0x53 0x8 0xc 0x1 0xffffffff 0xffffffff 0x0>; }; wlan { compatible = "allwinner,sunxi-wlan"; clocks = <0x1b>; pinctrl-0 = <0xd3>; pinctrl-names = "default"; wlan_busnum = <0x1>; wlan_power; wlan_io_regulator; wlan_regon = <0x53 0x6 0x12 0x1 0xffffffff 0xffffffff 0x0>; wlan_hostwake = <0x53 0x6 0xf 0x6 0xffffffff 0xffffffff 0x0>; chip_en; power_en; status = "okay"; linux,phandle = <0x178>; phandle = <0x178>; }; bt { compatible = "allwinner,sunxi-bt"; clocks = <0x1b>; bt_power; bt_io_regulator; bt_rst_n = <0x53 0x6 0x13 0x1 0xffffffff 0xffffffff 0x0>; status = "okay"; linux,phandle = <0x179>; phandle = <0x179>; }; btlpm { compatible = "allwinner,sunxi-btlpm"; uart_index = <0x1>; bt_wake = <0x53 0x6 0x11 0x1 0xffffffff 0xffffffff 0x1>; bt_hostwake = <0x53 0x6 0x10 0x6 0xffffffff 0xffffffff 0x0>; status = "okay"; linux,phandle = <0x17a>; phandle = <0x17a>; }; addr_mgt { compatible = "allwinner,sunxi-addr_mgt"; type_addr_wifi = <0x0>; type_addr_bt = <0x0>; type_addr_eth = <0x0>; status = "okay"; linux,phandle = <0x17b>; phandle = <0x17b>; }; sprd-marlin3 { compatible = "sprd,marlin3"; reset-gpios = <0x53 0x6 0x13 0x1 0xffffffff 0xffffffff 0x0>; enable-gpios = <0x53 0x6 0x12 0x1 0xffffffff 0xffffffff 0x0>; m2-to-ap-irq-gpios = <0x53 0x6 0x10 0x6 0xffffffff 0xffffffff 0x0>; sdhci-name = <0xd4>; sprd,btwf-file-name = "/vendor/etc/firmware/wcnmodem.bin"; sprd,gnss-file-name = "/vendor/etc/firmware/gnssmodem.bin"; adma-tx; adma-rx; data-irq; linux,phandle = <0x17c>; phandle = <0x17c>; }; gpio_para { device_type = "gpio_para"; status = "okay"; compatible = "allwinner,sunxi-init-gpio"; gpio_num = <0x2>; gpio_pin_1 = <0x53 0x7 0x6 0x1 0xffffffff 0xffffffff 0x1>; gpio_pin_2 = <0x53 0x7 0x7 0x1 0xffffffff 0xffffffff 0x0>; normal_led = "gpio_pin_1"; standby_led = "gpio_pin_2"; easy_light_used = <0x1>; normal_led_light = <0x1>; standby_led_light = <0x1>; }; product { device_type = "product"; version = "100"; machine = "evb"; }; platform { device_type = "platform"; eraseflag = <0x1>; debug_mode = <0x3>; }; target { device_type = "target"; boot_clock = <0x3f0>; storage_type = <0xffffffff>; advert_enable = <0x0>; burn_key = <0x1>; dragonboard_test = <0x0>; auto_fel = <0x1>; }; power_sply { device_type = "power_sply"; dcdc2_vol = <0xf4628>; aldo1_vol = <0xf4948>; dldo1_vol = <0xf4f24>; }; axp1530_power_sply { device_type = "axp1530_power_sply"; dcdc2_vol = <0xf4628>; aldo1_vol = <0xf4948>; dldo1_vol = <0xf4f24>; }; axp806_power_sply { device_type = "axp806_power_sply"; dcdce_vol = <0xf4f24>; aldo1_vol = <0xf4f24>; bldo1_vol = <0xf4948>; }; card_boot { device_type = "card_boot"; logical_start = <0xa000>; sprite_gpio0 = <0x53 0x7 0x6 0x1 0xffffffff 0xffffffff 0x1>; }; boot_init_gpio { device_type = "boot_init_gpio"; status = "okay"; gpio0 = <0x53 0x7 0x6 0x1 0xffffffff 0xffffffff 0x1>; gpio1 = <0x53 0x7 0x7 0x1 0xffffffff 0xffffffff 0x0>; }; ir_boot_recovery { device_type = "ir_boot_recovery"; status = "okay"; ir_work_mode = <0x2>; ir_press_times = <0x1>; ir_detect_time = <0x7d0>; ir_key_no_duplicate = <0x0>; ir_recovery_key_code0 = <0x45>; ir_addr_code0 = <0x4040>; ir_recovery_key_code1 = <0x49>; ir_addr_code1 = <0x7f80>; }; key_boot_recovery { device_type = "key_boot_recovery"; recovery_key_used = <0x1>; press_mode_enable = <0x0>; key_work_mode = <0x2>; short_press_mode = <0x0>; long_press_mode = <0x1>; key_press_time = <0x7d0>; recovery_key = <0x53 0x7 0x9 0x0 0xffffffff 0xffffffff 0xffffffff>; }; pm_para { device_type = "pm_para"; standby_mode = <0x1>; }; card0_boot_para { device_type = "card0_boot_para"; card_ctrl = <0x0>; card_high_speed = <0x1>; card_line = <0x4>; pinctrl-0 = <0x184>; }; card2_boot_para { device_type = "card2_boot_para"; card_ctrl = <0x2>; card_high_speed = <0x1>; card_line = <0x8>; pinctrl-0 = <0x185 0x186>; sdc_ex_dly_used = <0x2>; sdc_io_1v8 = <0x1>; sdc_tm4_win_th = <0xa>; }; gpio_bias { device_type = "gpio_bias"; pc_bias = <0x708>; }; twi_para { device_type = "twi_para"; twi_port = <0x0>; pinctrl-0 = <0x187>; }; uart_para { device_type = "uart_para"; uart_debug_port = <0x0>; pinctrl-0 = <0x188>; }; jtag_para { device_type = "jtag_para"; jtag_enable = <0x1>; pinctrl-0 = <0x189>; }; clock { device_type = "clock"; pll4 = <0x12c>; pll6 = <0x258>; pll8 = <0x168>; pll9 = <0x129>; pll10 = <0x108>; }; dram_select_para { device_type = "dram_select_para"; select_mode = <0x0>; select_gpio0 = <0x53 0x8 0xe 0x0 0x1 0xffffffff 0xffffffff>; select_gpio1 = <0x53 0x8 0xf 0x0 0x1 0xffffffff 0xffffffff>; select_gpio2 = <0x53 0x8 0x10 0x0 0x1 0xffffffff 0xffffffff>; select_gpio3; }; dram_para1 { device_type = "dram_para1"; dram_clk = <0x258>; dram_type = <0x3>; dram_dx_odt = <0x3030303>; dram_dx_dri = <0xe0e0e0e>; dram_ca_dri = <0x1c12>; dram_odt_en = <0x1>; dram_para1 = <0x30fb>; dram_para2 = <0x0>; dram_mr0 = <0x840>; dram_mr1 = <0x4>; dram_mr2 = <0x8>; dram_mr3 = <0x0>; dram_mr4 = <0x0>; dram_mr5 = <0x0>; dram_mr6 = <0x0>; dram_mr11 = <0x0>; dram_mr12 = <0x0>; dram_mr13 = <0x0>; dram_mr14 = <0x0>; dram_mr16 = <0x0>; dram_mr17 = <0x0>; dram_mr22 = <0x0>; dram_tpr0 = <0xc0000a05>; dram_tpr1 = <0x0>; dram_tpr2 = <0x0>; dram_tpr3 = <0x0>; dram_tpr6 = <0x33808080>; dram_tpr10 = <0x2f0006>; dram_tpr11 = <0xddddcccc>; dram_tpr12 = <0xeddc7564>; dram_tpr13 = <0x40>; }; dram_para2 { device_type = "dram_para2"; dram_clk = <0x258>; dram_type = <0x3>; dram_dx_odt = <0x3030303>; dram_dx_dri = <0xe0e0e0e>; dram_ca_dri = <0x1c12>; dram_odt_en = <0x1>; dram_para1 = <0x30fb>; dram_para2 = <0x0>; dram_mr0 = <0x840>; dram_mr1 = <0x4>; dram_mr2 = <0x8>; dram_mr3 = <0x0>; dram_mr4 = <0x0>; dram_mr5 = <0x0>; dram_mr6 = <0x0>; dram_mr11 = <0x0>; dram_mr12 = <0x0>; dram_mr13 = <0x0>; dram_mr14 = <0x0>; dram_mr16 = <0x0>; dram_mr17 = <0x0>; dram_mr22 = <0x0>; dram_tpr0 = <0xc0000a05>; dram_tpr1 = <0x0>; dram_tpr2 = <0x0>; dram_tpr3 = <0x0>; dram_tpr6 = <0x33808080>; dram_tpr10 = <0x2f0006>; dram_tpr11 = <0xddddcccc>; dram_tpr12 = <0xeddc7564>; dram_tpr13 = <0x40>; }; dram_para3 { device_type = "dram_para3"; dram_clk = <0x258>; dram_type = <0x3>; dram_dx_odt = <0x3030303>; dram_dx_dri = <0xe0e0e0e>; dram_ca_dri = <0x1c12>; dram_odt_en = <0x1>; dram_para1 = <0x30fb>; dram_para2 = <0x0>; dram_mr0 = <0x840>; dram_mr1 = <0x4>; dram_mr2 = <0x8>; dram_mr3 = <0x0>; dram_mr4 = <0x0>; dram_mr5 = <0x0>; dram_mr6 = <0x0>; dram_mr11 = <0x0>; dram_mr12 = <0x0>; dram_mr13 = <0x0>; dram_mr14 = <0x0>; dram_mr16 = <0x0>; dram_mr17 = <0x0>; dram_mr22 = <0x0>; dram_tpr0 = <0xc0000a05>; dram_tpr1 = <0x0>; dram_tpr2 = <0x0>; dram_tpr3 = <0x0>; dram_tpr6 = <0x33808080>; dram_tpr10 = <0x2f0006>; dram_tpr11 = <0xddddcccc>; dram_tpr12 = <0xeddc7564>; dram_tpr13 = <0x40>; }; dram_para4 { device_type = "dram_para4"; dram_clk = <0x258>; dram_type = <0x3>; dram_dx_odt = <0x3030303>; dram_dx_dri = <0xe0e0e0e>; dram_ca_dri = <0x1c12>; dram_odt_en = <0x1>; dram_para1 = <0x30fb>; dram_para2 = <0x0>; dram_mr0 = <0x840>; dram_mr1 = <0x4>; dram_mr2 = <0x8>; dram_mr3 = <0x0>; dram_mr4 = <0x0>; dram_mr5 = <0x0>; dram_mr6 = <0x0>; dram_mr11 = <0x0>; dram_mr12 = <0x0>; dram_mr13 = <0x0>; dram_mr14 = <0x0>; dram_mr16 = <0x0>; dram_mr17 = <0x0>; dram_mr22 = <0x0>; dram_tpr0 = <0xc0000a05>; dram_tpr1 = <0x0>; dram_tpr2 = <0x0>; dram_tpr3 = <0x0>; dram_tpr6 = <0x33808080>; dram_tpr10 = <0x2f0006>; dram_tpr11 = <0xddddcccc>; dram_tpr12 = <0xeddc7564>; dram_tpr13 = <0x40>; }; dram_para5 { device_type = "dram_para5"; dram_clk = <0x258>; dram_type = <0x3>; dram_dx_odt = <0x3030303>; dram_dx_dri = <0xe0e0e0e>; dram_ca_dri = <0x1c12>; dram_odt_en = <0x1>; dram_para1 = <0x30fb>; dram_para2 = <0x0>; dram_mr0 = <0x840>; dram_mr1 = <0x4>; dram_mr2 = <0x8>; dram_mr3 = <0x0>; dram_mr4 = <0x0>; dram_mr5 = <0x0>; dram_mr6 = <0x0>; dram_mr11 = <0x0>; dram_mr12 = <0x0>; dram_mr13 = <0x0>; dram_mr14 = <0x0>; dram_mr16 = <0x0>; dram_mr17 = <0x0>; dram_mr22 = <0x0>; dram_tpr0 = <0xc0000a05>; dram_tpr1 = <0x0>; dram_tpr2 = <0x0>; dram_tpr3 = <0x0>; dram_tpr6 = <0x33808080>; dram_tpr10 = <0x2f0006>; dram_tpr11 = <0xddddcccc>; dram_tpr12 = <0xeddc7564>; dram_tpr13 = <0x40>; }; dram_para6 { device_type = "dram_para6"; dram_clk = <0x258>; dram_type = <0x3>; dram_dx_odt = <0x3030303>; dram_dx_dri = <0xe0e0e0e>; dram_ca_dri = <0x1c12>; dram_odt_en = <0x1>; dram_para1 = <0x30fb>; dram_para2 = <0x0>; dram_mr0 = <0x840>; dram_mr1 = <0x4>; dram_mr2 = <0x8>; dram_mr3 = <0x0>; dram_mr4 = <0x0>; dram_mr5 = <0x0>; dram_mr6 = <0x0>; dram_mr11 = <0x0>; dram_mr12 = <0x0>; dram_mr13 = <0x0>; dram_mr14 = <0x0>; dram_mr16 = <0x0>; dram_mr17 = <0x0>; dram_mr22 = <0x0>; dram_tpr0 = <0xc0000a05>; dram_tpr1 = <0x0>; dram_tpr2 = <0x0>; dram_tpr3 = <0x0>; dram_tpr6 = <0x33808080>; dram_tpr10 = <0x2f0006>; dram_tpr11 = <0xddddcccc>; dram_tpr12 = <0xeddc7564>; dram_tpr13 = <0x40>; }; dram_para7 { device_type = "dram_para7"; dram_clk = <0x258>; dram_type = <0x3>; dram_dx_odt = <0x3030303>; dram_dx_dri = <0xe0e0e0e>; dram_ca_dri = <0x1f12>; dram_odt_en = <0x1>; dram_para1 = <0x30fb>; dram_para2 = <0x0>; dram_mr0 = <0x840>; dram_mr1 = <0x4>; dram_mr2 = <0x8>; dram_mr3 = <0x0>; dram_mr4 = <0x0>; dram_mr5 = <0x0>; dram_mr6 = <0x0>; dram_mr11 = <0x0>; dram_mr12 = <0x0>; dram_mr13 = <0x0>; dram_mr14 = <0x0>; dram_mr16 = <0x0>; dram_mr17 = <0x0>; dram_mr22 = <0x0>; dram_tpr0 = <0xc0001002>; dram_tpr1 = <0x0>; dram_tpr2 = <0x0>; dram_tpr3 = <0x0>; dram_tpr6 = <0x33808080>; dram_tpr10 = <0x2f1107>; dram_tpr11 = <0xddddcccc>; dram_tpr12 = <0xeddc7665>; dram_tpr13 = <0x40>; }; secure { device_type = "secure"; dram_region_mbytes = <0x50>; drm_region_mbytes = <0x0>; drm_region_start_mbytes = <0x0>; }; }; aliases { serial0 = "/soc@03000000/uart@05000000", "/soc@03000000/uart@05000000"; serial1 = "/soc@03000000/uart@05000400", "/soc@03000000/uart@05000400"; serial2 = "/soc@03000000/uart@05000800", "/soc@03000000/uart@05000800"; serial3 = "/soc@03000000/uart@05000c00", "/soc@03000000/uart@05000c00"; serial4 = "/soc@03000000/uart@05001000", "/soc@03000000/uart@05001000"; serial5 = "/soc@03000000/uart@05001400", "/soc@03000000/uart@05001400"; twi0 = "/soc@03000000/twi@0x05002000", "/soc@03000000/twi@0x05002000"; twi1 = "/soc@03000000/twi@0x05002400", "/soc@03000000/twi@0x05002400"; twi2 = "/soc@03000000/twi@0x05002800", "/soc@03000000/twi@0x05002800"; twi3 = "/soc@03000000/twi@0x05002c00", "/soc@03000000/twi@0x05002c00"; twi4 = "/soc@03000000/twi@0x05003000", "/soc@03000000/twi@0x05003000"; twi5 = "/soc@03000000/twi@0x07081400", "/soc@03000000/twi@0x07081400"; spi0 = "/soc@03000000/spi@05010000", "/soc@03000000/spi@05010000"; spi1 = "/soc@03000000/spi@05011000", "/soc@03000000/spi@05011000"; ir0 = "/soc@03000000/s_cir@07040000", "/soc@03000000/s_cir@07040000"; pcie = "/soc@03000000/pcie@0x05400000", "/soc@03000000/pcie@0x05400000"; scr0 = "/soc@03000000/smartcard@0x05005000", "/soc@03000000/smartcard@0x05005000"; gmac0 = "/soc@03000000/eth@05020000", "/soc@03000000/eth@05020000"; gmac1 = "/soc@03000000/eth@05030000", "/soc@03000000/eth@05030000"; global_timer0 = "/soc@03000000/timer@03009000", "/soc@03000000/timer@03009000"; mmc0 = "/soc@03000000/sdmmc@04020000", "/soc@03000000/sdmmc@04020000"; mmc2 = "/soc@03000000/sdmmc@04022000", "/soc@03000000/sdmmc@04022000"; nand0 = "/soc@03000000/nand0@04011000", "/soc@03000000/nand0@04011000"; disp = "/soc@03000000/disp@01000000", "/soc@03000000/disp@01000000"; lcd0 = "/soc@03000000/lcd0@01c0c000", "/soc@03000000/lcd0@01c0c000"; lcd1 = "/soc@03000000/lcd1@01c0c001", "/soc@03000000/lcd1@01c0c001"; hdmi = "/soc@03000000/hdmi@06000000", "/soc@03000000/hdmi@06000000"; pwm = "/soc@03000000/pwm@0300a000", "/soc@03000000/pwm@0300a000"; tv0 = "/soc@03000000/tv0@01c94000", "/soc@03000000/tv0@01c94000"; ac200 = "/soc@03000000/ac200", "/soc@03000000/ac200"; boot_disp = "/soc@03000000/boot_disp", "/soc@03000000/boot_disp"; pmu0 = "/soc@03000000/twi@0x07081400/pmu", "/soc@03000000/twi@0x07081400/pmu"; standby_param = "/soc@03000000/twi@0x07081400/pmu/standby_param", "/soc@03000000/twi@0x07081400/pmu/standby_param"; linux,phandle = <0x17d>; phandle = <0x17d>; }; chosen { bootargs = "earlyprintk=sunxi-uart,0x05000000 loglevel=8 initcall_debug=1 console=ttyS0 init=/init"; linux,initrd-start = <0x0 0x0>; linux,initrd-end = <0x0 0x0>; }; firmware { android { compatible = "android,firmware"; boot_devices = "soc/sdc0,soc/sdc2,soc"; vbmeta { compatible = "android,vbmeta"; parts = "vbmeta,vbmeta_system,vbmeta_vendor,boot,super,recovery"; }; }; optee { compatible = "linaro,optee-tz"; method = "smc"; }; }; cpus { #address-cells = <0x2>; #size-cells = <0x0>; cpu@0 { device_type = "cpu"; compatible = "arm,cortex-a53", "arm,armv8"; reg = <0x0 0x0>; enable-method = "psci"; clocks = <0xd5>; operating-points-v2 = <0xd6>; cpu-idle-states = <0xd7>; dynamic-power-coefficient = <0x64>; #cooling-cells = <0x2>; cpu-supply = <0xd8>; linux,phandle = <0xc8>; phandle = <0xc8>; }; cpu@1 { device_type = "cpu"; compatible = "arm,cortex-a53", "arm,armv8"; reg = <0x0 0x1>; enable-method = "psci"; clocks = <0xd5>; operating-points-v2 = <0xd6>; cpu-idle-states = <0xd7>; #cooling-cells = <0x2>; }; cpu@2 { device_type = "cpu"; compatible = "arm,cortex-a53", "arm,armv8"; reg = <0x0 0x2>; enable-method = "psci"; clocks = <0xd5>; operating-points-v2 = <0xd6>; cpu-idle-states = <0xd7>; #cooling-cells = <0x2>; }; cpu@3 { device_type = "cpu"; compatible = "arm,cortex-a53", "arm,armv8"; reg = <0x0 0x3>; enable-method = "psci"; clocks = <0xd5>; operating-points-v2 = <0xd6>; cpu-idle-states = <0xd7>; #cooling-cells = <0x2>; }; idle-states { entry-method = "arm,psci"; cpu-sleep-0 { compatible = "arm,idle-state"; arm,psci-suspend-param = <0x10000>; entry-latency-us = <0x2e>; exit-latency-us = <0x3b>; min-residency-us = <0xdf2>; local-timer-stop; linux,phandle = <0xd7>; phandle = <0xd7>; }; }; }; opp_l_table { compatible = "allwinner,sun50i-operating-points"; nvmem-cells = <0xd9>; nvmem-cell-names = "speed"; opp-shared; linux,phandle = <0xd6>; phandle = <0xd6>; opp@480000000-0 { opp-hz = <0x0 0x1c9c3800>; opp-microvolt = <0xdbba0>; clock-latency-ns = <0x3b9b0>; opp-supported-hw = <0x33>; }; opp@480000000-1 { opp-hz = <0x0 0x1c9c3800>; opp-microvolt = <0xdbba0>; clock-latency-ns = <0x3b9b0>; opp-supported-hw = <0xc>; }; opp@600000000-0 { opp-hz = <0x0 0x23c34600>; opp-microvolt = <0xdbba0>; clock-latency-ns = <0x3b9b0>; opp-supported-hw = <0x23>; }; opp@600000000-1 { opp-hz = <0x0 0x23c34600>; opp-microvolt = <0xdbba0>; clock-latency-ns = <0x3b9b0>; opp-supported-hw = <0xc>; }; opp@720000000 { opp-hz = <0x0 0x2aea5400>; opp-microvolt = <0xdbba0>; clock-latency-ns = <0x3b9b0>; opp-supported-hw = <0x30>; }; opp@792000000-0 { opp-hz = <0x0 0x2f34f600>; opp-microvolt = <0xdbba0>; clock-latency-ns = <0x3b9b0>; opp-supported-hw = <0x3>; }; opp@792000000-1 { opp-hz = <0x0 0x2f34f600>; opp-microvolt = <0xe57e0>; clock-latency-ns = <0x3b9b0>; opp-supported-hw = <0xc>; }; opp@936000000 { opp-hz = <0x0 0x37ca3a00>; opp-microvolt = <0xdbba0>; clock-latency-ns = <0x3b9b0>; opp-supported-hw = <0x30>; }; opp@1008000000-0 { opp-hz = <0x0 0x3c14dc00>; opp-microvolt = <0xe09c0>; clock-latency-ns = <0x3b9b0>; opp-supported-hw = <0x1>; }; opp@1008000000-1 { opp-hz = <0x0 0x3c14dc00>; opp-microvolt = <0xdbba0>; clock-latency-ns = <0x3b9b0>; opp-supported-hw = <0x2>; }; opp@1008000000-2 { opp-hz = <0x0 0x3c14dc00>; opp-microvolt = <0xf9060>; clock-latency-ns = <0x3b9b0>; opp-supported-hw = <0xc>; }; opp@1008000000-3 { opp-hz = <0x0 0x3c14dc00>; opp-microvolt = <0xe7ef0>; clock-latency-ns = <0x3b9b0>; opp-supported-hw = <0x30>; }; opp@1104000000 { opp-hz = <0x0 0x41cdb400>; opp-microvolt = <0xf4240>; clock-latency-ns = <0x3b9b0>; opp-supported-hw = <0x30>; }; opp@1200000000-0 { opp-hz = <0x0 0x47868c00>; opp-microvolt = <0xef420>; clock-latency-ns = <0x3b9b0>; opp-supported-hw = <0x1>; }; opp@1200000000-1 { opp-hz = <0x0 0x47868c00>; opp-microvolt = <0xea600>; clock-latency-ns = <0x3b9b0>; opp-supported-hw = <0x2>; }; opp@1200000000-2 { opp-hz = <0x0 0x47868c00>; opp-microvolt = <0x10c8e0>; clock-latency-ns = <0x3b9b0>; opp-supported-hw = <0xc>; }; opp@1200000000-3 { opp-hz = <0x0 0x47868c00>; opp-microvolt = <0x100590>; clock-latency-ns = <0x3b9b0>; opp-supported-hw = <0x30>; }; opp@1296000000-0 { opp-hz = <0x0 0x4d3f6400>; opp-microvolt = <0x10c8e0>; clock-latency-ns = <0x3b9b0>; opp-supported-hw = <0x2>; }; opp@1296000000-1 { opp-hz = <0x0 0x4d3f6400>; opp-microvolt = <0x111700>; clock-latency-ns = <0x3b9b0>; opp-supported-hw = <0x8>; }; opp@1320000000 { opp-hz = <0x0 0x4ead9a00>; opp-microvolt = <0x10c8e0>; clock-latency-ns = <0x3b9b0>; opp-supported-hw = <0x30>; }; opp@1344000000 { opp-hz = <0x0 0x501bd000>; opp-microvolt = <0x111700>; clock-latency-ns = <0x3b9b0>; opp-supported-hw = <0x4>; }; opp@1416000000-0 { opp-hz = <0x0 0x54667200>; opp-microvolt = <0x118c30>; clock-latency-ns = <0x3b9b0>; opp-supported-hw = <0x10>; }; opp@1416000000-1 { opp-hz = <0x0 0x54667200>; opp-microvolt = <0x11b340>; clock-latency-ns = <0x3b9b0>; opp-supported-hw = <0x20>; }; opp@1416000000 { opp-hz = <0x0 0x54667200>; opp-microvolt = <0x118c30>; clock-latency-ns = <0x3b9b0>; opp-supported-hw = <0x10>; }; opp@1512000000 { opp-hz = <0x0 0x5a1f4a00>; opp-microvolt = <0x111700>; clock-latency-ns = <0x3b9b0>; opp-supported-hw = <0x1>; }; opp@480000000-ab { opp-hz = <0x0 0x1c9c3800>; opp-microvolt-a1 = <0xdbba0>; opp-microvolt-b1 = <0xdbba0>; opp-microvolt-b0 = <0xdbba0>; opp-microvolt-c0 = <0xdbba0>; opp-microvolt-c1 = <0xdbba0>; opp-microvolt-c2 = <0xdbba0>; clock-latency-ns = <0x3b9b0>; }; opp@600000000-ab { opp-hz = <0x0 0x23c34600>; opp-microvolt-b0 = <0xdbba0>; opp-microvolt-c0 = <0xdbba0>; opp-microvolt-c2 = <0xdbba0>; clock-latency-ns = <0x3b9b0>; }; opp@720000000-ab { opp-hz = <0x0 0x2aea5400>; opp-microvolt-a1 = <0xdbba0>; opp-microvolt-b1 = <0xdbba0>; opp-microvolt-c1 = <0xe7ef0>; clock-latency-ns = <0x3b9b0>; }; opp@792000000-ab { opp-hz = <0x0 0x2f34f600>; opp-microvolt-b0 = <0xdbba0>; opp-microvolt-c0 = <0xe57e0>; opp-microvolt-c2 = <0xe57e0>; clock-latency-ns = <0x3b9b0>; }; opp@936000000-ab { opp-hz = <0x0 0x37ca3a00>; opp-microvolt-c1 = <0xe7ef0>; clock-latency-ns = <0x3b9b0>; }; opp@1008000000-ab { opp-hz = <0x0 0x3c14dc00>; opp-microvolt-b0 = <0xe09c0>; opp-microvolt-c0 = <0xf9060>; opp-microvolt-c1 = <0xf4240>; opp-microvolt-c2 = <0xf9060>; clock-latency-ns = <0x3b9b0>; }; opp@1032000000-ab { opp-hz = <0x0 0x3d831200>; opp-microvolt-a1 = <0xdbba0>; opp-microvolt-b1 = <0xdbba0>; clock-latency-ns = <0x3b9b0>; }; opp@1104000000-ab { opp-hz = <0x0 0x41cdb400>; opp-microvolt-a1 = <0xe7ef0>; opp-microvolt-b1 = <0xe7ef0>; opp-microvolt-c1 = <0x100590>; clock-latency-ns = <0x3b9b0>; }; opp@1200000000-ab { opp-hz = <0x0 0x47868c00>; opp-microvolt-a1 = <0xf4240>; opp-microvolt-b1 = <0xf4240>; opp-microvolt-b0 = <0xef420>; opp-microvolt-c0 = <0x10c8e0>; opp-microvolt-c1 = <0x10c8e0>; opp-microvolt-c2 = <0x10c8e0>; clock-latency-ns = <0x3b9b0>; }; opp@1296000000-ab { opp-hz = <0x0 0x4d3f6400>; opp-microvolt-a1 = <0x100590>; opp-microvolt-b1 = <0x100590>; clock-latency-ns = <0x3b9b0>; }; opp@1320000000-ab { opp-hz = <0x0 0x4ead9a00>; opp-microvolt-c1 = <0x11b340>; clock-latency-ns = <0x3b9b0>; }; opp@1344000000-ab { opp-hz = <0x0 0x501bd000>; opp-microvolt-c0 = <0x111700>; opp-microvolt-c2 = <0x111700>; clock-latency-ns = <0x3b9b0>; }; opp@1416000000-ab { opp-hz = <0x0 0x54667200>; opp-microvolt-a1 = <0x10c8e0>; opp-microvolt-b1 = <0x10c8e0>; clock-latency-ns = <0x3b9b0>; }; opp@1512000000-ab { opp-hz = <0x0 0x5a1f4a00>; opp-microvolt-a1 = <0x11b340>; opp-microvolt-b1 = <0x11b340>; opp-microvolt-b0 = <0x111700>; clock-latency-ns = <0x3b9b0>; }; }; psci { compatible = "arm,psci-1.0"; method = "smc"; }; n_brom { compatible = "allwinner,n-brom"; reg = <0x0 0x0 0x0 0xa000>; }; s_brom { compatible = "allwinner,s-brom"; reg = <0x0 0x0 0x0 0x10000>; }; sram_ctrl { device_type = "sram_ctrl"; compatible = "allwinner,sram_ctrl"; reg = <0x0 0x3000000 0x0 0x100>; }; sram_a1 { compatible = "allwinner,sram_a1"; reg = <0x0 0x20000 0x0 0x8000>; }; sram_a2 { compatible = "allwinner,sram_a2"; reg = <0x0 0x100000 0x0 0x14000>; }; prcm { compatible = "allwinner,prcm"; reg = <0x0 0x1f01400 0x0 0x400>; }; s_cpuscfg { compatible = "allwinner,s_cpuscfg"; reg = <0x0 0x1f01c00 0x0 0x400>; }; ion { compatible = "allwinner,sunxi-ion"; heap_sys_user@0 { compatible = "allwinner,sys_user"; heap-name = "sys_user"; heap-id = <0x0>; heap-base = <0x0>; heap-size = <0x0>; heap-type = "ion_system"; }; heap_cma@0 { compatible = "allwinner,cma"; heap-name = "cma"; heap-id = <0x4>; heap-base = <0x0>; heap-size = <0x0>; heap-type = "ion_cma"; }; heap_secure@0 { compatible = "allwinner,secure"; heap-name = "secure"; heap-id = <0x6>; heap-base = <0x0>; heap-size = <0x0>; heap-type = "ion_secure"; }; }; dram { compatible = "allwinner,dram"; clocks = <0xda>; clock-names = "pll_ddr"; dram_clk = <0x2d0>; dram_type = <0x7>; dram_zq = <0x3f3fdd>; dram_odt_en = <0x9988eeee>; dram_para1 = <0x30fa>; dram_para2 = <0x1000>; dram_mr0 = <0x0>; dram_mr1 = <0xc3>; dram_mr2 = <0x6>; dram_mr3 = <0x1>; dram_tpr0 = <0x0>; dram_tpr1 = <0x0>; dram_tpr2 = <0x0>; dram_tpr3 = <0x0>; dram_tpr4 = <0x0>; dram_tpr5 = <0x0>; dram_tpr6 = <0x2fb08080>; dram_tpr7 = <0x0>; dram_tpr8 = <0x0>; dram_tpr9 = <0x0>; dram_tpr10 = <0x402f4469>; dram_tpr11 = <0xe0f0d0d>; dram_tpr12 = <0x11131213>; dram_tpr13 = <0x60>; linux,phandle = <0x17e>; phandle = <0x17e>; device_type = "dram"; dram_dx_odt = <0x6060606>; dram_dx_dri = <0xd0d0d0d>; dram_ca_dri = <0x1919>; dram_mr4 = <0x0>; dram_mr5 = <0x0>; dram_mr6 = <0x0>; dram_mr11 = <0x0>; dram_mr12 = <0x0>; dram_mr13 = <0x0>; dram_mr14 = <0x0>; dram_mr16 = <0x0>; dram_mr17 = <0x0>; dram_mr22 = <0x0>; }; memory@40000000 { device_type = "memory"; reg = <0x0 0x40000000 0x0 0x20000000>; }; interrupt-controller@03020000 { compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic"; #interrupt-cells = <0x3>; #address-cells = <0x0>; device_type = "gic"; interrupt-controller; reg = <0x0 0x3021000 0x0 0x1000 0x0 0x3022000 0x0 0x2000 0x0 0x3024000 0x0 0x2000 0x0 0x3026000 0x0 0x2000>; interrupts = <0x1 0x9 0xf04>; interrupt-parent = <0x85>; linux,phandle = <0x85>; phandle = <0x85>; }; interrupt-controller@0 { compatible = "allwinner,sunxi-wakeupgen"; interrupt-controller; #interrupt-cells = <0x3>; interrupt-parent = <0x85>; linux,phandle = <0x1>; phandle = <0x1>; }; intc-nmi@07010320 { compatible = "allwinner,sun8i-nmi"; interrupt-parent = <0x85>; #interrupt-cells = <0x2>; #address-cells = <0x0>; interrupt-controller; reg = <0x0 0x7010320 0x0 0xc>; pad-control-v1 = <0x7000208>; interrupts = <0x0 0x67 0x4>; linux,phandle = <0x17f>; phandle = <0x17f>; }; sunxi-sid@03006000 { compatible = "allwinner,sunxi-sid"; device_type = "sid"; reg = <0x0 0x3006000 0x0 0x1000>; linux,phandle = <0x180>; phandle = <0x180>; }; sunxi-sid-ng@03006000 { compatible = "allwinner,sun50iw9p1-sid"; reg = <0x0 0x3006000 0x0 0x1000>; #address-cells = <0x1>; #size-cells = <0x1>; linux,phandle = <0xc5>; phandle = <0xc5>; speed@00 { reg = <0x0 0x2>; linux,phandle = <0xd9>; phandle = <0xd9>; }; calib@14 { reg = <0x14 0x8>; linux,phandle = <0xc4>; phandle = <0xc4>; }; }; sunxi-chipid@03006200 { compatible = "allwinner,sunxi-chipid"; device_type = "chipid"; reg = <0x0 0x3006200 0x0 0x200>; linux,phandle = <0x181>; phandle = <0x181>; }; timer_arch { compatible = "arm,armv8-timer"; interrupts = <0x1 0xd 0xf08 0x1 0xe 0xf08 0x1 0xb 0xf08 0x1 0xa 0xf08>; clock-frequency = <0x16e3600>; interrupt-parent = <0x85>; arm,no-tick-in-suspend; }; pmu { compatible = "arm,armv8-pmuv3"; interrupts = <0x0 0x8c 0x4 0x0 0x8d 0x4 0x0 0x8e 0x4 0x0 0x8f 0x4>; }; dramfreq { compatible = "allwinner,sunxi-dramfreq"; reg = <0x0 0x4002000 0x0 0x1000 0x0 0x4003000 0x0 0x3000 0x0 0x3001000 0x0 0x1000>; interrupts = <0x0 0x21 0x4>; clocks = <0xda>; status = "okay"; }; uboot { linux,phandle = <0x182>; phandle = <0x182>; }; iommu@030f0000 { compatible = "allwinner,sunxi-iommu"; reg = <0x0 0x30f0000 0x0 0x1000>; interrupts = <0x0 0x3d 0x4>; interrupt-names = "iommu-irq"; clocks = <0xdb>; clock-names = "iommu"; #iommu-cells = <0x2>; status = "okay"; linux,phandle = <0x28>; phandle = <0x28>; }; gpu@0x01800000 { device_type = "gpu"; compatible = "arm,mali-midgard"; reg = <0x0 0x1800000 0x0 0x10000>; interrupts = <0x0 0x5f 0x4 0x0 0x60 0x4 0x0 0x61 0x4>; interrupt-names = "JOB", "MMU", "GPU"; clocks = <0xdc 0xdd 0xde>; clock-names = "clk_parent", "clk_mali", "clk_bak"; #cooling-cells = <0x2>; gpu_idle = <0x1>; dvfs_status = <0x0>; operating-points = <0x927c0 0xe7ef0 0x8ca00 0xe7ef0 0x83d60 0xe7ef0 0x7b0c0 0xe7ef0>; linux,phandle = <0xc9>; phandle = <0xc9>; ipa_dvfs { compatible = "arm,mali-simple-power-model"; static-coefficient = <0x4268>; dynamic-coefficient = <0x2ee>; ts = <0x3e2da 0x2568 0xffffff98 0x4>; thermal-zone = "gpu_thermal_zone"; ss-coefficient = <0x24>; ff-coefficient = <0x123>; linux,phandle = <0x183>; phandle = <0x183>; }; }; box_start_os0 { compatible = "allwinner,box_start_os"; start_type = <0x1>; irkey_used = <0x0>; pmukey_used = <0x0>; pmukey_num = <0x0>; led_power = <0x0>; led_state = <0x0>; pinctrl-0 = <0xdf>; pinctrl-1 = <0xe0>; }; __symbols__ { clk_losc = "/clocks/losc"; clk_iosc = "/clocks/iosc"; clk_hosc = "/clocks/hosc"; clk_osc48m = "/clocks/osc48m"; clk_hoscdiv32k = "/clocks/hoscdiv32k"; clk_pll_periph0div25m = "/clocks/pll_periph0div25m"; clk_pll_cpu = "/clocks/pll_cpu"; clk_pll_ddr0 = "/clocks/pll_ddr0"; clk_pll_ddr1 = "/clocks/pll_ddr1"; clk_pll_periph0 = "/clocks/pll_periph0"; clk_pll_periph1 = "/clocks/pll_periph1"; clk_pll_gpu = "/clocks/pll_gpu"; clk_pll_video0x4 = "/clocks/pll_video0x4"; clk_pll_video1 = "/clocks/pll_video1"; clk_pll_video2 = "/clocks/pll_video2"; clk_pll_ve = "/clocks/pll_ve"; clk_pll_de = "/clocks/pll_de"; clk_pll_csi = "/clocks/pll_csi"; clk_pll_audiox4 = "/clocks/pll_audiox4"; clk_pll_periph0x2 = "/clocks/pll_periph0x2"; clk_pll_periph0x4 = "/clocks/pll_periph0x4"; clk_periph32k = "/clocks/periph32k"; clk_pll_periph1x2 = "/clocks/pll_periph1x2"; clk_pll_audio = "/clocks/pll_audio"; clk_pll_audiox2 = "/clocks/pll_audiox2"; clk_pll_video0 = "/clocks/pll_video0"; clk_pll_video1x4 = "/clocks/pll_video1x4"; clk_pll_video2x4 = "/clocks/pll_video2x4"; clk_hoscd2 = "/clocks/hoscd2"; clk_osc48md4 = "/clocks/osc48md4"; clk_pll_periph0d6 = "/clocks/pll_periph0d6"; clk_cpu = "/clocks/cpu"; clk_axi = "/clocks/axi"; clk_cpuapb = "/clocks/cpuapb"; clk_psi = "/clocks/psi"; clk_ahb1 = "/clocks/ahb1"; clk_ahb2 = "/clocks/ahb2"; clk_ahb3 = "/clocks/ahb3"; clk_apb1 = "/clocks/apb1"; clk_apb2 = "/clocks/apb2"; clk_mbus = "/clocks/mbus"; clk_de = "/clocks/de"; clk_g2d = "/clocks/g2d"; clk_di = "/clocks/di"; clk_gpu0 = "/clocks/gpu0"; clk_gpu1 = "/clocks/gpu1"; clk_ce = "/clocks/ce"; clk_ve = "/clocks/ve"; clk_dma = "/clocks/dma"; clk_msgbox = "/clocks/msgbox"; clk_hwspinlock_rst = "/clocks/hwspinlock_rst"; clk_hwspinlock_bus = "/clocks/hwspinlock_bus"; clk_hstimer = "/clocks/hstimer"; clk_avs = "/clocks/avs"; clk_dbgsys = "/clocks/dbgsys"; clk_pwm = "/clocks/pwm"; clk_iommu = "/clocks/iommu"; clk_sdram = "/clocks/sdram"; clk_nand0 = "/clocks/nand0"; clk_nand1 = "/clocks/nand1"; clk_sdmmc0_mod = "/clocks/sdmmc0_mod"; clk_sdmmc0_bus = "/clocks/sdmmc0_bus"; clk_sdmmc0_rst = "/clocks/sdmmc0_rst"; clk_sdmmc1_mod = "/clocks/sdmmc1_mod"; clk_sdmmc1_bus = "/clocks/sdmmc1_bus"; clk_sdmmc1_rst = "/clocks/sdmmc1_rst"; clk_sdmmc2_mod = "/clocks/sdmmc2_mod"; clk_sdmmc2_bus = "/clocks/sdmmc2_bus"; clk_sdmmc2_rst = "/clocks/sdmmc2_rst"; clk_uart0 = "/clocks/uart0"; clk_uart1 = "/clocks/uart1"; clk_uart2 = "/clocks/uart2"; clk_uart3 = "/clocks/uart3"; clk_uart4 = "/clocks/uart4"; clk_uart5 = "/clocks/uart5"; clk_twi0 = "/clocks/twi0"; clk_twi1 = "/clocks/twi1"; clk_twi2 = "/clocks/twi2"; clk_twi3 = "/clocks/twi3"; clk_twi4 = "/clocks/twi4"; clk_scr0 = "/clocks/scr0"; clk_spi0 = "/clocks/spi0"; clk_spi1 = "/clocks/spi1"; clk_ephy_25m = "/clocks/ephy_25m"; clk_gmac0 = "/clocks/gmac0"; clk_gmac1 = "/clocks/gmac1"; clk_gpadc = "/clocks/gpadc"; clk_ts = "/clocks/ts"; clk_ths = "/clocks/ths"; clk_spdif = "/clocks/spdif"; clk_dmic = "/clocks/dmic"; clk_codec_1x = "/clocks/codec_1x"; clk_codec_4x = "/clocks/codec_4x"; clk_ahub = "/clocks/ahub"; clk_usbphy0 = "/clocks/usbphy0"; clk_usbphy1 = "/clocks/usbphy1"; clk_usbphy2 = "/clocks/usbphy2"; clk_usbphy3 = "/clocks/usbphy3"; clk_usbohci0 = "/clocks/usbohci0"; clk_usbohci0_12m = "/clocks/usbohci0_12m"; clk_usbohci1 = "/clocks/usbohci1"; clk_usbohci1_12m = "/clocks/usbohci1_12m"; clk_usbohci2 = "/clocks/usbohci2"; clk_usbohci2_12m = "/clocks/usbohci2_12m"; clk_usbohci3 = "/clocks/usbohci3"; clk_usbohci3_12m = "/clocks/usbohci3_12m"; clk_usbehci0 = "/clocks/usbehci0"; clk_usbehci1 = "/clocks/usbehci1"; clk_usbehci2 = "/clocks/usbehci2"; clk_usbehci3 = "/clocks/usbehci3"; clk_usb3_0_host = "/clocks/usb3_0_host"; clk_usbotg = "/clocks/usbotg"; clk_lradc = "/clocks/lradc"; clk_hdmi = "/clocks/hdmi"; clk_hdmi_slow = "/clocks/hdmi_slow"; clk_hdmi_cec = "/clocks/hdmi_cec"; clk_display_top = "/clocks/display_top"; clk_tcon_lcd = "/clocks/tcon_lcd"; clk_tcon_lcd1 = "/clocks/tcon_lcd1"; clk_tcon_tv = "/clocks/tcon_tv"; clk_tcon_tv1 = "/clocks/tcon_tv1"; clk_lvds = "/clocks/lvds"; clk_tve = "/clocks/tve"; clk_tve_top = "/clocks/tve_top"; clk_csi_top = "/clocks/csi_top"; clk_csi_master0 = "/clocks/csi_master0"; clk_csi_master1 = "/clocks/csi_master1"; clk_hdmi_hdcp = "/clocks/hdmi_hdcp"; clk_pio = "/clocks/pio"; clk_cpurcir = "/clocks/cpurcir"; clk_hosc32k = "/clocks/hosc32k"; clk_losc_out = "/clocks/losc_out"; clk_cpurcpus_pll = "/clocks/cpurcpus_pll"; clk_cpurcpus = "/clocks/cpurcpus"; clk_cpurahbs = "/clocks/cpurahbs"; clk_cpurapbs1 = "/clocks/cpurapbs1"; clk_cpurapbs2_pll = "/clocks/cpurapbs2_pll"; clk_cpurapbs2 = "/clocks/cpurapbs2"; clk_cpurpio = "/clocks/cpurpio"; clk_dcxo_out = "/clocks/dcxo_out"; clk_stwi = "/clocks/stwi"; soc = "/soc@03000000"; r_pio = "/soc@03000000/pinctrl@07022000"; s_rsb0_pins_a = "/soc@03000000/pinctrl@07022000/s_rsb0@0"; s_twi0_pins_a = "/soc@03000000/pinctrl@07022000/s_twi0@0"; s_twi0_pins_b = "/soc@03000000/pinctrl@07022000/s_twi0@1"; pio = "/soc@03000000/pinctrl@0300b000"; clk_losc_pins_a = "/soc@03000000/pinctrl@0300b000/clk_losc@0"; s_cir0_pins_a = "/soc@03000000/pinctrl@0300b000/s_cir0@0"; vdevice_pins_a = "/soc@03000000/pinctrl@0300b000/vdevice@0"; uart0_pins_a = "/soc@03000000/pinctrl@0300b000/uart0@0"; uart0_pins_b = "/soc@03000000/pinctrl@0300b000/uart0@1"; uart1_pins_a = "/soc@03000000/pinctrl@0300b000/uart1@0"; uart1_pins_b = "/soc@03000000/pinctrl@0300b000/uart1@1"; uart2_pins_a = "/soc@03000000/pinctrl@0300b000/uart2@0"; uart2_pins_b = "/soc@03000000/pinctrl@0300b000/uart2@1"; uart3_pins_a = "/soc@03000000/pinctrl@0300b000/uart3@0"; uart3_pins_b = "/soc@03000000/pinctrl@0300b000/uart3@1"; uart4_pins_a = "/soc@03000000/pinctrl@0300b000/uart4@0"; uart4_pins_b = "/soc@03000000/pinctrl@0300b000/uart4@1"; uart5_pins_a = "/soc@03000000/pinctrl@0300b000/uart5@0"; uart5_pins_b = "/soc@03000000/pinctrl@0300b000/uart5@1"; twi0_pins_a = "/soc@03000000/pinctrl@0300b000/twi0@0"; twi0_pins_b = "/soc@03000000/pinctrl@0300b000/twi0@1"; twi1_pins_a = "/soc@03000000/pinctrl@0300b000/twi1@0"; twi1_pins_b = "/soc@03000000/pinctrl@0300b000/twi1@1"; twi2_pins_a = "/soc@03000000/pinctrl@0300b000/twi2@0"; twi2_pins_b = "/soc@03000000/pinctrl@0300b000/twi2@1"; twi3_pins_a = "/soc@03000000/pinctrl@0300b000/twi3@0"; twi3_pins_b = "/soc@03000000/pinctrl@0300b000/twi3@1"; twi4_pins_a = "/soc@03000000/pinctrl@0300b000/twi4@0"; twi4_pins_b = "/soc@03000000/pinctrl@0300b000/twi4@1"; ts0_pins_a = "/soc@03000000/pinctrl@0300b000/ts0@0"; ts0_pins_b = "/soc@03000000/pinctrl@0300b000/ts0_sleep@0"; spi0_pins_a = "/soc@03000000/pinctrl@0300b000/spi0@0"; spi0_pins_b = "/soc@03000000/pinctrl@0300b000/spi0@1"; spi0_pins_c = "/soc@03000000/pinctrl@0300b000/spi0@2"; spi1_pins_a = "/soc@03000000/pinctrl@0300b000/spi1@0"; spi1_pins_b = "/soc@03000000/pinctrl@0300b000/spi1@1"; spi1_pins_c = "/soc@03000000/pinctrl@0300b000/spi1@2"; sdc0_pins_a = "/soc@03000000/pinctrl@0300b000/sdc0@0"; sdc0_pins_b = "/soc@03000000/pinctrl@0300b000/sdc0@1"; sdc0_pins_c = "/soc@03000000/pinctrl@0300b000/sdc0@2"; sdc1_pins_a = "/soc@03000000/pinctrl@0300b000/sdc1@0"; sdc1_pins_b = "/soc@03000000/pinctrl@0300b000/sdc1@1"; sdc2_pins_a = "/soc@03000000/pinctrl@0300b000/sdc2@0"; sdc2_pins_b = "/soc@03000000/pinctrl@0300b000/sdc2@1"; sdc2_pins_c = "/soc@03000000/pinctrl@0300b000/sdc2@2"; spdif_pins_a = "/soc@03000000/pinctrl@0300b000/spdif@0"; spdif_pins_b = "/soc@03000000/pinctrl@0300b000/spdif_sleep@0"; dmic_pins_a = "/soc@03000000/pinctrl@0300b000/dmic@0"; dmic_pins_b = "/soc@03000000/pinctrl@0300b000/dmic_sleep@0"; ahub_daudio0_pins_a = "/soc@03000000/pinctrl@0300b000/ahub_daudio0@0"; ahub_daudio0_pins_b = "/soc@03000000/pinctrl@0300b000/ahub_daudio0_sleep@0"; ahub_daudio0_pins_c = "/soc@03000000/pinctrl@0300b000/h_ahub_daudio0@0"; ahub_daudio0_pins_d = "/soc@03000000/pinctrl@0300b000/h_ahub_daudio0_sleep@0"; ahub_daudio2_pins_a = "/soc@03000000/pinctrl@0300b000/ahub_daudio2@0"; ahub_daudio2_pins_b = "/soc@03000000/pinctrl@0300b000/ahub_daudio2_sleep@0"; ahub_daudio3_pins_a = "/soc@03000000/pinctrl@0300b000/ahub_daudio3@0"; ahub_daudio3_pins_b = "/soc@03000000/pinctrl@0300b000/ahub_daudio3_sleep@0"; csi1_pins_a = "/soc@03000000/pinctrl@0300b000/csi1@0"; csi1_pins_b = "/soc@03000000/pinctrl@0300b000/csi1@1"; csi_mclk0_pins_a = "/soc@03000000/pinctrl@0300b000/csi_mclk0@0"; csi_mclk0_pins_b = "/soc@03000000/pinctrl@0300b000/csi_mclk0@1"; csi_cci0_pins_a = "/soc@03000000/pinctrl@0300b000/csi_cci0@0"; csi_cci0_pins_b = "/soc@03000000/pinctrl@0300b000/csi_cci0@1"; csi_mclk1_pins_a = "/soc@03000000/pinctrl@0300b000/csi_mclk1@0"; csi_mclk1_pins_b = "/soc@03000000/pinctrl@0300b000/csi_mclk1@1"; csi_cci1_pins_a = "/soc@03000000/pinctrl@0300b000/csi_cci1@0"; csi_cci1_pins_b = "/soc@03000000/pinctrl@0300b000/csi_cci1@1"; scr0_pins_a = "/soc@03000000/pinctrl@0300b000/scr0@0"; scr0_pins_b = "/soc@03000000/pinctrl@0300b000/scr0@1"; scr0_pins_c = "/soc@03000000/pinctrl@0300b000/scr0@2"; scr1_pins_a = "/soc@03000000/pinctrl@0300b000/scr1@0"; scr1_pins_b = "/soc@03000000/pinctrl@0300b000/scr1@1"; scr1_pins_c = "/soc@03000000/pinctrl@0300b000/scr1@2"; nand0_pins_a = "/soc@03000000/pinctrl@0300b000/nand0@0"; nand0_pins_b = "/soc@03000000/pinctrl@0300b000/nand0@1"; nand0_pins_c = "/soc@03000000/pinctrl@0300b000/nand0@2"; ccir_clk_pin_a = "/soc@03000000/pinctrl@0300b000/ac200@2"; ccir_clk_pin_b = "/soc@03000000/pinctrl@0300b000/ac200@3"; gmac_pins_a = "/soc@03000000/pinctrl@0300b000/gmac@0"; gmac_pins_b = "/soc@03000000/pinctrl@0300b000/gmac@1"; gmac1_pins_a = "/soc@03000000/pinctrl@0300b000/gmac1@0"; gmac1_pins_b = "/soc@03000000/pinctrl@0300b000/gmac1@1"; lvds0_pins_a = "/soc@03000000/pinctrl@0300b000/lvds0@0"; lvds0_pins_b = "/soc@03000000/pinctrl@0300b000/lvds0@1"; lvds1_pins_a = "/soc@03000000/pinctrl@0300b000/lvds1@0"; lvds1_pins_b = "/soc@03000000/pinctrl@0300b000/lvds1@1"; lvds2link_pins_a = "/soc@03000000/pinctrl@0300b000/lvds2link@0"; lvds2link_pins_b = "/soc@03000000/pinctrl@0300b000/lvds2link@1"; rgb24_pins_a = "/soc@03000000/pinctrl@0300b000/rgb24@0"; rgb24_pins_b = "/soc@03000000/pinctrl@0300b000/rgb24@1"; pwm5_pin_a = "/soc@03000000/pinctrl@0300b000/pwm5@0"; pwm5_pin_b = "/soc@03000000/pinctrl@0300b000/pwm5@1"; standby_red = "/soc@03000000/pinctrl@0300b000/standby@0"; standby_blue = "/soc@03000000/pinctrl@0300b000/standby@1"; standby_bt = "/soc@03000000/pinctrl@0300b000/standby@2"; dma0 = "/soc@03000000/dma-controller@03002000"; mbus0 = "/soc@03000000/mbus-controller@047fa000"; msgbox = "/soc@03000000/msgbox@03003000"; hwspinlock = "/soc@03000000/hwspinlock@3004000"; s_cir0 = "/soc@03000000/s_cir@07040000"; soc_timer0 = "/soc@03000000/timer@03009000"; rtc = "/soc@03000000/rtc@07000000"; wdt = "/soc@03000000/watchdog@030090a0"; ve = "/soc@03000000/ve@01c0e000"; vp9 = "/soc@03000000/vp9@01c00000"; uart0 = "/soc@03000000/uart@05000000"; uart1 = "/soc@03000000/uart@05000400"; uart2 = "/soc@03000000/uart@05000800"; uart3 = "/soc@03000000/uart@05000c00"; uart4 = "/soc@03000000/uart@05001000"; uart5 = "/soc@03000000/uart@05001400"; twi0 = "/soc@03000000/twi@0x05002000"; twi1 = "/soc@03000000/twi@0x05002400"; twi2 = "/soc@03000000/twi@0x05002800"; twi3 = "/soc@03000000/twi@0x05002c00"; twi4 = "/soc@03000000/twi@0x05003000"; twi5 = "/soc@03000000/twi@0x07081400"; pmu0 = "/soc@03000000/twi@0x07081400/pmu"; standby_param = "/soc@03000000/twi@0x07081400/pmu/standby_param"; reg_dcdc1 = "/soc@03000000/twi@0x07081400/pmu/regulators/dcdc1"; reg_dcdc2 = "/soc@03000000/twi@0x07081400/pmu/regulators/dcdc2"; reg_dcdc3 = "/soc@03000000/twi@0x07081400/pmu/regulators/dcdc3"; reg_aldo1 = "/soc@03000000/twi@0x07081400/pmu/regulators/ldo1"; reg_dldo1 = "/soc@03000000/twi@0x07081400/pmu/regulators/ldo2"; usbc0 = "/soc@03000000/usbc0@0"; udc = "/soc@03000000/udc-controller@0x05100000"; ehci0 = "/soc@03000000/ehci0-controller@0x05101000"; ohci0 = "/soc@03000000/ohci0-controller@0x05101400"; usbc1 = "/soc@03000000/usbc1@0"; ehci1 = "/soc@03000000/ehci1-controller@0x05200000"; ohci1 = "/soc@03000000/ohci1-controller@0x05200400"; usbc2 = "/soc@03000000/usbc2@0"; ehci2 = "/soc@03000000/ehci2-controller@0x05310000"; ohci2 = "/soc@03000000/ohci2-controller@0x05310400"; usbc3 = "/soc@03000000/usbc3@0"; ehci3 = "/soc@03000000/ehci3-controller@0x05311000"; ohci3 = "/soc@03000000/ohci3-controller@0x05311400"; ac200_codec = "/soc@03000000/ac200_codec"; spdif = "/soc@03000000/spdif-controller@0x05093000"; dmic = "/soc@03000000/dmic-controller@0x05095000"; codec = "/soc@03000000/codec@0x05096000"; cpudai = "/soc@03000000/cpudai-controller@0x05096000"; ahub_cpudai0 = "/soc@03000000/cpudai0-controller@0x05097000"; ahub_cpudai1 = "/soc@03000000/cpudai1-controller@0x05097000"; ahub_cpudai2 = "/soc@03000000/cpudai2-controller@0x05097000"; ahub_cpudai3 = "/soc@03000000/cpudai3-controller@0x05097000"; ahub_codec = "/soc@03000000/ahub_codec@0x05097000"; ahub_daudio0 = "/soc@03000000/ahub_daudio0@0x05097000"; ahub_daudio1 = "/soc@03000000/ahub_daudio1@0x05097000"; ahub_daudio2 = "/soc@03000000/ahub_daudio2@0x05097000"; ahub_daudio3 = "/soc@03000000/ahub_daudio3@0x05097000"; snddaudio0 = "/soc@03000000/sound@0"; sndhdmi = "/soc@03000000/sound@1"; snddaudio2 = "/soc@03000000/sound@2"; snddaudio3 = "/soc@03000000/sound@3"; sndspdif = "/soc@03000000/sound@4"; snddmic = "/soc@03000000/sound@5"; sndcodec = "/soc@03000000/sound@6"; sndahub = "/soc@03000000/sound@7"; spi0 = "/soc@03000000/spi@05010000"; spi1 = "/soc@03000000/spi@05011000"; pcie = "/soc@03000000/pcie@0x05400000"; sdc2 = "/soc@03000000/sdmmc@04022000"; sdc0 = "/soc@03000000/sdmmc@04020000"; sdc1 = "/soc@03000000/sdmmc@04021000"; disp = "/soc@03000000/disp@01000000"; tv0 = "/soc@03000000/tv0@01c94000"; lcd0 = "/soc@03000000/lcd0@01c0c000"; lcd1 = "/soc@03000000/lcd1@01c0c001"; boot_disp = "/soc@03000000/boot_disp"; hdmi = "/soc@03000000/hdmi@06000000"; g2d = "/soc@03000000/g2d@01480000"; soc_tr = "/soc@03000000/tr@01000000"; pwm = "/soc@03000000/pwm@0300a000"; pwm0 = "/soc@03000000/pwm0@0300a000"; pwm1 = "/soc@03000000/pwm1@0300a000"; pwm2 = "/soc@03000000/pwm2@0300a000"; pwm3 = "/soc@03000000/pwm3@0300a000"; pwm4 = "/soc@03000000/pwm4@0300a000"; pwm5 = "/soc@03000000/pwm5@0300a000"; ac200 = "/soc@03000000/ac200"; vind0 = "/soc@03000000/vind@0"; csi_cci0 = "/soc@03000000/vind@0/cci@0"; csi_cci1 = "/soc@03000000/vind@0/cci@1"; csi0 = "/soc@03000000/vind@0/csi@0"; csi1 = "/soc@03000000/vind@0/csi@1"; mipi0 = "/soc@03000000/vind@0/mipi@0"; isp0 = "/soc@03000000/vind@0/isp@0"; isp1 = "/soc@03000000/vind@0/isp@1"; scaler0 = "/soc@03000000/vind@0/scaler@0"; scaler1 = "/soc@03000000/vind@0/scaler@1"; scaler2 = "/soc@03000000/vind@0/scaler@2"; scaler3 = "/soc@03000000/vind@0/scaler@3"; scaler4 = "/soc@03000000/vind@0/scaler@4"; scaler5 = "/soc@03000000/vind@0/scaler@5"; actuator0 = "/soc@03000000/vind@0/actuator@0"; flash0 = "/soc@03000000/vind@0/flash@0"; sensor0 = "/soc@03000000/vind@0/sensor@0"; sensor1 = "/soc@03000000/vind@0/sensor@1"; vinc0 = "/soc@03000000/vind@0/vinc@0"; vinc1 = "/soc@03000000/vind@0/vinc@1"; vinc2 = "/soc@03000000/vind@0/vinc@2"; vinc3 = "/soc@03000000/vind@0/vinc@3"; vinc4 = "/soc@03000000/vind@0/vinc@4"; vinc5 = "/soc@03000000/vind@0/vinc@5"; Vdevice = "/soc@03000000/vdevice@0"; emce = "/soc@03000000/emce@01905000"; cryptoengine = "/soc@03000000/ce@1904000"; di = "/soc@03000000/deinterlace@0x01420000"; scr0 = "/soc@03000000/smartcard@0x05005000"; nand0 = "/soc@03000000/nand0@04011000"; ts0 = "/soc@03000000/ts0@05060000"; ths = "/soc@03000000/thermal_sensor"; cpu_trips = "/soc@03000000/thermal-zones/cpu_thermal_zone/trips"; cpu_threshold = "/soc@03000000/thermal-zones/cpu_thermal_zone/trips/trip-point@0"; cpu_target = "/soc@03000000/thermal-zones/cpu_thermal_zone/trips/trip-point@1"; cpu_crit = "/soc@03000000/thermal-zones/cpu_thermal_zone/trips/cpu_crit@0"; gpadc = "/soc@03000000/gpadc"; keyboard0 = "/soc@03000000/keyboard"; gmac0 = "/soc@03000000/eth@05020000"; gmac1 = "/soc@03000000/eth@05030000"; gpio_encrypt = "/soc@03000000/gpio_encrypt"; wlan = "/soc@03000000/wlan"; bt = "/soc@03000000/bt"; btlpm = "/soc@03000000/btlpm"; addr_mgt = "/soc@03000000/addr_mgt"; sprd_marlin3 = "/soc@03000000/sprd-marlin3"; aliases = "/aliases"; cpu0 = "/cpus/cpu@0"; CPU_SLEEP_0 = "/cpus/idle-states/cpu-sleep-0"; cpu_opp_l_table = "/opp_l_table"; dram = "/dram"; gic = "/interrupt-controller@03020000"; wakeupgen = "/interrupt-controller@0"; nmi_intc = "/intc-nmi@07010320"; sid = "/sunxi-sid@03006000"; sunxi_sid = "/sunxi-sid-ng@03006000"; speedbin_efuse = "/sunxi-sid-ng@03006000/speed@00"; ths_calib = "/sunxi-sid-ng@03006000/calib@14"; chipid = "/sunxi-chipid@03006200"; uboot = "/uboot"; mmu_aw = "/iommu@030f0000"; gpu = "/gpu@0x01800000"; ipa_dvfs = "/gpu@0x01800000/ipa_dvfs"; }; };
  24. Hey. I have no idea whether this will work for the H313 but I got my H713 Projector rooted using the following method. I'm assuming you at least have the stock firmware, but if not, it seems you can grab it here: https://androidpctv.com/firmware-android-tv-box-h96-max-h313 I dislike Windows so I was irritated that PhoenixSuit only seemed to run well on that platform, and ImgRePacker wasn't great either but then I found this project on GitHub: https://github.com/uictorius/imagewty-tool I'm unsure how you'd do this on Windows and I assume you know of a way to flash your box with a custom img file, but this was my work flow: 1. Back up your original img somewhere safe. Don't play around with this file. 2. Grab the latest available version of Magisk from https://github.com/topjohnwu/Magisk/releases. You want the APK file. 3. Go to this Project on GitHub. CircleTeam provide a browser based method of doing this here: https://circlecashteam.github.io/MagiskPatcher/ 4. Using imagewty-tool you first want to grab your boot partition. Run this against your copy of your firmware img. Let's say it's called update.img: imagewty-tool extract update.img 5. This will extract a bunch of FEX files to a directory called update.img.dump. You want to find the file called "boot.fex" 6. Now copy that file and rename it to "boot.img". Go to the MagiskPatcher site. 7. Upload the "boot.img" file at "Upload boot image" and the Magisk APK at "Upload Magisk APK". 8. Select armeabi-v7a radio button, then check every box below except "Recovery Mode" and click "Patch". 9. After a minute or two, the program will download a new patched boot.img to your Downloads folder. 10. Let's say it's called "new-boot.img", you'll want to rename it as "boot.fex" and overwrite the original boot.fex file in the update.img.dump directory. 11. Run imagewty-tool again, but this time: imagewty-tool repack update.img.dump new-image.img The beauty of this is that repacking recalculates all V-file checksums automatically. 12. Flash new-image.img to your box whatever way you're used to doing it with PhoenixSuit or whatever. However, you're not done. 13. Hopefully the box boots up. Get to adb, grab the Magisk APK again and run: adb install Magisk*.apk Once installed, open the Magisk app up and it will say it needs to complete installation, so go ahead and allow that install. Select the Recommended radio button to install and then reboot. 14. Assuming all went well it should boot back up for you. Run this to check root: adb shell su whoami If all went well it should say "root" in your terminal rather than "shell". A dialogue will pop up on the Android screen asking to allow root privileges so go ahead and allow those.
  25. Hi all, i've been going this forum long enough to try and root a tv box that i buyed recently, but this one is HEAVILY locked up, like nothing i have seen before. My objective here is to access 'su' so i can have access to rooting/overclocking this thing for emulators, and after that adding a heatsink, active cooling, etc. I tried ADB over all USBs (4 in total) but nothing. then i tried to see if root was available through some leftover app or vulnerability, but nothing. Then i tried following the specs from this thread (pretty similar in design to my PCB) but my UART displays nothing. (I leave the images from my setup below), i tried switching the wires, i tested the voltages and they return 3.3v, so they are ok. I tried the toothpick method to access recovery, but it has 2 buttons. 1 does nothing (AFAIK) and the other one goes directly to updating, so no menu. Any help is appreciated, as i'm out of any ideas. I leave my pictures below, and my specs: CPU: Alwinner H313 RAM: 1GB ROM: 8GB PCB: Z01S-v13.3, 2025.05.20 OS: Android 7-8 ish
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines