Jump to content

Search the Community

Showing results for 'gpio'.

  • 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. I installed Armbian_community_26.2.0-trunk.130_Orangepizero2w_trixie_current_6.12.63_minimal and tried to follow the instructions on gpiod · PyPI. GPIO are not enabled in device tree.
  2. OrangePi in general is bad support, as also is stated on the image download page. For just driving a relay, so a pin change between high and low, you first need to select which pin from the GPIO header you want to use. You can see what are probably generic GPIO by default from picture here: http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/details/Orange-Pi-Zero-2W.html In the latest image, I see there is no real support for OrangePi02W, only H5 and A64, not the actual H618 (it seems to use H616, so also that might lead to issues). You can look in file maybe, if you want other then defaults: /boot/dtb/allwinner/overlay/README.sun50i-H5-overlays I have older 32-bit Allwinner things, H3 for example. Analog and SPDIF audio works great there, that is why I bought those mainly. Also GPIO6 I use for driving a switch (via extra resistors and some MOSFET/TRIAC). I did some C-code and got working temp sensor and switch, see lgio code https://abyz.me.uk/lg/download.html But currently for years already in bash script: init: test -f /sys/class/gpio/gpio6/value && echo 6 > /sys/class/gpio/unexport echo 6 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio6/direction chown root:gpio /sys/class/gpio/gpio6/value chmod g+w /sys/class/gpio/gpio6/value on: gpioset gpiochip0 6=1 off: gpioset gpiochip0 6=0 This still works since Armbian Buster, now kernel 6.12. Not tested yet with 6.18
  3. Thank you eselarm for the reply. If it is possible to get simple SOP for running blinky program on any of the gpio of orange pi zero 2w in python, I can take it forward. I am trying to operate relays using orange pi zero 2w.
  4. You have to allocate the I/O pins you want to use and how you want to use them yourself, can be done in armbianEnv.txt. A generic image cannot know what you want and what is connected to which I/O pins. GPIO is not like USB or PCIe that is can be automatically let its connected hardware enumerate. Also old Linux behavior w.r.t. GPIO is gone. You fundamentally need to open it, keep it operational with handle, in your code. Like you open a file when you want to read or write. Python might do that for you, but for C-code maybe look at lgio. So maybe tell first what you want to achieve, is it a temperature sensor maybe, or control a MOSFET or relay, etc.
  5. That the Helios64 SW/firmware did sequencing of 3.5inch HDD spin-up is indeed a good method to limit the maximum current draw. I do not know how power architecture is done in Helios64, but w.r.t. 3.5inch disks, so the 12V power need, you might avoid letting the current of the 12V flow through the SBC/motherboard. It is not needed, there might be connectors, still it is not needed. Even for traditional x86 PCs, 12V (and 5V as well) comes straight from the PSU, that is 100-1000W or so usually. The 12V also does not need to be exactly 12V, I feed a 4TB WD HDD from a 12V car battery in the field, is solar powered and 10 years old or so. Due to battery wear out, it sees a voltage of 10.5-14 Volts or so. No problem. 5V for SBC and some other small stuff is via a 3A DC/DC module. A car battery (72Ah or so) should have no issue with spinning up a handfull of 3.5inch HDDs simultaneously. The PCIe-to-SATA chips support hotplug, so you could use some P-MOSFETs or so to have GPIO-controlled powerswitch, but is of course electronics circuit design and soldering etc. Also maybe think if you need all that 5 HDDs (and at the same time) and with a RK3588 SoCo that can go as low as 1.5Watt idle. 5 spinning disks is 20W or so.
  6. Hi I've made a new kernel Auxiliary Display Driver for TM16XX and compatible LED controllers. This driver supports various LED controller chips, including TM16XX family, FD6XX family, PT6964, and HBS658. It provides support for both I2C and SPI interfaces. I wanted it to manage the hardware on the kernel space while having an easy sysfs user space interface. It also aims to reduce the code to maintain by relaying on existing kernel features instead of recoding them. Plus, you can switch to hardware i2c/spi (instead of software gpio) depending on the pins used. You can use "vfdconf-convert" to convert your existing vfd.conf to its device-tree version. Or you can use the already converted vfd.conf of https://github.com/arthur-liberman/vfd-configurations that are listed in the device table. You don't need to manually edit your device tree, the "make" command will apply the device tree source overlay to your dtb. It comes with a service written as a simple bash script. So it's easily customizable without having to write custom C code. Instructions and source code at https://github.com/jefflessard/tm16xx-display/ Could you please give it a try and report your feedback?
  7. I was rechecked that openvfd works and get its config openvfd dtbo overlay fragment (decompiled on running system) It works, driver loaded and userspace software shows me current time on LED (some segments shows wrong, i think it result of wrong chars config) tm16xx: I've tried many values for GPIO line config, GPIO_ACTIVE_LOW (1), GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN (6), GPIO_ACTIVE_HIGH (0), GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN (7). It was no result at all, driver still says that cannot init controller. Also i was tried drivers fd6551, fd655 with different GPIO lines config. No success. I was rechecked LED controller chip on board, it is really FD6551. tm16xx dtbo overlay fragment (decompiled on running system) I have no ideas what goes wrong. When i was configure openvfd device tree, pointing gpio chip as &gpio was not works. Only pointing as "0300b000.pinctrl" was successful. Maybe, its important... Maybe, some features/conflicts at controller init needs debugging
  8. The ultimate travel router and secure hotspothttp://blog.armbian.com/content/images/2025/12/r67.jpgForget insecure hotel Wi-Fi. The NanoPi R76S, powered by the performance-optimized Armbian OS, is your ticket to a truly secure, high-speed mobile network. This pocket-sized device is built around the powerful Octa-core Rockchip RK3576 SoC and supports up to 16GB of LPDDR5 RAM, giving it the muscle to handle demanding, encrypted traffic effortlessly. 💡This device is officially supported by Armbian at the Platinum level, providing long-term maintenance, high reliability, and priority software support.Its core hardware is ideal for the road. The dual 2.5GbE Ethernet ports ensure you can maximize the speed of any high-bandwidth wired connection, while the M.2 E-Key slot allows for adding an optional Wi-Fi card to create a high-speed, personalized hotspot. More importantly, the powerful CPU is a VPN champion. With Armbian, setting up an encrypted connection is simple and utilizes the device's full potential. To create a persistent, secure tunnel for all your devices, just launch the terminal and run: sudo armbian-config. Navigate to Software and select the pre-packaged WireGuard install. This single step leverages the RK3576’s processing power for blazing-fast encryption and decryption, eliminating the speed slowdowns common with weaker travel routers. Finally, the USB 3.2 is perfect for attaching a portable SSD, instantly turning R76S into a secure, mobile NAS for backing up your files. This is just one example of usage. It can be served as a compact home or office server, Home Assistant hub, a high-performance network gateway with advanced firewalling and VPN termination, or a lightweight virtualization host for containers. Thanks to its dual 2.5 GbE interfaces, the R76S excels in scenarios where fast, reliable networking is essential. From segmented home labs and development environments to branch-office routing and monitoring. Combined with low power consumption and solid software support, it offers an impressive balance between performance, flexibility, and efficiency in a remarkably small form factor. Hardware specifications SoCRockchip RK3576 CPUOcta-core ARM (4× Cortex-A72 + 4× Cortex-A53) GPUARM Mali-G52 MC3 OpenGL ES 1.1 / 2.0 / 3.2, Vulkan 1.2, OpenCL 2.0 VPU8K@30fps H.265 / VP9 decoder 4K@60fps encoder NPU6 TOPS (INT8) Supports INT4, INT8, INT16, FP16, BF16, TF32 Memory2 GB / 4 GB LPDDR5 Storage32 GB eMMC microSD (UHS-I) Ethernet2 × PCIe-based 2.5 GbE WirelessOptional M.2 SDIO Wi-Fi USB1 × USB 3.2 Gen 1 Type-A HDMI HDMI 1.4 / 2.0 Up to 10-bit Deep Color Up to 1080p@120Hz or 4096×2304@60Hz 3D video support DebugUART (3-pin 2.54 mm, 3.3 V, up to 1.5 Mbps) GPIO1 × 8-pin GPIO connector Indicators3 × GPIO-controlled LEDs (SYS, LED1, LED2) ButtonsPower, User, MASK (eMMC update) RTC2-pin RTC battery connector (HYM8563TS) Power InputUSB-C, 5 V PCB8-layer PCB, 58 × 58 × 1.6 mm Operating Temperature0 °C to 70 °C View the full article
  9. I have only recently been able to get my LaFrite 512, no EMMC to boot armbian. My errors were legion. Might I suggest: 1. write the spi update image with the dd command, I had used etcher to no avail 2. make sure you use the USB port nearer the gpio pins 3. connect the hdmi output on the board to a monitor or use the serial header pins so that you'll have visual confirmations of what is going on 4. if the spi update image is newer than the board's image the update should be applied. My board was out of date and the image was applied. I've no idea what happens if the board has the same or newer image. I wasn't patient or thorough enough to check. 5. Use etcher to write any of the currently posted minimal images to a usb drive of 8, 16, or 32 GB - don't use a larger usb drive. Do not use the Ubuntu server image - the apt sources are bad on that one. 6. put the usb drive with the linux image in the usb port further from the gpio pins -- the opposite of what is needed for the spi update. Again make user you can see what is going on when you boot - hdmi to monitor is fine. Plug a usb keyboard in the other usb port to make things easy. 7. Power on the board. I used an el-cheapo power supply and it worked just fine. If you have a good usb drive the board should boot fairly quickly. There shouldn't be any or many failures on the way up. Again let me reiterate -- a small usb drive. Every 64GB and larger drive I tried failed during the boot process. You may have better luck, but start small to see it things work. I had decided some months ago that my board was defective, it wasn't, my brain was (or is). Hopefully some of my experiences will help. BTW make sure you use the forky rolling release for your Radxa-2F, because unless Armbian has fixed the older releases, your wireless card's drivers will be deleted on an apt upgrade or an Armbian-upgrade. Hope this helps.
  10. Hello! I've built my own sbc using the Allwinner H3 chip, and I'm looking to get a custom armbian image running on it. I've already successfully compiled an image by adding a new config to u-boot and armbian-build, and a device tree to the linux kernel. Now I'm looking to get the WiFi working, but I can't seem to find where I can change its pin definitions. I'm using the AP6212: the SDIO pins are connected to SDC1 (aka mmc1) like every other board, but the WL_REG_ON (aka WL-PMU-EN) and WL_HOST_WAKE (aka WL-WAKE-AP) pins are connected to GPIO pins different from all other boards, so I'll need to change their pin assignments in the kernel manually. But I can't find where are these pins defined! Do I need to change it via u-boot, the kernel, a module or some config file? Any pointers would be appreciated! Thanks in advance
  11. Using a clean install of Armbian 22.02.1 with Linux 5.15.25-sunxi on a NanoPi NEO the green & blue LEDs no longer work. Previously they have worked with both Armbian and DietPi. # uname -a Linux nanopineo 5.15.25-sunxi #22.02.1 SMP Sun Feb 27 09:23:25 UTC 2022 armv7l GNU/Linux # cat /sys/devices/platform/leds/leds/nanopi:green:status/trigger cat: '/sys/devices/platform/leds/leds/nanopi:green:status/trigger': No such file or directory # cat /sys/class/leds/led{0,1}/trigger cat: /sys/class/leds/led0/trigger: No such file or directory cat: /sys/class/leds/led1/trigger: No such file or directory # ls -lha /sys/class/leds/ total 0 drwxr-xr-x 2 root root 0 Dec 31 1969 . drwxr-xr-x 62 root root 0 Dec 31 1969 .. # grep led /var/log/syslog Feb 27 22:38:48 nanopineo kernel: [ 2.532268] leds-gpio: probe of leds failed with error -16 Feb 27 22:38:48 nanopineo kernel: [ 2.534730] ledtrig-cpu: registered to indicate activity on CPUs # locate leds /usr/bin/setleds /usr/include/linux/uleds.h /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds /usr/lib/modules/5.15.25-sunxi/kernel/drivers/input/input-leds.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/flash /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/led-class-flash.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/leds-an30259a.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/leds-axp20x.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/leds-bcm6328.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/leds-bcm6358.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/leds-bd2802.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/leds-cpcap.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/leds-cr0014114.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/leds-dac124s085.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/leds-el15203000.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/leds-is31fl319x.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/leds-is31fl32xx.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/leds-lm3530.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/leds-lm3532.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/leds-lm355x.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/leds-lm3642.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/leds-lm3692x.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/leds-lm3697.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/leds-lp3944.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/leds-lp3952.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/leds-lp5521.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/leds-lp5523.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/leds-lp5562.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/leds-lp55xx-common.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/leds-lp8501.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/leds-lp8860.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/leds-lt3593.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/leds-max77650.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/leds-mlxreg.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/leds-pca9532.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/leds-pca955x.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/leds-pca963x.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/leds-pwm.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/leds-regulator.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/leds-spi-byte.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/leds-tca6507.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/leds-ti-lmu-common.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/leds-tlc591xx.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/trigger /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/flash/leds-as3645a.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/flash/leds-ktd2692.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/flash/leds-lm3601x.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/flash/leds-rt4505.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/flash/leds-rt8515.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/trigger/ledtrig-audio.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/trigger/ledtrig-backlight.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/trigger/ledtrig-camera.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/trigger/ledtrig-gpio.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/trigger/ledtrig-netdev.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/trigger/ledtrig-oneshot.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/trigger/ledtrig-pattern.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/trigger/ledtrig-timer.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/trigger/ledtrig-transient.ko.xz /usr/lib/modules/5.15.25-sunxi/kernel/drivers/leds/trigger/ledtrig-tty.ko.xz /usr/share/X11/xkb/compat/ledscroll /usr/share/man/man1/setleds.1.gz # ls -l /proc/device-tree/leds total 0 -r--r--r-- 1 root root 10 Apr 10 10:35 compatible drwxr-xr-x 2 root root 0 Apr 10 10:30 led-0 drwxr-xr-x 2 root root 0 Apr 10 10:30 led-1 -r--r--r-- 1 root root 5 Apr 10 10:35 name -r--r--r-- 1 root root 8 Apr 10 10:35 pinctrl-0 -r--r--r-- 1 root root 8 Apr 10 10:35 pinctrl-names drwxr-xr-x 2 root root 0 Apr 10 10:30 pwr drwxr-xr-x 2 root root 0 Apr 10 10:30 status # ls -l /proc/device-tree/leds/led-0 total 0 -r--r--r-- 1 root root 16 Apr 10 10:36 gpios -r--r--r-- 1 root root 19 Apr 10 10:36 label -r--r--r-- 1 root root 10 Apr 10 10:36 linux,default-trigger -r--r--r-- 1 root root 6 Apr 10 10:36 name # ls -l /proc/device-tree/leds/led-1 total 0 -r--r--r-- 1 root root 3 Apr 10 10:36 default-state -r--r--r-- 1 root root 16 Apr 10 10:36 gpios -r--r--r-- 1 root root 17 Apr 10 10:36 label -r--r--r-- 1 root root 6 Apr 10 10:36 name # ls -l /proc/device-tree/leds/pwr total 0 -r--r--r-- 1 root root 16 Apr 10 10:37 gpios -r--r--r-- 1 root root 15 Apr 10 10:37 label -r--r--r-- 1 root root 11 Apr 10 10:37 linux,default-trigger -r--r--r-- 1 root root 4 Apr 10 10:37 name # ls -l /proc/device-tree/leds/status total 0 -r--r--r-- 1 root root 16 Apr 10 10:37 gpios -r--r--r-- 1 root root 20 Apr 10 10:37 label -r--r--r-- 1 root root 10 Apr 10 10:37 linux,default-trigger -r--r--r-- 1 root root 7 Apr 10 10:37 name # cat /proc/device-tree/leds/led-0/gpios <nothing> # cat /proc/device-tree/leds/led-0/label nanopi:blue:status # cat /proc/device-tree/leds/led-0/linux,default-trigger heartbeat # cat /proc/device-tree/leds/led-0/name led-0 # cat /proc/device-tree/leds/led-1/default-state on # cat /proc/device-tree/leds/led-1/gpios 9 # cat /proc/device-tree/leds/led-1/label nanopi:green:pwr # cat /proc/device-tree/leds/led-1/name led-1 # cat /proc/device-tree/leds/pwr/gpios 9 # cat /proc/device-tree/leds/pwr/label nanopi:red:pwr # cat /proc/device-tree/leds/pwr/linux,default-trigger default-on # cat /proc/device-tree/leds/pwr/name pwr # cat /proc/device-tree/leds/status/gpios <nothing> # cat /proc/device-tree/leds/status/label nanopi:green:status # cat /proc/device-tree/leds/status/linux,default-trigger heartbeat # cat /proc/device-tree/leds/status/name status In the armbian-config .dts editor I found that led-0 and led-1 are reversed from what I found above. led-0 is blue and led-1 is green. I don't know if that's a show stopper or not. --- current.dts > edit not saved, kept original --- 1463 leds { 1464 compatible = "gpio-leds"; 1465 1466 led-0 { 1467 label = "nanopi:green:pwr"; 1468 gpios = <0x3f 0x00 0x0a 0x00>; 1469 default-state = "on"; 1470 }; 1471 1472 led-1 { 1473 label = "nanopi:blue:status"; 1474 gpios = <0x0e 0x00 0x0a 0x00>; 1475 linux,default-trigger = "heartbeat"; 1476 }; 1477 }; The config-5.15.25-sunxi file shows; # # LED Triggers # CONFIG_LEDS_TRIGGERS=y CONFIG_LEDS_TRIGGER_TIMER=m CONFIG_LEDS_TRIGGER_ONESHOT=m CONFIG_LEDS_TRIGGER_DISK=y CONFIG_LEDS_TRIGGER_MTD=y CONFIG_LEDS_TRIGGER_HEARTBEAT=y CONFIG_LEDS_TRIGGER_BACKLIGHT=m CONFIG_LEDS_TRIGGER_CPU=y CONFIG_LEDS_TRIGGER_ACTIVITY=y CONFIG_LEDS_TRIGGER_GPIO=m CONFIG_LEDS_TRIGGER_DEFAULT_ON=y I booted with a previous version of DietPi and the LEDs were working as before. It looks like everything needed is there and the correct default trigger is shown etc, I'm not sure where to look next.
  12. I see the next specific inline comments in the Armbian patches for NenoPi Neo at https://github.com/armbian/build/blob/69e8482426c7da4482dae06edb838dfe8bfd9920/patch/kernel/archive/sunxi-6.12/patches.armbian/arm-dts-h3-nanopi-neo-Add-regulator-leds-mmc2.patch. + /* Warning: sunxi-5.18: + * The leds node is present in the sun8i-h3-nanopi.dtsi file + * You will have to fix this situation yourself + */ + leds { + compatible = "gpio-leds"; + Looks like Linux Kernel source itself has its own `/led/led-0` and `/led/led-1` now in https://github.com/torvalds/linux/blob/master/arch/arm/boot/dts/allwinner/sun8i-h3-nanopi.dtsi and it seems preventing patched `/led/pwr` and `/led/status` work. Now I added following Device Tree Overlay and both PWR and STAT leds works again as expected. /dts-v1/; /plugin/; / { compatible = "allwinner,sun8i-h3"; fragment@0 { target-path = "/leds/led-0"; __overlay__ { status = "disabled"; }; }; fragment@1 { target-path = "/leds/led-1"; __overlay__ { status = "disabled"; }; }; }; Create this file as like `fix-leds.dts` then run `sudo armbian-add-overlay fix-leds.dts` by following https://docs.armbian.com/User-Guide_Armbian_overlays/ then reboot the device now PWR LED on and STAT LED blinks.
  13. This week’s Armbian development saw a series of notable updates focused on expanding hardware support and improving system stability. Key highlights include the addition of new board configurations, such as the Radxa E24C and rk3566-box-demo, as well as enhancements to device tree files for improved hardware control. Kernel updates were prominent, with fixes for AV1 and VP9 decoding, expanded support for kernel 6.18, and a rewrite of Rockchip kernel patches. Installation processes were streamlined with the introduction of a direct flashing method, while sound card and display support received targeted improvements. The team also deprecated EFI/Grub in favor of a more robust u-boot flow for Genio devices. Overall, these changes reflect Armbian’s ongoing commitment to broadening compatibility and refining user experience. Add BOARD_VENDOR to board configs. by @igorpecovnik in armbian/build#9063Add Radxa E24C; vendor kernel and vendor u-boot only for now. by @rpardini in armbian/build#9038Add support for rk3566-box-demo. by @andyshrk in armbian/build#9008dts: rockchip: rk3399-fine3399: adjust pwm-fan control strategy. by @Lemon1151 in armbian/build#9036Enable direct flashing method in armbian-install menu. by @igorpecovnik in armbian/build#9022Fixed SOC_RT5651 build. by @iamdrq in armbian/build#9052Genio: Deprecate EFI/Grub in favor of proper uboot flow. by @HeyMeco in armbian/build#9040jethubj200: update JetHub D2 DT file for I2C display and GPIO expande…. by @QwaSeeK in armbian/build#9048lib / rootfs-create: make rm command more robust. by @leggewie in armbian/build#9060nanopct6: Add ALSA sound card configuration. by @SuperKali in armbian/build#9045nanopi-r76s: move patch to board specific folder. by @EvilOlaf in armbian/build#9062qcs6490: VP9 fix backported from mailing list. by @HeyMeco in armbian/build#9055Rock-5B-Plus: Fix Mainline u-boot. by @HeyMeco in armbian/build#9039rockchip-current: rewrite kernel patches. by @EvilOlaf in armbian/build#9054rockchip64-6.18: add patch to fix av1 decoding on rk3588. by @amazingfate in armbian/build#9042rockchip64-edge: enable CONFIG_ROCKCHIP_DW_DP. by @amazingfate in armbian/build#9047rtw88: Add kernel 6.18 support and clean up patch logic. by @SuperKali in armbian/build#9041sunxi-current: bump to latest 6.12.y version. by @EvilOlaf in armbian/build#9053sunxi: bump current to latest minor. by @EvilOlaf in armbian/build#9066Watchdog extension. by @iav in armbian/build#9044View the full article
  14. If you use your own boardconfig file, or edit another boardconfig file, you may be missing some configs or device tree overlay, and make problems in configuring SPI and GPIO pins. I always use boardconfig that's included in armbian-build, specifically for Orange Pi Zero 3, by following the text menu, and not editing any file.
  15. @PH Ph You need to find the correct GPIO# for your emmc. Extract the boot.bin from your original Android to get the device tree (DTS). Follow the steps in this link. https://forum.armbian.com/topic/29794-how-to-install-armbian-in-h618/#findComment-187672
  16. Can you clarify that you made a custom H618 board ?? (not exactly Orange Pi Zero 3?). If I remember correctly, you had previous success with an ili9341 and the same linux board? You need to compare the DTS that worked for you (with ilitek, ili9341, right?) and the new DTS you are trying to modify (with panel-mpi-dbi, for ili9488). Make sure you haven't changed the GPIO in the DTS, and the connections in the LCD and your Linux board. If the ili9341 was working for you with the H616 armbian configuration, changing to H618 might need changes in the LCD DTS from that change.... to make those SPI pins to be addressed correctly. That previous H616 armbian configuration... what Linux board was it meant for? Change back to the configuration that made your board work with the ili9341.
  17. First of all, thank you to @Hqnicolas and all the members for this great effort. Just bought an H96 rk3566, having this hardware configuration: BOARD LABEL: HCY-RK3566-1X32-V20 2023-01-13 SOC RK3566 PMIC RK809-5 LAN RTL8211F DISPLAY FD6551 WIFI AIC8800D40 eMMC H26M74002HMR - SK Hynix eMMC 5.1 NAND Flash 64Gb. It seems to be a mix of the other versions described in this topic, although very close to the one of @WINEDS (thanks for the hints). Everything seems to work so far. Installed using rockchip dev tools, as advised. here its: _ _ _ _ _ /_\ _ _ _ __ | |__(_)__ _ _ _ __ ___ _ __ _ __ _ _ _ _ (_) |_ _ _ / _ \| '_| ' \| '_ \ / _` | ' \ / _/ _ \ ' \| ' \ || | ' \| | _| || | /_/ \_\_| |_|_|_|_.__/_\__,_|_||_|_\__\___/_|_|_|_|_|_\_,_|_||_|_|\__|\_, | |___| |__/ v26.2 rolling for h96-tvbox-3566 running Armbian Linux 6.12.61-current-rockchip64 Packages: Debian stable (trixie) Support: for advanced users (rolling release) IPv4: (LAN) 192.168.111.228, 192.168.111.91 (WAN) xxxxxxxxxxx Containers: big-bear-photoprism-db Performance: Load: 8% Uptime: 46 minutes Memory usage: 6% of 7.50G CPU temp: 38°C Usage of /: 31% of 57G To enable Bluetooth I have used this small overlay in /boot/overlay-user/ (which enables SPDIF as well): /dts-v1/; /plugin/; /* &{/serial@fe650000} */ &uart1 { status = "okay"; dma-names = "tx\0rx"; bluetooth { status = "disabled"; }; }; &spdif { clock-names = "mclk\0hclk"; status="okay"; }; The followings are the drivers used for wifi-bluetooth wget https://github.com/radxa-pkg/aic8800/releases/download/4.0%2Bgit20250410.b99ca8b6-3/aic8800-firmware_4.0+git20250410.b99ca8b6-3_all.deb wget https://github.com/radxa-pkg/aic8800/releases/download/4.0%2Bgit20250410.b99ca8b6-3/aic8800-sdio-dkms_4.0+git20250410.b99ca8b6-3_all.deb dpkg -i aic8800-firmware_4.0+git20250410.b99ca8b6-3_all.deb dpkg -i aic8800-sdio-dkms_4.0+git20250410.b99ca8b6-3_all.deb Service to enable bluetooth : [Unit] Description=Bluetooth HCI Attach (AIC8800) After=systemd-modules-load.service Requires=systemd-modules-load.service After=dev-ttyS1.device Requires=dev-ttyS1.device [Service] Type=oneshot # Load AIC module ExecStartPre=/sbin/modprobe aic8800_btlpm_sdio # Just a small delay ExecStartPre=/bin/sleep 2 # Attach HCI ExecStart=/usr/bin/hciattach -s 1500000 /dev/ttyS1 any 1500000 flow nosleep To re-enable display in Linux 6.12 another small overlay is required: (the display itself it is not scrolling and available at: /sys/class/leds/display/value ) /dts-v1/; /plugin/; &{/i2c-aux-display} { compatible = "i2c-gpio"; #address-cells = <0x01>; #size-cells = <0x00>; display@24 { compatible = "fdhisi,fd6551"; reg = <0x24>; #address-cells = <0x01>; #size-cells = <0x00>; tm16xx,digits = [04 03 02 01]; tm16xx,segment-mapping = [00 01 02 03 04 05 06]; led@0,0 { reg = <0x00 0x00>; function = "alarm"; }; led@0,1 { reg = <0x00 0x01>; function = "usb"; linux,default-trigger = "usb-host"; }; led@0,2 { reg = <0x00 0x02>; function = "pause"; linux,default-trigger = "mmc2"; }; led@0,3 { reg = <0x00 0x03>; function = "play"; linux,default-trigger = "mmc0"; }; led@0,4 { reg = <0x00 0x04>; function = "colon"; }; led@0,5 { reg = <0x00 0x05>; function = "lan"; linux,default-trigger = "stmmac-0:00:link"; }; led@0,6 { reg = <0x00 0x06>; function = "wlan"; linux,default-trigger = "mmc1"; }; digits { status = "disabled"; }; leds { status = "disabled"; }; }; }; rk3566-bt-fix.dtso rk3566-led-fix.dtso
  18. 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
  19. /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"; }; };
  20. Hello. Im trying to configurate and adapt OrangePI Zero 2W board to a custom extension board with multiple RS485 drivers. For now, im trying to configurate a single secondary UART (UART2) to initialize with muxed Rx\Tx pins and in RS485 (with software driven RTS pin). My current DT overlay is: And it is partially works. Works as UART. Able to send and receive data with muxed Rx\Tx. For RTS... its complicated. Seems RTS(PH4 GPIO) are initialized and acquired by UART2 software, and stay low during initial idling. After im trying to send any data (echo 123 >> /dev/ttyS2), RTS goes HIGH and stuck in this state before reboot. Im have tried to send big blob at 9600 and check the RTS with statserial. But as i see, RTS is 1 (active???) from inital to complete and after, and never changes.
  21. Sounds a bit like with My ROCK3A. Bought it last yer and with a SATA breakout board. That breakout board was a newer HW version with a but flatter and simpler (and cheaper of course) SATA connector, such that I could get a SATA cable connected as the MIPI DSI conector was in the way, just slightly too high. So for the 3 euros that it costed I thought, time to warm up the soldering iron and lift it a bit so a SATA cable fits. Radxa apologized and I think the idea was that I would get some new SATA thingy or so for free. Yeah right, trust is gone. That proved a second time as they did not take any further initiative. For example how do they think they can reach me (being at the at the other side of the world). Also now that combination is is just removed from the products page. Indeed they sell now own ASM1166 M.2 M-key modules, of course at a higher price that the generic ones on Aliexpress. No surprise form a Chinese a company, they just throw new boards on the market and hope someone will be their guinea-pig. Also your ROCK4C (non-plus) is not listed anymore. Also note it has no PCIE, so my guess is it uses some USB3 connection. I personally avoid it like a plague. Maybe it can save you in this case, maybe try to get a schematics of the PCB, then the whole thing might work with the HAT off and just GND+5V with own soldering/wiring. Else sell it befor it is too late. That is what also have advised a RPi5 + SATA HAT user who had trouble. As separate components, loss it not too big maybe. My ROCK3A+breakout board was 40 euros, great for replacing old PC for 1 SATA HDD. That those HATs are covering all GPIO, I know, that is why I never will buy a HAT again, also not a Raspberry I think who 'invented' it. I soldered extra wires on top. In your case I would solder the USB console cable on the underside, drop of hotglue and done. Faster than I can write this message. Or else look for a PUKE (Peripheral Under Kernel Environment module that is meant for debugging low-level U-Boot and kernel issues).
  22. Ok, I got the serial output working. Oddly everything worked and the unit booted. 😕 So I go and put the Radxa Penta SATA HAT and boom back to the same issue. The HAT appears to be causing an issue. Activity light is on but in a continuous double blink. The NIC is also showing activity but I can not access or ping. Switch shows a link but no data. Sucks because of the Penta HAT, I am not able to connect the serial to USB cable. The HAT is covering the entire GPIO. https://radxa.com/products/accessories/penta-sata-hat Thought to myself. Ok, let's revert back to an older release (Bookworm). It has the same issue. It's not until I get to Bullseye that it works. Has me thinking. Am I that few who purchased the Rock Pi 4C non plus with their Penta SATA HAT?
  23. Continuing the tradition (1, 2) of micro-optimizations for single-board computers that come into my hands. This time I optimized or rather fixed the wake-up function via USB/WoL/WWoL on the Orange Pi 5 Plus. Also got the WiFi adapter RTW8852BE/RTW8852CE working (at least those are the ones I tested). I tested exclusively on the Vendor 6.1.x kernel since the main wake-up features via USB/PCIE/GPIO1-GPIO4 only work in it. I don't currently have the ability to test the new current kernel and I doubt that Power Management will work fully there. Armbian for Orange Pi 5 Plus from the official website, Vendor kernel (kernel 6.1.115-vendor-rk35xx), what does NOT work by default: 1. No WiFi modules that insert into the PCI-E M.2 socket E-Key work - fixed in dts below 2. Wake-up from USB (mouse/keyboard/even Bluetooth dongle) doesn't work - fixed in dts below 3. WoL via Ethernet (on two ports) - fixed in dts below I also conducted power consumption measurements in all these wake-up modes. Let's start with Ethernet ports (WoL won't work by default due to incomplete dts profile). You need to create an overlay file, links I've attached it to this message. To apply this overlay, you need to copy it somewhere on the single-board computer and execute the command: cd <path to rk3588-orangepi-5-plus-Wakeup-GPIO-RTC-USB-WoL-fixes.dts> sudo armbian-add-overlay rk3588-orangepi-5-plus-Wakeup-GPIO-RTC-USB-WoL-fixes.dts Reboot. (if it doesn't boot at all with it or something doesn't work, you can remove these changes from the /boot/overlay-user/ folder) Wake-up Timer Test: sudo sh -c "echo 0 > /sys/class/rtc/rtc0/wakealarm" sudo sh -c "echo `date '+%s' -d '+ 1 minutes'` > /sys/class/rtc/rtc0/wakealarm" sudo systemctl suspend (here we set wake-up in 1 minute from current time, you can choose seconds/minutes/hours and so on, maybe even days - haven't tested. Installing a battery on RTC is not necessary, Type-C power is sufficient) Power Consumption: Testing was performed on Imax B6 Evo / OWON HDS242S. Please note, power consumption of m.2 SSD, SD-card, eMMC is not accounted for here (ideally they should be powered off in sleep mode), but USB devices were not used, bare single-board computer was tested, each module will have its own consumption, especially USB-connected devices, add your values to the sleep mode consumption. Wake-up only via GPIO0 (this includes power button), RTC In this power-saving mode only the rk3588-orangepi-5-plus-Wakeup-GPIO0-RTC-only-fixes.dts profile is used, keep this in mind, it's not compatible with other dts, you need to choose only one option. I got these values: sudo shutdown -h now | 5.4V | 0.005W | 0.001A sudo systemctl suspend | 5.4V | 0.14W | 0.027A Wake-up via GPIO0, GPIO1-4, RTC, USB, WoL In this power-saving mode only the rk3588-orangepi-5-plus-Wakeup-GPIO-RTC-USB-WoL-fixes.dts profile is used, keep this in mind, it's not compatible with other dts, you need to choose only one option. sudo systemctl suspend | 5.4V | 0.25W | 0.046A RTL8125B (eth0 or eth1, can even be both): sudo ethtool -s eth0 wol g && sudo systemctl suspend | 5.4V | 0.33W | 0,061A RTW8852BE (external rtw8852be driver (rtw89 doesn't support WWoL for RTW8852BE in vendor 6.1 kernel)): sudo iw phy0 wowlan enable any && sudo systemctl suspend | 5.4V | 0.30W | 0,055A RTW8852CE (built-in rtw89 driver in the build): sudo iw phy0 wowlan enable magic-packet && sudo systemctl suspend | 5.4V | 0.27W | 0,051A (I want to note that the Ethernet ports on Orange Pi 5 Plus in WoL mode don't light up and don't show link activity, you can only find out if the link is working on the router or on the device to which the single-board computer is connected. In magic-packet standby mode the link switches to 10Mbit and for example on the router loses the assigned IP address, you can find out if the device is alive only by ARP scanning on the router itself or by the link light indication on the router itself. The same applies to WWoL (WiFi) - only on the router or device to which the single-board computer is connected can you check in active clients mode or ARP scan for the presence of MAC address) My Armbian build from the official website on Vendor 6.1 kernel where rtw89 (WiFi) modules are already compiled and pre-installed in the kernel has a peculiarity that this driver supports WWoL function only for RTW8852CE - this is a slightly different chip than the official proprietary WiFi module for Orange Pi 5 Plus which uses RTW8852BE. For WWoL to work on RTW8852BE you need to install a third-party driver, for example I recommend from this source. How to use WoL, WWoL: For wired network use ip and ethtool utilities, for wireless network iw. WoL over LAN WWoL over WiFi External Drivers: For RTW8852BE/RTW8852CE and others there are fairly recent drivers (at the time of writing this manual), here's a brief instruction on how to install them on Orange Pi 5 Plus. Issues: File: rk3588-orangepi-5-plus-Wakeup-GPIO-RTC-USB-WoL-fixes.dts File: rk3588-orangepi-5-plus-Wakeup-GPIO0-RTC-only-fixes.dts Original Link 4PDA
  24. Yes, that is the correct sequence of actions: 1. Build armbian minimal with panel-mipi-dbi kernel module 2. Use DTS so that the kernel links the GPIO, SPI to the panel-mipi-dbi kernel module 3. Use the bin file (originally provided by Kungfu pancake) <-mandatory, not optional 4. If you see console text successfully in the LCD during boot, you have successfully installed your LCD 5. Tell us here, for the next step in GUI installation The "greeter" is the graphical login screen. Labwc is the wayland-based compositor and window manager (I think).
  25. I would take this as a base: https://wiki.friendlyelec.com/wiki/index.php/NanoPi_NEO2#Set_Audio_Device I have several H3 NanoPi-NEO and use their on-board audio HW. If you want external audio HW, dig deep into Armbian GPIO config, it can be set with some text in armbianEnv.txt, but all depends the board pinout and just reading H5 SoC datasheet for pin and signal codes how to map. Done that for an AllWinnner A20 board and lot of internet searching as well.
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines