From 60424658d5e0be805343694ae06acfd5759c95e6 Mon Sep 17 00:00:00 2001 From: Calin Crisan Date: Wed, 31 May 2017 23:12:23 +0300 Subject: [PATCH] initial work on Pine64 boards support --- board/pine64/boot0.bin | Bin 0 -> 32768 bytes board/pine64/mkimage.sh | 15 + .../pine64/overlay-initramfs/remove_initramfs | 4 + board/pine64/overlay/etc/board | 1 + board/pine64/overlay/etc/init.d/boardsn | 5 + .../overlay/usr/libexec/fw-prepare-boot | 4 + board/pine64/pine64.dts | 3441 +++++++++++++++++ board/pine64/pine64plus.dts | 3441 +++++++++++++++++ board/pine64/postscript.sh | 13 + configs/pine64_defconfig | 85 + 10 files changed, 7009 insertions(+) create mode 100644 board/pine64/boot0.bin create mode 100755 board/pine64/mkimage.sh create mode 100755 board/pine64/overlay-initramfs/remove_initramfs create mode 100644 board/pine64/overlay/etc/board create mode 100755 board/pine64/overlay/etc/init.d/boardsn create mode 100755 board/pine64/overlay/usr/libexec/fw-prepare-boot create mode 100644 board/pine64/pine64.dts create mode 100644 board/pine64/pine64plus.dts create mode 100755 board/pine64/postscript.sh create mode 100644 configs/pine64_defconfig diff --git a/board/pine64/boot0.bin b/board/pine64/boot0.bin new file mode 100644 index 0000000000000000000000000000000000000000..3ad8341f86190f61c71a729f40ac47dc1dfb4b50 GIT binary patch literal 32768 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/dev/null | tr -d ':') +echo ${sn: -8} + diff --git a/board/pine64/overlay/usr/libexec/fw-prepare-boot b/board/pine64/overlay/usr/libexec/fw-prepare-boot new file mode 100755 index 0000000000..57c4eca6da --- /dev/null +++ b/board/pine64/overlay/usr/libexec/fw-prepare-boot @@ -0,0 +1,4 @@ +#!/bin/bash + +sed -i 's/00 - 0x/00 0x13000000 0x/' /boot/boot.ini + diff --git a/board/pine64/pine64.dts b/board/pine64/pine64.dts new file mode 100644 index 0000000000..850e8ad99b --- /dev/null +++ b/board/pine64/pine64.dts @@ -0,0 +1,3441 @@ +/dts-v1/; + +/memreserve/ 0x0000000045000000 0x0000000000200000; +/memreserve/ 0x0000000041010000 0x0000000000010000; +/memreserve/ 0x0000000041020000 0x0000000000000800; +/memreserve/ 0x0000000040100000 0x0000000000004000; +/memreserve/ 0x0000000040104000 0x0000000000001000; +/memreserve/ 0x0000000040105000 0x0000000000001000; +/ { + model = "Pine64"; + compatible = "pine64,pine64"; + interrupt-parent = <0x1>; + #address-cells = <0x2>; + #size-cells = <0x2>; + + clocks { + compatible = "allwinner,sunxi-clk-init"; + device_type = "clocks"; + #address-cells = <0x2>; + #size-cells = <0x2>; + ranges; + reg = <0x0 0x1c20000 0x0 0x320 0x0 0x1f01400 0x0 0xb0 0x0 0x1f00060 0x0 0x4>; + + losc { + #clock-cells = <0x0>; + compatible = "allwinner,fixed-clock"; + clock-frequency = <0x8000>; + clock-output-names = "losc"; + linux,phandle = <0xc>; + phandle = <0xc>; + }; + + iosc { + #clock-cells = <0x0>; + compatible = "allwinner,fixed-clock"; + clock-frequency = <0xf42400>; + clock-output-names = "iosc"; + linux,phandle = <0xd>; + phandle = <0xd>; + }; + + hosc { + #clock-cells = <0x0>; + compatible = "allwinner,fixed-clock"; + clock-frequency = <0x16e3600>; + clock-output-names = "hosc"; + linux,phandle = <0x6>; + phandle = <0x6>; + }; + + pll_cpu { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-pll-clock"; + lock-mode = "new"; + clock-output-names = "pll_cpu"; + }; + + pll_audio { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-pll-clock"; + lock-mode = "new"; + assigned-clock-rates = <0x1770000>; + clock-output-names = "pll_audio"; + linux,phandle = <0x2>; + phandle = <0x2>; + }; + + pll_video0 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-pll-clock"; + lock-mode = "new"; + assigned-clock-rates = <0x11b3dc40>; + clock-output-names = "pll_video0"; + linux,phandle = <0x3>; + phandle = <0x3>; + }; + + pll_ve { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-pll-clock"; + lock-mode = "new"; + clock-output-names = "pll_ve"; + linux,phandle = <0x16>; + phandle = <0x16>; + }; + + pll_ddr0 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-pll-clock"; + lock-mode = "new"; + clock-output-names = "pll_ddr0"; + linux,phandle = <0x93>; + phandle = <0x93>; + }; + + pll_periph0 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-pll-clock"; + lock-mode = "new"; + clock-output-names = "pll_periph0"; + linux,phandle = <0x4>; + phandle = <0x4>; + }; + + pll_periph1 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-pll-clock"; + lock-mode = "new"; + clock-output-names = "pll_periph1"; + linux,phandle = <0x5>; + phandle = <0x5>; + }; + + pll_video1 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-pll-clock"; + lock-mode = "new"; + assigned-clock-rates = <0x11b3dc40>; + clock-output-names = "pll_video1"; + }; + + pll_gpu { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-pll-clock"; + lock-mode = "new"; + clock-output-names = "pll_gpu"; + linux,phandle = <0x96>; + phandle = <0x96>; + }; + + pll_mipi { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-pll-clock"; + lock-mode = "new"; + clock-output-names = "pll_mipi"; + linux,phandle = <0x8>; + phandle = <0x8>; + }; + + pll_hsic { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-pll-clock"; + lock-mode = "new"; + clock-output-names = "pll_hsic"; + linux,phandle = <0x3a>; + phandle = <0x3a>; + }; + + pll_de { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-pll-clock"; + lock-mode = "new"; + assigned-clock-rates = <0x11b3dc40>; + clock-output-names = "pll_de"; + linux,phandle = <0x7>; + phandle = <0x7>; + }; + + pll_ddr1 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-pll-clock"; + lock-mode = "new"; + clock-output-names = "pll_ddr1"; + linux,phandle = <0x94>; + phandle = <0x94>; + }; + + pll_audiox8 { + #clock-cells = <0x0>; + compatible = "allwinner,fixed-factor-clock"; + clocks = <0x2>; + clock-mult = <0x8>; + clock-div = <0x1>; + clock-output-names = "pll_audiox8"; + }; + + pll_audiox4 { + #clock-cells = <0x0>; + compatible = "allwinner,fixed-factor-clock"; + clocks = <0x2>; + clock-mult = <0x8>; + clock-div = <0x2>; + clock-output-names = "pll_audiox4"; + linux,phandle = <0x3c>; + phandle = <0x3c>; + }; + + pll_audiox2 { + #clock-cells = <0x0>; + compatible = "allwinner,fixed-factor-clock"; + clocks = <0x2>; + clock-mult = <0x8>; + clock-div = <0x4>; + clock-output-names = "pll_audiox2"; + }; + + pll_video0x2 { + #clock-cells = <0x0>; + compatible = "allwinner,fixed-factor-clock"; + clocks = <0x3>; + clock-mult = <0x2>; + clock-div = <0x1>; + clock-output-names = "pll_video0x2"; + }; + + pll_periph0x2 { + #clock-cells = <0x0>; + compatible = "allwinner,fixed-factor-clock"; + clocks = <0x4>; + clock-mult = <0x2>; + clock-div = <0x1>; + clock-output-names = "pll_periph0x2"; + linux,phandle = <0x7b>; + phandle = <0x7b>; + }; + + pll_periph1x2 { + #clock-cells = <0x0>; + compatible = "allwinner,fixed-factor-clock"; + clocks = <0x5>; + clock-mult = <0x2>; + clock-div = <0x1>; + clock-output-names = "pll_periph1x2"; + linux,phandle = <0x5a>; + phandle = <0x5a>; + }; + + pll_periph0d2 { + #clock-cells = <0x0>; + compatible = "allwinner,fixed-factor-clock"; + clocks = <0x4>; + clock-mult = <0x1>; + clock-div = <0x2>; + clock-output-names = "pll_periph0d2"; + }; + + hoscd2 { + #clock-cells = <0x0>; + compatible = "allwinner,fixed-factor-clock"; + clocks = <0x6>; + clock-mult = <0x1>; + clock-div = <0x2>; + clock-output-names = "hoscd2"; + }; + + cpu { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "cpu"; + }; + + cpuapb { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "cpuapb"; + }; + + axi { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "axi"; + }; + + pll_periphahb0 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "pll_periphahb0"; + }; + + ahb1 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "ahb1"; + linux,phandle = <0x95>; + phandle = <0x95>; + }; + + apb1 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "apb1"; + }; + + apb2 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "apb2"; + linux,phandle = <0x7e>; + phandle = <0x7e>; + }; + + ahb2 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "ahb2"; + }; + + ths { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "ths"; + linux,phandle = <0x84>; + phandle = <0x84>; + }; + + nand { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "nand"; + linux,phandle = <0x80>; + phandle = <0x80>; + }; + + sdmmc0_mod { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "sdmmc0_mod"; + linux,phandle = <0x60>; + phandle = <0x60>; + }; + + sdmmc0_bus { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "sdmmc0_bus"; + linux,phandle = <0x61>; + phandle = <0x61>; + }; + + sdmmc0_rst { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "sdmmc0_rst"; + linux,phandle = <0x62>; + phandle = <0x62>; + }; + + sdmmc1_mod { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "sdmmc1_mod"; + linux,phandle = <0x65>; + phandle = <0x65>; + }; + + sdmmc1_bus { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "sdmmc1_bus"; + linux,phandle = <0x66>; + phandle = <0x66>; + }; + + sdmmc1_rst { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "sdmmc1_rst"; + linux,phandle = <0x67>; + phandle = <0x67>; + }; + + sdmmc2_mod { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "sdmmc2_mod"; + linux,phandle = <0x5b>; + phandle = <0x5b>; + }; + + sdmmc2_bus { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "sdmmc2_bus"; + linux,phandle = <0x5c>; + phandle = <0x5c>; + }; + + sdmmc2_rst { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "sdmmc2_rst"; + linux,phandle = <0x5d>; + phandle = <0x5d>; + }; + + ts { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "ts"; + }; + + ce { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "ce"; + linux,phandle = <0x7a>; + phandle = <0x7a>; + }; + + spi0 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "spi0"; + linux,phandle = <0x52>; + phandle = <0x52>; + }; + + spi1 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "spi1"; + linux,phandle = <0x56>; + phandle = <0x56>; + }; + + i2s0 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "i2s0"; + linux,phandle = <0x42>; + phandle = <0x42>; + }; + + i2s1 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "i2s1"; + linux,phandle = <0x47>; + phandle = <0x47>; + }; + + i2s2 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "i2s2"; + linux,phandle = <0x48>; + phandle = <0x48>; + }; + + spdif { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "spdif"; + linux,phandle = <0x49>; + phandle = <0x49>; + }; + + usbphy0 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "usbphy0"; + linux,phandle = <0x32>; + phandle = <0x32>; + }; + + usbphy1 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "usbphy1"; + linux,phandle = <0x36>; + phandle = <0x36>; + }; + + usbhsic { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "usbhsic"; + linux,phandle = <0x38>; + phandle = <0x38>; + }; + + usbhsic12m { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "usbhsic12m"; + linux,phandle = <0x39>; + phandle = <0x39>; + }; + + usbohci1 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "usbohci1"; + linux,phandle = <0x3b>; + phandle = <0x3b>; + }; + + usbohci0 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "usbohci0"; + linux,phandle = <0x35>; + phandle = <0x35>; + }; + + de { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + assigned-clock-parents = <0x7>; + assigned-clock-rates = <0x11b3dc40>; + clock-output-names = "de"; + linux,phandle = <0x6a>; + phandle = <0x6a>; + }; + + tcon0 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + assigned-clock-parents = <0x8>; + clock-output-names = "tcon0"; + linux,phandle = <0x6b>; + phandle = <0x6b>; + }; + + tcon1 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + assigned-clock-parents = <0x3>; + clock-output-names = "tcon1"; + linux,phandle = <0x6e>; + phandle = <0x6e>; + }; + + deinterlace { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "deinterlace"; + linux,phandle = <0x7c>; + phandle = <0x7c>; + }; + + csi_s { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "csi_s"; + linux,phandle = <0x73>; + phandle = <0x73>; + }; + + csi_m { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "csi_m"; + linux,phandle = <0x74>; + phandle = <0x74>; + }; + + csi_misc { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "csi_misc"; + linux,phandle = <0x75>; + phandle = <0x75>; + }; + + ve { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "ve"; + linux,phandle = <0x17>; + phandle = <0x17>; + }; + + adda { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "adda"; + linux,phandle = <0x41>; + phandle = <0x41>; + }; + + addax4 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "addax4"; + }; + + avs { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "avs"; + }; + + hdmi { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + assigned-clock-parents = <0x3>; + clock-output-names = "hdmi"; + linux,phandle = <0x6f>; + phandle = <0x6f>; + }; + + hdmi_slow { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "hdmi_slow"; + linux,phandle = <0x70>; + phandle = <0x70>; + }; + + mbus { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "mbus"; + }; + + mipidsi { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "mipidsi"; + linux,phandle = <0x6d>; + phandle = <0x6d>; + }; + + gpu { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "gpu"; + linux,phandle = <0x97>; + phandle = <0x97>; + }; + + usbehci_16 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "usbohci_16"; + }; + + usbehci1 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "usbehci1"; + linux,phandle = <0x37>; + phandle = <0x37>; + }; + + usbehci0 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "usbehci0"; + linux,phandle = <0x34>; + phandle = <0x34>; + }; + + usbotg { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "usbotg"; + linux,phandle = <0x33>; + phandle = <0x33>; + }; + + gmac { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "gmac"; + linux,phandle = <0x8f>; + phandle = <0x8f>; + }; + + sdram { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "sdram"; + }; + + dma { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "dma"; + linux,phandle = <0xb>; + phandle = <0xb>; + }; + + hwspinlock_rst { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "hwspinlock_rst"; + linux,phandle = <0xf>; + phandle = <0xf>; + }; + + hwspinlock_bus { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "hwspinlock_bus"; + linux,phandle = <0x10>; + phandle = <0x10>; + }; + + msgbox { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "msgbox"; + linux,phandle = <0xe>; + phandle = <0xe>; + }; + + lvds { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "lvds"; + linux,phandle = <0x6c>; + phandle = <0x6c>; + }; + + uart0 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "uart0"; + linux,phandle = <0x18>; + phandle = <0x18>; + }; + + uart1 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "uart1"; + linux,phandle = <0x1b>; + phandle = <0x1b>; + }; + + uart2 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "uart2"; + linux,phandle = <0x1e>; + phandle = <0x1e>; + }; + + uart3 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "uart3"; + linux,phandle = <0x21>; + phandle = <0x21>; + }; + + uart4 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "uart4"; + linux,phandle = <0x24>; + phandle = <0x24>; + }; + + scr { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "scr"; + linux,phandle = <0x7d>; + phandle = <0x7d>; + }; + + twi0 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "twi0"; + linux,phandle = <0x27>; + phandle = <0x27>; + }; + + twi1 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "twi1"; + linux,phandle = <0x2a>; + phandle = <0x2a>; + }; + + twi2 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "twi2"; + linux,phandle = <0x2d>; + phandle = <0x2d>; + }; + + twi3 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "twi3"; + }; + + pio { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "pio"; + linux,phandle = <0xa>; + phandle = <0xa>; + }; + + cpurcir { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-cpus-clock"; + clock-output-names = "cpurcir"; + linux,phandle = <0x12>; + phandle = <0x12>; + }; + + cpurpio { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-cpus-clock"; + clock-output-names = "cpurpio"; + linux,phandle = <0x9>; + phandle = <0x9>; + }; + + cpurpll_peri0 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-cpus-clock"; + clock-output-names = "cpurpll_peri0"; + }; + + cpurcpus { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-cpus-clock"; + clock-output-names = "cpurcpus"; + }; + + cpurahbs { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-cpus-clock"; + clock-output-names = "cpurahbs"; + }; + + cpurapbs { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-cpus-clock"; + clock-output-names = "cpurapbs"; + }; + + losc_out { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-cpus-clock"; + clock-output-names = "losc_out"; + linux,phandle = <0x98>; + phandle = <0x98>; + }; + }; + + soc@01c00000 { + compatible = "simple-bus"; + #address-cells = <0x2>; + #size-cells = <0x2>; + ranges; + device_type = "soc"; + + pinctrl@01f02c00 { + compatible = "allwinner,sun50i-r-pinctrl"; + reg = <0x0 0x1f02c00 0x0 0x400>; + interrupts = <0x0 0x2d 0x4>; + clocks = <0x9>; + device_type = "r_pio"; + gpio-controller; + interrupt-controller; + #interrupt-cells = <0x2>; + #size-cells = <0x0>; + #gpio-cells = <0x6>; + linux,phandle = <0x79>; + phandle = <0x79>; + + s_cir0@0 { + allwinner,pins = "PL11"; + allwinner,function = "s_cir0"; + allwinner,muxsel = <0x2>; + allwinner,drive = <0x2>; + allwinner,pull = <0x1>; + linux,phandle = <0x11>; + phandle = <0x11>; + }; + + spwm0@0 { + linux,phandle = <0xaf>; + phandle = <0xaf>; + allwinner,pins = "PL10"; + allwinner,function = "spwm0"; + allwinner,pname = "pwm_positive"; + allwinner,muxsel = <0x2>; + allwinner,pull = <0x0>; + allwinner,drive = <0xffffffff>; + allwinner,data = <0xffffffff>; + }; + + spwm0@1 { + linux,phandle = <0xb0>; + phandle = <0xb0>; + allwinner,pins = "PL10"; + allwinner,function = "spwm0"; + allwinner,pname = "pwm_positive"; + allwinner,muxsel = <0x7>; + allwinner,pull = <0x0>; + allwinner,drive = <0xffffffff>; + allwinner,data = <0xffffffff>; + }; + + s_uart0@0 { + linux,phandle = <0xb6>; + phandle = <0xb6>; + allwinner,pins = "PL2", "PL3"; + allwinner,function = "s_uart0"; + allwinner,pname = "s_uart0_tx", "s_uart0_rx"; + allwinner,muxsel = <0x2>; + allwinner,pull = <0xffffffff>; + allwinner,drive = <0xffffffff>; + allwinner,data = <0xffffffff>; + }; + + s_rsb0@0 { + linux,phandle = <0xb7>; + phandle = <0xb7>; + allwinner,pins = "PL0", "PL1"; + allwinner,function = "s_rsb0"; + allwinner,pname = "s_rsb0_sck", "s_rsb0_sda"; + allwinner,muxsel = <0x2>; + allwinner,pull = <0x1>; + allwinner,drive = <0x2>; + allwinner,data = <0xffffffff>; + }; + + s_jtag0@0 { + linux,phandle = <0xb8>; + phandle = <0xb8>; + allwinner,pins = "PL4", "PL5", "PL6", "PL7"; + allwinner,function = "s_jtag0"; + allwinner,pname = "s_jtag0_tms", "s_jtag0_tck", "s_jtag0_tdo", "s_jtag0_tdi"; + allwinner,muxsel = <0x2>; + allwinner,pull = <0x1>; + allwinner,drive = <0x2>; + allwinner,data = <0xffffffff>; + }; + }; + + pinctrl@01c20800 { + compatible = "allwinner,sun50i-pinctrl"; + reg = <0x0 0x1c20800 0x0 0x400>; + interrupts = <0x0 0xb 0x4 0x0 0x11 0x4 0x0 0x15 0x4>; + device_type = "pio"; + clocks = <0xa>; + gpio-controller; + interrupt-controller; + #interrupt-cells = <0x2>; + #size-cells = <0x0>; + #gpio-cells = <0x6>; + linux,phandle = <0x30>; + phandle = <0x30>; + + uart0@1 { + allwinner,pins = "PB8", "PB9"; + allwinner,function = "io_disabled"; + allwinner,muxsel = <0x7>; + allwinner,drive = <0x1>; + allwinner,pull = <0x1>; + linux,phandle = <0x1a>; + phandle = <0x1a>; + }; + + uart1@1 { + allwinner,pins = "PG6", "PG7", "PG8", "PG9"; + allwinner,function = "io_disabled"; + allwinner,muxsel = <0x7>; + allwinner,drive = <0x1>; + allwinner,pull = <0x1>; + linux,phandle = <0x1d>; + phandle = <0x1d>; + }; + + uart2@1 { + allwinner,pins = "PB0", "PB1", "PB2", "PB3"; + allwinner,function = "io_disabled"; + allwinner,muxsel = <0x7>; + allwinner,drive = <0x1>; + allwinner,pull = <0x1>; + linux,phandle = <0x20>; + phandle = <0x20>; + }; + + uart3@1 { + allwinner,pins = "PH4", "PH5", "PH6", "PH7"; + allwinner,function = "io_disabled"; + allwinner,muxsel = <0x7>; + allwinner,drive = <0x1>; + allwinner,pull = <0x1>; + linux,phandle = <0x23>; + phandle = <0x23>; + }; + + uart4@1 { + allwinner,pins = "PD2", "PD3", "PD4", "PD5"; + allwinner,function = "io_disabled"; + allwinner,muxsel = <0x7>; + allwinner,drive = <0x1>; + allwinner,pull = <0x1>; + linux,phandle = <0x26>; + phandle = <0x26>; + }; + + twi0@1 { + allwinner,pins = "PH0", "PH1"; + allwinner,function = "io_disabled"; + allwinner,muxsel = <0x7>; + allwinner,drive = <0x1>; + allwinner,pull = <0x0>; + linux,phandle = <0x29>; + phandle = <0x29>; + }; + + twi1@1 { + allwinner,pins = "PH2", "PH3"; + allwinner,function = "io_disabled"; + allwinner,muxsel = <0x7>; + allwinner,drive = <0x1>; + allwinner,pull = <0x0>; + linux,phandle = <0x2c>; + phandle = <0x2c>; + }; + + twi2@1 { + allwinner,pins = "PE14", "PE15"; + allwinner,function = "io_disabled"; + allwinner,muxsel = <0x7>; + allwinner,drive = <0x1>; + allwinner,pull = <0x0>; + linux,phandle = <0x2f>; + phandle = <0x2f>; + }; + + spi0@2 { + allwinner,pins = "PC3", "PC2", "PC0", "PC1"; + allwinner,function = "io_disabled"; + allwinner,muxsel = <0x7>; + allwinner,drive = <0x1>; + allwinner,pull = <0x0>; + linux,phandle = <0x55>; + phandle = <0x55>; + }; + + spi1@2 { + allwinner,pins = "PD0", "PD1", "PD2", "PD3"; + allwinner,function = "io_disabled"; + allwinner,muxsel = <0x7>; + allwinner,drive = <0x1>; + allwinner,pull = <0x0>; + linux,phandle = <0x59>; + phandle = <0x59>; + }; + + 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 = <0x64>; + phandle = <0x64>; + }; + + 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 = <0x69>; + phandle = <0x69>; + }; + + sdc2@1 { + allwinner,pins = "PC1", "PC5", "PC6", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PC16"; + allwinner,function = "io_disabled"; + allwinner,muxsel = <0x7>; + allwinner,drive = <0x1>; + allwinner,pull = <0x1>; + linux,phandle = <0x5f>; + phandle = <0x5f>; + }; + + daudio0@0 { + allwinner,pins = "PB6", "PB3", "PB4", "PB5", "PB7"; + allwinner,function = "pcm0"; + allwinner,muxsel = <0x3>; + allwinner,drive = <0x1>; + allwinner,pull = <0x0>; + linux,phandle = <0x43>; + phandle = <0x43>; + }; + + daudio0_sleep@0 { + allwinner,pins = "PB6", "PB3", "PB4", "PB5", "PB7"; + allwinner,function = "io_disabled"; + allwinner,muxsel = <0x7>; + allwinner,drive = <0x1>; + allwinner,pull = <0x0>; + linux,phandle = <0x44>; + phandle = <0x44>; + }; + + daudio1@0 { + allwinner,pins = "PG10", "PG11", "PG12", "PG13"; + allwinner,function = "pcm1"; + allwinner,muxsel = <0x3>; + allwinner,drive = <0x1>; + allwinner,pull = <0x0>; + linux,phandle = <0x45>; + phandle = <0x45>; + }; + + daudio1_sleep@0 { + allwinner,pins = "PG10", "PG11", "PG12", "PG13"; + allwinner,function = "io_disabled"; + allwinner,muxsel = <0x7>; + allwinner,drive = <0x1>; + allwinner,pull = <0x0>; + linux,phandle = <0x46>; + phandle = <0x46>; + }; + + aif3@0 { + allwinner,pins = "PG10", "PG11", "PG12", "PG13"; + allwinner,function = "aif3"; + allwinner,muxsel = <0x2>; + allwinner,drive = <0x1>; + allwinner,pull = <0x0>; + linux,phandle = <0x3e>; + phandle = <0x3e>; + }; + + aif2_sleep@0 { + allwinner,pins = "PB6", "PB4", "PB5", "PB7"; + allwinner,function = "io_disabled"; + allwinner,muxsel = <0x7>; + allwinner,drive = <0x1>; + allwinner,pull = <0x0>; + linux,phandle = <0x3f>; + phandle = <0x3f>; + }; + + aif3_sleep@0 { + allwinner,pins = "PG10", "PG11", "PG12", "PG13"; + allwinner,function = "io_disabled"; + allwinner,muxsel = <0x7>; + allwinner,drive = <0x1>; + allwinner,pull = <0x0>; + linux,phandle = <0x40>; + phandle = <0x40>; + }; + + spdif@0 { + allwinner,pins = "PH8"; + allwinner,function = "spdif0"; + allwinner,muxsel = <0x2>; + allwinner,drive = <0x1>; + allwinner,pull = <0x0>; + linux,phandle = <0x4a>; + phandle = <0x4a>; + }; + + spdif_sleep@0 { + allwinner,pins = "PH8"; + allwinner,function = "io_disabled"; + allwinner,muxsel = <0x7>; + allwinner,drive = <0x1>; + allwinner,pull = <0x0>; + linux,phandle = <0x4b>; + phandle = <0x4b>; + }; + + csi0_sleep@0 { + allwinner,pins = "PE0", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13"; + allwinner,pname = "csi0_pck", "csi0_hsync", "csi0_vsync", "csi0_d0", "csi0_d1", "csi0_d2", "csi0_d3", "csi0_d4", "csi0_d5", "csi0_d6", "csi0_d7", "csi0_sck", "csi0_sda"; + allwinner,function = "io_disabled"; + allwinner,muxsel = <0x7>; + allwinner,drive = <0x1>; + allwinner,pull = <0x0>; + allwinner,data = <0x0>; + linux,phandle = <0x77>; + phandle = <0x77>; + }; + + smartcard@0 { + allwinner,pins = "PB1", "PB4", "PB5", "PB6", "PB7"; + allwinner,function = "sim0"; + allwinner,muxsel = <0x5>; + allwinner,drive = <0x1>; + allwinner,pull = <0x1>; + linux,phandle = <0x7f>; + phandle = <0x7f>; + }; + + nand0@2 { + allwinner,pins = "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PC16", "PC17", "PC18"; + allwinner,function = "io_disabled"; + allwinner,muxsel = <0x7>; + allwinner,drive = <0x1>; + allwinner,pull = <0x0>; + linux,phandle = <0x83>; + phandle = <0x83>; + }; + + card0_boot_para@0 { + linux,phandle = <0x99>; + phandle = <0x99>; + 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 = <0x2>; + allwinner,data = <0xffffffff>; + }; + + card2_boot_para@0 { + linux,phandle = <0x9a>; + phandle = <0x9a>; + allwinner,pins = "PC1", "PC5", "PC6", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PC16"; + allwinner,function = "card2_boot_para"; + allwinner,pname = "sdc_ds", "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>; + }; + + twi_para@0 { + linux,phandle = <0x9b>; + phandle = <0x9b>; + allwinner,pins = "PH0", "PH1"; + 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 = <0x9c>; + phandle = <0x9c>; + allwinner,pins = "PB8", "PB9"; + allwinner,function = "uart_para"; + allwinner,pname = "uart_debug_tx", "uart_debug_rx"; + allwinner,muxsel = <0x4>; + allwinner,pull = <0x1>; + allwinner,drive = <0xffffffff>; + allwinner,data = <0xffffffff>; + }; + + jtag_para@0 { + linux,phandle = <0x9d>; + phandle = <0x9d>; + allwinner,pins = "PB0", "PB1", "PB2", "PB3"; + allwinner,function = "jtag_para"; + allwinner,pname = "jtag_ms", "jtag_ck", "jtag_do", "jtag_di"; + allwinner,muxsel = <0x4>; + allwinner,pull = <0xffffffff>; + allwinner,drive = <0xffffffff>; + allwinner,data = <0xffffffff>; + }; + + gmac0@0 { + linux,phandle = <0x9e>; + phandle = <0x9e>; + allwinner,pins = "PD18", "PD17", "PD19", "PD20", "PD11", "PD10", "PD13", "PD22", "PD23"; + allwinner,function = "gmac0"; + allwinner,pname = "gmac_txd0", "gmac_txd1", "gmac_txclk", "gmac_txen", "gmac_rxd0", "gmac_rxd1", "gmac_rxdv", "gmac_mdc", "gmac_mdio"; + allwinner,muxsel = <0x4>; + allwinner,pull = <0xffffffff>; + allwinner,drive = <0x3>; + allwinner,data = <0xffffffff>; + }; + + twi0@0 { + linux,phandle = <0x9f>; + phandle = <0x9f>; + allwinner,pins = "PH0", "PH1"; + allwinner,function = "twi0"; + allwinner,pname = "twi0_scl", "twi0_sda"; + allwinner,muxsel = <0x2>; + allwinner,pull = <0xffffffff>; + allwinner,drive = <0xffffffff>; + allwinner,data = <0xffffffff>; + }; + + twi1@0 { + linux,phandle = <0xa0>; + phandle = <0xa0>; + allwinner,pins = "PH2", "PH3"; + allwinner,function = "twi1"; + allwinner,pname = "twi1_scl", "twi1_sda"; + allwinner,muxsel = <0x2>; + allwinner,pull = <0xffffffff>; + allwinner,drive = <0xffffffff>; + allwinner,data = <0xffffffff>; + }; + + twi2@0 { + linux,phandle = <0xa1>; + phandle = <0xa1>; + allwinner,pins = "PE14", "PE15"; + allwinner,function = "twi2"; + allwinner,pname = "twi2_scl", "twi2_sda"; + allwinner,muxsel = <0x3>; + allwinner,pull = <0xffffffff>; + allwinner,drive = <0xffffffff>; + allwinner,data = <0xffffffff>; + }; + + uart0@0 { + linux,phandle = <0xa2>; + phandle = <0xa2>; + allwinner,pins = "PB8", "PB9"; + allwinner,function = "uart0"; + allwinner,pname = "uart0_tx", "uart0_rx"; + allwinner,muxsel = <0x4>; + allwinner,pull = <0x1>; + allwinner,drive = <0xffffffff>; + allwinner,data = <0xffffffff>; + }; + + uart1@0 { + linux,phandle = <0xa3>; + phandle = <0xa3>; + allwinner,pins = "PG6", "PG7", "PG8", "PG9"; + allwinner,function = "uart1"; + allwinner,pname = "uart1_tx", "uart1_rx", "uart1_rts", "uart1_cts"; + allwinner,muxsel = <0x2>; + allwinner,pull = <0x1>; + allwinner,drive = <0xffffffff>; + allwinner,data = <0xffffffff>; + }; + + uart2@0 { + linux,phandle = <0xa4>; + phandle = <0xa4>; + allwinner,pins = "PB0", "PB1", "PB2", "PB3"; + allwinner,function = "uart2"; + allwinner,pname = "uart2_tx", "uart2_rx", "uart2_rts", "uart2_cts"; + allwinner,muxsel = <0x2>; + allwinner,pull = <0x1>; + allwinner,drive = <0xffffffff>; + allwinner,data = <0xffffffff>; + }; + + uart3@0 { + linux,phandle = <0xa5>; + phandle = <0xa5>; + allwinner,pins = "PD0", "PD1"; + allwinner,function = "uart3"; + allwinner,pname = "uart3_tx", "uart3_rx"; + allwinner,muxsel = <0x3>; + allwinner,pull = <0x1>; + allwinner,drive = <0xffffffff>; + allwinner,data = <0xffffffff>; + }; + + uart4@0 { + linux,phandle = <0xa6>; + phandle = <0xa6>; + allwinner,pins = "PD2", "PD3", "PD4", "PD5"; + allwinner,function = "uart4"; + allwinner,pname = "uart4_tx", "uart4_rx", "uart4_rts", "uart4_cts"; + allwinner,muxsel = <0x3>; + allwinner,pull = <0x1>; + allwinner,drive = <0xffffffff>; + allwinner,data = <0xffffffff>; + }; + + spi0@0 { + linux,phandle = <0xa7>; + phandle = <0xa7>; + allwinner,pins = "PC3"; + allwinner,function = "spi0"; + allwinner,pname = "spi0_cs0"; + allwinner,muxsel = <0x4>; + allwinner,pull = <0x1>; + allwinner,drive = <0xffffffff>; + allwinner,data = <0xffffffff>; + }; + + spi0@1 { + linux,phandle = <0xa8>; + phandle = <0xa8>; + allwinner,pins = "PC2", "PC0", "PC1"; + allwinner,function = "spi0"; + allwinner,pname = "spi0_sclk", "spi0_mosi", "spi0_miso"; + allwinner,muxsel = <0x4>; + allwinner,pull = <0xffffffff>; + allwinner,drive = <0xffffffff>; + allwinner,data = <0xffffffff>; + }; + + spi1@0 { + linux,phandle = <0xa9>; + phandle = <0xa9>; + allwinner,pins = "PD0"; + allwinner,function = "spi1"; + allwinner,pname = "spi1_cs0"; + allwinner,muxsel = <0x4>; + allwinner,pull = <0x1>; + allwinner,drive = <0xffffffff>; + allwinner,data = <0xffffffff>; + }; + + spi1@1 { + linux,phandle = <0xaa>; + phandle = <0xaa>; + allwinner,pins = "PD1", "PD2", "PD3"; + allwinner,function = "spi1"; + allwinner,pname = "spi1_sclk", "spi1_mosi", "spi1_miso"; + allwinner,muxsel = <0x4>; + allwinner,pull = <0xffffffff>; + allwinner,drive = <0xffffffff>; + allwinner,data = <0xffffffff>; + }; + + nand0@0 { + linux,phandle = <0xab>; + phandle = <0xab>; + allwinner,pins = "PC0", "PC1", "PC2", "PC5", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PC16"; + 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 = <0xac>; + phandle = <0xac>; + allwinner,pins = "PC3", "PC4", "PC6", "PC7", "PC17", "PC18"; + allwinner,function = "nand0"; + allwinner,pname = "nand0_ce1", "nand0_ce0", "nand0_rb0", "nand0_rb1", "nand0_ce2", "nand0_ce3"; + allwinner,muxsel = <0x2>; + allwinner,pull = <0x1>; + allwinner,drive = <0x1>; + allwinner,data = <0xffffffff>; + }; + + pwm0@0 { + linux,phandle = <0xad>; + phandle = <0xad>; + allwinner,pins = "PD22"; + allwinner,function = "pwm0"; + allwinner,pname = "pwm_positive"; + allwinner,muxsel = <0x2>; + allwinner,pull = <0x0>; + allwinner,drive = <0xffffffff>; + allwinner,data = <0xffffffff>; + }; + + pwm0@1 { + linux,phandle = <0xae>; + phandle = <0xae>; + allwinner,pins = "PD22"; + allwinner,function = "pwm0"; + allwinner,pname = "pwm_positive"; + allwinner,muxsel = <0x7>; + allwinner,pull = <0x0>; + allwinner,drive = <0xffffffff>; + allwinner,data = <0xffffffff>; + }; + + csi0@0 { + linux,phandle = <0xb1>; + phandle = <0xb1>; + allwinner,pins = "PE0", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13"; + allwinner,function = "csi0"; + allwinner,pname = "csi0_pck", "csi0_hsync", "csi0_vsync", "csi0_d0", "csi0_d1", "csi0_d2", "csi0_d3", "csi0_d4", "csi0_d5", "csi0_d6", "csi0_d7", "csi0_sck", "csi0_sda"; + allwinner,muxsel = <0x2>; + allwinner,pull = <0xffffffff>; + allwinner,drive = <0xffffffff>; + allwinner,data = <0xffffffff>; + }; + + sdc0@0 { + linux,phandle = <0xb2>; + phandle = <0xb2>; + allwinner,pins = "PF0", "PF1", "PF2", "PF3", "PF4", "PF5"; + allwinner,function = "sdc0"; + allwinner,pname = "sdc0_d1", "sdc0_d0", "sdc0_clk", "sdc0_cmd", "sdc0_d3", "sdc0_d2"; + allwinner,muxsel = <0x2>; + allwinner,pull = <0x1>; + allwinner,drive = <0x2>; + allwinner,data = <0xffffffff>; + }; + + sdc1@0 { + linux,phandle = <0xb3>; + phandle = <0xb3>; + allwinner,pins = "PG0", "PG1", "PG2", "PG3", "PG4", "PG5"; + allwinner,function = "sdc1"; + allwinner,pname = "sdc1_clk", "sdc1_cmd", "sdc1_d0", "sdc1_d1", "sdc1_d2", "sdc1_d3"; + allwinner,muxsel = <0x2>; + allwinner,pull = <0x1>; + allwinner,drive = <0x3>; + allwinner,data = <0xffffffff>; + }; + + sdc2@0 { + linux,phandle = <0xb4>; + phandle = <0xb4>; + allwinner,pins = "PC1", "PC5", "PC6", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PC16"; + allwinner,function = "sdc2"; + allwinner,pname = "sdc2_ds", "sdc2_clk", "sdc2_cmd", "sdc2_d0", "sdc2_d1", "sdc2_d2", "sdc2_d3", "sdc2_d4", "sdc2_d5", "sdc2_d6", "sdc2_d7", "sdc2_emmc_rst"; + allwinner,muxsel = <0x3>; + allwinner,pull = <0x1>; + allwinner,drive = <0x3>; + allwinner,data = <0xffffffff>; + }; + + codec@0 { + linux,phandle = <0xb5>; + phandle = <0xb5>; + allwinner,pins = "PH7"; + allwinner,function = "codec"; + allwinner,pname = "gpio-spk"; + allwinner,muxsel = <0x2>; + allwinner,pull = <0x1>; + allwinner,drive = <0xffffffff>; + allwinner,data = <0xffffffff>; + }; + + Vdevice@0 { + linux,phandle = <0xb9>; + phandle = <0xb9>; + allwinner,pins = "PB1", "PB2"; + allwinner,function = "Vdevice"; + allwinner,pname = "Vdevice_0", "Vdevice_1"; + allwinner,muxsel = <0x4>; + allwinner,pull = <0x1>; + allwinner,drive = <0x2>; + allwinner,data = <0xffffffff>; + }; + + w1_pin@0 { + linux,phandle = <0xba>; + phandle = <0xba>; + allwinner,pins = "PC8"; + allwinner,function = "gpio_in"; + allwinner,pname = "w1"; + allwinner,muxsel = <0x0>; + allwinner,pull = <0x1>; + allwinner,drive = <0x0>; + allwinner,data = <0xffffffff>; + }; + }; + + pinctrl@0 { + compatible = "allwinner,axp-pinctrl"; + gpio-controller; + #size-cells = <0x0>; + #gpio-cells = <0x6>; + device_type = "axp_pio"; + linux,phandle = <0x31>; + phandle = <0x31>; + }; + + dma-controller@01c02000 { + compatible = "allwinner,sun50i-dma"; + reg = <0x0 0x1c02000 0x0 0x1000>; + interrupts = <0x0 0x32 0x4>; + clocks = <0xb>; + #dma-cells = <0x1>; + }; + + mbus-controller@01c62000 { + compatible = "allwinner,sun50i-mbus"; + reg = <0x0 0x1c62000 0x0 0x110>; + #mbus-cells = <0x1>; + }; + + arisc { + compatible = "allwinner,sunxi-arisc"; + #address-cells = <0x2>; + #size-cells = <0x2>; + clocks = <0xc 0xd 0x6 0x4>; + clock-names = "losc", "iosc", "hosc", "pll_periph0"; + powchk_used = <0x0>; + power_reg = <0x2309621>; + system_power = <0x32>; + }; + + arisc_space { + compatible = "allwinner,arisc_space"; + space1 = <0x40000 0x0 0x14000>; + space2 = <0x40100000 0x18000 0x4000>; + space3 = <0x40104000 0x0 0x1000>; + space4 = <0x40105000 0x0 0x1000>; + }; + + standby_space { + compatible = "allwinner,standby_space"; + space1 = <0x41020000 0x0 0x800>; + }; + + msgbox@1c17000 { + compatible = "allwinner,msgbox"; + clocks = <0xe>; + clock-names = "clk_msgbox"; + reg = <0x0 0x1c17000 0x0 0x1000>; + interrupts = <0x0 0x31 0x1>; + status = "okay"; + }; + + hwspinlock@1c18000 { + compatible = "allwinner,sunxi-hwspinlock"; + clocks = <0xf 0x10>; + clock-names = "clk_hwspinlock_rst", "clk_hwspinlock_bus"; + reg = <0x0 0x1c18000 0x0 0x1000>; + status = "okay"; + num-locks = <0x8>; + }; + + s_cir@1f02000 { + compatible = "allwinner,s_cir"; + reg = <0x0 0x1f02000 0x0 0x400>; + interrupts = <0x0 0x25 0x4>; + pinctrl-names = "default"; + pinctrl-0 = <0x11>; + clocks = <0x6 0x12>; + supply = "vcc-pl"; + ir_power_key_code = <0x4d>; + ir_addr_code = <0x4040>; + status = "okay"; + device_type = "s_cir0"; + }; + + s_uart@1f02800 { + compatible = "allwinner,s_uart"; + reg = <0x0 0x1f02800 0x0 0x400>; + interrupts = <0x0 0x26 0x4>; + pinctrl-names = "default"; + status = "okay"; + device_type = "s_uart0"; + pinctrl-0 = <0xb6>; + }; + + s_rsb@1f03400 { + compatible = "allwinner,s_rsb"; + reg = <0x0 0x1f03400 0x0 0x400>; + interrupts = <0x0 0x27 0x4>; + pinctrl-names = "default"; + status = "okay"; + device_type = "s_rsb0"; + pinctrl-0 = <0xb7>; + }; + + s_jtag0 { + compatible = "allwinner,s_jtag"; + pinctrl-names = "default"; + status = "disabled"; + device_type = "s_jtag0"; + pinctrl-0 = <0xb8>; + }; + + timer@1c20c00 { + compatible = "allwinner,sunxi-timer"; + device_type = "timer"; + reg = <0x0 0x1c20c00 0x0 0x90>; + interrupts = <0x0 0x12 0x1>; + clock-frequency = <0x16e3600>; + timer-prescale = <0x10>; + }; + + rtc@01f00000 { + compatible = "allwinner,sun50i-rtc"; + device_type = "rtc"; + reg = <0x0 0x1f00000 0x0 0x218>; + interrupts = <0x0 0x28 0x4>; + gpr_offset = <0x100>; + gpr_len = <0x4>; + }; + + ve@01c0e000 { + compatible = "allwinner,sunxi-cedar-ve"; + reg = <0x0 0x1c0e000 0x0 0x1000 0x0 0x1c00000 0x0 0x10 0x0 0x1c20000 0x0 0x800>; + interrupts = <0x0 0x3a 0x4>; + clocks = <0x16 0x17>; + }; + + uart@01c28000 { + compatible = "allwinner,sun50i-uart"; + device_type = "uart0"; + reg = <0x0 0x1c28000 0x0 0x400>; + interrupts = <0x0 0x0 0x4>; + clocks = <0x18>; + pinctrl-names = "default", "sleep"; + pinctrl-1 = <0x1a>; + uart0_port = <0x0>; + uart0_type = <0x2>; + status = "okay"; + pinctrl-0 = <0xa2>; + }; + + uart@01c28400 { + compatible = "allwinner,sun50i-uart"; + device_type = "uart1"; + reg = <0x0 0x1c28400 0x0 0x400>; + interrupts = <0x0 0x1 0x4>; + clocks = <0x1b>; + pinctrl-names = "default", "sleep"; + pinctrl-1 = <0x1d>; + uart1_port = <0x1>; + uart1_type = <0x4>; + status = "okay"; + pinctrl-0 = <0xa3>; + }; + + uart@01c28800 { + compatible = "allwinner,sun50i-uart"; + device_type = "uart2"; + reg = <0x0 0x1c28800 0x0 0x400>; + interrupts = <0x0 0x2 0x4>; + clocks = <0x1e>; + pinctrl-names = "default", "sleep"; + pinctrl-1 = <0x20>; + uart2_port = <0x2>; + uart2_type = <0x4>; + status = "okay"; + pinctrl-0 = <0xa4>; + }; + + uart@01c28c00 { + compatible = "allwinner,sun50i-uart"; + device_type = "uart3"; + reg = <0x0 0x1c28c00 0x0 0x400>; + interrupts = <0x0 0x3 0x4>; + clocks = <0x21>; + pinctrl-names = "default", "sleep"; + pinctrl-1 = <0x23>; + uart3_port = <0x3>; + uart3_type = <0x4>; + status = "okay"; + pinctrl-0 = <0xa5>; + }; + + uart@01c29000 { + compatible = "allwinner,sun50i-uart"; + device_type = "uart4"; + reg = <0x0 0x1c29000 0x0 0x400>; + interrupts = <0x0 0x4 0x4>; + clocks = <0x24>; + pinctrl-names = "default", "sleep"; + pinctrl-1 = <0x26>; + uart4_port = <0x4>; + uart4_type = <0x4>; + status = "okay"; + pinctrl-0 = <0xa6>; + }; + + twi@0x01c2ac00 { + #address-cells = <0x1>; + #size-cells = <0x0>; + compatible = "allwinner,sun50i-twi"; + device_type = "twi0"; + reg = <0x0 0x1c2ac00 0x0 0x400>; + interrupts = <0x0 0x6 0x4>; + clocks = <0x27>; + clock-frequency = <0x61a80>; + pinctrl-names = "default", "sleep"; + pinctrl-1 = <0x29>; + status = "okay"; + pinctrl-0 = <0x9f>; + }; + + twi@0x01c2b000 { + #address-cells = <0x1>; + #size-cells = <0x0>; + compatible = "allwinner,sun50i-twi"; + device_type = "twi1"; + reg = <0x0 0x1c2b000 0x0 0x400>; + interrupts = <0x0 0x7 0x4>; + clocks = <0x2a>; + clock-frequency = <0x30d40>; + pinctrl-names = "default", "sleep"; + pinctrl-1 = <0x2c>; + status = "okay"; + pinctrl-0 = <0xa0>; + }; + + twi@0x01c2b400 { + #address-cells = <0x1>; + #size-cells = <0x0>; + compatible = "allwinner,sun50i-twi"; + device_type = "twi2"; + reg = <0x0 0x1c2b400 0x0 0x400>; + interrupts = <0x0 0x8 0x4>; + clocks = <0x2d>; + clock-frequency = <0x30d40>; + pinctrl-names = "default", "sleep"; + pinctrl-1 = <0x2f>; + status = "disabled"; + pinctrl-0 = <0xa1>; + }; + + usbc0@0 { + device_type = "usbc0"; + compatible = "allwinner,sunxi-otg-manager"; + usb_port_type = <0x1>; + usb_detect_type = <0x0>; + usb_host_init_state = <0x1>; + usb_regulator_io = "nocare"; + usb_wakeup_suspend = <0x1>; + usb_luns = <0x3>; + usb_serial_unique = <0x1>; + usb_serial_number = "20080411"; + rndis_wceis = <0x1>; + status = "okay"; + usb_id_gpio; + usb_det_vbus_gpio; + usb_drv_vbus_gpio; + }; + + udc-controller@0x01c19000 { + compatible = "allwinner,sunxi-udc"; + reg = <0x0 0x1c19000 0x0 0x1000 0x0 0x1c00000 0x0 0x100>; + interrupts = <0x0 0x47 0x4>; + clocks = <0x32 0x33>; + status = "okay"; + }; + + ehci0-controller@0x01c1a000 { + compatible = "allwinner,sunxi-ehci0"; + reg = <0x0 0x1c1a000 0x0 0xfff 0x0 0x1c00000 0x0 0x100 0x0 0x1c19000 0x0 0x1000>; + interrupts = <0x0 0x48 0x4>; + clocks = <0x32 0x34>; + hci_ctrl_no = <0x0>; + status = "okay"; + }; + + ohci0-controller@0x01c1a400 { + compatible = "allwinner,sunxi-ohci0"; + reg = <0x0 0x1c1a000 0x0 0xfff 0x0 0x1c00000 0x0 0x100 0x0 0x1c19000 0x0 0x1000>; + interrupts = <0x0 0x49 0x4>; + clocks = <0x32 0x35>; + hci_ctrl_no = <0x0>; + status = "okay"; + }; + + usbc1@0 { + device_type = "usbc1"; + usb_host_init_state = <0x1>; + usb_regulator_io = "nocare"; + usb_wakeup_suspend = <0x1>; + usb_hsic_used = <0x0>; + usb_hsic_regulator_io = "vcc-hsic-12"; + usb_hsic_ctrl = <0x0>; + usb_hsic_usb3503_flag = <0x0>; + status = "okay"; + usb_port_type = <0x1>; + usb_detect_type = <0x0>; + usb_drv_vbus_gpio; + usb_hsic_rdy_gpio; + usb_hsic_hub_connect_gpio; + usb_hsic_int_n_gpio; + usb_hsic_reset_n_gpio; + }; + + ehci1-controller@0x01c1b000 { + compatible = "allwinner,sunxi-ehci1"; + reg = <0x0 0x1c1b000 0x0 0xfff 0x0 0x1c00000 0x0 0x100 0x0 0x1c19000 0x0 0x1000>; + interrupts = <0x0 0x4a 0x4>; + clocks = <0x36 0x37 0x38 0x39 0x3a>; + hci_ctrl_no = <0x1>; + status = "okay"; + }; + + ohci1-controller@0x01c1b400 { + compatible = "allwinner,sunxi-ohci1"; + reg = <0x0 0x1c1b000 0x0 0xfff 0x0 0x1c00000 0x0 0x100 0x0 0x1c19000 0x0 0x1000>; + interrupts = <0x0 0x4b 0x4>; + clocks = <0x36 0x3b>; + hci_ctrl_no = <0x1>; + status = "okay"; + }; + + codec@0x01c22c00 { + compatible = "allwinner,sunxi-internal-codec"; + reg = <0x0 0x1c22c00 0x0 0x478 0x0 0x1f015c0 0x0 0x0>; + clocks = <0x3c>; + pinctrl-names = "aif2-default", "aif3-default", "aif2-sleep", "aif3-sleep"; + pinctrl-1 = <0x3e>; + pinctrl-2 = <0x3f>; + pinctrl-3 = <0x40>; + gpio-spk = <0x30 0x7 0x7 0x1 0x1 0x1 0x1>; + headphonevol = <0x3b>; + spkervol = <0x1a>; + earpiecevol = <0x1e>; + maingain = <0x4>; + headsetmicgain = <0x4>; + adcagc_cfg = <0x0>; + adcdrc_cfg = <0x0>; + adchpf_cfg = <0x0>; + dacdrc_cfg = <0x0>; + dachpf_cfg = <0x0>; + aif1_lrlk_div = <0x40>; + aif2_lrlk_div = <0x40>; + aif2config = <0x0>; + aif3config = <0x0>; + pa_sleep_time = <0x15e>; + dac_digital_vol = <0xa0a0>; + status = "okay"; + linux,phandle = <0x4d>; + phandle = <0x4d>; + device_type = "codec"; + pinctrl-0 = <0xb5>; + }; + + i2s0-controller@0x01c22c00 { + compatible = "allwinner,sunxi-internal-i2s"; + reg = <0x0 0x1c22c00 0x0 0x478>; + clocks = <0x2 0x41>; + status = "okay"; + linux,phandle = <0x4c>; + phandle = <0x4c>; + device_type = "i2s"; + }; + + daudio@0x01c22000 { + compatible = "allwinner,sunxi-daudio"; + reg = <0x0 0x1c22000 0x0 0x58>; + clocks = <0x2 0x42>; + pinctrl-names = "default", "sleep"; + pinctrl-0 = <0x43>; + pinctrl-1 = <0x44>; + pcm_lrck_period = <0x20>; + pcm_lrckr_period = <0x1>; + slot_width_select = <0x20>; + pcm_lsb_first = <0x0>; + tx_data_mode = <0x0>; + rx_data_mode = <0x0>; + daudio_master = <0x4>; + audio_format = <0x1>; + signal_inversion = <0x1>; + frametype = <0x0>; + tdm_config = <0x1>; + tdm_num = <0x0>; + status = "disabled"; + linux,phandle = <0x4e>; + phandle = <0x4e>; + device_type = "daudio0"; + }; + + daudio@0x01c22400 { + compatible = "allwinner,sunxi-daudio"; + reg = <0x0 0x1c22400 0x0 0x58>; + pinctrl-names = "default", "sleep"; + pinctrl-0 = <0x45>; + pinctrl-1 = <0x46>; + clocks = <0x2 0x47>; + pcm_lrck_period = <0x20>; + pcm_lrckr_period = <0x1>; + slot_width_select = <0x20>; + pcm_lsb_first = <0x0>; + tx_data_mode = <0x0>; + rx_data_mode = <0x0>; + daudio_master = <0x4>; + audio_format = <0x1>; + signal_inversion = <0x1>; + frametype = <0x0>; + tdm_config = <0x1>; + tdm_num = <0x1>; + status = "disabled"; + linux,phandle = <0x4f>; + phandle = <0x4f>; + device_type = "daudio1"; + }; + + daudio@0x01c22800 { + compatible = "allwinner,sunxi-tdmhdmi"; + reg = <0x0 0x1c22800 0x0 0x58>; + clocks = <0x2 0x48>; + status = "okay"; + linux,phandle = <0x50>; + phandle = <0x50>; + device_type = "daudio2"; + }; + + spdif-controller@0x01c21000 { + compatible = "allwinner,sunxi-spdif"; + reg = <0x0 0x1c21000 0x0 0x38>; + clocks = <0x2 0x49>; + pinctrl-names = "default", "sleep"; + pinctrl-0 = <0x4a>; + pinctrl-1 = <0x4b>; + status = "disabled"; + linux,phandle = <0x51>; + phandle = <0x51>; + device_type = "spdif"; + }; + + sound@0 { + compatible = "allwinner,sunxi-codec-machine"; + interrupts = <0x0 0x1c 0x4>; + sunxi,i2s-controller = <0x4c>; + sunxi,audio-codec = <0x4d>; + aif2fmt = <0x3>; + aif3fmt = <0x3>; + aif2master = <0x1>; + hp_detect_case = <0x1>; + status = "okay"; + device_type = "sndcodec"; + }; + + sound@1 { + compatible = "allwinner,sunxi-daudio0-machine"; + sunxi,daudio0-controller = <0x4e>; + status = "disabled"; + device_type = "snddaudio0"; + }; + + sound@2 { + compatible = "allwinner,sunxi-daudio1-machine"; + sunxi,daudio1-controller = <0x4f>; + status = "disabled"; + device_type = "snddaudio1"; + }; + + sound@3 { + compatible = "allwinner,sunxi-hdmi-machine"; + sunxi,hdmi-controller = <0x50>; + status = "okay"; + device_type = "sndhdmi"; + }; + + sound@4 { + compatible = "allwinner,sunxi-spdif-machine"; + sunxi,spdif-controller = <0x51>; + status = "disabled"; + device_type = "sndspdif"; + }; + + spi@01c68000 { + #address-cells = <0x1>; + #size-cells = <0x0>; + compatible = "allwinner,sun50i-spi"; + device_type = "spi0"; + reg = <0x0 0x1c68000 0x0 0x1000>; + interrupts = <0x0 0x41 0x4>; + clocks = <0x4 0x52>; + clock-frequency = <0x5f5e100>; + pinctrl-names = "default", "sleep"; + pinctrl-1 = <0x55>; + spi0_cs_number = <0x1>; + spi0_cs_bitmap = <0x1>; + status = "disabled"; + pinctrl-0 = <0xa7 0xa8>; + + spidev@0 { + compatible = "spidev"; + reg = <0x0>; + spi-max-frequency = <0x2faf080>; + }; + }; + + spi@01c69000 { + #address-cells = <0x1>; + #size-cells = <0x0>; + compatible = "allwinner,sun50i-spi"; + device_type = "spi1"; + reg = <0x0 0x1c69000 0x0 0x1000>; + interrupts = <0x0 0x42 0x4>; + clocks = <0x4 0x56>; + clock-frequency = <0x5f5e100>; + pinctrl-names = "default", "sleep"; + pinctrl-1 = <0x59>; + spi1_cs_number = <0x1>; + spi1_cs_bitmap = <0x1>; + status = "disabled"; + pinctrl-0 = <0xa9 0xaa>; + }; + + sdmmc@01C11000 { + compatible = "allwinner,sun50i-sdmmc2"; + device_type = "sdc2"; + reg = <0x0 0x1c11000 0x0 0x1000>; + interrupts = <0x0 0x3e 0x104>; + clocks = <0x6 0x5a 0x5b 0x5c 0x5d>; + clock-names = "osc24m", "pll_periph", "mmc", "ahb", "rst"; + pinctrl-names = "default", "sleep"; + pinctrl-1 = <0x5f>; + bus-width = <0x8>; + max-frequency = <0x5f5e100>; + 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 = <0x405>; + sdc_tm4_sm4_freq0 = <0x50000>; + sdc_tm4_sm4_freq1 = <0x408>; + status = "disabled"; + non-removable; + pinctrl-0 = <0xb4>; + cd-gpios; + sunxi-power-save-mode; + sunxi-dis-signal-vol-sw; + mmc-ddr-1_8v; + mmc-hs200-1_8v; + mmc-hs400-1_8v; + vmmc = "vcc-emmc"; + vqmmc = "vcc-lpddr"; + vdmmc = "none"; + }; + + sdmmc@01c0f000 { + compatible = "allwinner,sun50i-sdmmc0"; + device_type = "sdc0"; + reg = <0x0 0x1c0f000 0x0 0x1000>; + interrupts = <0x0 0x3c 0x104>; + clocks = <0x6 0x5a 0x60 0x61 0x62>; + clock-names = "osc24m", "pll_periph", "mmc", "ahb", "rst"; + pinctrl-names = "default", "sleep"; + pinctrl-1 = <0x64>; + max-frequency = <0x2faf080>; + bus-width = <0x4>; + broken-cd; + status = "okay"; + pinctrl-0 = <0xb2>; + cd-gpios = <0x30 0x5 0x6 0x0 0x1 0x2 0xffffffff>; + sunxi-power-save-mode; + vmmc = "none"; + vqmmc = "none"; + vdmmc = "vcc-sdc"; + }; + + sdmmc@1C10000 { + compatible = "allwinner,sun50i-sdmmc1"; + device_type = "sdc1"; + reg = <0x0 0x1c10000 0x0 0x1000>; + interrupts = <0x0 0x3d 0x104>; + clocks = <0x6 0x5a 0x65 0x66 0x67>; + clock-names = "osc24m", "pll_periph", "mmc", "ahb", "rst"; + pinctrl-names = "default", "sleep"; + pinctrl-1 = <0x69>; + max-frequency = <0x8f0d180>; + bus-width = <0x4>; + 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"; + pinctrl-0 = <0xb3>; + sd-uhs-sdr50; + sd-uhs-ddr50; + sd-uhs-sdr104; + cap-sdio-irq; + keep-power-in-suspend; + ignore-pm-notify; + }; + + disp@01000000 { + compatible = "allwinner,sun50i-disp"; + reg = <0x0 0x1000000 0x0 0x300000 0x0 0x1c0c000 0x0 0x17fc 0x0 0x1ca0000 0x0 0x10fc>; + interrupts = <0x0 0x56 0x104 0x0 0x57 0x104 0x0 0x59 0x104>; + clocks = <0x6a 0x6b 0x6c 0x6d 0x6e>; + status = "okay"; + device_type = "disp"; + disp_init_enable = <0x1>; + disp_mode = <0x0>; + screen0_output_type = <0x3>; + screen0_output_mode = <0xa>; + screen1_output_type = <0x3>; + screen1_output_mode = <0xa>; + fb0_format = <0x0>; + fb0_width = <0x0>; + fb0_height = <0x0>; + fb1_format = <0x0>; + fb1_width = <0x0>; + fb1_height = <0x0>; + }; + + lcd0@01c0c000 { + compatible = "allwinner,sunxi-lcd0"; + pinctrl-names = "active", "sleep"; + status = "okay"; + device_type = "lcd0"; + lcd_used = <0x0>; + lcd_driver_name = "mb709_mipi"; + lcd_backlight = <0x32>; + lcd_if = <0x4>; + lcd_x = <0x400>; + lcd_y = <0x258>; + lcd_width = <0x0>; + lcd_height = <0x0>; + lcd_dclk_freq = <0x37>; + lcd_pwm_used = <0x1>; + lcd_pwm_ch = <0x10>; + lcd_pwm_freq = <0xc350>; + lcd_pwm_pol = <0x1>; + lcd_pwm_max_limit = <0xfa>; + lcd_hbp = <0x78>; + lcd_ht = <0x604>; + lcd_hspw = <0x14>; + lcd_vbp = <0x17>; + lcd_vt = <0x27b>; + lcd_vspw = <0x2>; + lcd_dsi_if = <0x2>; + lcd_dsi_lane = <0x4>; + lcd_dsi_format = <0x0>; + lcd_dsi_eotp = <0x0>; + lcd_dsi_vc = <0x0>; + lcd_dsi_te = <0x0>; + lcd_frm = <0x0>; + lcd_gamma_en = <0x0>; + lcd_bright_curve_en = <0x0>; + lcd_cmap_en = <0x0>; + lcd_bl_en = <0x30 0x7 0xa 0x1 0x0 0xffffffff 0x1>; + lcd_bl_en_power = "none"; + lcd_power = "vcc-mipi"; + lcd_fix_power = "vcc-dsi-33"; + lcd_gpio_0 = <0x30 0x3 0x18 0x1 0x0 0xffffffff 0x1>; + }; + + hdmi@01ee0000 { + compatible = "allwinner,sunxi-hdmi"; + reg = <0x0 0x1ee0000 0x0 0x20000>; + clocks = <0x6f 0x70>; + device_type = "hdmi"; + status = "okay"; + hdmi_power = "vcc-hdmi-33"; + hdmi_hdcp_enable = <0x0>; + hdmi_cts_compatibility = <0x0>; + }; + + tr@01000000 { + compatible = "allwinner,sun50i-tr"; + reg = <0x0 0x1000000 0x0 0x200bc>; + interrupts = <0x0 0x60 0x104>; + clocks = <0x6a>; + status = "okay"; + }; + + pwm@01c21400 { + compatible = "allwinner,sunxi-pwm"; + reg = <0x0 0x1c21400 0x0 0x3c>; + pwm-number = <0x1>; + pwm-base = <0x0>; + pwms = <0x71>; + }; + + pwm0@01c21400 { + compatible = "allwinner,sunxi-pwm0"; + pinctrl-names = "active", "sleep"; + reg_base = <0x1c21400>; + reg_busy_offset = <0x0>; + reg_busy_shift = <0x1c>; + reg_enable_offset = <0x0>; + reg_enable_shift = <0x4>; + reg_clk_gating_offset = <0x0>; + reg_clk_gating_shift = <0x6>; + reg_bypass_offset = <0x0>; + reg_bypass_shift = <0x9>; + reg_pulse_start_offset = <0x0>; + reg_pulse_start_shift = <0x8>; + reg_mode_offset = <0x0>; + reg_mode_shift = <0x7>; + reg_polarity_offset = <0x0>; + reg_polarity_shift = <0x5>; + reg_period_offset = <0x4>; + reg_period_shift = <0x10>; + reg_period_width = <0x10>; + reg_active_offset = <0x4>; + reg_active_shift = <0x0>; + reg_active_width = <0x10>; + reg_prescal_offset = <0x0>; + reg_prescal_shift = <0x0>; + reg_prescal_width = <0x4>; + linux,phandle = <0x71>; + phandle = <0x71>; + device_type = "pwm0"; + pwm_used = <0x0>; + pinctrl-0 = <0xad>; + pinctrl-1 = <0xae>; + }; + + s_pwm@1f03800 { + compatible = "allwinner,sunxi-s_pwm"; + reg = <0x0 0x1f03800 0x0 0x3c>; + pwm-number = <0x1>; + pwm-base = <0x10>; + pwms = <0x72>; + }; + + spwm0@0x01f03800 { + compatible = "allwinner,sunxi-pwm16"; + pinctrl-names = "active", "sleep"; + reg_base = <0x1f03800>; + reg_busy_offset = <0x0>; + reg_busy_shift = <0x1c>; + reg_enable_offset = <0x0>; + reg_enable_shift = <0x4>; + reg_clk_gating_offset = <0x0>; + reg_clk_gating_shift = <0x6>; + reg_bypass_offset = <0x0>; + reg_bypass_shift = <0x9>; + reg_pulse_start_offset = <0x0>; + reg_pulse_start_shift = <0x8>; + reg_mode_offset = <0x0>; + reg_mode_shift = <0x7>; + reg_polarity_offset = <0x0>; + reg_polarity_shift = <0x5>; + reg_period_offset = <0x4>; + reg_period_shift = <0x10>; + reg_period_width = <0x10>; + reg_active_offset = <0x4>; + reg_active_shift = <0x0>; + reg_active_width = <0x10>; + reg_prescal_offset = <0x0>; + reg_prescal_shift = <0x0>; + reg_prescal_width = <0x4>; + linux,phandle = <0x72>; + phandle = <0x72>; + device_type = "spwm0"; + s_pwm_used = <0x1>; + pinctrl-0 = <0xaf>; + pinctrl-1 = <0xb0>; + }; + + boot_disp { + compatible = "allwinner,boot_disp"; + device_type = "boot_disp"; + output_disp = <0x0>; + output_type = <0x3>; + output_mode = <0xa>; + }; + + cci@0x01cb3000 { + compatible = "allwinner,sunxi-csi_cci"; + reg = <0x0 0x1cb3000 0x0 0x1000>; + interrupts = <0x0 0x55 0x4>; + status = "okay"; + }; + + csi_res@0x01cb0000 { + compatible = "allwinner,sunxi-csi"; + reg = <0x0 0x1cb0000 0x0 0x1000>; + status = "okay"; + }; + + vfe@0 { + device_type = "csi0"; + compatible = "allwinner,sunxi-vfe"; + interrupts = <0x0 0x54 0x4>; + clocks = <0x73 0x74 0x75 0x4 0x6 0x5>; + pinctrl-names = "default", "sleep"; + pinctrl-1 = <0x77>; + csi0_sensor_list = <0x1>; + status = "okay"; + pinctrl-0 = <0xb1>; + csi0_mck = <0x30 0x4 0x1 0x0 0x0 0x1 0x0>; + + dev@0 { + csi0_dev0_mname = "s5k4ec"; + csi0_dev0_twi_addr = <0x5a>; + csi0_dev0_pos = "rear"; + csi0_dev0_isp_used = <0x1>; + csi0_dev0_fmt = <0x0>; + csi0_dev0_stby_mode = <0x1>; + csi0_dev0_vflip = <0x0>; + csi0_dev0_hflip = <0x0>; + csi0_dev0_iovdd = "iovdd-csi"; + csi0_dev0_iovdd_vol = <0x2ab980>; + csi0_dev0_avdd = "avdd-csi"; + csi0_dev0_avdd_vol = <0x2ab980>; + csi0_dev0_dvdd = "dvdd-csi-18"; + csi0_dev0_dvdd_vol = <0x16e360>; + csi0_dev0_flash_used = <0x0>; + csi0_dev0_flash_type = <0x2>; + csi0_dev0_flvdd = "vdd-csi-led"; + csi0_dev0_flvdd_vol = <0x325aa0>; + csi0_dev0_act_used = <0x0>; + csi0_dev0_act_name = "ad5820_act"; + csi0_dev0_act_slave = <0x18>; + status = "disabled"; + device_type = "csi0_dev0"; + csi0_dev0_afvdd; + csi0_dev0_afvdd_vol; + csi0_dev0_power_en; + csi0_dev0_reset = <0x30 0x4 0x10 0x0 0x0 0x1 0x0>; + csi0_dev0_pwdn = <0x30 0x4 0x11 0x0 0x0 0x1 0x0>; + csi0_dev0_flash_en; + csi0_dev0_flash_mode; + csi0_dev0_af_pwdn; + }; + + dev@1 { + csi0_dev1_mname = "gc2145"; + csi0_dev1_twi_addr = <0x78>; + csi0_dev1_pos = "front"; + csi0_dev1_isp_used = <0x1>; + csi0_dev1_fmt = <0x0>; + csi0_dev1_stby_mode = <0x1>; + csi0_dev1_vflip = <0x0>; + csi0_dev1_hflip = <0x0>; + csi0_dev1_iovdd = "iovdd-csi"; + csi0_dev1_iovdd_vol = <0x2ab980>; + csi0_dev1_avdd = "avdd-csi"; + csi0_dev1_avdd_vol = <0x2ab980>; + csi0_dev1_dvdd = "dvdd-csi-18"; + csi0_dev1_dvdd_vol = <0x1b7740>; + csi0_dev1_flash_used = <0x0>; + csi0_dev1_flash_type = <0x2>; + csi0_dev1_flvdd = "vdd-csi-led"; + csi0_dev1_flvdd_vol = <0x325aa0>; + csi0_dev1_act_used = <0x0>; + csi0_dev1_act_name = "ad5820_act"; + csi0_dev1_act_slave = <0x18>; + status = "disabled"; + device_type = "csi0_dev1"; + csi0_dev1_afvdd; + csi0_dev1_afvdd_vol; + csi0_dev1_power_en; + csi0_dev1_reset = <0x30 0x4 0x10 0x0 0x0 0x1 0x0>; + csi0_dev1_pwdn = <0x30 0x4 0x11 0x0 0x0 0x1 0x0>; + csi0_dev1_flash_en; + csi0_dev1_flash_mode; + csi0_dev1_af_pwdn; + }; + }; + + vdevice@0 { + compatible = "allwinner,sun50i-vdevice"; + pinctrl-names = "default"; + test-gpios = <0x79 0xb 0x0 0x1 0x2 0x3 0x4>; + status = "okay"; + device_type = "Vdevice"; + pinctrl-0 = <0xb9>; + }; + + onewire_device@0 { + compatible = "w1-gpio"; + gpios = <0x30 0x2 0x8 0x0 0x0 0x0 0x0>; + pinctrl-names = "default"; + pinctrl-0 = <0xba>; + status = "okay"; + }; + + ce@1c15000 { + compatible = "allwinner,sunxi-ce"; + reg = <0x0 0x1c15000 0x0 0x80 0x0 0x1c15800 0x0 0x80>; + interrupts = <0x0 0x5e 0xff01 0x0 0x50 0xff01>; + clock-frequency = <0x11e1a300 0xbebc200>; + clocks = <0x7a 0x7b>; + }; + + deinterlace@0x01e00000 { + #address-cells = <0x1>; + #size-cells = <0x0>; + compatible = "allwinner,sunxi-deinterlace"; + reg = <0x0 0x1e00000 0x0 0x77c>; + interrupts = <0x0 0x5d 0x4>; + clocks = <0x7c 0x4>; + status = "okay"; + device_type = "di"; + }; + + smartcard@0x01c2c400 { + #address-cells = <0x1>; + #size-cells = <0x0>; + compatible = "allwinner,sunxi-scr"; + reg = <0x0 0x1c2c400 0x0 0x100>; + interrupts = <0x0 0x53 0x4>; + clocks = <0x7d 0x7e>; + clock-frequency = <0x16e3600>; + pinctrl-names = "default"; + pinctrl-0 = <0x7f>; + status = "okay"; + device_type = "smc"; + smc_used; + smc_rst; + smc_vppen; + smc_vppp; + smc_det; + smc_vccen; + smc_sck; + smc_sda; + }; + + nmi@0x01f00c00 { + #address-cells = <0x1>; + #size-cells = <0x0>; + compatible = "allwinner,sunxi-nmi"; + reg = <0x0 0x1f00c00 0x0 0x50>; + nmi_irq_ctrl = <0xc>; + nmi_irq_en = <0x40>; + nmi_irq_status = <0x10>; + nmi_irq_mask = <0x50>; + status = "okay"; + }; + + pmu0@0 { + compatible = "allwinner,pmu0"; + device_type = "pmu0"; + pmu_batdeten = <0x1>; + pmu_init_chgend_rate = <0x14>; + pmu_init_chg_enabled = <0x1>; + pmu_init_adc_freq = <0x320>; + pmu_init_adcts_freq = <0x320>; + pmu_init_chg_pretime = <0x46>; + pmu_init_chg_csttime = <0x2d0>; + pmu_batt_cap_correct = <0x1>; + pmu_chg_end_on_en = <0x0>; + pmu_pwroff_vol = <0xce4>; + pmu_pwron_vol = <0xa28>; + pmu_powkey_off_delay_time = <0x0>; + pmu_pwrok_time = <0x40>; + pmu_reset_shutdown_en = <0x1>; + pmu_restvol_adjust_time = <0x3c>; + pmu_ocv_cou_adjust_time = <0x3c>; + pmu_vbusen_func = <0x1>; + pmu_reset = <0x0>; + pmu_IRQ_wakeup = <0x1>; + pmu_hot_shutdowm = <0x1>; + pmu_inshort = <0x0>; + pmu_bat_shutdown_ltf = <0xc80>; + pmu_bat_shutdown_htf = <0xed>; + status = "okay"; + pmu_id = <0x6>; + pmu_twi_addr = <0x34>; + pmu_twi_id = <0x1>; + pmu_irq_id = <0x40>; + pmu_chg_ic_temp = <0x0>; + pmu_battery_rdc = <0x58>; + pmu_battery_cap = <0x12c0>; + pmu_runtime_chgcur = <0x1c2>; + pmu_suspend_chgcur = <0x5dc>; + pmu_shutdown_chgcur = <0x5dc>; + pmu_init_chgvol = <0x1068>; + pmu_ac_vol = <0xfa0>; + pmu_ac_cur = <0xdac>; + pmu_usbpc_vol = <0x1130>; + pmu_usbpc_cur = <0x1f4>; + pmu_battery_warning_level1 = <0xf>; + pmu_battery_warning_level2 = <0x0>; + pmu_chgled_func = <0x0>; + pmu_chgled_type = <0x0>; + pmu_bat_para1 = <0x0>; + pmu_bat_para2 = <0x0>; + pmu_bat_para3 = <0x0>; + pmu_bat_para4 = <0x0>; + pmu_bat_para5 = <0x0>; + pmu_bat_para6 = <0x0>; + pmu_bat_para7 = <0x1>; + pmu_bat_para8 = <0x1>; + pmu_bat_para9 = <0x2>; + pmu_bat_para10 = <0x3>; + pmu_bat_para11 = <0x4>; + pmu_bat_para12 = <0xa>; + pmu_bat_para13 = <0x11>; + pmu_bat_para14 = <0x1a>; + pmu_bat_para15 = <0x29>; + pmu_bat_para16 = <0x2e>; + pmu_bat_para17 = <0x33>; + pmu_bat_para18 = <0x38>; + pmu_bat_para19 = <0x3b>; + pmu_bat_para20 = <0x41>; + pmu_bat_para21 = <0x45>; + pmu_bat_para22 = <0x4b>; + pmu_bat_para23 = <0x4f>; + pmu_bat_para24 = <0x53>; + pmu_bat_para25 = <0x59>; + pmu_bat_para26 = <0x5f>; + pmu_bat_para27 = <0x62>; + pmu_bat_para28 = <0x64>; + pmu_bat_para29 = <0x64>; + pmu_bat_para30 = <0x64>; + pmu_bat_para31 = <0x64>; + pmu_bat_para32 = <0x64>; + pmu_bat_temp_enable = <0x1>; + pmu_bat_charge_ltf = <0x8d5>; + pmu_bat_charge_htf = <0x184>; + pmu_bat_temp_para1 = <0x1d2a>; + pmu_bat_temp_para2 = <0x1180>; + pmu_bat_temp_para3 = <0xdbe>; + pmu_bat_temp_para4 = <0xae2>; + pmu_bat_temp_para5 = <0x8af>; + pmu_bat_temp_para6 = <0x6fc>; + pmu_bat_temp_para7 = <0x5a8>; + pmu_bat_temp_para8 = <0x3c9>; + pmu_bat_temp_para9 = <0x298>; + pmu_bat_temp_para10 = <0x1d2>; + pmu_bat_temp_para11 = <0x189>; + pmu_bat_temp_para12 = <0x14d>; + pmu_bat_temp_para13 = <0x11b>; + pmu_bat_temp_para14 = <0xf2>; + pmu_bat_temp_para15 = <0xb3>; + pmu_bat_temp_para16 = <0x86>; + pmu_powkey_off_time = <0x1770>; + pmu_powkey_off_func = <0x0>; + pmu_powkey_off_en = <0x1>; + pmu_powkey_long_time = <0x5dc>; + pmu_powkey_on_time = <0x3e8>; + power_start = <0x0>; + }; + + regu@0 { + compatible = "allwinner,pmu0_regu"; + regulator_count = <0x17>; + status = "okay"; + device_type = "pmu0_regu"; + regulator1 = "axp81x_dcdc1 none vcc-nand vcc-emmc vcc-sdc vcc-usb-30 vcc-io vcc-pd"; + regulator2 = "axp81x_dcdc2 none vdd-cpua"; + regulator3 = "axp81x_dcdc3 none"; + regulator4 = "axp81x_dcdc4 none"; + regulator5 = "axp81x_dcdc5 none vcc-dram"; + regulator6 = "axp81x_dcdc6 none vdd-sys"; + regulator7 = "axp81x_dcdc7 none"; + regulator8 = "axp81x_rtc none"; + regulator9 = "axp81x_aldo1 none vdd-csi-led iovdd-csi vcc-pe"; + regulator10 = "axp81x_aldo2 none vcc-pl"; + regulator11 = "axp81x_aldo3 none vcc-avcc vcc-pll"; + regulator12 = "axp81x_dldo1 none vcc-hdmi-33"; + regulator13 = "axp81x_dldo2 none vcc-mipi"; + regulator14 = "axp81x_dldo3 none avdd-csi"; + regulator15 = "axp81x_dldo4 none vcc-deviceio"; + regulator16 = "axp81x_eldo1 none vcc-cpvdd vcc-wifi-io vcc-pc vcc-pg"; + regulator17 = "axp81x_eldo2 none vcc-lcd-0"; + regulator18 = "axp81x_eldo3 none dvdd-csi-18"; + regulator19 = "axp81x_fldo1 none vcc-hsic-12"; + regulator20 = "axp81x_fldo2 none vdd-cpus"; + regulator21 = "axp81x_gpio0ldo none vcc-ctp"; + regulator22 = "axp81x_gpio1ldo none"; + regulator23 = "axp81x_dc1sw none vcc-lvds vcc-dsi-33"; + }; + + nand0@01c03000 { + compatible = "allwinner,sun50i-nand"; + device_type = "nand0"; + reg = <0x0 0x1c03000 0x0 0x1000>; + interrupts = <0x0 0x46 0x4>; + clocks = <0x4 0x80>; + pinctrl-names = "default", "sleep"; + pinctrl-1 = <0x83>; + 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>; + status = "disabled"; + nand0_support_2ch = <0x0>; + pinctrl-0 = <0xab 0xac>; + }; + + thermal_sensor { + compatible = "allwinner,thermal_sensor"; + reg = <0x0 0x1c25000 0x0 0x400>; + interrupts = <0x0 0x1f 0x0>; + clocks = <0x6 0x84>; + sensor_num = <0x3>; + shut_temp = <0x78>; + status = "okay"; + + combine0 { + #thermal-sensor-cells = <0x1>; + combine_cnt = <0x3>; + combine_type = "max"; + combine_chn = <0x0 0x1 0x2>; + linux,phandle = <0x85>; + phandle = <0x85>; + }; + }; + + cpu_budget_cool { + compatible = "allwinner,budget_cooling"; + #cooling-cells = <0x2>; + status = "okay"; + state_cnt = <0xa>; + cluster_num = <0x1>; + state0 = <0x119400 0x4>; + state1 = <0x10d880 0x4>; + state2 = <0x101d00 0x4>; + state3 = <0xf6180 0x4>; + state4 = <0xea600 0x4>; + state5 = <0xdea80 0x4>; + state6 = <0xc7380 0x4>; + state7 = <0x9e340 0x4>; + state8 = <0x9e340 0x2>; + state9 = <0x9e340 0x1>; + linux,phandle = <0x87>; + phandle = <0x87>; + }; + + gpu_cooling { + compatible = "allwinner,gpu_cooling"; + reg = <0x0 0x0 0x0 0x0>; + #cooling-cells = <0x2>; + status = "okay"; + state_cnt = <0x3>; + state0 = <0x0>; + state1 = <0x168>; + state2 = <0x90>; + linux,phandle = <0x8c>; + phandle = <0x8c>; + }; + + thermal-zones { + + soc_thermal { + polling-delay-passive = <0x1f4>; + polling-delay = <0x7d0>; + thermal-sensors = <0x85 0x0>; + + trips { + + t0 { + temperature = <0x50>; + type = "passive"; + hysteresis = <0x0>; + linux,phandle = <0x86>; + phandle = <0x86>; + }; + + t1 { + temperature = <0x55>; + type = "passive"; + hysteresis = <0x0>; + linux,phandle = <0x88>; + phandle = <0x88>; + }; + + t2 { + temperature = <0x5a>; + type = "passive"; + hysteresis = <0x0>; + linux,phandle = <0x89>; + phandle = <0x89>; + }; + + t3 { + temperature = <0x5f>; + type = "passive"; + hysteresis = <0x0>; + linux,phandle = <0x8a>; + phandle = <0x8a>; + }; + + t4 { + temperature = <0x55>; + type = "passive"; + hysteresis = <0x0>; + linux,phandle = <0x8b>; + phandle = <0x8b>; + }; + + t5 { + temperature = <0x5a>; + type = "passive"; + hysteresis = <0x0>; + linux,phandle = <0x8d>; + phandle = <0x8d>; + }; + + t6 { + temperature = <0x6c>; + type = "critical"; + hysteresis = <0x0>; + }; + }; + + cooling-maps { + + bind0 { + contribution = <0x0>; + trip = <0x86>; + cooling-device = <0x87 0x1 0x1>; + }; + + bind1 { + contribution = <0x0>; + trip = <0x88>; + cooling-device = <0x87 0x2 0x2>; + }; + + bind2 { + contribution = <0x0>; + trip = <0x89>; + cooling-device = <0x87 0x3 0x6>; + }; + + bind3 { + contribution = <0x0>; + trip = <0x8a>; + cooling-device = <0x87 0x7 0x9>; + }; + + bind4 { + contribution = <0x0>; + trip = <0x8b>; + cooling-device = <0x8c 0x1 0x1>; + }; + + bind5 { + contribution = <0x0>; + trip = <0x8d>; + cooling-device = <0x8c 0x2 0x2>; + }; + }; + }; + }; + + keyboard { + compatible = "allwinner,keyboard_2000mv"; + reg = <0x0 0x1c21800 0x0 0x400>; + interrupts = <0x0 0x1e 0x0>; + status = "okay"; + key_cnt = <0x5>; + key1 = <0xf0 0x73>; + key2 = <0x1f4 0x72>; + key3 = <0x2bc 0x8b>; + key4 = <0x37a 0x1c>; + key5 = <0x7d0 0x66>; + }; + + eth@01c30000 { + compatible = "allwinner,sunxi-gmac"; + reg = <0x0 0x1c30000 0x0 0x10000 0x0 0x1c00000 0x0 0x30>; + pinctrl-names = "default"; + interrupts = <0x0 0x52 0x4>; + interrupt-names = "gmacirq"; + clocks = <0x8f>; + clock-names = "gmac"; + phy-mode = "rmii"; + tx-delay = <0x0>; + rx-delay = <0x0>; + gmac_power1 = "axp81x_dc1sw:0"; + status = "okay"; + device_type = "gmac0"; + pinctrl-0 = <0x9e>; + gmac_power2; + gmac_power3; + }; + + product { + device_type = "product"; + version = "100"; + machine = "evb"; + }; + + platform { + device_type = "platform"; + eraseflag = <0x1>; + }; + + target { + device_type = "target"; + boot_clock = <0x3f0>; + storage_type = <0xffffffff>; + burn_key = <0x0>; + }; + + power_sply { + device_type = "power_sply"; + dcdc1_vol = <0xf4f24>; + dcdc2_vol = <0xf468c>; + dcdc6_vol = <0xf468c>; + aldo1_vol = <0xaf0>; + aldo2_vol = <0xf4948>; + aldo3_vol = <0xf4df8>; + dldo1_vol = <0xce4>; + dldo2_vol = <0xce4>; + dldo3_vol = <0xaf0>; + dldo4_vol = <0xf4f24>; + eldo1_vol = <0xf4948>; + eldo2_vol = <0x708>; + eldo3_vol = <0x708>; + fldo1_vol = <0x4b0>; + fldo2_vol = <0xf468c>; + gpio0_vol = <0xc1c>; + }; + + card_boot { + device_type = "card_boot"; + logical_start = <0xa000>; + sprite_gpio0; + }; + + 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 = <0x99>; + }; + + card2_boot_para { + device_type = "card2_boot_para"; + sdc_io_1v8 = <0x1>; + card_ctrl = <0x2>; + card_high_speed = <0x1>; + card_line = <0x8>; + pinctrl-0 = <0x9a>; + sdc_ex_dly_used = <0x2>; + }; + + twi_para { + device_type = "twi_para"; + twi_port = <0x0>; + pinctrl-0 = <0x9b>; + }; + + uart_para { + device_type = "uart_para"; + uart_debug_port = <0x0>; + pinctrl-0 = <0x9c>; + }; + + jtag_para { + device_type = "jtag_para"; + jtag_enable = <0x1>; + pinctrl-0 = <0x9d>; + }; + + clock { + device_type = "clock"; + pll4 = <0x12c>; + pll6 = <0x258>; + pll8 = <0x168>; + pll9 = <0x129>; + pll10 = <0x108>; + }; + + rtp_para { + device_type = "rtp_para"; + rtp_used = <0x0>; + rtp_screen_size = <0x5>; + rtp_regidity_level = <0x5>; + rtp_press_threshold_enable = <0x0>; + rtp_press_threshold = <0x1f40>; + rtp_sensitive_level = <0xf>; + rtp_exchange_x_y_flag = <0x0>; + }; + + ctp { + device_type = "ctp"; + compatible = "allwinner,sun50i-ctp-para"; + status = "disabled"; + ctp_name = "gt911_DB"; + ctp_twi_id = <0x0>; + ctp_twi_addr = <0x40>; + ctp_screen_max_x = <0x400>; + ctp_screen_max_y = <0x258>; + ctp_revert_x_flag = <0x1>; + ctp_revert_y_flag = <0x1>; + ctp_exchange_x_y_flag = <0x0>; + ctp_int_port = <0x30 0x7 0x4 0x6 0xffffffff 0xffffffff 0xffffffff>; + ctp_wakeup = <0x30 0x7 0xb 0x1 0xffffffff 0xffffffff 0x1>; + ctp_power_ldo = "vcc-ctp"; + ctp_power_ldo_vol = <0xce4>; + ctp_power_io; + }; + + ctp_list { + device_type = "ctp_list"; + compatible = "allwinner,sun50i-ctp-list"; + status = "okay"; + gslX680new = <0x1>; + gt9xx_ts = <0x0>; + gt9xxf_ts = <0x1>; + gt9xxnew_ts = <0x0>; + gt82x = <0x1>; + zet622x = <0x1>; + aw5306_ts = <0x1>; + }; + + tkey_para { + device_type = "tkey_para"; + tkey_used = <0x0>; + tkey_twi_id; + tkey_twi_addr; + tkey_int; + }; + + motor_para { + device_type = "motor_para"; + motor_used = <0x0>; + motor_shake = <0x31 0xfffe 0x3 0x1 0xffffffff 0xffffffff 0x1>; + }; + + tvout_para { + device_type = "tvout_para"; + tvout_used; + tvout_channel_num; + tv_en; + }; + + tvin_para { + device_type = "tvin_para"; + tvin_used; + tvin_channel_num; + }; + + serial_feature { + device_type = "serial_feature"; + sn_filename = "sn.txt"; + }; + + gsensor { + device_type = "gsensor"; + compatible = "allwinner,sun50i-gsensor-para"; + status = "okay"; + gsensor_twi_id = <0x1>; + gsensor_twi_addr = <0x1d>; + gsensor_vcc_io = "vcc-deviceio"; + gsensor_vcc_io_val = <0xce4>; + gsensor_int1 = <0x30 0x7 0x5 0x6 0x1 0xffffffff 0xffffffff>; + gsensor_int2 = <0x30 0x7 0x6 0x6 0x1 0xffffffff 0xffffffff>; + }; + + gsensor_list { + device_type = "gsensor_list"; + compatible = "allwinner,sun50i-gsensor-list-para"; + gsensor_list__used = <0x1>; + lsm9ds0_acc_mag = <0x1>; + bma250 = <0x1>; + mma8452 = <0x1>; + mma7660 = <0x1>; + mma865x = <0x1>; + afa750 = <0x1>; + lis3de_acc = <0x1>; + lis3dh_acc = <0x1>; + kxtik = <0x1>; + dmard10 = <0x0>; + dmard06 = <0x1>; + mxc622x = <0x1>; + fxos8700 = <0x1>; + lsm303d = <0x0>; + sc7a30 = <0x1>; + }; + + 3g_para { + device_type = "3g_para"; + 3g_used = <0x0>; + 3g_usbc_num = <0x2>; + 3g_uart_num = <0x0>; + bb_vbat = <0x79 0xb 0x3 0x1 0xffffffff 0xffffffff 0x0>; + bb_host_wake = <0x79 0xc 0x0 0x1 0xffffffff 0xffffffff 0x0>; + bb_on = <0x79 0xc 0x1 0x1 0xffffffff 0xffffffff 0x0>; + bb_pwr_on = <0x79 0xc 0x3 0x1 0xffffffff 0xffffffff 0x0>; + bb_wake = <0x79 0xc 0x4 0x1 0xffffffff 0xffffffff 0x0>; + bb_rf_dis = <0x79 0xc 0x5 0x1 0xffffffff 0xffffffff 0x0>; + bb_rst = <0x79 0xc 0x6 0x1 0xffffffff 0xffffffff 0x0>; + 3g_int; + }; + + gyroscopesensor { + device_type = "gyroscopesensor"; + compatible = "allwinner,sun50i-gyr_sensors-para"; + status = "disabled"; + gy_twi_id = <0x2>; + gy_twi_addr = <0x6a>; + gy_int1 = <0x30 0x0 0xa 0x6 0x1 0xffffffff 0xffffffff>; + gy_int2; + }; + + gy_list { + device_type = "gy_list"; + compatible = "allwinner,sun50i-gyr_sensors-list-para"; + status = "disabled"; + lsm9ds0_gyr = <0x1>; + l3gd20_gyr = <0x0>; + bmg160_gyr = <0x1>; + }; + + lightsensor { + device_type = "lightsensor"; + compatible = "allwinner,sun50i-lsensors-para"; + status = "disabled"; + ls_twi_id = <0x2>; + ls_twi_addr = <0x23>; + ls_int = <0x30 0x0 0xc 0x6 0x1 0xffffffff 0xffffffff>; + }; + + ls_list { + device_type = "ls_list"; + compatible = "allwinner,sun50i-lsensors-list-para"; + status = "disabled"; + ltr_501als = <0x1>; + jsa1212 = <0x0>; + jsa1127 = <0x1>; + stk3x1x = <0x0>; + }; + + compasssensor { + device_type = "compasssensor"; + compatible = "allwinner,sun50i-compass-para"; + status = "disabled"; + compass_twi_id = <0x2>; + compass_twi_addr = <0xd>; + compass_int = <0x30 0x0 0xb 0x6 0x1 0xffffffff 0xffffffff>; + }; + + compass_list { + device_type = "compass_list"; + compatible = "allwinner,sun50i-compass-list-para"; + status = "disabled"; + lsm9ds0 = <0x1>; + lsm303d = <0x0>; + }; + + recovery_key { + device_type = "recovery_key"; + key_max = <0xc>; + key_min = <0xa>; + }; + + fastboot_key { + device_type = "fastboot_key"; + key_max = <0x6>; + key_min = <0x4>; + }; + }; + + aliases { + serial0 = "/soc@01c00000/uart@01c28000"; + serial1 = "/soc@01c00000/uart@01c28400"; + serial2 = "/soc@01c00000/uart@01c28800"; + serial3 = "/soc@01c00000/uart@01c28c00"; + serial4 = "/soc@01c00000/uart@01c29000"; + twi0 = "/soc@01c00000/twi@0x01c2ac00"; + twi1 = "/soc@01c00000/twi@0x01c2b000"; + twi2 = "/soc@01c00000/twi@0x01c2b400"; + spi0 = "/soc@01c00000/spi@01c68000"; + spi1 = "/soc@01c00000/spi@01c69000"; + global_timer0 = "/soc@01c00000/timer@1c20c00"; + cci0 = "/soc@01c00000/cci@0x01cb3000"; + csi_res0 = "/soc@01c00000/csi_res@0x01cb0000"; + vfe0 = "/soc@01c00000/vfe@0"; + mmc0 = "/soc@01c00000/sdmmc@01c0f000"; + mmc2 = "/soc@01c00000/sdmmc@01C11000"; + nand0 = "/soc@01c00000/nand0@01c03000"; + disp = "/soc@01c00000/disp@01000000"; + lcd0 = "/soc@01c00000/lcd0@01c0c000"; + hdmi = "/soc@01c00000/hdmi@01ee0000"; + pwm = "/soc@01c00000/pwm@01c21400"; + pwm0 = "/soc@01c00000/pwm0@01c21400"; + s_pwm = "/soc@01c00000/s_pwm@1f03800"; + spwm0 = "/soc@01c00000/spwm0@0x01f03800"; + boot_disp = "/soc@01c00000/boot_disp"; + }; + + chosen { + bootargs = "earlyprintk=sunxi-uart,0x01c28000 loglevel=8 initcall_debug=1 console=ttyS0 init=/init"; + linux,initrd-start = <0x0 0x0>; + linux,initrd-end = <0x0 0x0>; + }; + + cpus { + #address-cells = <0x2>; + #size-cells = <0x0>; + + cpu@0 { + device_type = "cpu"; + compatible = "arm,cortex-a53", "arm,armv8"; + reg = <0x0 0x0>; + enable-method = "psci"; + cpufreq_tbl = <0x75300 0x927c0 0xafc80 0xc7380 0xdea80 0xea600 0xf6180 0x101d00 0x10d880 0x119400 0x124f80 0x148200>; + clock-latency = <0x1e8480>; + clock-frequency = <0x3c14dc00>; + cpu-idle-states = <0x90 0x91 0x92>; + }; + + cpu@1 { + device_type = "cpu"; + compatible = "arm,cortex-a53", "arm,armv8"; + reg = <0x0 0x1>; + enable-method = "psci"; + clock-frequency = <0x3c14dc00>; + cpu-idle-states = <0x90 0x91 0x92>; + }; + + cpu@2 { + device_type = "cpu"; + compatible = "arm,cortex-a53", "arm,armv8"; + reg = <0x0 0x2>; + enable-method = "psci"; + clock-frequency = <0x3c14dc00>; + cpu-idle-states = <0x90 0x91 0x92>; + }; + + cpu@3 { + device_type = "cpu"; + compatible = "arm,cortex-a53", "arm,armv8"; + reg = <0x0 0x3>; + enable-method = "psci"; + clock-frequency = <0x3c14dc00>; + cpu-idle-states = <0x90 0x91 0x92>; + }; + + idle-states { + entry-method = "arm,psci"; + + cpu-sleep-0 { + compatible = "arm,idle-state"; + arm,psci-suspend-param = <0x10000>; + entry-latency-us = <0x28>; + exit-latency-us = <0x64>; + min-residency-us = <0x96>; + linux,phandle = <0x90>; + phandle = <0x90>; + }; + + cluster-sleep-0 { + compatible = "arm,idle-state"; + arm,psci-suspend-param = <0x1010000>; + entry-latency-us = <0x1f4>; + exit-latency-us = <0x3e8>; + min-residency-us = <0x9c4>; + linux,phandle = <0x91>; + phandle = <0x91>; + }; + + sys-sleep-0 { + compatible = "arm,idle-state"; + arm,psci-suspend-param = <0x2010000>; + entry-latency-us = <0x3e8>; + exit-latency-us = <0x7d0>; + min-residency-us = <0x1194>; + linux,phandle = <0x92>; + phandle = <0x92>; + }; + }; + }; + + psci { + compatible = "arm,psci-0.2"; + method = "smc"; + psci_version = <0x84000000>; + cpu_suspend = <0xc4000001>; + cpu_off = <0x84000002>; + cpu_on = <0xc4000003>; + affinity_info = <0xc4000004>; + migrate = <0xc4000005>; + migrate_info_type = <0x84000006>; + migrate_info_up_cpu = <0xc4000007>; + system_off = <0x84000008>; + system_reset = <0x84000009>; + }; + + n_brom { + compatible = "allwinner,n-brom"; + reg = <0x0 0x0 0x0 0xc000>; + }; + + s_brom { + compatible = "allwinner,s-brom"; + reg = <0x0 0x0 0x0 0x10000>; + }; + + sram_a1 { + compatible = "allwinner,sram_a1"; + reg = <0x0 0x10000 0x0 0x8000>; + }; + + sram_a2 { + compatible = "allwinner,sram_a2"; + reg = <0x0 0x40000 0x0 0x14000>; + }; + + prcm { + compatible = "allwinner,prcm"; + reg = <0x0 0x1f01400 0x0 0x400>; + }; + + cpuscfg { + compatible = "allwinner,cpuscfg"; + reg = <0x0 0x1f01c00 0x0 0x400>; + }; + + ion { + compatible = "allwinner,sunxi-ion"; + + system_contig { + type = <0x1>; + }; + + cma { + type = <0x4>; + }; + + system { + type = <0x0>; + }; + }; + + dram { + compatible = "allwinner,dram"; + clocks = <0x93 0x94>; + clock-names = "pll_ddr0", "pll_ddr1"; + dram_clk = <0x2a0>; + dram_type = <0x3>; + dram_zq = <0x3b3bdd>; + dram_odt_en = <0x1>; + dram_para1 = <0x10e40400>; + dram_para2 = <0x4000000>; + dram_mr0 = <0x1c70>; + dram_mr1 = <0x40>; + dram_mr2 = <0x18>; + dram_mr3 = <0x0>; + dram_tpr0 = <0x48a192>; + dram_tpr1 = <0x1c2418d>; + dram_tpr2 = <0x76051>; + dram_tpr3 = <0x50005dc>; + dram_tpr4 = <0x0>; + dram_tpr5 = <0x0>; + dram_tpr6 = <0x0>; + dram_tpr7 = <0x2a066198>; + dram_tpr8 = <0x0>; + dram_tpr9 = <0x0>; + dram_tpr10 = <0x8808>; + dram_tpr11 = <0x40a60066>; + dram_tpr12 = <0x55550000>; + dram_tpr13 = <0x4000903>; + device_type = "dram"; + }; + + memory@40000000 { + device_type = "memory"; + reg = <0x0 0x41000000 0x0 0x3f000000>; + }; + + interrupt-controller@1c81000 { + compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic"; + #interrupt-cells = <0x3>; + #address-cells = <0x0>; + device_type = "gic"; + interrupt-controller; + reg = <0x0 0x1c81000 0x0 0x1000 0x0 0x1c82000 0x0 0x2000 0x0 0x1c84000 0x0 0x2000 0x0 0x1c86000 0x0 0x2000>; + interrupts = <0x1 0x9 0xf04>; + linux,phandle = <0x1>; + phandle = <0x1>; + }; + + sunxi-chipid@1c14200 { + compatible = "allwinner,sunxi-chipid"; + device_type = "chipid"; + reg = <0x0 0x1c14200 0x0 0x400>; + }; + + timer { + compatible = "arm,armv8-timer"; + interrupts = <0x1 0xd 0xff01 0x1 0xe 0xff01 0x1 0xb 0xff01 0x1 0xa 0xff01>; + clock-frequency = <0x16e3600>; + }; + + pmu { + compatible = "arm,armv8-pmuv3"; + interrupts = <0x0 0x78 0x4 0x0 0x79 0x4 0x0 0x7a 0x4 0x0 0x7b 0x4>; + }; + + dvfs_table { + compatible = "allwinner,dvfs_table"; + max_freq = <0x44aa2000>; + min_freq = <0x1c9c3800>; + lv_count = <0x8>; + lv1_freq = <0x44aa2000>; + lv1_volt = <0x514>; + lv2_freq = <0x41cdb400>; + lv2_volt = <0x4ec>; + lv3_freq = <0x3ef14800>; + lv3_volt = <0x4d8>; + lv4_freq = <0x3c14dc00>; + lv4_volt = <0x4b0>; + lv5_freq = <0x39387000>; + lv5_volt = <0x488>; + lv6_freq = <0x365c0400>; + lv6_volt = <0x460>; + lv7_freq = <0x30a32c00>; + lv7_volt = <0x438>; + lv8_freq = <0x269fb200>; + lv8_volt = <0x410>; + device_type = "dvfs_table"; + }; + + dramfreq { + compatible = "allwinner,sunxi-dramfreq"; + reg = <0x0 0x1c62000 0x0 0x1000 0x0 0x1c63000 0x0 0x1000 0x0 0x1c20000 0x0 0x800>; + clocks = <0x93 0x94 0x95>; + status = "okay"; + }; + + uboot { + }; + + gpu@0x01c40000 { + compatible = "arm,mali-400", "arm,mali-utgard"; + reg = <0x0 0x1c40000 0x0 0x10000>; + interrupts = <0x0 0x61 0x4 0x0 0x62 0x4 0x0 0x63 0x4 0x0 0x64 0x4 0x0 0x66 0x4 0x0 0x67 0x4>; + interrupt-names = "IRQGP", "IRQGPMMU", "IRQPP0", "IRQPPMMU0", "IRQPP1", "IRQPPMMU1"; + clocks = <0x96 0x97>; + device_type = "gpu_mali400_0"; + normal_freq = <0x198>; + scene_ctrl_status = <0x0>; + temp_ctrl_status = <0x1>; + }; + + wlan { + compatible = "allwinner,sunxi-wlan"; + wlan_io_regulator = "vcc-wifi-io"; + wlan_busnum = <0x1>; + status = "okay"; + device_type = "wlan"; + clocks; + wlan_power; + wlan_regon = <0x79 0xb 0x2 0x1 0xffffffff 0xffffffff 0x0>; + wlan_hostwake = <0x79 0xb 0x3 0x6 0xffffffff 0xffffffff 0x0>; + efuse_map_path = "wifi_efuse_8189e_for_MB1019Q5.map"; + }; + + bt { + compatible = "allwinner,sunxi-bt"; + bt_io_regulator = "vcc-wifi-io"; + status = "okay"; + device_type = "bt"; + clocks; + bt_power; + bt_rst_n = <0x79 0xb 0x4 0x1 0xffffffff 0xffffffff 0x0>; + }; + + btlpm { + compatible = "allwinner,sunxi-btlpm"; + uart_index = <0x1>; + status = "okay"; + device_type = "btlpm"; + bt_wake = <0x79 0xb 0x6 0x1 0xffffffff 0xffffffff 0x1>; + bt_hostwake = <0x79 0xb 0x5 0x6 0xffffffff 0xffffffff 0x0>; + }; +}; diff --git a/board/pine64/pine64plus.dts b/board/pine64/pine64plus.dts new file mode 100644 index 0000000000..7d880b2f59 --- /dev/null +++ b/board/pine64/pine64plus.dts @@ -0,0 +1,3441 @@ +/dts-v1/; + +/memreserve/ 0x0000000045000000 0x0000000000200000; +/memreserve/ 0x0000000041010000 0x0000000000010000; +/memreserve/ 0x0000000041020000 0x0000000000000800; +/memreserve/ 0x0000000040100000 0x0000000000004000; +/memreserve/ 0x0000000040104000 0x0000000000001000; +/memreserve/ 0x0000000040105000 0x0000000000001000; +/ { + model = "Pine64+"; + compatible = "pine64,pine64-plus"; + interrupt-parent = <0x1>; + #address-cells = <0x2>; + #size-cells = <0x2>; + + clocks { + compatible = "allwinner,sunxi-clk-init"; + device_type = "clocks"; + #address-cells = <0x2>; + #size-cells = <0x2>; + ranges; + reg = <0x0 0x1c20000 0x0 0x320 0x0 0x1f01400 0x0 0xb0 0x0 0x1f00060 0x0 0x4>; + + losc { + #clock-cells = <0x0>; + compatible = "allwinner,fixed-clock"; + clock-frequency = <0x8000>; + clock-output-names = "losc"; + linux,phandle = <0xc>; + phandle = <0xc>; + }; + + iosc { + #clock-cells = <0x0>; + compatible = "allwinner,fixed-clock"; + clock-frequency = <0xf42400>; + clock-output-names = "iosc"; + linux,phandle = <0xd>; + phandle = <0xd>; + }; + + hosc { + #clock-cells = <0x0>; + compatible = "allwinner,fixed-clock"; + clock-frequency = <0x16e3600>; + clock-output-names = "hosc"; + linux,phandle = <0x6>; + phandle = <0x6>; + }; + + pll_cpu { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-pll-clock"; + lock-mode = "new"; + clock-output-names = "pll_cpu"; + }; + + pll_audio { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-pll-clock"; + lock-mode = "new"; + assigned-clock-rates = <0x1770000>; + clock-output-names = "pll_audio"; + linux,phandle = <0x2>; + phandle = <0x2>; + }; + + pll_video0 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-pll-clock"; + lock-mode = "new"; + assigned-clock-rates = <0x11b3dc40>; + clock-output-names = "pll_video0"; + linux,phandle = <0x3>; + phandle = <0x3>; + }; + + pll_ve { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-pll-clock"; + lock-mode = "new"; + clock-output-names = "pll_ve"; + linux,phandle = <0x16>; + phandle = <0x16>; + }; + + pll_ddr0 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-pll-clock"; + lock-mode = "new"; + clock-output-names = "pll_ddr0"; + linux,phandle = <0x93>; + phandle = <0x93>; + }; + + pll_periph0 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-pll-clock"; + lock-mode = "new"; + clock-output-names = "pll_periph0"; + linux,phandle = <0x4>; + phandle = <0x4>; + }; + + pll_periph1 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-pll-clock"; + lock-mode = "new"; + clock-output-names = "pll_periph1"; + linux,phandle = <0x5>; + phandle = <0x5>; + }; + + pll_video1 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-pll-clock"; + lock-mode = "new"; + assigned-clock-rates = <0x11b3dc40>; + clock-output-names = "pll_video1"; + }; + + pll_gpu { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-pll-clock"; + lock-mode = "new"; + clock-output-names = "pll_gpu"; + linux,phandle = <0x96>; + phandle = <0x96>; + }; + + pll_mipi { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-pll-clock"; + lock-mode = "new"; + clock-output-names = "pll_mipi"; + linux,phandle = <0x8>; + phandle = <0x8>; + }; + + pll_hsic { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-pll-clock"; + lock-mode = "new"; + clock-output-names = "pll_hsic"; + linux,phandle = <0x3a>; + phandle = <0x3a>; + }; + + pll_de { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-pll-clock"; + lock-mode = "new"; + assigned-clock-rates = <0x11b3dc40>; + clock-output-names = "pll_de"; + linux,phandle = <0x7>; + phandle = <0x7>; + }; + + pll_ddr1 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-pll-clock"; + lock-mode = "new"; + clock-output-names = "pll_ddr1"; + linux,phandle = <0x94>; + phandle = <0x94>; + }; + + pll_audiox8 { + #clock-cells = <0x0>; + compatible = "allwinner,fixed-factor-clock"; + clocks = <0x2>; + clock-mult = <0x8>; + clock-div = <0x1>; + clock-output-names = "pll_audiox8"; + }; + + pll_audiox4 { + #clock-cells = <0x0>; + compatible = "allwinner,fixed-factor-clock"; + clocks = <0x2>; + clock-mult = <0x8>; + clock-div = <0x2>; + clock-output-names = "pll_audiox4"; + linux,phandle = <0x3c>; + phandle = <0x3c>; + }; + + pll_audiox2 { + #clock-cells = <0x0>; + compatible = "allwinner,fixed-factor-clock"; + clocks = <0x2>; + clock-mult = <0x8>; + clock-div = <0x4>; + clock-output-names = "pll_audiox2"; + }; + + pll_video0x2 { + #clock-cells = <0x0>; + compatible = "allwinner,fixed-factor-clock"; + clocks = <0x3>; + clock-mult = <0x2>; + clock-div = <0x1>; + clock-output-names = "pll_video0x2"; + }; + + pll_periph0x2 { + #clock-cells = <0x0>; + compatible = "allwinner,fixed-factor-clock"; + clocks = <0x4>; + clock-mult = <0x2>; + clock-div = <0x1>; + clock-output-names = "pll_periph0x2"; + linux,phandle = <0x7b>; + phandle = <0x7b>; + }; + + pll_periph1x2 { + #clock-cells = <0x0>; + compatible = "allwinner,fixed-factor-clock"; + clocks = <0x5>; + clock-mult = <0x2>; + clock-div = <0x1>; + clock-output-names = "pll_periph1x2"; + linux,phandle = <0x5a>; + phandle = <0x5a>; + }; + + pll_periph0d2 { + #clock-cells = <0x0>; + compatible = "allwinner,fixed-factor-clock"; + clocks = <0x4>; + clock-mult = <0x1>; + clock-div = <0x2>; + clock-output-names = "pll_periph0d2"; + }; + + hoscd2 { + #clock-cells = <0x0>; + compatible = "allwinner,fixed-factor-clock"; + clocks = <0x6>; + clock-mult = <0x1>; + clock-div = <0x2>; + clock-output-names = "hoscd2"; + }; + + cpu { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "cpu"; + }; + + cpuapb { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "cpuapb"; + }; + + axi { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "axi"; + }; + + pll_periphahb0 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "pll_periphahb0"; + }; + + ahb1 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "ahb1"; + linux,phandle = <0x95>; + phandle = <0x95>; + }; + + apb1 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "apb1"; + }; + + apb2 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "apb2"; + linux,phandle = <0x7e>; + phandle = <0x7e>; + }; + + ahb2 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "ahb2"; + }; + + ths { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "ths"; + linux,phandle = <0x84>; + phandle = <0x84>; + }; + + nand { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "nand"; + linux,phandle = <0x80>; + phandle = <0x80>; + }; + + sdmmc0_mod { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "sdmmc0_mod"; + linux,phandle = <0x60>; + phandle = <0x60>; + }; + + sdmmc0_bus { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "sdmmc0_bus"; + linux,phandle = <0x61>; + phandle = <0x61>; + }; + + sdmmc0_rst { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "sdmmc0_rst"; + linux,phandle = <0x62>; + phandle = <0x62>; + }; + + sdmmc1_mod { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "sdmmc1_mod"; + linux,phandle = <0x65>; + phandle = <0x65>; + }; + + sdmmc1_bus { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "sdmmc1_bus"; + linux,phandle = <0x66>; + phandle = <0x66>; + }; + + sdmmc1_rst { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "sdmmc1_rst"; + linux,phandle = <0x67>; + phandle = <0x67>; + }; + + sdmmc2_mod { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "sdmmc2_mod"; + linux,phandle = <0x5b>; + phandle = <0x5b>; + }; + + sdmmc2_bus { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "sdmmc2_bus"; + linux,phandle = <0x5c>; + phandle = <0x5c>; + }; + + sdmmc2_rst { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "sdmmc2_rst"; + linux,phandle = <0x5d>; + phandle = <0x5d>; + }; + + ts { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "ts"; + }; + + ce { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "ce"; + linux,phandle = <0x7a>; + phandle = <0x7a>; + }; + + spi0 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "spi0"; + linux,phandle = <0x52>; + phandle = <0x52>; + }; + + spi1 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "spi1"; + linux,phandle = <0x56>; + phandle = <0x56>; + }; + + i2s0 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "i2s0"; + linux,phandle = <0x42>; + phandle = <0x42>; + }; + + i2s1 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "i2s1"; + linux,phandle = <0x47>; + phandle = <0x47>; + }; + + i2s2 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "i2s2"; + linux,phandle = <0x48>; + phandle = <0x48>; + }; + + spdif { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "spdif"; + linux,phandle = <0x49>; + phandle = <0x49>; + }; + + usbphy0 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "usbphy0"; + linux,phandle = <0x32>; + phandle = <0x32>; + }; + + usbphy1 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "usbphy1"; + linux,phandle = <0x36>; + phandle = <0x36>; + }; + + usbhsic { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "usbhsic"; + linux,phandle = <0x38>; + phandle = <0x38>; + }; + + usbhsic12m { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "usbhsic12m"; + linux,phandle = <0x39>; + phandle = <0x39>; + }; + + usbohci1 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "usbohci1"; + linux,phandle = <0x3b>; + phandle = <0x3b>; + }; + + usbohci0 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "usbohci0"; + linux,phandle = <0x35>; + phandle = <0x35>; + }; + + de { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + assigned-clock-parents = <0x7>; + assigned-clock-rates = <0x11b3dc40>; + clock-output-names = "de"; + linux,phandle = <0x6a>; + phandle = <0x6a>; + }; + + tcon0 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + assigned-clock-parents = <0x8>; + clock-output-names = "tcon0"; + linux,phandle = <0x6b>; + phandle = <0x6b>; + }; + + tcon1 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + assigned-clock-parents = <0x3>; + clock-output-names = "tcon1"; + linux,phandle = <0x6e>; + phandle = <0x6e>; + }; + + deinterlace { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "deinterlace"; + linux,phandle = <0x7c>; + phandle = <0x7c>; + }; + + csi_s { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "csi_s"; + linux,phandle = <0x73>; + phandle = <0x73>; + }; + + csi_m { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "csi_m"; + linux,phandle = <0x74>; + phandle = <0x74>; + }; + + csi_misc { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "csi_misc"; + linux,phandle = <0x75>; + phandle = <0x75>; + }; + + ve { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "ve"; + linux,phandle = <0x17>; + phandle = <0x17>; + }; + + adda { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "adda"; + linux,phandle = <0x41>; + phandle = <0x41>; + }; + + addax4 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "addax4"; + }; + + avs { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "avs"; + }; + + hdmi { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + assigned-clock-parents = <0x3>; + clock-output-names = "hdmi"; + linux,phandle = <0x6f>; + phandle = <0x6f>; + }; + + hdmi_slow { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "hdmi_slow"; + linux,phandle = <0x70>; + phandle = <0x70>; + }; + + mbus { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "mbus"; + }; + + mipidsi { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "mipidsi"; + linux,phandle = <0x6d>; + phandle = <0x6d>; + }; + + gpu { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "gpu"; + linux,phandle = <0x97>; + phandle = <0x97>; + }; + + usbehci_16 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "usbohci_16"; + }; + + usbehci1 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "usbehci1"; + linux,phandle = <0x37>; + phandle = <0x37>; + }; + + usbehci0 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "usbehci0"; + linux,phandle = <0x34>; + phandle = <0x34>; + }; + + usbotg { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "usbotg"; + linux,phandle = <0x33>; + phandle = <0x33>; + }; + + gmac { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "gmac"; + linux,phandle = <0x8f>; + phandle = <0x8f>; + }; + + sdram { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "sdram"; + }; + + dma { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "dma"; + linux,phandle = <0xb>; + phandle = <0xb>; + }; + + hwspinlock_rst { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "hwspinlock_rst"; + linux,phandle = <0xf>; + phandle = <0xf>; + }; + + hwspinlock_bus { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "hwspinlock_bus"; + linux,phandle = <0x10>; + phandle = <0x10>; + }; + + msgbox { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "msgbox"; + linux,phandle = <0xe>; + phandle = <0xe>; + }; + + lvds { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "lvds"; + linux,phandle = <0x6c>; + phandle = <0x6c>; + }; + + uart0 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "uart0"; + linux,phandle = <0x18>; + phandle = <0x18>; + }; + + uart1 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "uart1"; + linux,phandle = <0x1b>; + phandle = <0x1b>; + }; + + uart2 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "uart2"; + linux,phandle = <0x1e>; + phandle = <0x1e>; + }; + + uart3 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "uart3"; + linux,phandle = <0x21>; + phandle = <0x21>; + }; + + uart4 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "uart4"; + linux,phandle = <0x24>; + phandle = <0x24>; + }; + + scr { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "scr"; + linux,phandle = <0x7d>; + phandle = <0x7d>; + }; + + twi0 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "twi0"; + linux,phandle = <0x27>; + phandle = <0x27>; + }; + + twi1 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "twi1"; + linux,phandle = <0x2a>; + phandle = <0x2a>; + }; + + twi2 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "twi2"; + linux,phandle = <0x2d>; + phandle = <0x2d>; + }; + + twi3 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "twi3"; + }; + + pio { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-clock"; + clock-output-names = "pio"; + linux,phandle = <0xa>; + phandle = <0xa>; + }; + + cpurcir { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-cpus-clock"; + clock-output-names = "cpurcir"; + linux,phandle = <0x12>; + phandle = <0x12>; + }; + + cpurpio { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-cpus-clock"; + clock-output-names = "cpurpio"; + linux,phandle = <0x9>; + phandle = <0x9>; + }; + + cpurpll_peri0 { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-cpus-clock"; + clock-output-names = "cpurpll_peri0"; + }; + + cpurcpus { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-cpus-clock"; + clock-output-names = "cpurcpus"; + }; + + cpurahbs { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-cpus-clock"; + clock-output-names = "cpurahbs"; + }; + + cpurapbs { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-cpus-clock"; + clock-output-names = "cpurapbs"; + }; + + losc_out { + #clock-cells = <0x0>; + compatible = "allwinner,sunxi-periph-cpus-clock"; + clock-output-names = "losc_out"; + linux,phandle = <0x98>; + phandle = <0x98>; + }; + }; + + soc@01c00000 { + compatible = "simple-bus"; + #address-cells = <0x2>; + #size-cells = <0x2>; + ranges; + device_type = "soc"; + + pinctrl@01f02c00 { + compatible = "allwinner,sun50i-r-pinctrl"; + reg = <0x0 0x1f02c00 0x0 0x400>; + interrupts = <0x0 0x2d 0x4>; + clocks = <0x9>; + device_type = "r_pio"; + gpio-controller; + interrupt-controller; + #interrupt-cells = <0x2>; + #size-cells = <0x0>; + #gpio-cells = <0x6>; + linux,phandle = <0x79>; + phandle = <0x79>; + + s_cir0@0 { + allwinner,pins = "PL11"; + allwinner,function = "s_cir0"; + allwinner,muxsel = <0x2>; + allwinner,drive = <0x2>; + allwinner,pull = <0x1>; + linux,phandle = <0x11>; + phandle = <0x11>; + }; + + spwm0@0 { + linux,phandle = <0xaf>; + phandle = <0xaf>; + allwinner,pins = "PL10"; + allwinner,function = "spwm0"; + allwinner,pname = "pwm_positive"; + allwinner,muxsel = <0x2>; + allwinner,pull = <0x0>; + allwinner,drive = <0xffffffff>; + allwinner,data = <0xffffffff>; + }; + + spwm0@1 { + linux,phandle = <0xb0>; + phandle = <0xb0>; + allwinner,pins = "PL10"; + allwinner,function = "spwm0"; + allwinner,pname = "pwm_positive"; + allwinner,muxsel = <0x7>; + allwinner,pull = <0x0>; + allwinner,drive = <0xffffffff>; + allwinner,data = <0xffffffff>; + }; + + s_uart0@0 { + linux,phandle = <0xb6>; + phandle = <0xb6>; + allwinner,pins = "PL2", "PL3"; + allwinner,function = "s_uart0"; + allwinner,pname = "s_uart0_tx", "s_uart0_rx"; + allwinner,muxsel = <0x2>; + allwinner,pull = <0xffffffff>; + allwinner,drive = <0xffffffff>; + allwinner,data = <0xffffffff>; + }; + + s_rsb0@0 { + linux,phandle = <0xb7>; + phandle = <0xb7>; + allwinner,pins = "PL0", "PL1"; + allwinner,function = "s_rsb0"; + allwinner,pname = "s_rsb0_sck", "s_rsb0_sda"; + allwinner,muxsel = <0x2>; + allwinner,pull = <0x1>; + allwinner,drive = <0x2>; + allwinner,data = <0xffffffff>; + }; + + s_jtag0@0 { + linux,phandle = <0xb8>; + phandle = <0xb8>; + allwinner,pins = "PL4", "PL5", "PL6", "PL7"; + allwinner,function = "s_jtag0"; + allwinner,pname = "s_jtag0_tms", "s_jtag0_tck", "s_jtag0_tdo", "s_jtag0_tdi"; + allwinner,muxsel = <0x2>; + allwinner,pull = <0x1>; + allwinner,drive = <0x2>; + allwinner,data = <0xffffffff>; + }; + }; + + pinctrl@01c20800 { + compatible = "allwinner,sun50i-pinctrl"; + reg = <0x0 0x1c20800 0x0 0x400>; + interrupts = <0x0 0xb 0x4 0x0 0x11 0x4 0x0 0x15 0x4>; + device_type = "pio"; + clocks = <0xa>; + gpio-controller; + interrupt-controller; + #interrupt-cells = <0x2>; + #size-cells = <0x0>; + #gpio-cells = <0x6>; + linux,phandle = <0x30>; + phandle = <0x30>; + + uart0@1 { + allwinner,pins = "PB8", "PB9"; + allwinner,function = "io_disabled"; + allwinner,muxsel = <0x7>; + allwinner,drive = <0x1>; + allwinner,pull = <0x1>; + linux,phandle = <0x1a>; + phandle = <0x1a>; + }; + + uart1@1 { + allwinner,pins = "PG6", "PG7", "PG8", "PG9"; + allwinner,function = "io_disabled"; + allwinner,muxsel = <0x7>; + allwinner,drive = <0x1>; + allwinner,pull = <0x1>; + linux,phandle = <0x1d>; + phandle = <0x1d>; + }; + + uart2@1 { + allwinner,pins = "PB0", "PB1", "PB2", "PB3"; + allwinner,function = "io_disabled"; + allwinner,muxsel = <0x7>; + allwinner,drive = <0x1>; + allwinner,pull = <0x1>; + linux,phandle = <0x20>; + phandle = <0x20>; + }; + + uart3@1 { + allwinner,pins = "PH4", "PH5", "PH6", "PH7"; + allwinner,function = "io_disabled"; + allwinner,muxsel = <0x7>; + allwinner,drive = <0x1>; + allwinner,pull = <0x1>; + linux,phandle = <0x23>; + phandle = <0x23>; + }; + + uart4@1 { + allwinner,pins = "PD2", "PD3", "PD4", "PD5"; + allwinner,function = "io_disabled"; + allwinner,muxsel = <0x7>; + allwinner,drive = <0x1>; + allwinner,pull = <0x1>; + linux,phandle = <0x26>; + phandle = <0x26>; + }; + + twi0@1 { + allwinner,pins = "PH0", "PH1"; + allwinner,function = "io_disabled"; + allwinner,muxsel = <0x7>; + allwinner,drive = <0x1>; + allwinner,pull = <0x0>; + linux,phandle = <0x29>; + phandle = <0x29>; + }; + + twi1@1 { + allwinner,pins = "PH2", "PH3"; + allwinner,function = "io_disabled"; + allwinner,muxsel = <0x7>; + allwinner,drive = <0x1>; + allwinner,pull = <0x0>; + linux,phandle = <0x2c>; + phandle = <0x2c>; + }; + + twi2@1 { + allwinner,pins = "PE14", "PE15"; + allwinner,function = "io_disabled"; + allwinner,muxsel = <0x7>; + allwinner,drive = <0x1>; + allwinner,pull = <0x0>; + linux,phandle = <0x2f>; + phandle = <0x2f>; + }; + + spi0@2 { + allwinner,pins = "PC3", "PC2", "PC0", "PC1"; + allwinner,function = "io_disabled"; + allwinner,muxsel = <0x7>; + allwinner,drive = <0x1>; + allwinner,pull = <0x0>; + linux,phandle = <0x55>; + phandle = <0x55>; + }; + + spi1@2 { + allwinner,pins = "PD0", "PD1", "PD2", "PD3"; + allwinner,function = "io_disabled"; + allwinner,muxsel = <0x7>; + allwinner,drive = <0x1>; + allwinner,pull = <0x0>; + linux,phandle = <0x59>; + phandle = <0x59>; + }; + + 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 = <0x64>; + phandle = <0x64>; + }; + + 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 = <0x69>; + phandle = <0x69>; + }; + + sdc2@1 { + allwinner,pins = "PC1", "PC5", "PC6", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PC16"; + allwinner,function = "io_disabled"; + allwinner,muxsel = <0x7>; + allwinner,drive = <0x1>; + allwinner,pull = <0x1>; + linux,phandle = <0x5f>; + phandle = <0x5f>; + }; + + daudio0@0 { + allwinner,pins = "PB6", "PB3", "PB4", "PB5", "PB7"; + allwinner,function = "pcm0"; + allwinner,muxsel = <0x3>; + allwinner,drive = <0x1>; + allwinner,pull = <0x0>; + linux,phandle = <0x43>; + phandle = <0x43>; + }; + + daudio0_sleep@0 { + allwinner,pins = "PB6", "PB3", "PB4", "PB5", "PB7"; + allwinner,function = "io_disabled"; + allwinner,muxsel = <0x7>; + allwinner,drive = <0x1>; + allwinner,pull = <0x0>; + linux,phandle = <0x44>; + phandle = <0x44>; + }; + + daudio1@0 { + allwinner,pins = "PG10", "PG11", "PG12", "PG13"; + allwinner,function = "pcm1"; + allwinner,muxsel = <0x3>; + allwinner,drive = <0x1>; + allwinner,pull = <0x0>; + linux,phandle = <0x45>; + phandle = <0x45>; + }; + + daudio1_sleep@0 { + allwinner,pins = "PG10", "PG11", "PG12", "PG13"; + allwinner,function = "io_disabled"; + allwinner,muxsel = <0x7>; + allwinner,drive = <0x1>; + allwinner,pull = <0x0>; + linux,phandle = <0x46>; + phandle = <0x46>; + }; + + aif3@0 { + allwinner,pins = "PG10", "PG11", "PG12", "PG13"; + allwinner,function = "aif3"; + allwinner,muxsel = <0x2>; + allwinner,drive = <0x1>; + allwinner,pull = <0x0>; + linux,phandle = <0x3e>; + phandle = <0x3e>; + }; + + aif2_sleep@0 { + allwinner,pins = "PB6", "PB4", "PB5", "PB7"; + allwinner,function = "io_disabled"; + allwinner,muxsel = <0x7>; + allwinner,drive = <0x1>; + allwinner,pull = <0x0>; + linux,phandle = <0x3f>; + phandle = <0x3f>; + }; + + aif3_sleep@0 { + allwinner,pins = "PG10", "PG11", "PG12", "PG13"; + allwinner,function = "io_disabled"; + allwinner,muxsel = <0x7>; + allwinner,drive = <0x1>; + allwinner,pull = <0x0>; + linux,phandle = <0x40>; + phandle = <0x40>; + }; + + spdif@0 { + allwinner,pins = "PH8"; + allwinner,function = "spdif0"; + allwinner,muxsel = <0x2>; + allwinner,drive = <0x1>; + allwinner,pull = <0x0>; + linux,phandle = <0x4a>; + phandle = <0x4a>; + }; + + spdif_sleep@0 { + allwinner,pins = "PH8"; + allwinner,function = "io_disabled"; + allwinner,muxsel = <0x7>; + allwinner,drive = <0x1>; + allwinner,pull = <0x0>; + linux,phandle = <0x4b>; + phandle = <0x4b>; + }; + + csi0_sleep@0 { + allwinner,pins = "PE0", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13"; + allwinner,pname = "csi0_pck", "csi0_hsync", "csi0_vsync", "csi0_d0", "csi0_d1", "csi0_d2", "csi0_d3", "csi0_d4", "csi0_d5", "csi0_d6", "csi0_d7", "csi0_sck", "csi0_sda"; + allwinner,function = "io_disabled"; + allwinner,muxsel = <0x7>; + allwinner,drive = <0x1>; + allwinner,pull = <0x0>; + allwinner,data = <0x0>; + linux,phandle = <0x77>; + phandle = <0x77>; + }; + + smartcard@0 { + allwinner,pins = "PB1", "PB4", "PB5", "PB6", "PB7"; + allwinner,function = "sim0"; + allwinner,muxsel = <0x5>; + allwinner,drive = <0x1>; + allwinner,pull = <0x1>; + linux,phandle = <0x7f>; + phandle = <0x7f>; + }; + + nand0@2 { + allwinner,pins = "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PC16", "PC17", "PC18"; + allwinner,function = "io_disabled"; + allwinner,muxsel = <0x7>; + allwinner,drive = <0x1>; + allwinner,pull = <0x0>; + linux,phandle = <0x83>; + phandle = <0x83>; + }; + + card0_boot_para@0 { + linux,phandle = <0x99>; + phandle = <0x99>; + 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 = <0x2>; + allwinner,data = <0xffffffff>; + }; + + card2_boot_para@0 { + linux,phandle = <0x9a>; + phandle = <0x9a>; + allwinner,pins = "PC1", "PC5", "PC6", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PC16"; + allwinner,function = "card2_boot_para"; + allwinner,pname = "sdc_ds", "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>; + }; + + twi_para@0 { + linux,phandle = <0x9b>; + phandle = <0x9b>; + allwinner,pins = "PH0", "PH1"; + 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 = <0x9c>; + phandle = <0x9c>; + allwinner,pins = "PB8", "PB9"; + allwinner,function = "uart_para"; + allwinner,pname = "uart_debug_tx", "uart_debug_rx"; + allwinner,muxsel = <0x4>; + allwinner,pull = <0x1>; + allwinner,drive = <0xffffffff>; + allwinner,data = <0xffffffff>; + }; + + jtag_para@0 { + linux,phandle = <0x9d>; + phandle = <0x9d>; + allwinner,pins = "PB0", "PB1", "PB2", "PB3"; + allwinner,function = "jtag_para"; + allwinner,pname = "jtag_ms", "jtag_ck", "jtag_do", "jtag_di"; + allwinner,muxsel = <0x4>; + allwinner,pull = <0xffffffff>; + allwinner,drive = <0xffffffff>; + allwinner,data = <0xffffffff>; + }; + + gmac0@0 { + linux,phandle = <0x9e>; + phandle = <0x9e>; + allwinner,pins = "PD18", "PD17", "PD16", "PD15", "PD20", "PD19", "PD11", "PD10", "PD9", "PD8", "PD13", "PD12", "PD21", "PD22", "PD23"; + allwinner,function = "gmac0"; + allwinner,pname = "gmac_txd0", "gmac_txd1", "gmac_txd2", "gmac_txd3", "gmac_txen", "gmac_gtxclk", "gmac_rxd0", "gmac_rxd1", "gmac_rxd2", "gmac_rxd3", "gmac_rxdv", "gmac_rxclk", "gmac_clkin", "gmac_mdc", "gmac_mdio"; + allwinner,muxsel = <0x4>; + allwinner,pull = <0xffffffff>; + allwinner,drive = <0xffffffff>; + allwinner,data = <0xffffffff>; + }; + + twi0@0 { + linux,phandle = <0x9f>; + phandle = <0x9f>; + allwinner,pins = "PH0", "PH1"; + allwinner,function = "twi0"; + allwinner,pname = "twi0_scl", "twi0_sda"; + allwinner,muxsel = <0x2>; + allwinner,pull = <0xffffffff>; + allwinner,drive = <0xffffffff>; + allwinner,data = <0xffffffff>; + }; + + twi1@0 { + linux,phandle = <0xa0>; + phandle = <0xa0>; + allwinner,pins = "PH2", "PH3"; + allwinner,function = "twi1"; + allwinner,pname = "twi1_scl", "twi1_sda"; + allwinner,muxsel = <0x2>; + allwinner,pull = <0xffffffff>; + allwinner,drive = <0xffffffff>; + allwinner,data = <0xffffffff>; + }; + + twi2@0 { + linux,phandle = <0xa1>; + phandle = <0xa1>; + allwinner,pins = "PE14", "PE15"; + allwinner,function = "twi2"; + allwinner,pname = "twi2_scl", "twi2_sda"; + allwinner,muxsel = <0x3>; + allwinner,pull = <0xffffffff>; + allwinner,drive = <0xffffffff>; + allwinner,data = <0xffffffff>; + }; + + uart0@0 { + linux,phandle = <0xa2>; + phandle = <0xa2>; + allwinner,pins = "PB8", "PB9"; + allwinner,function = "uart0"; + allwinner,pname = "uart0_tx", "uart0_rx"; + allwinner,muxsel = <0x4>; + allwinner,pull = <0x1>; + allwinner,drive = <0xffffffff>; + allwinner,data = <0xffffffff>; + }; + + uart1@0 { + linux,phandle = <0xa3>; + phandle = <0xa3>; + allwinner,pins = "PG6", "PG7", "PG8", "PG9"; + allwinner,function = "uart1"; + allwinner,pname = "uart1_tx", "uart1_rx", "uart1_rts", "uart1_cts"; + allwinner,muxsel = <0x2>; + allwinner,pull = <0x1>; + allwinner,drive = <0xffffffff>; + allwinner,data = <0xffffffff>; + }; + + uart2@0 { + linux,phandle = <0xa4>; + phandle = <0xa4>; + allwinner,pins = "PB0", "PB1", "PB2", "PB3"; + allwinner,function = "uart2"; + allwinner,pname = "uart2_tx", "uart2_rx", "uart2_rts", "uart2_cts"; + allwinner,muxsel = <0x2>; + allwinner,pull = <0x1>; + allwinner,drive = <0xffffffff>; + allwinner,data = <0xffffffff>; + }; + + uart3@0 { + linux,phandle = <0xa5>; + phandle = <0xa5>; + allwinner,pins = "PD0", "PD1"; + allwinner,function = "uart3"; + allwinner,pname = "uart3_tx", "uart3_rx"; + allwinner,muxsel = <0x3>; + allwinner,pull = <0x1>; + allwinner,drive = <0xffffffff>; + allwinner,data = <0xffffffff>; + }; + + uart4@0 { + linux,phandle = <0xa6>; + phandle = <0xa6>; + allwinner,pins = "PD2", "PD3", "PD4", "PD5"; + allwinner,function = "uart4"; + allwinner,pname = "uart4_tx", "uart4_rx", "uart4_rts", "uart4_cts"; + allwinner,muxsel = <0x3>; + allwinner,pull = <0x1>; + allwinner,drive = <0xffffffff>; + allwinner,data = <0xffffffff>; + }; + + spi0@0 { + linux,phandle = <0xa7>; + phandle = <0xa7>; + allwinner,pins = "PC3"; + allwinner,function = "spi0"; + allwinner,pname = "spi0_cs0"; + allwinner,muxsel = <0x4>; + allwinner,pull = <0x1>; + allwinner,drive = <0xffffffff>; + allwinner,data = <0xffffffff>; + }; + + spi0@1 { + linux,phandle = <0xa8>; + phandle = <0xa8>; + allwinner,pins = "PC2", "PC0", "PC1"; + allwinner,function = "spi0"; + allwinner,pname = "spi0_sclk", "spi0_mosi", "spi0_miso"; + allwinner,muxsel = <0x4>; + allwinner,pull = <0xffffffff>; + allwinner,drive = <0xffffffff>; + allwinner,data = <0xffffffff>; + }; + + spi1@0 { + linux,phandle = <0xa9>; + phandle = <0xa9>; + allwinner,pins = "PD0"; + allwinner,function = "spi1"; + allwinner,pname = "spi1_cs0"; + allwinner,muxsel = <0x4>; + allwinner,pull = <0x1>; + allwinner,drive = <0xffffffff>; + allwinner,data = <0xffffffff>; + }; + + spi1@1 { + linux,phandle = <0xaa>; + phandle = <0xaa>; + allwinner,pins = "PD1", "PD2", "PD3"; + allwinner,function = "spi1"; + allwinner,pname = "spi1_sclk", "spi1_mosi", "spi1_miso"; + allwinner,muxsel = <0x4>; + allwinner,pull = <0xffffffff>; + allwinner,drive = <0xffffffff>; + allwinner,data = <0xffffffff>; + }; + + nand0@0 { + linux,phandle = <0xab>; + phandle = <0xab>; + allwinner,pins = "PC0", "PC1", "PC2", "PC5", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PC16"; + 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 = <0xac>; + phandle = <0xac>; + allwinner,pins = "PC3", "PC4", "PC6", "PC7", "PC17", "PC18"; + allwinner,function = "nand0"; + allwinner,pname = "nand0_ce1", "nand0_ce0", "nand0_rb0", "nand0_rb1", "nand0_ce2", "nand0_ce3"; + allwinner,muxsel = <0x2>; + allwinner,pull = <0x1>; + allwinner,drive = <0x1>; + allwinner,data = <0xffffffff>; + }; + + pwm0@0 { + linux,phandle = <0xad>; + phandle = <0xad>; + allwinner,pins = "PD22"; + allwinner,function = "pwm0"; + allwinner,pname = "pwm_positive"; + allwinner,muxsel = <0x2>; + allwinner,pull = <0x0>; + allwinner,drive = <0xffffffff>; + allwinner,data = <0xffffffff>; + }; + + pwm0@1 { + linux,phandle = <0xae>; + phandle = <0xae>; + allwinner,pins = "PD22"; + allwinner,function = "pwm0"; + allwinner,pname = "pwm_positive"; + allwinner,muxsel = <0x7>; + allwinner,pull = <0x0>; + allwinner,drive = <0xffffffff>; + allwinner,data = <0xffffffff>; + }; + + csi0@0 { + linux,phandle = <0xb1>; + phandle = <0xb1>; + allwinner,pins = "PE0", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13"; + allwinner,function = "csi0"; + allwinner,pname = "csi0_pck", "csi0_hsync", "csi0_vsync", "csi0_d0", "csi0_d1", "csi0_d2", "csi0_d3", "csi0_d4", "csi0_d5", "csi0_d6", "csi0_d7", "csi0_sck", "csi0_sda"; + allwinner,muxsel = <0x2>; + allwinner,pull = <0xffffffff>; + allwinner,drive = <0xffffffff>; + allwinner,data = <0xffffffff>; + }; + + sdc0@0 { + linux,phandle = <0xb2>; + phandle = <0xb2>; + allwinner,pins = "PF0", "PF1", "PF2", "PF3", "PF4", "PF5"; + allwinner,function = "sdc0"; + allwinner,pname = "sdc0_d1", "sdc0_d0", "sdc0_clk", "sdc0_cmd", "sdc0_d3", "sdc0_d2"; + allwinner,muxsel = <0x2>; + allwinner,pull = <0x1>; + allwinner,drive = <0x2>; + allwinner,data = <0xffffffff>; + }; + + sdc1@0 { + linux,phandle = <0xb3>; + phandle = <0xb3>; + allwinner,pins = "PG0", "PG1", "PG2", "PG3", "PG4", "PG5"; + allwinner,function = "sdc1"; + allwinner,pname = "sdc1_clk", "sdc1_cmd", "sdc1_d0", "sdc1_d1", "sdc1_d2", "sdc1_d3"; + allwinner,muxsel = <0x2>; + allwinner,pull = <0x1>; + allwinner,drive = <0x3>; + allwinner,data = <0xffffffff>; + }; + + sdc2@0 { + linux,phandle = <0xb4>; + phandle = <0xb4>; + allwinner,pins = "PC1", "PC5", "PC6", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PC16"; + allwinner,function = "sdc2"; + allwinner,pname = "sdc2_ds", "sdc2_clk", "sdc2_cmd", "sdc2_d0", "sdc2_d1", "sdc2_d2", "sdc2_d3", "sdc2_d4", "sdc2_d5", "sdc2_d6", "sdc2_d7", "sdc2_emmc_rst"; + allwinner,muxsel = <0x3>; + allwinner,pull = <0x1>; + allwinner,drive = <0x3>; + allwinner,data = <0xffffffff>; + }; + + codec@0 { + linux,phandle = <0xb5>; + phandle = <0xb5>; + allwinner,pins = "PH7"; + allwinner,function = "codec"; + allwinner,pname = "gpio-spk"; + allwinner,muxsel = <0x2>; + allwinner,pull = <0x1>; + allwinner,drive = <0xffffffff>; + allwinner,data = <0xffffffff>; + }; + + Vdevice@0 { + linux,phandle = <0xb9>; + phandle = <0xb9>; + allwinner,pins = "PB1", "PB2"; + allwinner,function = "Vdevice"; + allwinner,pname = "Vdevice_0", "Vdevice_1"; + allwinner,muxsel = <0x4>; + allwinner,pull = <0x1>; + allwinner,drive = <0x2>; + allwinner,data = <0xffffffff>; + }; + + w1_pin@0 { + linux,phandle = <0xba>; + phandle = <0xba>; + allwinner,pins = "PC8"; + allwinner,function = "gpio_in"; + allwinner,pname = "w1"; + allwinner,muxsel = <0x0>; + allwinner,pull = <0x1>; + allwinner,drive = <0x0>; + allwinner,data = <0xffffffff>; + }; + }; + + pinctrl@0 { + compatible = "allwinner,axp-pinctrl"; + gpio-controller; + #size-cells = <0x0>; + #gpio-cells = <0x6>; + device_type = "axp_pio"; + linux,phandle = <0x31>; + phandle = <0x31>; + }; + + dma-controller@01c02000 { + compatible = "allwinner,sun50i-dma"; + reg = <0x0 0x1c02000 0x0 0x1000>; + interrupts = <0x0 0x32 0x4>; + clocks = <0xb>; + #dma-cells = <0x1>; + }; + + mbus-controller@01c62000 { + compatible = "allwinner,sun50i-mbus"; + reg = <0x0 0x1c62000 0x0 0x110>; + #mbus-cells = <0x1>; + }; + + arisc { + compatible = "allwinner,sunxi-arisc"; + #address-cells = <0x2>; + #size-cells = <0x2>; + clocks = <0xc 0xd 0x6 0x4>; + clock-names = "losc", "iosc", "hosc", "pll_periph0"; + powchk_used = <0x0>; + power_reg = <0x2309621>; + system_power = <0x32>; + }; + + arisc_space { + compatible = "allwinner,arisc_space"; + space1 = <0x40000 0x0 0x14000>; + space2 = <0x40100000 0x18000 0x4000>; + space3 = <0x40104000 0x0 0x1000>; + space4 = <0x40105000 0x0 0x1000>; + }; + + standby_space { + compatible = "allwinner,standby_space"; + space1 = <0x41020000 0x0 0x800>; + }; + + msgbox@1c17000 { + compatible = "allwinner,msgbox"; + clocks = <0xe>; + clock-names = "clk_msgbox"; + reg = <0x0 0x1c17000 0x0 0x1000>; + interrupts = <0x0 0x31 0x1>; + status = "okay"; + }; + + hwspinlock@1c18000 { + compatible = "allwinner,sunxi-hwspinlock"; + clocks = <0xf 0x10>; + clock-names = "clk_hwspinlock_rst", "clk_hwspinlock_bus"; + reg = <0x0 0x1c18000 0x0 0x1000>; + status = "okay"; + num-locks = <0x8>; + }; + + s_cir@1f02000 { + compatible = "allwinner,s_cir"; + reg = <0x0 0x1f02000 0x0 0x400>; + interrupts = <0x0 0x25 0x4>; + pinctrl-names = "default"; + pinctrl-0 = <0x11>; + clocks = <0x6 0x12>; + supply = "vcc-pl"; + ir_power_key_code = <0x4d>; + ir_addr_code = <0x4040>; + status = "okay"; + device_type = "s_cir0"; + }; + + s_uart@1f02800 { + compatible = "allwinner,s_uart"; + reg = <0x0 0x1f02800 0x0 0x400>; + interrupts = <0x0 0x26 0x4>; + pinctrl-names = "default"; + status = "okay"; + device_type = "s_uart0"; + pinctrl-0 = <0xb6>; + }; + + s_rsb@1f03400 { + compatible = "allwinner,s_rsb"; + reg = <0x0 0x1f03400 0x0 0x400>; + interrupts = <0x0 0x27 0x4>; + pinctrl-names = "default"; + status = "okay"; + device_type = "s_rsb0"; + pinctrl-0 = <0xb7>; + }; + + s_jtag0 { + compatible = "allwinner,s_jtag"; + pinctrl-names = "default"; + status = "disabled"; + device_type = "s_jtag0"; + pinctrl-0 = <0xb8>; + }; + + timer@1c20c00 { + compatible = "allwinner,sunxi-timer"; + device_type = "timer"; + reg = <0x0 0x1c20c00 0x0 0x90>; + interrupts = <0x0 0x12 0x1>; + clock-frequency = <0x16e3600>; + timer-prescale = <0x10>; + }; + + rtc@01f00000 { + compatible = "allwinner,sun50i-rtc"; + device_type = "rtc"; + reg = <0x0 0x1f00000 0x0 0x218>; + interrupts = <0x0 0x28 0x4>; + gpr_offset = <0x100>; + gpr_len = <0x4>; + }; + + ve@01c0e000 { + compatible = "allwinner,sunxi-cedar-ve"; + reg = <0x0 0x1c0e000 0x0 0x1000 0x0 0x1c00000 0x0 0x10 0x0 0x1c20000 0x0 0x800>; + interrupts = <0x0 0x3a 0x4>; + clocks = <0x16 0x17>; + }; + + uart@01c28000 { + compatible = "allwinner,sun50i-uart"; + device_type = "uart0"; + reg = <0x0 0x1c28000 0x0 0x400>; + interrupts = <0x0 0x0 0x4>; + clocks = <0x18>; + pinctrl-names = "default", "sleep"; + pinctrl-1 = <0x1a>; + uart0_port = <0x0>; + uart0_type = <0x2>; + status = "okay"; + pinctrl-0 = <0xa2>; + }; + + uart@01c28400 { + compatible = "allwinner,sun50i-uart"; + device_type = "uart1"; + reg = <0x0 0x1c28400 0x0 0x400>; + interrupts = <0x0 0x1 0x4>; + clocks = <0x1b>; + pinctrl-names = "default", "sleep"; + pinctrl-1 = <0x1d>; + uart1_port = <0x1>; + uart1_type = <0x4>; + status = "okay"; + pinctrl-0 = <0xa3>; + }; + + uart@01c28800 { + compatible = "allwinner,sun50i-uart"; + device_type = "uart2"; + reg = <0x0 0x1c28800 0x0 0x400>; + interrupts = <0x0 0x2 0x4>; + clocks = <0x1e>; + pinctrl-names = "default", "sleep"; + pinctrl-1 = <0x20>; + uart2_port = <0x2>; + uart2_type = <0x4>; + status = "okay"; + pinctrl-0 = <0xa4>; + }; + + uart@01c28c00 { + compatible = "allwinner,sun50i-uart"; + device_type = "uart3"; + reg = <0x0 0x1c28c00 0x0 0x400>; + interrupts = <0x0 0x3 0x4>; + clocks = <0x21>; + pinctrl-names = "default", "sleep"; + pinctrl-1 = <0x23>; + uart3_port = <0x3>; + uart3_type = <0x4>; + status = "okay"; + pinctrl-0 = <0xa5>; + }; + + uart@01c29000 { + compatible = "allwinner,sun50i-uart"; + device_type = "uart4"; + reg = <0x0 0x1c29000 0x0 0x400>; + interrupts = <0x0 0x4 0x4>; + clocks = <0x24>; + pinctrl-names = "default", "sleep"; + pinctrl-1 = <0x26>; + uart4_port = <0x4>; + uart4_type = <0x4>; + status = "okay"; + pinctrl-0 = <0xa6>; + }; + + twi@0x01c2ac00 { + #address-cells = <0x1>; + #size-cells = <0x0>; + compatible = "allwinner,sun50i-twi"; + device_type = "twi0"; + reg = <0x0 0x1c2ac00 0x0 0x400>; + interrupts = <0x0 0x6 0x4>; + clocks = <0x27>; + clock-frequency = <0x61a80>; + pinctrl-names = "default", "sleep"; + pinctrl-1 = <0x29>; + status = "okay"; + pinctrl-0 = <0x9f>; + }; + + twi@0x01c2b000 { + #address-cells = <0x1>; + #size-cells = <0x0>; + compatible = "allwinner,sun50i-twi"; + device_type = "twi1"; + reg = <0x0 0x1c2b000 0x0 0x400>; + interrupts = <0x0 0x7 0x4>; + clocks = <0x2a>; + clock-frequency = <0x30d40>; + pinctrl-names = "default", "sleep"; + pinctrl-1 = <0x2c>; + status = "okay"; + pinctrl-0 = <0xa0>; + }; + + twi@0x01c2b400 { + #address-cells = <0x1>; + #size-cells = <0x0>; + compatible = "allwinner,sun50i-twi"; + device_type = "twi2"; + reg = <0x0 0x1c2b400 0x0 0x400>; + interrupts = <0x0 0x8 0x4>; + clocks = <0x2d>; + clock-frequency = <0x30d40>; + pinctrl-names = "default", "sleep"; + pinctrl-1 = <0x2f>; + status = "disabled"; + pinctrl-0 = <0xa1>; + }; + + usbc0@0 { + device_type = "usbc0"; + compatible = "allwinner,sunxi-otg-manager"; + usb_port_type = <0x1>; + usb_detect_type = <0x0>; + usb_host_init_state = <0x1>; + usb_regulator_io = "nocare"; + usb_wakeup_suspend = <0x1>; + usb_luns = <0x3>; + usb_serial_unique = <0x1>; + usb_serial_number = "20080411"; + rndis_wceis = <0x1>; + status = "okay"; + usb_id_gpio; + usb_det_vbus_gpio; + usb_drv_vbus_gpio; + }; + + udc-controller@0x01c19000 { + compatible = "allwinner,sunxi-udc"; + reg = <0x0 0x1c19000 0x0 0x1000 0x0 0x1c00000 0x0 0x100>; + interrupts = <0x0 0x47 0x4>; + clocks = <0x32 0x33>; + status = "okay"; + }; + + ehci0-controller@0x01c1a000 { + compatible = "allwinner,sunxi-ehci0"; + reg = <0x0 0x1c1a000 0x0 0xfff 0x0 0x1c00000 0x0 0x100 0x0 0x1c19000 0x0 0x1000>; + interrupts = <0x0 0x48 0x4>; + clocks = <0x32 0x34>; + hci_ctrl_no = <0x0>; + status = "okay"; + }; + + ohci0-controller@0x01c1a400 { + compatible = "allwinner,sunxi-ohci0"; + reg = <0x0 0x1c1a000 0x0 0xfff 0x0 0x1c00000 0x0 0x100 0x0 0x1c19000 0x0 0x1000>; + interrupts = <0x0 0x49 0x4>; + clocks = <0x32 0x35>; + hci_ctrl_no = <0x0>; + status = "okay"; + }; + + usbc1@0 { + device_type = "usbc1"; + usb_host_init_state = <0x1>; + usb_regulator_io = "nocare"; + usb_wakeup_suspend = <0x1>; + usb_hsic_used = <0x0>; + usb_hsic_regulator_io = "vcc-hsic-12"; + usb_hsic_ctrl = <0x0>; + usb_hsic_usb3503_flag = <0x0>; + status = "okay"; + usb_port_type = <0x1>; + usb_detect_type = <0x0>; + usb_drv_vbus_gpio; + usb_hsic_rdy_gpio; + usb_hsic_hub_connect_gpio; + usb_hsic_int_n_gpio; + usb_hsic_reset_n_gpio; + }; + + ehci1-controller@0x01c1b000 { + compatible = "allwinner,sunxi-ehci1"; + reg = <0x0 0x1c1b000 0x0 0xfff 0x0 0x1c00000 0x0 0x100 0x0 0x1c19000 0x0 0x1000>; + interrupts = <0x0 0x4a 0x4>; + clocks = <0x36 0x37 0x38 0x39 0x3a>; + hci_ctrl_no = <0x1>; + status = "okay"; + }; + + ohci1-controller@0x01c1b400 { + compatible = "allwinner,sunxi-ohci1"; + reg = <0x0 0x1c1b000 0x0 0xfff 0x0 0x1c00000 0x0 0x100 0x0 0x1c19000 0x0 0x1000>; + interrupts = <0x0 0x4b 0x4>; + clocks = <0x36 0x3b>; + hci_ctrl_no = <0x1>; + status = "okay"; + }; + + codec@0x01c22c00 { + compatible = "allwinner,sunxi-internal-codec"; + reg = <0x0 0x1c22c00 0x0 0x478 0x0 0x1f015c0 0x0 0x0>; + clocks = <0x3c>; + pinctrl-names = "aif2-default", "aif3-default", "aif2-sleep", "aif3-sleep"; + pinctrl-1 = <0x3e>; + pinctrl-2 = <0x3f>; + pinctrl-3 = <0x40>; + gpio-spk = <0x30 0x7 0x7 0x1 0x1 0x1 0x1>; + headphonevol = <0x3b>; + spkervol = <0x1a>; + earpiecevol = <0x1e>; + maingain = <0x4>; + headsetmicgain = <0x4>; + adcagc_cfg = <0x0>; + adcdrc_cfg = <0x0>; + adchpf_cfg = <0x0>; + dacdrc_cfg = <0x0>; + dachpf_cfg = <0x0>; + aif1_lrlk_div = <0x40>; + aif2_lrlk_div = <0x40>; + aif2config = <0x0>; + aif3config = <0x0>; + pa_sleep_time = <0x15e>; + dac_digital_vol = <0xa0a0>; + status = "okay"; + linux,phandle = <0x4d>; + phandle = <0x4d>; + device_type = "codec"; + pinctrl-0 = <0xb5>; + }; + + i2s0-controller@0x01c22c00 { + compatible = "allwinner,sunxi-internal-i2s"; + reg = <0x0 0x1c22c00 0x0 0x478>; + clocks = <0x2 0x41>; + status = "okay"; + linux,phandle = <0x4c>; + phandle = <0x4c>; + device_type = "i2s"; + }; + + daudio@0x01c22000 { + compatible = "allwinner,sunxi-daudio"; + reg = <0x0 0x1c22000 0x0 0x58>; + clocks = <0x2 0x42>; + pinctrl-names = "default", "sleep"; + pinctrl-0 = <0x43>; + pinctrl-1 = <0x44>; + pcm_lrck_period = <0x20>; + pcm_lrckr_period = <0x1>; + slot_width_select = <0x20>; + pcm_lsb_first = <0x0>; + tx_data_mode = <0x0>; + rx_data_mode = <0x0>; + daudio_master = <0x4>; + audio_format = <0x1>; + signal_inversion = <0x1>; + frametype = <0x0>; + tdm_config = <0x1>; + tdm_num = <0x0>; + status = "disabled"; + linux,phandle = <0x4e>; + phandle = <0x4e>; + device_type = "daudio0"; + }; + + daudio@0x01c22400 { + compatible = "allwinner,sunxi-daudio"; + reg = <0x0 0x1c22400 0x0 0x58>; + pinctrl-names = "default", "sleep"; + pinctrl-0 = <0x45>; + pinctrl-1 = <0x46>; + clocks = <0x2 0x47>; + pcm_lrck_period = <0x20>; + pcm_lrckr_period = <0x1>; + slot_width_select = <0x20>; + pcm_lsb_first = <0x0>; + tx_data_mode = <0x0>; + rx_data_mode = <0x0>; + daudio_master = <0x4>; + audio_format = <0x1>; + signal_inversion = <0x1>; + frametype = <0x0>; + tdm_config = <0x1>; + tdm_num = <0x1>; + status = "disabled"; + linux,phandle = <0x4f>; + phandle = <0x4f>; + device_type = "daudio1"; + }; + + daudio@0x01c22800 { + compatible = "allwinner,sunxi-tdmhdmi"; + reg = <0x0 0x1c22800 0x0 0x58>; + clocks = <0x2 0x48>; + status = "okay"; + linux,phandle = <0x50>; + phandle = <0x50>; + device_type = "daudio2"; + }; + + spdif-controller@0x01c21000 { + compatible = "allwinner,sunxi-spdif"; + reg = <0x0 0x1c21000 0x0 0x38>; + clocks = <0x2 0x49>; + pinctrl-names = "default", "sleep"; + pinctrl-0 = <0x4a>; + pinctrl-1 = <0x4b>; + status = "disabled"; + linux,phandle = <0x51>; + phandle = <0x51>; + device_type = "spdif"; + }; + + sound@0 { + compatible = "allwinner,sunxi-codec-machine"; + interrupts = <0x0 0x1c 0x4>; + sunxi,i2s-controller = <0x4c>; + sunxi,audio-codec = <0x4d>; + aif2fmt = <0x3>; + aif3fmt = <0x3>; + aif2master = <0x1>; + hp_detect_case = <0x1>; + status = "okay"; + device_type = "sndcodec"; + }; + + sound@1 { + compatible = "allwinner,sunxi-daudio0-machine"; + sunxi,daudio0-controller = <0x4e>; + status = "disabled"; + device_type = "snddaudio0"; + }; + + sound@2 { + compatible = "allwinner,sunxi-daudio1-machine"; + sunxi,daudio1-controller = <0x4f>; + status = "disabled"; + device_type = "snddaudio1"; + }; + + sound@3 { + compatible = "allwinner,sunxi-hdmi-machine"; + sunxi,hdmi-controller = <0x50>; + status = "okay"; + device_type = "sndhdmi"; + }; + + sound@4 { + compatible = "allwinner,sunxi-spdif-machine"; + sunxi,spdif-controller = <0x51>; + status = "disabled"; + device_type = "sndspdif"; + }; + + spi@01c68000 { + #address-cells = <0x1>; + #size-cells = <0x0>; + compatible = "allwinner,sun50i-spi"; + device_type = "spi0"; + reg = <0x0 0x1c68000 0x0 0x1000>; + interrupts = <0x0 0x41 0x4>; + clocks = <0x4 0x52>; + clock-frequency = <0x5f5e100>; + pinctrl-names = "default", "sleep"; + pinctrl-1 = <0x55>; + spi0_cs_number = <0x1>; + spi0_cs_bitmap = <0x1>; + status = "disabled"; + pinctrl-0 = <0xa7 0xa8>; + + spidev@0 { + compatible = "spidev"; + reg = <0x0>; + spi-max-frequency = <0x2faf080>; + }; + }; + + spi@01c69000 { + #address-cells = <0x1>; + #size-cells = <0x0>; + compatible = "allwinner,sun50i-spi"; + device_type = "spi1"; + reg = <0x0 0x1c69000 0x0 0x1000>; + interrupts = <0x0 0x42 0x4>; + clocks = <0x4 0x56>; + clock-frequency = <0x5f5e100>; + pinctrl-names = "default", "sleep"; + pinctrl-1 = <0x59>; + spi1_cs_number = <0x1>; + spi1_cs_bitmap = <0x1>; + status = "disabled"; + pinctrl-0 = <0xa9 0xaa>; + }; + + sdmmc@01C11000 { + compatible = "allwinner,sun50i-sdmmc2"; + device_type = "sdc2"; + reg = <0x0 0x1c11000 0x0 0x1000>; + interrupts = <0x0 0x3e 0x104>; + clocks = <0x6 0x5a 0x5b 0x5c 0x5d>; + clock-names = "osc24m", "pll_periph", "mmc", "ahb", "rst"; + pinctrl-names = "default", "sleep"; + pinctrl-1 = <0x5f>; + bus-width = <0x8>; + max-frequency = <0x5f5e100>; + 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 = <0x405>; + sdc_tm4_sm4_freq0 = <0x50000>; + sdc_tm4_sm4_freq1 = <0x408>; + status = "disabled"; + non-removable; + pinctrl-0 = <0xb4>; + cd-gpios; + sunxi-power-save-mode; + sunxi-dis-signal-vol-sw; + mmc-ddr-1_8v; + mmc-hs200-1_8v; + mmc-hs400-1_8v; + vmmc = "vcc-emmc"; + vqmmc = "vcc-lpddr"; + vdmmc = "none"; + }; + + sdmmc@01c0f000 { + compatible = "allwinner,sun50i-sdmmc0"; + device_type = "sdc0"; + reg = <0x0 0x1c0f000 0x0 0x1000>; + interrupts = <0x0 0x3c 0x104>; + clocks = <0x6 0x5a 0x60 0x61 0x62>; + clock-names = "osc24m", "pll_periph", "mmc", "ahb", "rst"; + pinctrl-names = "default", "sleep"; + pinctrl-1 = <0x64>; + max-frequency = <0x2faf080>; + bus-width = <0x4>; + broken-cd; + status = "okay"; + pinctrl-0 = <0xb2>; + cd-gpios = <0x30 0x5 0x6 0x0 0x1 0x2 0xffffffff>; + sunxi-power-save-mode; + vmmc = "none"; + vqmmc = "none"; + vdmmc = "vcc-sdc"; + }; + + sdmmc@1C10000 { + compatible = "allwinner,sun50i-sdmmc1"; + device_type = "sdc1"; + reg = <0x0 0x1c10000 0x0 0x1000>; + interrupts = <0x0 0x3d 0x104>; + clocks = <0x6 0x5a 0x65 0x66 0x67>; + clock-names = "osc24m", "pll_periph", "mmc", "ahb", "rst"; + pinctrl-names = "default", "sleep"; + pinctrl-1 = <0x69>; + max-frequency = <0x8f0d180>; + bus-width = <0x4>; + 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"; + pinctrl-0 = <0xb3>; + sd-uhs-sdr50; + sd-uhs-ddr50; + sd-uhs-sdr104; + cap-sdio-irq; + keep-power-in-suspend; + ignore-pm-notify; + }; + + disp@01000000 { + compatible = "allwinner,sun50i-disp"; + reg = <0x0 0x1000000 0x0 0x300000 0x0 0x1c0c000 0x0 0x17fc 0x0 0x1ca0000 0x0 0x10fc>; + interrupts = <0x0 0x56 0x104 0x0 0x57 0x104 0x0 0x59 0x104>; + clocks = <0x6a 0x6b 0x6c 0x6d 0x6e>; + status = "okay"; + device_type = "disp"; + disp_init_enable = <0x1>; + disp_mode = <0x0>; + screen0_output_type = <0x3>; + screen0_output_mode = <0xa>; + screen1_output_type = <0x3>; + screen1_output_mode = <0xa>; + fb0_format = <0x0>; + fb0_width = <0x0>; + fb0_height = <0x0>; + fb1_format = <0x0>; + fb1_width = <0x0>; + fb1_height = <0x0>; + }; + + lcd0@01c0c000 { + compatible = "allwinner,sunxi-lcd0"; + pinctrl-names = "active", "sleep"; + status = "okay"; + device_type = "lcd0"; + lcd_used = <0x0>; + lcd_driver_name = "mb709_mipi"; + lcd_backlight = <0x32>; + lcd_if = <0x4>; + lcd_x = <0x400>; + lcd_y = <0x258>; + lcd_width = <0x0>; + lcd_height = <0x0>; + lcd_dclk_freq = <0x37>; + lcd_pwm_used = <0x1>; + lcd_pwm_ch = <0x10>; + lcd_pwm_freq = <0xc350>; + lcd_pwm_pol = <0x1>; + lcd_pwm_max_limit = <0xfa>; + lcd_hbp = <0x78>; + lcd_ht = <0x604>; + lcd_hspw = <0x14>; + lcd_vbp = <0x17>; + lcd_vt = <0x27b>; + lcd_vspw = <0x2>; + lcd_dsi_if = <0x2>; + lcd_dsi_lane = <0x4>; + lcd_dsi_format = <0x0>; + lcd_dsi_eotp = <0x0>; + lcd_dsi_vc = <0x0>; + lcd_dsi_te = <0x0>; + lcd_frm = <0x0>; + lcd_gamma_en = <0x0>; + lcd_bright_curve_en = <0x0>; + lcd_cmap_en = <0x0>; + lcd_bl_en = <0x30 0x7 0xa 0x1 0x0 0xffffffff 0x1>; + lcd_bl_en_power = "none"; + lcd_power = "vcc-mipi"; + lcd_fix_power = "vcc-dsi-33"; + lcd_gpio_0 = <0x30 0x3 0x18 0x1 0x0 0xffffffff 0x1>; + }; + + hdmi@01ee0000 { + compatible = "allwinner,sunxi-hdmi"; + reg = <0x0 0x1ee0000 0x0 0x20000>; + clocks = <0x6f 0x70>; + device_type = "hdmi"; + status = "okay"; + hdmi_power = "vcc-hdmi-33"; + hdmi_hdcp_enable = <0x0>; + hdmi_cts_compatibility = <0x0>; + }; + + tr@01000000 { + compatible = "allwinner,sun50i-tr"; + reg = <0x0 0x1000000 0x0 0x200bc>; + interrupts = <0x0 0x60 0x104>; + clocks = <0x6a>; + status = "okay"; + }; + + pwm@01c21400 { + compatible = "allwinner,sunxi-pwm"; + reg = <0x0 0x1c21400 0x0 0x3c>; + pwm-number = <0x1>; + pwm-base = <0x0>; + pwms = <0x71>; + }; + + pwm0@01c21400 { + compatible = "allwinner,sunxi-pwm0"; + pinctrl-names = "active", "sleep"; + reg_base = <0x1c21400>; + reg_busy_offset = <0x0>; + reg_busy_shift = <0x1c>; + reg_enable_offset = <0x0>; + reg_enable_shift = <0x4>; + reg_clk_gating_offset = <0x0>; + reg_clk_gating_shift = <0x6>; + reg_bypass_offset = <0x0>; + reg_bypass_shift = <0x9>; + reg_pulse_start_offset = <0x0>; + reg_pulse_start_shift = <0x8>; + reg_mode_offset = <0x0>; + reg_mode_shift = <0x7>; + reg_polarity_offset = <0x0>; + reg_polarity_shift = <0x5>; + reg_period_offset = <0x4>; + reg_period_shift = <0x10>; + reg_period_width = <0x10>; + reg_active_offset = <0x4>; + reg_active_shift = <0x0>; + reg_active_width = <0x10>; + reg_prescal_offset = <0x0>; + reg_prescal_shift = <0x0>; + reg_prescal_width = <0x4>; + linux,phandle = <0x71>; + phandle = <0x71>; + device_type = "pwm0"; + pwm_used = <0x0>; + pinctrl-0 = <0xad>; + pinctrl-1 = <0xae>; + }; + + s_pwm@1f03800 { + compatible = "allwinner,sunxi-s_pwm"; + reg = <0x0 0x1f03800 0x0 0x3c>; + pwm-number = <0x1>; + pwm-base = <0x10>; + pwms = <0x72>; + }; + + spwm0@0x01f03800 { + compatible = "allwinner,sunxi-pwm16"; + pinctrl-names = "active", "sleep"; + reg_base = <0x1f03800>; + reg_busy_offset = <0x0>; + reg_busy_shift = <0x1c>; + reg_enable_offset = <0x0>; + reg_enable_shift = <0x4>; + reg_clk_gating_offset = <0x0>; + reg_clk_gating_shift = <0x6>; + reg_bypass_offset = <0x0>; + reg_bypass_shift = <0x9>; + reg_pulse_start_offset = <0x0>; + reg_pulse_start_shift = <0x8>; + reg_mode_offset = <0x0>; + reg_mode_shift = <0x7>; + reg_polarity_offset = <0x0>; + reg_polarity_shift = <0x5>; + reg_period_offset = <0x4>; + reg_period_shift = <0x10>; + reg_period_width = <0x10>; + reg_active_offset = <0x4>; + reg_active_shift = <0x0>; + reg_active_width = <0x10>; + reg_prescal_offset = <0x0>; + reg_prescal_shift = <0x0>; + reg_prescal_width = <0x4>; + linux,phandle = <0x72>; + phandle = <0x72>; + device_type = "spwm0"; + s_pwm_used = <0x1>; + pinctrl-0 = <0xaf>; + pinctrl-1 = <0xb0>; + }; + + boot_disp { + compatible = "allwinner,boot_disp"; + device_type = "boot_disp"; + output_disp = <0x0>; + output_type = <0x3>; + output_mode = <0xa>; + }; + + cci@0x01cb3000 { + compatible = "allwinner,sunxi-csi_cci"; + reg = <0x0 0x1cb3000 0x0 0x1000>; + interrupts = <0x0 0x55 0x4>; + status = "okay"; + }; + + csi_res@0x01cb0000 { + compatible = "allwinner,sunxi-csi"; + reg = <0x0 0x1cb0000 0x0 0x1000>; + status = "okay"; + }; + + vfe@0 { + device_type = "csi0"; + compatible = "allwinner,sunxi-vfe"; + interrupts = <0x0 0x54 0x4>; + clocks = <0x73 0x74 0x75 0x4 0x6 0x5>; + pinctrl-names = "default", "sleep"; + pinctrl-1 = <0x77>; + csi0_sensor_list = <0x1>; + status = "okay"; + pinctrl-0 = <0xb1>; + csi0_mck = <0x30 0x4 0x1 0x0 0x0 0x1 0x0>; + + dev@0 { + csi0_dev0_mname = "s5k4ec"; + csi0_dev0_twi_addr = <0x5a>; + csi0_dev0_pos = "rear"; + csi0_dev0_isp_used = <0x1>; + csi0_dev0_fmt = <0x0>; + csi0_dev0_stby_mode = <0x1>; + csi0_dev0_vflip = <0x0>; + csi0_dev0_hflip = <0x0>; + csi0_dev0_iovdd = "iovdd-csi"; + csi0_dev0_iovdd_vol = <0x2ab980>; + csi0_dev0_avdd = "avdd-csi"; + csi0_dev0_avdd_vol = <0x2ab980>; + csi0_dev0_dvdd = "dvdd-csi-18"; + csi0_dev0_dvdd_vol = <0x16e360>; + csi0_dev0_flash_used = <0x0>; + csi0_dev0_flash_type = <0x2>; + csi0_dev0_flvdd = "vdd-csi-led"; + csi0_dev0_flvdd_vol = <0x325aa0>; + csi0_dev0_act_used = <0x0>; + csi0_dev0_act_name = "ad5820_act"; + csi0_dev0_act_slave = <0x18>; + status = "disabled"; + device_type = "csi0_dev0"; + csi0_dev0_afvdd; + csi0_dev0_afvdd_vol; + csi0_dev0_power_en; + csi0_dev0_reset = <0x30 0x4 0x10 0x0 0x0 0x1 0x0>; + csi0_dev0_pwdn = <0x30 0x4 0x11 0x0 0x0 0x1 0x0>; + csi0_dev0_flash_en; + csi0_dev0_flash_mode; + csi0_dev0_af_pwdn; + }; + + dev@1 { + csi0_dev1_mname = "gc2145"; + csi0_dev1_twi_addr = <0x78>; + csi0_dev1_pos = "front"; + csi0_dev1_isp_used = <0x1>; + csi0_dev1_fmt = <0x0>; + csi0_dev1_stby_mode = <0x1>; + csi0_dev1_vflip = <0x0>; + csi0_dev1_hflip = <0x0>; + csi0_dev1_iovdd = "iovdd-csi"; + csi0_dev1_iovdd_vol = <0x2ab980>; + csi0_dev1_avdd = "avdd-csi"; + csi0_dev1_avdd_vol = <0x2ab980>; + csi0_dev1_dvdd = "dvdd-csi-18"; + csi0_dev1_dvdd_vol = <0x1b7740>; + csi0_dev1_flash_used = <0x0>; + csi0_dev1_flash_type = <0x2>; + csi0_dev1_flvdd = "vdd-csi-led"; + csi0_dev1_flvdd_vol = <0x325aa0>; + csi0_dev1_act_used = <0x0>; + csi0_dev1_act_name = "ad5820_act"; + csi0_dev1_act_slave = <0x18>; + status = "disabled"; + device_type = "csi0_dev1"; + csi0_dev1_afvdd; + csi0_dev1_afvdd_vol; + csi0_dev1_power_en; + csi0_dev1_reset = <0x30 0x4 0x10 0x0 0x0 0x1 0x0>; + csi0_dev1_pwdn = <0x30 0x4 0x11 0x0 0x0 0x1 0x0>; + csi0_dev1_flash_en; + csi0_dev1_flash_mode; + csi0_dev1_af_pwdn; + }; + }; + + vdevice@0 { + compatible = "allwinner,sun50i-vdevice"; + pinctrl-names = "default"; + test-gpios = <0x79 0xb 0x0 0x1 0x2 0x3 0x4>; + status = "okay"; + device_type = "Vdevice"; + pinctrl-0 = <0xb9>; + }; + + onewire_device@0 { + compatible = "w1-gpio"; + gpios = <0x30 0x2 0x8 0x0 0x0 0x0 0x0>; + pinctrl-names = "default"; + pinctrl-0 = <0xba>; + status = "okay"; + }; + + ce@1c15000 { + compatible = "allwinner,sunxi-ce"; + reg = <0x0 0x1c15000 0x0 0x80 0x0 0x1c15800 0x0 0x80>; + interrupts = <0x0 0x5e 0xff01 0x0 0x50 0xff01>; + clock-frequency = <0x11e1a300 0xbebc200>; + clocks = <0x7a 0x7b>; + }; + + deinterlace@0x01e00000 { + #address-cells = <0x1>; + #size-cells = <0x0>; + compatible = "allwinner,sunxi-deinterlace"; + reg = <0x0 0x1e00000 0x0 0x77c>; + interrupts = <0x0 0x5d 0x4>; + clocks = <0x7c 0x4>; + status = "okay"; + device_type = "di"; + }; + + smartcard@0x01c2c400 { + #address-cells = <0x1>; + #size-cells = <0x0>; + compatible = "allwinner,sunxi-scr"; + reg = <0x0 0x1c2c400 0x0 0x100>; + interrupts = <0x0 0x53 0x4>; + clocks = <0x7d 0x7e>; + clock-frequency = <0x16e3600>; + pinctrl-names = "default"; + pinctrl-0 = <0x7f>; + status = "okay"; + device_type = "smc"; + smc_used; + smc_rst; + smc_vppen; + smc_vppp; + smc_det; + smc_vccen; + smc_sck; + smc_sda; + }; + + nmi@0x01f00c00 { + #address-cells = <0x1>; + #size-cells = <0x0>; + compatible = "allwinner,sunxi-nmi"; + reg = <0x0 0x1f00c00 0x0 0x50>; + nmi_irq_ctrl = <0xc>; + nmi_irq_en = <0x40>; + nmi_irq_status = <0x10>; + nmi_irq_mask = <0x50>; + status = "okay"; + }; + + pmu0@0 { + compatible = "allwinner,pmu0"; + device_type = "pmu0"; + pmu_batdeten = <0x1>; + pmu_init_chgend_rate = <0x14>; + pmu_init_chg_enabled = <0x1>; + pmu_init_adc_freq = <0x320>; + pmu_init_adcts_freq = <0x320>; + pmu_init_chg_pretime = <0x46>; + pmu_init_chg_csttime = <0x2d0>; + pmu_batt_cap_correct = <0x1>; + pmu_chg_end_on_en = <0x0>; + pmu_pwroff_vol = <0xce4>; + pmu_pwron_vol = <0xa28>; + pmu_powkey_off_delay_time = <0x0>; + pmu_pwrok_time = <0x40>; + pmu_reset_shutdown_en = <0x1>; + pmu_restvol_adjust_time = <0x3c>; + pmu_ocv_cou_adjust_time = <0x3c>; + pmu_vbusen_func = <0x1>; + pmu_reset = <0x0>; + pmu_IRQ_wakeup = <0x1>; + pmu_hot_shutdowm = <0x1>; + pmu_inshort = <0x0>; + pmu_bat_shutdown_ltf = <0xc80>; + pmu_bat_shutdown_htf = <0xed>; + status = "okay"; + pmu_id = <0x6>; + pmu_twi_addr = <0x34>; + pmu_twi_id = <0x1>; + pmu_irq_id = <0x40>; + pmu_chg_ic_temp = <0x0>; + pmu_battery_rdc = <0x58>; + pmu_battery_cap = <0x12c0>; + pmu_runtime_chgcur = <0x1c2>; + pmu_suspend_chgcur = <0x5dc>; + pmu_shutdown_chgcur = <0x5dc>; + pmu_init_chgvol = <0x1068>; + pmu_ac_vol = <0xfa0>; + pmu_ac_cur = <0xdac>; + pmu_usbpc_vol = <0x1130>; + pmu_usbpc_cur = <0x1f4>; + pmu_battery_warning_level1 = <0xf>; + pmu_battery_warning_level2 = <0x0>; + pmu_chgled_func = <0x0>; + pmu_chgled_type = <0x0>; + pmu_bat_para1 = <0x0>; + pmu_bat_para2 = <0x0>; + pmu_bat_para3 = <0x0>; + pmu_bat_para4 = <0x0>; + pmu_bat_para5 = <0x0>; + pmu_bat_para6 = <0x0>; + pmu_bat_para7 = <0x1>; + pmu_bat_para8 = <0x1>; + pmu_bat_para9 = <0x2>; + pmu_bat_para10 = <0x3>; + pmu_bat_para11 = <0x4>; + pmu_bat_para12 = <0xa>; + pmu_bat_para13 = <0x11>; + pmu_bat_para14 = <0x1a>; + pmu_bat_para15 = <0x29>; + pmu_bat_para16 = <0x2e>; + pmu_bat_para17 = <0x33>; + pmu_bat_para18 = <0x38>; + pmu_bat_para19 = <0x3b>; + pmu_bat_para20 = <0x41>; + pmu_bat_para21 = <0x45>; + pmu_bat_para22 = <0x4b>; + pmu_bat_para23 = <0x4f>; + pmu_bat_para24 = <0x53>; + pmu_bat_para25 = <0x59>; + pmu_bat_para26 = <0x5f>; + pmu_bat_para27 = <0x62>; + pmu_bat_para28 = <0x64>; + pmu_bat_para29 = <0x64>; + pmu_bat_para30 = <0x64>; + pmu_bat_para31 = <0x64>; + pmu_bat_para32 = <0x64>; + pmu_bat_temp_enable = <0x1>; + pmu_bat_charge_ltf = <0x8d5>; + pmu_bat_charge_htf = <0x184>; + pmu_bat_temp_para1 = <0x1d2a>; + pmu_bat_temp_para2 = <0x1180>; + pmu_bat_temp_para3 = <0xdbe>; + pmu_bat_temp_para4 = <0xae2>; + pmu_bat_temp_para5 = <0x8af>; + pmu_bat_temp_para6 = <0x6fc>; + pmu_bat_temp_para7 = <0x5a8>; + pmu_bat_temp_para8 = <0x3c9>; + pmu_bat_temp_para9 = <0x298>; + pmu_bat_temp_para10 = <0x1d2>; + pmu_bat_temp_para11 = <0x189>; + pmu_bat_temp_para12 = <0x14d>; + pmu_bat_temp_para13 = <0x11b>; + pmu_bat_temp_para14 = <0xf2>; + pmu_bat_temp_para15 = <0xb3>; + pmu_bat_temp_para16 = <0x86>; + pmu_powkey_off_time = <0x1770>; + pmu_powkey_off_func = <0x0>; + pmu_powkey_off_en = <0x1>; + pmu_powkey_long_time = <0x5dc>; + pmu_powkey_on_time = <0x3e8>; + power_start = <0x0>; + }; + + regu@0 { + compatible = "allwinner,pmu0_regu"; + regulator_count = <0x17>; + status = "okay"; + device_type = "pmu0_regu"; + regulator1 = "axp81x_dcdc1 none vcc-nand vcc-emmc vcc-sdc vcc-usb-30 vcc-io vcc-pd"; + regulator2 = "axp81x_dcdc2 none vdd-cpua"; + regulator3 = "axp81x_dcdc3 none"; + regulator4 = "axp81x_dcdc4 none"; + regulator5 = "axp81x_dcdc5 none vcc-dram"; + regulator6 = "axp81x_dcdc6 none vdd-sys"; + regulator7 = "axp81x_dcdc7 none"; + regulator8 = "axp81x_rtc none"; + regulator9 = "axp81x_aldo1 none vdd-csi-led iovdd-csi vcc-pe"; + regulator10 = "axp81x_aldo2 none vcc-pl"; + regulator11 = "axp81x_aldo3 none vcc-avcc vcc-pll"; + regulator12 = "axp81x_dldo1 none vcc-hdmi-33"; + regulator13 = "axp81x_dldo2 none vcc-mipi"; + regulator14 = "axp81x_dldo3 none avdd-csi"; + regulator15 = "axp81x_dldo4 none vcc-deviceio"; + regulator16 = "axp81x_eldo1 none vcc-cpvdd vcc-wifi-io vcc-pc vcc-pg"; + regulator17 = "axp81x_eldo2 none vcc-lcd-0"; + regulator18 = "axp81x_eldo3 none dvdd-csi-18"; + regulator19 = "axp81x_fldo1 none vcc-hsic-12"; + regulator20 = "axp81x_fldo2 none vdd-cpus"; + regulator21 = "axp81x_gpio0ldo none vcc-ctp"; + regulator22 = "axp81x_gpio1ldo none"; + regulator23 = "axp81x_dc1sw none vcc-lvds vcc-dsi-33"; + }; + + nand0@01c03000 { + compatible = "allwinner,sun50i-nand"; + device_type = "nand0"; + reg = <0x0 0x1c03000 0x0 0x1000>; + interrupts = <0x0 0x46 0x4>; + clocks = <0x4 0x80>; + pinctrl-names = "default", "sleep"; + pinctrl-1 = <0x83>; + 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>; + status = "disabled"; + nand0_support_2ch = <0x0>; + pinctrl-0 = <0xab 0xac>; + }; + + thermal_sensor { + compatible = "allwinner,thermal_sensor"; + reg = <0x0 0x1c25000 0x0 0x400>; + interrupts = <0x0 0x1f 0x0>; + clocks = <0x6 0x84>; + sensor_num = <0x3>; + shut_temp = <0x78>; + status = "okay"; + + combine0 { + #thermal-sensor-cells = <0x1>; + combine_cnt = <0x3>; + combine_type = "max"; + combine_chn = <0x0 0x1 0x2>; + linux,phandle = <0x85>; + phandle = <0x85>; + }; + }; + + cpu_budget_cool { + compatible = "allwinner,budget_cooling"; + #cooling-cells = <0x2>; + status = "okay"; + state_cnt = <0xa>; + cluster_num = <0x1>; + state0 = <0x119400 0x4>; + state1 = <0x10d880 0x4>; + state2 = <0x101d00 0x4>; + state3 = <0xf6180 0x4>; + state4 = <0xea600 0x4>; + state5 = <0xdea80 0x4>; + state6 = <0xc7380 0x4>; + state7 = <0x9e340 0x4>; + state8 = <0x9e340 0x2>; + state9 = <0x9e340 0x1>; + linux,phandle = <0x87>; + phandle = <0x87>; + }; + + gpu_cooling { + compatible = "allwinner,gpu_cooling"; + reg = <0x0 0x0 0x0 0x0>; + #cooling-cells = <0x2>; + status = "okay"; + state_cnt = <0x3>; + state0 = <0x0>; + state1 = <0x168>; + state2 = <0x90>; + linux,phandle = <0x8c>; + phandle = <0x8c>; + }; + + thermal-zones { + + soc_thermal { + polling-delay-passive = <0x1f4>; + polling-delay = <0x7d0>; + thermal-sensors = <0x85 0x0>; + + trips { + + t0 { + temperature = <0x50>; + type = "passive"; + hysteresis = <0x0>; + linux,phandle = <0x86>; + phandle = <0x86>; + }; + + t1 { + temperature = <0x55>; + type = "passive"; + hysteresis = <0x0>; + linux,phandle = <0x88>; + phandle = <0x88>; + }; + + t2 { + temperature = <0x5a>; + type = "passive"; + hysteresis = <0x0>; + linux,phandle = <0x89>; + phandle = <0x89>; + }; + + t3 { + temperature = <0x5f>; + type = "passive"; + hysteresis = <0x0>; + linux,phandle = <0x8a>; + phandle = <0x8a>; + }; + + t4 { + temperature = <0x55>; + type = "passive"; + hysteresis = <0x0>; + linux,phandle = <0x8b>; + phandle = <0x8b>; + }; + + t5 { + temperature = <0x5a>; + type = "passive"; + hysteresis = <0x0>; + linux,phandle = <0x8d>; + phandle = <0x8d>; + }; + + t6 { + temperature = <0x6c>; + type = "critical"; + hysteresis = <0x0>; + }; + }; + + cooling-maps { + + bind0 { + contribution = <0x0>; + trip = <0x86>; + cooling-device = <0x87 0x1 0x1>; + }; + + bind1 { + contribution = <0x0>; + trip = <0x88>; + cooling-device = <0x87 0x2 0x2>; + }; + + bind2 { + contribution = <0x0>; + trip = <0x89>; + cooling-device = <0x87 0x3 0x6>; + }; + + bind3 { + contribution = <0x0>; + trip = <0x8a>; + cooling-device = <0x87 0x7 0x9>; + }; + + bind4 { + contribution = <0x0>; + trip = <0x8b>; + cooling-device = <0x8c 0x1 0x1>; + }; + + bind5 { + contribution = <0x0>; + trip = <0x8d>; + cooling-device = <0x8c 0x2 0x2>; + }; + }; + }; + }; + + keyboard { + compatible = "allwinner,keyboard_2000mv"; + reg = <0x0 0x1c21800 0x0 0x400>; + interrupts = <0x0 0x1e 0x0>; + status = "okay"; + key_cnt = <0x5>; + key1 = <0xf0 0x73>; + key2 = <0x1f4 0x72>; + key3 = <0x2bc 0x8b>; + key4 = <0x37a 0x1c>; + key5 = <0x7d0 0x66>; + }; + + eth@01c30000 { + compatible = "allwinner,sunxi-gmac"; + reg = <0x0 0x1c30000 0x0 0x10000 0x0 0x1c00000 0x0 0x30>; + pinctrl-names = "default"; + interrupts = <0x0 0x52 0x4>; + interrupt-names = "gmacirq"; + clocks = <0x8f>; + clock-names = "gmac"; + phy-mode = "rgmii"; + tx-delay = <0x3>; + rx-delay = <0x0>; + gmac_power1 = "axp81x_dc1sw:0"; + status = "okay"; + device_type = "gmac0"; + pinctrl-0 = <0x9e>; + gmac_power2; + gmac_power3; + }; + + product { + device_type = "product"; + version = "100"; + machine = "evb"; + }; + + platform { + device_type = "platform"; + eraseflag = <0x1>; + }; + + target { + device_type = "target"; + boot_clock = <0x3f0>; + storage_type = <0xffffffff>; + burn_key = <0x0>; + }; + + power_sply { + device_type = "power_sply"; + dcdc1_vol = <0xf4f24>; + dcdc2_vol = <0xf468c>; + dcdc6_vol = <0xf468c>; + aldo1_vol = <0xaf0>; + aldo2_vol = <0xf4948>; + aldo3_vol = <0xf4df8>; + dldo1_vol = <0xce4>; + dldo2_vol = <0xce4>; + dldo3_vol = <0xaf0>; + dldo4_vol = <0xf4f24>; + eldo1_vol = <0xf4948>; + eldo2_vol = <0x708>; + eldo3_vol = <0x708>; + fldo1_vol = <0x4b0>; + fldo2_vol = <0xf468c>; + gpio0_vol = <0xc1c>; + }; + + card_boot { + device_type = "card_boot"; + logical_start = <0xa000>; + sprite_gpio0; + }; + + 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 = <0x99>; + }; + + card2_boot_para { + device_type = "card2_boot_para"; + sdc_io_1v8 = <0x1>; + card_ctrl = <0x2>; + card_high_speed = <0x1>; + card_line = <0x8>; + pinctrl-0 = <0x9a>; + sdc_ex_dly_used = <0x2>; + }; + + twi_para { + device_type = "twi_para"; + twi_port = <0x0>; + pinctrl-0 = <0x9b>; + }; + + uart_para { + device_type = "uart_para"; + uart_debug_port = <0x0>; + pinctrl-0 = <0x9c>; + }; + + jtag_para { + device_type = "jtag_para"; + jtag_enable = <0x1>; + pinctrl-0 = <0x9d>; + }; + + clock { + device_type = "clock"; + pll4 = <0x12c>; + pll6 = <0x258>; + pll8 = <0x168>; + pll9 = <0x129>; + pll10 = <0x108>; + }; + + rtp_para { + device_type = "rtp_para"; + rtp_used = <0x0>; + rtp_screen_size = <0x5>; + rtp_regidity_level = <0x5>; + rtp_press_threshold_enable = <0x0>; + rtp_press_threshold = <0x1f40>; + rtp_sensitive_level = <0xf>; + rtp_exchange_x_y_flag = <0x0>; + }; + + ctp { + device_type = "ctp"; + compatible = "allwinner,sun50i-ctp-para"; + status = "disabled"; + ctp_name = "gt911_DB"; + ctp_twi_id = <0x0>; + ctp_twi_addr = <0x40>; + ctp_screen_max_x = <0x400>; + ctp_screen_max_y = <0x258>; + ctp_revert_x_flag = <0x1>; + ctp_revert_y_flag = <0x1>; + ctp_exchange_x_y_flag = <0x0>; + ctp_int_port = <0x30 0x7 0x4 0x6 0xffffffff 0xffffffff 0xffffffff>; + ctp_wakeup = <0x30 0x7 0xb 0x1 0xffffffff 0xffffffff 0x1>; + ctp_power_ldo = "vcc-ctp"; + ctp_power_ldo_vol = <0xce4>; + ctp_power_io; + }; + + ctp_list { + device_type = "ctp_list"; + compatible = "allwinner,sun50i-ctp-list"; + status = "okay"; + gslX680new = <0x1>; + gt9xx_ts = <0x0>; + gt9xxf_ts = <0x1>; + gt9xxnew_ts = <0x0>; + gt82x = <0x1>; + zet622x = <0x1>; + aw5306_ts = <0x1>; + }; + + tkey_para { + device_type = "tkey_para"; + tkey_used = <0x0>; + tkey_twi_id; + tkey_twi_addr; + tkey_int; + }; + + motor_para { + device_type = "motor_para"; + motor_used = <0x0>; + motor_shake = <0x31 0xfffe 0x3 0x1 0xffffffff 0xffffffff 0x1>; + }; + + tvout_para { + device_type = "tvout_para"; + tvout_used; + tvout_channel_num; + tv_en; + }; + + tvin_para { + device_type = "tvin_para"; + tvin_used; + tvin_channel_num; + }; + + serial_feature { + device_type = "serial_feature"; + sn_filename = "sn.txt"; + }; + + gsensor { + device_type = "gsensor"; + compatible = "allwinner,sun50i-gsensor-para"; + status = "okay"; + gsensor_twi_id = <0x1>; + gsensor_twi_addr = <0x1d>; + gsensor_vcc_io = "vcc-deviceio"; + gsensor_vcc_io_val = <0xce4>; + gsensor_int1 = <0x30 0x7 0x5 0x6 0x1 0xffffffff 0xffffffff>; + gsensor_int2 = <0x30 0x7 0x6 0x6 0x1 0xffffffff 0xffffffff>; + }; + + gsensor_list { + device_type = "gsensor_list"; + compatible = "allwinner,sun50i-gsensor-list-para"; + gsensor_list__used = <0x1>; + lsm9ds0_acc_mag = <0x1>; + bma250 = <0x1>; + mma8452 = <0x1>; + mma7660 = <0x1>; + mma865x = <0x1>; + afa750 = <0x1>; + lis3de_acc = <0x1>; + lis3dh_acc = <0x1>; + kxtik = <0x1>; + dmard10 = <0x0>; + dmard06 = <0x1>; + mxc622x = <0x1>; + fxos8700 = <0x1>; + lsm303d = <0x0>; + sc7a30 = <0x1>; + }; + + 3g_para { + device_type = "3g_para"; + 3g_used = <0x0>; + 3g_usbc_num = <0x2>; + 3g_uart_num = <0x0>; + bb_vbat = <0x79 0xb 0x3 0x1 0xffffffff 0xffffffff 0x0>; + bb_host_wake = <0x79 0xc 0x0 0x1 0xffffffff 0xffffffff 0x0>; + bb_on = <0x79 0xc 0x1 0x1 0xffffffff 0xffffffff 0x0>; + bb_pwr_on = <0x79 0xc 0x3 0x1 0xffffffff 0xffffffff 0x0>; + bb_wake = <0x79 0xc 0x4 0x1 0xffffffff 0xffffffff 0x0>; + bb_rf_dis = <0x79 0xc 0x5 0x1 0xffffffff 0xffffffff 0x0>; + bb_rst = <0x79 0xc 0x6 0x1 0xffffffff 0xffffffff 0x0>; + 3g_int; + }; + + gyroscopesensor { + device_type = "gyroscopesensor"; + compatible = "allwinner,sun50i-gyr_sensors-para"; + status = "disabled"; + gy_twi_id = <0x2>; + gy_twi_addr = <0x6a>; + gy_int1 = <0x30 0x0 0xa 0x6 0x1 0xffffffff 0xffffffff>; + gy_int2; + }; + + gy_list { + device_type = "gy_list"; + compatible = "allwinner,sun50i-gyr_sensors-list-para"; + status = "disabled"; + lsm9ds0_gyr = <0x1>; + l3gd20_gyr = <0x0>; + bmg160_gyr = <0x1>; + }; + + lightsensor { + device_type = "lightsensor"; + compatible = "allwinner,sun50i-lsensors-para"; + status = "disabled"; + ls_twi_id = <0x2>; + ls_twi_addr = <0x23>; + ls_int = <0x30 0x0 0xc 0x6 0x1 0xffffffff 0xffffffff>; + }; + + ls_list { + device_type = "ls_list"; + compatible = "allwinner,sun50i-lsensors-list-para"; + status = "disabled"; + ltr_501als = <0x1>; + jsa1212 = <0x0>; + jsa1127 = <0x1>; + stk3x1x = <0x0>; + }; + + compasssensor { + device_type = "compasssensor"; + compatible = "allwinner,sun50i-compass-para"; + status = "disabled"; + compass_twi_id = <0x2>; + compass_twi_addr = <0xd>; + compass_int = <0x30 0x0 0xb 0x6 0x1 0xffffffff 0xffffffff>; + }; + + compass_list { + device_type = "compass_list"; + compatible = "allwinner,sun50i-compass-list-para"; + status = "disabled"; + lsm9ds0 = <0x1>; + lsm303d = <0x0>; + }; + + recovery_key { + device_type = "recovery_key"; + key_max = <0xc>; + key_min = <0xa>; + }; + + fastboot_key { + device_type = "fastboot_key"; + key_max = <0x6>; + key_min = <0x4>; + }; + }; + + aliases { + serial0 = "/soc@01c00000/uart@01c28000"; + serial1 = "/soc@01c00000/uart@01c28400"; + serial2 = "/soc@01c00000/uart@01c28800"; + serial3 = "/soc@01c00000/uart@01c28c00"; + serial4 = "/soc@01c00000/uart@01c29000"; + twi0 = "/soc@01c00000/twi@0x01c2ac00"; + twi1 = "/soc@01c00000/twi@0x01c2b000"; + twi2 = "/soc@01c00000/twi@0x01c2b400"; + spi0 = "/soc@01c00000/spi@01c68000"; + spi1 = "/soc@01c00000/spi@01c69000"; + global_timer0 = "/soc@01c00000/timer@1c20c00"; + cci0 = "/soc@01c00000/cci@0x01cb3000"; + csi_res0 = "/soc@01c00000/csi_res@0x01cb0000"; + vfe0 = "/soc@01c00000/vfe@0"; + mmc0 = "/soc@01c00000/sdmmc@01c0f000"; + mmc2 = "/soc@01c00000/sdmmc@01C11000"; + nand0 = "/soc@01c00000/nand0@01c03000"; + disp = "/soc@01c00000/disp@01000000"; + lcd0 = "/soc@01c00000/lcd0@01c0c000"; + hdmi = "/soc@01c00000/hdmi@01ee0000"; + pwm = "/soc@01c00000/pwm@01c21400"; + pwm0 = "/soc@01c00000/pwm0@01c21400"; + s_pwm = "/soc@01c00000/s_pwm@1f03800"; + spwm0 = "/soc@01c00000/spwm0@0x01f03800"; + boot_disp = "/soc@01c00000/boot_disp"; + }; + + chosen { + bootargs = "earlyprintk=sunxi-uart,0x01c28000 loglevel=8 initcall_debug=1 console=ttyS0 init=/init"; + linux,initrd-start = <0x0 0x0>; + linux,initrd-end = <0x0 0x0>; + }; + + cpus { + #address-cells = <0x2>; + #size-cells = <0x0>; + + cpu@0 { + device_type = "cpu"; + compatible = "arm,cortex-a53", "arm,armv8"; + reg = <0x0 0x0>; + enable-method = "psci"; + cpufreq_tbl = <0x75300 0x927c0 0xafc80 0xc7380 0xdea80 0xea600 0xf6180 0x101d00 0x10d880 0x119400 0x124f80 0x148200>; + clock-latency = <0x1e8480>; + clock-frequency = <0x3c14dc00>; + cpu-idle-states = <0x90 0x91 0x92>; + }; + + cpu@1 { + device_type = "cpu"; + compatible = "arm,cortex-a53", "arm,armv8"; + reg = <0x0 0x1>; + enable-method = "psci"; + clock-frequency = <0x3c14dc00>; + cpu-idle-states = <0x90 0x91 0x92>; + }; + + cpu@2 { + device_type = "cpu"; + compatible = "arm,cortex-a53", "arm,armv8"; + reg = <0x0 0x2>; + enable-method = "psci"; + clock-frequency = <0x3c14dc00>; + cpu-idle-states = <0x90 0x91 0x92>; + }; + + cpu@3 { + device_type = "cpu"; + compatible = "arm,cortex-a53", "arm,armv8"; + reg = <0x0 0x3>; + enable-method = "psci"; + clock-frequency = <0x3c14dc00>; + cpu-idle-states = <0x90 0x91 0x92>; + }; + + idle-states { + entry-method = "arm,psci"; + + cpu-sleep-0 { + compatible = "arm,idle-state"; + arm,psci-suspend-param = <0x10000>; + entry-latency-us = <0x28>; + exit-latency-us = <0x64>; + min-residency-us = <0x96>; + linux,phandle = <0x90>; + phandle = <0x90>; + }; + + cluster-sleep-0 { + compatible = "arm,idle-state"; + arm,psci-suspend-param = <0x1010000>; + entry-latency-us = <0x1f4>; + exit-latency-us = <0x3e8>; + min-residency-us = <0x9c4>; + linux,phandle = <0x91>; + phandle = <0x91>; + }; + + sys-sleep-0 { + compatible = "arm,idle-state"; + arm,psci-suspend-param = <0x2010000>; + entry-latency-us = <0x3e8>; + exit-latency-us = <0x7d0>; + min-residency-us = <0x1194>; + linux,phandle = <0x92>; + phandle = <0x92>; + }; + }; + }; + + psci { + compatible = "arm,psci-0.2"; + method = "smc"; + psci_version = <0x84000000>; + cpu_suspend = <0xc4000001>; + cpu_off = <0x84000002>; + cpu_on = <0xc4000003>; + affinity_info = <0xc4000004>; + migrate = <0xc4000005>; + migrate_info_type = <0x84000006>; + migrate_info_up_cpu = <0xc4000007>; + system_off = <0x84000008>; + system_reset = <0x84000009>; + }; + + n_brom { + compatible = "allwinner,n-brom"; + reg = <0x0 0x0 0x0 0xc000>; + }; + + s_brom { + compatible = "allwinner,s-brom"; + reg = <0x0 0x0 0x0 0x10000>; + }; + + sram_a1 { + compatible = "allwinner,sram_a1"; + reg = <0x0 0x10000 0x0 0x8000>; + }; + + sram_a2 { + compatible = "allwinner,sram_a2"; + reg = <0x0 0x40000 0x0 0x14000>; + }; + + prcm { + compatible = "allwinner,prcm"; + reg = <0x0 0x1f01400 0x0 0x400>; + }; + + cpuscfg { + compatible = "allwinner,cpuscfg"; + reg = <0x0 0x1f01c00 0x0 0x400>; + }; + + ion { + compatible = "allwinner,sunxi-ion"; + + system_contig { + type = <0x1>; + }; + + cma { + type = <0x4>; + }; + + system { + type = <0x0>; + }; + }; + + dram { + compatible = "allwinner,dram"; + clocks = <0x93 0x94>; + clock-names = "pll_ddr0", "pll_ddr1"; + dram_clk = <0x2a0>; + dram_type = <0x3>; + dram_zq = <0x3b3bdd>; + dram_odt_en = <0x1>; + dram_para1 = <0x10e40400>; + dram_para2 = <0x4000000>; + dram_mr0 = <0x1c70>; + dram_mr1 = <0x40>; + dram_mr2 = <0x18>; + dram_mr3 = <0x0>; + dram_tpr0 = <0x48a192>; + dram_tpr1 = <0x1c2418d>; + dram_tpr2 = <0x76051>; + dram_tpr3 = <0x50005dc>; + dram_tpr4 = <0x0>; + dram_tpr5 = <0x0>; + dram_tpr6 = <0x0>; + dram_tpr7 = <0x2a066198>; + dram_tpr8 = <0x0>; + dram_tpr9 = <0x0>; + dram_tpr10 = <0x8808>; + dram_tpr11 = <0x40a60066>; + dram_tpr12 = <0x55550000>; + dram_tpr13 = <0x4000903>; + device_type = "dram"; + }; + + memory@40000000 { + device_type = "memory"; + reg = <0x0 0x41000000 0x0 0x3f000000>; + }; + + interrupt-controller@1c81000 { + compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic"; + #interrupt-cells = <0x3>; + #address-cells = <0x0>; + device_type = "gic"; + interrupt-controller; + reg = <0x0 0x1c81000 0x0 0x1000 0x0 0x1c82000 0x0 0x2000 0x0 0x1c84000 0x0 0x2000 0x0 0x1c86000 0x0 0x2000>; + interrupts = <0x1 0x9 0xf04>; + linux,phandle = <0x1>; + phandle = <0x1>; + }; + + sunxi-chipid@1c14200 { + compatible = "allwinner,sunxi-chipid"; + device_type = "chipid"; + reg = <0x0 0x1c14200 0x0 0x400>; + }; + + timer { + compatible = "arm,armv8-timer"; + interrupts = <0x1 0xd 0xff01 0x1 0xe 0xff01 0x1 0xb 0xff01 0x1 0xa 0xff01>; + clock-frequency = <0x16e3600>; + }; + + pmu { + compatible = "arm,armv8-pmuv3"; + interrupts = <0x0 0x78 0x4 0x0 0x79 0x4 0x0 0x7a 0x4 0x0 0x7b 0x4>; + }; + + dvfs_table { + compatible = "allwinner,dvfs_table"; + max_freq = <0x44aa2000>; + min_freq = <0x1c9c3800>; + lv_count = <0x8>; + lv1_freq = <0x44aa2000>; + lv1_volt = <0x514>; + lv2_freq = <0x41cdb400>; + lv2_volt = <0x4ec>; + lv3_freq = <0x3ef14800>; + lv3_volt = <0x4d8>; + lv4_freq = <0x3c14dc00>; + lv4_volt = <0x4b0>; + lv5_freq = <0x39387000>; + lv5_volt = <0x488>; + lv6_freq = <0x365c0400>; + lv6_volt = <0x460>; + lv7_freq = <0x30a32c00>; + lv7_volt = <0x438>; + lv8_freq = <0x269fb200>; + lv8_volt = <0x410>; + device_type = "dvfs_table"; + }; + + dramfreq { + compatible = "allwinner,sunxi-dramfreq"; + reg = <0x0 0x1c62000 0x0 0x1000 0x0 0x1c63000 0x0 0x1000 0x0 0x1c20000 0x0 0x800>; + clocks = <0x93 0x94 0x95>; + status = "okay"; + }; + + uboot { + }; + + gpu@0x01c40000 { + compatible = "arm,mali-400", "arm,mali-utgard"; + reg = <0x0 0x1c40000 0x0 0x10000>; + interrupts = <0x0 0x61 0x4 0x0 0x62 0x4 0x0 0x63 0x4 0x0 0x64 0x4 0x0 0x66 0x4 0x0 0x67 0x4>; + interrupt-names = "IRQGP", "IRQGPMMU", "IRQPP0", "IRQPPMMU0", "IRQPP1", "IRQPPMMU1"; + clocks = <0x96 0x97>; + device_type = "gpu_mali400_0"; + normal_freq = <0x198>; + scene_ctrl_status = <0x0>; + temp_ctrl_status = <0x1>; + }; + + wlan { + compatible = "allwinner,sunxi-wlan"; + wlan_io_regulator = "vcc-wifi-io"; + wlan_busnum = <0x1>; + status = "okay"; + device_type = "wlan"; + clocks; + wlan_power; + wlan_regon = <0x79 0xb 0x2 0x1 0xffffffff 0xffffffff 0x0>; + wlan_hostwake = <0x79 0xb 0x3 0x6 0xffffffff 0xffffffff 0x0>; + efuse_map_path = "wifi_efuse_8189e_for_MB1019Q5.map"; + }; + + bt { + compatible = "allwinner,sunxi-bt"; + bt_io_regulator = "vcc-wifi-io"; + status = "okay"; + device_type = "bt"; + clocks; + bt_power; + bt_rst_n = <0x79 0xb 0x4 0x1 0xffffffff 0xffffffff 0x0>; + }; + + btlpm { + compatible = "allwinner,sunxi-btlpm"; + uart_index = <0x1>; + status = "okay"; + device_type = "btlpm"; + bt_wake = <0x79 0xb 0x6 0x1 0xffffffff 0xffffffff 0x1>; + bt_hostwake = <0x79 0xb 0x5 0x6 0xffffffff 0xffffffff 0x0>; + }; +}; diff --git a/board/pine64/postscript.sh b/board/pine64/postscript.sh new file mode 100755 index 0000000000..c804a5dc7a --- /dev/null +++ b/board/pine64/postscript.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +# boot directory +mkdir -p $BOOT_DIR/pine64 + +cp $IMG_DIR/Image $BOOT_DIR/pine64 +cp $IMG_DIR/pine64.dtb $BOOT_DIR +cp $IMG_DIR/pine64plus.dtb $BOOT_DIR +cp $BOARD_DIR/boot0.bin $IMG_DIR +cp $BOARD_DIR/u-boot.bin $IMG_DIR +cp $BOARD_DIR/boot.ini $BOOT_DIR +#cp $BOARD_DIR/uInitrd $BOOT_DIR + diff --git a/configs/pine64_defconfig b/configs/pine64_defconfig new file mode 100644 index 0000000000..649cd7e066 --- /dev/null +++ b/configs/pine64_defconfig @@ -0,0 +1,85 @@ +BR2_aarch64=y +BR2_DL_DIR="$(TOPDIR)/.download" +BR2_CCACHE=y +BR2_CCACHE_DIR="$(TOPDIR)/.buildroot-ccache-pine64" +BR2_OPTIMIZE_2=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TARGET_OPTIMIZATION="-pipe" +BR2_ROOTFS_SKELETON_CUSTOM=y +BR2_ROOTFS_SKELETON_CUSTOM_PATH="board/common/skeleton" +BR2_ROOTFS_OVERLAY="board/common/overlay board/pine64/overlay" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/common/postscript.sh" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/longsleep/linux-pine64/archive/a08f5219d240ae0edf93d090ff1fda0a82a6cb3a.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="sun50iw1p1smp_linux" +BR2_PACKAGE_BUSYBOX_CONFIG="board/common/busybox.config" +BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y +BR2_PACKAGE_ALSA_UTILS=y +BR2_PACKAGE_ALSA_UTILS_APLAY=y +BR2_PACKAGE_GZIP=y +BR2_PACKAGE_JQ=y +BR2_PACKAGE_E2FSPROGS=y +# BR2_PACKAGE_E2FSPROGS_BADBLOCKS is not set +# BR2_PACKAGE_E2FSPROGS_CHATTR is not set +# BR2_PACKAGE_E2FSPROGS_DUMPE2FS is not set +# BR2_PACKAGE_E2FSPROGS_E2FREEFRAG is not set +# BR2_PACKAGE_E2FSPROGS_E2LABEL is not set +# BR2_PACKAGE_E2FSPROGS_E2UNDO is not set +# BR2_PACKAGE_E2FSPROGS_FILEFRAG is not set +# BR2_PACKAGE_E2FSPROGS_LOGSAVE is not set +# BR2_PACKAGE_E2FSPROGS_LSATTR is not set +# BR2_PACKAGE_E2FSPROGS_MKLOSTFOUND is not set +# BR2_PACKAGE_E2FSPROGS_TUNE2FS is not set +# BR2_PACKAGE_E2FSPROGS_UUIDGEN is not set +BR2_PACKAGE_NTFS_3G=y +BR2_PACKAGE_B43_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_7010=y +BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9170=y +BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9271=y +BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM43XX=y +BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM43XXX=y +BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_USB8797=y +BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_USB8897=y +BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7601U=y +BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT61=y +BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT73=y +BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX=y +BR2_PACKAGE_USB_MODESWITCH_DATA=y +BR2_PACKAGE_CA_CERTIFICATES=y +BR2_PACKAGE_NETTLE=y +BR2_PACKAGE_LIBFUSE=y +BR2_PACKAGE_LIBCURL=y +BR2_PACKAGE_CURL=y +BR2_PACKAGE_LIBCAP=y +BR2_PACKAGE_PCRE=y +BR2_PACKAGE_AUTOSSH=y +BR2_PACKAGE_CRDA=y +BR2_PACKAGE_DHCP=y +BR2_PACKAGE_DHCP_CLIENT=y +BR2_PACKAGE_IPTABLES=y +BR2_PACKAGE_IW=y +BR2_PACKAGE_NETCAT=y +BR2_PACKAGE_NET_TOOLS=y +BR2_PACKAGE_NTP=y +BR2_PACKAGE_NTP_NTPDATE=y +BR2_PACKAGE_OPENSSH=y +BR2_PACKAGE_PPPD=y +BR2_PACKAGE_WIRELESS_TOOLS=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_PACKAGE_WPA_SUPPLICANT_EAP=y +BR2_PACKAGE_WPA_SUPPLICANT_CLI=y +BR2_PACKAGE_BASH=y +BR2_PACKAGE_LOGROTATE=y +BR2_PACKAGE_TAR=y +BR2_PACKAGE_UTIL_LINUX_BINARIES=y +BR2_PACKAGE_UTIL_LINUX_PARTX=y +BR2_PACKAGE_NANO=y +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BOARDNAME="sun50iw1p1" +BR2_TARGET_UBOOT_CUSTOM_GIT=y +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/longsleep/u-boot-pine64.git"