diff --git a/.gitignore b/.gitignore index 586e8c56..ddae5330 100644 --- a/.gitignore +++ b/.gitignore @@ -26,3 +26,8 @@ /snappy/gadget/uboot.env /snappy/gadget/uboot.conf /snappy/gadget/boot-assets +/boot-tools/ +/*.deb +/*.xz +/*.img +tmp/ diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 00000000..42349ae0 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,97 @@ +/** +properties([ + parameters([ + string(defaultValue: '1.0', description: 'Current version number', name: 'VERSION'), + text(defaultValue: '', description: 'A list of changes', name: 'CHANGES'), + choice(choices: 'all\nkernel-tarball\nlinux-package\nxenial-minimal-pinebook\nxenial-mate-pinebook\nstretch-i3-pinebook\nxenial-pinebook\nlinux-pinebook\nxenial-minimal-pine64\nlinux-pine64\nxenial-minimal-sopine\nlinux-sopine', description: 'What makefile build type to target', name: 'MAKE_TARGET') + booleanParam(defaultValue: true, description: 'Whether to upload to Github for release or not', name: 'GITHUB_UPLOAD'), + booleanParam(defaultValue: false, description: 'If build should be marked as pre-release', name: 'GITHUB_PRERELEASE'), + string(defaultValue: 'ayufan-pine64', description: 'GitHub username or organization', name: 'GITHUB_USER'), + string(defaultValue: 'build-pine64-image', description: 'GitHub repository', name: 'GITHUB_REPO'), + ]) +]) +*/ + +node('docker && linux-build') { + timestamps { + wrap([$class: 'AnsiColorBuildWrapper', colorMapName: 'xterm']) { + stage('Environment') { + checkout scm + + def environment = docker.build('build-environment:build-pine64-image', 'build-environment') + + environment.inside("--privileged -u 0:0") { + withEnv([ + "USE_CCACHE=true", + "RELEASE_NAME=$VERSION", + "RELEASE=$BUILD_NUMBER" + ]) { + stage('Prepare') { + sh '''#!/bin/bash + set +xe + export CCACHE_DIR=$WORKSPACE/ccache + ccache -M 0 -F 0 + git clean -ffdx -e ccache + ''' + } + + stage('Build') { + sh '''#!/bin/bash + set +xe + export CCACHE_DIR=$WORKSPACE/ccache + make -j4 $MAKE_TARGET + ''' + } + } + + withEnv([ + "VERSION=$VERSION", + "CHANGES=$CHANGES", + "GITHUB_PRERELEASE=$GITHUB_PRERELEASE", + "GITHUB_USER=$GITHUB_USER", + "GITHUB_REPO=$GITHUB_REPO" + ]) { + stage('Release') { + if (params.GITHUB_UPLOAD) { + sh '''#!/bin/bash + set -xe + shopt -s nullglob + + github-release release \ + --tag "${VERSION}" \ + --name "$VERSION: $BUILD_TAG" \ + --description "${CHANGES}\n\n${BUILD_URL}" \ + --draft + + for file in *.xz *.deb; do + github-release upload \ + --tag "${VERSION}" \ + --name "$(basename "$file")" \ + --file "$file" & + done + + wait + + if [[ "$GITHUB_PRERELEASE" == "true" ]]; then + github-release edit \ + --tag "${VERSION}" \ + --name "$VERSION: $BUILD_TAG" \ + --description "${CHANGES}\n\n${BUILD_URL}" \ + --pre-release + else + github-release edit \ + --tag "${VERSION}" \ + --name "$VERSION: $BUILD_TAG" \ + --description "${CHANGES}\n\n${BUILD_URL}" + fi + ''' + } else { + echo 'Flagged as an no upload release job' + } + } + } + } + } + } + } +} diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..4d1740ce --- /dev/null +++ b/Makefile @@ -0,0 +1,188 @@ +export RELEASE_NAME ?= 0.1~dev +export RELEASE ?= 1 +export LINUX_BRANCH ?= my-hacks-1.2-with-drm +export BOOT_TOOLS_BRANCH ?= with-drm +LINUX_LOCALVERSION ?= -ayufan-$(RELEASE) + +all: linux-pinebook linux-pine64 linux-sopine + +linux/.git: + git clone --depth=1 --branch=$(LINUX_BRANCH) --single-branch \ + https://github.com/ayufan-pine64/linux-pine64.git linux + +linux/.config: linux/.git + make -C linux ARCH=arm64 CROSS_COMPILE="ccache aarch64-linux-gnu-" clean CONFIG_ARCH_SUN50IW1P1=y + make -C linux ARCH=arm64 CROSS_COMPILE="ccache aarch64-linux-gnu-" sun50iw1p1smp_linux_defconfig + touch linux/.config + +linux/arch/arm64/boot/Image: linux/.config + make -C linux ARCH=arm64 CROSS_COMPILE="ccache aarch64-linux-gnu-" -j$(shell nproc) LOCALVERSION=$(LINUX_LOCALVERSION) Image + make -C linux ARCH=arm64 CROSS_COMPILE="ccache aarch64-linux-gnu-" -j$(shell nproc) LOCALVERSION=$(LINUX_LOCALVERSION) modules + make -C linux LOCALVERSION=$(LINUX_LOCALVERSION) M=modules/gpu/mali400/kernel_mode/driver/src/devicedrv/mali \ + ARCH=arm64 CROSS_COMPILE="ccache aarch64-linux-gnu-" \ + CONFIG_MALI400=m CONFIG_MALI450=y CONFIG_MALI400_PROFILING=y \ + CONFIG_MALI_DMA_BUF_MAP_ON_ATTACH=y CONFIG_MALI_DT=y \ + EXTRA_DEFINES="-DCONFIG_MALI400=1 -DCONFIG_MALI450=1 -DCONFIG_MALI400_PROFILING=1 -DCONFIG_MALI_DMA_BUF_MAP_ON_ATTACH -DCONFIG_MALI_DT" + +busybox/.git: + git clone --depth 1 --branch 1_24_stable --single-branch git://git.busybox.net/busybox busybox + +busybox: busybox/.git + cp -u kernel/pine64_config_busybox busybox/.config + make -C busybox ARCH=arm64 CROSS_COMPILE="ccache aarch64-linux-gnu-" -j4 oldconfig + +busybox/busybox: busybox + make -C busybox ARCH=arm64 CROSS_COMPILE="ccache aarch64-linux-gnu-" -j4 + +kernel/initrd.gz: busybox/busybox + cd kernel/ && ./make_initrd.sh + +boot-tools/.git: + git clone --single-branch --depth=1 --branch=$(BOOT_TOOLS_BRANCH) https://github.com/ayufan-pine64/boot-tools + +boot-tools: boot-tools/.git + +linux-pine64-$(RELEASE_NAME).tar: linux/arch/arm64/boot/Image boot-tools kernel/initrd.gz + cd kernel && \ + bash ./make_kernel_tarball.sh $(shell readlink -f "$@") + +package/rtk_bt/.git: + git clone --single-branch --depth=1 https://github.com/ayufan-pine64/rtl8723ds_bt package/rtk_bt + +package/rtk_bt/rtk_hciattach/rtk_hciattach: package/rtk_bt/.git + make -C package/rtk_bt/rtk_hciattach CC="ccache aarch64-linux-gnu-gcc" + +linux-pine64-package-$(RELEASE_NAME).deb: package package/rtk_bt/rtk_hciattach/rtk_hciattach + fpm -s dir -t deb -n linux-pine64-package -v $(RELEASE_NAME) \ + -p $@ \ + --deb-priority optional --category admin \ + --force \ + --deb-compression bzip2 \ + --after-install package/scripts/postinst.deb \ + --before-remove package/scripts/prerm.deb \ + --url https://gitlab.com/ayufan-pine64/linux-build \ + --description "Pine A64 Linux support package" \ + -m "Kamil Trzciński " \ + --license "MIT" \ + --vendor "Kamil Trzciński" \ + -a arm64 \ + --config-files /var/lib/alsa/asound.state \ + package/root/=/ \ + package/rtk_bt/rtk_hciattach/rtk_hciattach=/usr/local/sbin/rtk_hciattach + +%.tar.xz: %.tar + pxz -f -3 $< + +%.img.xz: %.img + pxz -f -3 $< + +simple-image-pine64-$(RELEASE_NAME).img: linux-pine64-$(RELEASE_NAME).tar.xz boot-tools + cd simpleimage && \ + export boot0=../boot-tools/boot/pine64/boot0-pine64-plus.bin && \ + export uboot=../boot-tools/boot/pine64/u-boot-pine64-plus.bin && \ + bash ./make_simpleimage.sh $(shell readlink -f "$@") 150 $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) pine64-plus + +simple-image-sopine-$(RELEASE_NAME).img: linux-pine64-$(RELEASE_NAME).tar.xz boot-tools + cd simpleimage && \ + export boot0=../boot-tools/boot/pine64/boot0-pine64-sopine.bin && \ + export uboot=../boot-tools/boot/pine64/u-boot-pine64-sopine.bin && \ + bash ./make_simpleimage.sh $(shell readlink -f "$@") 150 $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) pine64-sopine + +simple-image-pinebook-$(RELEASE_NAME).img: linux-pine64-$(RELEASE_NAME).tar.xz boot-tools + cd simpleimage && \ + export boot0=../boot-tools/boot/pine64/boot0-pine64-pinebook.bin && \ + export uboot=../boot-tools/boot/pine64/u-boot-pine64-pinebook.bin && \ + bash ./make_simpleimage.sh $(shell readlink -f "$@") 150 $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) pine64-pinebook + +simple-image-pinebook1080p-$(RELEASE_NAME).img: linux-pine64-$(RELEASE_NAME).tar.xz boot-tools + cd simpleimage && \ + export boot0=../boot-tools/boot/pine64/boot0-pine64-pinebook1080p.bin && \ + export uboot=../boot-tools/boot/pine64/u-boot-pine64-pinebook1080p.bin && \ + bash ./make_simpleimage.sh $(shell readlink -f "$@") 150 $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) pine64-pinebook1080p + +BUILD_SYSTEMS := bionic stretch +BUILD_VARIANTS := minimal mate i3 lxde openmediavault +BUILD_ARCHS := arm64 +BUILD_MODELS := pine64 pinebook pinebook1080p sopine + +%-$(RELEASE_NAME)-$(RELEASE).img.xz: %-$(RELEASE_NAME)-$(RELEASE).img + pxz -f -3 $< + +%-$(RELEASE_NAME)-$(RELEASE).img: simple-image-pine64-$(RELEASE_NAME).img.xz \ + simple-image-pinebook-$(RELEASE_NAME).img.xz \ + simple-image-pinebook1080p-$(RELEASE_NAME).img.xz \ + simple-image-sopine-$(RELEASE_NAME).img.xz \ + linux-pine64-$(RELEASE_NAME).tar.xz \ + linux-pine64-package-$(RELEASE_NAME).deb \ + boot-tools + sudo bash ./build-pine64-image.sh \ + "$(shell readlink -f $@)" \ + "$(shell readlink -f simple-image-$(filter $(BUILD_MODELS), $(subst -, ,$@))-$(RELEASE_NAME).img.xz)" \ + "$(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz)" \ + "$(shell readlink -f linux-pine64-package-$(RELEASE_NAME).deb)" \ + "$(filter $(BUILD_SYSTEMS), $(subst -, ,$@))" \ + "$(filter $(BUILD_MODELS), $(subst -, ,$@))" \ + "$(filter $(BUILD_VARIANTS), $(subst -, ,$@))" + +.PHONY: kernel-tarball +kernel-tarball: linux-pine64-$(RELEASE_NAME).tar.xz + +.PHONY: linux-package +linux-package: linux-pine64-package-$(RELEASE_NAME).deb + +simple-image-pinebook: simple-image-pinebook-$(RELEASE_NAME).img.xz \ + simple-image-pinebook1080p-$(RELEASE_NAME).img.xz + +simple-image-pine64: simple-image-pine64-$(RELEASE_NAME).img.xz + +simple-image-sopine: simple-image-sopine-$(RELEASE_NAME).img.xz + +.PHONY: simple-image +simple-image: simple-image-pinebook simple-image-pine64 simple-image-sopine + +.PHONY: bionic-mate-pinebook +bionic-mate-pinebook: bionic-mate-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz \ + bionic-mate-pinebook1080p-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz + +.PHONY: bionic-lxde-pinebook +bionic-lxde-pinebook: bionic-lxde-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz \ + bionic-lxde-pinebook1080p-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz + +.PHONY: stretch-minimal-pine64 +stretch-minimal-pine64: stretch-minimal-pine64-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz + +.PHONY: stretch-minimal-sopine +stretch-minimal-sopine: stretch-minimal-sopine-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz + +.PHONY: stretch-minimal-pinebook +stretch-minimal-pinebook: stretch-minimal-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz \ + stretch-minimal-pinebook1080p-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz + +.PHONY: stretch-openmediavault-pine64 +stretch-openmediavault-pine64: stretch-openmediavault-pine64-$(RELEASE_NAME)-$(RELEASE).img.xz + +.PHONY: bionic-pinebook +bionic-pinebook: bionic-mate-pinebook bionic-lxde-pinebook + +.PHONY: stretch-pinebook +stretch-pinebook: stretch-minimal-pinebook + +.PHONY: linux-pinebook +linux-pinebook: simple-image-pinebook bionic-pinebook stretch-pinebook + +.PHONY: bionic-minimal-pine64 +bionic-minimal-pine64: bionic-minimal-pine64-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz + +.PHONY: linux-pine64 +linux-pine64: simple-image-pine64 bionic-minimal-pine64 stretch-minimal-pine64 + +.PHONY: bionic-minimal-sopine +bionic-minimal-sopine: bionic-minimal-sopine-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz + +.PHONY: linux-sopine +linux-sopine: simple-image-sopine bionic-minimal-sopine stretch-minimal-sopine + +.PHONY: shell +shell: + @docker build -t build-environment:build-pine64-image build-environment/ + @docker run --rm -it -v $(CURDIR):$(CURDIR) -w $(CURDIR) --privileged build-environment:build-pine64-image diff --git a/README.md b/README.md index 0076ac4a..5f9a0a39 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -Various scripts i created while looking into Pine64 U-Boot and booting. +Various scripts i created (ayufan) based on @longsleep changes to help with automated Linux building. ## License diff --git a/blobs/README.md b/blobs/README.md deleted file mode 100644 index 6ccede0a..00000000 --- a/blobs/README.md +++ /dev/null @@ -1,38 +0,0 @@ -# Binary blobs extracted from A64 BSP - -Not everything to boot an A64 has been released as source. While that is -this is questionable in itself, for now one has to stick with the blobs -as found in the BSP. This folder holds the collection as extracted -from the BSP found on the Pine64 wiki. - -BSP download: http://wiki.pine64.org/index.php/Pine_A64_Software_Release - -## Boot0 boot loader - -The boot0 loader is the first thing executed. It is extracted from the -Android image. At this time, Allwinner has not released the source code for -boot0 for A64. - -Android image download: http://wiki.pine64.org/index.php/Pine_A64_Software_Release#Android_Image_Release_20160112 - -### Extract yourself like this - -```bash -dd if="$IMAGE" bs=1k skip=8 count=32 of=boot0.bin -``` - -## SCP firmware for the on-SoC management controller - -Binary blob scp.bin taken from the BSP `tools/pack/chips/sun50iw1p1/bin/scp.bin`. - -## Device tree for U-Boot and BSP Kernel - -The U-Boot uses its own FDT. A binary dtb has been extraced from the BSP `out/sun50iw1p1/android/common/sunxi.dtb` and dumped as source to `pine64.dts` with the `fdtdump` -utility from git://git.kernel.org/pub/scm/utils/dtc/dtc.git. This device tree -also works for booting the BSP Kernel. Some values in the device tree have -been changed to match the values which are found in the Android image. - -## FEX description for U-Boot - -The FEX file is minimal and does not contain any settings. It is just required -to get the corret boot loader format to make the U-Boot acceptable to boot0. diff --git a/blobs/boot0.bin b/blobs/boot0.bin deleted file mode 100644 index 3ad8341f..00000000 Binary files a/blobs/boot0.bin and /dev/null differ diff --git a/blobs/boot0pinebook.bin b/blobs/boot0pinebook.bin deleted file mode 100644 index 02d60736..00000000 Binary files a/blobs/boot0pinebook.bin and /dev/null differ diff --git a/blobs/boot0so.bin b/blobs/boot0so.bin deleted file mode 100644 index 78a1ebff..00000000 Binary files a/blobs/boot0so.bin and /dev/null differ diff --git a/blobs/pine64.dts b/blobs/pine64.dts deleted file mode 100644 index 7d880b2f..00000000 --- a/blobs/pine64.dts +++ /dev/null @@ -1,3441 +0,0 @@ -/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/blobs/pine64noplus.dts b/blobs/pine64noplus.dts deleted file mode 100644 index 850e8ad9..00000000 --- a/blobs/pine64noplus.dts +++ /dev/null @@ -1,3441 +0,0 @@ -/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/blobs/pine64pinebook.dts b/blobs/pine64pinebook.dts deleted file mode 100644 index bfd2bc8a..00000000 --- a/blobs/pine64pinebook.dts +++ /dev/null @@ -1,3441 +0,0 @@ -/dts-v1/; - -/memreserve/ 0x0000000045000000 0x0000000000200000; -/memreserve/ 0x0000000041010000 0x0000000000010000; -/memreserve/ 0x0000000041020000 0x0000000000000800; -/memreserve/ 0x0000000040100000 0x0000000000004000; -/memreserve/ 0x0000000040104000 0x0000000000001000; -/memreserve/ 0x0000000040105000 0x0000000000001000; -/ { - model = "Pinebook"; - compatible = "pine64,pine64-plus,pinebook64"; - 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>; - }; - - s_uart0@0 { - linux,phandle = <0xb5>; - phandle = <0xb5>; - 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 = <0xb6>; - phandle = <0xb6>; - 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 = <0xb7>; - phandle = <0xb7>; - 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@0 { - allwinner,pins = "PE14", "PE15"; - allwinner,pname = "twi2_scl", "twi2_sda"; - allwinner,function = "twi2"; - allwinner,muxsel = <0x3>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x2e>; - phandle = <0x2e>; - }; - - 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>; - }; - - gmac@0 { - allwinner,pins = "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PD16", "PD17", "PD18", "PD19", "PD20", "PD21", "PD22", "PD23"; - allwinner,function = "gmac0"; - allwinner,muxsel = <0x4>; - allwinner,drive = <0x3>; - allwinner,pull = <0x0>; - linux,phandle = <0x8e>; - phandle = <0x8e>; - }; - - 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>; - }; - - gmac_para@0 { - linux,phandle = <0x9e>; - phandle = <0x9e>; - allwinner,pins = "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PA16", "PA17", "PA18", "PA19", "PA20", "PA21", "PA22", "PA23", "PA24", "PA25", "PA26", "PA27"; - allwinner,function = "gmac_para"; - allwinner,pname = "gmac_txd0", "gmac_txd1", "gmac_txd2", "gmac_txd3", "gmac_txd4", "gmac_txd5", "gmac_txd6", "gmac_txd7", "gmac_txclk", "gmac_txen", "gmac_gtxclk", "gmac_rxd0", "gmac_rxd1", "gmac_rxd2", "gmac_rxd3", "gmac_rxd4", "gmac_rxd5", "gmac_rxd6", "gmac_rxd7", "gmac_rxdv", "gmac_rxclk", "gmac_txerr", "gmac_rxerr", "gmac_col", "gmac_crs", "gmac_clkin", "gmac_mdc", "gmac_mdio"; - allwinner,muxsel = <0x2>; - 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>; - }; - - uart0@0 { - linux,phandle = <0xa1>; - phandle = <0xa1>; - 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 = <0xa2>; - phandle = <0xa2>; - 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 = <0xa3>; - phandle = <0xa3>; - 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 = <0xa4>; - phandle = <0xa4>; - allwinner,pins = "PH4", "PH5", "PH6", "PH7"; - allwinner,function = "uart3"; - allwinner,pname = "uart3_tx", "uart3_rx", "uart3_rts", "uart3_cts"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x1>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - uart4@0 { - linux,phandle = <0xa5>; - phandle = <0xa5>; - 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 = <0xa6>; - phandle = <0xa6>; - 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 = <0xa7>; - phandle = <0xa7>; - 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 = <0xa8>; - phandle = <0xa8>; - 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 = <0xa9>; - phandle = <0xa9>; - 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 = <0xaa>; - phandle = <0xaa>; - 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 = <0xab>; - phandle = <0xab>; - 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>; - }; - - lcd0@0 { - linux,phandle = <0xac>; - phandle = <0xac>; - allwinner,pins = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PD16", "PD17", "PD18", "PD19", "PD20", "PD21"; - allwinner,function = "lcd0"; - allwinner,pname = "lcdd2", "lcdd3", "lcdd4", "lcdd5", "lcdd6", "lcdd7", "lcdd10", "lcdd11", "lcdd12", "lcdd13", "lcdd14", "lcdd15", "lcdd18", "lcdd19", "lcdd20", "lcdd21", "lcdd22", "lcdd23", "lcdclk", "lcdde", "lcdhsync", "lcdvsync"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x0>; - allwinner,drive = <0x3>; - allwinner,data = <0xffffffff>; - }; - - lcd0@1 { - linux,phandle = <0xad>; - phandle = <0xad>; - allwinner,pins = "PD12", "PD13", "PD14", "PD15", "PD16", "PD17", "PD18", "PD19", "PD20", "PD21"; - allwinner,function = "lcd0"; - allwinner,pname = "lcdd0", "lcdd1", "lcdd2", "lcdd3", "lcdd4", "lcdd5", "lcdd6", "lcdd7", "lcdd8", "lcdd9"; - allwinner,muxsel = <0x7>; - allwinner,pull = <0x0>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - pwm0@0 { - linux,phandle = <0xae>; - phandle = <0xae>; - 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 = <0xaf>; - phandle = <0xaf>; - 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 = <0xb0>; - phandle = <0xb0>; - 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 = <0xb1>; - phandle = <0xb1>; - 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 = <0xb2>; - phandle = <0xb2>; - 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 = <0xb3>; - phandle = <0xb3>; - 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 = <0xb4>; - phandle = <0xb4>; - 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 = <0xb8>; - phandle = <0xb8>; - 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>; - }; - }; - - 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 = <0x0>; - ir_addr_code = <0x0>; - status = "disabled"; - 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 = <0xb5>; - }; - - 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 = <0xb6>; - }; - - s_jtag0 { - compatible = "allwinner,s_jtag"; - pinctrl-names = "default"; - status = "disabled"; - device_type = "s_jtag0"; - pinctrl-0 = <0xb7>; - }; - - 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 = <0xa1>; - }; - - 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 = <0xa2>; - }; - - 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 = "disabled"; - pinctrl-0 = <0xa3>; - }; - - 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 = "disabled"; - pinctrl-0 = <0xa4>; - }; - - 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 = "disabled"; - pinctrl-0 = <0xa5>; - }; - - 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-0 = <0x2e>; - pinctrl-1 = <0x2f>; - status = "disabled"; - }; - - usbc0@0 { - device_type = "usbc0"; - compatible = "allwinner,sunxi-otg-manager"; - usb_port_type = <0x1>; - usb_detect_type = <0x0>; - usb_det_vbus_gpio = "axp_ctrl"; - usb_host_init_state = <0x0>; - usb_regulator_io = "nocare"; - usb_wakeup_suspend = <0x0>; - usb_luns = <0x3>; - usb_serial_unique = <0x1>; - usb_serial_number = "20080411"; - rndis_wceis = <0x1>; - status = "okay"; - usb_id_gpio; - usb_drv_vbus_gpio = <0x31 0xfffe 0x3 0x1 0x0 0xffffffff 0x0>; - }; - - 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 = <0x0>; - 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 = <0xb4>; - }; - - 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 = <0xa6 0xa7>; - }; - - 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 = <0xa8 0xa9>; - }; - - 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 = "okay"; - non-removable; - pinctrl-0 = <0xb3>; - 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 = <0xb1>; - 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 = <0xb2>; - 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 = <0x1>; - screen0_output_mode = <0x4>; - 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 = <0x1>; - lcd_driver_name = "anx9804_panel"; - lcd_model_name = <0x2>; - lcd_backlight = <0x32>; - lcd_if = <0x0>; - lcd_x = <0x556>; - lcd_y = <0x300>; - lcd_width = <0x100>; - lcd_height = <0x90>; - lcd_dclk_freq = <0x48>; - lcd_pwm_used = <0x1>; - lcd_pwm_ch = <0x0>; - lcd_pwm_freq = <0x2ee0>; - lcd_pwm_pol = <0x0>; - lcd_pwm_max_limit = <0xfa>; - lcd_hbp = <0x40>; - lcd_ht = <0x5dc>; - lcd_hspw = <0x36>; - lcd_vbp = <0x14>; - lcd_vt = <0x320>; - lcd_vspw = <0x5>; - lcd_lvds_if = <0x0>; - lcd_lvds_colordepth = <0x0>; - lcd_lvds_mode = <0x0>; - lcd_frm = <0x1>; - lcd_hv_clk_phase = <0x0>; - lcd_hv_sync_polarity = <0x0>; - lcd_dsi_if = <0x0>; - lcd_dsi_lane = <0x4>; - lcd_dsi_format = <0x0>; - lcd_dsi_te = <0x0>; - lcd_gamma_en = <0x0>; - lcd_bright_curve_en = <0x0>; - lcd_cmap_en = <0x0>; - lcd_edp_tx_rate = <0x2>; - lcd_edp_tx_lane = <0x2>; - lcd_edp_colordepth = <0x1>; - lcdgamma4iep = <0x16>; - lcd_bl_en = <0x30 0x3 0x17 0x1 0x0 0xffffffff 0x1>; - lcd_bl_en_power = "none"; - lcd_power = "vcc-lvds"; - lcd_power1 = "vcc-mipi"; - lcd_power2 = "vcc-hsic-12"; - lcd_gpio_0 = <0x30 0x3 0x18 0x1 0x0 0xffffffff 0x0>; - lcd_gpio_1 = <0x30 0x7 0x6 0x1 0x0 0xffffffff 0x1>; - lcd_gpio_2 = <0x30 0x0 0x8 0x0 0x1 0xffffffff 0x0>; - lcd_gpio_3 = <0x30 0x0 0x9 0x0 0x1 0xffffffff 0x0>; - pinctrl-0 = <0xac>; - lcd_pin_power = "vcc-pd"; - pinctrl-1 = <0xad>; - }; - - 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 = <0x1>; - pinctrl-0 = <0xae>; - pinctrl-1 = <0xaf>; - }; - - 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>; - }; - - boot_disp { - compatible = "allwinner,boot_disp"; - device_type = "boot_disp"; - output_disp = <0x0>; - output_type = <0x1>; - output_mode = <0x4>; - }; - - 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 = <0x0>; - status = "okay"; - pinctrl-0 = <0xb0>; - csi0_mck = <0x30 0x4 0x1 0x0 0x0 0x1 0x0>; - - dev@0 { - csi0_dev0_mname = "bf3703"; - csi0_dev0_twi_addr = <0x3e>; - 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 = <0x1b7740>; - 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 = "okay"; - device_type = "csi0_dev0"; - csi0_dev0_afvdd; - csi0_dev0_afvdd_vol; - csi0_dev0_power_en; - csi0_dev0_reset = <0x30 0x4 0xe 0x0 0x0 0x1 0x0>; - csi0_dev0_pwdn = <0x30 0x4 0xf 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 = <0xb8>; - }; - - 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 = <0x79>; - pmu_battery_cap = <0x27dc>; - pmu_runtime_chgcur = <0x708>; - 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 = <0x1>; - 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 = <0x2>; - pmu_bat_para11 = <0x3>; - pmu_bat_para12 = <0xa>; - pmu_bat_para13 = <0x12>; - pmu_bat_para14 = <0x1e>; - pmu_bat_para15 = <0x2c>; - pmu_bat_para16 = <0x32>; - pmu_bat_para17 = <0x36>; - pmu_bat_para18 = <0x3a>; - pmu_bat_para19 = <0x3d>; - pmu_bat_para20 = <0x42>; - pmu_bat_para21 = <0x48>; - pmu_bat_para22 = <0x4d>; - pmu_bat_para23 = <0x52>; - pmu_bat_para24 = <0x55>; - pmu_bat_para25 = <0x5b>; - pmu_bat_para26 = <0x60>; - 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_charge_ltf = <0x8d5>; - pmu_bat_charge_htf = <0x184>; - 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 vcc-dsi-33 vcc-sensor"; - regulator13 = "axp81x_dldo2 none vcc-mipi"; - regulator14 = "axp81x_dldo3 none avdd-csi"; - regulator15 = "axp81x_dldo4 none vcc-wifi-io"; - regulator16 = "axp81x_eldo1 none vcc-cpvdd vcc-pc vcc-pg"; - regulator17 = "axp81x_eldo2 none vcc-lcd-0 hall-vcc-18"; - 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"; - }; - - 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 = "okay"; - nand0_support_2ch = <0x0>; - pinctrl-0 = <0xaa 0xab>; - }; - - 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 = <0x5f>; - type = "passive"; - hysteresis = <0x0>; - linux,phandle = <0x8d>; - phandle = <0x8d>; - }; - - t6 { - temperature = <0x6e>; - 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 0x40000 0x0 0x1c00000 0x0 0x30>; - pinctrl-names = "default"; - pinctrl-0 = <0x8e>; - interrupts = <0x0 0x52 0x4>; - interrupt-names = "gmacirq"; - clocks = <0x8f>; - clock-names = "gmac"; - phy-mode = "rgmii"; - tx-delay = <0x7>; - rx-delay = <0x1f>; - gmac_power1 = "axp81x_dldo2:2500000"; - gmac_power2 = "axp81x_eldo2:1800000"; - gmac_power3 = "axp81x_fldo1:1200000"; - status = "disable"; - }; - - 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 = <0x9c4>; - dldo3_vol = <0xaf0>; - dldo4_vol = <0xf4f24>; - eldo1_vol = <0xf4948>; - eldo2_vol = <0x708>; - eldo3_vol = <0x708>; - fldo1_vol = <0x4b0>; - fldo2_vol = <0xf468c>; - gpio0_vol = <0xf4e5c>; - }; - - 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>; - tm4_smx_fx_0 = <0x0>; - tm4_smx_fx_1 = <0x0>; - tm4_smx_fx_2 = <0x2fffff>; - tm4_smx_fx_3 = <0x0>; - tm4_smx_fx_4 = <0xdffff>; - tm4_smx_fx_5 = <0x0>; - tm4_smx_fx_6 = <0xd2fffff>; - tm4_smx_fx_7 = <0xb2d>; - tm4_smx_fx_8 = <0x0>; - tm4_smx_fx_9 = <0x0>; - }; - - 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 = <0x0>; - pinctrl-0 = <0x9d>; - }; - - clock { - device_type = "clock"; - pll4 = <0x12c>; - pll6 = <0x258>; - pll8 = <0x168>; - pll9 = <0x129>; - pll10 = <0x108>; - }; - - gmac_para { - device_type = "gmac_para"; - gmac_used = <0x0>; - pinctrl-0 = <0x9e>; - }; - - 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 = "gt9271_D116"; - ctp_twi_id = <0x0>; - ctp_twi_addr = <0x40>; - ctp_screen_max_x = <0x556>; - ctp_screen_max_y = <0x300>; - ctp_revert_x_flag = <0x0>; - ctp_revert_y_flag = <0x0>; - ctp_exchange_x_y_flag = <0x0>; - ctp_int_port = <0x30 0x7 0x4 0x6 0xffffffff 0xffffffff 0xffffffff>; - ctp_wakeup = <0x30 0x7 0x8 0x1 0xffffffff 0xffffffff 0x1>; - 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 = "disabled"; - gsensor_twi_id = <0x1>; - gsensor_twi_addr = <0x1d>; - gsensor_vcc_io = "vcc-sensor"; - 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 = <0x0>; - 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 = <0xa>; - key_min = <0xa>; - }; - - fastboot_key { - device_type = "fastboot_key"; - key_max = <0x4>; - 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 = <0x228>; - dram_type = <0x3>; - dram_zq = <0x3b3bbb>; - dram_odt_en = <0x1>; - dram_para1 = <0x10e410e4>; - dram_para2 = <0x1000>; - dram_mr0 = <0x1840>; - dram_mr1 = <0x40>; - dram_mr2 = <0x18>; - dram_mr3 = <0x2>; - dram_tpr0 = <0x4a2195>; - dram_tpr1 = <0x2424190>; - dram_tpr2 = <0x8b060>; - dram_tpr3 = <0x4b005dc>; - dram_tpr4 = <0x0>; - dram_tpr5 = <0x0>; - dram_tpr6 = <0x0>; - dram_tpr7 = <0x0>; - dram_tpr8 = <0x0>; - dram_tpr9 = <0x0>; - dram_tpr10 = <0x8808>; - dram_tpr11 = <0x20250000>; - dram_tpr12 = <0x0>; - dram_tpr13 = <0x4000800>; - device_type = "dram"; - }; - - memory@40000000 { - device_type = "memory"; - reg = <0x0 0x40000000 0x0 0x40000000>; - }; - - 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 0x200>; - }; - - 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 = <0x1c8>; - 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>; - }; - - 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>; - }; - - hall { - compatible = "allwinner,hall"; - hall_pos = <0x0>; - status = "okay"; - device_type = "hall"; - hall_power = "hall-vcc-18"; - hall_power_vol = <0x708>; - hall_gpio = <0x79 0xb 0xc 0x6 0xffffffff 0xffffffff 0x0>; - }; -}; diff --git a/blobs/pine64so.dts b/blobs/pine64so.dts deleted file mode 100644 index 1c610fce..00000000 --- a/blobs/pine64so.dts +++ /dev/null @@ -1,3436 +0,0 @@ -/dts-v1/; - -/memreserve/ 0x0000000045000000 0x0000000000200000; -/memreserve/ 0x0000000041010000 0x0000000000010000; -/memreserve/ 0x0000000041020000 0x0000000000000800; -/memreserve/ 0x0000000040100000 0x0000000000004000; -/memreserve/ 0x0000000040104000 0x0000000000001000; -/memreserve/ 0x0000000040105000 0x0000000000001000; -/ { - model = "SOPine"; - compatible = "pine64,pine64-plus,sopine"; - 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>; - }; - - 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"; - non-removable = <0x1>; - pinctrl-0 = <0xb2>; - cd-gpios = <0x30 0x5 0x6 0x0 0x1 0x2 0x0>; - 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 = <0x3>; - }; - - 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 0x40000 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 = "disabled"; - 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 = <0x228>; - dram_type = <0x7>; - dram_zq = <0x3b3bdd>; - dram_odt_en = <0x1>; - dram_para1 = <0x10e410e4>; - dram_para2 = <0x1000>; - dram_mr0 = <0x1840>; - dram_mr1 = <0x40>; - dram_mr2 = <0x18>; - dram_mr3 = <0x2>; - dram_tpr0 = <0x4a2195>; - dram_tpr1 = <0x2424190>; - dram_tpr2 = <0x8b060>; - 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 = <0x4000900>; - device_type = "dram"; - }; - - memory@40000000 { - device_type = "memory"; - reg = <0x0 0x40000000 0x0 0x40000000>; - }; - - 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/blobs/scp.bin b/blobs/scp.bin deleted file mode 100644 index dcb803bf..00000000 Binary files a/blobs/scp.bin and /dev/null differ diff --git a/blobs/sys_config.fex b/blobs/sys_config.fex deleted file mode 100644 index 2025b869..00000000 --- a/blobs/sys_config.fex +++ /dev/null @@ -1,2 +0,0 @@ -[product] -version = "100" diff --git a/bootlogo/Makefile b/bootlogo/Makefile deleted file mode 100644 index 489625e0..00000000 --- a/bootlogo/Makefile +++ /dev/null @@ -1,15 +0,0 @@ -LOGO := pine64-logo-120x175.png - -all: bootlogo-pine64-1366x768.png - -clean: - rm bootlogo-pine64-*.png - rm bootlogo-pine64-*.bmp - -bootlogo-pine64-%.bmp: - convert -size $* xc:black $@.background.bmp - convert $@.background.bmp $(LOGO) -gravity center -composite -matte $@ - rm $@.background.bmp - -bootlogo-pine64-%.png: bootlogo-pine64-%.bmp - convert $< $@ diff --git a/bootlogo/battery/Makefile b/bootlogo/battery/Makefile deleted file mode 100644 index e070fa87..00000000 --- a/bootlogo/battery/Makefile +++ /dev/null @@ -1,23 +0,0 @@ -# https://github.com/longsleep/u-boot-pine64/blob/55c9c8c8ac005b1c00ac948386c60c4a741ebaa9/board/sunxi/common/power_check.c - -SIZE := 1366x768 - -all: low_pwr.bmp bempty.bmp battery_charge.bmp - -clean: - rm -f icon-*.bmp - rm -f low_pwr.bmp - rm -f bempty.bmp - rm -f battery_charge.bmp - -low_pwr.bmp: icon-battery-low.bmp - convert $< -gravity center -background black -extent $(SIZE) $@ - -bempty.bmp: icon-battery-empty.bmp - convert $< -gravity center -background black -extent $(SIZE) $@ - -battery_charge.bmp: icon-charge.bmp - convert $< -gravity center -background black -extent $(SIZE) $@ - -icon-%.bmp: - convert $*.svg -size 128x128 -background black -flatten $@ diff --git a/bootlogo/battery/README.md b/bootlogo/battery/README.md deleted file mode 100644 index 0c4393dd..00000000 --- a/bootlogo/battery/README.md +++ /dev/null @@ -1,4 +0,0 @@ -## Battery icons - -This battery icons are loaded by u-boot in certain bootup stages. See -https://github.com/longsleep/u-boot-pine64/blob/55c9c8c8ac005b1c00ac948386c60c4a741ebaa9/board/sunxi/common/power_check.c#L58-L81 for details. diff --git a/bootlogo/battery/battery-empty.svg b/bootlogo/battery/battery-empty.svg deleted file mode 100644 index 5b01852f..00000000 --- a/bootlogo/battery/battery-empty.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/bootlogo/battery/battery-full.svg b/bootlogo/battery/battery-full.svg deleted file mode 100644 index ceb6da27..00000000 --- a/bootlogo/battery/battery-full.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/bootlogo/battery/battery-half.svg b/bootlogo/battery/battery-half.svg deleted file mode 100644 index 386269d7..00000000 --- a/bootlogo/battery/battery-half.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/bootlogo/battery/battery-low.svg b/bootlogo/battery/battery-low.svg deleted file mode 100644 index fda971b2..00000000 --- a/bootlogo/battery/battery-low.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/bootlogo/battery/battery_charge.bmp b/bootlogo/battery/battery_charge.bmp deleted file mode 100644 index 59bda594..00000000 Binary files a/bootlogo/battery/battery_charge.bmp and /dev/null differ diff --git a/bootlogo/battery/bempty.bmp b/bootlogo/battery/bempty.bmp deleted file mode 100644 index d1563e60..00000000 Binary files a/bootlogo/battery/bempty.bmp and /dev/null differ diff --git a/bootlogo/battery/charge.svg b/bootlogo/battery/charge.svg deleted file mode 100644 index 5d884196..00000000 --- a/bootlogo/battery/charge.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/bootlogo/battery/icon-battery-empty.bmp b/bootlogo/battery/icon-battery-empty.bmp deleted file mode 100644 index d16fcaf6..00000000 Binary files a/bootlogo/battery/icon-battery-empty.bmp and /dev/null differ diff --git a/bootlogo/battery/icon-battery-low.bmp b/bootlogo/battery/icon-battery-low.bmp deleted file mode 100644 index a2f5c487..00000000 Binary files a/bootlogo/battery/icon-battery-low.bmp and /dev/null differ diff --git a/bootlogo/battery/icon-charge.bmp b/bootlogo/battery/icon-charge.bmp deleted file mode 100644 index be12ec88..00000000 Binary files a/bootlogo/battery/icon-charge.bmp and /dev/null differ diff --git a/bootlogo/battery/low_pwr.bmp b/bootlogo/battery/low_pwr.bmp deleted file mode 100644 index ac5a8d48..00000000 Binary files a/bootlogo/battery/low_pwr.bmp and /dev/null differ diff --git a/bootlogo/bootlogo-pine64-1366x768.bmp b/bootlogo/bootlogo-pine64-1366x768.bmp deleted file mode 100644 index 73deaba5..00000000 Binary files a/bootlogo/bootlogo-pine64-1366x768.bmp and /dev/null differ diff --git a/bootlogo/bootlogo-pine64-1366x768.png b/bootlogo/bootlogo-pine64-1366x768.png deleted file mode 100644 index fb87cf19..00000000 Binary files a/bootlogo/bootlogo-pine64-1366x768.png and /dev/null differ diff --git a/bootlogo/pine64-logo-120x175.png b/bootlogo/pine64-logo-120x175.png deleted file mode 100644 index 2c5ba8cd..00000000 Binary files a/bootlogo/pine64-logo-120x175.png and /dev/null differ diff --git a/build-environment/Dockerfile b/build-environment/Dockerfile new file mode 100644 index 00000000..c721631b --- /dev/null +++ b/build-environment/Dockerfile @@ -0,0 +1,22 @@ +FROM ubuntu:xenial + +RUN apt-get update -y && \ + apt-get install -y python git-core gnupg flex bison gperf build-essential \ + zip curl zlib1g-dev libc6-dev-i386 \ + lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \ + libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \ + htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \ + dosfstools gcc-aarch64-linux-gnu g++-aarch64-linux-gnu \ + gcc-arm-linux-gnueabi g++-arm-linux-gnueabi ccache \ + sudo cpio nano vim kmod kpartx wget bsdtar qemu-user-static \ + pxz ruby-dev debootstrap multistrap libssl-dev jq + +RUN gem install fpm + +RUN curl -L https://github.com/aktau/github-release/releases/download/v0.6.2/linux-amd64-github-release.tar.bz2 | tar -C /tmp -jx && \ + mv /tmp/bin/linux/amd64/github-release /usr/local/bin/ + +RUN which github-release + +ENV USER=root \ + HOME=/root diff --git a/build-pine64-image.sh b/build-pine64-image.sh index 01014032..6dd69b8d 100755 --- a/build-pine64-image.sh +++ b/build-pine64-image.sh @@ -8,13 +8,21 @@ # - https://www.stdin.xyz/downloads/people/longsleep/pine64-images/simpleimage-pine64-latest.img.xz # - https://www.stdin.xyz/downloads/people/longsleep/pine64-images/linux/linux-pine64-latest.tar.xz" -SIMPLEIMAGE="$1" -KERNELTAR="$2" -DISTRO="$3" -COUNT="$4" +OUT_IMAGE="$1" +SIMPLEIMAGE="$2" +KERNELTAR="$3" +PACKAGEDEB="$4" +DISTRO="$5" +MODEL="$6" +VARIANT="$7" +SIZE="${8:-3650}" +if [[ -z "$MODEL" ]]; then + MODEL="pine64" +fi +export MODEL if [ -z "$SIMPLEIMAGE" -o -z "$KERNELTAR" ]; then - echo "Usage: $0 [distro] [count]" + echo "Usage: $0 [distro] [model] [variant: mate, i3, empty] [size (MiB)]" exit 1 fi @@ -27,41 +35,63 @@ if [ -z "$DISTRO" ]; then DISTRO="xenial" fi -if [ -z "$COUNT" ]; then - COUNT=1 -fi +case "$VARIANT" in + minimal) + SIZE=1024 + ;; + + i3) + SIZE=2048 + ;; + + mate) + SIZE=5120 + ;; + + lxde) + SIZE=3500 + ;; + + openmediavault) + SIZE=2048 + ;; + + *) + echo "Unknown VARIANT: $VARIANT" + exit 1 + ;; +esac SIMPLEIMAGE=$(readlink -f "$SIMPLEIMAGE") KERNELTAR=$(readlink -f "$KERNELTAR") -SIZE=3650 # MiB -DATE=$(date +%Y%m%d_%H%M%S_%Z) - PWD=$(readlink -f .) -TEMP=$(mktemp -p $PWD -d -t "pine64-build-XXXXXXXXXX") -IMAGE="$DISTRO-pine64-bspkernel-$DATE-$COUNT.img" +TEMP=$(mktemp -p $PWD -d -t "$MODEL-build-XXXXXXXXXX") +IMAGE="$(basename "$OUT_IMAGE")" +OUT_IMAGE="$(readlink -f "$IMAGE")" echo "> Building in $TEMP ..." cleanup() { local arg=$? echo "> Cleaning up ..." umount "$TEMP/boot" || true + umount $TEMP/rootfs/* || true umount "$TEMP/rootfs" || true kpartx -sd "$TEMP/$IMAGE" || true + kpartx -sd "$OUT_IMAGE" || true rmdir "$TEMP/boot" rmdir "$TEMP/rootfs" - rm "$TEMP/*" || true - rmdir "$TEMP" + rm -r "$TEMP" exit $arg } trap cleanup EXIT -set -x +set -ex # Unpack unxz -k --stdout "$SIMPLEIMAGE" > "$TEMP/$IMAGE" # Enlarge -dd if=/dev/zero bs=1M count=$SIZE >> "$TEMP/$IMAGE" +dd if=/dev/zero bs=1M seek=$(($SIZE-1)) count=1 of="$TEMP/$IMAGE" # Resize echo ",+,L" | sfdisk -N 2 -L -uS --force "$TEMP/$IMAGE" @@ -81,6 +111,8 @@ mount /dev/mapper/${DEVICENAME}p1 "$TEMP/boot" mount /dev/mapper/${DEVICENAME}p2 "$TEMP/rootfs" sleep 2 -(cd simpleimage && ./make_rootfs.sh "$TEMP/rootfs" "$KERNELTAR" "$DISTRO" "$TEMP/boot") +(cd simpleimage && ./make_rootfs.sh "$TEMP/rootfs" "$KERNELTAR" "$PACKAGEDEB" "$DISTRO" "$TEMP/boot" "$MODEL" "$VARIANT") + +mv -v "$TEMP/$IMAGE" "$OUT_IMAGE" -mv -v "$TEMP/$IMAGE" . +fstrim "$TEMP/rootfs" diff --git a/convert-pine64-image.sh b/convert-pine64-image.sh deleted file mode 100755 index 981ca791..00000000 --- a/convert-pine64-image.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/sh -# -# This scripts converts an existing uncompressed Pine64 disk image between the -# different Pine64 variants by replacing the bootloader (boot0 and U-Boot) while -# keeping all the rest intact. -# - -set -e - -DISKIMAGE="$1" -MODEL="$2" - -if [ -z "$DISKIMAGE" -o -z "$MODEL" ]; then - echo "Usage: $0 " - exit 1 -fi - -if [ "$MODEL" = "pine64" ]; then - MODEL="" -fi -SUFFIX="" -if [ -n "$MODEL" ]; then - SUFFIX="-$MODEL" -fi - -DISKIMAGE=$(readlink -f "$DISKIMAGE") - -# check image for boot0 -boot0headerpos=$((8*1024+4)) -boot0header=$(xxd -p -s $boot0headerpos -l 4 "$DISKIMAGE") -if [ "$boot0header" != "65474f4e" ]; then - echo "Error: Target image has no eGON header, aborting!" - exit 1 -fi - -ubootheaderpos=$((19096*1024+4)) -ubootheader=$(xxd -p -s $ubootheaderpos -l 5 "$DISKIMAGE") -if [ "$ubootheader" != "75626f6f74" ]; then - echo "Error: Target image has no uboot header, aborting!" - exit 1 -fi - -set -x -(cd simpleimage && ./flash_boot0_only.sh "$DISKIMAGE" "../blobs/boot0$MODEL.bin") -(cd simpleimage && ./flash_u-boot_only.sh "$DISKIMAGE" "../build/u-boot-with-dtb$SUFFIX.bin") -set +x - -echo "Done - image converted to $2" diff --git a/kernel/README.md b/kernel/README.md index 106025a5..7b12e029 100644 --- a/kernel/README.md +++ b/kernel/README.md @@ -36,11 +36,6 @@ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j4 LOCALVERSION= modules This creates the Kernel image in `arch/arm64/boot/Image`. -We do not compile a device tree with the BSP Kernel tree as it does not -contain any proper source for the Pine64. Instead this build repository -contains a device tree source in `blobs/pine64.dts` which was extracted and -dumped from BSP tarball. - With the BSP Kernel, MMC, USB and Ethernet (at 100baseTx-FD) work. And Arch Linux boots just fine when used as rootfs together with the rest of the tools found in this build scripts repository. diff --git a/kernel/install_kernel.sh b/kernel/install_kernel.sh index a52d0e1f..5541c5c5 100755 --- a/kernel/install_kernel.sh +++ b/kernel/install_kernel.sh @@ -18,18 +18,13 @@ if [ -z "$DEST" ]; then exit 1 fi -BLOBS="../blobs" LINUX="../linux" INITRD="./initrd.gz" -BOOTLOGO="../bootlogo/bootlogo-pine64-1366x768.bmp" -BATTERY="../bootlogo/battery" # Targets file names as loaded by U-Boot. SUBFOLDER="pine64" -KERNEL="$SUBFOLDER/Image" +KERNEL="kernel" INITRD_IMG="initrd.img" -BOOTLOGO_TARGET="bootlogo.bmp" -BATTERY_TARGET="bat" if [ "$DEST" = "-" ]; then DEST="../build" @@ -79,32 +74,6 @@ else echo "Kernel with DRM driver!" basename="pine64drm" fi - - # Not found, use device tree from BSP. - echo "Compiling device tree from $BLOBS/${basename}.dts" - dtc -Odtb -o "$DEST/$SUBFOLDER/sun50i-a64-pine64-plus.dtb" "$BLOBS/${basename}.dts" - echo "Compiling device tree from $BLOBS/${basename}noplus.dts" - dtc -Odtb -o "$DEST/$SUBFOLDER/sun50i-a64-pine64.dtb" "$BLOBS/${basename}noplus.dts" - echo "Compiling device tree from $BLOBS/${basename}so.dts" - dtc -Odtb -o "$DEST/$SUBFOLDER/sun50i-a64-pine64-so.dtb" "$BLOBS/${basename}so.dts" - echo "Compiling device tree from $BLOBS/${basename}pinebook.dts" - dtc -Odtb -o "$DEST/$SUBFOLDER/sun50i-a64-pine64-pinebook.dtb" "$BLOBS/${basename}pinebook.dts" - - # Add bootlogo. - cp -v "$BOOTLOGO" "$DEST/$BOOTLOGO_TARGET" - # Add battery icons. - mkdir -p "$DEST/$BATTERY_TARGET" - cp -v "$BATTERY/bempty.bmp" "$DEST/$BATTERY_TARGET" - cp -v "$BATTERY/low_pwr.bmp" "$DEST/$BATTERY_TARGET" - cp -v "$BATTERY/battery_charge.bmp" "$DEST/$BATTERY_TARGET" -fi - -if [ ! -e "$DEST/uEnv.txt" ]; then - cat < "$DEST/uEnv.txt" -console=tty0 console=ttyS0,115200n8 no_console_suspend -kernel_filename=$KERNEL -initrd_filename=$INITRD_IMG -EOF fi sync diff --git a/kernel/make_kernel_tarball.sh b/kernel/make_kernel_tarball.sh index 4b1ddb96..2bdf0190 100755 --- a/kernel/make_kernel_tarball.sh +++ b/kernel/make_kernel_tarball.sh @@ -5,11 +5,12 @@ set -e DEST="$1" if [ -z "$DEST" ]; then - echo "Usage: $0 [linux-folder] [extra-version]" + echo "Usage: $0 [linux-folder] [extra-version]" exit 1 fi LINUX="../linux" +BOOT_TOOLS="../boot-tools" if [ -n "$2" ]; then LINUX="$2" @@ -33,18 +34,14 @@ trap cleanup EXIT ./install_kernel_modules.sh "$TEMP" "$LINUX" ./install_kernel_headers.sh "$TEMP" "$LINUX" +echo "Copying boot of boot-tools tools..." +pwd +cp -rv "$BOOT_TOOLS/boot/" "$TEMP/" + # Use uEnv.txt.in so we do not overwrite customizations on next update. mv "$TEMP/boot/uEnv.txt" "$TEMP/boot/uEnv.txt.in" -if [ -z "$EXTRAVERSION" -a -e "$LINUX/.version" ]; then - EXTRAVERSION=$(cat "$LINUX/.version") -else - EXTRAVERSION=$(date +%s) -fi - -VERSION="$(ls -1tr $TEMP/lib/modules/|tail -n1)-$EXTRAVERSION" - -echo "Building $VERSION ..." -tar -C "$TEMP" -cJ --owner=0 --group=0 --xform='s,./,,' -f "$DEST/linux-pine64-$VERSION.tar.xz" . +echo "Building $DEST ..." +tar -C "$TEMP" -ca --owner=0 --group=0 --xform='s,./,,' -f "$DEST" . -echo "Done - $DEST/linux-pine64-$VERSION.tar.xz" +echo "Done - $DEST" diff --git a/package/root/etc/X11/Xsession.d/30pine64-vdpau-sunxi b/package/root/etc/X11/Xsession.d/30pine64-vdpau-sunxi new file mode 100644 index 00000000..bea41651 --- /dev/null +++ b/package/root/etc/X11/Xsession.d/30pine64-vdpau-sunxi @@ -0,0 +1,3 @@ +if [ -d /sys/module/disp ]; then + export VDPAU_DRIVER=sunxi +end diff --git a/package/root/etc/X11/xorg.conf.d/40-pine64-armsoc.conf.disabled b/package/root/etc/X11/xorg.conf.d/40-pine64-armsoc.conf.disabled new file mode 100644 index 00000000..415abe43 --- /dev/null +++ b/package/root/etc/X11/xorg.conf.d/40-pine64-armsoc.conf.disabled @@ -0,0 +1,22 @@ +Section "Device" + Identifier "armsoc_sunxi" + Driver "armsoc" +# Option "Debug" "true" + Option "NoFlip" "true" +# Option "DRICard" "0" +# Option "BusID" "" +# Option "DriverName" "false" + Option "DRI2MaxBuffers" "2" + Option "InitFromFBDev" "/dev/fb0" + Option "CursorChannelID" "3" +EndSection + +Section "Screen" + Identifier "Mali-Screen" + Device "armsoc_sunxi" + DefaultDepth 24 + DefaultBpp 32 + SubSection "RGB565" + Depth 16 + EndSubSection +EndSection diff --git a/package/root/etc/X11/xorg.conf.d/40-pine64-fbturbo.conf b/package/root/etc/X11/xorg.conf.d/40-pine64-fbturbo.conf new file mode 100644 index 00000000..9133274a --- /dev/null +++ b/package/root/etc/X11/xorg.conf.d/40-pine64-fbturbo.conf @@ -0,0 +1,8 @@ +Section "Device" + Identifier "Allwinner A10/A13 FBDEV" + Driver "fbturbo" + Option "fbdev" "/dev/fb0" + Option "Backlight" "lcd0" + + Option "SwapbuffersWait" "true" +EndSection diff --git a/package/root/etc/X11/xorg.conf.d/50-pine64-pinebook-touchpad.conf b/package/root/etc/X11/xorg.conf.d/50-pine64-pinebook-touchpad.conf new file mode 100644 index 00000000..da0172f0 --- /dev/null +++ b/package/root/etc/X11/xorg.conf.d/50-pine64-pinebook-touchpad.conf @@ -0,0 +1,11 @@ +# Taken from https://github.com/longsleep/build-pine64-image/blob/master/simpleimage/platform-scripts/install_mate_desktop.sh#L67 + +Section "InputClass" + Identifier "HAILUCK CO.,LTD USB KEYBOARD" + MatchIsPointer "1" + MatchDevicePath "/dev/input/event*" + Option "AccelerationProfile" "2" + Option "AdaptiveDeceleration" "1" + Option "ConstantDeceleration" "2.4" # Pinebook 14" + #Option "ConstantDeceleration" "1.2" # Pinebook 11" +EndSection diff --git a/package/root/etc/chromium-browser/customizations/pine64-egl b/package/root/etc/chromium-browser/customizations/pine64-egl new file mode 100644 index 00000000..502fc2aa --- /dev/null +++ b/package/root/etc/chromium-browser/customizations/pine64-egl @@ -0,0 +1,6 @@ +# Options to pass to chromium-browser +if [ -d /sys/module/sunxidrm ]; then + CHROMIUM_FLAGS="$CHROMIUM_FLAGS \ + --use-gl=egl + " +fi diff --git a/package/root/etc/chromium-browser/customizations/pine64-optimisations b/package/root/etc/chromium-browser/customizations/pine64-optimisations new file mode 100644 index 00000000..1a9e9772 --- /dev/null +++ b/package/root/etc/chromium-browser/customizations/pine64-optimisations @@ -0,0 +1,9 @@ +# Options to pass to chromium-browser +CHROMIUM_FLAGS="$CHROMIUM_FLAGS \ +--disable-smooth-scrolling \ +--disable-low-res-tiling \ +--enable-low-end-device-mode \ +--num-raster-threads=4 \ +--profiler-timing=0 \ +--disable-composited-antialiasing \ +" diff --git a/package/root/etc/lightdm/lightdm-gtk-greeter.conf.d/99_xxx_pinebook.conf b/package/root/etc/lightdm/lightdm-gtk-greeter.conf.d/99_xxx_pinebook.conf new file mode 100644 index 00000000..2b5293c8 --- /dev/null +++ b/package/root/etc/lightdm/lightdm-gtk-greeter.conf.d/99_xxx_pinebook.conf @@ -0,0 +1,2 @@ +[greeter] +background=/usr/share/backgrounds/ubuntu-mate-pinebook/Pinebook-Wallpaper-6.jpg diff --git a/snappy/gadget/meta/icon.png b/package/root/etc/modprobe.d/blacklist-pine64.conf similarity index 100% rename from snappy/gadget/meta/icon.png rename to package/root/etc/modprobe.d/blacklist-pine64.conf diff --git a/simpleimage/configuration-files/modprobe.d/wifi-rt8723-pine64.conf b/package/root/etc/modprobe.d/wifi-rt8723-pine64.conf similarity index 100% rename from simpleimage/configuration-files/modprobe.d/wifi-rt8723-pine64.conf rename to package/root/etc/modprobe.d/wifi-rt8723-pine64.conf diff --git a/package/root/etc/modules-load.d/pine64-bt.conf b/package/root/etc/modules-load.d/pine64-bt.conf new file mode 100644 index 00000000..0b41ecfc --- /dev/null +++ b/package/root/etc/modules-load.d/pine64-bt.conf @@ -0,0 +1,2 @@ +8723bs_vq0 +hci_uart diff --git a/package/root/etc/modules-load.d/pine64-disp.conf b/package/root/etc/modules-load.d/pine64-disp.conf new file mode 100644 index 00000000..a8b86cd1 --- /dev/null +++ b/package/root/etc/modules-load.d/pine64-disp.conf @@ -0,0 +1,2 @@ +disp +hdmi diff --git a/simpleimage/configuration-files/modules-load.d/pine64-pinebook-hall.conf b/package/root/etc/modules-load.d/pine64-pinebook-hall.conf similarity index 86% rename from simpleimage/configuration-files/modules-load.d/pine64-pinebook-hall.conf rename to package/root/etc/modules-load.d/pine64-pinebook-hall.conf index dcd1b76f..d1a4863d 100644 --- a/simpleimage/configuration-files/modules-load.d/pine64-pinebook-hall.conf +++ b/package/root/etc/modules-load.d/pine64-pinebook-hall.conf @@ -1,2 +1,2 @@ # Auto load hall driver (LID close). -#hall +hall diff --git a/simpleimage/configuration-files/modules-load.d/pine64-speakers-jack.conf b/package/root/etc/modules-load.d/pine64-speakers-jack.conf similarity index 100% rename from simpleimage/configuration-files/modules-load.d/pine64-speakers-jack.conf rename to package/root/etc/modules-load.d/pine64-speakers-jack.conf diff --git a/package/root/etc/modules-load.d/pine64-sunxidrm.conf.disabled b/package/root/etc/modules-load.d/pine64-sunxidrm.conf.disabled new file mode 100644 index 00000000..5917becb --- /dev/null +++ b/package/root/etc/modules-load.d/pine64-sunxidrm.conf.disabled @@ -0,0 +1 @@ +sunxidrm diff --git a/package/root/etc/modules-load.d/pine64-wifi.conf b/package/root/etc/modules-load.d/pine64-wifi.conf new file mode 100644 index 00000000..6c623251 --- /dev/null +++ b/package/root/etc/modules-load.d/pine64-wifi.conf @@ -0,0 +1,2 @@ +8723bs +8723cs diff --git a/package/root/etc/network/interfaces.d/wlan1 b/package/root/etc/network/interfaces.d/wlan1 new file mode 100644 index 00000000..c8020c37 --- /dev/null +++ b/package/root/etc/network/interfaces.d/wlan1 @@ -0,0 +1,2 @@ +# Disable wlan1 by default (8723bs has two intefaces) +iface wlan1 inet manual diff --git a/simpleimage/configuration-files/pine64-firstboot.d/50-enable-pinebook-modules b/package/root/etc/pine64-firstboot.d/50-enable-pinebook-modules similarity index 100% rename from simpleimage/configuration-files/pine64-firstboot.d/50-enable-pinebook-modules rename to package/root/etc/pine64-firstboot.d/50-enable-pinebook-modules diff --git a/package/root/etc/systemd/system/pine64-first-boot.service b/package/root/etc/systemd/system/pine64-first-boot.service new file mode 100644 index 00000000..4d9c7488 --- /dev/null +++ b/package/root/etc/systemd/system/pine64-first-boot.service @@ -0,0 +1,10 @@ +[Unit] +Description=Pine A64 First boot +After=systemd-modules-load.service local-fs.target + +[Service] +Type=oneshot +ExecStart=/usr/local/sbin/pine64_first_boot.sh + +[Install] +WantedBy=multi-user.target diff --git a/simpleimage/systemd-services/pine64-firstboot.service b/package/root/etc/systemd/system/pine64-firstboot.service similarity index 100% rename from simpleimage/systemd-services/pine64-firstboot.service rename to package/root/etc/systemd/system/pine64-firstboot.service diff --git a/package/root/etc/systemd/system/pinebook-headphones.service b/package/root/etc/systemd/system/pinebook-headphones.service new file mode 100644 index 00000000..1ad7da12 --- /dev/null +++ b/package/root/etc/systemd/system/pinebook-headphones.service @@ -0,0 +1,10 @@ +[Unit] +Description=Enable headpohones +After=systemd-modules-load.service local-fs.target + +[Service] +Type=oneshot +ExecStart=/usr/local/sbin/pinebook_enable_headphones.sh + +[Install] +WantedBy=multi-user.target diff --git a/simpleimage/systemd-services/restart-network-manager-after-resume.service b/package/root/etc/systemd/system/restart-network-manager-after-resume.service similarity index 100% rename from simpleimage/systemd-services/restart-network-manager-after-resume.service rename to package/root/etc/systemd/system/restart-network-manager-after-resume.service diff --git a/simpleimage/systemd-services/restore-sound-after-resume.service b/package/root/etc/systemd/system/restore-sound-after-resume.service similarity index 100% rename from simpleimage/systemd-services/restore-sound-after-resume.service rename to package/root/etc/systemd/system/restore-sound-after-resume.service diff --git a/package/root/etc/systemd/system/rtk-hciattach.service b/package/root/etc/systemd/system/rtk-hciattach.service new file mode 100644 index 00000000..5b938aca --- /dev/null +++ b/package/root/etc/systemd/system/rtk-hciattach.service @@ -0,0 +1,8 @@ +[Unit] +Description=Realtek H5 bluetooth support + +[Service] +ExecStart=/usr/local/sbin/rtk_hciattach -n -s 115200 /dev/ttyS1 rtk_h5 + +[Install] +WantedBy=multi-user.target diff --git a/simpleimage/systemd-services/ssh-keygen.service b/package/root/etc/systemd/system/ssh-keygen.service similarity index 100% rename from simpleimage/systemd-services/ssh-keygen.service rename to package/root/etc/systemd/system/ssh-keygen.service diff --git a/simpleimage/systemd-services/store-sound-on-suspend.service b/package/root/etc/systemd/system/store-sound-on-suspend.service similarity index 100% rename from simpleimage/systemd-services/store-sound-on-suspend.service rename to package/root/etc/systemd/system/store-sound-on-suspend.service diff --git a/simpleimage/configuration-files/udev-rules.d/90-sunxi-disp-permission.rules b/package/root/etc/udev/rules.d/90-sunxi-disp-permission.rules similarity index 100% rename from simpleimage/configuration-files/udev-rules.d/90-sunxi-disp-permission.rules rename to package/root/etc/udev/rules.d/90-sunxi-disp-permission.rules diff --git a/package/root/etc/update-motd.d/05-figlet b/package/root/etc/update-motd.d/05-figlet new file mode 100755 index 00000000..263a6ccb --- /dev/null +++ b/package/root/etc/update-motd.d/05-figlet @@ -0,0 +1,5 @@ +#!/bin/sh + +test -x /usr/bin/figlet || exit 0 + +figlet $(hostname) diff --git a/package/root/etc/update-motd.d/11-pine-a64-help-text b/package/root/etc/update-motd.d/11-pine-a64-help-text new file mode 100755 index 00000000..4b03b1b3 --- /dev/null +++ b/package/root/etc/update-motd.d/11-pine-a64-help-text @@ -0,0 +1,14 @@ +#!/bin/sh + +if [ $(id -u) -eq 0 ]; then + echo "" + echo "Update system with:" + echo "" + echo " * pine64_update_kernel.sh" + echo " * pine64_update_uboot.sh" + echo " * pine64_update_package.sh" + + if [ -d /sys/devices/soc.0/1c10000.sdmmc/mmc_host/mmc1 ]; then + echo " * pine64_install_to_emmc.sh" + fi +fi diff --git a/package/root/lib/firmware/rtlbt/rtl8703a_config b/package/root/lib/firmware/rtlbt/rtl8703a_config new file mode 100755 index 00000000..2c53f8f0 Binary files /dev/null and b/package/root/lib/firmware/rtlbt/rtl8703a_config differ diff --git a/package/root/lib/firmware/rtlbt/rtl8703a_fw b/package/root/lib/firmware/rtlbt/rtl8703a_fw new file mode 100755 index 00000000..59cfbdd4 Binary files /dev/null and b/package/root/lib/firmware/rtlbt/rtl8703a_fw differ diff --git a/package/root/lib/firmware/rtlbt/rtl8703b_config b/package/root/lib/firmware/rtlbt/rtl8703b_config new file mode 100755 index 00000000..0f507edd Binary files /dev/null and b/package/root/lib/firmware/rtlbt/rtl8703b_config differ diff --git a/package/root/lib/firmware/rtlbt/rtl8703b_fw b/package/root/lib/firmware/rtlbt/rtl8703b_fw new file mode 100755 index 00000000..be52c9d7 Binary files /dev/null and b/package/root/lib/firmware/rtlbt/rtl8703b_fw differ diff --git a/package/root/lib/firmware/rtlbt/rtl8723a_config b/package/root/lib/firmware/rtlbt/rtl8723a_config new file mode 100755 index 00000000..69e4ef5c Binary files /dev/null and b/package/root/lib/firmware/rtlbt/rtl8723a_config differ diff --git a/package/root/lib/firmware/rtlbt/rtl8723a_fw b/package/root/lib/firmware/rtlbt/rtl8723a_fw new file mode 100755 index 00000000..2a3746cd Binary files /dev/null and b/package/root/lib/firmware/rtlbt/rtl8723a_fw differ diff --git a/package/root/lib/firmware/rtlbt/rtl8723b_VQ0_config b/package/root/lib/firmware/rtlbt/rtl8723b_VQ0_config new file mode 100755 index 00000000..f1b50d67 Binary files /dev/null and b/package/root/lib/firmware/rtlbt/rtl8723b_VQ0_config differ diff --git a/package/root/lib/firmware/rtlbt/rtl8723b_VQ0_fw b/package/root/lib/firmware/rtlbt/rtl8723b_VQ0_fw new file mode 100755 index 00000000..d29f1640 Binary files /dev/null and b/package/root/lib/firmware/rtlbt/rtl8723b_VQ0_fw differ diff --git a/package/root/lib/firmware/rtlbt/rtl8723b_config b/package/root/lib/firmware/rtlbt/rtl8723b_config new file mode 100755 index 00000000..ad2bc264 Binary files /dev/null and b/package/root/lib/firmware/rtlbt/rtl8723b_config differ diff --git a/package/root/lib/firmware/rtlbt/rtl8723b_config_2Ant_S0 b/package/root/lib/firmware/rtlbt/rtl8723b_config_2Ant_S0 new file mode 100755 index 00000000..fdf01f2c Binary files /dev/null and b/package/root/lib/firmware/rtlbt/rtl8723b_config_2Ant_S0 differ diff --git a/package/root/lib/firmware/rtlbt/rtl8723b_fw b/package/root/lib/firmware/rtlbt/rtl8723b_fw new file mode 100755 index 00000000..d29f1640 Binary files /dev/null and b/package/root/lib/firmware/rtlbt/rtl8723b_fw differ diff --git a/package/root/lib/firmware/rtlbt/rtl8723cs_cg_config b/package/root/lib/firmware/rtlbt/rtl8723cs_cg_config new file mode 100755 index 00000000..0f507edd Binary files /dev/null and b/package/root/lib/firmware/rtlbt/rtl8723cs_cg_config differ diff --git a/package/root/lib/firmware/rtlbt/rtl8723cs_cg_fw b/package/root/lib/firmware/rtlbt/rtl8723cs_cg_fw new file mode 100755 index 00000000..86bdb1c0 Binary files /dev/null and b/package/root/lib/firmware/rtlbt/rtl8723cs_cg_fw differ diff --git a/package/root/lib/firmware/rtlbt/rtl8723cs_vf_config b/package/root/lib/firmware/rtlbt/rtl8723cs_vf_config new file mode 100755 index 00000000..0f507edd Binary files /dev/null and b/package/root/lib/firmware/rtlbt/rtl8723cs_vf_config differ diff --git a/package/root/lib/firmware/rtlbt/rtl8723cs_vf_fw b/package/root/lib/firmware/rtlbt/rtl8723cs_vf_fw new file mode 100755 index 00000000..86bdb1c0 Binary files /dev/null and b/package/root/lib/firmware/rtlbt/rtl8723cs_vf_fw differ diff --git a/package/root/lib/firmware/rtlbt/rtl8723cs_xx_config b/package/root/lib/firmware/rtlbt/rtl8723cs_xx_config new file mode 100755 index 00000000..0f507edd Binary files /dev/null and b/package/root/lib/firmware/rtlbt/rtl8723cs_xx_config differ diff --git a/package/root/lib/firmware/rtlbt/rtl8723cs_xx_fw b/package/root/lib/firmware/rtlbt/rtl8723cs_xx_fw new file mode 100755 index 00000000..e29f6528 Binary files /dev/null and b/package/root/lib/firmware/rtlbt/rtl8723cs_xx_fw differ diff --git a/package/root/usr/local/bin/fix-brisk-menu-key.sh b/package/root/usr/local/bin/fix-brisk-menu-key.sh new file mode 100755 index 00000000..4d711eea --- /dev/null +++ b/package/root/usr/local/bin/fix-brisk-menu-key.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +set -xe + +gsettings set com.solus-project.brisk-menu hot-key Menu diff --git a/package/root/usr/local/sbin/armbianmonitor b/package/root/usr/local/sbin/armbianmonitor new file mode 120000 index 00000000..2bbbecbe --- /dev/null +++ b/package/root/usr/local/sbin/armbianmonitor @@ -0,0 +1 @@ +pine64_diagnostics.sh \ No newline at end of file diff --git a/package/root/usr/local/sbin/install_desktop.sh b/package/root/usr/local/sbin/install_desktop.sh new file mode 100755 index 00000000..17d5cb77 --- /dev/null +++ b/package/root/usr/local/sbin/install_desktop.sh @@ -0,0 +1,172 @@ +#!/bin/bash + +set -e + +DESKTOP="$1" + +if [ -z "$DESKTOP" ]; then + echo "Usage: $0 " + exit 1 +fi + +DISTRO="" +if hash apt-get 2>/dev/null; then + DISTRO=$(lsb_release -i -s) +fi + +if [ -z "$DISTRO" ]; then + echo "This script requires a Debian based Linux distribution." + exit 1 +fi + +if [ "$(id -u)" -ne "0" ]; then + echo "This script requires root." + exit 1 +fi + +# Default packages. +PACKAGES=( + xserver-xorg-video-fbturbo + xserver-xorg-video-armsoc-sunxi + libmali-sunxi-utgard0-r6p0 + mesa-utils-extra + glmark2-es2 + libvdpau-sunxi1 + vdpauinfo + mplayer + smplayer + smplayer-themes + smtube + chromium-browser +) + +# Additional packages +PACKAGES+=( + xserver-xorg-input-all + xfonts-base + rxvt-unicode-lite + suckless-tools + network-manager + pulseaudio +) + +case $DISTRO in + Ubuntu) + PACKAGES+=( + chromium-browser + firefox + ) + ;; + + Debian) + PACKAGES+=( + chromium + chromium-widevine + ) + ;; + + *) + echo "Error: unsupported desktop environment $DESKTOP-$DISTRO" + exit 2 + ;; +esac + +# Add packages based on desktop selection. +case $DESKTOP-$DISTRO in + mate-Ubuntu) + PACKAGES+=( + ubuntu-mate-core + lightdm + ) + ;; + + mate-Debian) + PACKAGES+=( + mate-desktop-environment + mate-desktop-environment-extras + desktop-base + lightdm + ) + ;; + + gnome-Ubuntu) + PACKAGES+=( + ubuntu-gnome-desktop + ubuntu-gnome-wallpapers-xenial + ) + ;; + + gnome-Debian) + PACKAGES+=( + gnome + desktop-base + ) + ;; + + i3-Ubuntu|i3-Debian) + PACKAGES+=( + i3 + i3status + i3lock + slim + ) + ;; + + xfce4-Ubuntu|xfce4-Debian) + PACKAGES+=( + xfce4 + xfce4-goodies + slim + ) + ;; + + lxde-Ubuntu|lxde-Debian) + PACKAGES+=( + lxde + lxdm + ) + ;; + + *) + echo "Error: unsupported desktop environment $DESKTOP" + exit 2 + ;; +esac + +# Install. +apt -y update +apt -y --install-recommends install ${PACKAGES[@]} + +# Kill parport module loading, not available on arm64. +if [ -e "/etc/modules-load.d/cups-filters.conf" ]; then + echo "" >/etc/modules-load.d/cups-filters.conf +fi + +# Disable Pulseaudio timer scheduling which does not work with sndhdmi driver. +if [ -e "/etc/pulse/default.pa" ]; then + sed -i 's/load-module module-udev-detect$/& tsched=0/g' /etc/pulse/default.pa +fi + +# Desktop dependent post installation. +case $DESKTOP in + mate) + # Change default wallpaper + dpkg-divert --divert /usr/share/backgrounds/ubuntu-mate-common/Ubuntu-Mate-Cold-stock.jpg --rename /usr/share/backgrounds/ubuntu-mate-common/Ubuntu-Mate-Cold.jpg + ln -s /usr/share/backgrounds/ubuntu-mate-pinebook/Pinebook-Wallpaper-6.jpg /usr/share/backgrounds/ubuntu-mate-common/Ubuntu-Mate-Cold.jpg + ;; + + i3|i3wm) + if [ ! -d /usr/share/slim/themes/pine64 ]; then + cp -ra /usr/share/slim/themes/default /usr/share/slim/themes/pine64 + wget -O /usr/share/slim/themes/pine64/background.png \ + https://github.com/longsleep/build-pine64-image/raw/master/bootlogo/bootlogo-pine64-1366x768.png + sed -i "s/^current_theme(.*)/current_theme pine64/g" /etc/slim.conf + fi + ;; + + *) + ;; +esac + +echo +echo "Done - $DESKTOP installed - you should reboot now." diff --git a/package/root/usr/local/sbin/install_openmediavault.sh b/package/root/usr/local/sbin/install_openmediavault.sh new file mode 100644 index 00000000..bf95baeb --- /dev/null +++ b/package/root/usr/local/sbin/install_openmediavault.sh @@ -0,0 +1,172 @@ +#!/bin/bash + +case "$(lsb_release -c -s)" in + jessie) + RELEASE="erasmus" + EXTRAS_URL="https://github.com/OpenMediaVault-Plugin-Developers/packages/raw/master/openmediavault-omvextrasorg_latest_all3.deb" + ;; + + stretch) + RELEASE="arrakis" + EXTRAS_URL="https://github.com/OpenMediaVault-Plugin-Developers/packages/raw/master/openmediavault-omvextrasorg_latest_all4.deb" + ;; + + *) + echo "This script only works on Debian/Jessie|Stretch" + exit 1 +esac + +echo "OpenMediaVault installation script" +echo "Script is based on Armbian, OMV and tkaiser work: https://github.com/armbian/build/blob/master/config/templates/customize-image.sh.template" +echo "" +echo "This script overwrites network interfaces." +echo "Make sure that you configured them in OpenMediaVault interface before rebooting." +echo "" + +if [[ -t 0 ]]; then + echo "In order to continue type YES or cancel:" + while read PROMPT; do + if [[ "$PROMPT" == "YES" ]]; then + break + fi + done +fi + +set -xe + +#Add OMV source.list and Update System +cat > /etc/apt/sources.list.d/openmediavault.list <<- EOF +# deb http://packages.openmediavault.org/public $RELEASE main +deb https://openmediavault.github.io/packages/ $RELEASE main +## Uncomment the following line to add software from the proposed repository. +# deb http://packages.openmediavault.org/public $RELEASE-proposed main +deb https://openmediavault.github.io/packages/ $RELEASE-proposed main + +## This software is not part of OpenMediaVault, but is offered by third-party +## developers as a service to OpenMediaVault users. +# deb http://packages.openmediavault.org/public $RELEASE partner +EOF + +# Add OMV and OMV Plugin developer keys +apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 24863F0C716B980B 7E7A6C592EF35D13 7AA630A1EDEE7D73 +apt-get update -y + +# install debconf-utils, postfix and OMV +debconf-set-selections <<< "postfix postfix/mailname string openmediavault" +debconf-set-selections <<< "postfix postfix/main_mailer_type string 'No configuration'" +apt-get -y install debconf-utils postfix + +# install openmediavault +apt-get --yes install openmediavault openmediavault-keyring + +# install OMV extras, enable folder2ram, tweak some settings +FILE=$(mktemp) +wget "$EXTRAS_URL" -qO $FILE +dpkg -i $FILE +/usr/sbin/omv-update + +# FIX TFTPD ipv4 +[ -f /etc/default/tftpd-hpa ] && sed -i 's/--secure/--secure --ipv4/' /etc/default/tftpd-hpa + +# load OMV helpers +. /usr/share/openmediavault/scripts/helper-functions + +# use folder2ram +apt-get -y install openmediavault-flashmemory +xmlstarlet ed -L -u "/config/services/flashmemory/enable" -v "1" ${OMV_CONFIG_FILE} + +# enable ssh, but disallow root login +xmlstarlet ed -L -u "/config/services/ssh/enable" -v "1" ${OMV_CONFIG_FILE} +xmlstarlet ed -L -u "/config/services/ssh/permitrootlogin" -v "0" ${OMV_CONFIG_FILE} + +# enable ntp +xmlstarlet ed -L -u "/config/system/time/ntp/enable" -v "1" ${OMV_CONFIG_FILE} + +# improve netatalk performance +apt-get -y install openmediavault-netatalk +AFP_Options="mimic model = Macmini" +xmlstarlet ed -L -u "/config/services/afp/extraoptions" -v "$(echo -e "${AFP_Options}")" ${OMV_CONFIG_FILE} + +# improve samba performance +SMB_Options="min receivefile size = 16384\nwrite cache size = 524288\ngetwd cache = yes\nsocket options = TCP_NODELAY IPTOS_LOWDELAY" +xmlstarlet ed -L -u "/config/services/smb/extraoptions" -v "$(echo -e "${SMB_Options}")" ${OMV_CONFIG_FILE} + +# fix timezone +xmlstarlet ed -L -u "/config/system/time/timezone" -v "UTC" ${OMV_CONFIG_FILE} + +# fix hostname +xmlstarlet ed -L -u "/config/system/network/dns/hostname" -v "$(cat /etc/hostname)" ${OMV_CONFIG_FILE} + +# disable monitoring +xmlstarlet ed -L -u "/config/system/monitoring/perfstats/enable" -v "0" ${OMV_CONFIG_FILE} + +# disable journal for rrdcached +sed -i 's|-j /var/lib/rrdcached/journal/ ||' /etc/init.d/rrdcached + +# add eth0 interface +xmlstarlet ed -L \ + -s /config/system/network/interfaces -t elem -n interface \ + -s /config/system/network/interfaces/interface -t elem -n uuid -v 4fa8fd59-e5be-40f6-a76d-be6a73ed1407 \ + -s /config/system/network/interfaces/interface -t elem -n type -v ethernet \ + -s /config/system/network/interfaces/interface -t elem -n devicename -v eth0 \ + -s /config/system/network/interfaces/interface -t elem -n method -v dhcp \ + -s /config/system/network/interfaces/interface -t elem -n method6 -v manual \ + /etc/openmediavault/config.xml + +# configure cpufreq +cat <>/etc/default/openmediavault +OMV_CPUFREQUTILS_GOVERNOR=ondemand +OMV_CPUFREQUTILS_MINSPEED=0 +OMV_CPUFREQUTILS_MAXSPEED=0 +EOF + +cat <>/etc/rsyslog.d/omv-armbian.conf +:msg, contains, "do ionice -c1" ~ +:msg, contains, "action " ~ +:msg, contains, "netsnmp_assert" ~ +:msg, contains, "Failed to initiate sched scan" ~ +EOF + +# update configs +/usr/sbin/omv-mkconf monit +/usr/sbin/omv-mkconf netatalk +/usr/sbin/omv-mkconf samba +/usr/sbin/omv-mkconf timezone +/usr/sbin/omv-mkconf collectd +/usr/sbin/omv-mkconf flashmemory +/usr/sbin/omv-mkconf ssh +/usr/sbin/omv-mkconf ntp +/usr/sbin/omv-mkconf cpufrequtils +/usr/sbin/omv-mkconf interfaces + +# make sure that rrdcached/php does exist +mkdir -p /var/lib/rrdcached /var/lib/php + +# disable rrdcached +systemctl disable rrdcached + +/sbin/folder2ram -enablesystemd +/sbin/folder2ram -mountall || true +/sbin/folder2ram -umountall || true + +# init OMV +# /usr/sbin/omv-initsystem + +# some performance tuning +grep -q ondemand /etc/default/cpufrequtils && sed -i '/^exit\ 0/i \ + echo ondemand >/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor \ + sleep 0.1 \ + cd /sys/devices/system/cpu \ + for i in cpufreq/ondemand cpu0/cpufreq/ondemand cpu4/cpufreq/ondemand ; do \ + if [ -d $i ]; then \ + echo 1 >${i}/io_is_busy \ + echo 25 >${i}/up_threshold \ + echo 10 >${i}/sampling_down_factor \ + fi \ + done \ + ' /etc/rc.local + +echo "* * * * * root for i in \`pgrep \"ftpd|nfsiod|smbd|afpd|cnid\"\` ; do ionice -c1 -p \$i ${XU4_HMP_Fix}; done >/dev/null 2>&1" \ + >/etc/cron.d/make_nas_processes_faster + +chmod 600 /etc/cron.d/make_nas_processes_faster diff --git a/package/root/usr/local/sbin/install_rpi_monitor.sh b/package/root/usr/local/sbin/install_rpi_monitor.sh new file mode 100755 index 00000000..641b617b --- /dev/null +++ b/package/root/usr/local/sbin/install_rpi_monitor.sh @@ -0,0 +1,262 @@ +#!/bin/bash + +# Install rpimonitor on a pine64 running ubuntu or debian +# +# Original code lifted from http://kaiser-edv.de/tmp/4U4tkD/install-rpi-monitor-for-a64.sh +# Original code written by tkaiser, as well as assuggestions for a deriverative work +# +# This modification written by pfeerick + +if [ "$(id -u)" != "0" ]; then + echo "This script must be executed as root. Exiting" >&2 + exit 1 +fi + +useEncodedPublicKey() +{ + echo -e "\nUsing backup copy of public key for Armbian package list" + cd /tmp && echo "LS0tLS1CRUdJTiBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tClZlcnNpb246IFNLUyAxLjEuNgpD +b21tZW50OiBIb3N0bmFtZToga2V5cy5mc3Bwcm9kdWN0aW9ucy5iaXoKCm1RSU5CRlVHOHA0QkVB +REdsc2VHRm1kampmbW9YdEhwWnhxZ1lIR3dlQ25HWjA1TGlHZ0VWZ2J2NVNyVHNKc3lPOEg4UnlC +UAp4Z2JwS0VZK0pDVjFJbFlRUGFFM1RpbDEra3FtUjRYTktidWZqRXVxQVY0VkpXMzI2N3RZUnVK +MzA4RTcwcTdrcFFTc0VBV0wKVlkreFYvbDVzdEF1cHA0L3dGNUJQZEFqVzdnTHVpY1BucW9LSzBq +Y2ZyanV2ZDQ1V0ZocGpMMVNkZDBQbklMZWh6MHRvNlIyCkg5TXNXK1ZZWVBGenRkakJNLzc4VUQ4 +Z3JNY0NtLzdNejhFTlJLQ25US3JnajRicFdBMGtQRUhOQmZhb1FRVWs1ZkNKWU5NTAp2TE1JR1pj +V2VHT1BvK3lGbmw0QzZxVEVnczBnNy8wRTU2eWNhUURKK2dCQ0g5WU5hOGozZUgvdDF2TU4wRVJY +aU9RZjZXWGcKUmloT0QxZmNuWkZtY3pRRlQzR0dodjN5Ky9jVXBzVWxtaGhKNnRldGl1WE51VGZy +bDNNKzk5cVVxNS84aWlxMjkyTUNtbjVzCjBCRU9peWZRMmwydVptanlEVU8rNGxMOW8zTVgwVzVY +cDFwdUUycDQyYit3NDU4YURLdXVGdkJ6Vk1pVTUxSnM2RFpuYWh4dQoycytORHp0RGd1dDdwK1A2 +MFVCQ2JsdFhFQjBaSXlXVEFrS0N3SWxhcFo5eURpSHFYaU5sdVRkQmlGV0d5VTN4bGI0ZnVRencK +bHd2bVMzeXo0QWs1R0NkRHBpTG1Kb0hPS1Y2cTg1VmFJNFQzZ2l4eDRKd0VmZGluY09HZmVwU1dG +bWJFc0R1Vng1dmJEVjVECndiM29BZzgwenAzVy91TnlYN0c0MXVJR0ROelpMODJwMlh0Z0d6a2po +RWJLQW5OYXZ3QVJBUUFCdEQxSloyOXlJRkJsWTI5MgpibWxySUNoTWFuVmliR3BoYm1Fc0lGTnNi +M1psYm1saEtTQThhV2R2Y2k1d1pXTnZkbTVwYTBCbmJXRnBiQzVqYjIwK2lRSTQKQkJNQkFnQWlC +UUpWQnZLZUFoc0RCZ3NKQ0FjREFnWVZDQUlKQ2dzRUZnSURBUUllQVFJWGdBQUtDUkNUMW9pZm53 +NTQxVDZXCkQvMFgrTEQ5R20xTlZnWmhySDM1b1EzenN0RU5yVGpENkxGK2tUK3poZTZRUjliQWRP +bWViN0plNDIzeS9VWTNuU2FKbFMvTwpXc0pzODl0WFV5RTJqYnh0TEFwTjZPTVRac0l4amd5ZzNm +amJIVi9sdy94R3ArY3FIalgrQXk1UVp1ZEpWeEdKTjdXSmFSR3gKeW1qb3A3RVg0Q0hpaWRHWlBa +b0RUMjNXQXJMaWE3RThNTEIvb0szd1c2azlRbGMyU3JobGR6cHVTbU93SFFYOXB4bXk5ZGdmClph +MmE5dzFjRXZrdERucml6UG1meHdZYUMzOEZLUnF6MUk4Q25QTUVTVkorNm1MRVl4V0p2SkFOdVZ2 +cmhxT3Rqa1k2eUkwdQpTT0ZIc21nY2krM1gyYzdXV2hsb0t1Yi9QZjdUdE02dGw2UkNIZkt2bnNy +VFpQdnhQMS9DZ3pRaUFJVFdwcEJsb2xuU1JIWHAKM25vdENGMXJWYmdJbndWdUNaQ3VXUEp2SEM2 +UjN0OS9VZ0VTYW8wdEV3cjRtdzdqTnd0c3pXb3U0cll6akVBTUUvTy9rQkJXClBiRFVSbS80Ujhs +MFhTbkcwemhlUEt2NWlDemVRYkl6VWVBRDFEY3ZrN2ZhbGdubDlGWDkvTFpDWTFrRXdGTWYyREcw +M2x3Rwo3YzRJQ1NWQXowcE5FUFpkcXB5Q2w4MlZLa0RuZThQQTBSYi91UElPUVkzYUR1OGJnY1BR +dW9rbVJSTDRyd2RuUkNWcjBBRkQKWmhWUW5VamNkeThBdkVQZXllMmZOZExodGUrS1VXaXlGTldw +MnZXMkxiSjlHeFBzdGFGaWhYWkJjQ0VwR1dzTkhlYkRkMUttCk5HeVBLY3F6YUlmekhQTFA4K2Vl +MmRlS0E5NVBWelYzaVRMK09ia0NEUVJWQnZLZUFSQUF2R2FLQ0hER2wwZUM3ZkZvazVzUApxMVdh +dHRwcVE5UUwwQmdaOTVWUUxuKzcvMW5YbUtzRGZDd0N2bkJHcUxYelBReXZXaENiQ1ROOW9Za3Fv +a0JYMkNoMXpPSUEKQnludytVQ00rS3laY21jaVlaSUYyMU9zdFdNTTBuUTA2am5vNUhxMXZTSGxn +VGthYVlXWllvcVhvY01DUzlsbHZJMk5WRzM0CmJjYWsxaEFoOUVrZm1UaFZ0dERlR1pQK29zcXQy +bWVmcENBVklUUDFlUVdVM1JVQnBPS05wdGhwTHhNaHkrbDdtOHRta0xIMwpGdXF3WnZWalkyNDF3 +MW80QVdWcEpEL0pkT3VBZkh0ZjcvVURQY2hTWkxlOUVhOFkrYm5raVp4Z1NST3RGclJ6YlZ3UDFJ +ZDQKUktUNDRCd0tNclh1OEdpWkFQdlFxNUN2SU5xWkRNcWlxcTQrakZKUE1Wb3J0dXhYc2tSaDFk +VllPaW9IMW11emVIZjU2MC9CCkxXK21CdUVkK3hFMGdkNlNYUmdQaWZsUk95bHBKQ2I5UXhpOE9m +cTZGRUhCZko4bUh6NDlkNjBxeVhaTmRObHhMaEEzZGZPdgphYWhGQmdYd05Td2phazB6ZjZScHVm +QWtoOFNpNWpjM1FoN2xwdXdzQmVseU51N3RCYkwyeThXblVlei8rYWVYOXNCU3FzNzgKbWZwRGRM +QUduSWxUOVljamtIbDVXMzg1ampoQkFocEFnaUxJc2RTUktjYzJDSTM0VmY3NzVjTExJWXJjQnJq +Vk1MWUJ3RWlaCkhPUE85MExuaXpneDFsNXQxd0cyQWE1T2FyVFRVUElnTWlUVXRLUFE4Qm1jakdN +WmlhdmRKd3FHVXppREQraE1LY3hQVU1qeQpZaXUrbmdrSDFST3VDeE1BRVFFQUFZa0NId1FZQVFJ +QUNRVUNWUWJ5bmdJYkRBQUtDUkNUMW9pZm53NTQxV203RC9zRzBvdU0KNzFjNW1UK2VnZmYrUXhm +RXh5K0pCNC92TDFwTFNIYk1SOEF0QUpMTitZaDZFemVHbVcydGdhMEJrOUF4RWVrUXJhWHJNRmha +ClNwVDk4cUpubkRwZG96ZmVJQXlUd3ppdzlLOW9wQjBkVS8rTTNzVmlka0o1bXY0TFc2Q0phYVkz +cnNvbTBUSWpheEJ2WHFTZQphZEpGNFdHVUh6ZzNldys4YWgwWkc4U0RadTE5a2V0TjJjblRNQXRn +Tys1M0VwanFwazN1TUY1aE5hRUh0OXdWajJ0cS9hbkwKRXNsNFQ1VS9la1FuZHhjVEVzVjJLSVZT +b3llMzV5ZTRhYW0xZ1doVzlKSUZ0U2hoRXRYRC81T3Z0ajcwNllMVFA4NFU4eUhTCnR6TTZMTEdw +cU04YmIxUXNCVVdSVWhJS2lkbHRtTzlLalg2ckpadWh3a2NWSkpZUmRiZXRFWGJpU0l5ZU5aeTdi +QmU0RW4rZgpWY04wZWtCRDM2TGhNY1ZMOEYxTW50cjFMNXhmMGNGRXBGcEVvZFFVdmNheU5ncEky +eTdFSVBqS21LaFZ3VzVkeDM2UTBDc0MKbndjQytLZzZCTnpsaUk5SXMrb0EyQVZJYW5GUHZqdlN3 +Zkc5cEgrMi91K0tCNEhUMlV4MUZCYkJpNUdBd28rY3UxZDRYQWM1CmJaSGRQbkFWdG5JTjlkS1J1 +c1o4SUdIV0VkOFB3MGtSZXB1TmhTbVNOQUxRa1M2QitwcFFadG1vR3NCQ3FKZU1QeFF4ait5SQov +YkwzZG1BMlVYeG5HSjN2czJ5YkZ5SEczYW9vdktKZldWeXR4T0pmRzdxajFBQ3JPWU9YZWtXbGN3 +NWxFaVlGY2NrdWtOcXEKRnYvQ1hoK0JaRmxRVDRERHZKbFkwL0tRRkZLb2dRPT0KPUkvUDgKLS0t +LS1FTkQgUEdQIFBVQkxJQyBLRVkgQkxPQ0stLS0tLQo=" | base64 --decode > keyfile + + if [ -f /tmp/keyfile ]; then + apt-key add /tmp/keyfile + local keyAddState=$? + + rm /tmp/keyfile + + if [ $keyAddState -ne 0 ]; then + echo -e "\033[0;31m\nUnable to add backup public key... exiting\033[0m" + + if [ -f /etc/apt/sources.list.d/armbian.list ]; then + #remove if not Armbian + if [ ! -f /etc/armbian-release ]; then rm /etc/apt/sources.list.d/armbian.list; fi + fi + + exit 2 + fi + else + echo -e "\033[0;31m\nUnable to use provided backup public key... exiting\033[0m" + + if [ -f /etc/apt/sources.list.d/armbian.list ]; then + #remove if not Armbian + if [ ! -f /etc/armbian-release ]; then rm /etc/apt/sources.list.d/armbian.list; fi + fi + + exit 1 + fi +} #useEncodedPublicKey + +PatchRPiMonitor_for_sun50iw1p1() +{ + echo -e "\nNow patching RPi-Monitor to deal correctly with A64" + cd /etc/rpimonitor/ && echo "H4sIAHK6DVkAA+08a3PbRpL5rF8xpThH6kyBBClKsk5SlWM7tm/jROVHvFf74A6BIYkIBLAYQBIT ++z/db7hfdt09M8AABEVRVly3dUQSkcBM9/Rr+jVgfJ5xx4ujyTd/3NWD6+joiD7hqn/Sd3fg9vqD +w0F/4H7Tc4f9w+E3rJ+JeRLyTHRvRBTw8A+hM5cZTxn7Jo3j7LZ568b/Ra+vIWJU8OHhwQr9D/pH +/QOt/4PeESi+5w6GYAas99CENF3/z/X/7QNdO/AP+9PFayZuspR7WRBHDG0pmOYpxzsYhn/Z+1kg +WcLTjMUTls1EdRKbBKFgMMMXkyAKoim7ngXejPngpVgWIwKNn83ia3hS3AKqOeORDwAicvRi7xLh +BZPAY60g8sLcFy12KRbXcerjGvyKByEfw4KAh/s+42p5TtiYAGRAI+LB2zCQRPMyvRLhxzAj5r7w +HaYX10uenU7yMASWsxnOWwY/x8mMrZ2GJCMhlXn4QME3yNGwVeFnNS8KTwNHRpoZzPNIyTwVRvIC +sEYeSS1NgnkcBRnKF3dVlicOe8FBfxJBJUCTYCQLfBFloBkADiLNBhKj6B4vQBVhEAkFh1YQILsw +SasP0UhFDuqcRyXGlJ3qETKawD/X5JeEKB6MlQENuCCiUAaEax2gjfK5yEQqNbwCderYnQimnZ3S +LX416iwfkK0BeIqcpCJJhURa4QY5QlLitKIWeKSQSIFUZIpCL57PuZYn4mUzbvSUR8E/c+EooJ+j +ENgJkxksn89FGng8ZN4M1AGyQQbzyAeuvBh0iHrknieSrFTzKj5lnKee4VTdVHjVjxS3pMcY1wM7 +EV6e0T6jpyjfICKG0Yo11a+VZdIMcQOCkJ2KPV0HYPWp4GAwmURbyUCGjg2m8MDqUZwpFCDiAkka +ZxpJli6U40CywNlkWuu0q1Kp8SDWOM+SPNMEfuQpOqQTJsmpLFB/Ve5AR0gbH8s4RMykJLWkCEOF +xWYJiCCGtPEjQ2aDllgd15mmPJmt004qpuIm0dpRNxXt6EfGicBtHkLcg2dgjhK3v3HcwFcQTeJ0 +rj1JGs8VIkvLDntL+Ng0jfNEsvaebY1S+DXXTLBa0RAXuBTazsnmO0ygURMuJTDAwicTQd4FvRhN +RXmuE0MSyyxJYw940rKwnlQEYj8nm41sYRTxh8y0nEqPYoUHiUySMCAPCBKVeQgWadwjOiRfuTgw +jEeuY3NOXCssMayQVqCyEqrfYY8GTFuANkQTQZV3KuQlrniYg69AOGVR4C7AsPE5LpmINDTSe74A +WTa6cpgVxD66DHAibcs/+lyA4Tq+CPlir+pO0a/fw6kjkrpfZ76mrMGrm6Emt+5bDN3q14fLfl3D +OksLNHr21bNX+cfVEKv27GqIu5s3EdypuuZO1Rd0GnaCZWIHoLcUAlIpMNjjV4LUJdG1yWAaYXal +/ARsf3AaemMqNCWks1bWaeqfnX56+fTDyxefnv384af3L95+ev7i7etfXnx6+v27n3/88B6fv7mA +z4JIwYag0nIr2HljMCmia+mZJPhdY52cvX37vHRsY9yZaCaYV96VEBN/auzaJghrQ4WVLToQlnDF +cjGzcT0IAhh+AZcJPZUNXiLrKKJXoiD6S09rRjXXkKCJKwHBr8zQtUd5KyZslmXJSbcbS+nEIgsu +Rep4sy5oJYvjsOvHHn5X6ziQYM+yeUj6LoRYEuwL6aVBUiywWunzIDo7hT/BHHwU+i+TjVA8hSQB +sK/ZEXN+gyhu1qKgFIPrKaXDw6AtGaS8GBfBWRhqwGNOidtUP+e0hMJESDqYOtRkDJZV1RCoP48u +o/g6Krw3ZH/gB+eUKqQULSmjB5OEdfwQfWYe6XUzNgFPzHyAxwk9qm6KBGWB+YNHDjRIFU7WfnFz +wiKRgTe9ZBQ35J7efD/FmTgxWTyxIIsEECIbJWg6E0WXwKyQl0sdCxHPFU8Dku4jtNT9899batO3 +PpffRyiBETqh1mcySw9kqHMDksR/xTk9S8UEWY2ZvOaJUqtVQeJzIVRs5vMkxPi/86Al60cxRq2J +dMI90Vix/pAGEMmVqAr3wpkfyARiISid8jwKWBjfLpVSVL4LuROj3ZjFCRjZJGNzEeXsKlDiBicF +Kg4Fx7w/wvlqqUAWlKBjwBCHSNRwLdTqrPMUNgMRQe4CN+BYDaI6+6DYMIyvddRdCoHXYuzotZ1T +K/IpFsvgtzQP+T07Ja5BVW8vgv03Krs93xAzhi37mclTSbZJihqysgo/BXHSpkBxrlrqVuJwxaYh +s7AZ45FK0Kw5LM2jSIuSlURp7cxBWeCsHYuqhE+FE4BGz07xL5TVOmamkE1lwRVV6jARW0yGtvUT +DaXUCkDNY5pF8oqLQAIm5qltBHuvtFii2eYoCzJM0XhapxrlS4PgZNFy6buh0XrCfuVXXLl9MF1f +VBPoDLZ0fXkdehQRcYUIRyUghAd9BDgNyityWalMMKErGTUZZAt9SEt3XwwB9NCZgVcjl2S1fiKS +a7ioM45/NOP4tcq49eS+jEN80Flp5GMn6/8A75hQ6aWIQSADI9Oi9IrjUDUZXmc4CEFCuTFgSmUo +bA4lUABumhBI3awwyCpOixpB6LfUKGxXSwOKCqccU16Dbm2XUT5g2vD1jpguWfuy24DnunOmi7Ia +8VbXy5IIIIUoC3kF9nOg8tXL1Kpmq+2VS1Wvwuxlz81160b1rFDHwKwNWwBSFmSVNcRwh8ob3OEq +/Eio3nR9GQk7DlByjhHg5DYpU1gKgL/F2Wn5HZMCEA0/p3jJaiMhjjA5i/PQp4oYMwuouKxtoeHB +iWV5WjrO3gnlPCAQ1ZGIr9VzHi2wQTRlIgS9jPMMZ0pq95ppKzkwfSFbnLfEsjvBK8dt4PFuM3jU +hXNKlW+Uz8ciPUdL1hH4/DZ9bMDNUvz8CfdDuQewBCIXo7cImdWma6+QhLU2PWOv0SK/ZKG1ItPR +uxgu26omfQ3ITRb97qjSdySi7HaKQrPUUV0FYxFj5VvG4dZ6ecRMrWtTLdBM66bI1yoxRbVxik7J +JI88nZ3ChaDtPVUBTLCjW5Zh5Z4sdyThNIzHqp5nHiSgmGJgW5hapnZmcF3Jj6EkuIINC24pnuuq +19AjVb3imUWpCxhE0uzvgjCHAk08/lV4mVWtYgsulLEVnqhsAFnyIDJNS2yxoVztNpHdcSjrOm67 +P63C2vGUFEURrKB/KFjRfJJCbGlgDUBKMOn0SQEM1weoeeeindMHxQjh7RWjjF1gHkvwegrVBzAp +xqTfpJEGNVPR5MRC8Oc/s4XgKX76fCHxE5Sc0hcoXPNM0FeN0SbtgvttKvlsep7SmRdsnElwA7z2 +qPzTW0FCsRua4tft2bj+9OZlW1fAALvMoCqxgf3LIIw77I2Y8g57GeDfCwGpiAUA8KYybF22Oqz1 +Bv+8bOHRQeuiBSpMsIsKwoiVCgm3U+FMpB7sNk1RFmc8XCYpUZPQ54D1KAJhZ4FNqgYzgVWwpvEU +e8Hf89TG3LlWpwAdkH80Fam90vOUX5M4FSTkcsuHPStWtkXylzNz7VvX36wZuH0gFeC4F7w4BFFh +ezcVxbKwlcZhcR5E1+sJ06Qb9UioLq6NgmGfZNj07VTIV8jRS1mYxniug8xj9WrJFRDOgunMYKyu +hvsUGbbw6AbdagxKwgrBGk5ssIdhxZLN/TixENQYKSD/M5fZS5iONkbBucPA8YmwA1u5Y3pMc37T +Abr9bNZh4OSnswxmCcjanyFHssMKizSMN9jkjIeTfS9IPTrzmfJ8aktUJQbqOmHv7TSBprI21aHq +mANM1h6zFyPiCzw/0l0zHjqBLDeEjQR4L76f0J2Su43Imq4GzXR1p6tdYD2yEfMbGzHc3Yq4InIA +kMFvK+da+oCZT9MUMqGiDPTUcwClXh3NZX+J0LeX7sTo7m+2XVWvNojilbjRUWGvY1zACfYpBRiM +NmVtoM5KRM9t16E7gEXMLWolTly0tFEr5lo2UrMtlDz16ahmD2n9bq84CNTFodqD7YLuwcBWvBGB +wvesuNsE4+HhnioO6LoIoWQF0CUbUzGhJVkL964yg3PmUtBRz6I4qwSZZ2C5l20qpNGGQ4zeexWX +TMWySh/UCTgUSFTSB3SCAszQ3qOEpUjMroHLTNhW2jiOzU8vw1N9aVKZPAHN6NTydVZ3bCYdxyTH +Q+tQeWmeppQhB7pfSfmnDLA4y0R5jkGXyUqwvRgBjnkZxeaVU8KKnGjTk5w6uurrUA9E+6xSZN9z +fyruMrEuW6IZ5YKlJnmc7hhxqQSZFzWy7ea5d4lny5ROosFoh12tS9n7tx9e2AZOvWgyRv32EfVi +yjxcQVsABt9J8a1M7ANMsKc8VXmeQehjPgw+TjRuViDTZrAsTnQ/1Hbh2GciWulbrd9Xd1U0saV3 +TYu1wYEswKG0AO+cpwt4gumDXhwHGVEAUxrpbMmcThAUJhEhKuyFwL234HSrnQU8UV5qrxkTbkAV +LWEmODF7N7+OpEizV+/f/NjO01sMBL4bLxEQCPZIEKzSP1OFib3xqMPjsDYehr2Pk4E5caDWgzr2 +T9jcOhdhXpLDUlxzY3fQ1JH4tolWNNEaBKNRy/K51OdVqkBU3zE8EZcl29gUtZpm+vUDffqhC+iy +iFo+gzayUWuu6kQUaLXYyme27GpPK6cWRQOkYM+WZului6OhUrL4esh9yVXvipym+I6jf97wYpoe +sYxpYcoTgjWnSFrISfFGnVnC9HwqL7jV2V6u0CvFucKxYYW+qSh8OSKORjEdRgNESbND3u3slD4a +WKI3HLg+YUnFVRDnki0LU4HrZBe3sGmEgRLFlM6iGja6hIiT6Dd/Kodx6AMnbIluPKFXp6RV48bm +DAkBC3cIJpDFSd0v0Of5ZScJ1K5fUYHJ4OkikeGxvqxOGV31nKHTowP/MBjjof8PYZyNfpV05P8l +NllqoeyenZ1S9lW6oqKthnajB02HAJyj5YdIQYUAuCy0pHBV2k3UWwrVC8MeVF3xHLP5qsXzm0A6 +Kt680J5fvQ1cy4/1uY56ax70nYKNxumCtYs+Cviglg4erT1H+b9Yv3WZmVdMOJsI8M8pOfWxmPEr +KuIW+lhcvzys3gURFj2IrTiNt95rVoQEV8IxDleKAksxqLgJ8bXDRZFdtrHHKDCj2LPcvMoOENfy +m8UnLOUyGQc8ot8L4KSPMxE1zJT45ikEdHpZAlhJxT/zQLc+oDbHl4StdyKdhzrb39n51j4OdpUT +f4tEixSUdRHUJ9Bhsd407pO+4x4eOz3H7Q+61Zl9herdLMf0vj7WjKVfwzFQOH4S2TiOL+tjzTgG +x92dnephciuYT7thPI2dBFKrnYYz25bduwQvno/P263HlfPAx6290y4OWAjKs88KggbQlqJJpxor +xazHtexeYe+45kJuBdVzNDjt975amPs+ehQN/ZTuqgPqyxkfx3mmMFZh3s1ECBKH8ZvasIaU1oTK +jL69qNmjtRkaR/MgJpbUbTnrVTFr+/goxh6fs332il9fioWozbHBqyN6VeXpamOQOxvj6p0c93q9 +bnXtA7X2M4Jl6mFtwmr0ByuJOqCFu+quq0D1B6blKrhUIIaKEEzFa8/1+hmO7HxrfmbRFZnXLV1J +t/hhk3lz6FdYbYrmrVzWneGo9hmB3x5RsN8U3OpCbgpanrQqyJ21kFcQYjBhoulrZ6tTiDtOvoDS +BN3VHafPxRyi4h0n47tfd53qe1BF33Gyfg9OS2+94FVhfWc94Ut/GxgUFKNXAVSOd51/HRbxde1c +f5a5ruZzZ5PffxUYnoYh5JSRSEdPDw8e9meA9Pu/g1W//3Nd92Dwjds/POr1+8OjIf7+7+DQPdz+ +/u9rXA+UcGHe/EL/3gPsx+61YHZ4AdvkhLnU9rC6MNVLv2ljvqqojyD71GqZYO4oIm9hgeyzhZDW +13I2/nSNuR027DB3uHa29HiIOfU0Bg8aYbJUmx3FxWT7h4NrCPmFfmR1FYd0KrSW7DgmIjDlufts +9drvitmG7N/iSLjdd/EzqlxEqiqPJtQPZQ7mjW2dZoHcRoUCrUH9o4muXMiuL8g94negsgsg+F8P +/yAofqJZjbw8JVwWGv1Lirbz73vWU/vXEpJ8+6S9+50zmOx22CO36yr/Y0PgrxDo1f+d4qFO89Ce +3A7+HdJfd2jNMFzgYl0c5VdTa1hT9/f2X9893vurtD+sWTa1NvAySTo/1EY7MkZrjW8i1lvQNIl1 +0EzogAgtaTwo9U7vs+98W44Y6nKZdsdB1MXfXTGXPWb/KB5Bxsv2f9g9Ybus1f27Xg0CHvud9Mge +9T+32ClTEteGwT6xAh5bIWw/cv+xs7QsZGMJ2/dYgbSKxQJoYv+gmf0DW08FqzqH9QN5ifvOHrBl +IJFiOYda2MuAas5QZ5DpcJsjLRESyPtyE4+eiVAGuSwl4/Y+t+yVbC6sxxU27OnL9qbZuEJvpp3Z +zjIntq1hSoFuvstvkmP3ZjSOIWnDm331w0Os9Q/cbnFTfoNiGdCmMa4jd5q5aGbC2uH9VTu8kb1D +vZ1ij5RUPm7i7CpIs5yHXezdzcvPEXrYXreGoInow2YDOmyi7EhvIuXqKS5YY3chT4OO1DhsevCd +dTxNVB41U3nUROVxhUqKR9ZYoyuKPYcc0GicQ3GVjRDWcQ+7kGTNbes6biTuuJm4Y+2CKh0J05HU +cejZxYdV49RTAZqwm7JqDh24umf2mxu7P4K/B3PbdaGShc9eh+lzYgwYbAD5Rw+eHff2HsPmfdwI +OlwGHd4R1G2AdavAtzLTP9sFmZTJ1Qk7HZ/vgi8mbJWwDQ93X7767bQ7Pmf/Fo1l8h/tcqKlfJy3 +t3vrqoOz3Zc63FQXrAcjxGUt+FR1MZFidEZymVoKNjUoSsOqU21fZmbvrjAdHW4tp7tqnjGhEfqB +1XY0aLQjyM5Qof/z3/BhtKl9ElPKxP+Oe53KOxmdYa9z1GQgz3R+iKm0QMQlVtufAOqjZsRup79X +ad/9oQzsLHcEa1sXLZ511asYMhHCl3DXpJQGBOpQzFVZ3PqJfZo4XD9xcKZzwbUzD2op8FqAoZU7 +rZ18WI0Ra+cfFdFu7dTjaty/Zf7SsRXJRh+0kfZcfKFrYxRDG8XwXijcCg53cyQV5Wlc6IXIGhmZ +I2uDc9z7AqwLPII662+MgWxE01Q6SHlPPPehQhuTpsGUmawNrmAzgZhMWWN6Drf3RWVbrUanyvH2 +L1+A6F46sramMR3bOd8f2R2oqUIvXIL4vfiFBBRY+O4B+G3YESdsMKQ3Tk/Y0ZB93gBtfxltii9O +7gKWjdqR2+srX839/YddY03/d+ge9en//zYYDA76g0Ps//bc3rb/+zWuB2v4bfu/2/6vZQ7b/u+2 +/7vt/277v9v+77b/+5X7v+b+iaJrzLNMpAuPJ9wLsoU1bJPmhVyC3eKv9kYyT5Jw0dWA3QbIJqqe +NFP1pElkbq9CW31TwfAdadOQoyi+tqEb42Fv84DYayTerQpW/azIHr6rYBVklfgVwfwe0bwxnLvm +LUK4qexWt99ANngsorwbeKP67EYyV4RxtzGOu4OKIP2UB5E9eAs9Wp4gTRugkaTB5pIb2NRuj1O2 +xykPeZzSv+NxSv+uxyn9r3GccvHm9TI+40RuQ3iIz/6w85lbT6y+V37l1tOqZH7LDm0+59FomYmL +SPx31p6pBdxbZKMHGqRj1tA2hUv8sryEHsUq/574dQhC/E/hz/6gxoMaxv1/zwXIqSP6j8vk0xj2 +J1ZYTufJ9ljsX/9YTM1/spSHrtdLr54frgdx61nZepB+mQutnzyoJivb08DtaeAfdxpo7FJjwhC8 +PQ38otPAJQQ1p6QJqkf4+6CsCrsWz78E4ZewqZxincv1rnIdwi+giRxpjaLNnWsF2fZYeHttr+21 +vbbX9tpe22t7ba/t1XT9L9Ege4cAeAAA" | base64 --decode | tar xzf - + + systemctl restart rpimonitor >/dev/null 2>&1 +} # PatchRPiMonitor_for_sun50iw1p1 + +cleanupPackageLists() +{ + echo -e "\nCleaning up package lists" + + if [ -f /etc/apt/sources.list.d/armbian.list ]; then + #remove if not Armbian + if [ ! -f /etc/armbian-release ]; then + rm /etc/apt/sources.list.d/armbian.list + apt-key del 9F0E78D5 >/dev/null 2>&1 + apt-get update + fi + fi +} # cleanupPackageLists + +echo -e "$(date) Start RPi-Monitor installation\n" + +echo -e "Checking for dpkg lock\c" +while true ; do + fuser /var/lib/dpkg/lock >/dev/null 2>&1 || break + sleep 3 + echo -e ".\c" +done + +echo -e "\nAdding Armbian package list" +if [ ! -f /etc/apt/sources.list.d/armbian.list ]; then + echo 'deb http://apt.armbian.com xenial main utils xenial-desktop' > \ + /etc/apt/sources.list.d/armbian.list + + apt-key adv --keyserver keys.gnupg.net --recv-keys 0x93D6889F9F0E78D5 >/dev/null 2>&1 + + if [ $? -ne 0 ]; then + useEncodedPublicKey + fi +fi + +echo -e "\nUpdating package lists" +apt-get update + +echo -e "\nInstalling rpimonitor (this may take several minutes)..." +apt-get -f -qq -y install rpimonitor +/usr/share/rpimonitor/scripts/updatePackagesStatus.pl & + +cleanupPackageLists + +PatchRPiMonitor_for_sun50iw1p1 + +echo -e "\n$(date) Finished RPi-Monitor installation" +echo -e " \nNow you're able to enjoy RPi-Monitor at http://$((ifconfig -a) | sed -n '/inet addr/s/.*addr.\([^ ]*\) .*/\1/p' | grep -v '127.0.0.1' | head -1):8888" diff --git a/simpleimage/platform-scripts/mplayer-play.sh b/package/root/usr/local/sbin/mplayer-play.sh similarity index 100% rename from simpleimage/platform-scripts/mplayer-play.sh rename to package/root/usr/local/sbin/mplayer-play.sh diff --git a/package/root/usr/local/sbin/pine64_diagnostics.sh b/package/root/usr/local/sbin/pine64_diagnostics.sh new file mode 100755 index 00000000..45b35e1f --- /dev/null +++ b/package/root/usr/local/sbin/pine64_diagnostics.sh @@ -0,0 +1,514 @@ +#!/bin/bash +# This script is designed to be a general purpose diagnostic log and testing +# script for the pine64 and related SBC boards. It heavily borrows from code +# used in the Armbian project's armbianmonitor. +# +# Written 2017 Peter Feerick and contributors, released under GPLv3 +# + +#if user doesn't have permission for /var/log, write to /tmp +if [ -w /var/log ]; then + Log="/var/log/${0##*/}.log" +else + Log="/tmp/${0##*/}.log" +fi + +VerifyRepairExcludes="/etc/|/boot/|cache|getty|/var/lib/smartmontools/" + +Main() { + # check if stdout is a terminal... + if test -t 1; then + # see if it supports colors... + ncolors=$(tput colors) + if test -n "$ncolors" && test $ncolors -ge 8; then + BOLD="$(tput bold)" + NC='\033[0m' # No Color + LGREEN='\033[1;32m' + LRED='\e[0;91m' + fi + fi + + [ $# -eq 0 ] && (DisplayUsage ; exit 0) + + ParseOptions "$@" + + exit 0 +} # Main + +#thanks to tkaiser for the initial command for this function +VerifyFiles() { + echo -e "\n### file verification:\n" + + OUTPUT=$(dpkg --verify | egrep -v -i "${VerifyRepairExcludes}" | awk -F" /" '{print "/"$2}') + + if [[ -z $OUTPUT ]]; then + echo -e "${LGREEN}${BOLD}It would appear you don't have any corrupt files or packages!${NC}" + echo -e "If you still have concerns, use this scripts media test mode" + echo -e "to do a stress test of your drive/storage device.\n" + else + echo -e "${LRED}${BOLD}It appears you *may* have corrupt packages.${NC} If you believe this to be the" + echo -e "case (and not a customisation that you or a script has applied), re-run this" + echo -e "script in fix mode to try and fix these packages.\n" + + echo -e "### The following changed from packaged state files were detected:\n" + echo -e "${OUTPUT}\n" + fi + +} # VerifyFiles + +#thanks to tkaiser for the initial command for this function +VerifyAndFixFiles() { + echo -e "\n### file verification and file/package repair:\n" + + STAGE1=$(dpkg --verify | egrep -v -i "${VerifyRepairExcludes}" | awk -F" /" '{print "/"$2}') + + if [[ -z $STAGE1 ]]; then + echo -e "${LGREEN}${BOLD}It would appear you don't have any corrupt files or packages!${NC}" + echo -e "\nIf you are experiencing issues, it is probably best to back" + echo -e "up your data, and reinstall the OS from a new image.\n" + else + echo -e "### The following changed from packaged state files were detected:\n" + echo -e "${STAGE1}" + + echo -e "\n### Identifying which packages the changed files belong to... " + STAGE2=$(echo "${STAGE1}" | while read ; do dpkg -S "${REPLY}" | cut -f1 -d: ; done | sort | uniq) + + if [[ -z ${STAGE2} ]]; then + echo -e "\n\n${LRED}${BOLD}An internal error has occured... Exiting!${NC}" + exit 1 + else + echo -e "\nThe following packages will be reinstalled:" + echo -e "${STAGE2}" + + # test internet connection by poking google + nc -zw1 google.com 443 >/dev/null 2>&1 + + if [[ $? -eq 0 ]]; then + echo -e "\n### Updating software repositories before package reinstall..." + apt-get update -qq >/dev/null 2>&1 + + echo "${STAGE2}" | while read; + do + echo -e "Reinstalling package: ${REPLY}" + apt-get -q --reinstall -y install ${REPLY} >/dev/null 2>&1 + done + + echo -e "\n${LGREEN}${BOLD}Process complete.${NC} Reboot your device now and see if the issues that" + echo -e "were identified have been successfully resolved." + else + echo -e "\n${LRED}${BOLD}It appears you don't have an active internet connection!!${NC}\n" + echo -e "Repair cannot proceed without an internet connection as new/fresh versions of the" + echo -e "package files are downloaded as part of the repair process. Please resolve the" + echo -e "network/network issue and then try again. Exiting!\n" + + exit 1 + fi + fi + fi +} # VerifyAndFixFiles + +# Most of the below has been shameless copied from the Armbian project's armbianmonitor, +# because they did an amazing job at making a create diagnostic report! Specifically: + +# https://github.com/armbian/build/blob/master/packages/bsp/armbianmonitor/armbianmonitor-daemon +# https://github.com/armbian/build/blob/master/packages/bsp/armbianmonitor/armbianmonitor +# https://github.com/armbian/build/blob/master/packages/bsp/armhwinfo +GenerateLog() { + echo -e "\n### dmesg:\n" + dmesg + + echo -e "\n### meminfo:\n" + cat /proc/meminfo + + echo -e "\n### ifconfig:\n" + ifconfig + + echo -e "### partitions:\n" + cat /proc/partitions + + echo -e "\n### df:\n" + df -h + + echo -e "\n### Installed packages:\n\n$(dpkg -l | egrep "linux-|openmediavault")" + + echo -e "\n### Loaded modules:\n\n$(lsmod)" + + if [[ $(dpkg-query -W -f='${Status}' linux-pine64-package 2>/dev/null | grep -c "ok installed") == "1" ]]; then + echo -e "\n### linux-pine64-package version:\n" + apt-cache policy linux-pine64-package + fi + + if [[ $(dpkg-query -W -f='${Status}' linux-rock64-package 2>/dev/null | grep -c "ok installed") == "1" ]]; then + echo -e "\n### linux-rock64-package version:\n" + apt-cache policy linux-rock64-package + fi + + echo -e "\n### Kernel version:\n" + uname -a + + echo -e "Searching for info on flash media... " + get_flash_information + which iostat >/dev/null 2>&1 && \ + + echo -e "\n### Current sysinfo:\n\n" + which iostat >/dev/null 2>&1 && echo -e "$(iostat -p ALL | grep -v '^loop')\n\n" + echo -e "$(vmstat -w)\n\n$(free -h)\n\n$(dmesg | tail -n 250)" +} # GenerateLog + +CheckCard() { + if [ "$(id -u)" = "0" ]; then + echo "Checking disks is not permitted as root or through sudo. Exiting" >&2 + exit 1 + fi + + if [ ! -d "$1" ]; then + echo "\"$1\" does not exist or is no directory. Exiting" >&2 + exit 1 + fi + TargetDir="$1" + + # check requirements + which f3write >/dev/null 2>&1 || MissingTools=" f3" + which iozone >/dev/null 2>&1 || MissingTools="${MissingTools} iozone3" + if [ "X${MissingTools}" != "X" ]; then + echo "Some tools are missing, please do a \"sudo apt-get -f -y install${MissingTools}\" to install them, and try again" >&2 + exit 1 + fi + + # check provided path + Device="$(GetDevice "$1")" + set ${Device} + DeviceName=$1 + FileSystem=$2 + echo "${DeviceName}" | grep -q "mmcblk0" || echo -e "\n${BOLD}NOTE:${NC} It seems you're actually testing ${DeviceName} (${FileSystem})\n" + + TestDir="$(mktemp -d "${TargetDir}/cardtest.XXXXXX" || exit 1)" + date "+%s" >"${TestDir}/.starttime" || exit 1 + trap "rm -rf \"${TestDir}\" ; exit 0" 0 1 2 3 15 + LogFile="$(mktemp /tmp/armbianmonitor_checks_${DeviceName##*/}_${FileSystem}.XXXXXX)" + + # start actual test, create a small file for some space reserve + fallocate -l 32M "${TestDir}/empty.32m" 2>/dev/null || dd if=/dev/zero of="${TestDir}/empty.32m" bs=1M count=32 status=noxfer >/dev/null 2>&1 + ShowWarning=false + + # Start writing + echo -e "Starting to fill ${DeviceName} with test patterns, please be patient this might take a very long time" + f3write "${TestDir}" | tee "${LogFile}" + touch "${TestDir}/.starttime" || ShowDeviceWarning + rm "${TestDir}/empty.32m" + + # Start verify + echo -e "\nNow verifying the written data:" + echo "" >>"${LogFile}" + f3read "${TestDir}" | tee -a "${LogFile}" + touch "${TestDir}/.starttime" || ShowDeviceWarning + rm "${TestDir}/"*.h2w + echo -e "\nStarting iozone tests. Be patient, this can take a very long time to complete:" + echo "" >>"${LogFile}" + cd "${TestDir}" + iozone -e -I -a -s 100M -r 4k -r 512k -r 16M -i 0 -i 1 -i 2 | tee -a "${LogFile}" + touch "${TestDir}/.starttime" || ShowDeviceWarning + echo -e "\n${BOLD}The results from testing ${DeviceName} (${FileSystem}):${NC}" + egrep "Average|Data" "${LogFile}" | sort -r + echo " random random" + echo -e "reclen write rewrite read reread read write\c" + awk -F"102400 " '/102400/ {print $2}' <"${LogFile}" + + # check health + echo -e "\n${BOLD}Health summary: \c" + egrep -q "Read-only|Input/output error" "${LogFile}" && (echo -e "${LRED}${BOLD}${DeviceName} failed${NC}" ; exit 0) + grep -q "Data LOST: 0.00 Byte" "${LogFile}" && echo -e "${LGREEN}OK" || \ + (echo -e "${LRED}${BOLD}${DeviceName} failed. Replace it as soon as possible!" ; \ + grep -A3 "^Data LOST" "${LogFile}") + + # check performance + RandomSpeed=$(awk -F" " '/102400 4/ {print $7"\t"$8}' <"${LogFile}") + if [ "X${RandomSpeed}" != "X" ]; then + # Only continue when we're able to read out iozone results + set ${RandomSpeed} + RandomReadSpead=$1 + RandomWriteSpead=$2 + ReadSpeed=$(awk -F" " '/Average reading speed/ {print $4"\t"$5}' <"${LogFile}") + set ${ReadSpeed} + if [ "X$2" = "XMB/s" ]; then + RawReadSpead=$(echo "$1 * 1000" | bc -s | cut -f1 -d.) + else + RawReadSpead$(echo "$1" | cut -f1 -d.) + fi + echo -e "\n${NC}${BOLD}Performance summary:${NC}\nSequential reading speed:$(printf "%6s" $1) $2 \c" + [ ${RawReadSpead} -le 2500 ] && Exclamation="${LRED}${BOLD}way " || Exclamation="" + [ ${RawReadSpead} -le 5000 ] && Exclamation="${Exclamation}${BOLD}too " + [ ${RawReadSpead} -le 7500 ] && echo -e "(${Exclamation}low${NC})\c" + echo "${Exclamation}" | grep -q "too" && ShowWarning=true + echo -e "\n 4K random reading speed:$(printf "%6s" ${RandomReadSpead}) KB/s \c" + [ ${RandomReadSpead} -le 700 ] && Exclamation="${LRED}${BOLD}way " || Exclamation="" + [ ${RandomReadSpead} -le 1400 ] && Exclamation="${Exclamation}${BOLD}too " + [ ${RandomReadSpead} -le 2500 ] && echo -e "(${Exclamation}low${NC})\c" + echo "${Exclamation}" | grep -q "too" && ShowWarning=true + WriteSpeed=$(awk -F" " '/Average writing speed/ {print $4"\t"$5}' <"${LogFile}") + set ${WriteSpeed} + if [ "X$2" = "XMB/s" ]; then + RawWriteSpeed=$(echo "$1 * 1000" | bc -s | cut -f1 -d.) + else + RawWriteSpeed=$(echo "$1" | cut -f1 -d.) + fi + echo -e "\nSequential writing speed:$(printf "%6s" $1) $2 \c" + [ ${RawWriteSpeed} -le 2500 ] && Exclamation="${LRED}${BOLD}way " || Exclamation="" + [ ${RawWriteSpeed} -le 4000 ] && Exclamation="${Exclamation}${BOLD}too " + [ ${RawWriteSpeed} -le 6000 ] && echo -e "(${Exclamation}low${NC})\c" + echo "${Exclamation}" | grep -q "too" && ShowWarning=true + echo -e "\n 4K random writing speed:$(printf "%6s" ${RandomWriteSpead}) KB/s \c" + [ ${RandomWriteSpead} -le 400 ] && Exclamation="${LRED}${BOLD}way " || Exclamation="" + [ ${RandomWriteSpead} -le 750 ] && Exclamation="${Exclamation}${BOLD}too " + [ ${RandomWriteSpead} -lt 1000 ] && echo -e "(${Exclamation}low${NC})\c" + echo "${Exclamation}" | grep -q "too" && ShowWarning=true + if [ "X${ShowWarning}" = "Xtrue" ]; then + echo -e "\n\n${BOLD}The device you tested seems to perform too slow to be used with pine64." + echo -e "This applies especially to desktop images where slow storage is responsible" + echo -e "for sluggish behaviour. If you want to have fun with your device do NOT use" + echo -e "this media to put the OS image or the user homedirs on.${NC}\c" + fi + echo -e "\n\nTo interpret the results above correctly or search for better storage +alternatives please refer to http://oss.digirati.com.br/f3/ and also +http://www.jeffgeerling.com/blogs/jeff-geerling/raspberry-pi-microsd-card +and http://thewirecutter.com/reviews/best-microsd-card/" + fi +} # CheckCard + +GetDevice() { + TestPath=$(findmnt "$1" | awk -F" " '/\/dev\// {print $2"\t"$3}') + if [[ -z ${TestPath} && -n "${1%/*}" ]]; then + GetDevice "${1%/*}" + elif [[ -z ${TestPath} && -z "${1%/*}" ]]; then + findmnt / | awk -F" " '/\/dev\// {print $2"\t"$3}' + else + echo "${TestPath}" + fi +} # GetDevice + +get_flash_information() { + # http://www.bunniestudios.com/blog/?page_id=1022 + find /sys -name oemid | while read Device ; do + DeviceNode="${Device%/*}" + DeviceName="${DeviceNode##*/}" + echo -e "\n### ${DeviceName} info:\n" + find "${DeviceNode}" -maxdepth 1 -type f | while read ; do + NodeName="${REPLY##*/}" + echo -e "$(printf "%20s" ${NodeName}): $(cat "${DeviceNode}/${NodeName}" | tr '\n' " ")" + done + done +} # get_flash_information + +UploadSupportLogs() { + #prevent colour escape sequences in log + BOLD='' + NC='' + LGREEN='' + LRED='' + + #check requirements + which fping >/dev/null 2>&1 || MissingTools=" fping" + which curl >/dev/null 2>&1 || MissingTools="${MissingTools} curl" + which iostat >/dev/null 2>&1 || MissingTools="${MissingTools} sysstat" + + if [ "X${MissingTools}" != "X" ]; then + echo -e "Some tools are missing, installing: ${MissingTools}" >&2 + apt-get -f -qq -y install ${MissingTools} >/dev/null 2>&1 + fi + + echo -e "Generating diagnostic logs... " + GenerateLog > ${Log} + echo -e "Running file integrity checks... " + VerifyFiles >> ${Log} + + #check network connection + fping sprunge.us | grep -q alive || \ + (echo "Network/firewall problem detected. Please fix this or upload ${Log} manually." >&2 ; exit 1) + + echo -ne "\nIP obfuscated log uploaded to \c" + # obfuscate IPv4 addresses somehow but not too much + cat ${Log} | \ + sed -E 's/([0-9]{1,3}\.)([0-9]{1,3}\.)([0-9]{1,3}\.)([0-9]{1,3})/XXX.XXX.\3\4/g' \ + | curl -F 'sprunge=<-' http://sprunge.us + + echo -e "Please post the above URL on the forum where you've been asked for it." +} # UploadSupportLogs + +RequireRoot() { + if [ "$(id -u)" != "0" ]; then + echo "This function requires root privleges - run as root or through sudo. Exiting" >&2 + exit 1 + fi +} # RequireRoot + +DisplayUsage() { + echo -e "\nUsage: ${BOLD}${0##*/} [-h] [-c \$path] [-f] [-l] [-L] [-m] [-u] [-v]${NC}\n" + echo -e "############################################################################" + echo -e "\n Use ${BOLD}${0##*/}${NC} for the following tasks:\n" + echo -e " ${0##*/} ${BOLD}-c /path/to/test${NC} performs disk health/performance tests" + echo -e " ${0##*/} ${BOLD}-f${NC} tries to fix detected corrupt packages" + echo -e " ${0##*/} ${BOLD}-l${NC} outputs diagnostic logs to the screen via less" + echo -e " ${0##*/} ${BOLD}-L${NC} outputs diagnostic logs to the screen as is" + echo -e " ${0##*/} ${BOLD}-m${NC} provides simple CLI monitoring" + echo -e " ${0##*/} ${BOLD}-u${NC} tries to upload diagnostic logs for support purposes" + echo -e " ${0##*/} ${BOLD}-v${NC} tries to diagnose corrupt packages and files" + echo -e "\n############################################################################\n" +} # DisplayUsage + +ParseOptions() { + while getopts 'hHlLvVfFmMuUc:C:' c ; do + case ${c} in + h|H) + # display usage info + DisplayUsage + exit 0 + ;; + + l) + # generate logs and pipe to screen via less + GenerateLog | less + exit 0 + ;; + + L) + # generate logs and output to display + GenerateLog + exit 0 + ;; + + v|V) + # file verification mode + RequireRoot + VerifyFiles + exit 0 + ;; + + f|F) + # file verification and repair mode + RequireRoot + VerifyAndFixFiles + exit 0 + ;; + + m|M) + # monitoring mode + echo -e "Stop monitoring using [ctrl]-[c]" + MonitorMode + exit 0 + ;; + + u|U) + # upload generated logs for support + RequireRoot + UploadSupportLogs + exit 0 + ;; + + c|C) + # check card mode + CheckCard "${OPTARG}" + exit 0 + ;; + + esac + done +} # ParseOptions + +MonitorMode() { + # $1 is the time in seconds to pause between two prints, defaults to 5 seconds + # This functions prints out endlessly: + # - time/date + # - average 1m load + # - detailed CPU statistics + # - Soc temperature if available + # - PMIC temperature if available + # TODO: Format output nicely + LastUserStat=0 + LastNiceStat=0 + LastSystemStat=0 + LastIdleStat=0 + LastIOWaitStat=0 + LastIrqStat=0 + LastSoftIrqStat=0 + LastCpuStatCheck=0 + + DisplayHeader="Time CPU load %cpu %sys %usr %nice %io %irq" + CPUs=normal + [ -f /sys/devices/virtual/thermal/thermal_zone0/temp ] && DisplayHeader="${DisplayHeader} CPU" || SocTemp='n/a' + echo -e "${DisplayHeader}\c" + Counter=0 + while true ; do + let Counter++ + if [ ${Counter} -eq 15 ]; then + echo -e "\n${DisplayHeader}\c" + Counter=0 + fi + LoadAvg=$(cut -f1 -d" " /dev/null + elif [ -r /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq ]; then + CpuFreq=$(awk '{printf ("%0.0f",$1/1000); }' /dev/null + else + CpuFreq='n/a' + fi + echo -e "\n$(date "+%H:%M:%S"): $(printf "%4s" ${CpuFreq})MHz $(printf "%5s" ${LoadAvg}) $(ProcessStats)\c" + if [ "X${SocTemp}" != "Xn/a" ]; then + read SocTemp /dev/null || ! dpkg -l libmali-sunxi &>/dev/null; then + echo "The armsoc-sunxi and libmali is not installed!" + echo "Please run this before trying again:" + echo "" + echo " apt-add-repository -y ppa:ayufan/pine64-ppa" + echo " apt-get update" + echo " apt-get install -y xserver-xorg-video-armsoc-sunxi libmali-sunxi-utgard0-r6p0" + exit 1 +fi + +set -xe + +dpkg-divert --divert /etc/modules-load.d/pine64-disp.conf.disabled --rename /etc/modules-load.d/pine64-disp.conf +dpkg-divert --divert /etc/X11/xorg.conf.d/40-pine64-fbturbo.conf.disabled --rename /etc/X11/xorg.conf.d/40-pine64-fbturbo.conf +dpkg-divert --divert /etc/ld.so.conf.d/aarch64-linux-gnu_EGL.conf.disabled --rename /etc/ld.so.conf.d/aarch64-linux-gnu_EGL.conf + +dpkg-divert --divert /etc/modules-load.d/pine64-sunxidrm.conf --rename /etc/modules-load.d/pine64-sunxidrm.conf.disabled +dpkg-divert --divert /etc/X11/xorg.conf.d/40-pine64-armsoc.conf --rename /etc/X11/xorg.conf.d/40-pine64-armsoc.conf.disabled +dpkg-divert --divert /etc/ld.so.conf.d/mali.conf --rename /etc/ld.so.conf.d/mali.conf.disabled + +ldconfig + +echo "Done. Please reboot!" diff --git a/package/root/usr/local/sbin/pine64_first_boot.sh b/package/root/usr/local/sbin/pine64_first_boot.sh new file mode 100755 index 00000000..63f719fd --- /dev/null +++ b/package/root/usr/local/sbin/pine64_first_boot.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +set -x + +mkdir -p /var/lib/pine64 + +if [ ! -e /var/lib/pine64/resized ]; then + touch /var/lib/pine64/resized + /usr/local/sbin/resize_rootfs.sh +fi diff --git a/simpleimage/platform-scripts/pine64_fix_whatever.sh b/package/root/usr/local/sbin/pine64_fix_whatever.sh similarity index 100% rename from simpleimage/platform-scripts/pine64_fix_whatever.sh rename to package/root/usr/local/sbin/pine64_fix_whatever.sh diff --git a/simpleimage/platform-scripts/pine64_health.sh b/package/root/usr/local/sbin/pine64_health.sh similarity index 100% rename from simpleimage/platform-scripts/pine64_health.sh rename to package/root/usr/local/sbin/pine64_health.sh diff --git a/package/root/usr/local/sbin/pine64_install_to_emmc.sh b/package/root/usr/local/sbin/pine64_install_to_emmc.sh new file mode 100755 index 00000000..88372590 --- /dev/null +++ b/package/root/usr/local/sbin/pine64_install_to_emmc.sh @@ -0,0 +1,126 @@ +#!/bin/bash + +set -eo pipefail + +if [[ "$(id -u)" -ne "0" ]]; then + echo "This script requires root." + exit 1 +fi + +echo "Pine A64/Pinebook release installer!" +echo "(C) 2017. Kamil Trzciński (https://ayufan.eu)." +echo "" + +usage() { + echo "Usage:" + echo "$ $0 [version]" + echo "" + echo "Systems:" + echo " - xenial|bionic-minimal (https://github.com/ayufan-pine64/linux-build/releases)" + echo " - xenial|bionic-mate (https://github.com/ayufan-pine64/linux-build/releases)" + echo " - xenial|bionic-lxde (https://github.com/ayufan-pine64/linux-build/releases)" + echo " - xenial|bionic-i3 (https://github.com/ayufan-pine64/linux-build/releases)" + echo " - android-7.0 (https://github.com/ayufan-pine64/android-7.0/releases)" + echo " - android-7.1 (https://github.com/ayufan-pine64/android-7.1/releases)" + echo "" + echo "Version:" + echo " - latest will be used if version is not defined" + exit 1 +} + +if [[ $# -ne 1 ]] && [[ $# -ne 2 ]]; then + usage +fi + +if [[ ! -d /sys/devices/soc.0/1c10000.sdmmc/mmc_host/mmc1 ]]; then + echo "You should boot from SD card" + exit 1 +fi + +if [[ ! -e /dev/mmcblk1 ]]; then + echo "You should boot from SD card" + exit 1 +fi + +case "$1" in + xenial-*|bionic-*) + REPO="ayufan-pine64/linux-build" + PREFIX="$1-$(cat /etc/pine64_model)-bspkernel-" + SUFFIX="-[0-9]*.img.xz" + ARCHIVER="xz -d" + ;; + + android-7.0|android-7.1) + REPO="ayufan-pine64/$1" + if [[ "$(cat /etc/pine64_model)" == "pinebook" ]]; then + PREFIX="$1-pine-a64-pinebook-v" + elif [[ "$(cat /etc/pine64_model)" == "pinebook1080p" ]]; then + PREFIX="$1-pine-a64-pinebook1080p-v" + elif [[ "$(cat /etc/pine64_model)" == "sopine" ]]; then + PREFIX="$1-pine-a64-sopine-v" + else + PREFIX="$1-pine-a64-v" + fi + SUFFIX="-r[0-9]*.img.gz" + ARCHIVER="gzip -d" + ;; + + *) + echo "Unknown system: $1" + echo "" + usage + ;; +esac + +VERSION="$2" + +if [[ -z "$VERSION" ]]; then + VERSION=$(curl -f -sS https://api.github.com/repos/$REPO/releases/latest | jq -r ".tag_name") + if [ -z "$VERSION" ]; then + echo "Latest release was not for $1." + echo "Please go to: https://github.com/$REPO/releases/latest" + exit 1 + fi + + echo "Using latest release: $VERSION from https://github.com/$REPO/releases." +fi + +NAME="$PREFIX$VERSION$SUFFIX" +NAME_SAFE="${NAME//./\\.}" +VERSION_SAFE="${VERSION//./\\.}" + +echo "Looking for download URL..." +DOWNLOAD_URL=$(curl -f -sS https://api.github.com/repos/$REPO/releases | \ + jq -r ".[].assets | .[].browser_download_url" | \ + ( grep -o "https://github\.com/$REPO/releases/download/$VERSION_SAFE/$NAME_SAFE" || true)) + +if [[ -z "$DOWNLOAD_URL" ]]; then + echo "The download URL for $NAME not found". + echo "Look at https://github.com/$REPO/releases for correct versions." + exit 1 +fi + +echo "Doing this will overwrite all data stored on eMMC." + +while true; do + echo "Type YES to continue or Ctrl-C to abort." + read CONFIRM + if [[ "$CONFIRM" == "YES" ]]; then + break + fi +done + +echo "" +echo "Using $DOWNLOAD_URL..." +echo "Umounting..." +umount -f /dev/mmcblk1* || true +echo "" + +echo "Downloading and writing to /dev/mmcblk1..." +curl -L -f "$DOWNLOAD_URL" | $ARCHIVER | dd bs=30M of=/dev/mmcblk1 +sync +echo "" +echo "You may want to run now pine64_remove_boot0.sh to make the current device unbootable." +echo "" + +echo "Done." diff --git a/package/root/usr/local/sbin/pine64_install_uboot.sh b/package/root/usr/local/sbin/pine64_install_uboot.sh new file mode 100755 index 00000000..4cc3bb44 --- /dev/null +++ b/package/root/usr/local/sbin/pine64_install_uboot.sh @@ -0,0 +1,29 @@ +#!/bin/sh + +set -e + +if [ "$(id -u)" -ne "0" ]; then + echo "This script requires root." + exit 1 +fi + +DEVICE="${1:-/dev/mmcblk0}" + +if [ ! -b "$DEVICE" ]; then + echo "Block device ${DEVICE} not found." + exit 2 +fi + +local boot0_position=8 # KiB +local boot0_size=64 # KiB +local uboot_position=19096 # KiB +local uboot_size=1384 # KiB + +echo "Flashing boot0 ..." +dd if="/boot/pine64/boot0-pine64-$(cat /etc/pine64_model).bin" conv=notrunc bs=1k seek=$boot0_position oflag=sync of="${DEVICE}" + +echo "Flashing U-Boot ..." +dd if="/boot/pine64/u-boot-pine64-$(cat /etc/pine64_model).bin" conv=notrunc bs=1k seek=$uboot_position oflag=sync of="${DEVICE}" + +sync +echo "Done - you should reboot now." diff --git a/package/root/usr/local/sbin/pine64_model.sh b/package/root/usr/local/sbin/pine64_model.sh new file mode 100755 index 00000000..451bbca2 --- /dev/null +++ b/package/root/usr/local/sbin/pine64_model.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +set -e + +cat /etc/pine64_model diff --git a/package/root/usr/local/sbin/pine64_remove_boot0.sh b/package/root/usr/local/sbin/pine64_remove_boot0.sh new file mode 100755 index 00000000..70b52133 --- /dev/null +++ b/package/root/usr/local/sbin/pine64_remove_boot0.sh @@ -0,0 +1,51 @@ +#!/bin/bash + +set -eo pipefail + +if [[ "$(id -u)" -ne "0" ]]; then + echo "This script requires root." + exit 1 +fi + +echo "Pine A64/Pinebook boot remover!" +echo "(C) 2017. Kamil Trzciński (https://ayufan.eu)." +echo "" +echo "The purpose of this script is to remove boot0 and make the disk unbootable." +echo "" + +usage() { + echo "Usage:" + echo "$ $0 [disk]" + echo "" + echo "If no disk is specified the /dev/mmcblk0 will be used." + exit 1 +} + +if [[ $# -ne 1 ]] && [[ $# -ne 2 ]]; then + usage +fi + +DISK="${1-/dev/mmcblk0}" + +echo "Doing this will make the "$DISK" unbootable." + +while true; do + echo "Type YES to continue or Ctrl-C to abort." + read CONFIRM + if [[ "$CONFIRM" == "YES" ]]; then + break + fi +done + +# Taken from: https://github.com/longsleep/build-pine64-image/blob/master/convert-pine64-image.sh#L28 +boot0headerpos=$((8*1024+4)) +boot0header=$(xxd -p -s "$boot0headerpos" -l 4 "$DISK") +if [ "$boot0header" != "65474f4e" ]; then + echo "Error: Target image has no eGON header, aborting!" + exit 1 +fi + +echo "" +dd conv=notrunc bs=1k seek=8 count=32 oflag=direct if=/dev/zero of="$DISK" + +echo "Done." diff --git a/simpleimage/platform-scripts/pine64_tune_network.sh b/package/root/usr/local/sbin/pine64_tune_network.sh similarity index 100% rename from simpleimage/platform-scripts/pine64_tune_network.sh rename to package/root/usr/local/sbin/pine64_tune_network.sh diff --git a/simpleimage/platform-scripts/pine64_update_kernel.sh b/package/root/usr/local/sbin/pine64_update_kernel.sh similarity index 52% rename from simpleimage/platform-scripts/pine64_update_kernel.sh rename to package/root/usr/local/sbin/pine64_update_kernel.sh index 8a16b708..8703ee47 100755 --- a/simpleimage/platform-scripts/pine64_update_kernel.sh +++ b/package/root/usr/local/sbin/pine64_update_kernel.sh @@ -7,30 +7,21 @@ if [ "$(id -u)" -ne "0" ]; then exit 1 fi -VERSION="latest" -if [ -n "$1" ]; then - VERSION="$1" -fi - -VARIANTFILE="/var/lib/misc/pine64_update_kernel.variant" -VARIANT="" -if [ -e "$VARIANTFILE" ]; then - VARIANT=$(cat $VARIANTFILE) -fi +VERSION="$1" -if [ -n "$2" ]; then - VARIANT="$2" - if [ "$VARIANT" = "default" ]; then - VARIANT="" +if [ -z "$1" ]; then + VERSION=$(curl -s https://api.github.com/repos/ayufan-pine64/linux-build/releases/latest | jq -r ".tag_name") + if [ -z "$VERSION" ]; then + echo "Latest release was not found. Please go to: $LATEST_LIST" + exit 1 fi -fi -if [ -n "$VARIANT" ]; then - echo "Using Kernel variant: $VARIANT" + echo "Using latest release: $VERSION." fi -URL="https://www.stdin.xyz/downloads/people/longsleep/pine64-images/linux/linux-pine64$VARIANT-$VERSION.tar.xz" -PUBKEY="https://www.stdin.xyz/downloads/people/longsleep/longsleep.asc" +URL="https://github.com/ayufan-pine64/linux-build/releases/download/$VERSION/linux-pine64-$VERSION.tar.xz" +# URL="https://www.stdin.xyz/downloads/people/longsleep/pine64-images/linux/linux-pine64$VARIANT-$VERSION.tar.xz" +# PUBKEY="https://www.stdin.xyz/downloads/people/longsleep/longsleep.asc" CURRENTFILE="/var/lib/misc/pine64_update_kernel.status" TEMP=$(mktemp -d -p /var/tmp) @@ -47,33 +38,19 @@ if [ -e "${CURRENTFILE}" ]; then CURRENT=$(cat $CURRENTFILE) fi -echo "Checking for update ..." -ETAG=$(curl -f -I -H "If-None-Match: \"${CURRENT}\"" -s "${URL}"|grep ETag|awk -F'"' '{print $2}') - -if [ -z "$ETAG" ]; then - echo "Version $VERSION$VARIANT not found." - exit 1 -fi - -ETAG="$ETAG$VARIANT" -if [ "$ETAG" = "$CURRENT" ]; then - echo "You are already on $VERSION version - abort." - exit 0 -fi - FILENAME=$TEMP/$(basename ${URL}) downloadAndApply() { echo "Downloading Linux Kernel ..." - curl "${URL}" -f --progress-bar --output "${FILENAME}" - echo "Downloading signature ..." - curl "${URL}.asc" -f --progress-bar --output "${FILENAME}.asc" - echo "Downloading public key ..." - curl "${PUBKEY}" -f --progress-bar --output "${TEMP}/pub.asc" + curl -L "${URL}" -f --progress-bar --output "${FILENAME}" + # echo "Downloading signature ..." + # curl "${URL}.asc" -f --progress-bar --output "${FILENAME}.asc" + # echo "Downloading public key ..." + # curl "${PUBKEY}" -f --progress-bar --output "${TEMP}/pub.asc" - echo "Verifying signature ..." - gpg --homedir "${TEMP}" --yes -o "${TEMP}/pub.gpg" --dearmor "${TEMP}/pub.asc" - gpg --homedir "${TEMP}" --status-fd 1 --no-default-keyring --keyring "${TEMP}/pub.gpg" --trust-model always --verify "${FILENAME}.asc" 2>/dev/null + # echo "Verifying signature ..." + # gpg --homedir "${TEMP}" --yes -o "${TEMP}/pub.gpg" --dearmor "${TEMP}/pub.asc" + # gpg --homedir "${TEMP}" --status-fd 1 --no-default-keyring --keyring "${TEMP}/pub.gpg" --trust-model always --verify "${FILENAME}.asc" 2>/dev/null echo "Extracting ..." mkdir $TEMP/update @@ -118,5 +95,4 @@ else echo "Mark only." fi echo "$ETAG" > "$CURRENTFILE" -echo "$VARIANT" > "$VARIANTFILE" sync diff --git a/package/root/usr/local/sbin/pine64_update_package.sh b/package/root/usr/local/sbin/pine64_update_package.sh new file mode 100755 index 00000000..6a28a4ac --- /dev/null +++ b/package/root/usr/local/sbin/pine64_update_package.sh @@ -0,0 +1,47 @@ +#!/bin/sh + +set -e + +VERSION="$1" + +if [ -z "$1" ]; then + VERSION=$(curl -s https://api.github.com/repos/ayufan-pine64/linux-build/releases/latest | jq -r ".tag_name") + if [ -z "$VERSION" ]; then + echo "Latest release was not found. Please go to: $LATEST_LIST" + exit 1 + fi + + echo "Using latest release: $VERSION." +fi + +DEVICE="/dev/mmcblk0" +URL="https://github.com/ayufan-pine64/linux-build/releases/download/$VERSION/linux-pine64-package-$VERSION.deb" + +if [ "$(id -u)" -ne "0" ]; then + echo "This script requires root." + exit 1 +fi + +TEMP=$(mktemp -d -p /var/tmp) + +cleanup() { + if [ -d "$TEMP" ]; then + rm -rf "$TEMP" + fi +} +trap cleanup EXIT INT + +echo "Checking for update ..." +FILENAME=$TEMP/$(basename ${URL}) + +if [ -z "$MARK_ONLY" ]; then + echo "Downloading model package ..." + curl -L "${URL}" -f --progress-bar --output "${FILENAME}" + + echo "Installing model package ..." + sudo dpkg -i "${FILENAME}" + + echo "Done - you should reboot now." +else + echo "Mark only." +fi diff --git a/simpleimage/platform-scripts/pine64_update_uboot.sh b/package/root/usr/local/sbin/pine64_update_uboot.sh similarity index 51% rename from simpleimage/platform-scripts/pine64_update_uboot.sh rename to package/root/usr/local/sbin/pine64_update_uboot.sh index 76967d26..647d6c8f 100755 --- a/simpleimage/platform-scripts/pine64_update_uboot.sh +++ b/package/root/usr/local/sbin/pine64_update_uboot.sh @@ -2,21 +2,22 @@ set -e -VERSION="latest" -if [ -n "$1" ]; then - VERSION="$1" -fi +VERSION="$1" + +if [ -z "$1" ]; then + VERSION=$(curl -s https://api.github.com/repos/ayufan-pine64/linux-build/releases/latest | jq -r ".tag_name") + if [ -z "$VERSION" ]; then + echo "Latest release was not found. Please go to: $LATEST_LIST" + exit 1 + fi -MODEL="pine64" -# Detect Pinebook. -if [ -e "/proc/device-tree/soc@01c00000/lcd0@01c0c000/lcd_driver_name" \ - -a "$(cat /proc/device-tree/soc\@01c00000/lcd0\@01c0c000/lcd_driver_name)" = "anx9804_panel" ]; then - MODEL="pinebook" + echo "Using latest release: $VERSION." fi DEVICE="/dev/mmcblk0" -URL="https://www.stdin.xyz/downloads/people/longsleep/pine64-images/simpleimage-$MODEL-$VERSION.img.xz" -PUBKEY="https://www.stdin.xyz/downloads/people/longsleep/longsleep.asc" +URL="https://github.com/ayufan-pine64/linux-build/releases/download/$VERSION/simple-image-$(cat /etc/pine64_model)-$VERSION.img.xz" +# URL="https://www.stdin.xyz/downloads/people/longsleep/pine64-images/simpleimage-pine64-$VERSION.img.xz" +# PUBKEY="https://www.stdin.xyz/downloads/people/longsleep/longsleep.asc" CURRENTFILE="/var/lib/misc/pine64_update_uboot.status" if [ "$(id -u)" -ne "0" ]; then @@ -38,32 +39,19 @@ if [ -e "${CURRENTFILE}" ]; then CURRENT=$(cat $CURRENTFILE) fi -echo "Checking for update ..." -ETAG=$(curl -f -I -H "If-None-Match: \"${CURRENT}\"" -s "${URL}"|grep ETag|awk -F'"' '{print $2}') - -if [ -z "$ETAG" ]; then - echo "Version $VERSION not found." - exit 1 -fi - -if [ "$ETAG" = "$CURRENT" ]; then - echo "You are already on $VERSION version - abort." - exit 0 -fi - FILENAME=$TEMP/$(basename ${URL}) downloadAndApply() { echo "Downloading U-Boot image ..." - curl "${URL}" -f --progress-bar --output "${FILENAME}" - echo "Downloading signature ..." - curl "${URL}.asc" -f --progress-bar --output "${FILENAME}.asc" - echo "Downloading public key ..." - curl "${PUBKEY}" -f --progress-bar --output "${TEMP}/pub.asc" - - echo "Verifying signature ..." - gpg --homedir "${TEMP}" --yes -o "${TEMP}/pub.gpg" --dearmor "${TEMP}/pub.asc" - gpg --homedir "${TEMP}" --status-fd 1 --no-default-keyring --keyring "${TEMP}/pub.gpg" --trust-model always --verify "${FILENAME}.asc" 2>/dev/null + curl -L "${URL}" -f --progress-bar --output "${FILENAME}" + # echo "Downloading signature ..." + # curl "${URL}.asc" -f --progress-bar --output "${FILENAME}.asc" + # echo "Downloading public key ..." + # curl "${PUBKEY}" -f --progress-bar --output "${TEMP}/pub.asc" + + # echo "Verifying signature ..." + # gpg --homedir "${TEMP}" --yes -o "${TEMP}/pub.gpg" --dearmor "${TEMP}/pub.asc" + # gpg --homedir "${TEMP}" --status-fd 1 --no-default-keyring --keyring "${TEMP}/pub.gpg" --trust-model always --verify "${FILENAME}.asc" 2>/dev/null local boot0_position=8 # KiB local boot0_size=64 # KiB diff --git a/package/root/usr/local/sbin/pine64_upgrade_android.sh b/package/root/usr/local/sbin/pine64_upgrade_android.sh new file mode 100755 index 00000000..e3011d2d --- /dev/null +++ b/package/root/usr/local/sbin/pine64_upgrade_android.sh @@ -0,0 +1,116 @@ +#!/bin/bash + +set -eo pipefail + +if [[ "$(id -u)" -ne "0" ]]; then + echo "This script requires root." + exit 1 +fi + +echo "Pine A64/Pinebook Android upgrader (experimental)!" +echo "(C) 2017. Kamil Trzciński (https://ayufan.eu)." +echo "" + +usage() { + echo "Usage:" + echo "$ $0 [version or file]" + echo "" + echo "Systems:" + echo " - android-7.0 (https://github.com/ayufan-pine64/android-7.0/releases)" + echo " - android-7.1 (https://github.com/ayufan-pine64/android-7.1/releases)" + echo "" + echo "Version:" + echo " - latest will be used if version is not defined" + exit 1 +} + +if [[ $# -ne 2 ]] && [[ $# -ne 3 ]]; then + usage +fi + +if [[ "$2" != "android-7.0" ]] && [[ "$2" != "android-7.1" ]]; then + usage +fi + +REPO="ayufan-pine64/$2" +if [[ "$(cat /etc/pine64_model)" == "pinebook" ]]; then + PREFIX="$2-pine-a64-pinebook-v" +elif [[ "$(cat /etc/pine64_model)" == "pinebook1080p" ]]; then + PREFIX="$2-pine-a64-pinebook1080p-v" +elif [[ "$(cat /etc/pine64_model)" == "sopine" ]]; then + PREFIX="$2-pine-a64-sopine-v" +else + PREFIX="$2-pine-a64-v" +fi +SUFFIX="-r[0-9]*.img.gz" +ARCHIVER="gzip -d" + +if [[ ! -f "$3" ]]; then + VERSION="$3" + + if [[ -z "$VERSION" ]]; then + VERSION=$(curl -f -sS https://api.github.com/repos/$REPO/releases/latest | jq -r ".tag_name") + if [ -z "$VERSION" ]; then + echo "Latest release was not for $2." + echo "Please go to: https://github.com/$REPO/releases/latest" + exit 1 + fi + + echo "Using latest release: $VERSION from https://github.com/$REPO/releases." + fi + + NAME="$PREFIX$VERSION$SUFFIX" + NAME_SAFE="${NAME//./\\.}" + VERSION_SAFE="${VERSION//./\\.}" + + echo "Looking for download URL..." + DOWNLOAD_URL=$(curl -f -sS https://api.github.com/repos/$REPO/releases | \ + jq -r ".[].assets | .[].browser_download_url" | \ + ( grep -o "https://github\.com/$REPO/releases/download/$VERSION_SAFE/$NAME_SAFE" || true)) + + if [[ -z "$DOWNLOAD_URL" ]]; then + echo "The download URL for $NAME not found". + echo "Look at https://github.com/$REPO/releases for correct versions." + exit 1 + fi +else + FILE="$(readlink -f "$3")" + DOWNLOAD_URL="" +fi + +echo "Doing this will overwrite some data stored on $1." + +while true; do + echo "Type YES to continue or Ctrl-C to abort." + read CONFIRM + if [[ "$CONFIRM" == "YES" ]]; then + break + fi +done + +echo "" +echo "Using ${DOWNLOAD_URL-$FILE}..." +echo "Umounting..." +umount -f $1* || true +echo "" + +START=$((16*512)) # 8k +END=$((4337664*512)) # 2,220,883,968 +BS=8192 + +get_data() { + if [[ -n "$DOWNLOAD_URL" ]]; then + curl -L -f "$DOWNLOAD_URL" + else + cat "$FILE" + fi +} + +echo "Downloading and upgrading $1..." +get_data | $ARCHIVER | \ + ( dd bs="$BS" count="$((START/$BS))" of=/dev/null status=none && \ + dd bs="$BS" seek="$((START/$BS))" count="$(((END-START)/$BS))" of="$1" status=none ) +sync +echo "" + +echo "Done." diff --git a/package/root/usr/local/sbin/pinebook_enable_headphones.sh b/package/root/usr/local/sbin/pinebook_enable_headphones.sh new file mode 100755 index 00000000..da5c18ff --- /dev/null +++ b/package/root/usr/local/sbin/pinebook_enable_headphones.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +set -xe + +cd /sys/class/gpio + +if [ ! -d gpio362 ]; then + echo 362 > export +fi + +cd gpio362 +echo out > direction +echo 1 > value diff --git a/package/root/usr/local/sbin/pinebook_enable_uart.sh b/package/root/usr/local/sbin/pinebook_enable_uart.sh new file mode 100755 index 00000000..da679607 --- /dev/null +++ b/package/root/usr/local/sbin/pinebook_enable_uart.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +set -xe + +cd /sys/class/gpio + +if [ ! -d gpio362 ]; then + echo 362 > export +fi + +cd gpio362 +echo out > direction +echo 0 > value diff --git a/package/root/usr/local/sbin/pinebook_restore_sound.sh b/package/root/usr/local/sbin/pinebook_restore_sound.sh new file mode 100755 index 00000000..0e83dec7 --- /dev/null +++ b/package/root/usr/local/sbin/pinebook_restore_sound.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +set +x + +/usr/bin/amixer set 'DACL Mixer AIF1DA0L' on +/usr/bin/amixer set 'DACR Mixer AIF1DA0R' on diff --git a/simpleimage/platform-scripts/resize_rootfs.sh b/package/root/usr/local/sbin/resize_rootfs.sh similarity index 100% rename from simpleimage/platform-scripts/resize_rootfs.sh rename to package/root/usr/local/sbin/resize_rootfs.sh diff --git a/package/root/usr/share/backgrounds/ubuntu-mate-pinebook/Pinebook-Wallpaper-1.jpg b/package/root/usr/share/backgrounds/ubuntu-mate-pinebook/Pinebook-Wallpaper-1.jpg new file mode 100644 index 00000000..5745b4cb Binary files /dev/null and b/package/root/usr/share/backgrounds/ubuntu-mate-pinebook/Pinebook-Wallpaper-1.jpg differ diff --git a/package/root/usr/share/backgrounds/ubuntu-mate-pinebook/Pinebook-Wallpaper-2.jpg b/package/root/usr/share/backgrounds/ubuntu-mate-pinebook/Pinebook-Wallpaper-2.jpg new file mode 100644 index 00000000..eced8bde Binary files /dev/null and b/package/root/usr/share/backgrounds/ubuntu-mate-pinebook/Pinebook-Wallpaper-2.jpg differ diff --git a/package/root/usr/share/backgrounds/ubuntu-mate-pinebook/Pinebook-Wallpaper-3.jpg b/package/root/usr/share/backgrounds/ubuntu-mate-pinebook/Pinebook-Wallpaper-3.jpg new file mode 100644 index 00000000..6493f10d Binary files /dev/null and b/package/root/usr/share/backgrounds/ubuntu-mate-pinebook/Pinebook-Wallpaper-3.jpg differ diff --git a/package/root/usr/share/backgrounds/ubuntu-mate-pinebook/Pinebook-Wallpaper-4.jpg b/package/root/usr/share/backgrounds/ubuntu-mate-pinebook/Pinebook-Wallpaper-4.jpg new file mode 100644 index 00000000..f8e33d9f Binary files /dev/null and b/package/root/usr/share/backgrounds/ubuntu-mate-pinebook/Pinebook-Wallpaper-4.jpg differ diff --git a/package/root/usr/share/backgrounds/ubuntu-mate-pinebook/Pinebook-Wallpaper-5.jpg b/package/root/usr/share/backgrounds/ubuntu-mate-pinebook/Pinebook-Wallpaper-5.jpg new file mode 100644 index 00000000..00fca2c2 Binary files /dev/null and b/package/root/usr/share/backgrounds/ubuntu-mate-pinebook/Pinebook-Wallpaper-5.jpg differ diff --git a/package/root/usr/share/backgrounds/ubuntu-mate-pinebook/Pinebook-Wallpaper-6.jpg b/package/root/usr/share/backgrounds/ubuntu-mate-pinebook/Pinebook-Wallpaper-6.jpg new file mode 100644 index 00000000..b6aa4756 Binary files /dev/null and b/package/root/usr/share/backgrounds/ubuntu-mate-pinebook/Pinebook-Wallpaper-6.jpg differ diff --git a/blobs/asound.state b/package/root/var/lib/alsa/asound.state similarity index 97% rename from blobs/asound.state rename to package/root/var/lib/alsa/asound.state index fccf502d..22695185 100644 --- a/blobs/asound.state +++ b/package/root/var/lib/alsa/asound.state @@ -2,8 +2,8 @@ state.audiocodec { control.1 { iface MIXER name 'AIF1 ADC timeslot 0 volume' - value.0 0 - value.1 0 + value.0 228 + value.1 228 comment { access 'read write' type INTEGER @@ -11,15 +11,15 @@ state.audiocodec { range '0 - 255' dbmin -11925 dbmax 7200 - dbvalue.0 -11925 - dbvalue.1 -11925 + dbvalue.0 5175 + dbvalue.1 5175 } } control.2 { iface MIXER name 'AIF1 ADC timeslot 1 volume' - value.0 0 - value.1 0 + value.0 225 + value.1 225 comment { access 'read write' type INTEGER @@ -27,15 +27,15 @@ state.audiocodec { range '0 - 255' dbmin -11925 dbmax 7200 - dbvalue.0 -11925 - dbvalue.1 -11925 + dbvalue.0 4950 + dbvalue.1 4950 } } control.3 { iface MIXER name 'AIF1 DAC timeslot 0 volume' - value.0 153 - value.1 153 + value.0 165 + value.1 165 comment { access 'read write' type INTEGER @@ -43,8 +43,8 @@ state.audiocodec { range '0 - 255' dbmin -11925 dbmax 7200 - dbvalue.0 -450 - dbvalue.1 -450 + dbvalue.0 450 + dbvalue.1 450 } } control.4 { @@ -66,8 +66,8 @@ state.audiocodec { control.5 { iface MIXER name 'AIF1 ADC timeslot 0 mixer gain' - value.0 0 - value.1 0 + value.0 14 + value.1 14 comment { access 'read write' type INTEGER @@ -75,15 +75,15 @@ state.audiocodec { range '0 - 15' dbmin -600 dbmax 8400 - dbvalue.0 -600 - dbvalue.1 -600 + dbvalue.0 7800 + dbvalue.1 7800 } } control.6 { iface MIXER name 'AIF1 ADC timeslot 1 mixer gain' - value.0 0 - value.1 0 + value.0 3 + value.1 3 comment { access 'read write' type INTEGER @@ -91,8 +91,8 @@ state.audiocodec { range '0 - 3' dbmin -600 dbmax 1200 - dbvalue.0 -600 - dbvalue.1 -600 + dbvalue.0 1200 + dbvalue.1 1200 } } control.7 { @@ -146,8 +146,8 @@ state.audiocodec { control.10 { iface MIXER name 'ADC volume' - value.0 0 - value.1 0 + value.0 153 + value.1 153 comment { access 'read write' type INTEGER @@ -155,8 +155,8 @@ state.audiocodec { range '0 - 255' dbmin -11925 dbmax 7200 - dbvalue.0 -11925 - dbvalue.1 -11925 + dbvalue.0 -450 + dbvalue.1 -450 } } control.11 { @@ -236,7 +236,7 @@ state.audiocodec { control.16 { iface MIXER name 'headphone volume' - value 44 + value 30 comment { access 'read write' type INTEGER @@ -244,7 +244,7 @@ state.audiocodec { range '0 - 63' dbmin -6300 dbmax 0 - dbvalue.0 -1900 + dbvalue.0 -6300 } } control.17 { @@ -320,7 +320,7 @@ state.audiocodec { control.22 { iface MIXER name 'ADC input gain control' - value 0 + value 4 comment { access 'read write' type INTEGER @@ -328,7 +328,7 @@ state.audiocodec { range '0 - 7' dbmin -450 dbmax 600 - dbvalue.0 -450 + dbvalue.0 150 } } control.23 { @@ -368,7 +368,7 @@ state.audiocodec { control.26 { iface MIXER name 'Phoneout Mixer MIC1 boost Switch' - value false + value true comment { access 'read write' type BOOLEAN @@ -378,7 +378,7 @@ state.audiocodec { control.27 { iface MIXER name 'Phoneout Mixer MIC2 boost Switch' - value false + value true comment { access 'read write' type BOOLEAN @@ -408,7 +408,7 @@ state.audiocodec { control.30 { iface MIXER name 'ADCR Mux' - value DMIC + value ADC comment { access 'read write' type ENUMERATED @@ -420,7 +420,7 @@ state.audiocodec { control.31 { iface MIXER name 'ADCL Mux' - value DMIC + value ADC comment { access 'read write' type ENUMERATED @@ -454,7 +454,7 @@ state.audiocodec { control.34 { iface MIXER name 'RADC input Mixer MIC2 boost Switch' - value false + value true comment { access 'read write' type BOOLEAN @@ -514,7 +514,7 @@ state.audiocodec { control.40 { iface MIXER name 'LADC input Mixer MIC1 boost Switch' - value false + value true comment { access 'read write' type BOOLEAN @@ -524,7 +524,7 @@ state.audiocodec { control.41 { iface MIXER name 'LADC input Mixer MIC2 boost Switch' - value false + value true comment { access 'read write' type BOOLEAN @@ -944,7 +944,7 @@ state.audiocodec { control.80 { iface MIXER name 'DACR Mixer AIF2DACR Switch' - value true + value false comment { access 'read write' type BOOLEAN @@ -954,7 +954,7 @@ state.audiocodec { control.81 { iface MIXER name 'DACR Mixer AIF1DA1R Switch' - value true + value false comment { access 'read write' type BOOLEAN @@ -974,7 +974,7 @@ state.audiocodec { control.83 { iface MIXER name 'DACL Mixer ADCL Switch' - value true + value false comment { access 'read write' type BOOLEAN @@ -1074,7 +1074,7 @@ state.audiocodec { control.93 { iface MIXER name 'AIF1 AD0R Mixer ADCR Switch' - value false + value true comment { access 'read write' type BOOLEAN @@ -1114,7 +1114,7 @@ state.audiocodec { control.97 { iface MIXER name 'AIF1 AD0L Mixer ADCL Switch' - value false + value true comment { access 'read write' type BOOLEAN @@ -1134,7 +1134,7 @@ state.audiocodec { control.99 { iface MIXER name 'AIF1IN1R Mux' - value AIF1_DA1L + value AIF1_DA1R comment { access 'read write' type ENUMERATED @@ -1340,3 +1340,4 @@ state.sndhdmi { } } } + diff --git a/package/scripts/postinst.deb b/package/scripts/postinst.deb new file mode 100755 index 00000000..2c4b16cf --- /dev/null +++ b/package/scripts/postinst.deb @@ -0,0 +1,24 @@ +#!/bin/sh +set -e + +case "$1" in + abort-upgrade|abort-remove|abort-deconfigure) + ;; + + configure) + systemctl enable rtk-hciattach + systemctl start rtk-hciattach + + systemctl enable restore-sound-after-resume + systemctl enable store-sound-on-suspend + + systemctl enable pine64-first-boot + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +exit 0 diff --git a/package/scripts/prerm.deb b/package/scripts/prerm.deb new file mode 100755 index 00000000..1a248525 --- /dev/null +++ b/package/scripts/prerm.deb @@ -0,0 +1 @@ +#!/bin/sh diff --git a/simpleimage/configuration-files/fstab b/simpleimage/configuration-files/fstab deleted file mode 100644 index 79419481..00000000 --- a/simpleimage/configuration-files/fstab +++ /dev/null @@ -1,3 +0,0 @@ -# -/dev/mmcblk0p1 /boot vfat defaults 0 2 -/dev/mmcblk0p2 / ext4 defaults,noatime 0 1 diff --git a/simpleimage/configuration-files/modprobe.d/blacklist-pine64.conf b/simpleimage/configuration-files/modprobe.d/blacklist-pine64.conf deleted file mode 100644 index 5fa895d0..00000000 --- a/simpleimage/configuration-files/modprobe.d/blacklist-pine64.conf +++ /dev/null @@ -1,3 +0,0 @@ -blacklist vfe_v4l2 -blacklist vfe_io -blacklist 8723bs_vq0 diff --git a/simpleimage/configuration-files/modules-load.d/pine64-wifi.conf b/simpleimage/configuration-files/modules-load.d/pine64-wifi.conf deleted file mode 100644 index 423c0ef3..00000000 --- a/simpleimage/configuration-files/modules-load.d/pine64-wifi.conf +++ /dev/null @@ -1,2 +0,0 @@ -8723bs -#8723cs diff --git a/simpleimage/flash_boot0_only.sh b/simpleimage/flash_boot0_only.sh deleted file mode 100755 index fc891003..00000000 --- a/simpleimage/flash_boot0_only.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh -# -# Simple script to replace boot0.bin in an existing image. -# - -set -e - -out="$1" -boot0="$2" - -if [ -z "$out" ]; then - echo "Usage: $0 /dev/sdX []" - exit 1 -fi - -if [ -z "$boot0" ]; then - boot0="../blobs/boot0.bin" -fi -boot0_position=8 # KiB -boot0_size=$(wc -c $boot0) - -if [ ! -e "$out" ]; then - echo "Error: $out not found" - exit 1 -fi - -pv "$boot0" | dd conv=notrunc bs=1k seek=$boot0_position count=32 oflag=direct of="$out" - -sync diff --git a/simpleimage/flash_u-boot_only.sh b/simpleimage/flash_u-boot_only.sh deleted file mode 100755 index 72191417..00000000 --- a/simpleimage/flash_u-boot_only.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh -# -# Simple script to replace u-boot-with-dtb.bin in an existing image. -# - -set -e - -out="$1" -uboot="$2" - -if [ -z "$out" ]; then - echo "Usage: $0 /dev/sdX []" - exit 1 -fi - -if [ -z "$uboot" ]; then - uboot="../build/u-boot-with-dtb.bin" -fi -uboot_position=19096 # KiB - -if [ ! -e "$out" ]; then - echo "Error: $out not found" - exit 1 -fi - -pv "$uboot" | dd conv=notrunc bs=1k seek=$uboot_position of="$out" - -sync diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index 1e99cf11..9c911d57 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -13,13 +13,22 @@ set -e BUILD="../build" DEST="$1" LINUX="$2" -DISTRO="$3" -BOOT="$4" +PACKAGEDEB="$3" +DISTRO="$4" +BOOT="$5" +MODEL="$6" +VARIANT="$7" +RELEASE_REPO=ayufan-rock64/linux-rootfs +BUILD_ARCH=arm64 + +if [ -z "$MODEL" ]; then + MODEL="pine64" +fi export LC_ALL=C if [ -z "$DEST" ]; then - echo "Usage: $0 [] [] []" + echo "Usage: $0 [] [distro] [] [model] [variant: mate, i3 or empty]" exit 1 fi @@ -67,19 +76,24 @@ cleanup() { trap cleanup EXIT ROOTFS="" -UNTAR="bsdtar -xpf" -METHOD="download" +TAR_OPTIONS="" case $DISTRO in arch) ROOTFS="http://archlinuxarm.org/os/ArchLinuxARM-aarch64-latest.tar.gz" + TAR_OPTIONS="-z" ;; - xenial) - ROOTFS="http://cdimage.ubuntu.com/ubuntu-base/releases/16.04.2/release/ubuntu-base-16.04.2-base-arm64.tar.gz" + xenial|bionic) + version=$(curl -s https://api.github.com/repos/$RELEASE_REPO/releases/latest | jq -r ".tag_name") + ROOTFS="https://github.com/$RELEASE_REPO/releases/download/${version}/ubuntu-${DISTRO}-${VARIANT}-${version}-${BUILD_ARCH}.tar.xz" + FALLBACK_ROOTFS="https://github.com/$RELEASE_REPO/releases/download/${version}/ubuntu-${DISTRO}-minimal-${version}-${BUILD_ARCH}.tar.xz" + TAR_OPTIONS="-J --strip-components=1 binary" ;; - sid|jessie) - ROOTFS="${DISTRO}-base-arm64.tar.gz" - METHOD="debootstrap" + sid|stretch) + version=$(curl -s https://api.github.com/repos/$RELEASE_REPO/releases/latest | jq -r ".tag_name") + ROOTFS="https://github.com/$RELEASE_REPO/releases/download/${version}/debian-${DISTRO}-${VARIANT}-${version}-${BUILD_ARCH}.tar.xz" + FALLBACK_ROOTFS="https://github.com/$RELEASE_REPO/releases/download/${version}/debian-${DISTRO}-minimal-${version}-${BUILD_ARCH}.tar.xz" + TAR_OPTIONS="-J --strip-components=1 binary" ;; *) echo "Unknown distribution: $DISTRO" @@ -87,59 +101,30 @@ case $DISTRO in ;; esac -deboostrap_rootfs() { - dist="$1" - tgz="$(readlink -f "$2")" - - [ "$TEMP" ] || exit 1 - cd $TEMP && pwd - - # this is updated very seldom, so is ok to hardcode - debian_archive_keyring_deb='https://ftp.de.debian.org/debian/pool/main/d/debian-archive-keyring/debian-archive-keyring_2014.3_all.deb' - wget -O keyring.deb "$debian_archive_keyring_deb" - ar -x keyring.deb && rm -f control.tar.gz debian-binary && rm -f keyring.deb - DATA=$(ls data.tar.*) && compress=${DATA#data.tar.} - - KR=debian-archive-keyring.gpg - bsdtar --include ./usr/share/keyrings/$KR --strip-components 4 -xvf "$DATA" - rm -f "$DATA" - - apt-get -y install debootstrap qemu-user-static - - qemu-debootstrap --arch=arm64 --keyring=$TEMP/$KR $dist rootfs http://httpredir.debian.org/debian - rm -f $KR - - # keeping things clean as this is copied later again - rm -f rootfs/usr/bin/qemu-aarch64-static - - bsdtar -C $TEMP/rootfs -a -cf $tgz . - rm -fr $TEMP/rootfs +CACHE_ROOT="${CACHE_ROOT:-tmp}" +mkdir -p "$CACHE_ROOT" +TARBALL="${CACHE_ROOT}/$(basename $ROOTFS)" - cd - -} - -mkdir -p $BUILD -TARBALL="$BUILD/$(basename $ROOTFS)" if [ ! -e "$TARBALL" ]; then - if [ "$METHOD" = "download" ]; then - echo "Downloading $DISTRO rootfs tarball ..." - wget -O "$TARBALL" "$ROOTFS" - elif [ "$METHOD" = "debootstrap" ]; then - deboostrap_rootfs "$DISTRO" "$TARBALL" - else - echo "Unknown rootfs creation method" - exit 1 + echo "Downloading $DISTRO rootfs tarball ..." + pushd "$CACHE_ROOT" + if ! flock "$(basename "$ROOTFS").lock" wget -c "$ROOTFS"; then + TARBALL="${CACHE_ROOT}/$(basename "$FALLBACK_ROOTFS")" + echo "Downloading fallback $DISTRO rootfs tarball ..." + flock "$(basename "$FALLBACK_ROOTFS").lock" wget -c "$FALLBACK_ROOTFS" fi + popd fi # Extract with BSD tar echo -n "Extracting ... " set -x -$UNTAR "$TARBALL" -C "$DEST" +tar -xf "$TARBALL" -C "$DEST" $TAR_OPTIONS echo "OK" # Add qemu emulation. cp /usr/bin/qemu-aarch64-static "$DEST/usr/bin" +cp /usr/bin/qemu-arm-static "$DEST/usr/bin" # Prevent services from starting cat > "$DEST/usr/sbin/policy-rc.d" < "$aptsrcfile" <> "$aptsrcfile" < "$DEST/etc/apt/sources.list" < "$DEST/second-phase" < "$DEST/second-phase" < "$DEST/etc/apt/sources.list.d/ayufan-pine64.list" < "$DEST/etc/network/interfaces.d/eth0" < "$DEST/etc/hostname" < "$DEST/etc/pine64_model" < "$DEST/etc/hosts" < "$DEST/etc/fstab" +# +/dev/mmcblk0p1 /boot vfat defaults 0 2 +/dev/mmcblk0p2 / ext4 defaults,noatime 0 1 +EOF # Direct Kernel install if [ -n "$LINUX" -a "$LINUX" != "-" -a -d "$LINUX" ]; then @@ -410,15 +323,13 @@ elif [ -n "$LINUX" -a "$LINUX" != "-" ]; then depmod -b $DEST $VERSION fi - - # Set Kernel and U-boot update version to current. - do_chroot /usr/bin/env MARK_ONLY=1 /usr/local/sbin/pine64_update_kernel.sh - do_chroot /usr/bin/env MARK_ONLY=1 /usr/local/sbin/pine64_update_uboot.sh fi # Clean up +rm -f "$DEST/usr/bin/qemu-arm-static" rm -f "$DEST/usr/bin/qemu-aarch64-static" rm -f "$DEST/usr/sbin/policy-rc.d" rm -f "$DEST/var/lib/dbus/machine-id" +rm -f "$DEST/SHA256SUMS" echo "Done - installed rootfs to $DEST" diff --git a/simpleimage/make_simpleimage.sh b/simpleimage/make_simpleimage.sh index baba047d..50a6bd37 100755 --- a/simpleimage/make_simpleimage.sh +++ b/simpleimage/make_simpleimage.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # # Simple script to create a disk image which boots to U-Boot on Pine64. # @@ -23,12 +23,12 @@ kernel_tarball="$3" model="$4" if [ -z "$out" ]; then - echo "Usage: $0 [disk size in MiB] [] []" + echo "Usage: $0 [disk size in MiB] [] []" exit 1 fi if [ -z "$disk_size" ]; then - disk_size=100 #MiB + disk_size=150 #MiB fi if [ "$disk_size" -lt 60 ]; then @@ -36,22 +36,17 @@ if [ "$disk_size" -lt 60 ]; then exit 2 fi -if [ -z "$model" = "" ]; then - model="pine64" -fi - -echo "Creating $model image $out of size $disk_size MiB ..." +echo "Creating image $out of size $disk_size MiB ..." -if [ "$model" = "pine64" ]; then - model="" -fi -suffix="" -if [ -n "$model" ]; then - suffix="-$model" +if [[ -z "$boot0" ]]; then + echo "You must specify boot0 environment variable" + exit 2 fi -boot0="../blobs/boot0$model.bin" -uboot="../build/u-boot-with-dtb$suffix.bin" +if [[ -z "$uboot" ]]; then + echo "You must specify uboot environment variable" + exit 2 +fi kernel="../build" temp=$(mktemp -d) @@ -63,17 +58,10 @@ cleanup() { } trap cleanup EXIT -if [ -n "$kernel_tarball" -a "$kernel_tarball" != "-" ]; then - echo "Using Kernel from $kernel_tarball ..." - tar -C $temp -xJf "$kernel_tarball" - kernel=$temp/boot - mv $temp/boot/uEnv.txt.in $temp/boot/uEnv.txt -fi - boot0_position=8 # KiB uboot_position=19096 # KiB part_position=20480 # KiB -boot_size=50 # MiB +boot_size=100 # MiB # Create beginning of disk dd if=/dev/zero bs=1M count=$((part_position/1024)) of="$out" @@ -85,7 +73,12 @@ dd if=/dev/zero bs=1M count=${boot_size} of=${out}1 mkfs.vfat -n BOOT ${out}1 # Add boot support if there -if [ -e "${kernel}/pine64/Image" -a -e "${kernel}/pine64/sun50i-a64-pine64-plus.dtb" ]; then +if [ -n "$kernel_tarball" ]; then + echo "Using Kernel from $kernel_tarball ..." + tar -C $temp -xJf "$kernel_tarball" + mv $temp/boot/uEnv.txt.in $temp/boot/uEnv.txt + mcopy -sm -i ${out}1 ${temp}/boot/* :: +elif [ -e "${kernel}/pine64/Image" -a -e "${kernel}/pine64/sun50i-a64-pine64-plus.dtb" ]; then mcopy -sm -i ${out}1 ${kernel}/pine64 :: mcopy -m -i ${out}1 ${kernel}/initrd.img :: || true mcopy -m -i ${out}1 ${kernel}/uEnv.txt :: || true diff --git a/simpleimage/platform-scripts/install_desktop.sh b/simpleimage/platform-scripts/install_desktop.sh deleted file mode 100755 index e9ba6ac4..00000000 --- a/simpleimage/platform-scripts/install_desktop.sh +++ /dev/null @@ -1,151 +0,0 @@ -#!/bin/bash - -set -e - -DESKTOP="$1" - -if [ -z "$DESKTOP" ]; then - echo "Usage: $0 " - exit 1 -fi - -DISTRO="" -if hash apt-get 2>/dev/null; then - DISTRO=debian -fi - -if [ -z "$DISTRO" ]; then - echo "This script requires a Debian based Linux distribution." - exit 1 -fi - -if [ "$(id -u)" -ne "0" ]; then - echo "This script requires root." - exit 1 -fi - -# Default packages. -PACKAGES=( - xserver-xorg-video-fbturbo - libvdpau-sunxi1 - vdpauinfo -) - -# Add packages based on desktop selection. -case $DESKTOP in - mate) - PACKAGES+=( - ubuntu-mate-core - ubuntu-mate-desktop - ubuntu-mate-lightdm-theme - ubuntu-mate-wallpapers-xenial - lightdm - ) - ;; - - i3|i3wm) - PACKAGES+=( - xserver-xorg-input-all - xfonts-base - slim - rxvt-unicode-lite - i3 - i3status - i3lock - suckless-tools - network-manager - pulseaudio - ) - ;; - - *) - echo "Error: unsupported desktop environment $DESKTOP" - exit 2 - ;; -esac - -# Install. -apt -y update -apt -y --no-install-recommends install ${PACKAGES[@]} - -# Configuration. - -mkdir -p /etc/X11/xorg.conf.d - -# Make X11 use fbturbo driver. -cat > "/etc/X11/xorg.conf.d/40-pine64-fbturbo.conf" < "/etc/X11/xorg.conf.d/50-pine64-pinebook-touchpad.conf" </etc/modules-load.d/cups-filters.conf -fi - -# Disable Pulseaudio timer scheduling which does not work with sndhdmi driver. -if [ -e "/etc/pulse/default.pa" ]; then - sed -i 's/load-module module-udev-detect$/& tsched=0/g' /etc/pulse/default.pa -fi - -# Enable VDPAU_SUNXI globally. -if [ ! -e "/etc/X11/Xsession.d/30pine64-vdpau-sunxi" ]; then - cat > "/etc/X11/Xsession.d/30pine64-vdpau-sunxi" < "/etc/chromium-browser/default" <] []" - exit 1 -fi -MODEL="$1" -if [ "$MODEL" = "pine64" ]; then - MODEL="" -fi -SUFFIX="" -if [ -n "$MODEL" ]; then - SUFFIX="-$MODEL" -fi - -TRUSTED_FIRMWARE_BUILD="$2" -if [ -z "$TRUSTED_FIRMWARE_BUILD" ]; then - TRUSTED_FIRMWARE_BUILD="release" -fi - -BUILD="../build" -mkdir -p $BUILD - -echo "ATF build: $TRUSTED_FIRMWARE_BUILD" -cp -avf $TRUSTED_FIRMWARE/build/sun50iw1p1/$TRUSTED_FIRMWARE_BUILD/bl31.bin $BUILD -cp -avf $UBOOT/u-boot-sun50iw1p1.bin $BUILD/u-boot.bin -cp -avf $BLOBS/scp.bin $BUILD -cp -avf $BLOBS/sys_config.fex $BUILD - -# build binary device tree -DT="pine64$MODEL" -echo "Device tree: $DT" -dtc -Odtb -o $BUILD/$DT.dtb $BLOBS/$DT.dts - -unix2dos $BUILD/sys_config.fex -$SUNXI_PACK_TOOLS/script $BUILD/sys_config.fex - -# merge_uboot.exe u-boot.bin infile outfile mode[secmonitor|secos|scp] -$SUNXI_PACK_TOOLS/merge_uboot $BUILD/u-boot.bin $BUILD/bl31.bin $BUILD/u-boot-merged$SUFFIX.bin secmonitor -$SUNXI_PACK_TOOLS/merge_uboot $BUILD/u-boot-merged$SUFFIX.bin $BUILD/scp.bin $BUILD/u-boot-merged2$SUFFIX.bin scp - -# update_fdt.exe u-boot.bin xxx.dtb output_file.bin -$SUNXI_PACK_TOOLS/update_uboot_fdt $BUILD/u-boot-merged2$SUFFIX.bin $BUILD/$DT.dtb $BUILD/u-boot-with-dtb$SUFFIX.bin - -# Add fex file to u-boot so it actually is accepted by boot0. -$SUNXI_PACK_TOOLS/update_uboot $BUILD/u-boot-with-dtb$SUFFIX.bin $BUILD/sys_config.bin - -echo "Done - created $BUILD/u-boot-with-dtb$SUFFIX.bin"