From a2713f50759902eec2d0576099c895234735559b Mon Sep 17 00:00:00 2001 From: orangepi-xunlong <258384131@qq.com> Date: Thu, 15 Jun 2023 18:07:52 +0800 Subject: [PATCH] Support Orange Pi Zero2 W --- external/cache/debs/arm64/wiringpi_2.48.deb | Bin 87848 -> 0 bytes external/cache/debs/arm64/wiringpi_2.49.deb | Bin 0 -> 87996 bytes external/config/boards/orangepizero2w.conf | 15 + .../config/bootscripts/boot-sun50iw9-next.cmd | 6 +- external/config/bootscripts/boot-sun50iw9.cmd | 4 +- .../kernel/linux-sun50iw9-current.config | 295 +- .../environments/xfce/config_base/packages | 1 + .../config/sources/families/sun50iw9.conf | 9 +- .../orangepi/orangepi-hardware-optimization | 2 +- .../packages/bsp/overlays_arm64/usr/bin/blink | Bin 0 -> 9632 bytes .../overlays_arm64/usr/bin/enable_docker.sh | 4 + ....dts => orangepizero2w-u-boot-current.dts} | 312 +- .../bin/dts/orangepizero3-u-boot-current.dts | 213 +- .../sun50iw9/bin/dts/orangepizero3-u-boot.dts | 3040 ----------------- .../sys_config/sys_config_orangepizero2w.fex | 845 +++++ scripts/general.sh | 2 +- scripts/main.sh | 1 + 17 files changed, 1455 insertions(+), 3294 deletions(-) delete mode 100644 external/cache/debs/arm64/wiringpi_2.48.deb create mode 100644 external/cache/debs/arm64/wiringpi_2.49.deb create mode 100755 external/config/boards/orangepizero2w.conf create mode 100755 external/packages/bsp/overlays_arm64/usr/bin/blink rename external/packages/pack-uboot/sun50iw9/bin/dts/{orangepizero3-u-boot-current-pwm.dts => orangepizero2w-u-boot-current.dts} (93%) mode change 100644 => 100755 external/packages/pack-uboot/sun50iw9/bin/dts/orangepizero3-u-boot-current.dts delete mode 100644 external/packages/pack-uboot/sun50iw9/bin/dts/orangepizero3-u-boot.dts create mode 100755 external/packages/pack-uboot/sun50iw9/bin/sys_config/sys_config_orangepizero2w.fex diff --git a/external/cache/debs/arm64/wiringpi_2.48.deb b/external/cache/debs/arm64/wiringpi_2.48.deb deleted file mode 100644 index dc3a332f0c04e9949e6a250cbfa4fcfd133a966e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 87848 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μF5FP}(YV0=G^_22HorOWyr|5-u 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 ShwI<5#Ao{g000001X)^5@mlWy diff --git a/external/cache/debs/arm64/wiringpi_2.49.deb b/external/cache/debs/arm64/wiringpi_2.49.deb new file mode 100644 index 0000000000000000000000000000000000000000..e84cd9841503a1e5034b15e1318482b0a927604f GIT binary patch literal 87996 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 NXZr#G00004Sz3h{`zZhb literal 0 HcmV?d00001 diff --git a/external/config/boards/orangepizero2w.conf b/external/config/boards/orangepizero2w.conf new file mode 100755 index 0000000..ffe5328 --- /dev/null +++ b/external/config/boards/orangepizero2w.conf @@ -0,0 +1,15 @@ +# Allwinner H618 quad core 1GB/1.5GB/2GB/4GB RAM +BOARD_NAME="OPI Zero2W" +BOARDFAMILY="sun50iw9" +BOOTCONFIG="orangepi_zero2w_defconfig" +KERNEL_TARGET="current,next" +MODULES_LEGACY="uwe5622_bsp_sdio sprdwl_ng sprdbt_tty" +MODULES_CURRENT="uwe5622_bsp_sdio sprdwl_ng sprdbt_tty" +MODULES_NEXT="uwe5622_bsp_sdio sprdwl_ng sprdbt_tty" +MODULES_BLACKLIST_LEGACY="bcmdhd" +MODULES_BLACKLIST_CURRENT="bcmdhd" +DISTRIB_TYPE_LEGACY="buster" +DISTRIB_TYPE_CURRENT="bullseye focal jammy" +DISTRIB_TYPE_NEXT="bullseye bookworm jammy" +BOOT_LOGO="desktop" +REVISION="1.0.0" diff --git a/external/config/bootscripts/boot-sun50iw9-next.cmd b/external/config/bootscripts/boot-sun50iw9-next.cmd index d6e7d41..4ded071 100644 --- a/external/config/bootscripts/boot-sun50iw9-next.cmd +++ b/external/config/bootscripts/boot-sun50iw9-next.cmd @@ -27,7 +27,11 @@ fi if test "${console}" = "display" || test "${console}" = "both"; then setenv consoleargs "console=ttyS0,115200 console=tty1"; fi if test "${console}" = "serial"; then setenv consoleargs "console=ttyS0,115200"; fi -if test "${bootlogo}" = "true"; then setenv consoleargs "bootsplash.bootfile=bootsplash.orangepi ${consoleargs}"; fi +if test "${bootlogo}" = "true"; then + setenv consoleargs "splash plymouth.ignore-serial-consoles ${consoleargs}" +else + setenv consoleargs "splash=verbose ${consoleargs}" +fi # get PARTUUID of first partition on SD/eMMC it was loaded from # mmc 0 is always mapped to device u-boot (2016.09+) was loaded from diff --git a/external/config/bootscripts/boot-sun50iw9.cmd b/external/config/bootscripts/boot-sun50iw9.cmd index 5f14a68..cedfede 100644 --- a/external/config/bootscripts/boot-sun50iw9.cmd +++ b/external/config/bootscripts/boot-sun50iw9.cmd @@ -53,8 +53,8 @@ fdt set disp boot_disp1 <${boot_disp1}> fdt set disp boot_disp2 <${boot_disp2}> fdt set disp tv_vdid <${tv_vdid}> -fdt set disp fb0_width <${fb0_width}> -fdt set disp fb0_height <${fb0_height}> +fdt set /soc/disp fb0_width <${fb0_width}> +fdt set /soc/disp fb0_height <${fb0_height}> fdt set mmc0 cap-sd-highspeed #fdt set mmc0 sd-uhs-sdr50 diff --git a/external/config/kernel/linux-sun50iw9-current.config b/external/config/kernel/linux-sun50iw9-current.config index 06f869c..74071f7 100644 --- a/external/config/kernel/linux-sun50iw9-current.config +++ b/external/config/kernel/linux-sun50iw9-current.config @@ -1070,8 +1070,8 @@ CONFIG_NF_CONNTRACK_SANE=y CONFIG_NF_CONNTRACK_SIP=m CONFIG_NF_CONNTRACK_TFTP=y CONFIG_NF_CT_NETLINK=y -CONFIG_NF_CT_NETLINK_TIMEOUT=m -CONFIG_NF_CT_NETLINK_HELPER=m +CONFIG_NF_CT_NETLINK_TIMEOUT=y +CONFIG_NF_CT_NETLINK_HELPER=y CONFIG_NETFILTER_NETLINK_GLUE_CT=y CONFIG_NF_NAT=y CONFIG_NF_NAT_AMANDA=y @@ -1082,28 +1082,28 @@ CONFIG_NF_NAT_TFTP=y CONFIG_NF_NAT_REDIRECT=y CONFIG_NF_NAT_MASQUERADE=y CONFIG_NETFILTER_SYNPROXY=m -CONFIG_NF_TABLES=m -CONFIG_NF_TABLES_SET=m +CONFIG_NF_TABLES=y +CONFIG_NF_TABLES_SET=y CONFIG_NF_TABLES_INET=y CONFIG_NF_TABLES_NETDEV=y -CONFIG_NFT_NUMGEN=m -CONFIG_NFT_CT=m -# CONFIG_NFT_FLOW_OFFLOAD is not set -CONFIG_NFT_COUNTER=m -CONFIG_NFT_CONNLIMIT=m -CONFIG_NFT_LOG=m -CONFIG_NFT_LIMIT=m -CONFIG_NFT_MASQ=m -CONFIG_NFT_REDIR=m -CONFIG_NFT_NAT=m -CONFIG_NFT_TUNNEL=m -CONFIG_NFT_OBJREF=m -CONFIG_NFT_QUEUE=m -CONFIG_NFT_QUOTA=m -CONFIG_NFT_REJECT=m -CONFIG_NFT_REJECT_INET=m -CONFIG_NFT_COMPAT=m -CONFIG_NFT_HASH=m +CONFIG_NFT_NUMGEN=y +CONFIG_NFT_CT=y +CONFIG_NFT_FLOW_OFFLOAD=m +CONFIG_NFT_COUNTER=y +CONFIG_NFT_CONNLIMIT=y +CONFIG_NFT_LOG=y +CONFIG_NFT_LIMIT=y +CONFIG_NFT_MASQ=y +CONFIG_NFT_REDIR=y +CONFIG_NFT_NAT=y +CONFIG_NFT_TUNNEL=y +CONFIG_NFT_OBJREF=y +CONFIG_NFT_QUEUE=y +CONFIG_NFT_QUOTA=y +CONFIG_NFT_REJECT=y +CONFIG_NFT_REJECT_INET=y +CONFIG_NFT_COMPAT=y +CONFIG_NFT_HASH=y CONFIG_NFT_FIB=m # CONFIG_NFT_FIB_INET is not set CONFIG_NFT_XFRM=m @@ -1284,7 +1284,7 @@ CONFIG_NF_DEFRAG_IPV4=y CONFIG_NF_SOCKET_IPV4=y CONFIG_NF_TPROXY_IPV4=y CONFIG_NF_TABLES_IPV4=y -CONFIG_NFT_REJECT_IPV4=m +CONFIG_NFT_REJECT_IPV4=y CONFIG_NFT_DUP_IPV4=m CONFIG_NFT_FIB_IPV4=m CONFIG_NF_TABLES_ARP=y @@ -1325,7 +1325,7 @@ CONFIG_IP_NF_ARP_MANGLE=y CONFIG_NF_SOCKET_IPV6=y CONFIG_NF_TPROXY_IPV6=y CONFIG_NF_TABLES_IPV6=y -CONFIG_NFT_REJECT_IPV6=m +CONFIG_NFT_REJECT_IPV6=y CONFIG_NFT_DUP_IPV6=m CONFIG_NFT_FIB_IPV6=m CONFIG_NF_FLOW_TABLE_IPV6=m @@ -1792,8 +1792,126 @@ CONFIG_SUNXI_MBUS=y # end of Bus devices # CONFIG_CONNECTOR is not set -# CONFIG_GNSS is not set -# CONFIG_MTD is not set +CONFIG_GNSS=m +CONFIG_MTD=y +CONFIG_MTD_TESTS=m + +# +# Partition parsers +# +# CONFIG_MTD_AR7_PARTS is not set +CONFIG_MTD_CMDLINE_PARTS=m +CONFIG_MTD_OF_PARTS=y +# CONFIG_MTD_AFS_PARTS is not set +# CONFIG_MTD_REDBOOT_PARTS is not set +# end of Partition parsers + +# +# User Modules And Translation Layers +# +CONFIG_MTD_BLKDEVS=m +CONFIG_MTD_BLOCK=m +CONFIG_MTD_BLOCK_RO=m +CONFIG_FTL=m +CONFIG_NFTL=m +CONFIG_NFTL_RW=y +CONFIG_INFTL=m +CONFIG_RFD_FTL=m +CONFIG_SSFDC=m +CONFIG_SM_FTL=m +CONFIG_MTD_OOPS=y +# CONFIG_MTD_PSTORE is not set +CONFIG_MTD_SWAP=m +CONFIG_MTD_PARTITIONED_MASTER=y + +# +# RAM/ROM/Flash chip drivers +# +CONFIG_MTD_CFI=m +CONFIG_MTD_JEDECPROBE=m +CONFIG_MTD_GEN_PROBE=m +CONFIG_MTD_CFI_ADV_OPTIONS=y +CONFIG_MTD_CFI_NOSWAP=y +# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set +# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set +CONFIG_MTD_CFI_GEOMETRY=y +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +# CONFIG_MTD_OTP is not set +# CONFIG_MTD_CFI_INTELEXT is not set +# CONFIG_MTD_CFI_AMDSTD is not set +# CONFIG_MTD_CFI_STAA is not set +CONFIG_MTD_CFI_UTIL=m +CONFIG_MTD_RAM=m +# CONFIG_MTD_ROM is not set +# CONFIG_MTD_ABSENT is not set +# end of RAM/ROM/Flash chip drivers + +# +# Mapping drivers for chip access +# +CONFIG_MTD_COMPLEX_MAPPINGS=y +CONFIG_MTD_PHYSMAP=m +CONFIG_MTD_PHYSMAP_COMPAT=y +CONFIG_MTD_PHYSMAP_START=0x8000000 +CONFIG_MTD_PHYSMAP_LEN=0 +CONFIG_MTD_PHYSMAP_BANKWIDTH=2 +CONFIG_MTD_PHYSMAP_OF=y +CONFIG_MTD_PHYSMAP_VERSATILE=y +CONFIG_MTD_PHYSMAP_GEMINI=y +CONFIG_MTD_PHYSMAP_GPIO_ADDR=y +CONFIG_MTD_PLATRAM=m +# end of Mapping drivers for chip access + +# +# Self-contained MTD device drivers +# +CONFIG_MTD_DATAFLASH=m +CONFIG_MTD_DATAFLASH_WRITE_VERIFY=y +CONFIG_MTD_DATAFLASH_OTP=y +CONFIG_MTD_MCHP23K256=m +CONFIG_MTD_SST25L=m +CONFIG_MTD_SLRAM=m +CONFIG_MTD_PHRAM=m +CONFIG_MTD_MTDRAM=m +CONFIG_MTDRAM_TOTAL_SIZE=4096 +CONFIG_MTDRAM_ERASE_SIZE=128 +CONFIG_MTD_BLOCK2MTD=m + +# +# Disk-On-Chip Device Drivers +# +CONFIG_MTD_DOCG3=m +CONFIG_BCH_CONST_M=14 +CONFIG_BCH_CONST_T=4 +# end of Self-contained MTD device drivers + +# CONFIG_MTD_ONENAND is not set +CONFIG_MTD_NAND_ECC_SW_HAMMING=m +# CONFIG_MTD_NAND_ECC_SW_HAMMING_SMC is not set +# CONFIG_MTD_RAW_NAND is not set +# CONFIG_MTD_SPI_NAND is not set + +# +# LPDDR & LPDDR2 PCM memory drivers +# +# CONFIG_MTD_LPDDR is not set +# end of LPDDR & LPDDR2 PCM memory drivers + +CONFIG_MTD_SPI_NOR=y +CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y +CONFIG_SPI_CADENCE_QUADSPI=y +CONFIG_SPI_MTK_QUADSPI=y +# CONFIG_MTD_UBI is not set +# CONFIG_MTD_HYPERBUS is not set CONFIG_DTC=y CONFIG_OF=y # CONFIG_OF_UNITTEST is not set @@ -2781,7 +2899,7 @@ CONFIG_HW_RANDOM_TPM=y CONFIG_DUMP_REG=y CONFIG_DUMP_REG_MISC=y CONFIG_SUNXI_SYS_INFO=y -# CONFIG_SUNXI_QA_TEST is not set +CONFIG_SUNXI_QA_TEST=y CONFIG_SUNXI_SMC=y CONFIG_SUNXI_G2D=y # CONFIG_SUNXI_G2D_MIXER is not set @@ -2877,7 +2995,7 @@ CONFIG_I2C_SLAVE_EEPROM=m CONFIG_SPI=y # CONFIG_SPI_DEBUG is not set CONFIG_SPI_MASTER=y -# CONFIG_SPI_MEM is not set +CONFIG_SPI_MEM=y # # SPI Master Controller Drivers @@ -2907,9 +3025,11 @@ CONFIG_SPI_SUNXI=y # SPI Protocol Masters # CONFIG_SPI_SPIDEV=y -# CONFIG_SPI_LOOPBACK_TEST is not set +CONFIG_SPI_LOOPBACK_TEST=m # CONFIG_SPI_TLE62X0 is not set -# CONFIG_SPI_SLAVE is not set +CONFIG_SPI_SLAVE=y +# CONFIG_SPI_SLAVE_TIME is not set +# CONFIG_SPI_SLAVE_SYSTEM_CONTROL is not set CONFIG_SPI_DYNAMIC=y # CONFIG_SPMI is not set # CONFIG_HSI is not set @@ -4786,6 +4906,7 @@ CONFIG_LEDS_LM3697=m CONFIG_LEDS_TRIGGERS=y CONFIG_LEDS_TRIGGER_TIMER=y CONFIG_LEDS_TRIGGER_ONESHOT=y +# CONFIG_LEDS_TRIGGER_MTD is not set CONFIG_LEDS_TRIGGER_HEARTBEAT=y CONFIG_LEDS_TRIGGER_BACKLIGHT=y CONFIG_LEDS_TRIGGER_CPU=y @@ -4968,7 +5089,7 @@ CONFIG_SYNC_FILE=y # CONFIG_AUXDISPLAY is not set # CONFIG_UIO is not set # CONFIG_VFIO is not set -# CONFIG_VIRT_DRIVERS is not set +CONFIG_VIRT_DRIVERS=y CONFIG_VIRTIO_MENU=y # CONFIG_VIRTIO_MMIO is not set @@ -5520,41 +5641,85 @@ CONFIG_CONFIGFS_FS=y # end of Pseudo filesystems CONFIG_MISC_FILESYSTEMS=y -# CONFIG_ORANGEFS_FS is not set -# CONFIG_ADFS_FS is not set -# CONFIG_AFFS_FS is not set -# CONFIG_ECRYPT_FS is not set -# CONFIG_HFS_FS is not set +CONFIG_ORANGEFS_FS=m +CONFIG_ADFS_FS=m +CONFIG_ADFS_FS_RW=y +CONFIG_AFFS_FS=m +CONFIG_ECRYPT_FS=m +CONFIG_ECRYPT_FS_MESSAGING=y +CONFIG_HFS_FS=m # CONFIG_HFSPLUS_FS is not set -# CONFIG_BEFS_FS is not set -# CONFIG_BFS_FS is not set -# CONFIG_EFS_FS is not set -# CONFIG_CRAMFS is not set -# CONFIG_SQUASHFS is not set -# CONFIG_VXFS_FS is not set -# CONFIG_MINIX_FS is not set -# CONFIG_OMFS_FS is not set -# CONFIG_HPFS_FS is not set -# CONFIG_QNX4FS_FS is not set -# CONFIG_QNX6FS_FS is not set -# CONFIG_ROMFS_FS is not set +CONFIG_BEFS_FS=m +CONFIG_BEFS_DEBUG=y +CONFIG_BFS_FS=m +CONFIG_EFS_FS=m +# CONFIG_JFFS2_FS is not set +CONFIG_CRAMFS=m +CONFIG_CRAMFS_BLOCKDEV=y +CONFIG_CRAMFS_MTD=y +CONFIG_SQUASHFS=y +CONFIG_SQUASHFS_FILE_CACHE=y +# CONFIG_SQUASHFS_FILE_DIRECT is not set +CONFIG_SQUASHFS_DECOMP_SINGLE=y +# CONFIG_SQUASHFS_DECOMP_MULTI is not set +# CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU is not set +CONFIG_SQUASHFS_XATTR=y +CONFIG_SQUASHFS_ZLIB=y +CONFIG_SQUASHFS_LZ4=y +CONFIG_SQUASHFS_LZO=y +CONFIG_SQUASHFS_XZ=y +CONFIG_SQUASHFS_ZSTD=y +CONFIG_SQUASHFS_4K_DEVBLK_SIZE=y +CONFIG_SQUASHFS_EMBEDDED=y +CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 +CONFIG_VXFS_FS=m +CONFIG_MINIX_FS=m +CONFIG_OMFS_FS=m +CONFIG_HPFS_FS=y +CONFIG_QNX4FS_FS=m +CONFIG_QNX6FS_FS=m +CONFIG_QNX6FS_DEBUG=y +CONFIG_ROMFS_FS=m +CONFIG_ROMFS_BACKED_BY_BLOCK=y +# CONFIG_ROMFS_BACKED_BY_MTD is not set +# CONFIG_ROMFS_BACKED_BY_BOTH is not set +CONFIG_ROMFS_ON_BLOCK=y CONFIG_PSTORE=y CONFIG_PSTORE_DEFLATE_COMPRESS=y -# CONFIG_PSTORE_LZO_COMPRESS is not set -# CONFIG_PSTORE_LZ4_COMPRESS is not set -# CONFIG_PSTORE_LZ4HC_COMPRESS is not set -# CONFIG_PSTORE_842_COMPRESS is not set -# CONFIG_PSTORE_ZSTD_COMPRESS is not set +CONFIG_PSTORE_LZO_COMPRESS=m +CONFIG_PSTORE_LZ4_COMPRESS=m +CONFIG_PSTORE_LZ4HC_COMPRESS=m +CONFIG_PSTORE_842_COMPRESS=y +CONFIG_PSTORE_ZSTD_COMPRESS=y CONFIG_PSTORE_COMPRESS=y CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y +# CONFIG_PSTORE_LZO_COMPRESS_DEFAULT is not set +# CONFIG_PSTORE_LZ4_COMPRESS_DEFAULT is not set +# CONFIG_PSTORE_LZ4HC_COMPRESS_DEFAULT is not set +# CONFIG_PSTORE_842_COMPRESS_DEFAULT is not set +# CONFIG_PSTORE_ZSTD_COMPRESS_DEFAULT is not set CONFIG_PSTORE_COMPRESS_DEFAULT="deflate" CONFIG_PSTORE_CONSOLE=y -# CONFIG_PSTORE_PMSG is not set +CONFIG_PSTORE_PMSG=y CONFIG_PSTORE_RAM=y -# CONFIG_PSTORE_BLK is not set -# CONFIG_SYSV_FS is not set -# CONFIG_UFS_FS is not set -# CONFIG_EROFS_FS is not set +CONFIG_PSTORE_ZONE=m +CONFIG_PSTORE_BLK=m +CONFIG_PSTORE_BLK_BLKDEV="" +CONFIG_PSTORE_BLK_KMSG_SIZE=64 +CONFIG_PSTORE_BLK_MAX_REASON=2 +CONFIG_PSTORE_BLK_PMSG_SIZE=64 +CONFIG_PSTORE_BLK_CONSOLE_SIZE=64 +CONFIG_SYSV_FS=m +CONFIG_UFS_FS=m +CONFIG_UFS_FS_WRITE=y +# CONFIG_UFS_DEBUG is not set +CONFIG_EROFS_FS=m +# CONFIG_EROFS_FS_DEBUG is not set +CONFIG_EROFS_FS_XATTR=y +CONFIG_EROFS_FS_POSIX_ACL=y +CONFIG_EROFS_FS_SECURITY=y +CONFIG_EROFS_FS_ZIP=y +CONFIG_EROFS_FS_CLUSTER_PAGE_LIMIT=1 CONFIG_NETWORK_FILESYSTEMS=y CONFIG_NFS_FS=y CONFIG_NFS_V2=y @@ -5678,7 +5843,7 @@ CONFIG_BIG_KEYS=y # CONFIG_TRUSTED_KEYS is not set CONFIG_ENCRYPTED_KEYS=y CONFIG_KEY_DH_OPERATIONS=y -CONFIG_SECURITY_DMESG_RESTRICT=y +# CONFIG_SECURITY_DMESG_RESTRICT is not set CONFIG_SECURITY=y CONFIG_SECURITYFS=y CONFIG_SECURITY_NETWORK=y @@ -5880,10 +6045,10 @@ CONFIG_CRYPTO_SM4=m # CONFIG_CRYPTO_DEFLATE=y CONFIG_CRYPTO_LZO=y -# CONFIG_CRYPTO_842 is not set -# CONFIG_CRYPTO_LZ4 is not set -# CONFIG_CRYPTO_LZ4HC is not set -# CONFIG_CRYPTO_ZSTD is not set +CONFIG_CRYPTO_842=y +CONFIG_CRYPTO_LZ4=m +CONFIG_CRYPTO_LZ4HC=m +CONFIG_CRYPTO_ZSTD=y # # Random Number Generation @@ -5978,6 +6143,8 @@ CONFIG_AUDIT_GENERIC=y CONFIG_AUDIT_ARCH_COMPAT_GENERIC=y CONFIG_AUDIT_COMPAT_GENERIC=y # CONFIG_RANDOM32_SELFTEST is not set +CONFIG_842_COMPRESS=y +CONFIG_842_DECOMPRESS=y CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y CONFIG_LZO_COMPRESS=y @@ -6006,6 +6173,8 @@ CONFIG_GENERIC_ALLOCATOR=y CONFIG_REED_SOLOMON=y CONFIG_REED_SOLOMON_ENC8=y CONFIG_REED_SOLOMON_DEC8=y +CONFIG_BCH=m +CONFIG_BCH_CONST_PARAMS=y CONFIG_TEXTSEARCH=y CONFIG_TEXTSEARCH_KMP=y CONFIG_TEXTSEARCH_BM=y diff --git a/external/config/optional/families/sun50iw9/_config/desktop/focal/environments/xfce/config_base/packages b/external/config/optional/families/sun50iw9/_config/desktop/focal/environments/xfce/config_base/packages index b12bb69..606e1e5 100644 --- a/external/config/optional/families/sun50iw9/_config/desktop/focal/environments/xfce/config_base/packages +++ b/external/config/optional/families/sun50iw9/_config/desktop/focal/environments/xfce/config_base/packages @@ -13,6 +13,7 @@ fcitx-table-cangjie fcitx-table-wubi fcitx-ui-classic fcitx-ui-qimpanel +firefox fonts-noto-cjk fonts-noto-cjk-extra geany diff --git a/external/config/sources/families/sun50iw9.conf b/external/config/sources/families/sun50iw9.conf index 8963ffc..4fd55c5 100644 --- a/external/config/sources/families/sun50iw9.conf +++ b/external/config/sources/families/sun50iw9.conf @@ -34,8 +34,8 @@ case $BRANCH in OVERLAY_PREFIX='sun50i-h616' KERNELBRANCH="branch:orange-pi-5.4-sun50iw9" #BOOTBRANCH='branch:u-boot-2018' - BOOTBRANCH='branch:u-boot-2018-h618' - #BOOTBRANCH='branch:v2018.05-sun50iw9' + [[ $BOARD =~ orangepizero2 ]] && BOOTBRANCH='branch:v2018.05-sun50iw9' + [[ $BOARD =~ orangepizero3|orangepir1b|orangepizero2w ]] && BOOTBRANCH='branch:v2018.05-h618' KERNELPATCHDIR=${BOARDFAMILY}-${BRANCH} UBOOT_TARGET_MAP=";;dts/${BOARD}-u-boot.dts boot0_sdcard.fex boot_package.fex" @@ -60,7 +60,7 @@ case $BRANCH in ATF_TARGET_MAP='PLAT=sun50i_h616 DEBUG=1 bl31;;build/sun50i_h616/debug/bl31.bin' UBOOT_TARGET_MAP=';;u-boot-sunxi-with-spl.bin' [[ $BOARD =~ orangepizero2 ]] && BOOTBRANCH='branch:v2021.10-sunxi' - [[ $BOARD =~ orangepizero3|orangepir1b ]] && BOOTBRANCH='v2021.07-sunxi' + [[ $BOARD =~ orangepizero3|orangepir1b|orangepizero2w ]] && BOOTBRANCH='v2021.07-sunxi' BOOTSCRIPT='boot-sun50iw9-next.cmd:boot.cmd' ## For Linux5.16.y @@ -78,7 +78,7 @@ family_tweaks_s() { rsync -a --chown=root:root "${EXTER}"/packages/bsp/overlays_arm64/* ${SDCARD}/ - chroot $SDCARD /bin/bash -c "apt-get -y -qq install rfkill bluetooth bluez bluez-tools ir-keytable tree lirc v4l-utils" >/dev/null 2>&1 + chroot $SDCARD /bin/bash -c "apt-get -y -qq install rfkill bluetooth bluez bluez-tools ir-keytable tree lirc v4l-utils dnsmasq" >/dev/null 2>&1 if [[ $BUILD_DESKTOP == yes ]]; then @@ -124,6 +124,7 @@ uboot_custom_postprocess() mv boot_package.cfg-linux5.4 boot_package.cfg mv boot0_sdcard.fex-linux5.4 boot0_sdcard.fex fi + cp dts/${BOARD}-u-boot-${BRANCH}.dts dts/${BOARD}-u-boot.dts # make u-boot dtb $EXTER/packages/pack-uboot/${BOARDFAMILY}/tools/dtc -p 2048 -W no-unit_address_vs_reg -@ -O dtb -o ${BOARD}-u-boot.dtb -b 0 dts/${BOARD}-u-boot-${BRANCH}.dts >/dev/null 2>&1 diff --git a/external/packages/bsp/common/usr/lib/orangepi/orangepi-hardware-optimization b/external/packages/bsp/common/usr/lib/orangepi/orangepi-hardware-optimization index b56ea43..1ea8feb 100755 --- a/external/packages/bsp/common/usr/lib/orangepi/orangepi-hardware-optimization +++ b/external/packages/bsp/common/usr/lib/orangepi/orangepi-hardware-optimization @@ -162,7 +162,7 @@ prepare_board() { /usr/bin/pwm-fan.sh & ;; - orangepizero2|orangepizero2-lts|orangepizero2-b|orangepizero3|orangepir1b) + orangepizero2|orangepizero2-lts|orangepizero2-b|orangepizero3|orangepir1b|orangepizero2w) kv=$(uname -r) #if [[ $BRANCH == current ]]; then diff --git a/external/packages/bsp/overlays_arm64/usr/bin/blink b/external/packages/bsp/overlays_arm64/usr/bin/blink new file mode 100755 index 0000000000000000000000000000000000000000..218b86a89861289ee801f38116ebea2e8eb9ba75 GIT binary patch literal 9632 zcmdT~eQaFC5udwf@?j^zPC}A`6F(cbO=*0wBX9$aGqdw{=k4yB=lzW>O>UP9xESy!Anu_h67i~r&JC)9#0y(tDgLg9 zVpxQHp1@?gR}yTMQ971c6XbC}D?x91A6aa8D=}iuAOG+JlLK zez3cuu>|xZl<3Be{DZdD9g5iD&_3!HqtCDU?XyD>K%Uhx2#NJmFjj-FrMa%&+TyAD z!NMI=NXxKR!JXnM-dyl3^89=p8G9HXD>qCdMupc4Lp^v;E|vI{S{E2^W&B!-FpO;_ zU#Xt!mmK(1zO-}RfzPTq-mT)6?J$2_$-B@#JwIHgHC%Nqn*OTcyjD@ejE1YFPMT8v zy3vSkXNiXE>v5rmQ5k8cJcSQp44d34E)Dt05M+SHsoTAn@%P zzCs}KXMXs_$$10D@c9{^A3iZLZCK~DW|+nHQGn5+tG>Cyi#21WyX0JnX}ro8woMhe zy>o?b5N(2AgnXIC=ObUI@hgz;()g9gAJF(U$Umj=*CT&Y<2N9GQRB;yce@t){|@qH zlAj-bLEPWR?XJno$>fnR-skFKh+)`wtb&oY8DrH=rAXs$SHZj3zTdrikDW|*yyAwN z=^jajs4n*xO%6UEX(O4xBStbVvb6|`UU0~qME=-(@)nYR5$pd+CfBZqk+U1{dfR}b z7Yy&*#T#Ml9h{319B=r*H}^B7{!6~OgGdja_s#tt^^W5u+TZfcc>#`1p&gnto)2uB zf)Ur){YXoZ)&RUejoUKvqouF==4{lNHC#sl=aKZB@}&T$%f8tEa_zGFe^L5H?V%GW ze*kssW_@#ALf4(rr9M;RTL5#1u+Po|wYPd*a0}WUg&E%*(qp2JP2RZy^!+?uCXP|( z0oSb`7kKC9hfj)_WB*^r`{6p<$1z<=F**~6u?r>e+%Vd>P~v^AW;g8Jlm{I(<*@e* z&gT*XI?8Z7|5-M2w$429sOcVQv%q-oH+cWX`jN9EhU7a@hx;wx2)C2YjT>cqoq6g} z(s5x7!0M5+7QlNp+C5-&(uz6?-iomv?0=?Yq>XI=_EQspy`A&Pjt{Y~vR=4d^pyvD zd#@%_eUU#kov`-=%CYW~h}F&Ss%D;K{()lvu93Fakj@W3pNijc?0@`Z_1NXR+>^Nf zj{fnf>alV6b*Dcy;HE2nWAX~l>t}}h==jz8L;2`q!Ue}LHqX*HKD{sg*+paBQH;&8 z3&z@`Gsc>mI-%y=uidNOFU5QPxV?7r@?CY4SN!#p^TVf7b3!q~YlOZ&xYUlaE7~77 zE6jliZIEUnY6gP1YxadAL9>gtJ~J`YAM|)UW*_c{;oHn_2lByngYm=dIGD8lg}+E9 z^IQNwnNKD=k$(tj0_ho~4xAQd z-%GT1h4=9#Pb{uGv}pXA`onn-8;wWYkGR_3eB-tAubzAP6>^rwf|mIf)X{w<_5ZiR z=L|kq(3nv9tt4W|sY+)TD!kY6IhgnKo7Lv{Eh&~d&+vN|#UPdIB>_Iy6f2(FFJDbY z33|jW8~6-hs)6RcpWmx^uRg8p@E%QZN##08Qonqbxunh|svDS95)_A2_$;wjvS6x? z8Lw21vEQuEXA15g!%o}}nh~NHGJ-Eu`uKPWp2vMw@gJ!Bol`vDw{qtjBmBO}=f_-z z`5ejT#$0lYSE_;frYPIx^Qo`C{x)-CL$E7kN6e~951zy;s=udd=9bDWRh3m$^l*Pk zF)+HfasX&@2CljMUai4+4mMygt9)K6Ueo2T0glsjd=YRwr{jx(=RF-?0vs>t_)_3F zOvm$6@tTh3dVgI8JWuKJ%OTr*8?XZSc~6(W7Pj*Ps5Kb4VshR=gK;#A;H9kcD^u%7 zy8Notx{;2r#yko?K?^MgKK&EwIbT5OeP#{t^Pi4qzQhT9Y7|@zX5u<*B?F>q+^{@oYhXZ1&mCDPEA2p;4r6SPqQy`X=Qw<3Zw?^ZWRh z_FDkOyfCVM+0Hh{{9edmhwr!5A z#?6U;s_;UGKeFGo!0VIh7M5Z_kR9G%881QHrNtG+4Hao8GtR#+)30`j&q&4i2H;)OTJLXTjqNEA=+7qal-pB zpDX7To{E3r2OcKSzRAvMbWGrx>sUGBg<8C^$`-`Sn9-=MrjW~_(ph-b_5 zT_OM7nd?bs4*TI8b{@=u|4P`&yx+$VH?{lW>hBOQa%VoLv`=UA|8FD@3+ph?%XuNc z95~L!y90J|DTke>aU5v;o#S~}+2QXZ?B~C8*!djsY!HQy;#UEte=mm zj!O}z@p0~V6^NVcoJM`Zjs|db^FTZ%lKDM;|7MlPS6Tg@$iU{R%FP~+`pax>_s0@d zo+y+DpnMR%mMOFpLQ8%-9JcNW+Iy_-$k#R)L4#fRg<_A#4`@H080hZC>OwZ#O7vNN z%4f$hryPh{J>h7V9kv3AXe@5o1B2j?_VtJH4L;zh%q~Gm>5yf|V)l>~j3i=1&>ge; zf>vOluWtxdG|ocFM4D(Y++9JSC)$ppO>MP18m-2i4U|ex7Y=~caOck29nJOWEh6)d z5Pm_i8n-J8+Z)=z^0n-$t8KA%H8r(2c32&?buEo#Rpib6@d4pB^aK;W{!n!1K;QpJ z^LNGL3t9fOT)bCHuv@`^ov_oB`j$ny!AL;dlp}4gE6Wc8I16Y(_J!`Ie_pTx@u<~n zM*{fiL3|$2^{wVzs1^uCtbuqC$7|tMX@s>e5Bx2{QeN?Q1NqrO`YXp(d|9w8{N%y2 zLf=BNf8Y?`DRh6p6CdhJ*j-2yF-d#5hTk-Tv3~GGqKTjfpE6I^KnTC3g#rqyt!u7G z*gYWHdhK{GcmhKav?pmICR=_QjKxFINE%~dTMWOgkbM|!aWVA{RuA^bQFXYEwqi73%JfZ_>3?~~r_|Wv>v%o9N*P@h{z$F>? zXj!(Z3RBKosAeI{b)q-oMMqxN=l4aXaqTDRbkpogM(!eUbw`|Y8^ZPMVQ}smtQ{T?}--j5v%=-Ku&6M*w+&}B{ z{U22Nbx5gjeu$~AzXsc#`oBbs{38FT6sq?pru?2JTcxjDC;A{>x<0?ZGo2(8qGnKsa*YsIPmD7NYPoDX2?lvm-AviPLZ=ke#f0n=?MNm=3XV|c=$&-n$W z^q#C2XaCP)Bl*w$a~^^z<-Yae?0*^?DHqJc#P19I{|-)h=9!*B-D@>{em|K~300Ou z5mA_DdLB`JHc5crWBC6`W|jXOU#!RTashQnB;~)#lT46PSiItQ;fM8^zJpD=KIc;| zDgE9BRZ(L-rvGy2^Z!q@DhJt5Hp6<%U&aby>_4AZJC&kSUJVDU!{=BdtTKhj3hRH@ zfwR6&Id*i>2UP!qDnCH`hz~FJhu05kX5V#vPLSW}XykrbwkU`Go%9bN)aFodu<&1G CAqf}& literal 0 HcmV?d00001 diff --git a/external/packages/bsp/overlays_arm64/usr/bin/enable_docker.sh b/external/packages/bsp/overlays_arm64/usr/bin/enable_docker.sh index 460c9da..c2cfd98 100755 --- a/external/packages/bsp/overlays_arm64/usr/bin/enable_docker.sh +++ b/external/packages/bsp/overlays_arm64/usr/bin/enable_docker.sh @@ -1,4 +1,8 @@ #!/bin/bash +if [[ $(uname -r) == 5.4.* ]]; then + echo 1 | sudo update-alternatives --config iptables > /dev/null +fi + sudo systemctl enable docker.service sudo systemctl start docker.service diff --git a/external/packages/pack-uboot/sun50iw9/bin/dts/orangepizero3-u-boot-current-pwm.dts b/external/packages/pack-uboot/sun50iw9/bin/dts/orangepizero2w-u-boot-current.dts similarity index 93% rename from external/packages/pack-uboot/sun50iw9/bin/dts/orangepizero3-u-boot-current-pwm.dts rename to external/packages/pack-uboot/sun50iw9/bin/dts/orangepizero2w-u-boot-current.dts index 9073224..82a5bd6 100644 --- a/external/packages/pack-uboot/sun50iw9/bin/dts/orangepizero3-u-boot-current-pwm.dts +++ b/external/packages/pack-uboot/sun50iw9/bin/dts/orangepizero2w-u-boot-current.dts @@ -4,7 +4,7 @@ interrupt-parent = <0x1>; #address-cells = <0x2>; #size-cells = <0x2>; - model = "Orange Pi Zero 3"; + model = "Orange Pi Zero2w"; compatible = "allwinner,h616", "arm,sun50iw9p1"; aliases { @@ -247,11 +247,11 @@ opp@1512000000 { opp-hz = <0x0 0x5a1f4a00>; - opp-microvolt-a0 = <0x10c8e0>; - opp-microvolt-a1 = <0x10c8e0>; - opp-microvolt-a2 = <0x10c8e0>; - opp-microvolt-a3 = <0x10c8e0>; - opp-microvolt-a4 = <0x10c8e0>; + opp-microvolt-a0 = <0x118c30>; + opp-microvolt-a1 = <0x118c30>; + opp-microvolt-a2 = <0x118c30>; + opp-microvolt-a3 = <0x118c30>; + opp-microvolt-a4 = <0x118c30>; clock-latency-ns = <0x3b9b0>; opp-supported-hw = <0x1f>; }; @@ -719,9 +719,9 @@ reg = <0x0 0x0300a011 0x0 0x4>; reg_base = <0x0300a000>; pinctrl-names = "active", "sleep"; - pinctrl-0 = <&pwm1_pin_a>; - pinctrl-1 = <&pwm1_pin_b>; - status = "okay"; + pinctrl-0 = <&pwm1_pi_pin_a>; + pinctrl-1 = <&pwm1_pi_pin_b>; + status = "disabled"; }; pwm2: pwm2@300a012 { @@ -729,9 +729,9 @@ reg = <0x0 0x0300a012 0x0 0x4>; reg_base = <0x0300a000>; pinctrl-names = "active", "sleep"; - pinctrl-0 = <&pwm2_pin_a>; - pinctrl-1 = <&pwm2_pin_b>; - status = "okay"; + pinctrl-0 = <&pwm2_pi_pin_a>; + pinctrl-1 = <&pwm2_pi_pin_b>; + status = "disabled"; }; pwm3: pwm3@300a013 { @@ -739,9 +739,9 @@ reg = <0x0 0x0300a013 0x0 0x4>; reg_base = <0x0300a000>; pinctrl-names = "active", "sleep"; - pinctrl-0 = <&pwm3_pin_a>; - pinctrl-1 = <&pwm3_pin_b>; - status = "okay"; + pinctrl-0 = <&pwm3_pi_pin_a>; + pinctrl-1 = <&pwm3_pi_pin_b>; + status = "disabled"; }; pwm4: pwm4@300a014 { @@ -749,9 +749,9 @@ reg = <0x0 0x0300a014 0x0 0x4>; reg_base = <0x0300a000>; pinctrl-names = "active", "sleep"; - pinctrl-0 = <&pwm4_pin_a>; - pinctrl-1 = <&pwm4_pin_b>; - status = "okay"; + pinctrl-0 = <&pwm4_pi_pin_a>; + pinctrl-1 = <&pwm4_pi_pin_b>; + status = "disabled"; }; pwm5: pwm5@300a015 { @@ -790,14 +790,14 @@ vcc-pg-supply = <0x17>; phandle = <0x23>; - uart0-ph-pins { + uart0_ph_pins_a: uart0-ph-pins { pins = "PH0", "PH1"; function = "uart0"; bias-pull-up; phandle = <0x29>; }; - uart0-ph-sleep { + uart0_ph_pins_b: uart0-ph-sleep { pins = "PH0", "PH1"; function = "gpio_in"; phandle = <0x2a>; @@ -915,61 +915,67 @@ phandle = <0x28>; }; - uart1-ph-pins { + uart1_ph_pins_a: uart1-ph-pins { pins = "PG6", "PG7", "PG8", "PG9"; function = "uart1"; phandle = <0x2b>; }; - uart1-ph-sleep { + uart1_ph_pins_b: uart1-ph-sleep { pins = "PG6", "PG7", "PG8", "PG9"; function = "gpio_in"; phandle = <0x2c>; }; - uart2-ph-pins { + uart2_ph_pins_a: uart2-ph-pins { pins = "PH5", "PH6"; function = "uart2"; phandle = <0x2d>; }; - uart2-ph-sleep { + uart2_pi_pins_a: uart2-pi-pins { + pins = "PI5", "PI6"; + function = "uart2"; + }; + + uart2_pi_pins_b: uart2-pi-sleep { + pins = "PI5", "PI6"; + function = "gpio_in"; + }; + + uart2_ph_pins_b: uart2-ph-sleep { pins = "PH5", "PH6"; function = "gpio_in"; phandle = <0x2e>; }; - uart3-ph-pins { + uart3_pi_pins_a: uart3-pi-pins { pins = "PI9", "PI10"; function = "uart3"; - phandle = <0x2f>; }; - uart3-ph-sleep { + uart3_pi_pins_b: uart3-pi-sleep { pins = "PI9", "PI10"; function = "gpio_in"; - phandle = <0x30>; }; - uart4-ph-pins { + uart4_pi_pins_a: uart4-pi-pins { pins = "PI13", "PI14"; function = "uart4"; - phandle = <0x31>; }; - uart4-ph-sleep { + uart4_pi_pins_b: uart4-pi-sleep { pins = "PI13", "PI14"; function = "gpio_in"; - phandle = <0x32>; }; - uart5-ph-pins { + uart5_ph_pins_a: uart5-ph-pins { pins = "PH2", "PH3"; function = "uart5"; phandle = <0x33>; }; - uart5-ph-sleep { + uart5_ph_pins_b: uart5-ph-sleep { pins = "PH2", "PH3"; function = "gpio_in"; phandle = <0x34>; @@ -989,35 +995,44 @@ phandle = <0x65>; }; - twi0@0 { + twi0_pi_pins_a: twi0-pi-pins-a@0 { pins = "PI5", "PI6"; function = "twi0"; drive-strength = <0xa>; bias-pull-up; - phandle = <0x36>; }; - twi0@1 { + twi0_pi_pins_b: twi0-pi-pins-b@1 { pins = "PI5", "PI6"; function = "gpio_in"; - phandle = <0x37>; }; - twi1@0 { + twi1_ph_pins_a: twi1-ph-pins-a@0 { pins = "PH0", "PH1"; function = "twi1"; drive-strength = <0xa>; bias-pull-up; - phandle = <0x38>; }; - twi1@1 { + twi1_ph_pins_b: twi1-ph-pins-b@0 { pins = "PH0", "PH1"; function = "gpio_in"; phandle = <0x39>; }; - twi2@0 { + twi1_pi_pins_a: twi1-pi-pins-a@0 { + pins = "PI7", "PI8"; + function = "twi1"; + drive-strength = <0xa>; + bias-pull-up; + }; + + twi1_pi_pins_b: twi1-pi-pins-b@0 { + pins = "PI7", "PI8"; + function = "gpio_in"; + }; + + twi2_ph_pins_a: twi2-ph-pins-a@0 { pins = "PH2", "PH3"; function = "twi2"; drive-strength = <0xa>; @@ -1025,13 +1040,25 @@ phandle = <0x3a>; }; - twi2@1 { + twi2_ph_pins_b: twi2-ph-pins-b@0 { pins = "PH2", "PH3"; function = "gpio_in"; phandle = <0x3b>; }; - twi3@0 { + twi2_pi_pins_a: twi2-pi-pins-a@0 { + pins = "PI9", "PI10"; + function = "twi2"; + drive-strength = <0xa>; + bias-pull-up; + }; + + twi2_pi_pins_b: twi2-pi-pins-b@0 { + pins = "PI9", "PI10"; + function = "gpio_in"; + }; + + twi3_ph_pins_a: twi3-ph-pins-a@0 { pins = "PH4", "PH5"; function = "twi3"; drive-strength = <0xa>; @@ -1039,13 +1066,13 @@ phandle = <0x3c>; }; - twi3@1 { + twi3_ph_pins_b: twi3-ph-pins-b@0 { pins = "PH4", "PH5"; function = "gpio_in"; phandle = <0x3d>; }; - twi4@0 { + twi4_ph_pins_a: twi4-ph-pins-a@0 { pins = "PH6", "PH7"; function = "twi4"; drive-strength = <0xa>; @@ -1053,7 +1080,7 @@ phandle = <0x3e>; }; - twi4@1 { + twi4_ph_pins_b: twi4-ph-pins-b@0 { pins = "PH6", "PH7"; function = "gpio_in"; phandle = <0x3f>; @@ -1081,26 +1108,30 @@ phandle = <0x44>; }; - spi1@0 { + spi1_pins_a: spi1-pins-a { pins = "PH6", "PH7", "PH8"; function = "spi1"; drive-strength = <0x14>; - phandle = <0x45>; }; - spi1@1 { + spi1_cs0_pin: spi1-cs0-pin { + pins = "PH5"; + function = "spi1"; + drive-strength = <0x14>; + bias-pull-up; + }; + + spi1_cs1_pin: spi1-cs1-pin { pins = "PH9"; function = "spi1"; drive-strength = <0x14>; bias-pull-up; - phandle = <0x46>; }; - spi1@2 { - pins = "PH6", "PH7", "PH8", "PH9"; + spi1_pins_b: spi1-pins-b { + pins = "PH6", "PH7", "PH8"; function = "gpio_in"; drive-strength = <0x14>; - phandle = <0x47>; }; gmac0@0 { @@ -1135,66 +1166,114 @@ phandle = <0x61>; }; - pwm0_pin_a: pwm0@0 { + pwm0_pin_a: pwm0-pin-a@0 { pins = "PD28"; function = "pwm0"; drive-strength = <10>; bias-pull-up; }; - pwm0_pin_b: pwm0@1 { + pwm0_pin_b: pwm0-pin-b@0 { pins = "PD28"; function = "gpio_in"; }; - pwm1_pin_a: pwm1@0 { + pwm1_ph_pin_a: pwm1-ph-pin-a@0 { pins = "PH3"; function = "pwm1"; drive-strength = <10>; bias-pull-up; }; - pwm1_pin_b: pwm1@1 { + pwm1_ph_pin_b: pwm1-ph-pin-b@0 { pins = "PH3"; function = "gpio_in"; }; - pwm2_pin_a: pwm2@0 { + pwm2_ph_pin_a: pwm2-ph-pin-a@0 { pins = "PH2"; function = "pwm2"; drive-strength = <10>; bias-pull-up; }; - pwm2_pin_b: pwm2@1 { + pwm2_ph_pin_b: pwm2-ph-pin-b@0 { pins = "PH2"; function = "gpio_in"; }; - pwm3_pin_a: pwm3@0 { + pwm3_ph_pin_a: pwm3-ph-pin-a@0 { pins = "PH0"; function = "pwm3"; drive-strength = <10>; bias-pull-up; }; - pwm3_pin_b: pwm3@1 { + pwm3_ph_pin_b: pwm3-ph-pin-b@0 { pins = "PH0"; function = "gpio_in"; }; - pwm4_pin_a: pwm4@0 { + pwm4_ph_pin_a: pwm4-ph-pin-a@0 { pins = "PH1"; function = "pwm4"; drive-strength = <10>; bias-pull-up; }; - pwm4_pin_b: pwm4@1 { + pwm4_ph_pin_b: pwm4-ph-pin-b@0 { pins = "PH1"; function = "gpio_in"; }; + pwm1_pi_pin_a: pwm1-pi-pin-a@0 { + pins = "PI11"; + function = "pwm1"; + drive-strength = <10>; + bias-pull-up; + }; + + pwm1_pi_pin_b: pwm1-pi-pin-b@0 { + pins = "PI11"; + function = "gpio_in"; + }; + + pwm2_pi_pin_a: pwm2-pi-pin-a@0 { + pins = "PI12"; + function = "pwm2"; + drive-strength = <10>; + bias-pull-up; + }; + + pwm2_pi_pin_b: pwm2-pi-pin-b@0 { + pins = "PI12"; + function = "gpio_in"; + }; + + pwm3_pi_pin_a: pwm3-pi-pin-a@0 { + pins = "PI13"; + function = "pwm3"; + drive-strength = <10>; + bias-pull-up; + }; + + pwm3_pi_pin_b: pwm3-pi-pin-b@0 { + pins = "PI13"; + function = "gpio_in"; + }; + + pwm4_pi_pin_a: pwm4-pi-pin-a@0 { + pins = "PI14"; + function = "pwm4"; + drive-strength = <10>; + bias-pull-up; + }; + + pwm4_pi_pin_b: pwm4-pi-pin-b@0 { + pins = "PI14"; + function = "gpio_in"; + }; + pwm5_pin_a: pwm5@0 { pins = "PA12"; function = "pwm5"; @@ -1516,7 +1595,7 @@ phandle = <0x99>; }; - uart@5000000 { + uart0: uart@5000000 { compatible = "allwinner,sun50i-uart"; reg = <0x0 0x5000000 0x0 0x400>; interrupts = <0x0 0x0 0x4>; @@ -1524,14 +1603,14 @@ resets = <0x2 0x11>; uart0_port = <0x0>; uart0_type = <0x2>; - status = "disabled"; + status = "okay"; pinctrl-names = "default", "sleep"; pinctrl-0 = <0x29>; pinctrl-1 = <0x2a>; phandle = <0x9a>; }; - uart@5000400 { + uart1: uart@5000400 { compatible = "allwinner,sun50i-uart"; reg = <0x0 0x5000400 0x0 0x400>; interrupts = <0x0 0x1 0x4>; @@ -1548,7 +1627,7 @@ phandle = <0x9b>; }; - uart@5000800 { + uart2: uart@5000800 { compatible = "allwinner,sun50i-uart"; reg = <0x0 0x5000800 0x0 0x400>; interrupts = <0x0 0x2 0x4>; @@ -1564,7 +1643,7 @@ phandle = <0x9c>; }; - uart@5000c00 { + uart3: uart@5000c00 { compatible = "allwinner,sun50i-uart"; reg = <0x0 0x5000c00 0x0 0x400>; interrupts = <0x0 0x3 0x4>; @@ -1580,7 +1659,7 @@ phandle = <0x9d>; }; - uart@5001000 { + uart4: uart@5001000 { compatible = "allwinner,sun50i-uart"; reg = <0x0 0x5001000 0x0 0x400>; interrupts = <0x0 0x4 0x4>; @@ -1596,7 +1675,7 @@ phandle = <0x9e>; }; - uart@5001400 { + uart5: uart@5001400 { compatible = "allwinner,sun50i-uart"; reg = <0x0 0x5001400 0x0 0x400>; interrupts = <0x0 0x5 0x4>; @@ -1612,7 +1691,7 @@ phandle = <0x9f>; }; - twi@5002000 { + twi0: twi@5002000 { #address-cells = <0x1>; #size-cells = <0x0>; compatible = "allwinner,sun50i-twi"; @@ -1639,7 +1718,7 @@ }; }; - twi@5002400 { + twi1: twi@5002400 { #address-cells = <0x1>; #size-cells = <0x0>; compatible = "allwinner,sun50i-twi"; @@ -1660,7 +1739,7 @@ phandle = <0xa1>; }; - twi@5002800 { + twi2: twi@5002800 { #address-cells = <0x1>; #size-cells = <0x0>; compatible = "allwinner,sun50i-twi"; @@ -1681,7 +1760,7 @@ phandle = <0xa2>; }; - twi@5002c00 { + twi3: twi@5002c00 { #address-cells = <0x1>; #size-cells = <0x0>; compatible = "allwinner,sun50i-twi"; @@ -1693,7 +1772,7 @@ resets = <0x2 0x1a>; dmas = <0x35 0x2e 0x35 0x2e>; dma-names = "tx", "rx"; - status = "okay"; + status = "disabled"; clock-frequency = <0x61a80>; pinctrl-0 = <0x3c>; pinctrl-1 = <0x3d>; @@ -1702,7 +1781,7 @@ phandle = <0xa3>; }; - twi@5003000 { + twi4: twi@5003000 { #address-cells = <0x1>; #size-cells = <0x0>; compatible = "allwinner,sun50i-twi"; @@ -1723,7 +1802,7 @@ phandle = <0xa4>; }; - twi@7081400 { + twi5: twi@7081400 { #address-cells = <0x1>; #size-cells = <0x0>; compatible = "allwinner,sun50i-twi"; @@ -1815,7 +1894,7 @@ }; }; - spi@5010000 { + spi0: spi@5010000 { #address-cells = <0x1>; #size-cells = <0x0>; compatible = "allwinner,sun50i-spi"; @@ -1845,11 +1924,20 @@ compatible = "rohm,dh2228fv"; spi-max-frequency = <0x10000000>; reg = <0x0>; + status = "disabled"; + }; + + flash@0 { status = "okay"; + #address-cells = <1>; + #size-cells = <1>; + compatible = "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <0x10000000>; }; }; - spi@5011000 { + spi1: spi@5011000 { #address-cells = <0x1>; #size-cells = <0x0>; compatible = "allwinner,sun50i-spi"; @@ -1864,7 +1952,7 @@ spi1_cs_bitmap = <0x2>; dmas = <0x35 0x17 0x35 0x17>; dma-names = "tx", "rx"; - status = "okay"; + status = "disabled"; spi_slave_mode = <0x0>; pinctrl-names = "default", "sleep"; pinctrl-0 = <0x45 0x46>; @@ -1872,13 +1960,13 @@ /*spi_dbi_enable = <0x0>;*/ phandle = <0xaa>; - spi_board1@1 { - device_type = "spi_board1"; - compatible = "rohm,dh2228fv"; - spi-max-frequency = <0x989680>; - reg = <0x1>; - status = "okay"; - }; + //spi_board1: spi_board1@1 { + // device_type = "spi_board1"; + // compatible = "rohm,dh2228fv"; + // spi-max-frequency = <0x989680>; + // reg = <0x1>; + // status = "disabled"; + //}; }; thermal-sensor@5070400 { @@ -2016,7 +2104,7 @@ ahub_dam_mach { compatible = "allwinner,sunxi-snd-mach"; soundcard-mach,name = "ahubdam"; - status = "disabled"; + status = "okay"; phandle = <0xaf>; soundcard-mach,cpu { @@ -2265,19 +2353,14 @@ }; }; - leds { + leds: leds { compatible = "gpio-leds"; + status = "okay"; - power { - label = "red_led"; - gpios = <0x23 0x2 0xc 0x1>; /* PC12 */ - default-state = "on"; - }; - - status { + led-green { label = "green_led"; - gpios = <0x23 0x2 0xd 0x1>; /* PC13 */ - default-state = "off"; + gpios = <0x23 0x2 0xd 0x0>; /* PC13 */ + linux,default-trigger = "heartbeat"; }; }; @@ -2305,7 +2388,7 @@ gmac-power0; gmac-power1; gmac-power2; - status = "okay"; + status = "disabled"; use_ephy25m = <0x0>; pinctrl-0 = <0x5e>; pinctrl-1 = <0x5f>; @@ -2569,7 +2652,7 @@ clocks = <0xd 0x8 0xa 0xd 0x7>; clock-names = "bus", "pclk", "mclk"; resets = <0xd 0x3>; - status = "okay"; + status = "disabled"; s_cir0_used = <0x1>; pinctrl-names = "default", "sleep"; pinctrl-0 = <0x64>; @@ -2933,13 +3016,13 @@ cryptoengine = "/soc@3000000/ce@1904000"; soc_timer0 = "/soc@3000000/timer@3009000"; wdt = "/soc@3000000/watchdog@30090a0"; - pwm = "/soc@3000000/pwm@300a000"; + /*pwm = "/soc@3000000/pwm@300a000"; pwm0 = "/soc@3000000/pwm0@300a010"; pwm1 = "/soc@3000000/pwm1@300a011"; pwm2 = "/soc@3000000/pwm2@300a012"; pwm3 = "/soc@3000000/pwm3@300a013"; pwm4 = "/soc@3000000/pwm4@300a014"; - pwm5 = "/soc@3000000/pwm5@300a015"; + pwm5 = "/soc@3000000/pwm5@300a015";*/ ac200 = "/soc@3000000/ac200"; pio = "/soc@3000000/pinctrl@300b000"; uart0_ph_pins = "/soc@3000000/pinctrl@300b000/uart0-ph-pins"; @@ -2961,10 +3044,6 @@ uart1_ph_sleep = "/soc@3000000/pinctrl@300b000/uart1-ph-sleep"; uart2_ph_pins = "/soc@3000000/pinctrl@300b000/uart2-ph-pins"; uart2_ph_sleep = "/soc@3000000/pinctrl@300b000/uart2-ph-sleep"; - uart3_ph_pins = "/soc@3000000/pinctrl@300b000/uart3-ph-pins"; - uart3_ph_sleep = "/soc@3000000/pinctrl@300b000/uart3-ph-sleep"; - uart4_ph_pins = "/soc@3000000/pinctrl@300b000/uart4-ph-pins"; - uart4_ph_sleep = "/soc@3000000/pinctrl@300b000/uart4-ph-sleep"; uart5_ph_pins = "/soc@3000000/pinctrl@300b000/uart5-ph-pins"; uart5_ph_sleep = "/soc@3000000/pinctrl@300b000/uart5-ph-sleep"; s_cir0_pins_a = "/soc@3000000/pinctrl@300b000/s_cir0@0"; @@ -2982,15 +3061,16 @@ spi0_pins_a = "/soc@3000000/pinctrl@300b000/spi0@0"; spi0_pins_b = "/soc@3000000/pinctrl@300b000/spi0@1"; spi0_pins_c = "/soc@3000000/pinctrl@300b000/spi0@2"; - spi1_pins_a = "/soc@3000000/pinctrl@300b000/spi1@0"; - spi1_pins_b = "/soc@3000000/pinctrl@300b000/spi1@1"; - spi1_pins_c = "/soc@3000000/pinctrl@300b000/spi1@2"; + spi1_pins_a = "/soc@3000000/pinctrl@300b000/spi1-pins-a"; + spi1_pins_b = "/soc@3000000/pinctrl@300b000/spi1-pins-b"; + spi1_cs0_pin = "/soc@3000000/pinctrl@300b000/spi1-cs0-pin"; + spi1_cs1_pin = "/soc@3000000/pinctrl@300b000/spi1-cs1-pin"; gmac0_pins_a = "/soc@3000000/pinctrl@300b000/gmac0@0"; gmac0_pins_b = "/soc@3000000/pinctrl@300b000/gmac0@1"; gmac1_pins_a = "/soc@3000000/pinctrl@300b000/gmac1@0"; gmac1_pins_b = "/soc@3000000/pinctrl@300b000/gmac1@1"; - pwm5_pin_a = "/soc@3000000/pinctrl@300b000/pwm5@0"; - pwm5_pin_b = "/soc@3000000/pinctrl@300b000/pwm5@1"; + //pwm5_pin_a = "/soc@3000000/pinctrl@300b000/pwm5@0"; + //pwm5_pin_b = "/soc@3000000/pinctrl@300b000/pwm5@1"; spdif_pins_a = "/soc@3000000/pinctrl@300b000/spdif@0"; spdif_pins_b = "/soc@3000000/pinctrl@300b000/spdif_sleep@0"; ahub_daudio0_pins_a = "/soc@3000000/pinctrl@300b000/ahub_daudio0@0"; @@ -3015,7 +3095,7 @@ sdc1 = "/soc@3000000/sdmmc@4021000"; nand0 = "/soc@3000000/nand0@4011000"; mbus0 = "/soc@3000000/mbus-controller@47fa000"; - uart0 = "/soc@3000000/uart@5000000"; + /*uart0 = "/soc@3000000/uart@5000000"; uart1 = "/soc@3000000/uart@5000400"; uart2 = "/soc@3000000/uart@5000800"; uart3 = "/soc@3000000/uart@5000c00"; @@ -3026,7 +3106,7 @@ twi2 = "/soc@3000000/twi@5002800"; twi3 = "/soc@3000000/twi@5002c00"; twi4 = "/soc@3000000/twi@5003000"; - twi5 = "/soc@3000000/twi@7081400"; + twi5 = "/soc@3000000/twi@7081400";*/ pmu0 = "/soc@3000000/twi@7081400/pmu"; standby_param = "/soc@3000000/twi@7081400/pmu/standby_param"; reg_dcdc1 = "/soc@3000000/twi@7081400/pmu/regulators/dcdc1"; @@ -3034,8 +3114,8 @@ reg_dcdc3 = "/soc@3000000/twi@7081400/pmu/regulators/dcdc3"; reg_aldo1 = "/soc@3000000/twi@7081400/pmu/regulators/ldo1"; reg_dldo1 = "/soc@3000000/twi@7081400/pmu/regulators/ldo2"; - spi0 = "/soc@3000000/spi@5010000"; - spi1 = "/soc@3000000/spi@5011000"; + /*spi0 = "/soc@3000000/spi@5010000"; + spi1 = "/soc@3000000/spi@5011000";*/ ths = "/soc@3000000/thermal-sensor@5070400"; gpadc = "/soc@3000000/gpadc@5070000"; keyboard = "/soc@3000000/keyboard@5070800"; diff --git a/external/packages/pack-uboot/sun50iw9/bin/dts/orangepizero3-u-boot-current.dts b/external/packages/pack-uboot/sun50iw9/bin/dts/orangepizero3-u-boot-current.dts old mode 100644 new mode 100755 index 6e91b23..f496fe1 --- a/external/packages/pack-uboot/sun50iw9/bin/dts/orangepizero3-u-boot-current.dts +++ b/external/packages/pack-uboot/sun50iw9/bin/dts/orangepizero3-u-boot-current.dts @@ -719,8 +719,8 @@ reg = <0x0 0x0300a011 0x0 0x4>; reg_base = <0x0300a000>; pinctrl-names = "active", "sleep"; - pinctrl-0 = <&pwm1_pin_a>; - pinctrl-1 = <&pwm1_pin_b>; + pinctrl-0 = <&pwm1_ph_pin_a>; + pinctrl-1 = <&pwm1_ph_pin_b>; status = "disabled"; }; @@ -729,8 +729,8 @@ reg = <0x0 0x0300a012 0x0 0x4>; reg_base = <0x0300a000>; pinctrl-names = "active", "sleep"; - pinctrl-0 = <&pwm2_pin_a>; - pinctrl-1 = <&pwm2_pin_b>; + pinctrl-0 = <&pwm2_ph_pin_a>; + pinctrl-1 = <&pwm2_ph_pin_b>; status = "disabled"; }; @@ -739,8 +739,8 @@ reg = <0x0 0x0300a013 0x0 0x4>; reg_base = <0x0300a000>; pinctrl-names = "active", "sleep"; - pinctrl-0 = <&pwm3_pin_a>; - pinctrl-1 = <&pwm3_pin_b>; + pinctrl-0 = <&pwm3_ph_pin_a>; + pinctrl-1 = <&pwm3_ph_pin_b>; status = "disabled"; }; @@ -749,8 +749,8 @@ reg = <0x0 0x0300a014 0x0 0x4>; reg_base = <0x0300a000>; pinctrl-names = "active", "sleep"; - pinctrl-0 = <&pwm4_pin_a>; - pinctrl-1 = <&pwm4_pin_b>; + pinctrl-0 = <&pwm4_ph_pin_a>; + pinctrl-1 = <&pwm4_ph_pin_b>; status = "disabled"; }; @@ -790,14 +790,14 @@ vcc-pg-supply = <0x17>; phandle = <0x23>; - uart0-ph-pins { + uart0_ph_pins_a: uart0-ph-pins { pins = "PH0", "PH1"; function = "uart0"; bias-pull-up; phandle = <0x29>; }; - uart0-ph-sleep { + uart0_ph_pins_b: uart0-ph-sleep { pins = "PH0", "PH1"; function = "gpio_in"; phandle = <0x2a>; @@ -915,61 +915,67 @@ phandle = <0x28>; }; - uart1-ph-pins { + uart1_ph_pins_a: uart1-ph-pins { pins = "PG6", "PG7", "PG8", "PG9"; function = "uart1"; phandle = <0x2b>; }; - uart1-ph-sleep { + uart1_ph_pins_b: uart1-ph-sleep { pins = "PG6", "PG7", "PG8", "PG9"; function = "gpio_in"; phandle = <0x2c>; }; - uart2-ph-pins { + uart2_ph_pins_a: uart2-ph-pins { pins = "PH5", "PH6"; function = "uart2"; phandle = <0x2d>; }; - uart2-ph-sleep { + uart2_pi_pins_a: uart2-pi-pins { + pins = "PI5", "PI6"; + function = "uart2"; + }; + + uart2_pi_pins_b: uart2-pi-sleep { + pins = "PI5", "PI6"; + function = "gpio_in"; + }; + + uart2_ph_pins_b: uart2-ph-sleep { pins = "PH5", "PH6"; function = "gpio_in"; phandle = <0x2e>; }; - uart3-ph-pins { + uart3_pi_pins_a: uart3-pi-pins { pins = "PI9", "PI10"; function = "uart3"; - phandle = <0x2f>; }; - uart3-ph-sleep { + uart3_pi_pins_b: uart3-pi-sleep { pins = "PI9", "PI10"; function = "gpio_in"; - phandle = <0x30>; }; - uart4-ph-pins { + uart4_pi_pins_a: uart4-pi-pins { pins = "PI13", "PI14"; function = "uart4"; - phandle = <0x31>; }; - uart4-ph-sleep { + uart4_pi_pins_b: uart4-pi-sleep { pins = "PI13", "PI14"; function = "gpio_in"; - phandle = <0x32>; }; - uart5-ph-pins { + uart5_ph_pins_a: uart5-ph-pins { pins = "PH2", "PH3"; function = "uart5"; phandle = <0x33>; }; - uart5-ph-sleep { + uart5_ph_pins_b: uart5-ph-sleep { pins = "PH2", "PH3"; function = "gpio_in"; phandle = <0x34>; @@ -989,35 +995,44 @@ phandle = <0x65>; }; - twi0@0 { + twi0_pi_pins_a: twi0-pi-pins-a@0 { pins = "PI5", "PI6"; function = "twi0"; drive-strength = <0xa>; bias-pull-up; - phandle = <0x36>; }; - twi0@1 { + twi0_pi_pins_b: twi0-pi-pins-b@1 { pins = "PI5", "PI6"; function = "gpio_in"; - phandle = <0x37>; }; - twi1@0 { + twi1_ph_pins_a: twi1-ph-pins-a@0 { pins = "PH0", "PH1"; function = "twi1"; drive-strength = <0xa>; bias-pull-up; - phandle = <0x38>; }; - twi1@1 { + twi1_ph_pins_b: twi1-ph-pins-b@0 { pins = "PH0", "PH1"; function = "gpio_in"; phandle = <0x39>; }; - twi2@0 { + twi1_pi_pins_a: twi1-pi-pins-a@0 { + pins = "PI7", "PI8"; + function = "twi1"; + drive-strength = <0xa>; + bias-pull-up; + }; + + twi1_pi_pins_b: twi1-pi-pins-b@0 { + pins = "PI7", "PI8"; + function = "gpio_in"; + }; + + twi2_ph_pins_a: twi2-ph-pins-a@0 { pins = "PH2", "PH3"; function = "twi2"; drive-strength = <0xa>; @@ -1025,13 +1040,25 @@ phandle = <0x3a>; }; - twi2@1 { + twi2_ph_pins_b: twi2-ph-pins-b@0 { pins = "PH2", "PH3"; function = "gpio_in"; phandle = <0x3b>; }; - twi3@0 { + twi2_pi_pins_a: twi2-pi-pins-a@0 { + pins = "PI9", "PI10"; + function = "twi2"; + drive-strength = <0xa>; + bias-pull-up; + }; + + twi2_pi_pins_b: twi2-pi-pins-b@0 { + pins = "PI9", "PI10"; + function = "gpio_in"; + }; + + twi3_ph_pins_a: twi3-ph-pins-a@0 { pins = "PH4", "PH5"; function = "twi3"; drive-strength = <0xa>; @@ -1039,13 +1066,13 @@ phandle = <0x3c>; }; - twi3@1 { + twi3_ph_pins_b: twi3-ph-pins-b@0 { pins = "PH4", "PH5"; function = "gpio_in"; phandle = <0x3d>; }; - twi4@0 { + twi4_ph_pins_a: twi4-ph-pins-a@0 { pins = "PH6", "PH7"; function = "twi4"; drive-strength = <0xa>; @@ -1053,7 +1080,7 @@ phandle = <0x3e>; }; - twi4@1 { + twi4_ph_pins_b: twi4-ph-pins-b@0 { pins = "PH6", "PH7"; function = "gpio_in"; phandle = <0x3f>; @@ -1135,66 +1162,114 @@ phandle = <0x61>; }; - pwm0_pin_a: pwm0@0 { + pwm0_pin_a: pwm0-pin-a@0 { pins = "PD28"; function = "pwm0"; drive-strength = <10>; bias-pull-up; }; - pwm0_pin_b: pwm0@1 { + pwm0_pin_b: pwm0-pin-b@0 { pins = "PD28"; function = "gpio_in"; }; - pwm1_pin_a: pwm1@0 { + pwm1_ph_pin_a: pwm1-ph-pin-a@0 { pins = "PH3"; function = "pwm1"; drive-strength = <10>; bias-pull-up; }; - pwm1_pin_b: pwm1@1 { + pwm1_ph_pin_b: pwm1-ph-pin-b@0 { pins = "PH3"; function = "gpio_in"; }; - pwm2_pin_a: pwm2@0 { + pwm2_ph_pin_a: pwm2-ph-pin-a@0 { pins = "PH2"; function = "pwm2"; drive-strength = <10>; bias-pull-up; }; - pwm2_pin_b: pwm2@1 { + pwm2_ph_pin_b: pwm2-ph-pin-b@0 { pins = "PH2"; function = "gpio_in"; }; - pwm3_pin_a: pwm3@0 { + pwm3_ph_pin_a: pwm3-ph-pin-a@0 { pins = "PH0"; function = "pwm3"; drive-strength = <10>; bias-pull-up; }; - pwm3_pin_b: pwm3@1 { + pwm3_ph_pin_b: pwm3-ph-pin-b@0 { pins = "PH0"; function = "gpio_in"; }; - pwm4_pin_a: pwm4@0 { + pwm4_ph_pin_a: pwm4-ph-pin-a@0 { pins = "PH1"; function = "pwm4"; drive-strength = <10>; bias-pull-up; }; - pwm4_pin_b: pwm4@1 { + pwm4_ph_pin_b: pwm4-ph-pin-b@0 { pins = "PH1"; function = "gpio_in"; }; + pwm1_pi_pin_a: pwm1-pi-pin-a@0 { + pins = "PI11"; + function = "pwm1"; + drive-strength = <10>; + bias-pull-up; + }; + + pwm1_pi_pin_b: pwm1-pi-pin-b@0 { + pins = "PI11"; + function = "gpio_in"; + }; + + pwm2_pi_pin_a: pwm2-pi-pin-a@0 { + pins = "PI12"; + function = "pwm2"; + drive-strength = <10>; + bias-pull-up; + }; + + pwm2_pi_pin_b: pwm2-pi-pin-b@0 { + pins = "PI12"; + function = "gpio_in"; + }; + + pwm3_pi_pin_a: pwm3-pi-pin-a@0 { + pins = "PI13"; + function = "pwm3"; + drive-strength = <10>; + bias-pull-up; + }; + + pwm3_pi_pin_b: pwm3-pi-pin-b@0 { + pins = "PI13"; + function = "gpio_in"; + }; + + pwm4_pi_pin_a: pwm4-pi-pin-a@0 { + pins = "PI14"; + function = "pwm4"; + drive-strength = <10>; + bias-pull-up; + }; + + pwm4_pi_pin_b: pwm4-pi-pin-b@0 { + pins = "PI14"; + function = "gpio_in"; + }; + pwm5_pin_a: pwm5@0 { pins = "PA12"; function = "pwm5"; @@ -1845,7 +1920,16 @@ compatible = "rohm,dh2228fv"; spi-max-frequency = <0x10000000>; reg = <0x0>; + status = "disabled"; + }; + + flash@0 { status = "okay"; + #address-cells = <1>; + #size-cells = <1>; + compatible = "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <0x10000000>; }; }; @@ -2265,19 +2349,20 @@ }; }; - leds { + leds: leds { compatible = "gpio-leds"; + status = "okay"; - power { + led-red { label = "red_led"; - gpios = <0x23 0x2 0xc 0x1>; /* PC12 */ - default-state = "on"; + gpios = <0x23 0x2 0xc 0x0>; /* PC12 */ + linux,default-trigger = "none"; }; - status { + led-green { label = "green_led"; - gpios = <0x23 0x2 0xd 0x1>; /* PC13 */ - default-state = "off"; + gpios = <0x23 0x2 0xd 0x0>; /* PC13 */ + linux,default-trigger = "heartbeat"; }; }; @@ -2933,13 +3018,13 @@ cryptoengine = "/soc@3000000/ce@1904000"; soc_timer0 = "/soc@3000000/timer@3009000"; wdt = "/soc@3000000/watchdog@30090a0"; - pwm = "/soc@3000000/pwm@300a000"; + /*pwm = "/soc@3000000/pwm@300a000"; pwm0 = "/soc@3000000/pwm0@300a010"; pwm1 = "/soc@3000000/pwm1@300a011"; pwm2 = "/soc@3000000/pwm2@300a012"; pwm3 = "/soc@3000000/pwm3@300a013"; pwm4 = "/soc@3000000/pwm4@300a014"; - pwm5 = "/soc@3000000/pwm5@300a015"; + pwm5 = "/soc@3000000/pwm5@300a015";*/ ac200 = "/soc@3000000/ac200"; pio = "/soc@3000000/pinctrl@300b000"; uart0_ph_pins = "/soc@3000000/pinctrl@300b000/uart0-ph-pins"; @@ -2961,10 +3046,6 @@ uart1_ph_sleep = "/soc@3000000/pinctrl@300b000/uart1-ph-sleep"; uart2_ph_pins = "/soc@3000000/pinctrl@300b000/uart2-ph-pins"; uart2_ph_sleep = "/soc@3000000/pinctrl@300b000/uart2-ph-sleep"; - uart3_ph_pins = "/soc@3000000/pinctrl@300b000/uart3-ph-pins"; - uart3_ph_sleep = "/soc@3000000/pinctrl@300b000/uart3-ph-sleep"; - uart4_ph_pins = "/soc@3000000/pinctrl@300b000/uart4-ph-pins"; - uart4_ph_sleep = "/soc@3000000/pinctrl@300b000/uart4-ph-sleep"; uart5_ph_pins = "/soc@3000000/pinctrl@300b000/uart5-ph-pins"; uart5_ph_sleep = "/soc@3000000/pinctrl@300b000/uart5-ph-sleep"; s_cir0_pins_a = "/soc@3000000/pinctrl@300b000/s_cir0@0"; @@ -2989,8 +3070,8 @@ gmac0_pins_b = "/soc@3000000/pinctrl@300b000/gmac0@1"; gmac1_pins_a = "/soc@3000000/pinctrl@300b000/gmac1@0"; gmac1_pins_b = "/soc@3000000/pinctrl@300b000/gmac1@1"; - pwm5_pin_a = "/soc@3000000/pinctrl@300b000/pwm5@0"; - pwm5_pin_b = "/soc@3000000/pinctrl@300b000/pwm5@1"; + //pwm5_pin_a = "/soc@3000000/pinctrl@300b000/pwm5@0"; + //pwm5_pin_b = "/soc@3000000/pinctrl@300b000/pwm5@1"; spdif_pins_a = "/soc@3000000/pinctrl@300b000/spdif@0"; spdif_pins_b = "/soc@3000000/pinctrl@300b000/spdif_sleep@0"; ahub_daudio0_pins_a = "/soc@3000000/pinctrl@300b000/ahub_daudio0@0"; @@ -3015,7 +3096,7 @@ sdc1 = "/soc@3000000/sdmmc@4021000"; nand0 = "/soc@3000000/nand0@4011000"; mbus0 = "/soc@3000000/mbus-controller@47fa000"; - uart0 = "/soc@3000000/uart@5000000"; + /*uart0 = "/soc@3000000/uart@5000000"; uart1 = "/soc@3000000/uart@5000400"; uart2 = "/soc@3000000/uart@5000800"; uart3 = "/soc@3000000/uart@5000c00"; @@ -3026,7 +3107,7 @@ twi2 = "/soc@3000000/twi@5002800"; twi3 = "/soc@3000000/twi@5002c00"; twi4 = "/soc@3000000/twi@5003000"; - twi5 = "/soc@3000000/twi@7081400"; + twi5 = "/soc@3000000/twi@7081400";*/ pmu0 = "/soc@3000000/twi@7081400/pmu"; standby_param = "/soc@3000000/twi@7081400/pmu/standby_param"; reg_dcdc1 = "/soc@3000000/twi@7081400/pmu/regulators/dcdc1"; @@ -3034,8 +3115,8 @@ reg_dcdc3 = "/soc@3000000/twi@7081400/pmu/regulators/dcdc3"; reg_aldo1 = "/soc@3000000/twi@7081400/pmu/regulators/ldo1"; reg_dldo1 = "/soc@3000000/twi@7081400/pmu/regulators/ldo2"; - spi0 = "/soc@3000000/spi@5010000"; - spi1 = "/soc@3000000/spi@5011000"; + /*spi0 = "/soc@3000000/spi@5010000"; + spi1 = "/soc@3000000/spi@5011000";*/ ths = "/soc@3000000/thermal-sensor@5070400"; gpadc = "/soc@3000000/gpadc@5070000"; keyboard = "/soc@3000000/keyboard@5070800"; diff --git a/external/packages/pack-uboot/sun50iw9/bin/dts/orangepizero3-u-boot.dts b/external/packages/pack-uboot/sun50iw9/bin/dts/orangepizero3-u-boot.dts deleted file mode 100644 index fc893db..0000000 --- a/external/packages/pack-uboot/sun50iw9/bin/dts/orangepizero3-u-boot.dts +++ /dev/null @@ -1,3040 +0,0 @@ -/dts-v1/; - -/ { - interrupt-parent = <0x1>; - #address-cells = <0x2>; - #size-cells = <0x2>; - model = "Orange Pi Zero 3"; - compatible = "allwinner,h616", "arm,sun50iw9p1"; - - aliases { - serial0 = "/soc@3000000/uart@5000000"; - serial1 = "/soc@3000000/uart@5000400"; - serial2 = "/soc@3000000/uart@5000800"; - serial3 = "/soc@3000000/uart@5000c00"; - serial4 = "/soc@3000000/uart@5001000"; - serial5 = "/soc@3000000/uart@5001400"; - pwm = "/soc@3000000/pwm@300a000"; - pwm0 = "/soc@3000000/pwm0@300a010"; - pwm1 = "/soc@3000000/pwm1@300a011"; - pwm2 = "/soc@3000000/pwm2@300a012"; - pwm3 = "/soc@3000000/pwm3@300a013"; - pwm4 = "/soc@3000000/pwm4@300a014"; - pwm5 = "/soc@3000000/pwm5@300a015"; - ir0 = "/soc@3000000/s_cir@7040000"; - mmc0 = "/soc@3000000/sdmmc@4020000"; - mmc2 = "/soc@3000000/sdmmc@4022000"; - tv0 = "/soc@3000000/tv0@6520000"; - gmac0 = "/soc@3000000/eth@5020000"; - gmac1 = "/soc@3000000/eth@5030000"; - ac200 = "/soc@3000000/ac200"; - nand0 = "/soc@3000000/nand0@4011000"; - ve0 = "/soc@3000000/ve@1c0e000"; - ve1 = "/soc@3000000/ve1@1c0e000"; - disp = "/uboot_disp@1000000"; - lcd0 = "/soc@3000000/lcd0@1c0c000"; - pmu0 = "/soc@3000000/twi@7081400/pmu"; - standby_param = "/soc@3000000/twi@7081400/pmu/standby_param"; - hdmi = "/uboot_hdmi@6000000"; - spi0 = "/soc@3000000/spi@5010000"; - spi1 = "/soc@3000000/spi@5011000"; - twi0 = "/soc@3000000/twi@5002000"; - twi1 = "/soc@3000000/twi@5002400"; - twi2 = "/soc@3000000/twi@5002800"; - twi3 = "/soc@3000000/twi@5002c00"; - twi4 = "/soc@3000000/twi@5003000"; - twi5 = "/soc@3000000/twi@7081400"; - }; - - reserved-memory { - #address-cells = <0x2>; - #size-cells = <0x2>; - ranges; - - bl31 { - reg = <0x0 0x48000000 0x0 0x1000000>; - }; - }; - - firmware { - - android { - compatible = "android,firmware"; - boot_devices = "soc@3000000/4020000.sdmmc,soc@3000000/4022000.sdmmc,soc@3000000"; - - vbmeta { - compatible = "android,vbmeta"; - parts = "vbmeta,vbmeta_system,vbmeta_vendor,boot"; - }; - }; - - optee { - compatible = "linaro,optee-tz"; - method = "smc"; - }; - }; - - cpus { - #address-cells = <0x1>; - #size-cells = <0x0>; - - cpu@0 { - device_type = "cpu"; - compatible = "arm,cortex-a53"; - reg = <0x0>; - enable-method = "psci"; - clocks = <0x2 0x15>; - operating-points-v2 = <0x3>; - cpu-idle-states = <0x4>; - dynamic-power-coefficient = <0xca>; - #cooling-cells = <0x2>; - cpu-supply = <0x5>; - phandle = <0x76>; - }; - - cpu@1 { - device_type = "cpu"; - compatible = "arm,cortex-a53"; - reg = <0x1>; - enable-method = "psci"; - clocks = <0x2 0x15>; - operating-points-v2 = <0x3>; - cpu-idle-states = <0x4>; - dynamic-power-coefficient = <0xca>; - #cooling-cells = <0x2>; - }; - - cpu@2 { - device_type = "cpu"; - compatible = "arm,cortex-a53"; - reg = <0x2>; - enable-method = "psci"; - clocks = <0x2 0x15>; - operating-points-v2 = <0x3>; - cpu-idle-states = <0x4>; - dynamic-power-coefficient = <0xca>; - #cooling-cells = <0x2>; - }; - - cpu@3 { - device_type = "cpu"; - compatible = "arm,cortex-a53"; - reg = <0x3>; - enable-method = "psci"; - clocks = <0x2 0x15>; - operating-points-v2 = <0x3>; - cpu-idle-states = <0x4>; - dynamic-power-coefficient = <0xca>; - #cooling-cells = <0x2>; - }; - - idle-states { - entry-method = "psci"; - - cpu-sleep { - compatible = "arm,idle-state"; - local-timer-stop; - arm,psci-suspend-param = <0x10000>; - entry-latency-us = <0x2e>; - exit-latency-us = <0x3b>; - min-residency-us = <0xdf2>; - phandle = <0x4>; - }; - }; - }; - - cpu-opp-table { - compatible = "allwinner,sun50i-operating-points"; - nvmem-cells = <0x6>; - nvmem-cell-names = "speed"; - opp-shared; - phandle = <0x3>; - - opp@480000000 { - opp-hz = <0x0 0x1c9c3800>; - opp-microvolt-a0 = <0xdbba0>; - opp-microvolt-a1 = <0xdbba0>; - opp-microvolt-a2 = <0xdbba0>; - opp-microvolt-a3 = <0xdbba0>; - opp-microvolt-a4 = <0xdbba0>; - clock-latency-ns = <0x3b9b0>; - opp-supported-hw = <0x1f>; - }; - - opp@600000000 { - opp-hz = <0x0 0x23c34600>; - opp-microvolt-a1 = <0xdbba0>; - opp-microvolt-a4 = <0xdbba0>; - clock-latency-ns = <0x3b9b0>; - opp-supported-hw = <0x12>; - }; - - opp@720000000 { - opp-hz = <0x0 0x2aea5400>; - opp-microvolt-a0 = <0xdbba0>; - opp-microvolt-a2 = <0xdbba0>; - opp-microvolt-a3 = <0xdbba0>; - clock-latency-ns = <0x3b9b0>; - opp-supported-hw = <0xd>; - }; - - opp@792000000 { - opp-hz = <0x0 0x2f34f600>; - opp-microvolt-a1 = <0xdbba0>; - opp-microvolt-a4 = <0xe57e0>; - clock-latency-ns = <0x3b9b0>; - opp-supported-hw = <0x12>; - }; - - opp@936000000 { - opp-hz = <0x0 0x37ca3a00>; - opp-microvolt-a0 = <0xdbba0>; - opp-microvolt-a2 = <0xdbba0>; - opp-microvolt-a3 = <0xdbba0>; - clock-latency-ns = <0x3b9b0>; - opp-supported-hw = <0xd>; - }; - - opp@1008000000 { - opp-hz = <0x0 0x3c14dc00>; - opp-microvolt-a0 = <0xe7ef0>; - opp-microvolt-a1 = <0xe57e0>; - opp-microvolt-a2 = <0xe7ef0>; - opp-microvolt-a3 = <0xe7ef0>; - opp-microvolt-a4 = <0xf9060>; - clock-latency-ns = <0x3b9b0>; - opp-supported-hw = <0x1f>; - }; - - opp@1104000000 { - opp-hz = <0x0 0x41cdb400>; - opp-microvolt-a0 = <0xf4240>; - opp-microvolt-a2 = <0xf4240>; - opp-microvolt-a3 = <0xf4240>; - clock-latency-ns = <0x3b9b0>; - opp-supported-hw = <0xd>; - }; - - opp@1200000000 { - opp-hz = <0x0 0x47868c00>; - opp-microvolt-a0 = <0x100590>; - opp-microvolt-a1 = <0xf9060>; - opp-microvolt-a2 = <0x100590>; - opp-microvolt-a3 = <0x100590>; - opp-microvolt-a4 = <0x10c8e0>; - clock-latency-ns = <0x3b9b0>; - opp-supported-hw = <0x1f>; - }; - - opp@1320000000 { - opp-hz = <0x0 0x4ead9a00>; - opp-microvolt-a0 = <0x10c8e0>; - opp-microvolt-a2 = <0x10c8e0>; - opp-microvolt-a3 = <0x10c8e0>; - opp-microvolt-a4 = <0x111700>; - clock-latency-ns = <0x3b9b0>; - opp-supported-hw = <0x1d>; - }; - - opp@1416000000 { - opp-hz = <0x0 0x54667200>; - opp-microvolt-a0 = <0x118c30>; - opp-microvolt-a2 = <0x118c30>; - opp-microvolt-a3 = <0xb10080>; - clock-latency-ns = <0x3b9b0>; - opp-supported-hw = <0xd>; - }; - - opp@1512000000 { - opp-hz = <0x0 0x5a1f4a00>; - opp-microvolt-a1 = <0x10c8e0>; - opp-microvolt-a3 = <0x10c8e0>; - clock-latency-ns = <0x3b9b0>; - opp-supported-hw = <0xa>; - }; - }; - - dump-reg@20000 { - compatible = "allwinner,sunxi-dump-reg"; - reg = <0x0 0x20000 0x0 0x4>; - phandle = <0x78>; - }; - - psci { - compatible = "arm,psci-1.0"; - method = "smc"; - }; - - internal-osc-clk { - #clock-cells = <0x0>; - compatible = "fixed-clock"; - clock-frequency = <0xf42400>; - clock-accuracy = <0x11e1a300>; - clock-output-names = "iosc"; - phandle = <0xc>; - }; - - dcxo24M-clk { - #clock-cells = <0x0>; - compatible = "fixed-clock"; - clock-frequency = <0x16e3600>; - clock-output-names = "dcxo24M"; - phandle = <0xa>; - }; - - osc32k-clk { - #clock-cells = <0x0>; - compatible = "fixed-clock"; - clock-frequency = <0x8000>; - clock-output-names = "osc32k"; - phandle = <0xb>; - }; - - interrupt-controller@3021000 { - compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic"; - #interrupt-cells = <0x3>; - #address-cells = <0x0>; - interrupt-controller; - reg = <0x0 0x3021000 0x0 0x1000 0x0 0x3022000 0x0 0x2000 0x0 0x3024000 0x0 0x2000 0x0 0x3026000 0x0 0x2000>; - interrupts = <0x1 0x9 0xf04>; - interrupt-parent = <0x7>; - phandle = <0x7>; - }; - - interrupt-controller@0 { - compatible = "allwinner,sunxi-wakeupgen"; - interrupt-controller; - #interrupt-cells = <0x3>; - interrupt-parent = <0x7>; - phandle = <0x1>; - }; - - timer_arch { - compatible = "arm,armv8-timer"; - interrupts = <0x1 0xd 0xf08 0x1 0xe 0xf08 0x1 0xb 0xf08 0x1 0xa 0xf08>; - clock-frequency = <0x16e3600>; - interrupt-parent = <0x7>; - arm,no-tick-in-suspend; - }; - - pio-18 { - compatible = "regulator-fixed"; - regulator-name = "pio-18"; - regulator-min-microvolt = <0x1b7740>; - regulator-max-microvolt = <0x1b7740>; - phandle = <0x17>; - }; - - pio-33 { - compatible = "regulator-fixed"; - regulator-name = "pio-33"; - regulator-min-microvolt = <0x325aa0>; - regulator-max-microvolt = <0x325aa0>; - phandle = <0x18>; - }; - - dram { - phandle = <0x79>; - }; - - soc@3000000 { - compatible = "simple-bus"; - #address-cells = <0x2>; - #size-cells = <0x2>; - ranges; - phandle = <0x7a>; - - disp@1000000 { - compatible = "allwinner,sunxi-disp"; - reg = <0x0 0x1000000 0x0 0x1400000 0x0 0x6510000 0x0 0x200 0x0 0x6511000 0x0 0x1000 0x0 0x6512000 0x0 0x1000 0x0 0x6515000 0x0 0x1000 0x0 0x6516000 0x0 0x1000>; - interrupts = <0x0 0x58 0x4 0x0 0x40 0x4 0x0 0x41 0x4 0x0 0x42 0x4 0x0 0x43 0x4>; - clocks = <0x2 0x1d 0x2 0x1d 0x2 0x1e 0x2 0x1e 0x2 0x7b 0x2 0x7c 0x2 0x7f 0x2 0x80 0x2 0x7d 0x2 0x7e 0x2 0x81 0x2 0x82 0x2 0x7a 0x2 0x7a 0x2 0x7a 0x2 0x7a>; - clock-names = "clk_de0", "clk_de1", "clk_bus_de0", "clk_bus_de1", "clk_tcon0", "clk_tcon1", "clk_tcon2", "clk_tcon3", "clk_bus_tcon0", "clk_bus_tcon1", "clk_bus_tcon2", "clk_bus_tcon3", "clk_bus_dpss_top0", "clk_bus_dpss_top1", "clk_bus_dpss_top2", "clk_bus_dpss_top3"; - resets = <0x2 0x1 0x2 0x1 0x2 0x39 0x2 0x3a 0x2 0x3b 0x2 0x3c 0x2 0x3d 0x2 0x3d 0x2 0x38 0x2 0x38 0x2 0x38 0x2 0x38>; - reset-names = "rst_bus_de0", "rst_bus_de1", "rst_bus_tcon0", "rst_bus_tcon1", "rst_bus_tcon2", "rst_bus_tcon3", "rst_bus_lvds0", "rst_bus_lvds1", "rst_bus_dpss_top0", "rst_bus_dpss_top1", "rst_bus_dpss_top2", "rst_bus_dpss_top3"; - assigned-clocks = <0x2 0x7f>; - assigned-clock-parents = <0x2 0xd>; - assigned-clock-rates = <0x0>; - iommus = <0x8 0x0 0x0>; - boot_disp = <0x0>; - fb_base = <0x0>; - disp_init_enable = <0x1>; - disp_mode = <0x0>; - screen0_output_type = <0x3>; - screen0_output_mode = <0xa>; - screen0_output_format = <0x0>; - screen0_output_bits = <0x0>; - screen0_output_eotf = <0x4>; - screen0_output_cs = <0x101>; - screen0_output_dvi_hdmi = <0x2>; - screen0_output_range = <0x2>; - screen0_output_scan = <0x0>; - screen0_output_aspect_ratio = <0x8>; - screen1_output_type = <0x2>; - screen1_output_mode = <0xb>; - screen1_output_format = <0x1>; - screen1_output_bits = <0x0>; - screen1_output_eotf = <0x4>; - screen1_output_cs = <0x104>; - screen1_output_dvi_hdmi = <0x0>; - screen1_output_range = <0x2>; - screen1_output_scan = <0x0>; - screen1_output_aspect_ratio = <0x8>; - dev0_output_type = <0x4>; - dev0_output_mode = <0xa>; - dev0_screen_id = <0x0>; - dev0_do_hpd = <0x1>; - dev1_output_type = <0x2>; - dev1_output_mode = <0xb>; - dev1_screen_id = <0x1>; - dev1_do_hpd = <0x1>; - dev2_output_type = <0x0>; - def_output_dev = <0x0>; - hdmi_mode_check = <0x1>; - fb0_format = <0x0>; - fb0_width = <0x0>; - fb0_height = <0x0>; - fb1_format = <0x0>; - fb1_width = <0x0>; - fb1_height = <0x0>; - chn_cfg_mode = <0x1>; - disp_para_zone = <0x1>; - phandle = <0x7b>; - }; - - ve@1c0e000 { - compatible = "allwinner,sunxi-cedar-ve"; - reg = <0x0 0x1c0e000 0x0 0x1000 0x0 0x3000000 0x0 0x10 0x0 0x3001000 0x0 0x1000>; - interrupts = <0x0 0x5d 0x4>; - clocks = <0x2 0x29 0x2 0x28 0x2 0x33>; - clock-names = "bus_ve", "ve", "mbus_ve"; - resets = <0x2 0x6>; - iommus = <0x8 0x3 0x1>; - phandle = <0x7c>; - }; - - ve1@1c0e000 { - compatible = "allwinner,sunxi-cedar-ve"; - iommus = <0x8 0x2 0x1>; - phandle = <0x7d>; - }; - - g2d@1480000 { - compatible = "allwinner,sunxi-g2d"; - reg = <0x0 0x1480000 0x0 0x3ffff>; - interrupts = <0x0 0x5a 0x4>; - clocks = <0x2 0x22 0x2 0x21 0x2 0x38>; - clock-names = "bus", "g2d", "mbus_g2d"; - resets = <0x2 0x3>; - iommus = <0x8 0x6 0x1>; - phandle = <0x7e>; - }; - - deinterlace@1420000 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "allwinner,sunxi-deinterlace"; - reg = <0x0 0x1420000 0x0 0x40000>; - interrupts = <0x0 0x59 0x4>; - iommus = <0x8 0x1 0x1>; - status = "okay"; - clocks = <0x2 0x1f 0x2 0x20 0x2 0x5>; - clock-names = "clk_di", "clk_bus_di", "pll_periph"; - resets = <0x2 0x2>; - reset-names = "rst_bus_di"; - assigned-clocks = <0x2 0x1f>; - assigned-clock-parents = <0x2 0x5>; - assigned-clock-rates = <0x11e1a300>; - phandle = <0x7f>; - }; - - gpu@1800000 { - device_type = "gpu"; - compatible = "arm,mali-midgard"; - reg = <0x0 0x1800000 0x0 0x10000>; - interrupts = <0x0 0x5f 0x4 0x0 0x60 0x4 0x0 0x61 0x4>; - interrupt-names = "JOB", "MMU", "GPU"; - clocks = <0x2 0x8 0x2 0x23 0x2 0x24 0x2 0x25>; - clock-names = "clk_parent", "clk_mali", "clk_bak", "clk_bus"; - resets = <0x2 0x4>; - #cooling-cells = <0x2>; - gpu_idle = <0x1>; - dvfs_status = <0x1>; - operating-points = <0x927c0 0xe7ef0 0x8ca00 0xe7ef0 0x83d60 0xe7ef0 0x7b0c0 0xe7ef0 0x6f540 0xe7ef0 0x668a0 0xe7ef0 0x5dc00 0xe7ef0 0x57e40 0xe7ef0 0x52080 0xe7ef0 0x4ab50 0xe7ef0>; - phandle = <0x77>; - - ipa_dvfs { - compatible = "arm,mali-simple-power-model"; - static-coefficient = <0x4268>; - dynamic-coefficient = <0x2ee>; - ts = <0x3e2da 0x2568 0xffffff98 0x4>; - thermal-zone = "gpu_thermal_zone"; - ss-coefficient = <0x24>; - ff-coefficient = <0x123>; - phandle = <0x80>; - }; - }; - - lcd0@1c0c000 { - compatible = "allwinner,sunxi-lcd0"; - reg = <0x0 0x1c0c000 0x0 0x0>; - pinctrl-names = "active", "sleep"; - lcd_used = <0x0>; - lcd_driver_name = "default_lcd"; - lcd_backlight = <0x32>; - lcd_if = <0x0>; - lcd_x = <0x500>; - lcd_y = <0x2d0>; - lcd_width = <0x96>; - lcd_height = <0x5e>; - lcd_dclk_freq = <0x46>; - lcd_pwm_used = <0x0>; - lcd_pwm_ch = <0x0>; - lcd_pwm_freq = <0xc350>; - lcd_pwm_pol = <0x0>; - lcd_pwm_max_limit = <0xff>; - lcd_hbp = <0x14>; - lcd_ht = <0x58a>; - lcd_hspw = <0xa>; - lcd_vbp = <0xa>; - lcd_vt = <0x32e>; - lcd_vspw = <0x5>; - lcd_lvds_if = <0x0>; - lcd_lvds_colordepth = <0x0>; - lcd_lvds_mode = <0x0>; - lcd_frm = <0x0>; - lcd_hv_clk_phase = <0x0>; - lcd_hv_sync_polarity = <0x0>; - lcd_gamma_en = <0x0>; - lcd_bright_curve_en = <0x0>; - lcd_cmap_en = <0x0>; - deu_mode = <0x0>; - lcdgamma4iep = <0x16>; - smart_color = <0x5a>; - lcd_pin_power = "bldo1"; - lcd_power = "dc1sw"; - phandle = <0x81>; - }; - - tv0@6520000 { - compatible = "allwinner,sunxi-tv"; - reg = <0x0 0x6520000 0x0 0x100 0x0 0x6524000 0x0 0x3fc>; - clocks = <0x2 0x85 0x2 0x83 0x2 0x84>; - clock-names = "clk_bus_tve_top", "clk_tve", "clk_bus_tve"; - resets = <0x2 0x3e 0x2 0x3f>; - reset-names = "rst_bus_tve_top", "rst_bus_tve"; - assigned-clocks = <0x2 0x83>; - assigned-clock-parents = <0x2 0xb>; - nvmem-cells = <0x9>; - nvmem-cell-names = "tvout"; - device_type = "tv0"; - pinctrl-names = "active", "sleep"; - status = "disabled"; - interface = <0x1>; - dac_type0 = <0x0>; - dac_src0 = <0x0>; - phandle = <0x82>; - }; - - ccu@3001000 { - compatible = "allwinner,sun50iw9-ccu"; - reg = <0x0 0x3001000 0x0 0x1000>; - clocks = <0xa 0xb 0xc>; - clock-names = "hosc", "losc", "iosc"; - #clock-cells = <0x1>; - #reset-cells = <0x1>; - phandle = <0x2>; - }; - - rtc_ccu@7000000 { - compatible = "allwinner,sun50iw9-rtc-ccu"; - reg = <0x0 0x7000000 0x0 0x400>; - #clock-cells = <0x1>; - clocks = <0xb>; - clock-names = "losc"; - #reset-cells = <0x1>; - phandle = <0xe>; - }; - - rtc@7000000 { - compatible = "allwinner,rtc-v200"; - device_type = "rtc"; - wakeup-source; - reg = <0x0 0x7000000 0x0 0x200>; - interrupts = <0x0 0x68 0x4>; - clocks = <0xd 0x9 0xe 0x0>; - clock-names = "r-ahb-rtc", "rtc-1k"; - gpr_cur_pos = <0x6>; - phandle = <0x83>; - }; - - r_ccu@7010000 { - compatible = "allwinner,sun50iw9-r-ccu"; - reg = <0x0 0x7010000 0x0 0x300>; - clocks = <0xa 0xb 0xc 0x2 0x4>; - clock-names = "hosc", "losc", "iosc", "pll-periph"; - #clock-cells = <0x1>; - #reset-cells = <0x1>; - phandle = <0xd>; - }; - - dma-controller@3002000 { - compatible = "allwinner,sun50iw9-dma"; - reg = <0x0 0x3002000 0x0 0x1000>; - interrupts = <0x0 0x2a 0x4>; - clocks = <0x2 0x2a 0x2 0x32>; - clock-names = "bus", "mbus"; - dma-channels = <0x10>; - dma-requests = <0x31>; - resets = <0x2 0x7>; - #dma-cells = <0x1>; - phandle = <0x35>; - }; - - sram_ctrl@3000000 { - compatible = "allwinner,sram_ctrl"; - reg = <0x0 0x3000000 0x0 0x16c>; - phandle = <0x84>; - - soc_ver { - offset = <0x24>; - mask = <0x7>; - shift = <0x0>; - }; - - soc_id { - offset = <0x200>; - mask = <0x1>; - shift = <0x16>; - }; - - soc_bin { - offset = <0x0>; - mask = <0x3ff>; - shift = <0x0>; - }; - }; - - sid@3006000 { - compatible = "allwinner,sun50iw9p1-sid", "allwinner,sunxi-sid"; - reg = <0x0 0x3006000 0x0 0x1000>; - #address-cells = <0x1>; - #size-cells = <0x1>; - - speed@00 { - reg = <0x0 0x2>; - phandle = <0x6>; - }; - - calib@14 { - reg = <0x14 0x8>; - phandle = <0x48>; - }; - - tvout@2e { - reg = <0x2c 0x8>; - phandle = <0x9>; - }; - - i-cpu@28 { - reg = <0x28 0x2>; - phandle = <0x85>; - }; - - secure_status { - reg = <0x0 0x0>; - offset = <0xa0>; - size = <0x4>; - }; - - chipid { - reg = <0x0 0x0>; - offset = <0x200>; - size = <0x10>; - }; - - rotpk { - reg = <0x0 0x0>; - offset = <0x270>; - size = <0x20>; - }; - }; - - ce@1904000 { - compatible = "allwinner,sunxi-ce"; - device_name = "ce"; - reg = <0x0 0x1904000 0x0 0xa0 0x0 0x1904800 0x0 0xa0>; - interrupts = <0x0 0x5b 0x1 0x0 0x5c 0x1>; - clock-frequency = <0x11e1a300>; - clocks = <0x2 0x27 0x2 0x26 0x2 0x34 0x2 0x5>; - clock-names = "bus_ce", "ce_clk", "mbus_ce", "pll_periph0_2x"; - resets = <0x2 0x5>; - phandle = <0x86>; - }; - - timer@3009000 { - compatible = "allwinner,sun4i-a10-timer"; - device_type = "soc_timer"; - reg = <0x0 0x3009000 0x0 0x400>; - interrupt-parent = <0x7>; - interrupts = <0x0 0x30 0x4>; - clocks = <0xa>; - phandle = <0x87>; - }; - - watchdog@30090a0 { - compatible = "allwinner,sun6i-a31-wdt"; - reg = <0x0 0x30090a0 0x0 0x20>; - interrupts = <0x0 0x32 0x4>; - phandle = <0x88>; - }; - - pwm@300a000 { - compatible = "allwinner,sunxi-pwm-v100"; - reg = <0x0 0x300a000 0x0 0x400>; - clocks = <0x2 0x2f>; - resets = <0x2 0xb>; - pwm-number = <0x6>; - pwm-base = <0x0>; - sunxi-pwms = <0xf 0x10 0x11 0x12 0x13 0x14>; - phandle = <0x89>; - }; - - pwm0@300a010 { - compatible = "allwinner,sunxi-pwm0"; - reg = <0x0 0x300a010 0x0 0x4>; - reg_base = <0x300a000>; - phandle = <0xf>; - }; - - pwm1@300a011 { - compatible = "allwinner,sunxi-pwm1"; - reg = <0x0 0x300a011 0x0 0x4>; - reg_base = <0x300a000>; - phandle = <0x10>; - }; - - pwm2@300a012 { - compatible = "allwinner,sunxi-pwm2"; - reg = <0x0 0x300a012 0x0 0x4>; - reg_base = <0x300a000>; - phandle = <0x11>; - }; - - pwm3@300a013 { - compatible = "allwinner,sunxi-pwm3"; - reg = <0x0 0x300a013 0x0 0x4>; - reg_base = <0x300a000>; - phandle = <0x12>; - }; - - pwm4@300a014 { - compatible = "allwinner,sunxi-pwm4"; - reg = <0x0 0x300a014 0x0 0x4>; - reg_base = <0x300a000>; - phandle = <0x13>; - }; - - pwm5@300a015 { - compatible = "allwinner,sunxi-pwm5"; - reg = <0x0 0x300a015 0x0 0x4>; - reg_base = <0x300a000>; - pinctrl-names = "active", "sleep"; - pinctrl-0 = <0x15>; - pinctrl-1 = <0x16>; - status = "okay"; - phandle = <0x14>; - }; - - ac200 { - compatible = "allwinner,sunxi-ac200"; - status = "disabled"; - tv_used = <0x0>; - tv_twi_used = <0x0>; - tv_twi_id = <0x3>; - tv_twi_addr = <0x10>; - tv_pwm_ch = <0x5>; - phandle = <0x8a>; - }; - - pinctrl@300b000 { - compatible = "allwinner,sun50iw9-pinctrl"; - reg = <0x0 0x300b000 0x0 0x400>; - interrupts = <0x0 0x33 0x4 0x0 0x34 0x4 0x0 0x35 0x4 0x0 0x2b 0x4 0x0 0x36 0x4 0x0 0x37 0x4 0x0 0x38 0x4 0x0 0x39 0x4>; - clocks = <0x2 0x1a 0xa 0xb>; - clock-names = "apb", "hosc", "losc"; - gpio-controller; - #gpio-cells = <0x3>; - interrupt-controller; - #interrupt-cells = <0x3>; - vcc-pf-supply = <0x17>; - vcc-pfo-supply = <0x18>; - vcc-pg-supply = <0x17>; - phandle = <0x23>; - - uart0-ph-pins { - pins = "PH0", "PH1"; - function = "uart0"; - bias-pull-up; - phandle = <0x29>; - }; - - uart0-ph-sleep { - pins = "PH0", "PH1"; - function = "gpio_in"; - phandle = <0x2a>; - }; - - sdc0@0 { - pins = "PF0", "PF1", "PF2", "PF3", "PF4", "PF5"; - function = "sdc0"; - drive-strength = <0x1e>; - bias-pull-up; - power-source = <0xce4>; - allwinner,pins = "PF0", "PF1", "PF2", "PF3", "PF4", "PF5"; - allwinner,function = "sdc0"; - allwinner,muxsel = <0x2>; - allwinner,drive = <0x3>; - allwinner,pull = <0x1>; - phandle = <0x1e>; - }; - - sdc0@1 { - pins = "PF0", "PF1", "PF2", "PF3", "PF4", "PF5"; - function = "sdc0"; - drive-strength = <0x1e>; - bias-pull-up; - power-source = <0x708>; - phandle = <0x1f>; - }; - - sdc0@2 { - pins = "PF0", "PF1", "PF2", "PF3", "PF4", "PF5"; - function = "gpio_in"; - phandle = <0x20>; - }; - - sdc0@3 { - pins = "PF2", "PF4"; - function = "uart0"; - drive-strength = <0xa>; - bias-pull-up; - phandle = <0x21>; - }; - - sdc0@4 { - pins = "PF0", "PF1", "PF3", "PF5"; - function = "jtag"; - drive-strength = <0xa>; - bias-pull-up; - phandle = <0x22>; - }; - - sdc1@0 { - pins = "PG0", "PG1", "PG2", "PG3", "PG4", "PG5"; - function = "sdc1"; - drive-strength = <0x1e>; - bias-pull-up; - phandle = <0x24>; - }; - - sdc1@1 { - pins = "PG0", "PG1", "PG2", "PG3", "PG4", "PG5"; - function = "gpio_in"; - bias-pull-up; - phandle = <0x25>; - }; - - sdc2@0 { - pins = "PC1", "PC5", "PC6", "PC8", "PC9", "PC10", "PC11", "PC13", "PC14", "PC15", "PC16"; - function = "sdc2"; - drive-strength = <0x1e>; - bias-pull-up; - allwinner,pins = "PC1", "PC5", "PC6", "PC8", "PC9", "PC10", "PC11", "PC13", "PC14", "PC15", "PC16"; - allwinner,function = "sdc2"; - allwinner,muxsel = <0x3>; - allwinner,drive = <0x3>; - allwinner,pull = <0x1>; - phandle = <0x19>; - }; - - sdc2@1 { - pins = "PC0", "PC1", "PC5", "PC6", "PC8", "PC9", "PC10", "PC11", "PC13", "PC14", "PC15", "PC16"; - function = "gpio_in"; - bias-pull-up; - phandle = <0x1b>; - }; - - sdc2@2 { - allwinner,pins = "PC0"; - allwinner,function = "sdc2"; - drive-strength = <0x1e>; - bias-pull-down; - allwinner,muxsel = <0x3>; - allwinner,drive = <0x3>; - allwinner,pull = <0x2>; - phandle = <0x1a>; - }; - - nand0@0 { - pins = "PC0", "PC1", "PC2", "PC5", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PC16"; - function = "nand0"; - drive-strength = <0x28>; - phandle = <0x26>; - }; - - nand0@1 { - pins = "PC4", "PC6", "PC3", "PC7"; - function = "nand0"; - drive-strength = <0x28>; - bias-pull-up; - phandle = <0x27>; - }; - - nand0@2 { - pins = "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PC16"; - function = "gpio_in"; - phandle = <0x28>; - }; - - uart1-ph-pins { - pins = "PG6", "PG7", "PG8", "PG9"; - function = "uart1"; - phandle = <0x2b>; - }; - - uart1-ph-sleep { - pins = "PG6", "PG7", "PG8", "PG9"; - function = "gpio_in"; - phandle = <0x2c>; - }; - - uart2-ph-pins { - pins = "PH5", "PH6"; - function = "uart2"; - phandle = <0x2d>; - }; - - uart2-ph-sleep { - pins = "PH5", "PH6"; - function = "gpio_in"; - phandle = <0x2e>; - }; - - uart3-ph-pins { - pins = "PI9", "PI10"; - function = "uart3"; - phandle = <0x2f>; - }; - - uart3-ph-sleep { - pins = "PI9", "PI10"; - function = "gpio_in"; - phandle = <0x30>; - }; - - uart4-ph-pins { - pins = "PI13", "PI14"; - function = "uart4"; - phandle = <0x31>; - }; - - uart4-ph-sleep { - pins = "PI13", "PI14"; - function = "gpio_in"; - phandle = <0x32>; - }; - - uart5-ph-pins { - pins = "PH2", "PH3"; - function = "uart5"; - phandle = <0x33>; - }; - - uart5-ph-sleep { - pins = "PH2", "PH3"; - function = "gpio_in"; - phandle = <0x34>; - }; - - s_cir0@0 { - pins = "PH10"; - function = "ir"; - drive-strength = <0xa>; - bias-pull-up; - phandle = <0x64>; - }; - - s_cir0@1 { - pins = "PH10"; - function = "gpio_in"; - phandle = <0x65>; - }; - - twi0@0 { - pins = "PI5", "PI6"; - function = "twi0"; - drive-strength = <0xa>; - bias-pull-up; - phandle = <0x36>; - }; - - twi0@1 { - pins = "PI5", "PI6"; - function = "gpio_in"; - phandle = <0x37>; - }; - - twi1@0 { - pins = "PH0", "PH1"; - function = "twi1"; - drive-strength = <0xa>; - bias-pull-up; - phandle = <0x38>; - }; - - twi1@1 { - pins = "PH0", "PH1"; - function = "gpio_in"; - phandle = <0x39>; - }; - - twi2@0 { - pins = "PH2", "PH3"; - function = "twi2"; - drive-strength = <0xa>; - bias-pull-up; - phandle = <0x3a>; - }; - - twi2@1 { - pins = "PH2", "PH3"; - function = "gpio_in"; - phandle = <0x3b>; - }; - - twi3@0 { - pins = "PH4", "PH5"; - function = "twi3"; - drive-strength = <0xa>; - bias-pull-up; - phandle = <0x3c>; - }; - - twi3@1 { - pins = "PH4", "PH5"; - function = "gpio_in"; - phandle = <0x3d>; - }; - - twi4@0 { - pins = "PH6", "PH7"; - function = "twi4"; - drive-strength = <0xa>; - bias-pull-up; - phandle = <0x3e>; - }; - - twi4@1 { - pins = "PH6", "PH7"; - function = "gpio_in"; - phandle = <0x3f>; - }; - - spi0@0 { - pins = "PC0", "PC2", "PC4"; - function = "spi0"; - drive-strength = <0x14>; - phandle = <0x42>; - }; - - spi0@1 { - pins = "PC3"; - function = "spi0"; - drive-strength = <0x14>; - bias-pull-up; - phandle = <0x43>; - }; - - spi0@2 { - pins = "PC0", "PC2", "PC3", "PC4"; - function = "gpio_in"; - drive-strength = <0x14>; - phandle = <0x44>; - }; - - spi1@0 { - pins = "PH6", "PH7", "PH8"; - function = "spi1"; - drive-strength = <0x14>; - phandle = <0x45>; - }; - - spi1@1 { - pins = "PH9"; - function = "spi1"; - drive-strength = <0x14>; - bias-pull-up; - phandle = <0x46>; - }; - - spi1@2 { - pins = "PH6", "PH7", "PH8", "PH9"; - function = "gpio_in"; - drive-strength = <0x14>; - phandle = <0x47>; - }; - - gmac0@0 { - pins = "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"; - function = "gmac0"; - drive-strength = <0x1e>; - bias-pull-up; - phandle = <0x5e>; - }; - - gmac0@1 { - pins = "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"; - function = "gpio_in"; - phandle = <0x5f>; - }; - - gmac1@0 { - allwinner,pins = "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9"; - allwinner,function = "gmac1"; - allwinner,muxsel = <0x2>; - allwinner,drive = <0x3>; - allwinner,pull = <0x0>; - phandle = <0x60>; - }; - - gmac1@1 { - allwinner,pins = "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9"; - allwinner,function = "gpio_in"; - allwinner,muxsel = <0x0>; - allwinner,drive = <0x3>; - allwinner,pull = <0x0>; - phandle = <0x61>; - }; - - pwm5@0 { - pins = "PA12"; - function = "pwm5"; - drive-strength = <0xa>; - bias-pull-up; - phandle = <0x15>; - }; - - pwm5@1 { - pins = "PA12"; - function = "gpio_in"; - phandle = <0x16>; - }; - - spdif@0 { - pins = "PH4"; - function = "spdif"; - drive-strength = <0x14>; - bias-disable; - phandle = <0x4b>; - }; - - spdif_sleep@0 { - pins = "PH4"; - function = "gpio_in"; - drive-strength = <0x14>; - bias-disable; - phandle = <0x4c>; - }; - - ahub_daudio0@0 { - pins = "PA6", "PA7", "PA8", "PA9"; - function = "i2s0"; - drive-strength = <0x14>; - bias-disable; - phandle = <0x8b>; - }; - - ahub_daudio0_sleep@0 { - pins = "PA6", "PA7", "PA8", "PA9"; - function = "gpio_in"; - drive-strength = <0x14>; - bias-disable; - phandle = <0x8c>; - }; - - ahub_daudio2@0 { - pins = "PG11", "PG12"; - function = "i2s2"; - drive-strength = <0x14>; - bias-disable; - phandle = <0x4f>; - }; - - ahub_daudio2@1 { - pins = "PG13"; - function = "i2s2_dout0"; - drive-strength = <0x14>; - bias-disable; - phandle = <0x50>; - }; - - ahub_daudio2@2 { - pins = "PG14"; - function = "i2s2_din0"; - drive-strength = <0x14>; - bias-disable; - phandle = <0x51>; - }; - - ahub_daudio2_sleep@0 { - pins = "PG11", "PG12", "PG13", "PG14"; - function = "gpio_in"; - drive-strength = <0x14>; - bias-disable; - phandle = <0x52>; - }; - - ahub_daudio3@0 { - pins = "PH5", "PH6", "PH7"; - function = "i2s3"; - drive-strength = <0x14>; - bias-disable; - phandle = <0x8d>; - }; - - ahub_daudio3@1 { - pins = "PH8"; - function = "i2s3_dout0"; - drive-strength = <0x14>; - bias-disable; - phandle = <0x8e>; - }; - - ahub_daudio3@2 { - pins = "PH9"; - function = "i2s3_din0"; - drive-strength = <0x14>; - bias-disable; - phandle = <0x8f>; - }; - - ahub_daudio3_sleep@0 { - pins = "PH5", "PH6", "PH7", "PH8", "PH9"; - function = "gpio_in"; - drive-strength = <0x14>; - bias-disable; - phandle = <0x90>; - }; - - standby@0 { - allwinner,pins = "PH6"; - allwinner,function = "gpio_out"; - allwinner,muxsel = <0x1>; - allwinner,data = <0x1>; - allwinner,drive = <0x0>; - allwinner,pull = <0x0>; - phandle = <0x91>; - }; - - standby@1 { - allwinner,pins = "PH7"; - allwinner,function = "gpio_out"; - allwinner,muxsel = <0x1>; - allwinner,data = <0x0>; - allwinner,drive = <0x2>; - allwinner,pull = <0x2>; - phandle = <0x92>; - }; - - standby@2 { - allwinner,pins = "PG16"; - allwinner,function = "gpio_in"; - allwinner,muxsel = <0x0>; - allwinner,data = <0x0>; - allwinner,drive = <0x0>; - allwinner,pull = <0x0>; - phandle = <0x93>; - }; - }; - - pinctrl@7022000 { - compatible = "allwinner,sun50iw9-r-pinctrl"; - reg = <0x0 0x7022000 0x0 0x400>; - clocks = <0xd 0x2 0xa 0xb>; - clock-names = "apb", "hosc", "losc"; - gpio-controller; - #gpio-cells = <0x3>; - phandle = <0x94>; - - s_twi0@0 { - pins = "PL0", "PL1"; - function = "s_twi0"; - drive-strength = <0x14>; - bias-pull-up; - phandle = <0x40>; - }; - - s_twi0@1 { - pins = "PL0", "PL1"; - function = "gpio_in"; - phandle = <0x41>; - }; - }; - - iommu@30f0000 { - compatible = "allwinner,sunxi-iommu"; - reg = <0x0 0x30f0000 0x0 0x1000>; - interrupts = <0x0 0x3d 0x4>; - interrupt-names = "iommu-irq"; - clocks = <0x2 0x30>; - clock-names = "iommu"; - #iommu-cells = <0x2>; - phandle = <0x8>; - }; - - sdmmc@4022000 { - compatible = "allwinner,sunxi-mmc-v4p6x"; - device_type = "sdc2"; - reg = <0x0 0x4022000 0x0 0x1000>; - interrupts = <0x0 0x25 0x4>; - clocks = <0xa 0x2 0x7 0x2 0x3f 0x2 0x42>; - clock-names = "osc24m", "pll_periph", "mmc", "ahb"; - resets = <0x2 0x10>; - reset-names = "rst"; - pinctrl-names = "default", "sleep"; - pinctrl-0 = <0x19 0x1a>; - pinctrl-1 = <0x1b>; - bus-width = <0x8>; - req-page-count = <0x2>; - cap-mmc-highspeed; - cap-cmd23; - ctl-spec-caps = <0x308>; - mmc-cache-ctrl; - non-removable; - max-frequency = <0x5f5e100>; - cap-erase; - mmc-high-capacity-erase-size; - no-sdio; - no-sd; - sdc_tm4_sm0_freq0 = <0x0>; - sdc_tm4_sm0_freq1 = <0x0>; - sdc_tm4_sm1_freq0 = <0x0>; - sdc_tm4_sm1_freq1 = <0x0>; - sdc_tm4_sm2_freq0 = <0x0>; - sdc_tm4_sm2_freq1 = <0x0>; - sdc_tm4_sm3_freq0 = <0x5000000>; - sdc_tm4_sm3_freq1 = <0x5>; - sdc_tm4_sm4_freq0 = <0x50000>; - sdc_tm4_sm4_freq1 = <0x4>; - sdc_tm4_sm4_freq0_cmd = <0x0>; - sdc_tm4_sm4_freq1_cmd = <0x0>; - status = "disabled"; - mmc-ddr-1_8v; - mmc-hs200-1_8v; - mmc-hs400-1_8v; - sunxi-dis-signal-vol-sw; - vmmc-supply = <0x1c>; - vqmmc-supply = <0x1d>; - phandle = <0x95>; - }; - - sdmmc@4020000 { - compatible = "allwinner,sunxi-mmc-v4p1x"; - device_type = "sdc0"; - reg = <0x0 0x4020000 0x0 0x1000>; - interrupts = <0x0 0x23 0x4>; - clocks = <0xa 0x2 0x7 0x2 0x3d 0x2 0x40>; - clock-names = "osc24m", "pll_periph", "mmc", "ahb"; - resets = <0x2 0xe>; - reset-names = "rst"; - pinctrl-names = "default", "mmc_1v8", "sleep", "uart_jtag"; - pinctrl-0 = <0x1e>; - pinctrl-1 = <0x1f>; - pinctrl-2 = <0x20>; - pinctrl-3 = <0x21 0x22>; - max-frequency = <0x8f0d180>; - bus-width = <0x4>; - req-page-count = <0x2>; - ctl-spec-caps = <0x8>; - cap-sd-highspeed; - cap-wait-while-busy; - no-sdio; - no-mmc; - status = "okay"; - sd-uhs-sdr50; - sd-uhs-ddr50; - sd-uhs-sdr104; - vmmc-supply = <0x1c>; - cd-gpios = <0x23 0x5 0x6 0x11>; - phandle = <0x96>; - }; - - sdmmc@4021000 { - compatible = "allwinner,sunxi-mmc-v4p1x"; - device_type = "sdc1"; - reg = <0x0 0x4021000 0x0 0x1000>; - interrupts = <0x0 0x24 0x4>; - clocks = <0xa 0x2 0x7 0x2 0x3e 0x2 0x41>; - clock-names = "osc24m", "pll_periph", "mmc", "ahb"; - resets = <0x2 0xf>; - reset-names = "rst"; - pinctrl-names = "default", "sleep"; - pinctrl-0 = <0x24>; - pinctrl-1 = <0x25>; - max-frequency = <0x8f0d180>; - bus-width = <0x4>; - ctl-spec-caps = <0x8>; - cap-sd-highspeed; - no-mmc; - keep-power-in-suspend; - sunxi-dly-52M-ddr4 = <0x1 0x0 0x0 0x0 0x2>; - sunxi-dly-104M = <0x1 0x0 0x0 0x0 0x1>; - sunxi-dly-208M = <0x1 0x0 0x0 0x0 0x1>; - status = "okay"; - no-sd; - sd-uhs-sdr12; - sd-uhs-sdr25; - sd-uhs-sdr50; - sd-uhs-ddr50; - sd-uhs-sdr104; - sunxi-dis-signal-vol-sw; - cap-sdio-irq; - ignore-pm-notify; - vqmmc-supply = <0x1d>; - phandle = <0x97>; - }; - - nand0@4011000 { - compatible = "allwinner,sun50iw9-nand"; - device_type = "nand0"; - reg = <0x0 0x4011000 0x0 0x1000>; - interrupts = <0x0 0x22 0x4>; - clocks = <0x2 0x7 0x2 0x3a 0x2 0x3b 0x2 0x3c 0x2 0x36>; - clock-names = "pll_periph", "mclk", "ecc", "bus", "mbus"; - resets = <0x2 0xd>; - reset-names = "rst"; - pinctrl-names = "default", "sleep"; - pinctrl-0 = <0x26 0x27>; - pinctrl-1 = <0x28>; - nand0_cache_level = <0x55aaaa55>; - nand0_flush_cache_num = <0x55aaaa55>; - nand0_capacity_level = <0x55aaaa55>; - nand0_id_number_ctl = <0x55aaaa55>; - nand0_print_level = <0x55aaaa55>; - nand0_p0 = <0x55aaaa55>; - nand0_p1 = <0x55aaaa55>; - nand0_p2 = <0x55aaaa55>; - nand0_p3 = <0x55aaaa55>; - chip_code = "sun50iw9"; - status = "disabled"; - nand0_regulator1-supply = <0x1c>; - nand0_regulator2-supply = <0x1d>; - phandle = <0x98>; - }; - - mbus-controller@47fa000 { - compatible = "allwinner,sun50i-mbus"; - reg = <0x0 0x47fa000 0x0 0x1000>; - #mbus-cells = <0x1>; - phandle = <0x99>; - }; - - uart@5000000 { - compatible = "allwinner,sun50i-uart"; - reg = <0x0 0x5000000 0x0 0x400>; - interrupts = <0x0 0x0 0x4>; - clocks = <0x2 0x43>; - resets = <0x2 0x11>; - uart0_port = <0x0>; - uart0_type = <0x2>; - status = "okay"; - pinctrl-names = "default", "sleep"; - pinctrl-0 = <0x29>; - pinctrl-1 = <0x2a>; - phandle = <0x9a>; - }; - - uart@5000400 { - compatible = "allwinner,sun50i-uart"; - reg = <0x0 0x5000400 0x0 0x400>; - interrupts = <0x0 0x1 0x4>; - clocks = <0x2 0x44>; - resets = <0x2 0x12>; - uart1_port = <0x1>; - uart1_type = <0x4>; - sunxi,uart-fifosize = <0x100>; - status = "okay"; - pinctrl-names = "default", "sleep"; - pinctrl-0 = <0x2b>; - pinctrl-1 = <0x2c>; - device_type = "uart1"; - phandle = <0x9b>; - }; - - uart@5000800 { - compatible = "allwinner,sun50i-uart"; - reg = <0x0 0x5000800 0x0 0x400>; - interrupts = <0x0 0x2 0x4>; - clocks = <0x2 0x45>; - resets = <0x2 0x13>; - uart2_port = <0x2>; - uart2_type = <0x4>; - sunxi,uart-fifosize = <0x100>; - status = "disabled"; - pinctrl-names = "default", "sleep"; - pinctrl-0 = <0x2d>; - pinctrl-1 = <0x2e>; - phandle = <0x9c>; - }; - - uart@5000c00 { - compatible = "allwinner,sun50i-uart"; - reg = <0x0 0x5000c00 0x0 0x400>; - interrupts = <0x0 0x3 0x4>; - clocks = <0x2 0x46>; - resets = <0x2 0x14>; - uart3_port = <0x3>; - uart3_type = <0x4>; - sunxi,uart-fifosize = <0x100>; - status = "disabled"; - pinctrl-names = "default", "sleep"; - pinctrl-0 = <0x2f>; - pinctrl-1 = <0x30>; - phandle = <0x9d>; - }; - - uart@5001000 { - compatible = "allwinner,sun50i-uart"; - reg = <0x0 0x5001000 0x0 0x400>; - interrupts = <0x0 0x4 0x4>; - clocks = <0x2 0x47>; - resets = <0x2 0x15>; - uart4_port = <0x4>; - uart4_type = <0x4>; - sunxi,uart-fifosize = <0x100>; - status = "disabled"; - pinctrl-names = "default", "sleep"; - pinctrl-0 = <0x31>; - pinctrl-1 = <0x32>; - phandle = <0x9e>; - }; - - uart@5001400 { - compatible = "allwinner,sun50i-uart"; - reg = <0x0 0x5001400 0x0 0x400>; - interrupts = <0x0 0x5 0x4>; - clocks = <0x2 0x48>; - resets = <0x2 0x16>; - uart5_port = <0x5>; - uart5_type = <0x2>; - sunxi,uart-fifosize = <0x100>; - status = "okay"; - pinctrl-names = "default", "sleep"; - pinctrl-0 = <0x33>; - pinctrl-1 = <0x34>; - phandle = <0x9f>; - }; - - twi@5002000 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "allwinner,sun50i-twi"; - device_type = "twi0"; - reg = <0x0 0x5002000 0x0 0x400>; - interrupts = <0x0 0x6 0x4>; - clocks = <0x2 0x49>; - clock-names = "bus"; - resets = <0x2 0x17>; - dmas = <0x35 0x2b 0x35 0x2b>; - dma-names = "tx", "rx"; - status = "disabled"; - clock-frequency = <0x61a80>; - pinctrl-0 = <0x36>; - pinctrl-1 = <0x37>; - pinctrl-names = "default", "sleep"; - twi_drv_used = <0x1>; - phandle = <0xa0>; - - eeprom@50 { - compatible = "atmel,24c16"; - reg = <0x50>; - status = "disabled"; - }; - }; - - twi@5002400 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "allwinner,sun50i-twi"; - device_type = "twi1"; - reg = <0x0 0x5002400 0x0 0x400>; - interrupts = <0x0 0x7 0x4>; - clocks = <0x2 0x4a>; - clock-names = "bus"; - resets = <0x2 0x18>; - dmas = <0x35 0x2c 0x35 0x2c>; - dma-names = "tx", "rx"; - status = "disabled"; - clock-frequency = <0x61a80>; - pinctrl-0 = <0x38>; - pinctrl-1 = <0x39>; - pinctrl-names = "default", "sleep"; - twi_drv_used = <0x1>; - phandle = <0xa1>; - }; - - twi@5002800 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "allwinner,sun50i-twi"; - device_type = "twi2"; - reg = <0x0 0x5002800 0x0 0x400>; - interrupts = <0x0 0x8 0x4>; - clocks = <0x2 0x4b>; - clock-names = "bus"; - resets = <0x2 0x19>; - dmas = <0x35 0x2d 0x35 0x2d>; - dma-names = "tx", "rx"; - status = "disabled"; - clock-frequency = <0x61a80>; - pinctrl-0 = <0x3a>; - pinctrl-1 = <0x3b>; - pinctrl-names = "default", "sleep"; - twi_drv_used = <0x1>; - phandle = <0xa2>; - }; - - twi@5002c00 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "allwinner,sun50i-twi"; - device_type = "twi3"; - reg = <0x0 0x5002c00 0x0 0x400>; - interrupts = <0x0 0x9 0x4>; - clocks = <0x2 0x4c>; - clock-names = "bus"; - resets = <0x2 0x1a>; - dmas = <0x35 0x2e 0x35 0x2e>; - dma-names = "tx", "rx"; - status = "okay"; - clock-frequency = <0x61a80>; - pinctrl-0 = <0x3c>; - pinctrl-1 = <0x3d>; - pinctrl-names = "default", "sleep"; - twi_drv_used = <0x1>; - phandle = <0xa3>; - }; - - twi@5003000 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "allwinner,sun50i-twi"; - device_type = "twi4"; - reg = <0x0 0x5003000 0x0 0x400>; - interrupts = <0x0 0xa 0x4>; - clocks = <0x2 0x4d>; - clock-names = "bus"; - resets = <0x2 0x1b>; - dmas = <0x35 0x2f 0x35 0x2f>; - dma-names = "tx", "rx"; - status = "disabled"; - clock-frequency = <0x61a80>; - pinctrl-0 = <0x3e>; - pinctrl-1 = <0x3f>; - pinctrl-names = "default", "sleep"; - twi_drv_used = <0x1>; - phandle = <0xa4>; - }; - - twi@7081400 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "allwinner,sun50i-twi"; - device_type = "twi5"; - reg = <0x0 0x7081400 0x0 0x400>; - interrupts = <0x0 0x69 0x4>; - clocks = <0xd 0x5>; - clock-names = "bus"; - resets = <0xd 0x1>; - dmas = <0x35 0x30 0x35 0x30>; - dma-names = "tx", "rx"; - status = "okay"; - clock-frequency = <0x61a80>; - pinctrl-0 = <0x40>; - pinctrl-1 = <0x41>; - pinctrl-names = "default", "sleep"; - no_suspend = <0x1>; - twi_drv_used = <0x0>; - phandle = <0xa5>; - - pmu { - compatible = "x-powers,axp1530"; - reg = <0x36>; - wakeup-source; - pmu_hot_shutdown = <0x1>; - phandle = <0xa6>; - - standby_param { - vdd-cpua = <0x2>; - vdd-sys = <0x1>; - vcc-io = <0x10>; - vcc-dram = <0x4>; - phandle = <0xa7>; - }; - - regulators { - - dcdc1 { - regulator-name = "axp1530-dcdc1"; - regulator-min-microvolt = <0x7a120>; - regulator-max-microvolt = <0x33e140>; - regulator-step-delay-us = <0x19>; - regulator-final-delay-us = <0x32>; - regulator-always-on; - phandle = <0x63>; - }; - - dcdc2 { - regulator-name = "axp1530-dcdc2"; - regulator-min-microvolt = <0x7a120>; - regulator-max-microvolt = <0x177fa0>; - regulator-step-delay-us = <0x19>; - regulator-final-delay-us = <0x32>; - regulator-ramp-delay = <0xc8>; - regulator-always-on; - phandle = <0x5>; - }; - - dcdc3 { - regulator-name = "axp1530-dcdc3"; - regulator-min-microvolt = <0x7a120>; - regulator-max-microvolt = <0x1c1380>; - regulator-step-delay-us = <0x19>; - regulator-final-delay-us = <0x32>; - regulator-always-on; - phandle = <0xa8>; - }; - - ldo1 { - regulator-name = "axp1530-aldo1"; - regulator-min-microvolt = <0x7a120>; - regulator-max-microvolt = <0x3567e0>; - regulator-step-delay-us = <0x19>; - regulator-final-delay-us = <0x32>; - regulator-always-on; - phandle = <0x1d>; - }; - - ldo2 { - regulator-name = "axp1530-dldo1"; - regulator-min-microvolt = <0x7a120>; - regulator-max-microvolt = <0x3567e0>; - regulator-step-delay-us = <0x19>; - regulator-final-delay-us = <0x32>; - regulator-always-on; - phandle = <0x1c>; - }; - }; - }; - }; - - spi@5010000 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "allwinner,sun50i-spi"; - device_type = "spi0"; - reg = <0x0 0x5010000 0x0 0x1000>; - interrupts = <0x0 0xc 0x4>; - clocks = <0x2 0x4 0x2 0x4f 0x2 0x51>; - clock-names = "pll", "mod", "bus"; - resets = <0x2 0x1d>; - clock-frequency = <0x5f5e100>; - spi0_cs_number = <0x1>; - spi0_cs_bitmap = <0x1>; - dmas = <0x35 0x16 0x35 0x16>; - dma-names = "tx", "rx"; - status = "okay"; - spi_slave_mode = <0x0>; - pinctrl-names = "default", "sleep"; - pinctrl-0 = <0x42 0x43>; - pinctrl-1 = <0x44>; - spi1_cs_number = <0x1>; - spi1_cs_bitmap = <0x1>; - /*spi_dbi_enable = <0x0>;*/ - phandle = <0xa9>; - - spi_board0 { - device_type = "spi_board0"; - compatible = "rohm,dh2228fv"; - spi-max-frequency = <0x10000000>; - reg = <0x0>; - status = "okay"; - }; - }; - - spi@5011000 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "allwinner,sun50i-spi"; - device_type = "spi1"; - reg = <0x0 0x5011000 0x0 0x1000>; - interrupts = <0x0 0xd 0x4>; - clocks = <0x2 0x4 0x2 0x50 0x2 0x52>; - clock-names = "pll", "mod", "bus"; - resets = <0x2 0x1e>; - clock-frequency = <0x5f5e100>; - spi1_cs_number = <0x2>; - spi1_cs_bitmap = <0x2>; - dmas = <0x35 0x17 0x35 0x17>; - dma-names = "tx", "rx"; - status = "okay"; - spi_slave_mode = <0x0>; - pinctrl-names = "default", "sleep"; - pinctrl-0 = <0x45 0x46>; - pinctrl-1 = <0x47>; - /*spi_dbi_enable = <0x0>;*/ - phandle = <0xaa>; - - spi_board1@1 { - device_type = "spi_board1"; - compatible = "rohm,dh2228fv"; - spi-max-frequency = <0x989680>; - reg = <0x1>; - status = "okay"; - }; - }; - - thermal-sensor@5070400 { - compatible = "allwinner,sun50iw9p1-ths"; - reg = <0x0 0x5070400 0x0 0x400>; - clocks = <0x2 0x59>; - clock-names = "bus"; - resets = <0x2 0x23>; - nvmem-cells = <0x48>; - nvmem-cell-names = "calibration"; - #thermal-sensor-cells = <0x1>; - phandle = <0x74>; - }; - - gpadc@5070000 { - compatible = "allwinner,sunxi-gpadc"; - reg = <0x0 0x5070000 0x0 0x3ff>; - interrupts = <0x0 0x12 0x4>; - clocks = <0x2 0x58>; - clock-names = "bus"; - resets = <0x2 0x22>; - status = "disabled"; - phandle = <0xab>; - }; - - keyboard@5070800 { - compatible = "allwinner,keyboard_1350mv"; - reg = <0x0 0x5070800 0x0 0x400>; - interrupts = <0x0 0x14 0x1>; - clocks = <0x2 0x74>; - resets = <0x2 0x35>; - status = "disabled"; - phandle = <0xac>; - }; - - codec@5096000 { - #sound-dai-cells = <0x0>; - compatible = "allwinner,sunxi-snd-codec"; - reg = <0x0 0x5096000 0x0 0x31c>; - resets = <0x2 0x26>; - clocks = <0x2 0x13 0x2 0x5e 0x2 0x60>; - clock-names = "clk_pll_audio_4x", "clk_audio", "clk_bus_audio"; - status = "okay"; - lineout_vol = <0x1f>; - pa_pin_max = <0x1>; - pa_pin_level_0 = <0x1>; - pa_pin_msleep_0 = <0x0>; - tx_hub_en; - phandle = <0x4a>; - }; - - codec_plat { - #sound-dai-cells = <0x0>; - compatible = "allwinner,sunxi-snd-plat-aaudio"; - playback_cma = <0x80>; - capture_cma = <0x80>; - tx_fifo_size = <0x80>; - rx_fifo_size = <0x80>; - dac_txdata = <0x5096020>; - adc_txdata = <0x5096040>; - dmas = <0x35 0x6 0x35 0x6>; - dma-names = "tx", "rx"; - status = "okay"; - phandle = <0x49>; - }; - - codec_mach { - compatible = "allwinner,sunxi-snd-mach"; - soundcard-mach,name = "audiocodec"; - soundcard-mach,playback-only; - soundcard-mach,pin-switches = "LINEOUT"; - soundcard-mach,routing = "LINEOUT", "LINEOUTL", "LINEOUT", "LINEOUTR"; - status = "okay"; - phandle = <0xad>; - - soundcard-mach,cpu { - sound-dai = <0x49>; - }; - - soundcard-mach,codec { - sound-dai = <0x4a>; - soundcard-mach,pll-fs = <0x4>; - }; - }; - - spdif_plat@5093000 { - #sound-dai-cells = <0x0>; - compatible = "allwinner,sunxi-snd-plat-spdif"; - reg = <0x0 0x5093000 0x0 0x40>; - resets = <0x2 0x24>; - clocks = <0x2 0x13 0x2 0x5a 0x2 0x5b>; - clock-names = "clk_pll_audio_4x", "clk_spdif", "clk_bus_spdif"; - pll-fs = <0x4>; - dmas = <0x35 0x2 0x35 0x2>; - dma-names = "tx", "rx"; - playback_cma = <0x80>; - capture_cma = <0x80>; - tx_fifo_size = <0x80>; - rx_fifo_size = <0x40>; - status = "disabled"; - pinctrl_used; - pinctrl-names = "default", "sleep"; - pinctrl-0 = <0x4b>; - pinctrl-1 = <0x4c>; - tx_hub_en; - phandle = <0x4d>; - }; - - spdif_mach { - compatible = "allwinner,sunxi-snd-mach"; - soundcard-mach,name = "sndspdif"; - status = "disabled"; - phandle = <0xae>; - - soundcard-mach,cpu { - sound-dai = <0x4d>; - soundcard-mach,pll-fs = <0x4>; - }; - - soundcard-mach,codec { - }; - }; - - ahub_dam_plat@5097000 { - #sound-dai-cells = <0x0>; - compatible = "allwinner,sunxi-snd-plat-ahub_dam"; - reg = <0x0 0x5097000 0x0 0xaec>; - resets = <0x2 0x27>; - clocks = <0x2 0x11 0x2 0x13 0x2 0x61 0x2 0x62>; - clock-names = "clk_pll_audio", "clk_pll_audio_4x", "clk_audio_hub", "clk_bus_audio_hub"; - status = "okay"; - phandle = <0x4e>; - }; - - ahub_dam_mach { - compatible = "allwinner,sunxi-snd-mach"; - soundcard-mach,name = "ahubdam"; - status = "disabled"; - phandle = <0xaf>; - - soundcard-mach,cpu { - sound-dai = <0x4e>; - }; - - soundcard-mach,codec { - }; - }; - - ahub0_plat { - #sound-dai-cells = <0x0>; - compatible = "allwinner,sunxi-snd-plat-ahub"; - apb_num = <0x0>; - dmas = <0x35 0x3 0x35 0x3>; - dma-names = "tx", "rx"; - playback_cma = <0x80>; - capture_cma = <0x80>; - tx_fifo_size = <0x80>; - rx_fifo_size = <0x80>; - status = "disabled"; - tdm_num = <0x0>; - tx_pin = <0x0>; - rx_pin = <0x0>; - phandle = <0x54>; - }; - - ahub1_plat { - #sound-dai-cells = <0x0>; - compatible = "allwinner,sunxi-snd-plat-ahub"; - apb_num = <0x1>; - dmas = <0x35 0x4 0x35 0x4>; - dma-names = "tx", "rx"; - playback_cma = <0x80>; - capture_cma = <0x80>; - tx_fifo_size = <0x80>; - rx_fifo_size = <0x80>; - status = "okay"; - tdm_num = <0x1>; - tx_pin = <0x0>; - rx_pin = <0x0>; - dai_type = "hdmi"; - phandle = <0x56>; - }; - - ahub2_plat { - #sound-dai-cells = <0x0>; - compatible = "allwinner,sunxi-snd-plat-ahub"; - apb_num = <0x2>; - dmas = <0x35 0x5 0x35 0x5>; - dma-names = "tx", "rx"; - playback_cma = <0x80>; - capture_cma = <0x80>; - tx_fifo_size = <0x80>; - rx_fifo_size = <0x80>; - status = "disabled"; - tdm_num = <0x2>; - tx_pin = <0x0>; - rx_pin = <0x0>; - pinctrl_used; - pinctrl-names = "default", "sleep"; - pinctrl-0 = <0x4f 0x50 0x51>; - pinctrl-1 = <0x52>; - phandle = <0x58>; - }; - - ahub3_plat { - #sound-dai-cells = <0x0>; - compatible = "allwinner,sunxi-snd-plat-ahub"; - apb_num = <0x2>; - dmas = <0x35 0x5 0x35 0x5>; - dma-names = "tx", "rx"; - playback_cma = <0x80>; - capture_cma = <0x80>; - tx_fifo_size = <0x80>; - rx_fifo_size = <0x80>; - status = "disabled"; - tdm_num = <0x3>; - tx_pin = <0x0>; - rx_pin = <0x0>; - phandle = <0x5a>; - }; - - ahub0_mach { - compatible = "allwinner,sunxi-snd-mach"; - soundcard-mach,name = "ahubi2s0"; - status = "disabled"; - soundcard-mach,format = "i2s"; - soundcard-mach,frame-master = <0x53>; - soundcard-mach,bitclock-master = <0x53>; - soundcard-mach,slot-num = <0x2>; - soundcard-mach,slot-width = <0x20>; - phandle = <0xb0>; - - soundcard-mach,cpu { - sound-dai = <0x54>; - soundcard-mach,pll-fs = <0x4>; - soundcard-mach,mclk-fs = <0x100>; - phandle = <0x53>; - }; - - soundcard-mach,codec { - phandle = <0xb1>; - }; - }; - - ahub1_mach { - compatible = "allwinner,sunxi-snd-mach"; - soundcard-mach,name = "ahubhdmi"; - status = "okay"; - soundcard-mach,format = "i2s"; - soundcard-mach,frame-master = <0x55>; - soundcard-mach,bitclock-master = <0x55>; - soundcard-mach,slot-num = <0x2>; - soundcard-mach,slot-width = <0x20>; - phandle = <0xb2>; - - soundcard-mach,cpu { - sound-dai = <0x56>; - soundcard-mach,pll-fs = <0x4>; - soundcard-mach,mclk-fs = <0x0>; - phandle = <0x55>; - }; - - soundcard-mach,codec { - phandle = <0xb3>; - }; - }; - - ahub2_mach { - compatible = "allwinner,sunxi-snd-mach"; - soundcard-mach,name = "ahubi2s2"; - status = "okay"; - soundcard-mach,format = "i2s"; - soundcard-mach,frame-master = <0x57>; - soundcard-mach,bitclock-master = <0x57>; - soundcard-mach,slot-num = <0x2>; - soundcard-mach,slot-width = <0x20>; - phandle = <0xb4>; - - soundcard-mach,cpu { - sound-dai = <0x58>; - soundcard-mach,pll-fs = <0x4>; - soundcard-mach,mclk-fs = <0x100>; - phandle = <0x57>; - }; - - soundcard-mach,codec { - phandle = <0xb5>; - }; - }; - - ahub3_mach { - compatible = "allwinner,sunxi-snd-mach"; - soundcard-mach,name = "ahubi2s3"; - status = "disabled"; - soundcard-mach,format = "i2s"; - soundcard-mach,frame-master = <0x59>; - soundcard-mach,bitclock-master = <0x59>; - soundcard-mach,slot-num = <0x2>; - soundcard-mach,slot-width = <0x20>; - phandle = <0xb6>; - - soundcard-mach,cpu { - sound-dai = <0x5a>; - soundcard-mach,pll-fs = <0x4>; - soundcard-mach,mclk-fs = <0x100>; - phandle = <0x59>; - }; - - soundcard-mach,codec { - phandle = <0xb7>; - }; - }; - - spdif@5094000 { - #sound-dai-cells = <0x0>; - compatible = "allwinner,sunxi-spdif"; - reg = <0x0 0x5094000 0x0 0x40>; - clocks = <0x2 0x11 0x2 0x5a 0x2 0x5b>; - clock-names = "pll_audio", "spdif", "spdif_bus"; - resets = <0x2 0x24>; - clk_parent = <0x1>; - playback_cma = <0x80>; - capture_cma = <0x80>; - device_type = "spdif"; - dmas = <0x35 0x2 0x35 0x2>; - dma-names = "tx", "rx"; - status = "disabled"; - phandle = <0x5b>; - }; - - soundspdif { - compatible = "sunxi,simple-audio-card"; - simple-audio-card,name = "sndspdif"; - status = "disabled"; - phandle = <0xb8>; - - simple-audio-card,cpu { - sound-dai = <0x5b>; - }; - - simple-audio-card,codec { - }; - }; - - dmic@5095000 { - #sound-dai-cells = <0x0>; - compatible = "allwinner,sunxi-dmic"; - reg = <0x0 0x5095000 0x0 0x50>; - clocks = <0x2 0x11 0x2 0x5c 0x2 0x5d>; - clock-names = "pll_audio", "dmic", "dmic_bus"; - resets = <0x2 0x25>; - clk_parent = <0x1>; - capture_cma = <0x100>; - data_vol = <0xb0>; - dmic_rxsync_en = <0x0>; - rx_chmap = <0x76543210>; - device_type = "dmic"; - dmas = <0x35 0x7>; - dma-names = "rx"; - status = "disabled"; - phandle = <0x5c>; - }; - - dmic_codec { - #sound-dai-cells = <0x0>; - compatible = "dmic-codec"; - num-channels = <0x8>; - status = "disabled"; - phandle = <0x5d>; - }; - - sounddmic { - compatible = "sunxi,simple-audio-card"; - simple-audio-card,name = "snddmic"; - status = "disabled"; - phandle = <0xb9>; - - simple-audio-card,cpu { - sound-dai = <0x5c>; - }; - - simple-audio-card,codec { - sound-dai = <0x5d>; - }; - }; - - leds { - compatible = "gpio-leds"; - - power { - label = "red_led"; - gpios = <0x23 0x2 0xc 0x1>; /* PC12 */ - default-state = "on"; - }; - - status { - label = "green_led"; - gpios = <0x23 0x2 0xd 0x1>; /* PC13 */ - default-state = "off"; - }; - }; - - gpio_para { - device_type = "gpio_para"; - compatible = "allwinner,sunxi-init-gpio"; - status = "okay"; - gpio_num = <0x0>; - /*gpio_pin_1 = <0x23 0x2 0xc 0x1>; - gpio_pin_2 = <0x23 0x2 0xd 0x0>;*/ - phandle = <0xba>; - }; - - eth@5020000 { - compatible = "allwinner,sunxi-gmac"; - reg = <0x0 0x5020000 0x0 0x10000 0x0 0x3000030 0x0 0x4>; - interrupts = <0x0 0xe 0x4>; - interrupt-names = "gmacirq"; - clocks = <0x2 0x54 0x2 0x53>; - clock-names = "gmac", "ephy"; - resets = <0x2 0x1f>; - device_type = "gmac0"; - phy-mode = "rgmii"; - phy-rst; - gmac-power0; - gmac-power1; - gmac-power2; - status = "okay"; - use_ephy25m = <0x0>; - pinctrl-0 = <0x5e>; - pinctrl-1 = <0x5f>; - pinctrl-names = "default", "sleep"; - tx-delay = <0x7>; - rx-delay = <0x0>; - phandle = <0xbb>; - }; - - eth@5030000 { - compatible = "allwinner,sunxi-gmac"; - reg = <0x0 0x5030000 0x0 0x10000 0x0 0x3000034 0x0 0x4>; - interrupts = <0x0 0xf 0x4>; - interrupt-names = "gmacirq"; - clocks = <0x2 0x55>; - clock-names = "gmac"; - resets = <0x2 0x20>; - device_type = "gmac1"; - phy-mode = "rmii"; - phy-rst; - gmac-power0; - gmac-power1; - gmac-power2; - status = "disabled"; - pinctrl-0 = <0x60>; - pinctrl-1 = <0x61>; - pinctrl-names = "default", "sleep"; - tx-delay = <0x7>; - rx-delay = <0x1f>; - phandle = <0xbc>; - }; - - usbc0@0 { - device_type = "usbc0"; - compatible = "allwinner,sunxi-otg-manager"; - usb_port_type = <0x0>; - usb_detect_type = <0x1>; - usb_detect_mode = <0x0>; - usb_id_gpio; - usb_det_vbus_gpio; - usb_drv_vbus_gpio; - usb_host_init_state = <0x0>; - usb_regulator_io = "nocare"; - usb_wakeup_suspend = <0x0>; - usb_luns = <0x3>; - usb_serial_unique = <0x0>; - usb_serial_number = "20080411"; - rndis_wceis = <0x1>; - wakeup-source; - status = "okay"; - phandle = <0xbd>; - }; - - udc-controller@5100000 { - compatible = "allwinner,sunxi-udc"; - reg = <0x0 0x5100000 0x0 0x1000 0x0 0x0 0x0 0x100>; - interrupts = <0x0 0x19 0x4>; - interrupt-parent = <0x7>; - clocks = <0x2 0x73 0x2 0x64>; - clock-names = "bus_otg", "phy"; - resets = <0x2 0x34 0x2 0x28>; - reset-names = "otg", "phy"; - phandle = <0xbe>; - }; - - ehci0-controller@5101000 { - compatible = "allwinner,sunxi-ehci0"; - reg = <0x0 0x5101000 0x0 0xfff 0x0 0x0 0x0 0x100 0x0 0x5100000 0x0 0x1000>; - interrupts = <0x0 0x1a 0x4>; - clocks = <0x2 0x6f 0x2 0x64>; - clock-names = "bus_hci", "phy"; - resets = <0x2 0x30 0x2 0x28>; - reset-names = "hci", "phy"; - hci_ctrl_no = <0x0>; - status = "okay"; - phandle = <0xbf>; - }; - - ohci0-controller@5101400 { - compatible = "allwinner,sunxi-ohci0"; - reg = <0x0 0x5101400 0x0 0xfff 0x0 0x0 0x0 0x100 0x0 0x5100000 0x0 0x1000>; - interrupts = <0x0 0x1b 0x4>; - clocks = <0x2 0x6b 0x2 0x63 0x2 0x64>; - clock-names = "bus_hci", "ohci", "phy"; - resets = <0x2 0x2c 0x2 0x28>; - reset-names = "hci", "phy"; - hci_ctrl_no = <0x0>; - status = "okay"; - phandle = <0xc0>; - }; - - usbc1@0 { - device_type = "usbc1"; - usb_drv_vbus_gpio; - usb_host_init_state = <0x1>; - usb_regulatior_io = "nocare"; - usb_wakeup_suspend = <0x0>; - wakeup-source; - usb_regulator_io = "nocare"; - status = "okay"; - phandle = <0xc1>; - }; - - ehci1-controller@5200000 { - compatible = "allwinner,sunxi-ehci1"; - reg = <0x0 0x5200000 0x0 0xfff 0x0 0x0 0x0 0x100 0x0 0x5100000 0x0 0x1000>; - interrupts = <0x0 0x1c 0x4>; - clocks = <0x2 0x70 0x2 0x66>; - clock-names = "bus_hci", "phy"; - resets = <0x2 0x31 0x2 0x29>; - reset-names = "hci", "phy"; - hci_ctrl_no = <0x1>; - drvvbus-supply = <0x62>; - status = "okay"; - phandle = <0xc2>; - }; - - ohci1-controller@5200400 { - compatible = "allwinner,sunxi-ohci1"; - reg = <0x0 0x5200400 0x0 0xfff 0x0 0x0 0x0 0x100 0x0 0x5100000 0x0 0x1000>; - interrupts = <0x0 0x1d 0x4>; - clocks = <0x2 0x6c 0x2 0x65 0x2 0x66>; - clock-names = "bus_hci", "ohci", "phy"; - resets = <0x2 0x2d 0x2 0x29>; - reset-names = "hci", "phy"; - hci_ctrl_no = <0x1>; - drvvbus-supply = <0x62>; - status = "okay"; - phandle = <0xc3>; - }; - - usbc2@0 { - device_type = "usbc2"; - usb_drv_vbus_gpio; - usb_host_init_state = <0x1>; - usb_regulatior_io = "nocare"; - usb_wakeup_suspend = <0x0>; - wakeup-source; - usb_regulator_io = "nocare"; - status = "okay"; - phandle = <0xc4>; - }; - - ehci2-controller@5310000 { - compatible = "allwinner,sunxi-ehci2"; - reg = <0x0 0x5310000 0x0 0xfff 0x0 0x0 0x0 0x100 0x0 0x5100000 0x0 0x1000>; - interrupts = <0x0 0x1e 0x4>; - clocks = <0x2 0x71 0x2 0x68>; - clock-names = "bus_hci", "phy"; - resets = <0x2 0x32 0x2 0x2a>; - reset-names = "hci", "phy"; - hci_ctrl_no = <0x2>; - drvvbus-supply = <0x62>; - status = "okay"; - phandle = <0xc5>; - }; - - ohci2-controller@5310400 { - compatible = "allwinner,sunxi-ohci2"; - reg = <0x0 0x5310400 0x0 0xfff 0x0 0x0 0x0 0x100 0x0 0x5100000 0x0 0x1000>; - interrupts = <0x0 0x1f 0x4>; - clocks = <0x2 0x6d 0x2 0x67 0x2 0x68>; - clock-names = "bus_hci", "ohci", "phy"; - resets = <0x2 0x2e 0x2 0x2a>; - reset-names = "hci", "phy"; - hci_ctrl_no = <0x2>; - drvvbus-supply = <0x62>; - status = "okay"; - phandle = <0xc6>; - }; - - usbc3@0 { - device_type = "usbc3"; - usb_drv_vbus_gpio; - usb_host_init_state = <0x1>; - usb_regulatior_io = "nocare"; - usb_wakeup_suspend = <0x0>; - wakeup-source; - usb_regulator_io = "nocare"; - status = "okay"; - phandle = <0xc7>; - }; - - ehci3-controller@5311000 { - compatible = "allwinner,sunxi-ehci3"; - reg = <0x0 0x5311000 0x0 0xfff 0x0 0x0 0x0 0x100 0x0 0x5100000 0x0 0x1000>; - interrupts = <0x0 0x20 0x4>; - clocks = <0x2 0x72 0x2 0x6a>; - clock-names = "bus_hci", "phy"; - resets = <0x2 0x33 0x2 0x2b>; - reset-names = "hci", "phy"; - hci_ctrl_no = <0x3>; - drvvbus-supply = <0x62>; - status = "okay"; - phandle = <0xc8>; - }; - - ohci3-controller@5311400 { - compatible = "allwinner,sunxi-ohci3"; - reg = <0x0 0x5311400 0x0 0xfff 0x0 0x0 0x0 0x100 0x0 0x5100000 0x0 0x1000>; - interrupts = <0x0 0x21 0x4>; - clocks = <0x2 0x6e 0x2 0x69 0x2 0x6a>; - clock-names = "bus_hci", "ohci", "phy"; - resets = <0x2 0x2f 0x2 0x2b>; - reset-names = "hci", "phy"; - hci_ctrl_no = <0x3>; - drvvbus-supply = <0x62>; - status = "okay"; - phandle = <0xc9>; - }; - - hdmi@6000000 { - compatible = "allwinner,sunxi-hdmi"; - reg = <0x0 0x6000000 0x0 0x100000>; - interrupts = <0x0 0x3f 0x4>; - clocks = <0x2 0x79 0x2 0x75 0x2 0x76 0x2 0x78 0x2 0x8b 0x2 0x8a 0x2 0x7f>; - clock-names = "clk_bus_hdmi", "clk_hdmi", "clk_ddc", "clk_cec", "clk_bus_hdcp", "clk_hdcp", "clk_tcon_tv"; - resets = <0x2 0x37 0x2 0x36 0x2 0x41>; - reset-names = "rst_bus_sub", "rst_bus_main", "rst_bus_hdcp"; - assigned-clocks = <0x2 0x75 0x2 0x8a>; - assigned-clock-parents = <0x2 0xd 0x2 0x6>; - assigned-clock-rates = <0x0 0x0>; - status = "okay"; - hdmi_used = <0x1>; - aldo1-supply = <0x1d>; - dcdc1-supply = <0x63>; - hdmi_power_cnt = <0x2>; - hdmi_power0 = "aldo1"; - hdmi_power1 = "dcdc1"; - hdmi_hdcp_enable = <0x1>; - hdmi_hdcp22_enable = <0x1>; - hdmi_cts_compatibility = <0x0>; - hdmi_cec_support = <0x1>; - hdmi_cec_super_standby = <0x0>; - ddc_en_io_ctrl = <0x0>; - power_io_ctrl = <0x0>; - phandle = <0xca>; - }; - - interrupt-controller@7010320 { - compatible = "allwinner,sun8i-nmi"; - interrupt-controller; - #interrupt-cells = <0x2>; - reg = <0x0 0x7010320 0x0 0xc>; - interrupts = <0x0 0x67 0x4>; - pad-control-v1 = <0x7000208>; - phandle = <0xcb>; - }; - - boot_init_gpio { - device_type = "boot_init_gpio"; - status = "okay"; - gpio0 = <0x53 0x2 0xc 0x1 0xffffffff 0xffffffff 0x1>; - gpio1 = <0x53 0x2 0xd 0x1 0xffffffff 0xffffffff 0x0>; - }; - - s_cir@7040000 { - compatible = "allwinner,s_cir"; - reg = <0x0 0x7040000 0x0 0x400>; - interrupts = <0x0 0x6a 0x4>; - clocks = <0xd 0x8 0xa 0xd 0x7>; - clock-names = "bus", "pclk", "mclk"; - resets = <0xd 0x3>; - status = "okay"; - s_cir0_used = <0x1>; - pinctrl-names = "default", "sleep"; - pinctrl-0 = <0x64>; - pinctrl-1 = <0x65>; - ir_power_key_code0 = <0x40>; - ir_addr_code0 = <0xfe01>; - ir_power_key_code1 = <0x1a>; - ir_addr_code1 = <0xfb04>; - ir_power_key_code2 = <0xf2>; - ir_addr_code2 = <0x2992>; - ir_power_key_code3 = <0x57>; - ir_addr_code3 = <0x9f00>; - ir_power_key_code4 = <0xdc>; - ir_addr_code4 = <0x4cb3>; - ir_power_key_code5 = <0x18>; - ir_addr_code5 = <0xff00>; - ir_power_key_code6 = <0xdc>; - ir_addr_code6 = <0xdd22>; - ir_power_key_code7 = <0xd>; - ir_addr_code7 = <0xbc00>; - ir_power_key_code8 = <0x4d>; - ir_addr_code8 = <0x4040>; - wakeup-source; - phandle = <0xcc>; - }; - - rfkill { - compatible = "allwinner,sunxi-rfkill"; - status = "okay"; - chip_en; - power_en; - pinctrl-0; - pinctrl-names; - clocks; - phandle = <0xcd>; - - wlan { - compatible = "allwinner,sunxi-wlan"; - wlan_busnum = <0x1>; - wlan_power; - wlan_regon = <0x23 0x6 0x12 0x0>; - wlan_hostwake = <0x23 0x6 0xf 0x0>; - wakeup-source; - phandle = <0xce>; - }; - - bt { - compatible = "allwinner,sunxi-bt"; - bt_power; - bt_rst_n = <0x23 0x6 0x13 0x1>; - phandle = <0xcf>; - }; - }; - - addr_mgt { - compatible = "allwinner,sunxi-addr_mgt"; - status = "okay"; - type_addr_wifi = <0x0>; - type_addr_bt = <0x0>; - type_addr_eth = <0x0>; - phandle = <0xd0>; - }; - - btlpm { - compatible = "allwinner,sunxi-btlpm"; - status = "okay"; - uart_index = <0x1>; - bt_wake = <0x23 0x6 0x11 0x0>; - bt_hostwake = <0x23 0x6 0x10 0x0>; - wakeup-source; - phandle = <0xd1>; - }; - - card0_boot_para@2 { - reg = <0x0 0x2 0x0 0x0>; - device_type = "card0_boot_para"; - card_ctrl = <0x0>; - card_high_speed = <0x1>; - card_line = <0x4>; - pinctrl-0 = <0x1e>; - }; - - card2_boot_para@3 { - reg = <0x0 0x3 0x0 0x0>; - device_type = "card2_boot_para"; - card_ctrl = <0x2>; - card_high_speed = <0x1>; - card_line = <0x8>; - pinctrl-0 = <0x19 0x1a>; - sdc_ex_dly_used = <0x2>; - sdc_io_1v8 = <0x1>; - sdc_type = "tm4"; - }; - - pll_video2 { - #clock-cells = <0x0>; - compatible = "allwinner,pll-clock"; - lock-mode = "new"; - assigned-clocks = <0x66>; - clock-output-names = "pll_video2"; - phandle = <0x66>; - }; - - pll_de { - #clock-cells = <0x0>; - compatible = "allwinner,pll-clock"; - assigned-clocks = <0x67>; - assigned-clock-rates = <0x297c1e00>; - lock-mode = "new"; - clock-output-names = "pll_de"; - phandle = <0x67>; - }; - - de { - #clock-cells = <0x0>; - compatible = "allwinner,periph-clock"; - assigned-clock-parents = <0x67>; - assigned-clock-rates = <0x297c1e00>; - assigned-clocks = <0x68>; - clock-output-names = "de"; - phandle = <0x68>; - }; - - display_top { - #clock-cells = <0x0>; - compatible = "allwinner,periph-clock"; - clock-output-names = "display_top"; - phandle = <0x70>; - }; - - tcon_lcd { - #clock-cells = <0x0>; - compatible = "allwinner,periph-clock"; - clock-output-names = "tcon_lcd"; - phandle = <0x71>; - }; - - tcon_lcd1 { - #clock-cells = <0x0>; - compatible = "allwinner,periph-clock"; - clock-output-names = "tcon_lcd1"; - phandle = <0x72>; - }; - - tcon_tv { - #clock-cells = <0x0>; - compatible = "allwinner,periph-clock"; - assigned-clock-parents = <0x66>; - assigned-clocks = <0x69>; - clock-output-names = "tcon_tv"; - phandle = <0x69>; - }; - - tcon_tv1 { - #clock-cells = <0x0>; - compatible = "allwinner,periph-clock"; - clock-output-names = "tcon_tv1"; - phandle = <0x73>; - }; - - lvds { - #clock-cells = <0x0>; - compatible = "allwinner,periph-clock"; - clock-output-names = "lvds"; - assigned-clocks = <0x6a>; - phandle = <0x6a>; - }; - - hdmi { - #clock-cells = <0x0>; - compatible = "allwinner,periph-clock"; - assigned-clock-parents = <0x66>; - assigned-clocks = <0x6b>; - clock-output-names = "hdmi"; - phandle = <0x6b>; - }; - - hdmi_slow { - #clock-cells = <0x0>; - compatible = "allwinner,periph-clock"; - assigned-clocks = <0x6c>; - clock-output-names = "hdmi_slow"; - phandle = <0x6c>; - }; - - hdmi_cec { - #clock-cells = <0x0>; - compatible = "allwinner,periph-clock"; - assigned-clocks = <0x6d>; - clock-output-names = "hdmi_cec"; - phandle = <0x6d>; - }; - - hdmi_hdcp { - #clock-cells = <0x0>; - compatible = "allwinner,periph-clock"; - assigned-clock-parents = <0x6e>; - assigned-clocks = <0x6f>; - clock-output-names = "hdmi_hdcp"; - phandle = <0x6f>; - }; - - pll_periph1 { - #clock-cells = <0x0>; - compatible = "allwinner,pll-clock"; - assigned-clocks = <0x6e>; - assigned-clock-rates = <0x23c34600>; - lock-mode = "new"; - clock-output-names = "pll_periph1"; - phandle = <0x6e>; - }; - - auto_print@54321 { - reg = <0x0 0x54321 0x0 0x0>; - device_type = "auto_print"; - status = "disabled"; - }; - }; - - uboot_disp@1000000 { - compatible = "allwinner,sunxi-disp"; - reg = <0x0 0x1000000 0x0 0x1400000 0x0 0x6510000 0x0 0x200 0x0 0x6511000 0x0 0x1000 0x0 0x6512000 0x0 0x1000 0x0 0x6515000 0x0 0x1000 0x0 0x6516000 0x0 0x1000>; - interrupts = <0x0 0x58 0x4 0x0 0x40 0x4 0x0 0x41 0x4 0x0 0x42 0x4 0x0 0x43 0x4>; - clocks = <0x68 0x70 0x71 0x72 0x69 0x73 0x6a>; - boot_disp = <0x0>; - fb_base = <0x0>; - phandle = <0xd2>; - }; - - uboot_hdmi@6000000 { - compatible = "allwinner,sunxi-hdmi"; - reg = <0x0 0x6000000 0x0 0x100000>; - interrupts = <0x0 0x3f 0x4>; - clocks = <0x6b 0x6c 0x6f 0x6d>; - phandle = <0xd3>; - }; - - thermal-zones { - - cpu_thermal_zone { - polling-delay-passive = <0x1f4>; - polling-delay = <0x3e8>; - thermal-sensors = <0x74 0x2>; - sustainable-power = <0x39f>; - - trips { - phandle = <0xd4>; - - trip-point@0 { - temperature = <0x11170>; - type = "passive"; - hysteresis = <0x0>; - phandle = <0xd5>; - }; - - trip-point@1 { - temperature = <0x15f90>; - type = "passive"; - hysteresis = <0x0>; - phandle = <0x75>; - }; - - cpu_crit@0 { - temperature = <0x1c138>; - type = "critical"; - hysteresis = <0x0>; - phandle = <0xd6>; - }; - }; - - cooling-maps { - - map0 { - trip = <0x75>; - cooling-device = <0x76 0xffffffff 0xffffffff>; - contribution = <0x400>; - }; - - map1 { - trip = <0x75>; - cooling-device = <0x77 0xffffffff 0xffffffff>; - contribution = <0x400>; - }; - }; - }; - - ddr_thermal_zone { - polling-delay-passive = <0x0>; - polling-delay = <0x0>; - thermal-sensors = <0x74 0x3>; - }; - - gpu_thermal_zone { - polling-delay-passive = <0x1f4>; - polling-delay = <0x3e8>; - thermal-sensors = <0x74 0x0>; - sustainable-power = <0x44c>; - }; - - ve_thermal_zone { - polling-delay-passive = <0x0>; - polling-delay = <0x0>; - thermal-sensors = <0x74 0x1>; - }; - }; - - usb0-drvvvbus { - compatible = "regulator-fixed"; - regulator-name = "usb0-drvvbus"; - regulator-min-microvolt = <0x4c4b40>; - regulator-max-microvolt = <0x4c4b40>; - regulator-enable-ramp-delay = <0x3e8>; - gpio = <0x23 0x2 0x10 0x0>; - enable-active-high; - phandle = <0x62>; - }; - - box_start_os0 { - compatible = "allwinner,box_start_os"; - start_type = <0x1>; - irkey_used = <0x0>; - pmukey_used = <0x0>; - pmukey_num = <0x0>; - led_power = <0x0>; - led_state = <0x0>; - }; - - __symbols__ { - cpu0 = "/cpus/cpu@0"; - CPU_SLEEP = "/cpus/idle-states/cpu-sleep"; - cpu_opp_table = "/cpu-opp-table"; - dump_reg = "/dump-reg@20000"; - iosc = "/internal-osc-clk"; - dcxo24M = "/dcxo24M-clk"; - osc32k = "/osc32k-clk"; - gic = "/interrupt-controller@3021000"; - wakeupgen = "/interrupt-controller@0"; - reg_pio1_8 = "/pio-18"; - reg_pio3_3 = "/pio-33"; - dram = "/dram"; - soc = "/soc@3000000"; - disp = "/soc@3000000/disp@1000000"; - ve = "/soc@3000000/ve@1c0e000"; - ve1 = "/soc@3000000/ve1@1c0e000"; - g2d = "/soc@3000000/g2d@1480000"; - di = "/soc@3000000/deinterlace@1420000"; - gpu = "/soc@3000000/gpu@1800000"; - ipa_dvfs = "/soc@3000000/gpu@1800000/ipa_dvfs"; - lcd0 = "/soc@3000000/lcd0@1c0c000"; - tv0 = "/soc@3000000/tv0@6520000"; - ccu = "/soc@3000000/ccu@3001000"; - rtc_ccu = "/soc@3000000/rtc_ccu@7000000"; - rtc = "/soc@3000000/rtc@7000000"; - r_ccu = "/soc@3000000/r_ccu@7010000"; - dma = "/soc@3000000/dma-controller@3002000"; - sram_ctrl = "/soc@3000000/sram_ctrl@3000000"; - speedbin_efuse = "/soc@3000000/sid@3006000/speed@00"; - ths_calib = "/soc@3000000/sid@3006000/calib@14"; - tvout = "/soc@3000000/sid@3006000/tvout@2e"; - i_cpu_efuse = "/soc@3000000/sid@3006000/i-cpu@28"; - cryptoengine = "/soc@3000000/ce@1904000"; - soc_timer0 = "/soc@3000000/timer@3009000"; - wdt = "/soc@3000000/watchdog@30090a0"; - pwm = "/soc@3000000/pwm@300a000"; - pwm0 = "/soc@3000000/pwm0@300a010"; - pwm1 = "/soc@3000000/pwm1@300a011"; - pwm2 = "/soc@3000000/pwm2@300a012"; - pwm3 = "/soc@3000000/pwm3@300a013"; - pwm4 = "/soc@3000000/pwm4@300a014"; - pwm5 = "/soc@3000000/pwm5@300a015"; - ac200 = "/soc@3000000/ac200"; - pio = "/soc@3000000/pinctrl@300b000"; - uart0_ph_pins = "/soc@3000000/pinctrl@300b000/uart0-ph-pins"; - uart0_ph_sleep = "/soc@3000000/pinctrl@300b000/uart0-ph-sleep"; - sdc0_pins_a = "/soc@3000000/pinctrl@300b000/sdc0@0"; - sdc0_pins_b = "/soc@3000000/pinctrl@300b000/sdc0@1"; - sdc0_pins_c = "/soc@3000000/pinctrl@300b000/sdc0@2"; - sdc0_pins_d = "/soc@3000000/pinctrl@300b000/sdc0@3"; - sdc0_pins_e = "/soc@3000000/pinctrl@300b000/sdc0@4"; - sdc1_pins_a = "/soc@3000000/pinctrl@300b000/sdc1@0"; - sdc1_pins_b = "/soc@3000000/pinctrl@300b000/sdc1@1"; - sdc2_pins_a = "/soc@3000000/pinctrl@300b000/sdc2@0"; - sdc2_pins_b = "/soc@3000000/pinctrl@300b000/sdc2@1"; - sdc2_pins_c = "/soc@3000000/pinctrl@300b000/sdc2@2"; - nand0_pins_a = "/soc@3000000/pinctrl@300b000/nand0@0"; - nand0_pins_b = "/soc@3000000/pinctrl@300b000/nand0@1"; - nand0_pins_c = "/soc@3000000/pinctrl@300b000/nand0@2"; - uart1_ph_pins = "/soc@3000000/pinctrl@300b000/uart1-ph-pins"; - uart1_ph_sleep = "/soc@3000000/pinctrl@300b000/uart1-ph-sleep"; - uart2_ph_pins = "/soc@3000000/pinctrl@300b000/uart2-ph-pins"; - uart2_ph_sleep = "/soc@3000000/pinctrl@300b000/uart2-ph-sleep"; - uart3_ph_pins = "/soc@3000000/pinctrl@300b000/uart3-ph-pins"; - uart3_ph_sleep = "/soc@3000000/pinctrl@300b000/uart3-ph-sleep"; - uart4_ph_pins = "/soc@3000000/pinctrl@300b000/uart4-ph-pins"; - uart4_ph_sleep = "/soc@3000000/pinctrl@300b000/uart4-ph-sleep"; - uart5_ph_pins = "/soc@3000000/pinctrl@300b000/uart5-ph-pins"; - uart5_ph_sleep = "/soc@3000000/pinctrl@300b000/uart5-ph-sleep"; - s_cir0_pins_a = "/soc@3000000/pinctrl@300b000/s_cir0@0"; - s_cir0_pins_b = "/soc@3000000/pinctrl@300b000/s_cir0@1"; - twi0_pins_a = "/soc@3000000/pinctrl@300b000/twi0@0"; - twi0_pins_b = "/soc@3000000/pinctrl@300b000/twi0@1"; - twi1_pins_a = "/soc@3000000/pinctrl@300b000/twi1@0"; - twi1_pins_b = "/soc@3000000/pinctrl@300b000/twi1@1"; - twi2_pins_a = "/soc@3000000/pinctrl@300b000/twi2@0"; - twi2_pins_b = "/soc@3000000/pinctrl@300b000/twi2@1"; - twi3_pins_a = "/soc@3000000/pinctrl@300b000/twi3@0"; - twi3_pins_b = "/soc@3000000/pinctrl@300b000/twi3@1"; - twi4_pins_a = "/soc@3000000/pinctrl@300b000/twi4@0"; - twi4_pins_b = "/soc@3000000/pinctrl@300b000/twi4@1"; - spi0_pins_a = "/soc@3000000/pinctrl@300b000/spi0@0"; - spi0_pins_b = "/soc@3000000/pinctrl@300b000/spi0@1"; - spi0_pins_c = "/soc@3000000/pinctrl@300b000/spi0@2"; - spi1_pins_a = "/soc@3000000/pinctrl@300b000/spi1@0"; - spi1_pins_b = "/soc@3000000/pinctrl@300b000/spi1@1"; - spi1_pins_c = "/soc@3000000/pinctrl@300b000/spi1@2"; - gmac0_pins_a = "/soc@3000000/pinctrl@300b000/gmac0@0"; - gmac0_pins_b = "/soc@3000000/pinctrl@300b000/gmac0@1"; - gmac1_pins_a = "/soc@3000000/pinctrl@300b000/gmac1@0"; - gmac1_pins_b = "/soc@3000000/pinctrl@300b000/gmac1@1"; - pwm5_pin_a = "/soc@3000000/pinctrl@300b000/pwm5@0"; - pwm5_pin_b = "/soc@3000000/pinctrl@300b000/pwm5@1"; - spdif_pins_a = "/soc@3000000/pinctrl@300b000/spdif@0"; - spdif_pins_b = "/soc@3000000/pinctrl@300b000/spdif_sleep@0"; - ahub_daudio0_pins_a = "/soc@3000000/pinctrl@300b000/ahub_daudio0@0"; - ahub_daudio0_pins_b = "/soc@3000000/pinctrl@300b000/ahub_daudio0_sleep@0"; - ahub_daudio2_pins_a = "/soc@3000000/pinctrl@300b000/ahub_daudio2@0"; - ahub_daudio2_pins_b = "/soc@3000000/pinctrl@300b000/ahub_daudio2@1"; - ahub_daudio2_pins_c = "/soc@3000000/pinctrl@300b000/ahub_daudio2@2"; - ahub_daudio2_pins_d = "/soc@3000000/pinctrl@300b000/ahub_daudio2_sleep@0"; - ahub_daudio3_pins_a = "/soc@3000000/pinctrl@300b000/ahub_daudio3@0"; - ahub_daudio3_pins_b = "/soc@3000000/pinctrl@300b000/ahub_daudio3@1"; - ahub_daudio3_pins_c = "/soc@3000000/pinctrl@300b000/ahub_daudio3@2"; - ahub_daudio3_pins_d = "/soc@3000000/pinctrl@300b000/ahub_daudio3_sleep@0"; - standby_red = "/soc@3000000/pinctrl@300b000/standby@0"; - standby_blue = "/soc@3000000/pinctrl@300b000/standby@1"; - standby_bt = "/soc@3000000/pinctrl@300b000/standby@2"; - r_pio = "/soc@3000000/pinctrl@7022000"; - s_twi0_pins_a = "/soc@3000000/pinctrl@7022000/s_twi0@0"; - s_twi0_pins_b = "/soc@3000000/pinctrl@7022000/s_twi0@1"; - mmu_aw = "/soc@3000000/iommu@30f0000"; - sdc2 = "/soc@3000000/sdmmc@4022000"; - sdc0 = "/soc@3000000/sdmmc@4020000"; - sdc1 = "/soc@3000000/sdmmc@4021000"; - nand0 = "/soc@3000000/nand0@4011000"; - mbus0 = "/soc@3000000/mbus-controller@47fa000"; - uart0 = "/soc@3000000/uart@5000000"; - uart1 = "/soc@3000000/uart@5000400"; - uart2 = "/soc@3000000/uart@5000800"; - uart3 = "/soc@3000000/uart@5000c00"; - uart4 = "/soc@3000000/uart@5001000"; - uart5 = "/soc@3000000/uart@5001400"; - twi0 = "/soc@3000000/twi@5002000"; - twi1 = "/soc@3000000/twi@5002400"; - twi2 = "/soc@3000000/twi@5002800"; - twi3 = "/soc@3000000/twi@5002c00"; - twi4 = "/soc@3000000/twi@5003000"; - twi5 = "/soc@3000000/twi@7081400"; - pmu0 = "/soc@3000000/twi@7081400/pmu"; - standby_param = "/soc@3000000/twi@7081400/pmu/standby_param"; - reg_dcdc1 = "/soc@3000000/twi@7081400/pmu/regulators/dcdc1"; - reg_dcdc2 = "/soc@3000000/twi@7081400/pmu/regulators/dcdc2"; - reg_dcdc3 = "/soc@3000000/twi@7081400/pmu/regulators/dcdc3"; - reg_aldo1 = "/soc@3000000/twi@7081400/pmu/regulators/ldo1"; - reg_dldo1 = "/soc@3000000/twi@7081400/pmu/regulators/ldo2"; - spi0 = "/soc@3000000/spi@5010000"; - spi1 = "/soc@3000000/spi@5011000"; - ths = "/soc@3000000/thermal-sensor@5070400"; - gpadc = "/soc@3000000/gpadc@5070000"; - keyboard = "/soc@3000000/keyboard@5070800"; - codec = "/soc@3000000/codec@5096000"; - codec_plat = "/soc@3000000/codec_plat"; - codec_mach = "/soc@3000000/codec_mach"; - spdif_plat = "/soc@3000000/spdif_plat@5093000"; - spdif_mach = "/soc@3000000/spdif_mach"; - ahub_dam_plat = "/soc@3000000/ahub_dam_plat@5097000"; - ahub_dam_mach = "/soc@3000000/ahub_dam_mach"; - ahub0_plat = "/soc@3000000/ahub0_plat"; - ahub1_plat = "/soc@3000000/ahub1_plat"; - ahub2_plat = "/soc@3000000/ahub2_plat"; - ahub3_plat = "/soc@3000000/ahub3_plat"; - ahub0_mach = "/soc@3000000/ahub0_mach"; - ahub0_cpu = "/soc@3000000/ahub0_mach/soundcard-mach,cpu"; - ahub0_codec = "/soc@3000000/ahub0_mach/soundcard-mach,codec"; - ahub1_mach = "/soc@3000000/ahub1_mach"; - ahub1_cpu = "/soc@3000000/ahub1_mach/soundcard-mach,cpu"; - ahub1_codec = "/soc@3000000/ahub1_mach/soundcard-mach,codec"; - ahub2_mach = "/soc@3000000/ahub2_mach"; - ahub2_cpu = "/soc@3000000/ahub2_mach/soundcard-mach,cpu"; - ahub2_codec = "/soc@3000000/ahub2_mach/soundcard-mach,codec"; - ahub3_mach = "/soc@3000000/ahub3_mach"; - ahub3_cpu = "/soc@3000000/ahub3_mach/soundcard-mach,cpu"; - ahub3_codec = "/soc@3000000/ahub3_mach/soundcard-mach,codec"; - spdif = "/soc@3000000/spdif@5094000"; - soundspdif = "/soc@3000000/soundspdif"; - dmic = "/soc@3000000/dmic@5095000"; - dmic_codec = "/soc@3000000/dmic_codec"; - sounddmic = "/soc@3000000/sounddmic"; - gpio_para = "/soc@3000000/gpio_para"; - gmac0 = "/soc@3000000/eth@5020000"; - gmac1 = "/soc@3000000/eth@5030000"; - usbc0 = "/soc@3000000/usbc0@0"; - udc = "/soc@3000000/udc-controller@5100000"; - ehci0 = "/soc@3000000/ehci0-controller@5101000"; - ohci0 = "/soc@3000000/ohci0-controller@5101400"; - usbc1 = "/soc@3000000/usbc1@0"; - ehci1 = "/soc@3000000/ehci1-controller@5200000"; - ohci1 = "/soc@3000000/ohci1-controller@5200400"; - usbc2 = "/soc@3000000/usbc2@0"; - ehci2 = "/soc@3000000/ehci2-controller@5310000"; - ohci2 = "/soc@3000000/ohci2-controller@5310400"; - usbc3 = "/soc@3000000/usbc3@0"; - ehci3 = "/soc@3000000/ehci3-controller@5311000"; - ohci3 = "/soc@3000000/ohci3-controller@5311400"; - hdmi = "/soc@3000000/hdmi@6000000"; - nmi_intc = "/soc@3000000/interrupt-controller@7010320"; - s_cir0 = "/soc@3000000/s_cir@7040000"; - rfkill = "/soc@3000000/rfkill"; - wlan = "/soc@3000000/rfkill/wlan"; - bt = "/soc@3000000/rfkill/bt"; - addr_mgt = "/soc@3000000/addr_mgt"; - btlpm = "/soc@3000000/btlpm"; - clk_pll_video2 = "/soc@3000000/pll_video2"; - clk_pll_de = "/soc@3000000/pll_de"; - clk_de = "/soc@3000000/de"; - clk_display_top = "/soc@3000000/display_top"; - clk_tcon_lcd = "/soc@3000000/tcon_lcd"; - clk_tcon_lcd1 = "/soc@3000000/tcon_lcd1"; - clk_tcon_tv = "/soc@3000000/tcon_tv"; - clk_tcon_tv1 = "/soc@3000000/tcon_tv1"; - clk_lvds = "/soc@3000000/lvds"; - clk_hdmi = "/soc@3000000/hdmi"; - clk_hdmi_slow = "/soc@3000000/hdmi_slow"; - clk_hdmi_cec = "/soc@3000000/hdmi_cec"; - clk_hdmi_hdcp = "/soc@3000000/hdmi_hdcp"; - clk_pll_periph1 = "/soc@3000000/pll_periph1"; - uboot_disp = "/uboot_disp@1000000"; - uboot_hdmi = "/uboot_hdmi@6000000"; - cpu_trips = "/thermal-zones/cpu_thermal_zone/trips"; - cpu_threshold = "/thermal-zones/cpu_thermal_zone/trips/trip-point@0"; - cpu_target = "/thermal-zones/cpu_thermal_zone/trips/trip-point@1"; - cpu_crit = "/thermal-zones/cpu_thermal_zone/trips/cpu_crit@0"; - usb0_drvvbus = "/usb0-drvvvbus"; - }; -}; diff --git a/external/packages/pack-uboot/sun50iw9/bin/sys_config/sys_config_orangepizero2w.fex b/external/packages/pack-uboot/sun50iw9/bin/sys_config/sys_config_orangepizero2w.fex new file mode 100755 index 0000000..c2a4ae5 --- /dev/null +++ b/external/packages/pack-uboot/sun50iw9/bin/sys_config/sys_config_orangepizero2w.fex @@ -0,0 +1,845 @@ +;sunxi platform application +;--------------------------------------------------------------------------------------------------------- +; 说明: 脚本中的字符串区分大小写,用户可以修改"="后面的数值,但是不要修改前面的字符串 +; 描述gpio的形式:Port:端口+组内序号<功能分配><内部电阻状态><驱动能力><输出电平状态> +;--------------------------------------------------------------------------------------------------------- + +[product] +version = "100" +machine = "orangepizero3" + +[platform] +eraseflag = 1 +debug_mode = 3 + +;---------------------------------------------------------------------------------- +;[target] system bootup configuration +;boot_clock = CPU boot frequency, Unit: MHz +;storage_type = boot medium, 0-nand, 1-card0, 2-card2, -1(defualt)auto scan +;advert_enable = 0-close advert logo 1-open advert logo (只有多核启动下有效) +;---------------------------------------------------------------------------------- +[target] +boot_clock = 1008 +storage_type = -1 +advert_enable = 0 +burn_key = 1 +dragonboard_test= 0 + +;---------------------------------------------------------------------------------- +; system configuration +; ? +;dcdc2_vol ---set dcdc2 voltage,mV,500-1200,10mV/step +; 1220-1540,20mV/step +;aldo1_vol ---set aldo1 voltage,mV,500-3500,100mV/step +;dldo1_vol ---set dldo1 voltage,mV,500-3500,100mV/step +;---------------------------------------------------------------------------------- +[power_sply] +dcdc2_vol = 1001000 +aldo1_vol = 1001800 +dldo1_vol = 1003300 +cldo1_vol = 1001800 + +[axp1530_power_sply] +dcdc2_vol = 1001000 +aldo1_vol = 1001800 +dldo1_vol = 1003300 +cldo1_vol = 1001800 + +[axp806_power_sply] +dcdce_vol = 1003300 +;dcdcd_vol = 1001110 +aldo1_vol = 1003300 +bldo1_vol = 1001800 +bldo2_vol = 1001800 +cldo1_vol = 1001800 + +[card_boot] +logical_start = 40960 +sprite_gpio0 = + +;---------------------------------------------------------------------------------- +; ir_boot_recovery_used : 1: used this function 0: not used +; ir_work_mode : 模式选择 +; 0: 刷机, +; 1: 一键恢复(uboot阶段), +; 2: 安卓recovery, +; 3: 安卓恢复出厂设置. +; 如果不设置,默认为安卓recovery . +; ir_press_times : ir遥控器连续按几次才生效,如果不设置默认为按1次生效 +; ir_detect_time : ir遥控检测时间,单位:ms,如果不设置默认为3000ms +; ir_key_no_duplicate : ir遥控按键是否可重复,0:可重复(默认),1:不可重复; +; 不可重复表示一个按键无论被按下几次,都只算ir_press_times的一次; +; 不可重复的应用场景为组合按键功能,如:交替按下'菜单键'和'音量-键'进入安卓recovery. +; ir_recovery_key_code0 : ir check key code +; ir_addr_code0 : ir key addr +; you can increase ir support num, like: +; ir_recovery_key_code1, or 2, 3, but limit to 16 +;---------------------------------------------------------------------------------- + +[ir_boot_recovery] +ir_boot_recovery_used = 1 +ir_work_mode = 1 +ir_press_times = 2 +ir_detect_time = 1 +ir_key_no_duplicate = 0 +ir_recovery_key_code0 = 0x11 +ir_addr_code0 = 0xfe01 +ir_recovery_key_code1 = 0x19 +ir_addr_code1 = 0xfe01 +ir_recovery_key_code2 = 0x4c +ir_addr_code2 = 0xfe01 +ir_recovery_key_code3 = 0x00 +ir_addr_code3 = 0xfe01 + + +;---------------------------------------------------------------------------------- +; recovery_key_used : 模块使能端, 1:开启,0:关闭 +; press_mode_enable : 长短按模式使能,1:开启,0:关闭 +; a)如果开启了该模式,则key_work_mode失效,short_press_mode和long_press_mode生>效, + ; recovery按键可以通过长按和短按来触发两种不同的模式; +; b)如果关闭了该模式,则key_work_mode生效,recovery按键只能触发一种模式. +; key_work_mode : 模式选择 +; 0: 刷机, +; 1: 一键恢复(uboot阶段), +; 2: 安卓recovery, +; 3: 安卓恢复出厂设置. +; 如果不设置,模式为安卓recovery. +; short_press_mode : 长按触发的模式,选项同上. +; long_press_mode : 短按触发的模式,选项同上. +; key_press_time : 定义长按的时间,单位:毫秒. +; recovery_key : 按键配置. +;---------------------------------------------------------------------------------- +[key_boot_recovery] +recovery_key_used = 1 +press_mode_enable = 0 +key_work_mode = 0 +short_press_mode = 0 +long_press_mode = 1 +key_press_time = 2000 +recovery_key = + + +;--------------------------------------------------------------------------------------------------------- +; if 1 == standby_mode, then support super standby; +; else, support normal standby. +;--------------------------------------------------------------------------------------------------------- +[pm_para] +standby_mode = 1 + +[card0_boot_para] +card_ctrl = 0 +card_high_speed = 1 +card_line = 4 +sdc_d1 = port:PF0<2><1><3> +sdc_d0 = port:PF1<2><1><3> +sdc_clk = port:PF2<2><1><3> +sdc_cmd = port:PF3<2><1><3> +sdc_d3 = port:PF4<2><1><3> +sdc_d2 = port:PF5<2><1><3> +;sdc_type = "tm1" + +[card2_boot_para] +card_ctrl = 2 +card_high_speed = 1 +card_line = 8 +sdc_clk = port:PC5<3><1><3> +sdc_cmd = port:PC6<3><1><3> +sdc_d0 = port:PC10<3><1><3> +sdc_d1 = port:PC13<3><1><3> +sdc_d2 = port:PC15<3><1><3> +sdc_d3 = port:PC8<3><1><3> +sdc_d4 = port:PC9<3><1><3> +sdc_d5 = port:PC11<3><1><3> +sdc_d6 = port:PC14<3><1><3> +sdc_d7 = port:PC16<3><1><3> +sdc_emmc_rst = port:PC1<3><1><3> +sdc_ds = port:PC0<3><2><3> +sdc_ex_dly_used = 2 +sdc_io_1v8 = 1 +;sdc_dis_host_caps = 0x100 +;sdc_type = "tm4" + +[gpio_bias] +pc_bias = 1800 + +[twi_para] +twi_port = 0 +twi_scl = port:PH14<2> +twi_sda = port:PH15<2> + +[auto_print] +auto_print_used = 1 + +[uart_para] +uart_debug_port = 0 +uart_debug_tx = port:PH00<2><1> +uart_debug_rx = port:PH01<2><1> + +[jtag_para] +jtag_enable = 0 +jtag_ms = port:PH9<3> +jtag_ck = port:PH10<3> +jtag_do = port:PH11<3> +jtag_di = port:PH12<3> + +[clock] +pll4 = 300 +pll6 = 600 +pll8 = 360 +pll9 = 297 +pll10 = 264 + +;***************************************************************************** +; +;dram select configuration +; +;select_mode : dram模式选择, 0:不进行自动识别 +; 1:gpio识别模式(dram_para, dram_para1-15, 共16组有效) +; 2:gpadc识别模式(dram_para, dram_para1-7, 共8组有效) +; 3:1个IO+gpadc识别模式(dram_para, dram_para1-15, 共16组有效)。其中IO配置优先级按select_gpio0>select_gpio1>select_gpio2>select_gpio3 +;gpadc_channel : 选择gpadc通道 有效值(0-3) +;select_gpio1-4 : 选择gpio pin +;***************************************************************************** + + +[dram_select_para] +select_mode = 0 +gpadc_channel = 1 +select_gpio0 = +select_gpio1 = +select_gpio2 = +select_gpio3 = + +;***************************************************************************** +;sdram configuration +; +;***************************************************************************** +[dram_para] +dram_clk = 792 +dram_type = 8 +dram_dx_odt = 0x07070707 +dram_dx_dri = 0x0e0e0e0e +dram_ca_dri = 0x0e0e +dram_odt_en = 0xaaaaeeee +dram_para1 = 0x30fa +dram_para2 = 0x0000 +dram_mr0 = 0x0 +dram_mr1 = 0x34 +dram_mr2 = 0x1b +dram_mr3 = 0x33 +dram_mr4 = 0x3 +dram_mr5 = 0x0 +dram_mr6 = 0x0 +dram_mr11 = 0x4 +dram_mr12 = 0x72 +dram_mr13 = 0x0 +dram_mr14 = 0x9 +dram_mr16 = 0x0 +dram_mr17 = 0x0 +dram_mr22 = 0x24 +dram_tpr0 = 0x0 +dram_tpr1 = 0x0 +dram_tpr2 = 0x0 +dram_tpr3 = 0x0 +dram_tpr6 = 0x35808080 +dram_tpr10 = 0x402f6663 +dram_tpr11 = 0x36363535 +dram_tpr12 = 0x10101110 +dram_tpr13 = 0x2080C60 + +[dram_para1] + +dram_clk = 720 +dram_type = 3 +dram_dx_odt = 0x08080808 +dram_dx_dri = 0x0e0e0e0e +dram_ca_dri = 0x0e0e +dram_odt_en = 1 +dram_para1 = 0x30FA +dram_para2 = 0x1000 +dram_mr0 = 0x840 +dram_mr1 = 0x4 +dram_mr2 = 0x8 +dram_mr3 = 0x0 +dram_mr4 = 0x0 +dram_mr5 = 0x0 +dram_mr6 = 0x0 +dram_mr11 = 0x0 +dram_mr12 = 0x0 +dram_mr13 = 0x0 +dram_mr14 = 0x0 +dram_mr16 = 0x0 +dram_mr17 = 0x0 +dram_mr22 = 0x0 +dram_tpr0 = 0x0 +dram_tpr1 = 0x0 +dram_tpr2 = 0x0 +dram_tpr3 = 0x0 +dram_tpr6 = 0x33808080 +dram_tpr10 = 0x00f83438 +dram_tpr11 = 0x0 +dram_tpr12 = 0x0 +dram_tpr13 = 0x40 + +[dram_para2] + +dram_clk = 720 +dram_type = 3 +dram_dx_odt = 0x08080808 +dram_dx_dri = 0x0e0e0e0e +dram_ca_dri = 0x0e0e +dram_odt_en = 1 +dram_para1 = 0x30FA +dram_para2 = 0x1000 +dram_mr0 = 0x840 +dram_mr1 = 0x4 +dram_mr2 = 0x8 +dram_mr3 = 0x0 +dram_mr4 = 0x0 +dram_mr5 = 0x0 +dram_mr6 = 0x0 +dram_mr11 = 0x0 +dram_mr12 = 0x0 +dram_mr13 = 0x0 +dram_mr14 = 0x0 +dram_mr16 = 0x0 +dram_mr17 = 0x0 +dram_mr22 = 0x0 +dram_tpr0 = 0x0 +dram_tpr1 = 0x0 +dram_tpr2 = 0x0 +dram_tpr3 = 0x0 +dram_tpr6 = 0x33808080 +dram_tpr10 = 0x00f83438 +dram_tpr11 = 0x0 +dram_tpr12 = 0x0 +dram_tpr13 = 0x40 + +[dram_para3] + +dram_clk = 720 +dram_type = 3 +dram_dx_odt = 0x08080808 +dram_dx_dri = 0x0e0e0e0e +dram_ca_dri = 0x0e0e +dram_odt_en = 1 +dram_para1 = 0x30FA +dram_para2 = 0x1000 +dram_mr0 = 0x840 +dram_mr1 = 0x4 +dram_mr2 = 0x8 +dram_mr3 = 0x0 +dram_mr4 = 0x0 +dram_mr5 = 0x0 +dram_mr6 = 0x0 +dram_mr11 = 0x0 +dram_mr12 = 0x0 +dram_mr13 = 0x0 +dram_mr14 = 0x0 +dram_mr16 = 0x0 +dram_mr17 = 0x0 +dram_mr22 = 0x0 +dram_tpr0 = 0x0 +dram_tpr1 = 0x0 +dram_tpr2 = 0x0 +dram_tpr3 = 0x0 +dram_tpr6 = 0x33808080 +dram_tpr10 = 0x00f83438 +dram_tpr11 = 0x0 +dram_tpr12 = 0x0 +dram_tpr13 = 0x40 + +[dram_para4] + +dram_clk = 720 +dram_type = 3 +dram_dx_odt = 0x08080808 +dram_dx_dri = 0x0e0e0e0e +dram_ca_dri = 0x0e0e +dram_odt_en = 1 +dram_para1 = 0x30FA +dram_para2 = 0x1000 +dram_mr0 = 0x840 +dram_mr1 = 0x4 +dram_mr2 = 0x8 +dram_mr3 = 0x0 +dram_mr4 = 0x0 +dram_mr5 = 0x0 +dram_mr6 = 0x0 +dram_mr11 = 0x0 +dram_mr12 = 0x0 +dram_mr13 = 0x0 +dram_mr14 = 0x0 +dram_mr16 = 0x0 +dram_mr17 = 0x0 +dram_mr22 = 0x0 +dram_tpr0 = 0x0 +dram_tpr1 = 0x0 +dram_tpr2 = 0x0 +dram_tpr3 = 0x0 +dram_tpr6 = 0x33808080 +dram_tpr10 = 0x00f83438 +dram_tpr11 = 0x0 +dram_tpr12 = 0x0 +dram_tpr13 = 0x40 + +[dram_para5] + +dram_clk = 720 +dram_type = 3 +dram_dx_odt = 0x08080808 +dram_dx_dri = 0x0e0e0e0e +dram_ca_dri = 0x0e0e +dram_odt_en = 1 +dram_para1 = 0x30FA +dram_para2 = 0x1000 +dram_mr0 = 0x840 +dram_mr1 = 0x4 +dram_mr2 = 0x8 +dram_mr3 = 0x0 +dram_mr4 = 0x0 +dram_mr5 = 0x0 +dram_mr6 = 0x0 +dram_mr11 = 0x0 +dram_mr12 = 0x0 +dram_mr13 = 0x0 +dram_mr14 = 0x0 +dram_mr16 = 0x0 +dram_mr17 = 0x0 +dram_mr22 = 0x0 +dram_tpr0 = 0x0 +dram_tpr1 = 0x0 +dram_tpr2 = 0x0 +dram_tpr3 = 0x0 +dram_tpr6 = 0x33808080 +dram_tpr10 = 0x00f83438 +dram_tpr11 = 0x0 +dram_tpr12 = 0x0 +dram_tpr13 = 0x40 + +[dram_para6] + +dram_clk = 720 +dram_type = 3 +dram_dx_odt = 0x08080808 +dram_dx_dri = 0x0e0e0e0e +dram_ca_dri = 0x0e0e +dram_odt_en = 1 +dram_para1 = 0x30FA +dram_para2 = 0x1000 +dram_mr0 = 0x840 +dram_mr1 = 0x4 +dram_mr2 = 0x8 +dram_mr3 = 0x0 +dram_mr4 = 0x0 +dram_mr5 = 0x0 +dram_mr6 = 0x0 +dram_mr11 = 0x0 +dram_mr12 = 0x0 +dram_mr13 = 0x0 +dram_mr14 = 0x0 +dram_mr16 = 0x0 +dram_mr17 = 0x0 +dram_mr22 = 0x0 +dram_tpr0 = 0x0 +dram_tpr1 = 0x0 +dram_tpr2 = 0x0 +dram_tpr3 = 0x0 +dram_tpr6 = 0x33808080 +dram_tpr10 = 0x00f83438 +dram_tpr11 = 0x0 +dram_tpr12 = 0x0 +dram_tpr13 = 0x40 + +[dram_para7] + +dram_clk = 720 +dram_type = 3 +dram_dx_odt = 0x08080808 +dram_dx_dri = 0x0e0e0e0e +dram_ca_dri = 0x0e0e +dram_odt_en = 1 +dram_para1 = 0x30FA +dram_para2 = 0x1000 +dram_mr0 = 0x840 +dram_mr1 = 0x4 +dram_mr2 = 0x8 +dram_mr3 = 0x0 +dram_mr4 = 0x0 +dram_mr5 = 0x0 +dram_mr6 = 0x0 +dram_mr11 = 0x0 +dram_mr12 = 0x0 +dram_mr13 = 0x0 +dram_mr14 = 0x0 +dram_mr16 = 0x0 +dram_mr17 = 0x0 +dram_mr22 = 0x0 +dram_tpr0 = 0x0 +dram_tpr1 = 0x0 +dram_tpr2 = 0x0 +dram_tpr3 = 0x0 +dram_tpr6 = 0x33808080 +dram_tpr10 = 0x00f83438 +dram_tpr11 = 0x0 +dram_tpr12 = 0x0 +dram_tpr13 = 0x40 + +[dram_para8] + +dram_clk = 720 +dram_type = 3 +dram_dx_odt = 0x08080808 +dram_dx_dri = 0x0e0e0e0e +dram_ca_dri = 0x0e0e +dram_odt_en = 1 +dram_para1 = 0x30FA +dram_para2 = 0x1000 +dram_mr0 = 0x840 +dram_mr1 = 0x4 +dram_mr2 = 0x8 +dram_mr3 = 0x0 +dram_mr4 = 0x0 +dram_mr5 = 0x0 +dram_mr6 = 0x0 +dram_mr11 = 0x0 +dram_mr12 = 0x0 +dram_mr13 = 0x0 +dram_mr14 = 0x0 +dram_mr16 = 0x0 +dram_mr17 = 0x0 +dram_mr22 = 0x0 +dram_tpr0 = 0x0 +dram_tpr1 = 0x0 +dram_tpr2 = 0x0 +dram_tpr3 = 0x0 +dram_tpr6 = 0x33808080 +dram_tpr10 = 0x00f83438 +dram_tpr11 = 0x0 +dram_tpr12 = 0x0 +dram_tpr13 = 0x40 + +[dram_para9] + +dram_clk = 720 +dram_type = 3 +dram_dx_odt = 0x08080808 +dram_dx_dri = 0x0e0e0e0e +dram_ca_dri = 0x0e0e +dram_odt_en = 1 +dram_para1 = 0x30FA +dram_para2 = 0x1000 +dram_mr0 = 0x840 +dram_mr1 = 0x4 +dram_mr2 = 0x8 +dram_mr3 = 0x0 +dram_mr4 = 0x0 +dram_mr5 = 0x0 +dram_mr6 = 0x0 +dram_mr11 = 0x0 +dram_mr12 = 0x0 +dram_mr13 = 0x0 +dram_mr14 = 0x0 +dram_mr16 = 0x0 +dram_mr17 = 0x0 +dram_mr22 = 0x0 +dram_tpr0 = 0x0 +dram_tpr1 = 0x0 +dram_tpr2 = 0x0 +dram_tpr3 = 0x0 +dram_tpr6 = 0x33808080 +dram_tpr10 = 0x00f83438 +dram_tpr11 = 0x0 +dram_tpr12 = 0x0 +dram_tpr13 = 0x40 + +[dram_para10] + +dram_clk = 720 +dram_type = 3 +dram_dx_odt = 0x08080808 +dram_dx_dri = 0x0e0e0e0e +dram_ca_dri = 0x0e0e +dram_odt_en = 1 +dram_para1 = 0x30FA +dram_para2 = 0x1000 +dram_mr0 = 0x840 +dram_mr1 = 0x4 +dram_mr2 = 0x8 +dram_mr3 = 0x0 +dram_mr4 = 0x0 +dram_mr5 = 0x0 +dram_mr6 = 0x0 +dram_mr11 = 0x0 +dram_mr12 = 0x0 +dram_mr13 = 0x0 +dram_mr14 = 0x0 +dram_mr16 = 0x0 +dram_mr17 = 0x0 +dram_mr22 = 0x0 +dram_tpr0 = 0x0 +dram_tpr1 = 0x0 +dram_tpr2 = 0x0 +dram_tpr3 = 0x0 +dram_tpr6 = 0x33808080 +dram_tpr10 = 0x00f83438 +dram_tpr11 = 0x0 +dram_tpr12 = 0x0 +dram_tpr13 = 0x40 + +[dram_para11] + +dram_clk = 720 +dram_type = 3 +dram_dx_odt = 0x08080808 +dram_dx_dri = 0x0e0e0e0e +dram_ca_dri = 0x0e0e +dram_odt_en = 1 +dram_para1 = 0x30FA +dram_para2 = 0x1000 +dram_mr0 = 0x840 +dram_mr1 = 0x4 +dram_mr2 = 0x8 +dram_mr3 = 0x0 +dram_mr4 = 0x0 +dram_mr5 = 0x0 +dram_mr6 = 0x0 +dram_mr11 = 0x0 +dram_mr12 = 0x0 +dram_mr13 = 0x0 +dram_mr14 = 0x0 +dram_mr16 = 0x0 +dram_mr17 = 0x0 +dram_mr22 = 0x0 +dram_tpr0 = 0x0 +dram_tpr1 = 0x0 +dram_tpr2 = 0x0 +dram_tpr3 = 0x0 +dram_tpr6 = 0x33808080 +dram_tpr10 = 0x00f83438 +dram_tpr11 = 0x0 +dram_tpr12 = 0x0 +dram_tpr13 = 0x40 + +[dram_para12] + +dram_clk = 720 +dram_type = 3 +dram_dx_odt = 0x08080808 +dram_dx_dri = 0x0e0e0e0e +dram_ca_dri = 0x0e0e +dram_odt_en = 1 +dram_para1 = 0x30FA +dram_para2 = 0x1000 +dram_mr0 = 0x840 +dram_mr1 = 0x4 +dram_mr2 = 0x8 +dram_mr3 = 0x0 +dram_mr4 = 0x0 +dram_mr5 = 0x0 +dram_mr6 = 0x0 +dram_mr11 = 0x0 +dram_mr12 = 0x0 +dram_mr13 = 0x0 +dram_mr14 = 0x0 +dram_mr16 = 0x0 +dram_mr17 = 0x0 +dram_mr22 = 0x0 +dram_tpr0 = 0x0 +dram_tpr1 = 0x0 +dram_tpr2 = 0x0 +dram_tpr3 = 0x0 +dram_tpr6 = 0x33808080 +dram_tpr10 = 0x00f83438 +dram_tpr11 = 0x0 +dram_tpr12 = 0x0 +dram_tpr13 = 0x40 + +[dram_para13] + +dram_clk = 720 +dram_type = 3 +dram_dx_odt = 0x08080808 +dram_dx_dri = 0x0e0e0e0e +dram_ca_dri = 0x0e0e +dram_odt_en = 1 +dram_para1 = 0x30FA +dram_para2 = 0x1000 +dram_mr0 = 0x840 +dram_mr1 = 0x4 +dram_mr2 = 0x8 +dram_mr3 = 0x0 +dram_mr4 = 0x0 +dram_mr5 = 0x0 +dram_mr6 = 0x0 +dram_mr11 = 0x0 +dram_mr12 = 0x0 +dram_mr13 = 0x0 +dram_mr14 = 0x0 +dram_mr16 = 0x0 +dram_mr17 = 0x0 +dram_mr22 = 0x0 +dram_tpr0 = 0x0 +dram_tpr1 = 0x0 +dram_tpr2 = 0x0 +dram_tpr3 = 0x0 +dram_tpr6 = 0x33808080 +dram_tpr10 = 0x00f83438 +dram_tpr11 = 0x0 +dram_tpr12 = 0x0 +dram_tpr13 = 0x40 + +[dram_para14] + +dram_clk = 720 +dram_type = 3 +dram_dx_odt = 0x08080808 +dram_dx_dri = 0x0e0e0e0e +dram_ca_dri = 0x0e0e +dram_odt_en = 1 +dram_para1 = 0x30FA +dram_para2 = 0x1000 +dram_mr0 = 0x840 +dram_mr1 = 0x4 +dram_mr2 = 0x8 +dram_mr3 = 0x0 +dram_mr4 = 0x0 +dram_mr5 = 0x0 +dram_mr6 = 0x0 +dram_mr11 = 0x0 +dram_mr12 = 0x0 +dram_mr13 = 0x0 +dram_mr14 = 0x0 +dram_mr16 = 0x0 +dram_mr17 = 0x0 +dram_mr22 = 0x0 +dram_tpr0 = 0x0 +dram_tpr1 = 0x0 +dram_tpr2 = 0x0 +dram_tpr3 = 0x0 +dram_tpr6 = 0x33808080 +dram_tpr10 = 0x00f83438 +dram_tpr11 = 0x0 +dram_tpr12 = 0x0 +dram_tpr13 = 0x40 + +[dram_para15] + +dram_clk = 720 +dram_type = 3 +dram_dx_odt = 0x08080808 +dram_dx_dri = 0x0e0e0e0e +dram_ca_dri = 0x0e0e +dram_odt_en = 1 +dram_para1 = 0x30FA +dram_para2 = 0x1000 +dram_mr0 = 0x840 +dram_mr1 = 0x4 +dram_mr2 = 0x8 +dram_mr3 = 0x0 +dram_mr4 = 0x0 +dram_mr5 = 0x0 +dram_mr6 = 0x0 +dram_mr11 = 0x0 +dram_mr12 = 0x0 +dram_mr13 = 0x0 +dram_mr14 = 0x0 +dram_mr16 = 0x0 +dram_mr17 = 0x0 +dram_mr22 = 0x0 +dram_tpr0 = 0x0 +dram_tpr1 = 0x0 +dram_tpr2 = 0x0 +dram_tpr3 = 0x0 +dram_tpr6 = 0x33808080 +dram_tpr10 = 0x00f83438 +dram_tpr11 = 0x0 +dram_tpr12 = 0x0 +dram_tpr13 = 0x40 + +[dram_para16] +dram_clk = 792 +dram_type = 8 +dram_dx_odt = 0x07070707 +dram_dx_dri = 0x0e0e0e0e +dram_ca_dri = 0x0e0e +dram_odt_en = 0xaaaaeeee +dram_para1 = 0x30fa +dram_para2 = 0x0000 +dram_mr0 = 0x0 +dram_mr1 = 0x34 +dram_mr2 = 0x1b +dram_mr3 = 0x33 +dram_mr4 = 0x3 +dram_mr5 = 0x0 +dram_mr6 = 0x0 +dram_mr11 = 0x4 +dram_mr12 = 0x72 +dram_mr13 = 0x0 +dram_mr14 = 0x9 +dram_mr16 = 0x0 +dram_mr17 = 0x0 +dram_mr22 = 0x24 +dram_tpr0 = 0x0 +dram_tpr1 = 0x0 +dram_tpr2 = 0x0 +dram_tpr3 = 0x0 +dram_tpr6 = 0x35808080 +dram_tpr10 = 0x402f6663 +dram_tpr11 = 0x36363535 +dram_tpr12 = 0x10101110 +dram_tpr13 = 0x2080C60 + +;---------------------------------------------------------------------------------- +;os life cycle para configuration +;---------------------------------------------------------------------------------- + +;---------------------------------------------------------------------------------- +;uart configuration +;uart_type --- 2 (2 wire), 4 (4 wire), 8 (8 wire, full function) +;---------------------------------------------------------------------------------- +[uart0] +uart0_used = 1 +uart0_port = 0 +uart0_type = 2 +uart0_tx = port:PH00<2><1> +uart0_rx = port:PH01<2><1> + +[nand0_para] +nand0_support_2ch = 0 + +nand0_used = 0 +nand0_we = port:PC00<2><0><1> +nand0_ale = port:PC01<2><0><1> +nand0_cle = port:PC02<2><0><1> +nand0_ce0 = port:PC03<2><1><1> +nand0_nre = port:PC04<2><0><1> +nand0_rb0 = port:PC05<2><1><1> +nand0_d0 = port:PC06<2><0><1> +nand0_d1 = port:PC07<2><0><1> +nand0_d2 = port:PC08<2><0><1> +nand0_d3 = port:PC09<2><0><1> +nand0_d4 = port:PC10<2><0><1> +nand0_d5 = port:PC11<2><0><1> +nand0_d6 = port:PC12<2><0><1> +nand0_d7 = port:PC13<2><0><1> +nand0_ndqs = port:PC14<2><0><1> +nand0_ce1 = port:PC15<2><1><1> +nand0_rb1 = port:PC16<2><1><1> + +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 + +[secure] +dram_region_mbytes = 80 +drm_region_mbytes = 0 +drm_region_start_mbytes = 0 diff --git a/scripts/general.sh b/scripts/general.sh index 20ed5bf..b8a5d06 100755 --- a/scripts/general.sh +++ b/scripts/general.sh @@ -1837,7 +1837,7 @@ show_checklist_variables () install_wiringop() { - install_deb_chroot "$EXTER/cache/debs/arm64/wiringpi_2.48.deb" + install_deb_chroot "$EXTER/cache/debs/arm64/wiringpi_2.49.deb" chroot "${SDCARD}" /bin/bash -c "apt-mark hold wiringpi" >> "${DEST}"/${LOG_SUBPATH}/install.log 2>&1 if [[ ${IGNORE_UPDATES} != yes ]]; then diff --git a/scripts/main.sh b/scripts/main.sh index 7b39c5b..3b578c5 100755 --- a/scripts/main.sh +++ b/scripts/main.sh @@ -227,6 +227,7 @@ if [[ -z $BOARD ]]; then #options+=("orangepizero2-b" "Allwinner H616 quad core 512MB/1GB RAM WiFi/BT GBE SPI") #options+=("orangepizero2-lts" "Allwinner H616 quad core 1.5GB RAM WiFi/BT GBE SPI") options+=("orangepizero3" "Allwinner H618 quad core 1GB/1.5GB/2GB/4GB RAM WiFi/BT GBE SPI") + #options+=("orangepizero2w" "Allwinner H618 quad core 1GB/1.5GB/2GB/4GB RAM WiFi/BT SPI") #options+=("orangepir1b" "Allwinner H618 quad core 1.5GB/2GB/4GB RAM WiFi/BT GBE SPI") #options+=("orangepi400" "Allwinner H616 quad core 4GB RAM WiFi/BT GBE eMMC VGA") options+=("orangepi4" "Rockchip RK3399 hexa core 4GB RAM GBE eMMC USB3 USB-C WiFi/BT")