From e19f31eec6092941b3ea2c74fe09f82449960eca Mon Sep 17 00:00:00 2001 From: Igor Pecovnik Date: Thu, 9 Aug 2018 11:32:23 +0200 Subject: [PATCH] Enable USB3, THS, DVFS and Ethernet on Allwinner H6 based boards. Development kernel (DEV branch, 4.18.y) also provides HDMI out via simple FB interface. DEV and NEXT kernel config alignment, set H6 CPU freqency to 1.5G, adjust eMMC and SD card speed and remove deprecated patches. --- config/boards/orangepilite2.wip | 4 +- config/boards/orangepioneplus.wip | 4 +- config/boards/pineh64.wip | 4 +- config/kernel/linux-sunxi-next.config | 12 +- config/kernel/linux-sunxi64-dev.config | 1020 +++++++++++----- config/kernel/linux-sunxi64-next.config | 144 ++- config/sources/sun50iw6.conf | 41 +- ...rd-0001-orangepi-one-plus-add-device.patch | 256 ++++ ...board-0002-orangepi-lite2-add-device.patch | 243 ++++ .../general-packaging-4.17-dev.patch | 221 ++++ ...rd-0001-orangepi-one-plus-add-device.patch | 48 +- ...board-0002-orangepi-lite2-add-device.patch | 10 +- ...rt-for-power-key-on-AXP806.patch.disabled} | 0 ...dd-support-for-AXP805-PMIC.patch.disabled} | 0 ...er-h6-enable-AXP805-PMIC-on-Pine-H64.patch | 6 +- ...-more-operating-point-for-.patch.disabled} | 0 ...4-allwinner-h6-add-EMAC-device-nodes.patch | 8 +- .../sunxi-next/p-board-h6-add-THS.patch | 1042 +++++++++++++++++ .../0001-add-orangepione_plus.patch | 103 -- .../0002-add-orangepilite_2.patch | 103 -- .../u-boot-sun50iw6/add-orangepilite_2.patch | 188 +++ 21 files changed, 2834 insertions(+), 623 deletions(-) create mode 100644 patch/kernel/sunxi-dev-h6/board-0001-orangepi-one-plus-add-device.patch create mode 100644 patch/kernel/sunxi-dev-h6/board-0002-orangepi-lite2-add-device.patch create mode 100644 patch/kernel/sunxi-dev-h6/general-packaging-4.17-dev.patch rename patch/kernel/sunxi-next/{board-pine-h6-pine-h6-0016-mfd-axp20x-add-support-for-power-key-on-AXP806.patch => board-pine-h6-pine-h6-0016-mfd-axp20x-add-support-for-power-key-on-AXP806.patch.disabled} (100%) rename patch/kernel/sunxi-next/{board-pine-h6-pine-h6-0017-mfd-axp20x-add-support-for-AXP805-PMIC.patch => board-pine-h6-pine-h6-0017-mfd-axp20x-add-support-for-AXP805-PMIC.patch.disabled} (100%) rename patch/kernel/sunxi-next/{board-pine-h6-pine-h6-0031-arm64-allwinner-h6-add-one-more-operating-point-for-.patch => board-pine-h6-pine-h6-0031-arm64-allwinner-h6-add-one-more-operating-point-for-.patch.disabled} (100%) create mode 100644 patch/kernel/sunxi-next/p-board-h6-add-THS.patch delete mode 100644 patch/u-boot/u-boot-sun50iw6/0001-add-orangepione_plus.patch delete mode 100644 patch/u-boot/u-boot-sun50iw6/0002-add-orangepilite_2.patch create mode 100644 patch/u-boot/u-boot-sun50iw6/add-orangepilite_2.patch diff --git a/config/boards/orangepilite2.wip b/config/boards/orangepilite2.wip index 5763efa3a6..d377c985e5 100644 --- a/config/boards/orangepilite2.wip +++ b/config/boards/orangepilite2.wip @@ -6,8 +6,8 @@ BOOTCONFIG="orangepi_lite2_defconfig" MODULES="" MODULES_NEXT="" # -KERNEL_TARGET="next" -CLI_TARGET="" +KERNEL_TARGET="next,dev" +CLI_TARGET="stretch:next" DESKTOP_TARGET="" # CLI_BETA_TARGET="stretch:next" diff --git a/config/boards/orangepioneplus.wip b/config/boards/orangepioneplus.wip index 6cc62974d9..52f68179ec 100644 --- a/config/boards/orangepioneplus.wip +++ b/config/boards/orangepioneplus.wip @@ -6,8 +6,8 @@ BOOTCONFIG="orangepi_one_plus_defconfig" MODULES="" MODULES_NEXT="" # -KERNEL_TARGET="next" -CLI_TARGET="" +KERNEL_TARGET="next,dev" +CLI_TARGET="stretch:next" DESKTOP_TARGET="" # CLI_BETA_TARGET="stretch:next" diff --git a/config/boards/pineh64.wip b/config/boards/pineh64.wip index 40df7134e9..1729e8d20c 100644 --- a/config/boards/pineh64.wip +++ b/config/boards/pineh64.wip @@ -6,8 +6,8 @@ BOOTCONFIG="pine_h64_defconfig" MODULES="" MODULES_NEXT="" # -KERNEL_TARGET="next" -CLI_TARGET="" +KERNEL_TARGET="next,dev" +CLI_TARGET="stretch:next" DESKTOP_TARGET="" # CLI_BETA_TARGET="stretch:next" diff --git a/config/kernel/linux-sunxi-next.config b/config/kernel/linux-sunxi-next.config index b762a65888..626868e8e7 100644 --- a/config/kernel/linux-sunxi-next.config +++ b/config/kernel/linux-sunxi-next.config @@ -4947,7 +4947,15 @@ CONFIG_USB_MUSB_SUNXI=y # MUSB DMA mode # # CONFIG_MUSB_PIO_ONLY is not set -# CONFIG_USB_DWC3 is not set +CONFIG_USB_DWC3=y +# CONFIG_USB_DWC3_HOST is not set +# CONFIG_USB_DWC3_GADGET is not set +CONFIG_USB_DWC3_DUAL_ROLE=y + +# +# Platform Glue Driver Support +# +CONFIG_USB_DWC3_OF_SIMPLE=m CONFIG_USB_DWC2=y # CONFIG_USB_DWC2_HOST is not set @@ -6311,7 +6319,7 @@ CONFIG_GENERIC_PHY=y # CONFIG_PHY_XGENE is not set CONFIG_PHY_SUN4I_USB=y CONFIG_PHY_SUN9I_USB=y -# CONFIG_PHY_SUN50I_USB3 is not set +CONFIG_PHY_SUN50I_USB3=y # CONFIG_PHY_MESON8B_USB2 is not set # CONFIG_PHY_MESON_GXL_USB2 is not set # CONFIG_PHY_MESON_GXL_USB3 is not set diff --git a/config/kernel/linux-sunxi64-dev.config b/config/kernel/linux-sunxi64-dev.config index bbe6701526..c632f629a2 100644 --- a/config/kernel/linux-sunxi64-dev.config +++ b/config/kernel/linux-sunxi64-dev.config @@ -1,10 +1,13 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm64 4.17.2 Kernel Configuration +# Linux/arm64 4.18.0-rc7 Kernel Configuration +# + +# +# Compiler: aarch64-linux-gnu-gcc (Linaro GCC 7.2-2017.11) 7.2.1 20171011 # CONFIG_ARM64=y CONFIG_64BIT=y -CONFIG_ARCH_PHYS_ADDR_T_64BIT=y CONFIG_MMU=y CONFIG_ARM64_PAGE_SHIFT=12 CONFIG_ARM64_CONT_SHIFT=4 @@ -25,18 +28,16 @@ CONFIG_GENERIC_CSUM=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_ZONE_DMA32=y CONFIG_HAVE_GENERIC_GUP=y -CONFIG_ARCH_DMA_ADDR_T_64BIT=y -CONFIG_NEED_DMA_MAP_STATE=y -CONFIG_NEED_SG_DMA_LENGTH=y CONFIG_SMP=y -CONFIG_SWIOTLB=y -CONFIG_IOMMU_HELPER=y CONFIG_KERNEL_MODE_NEON=y CONFIG_FIX_EARLYCON_MEM=y CONFIG_PGTABLE_LEVELS=4 CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_ARCH_PROC_KCORE_TEXT=y CONFIG_MULTI_IRQ_HANDLER=y +CONFIG_CC_IS_GCC=y +CONFIG_GCC_VERSION=70201 +CONFIG_CLANG_VERSION=0 CONFIG_IRQ_WORK=y CONFIG_BUILDTIME_EXTABLE_SORT=y CONFIG_THREAD_INFO_IN_TASK=y @@ -45,7 +46,6 @@ CONFIG_THREAD_INFO_IN_TASK=y # General setup # CONFIG_INIT_ENV_ARG_LIMIT=32 -CONFIG_CROSS_COMPILE="" # CONFIG_COMPILE_TEST is not set CONFIG_LOCALVERSION="" # CONFIG_LOCALVERSION_AUTO is not set @@ -129,6 +129,7 @@ CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13 CONFIG_GENERIC_SCHED_CLOCK=y CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y +CONFIG_ARCH_SUPPORTS_INT128=y # CONFIG_NUMA_BALANCING is not set CONFIG_CGROUPS=y CONFIG_PAGE_COUNTER=y @@ -236,7 +237,6 @@ CONFIG_ARCH_HAS_SET_MEMORY=y CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y CONFIG_HAVE_CLK=y -CONFIG_HAVE_DMA_API_DEBUG=y CONFIG_HAVE_HW_BREAKPOINT=y CONFIG_HAVE_PERF_REGS=y CONFIG_HAVE_PERF_USER_STACK_DUMP=y @@ -249,13 +249,12 @@ CONFIG_HAVE_CMPXCHG_DOUBLE=y CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y CONFIG_HAVE_ARCH_SECCOMP_FILTER=y CONFIG_SECCOMP_FILTER=y +CONFIG_PLUGIN_HOSTCC="" CONFIG_HAVE_GCC_PLUGINS=y -# CONFIG_GCC_PLUGINS is not set -CONFIG_HAVE_CC_STACKPROTECTOR=y -CONFIG_CC_STACKPROTECTOR_NONE=y -# CONFIG_CC_STACKPROTECTOR_REGULAR is not set -# CONFIG_CC_STACKPROTECTOR_STRONG is not set -# CONFIG_CC_STACKPROTECTOR_AUTO is not set +CONFIG_HAVE_STACKPROTECTOR=y +CONFIG_CC_HAS_STACKPROTECTOR_NONE=y +CONFIG_STACKPROTECTOR=y +CONFIG_STACKPROTECTOR_STRONG=y CONFIG_HAVE_CONTEXT_TRACKING=y CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y @@ -271,6 +270,7 @@ CONFIG_ARCH_MMAP_RND_COMPAT_BITS=11 CONFIG_CLONE_BACKWARDS=y CONFIG_OLD_SIGSUSPEND3=y CONFIG_COMPAT_OLD_SIGACTION=y +CONFIG_COMPAT_32BIT_TIME=y CONFIG_HAVE_ARCH_VMAP_STACK=y CONFIG_VMAP_STACK=y CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y @@ -284,7 +284,6 @@ CONFIG_REFCOUNT_FULL=y # # CONFIG_GCOV_KERNEL is not set CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y -CONFIG_HAVE_GENERIC_DMA_COHERENT=y CONFIG_RT_MUTEXES=y CONFIG_BASE_SMALL=0 CONFIG_MODULES=y @@ -418,14 +417,6 @@ CONFIG_ARCH_SUNXI=y # # CONFIG_PCI is not set -# -# Cadence PCIe controllers support -# - -# -# DesignWare PCI Core Support -# - # # PCI Endpoint # @@ -539,6 +530,7 @@ CONFIG_IDLE_PAGE_TRACKING=y CONFIG_FRAME_VECTOR=y CONFIG_PERCPU_STATS=y # CONFIG_GUP_BENCHMARK is not set +CONFIG_ARCH_HAS_PTE_SPECIAL=y CONFIG_SECCOMP=y CONFIG_PARAVIRT=y # CONFIG_PARAVIRT_TIME_ACCOUNTING is not set @@ -549,6 +541,7 @@ CONFIG_FORCE_MAX_ZONEORDER=11 CONFIG_UNMAP_KERNEL_AT_EL0=y CONFIG_HARDEN_BRANCH_PREDICTOR=y CONFIG_HARDEN_EL2_VECTORS=y +CONFIG_ARM64_SSBD=y # CONFIG_ARMV8_DEPRECATED is not set # CONFIG_ARM64_SW_TTBR0_PAN is not set @@ -652,11 +645,11 @@ CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y # # CPU frequency scaling drivers # -CONFIG_CPUFREQ_DT=y +CONFIG_CPUFREQ_DT=m CONFIG_CPUFREQ_DT_PLATDEV=y -CONFIG_ARM_BIG_LITTLE_CPUFREQ=y +CONFIG_ARM_BIG_LITTLE_CPUFREQ=m # CONFIG_ARM_DT_BL_CPUFREQ is not set -CONFIG_ARM_SCPI_CPUFREQ=y +CONFIG_ARM_SCPI_CPUFREQ=m # CONFIG_ARM_SCMI_CPUFREQ is not set # CONFIG_QORIQ_CPUFREQ is not set CONFIG_NET=y @@ -671,6 +664,7 @@ CONFIG_PACKET_DIAG=m CONFIG_UNIX=y CONFIG_UNIX_DIAG=m CONFIG_TLS=y +# CONFIG_TLS_DEVICE is not set CONFIG_XFRM=y CONFIG_XFRM_OFFLOAD=y CONFIG_XFRM_ALGO=m @@ -772,6 +766,7 @@ CONFIG_IPV6_MROUTE=y # CONFIG_IPV6_PIMSM_V2 is not set CONFIG_IPV6_SEG6_LWTUNNEL=y CONFIG_IPV6_SEG6_HMAC=y +CONFIG_IPV6_SEG6_BPF=y # CONFIG_NETLABEL is not set CONFIG_NETWORK_SECMARK=y CONFIG_NET_PTP_CLASSIFY=y @@ -831,21 +826,18 @@ CONFIG_NF_NAT_FTP=m CONFIG_NF_NAT_IRC=m CONFIG_NF_NAT_SIP=m CONFIG_NF_NAT_TFTP=m -CONFIG_NF_NAT_REDIRECT=m +CONFIG_NF_NAT_REDIRECT=y CONFIG_NETFILTER_SYNPROXY=m +CONFIG_NF_OSF=m CONFIG_NF_TABLES=m +# CONFIG_NF_TABLES_SET is not set # CONFIG_NF_TABLES_INET is not set # CONFIG_NF_TABLES_NETDEV is not set -CONFIG_NFT_EXTHDR=m -CONFIG_NFT_META=m -CONFIG_NFT_RT=m CONFIG_NFT_NUMGEN=m CONFIG_NFT_CT=m CONFIG_NFT_FLOW_OFFLOAD=m -CONFIG_NFT_SET_RBTREE=m -CONFIG_NFT_SET_HASH=m -CONFIG_NFT_SET_BITMAP=m CONFIG_NFT_COUNTER=m +# CONFIG_NFT_CONNLIMIT is not set CONFIG_NFT_LOG=m CONFIG_NFT_LIMIT=m CONFIG_NFT_MASQ=m @@ -857,6 +849,7 @@ CONFIG_NFT_QUOTA=m CONFIG_NFT_REJECT=m CONFIG_NFT_COMPAT=m CONFIG_NFT_HASH=m +# CONFIG_NFT_SOCKET is not set CONFIG_NF_FLOW_TABLE_INET=m CONFIG_NF_FLOW_TABLE=m CONFIG_NETFILTER_XTABLES=y @@ -993,6 +986,7 @@ CONFIG_IP_VS_LBLC=m CONFIG_IP_VS_LBLCR=m CONFIG_IP_VS_DH=m CONFIG_IP_VS_SH=m +# CONFIG_IP_VS_MH is not set CONFIG_IP_VS_SED=m CONFIG_IP_VS_NQ=m @@ -1001,6 +995,11 @@ CONFIG_IP_VS_NQ=m # CONFIG_IP_VS_SH_TAB_BITS=8 +# +# IPVS MH scheduler +# +CONFIG_IP_VS_MH_TAB_INDEX=12 + # # IPVS application helper # @@ -1014,6 +1013,7 @@ CONFIG_IP_VS_NFCT=y CONFIG_NF_DEFRAG_IPV4=m CONFIG_NF_CONNTRACK_IPV4=m CONFIG_NF_SOCKET_IPV4=m +CONFIG_NF_TPROXY_IPV4=m # CONFIG_NF_TABLES_IPV4 is not set # CONFIG_NF_TABLES_ARP is not set CONFIG_NF_FLOW_TABLE_IPV4=m @@ -1022,7 +1022,7 @@ CONFIG_NF_LOG_ARP=m CONFIG_NF_LOG_IPV4=m CONFIG_NF_REJECT_IPV4=m CONFIG_NF_NAT_IPV4=m -CONFIG_NF_NAT_MASQUERADE_IPV4=m +CONFIG_NF_NAT_MASQUERADE_IPV4=y CONFIG_NF_NAT_SNMP_BASIC=m CONFIG_NF_NAT_PROTO_GRE=m CONFIG_NF_NAT_PPTP=m @@ -1055,13 +1055,14 @@ CONFIG_IP_NF_ARP_MANGLE=m CONFIG_NF_DEFRAG_IPV6=m CONFIG_NF_CONNTRACK_IPV6=m CONFIG_NF_SOCKET_IPV6=m +CONFIG_NF_TPROXY_IPV6=m # CONFIG_NF_TABLES_IPV6 is not set CONFIG_NF_FLOW_TABLE_IPV6=m CONFIG_NF_DUP_IPV6=m CONFIG_NF_REJECT_IPV6=m CONFIG_NF_LOG_IPV6=m CONFIG_NF_NAT_IPV6=m -CONFIG_NF_NAT_MASQUERADE_IPV6=m +CONFIG_NF_NAT_MASQUERADE_IPV6=y CONFIG_IP6_NF_IPTABLES=m CONFIG_IP6_NF_MATCH_AH=m CONFIG_IP6_NF_MATCH_EUI64=m @@ -1105,6 +1106,7 @@ CONFIG_BRIDGE_EBT_REDIRECT=m CONFIG_BRIDGE_EBT_SNAT=m CONFIG_BRIDGE_EBT_LOG=m CONFIG_BRIDGE_EBT_NFLOG=m +# CONFIG_BPFILTER is not set # CONFIG_IP_DCCP is not set # CONFIG_IP_SCTP is not set # CONFIG_RDS is not set @@ -1180,11 +1182,12 @@ CONFIG_NET_SCH_CHOKE=m CONFIG_NET_SCH_QFQ=m CONFIG_NET_SCH_CODEL=m # CONFIG_NET_SCH_FQ_CODEL is not set -# CONFIG_NET_SCH_FQ is not set +CONFIG_NET_SCH_FQ=m # CONFIG_NET_SCH_HHF is not set # CONFIG_NET_SCH_PIE is not set # CONFIG_NET_SCH_PLUG is not set CONFIG_NET_SCH_DEFAULT=y +# CONFIG_DEFAULT_FQ is not set # CONFIG_DEFAULT_CODEL is not set # CONFIG_DEFAULT_SFQ is not set CONFIG_DEFAULT_PFIFO_FAST=y @@ -1330,7 +1333,6 @@ CONFIG_BT_DEBUGFS=y CONFIG_BT_INTEL=m CONFIG_BT_BCM=m CONFIG_BT_RTL=m -CONFIG_BT_QCA=m CONFIG_BT_HCIBTUSB=m # CONFIG_BT_HCIBTUSB_AUTOSUSPEND is not set CONFIG_BT_HCIBTUSB_BCM=y @@ -1342,7 +1344,6 @@ CONFIG_BT_HCIUART_BCSP=y CONFIG_BT_HCIUART_ATH3K=y CONFIG_BT_HCIUART_3WIRE=y CONFIG_BT_HCIUART_INTEL=y -CONFIG_BT_HCIUART_QCA=y CONFIG_BT_HCIUART_AG6XX=y CONFIG_BT_HCIUART_MRVL=y CONFIG_BT_HCIBCM203X=m @@ -1373,7 +1374,6 @@ CONFIG_CFG80211_WEXT=y CONFIG_LIB80211=m CONFIG_LIB80211_CRYPT_WEP=m CONFIG_LIB80211_CRYPT_CCMP=m -CONFIG_LIB80211_CRYPT_TKIP=m # CONFIG_LIB80211_DEBUG is not set CONFIG_MAC80211=m CONFIG_MAC80211_HAS_RC=y @@ -1406,6 +1406,7 @@ CONFIG_DST_CACHE=y CONFIG_GRO_CELLS=y # CONFIG_NET_DEVLINK is not set CONFIG_MAY_USE_DEVLINK=y +CONFIG_FAILOVER=m CONFIG_HAVE_EBPF_JIT=y # @@ -1422,9 +1423,13 @@ CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS_MOUNT=y CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y + +# +# Firmware loader +# CONFIG_FW_LOADER=y CONFIG_EXTRA_FIRMWARE="" -# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set +# CONFIG_FW_LOADER_USER_HELPER is not set CONFIG_WANT_DEV_COREDUMP=y CONFIG_ALLOW_DEV_COREDUMP=y CONFIG_DEV_COREDUMP=y @@ -1454,8 +1459,10 @@ CONFIG_GENERIC_ARCH_TOPOLOGY=y # # Bus devices # +CONFIG_ARM_CCI=y # CONFIG_BRCMSTB_GISB_ARB is not set # CONFIG_SIMPLE_PM_BUS is not set +CONFIG_SUN50I_DE2_BUS=y CONFIG_SUNXI_RSB=y # CONFIG_VEXPRESS_CONFIG is not set # CONFIG_CONNECTOR is not set @@ -1556,13 +1563,13 @@ CONFIG_OF_MDIO=y CONFIG_OF_RESERVED_MEM=y CONFIG_OF_RESOLVE=y CONFIG_OF_OVERLAY=y -CONFIG_OF_CONFIGFS=y CONFIG_OF_NUMA=y # CONFIG_PARPORT is not set CONFIG_BLK_DEV=y # CONFIG_BLK_DEV_NULL_BLK is not set CONFIG_ZRAM=m # CONFIG_ZRAM_WRITEBACK is not set +# CONFIG_ZRAM_MEMORY_TRACKING is not set CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 CONFIG_BLK_DEV_CRYPTOLOOP=m @@ -1724,6 +1731,7 @@ CONFIG_DM_CRYPT=m CONFIG_DM_SNAPSHOT=m CONFIG_DM_THIN_PROVISIONING=m # CONFIG_DM_CACHE is not set +# CONFIG_DM_WRITECACHE is not set # CONFIG_DM_ERA is not set # CONFIG_DM_MIRROR is not set # CONFIG_DM_RAID is not set @@ -1797,8 +1805,8 @@ CONFIG_NET_VENDOR_ALLWINNER=y # CONFIG_NET_VENDOR_AQUANTIA is not set # CONFIG_NET_VENDOR_ARC is not set # CONFIG_NET_VENDOR_AURORA is not set -# CONFIG_NET_CADENCE is not set # CONFIG_NET_VENDOR_BROADCOM is not set +# CONFIG_NET_CADENCE is not set CONFIG_NET_VENDOR_CORTINA=y # CONFIG_GEMINI_ETHERNET is not set # CONFIG_DNET is not set @@ -1811,30 +1819,38 @@ CONFIG_NET_VENDOR_MELLANOX=y # CONFIG_MLXSW_CORE is not set # CONFIG_MLXFW is not set # CONFIG_NET_VENDOR_MICREL is not set -# CONFIG_NET_VENDOR_MICROCHIP is not set +CONFIG_NET_VENDOR_MICROCHIP=y +CONFIG_ENC28J60=m +CONFIG_ENC28J60_WRITEVERIFY=y +# CONFIG_ENCX24J600 is not set +CONFIG_NET_VENDOR_MICROSEMI=y +# CONFIG_MSCC_OCELOT_SWITCH is not set # CONFIG_NET_VENDOR_NATSEMI is not set -# CONFIG_NET_VENDOR_NETRONOME is not set +CONFIG_NET_VENDOR_NETRONOME=y CONFIG_NET_VENDOR_NI=y # CONFIG_ETHOC is not set -# CONFIG_NET_VENDOR_QUALCOMM is not set -# CONFIG_NET_VENDOR_RENESAS is not set -# CONFIG_NET_VENDOR_ROCKER is not set +CONFIG_NET_VENDOR_QUALCOMM=y +# CONFIG_QCA7000_SPI is not set +# CONFIG_QCOM_EMAC is not set +# CONFIG_RMNET is not set +CONFIG_NET_VENDOR_RENESAS=y +CONFIG_NET_VENDOR_ROCKER=y # CONFIG_NET_VENDOR_SAMSUNG is not set # CONFIG_NET_VENDOR_SEEQ is not set -# CONFIG_NET_VENDOR_SOLARFLARE is not set +CONFIG_NET_VENDOR_SOLARFLARE=y # CONFIG_NET_VENDOR_SMSC is not set CONFIG_NET_VENDOR_SOCIONEXT=y CONFIG_NET_VENDOR_STMICRO=y CONFIG_STMMAC_ETH=y CONFIG_STMMAC_PLATFORM=y -CONFIG_DWMAC_DWC_QOS_ETH=y +CONFIG_DWMAC_DWC_QOS_ETH=m CONFIG_DWMAC_GENERIC=y CONFIG_DWMAC_SUNXI=y CONFIG_DWMAC_SUN8I=y -# CONFIG_NET_VENDOR_VIA is not set -# CONFIG_NET_VENDOR_WIZNET is not set CONFIG_NET_VENDOR_SYNOPSYS=y # CONFIG_DWC_XLGMAC is not set +# CONFIG_NET_VENDOR_VIA is not set +# CONFIG_NET_VENDOR_WIZNET is not set CONFIG_MDIO_DEVICE=y CONFIG_MDIO_BUS=y # CONFIG_MDIO_BCM_UNIMAC is not set @@ -1844,8 +1860,11 @@ CONFIG_MDIO_BUS_MUX=y # CONFIG_MDIO_BUS_MUX_MMIOREG is not set # CONFIG_MDIO_GPIO is not set # CONFIG_MDIO_HISI_FEMAC is not set +CONFIG_MDIO_I2C=m +# CONFIG_MDIO_MSCC_MIIM is not set # CONFIG_MDIO_OCTEON is not set # CONFIG_MDIO_SUN4I is not set +CONFIG_PHYLINK=m CONFIG_PHYLIB=y CONFIG_SWPHY=y CONFIG_LED_TRIGGER_PHY=y @@ -1853,8 +1872,10 @@ CONFIG_LED_TRIGGER_PHY=y # # MII PHY device drivers # +CONFIG_SFP=m # CONFIG_AMD_PHY is not set # CONFIG_AQUANTIA_PHY is not set +CONFIG_ASIX_PHY=m # CONFIG_AT803X_PHY is not set # CONFIG_BCM7XXX_PHY is not set # CONFIG_BCM87XX_PHY is not set @@ -1863,6 +1884,7 @@ CONFIG_LED_TRIGGER_PHY=y # CONFIG_CORTINA_PHY is not set # CONFIG_DAVICOM_PHY is not set # CONFIG_DP83822_PHY is not set +CONFIG_DP83TC811_PHY=m # CONFIG_DP83848_PHY is not set # CONFIG_DP83867_PHY is not set CONFIG_FIXED_PHY=y @@ -1874,6 +1896,7 @@ CONFIG_FIXED_PHY=y # CONFIG_MARVELL_10G_PHY is not set # CONFIG_MICREL_PHY is not set CONFIG_MICROCHIP_PHY=m +CONFIG_MICROCHIP_T1_PHY=m # CONFIG_MICROSEMI_PHY is not set # CONFIG_NATIONAL_PHY is not set # CONFIG_QSEMI_PHY is not set @@ -1926,12 +1949,12 @@ CONFIG_USB_NET_MCS7830=m CONFIG_USB_NET_RNDIS_HOST=m CONFIG_USB_NET_CDC_SUBSET_ENABLE=m CONFIG_USB_NET_CDC_SUBSET=m -# CONFIG_USB_ALI_M5632 is not set -# CONFIG_USB_AN2720 is not set +CONFIG_USB_ALI_M5632=y +CONFIG_USB_AN2720=y CONFIG_USB_BELKIN=y CONFIG_USB_ARMLINUX=y -# CONFIG_USB_EPSON2888 is not set -# CONFIG_USB_KC2190 is not set +CONFIG_USB_EPSON2888=y +CONFIG_USB_KC2190=y CONFIG_USB_NET_ZAURUS=m CONFIG_USB_NET_CX82310_ETH=m CONFIG_USB_NET_KALMIA=m @@ -1943,15 +1966,21 @@ CONFIG_USB_SIERRA_NET=m CONFIG_USB_VL600=m CONFIG_USB_NET_CH9200=m CONFIG_WLAN=y -# CONFIG_WLAN_VENDOR_ADMTEK is not set -CONFIG_RTL8189ES=m +CONFIG_WLAN_VENDOR_ADMTEK=y CONFIG_ATH_COMMON=m CONFIG_WLAN_VENDOR_ATH=y # CONFIG_ATH_DEBUG is not set CONFIG_ATH9K_HW=m CONFIG_ATH9K_COMMON=m CONFIG_ATH9K_BTCOEX_SUPPORT=y -# CONFIG_ATH9K is not set +CONFIG_ATH9K=m +# CONFIG_ATH9K_AHB is not set +# CONFIG_ATH9K_DEBUGFS is not set +# CONFIG_ATH9K_DYNACK is not set +# CONFIG_ATH9K_WOW is not set +CONFIG_ATH9K_RFKILL=y +# CONFIG_ATH9K_CHANNEL_CONTEXT is not set +CONFIG_ATH9K_PCOEM=y CONFIG_ATH9K_HTC=m # CONFIG_ATH9K_HTC_DEBUGFS is not set CONFIG_CARL9170=m @@ -1960,12 +1989,12 @@ CONFIG_CARL9170_WPC=y # CONFIG_ATH6KL is not set CONFIG_AR5523=m CONFIG_ATH10K=m +CONFIG_ATH10K_CE=y # CONFIG_ATH10K_SDIO is not set CONFIG_ATH10K_USB=m # CONFIG_ATH10K_DEBUG is not set # CONFIG_ATH10K_DEBUGFS is not set # CONFIG_WCN36XX is not set -CONFIG_RTL8188EU=m # CONFIG_WLAN_VENDOR_ATMEL is not set CONFIG_WLAN_VENDOR_BROADCOM=y CONFIG_B43=m @@ -2003,8 +2032,6 @@ CONFIG_BRCMFMAC_SDIO=y # CONFIG_WLAN_VENDOR_INTEL is not set # CONFIG_WLAN_VENDOR_INTERSIL is not set # CONFIG_WLAN_VENDOR_MARVELL is not set -CONFIG_RTL8812AU=m -CONFIG_RTL8814AU=m CONFIG_WLAN_VENDOR_MEDIATEK=y CONFIG_MT7601U=m CONFIG_WLAN_VENDOR_RALINK=y @@ -2028,7 +2055,6 @@ CONFIG_RT2X00_LIB_LEDS=y CONFIG_WLAN_VENDOR_REALTEK=y CONFIG_RTL8187=m CONFIG_RTL8187_LEDS=y -CONFIG_RTL8189FS=m CONFIG_RTL_CARDS=m # CONFIG_RTL8192CU is not set CONFIG_RTL8XXXU=m @@ -2036,7 +2062,6 @@ CONFIG_RTL8XXXU_UNTESTED=y # CONFIG_WLAN_VENDOR_RSI is not set # CONFIG_WLAN_VENDOR_ST is not set # CONFIG_WLAN_VENDOR_TI is not set -# CONFIG_WLAN_VENDOR_XRADIO is not set # CONFIG_WLAN_VENDOR_ZYDAS is not set CONFIG_WLAN_VENDOR_QUANTENNA=y # CONFIG_MAC80211_HWSIM is not set @@ -2048,6 +2073,7 @@ CONFIG_USB_NET_RNDIS_WLAN=m # CONFIG_WAN is not set CONFIG_IEEE802154_DRIVERS=m CONFIG_NETDEVSIM=m +CONFIG_NET_FAILOVER=m # CONFIG_ISDN is not set # @@ -2242,7 +2268,19 @@ CONFIG_INPUT_GPIO_ROTARY_ENCODER=m # CONFIG_INPUT_DRV260X_HAPTICS is not set # CONFIG_INPUT_DRV2665_HAPTICS is not set # CONFIG_INPUT_DRV2667_HAPTICS is not set -# CONFIG_RMI4_CORE is not set +CONFIG_RMI4_CORE=m +CONFIG_RMI4_I2C=m +CONFIG_RMI4_SPI=m +CONFIG_RMI4_SMB=m +CONFIG_RMI4_F03=y +CONFIG_RMI4_F03_SERIO=m +CONFIG_RMI4_2D_SENSOR=y +CONFIG_RMI4_F11=y +CONFIG_RMI4_F12=y +CONFIG_RMI4_F30=y +# CONFIG_RMI4_F34 is not set +# CONFIG_RMI4_F54 is not set +# CONFIG_RMI4_F55 is not set # # Hardware I/O ports @@ -2405,6 +2443,7 @@ CONFIG_I2C_SLAVE=y # CONFIG_I2C_DEBUG_BUS is not set CONFIG_SPI=y CONFIG_SPI_MASTER=y +CONFIG_SPI_MEM=y # # SPI Master Controller Drivers @@ -2475,6 +2514,7 @@ CONFIG_PINCTRL_SUN50I_H5=y CONFIG_PINCTRL_SUN50I_H6=y CONFIG_PINCTRL_SUN50I_H6_R=y CONFIG_GPIOLIB=y +CONFIG_GPIOLIB_FASTPATH_LIMIT=512 CONFIG_OF_GPIO=y CONFIG_GPIO_SYSFS=y CONFIG_GPIO_GENERIC=y @@ -2603,139 +2643,143 @@ CONFIG_BATTERY_MAX1721X=m # CONFIG_BATTERY_GAUGE_LTC2941 is not set # CONFIG_CHARGER_RT9455 is not set CONFIG_HWMON=y +CONFIG_HWMON_VID=m # CONFIG_HWMON_DEBUG_CHIP is not set # # Native drivers # -# CONFIG_SENSORS_AD7314 is not set -# CONFIG_SENSORS_AD7414 is not set -# CONFIG_SENSORS_AD7418 is not set -# CONFIG_SENSORS_ADM1021 is not set -# CONFIG_SENSORS_ADM1025 is not set -# CONFIG_SENSORS_ADM1026 is not set -# CONFIG_SENSORS_ADM1029 is not set -# CONFIG_SENSORS_ADM1031 is not set -# CONFIG_SENSORS_ADM9240 is not set -# CONFIG_SENSORS_ADT7310 is not set -# CONFIG_SENSORS_ADT7410 is not set -# CONFIG_SENSORS_ADT7411 is not set -# CONFIG_SENSORS_ADT7462 is not set -# CONFIG_SENSORS_ADT7470 is not set -# CONFIG_SENSORS_ADT7475 is not set -# CONFIG_SENSORS_ASC7621 is not set -# CONFIG_SENSORS_ARM_SCMI is not set -CONFIG_SENSORS_ARM_SCPI=y +CONFIG_SENSORS_AD7314=m +CONFIG_SENSORS_AD7414=m +CONFIG_SENSORS_AD7418=m +CONFIG_SENSORS_ADM1021=m +CONFIG_SENSORS_ADM1025=m +CONFIG_SENSORS_ADM1026=m +CONFIG_SENSORS_ADM1029=m +CONFIG_SENSORS_ADM1031=m +CONFIG_SENSORS_ADM9240=m +CONFIG_SENSORS_ADT7X10=m +CONFIG_SENSORS_ADT7310=m +CONFIG_SENSORS_ADT7410=m +CONFIG_SENSORS_ADT7411=m +CONFIG_SENSORS_ADT7462=m +CONFIG_SENSORS_ADT7470=m +CONFIG_SENSORS_ADT7475=m +CONFIG_SENSORS_ASC7621=m +CONFIG_SENSORS_ARM_SCMI=m +CONFIG_SENSORS_ARM_SCPI=m # CONFIG_SENSORS_ASPEED is not set -# CONFIG_SENSORS_ATXP1 is not set -# CONFIG_SENSORS_DS620 is not set -# CONFIG_SENSORS_DS1621 is not set -# CONFIG_SENSORS_F71805F is not set -# CONFIG_SENSORS_F71882FG is not set -# CONFIG_SENSORS_F75375S is not set -# CONFIG_SENSORS_FTSTEUTATES is not set -# CONFIG_SENSORS_GL518SM is not set -# CONFIG_SENSORS_GL520SM is not set -# CONFIG_SENSORS_G760A is not set -# CONFIG_SENSORS_G762 is not set -# CONFIG_SENSORS_GPIO_FAN is not set -# CONFIG_SENSORS_HIH6130 is not set -CONFIG_SENSORS_IIO_HWMON=m -# CONFIG_SENSORS_IT87 is not set -# CONFIG_SENSORS_JC42 is not set -# CONFIG_SENSORS_POWR1220 is not set -# CONFIG_SENSORS_LINEAGE is not set -# CONFIG_SENSORS_LTC2945 is not set -# CONFIG_SENSORS_LTC2990 is not set -# CONFIG_SENSORS_LTC4151 is not set -# CONFIG_SENSORS_LTC4215 is not set -# CONFIG_SENSORS_LTC4222 is not set -# CONFIG_SENSORS_LTC4245 is not set -# CONFIG_SENSORS_LTC4260 is not set -# CONFIG_SENSORS_LTC4261 is not set -# CONFIG_SENSORS_MAX1111 is not set -# CONFIG_SENSORS_MAX16065 is not set -# CONFIG_SENSORS_MAX1619 is not set -# CONFIG_SENSORS_MAX1668 is not set -# CONFIG_SENSORS_MAX197 is not set -# CONFIG_SENSORS_MAX31722 is not set -CONFIG_SENSORS_MAX6621=m -# CONFIG_SENSORS_MAX6639 is not set -# CONFIG_SENSORS_MAX6642 is not set -# CONFIG_SENSORS_MAX6650 is not set -# CONFIG_SENSORS_MAX6697 is not set -# CONFIG_SENSORS_MAX31790 is not set -# CONFIG_SENSORS_MCP3021 is not set +CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_DS620=m +CONFIG_SENSORS_DS1621=m +CONFIG_SENSORS_F71805F=m +CONFIG_SENSORS_F71882FG=m +CONFIG_SENSORS_F75375S=m +CONFIG_SENSORS_FTSTEUTATES=m +CONFIG_SENSORS_GL518SM=m +CONFIG_SENSORS_GL520SM=m +CONFIG_SENSORS_G760A=m +CONFIG_SENSORS_G762=m +CONFIG_SENSORS_GPIO_FAN=m +CONFIG_SENSORS_HIH6130=m +# CONFIG_SENSORS_IIO_HWMON is not set +CONFIG_SENSORS_IT87=m +CONFIG_SENSORS_JC42=m +CONFIG_SENSORS_POWR1220=m +CONFIG_SENSORS_LINEAGE=m +CONFIG_SENSORS_LTC2945=m +CONFIG_SENSORS_LTC2990=m +CONFIG_SENSORS_LTC4151=m +CONFIG_SENSORS_LTC4215=m +CONFIG_SENSORS_LTC4222=m +CONFIG_SENSORS_LTC4245=m +CONFIG_SENSORS_LTC4260=m +CONFIG_SENSORS_LTC4261=m +CONFIG_SENSORS_MAX1111=m +CONFIG_SENSORS_MAX16065=m +CONFIG_SENSORS_MAX1619=m +CONFIG_SENSORS_MAX1668=m +CONFIG_SENSORS_MAX197=m +CONFIG_SENSORS_MAX31722=m +# CONFIG_SENSORS_MAX6621 is not set +CONFIG_SENSORS_MAX6639=m +CONFIG_SENSORS_MAX6642=m +CONFIG_SENSORS_MAX6650=m +CONFIG_SENSORS_MAX6697=m +CONFIG_SENSORS_MAX31790=m +CONFIG_SENSORS_MCP3021=m # CONFIG_SENSORS_TC654 is not set -# CONFIG_SENSORS_ADCXX is not set -# CONFIG_SENSORS_LM63 is not set -# CONFIG_SENSORS_LM70 is not set -# CONFIG_SENSORS_LM73 is not set -# CONFIG_SENSORS_LM75 is not set -# CONFIG_SENSORS_LM77 is not set -# CONFIG_SENSORS_LM78 is not set -# CONFIG_SENSORS_LM80 is not set -# CONFIG_SENSORS_LM83 is not set -# CONFIG_SENSORS_LM85 is not set -# CONFIG_SENSORS_LM87 is not set +CONFIG_SENSORS_ADCXX=m +CONFIG_SENSORS_LM63=m +CONFIG_SENSORS_LM70=m +CONFIG_SENSORS_LM73=m +CONFIG_SENSORS_LM75=m +CONFIG_SENSORS_LM77=m +CONFIG_SENSORS_LM78=m +CONFIG_SENSORS_LM80=m +CONFIG_SENSORS_LM83=m +CONFIG_SENSORS_LM85=m +CONFIG_SENSORS_LM87=m CONFIG_SENSORS_LM90=m -# CONFIG_SENSORS_LM92 is not set -# CONFIG_SENSORS_LM93 is not set -# CONFIG_SENSORS_LM95234 is not set -# CONFIG_SENSORS_LM95241 is not set -# CONFIG_SENSORS_LM95245 is not set -# CONFIG_SENSORS_PC87360 is not set -# CONFIG_SENSORS_PC87427 is not set -# CONFIG_SENSORS_NTC_THERMISTOR is not set -# CONFIG_SENSORS_NCT6683 is not set -# CONFIG_SENSORS_NCT6775 is not set -# CONFIG_SENSORS_NCT7802 is not set -# CONFIG_SENSORS_NCT7904 is not set -# CONFIG_SENSORS_PCF8591 is not set +CONFIG_SENSORS_LM92=m +CONFIG_SENSORS_LM93=m +CONFIG_SENSORS_LM95234=m +CONFIG_SENSORS_LM95241=m +CONFIG_SENSORS_LM95245=m +CONFIG_SENSORS_PC87360=m +CONFIG_SENSORS_PC87427=m +CONFIG_SENSORS_NTC_THERMISTOR=m +CONFIG_SENSORS_NCT6683=m +CONFIG_SENSORS_NCT6775=m +CONFIG_SENSORS_NCT7802=m +CONFIG_SENSORS_NCT7904=m +CONFIG_SENSORS_PCF8591=m # CONFIG_PMBUS is not set CONFIG_SENSORS_PWM_FAN=m CONFIG_SENSORS_SHT15=m CONFIG_SENSORS_SHT21=m CONFIG_SENSORS_SHT3x=m CONFIG_SENSORS_SHTC1=m -# CONFIG_SENSORS_DME1737 is not set -# CONFIG_SENSORS_EMC1403 is not set -# CONFIG_SENSORS_EMC2103 is not set -# CONFIG_SENSORS_EMC6W201 is not set -# CONFIG_SENSORS_SMSC47M1 is not set -# CONFIG_SENSORS_SMSC47M192 is not set -# CONFIG_SENSORS_SMSC47B397 is not set -# CONFIG_SENSORS_SCH5627 is not set -# CONFIG_SENSORS_SCH5636 is not set -# CONFIG_SENSORS_STTS751 is not set -# CONFIG_SENSORS_SMM665 is not set -# CONFIG_SENSORS_ADC128D818 is not set -# CONFIG_SENSORS_ADS1015 is not set -# CONFIG_SENSORS_ADS7828 is not set -# CONFIG_SENSORS_ADS7871 is not set -# CONFIG_SENSORS_AMC6821 is not set -# CONFIG_SENSORS_INA209 is not set -# CONFIG_SENSORS_INA2XX is not set -# CONFIG_SENSORS_INA3221 is not set -# CONFIG_SENSORS_TC74 is not set -# CONFIG_SENSORS_THMC50 is not set -# CONFIG_SENSORS_TMP102 is not set -# CONFIG_SENSORS_TMP103 is not set +CONFIG_SENSORS_DME1737=m +CONFIG_SENSORS_EMC1403=m +CONFIG_SENSORS_EMC2103=m +CONFIG_SENSORS_EMC6W201=m +CONFIG_SENSORS_SMSC47M1=m +CONFIG_SENSORS_SMSC47M192=m +CONFIG_SENSORS_SMSC47B397=m +CONFIG_SENSORS_SCH56XX_COMMON=m +CONFIG_SENSORS_SCH5627=m +CONFIG_SENSORS_SCH5636=m +CONFIG_SENSORS_STTS751=m +CONFIG_SENSORS_SMM665=m +CONFIG_SENSORS_ADC128D818=m +CONFIG_SENSORS_ADS1015=m +CONFIG_SENSORS_ADS7828=m +CONFIG_SENSORS_ADS7871=m +CONFIG_SENSORS_AMC6821=m +CONFIG_SENSORS_INA209=m +CONFIG_SENSORS_INA2XX=m +CONFIG_SENSORS_INA3221=m +CONFIG_SENSORS_TC74=m +CONFIG_SENSORS_THMC50=m +CONFIG_SENSORS_TMP102=m +CONFIG_SENSORS_TMP103=m # CONFIG_SENSORS_TMP108 is not set -# CONFIG_SENSORS_TMP401 is not set -# CONFIG_SENSORS_TMP421 is not set -# CONFIG_SENSORS_VT1211 is not set +CONFIG_SENSORS_TMP401=m +CONFIG_SENSORS_TMP421=m +CONFIG_SENSORS_VT1211=m CONFIG_SENSORS_W83773G=m -# CONFIG_SENSORS_W83781D is not set -# CONFIG_SENSORS_W83791D is not set -# CONFIG_SENSORS_W83792D is not set -# CONFIG_SENSORS_W83793 is not set -# CONFIG_SENSORS_W83795 is not set -# CONFIG_SENSORS_W83L785TS is not set -# CONFIG_SENSORS_W83L786NG is not set -# CONFIG_SENSORS_W83627HF is not set -# CONFIG_SENSORS_W83627EHF is not set -CONFIG_THERMAL=y +CONFIG_SENSORS_W83781D=m +CONFIG_SENSORS_W83791D=m +CONFIG_SENSORS_W83792D=m +CONFIG_SENSORS_W83793=m +CONFIG_SENSORS_W83795=m +# CONFIG_SENSORS_W83795_FANCTRL is not set +CONFIG_SENSORS_W83L785TS=m +CONFIG_SENSORS_W83L786NG=m +CONFIG_SENSORS_W83627HF=m +CONFIG_SENSORS_W83627EHF=m +CONFIG_THERMAL=m # CONFIG_THERMAL_STATISTICS is not set CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 CONFIG_THERMAL_HWMON=y @@ -2759,6 +2803,7 @@ CONFIG_THERMAL_EMULATION=y # # ACPI INT340X thermal drivers # +CONFIG_SUN50I_H6_THS=m # CONFIG_QCOM_SPMI_TEMP_ALARM is not set # CONFIG_GENERIC_ADC_THERMAL is not set CONFIG_WATCHDOG=y @@ -2778,7 +2823,7 @@ CONFIG_SOFT_WATCHDOG=m # CONFIG_ARM_SBSA_WATCHDOG is not set # CONFIG_CADENCE_WATCHDOG is not set # CONFIG_DW_WATCHDOG is not set -# CONFIG_SUNXI_WATCHDOG is not set +CONFIG_SUNXI_WATCHDOG=y # CONFIG_MAX63XX_WATCHDOG is not set # CONFIG_MEN_A21_WDT is not set @@ -2822,7 +2867,7 @@ CONFIG_MFD_SUN4I_GPADC=m CONFIG_MFD_BD9571MWV=m # CONFIG_MFD_AC100 is not set CONFIG_MFD_AXP20X=y -# CONFIG_MFD_AXP20X_I2C is not set +CONFIG_MFD_AXP20X_I2C=y CONFIG_MFD_AXP20X_RSB=y # CONFIG_MFD_CROS_EC is not set # CONFIG_PMIC_DA903X is not set @@ -2892,7 +2937,7 @@ CONFIG_MFD_SYSCON=y # CONFIG_MFD_TPS80031 is not set # CONFIG_TWL4030_CORE is not set # CONFIG_TWL6040_CORE is not set -# CONFIG_MFD_WL1273_CORE is not set +CONFIG_MFD_WL1273_CORE=m # CONFIG_MFD_LM3533 is not set # CONFIG_MFD_TC3589X is not set # CONFIG_MFD_ARIZONA_I2C is not set @@ -2940,6 +2985,7 @@ CONFIG_REGULATOR_QCOM_SPMI=y # CONFIG_REGULATOR_S2MPA01 is not set CONFIG_REGULATOR_S2MPS11=y # CONFIG_REGULATOR_S5M8767 is not set +CONFIG_REGULATOR_SY8106A=m # CONFIG_REGULATOR_TPS51632 is not set # CONFIG_REGULATOR_TPS62360 is not set # CONFIG_REGULATOR_TPS65023 is not set @@ -2989,23 +3035,32 @@ CONFIG_MEDIA_SUPPORT=m # Multimedia core support # CONFIG_MEDIA_CAMERA_SUPPORT=y -# CONFIG_MEDIA_ANALOG_TV_SUPPORT is not set -# CONFIG_MEDIA_DIGITAL_TV_SUPPORT is not set -# CONFIG_MEDIA_RADIO_SUPPORT is not set -# CONFIG_MEDIA_SDR_SUPPORT is not set +CONFIG_MEDIA_ANALOG_TV_SUPPORT=y +CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y +CONFIG_MEDIA_RADIO_SUPPORT=y +CONFIG_MEDIA_SDR_SUPPORT=y # CONFIG_MEDIA_CEC_SUPPORT is not set # CONFIG_MEDIA_CEC_RC is not set # CONFIG_CEC_PIN_ERROR_INJ is not set CONFIG_MEDIA_CONTROLLER=y +# CONFIG_MEDIA_CONTROLLER_DVB is not set CONFIG_VIDEO_DEV=m CONFIG_VIDEO_V4L2_SUBDEV_API=y CONFIG_VIDEO_V4L2=m # CONFIG_VIDEO_ADV_DEBUG is not set -# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set +CONFIG_VIDEO_FIXED_MINOR_RANGES=y CONFIG_VIDEO_TUNER=m CONFIG_V4L2_FWNODE=m CONFIG_VIDEOBUF_GEN=m CONFIG_VIDEOBUF_VMALLOC=m +CONFIG_DVB_CORE=m +# CONFIG_DVB_MMAP is not set +CONFIG_DVB_NET=y +CONFIG_TTPCI_EEPROM=m +CONFIG_DVB_MAX_ADAPTERS=8 +CONFIG_DVB_DYNAMIC_MINORS=y +# CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set +# CONFIG_DVB_ULE_DEBUG is not set # # Media drivers @@ -3018,55 +3073,55 @@ CONFIG_MEDIA_USB_SUPPORT=y CONFIG_USB_VIDEO_CLASS=m CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y CONFIG_USB_GSPCA=m -# CONFIG_USB_M5602 is not set -# CONFIG_USB_STV06XX is not set -# CONFIG_USB_GL860 is not set -# CONFIG_USB_GSPCA_BENQ is not set -# CONFIG_USB_GSPCA_CONEX is not set -# CONFIG_USB_GSPCA_CPIA1 is not set -# CONFIG_USB_GSPCA_DTCS033 is not set -# CONFIG_USB_GSPCA_ETOMS is not set -# CONFIG_USB_GSPCA_FINEPIX is not set -# CONFIG_USB_GSPCA_JEILINJ is not set -# CONFIG_USB_GSPCA_JL2005BCD is not set -# CONFIG_USB_GSPCA_KINECT is not set -# CONFIG_USB_GSPCA_KONICA is not set -# CONFIG_USB_GSPCA_MARS is not set -# CONFIG_USB_GSPCA_MR97310A is not set -# CONFIG_USB_GSPCA_NW80X is not set -# CONFIG_USB_GSPCA_OV519 is not set -# CONFIG_USB_GSPCA_OV534 is not set -# CONFIG_USB_GSPCA_OV534_9 is not set -# CONFIG_USB_GSPCA_PAC207 is not set -# CONFIG_USB_GSPCA_PAC7302 is not set -# CONFIG_USB_GSPCA_PAC7311 is not set -# CONFIG_USB_GSPCA_SE401 is not set -# CONFIG_USB_GSPCA_SN9C2028 is not set -# CONFIG_USB_GSPCA_SN9C20X is not set -# CONFIG_USB_GSPCA_SONIXB is not set -# CONFIG_USB_GSPCA_SONIXJ is not set -# CONFIG_USB_GSPCA_SPCA500 is not set -# CONFIG_USB_GSPCA_SPCA501 is not set -# CONFIG_USB_GSPCA_SPCA505 is not set -# CONFIG_USB_GSPCA_SPCA506 is not set -# CONFIG_USB_GSPCA_SPCA508 is not set -# CONFIG_USB_GSPCA_SPCA561 is not set -# CONFIG_USB_GSPCA_SPCA1528 is not set -# CONFIG_USB_GSPCA_SQ905 is not set -# CONFIG_USB_GSPCA_SQ905C is not set -# CONFIG_USB_GSPCA_SQ930X is not set -# CONFIG_USB_GSPCA_STK014 is not set -# CONFIG_USB_GSPCA_STK1135 is not set -# CONFIG_USB_GSPCA_STV0680 is not set -# CONFIG_USB_GSPCA_SUNPLUS is not set -# CONFIG_USB_GSPCA_T613 is not set -# CONFIG_USB_GSPCA_TOPRO is not set -# CONFIG_USB_GSPCA_TOUPTEK is not set -# CONFIG_USB_GSPCA_TV8532 is not set -# CONFIG_USB_GSPCA_VC032X is not set -# CONFIG_USB_GSPCA_VICAM is not set -# CONFIG_USB_GSPCA_XIRLINK_CIT is not set -# CONFIG_USB_GSPCA_ZC3XX is not set +CONFIG_USB_M5602=m +CONFIG_USB_STV06XX=m +CONFIG_USB_GL860=m +CONFIG_USB_GSPCA_BENQ=m +CONFIG_USB_GSPCA_CONEX=m +CONFIG_USB_GSPCA_CPIA1=m +CONFIG_USB_GSPCA_DTCS033=m +CONFIG_USB_GSPCA_ETOMS=m +CONFIG_USB_GSPCA_FINEPIX=m +CONFIG_USB_GSPCA_JEILINJ=m +CONFIG_USB_GSPCA_JL2005BCD=m +CONFIG_USB_GSPCA_KINECT=m +CONFIG_USB_GSPCA_KONICA=m +CONFIG_USB_GSPCA_MARS=m +CONFIG_USB_GSPCA_MR97310A=m +CONFIG_USB_GSPCA_NW80X=m +CONFIG_USB_GSPCA_OV519=m +CONFIG_USB_GSPCA_OV534=m +CONFIG_USB_GSPCA_OV534_9=m +CONFIG_USB_GSPCA_PAC207=m +CONFIG_USB_GSPCA_PAC7302=m +CONFIG_USB_GSPCA_PAC7311=m +CONFIG_USB_GSPCA_SE401=m +CONFIG_USB_GSPCA_SN9C2028=m +CONFIG_USB_GSPCA_SN9C20X=m +CONFIG_USB_GSPCA_SONIXB=m +CONFIG_USB_GSPCA_SONIXJ=m +CONFIG_USB_GSPCA_SPCA500=m +CONFIG_USB_GSPCA_SPCA501=m +CONFIG_USB_GSPCA_SPCA505=m +CONFIG_USB_GSPCA_SPCA506=m +CONFIG_USB_GSPCA_SPCA508=m +CONFIG_USB_GSPCA_SPCA561=m +CONFIG_USB_GSPCA_SPCA1528=m +CONFIG_USB_GSPCA_SQ905=m +CONFIG_USB_GSPCA_SQ905C=m +CONFIG_USB_GSPCA_SQ930X=m +CONFIG_USB_GSPCA_STK014=m +CONFIG_USB_GSPCA_STK1135=m +CONFIG_USB_GSPCA_STV0680=m +CONFIG_USB_GSPCA_SUNPLUS=m +CONFIG_USB_GSPCA_T613=m +CONFIG_USB_GSPCA_TOPRO=m +CONFIG_USB_GSPCA_TOUPTEK=m +CONFIG_USB_GSPCA_TV8532=m +CONFIG_USB_GSPCA_VC032X=m +CONFIG_USB_GSPCA_VICAM=m +CONFIG_USB_GSPCA_XIRLINK_CIT=m +CONFIG_USB_GSPCA_ZC3XX=m CONFIG_USB_PWC=m # CONFIG_USB_PWC_DEBUG is not set CONFIG_USB_PWC_INPUT_EVDEV=y @@ -3076,44 +3131,164 @@ CONFIG_USB_STKWEBCAM=m CONFIG_USB_S2255=m CONFIG_VIDEO_USBTV=m +# +# Analog TV USB devices +# +CONFIG_VIDEO_PVRUSB2=m +CONFIG_VIDEO_PVRUSB2_SYSFS=y +CONFIG_VIDEO_PVRUSB2_DVB=y +# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set +CONFIG_VIDEO_HDPVR=m +CONFIG_VIDEO_USBVISION=m +CONFIG_VIDEO_STK1160_COMMON=m +CONFIG_VIDEO_STK1160=m +# CONFIG_VIDEO_GO7007 is not set + +# +# Analog/digital TV USB devices +# +CONFIG_VIDEO_AU0828=m +CONFIG_VIDEO_AU0828_V4L2=y +# CONFIG_VIDEO_AU0828_RC is not set +CONFIG_VIDEO_CX231XX=m +CONFIG_VIDEO_CX231XX_RC=y +CONFIG_VIDEO_CX231XX_ALSA=m +CONFIG_VIDEO_CX231XX_DVB=m +CONFIG_VIDEO_TM6000=m +CONFIG_VIDEO_TM6000_ALSA=m +CONFIG_VIDEO_TM6000_DVB=m + +# +# Digital TV USB devices +# +CONFIG_DVB_USB=m +# CONFIG_DVB_USB_DEBUG is not set +CONFIG_DVB_USB_DIB3000MC=m +CONFIG_DVB_USB_A800=m +CONFIG_DVB_USB_DIBUSB_MB=m +CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y +CONFIG_DVB_USB_DIBUSB_MC=m +CONFIG_DVB_USB_DIB0700=m +CONFIG_DVB_USB_UMT_010=m +CONFIG_DVB_USB_CXUSB=m +CONFIG_DVB_USB_M920X=m +CONFIG_DVB_USB_DIGITV=m +CONFIG_DVB_USB_VP7045=m +CONFIG_DVB_USB_VP702X=m +CONFIG_DVB_USB_GP8PSK=m +CONFIG_DVB_USB_NOVA_T_USB2=m +CONFIG_DVB_USB_TTUSB2=m +CONFIG_DVB_USB_DTT200U=m +CONFIG_DVB_USB_OPERA1=m +CONFIG_DVB_USB_AF9005=m +CONFIG_DVB_USB_AF9005_REMOTE=m +CONFIG_DVB_USB_PCTV452E=m +CONFIG_DVB_USB_DW2102=m +CONFIG_DVB_USB_CINERGY_T2=m +CONFIG_DVB_USB_DTV5100=m +CONFIG_DVB_USB_FRIIO=m +CONFIG_DVB_USB_AZ6027=m +CONFIG_DVB_USB_TECHNISAT_USB2=m +CONFIG_DVB_USB_V2=m +CONFIG_DVB_USB_AF9015=m +CONFIG_DVB_USB_AF9035=m +CONFIG_DVB_USB_ANYSEE=m +CONFIG_DVB_USB_AU6610=m +CONFIG_DVB_USB_AZ6007=m +CONFIG_DVB_USB_CE6230=m +CONFIG_DVB_USB_EC168=m +CONFIG_DVB_USB_GL861=m +CONFIG_DVB_USB_LME2510=m +CONFIG_DVB_USB_MXL111SF=m +CONFIG_DVB_USB_RTL28XXU=m +CONFIG_DVB_USB_DVBSKY=m +CONFIG_DVB_USB_ZD1301=m +CONFIG_SMS_USB_DRV=m +CONFIG_DVB_B2C2_FLEXCOP_USB=m +# CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG is not set +CONFIG_DVB_AS102=m + # # Webcam, TV (analog/digital) USB devices # CONFIG_VIDEO_EM28XX=m CONFIG_VIDEO_EM28XX_V4L2=m CONFIG_VIDEO_EM28XX_ALSA=m +CONFIG_VIDEO_EM28XX_DVB=m CONFIG_VIDEO_EM28XX_RC=m + +# +# Software defined radio USB devices +# +CONFIG_USB_AIRSPY=m +CONFIG_USB_HACKRF=m +CONFIG_USB_MSI2500=m CONFIG_V4L_PLATFORM_DRIVERS=y +# CONFIG_VIDEO_CADENCE is not set CONFIG_VIDEO_MUX=m # CONFIG_SOC_CAMERA is not set CONFIG_VIDEO_XILINX=m CONFIG_VIDEO_XILINX_TPG=m CONFIG_VIDEO_XILINX_VTC=m -CONFIG_VIDEO_SUN6I_CSI=m # CONFIG_V4L_MEM2MEM_DRIVERS is not set # CONFIG_V4L_TEST_DRIVERS is not set +CONFIG_DVB_PLATFORM_DRIVERS=y +CONFIG_SDR_PLATFORM_DRIVERS=y # # Supported MMC/SDIO adapters # +CONFIG_SMS_SDIO_DRV=m +CONFIG_RADIO_ADAPTERS=y +CONFIG_RADIO_TEA575X=m +# CONFIG_RADIO_SI470X is not set +# CONFIG_RADIO_SI4713 is not set +# CONFIG_USB_MR800 is not set +CONFIG_USB_DSBR=m +CONFIG_RADIO_SHARK=m +CONFIG_RADIO_SHARK2=m +CONFIG_USB_KEENE=m +CONFIG_USB_RAREMONO=m +CONFIG_USB_MA901=m +CONFIG_RADIO_TEA5764=m +CONFIG_RADIO_SAA7706H=m +CONFIG_RADIO_TEF6862=m +CONFIG_RADIO_WL1273=m + +# +# Texas Instruments WL128x FM driver (ST based) +# +CONFIG_MEDIA_COMMON_OPTIONS=y + +# +# common driver options +# +CONFIG_VIDEO_CX2341X=m CONFIG_VIDEO_TVEEPROM=m -# CONFIG_CYPRESS_FIRMWARE is not set +CONFIG_CYPRESS_FIRMWARE=m CONFIG_VIDEOBUF2_CORE=m CONFIG_VIDEOBUF2_V4L2=m CONFIG_VIDEOBUF2_MEMOPS=m CONFIG_VIDEOBUF2_DMA_CONTIG=m CONFIG_VIDEOBUF2_VMALLOC=m +CONFIG_DVB_B2C2_FLEXCOP=m +CONFIG_SMS_SIANO_MDTV=m +CONFIG_SMS_SIANO_RC=y +# CONFIG_SMS_SIANO_DEBUGFS is not set # # Media ancillary drivers (tuners, sensors, i2c, spi, frontends) # CONFIG_MEDIA_SUBDRV_AUTOSELECT=y +CONFIG_MEDIA_ATTACH=y CONFIG_VIDEO_IR_I2C=m # # Audio decoders, processors and mixers # CONFIG_VIDEO_MSP3400=m +CONFIG_VIDEO_CS53L32A=m +CONFIG_VIDEO_WM8775=m # # RDS decoders @@ -3128,6 +3303,7 @@ CONFIG_VIDEO_TVP5150=m # # Video and audio decoders # +CONFIG_VIDEO_CX25840=m # # Video encoders @@ -3166,6 +3342,167 @@ CONFIG_VIDEO_MT9V011=m # # Media SPI Adapters # +CONFIG_CXD2880_SPI_DRV=m +CONFIG_MEDIA_TUNER=m +CONFIG_MEDIA_TUNER_SIMPLE=m +CONFIG_MEDIA_TUNER_TDA18250=m +CONFIG_MEDIA_TUNER_TDA8290=m +CONFIG_MEDIA_TUNER_TDA827X=m +CONFIG_MEDIA_TUNER_TDA18271=m +CONFIG_MEDIA_TUNER_TDA9887=m +CONFIG_MEDIA_TUNER_TEA5761=m +CONFIG_MEDIA_TUNER_TEA5767=m +CONFIG_MEDIA_TUNER_MSI001=m +CONFIG_MEDIA_TUNER_MT20XX=m +CONFIG_MEDIA_TUNER_MT2060=m +CONFIG_MEDIA_TUNER_MT2063=m +CONFIG_MEDIA_TUNER_MT2266=m +CONFIG_MEDIA_TUNER_QT1010=m +CONFIG_MEDIA_TUNER_XC2028=m +CONFIG_MEDIA_TUNER_XC5000=m +CONFIG_MEDIA_TUNER_XC4000=m +CONFIG_MEDIA_TUNER_MXL5005S=m +CONFIG_MEDIA_TUNER_MXL5007T=m +CONFIG_MEDIA_TUNER_MC44S803=m +CONFIG_MEDIA_TUNER_MAX2165=m +CONFIG_MEDIA_TUNER_TDA18218=m +CONFIG_MEDIA_TUNER_FC0011=m +CONFIG_MEDIA_TUNER_FC0012=m +CONFIG_MEDIA_TUNER_FC0013=m +CONFIG_MEDIA_TUNER_TDA18212=m +CONFIG_MEDIA_TUNER_E4000=m +CONFIG_MEDIA_TUNER_FC2580=m +CONFIG_MEDIA_TUNER_TUA9001=m +CONFIG_MEDIA_TUNER_SI2157=m +CONFIG_MEDIA_TUNER_IT913X=m +CONFIG_MEDIA_TUNER_R820T=m +CONFIG_MEDIA_TUNER_QM1D1C0042=m + +# +# Multistandard (satellite) frontends +# +CONFIG_DVB_STB0899=m +CONFIG_DVB_STB6100=m +CONFIG_DVB_STV090x=m +CONFIG_DVB_STV6110x=m +CONFIG_DVB_M88DS3103=m + +# +# Multistandard (cable + terrestrial) frontends +# +CONFIG_DVB_DRXK=m +CONFIG_DVB_TDA18271C2DD=m +CONFIG_DVB_SI2165=m +CONFIG_DVB_MN88472=m +CONFIG_DVB_MN88473=m + +# +# DVB-S (satellite) frontends +# +CONFIG_DVB_CX24123=m +CONFIG_DVB_MT312=m +CONFIG_DVB_ZL10039=m +CONFIG_DVB_S5H1420=m +CONFIG_DVB_STV0288=m +CONFIG_DVB_STB6000=m +CONFIG_DVB_STV0299=m +CONFIG_DVB_STV6110=m +CONFIG_DVB_STV0900=m +CONFIG_DVB_TDA10086=m +CONFIG_DVB_TUNER_ITD1000=m +CONFIG_DVB_TUNER_CX24113=m +CONFIG_DVB_TDA826X=m +CONFIG_DVB_CX24116=m +CONFIG_DVB_CX24120=m +CONFIG_DVB_SI21XX=m +CONFIG_DVB_TS2020=m +CONFIG_DVB_DS3000=m +CONFIG_DVB_TDA10071=m + +# +# DVB-T (terrestrial) frontends +# +CONFIG_DVB_CX22702=m +CONFIG_DVB_DRXD=m +CONFIG_DVB_TDA1004X=m +CONFIG_DVB_NXT6000=m +CONFIG_DVB_MT352=m +CONFIG_DVB_ZL10353=m +CONFIG_DVB_DIB3000MB=m +CONFIG_DVB_DIB3000MC=m +CONFIG_DVB_DIB7000M=m +CONFIG_DVB_DIB7000P=m +CONFIG_DVB_TDA10048=m +CONFIG_DVB_AF9013=m +CONFIG_DVB_EC100=m +CONFIG_DVB_CXD2820R=m +CONFIG_DVB_RTL2830=m +CONFIG_DVB_RTL2832=m +CONFIG_DVB_RTL2832_SDR=m +CONFIG_DVB_SI2168=m +CONFIG_DVB_AS102_FE=m +CONFIG_DVB_ZD1301_DEMOD=m +CONFIG_DVB_GP8PSK_FE=m + +# +# DVB-C (cable) frontends +# +CONFIG_DVB_TDA10023=m +CONFIG_DVB_STV0297=m + +# +# ATSC (North American/Korean Terrestrial/Cable DTV) frontends +# +CONFIG_DVB_NXT200X=m +CONFIG_DVB_BCM3510=m +CONFIG_DVB_LGDT330X=m +CONFIG_DVB_LGDT3305=m +CONFIG_DVB_LGDT3306A=m +CONFIG_DVB_LG2160=m +CONFIG_DVB_S5H1409=m +CONFIG_DVB_AU8522=m +CONFIG_DVB_AU8522_DTV=m +CONFIG_DVB_AU8522_V4L=m +CONFIG_DVB_S5H1411=m + +# +# ISDB-T (terrestrial) frontends +# +CONFIG_DVB_S921=m +CONFIG_DVB_DIB8000=m +CONFIG_DVB_MB86A20S=m + +# +# ISDB-S (satellite) & ISDB-T (terrestrial) frontends +# +CONFIG_DVB_TC90522=m + +# +# Digital terrestrial only tuners/PLL +# +CONFIG_DVB_PLL=m +CONFIG_DVB_TUNER_DIB0070=m +CONFIG_DVB_TUNER_DIB0090=m + +# +# SEC control devices for DVB-S +# +CONFIG_DVB_DRX39XYJ=m +CONFIG_DVB_LNBP21=m +CONFIG_DVB_LNBP22=m +CONFIG_DVB_ISL6421=m +CONFIG_DVB_ISL6423=m +CONFIG_DVB_A8293=m +CONFIG_DVB_LGS8GXX=m +CONFIG_DVB_ATBM8830=m +CONFIG_DVB_IX2505V=m +CONFIG_DVB_M88RS2000=m +CONFIG_DVB_AF9033=m + +# +# Common Interface (EN50221) controller drivers +# +CONFIG_DVB_SP2=m # # Tools to develop new frontends @@ -3175,6 +3512,7 @@ CONFIG_VIDEO_MT9V011=m # Graphics support # CONFIG_DRM=y +CONFIG_DRM_MIPI_DSI=y # CONFIG_DRM_DP_AUX_CHARDEV is not set # CONFIG_DRM_DEBUG_MM is not set CONFIG_DRM_KMS_HELPER=y @@ -3191,6 +3529,7 @@ CONFIG_DRM_KMS_CMA_HELPER=y # CONFIG_DRM_I2C_CH7006 is not set # CONFIG_DRM_I2C_SIL164 is not set # CONFIG_DRM_I2C_NXP_TDA998X is not set +# CONFIG_DRM_I2C_NXP_TDA9950 is not set # CONFIG_DRM_HDLCD is not set # CONFIG_DRM_MALI_DISPLAY is not set @@ -3209,6 +3548,7 @@ CONFIG_DRM_SUN4I=m CONFIG_DRM_SUN4I_HDMI=m CONFIG_DRM_SUN4I_HDMI_CEC=y CONFIG_DRM_SUN4I_BACKEND=m +CONFIG_DRM_SUN6I_DSI=m CONFIG_DRM_SUN8I_DW_HDMI=m CONFIG_DRM_SUN8I_MIXER=m # CONFIG_DRM_VIRTIO_GPU is not set @@ -3221,10 +3561,20 @@ CONFIG_DRM_PANEL_ARM_VERSATILE=m CONFIG_DRM_PANEL_LVDS=m CONFIG_DRM_PANEL_SIMPLE=m CONFIG_DRM_PANEL_ILITEK_IL9322=m +CONFIG_DRM_PANEL_INNOLUX_P079ZCA=m +# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set # CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set # CONFIG_DRM_PANEL_LG_LG4573 is not set +# CONFIG_DRM_PANEL_ORISETECH_OTM8009A is not set +# CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set +# CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set +# CONFIG_DRM_PANEL_RAYDIUM_RM68200 is not set +# CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set +# CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set CONFIG_DRM_PANEL_SEIKO_43WVF1G=m +# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set +# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set # CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set CONFIG_DRM_BRIDGE=y CONFIG_DRM_PANEL_BRIDGE=y @@ -3233,6 +3583,7 @@ CONFIG_DRM_PANEL_BRIDGE=y # Display Interface Bridges # CONFIG_DRM_ANALOGIX_ANX78XX=m +# CONFIG_DRM_CDNS_DSI is not set # CONFIG_DRM_DUMB_VGA_DAC is not set # CONFIG_DRM_LVDS_ENCODER is not set # CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set @@ -3241,6 +3592,7 @@ CONFIG_DRM_ANALOGIX_ANX78XX=m # CONFIG_DRM_SIL_SII8620 is not set # CONFIG_DRM_SII902X is not set CONFIG_DRM_SII9234=m +# CONFIG_DRM_THINE_THC63LVD1024 is not set # CONFIG_DRM_TOSHIBA_TC358767 is not set # CONFIG_DRM_TI_TFP410 is not set # CONFIG_DRM_I2C_ADV7511 is not set @@ -3288,7 +3640,6 @@ CONFIG_FB_MODE_HELPERS=y # CONFIG_FB_VIRTUAL is not set # CONFIG_FB_METRONOME is not set # CONFIG_FB_BROADSHEET is not set -# CONFIG_FB_AUO_K190X is not set CONFIG_FB_SIMPLE=y # CONFIG_FB_SSD1307 is not set CONFIG_BACKLIGHT_LCD_SUPPORT=y @@ -3306,6 +3657,7 @@ CONFIG_LCD_CLASS_DEVICE=m # CONFIG_LCD_AMS369FG06 is not set # CONFIG_LCD_LMS501KF03 is not set # CONFIG_LCD_HX8357 is not set +# CONFIG_LCD_OTM3225A is not set CONFIG_BACKLIGHT_CLASS_DEVICE=y CONFIG_BACKLIGHT_GENERIC=m CONFIG_BACKLIGHT_PWM=m @@ -3485,6 +3837,7 @@ CONFIG_SND_SOC_PCM186X_SPI=m # CONFIG_SND_SOC_SGTL5000 is not set # CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set CONFIG_SND_SOC_SPDIF=m +# CONFIG_SND_SOC_SSM2305 is not set # CONFIG_SND_SOC_SSM2602_SPI is not set # CONFIG_SND_SOC_SSM2602_I2C is not set # CONFIG_SND_SOC_SSM4567 is not set @@ -3507,6 +3860,7 @@ CONFIG_SND_SOC_TLV320AIC32X4_I2C=m # CONFIG_SND_SOC_TLV320AIC3X is not set # CONFIG_SND_SOC_TS3A227E is not set # CONFIG_SND_SOC_TSCS42XX is not set +# CONFIG_SND_SOC_TSCS454 is not set # CONFIG_SND_SOC_WM8510 is not set # CONFIG_SND_SOC_WM8523 is not set CONFIG_SND_SOC_WM8524=m @@ -3520,6 +3874,7 @@ CONFIG_SND_SOC_WM8524=m # CONFIG_SND_SOC_WM8753 is not set # CONFIG_SND_SOC_WM8770 is not set # CONFIG_SND_SOC_WM8776 is not set +# CONFIG_SND_SOC_WM8782 is not set # CONFIG_SND_SOC_WM8804_I2C is not set # CONFIG_SND_SOC_WM8804_SPI is not set # CONFIG_SND_SOC_WM8903 is not set @@ -3530,6 +3885,7 @@ CONFIG_SND_SOC_WM8524=m # CONFIG_SND_SOC_WM8985 is not set # CONFIG_SND_SOC_ZX_AUD96P22 is not set CONFIG_SND_SOC_MAX9759=m +CONFIG_SND_SOC_MT6351=m # CONFIG_SND_SOC_NAU8540 is not set # CONFIG_SND_SOC_NAU8810 is not set # CONFIG_SND_SOC_NAU8824 is not set @@ -3601,6 +3957,7 @@ CONFIG_HID_LOGITECH_HIDPP=y # CONFIG_LOGIWHEELS_FF is not set # CONFIG_HID_MAGICMOUSE is not set # CONFIG_HID_MAYFLASH is not set +CONFIG_HID_REDRAGON=y # CONFIG_HID_MICROSOFT is not set # CONFIG_HID_MONTEREY is not set # CONFIG_HID_MULTITOUCH is not set @@ -3619,6 +3976,7 @@ CONFIG_HID_LOGITECH_HIDPP=y # CONFIG_HID_SAMSUNG is not set # CONFIG_HID_SONY is not set # CONFIG_HID_SPEEDLINK is not set +# CONFIG_HID_STEAM is not set # CONFIG_HID_STEELSERIES is not set # CONFIG_HID_SUNPLUS is not set # CONFIG_HID_RMI is not set @@ -3674,7 +4032,7 @@ CONFIG_USB_MON=m # CONFIG_USB_C67X00_HCD is not set CONFIG_USB_XHCI_HCD=y # CONFIG_USB_XHCI_DBGCAP is not set -# CONFIG_USB_XHCI_PLATFORM is not set +CONFIG_USB_XHCI_PLATFORM=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_ROOT_HUB_TT=y CONFIG_USB_EHCI_TT_NEWSCHED=y @@ -3728,8 +4086,14 @@ CONFIG_USB_UAS=m # # CONFIG_USB_MDC800 is not set # CONFIG_USB_MICROTEK is not set -# CONFIG_USBIP_CORE is not set -CONFIG_USB_MUSB_HDRC=m +CONFIG_USBIP_CORE=m +CONFIG_USBIP_VHCI_HCD=m +CONFIG_USBIP_VHCI_HC_PORTS=8 +CONFIG_USBIP_VHCI_NR_HCS=1 +CONFIG_USBIP_HOST=m +CONFIG_USBIP_VUDC=m +# CONFIG_USBIP_DEBUG is not set +CONFIG_USB_MUSB_HDRC=y # CONFIG_USB_MUSB_HOST is not set # CONFIG_USB_MUSB_GADGET is not set CONFIG_USB_MUSB_DUAL_ROLE=y @@ -3737,13 +4101,21 @@ CONFIG_USB_MUSB_DUAL_ROLE=y # # Platform Glue Layer # -CONFIG_USB_MUSB_SUNXI=m +CONFIG_USB_MUSB_SUNXI=y # # MUSB DMA mode # # CONFIG_MUSB_PIO_ONLY is not set -# CONFIG_USB_DWC3 is not set +CONFIG_USB_DWC3=y +# CONFIG_USB_DWC3_HOST is not set +# CONFIG_USB_DWC3_GADGET is not set +CONFIG_USB_DWC3_DUAL_ROLE=y + +# +# Platform Glue Driver Support +# +CONFIG_USB_DWC3_OF_SIMPLE=m CONFIG_USB_DWC2=y # CONFIG_USB_DWC2_HOST is not set @@ -3763,56 +4135,58 @@ CONFIG_USB_DWC2_DUAL_ROLE=y CONFIG_USB_SERIAL=m CONFIG_USB_SERIAL_GENERIC=y CONFIG_USB_SERIAL_SIMPLE=m -# CONFIG_USB_SERIAL_AIRCABLE is not set -# CONFIG_USB_SERIAL_ARK3116 is not set -# CONFIG_USB_SERIAL_BELKIN is not set +CONFIG_USB_SERIAL_AIRCABLE=m +CONFIG_USB_SERIAL_ARK3116=m +CONFIG_USB_SERIAL_BELKIN=m CONFIG_USB_SERIAL_CH341=m -# CONFIG_USB_SERIAL_WHITEHEAT is not set -# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set +CONFIG_USB_SERIAL_WHITEHEAT=m +CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m CONFIG_USB_SERIAL_CP210X=m -# CONFIG_USB_SERIAL_CYPRESS_M8 is not set -# CONFIG_USB_SERIAL_EMPEG is not set +CONFIG_USB_SERIAL_CYPRESS_M8=m +CONFIG_USB_SERIAL_EMPEG=m CONFIG_USB_SERIAL_FTDI_SIO=m -# CONFIG_USB_SERIAL_VISOR is not set -# CONFIG_USB_SERIAL_IPAQ is not set -# CONFIG_USB_SERIAL_IR is not set -# CONFIG_USB_SERIAL_EDGEPORT is not set -# CONFIG_USB_SERIAL_EDGEPORT_TI is not set -# CONFIG_USB_SERIAL_F81232 is not set +CONFIG_USB_SERIAL_VISOR=m +CONFIG_USB_SERIAL_IPAQ=m +CONFIG_USB_SERIAL_IR=m +CONFIG_USB_SERIAL_EDGEPORT=m +CONFIG_USB_SERIAL_EDGEPORT_TI=m +CONFIG_USB_SERIAL_F81232=m # CONFIG_USB_SERIAL_F8153X is not set -# CONFIG_USB_SERIAL_GARMIN is not set -# CONFIG_USB_SERIAL_IPW is not set -# CONFIG_USB_SERIAL_IUU is not set -# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set -# CONFIG_USB_SERIAL_KEYSPAN is not set -# CONFIG_USB_SERIAL_KLSI is not set -# CONFIG_USB_SERIAL_KOBIL_SCT is not set -# CONFIG_USB_SERIAL_MCT_U232 is not set -# CONFIG_USB_SERIAL_METRO is not set -# CONFIG_USB_SERIAL_MOS7720 is not set -# CONFIG_USB_SERIAL_MOS7840 is not set -# CONFIG_USB_SERIAL_MXUPORT is not set -# CONFIG_USB_SERIAL_NAVMAN is not set +CONFIG_USB_SERIAL_GARMIN=m +CONFIG_USB_SERIAL_IPW=m +CONFIG_USB_SERIAL_IUU=m +CONFIG_USB_SERIAL_KEYSPAN_PDA=m +CONFIG_USB_SERIAL_KEYSPAN=m +CONFIG_USB_SERIAL_KLSI=m +CONFIG_USB_SERIAL_KOBIL_SCT=m +CONFIG_USB_SERIAL_MCT_U232=m +CONFIG_USB_SERIAL_METRO=m +CONFIG_USB_SERIAL_MOS7720=m +CONFIG_USB_SERIAL_MOS7840=m +CONFIG_USB_SERIAL_MXUPORT=m +CONFIG_USB_SERIAL_NAVMAN=m CONFIG_USB_SERIAL_PL2303=m -# CONFIG_USB_SERIAL_OTI6858 is not set -# CONFIG_USB_SERIAL_QCAUX is not set -# CONFIG_USB_SERIAL_QUALCOMM is not set -# CONFIG_USB_SERIAL_SPCP8X5 is not set -# CONFIG_USB_SERIAL_SAFE is not set -# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set -# CONFIG_USB_SERIAL_SYMBOL is not set -# CONFIG_USB_SERIAL_TI is not set -# CONFIG_USB_SERIAL_CYBERJACK is not set -# CONFIG_USB_SERIAL_XIRCOM is not set -# CONFIG_USB_SERIAL_OPTION is not set -# CONFIG_USB_SERIAL_OMNINET is not set -# CONFIG_USB_SERIAL_OPTICON is not set -# CONFIG_USB_SERIAL_XSENS_MT is not set -# CONFIG_USB_SERIAL_WISHBONE is not set -# CONFIG_USB_SERIAL_SSU100 is not set -# CONFIG_USB_SERIAL_QT2 is not set -# CONFIG_USB_SERIAL_UPD78F0730 is not set -# CONFIG_USB_SERIAL_DEBUG is not set +CONFIG_USB_SERIAL_OTI6858=m +CONFIG_USB_SERIAL_QCAUX=m +CONFIG_USB_SERIAL_QUALCOMM=m +CONFIG_USB_SERIAL_SPCP8X5=m +CONFIG_USB_SERIAL_SAFE=m +# CONFIG_USB_SERIAL_SAFE_PADDED is not set +CONFIG_USB_SERIAL_SIERRAWIRELESS=m +CONFIG_USB_SERIAL_SYMBOL=m +CONFIG_USB_SERIAL_TI=m +CONFIG_USB_SERIAL_CYBERJACK=m +CONFIG_USB_SERIAL_XIRCOM=m +CONFIG_USB_SERIAL_WWAN=m +CONFIG_USB_SERIAL_OPTION=m +CONFIG_USB_SERIAL_OMNINET=m +CONFIG_USB_SERIAL_OPTICON=m +CONFIG_USB_SERIAL_XSENS_MT=m +CONFIG_USB_SERIAL_WISHBONE=m +CONFIG_USB_SERIAL_SSU100=m +CONFIG_USB_SERIAL_QT2=m +CONFIG_USB_SERIAL_UPD78F0730=m +CONFIG_USB_SERIAL_DEBUG=m # # USB Miscellaneous drivers @@ -3837,7 +4211,7 @@ CONFIG_USB_SERIAL_PL2303=m # CONFIG_USB_EHSET_TEST_FIXTURE is not set # CONFIG_USB_ISIGHTFW is not set # CONFIG_USB_YUREX is not set -# CONFIG_USB_EZUSB_FX2 is not set +CONFIG_USB_EZUSB_FX2=m # CONFIG_USB_HUB_USB251XB is not set # CONFIG_USB_HSIC_USB3503 is not set # CONFIG_USB_HSIC_USB4604 is not set @@ -3900,6 +4274,7 @@ CONFIG_MMC_SDHCI_PLTFM=y CONFIG_MMC_SPI=y CONFIG_MMC_DW=y CONFIG_MMC_DW_PLTFM=y +# CONFIG_MMC_DW_BLUEFIELD is not set CONFIG_MMC_DW_EXYNOS=y CONFIG_MMC_DW_HI3798CV200=m CONFIG_MMC_DW_K3=y @@ -3922,6 +4297,7 @@ CONFIG_LEDS_CLASS=y # # CONFIG_LEDS_BCM6328 is not set # CONFIG_LEDS_BCM6358 is not set +# CONFIG_LEDS_CR0014114 is not set # CONFIG_LEDS_LM3530 is not set # CONFIG_LEDS_LM3642 is not set CONFIG_LEDS_LM3692X=m @@ -4083,8 +4459,8 @@ CONFIG_RTC_DRV_RV3029_HWMON=y # # on-CPU RTC drivers # -# CONFIG_RTC_DRV_PL030 is not set -# CONFIG_RTC_DRV_PL031 is not set +CONFIG_RTC_DRV_PL030=m +CONFIG_RTC_DRV_PL031=m CONFIG_RTC_DRV_SUN6I=y # CONFIG_RTC_DRV_FTRTC010 is not set # CONFIG_RTC_DRV_SNVS is not set @@ -4144,8 +4520,6 @@ CONFIG_VIRTIO_MMIO=y # Microsoft Hyper-V guest support # CONFIG_STAGING=y -# CONFIG_IPX is not set -# CONFIG_NCP_FS is not set # CONFIG_PRISM2_USB is not set # CONFIG_COMEDI is not set # CONFIG_RTLLIB is not set @@ -4162,9 +4536,7 @@ CONFIG_88EU_AP_MODE=y # # Accelerometers # -# CONFIG_ADIS16201 is not set # CONFIG_ADIS16203 is not set -# CONFIG_ADIS16209 is not set # CONFIG_ADIS16240 is not set # @@ -4204,25 +4576,15 @@ CONFIG_AD9834=m # # CONFIG_AD5933 is not set -# -# Light sensors -# -# CONFIG_TSL2x7x is not set - # # Active energy metering IC # -# CONFIG_ADE7753 is not set -# CONFIG_ADE7754 is not set -# CONFIG_ADE7758 is not set -# CONFIG_ADE7759 is not set # CONFIG_ADE7854 is not set # # Resolver to digital converters # # CONFIG_AD2S90 is not set -# CONFIG_AD2S1200 is not set # CONFIG_AD2S1210 is not set # @@ -4236,7 +4598,6 @@ CONFIG_AD9834=m # # CONFIG_STAGING_BOARD is not set # CONFIG_LTE_GDM724X is not set -# CONFIG_LNET is not set # CONFIG_GS_FPGABOOT is not set # CONFIG_UNISYSSPAR is not set # CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set @@ -4436,6 +4797,8 @@ CONFIG_IIO_CONSUMERS_PER_TRIGGER=2 # # Accelerometers # +# CONFIG_ADIS16201 is not set +# CONFIG_ADIS16209 is not set # CONFIG_ADXL345_I2C is not set # CONFIG_ADXL345_SPI is not set # CONFIG_BMA180 is not set @@ -4511,6 +4874,11 @@ CONFIG_SUN4I_GPADC=m # CONFIG_TI_TLC4541 is not set # CONFIG_VF610_ADC is not set +# +# Analog Front Ends +# +# CONFIG_IIO_RESCALE is not set + # # Amplifiers # @@ -4551,7 +4919,8 @@ CONFIG_SUN4I_GPADC=m # CONFIG_AD5504 is not set # CONFIG_AD5624R_SPI is not set # CONFIG_LTC2632 is not set -# CONFIG_AD5686 is not set +# CONFIG_AD5686_SPI is not set +# CONFIG_AD5696_I2C is not set # CONFIG_AD5755 is not set # CONFIG_AD5761 is not set # CONFIG_AD5764 is not set @@ -4566,6 +4935,7 @@ CONFIG_SUN4I_GPADC=m # CONFIG_MCP4725 is not set # CONFIG_MCP4922 is not set # CONFIG_TI_DAC082S085 is not set +# CONFIG_TI_DAC5571 is not set # CONFIG_VF610_DAC is not set # @@ -4666,6 +5036,7 @@ CONFIG_LV0104CS=m # CONFIG_TCS3472 is not set # CONFIG_SENSORS_TSL2563 is not set # CONFIG_TSL2583 is not set +# CONFIG_TSL2772 is not set # CONFIG_TSL4531 is not set # CONFIG_US5182D is not set # CONFIG_VCNL4000 is not set @@ -4749,6 +5120,11 @@ CONFIG_MCP4018=m # CONFIG_SX9500 is not set # CONFIG_SRF08 is not set +# +# Resolver to digital converters +# +# CONFIG_AD2S1200 is not set + # # Temperature sensors # @@ -4789,7 +5165,7 @@ CONFIG_GENERIC_PHY=y # CONFIG_PHY_XGENE is not set CONFIG_PHY_SUN4I_USB=y CONFIG_PHY_SUN9I_USB=y -CONFIG_PHY_SUN50I_USB3=m +CONFIG_PHY_SUN50I_USB3=y # CONFIG_BCM_KONA_USB2_PHY is not set # CONFIG_PHY_PXA_28NM_HSIC is not set # CONFIG_PHY_PXA_28NM_USB2 is not set @@ -4802,6 +5178,7 @@ CONFIG_PHY_SAMSUNG_USB2=y # # Performance monitor support # +CONFIG_ARM_CCI_PMU=m # CONFIG_ARM_CCI400_PMU is not set # CONFIG_ARM_CCI5xx_PMU is not set # CONFIG_ARM_CCN is not set @@ -4921,6 +5298,7 @@ CONFIG_PRINT_QUOTA_WARNING=y # CONFIG_QFMT_V2 is not set CONFIG_QUOTACTL=y CONFIG_AUTOFS4_FS=y +CONFIG_AUTOFS_FS=y CONFIG_FUSE_FS=m CONFIG_CUSE=m CONFIG_OVERLAY_FS=m @@ -4975,6 +5353,7 @@ CONFIG_TMPFS_POSIX_ACL=y CONFIG_TMPFS_XATTR=y CONFIG_HUGETLBFS=y CONFIG_HUGETLB_PAGE=y +CONFIG_MEMFD_CREATE=y CONFIG_ARCH_HAS_GIGANTIC_PAGE=y CONFIG_CONFIGFS_FS=y CONFIG_MISC_FILESYSTEMS=y @@ -5169,6 +5548,7 @@ CONFIG_DEBUG_MEMORY_INIT=y CONFIG_HAVE_ARCH_KASAN=y # CONFIG_KASAN is not set CONFIG_ARCH_HAS_KCOV=y +CONFIG_CC_HAS_SANCOV_TRACE_PC=y # CONFIG_KCOV is not set # @@ -5214,6 +5594,7 @@ CONFIG_RUNTIME_TESTING_MENU=y # CONFIG_TEST_PRINTF is not set # CONFIG_TEST_BITMAP is not set # CONFIG_TEST_UUID is not set +CONFIG_TEST_OVERFLOW=m # CONFIG_TEST_RHASHTABLE is not set # CONFIG_TEST_HASH is not set # CONFIG_TEST_LKM is not set @@ -5331,6 +5712,11 @@ CONFIG_CRYPTO_SIMD=y CONFIG_CRYPTO_CCM=m CONFIG_CRYPTO_GCM=y # CONFIG_CRYPTO_CHACHA20POLY1305 is not set +# CONFIG_CRYPTO_AEGIS128 is not set +# CONFIG_CRYPTO_AEGIS128L is not set +# CONFIG_CRYPTO_AEGIS256 is not set +# CONFIG_CRYPTO_MORUS640 is not set +# CONFIG_CRYPTO_MORUS1280 is not set CONFIG_CRYPTO_SEQIV=y CONFIG_CRYPTO_ECHAINIV=y @@ -5411,6 +5797,7 @@ CONFIG_CRYPTO_LZO=y # CONFIG_CRYPTO_842 is not set CONFIG_CRYPTO_LZ4=y CONFIG_CRYPTO_LZ4HC=y +# CONFIG_CRYPTO_ZSTD is not set # # Random Number Generation @@ -5452,6 +5839,7 @@ CONFIG_CRYPTO_SHA2_ARM64_CE=y # CONFIG_CRYPTO_SHA512_ARM64_CE is not set # CONFIG_CRYPTO_SHA3_ARM64 is not set # CONFIG_CRYPTO_SM3_ARM64_CE is not set +# CONFIG_CRYPTO_SM4_ARM64_CE is not set CONFIG_CRYPTO_GHASH_ARM64_CE=y CONFIG_CRYPTO_CRC32_ARM64_CE=y CONFIG_CRYPTO_AES_ARM64=y @@ -5475,6 +5863,7 @@ CONFIG_GENERIC_STRNLEN_USER=y CONFIG_GENERIC_NET_UTILS=y CONFIG_GENERIC_PCI_IOMAP=y CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y +CONFIG_ARCH_HAS_FAST_MULTIPLIER=y # CONFIG_INDIRECT_PIO is not set CONFIG_CRC_CCITT=y CONFIG_CRC16=y @@ -5528,8 +5917,13 @@ CONFIG_RADIX_TREE_MULTIORDER=y CONFIG_ASSOCIATIVE_ARRAY=y CONFIG_HAS_IOMEM=y CONFIG_HAS_DMA=y -CONFIG_SGL_ALLOC=y +CONFIG_NEED_SG_DMA_LENGTH=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_ARCH_DMA_ADDR_T_64BIT=y +CONFIG_HAVE_GENERIC_DMA_COHERENT=y CONFIG_DMA_DIRECT_OPS=y +CONFIG_SWIOTLB=y +CONFIG_SGL_ALLOC=y CONFIG_CPU_RMAP=y CONFIG_DQL=y CONFIG_GLOB=y diff --git a/config/kernel/linux-sunxi64-next.config b/config/kernel/linux-sunxi64-next.config index 492e787340..d5ee7c290b 100644 --- a/config/kernel/linux-sunxi64-next.config +++ b/config/kernel/linux-sunxi64-next.config @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm64 4.17.11 Kernel Configuration +# Linux/arm64 4.17.13 Kernel Configuration # CONFIG_ARM64=y CONFIG_64BIT=y @@ -1375,7 +1375,6 @@ CONFIG_CFG80211_WEXT=y CONFIG_LIB80211=m CONFIG_LIB80211_CRYPT_WEP=m CONFIG_LIB80211_CRYPT_CCMP=m -CONFIG_LIB80211_CRYPT_TKIP=m # CONFIG_LIB80211_DEBUG is not set CONFIG_MAC80211=m CONFIG_MAC80211_HAS_RC=y @@ -1791,13 +1790,15 @@ CONFIG_NLMON=m # CONFIG_NET_DSA_SMSC_LAN9303_I2C is not set # CONFIG_NET_DSA_SMSC_LAN9303_MDIO is not set CONFIG_ETHERNET=y -# CONFIG_NET_VENDOR_ALACRITECH is not set +CONFIG_NET_VENDOR_ALACRITECH=y CONFIG_NET_VENDOR_ALLWINNER=y -# CONFIG_SUN4I_EMAC is not set +CONFIG_SUN4I_EMAC=y # CONFIG_ALTERA_TSE is not set -# CONFIG_NET_VENDOR_AMAZON is not set -# CONFIG_NET_VENDOR_AMD is not set -# CONFIG_NET_VENDOR_AQUANTIA is not set +CONFIG_NET_VENDOR_AMAZON=y +CONFIG_NET_VENDOR_AMD=y +CONFIG_AMD_XGBE=m +# CONFIG_AMD_XGBE_DCB is not set +CONFIG_NET_VENDOR_AQUANTIA=y # CONFIG_NET_VENDOR_ARC is not set # CONFIG_NET_VENDOR_AURORA is not set # CONFIG_NET_CADENCE is not set @@ -1805,8 +1806,16 @@ CONFIG_NET_VENDOR_ALLWINNER=y CONFIG_NET_VENDOR_CORTINA=y # CONFIG_GEMINI_ETHERNET is not set # CONFIG_DNET is not set -# CONFIG_NET_VENDOR_EZCHIP is not set -# CONFIG_NET_VENDOR_HISILICON is not set +CONFIG_NET_VENDOR_EZCHIP=y +# CONFIG_EZCHIP_NPS_MANAGEMENT_ENET is not set +CONFIG_NET_VENDOR_HISILICON=y +# CONFIG_HIX5HD2_GMAC is not set +# CONFIG_HISI_FEMAC is not set +CONFIG_HIP04_ETH=m +CONFIG_HNS_MDIO=m +# CONFIG_HNS is not set +# CONFIG_HNS_DSAF is not set +# CONFIG_HNS_ENET is not set CONFIG_NET_VENDOR_HUAWEI=y # CONFIG_NET_VENDOR_INTEL is not set # CONFIG_NET_VENDOR_MARVELL is not set @@ -1854,7 +1863,7 @@ CONFIG_MDIO_BUS_MUX=y # CONFIG_MDIO_GPIO is not set # CONFIG_MDIO_HISI_FEMAC is not set # CONFIG_MDIO_OCTEON is not set -CONFIG_MDIO_SUN4I=y +CONFIG_MDIO_SUN4I=m CONFIG_PHYLIB=y CONFIG_SWPHY=y CONFIG_LED_TRIGGER_PHY=y @@ -1862,37 +1871,38 @@ CONFIG_LED_TRIGGER_PHY=y # # MII PHY device drivers # -# CONFIG_AMD_PHY is not set -# CONFIG_AQUANTIA_PHY is not set -# CONFIG_AT803X_PHY is not set +CONFIG_AMD_PHY=m +CONFIG_AQUANTIA_PHY=m +CONFIG_AT803X_PHY=m # CONFIG_BCM7XXX_PHY is not set -# CONFIG_BCM87XX_PHY is not set -# CONFIG_BROADCOM_PHY is not set -# CONFIG_CICADA_PHY is not set +CONFIG_BCM87XX_PHY=m +CONFIG_BCM_NET_PHYLIB=m +CONFIG_BROADCOM_PHY=m +CONFIG_CICADA_PHY=m # CONFIG_CORTINA_PHY is not set -# CONFIG_DAVICOM_PHY is not set +CONFIG_DAVICOM_PHY=m # CONFIG_DP83822_PHY is not set -# CONFIG_DP83848_PHY is not set +CONFIG_DP83848_PHY=m # CONFIG_DP83867_PHY is not set CONFIG_FIXED_PHY=y -# CONFIG_ICPLUS_PHY is not set +CONFIG_ICPLUS_PHY=m # CONFIG_INTEL_XWAY_PHY is not set -# CONFIG_LSI_ET1011C_PHY is not set -# CONFIG_LXT_PHY is not set -# CONFIG_MARVELL_PHY is not set +CONFIG_LSI_ET1011C_PHY=m +CONFIG_LXT_PHY=m +CONFIG_MARVELL_PHY=m # CONFIG_MARVELL_10G_PHY is not set -# CONFIG_MICREL_PHY is not set +CONFIG_MICREL_PHY=m CONFIG_MICROCHIP_PHY=m # CONFIG_MICROSEMI_PHY is not set -# CONFIG_NATIONAL_PHY is not set -# CONFIG_QSEMI_PHY is not set -CONFIG_REALTEK_PHY=y +CONFIG_NATIONAL_PHY=m +CONFIG_QSEMI_PHY=m +CONFIG_REALTEK_PHY=m # CONFIG_RENESAS_PHY is not set -CONFIG_ROCKCHIP_PHY=m -# CONFIG_SMSC_PHY is not set -# CONFIG_STE10XP is not set -# CONFIG_TERANETICS_PHY is not set -# CONFIG_VITESSE_PHY is not set +# CONFIG_ROCKCHIP_PHY is not set +CONFIG_SMSC_PHY=m +CONFIG_STE10XP=m +CONFIG_TERANETICS_PHY=m +CONFIG_VITESSE_PHY=m # CONFIG_XILINX_GMII2RGMII is not set # CONFIG_MICREL_KS8995MA is not set CONFIG_PPP=m @@ -1908,7 +1918,7 @@ CONFIG_PPP_ASYNC=m CONFIG_PPP_SYNC_TTY=m # CONFIG_SLIP is not set CONFIG_SLHC=m -CONFIG_USB_NET_DRIVERS=y +CONFIG_USB_NET_DRIVERS=m CONFIG_USB_CATC=m CONFIG_USB_KAWETH=m CONFIG_USB_PEGASUS=m @@ -2781,17 +2791,18 @@ CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE=y CONFIG_THERMAL_GOV_FAIR_SHARE=y CONFIG_THERMAL_GOV_STEP_WISE=y CONFIG_THERMAL_GOV_BANG_BANG=y -# CONFIG_THERMAL_GOV_USER_SPACE is not set +CONFIG_THERMAL_GOV_USER_SPACE=y CONFIG_THERMAL_GOV_POWER_ALLOCATOR=y CONFIG_CPU_THERMAL=y CONFIG_CLOCK_THERMAL=y -# CONFIG_DEVFREQ_THERMAL is not set -# CONFIG_THERMAL_EMULATION is not set +CONFIG_DEVFREQ_THERMAL=y +CONFIG_THERMAL_EMULATION=y # CONFIG_QORIQ_THERMAL is not set # # ACPI INT340X thermal drivers # +CONFIG_SUN50I_H6_THS=m # CONFIG_QCOM_SPMI_TEMP_ALARM is not set CONFIG_GENERIC_ADC_THERMAL=m CONFIG_WATCHDOG=y @@ -2803,7 +2814,7 @@ CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y # # Watchdog Device Drivers # -# CONFIG_SOFT_WATCHDOG is not set +CONFIG_SOFT_WATCHDOG=m CONFIG_GPIO_WATCHDOG=m # CONFIG_XILINX_WATCHDOG is not set # CONFIG_ZIIRAVE_WATCHDOG is not set @@ -2855,7 +2866,7 @@ CONFIG_MFD_SUN4I_GPADC=m CONFIG_MFD_BD9571MWV=m # CONFIG_MFD_AC100 is not set CONFIG_MFD_AXP20X=y -# CONFIG_MFD_AXP20X_I2C is not set +CONFIG_MFD_AXP20X_I2C=y CONFIG_MFD_AXP20X_RSB=y # CONFIG_MFD_CROS_EC is not set # CONFIG_PMIC_DA903X is not set @@ -2984,7 +2995,7 @@ CONFIG_REGULATOR_SY8106A=m CONFIG_CEC_CORE=y CONFIG_CEC_NOTIFIER=y CONFIG_CEC_PIN=y -CONFIG_RC_CORE=y +CONFIG_RC_CORE=m CONFIG_RC_MAP=m CONFIG_LIRC=y CONFIG_RC_DECODERS=y @@ -3002,7 +3013,7 @@ CONFIG_RC_DEVICES=y # CONFIG_RC_ATI_REMOTE is not set # CONFIG_IR_HIX5HD2 is not set # CONFIG_IR_IMON is not set -# CONFIG_IR_IMON_RAW is not set +CONFIG_IR_IMON_RAW=m # CONFIG_IR_MCEUSB is not set # CONFIG_IR_REDRAT3 is not set CONFIG_IR_SPI=m @@ -3013,11 +3024,11 @@ CONFIG_IR_SPI=m # CONFIG_RC_LOOPBACK is not set # CONFIG_IR_GPIO_CIR is not set CONFIG_IR_GPIO_TX=m -# CONFIG_IR_PWM_TX is not set +CONFIG_IR_PWM_TX=m CONFIG_IR_SUNXI=m # CONFIG_IR_SERIAL is not set # CONFIG_IR_SIR is not set -CONFIG_MEDIA_SUPPORT=y +CONFIG_MEDIA_SUPPORT=m # # Multimedia core support @@ -3028,13 +3039,12 @@ CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y CONFIG_MEDIA_RADIO_SUPPORT=y CONFIG_MEDIA_SDR_SUPPORT=y # CONFIG_MEDIA_CEC_SUPPORT is not set -# CONFIG_MEDIA_CEC_RC is not set # CONFIG_CEC_PIN_ERROR_INJ is not set CONFIG_MEDIA_CONTROLLER=y # CONFIG_MEDIA_CONTROLLER_DVB is not set -CONFIG_VIDEO_DEV=y +CONFIG_VIDEO_DEV=m CONFIG_VIDEO_V4L2_SUBDEV_API=y -CONFIG_VIDEO_V4L2=y +CONFIG_VIDEO_V4L2=m # CONFIG_VIDEO_ADV_DEBUG is not set CONFIG_VIDEO_FIXED_MINOR_RANGES=y CONFIG_VIDEO_TUNER=m @@ -3042,7 +3052,7 @@ CONFIG_V4L2_FWNODE=m CONFIG_VIDEOBUF_GEN=m CONFIG_VIDEOBUF_VMALLOC=m CONFIG_VIDEOBUF_DVB=m -CONFIG_DVB_CORE=y +CONFIG_DVB_CORE=m # CONFIG_DVB_MMAP is not set CONFIG_DVB_NET=y CONFIG_TTPCI_EEPROM=m @@ -3178,7 +3188,7 @@ CONFIG_DVB_USB_DTV5100=m CONFIG_DVB_USB_FRIIO=m CONFIG_DVB_USB_AZ6027=m CONFIG_DVB_USB_TECHNISAT_USB2=m -CONFIG_DVB_USB_V2=y +CONFIG_DVB_USB_V2=m CONFIG_DVB_USB_AF9015=m CONFIG_DVB_USB_AF9035=m CONFIG_DVB_USB_ANYSEE=m @@ -3270,7 +3280,7 @@ CONFIG_SMS_SIANO_RC=y # CONFIG_MEDIA_SUBDRV_AUTOSELECT=y CONFIG_MEDIA_ATTACH=y -CONFIG_VIDEO_IR_I2C=y +CONFIG_VIDEO_IR_I2C=m # # Audio decoders, processors and mixers @@ -3332,27 +3342,27 @@ CONFIG_VIDEO_MT9V011=m # Media SPI Adapters # CONFIG_CXD2880_SPI_DRV=m -CONFIG_MEDIA_TUNER=y -CONFIG_MEDIA_TUNER_SIMPLE=y +CONFIG_MEDIA_TUNER=m +CONFIG_MEDIA_TUNER_SIMPLE=m CONFIG_MEDIA_TUNER_TDA18250=m -CONFIG_MEDIA_TUNER_TDA8290=y -CONFIG_MEDIA_TUNER_TDA827X=y -CONFIG_MEDIA_TUNER_TDA18271=y -CONFIG_MEDIA_TUNER_TDA9887=y -CONFIG_MEDIA_TUNER_TEA5761=y -CONFIG_MEDIA_TUNER_TEA5767=y +CONFIG_MEDIA_TUNER_TDA8290=m +CONFIG_MEDIA_TUNER_TDA827X=m +CONFIG_MEDIA_TUNER_TDA18271=m +CONFIG_MEDIA_TUNER_TDA9887=m +CONFIG_MEDIA_TUNER_TEA5761=m +CONFIG_MEDIA_TUNER_TEA5767=m CONFIG_MEDIA_TUNER_MSI001=m -CONFIG_MEDIA_TUNER_MT20XX=y +CONFIG_MEDIA_TUNER_MT20XX=m CONFIG_MEDIA_TUNER_MT2060=m CONFIG_MEDIA_TUNER_MT2063=m CONFIG_MEDIA_TUNER_MT2266=m CONFIG_MEDIA_TUNER_QT1010=m -CONFIG_MEDIA_TUNER_XC2028=y -CONFIG_MEDIA_TUNER_XC5000=y -CONFIG_MEDIA_TUNER_XC4000=y +CONFIG_MEDIA_TUNER_XC2028=m +CONFIG_MEDIA_TUNER_XC5000=m +CONFIG_MEDIA_TUNER_XC4000=m CONFIG_MEDIA_TUNER_MXL5005S=m CONFIG_MEDIA_TUNER_MXL5007T=m -CONFIG_MEDIA_TUNER_MC44S803=y +CONFIG_MEDIA_TUNER_MC44S803=m CONFIG_MEDIA_TUNER_MAX2165=m CONFIG_MEDIA_TUNER_TDA18218=m CONFIG_MEDIA_TUNER_FC0011=m @@ -4019,7 +4029,7 @@ CONFIG_USB_MON=m # CONFIG_USB_C67X00_HCD is not set CONFIG_USB_XHCI_HCD=y # CONFIG_USB_XHCI_DBGCAP is not set -# CONFIG_USB_XHCI_PLATFORM is not set +CONFIG_USB_XHCI_PLATFORM=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_ROOT_HUB_TT=y CONFIG_USB_EHCI_TT_NEWSCHED=y @@ -4094,7 +4104,15 @@ CONFIG_USB_MUSB_SUNXI=y # MUSB DMA mode # # CONFIG_MUSB_PIO_ONLY is not set -# CONFIG_USB_DWC3 is not set +CONFIG_USB_DWC3=y +# CONFIG_USB_DWC3_HOST is not set +# CONFIG_USB_DWC3_GADGET is not set +CONFIG_USB_DWC3_DUAL_ROLE=y + +# +# Platform Glue Driver Support +# +CONFIG_USB_DWC3_OF_SIMPLE=m CONFIG_USB_DWC2=y # CONFIG_USB_DWC2_HOST is not set @@ -5162,7 +5180,7 @@ CONFIG_GENERIC_PHY=y # CONFIG_PHY_XGENE is not set CONFIG_PHY_SUN4I_USB=y CONFIG_PHY_SUN9I_USB=y -CONFIG_PHY_SUN50I_USB3=m +CONFIG_PHY_SUN50I_USB3=y # CONFIG_BCM_KONA_USB2_PHY is not set # CONFIG_PHY_PXA_28NM_HSIC is not set # CONFIG_PHY_PXA_28NM_USB2 is not set diff --git a/config/sources/sun50iw6.conf b/config/sources/sun50iw6.conf index b82e0f7ab6..13262c3b24 100644 --- a/config/sources/sun50iw6.conf +++ b/config/sources/sun50iw6.conf @@ -5,34 +5,41 @@ OVERLAY_PREFIX='sun50i-h6' BOOTENV_FILE='sun50iw2-next.txt' [[ -z $CPUMIN ]] && CPUMIN=480000 -[[ -z $CPUMAX ]] && CPUMAX=1010000 +[[ -z $CPUMAX ]] && CPUMAX=1510000 GOVERNOR=ondemand ASOUND_STATE='asound.state.sun50iw2-dev' +ATFSOURCE='https://github.com/Icenowy/arm-trusted-firmware' +ATFDIR='arm-trusted-firmware-sunxi-mainline' +ATFBRANCH='branch:sun50i_h6_pmic' +ATF_USE_GCC='> 6.3' +ATF_TARGET_MAP='PLAT=sun50i_h6 DEBUG=1 bl31;;build/sun50i_h6/debug/bl31.bin' + +BOOTSOURCE='https://github.com/Icenowy/u-boot' +BOOTDIR=$MAINLINE_UBOOT_DIR +BOOTBRANCH='branch:h6-hdmi-rebased-1' +BOOTPATCHDIR='u-boot-sun50iw6' +UBOOT_USE_GCC='> 7.0' +UBOOT_TARGET_MAP=';;spl/sunxi-spl.bin u-boot.itb' +BOOTSCRIPT='boot-sun50i-next.cmd:boot.cmd' + case $BRANCH in next) - ATFSOURCE='https://github.com/Icenowy/arm-trusted-firmware' - ATFDIR='arm-trusted-firmware-sunxi-mainline' - ATFBRANCH='branch:h6-smp' - ATF_USE_GCC='> 6.3' - ATF_TARGET_MAP='PLAT=sun50i_h6 DEBUG=1 bl31;;build/sun50i_h6/debug/bl31.bin' - - BOOTSOURCE='https://github.com/Icenowy/u-boot' - BOOTDIR=$MAINLINE_UBOOT_DIR - BOOTBRANCH='branch:h6-dram' - BOOTPATCHDIR='u-boot-sun50iw6' - UBOOT_USE_GCC='> 7.0' - UBOOT_TARGET_MAP=';;spl/sunxi-spl.bin u-boot.itb' - BOOTSCRIPT='boot-sun50i-next.cmd:boot.cmd' - KERNELSOURCE=$MAINLINE_KERNEL_SOURCE - KERNELBRANCH='branch:master' -KERNELBRANCH='branch:linux-4.17.y' + KERNELBRANCH='branch:linux-4.17.y' KERNELDIR=$MAINLINE_KERNEL_DIR KERNEL_USE_GCC='> 7.0' KERNELPATCHDIR='sunxi-next' ;; + + dev) + KERNELSOURCE='https://github.com/Icenowy/linux' + KERNELBRANCH='branch:h6-integrate-2-ugly' + KERNELDIR=$MAINLINE_KERNEL_DIR + KERNEL_USE_GCC='> 7.0' + KERNELPATCHDIR='sunxi-dev-h6' + ;; esac diff --git a/patch/kernel/sunxi-dev-h6/board-0001-orangepi-one-plus-add-device.patch b/patch/kernel/sunxi-dev-h6/board-0001-orangepi-one-plus-add-device.patch new file mode 100644 index 0000000000..40fc16d918 --- /dev/null +++ b/patch/kernel/sunxi-dev-h6/board-0001-orangepi-one-plus-add-device.patch @@ -0,0 +1,256 @@ +diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile +index 3040c3074..712e1cf5f +--- a/arch/arm64/boot/dts/allwinner/Makefile ++++ b/arch/arm64/boot/dts/allwinner/Makefile +@@ -1,5 +1,6 @@ + # SPDX-License-Identifier: GPL-2.0 + dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-bananapi-m64.dtb ++dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-orangepi-one-plus.dtb + dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-nanopi-a64.dtb + dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-olinuxino.dtb + dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-orangepi-win.dtb +diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts +new file mode 100644 +index 000000000..385015396 +--- /dev/null ++++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts +@@ -0,0 +1,239 @@ ++// SPDX-License-Identifier: (GPL-2.0+ or MIT) ++/* ++ * Copyright (c) 2018 Armbian ++ */ ++ ++/dts-v1/; ++ ++#include "sun50i-h6.dtsi" ++ ++#include ++ ++/ { ++ model = "Orange Pi One+"; ++ compatible = "xunlong,orangepi-one-plus", "allwinner,sun50i-h6"; ++ ++ aliases { ++ serial0 = &uart0; ++ }; ++ ++ chosen { ++ stdout-path = "serial0:115200n8"; ++ }; ++ ++ reg_gmac_3v3: gmac-3v3 { ++ compatible = "regulator-fixed"; ++ regulator-name = "vcc-gmac-3v3"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ startup-delay-us = <100000>; ++ enable-active-high; ++ gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>; /* PD6 */ ++ vin-supply = <®_aldo2>; ++ }; ++ ++ reg_vcc3v3: vcc3v3 { ++ compatible = "regulator-fixed"; ++ regulator-name = "vcc3v3"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ }; ++ ++ reg_vcc1v8: vcc1v8 { ++ compatible = "regulator-fixed"; ++ regulator-name = "vcc1v8"; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ }; ++ ++ reg_usb_vbus: vbus { ++ compatible = "regulator-fixed"; ++ regulator-name = "usb-vbus"; ++ regulator-min-microvolt = <5000000>; ++ regulator-max-microvolt = <5000000>; ++ startup-delay-us = <100000>; ++ gpio = <&r_pio 0 5 GPIO_ACTIVE_HIGH>; ++ enable-active-high; ++ }; ++}; ++ ++&cpu0 { ++ cpu-supply = <®_dcdca>; ++}; ++ ++&ehci0 { ++ status = "okay"; ++}; ++ ++&ehci3 { ++ status = "okay"; ++}; ++ ++ ++&emac { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&ext_rgmii_pins>; ++ phy-mode = "rgmii"; ++ phy-handle = <&ext_rgmii_phy>; ++ phy-supply = <®_gmac_3v3>; ++ allwinner,rx-delay-ps = <200>; ++ allwinner,tx-delay-ps = <200>; ++ status = "okay"; ++}; ++ ++&dwc3 { ++ status = "okay"; ++}; ++ ++&mdio { ++ ext_rgmii_phy: ethernet-phy@1 { ++ compatible = "ethernet-phy-ieee802.3-c22"; ++ reg = <1>; ++ }; ++}; ++ ++&mmc0 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&mmc0_pins>; ++ vmmc-supply = <®_vcc3v3>; ++ cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; ++ status = "okay"; ++}; ++ ++&ohci0 { ++ status = "okay"; ++}; ++ ++&ohci3 { ++ status = "okay"; ++}; ++ ++&r_i2c { ++ status = "okay"; ++ ++ axp805: pmic@36 { ++ compatible = "x-powers,axp805", "x-powers,axp806"; ++ reg = <0x36>; ++ interrupt-parent = <&r_intc>; ++ interrupts = <0 IRQ_TYPE_LEVEL_LOW>; ++ interrupt-controller; ++ #interrupt-cells = <1>; ++ x-powers,master-mode; ++ ++ regulators { ++ reg_aldo1: aldo1 { ++ regulator-always-on; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-name = "vcc-pl"; ++ }; ++ ++ reg_aldo2: aldo2 { ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-name = "vcc-ac200"; ++ }; ++ ++ reg_aldo3: aldo3 { ++ /* This regulator is connected with CLDO1 */ ++ regulator-always-on; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-name = "vcc-3v3-1"; ++ }; ++ ++ reg_bldo1: bldo1 { ++ regulator-always-on; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ regulator-name = "vcc-ddr-bias-pll"; ++ }; ++ ++ reg_bldo2: bldo2 { ++ regulator-always-on; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ regulator-name = "vcc-efuse-emmc-pcie-hdmi"; ++ }; ++ ++ reg_bldo3: bldo3 { ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ regulator-name = "vcc-wifi-io"; ++ }; ++ ++ bldo4 { ++ /* unused */ ++ }; ++ ++ reg_cldo1: cldo1 { ++ /* This regulator is connected with ALDO3 */ ++ regulator-always-on; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-name = "vcc-3v3-2"; ++ }; ++ ++ reg_cldo2: cldo2 { ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-name = "vcc-wifi-1"; ++ }; ++ ++ reg_cldo3: cldo3 { ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-name = "vcc-wifi-2"; ++ }; ++ ++ reg_dcdca: dcdca { ++ regulator-always-on; ++ regulator-min-microvolt = <810000>; ++ regulator-max-microvolt = <1080000>; ++ regulator-name = "vdd-cpu"; ++ }; ++ ++ reg_dcdcc: dcdcc { ++ regulator-always-on; ++ regulator-min-microvolt = <810000>; ++ regulator-max-microvolt = <1080000>; ++ regulator-name = "vdd-gpu"; ++ }; ++ ++ reg_dcdcd: dcdcd { ++ regulator-always-on; ++ regulator-min-microvolt = <960000>; ++ regulator-max-microvolt = <960000>; ++ regulator-name = "vdd-sys"; ++ }; ++ ++ reg_dcdce: dcdce { ++ regulator-always-on; ++ regulator-min-microvolt = <1400000>; ++ regulator-max-microvolt = <1400000>; ++ regulator-name = "vcc-dram"; ++ }; ++ ++ sw { ++ /* unused */ ++ }; ++ }; ++ }; ++}; ++ ++&uart0 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&uart0_ph_pins>; ++ status = "okay"; ++}; ++ ++&usb2otg { ++ dr_mode = "host"; ++ status = "okay"; ++}; ++ ++&usb2phy { ++ usb0_vbus-supply = <®_usb_vbus>; ++ usb1_vbus-supply = <®_usb_vbus>; ++ status = "okay"; ++}; diff --git a/patch/kernel/sunxi-dev-h6/board-0002-orangepi-lite2-add-device.patch b/patch/kernel/sunxi-dev-h6/board-0002-orangepi-lite2-add-device.patch new file mode 100644 index 0000000000..7cf6a4d0b9 --- /dev/null +++ b/patch/kernel/sunxi-dev-h6/board-0002-orangepi-lite2-add-device.patch @@ -0,0 +1,243 @@ +diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile +index a9797d233..4972f2901 +--- a/arch/arm64/boot/dts/allwinner/Makefile ++++ b/arch/arm64/boot/dts/allwinner/Makefile +@@ -1,6 +1,7 @@ + # SPDX-License-Identifier: GPL-2.0 + dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-bananapi-m64.dtb + dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-orangepi-one-plus.dtb ++dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-orangepi-lite2.dtb + dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-nanopi-a64.dtb + dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-olinuxino.dtb + dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-orangepi-win.dtb +diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-lite2.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-lite2.dts +new file mode 100644 +index 000000000..b9aff606e +--- /dev/null ++++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-lite2.dts +@@ -0,0 +1,225 @@ ++// SPDX-License-Identifier: (GPL-2.0+ or MIT) ++/* ++ * Copyright (c) 2017 Icenowy Zheng ++ */ ++ ++/dts-v1/; ++ ++#include "sun50i-h6.dtsi" ++ ++#include ++ ++/ { ++ model = "Orange Pi Lite 2"; ++ compatible = "pine64,pine-h64", "allwinner,sun50i-h6"; ++ ++ aliases { ++ serial0 = &uart0; ++ }; ++ ++ chosen { ++ stdout-path = "serial0:115200n8"; ++ }; ++ ++ reg_vcc3v3: vcc3v3 { ++ compatible = "regulator-fixed"; ++ regulator-name = "vcc3v3"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ }; ++ ++ reg_vcc1v8: vcc1v8 { ++ compatible = "regulator-fixed"; ++ regulator-name = "vcc1v8"; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ }; ++ ++ reg_usb_vbus: vbus { ++ compatible = "regulator-fixed"; ++ regulator-name = "usb-vbus"; ++ regulator-min-microvolt = <5000000>; ++ regulator-max-microvolt = <5000000>; ++ startup-delay-us = <100000>; ++ gpio = <&r_pio 0 5 GPIO_ACTIVE_HIGH>; ++ enable-active-high; ++ }; ++}; ++ ++&cpu0 { ++ cpu-supply = <®_dcdca>; ++}; ++ ++&dwc3 { ++ status = "okay"; ++}; ++ ++&ehci0 { ++ status = "okay"; ++}; ++ ++&ehci3 { ++ status = "okay"; ++}; ++ ++&mmc0 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&mmc0_pins>; ++ vmmc-supply = <®_vcc3v3>; ++ cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; ++ status = "okay"; ++}; ++ ++&mmc2 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&mmc2_pins>; ++ vmmc-supply = <®_vcc3v3>; ++ vqmmc-supply = <®_vcc1v8>; ++ non-removable; ++ cap-mmc-hw-reset; ++ status = "okay"; ++}; ++ ++&ohci0 { ++ status = "okay"; ++}; ++ ++&ohci3 { ++ status = "okay"; ++}; ++ ++&r_i2c { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&r_i2c_pins>; ++ status = "okay"; ++ ++ axp805: pmic@36 { ++ compatible = "x-powers,axp805", "x-powers,axp806"; ++ reg = <0x36>; ++ interrupt-parent = <&r_intc>; ++ interrupts = <0 IRQ_TYPE_LEVEL_LOW>; ++ interrupt-controller; ++ #interrupt-cells = <1>; ++ x-powers,master-mode; ++ ++ regulators { ++ reg_aldo1: aldo1 { ++ regulator-always-on; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-name = "vcc-pl"; ++ }; ++ ++ reg_aldo2: aldo2 { ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-name = "vcc-ac200"; ++ }; ++ ++ reg_aldo3: aldo3 { ++ /* This regulator is connected with CLDO1 */ ++ regulator-always-on; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-name = "vcc-3v3-1"; ++ }; ++ ++ reg_bldo1: bldo1 { ++ regulator-always-on; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ regulator-name = "vcc-ddr-bias-pll"; ++ }; ++ ++ reg_bldo2: bldo2 { ++ regulator-always-on; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ regulator-name = "vcc-efuse-emmc-pcie-hdmi"; ++ }; ++ ++ reg_bldo3: bldo3 { ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ regulator-name = "vcc-wifi-io"; ++ }; ++ ++ bldo4 { ++ /* unused */ ++ }; ++ ++ reg_cldo1: cldo1 { ++ /* This regulator is connected with ALDO3 */ ++ regulator-always-on; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-name = "vcc-3v3-2"; ++ }; ++ ++ reg_cldo2: cldo2 { ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-name = "vcc-wifi-1"; ++ }; ++ ++ reg_cldo3: cldo3 { ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-name = "vcc-wifi-2"; ++ }; ++ ++ reg_dcdca: dcdca { ++ regulator-always-on; ++ regulator-min-microvolt = <810000>; ++ regulator-max-microvolt = <1080000>; ++ regulator-name = "vdd-cpu"; ++ }; ++ ++ reg_dcdcc: dcdcc { ++ regulator-min-microvolt = <810000>; ++ regulator-max-microvolt = <1080000>; ++ regulator-name = "vdd-gpu"; ++ }; ++ ++ reg_dcdcd: dcdcd { ++ regulator-always-on; ++ regulator-min-microvolt = <960000>; ++ regulator-max-microvolt = <960000>; ++ regulator-name = "vdd-sys"; ++ }; ++ ++ reg_dcdce: dcdce { ++ regulator-always-on; ++ regulator-min-microvolt = <1400000>; ++ regulator-max-microvolt = <1400000>; ++ regulator-name = "vcc-dram"; ++ }; ++ ++ sw { ++ /* unused */ ++ }; ++ }; ++ }; ++}; ++ ++&uart0 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&uart0_ph_pins>; ++ status = "okay"; ++}; ++ ++&usb2otg { ++ dr_mode = "host"; ++ status = "okay"; ++}; ++ ++&usb2phy { ++ usb0_vbus-supply = <®_usb_vbus>; ++ usb3_vbus-supply = <®_usb_vbus>; ++ status = "okay"; ++}; ++ ++&usb3phy { ++ phy-supply = <®_usb_vbus>; ++ status = "okay"; ++}; diff --git a/patch/kernel/sunxi-dev-h6/general-packaging-4.17-dev.patch b/patch/kernel/sunxi-dev-h6/general-packaging-4.17-dev.patch new file mode 100644 index 0000000000..58891b4d1d --- /dev/null +++ b/patch/kernel/sunxi-dev-h6/general-packaging-4.17-dev.patch @@ -0,0 +1,221 @@ +diff --git a/scripts/package/builddeb b/scripts/package/builddeb +index 90c9a8a..3c79b90 100755 +--- a/scripts/package/builddeb ++++ b/scripts/package/builddeb +@@ -29,6 +29,27 @@ create_package() { + # in case we are in a restrictive umask environment like 0077 + chmod -R a+rX "$pdir" + ++ # Create preinstall and post install script to remove dtb ++ if [[ "$1" == *dtb* ]]; then ++ echo "if [ -d /boot/dtb-$version ]; then mv /boot/dtb-$version /boot/dtb-$version.old; fi" >> $pdir/DEBIAN/preinst ++ echo "if [ -d /boot/dtb.old ]; then rm -rf /boot/dtb.old; fi" >> $pdir/DEBIAN/preinst ++ echo "if [ -d /boot/dtb ]; then mv /boot/dtb /boot/dtb.old; fi" >> $pdir/DEBIAN/preinst ++ echo "exit 0" >> $pdir/DEBIAN/preinst ++ chmod 775 $pdir/DEBIAN/preinst ++ ++ echo "if [ -d /boot/dtb-$version.old ]; then rm -rf /boot/dtb-$version.old; fi" >> $pdir/DEBIAN/postinst ++ echo "ln -sf dtb-$version /boot/dtb > /dev/null 2>&1 || mv /boot/dtb-$version /boot/dtb" >> $pdir/DEBIAN/postinst ++ echo "exit 0" >> $pdir/DEBIAN/postinst ++ chmod 775 $pdir/DEBIAN/postinst ++ fi ++ ++ # Create postinstall script for headers ++ if [[ "$1" == *headers* ]]; then ++ echo "cd /usr/src/linux-headers-$version; echo \"Compiling headers - please wait ...\"; find -type f -exec touch {} +;make -s scripts >/dev/null 2>&1" >> $pdir/DEBIAN/postinst ++ echo "exit 0" >> $pdir/DEBIAN/postinst ++ chmod 775 $pdir/DEBIAN/postinst ++ fi ++ + # Create the package + dpkg-gencontrol -p$pname -P"$pdir" + dpkg --build "$pdir" .. +@@ -39,9 +60,11 @@ tmpdir="$objtree/debian/tmp" + kernel_headers_dir="$objtree/debian/hdrtmp" + libc_headers_dir="$objtree/debian/headertmp" + dbg_dir="$objtree/debian/dbgtmp" +-packagename=linux-image-$version +-kernel_headers_packagename=linux-headers-$version +-libc_headers_packagename=linux-libc-dev ++dtb_dir="$objtree/debian/dtbtmp" ++packagename=linux-image-dev"$LOCALVERSION" ++kernel_headers_packagename=linux-headers-dev"$LOCALVERSION" ++dtb_packagename=linux-dtb-dev"$LOCALVERSION" ++libc_headers_packagename=linux-libc-dev-dev"$LOCALVERSION" + dbg_packagename=$packagename-dbg + + if [ "$ARCH" = "um" ] ; then +@@ -52,6 +75,15 @@ fi + # XXX: have each arch Makefile export a variable of the canonical image install + # path instead + case $ARCH in ++aarch64|arm64) ++ image_name=Image ++ installed_image_path="boot/vmlinuz-$version" ++ ++ ;; ++arm*) ++ image_name=zImage ++ installed_image_path="boot/vmlinuz-$version" ++ ;; + um) + installed_image_path="usr/bin/linux-$version" + ;; +@@ -65,7 +97,9 @@ esac + BUILD_DEBUG="$(grep -s '^CONFIG_DEBUG_INFO=y' $KCONFIG_CONFIG || true)" + + # Setup the directory structure +-rm -rf "$tmpdir" "$kernel_headers_dir" "$libc_headers_dir" "$dbg_dir" $objtree/debian/files ++rm -rf "$tmpdir" "$kernel_headers_dir" "$libc_headers_dir" "$dbg_dir" "$dtb_dir" $objtree/debian/files ++mkdir -m 755 -p "$dtb_dir/DEBIAN" ++mkdir -p "$dtb_dir/boot/dtb-$version" "$dtb_dir/usr/share/doc/$dtb_packagename" + mkdir -m 755 -p "$tmpdir/DEBIAN" + mkdir -p "$tmpdir/lib" "$tmpdir/boot" + mkdir -p "$kernel_headers_dir/lib/modules/$version/" +@@ -118,6 +152,11 @@ if grep -q '^CONFIG_MODULES=y' $KCONFIG_CONFIG ; then + fi + fi + ++if grep -q '^CONFIG_OF=y' $KCONFIG_CONFIG ; then ++ #mkdir -p "$tmpdir/boot/dtb" ++ INSTALL_DTBS_PATH="$dtb_dir/boot/dtb-$version" $MAKE KBUILD_SRC= dtbs_install ++fi ++ + if [ "$ARCH" != "um" ]; then + $MAKE headers_check KBUILD_SRC= + $MAKE headers_install KBUILD_SRC= INSTALL_HDR_PATH="$libc_headers_dir/usr" +@@ -137,7 +176,7 @@ fi + for script in postinst postrm preinst prerm ; do + mkdir -p "$tmpdir$debhookdir/$script.d" + cat < "$tmpdir/DEBIAN/$script" +-#!/bin/sh ++#!/bin/bash + + set -e + +@@ -153,9 +192,60 @@ EOF + chmod 755 "$tmpdir/DEBIAN/$script" + done + ++## ++## Create sym link to kernel image ++## ++sed -e "s/set -e//g" -i $tmpdir/DEBIAN/postinst ++sed -e "s/exit 0//g" -i $tmpdir/DEBIAN/postinst ++cat >> $tmpdir/DEBIAN/postinst < /dev/null 2>&1 ++ cp /boot/uImage /tmp/uImage ++ sync ++ mountpoint -q /boot || mount /boot ++ cp /tmp/uImage /boot/uImage ++ rm -f /$installed_image_path ++else ++ ln -sf $(basename $installed_image_path) /boot/$image_name || mv /$installed_image_path /boot/$image_name ++fi ++touch /boot/.next ++exit 0 ++EOT ++ ++## ++## FAT install workaround ++## ++sed -e "s/set -e//g" -i $tmpdir/DEBIAN/preinst ++sed -e "s/exit 0//g" -i $tmpdir/DEBIAN/preinst ++cat >> $tmpdir/DEBIAN/preinst <> $tmpdir/DEBIAN/preinst ++ + # Build kernel header package + (cd $srctree; find . -name Makefile\* -o -name Kconfig\* -o -name \*.pl) > "$objtree/debian/hdrsrcfiles" + (cd $srctree; find arch/*/include include scripts -type f -o -type l) >> "$objtree/debian/hdrsrcfiles" ++(cd $srctree; find security/*/include -type f) >> "$objtree/debian/hdrsrcfiles" + (cd $srctree; find arch/$SRCARCH -name module.lds -o -name Kbuild.platforms -o -name Platform) >> "$objtree/debian/hdrsrcfiles" + (cd $srctree; find $(find arch/$SRCARCH -name include -o -name scripts -type d) -type f) >> "$objtree/debian/hdrsrcfiles" + if grep -q '^CONFIG_STACK_VALIDATION=y' $KCONFIG_CONFIG ; then +@@ -167,15 +257,19 @@ if grep -q '^CONFIG_GCC_PLUGINS=y' $KCONFIG_CONFIG ; then + fi + destdir=$kernel_headers_dir/usr/src/linux-headers-$version + mkdir -p "$destdir" ++(cd $destdir; patch -p1 < /tmp/headers-debian-byteshift.patch) + (cd $srctree; tar -c -f - -T -) < "$objtree/debian/hdrsrcfiles" | (cd $destdir; tar -xf -) + (cd $objtree; tar -c -f - -T -) < "$objtree/debian/hdrobjfiles" | (cd $destdir; tar -xf -) + (cd $objtree; cp $KCONFIG_CONFIG $destdir/.config) # copy .config manually to be where it's expected to be + ln -sf "/usr/src/linux-headers-$version" "$kernel_headers_dir/lib/modules/$version/build" + rm -f "$objtree/debian/hdrsrcfiles" "$objtree/debian/hdrobjfiles" + ++(cd $destdir; make M=scripts clean) ++ + if [ "$ARCH" != "um" ]; then + create_package "$kernel_headers_packagename" "$kernel_headers_dir" +- create_package "$libc_headers_packagename" "$libc_headers_dir" ++ # create_package "$libc_headers_packagename" "$libc_headers_dir" ++ create_package "$dtb_packagename" "$dtb_dir" + fi + + create_package "$packagename" "$tmpdir" +diff --git a/scripts/package/mkdebian b/scripts/package/mkdebian +index 6adb3a1..00e12eb 100755 +--- a/scripts/package/mkdebian ++++ b/scripts/package/mkdebian +@@ -61,10 +61,12 @@ else + packageversion=$version-$revision + fi + sourcename=$KDEB_SOURCENAME +-packagename=linux-image-$version +-kernel_headers_packagename=linux-headers-$version ++packagename=linux-image-dev$LOCALVERSION ++kernel_headers_packagename=linux-headers-dev$LOCALVERSION ++dtb_packagename=linux-dtb-dev$LOCALVERSION + dbg_packagename=$packagename-dbg + debarch= ++image_name= + set_debarch + + if [ "$ARCH" = "um" ] ; then +@@ -168,6 +170,11 @@ Architecture: $debarch + Description: Linux kernel debugging symbols for $version + This package will come in handy if you need to debug the kernel. It provides + all the necessary debug symbols for the kernel and its modules. ++ ++Package: $dtb_packagename ++Architecture: $debarch ++Description: Linux DTB, version $version ++ This package contains device blobs from the Linux kernel, version $version + EOF + + cat < debian/rules +diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile +index f839ecd9..cd276162 100644 +--- a/arch/arm64/Makefile ++++ b/arch/arm64/Makefile +@@ -103,7 +103,7 @@ core-$(CONFIG_EFI_STUB) += $(objtree)/drivers/firmware/efi/libstub/lib.a + + # Default target when executing plain make + boot := arch/arm64/boot +-KBUILD_IMAGE := $(boot)/Image.gz ++KBUILD_IMAGE := $(boot)/Image + KBUILD_DTBS := dtbs + + all: Image.gz $(KBUILD_DTBS) diff --git a/patch/kernel/sunxi-next/board-0001-orangepi-one-plus-add-device.patch b/patch/kernel/sunxi-next/board-0001-orangepi-one-plus-add-device.patch index d14368f836..4c7edda75d 100644 --- a/patch/kernel/sunxi-next/board-0001-orangepi-one-plus-add-device.patch +++ b/patch/kernel/sunxi-next/board-0001-orangepi-one-plus-add-device.patch @@ -14,7 +14,7 @@ new file mode 100644 index 000000000..385015396 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts -@@ -0,0 +1,202 @@ +@@ -0,0 +1,240 @@ +// SPDX-License-Identifier: (GPL-2.0+ or MIT) +/* + * Copyright (c) 2018 Armbian @@ -28,7 +28,7 @@ index 000000000..385015396 + +/ { + model = "Orange Pi One+"; -+ compatible = "pine64,pine-h64", "allwinner,sun50i-h6"; ++ compatible = "xunlong,orangepi-one-plus", "allwinner,sun50i-h6"; + + aliases { + serial0 = &uart0; @@ -38,6 +38,17 @@ index 000000000..385015396 + stdout-path = "serial0:115200n8"; + }; + ++ reg_gmac_3v3: gmac-3v3 { ++ compatible = "regulator-fixed"; ++ regulator-name = "vcc-gmac-3v3"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ startup-delay-us = <100000>; ++ enable-active-high; ++ gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>; /* PD6 */ ++ vin-supply = <®_aldo2>; ++ }; ++ + reg_vcc3v3: vcc3v3 { + compatible = "regulator-fixed"; + regulator-name = "vcc3v3"; @@ -75,6 +86,22 @@ index 000000000..385015396 + status = "okay"; +}; + ++ ++&emac { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&ext_rgmii_pins>; ++ phy-mode = "rgmii"; ++ phy-handle = <&ext_rgmii_phy>; ++ phy-supply = <®_gmac_3v3>; ++ allwinner,rx-delay-ps = <200>; ++ allwinner,tx-delay-ps = <200>; ++ status = "okay"; ++}; ++ ++&dwc3 { ++ status = "okay"; ++}; ++ +&mdio { + ext_rgmii_phy: ethernet-phy@1 { + compatible = "ethernet-phy-ieee802.3-c22"; @@ -87,6 +114,7 @@ index 000000000..385015396 + pinctrl-0 = <&mmc0_pins>; + vmmc-supply = <®_vcc3v3>; + cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; ++ bus-width = <4>; + status = "okay"; +}; + @@ -99,12 +127,10 @@ index 000000000..385015396 +}; + +&r_i2c { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&r_i2c_pins>; + status = "okay"; + + axp805: pmic@36 { -+ compatible = "x-powers,axp805"; ++ compatible = "x-powers,axp805", "x-powers,axp806"; + reg = <0x36>; + interrupt-parent = <&r_intc>; + interrupts = <0 IRQ_TYPE_LEVEL_LOW>; @@ -166,6 +192,18 @@ index 000000000..385015396 + regulator-name = "vcc-3v3-2"; + }; + ++ reg_cldo2: cldo2 { ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-name = "vcc-wifi-1"; ++ }; ++ ++ reg_cldo3: cldo3 { ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-name = "vcc-wifi-2"; ++ }; ++ + reg_dcdca: dcdca { + regulator-always-on; + regulator-min-microvolt = <810000>; diff --git a/patch/kernel/sunxi-next/board-0002-orangepi-lite2-add-device.patch b/patch/kernel/sunxi-next/board-0002-orangepi-lite2-add-device.patch index ea9d1b538e..bff51c2a45 100644 --- a/patch/kernel/sunxi-next/board-0002-orangepi-lite2-add-device.patch +++ b/patch/kernel/sunxi-next/board-0002-orangepi-lite2-add-device.patch @@ -15,7 +15,7 @@ new file mode 100644 index 000000000..b9aff606e --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-lite2.dts -@@ -0,0 +1,229 @@ +@@ -0,0 +1,231 @@ +// SPDX-License-Identifier: (GPL-2.0+ or MIT) +/* + * Copyright (c) 2017 Icenowy Zheng @@ -85,6 +85,7 @@ index 000000000..b9aff606e + pinctrl-0 = <&mmc0_pins>; + vmmc-supply = <®_vcc3v3>; + cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; ++ bus-width = <4>; + status = "okay"; +}; + @@ -95,6 +96,7 @@ index 000000000..b9aff606e + vqmmc-supply = <®_vcc1v8>; + non-removable; + cap-mmc-hw-reset; ++ bus-width = <8>; + status = "okay"; +}; + @@ -112,7 +114,7 @@ index 000000000..b9aff606e + status = "okay"; + + axp805: pmic@36 { -+ compatible = "x-powers,axp805"; ++ compatible = "x-powers,axp805", "x-powers,axp806"; + reg = <0x36>; + interrupt-parent = <&r_intc>; + interrupts = <0 IRQ_TYPE_LEVEL_LOW>; @@ -208,8 +210,8 @@ index 000000000..b9aff606e + + reg_dcdce: dcdce { + regulator-always-on; -+ regulator-min-microvolt = <1200000>; -+ regulator-max-microvolt = <1200000>; ++ regulator-min-microvolt = <1400000>; ++ regulator-max-microvolt = <1400000>; + regulator-name = "vcc-dram"; + }; + diff --git a/patch/kernel/sunxi-next/board-pine-h6-pine-h6-0016-mfd-axp20x-add-support-for-power-key-on-AXP806.patch b/patch/kernel/sunxi-next/board-pine-h6-pine-h6-0016-mfd-axp20x-add-support-for-power-key-on-AXP806.patch.disabled similarity index 100% rename from patch/kernel/sunxi-next/board-pine-h6-pine-h6-0016-mfd-axp20x-add-support-for-power-key-on-AXP806.patch rename to patch/kernel/sunxi-next/board-pine-h6-pine-h6-0016-mfd-axp20x-add-support-for-power-key-on-AXP806.patch.disabled diff --git a/patch/kernel/sunxi-next/board-pine-h6-pine-h6-0017-mfd-axp20x-add-support-for-AXP805-PMIC.patch b/patch/kernel/sunxi-next/board-pine-h6-pine-h6-0017-mfd-axp20x-add-support-for-AXP805-PMIC.patch.disabled similarity index 100% rename from patch/kernel/sunxi-next/board-pine-h6-pine-h6-0017-mfd-axp20x-add-support-for-AXP805-PMIC.patch rename to patch/kernel/sunxi-next/board-pine-h6-pine-h6-0017-mfd-axp20x-add-support-for-AXP805-PMIC.patch.disabled diff --git a/patch/kernel/sunxi-next/board-pine-h6-pine-h6-0018-arm64-allwinner-h6-enable-AXP805-PMIC-on-Pine-H64.patch b/patch/kernel/sunxi-next/board-pine-h6-pine-h6-0018-arm64-allwinner-h6-enable-AXP805-PMIC-on-Pine-H64.patch index c0b4263a46..d18f6493e8 100644 --- a/patch/kernel/sunxi-next/board-pine-h6-pine-h6-0018-arm64-allwinner-h6-enable-AXP805-PMIC-on-Pine-H64.patch +++ b/patch/kernel/sunxi-next/board-pine-h6-pine-h6-0018-arm64-allwinner-h6-enable-AXP805-PMIC-on-Pine-H64.patch @@ -19,14 +19,14 @@ index 3e31f39..9177224 100644 @@ -55,6 +55,121 @@ status = "okay"; }; - + +&r_i2c { + pinctrl-names = "default"; + pinctrl-0 = <&r_i2c_pins>; + status = "okay"; + + axp805: pmic@36 { -+ compatible = "x-powers,axp805"; ++ compatible = "x-powers,axp805", "x-powers,axp806"; + reg = <0x36>; + interrupt-parent = <&r_intc>; + interrupts = <0 IRQ_TYPE_LEVEL_LOW>; @@ -138,6 +138,6 @@ index 3e31f39..9177224 100644 &uart0 { pinctrl-names = "default"; pinctrl-0 = <&uart0_ph_pins>; --- +-- 2.7.4 diff --git a/patch/kernel/sunxi-next/board-pine-h6-pine-h6-0031-arm64-allwinner-h6-add-one-more-operating-point-for-.patch b/patch/kernel/sunxi-next/board-pine-h6-pine-h6-0031-arm64-allwinner-h6-add-one-more-operating-point-for-.patch.disabled similarity index 100% rename from patch/kernel/sunxi-next/board-pine-h6-pine-h6-0031-arm64-allwinner-h6-add-one-more-operating-point-for-.patch rename to patch/kernel/sunxi-next/board-pine-h6-pine-h6-0031-arm64-allwinner-h6-add-one-more-operating-point-for-.patch.disabled diff --git a/patch/kernel/sunxi-next/board-pine-h6-pine-h6-0034-arm64-allwinner-h6-add-EMAC-device-nodes.patch b/patch/kernel/sunxi-next/board-pine-h6-pine-h6-0034-arm64-allwinner-h6-add-EMAC-device-nodes.patch index e6b4d93d5d..06ec12723f 100644 --- a/patch/kernel/sunxi-next/board-pine-h6-pine-h6-0034-arm64-allwinner-h6-add-EMAC-device-nodes.patch +++ b/patch/kernel/sunxi-next/board-pine-h6-pine-h6-0034-arm64-allwinner-h6-add-EMAC-device-nodes.patch @@ -19,7 +19,7 @@ index f548eb4..2c0ecf7 100644 @@ -118,6 +118,12 @@ #size-cells = <1>; ranges; - + + syscon: syscon@3000000 { + compatible = "allwinner,sun50i-h6-system-controller", + "syscon"; @@ -32,7 +32,7 @@ index f548eb4..2c0ecf7 100644 @@ -152,6 +158,14 @@ interrupt-controller; #interrupt-cells = <3>; - + + ext_rgmii_pins: rgmii_pins { + pins = "PD0", "PD1", "PD2", "PD3", "PD4", + "PD5", "PD7", "PD8", "PD9", "PD10", @@ -47,7 +47,7 @@ index f548eb4..2c0ecf7 100644 @@ -313,6 +327,27 @@ status = "disabled"; }; - + + emac: ethernet@5020000 { + compatible = "allwinner,sun50i-h6-emac"; + syscon = <&syscon>; @@ -72,6 +72,6 @@ index f548eb4..2c0ecf7 100644 usb3: usb@5200000 { compatible = "allwinner,sun50i-h6-dwc3"; #address-cells = <1>; --- +-- 2.7.4 diff --git a/patch/kernel/sunxi-next/p-board-h6-add-THS.patch b/patch/kernel/sunxi-next/p-board-h6-add-THS.patch new file mode 100644 index 0000000000..f3bae11491 --- /dev/null +++ b/patch/kernel/sunxi-next/p-board-h6-add-THS.patch @@ -0,0 +1,1042 @@ +From 1c44b2c7ee26d4a3b6d6710181203bf3c8491a79 Mon Sep 17 00:00:00 2001 +From: Chen-Yu Tsai +Date: Wed, 20 Jun 2018 15:13:41 +0800 +Subject: [PATCH 08/45] arm64: dts: allwinner: h6: Add LED device nodes for + Pine H64 + +The Pine H64 has 3 GPIO-controlled LEDs, which are labeled "heartbeat", +"link", and "status". + +Add device nodes for them. + +Acked-by: Maxime Ripard +Signed-off-by: Chen-Yu Tsai +--- + .../boot/dts/allwinner/sun50i-h6-pine-h64.dts | 19 +++++++++++++++++++ + 1 file changed, 19 insertions(+) + +diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts +index b6f2d6b2ecae..2e97173c9204 100644 +--- a/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts ++++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts +@@ -20,6 +20,25 @@ + chosen { + stdout-path = "serial0:115200n8"; + }; ++ ++ leds { ++ compatible = "gpio-leds"; ++ ++ heartbeat { ++ label = "pine-h64:green:heartbeat"; ++ gpios = <&r_pio 0 4 GPIO_ACTIVE_HIGH>; /* PL4 */ ++ }; ++ ++ link { ++ label = "pine-h64:white:link"; ++ gpios = <&r_pio 0 3 GPIO_ACTIVE_HIGH>; /* PL3 */ ++ }; ++ ++ status { ++ label = "pine-h64:blue:status"; ++ gpios = <&r_pio 0 7 GPIO_ACTIVE_HIGH>; /* PL7 */ ++ }; ++ }; + }; + + &r_i2c { +-- +2.17.1 + + +From cc6843c51ec07b6c2ec961b4baa1d5967e0bdb3b Mon Sep 17 00:00:00 2001 +From: Chen-Yu Tsai +Date: Fri, 13 Jul 2018 00:04:48 +0800 +Subject: [PATCH 09/45] dt-bindings: mfd: axp20x: Add "self-working" mode for + AXP806 + +The AXP806 has three operation modes: + + - master mode: The PMIC is the first or only AXP PMIC in the system, + but is not in charge of power management, i.e. only + provides regulator functions. + + - slave mode: The PMIC is the second AXP PMIC in the system, chained + to the first, or master, one. + + - self-working mode: The PMIC is the only AXP PMIC in the system, and + is in charge of power sequencing. + +The functional differences between these modes can be found in the +"Control and Operation" chapter of the AXP806 (in Chinese) and AXP805 +(in English) datasheets. These include how the PMIC responds to external +signals, whether it takes an external voltage reference or uses its own, +and whether the EN/PWRON pin functions as an enable switch or power button. + +We already support both slave and master mode. This patch adds a property +for describing the self-working mode, and reworks the description for +the mode properties. + +Signed-off-by: Chen-Yu Tsai +Reviewed-by: Rob Herring +Reviewed-by: Icenowy Zheng +Tested-by: Icenowy Zheng +Acked-by: Maxime Ripard +Signed-off-by: Lee Jones +--- + Documentation/devicetree/bindings/mfd/axp20x.txt | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/Documentation/devicetree/bindings/mfd/axp20x.txt b/Documentation/devicetree/bindings/mfd/axp20x.txt +index d1762f3b30af..eaaf79c01e1e 100644 +--- a/Documentation/devicetree/bindings/mfd/axp20x.txt ++++ b/Documentation/devicetree/bindings/mfd/axp20x.txt +@@ -45,8 +45,11 @@ Optional properties: + board is driving OTG VBus or not. + (axp221 / axp223 / axp803/ axp813 only) + +-- x-powers,master-mode: Boolean (axp806 only). Set this when the PMIC is +- wired for master mode. The default is slave mode. ++- x-powers,self-working-mode and ++ x-powers,master-mode: Boolean (axp806 only). Set either of these when the ++ PMIC is wired for self-working mode or master mode. ++ If neither is set then slave mode is assumed. ++ This corresponds to how the MODESET pin is wired. + + - -supply: a phandle to the regulator supply node. May be omitted if + inputs are unregulated, such as using the IPSOUT output +-- +2.17.1 + + +From 1ff51a1fb79a61f822f1551c994274c0cfcdf131 Mon Sep 17 00:00:00 2001 +From: Chen-Yu Tsai +Date: Fri, 13 Jul 2018 00:04:49 +0800 +Subject: [PATCH 10/45] mfd: axp20x: Add self-working mode support for AXP806 + +The AXP806 can operate in a standalone "self-working" mode, in which it +is also responsible for power control of the overall system. This mode +is similar to the master mode, but the EN/PWRON pin functions as a power +button, instead of a level-triggered enable switch. + +This patch adds code checking for the new "x-powers,self-working-mode" +property, and a separate mfd_cell list that includes the power button +(PEK) sub-device. + +Signed-off-by: Chen-Yu Tsai +Reviewed-by: Icenowy Zheng +Tested-by: Icenowy Zheng +Acked-by: Maxime Ripard +Signed-off-by: Lee Jones +--- + drivers/mfd/axp20x.c | 28 +++++++++++++++++++++++++--- + 1 file changed, 25 insertions(+), 3 deletions(-) + +diff --git a/drivers/mfd/axp20x.c b/drivers/mfd/axp20x.c +index 9a2ef3d9b8f8..0be511dd93d0 100644 +--- a/drivers/mfd/axp20x.c ++++ b/drivers/mfd/axp20x.c +@@ -221,6 +221,11 @@ static const struct resource axp803_pek_resources[] = { + DEFINE_RES_IRQ_NAMED(AXP803_IRQ_PEK_FAL_EDGE, "PEK_DBF"), + }; + ++static const struct resource axp806_pek_resources[] = { ++ DEFINE_RES_IRQ_NAMED(AXP806_IRQ_POK_RISE, "PEK_DBR"), ++ DEFINE_RES_IRQ_NAMED(AXP806_IRQ_POK_FALL, "PEK_DBF"), ++}; ++ + static const struct resource axp809_pek_resources[] = { + DEFINE_RES_IRQ_NAMED(AXP809_IRQ_PEK_RIS_EDGE, "PEK_DBR"), + DEFINE_RES_IRQ_NAMED(AXP809_IRQ_PEK_FAL_EDGE, "PEK_DBF"), +@@ -730,6 +735,15 @@ static const struct mfd_cell axp803_cells[] = { + { .name = "axp20x-regulator" }, + }; + ++static const struct mfd_cell axp806_self_working_cells[] = { ++ { ++ .name = "axp221-pek", ++ .num_resources = ARRAY_SIZE(axp806_pek_resources), ++ .resources = axp806_pek_resources, ++ }, ++ { .name = "axp20x-regulator" }, ++}; ++ + static const struct mfd_cell axp806_cells[] = { + { + .id = 2, +@@ -842,8 +856,14 @@ int axp20x_match_device(struct axp20x_dev *axp20x) + axp20x->regmap_irq_chip = &axp803_regmap_irq_chip; + break; + case AXP806_ID: +- axp20x->nr_cells = ARRAY_SIZE(axp806_cells); +- axp20x->cells = axp806_cells; ++ if (of_property_read_bool(axp20x->dev->of_node, ++ "x-powers,self-working-mode")) { ++ axp20x->nr_cells = ARRAY_SIZE(axp806_self_working_cells); ++ axp20x->cells = axp806_self_working_cells; ++ } else { ++ axp20x->nr_cells = ARRAY_SIZE(axp806_cells); ++ axp20x->cells = axp806_cells; ++ } + axp20x->regmap_cfg = &axp806_regmap_config; + axp20x->regmap_irq_chip = &axp806_regmap_irq_chip; + break; +@@ -901,7 +921,9 @@ int axp20x_device_probe(struct axp20x_dev *axp20x) + */ + if (axp20x->variant == AXP806_ID) { + if (of_property_read_bool(axp20x->dev->of_node, +- "x-powers,master-mode")) ++ "x-powers,master-mode") || ++ of_property_read_bool(axp20x->dev->of_node, ++ "x-powers,self-working-mode")) + regmap_write(axp20x->regmap, AXP806_REG_ADDR_EXT, + AXP806_REG_ADDR_EXT_ADDR_MASTER_MODE); + else +-- +2.17.1 + + +From 8a19d87150e9afb44194407be651669fa02344fe Mon Sep 17 00:00:00 2001 +From: Chen-Yu Tsai +Date: Fri, 13 Jul 2018 00:04:50 +0800 +Subject: [PATCH 11/45] mfd: axp20x: Support AXP806 in I2C mode + +The Pine64 H64 board uses an AXP806 PMIC in I2C and self-working mode. +The H64 SoC does not have the usual RSB controller. + +This patch adds AXP806 to the list of devices supported in I2C mode. +In theory, all RSB-based PMICs can also be used in I2C mode. + +Signed-off-by: Chen-Yu Tsai +Reviewed-by: Icenowy Zheng +Tested-by: Icenowy Zheng +Acked-by: Maxime Ripard +Signed-off-by: Lee Jones +--- + drivers/mfd/axp20x-i2c.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/drivers/mfd/axp20x-i2c.c b/drivers/mfd/axp20x-i2c.c +index d35a5fe6c950..a7b7c5423ea5 100644 +--- a/drivers/mfd/axp20x-i2c.c ++++ b/drivers/mfd/axp20x-i2c.c +@@ -65,6 +65,7 @@ static const struct of_device_id axp20x_i2c_of_match[] = { + { .compatible = "x-powers,axp202", .data = (void *)AXP202_ID }, + { .compatible = "x-powers,axp209", .data = (void *)AXP209_ID }, + { .compatible = "x-powers,axp221", .data = (void *)AXP221_ID }, ++ { .compatible = "x-powers,axp806", .data = (void *)AXP806_ID }, + { }, + }; + MODULE_DEVICE_TABLE(of, axp20x_i2c_of_match); +@@ -74,6 +75,7 @@ static const struct i2c_device_id axp20x_i2c_id[] = { + { "axp202", 0 }, + { "axp209", 0 }, + { "axp221", 0 }, ++ { "axp806", 0 }, + { }, + }; + MODULE_DEVICE_TABLE(i2c, axp20x_i2c_id); +-- + + +From bb10f5dd2933681507d316b8c84b183f678dcf31 Mon Sep 17 00:00:00 2001 +From: Icenowy Zheng +Date: Thu, 26 Jul 2018 12:41:27 +0800 +Subject: [PATCH 36/45] arm64: allwinner: dts: h6: fix Pine H64 MMC bus width + +Currently the enabled MMC controllers on Pine H64 do not have bus-width +set, which make them fall back to 1-bit mode and become quite slow. + +Fix this by add the corresponding bus-width properties. + +Fixes: ecbd611882a1 ("arm64: allwinner: h6: enable MMC0/2 on Pine H64") +Signed-off-by: Icenowy Zheng +--- + arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts +index bf0a88294ae4..3c74cbed319b 100644 +--- a/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts ++++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts +@@ -97,6 +97,7 @@ + pinctrl-0 = <&mmc0_pins>; + vmmc-supply = <®_cldo1>; + cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; ++ bus-width = <4>; + status = "okay"; + }; + +@@ -107,6 +108,7 @@ + vqmmc-supply = <®_bldo2>; + non-removable; + cap-mmc-hw-reset; ++ bus-width = <8>; + status = "okay"; + }; + +-- +2.17.1 + + +From 6bfc6aab9a9cd82578a7e782c83d04f4cf7fe6c4 Mon Sep 17 00:00:00 2001 +From: Icenowy Zheng +Date: Fri, 27 Jul 2018 16:22:01 +0800 +Subject: [PATCH 37/45] nvmem: sunxi-sid: add support for H6 SID + +The SID controller in Allwinner H6 SoC is similar to the one in +Allwinner A64, except the size of the eFUSE is enlarged to 512 bytes +(4Kbit). + +Add support for it. + +Signed-off-by: Icenowy Zheng +--- + .../devicetree/bindings/nvmem/allwinner,sunxi-sid.txt | 1 + + drivers/nvmem/sunxi_sid.c | 6 ++++++ + 2 files changed, 7 insertions(+) + +diff --git a/Documentation/devicetree/bindings/nvmem/allwinner,sunxi-sid.txt b/Documentation/devicetree/bindings/nvmem/allwinner,sunxi-sid.txt +index e319fe5e205a..332de580e321 100644 +--- a/Documentation/devicetree/bindings/nvmem/allwinner,sunxi-sid.txt ++++ b/Documentation/devicetree/bindings/nvmem/allwinner,sunxi-sid.txt +@@ -7,6 +7,7 @@ Required properties: + "allwinner,sun8i-a83t-sid" + "allwinner,sun8i-h3-sid" + "allwinner,sun50i-a64-sid" ++ "allwinner,sun50i-h6-sid" + + - reg: Should contain registers location and length + +diff --git a/drivers/nvmem/sunxi_sid.c b/drivers/nvmem/sunxi_sid.c +index d020f89248fd..fa58c3574afa 100644 +--- a/drivers/nvmem/sunxi_sid.c ++++ b/drivers/nvmem/sunxi_sid.c +@@ -232,11 +232,17 @@ static const struct sunxi_sid_cfg sun50i_a64_cfg = { + .size = 0x100, + }; + ++static const struct sunxi_sid_cfg sun50i_h6_cfg = { ++ .value_offset = 0x200, ++ .size = 0x200, ++}; ++ + static const struct of_device_id sunxi_sid_of_match[] = { + { .compatible = "allwinner,sun4i-a10-sid", .data = &sun4i_a10_cfg }, + { .compatible = "allwinner,sun7i-a20-sid", .data = &sun7i_a20_cfg }, + { .compatible = "allwinner,sun8i-h3-sid", .data = &sun8i_h3_cfg }, + { .compatible = "allwinner,sun50i-a64-sid", .data = &sun50i_a64_cfg }, ++ { .compatible = "allwinner,sun50i-h6-sid", .data = &sun50i_h6_cfg }, + {/* sentinel */}, + }; + MODULE_DEVICE_TABLE(of, sunxi_sid_of_match); +-- +2.17.1 + + +From de62065cf1b55e48049c44076500a32eac08fe2f Mon Sep 17 00:00:00 2001 +From: Icenowy Zheng +Date: Fri, 27 Jul 2018 16:24:18 +0800 +Subject: [PATCH 38/45] arm64: allwinner: dts: h6: add H6 SID device tree node + +The Allwinner H6 SoC has a SID like previous Allwinner SoCs. + +Add a device tree node for it. + +Signed-off-by: Icenowy Zheng +--- + arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi +index 1a8086476514..8e3c47c7c797 100644 +--- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi ++++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi +@@ -174,6 +174,11 @@ + #interrupt-cells = <3>; + }; + ++ sid: efuse@3006000 { ++ compatible = "allwinner,sun50i-h6-sid"; ++ reg = <0x03006000 0x1000>; ++ }; ++ + pio: pinctrl@300b000 { + compatible = "allwinner,sun50i-h6-pinctrl"; + reg = <0x0300b000 0x400>; +-- +2.17.1 + + +From 8cdaf449f2936b608862b0a0175dd05fb52233b1 Mon Sep 17 00:00:00 2001 +From: Icenowy Zheng +Date: Fri, 27 Jul 2018 17:34:35 +0800 +Subject: [PATCH 39/45] nvmem: sunxi-sid: fix endian + +The data in the SID is stored as little endian. However, when accessing +the SID via sunxi-sid driver, it converts little endian to big endian at +4 byte border. This makes addressing sub-4-byte items in the SID wrong. + +Fix the endian by read out the SID 4-byte words as little endian, not +big endian. + +Signed-off-by: Icenowy Zheng +--- + drivers/nvmem/sunxi_sid.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/nvmem/sunxi_sid.c b/drivers/nvmem/sunxi_sid.c +index fa58c3574afa..af30d62b1426 100644 +--- a/drivers/nvmem/sunxi_sid.c ++++ b/drivers/nvmem/sunxi_sid.c +@@ -63,7 +63,7 @@ static u8 sunxi_sid_read_byte(const struct sunxi_sid *sid, + { + u32 sid_key; + +- sid_key = ioread32be(sid->base + round_down(offset, 4)); ++ sid_key = readl(sid->base + round_down(offset, 4)); + sid_key >>= (offset % 4) * 8; + + return sid_key; /* Only return the last byte */ +-- +2.17.1 + + +From e7690d51c51dd6c97475bef2b207244d3a5f91b3 Mon Sep 17 00:00:00 2001 +From: Icenowy Zheng +Date: Fri, 27 Jul 2018 16:18:35 +0800 +Subject: [PATCH 40/45] sun50i-h6-ths + +Signed-off-by: Icenowy Zheng +--- + drivers/thermal/Kconfig | 11 + + drivers/thermal/Makefile | 1 + + drivers/thermal/sun50i_h6_ths.c | 365 ++++++++++++++++++++++++++++++++ + 3 files changed, 377 insertions(+) + create mode 100644 drivers/thermal/sun50i_h6_ths.c + +diff --git a/drivers/thermal/Kconfig b/drivers/thermal/Kconfig +index 82979880f985..1b302248633a 100644 +--- a/drivers/thermal/Kconfig ++++ b/drivers/thermal/Kconfig +@@ -415,6 +415,17 @@ config MTK_THERMAL + Enable this option if you want to have support for thermal management + controller present in Mediatek SoCs + ++config SUN50I_H6_THS ++ tristate "Thermal sensor driver for Allwinner H6" ++ depends on ARCH_SUNXI || COMPILE_TEST ++ depends on HAS_IOMEM ++ depends on NVMEM ++ depends on OF ++ depends on RESET_CONTROLLER ++ help ++ Enable this option if you want to have support for thermal reporting ++ on Allwinner H6. ++ + menu "Broadcom thermal drivers" + depends on ARCH_BCM || ARCH_BRCMSTB || ARCH_BCM2835 || COMPILE_TEST + source "drivers/thermal/broadcom/Kconfig" +diff --git a/drivers/thermal/Makefile b/drivers/thermal/Makefile +index 610344eb3e03..bdc5ba49f170 100644 +--- a/drivers/thermal/Makefile ++++ b/drivers/thermal/Makefile +@@ -58,6 +58,7 @@ obj-$(CONFIG_QCOM_TSENS) += qcom/ + obj-y += tegra/ + obj-$(CONFIG_HISI_THERMAL) += hisi_thermal.o + obj-$(CONFIG_MTK_THERMAL) += mtk_thermal.o ++obj-$(CONFIG_SUN50I_H6_THS) += sun50i_h6_ths.o + obj-$(CONFIG_GENERIC_ADC_THERMAL) += thermal-generic-adc.o + obj-$(CONFIG_ZX2967_THERMAL) += zx2967_thermal.o + obj-$(CONFIG_UNIPHIER_THERMAL) += uniphier_thermal.o +diff --git a/drivers/thermal/sun50i_h6_ths.c b/drivers/thermal/sun50i_h6_ths.c +new file mode 100644 +index 000000000000..ad3c5f3e47c7 +--- /dev/null ++++ b/drivers/thermal/sun50i_h6_ths.c +@@ -0,0 +1,365 @@ ++/* ++ * Thermal sensor driver for Allwinner H6 ++ * ++ * Copyright (C) 2018 Icenowy Zheng ++ * ++ * Based on the work of OndÅ™ej Jirman ++ * Based on the work of Josef Gajdusek ++ * ++ * This software is licensed under the terms of the GNU General Public ++ * License version 2, as published by the Free Software Foundation, and ++ * may be copied, distributed, and modified under those terms. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define THS_H6_MAX_SENSOR_NUM 4 ++ ++#define THS_H6_CTRL0 0x00 ++#define THS_H6_CTRL2 0x04 ++#define THS_H6_PER 0x08 ++#define THS_H6_DATA_INT_CTRL 0x10 ++#define THS_H6_DATA_INT_STAT 0x20 ++#define THS_H6_FILTER 0x30 ++#define THS_H6_CDATA(n) (0xa0 + 4 * (n)) ++#define THS_H6_DATA(n) (0xc0 + 4 * (n)) ++ ++#define THS_H6_CTRL0_SENSOR_ACQ0(x) ((x) << 16) ++#define THS_H6_CTRL2_SENSE_EN(n) BIT(0 + (n)) ++#define THS_H6_PER_THERMAL_PER(x) ((x) << 12) ++#define THS_H6_INT_CTRL_DATA_IRQ_EN(n) BIT(0 + (n)) ++#define THS_H6_STAT_DATA_IRQ_STS(n) BIT(0 + (n)) ++#define THS_H6_FILTER_TYPE(x) ((x) << 0) ++#define THS_H6_FILTER_EN BIT(2) ++ ++#define THS_H6_CLK_IN 240000000 /* Hz */ ++#define THS_H6_DATA_PERIOD 10 /* ms */ ++ ++#define THS_H6_FILTER_TYPE_VALUE 2 /* average over 2^(n+1) samples */ ++#define THS_H6_FILTER_DIV (1 << (THS_H6_FILTER_TYPE_VALUE + 1)) ++#define THS_H6_INT_CTRL_THERMAL_PER_VALUE \ ++ (THS_H6_DATA_PERIOD * (THS_H6_CLK_IN / 1000) / THS_H6_FILTER_DIV / 4096 - 1) ++#define THS_H6_CTRL0_SENSOR_ACQ0_VALUE 0x1df /* 20us */ ++#define THS_H6_CTRL0_UNK 0x0000002f ++ ++#define THS_H6_CAL_FT_TEMP_MASK 0x0fff ++#define THS_H6_CAL_FT_TEMP_DEVIATION_EN 0x3000 ++#define THS_H6_CAL_DEFAULT 0x800 ++#define THS_H6_CAL_VAL_MASK 0xfff ++ ++struct sun50i_h6_ths_data; ++ ++struct sun50i_h6_ths_sensor { ++ struct sun50i_h6_ths_data *data; ++ int id; ++ struct thermal_zone_device *tzd; ++ u32 val; ++}; ++ ++struct sun50i_h6_ths_cfg { ++ int sensor_num; ++ int (*calc_temp)(u32 val); ++}; ++ ++struct sun50i_h6_ths_data { ++ struct reset_control *reset; ++ struct clk *busclk; ++ void __iomem *regs; ++ const struct sun50i_h6_ths_cfg *cfg; ++ struct nvmem_cell *calcell; ++ struct sun50i_h6_ths_sensor sensors[THS_H6_MAX_SENSOR_NUM]; ++}; ++ ++static int sun50i_h6_ths_calc_temp(u32 val) ++{ ++ return (187744 - (int)((val * 1000000) / 14882)); ++} ++ ++static u16 sun50i_h6_ths_recalc_reg(u32 temp) ++{ ++ return (u16)(2794 - temp * 14882 / 1000000); ++} ++ ++static int sun50i_h6_ths_get_temp(void *_data, int *out) ++{ ++ struct sun50i_h6_ths_sensor *sensor = _data; ++ ++ if (sensor->val == 0) ++ return -EBUSY; ++ ++ /* Formula and parameters from the Allwinner 3.4 kernel */ ++ *out = sensor->data->cfg->calc_temp(sensor->val); ++ return 0; ++} ++ ++static irqreturn_t sun50i_h6_ths_irq_thread(int irq, void *_data) ++{ ++ struct sun50i_h6_ths_data *data = _data; ++ int i; ++ ++ for (i = 0; i < data->cfg->sensor_num; i++) { ++ if (!(readl(data->regs + THS_H6_DATA_INT_STAT) & ++ THS_H6_STAT_DATA_IRQ_STS(i))) ++ continue; ++ ++ writel(THS_H6_STAT_DATA_IRQ_STS(i), ++ data->regs + THS_H6_DATA_INT_STAT); ++ ++ data->sensors[i].val = readl(data->regs + THS_H6_DATA(i)); ++ if (data->sensors[i].val) ++ thermal_zone_device_update(data->sensors[i].tzd, ++ THERMAL_EVENT_TEMP_SAMPLE); ++ } ++ ++ return IRQ_HANDLED; ++} ++ ++static void sun50i_h6_ths_init(struct sun50i_h6_ths_data *data) ++{ ++ u32 val; ++ int i; ++ ++ writel(THS_H6_CTRL0_SENSOR_ACQ0(THS_H6_CTRL0_SENSOR_ACQ0_VALUE) | ++ THS_H6_CTRL0_UNK, data->regs + THS_H6_CTRL0); ++ writel(THS_H6_FILTER_EN | THS_H6_FILTER_TYPE(THS_H6_FILTER_TYPE_VALUE), ++ data->regs + THS_H6_FILTER); ++ ++ val = 0; ++ for (i = 0; i < data->cfg->sensor_num; i++) ++ val |= THS_H6_CTRL2_SENSE_EN(i); ++ writel(val, data->regs + THS_H6_CTRL2); ++ ++ val = THS_H6_PER_THERMAL_PER(THS_H6_INT_CTRL_THERMAL_PER_VALUE); ++ writel(val, data->regs + THS_H6_PER); ++ ++ val = 0; ++ for (i = 0; i < data->cfg->sensor_num; i++) ++ val |= THS_H6_INT_CTRL_DATA_IRQ_EN(i); ++ writel(val, data->regs + THS_H6_DATA_INT_CTRL); ++} ++ ++static const struct thermal_zone_of_device_ops sun50i_h6_ths_thermal_ops = { ++ .get_temp = sun50i_h6_ths_get_temp, ++}; ++ ++static int sun50i_h6_ths_calibrate(struct sun50i_h6_ths_data *data) ++{ ++ u16 *caldata; ++ size_t callen; ++ int i; ++ int ft_temp; ++ s16 ft_temp_orig_reg, diff, cal_val; ++ u32 reg_val; ++ ++ caldata = nvmem_cell_read(data->calcell, &callen); ++ if (IS_ERR(caldata)) ++ return PTR_ERR(caldata); ++ ++ if (callen < 2 + 2 * data->cfg->sensor_num) ++ return -EINVAL; ++ ++ if (!caldata[0]) ++ return -EINVAL; ++ ++ /* ++ * The calbration data on H6 is stored as temperature-value ++ * pair when being filled at factory test stage. ++ * The unit of stored FT temperature is 0.1 degreee celusis. ++ */ ++ ft_temp = (caldata[0] & THS_H6_CAL_FT_TEMP_MASK) * 100; ++ ft_temp_orig_reg = sun50i_h6_ths_recalc_reg(ft_temp); ++ ++ for (i = 0; i < data->cfg->sensor_num; i++) ++ { ++ diff = (ft_temp_orig_reg - (s16)caldata[1 + i]); ++ cal_val = THS_H6_CAL_DEFAULT - diff; ++ ++ if (cal_val & ~THS_H6_CAL_VAL_MASK) { ++ pr_warn("Faulty thermal sensor %d calibration value, beyond the valid range.\n", i); ++ continue; ++ } ++ ++ if (i % 2) { ++ reg_val = readl(data->regs + THS_H6_CDATA(i / 2)); ++ reg_val &= 0xffff; ++ reg_val |= cal_val << 16; ++ writel(reg_val, data->regs + THS_H6_CDATA(i / 2)); ++ } else { ++ writel(cal_val, data->regs + THS_H6_CDATA(i / 2)); ++ } ++ } ++ ++ kfree(caldata); ++ return 0; ++} ++ ++static int sun50i_h6_ths_probe(struct platform_device *pdev) ++{ ++ struct sun50i_h6_ths_data *data; ++ struct resource *res; ++ int ret, irq, i; ++ ++ data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL); ++ if (!data) ++ return -ENOMEM; ++ ++ data->cfg = of_device_get_match_data(&pdev->dev); ++ if (!data->cfg) ++ return -EINVAL; ++ ++ res = platform_get_resource(pdev, IORESOURCE_MEM, 0); ++ if (!res) { ++ dev_err(&pdev->dev, "no memory resources defined\n"); ++ return -EINVAL; ++ } ++ ++ data->regs = devm_ioremap_resource(&pdev->dev, res); ++ if (IS_ERR(data->regs)) { ++ ret = PTR_ERR(data->regs); ++ dev_err(&pdev->dev, "failed to ioremap THS registers: %d\n", ret); ++ return ret; ++ } ++ ++ irq = platform_get_irq(pdev, 0); ++ if (irq < 0) { ++ dev_err(&pdev->dev, "failed to get IRQ: %d\n", irq); ++ return irq; ++ } ++ ++ ret = devm_request_threaded_irq(&pdev->dev, irq, NULL, ++ sun50i_h6_ths_irq_thread, IRQF_ONESHOT, ++ dev_name(&pdev->dev), data); ++ if (ret) ++ return ret; ++ ++ data->busclk = devm_clk_get(&pdev->dev, "bus"); ++ if (IS_ERR(data->busclk)) { ++ ret = PTR_ERR(data->busclk); ++ dev_err(&pdev->dev, "failed to get ahb clk: %d\n", ret); ++ return ret; ++ } ++ ++ data->reset = devm_reset_control_get(&pdev->dev, NULL); ++ if (IS_ERR(data->reset)) { ++ ret = PTR_ERR(data->reset); ++ dev_err(&pdev->dev, "failed to get reset: %d\n", ret); ++ return ret; ++ } ++ ++ ret = reset_control_deassert(data->reset); ++ if (ret) { ++ dev_err(&pdev->dev, "reset deassert failed: %d\n", ret); ++ return ret; ++ } ++ ++ ret = clk_prepare_enable(data->busclk); ++ if (ret) { ++ dev_err(&pdev->dev, "failed to enable bus clk: %d\n", ret); ++ goto err_assert_reset; ++ } ++ ++ data->calcell = devm_nvmem_cell_get(&pdev->dev, "calibration"); ++ if (IS_ERR(data->calcell)) { ++ if (PTR_ERR(data->calcell) == -EPROBE_DEFER) { ++ ret = PTR_ERR(data->calcell); ++ goto err_disable_bus; ++ } ++ /* ++ * Even if the external calibration data stored in eFUSE is ++ * not accessible, the THS hardware can still work, although ++ * the data won't be so accurate. ++ * The default value of calibration register is 0x800 for ++ * every sensor, and the calibration value is usually 0x7xx ++ * or 0x8xx, so they won't be away from the default value ++ * for a lot. ++ * So here we do not return if the calibartion data is not ++ * available, except the probe needs deferring. ++ */ ++ } else { ++ ret = sun50i_h6_ths_calibrate(data); ++ if (ret) { ++ /* Revert calibrating */ ++ for (i = 0; i < data->cfg->sensor_num; i += 2) { ++ writew(THS_H6_CAL_DEFAULT, ++ data->regs + THS_H6_CDATA(i / 2)); ++ } ++ } ++ } ++ ++ for (i = 0; i < data->cfg->sensor_num; i++) { ++ data->sensors[i].data = data; ++ data->sensors[i].id = i; ++ data->sensors[i].tzd = ++ devm_thermal_zone_of_sensor_register(&pdev->dev, ++ i, &data->sensors[i], &sun50i_h6_ths_thermal_ops); ++ if (IS_ERR(data->sensors[i].tzd)) { ++ ret = PTR_ERR(data->sensors[i].tzd); ++ dev_err(&pdev->dev, ++ "failed to register thermal zone %d: %d\n", ++ i, ret); ++ goto err_disable_bus; ++ } ++ } ++ ++ sun50i_h6_ths_init(data); ++ ++ platform_set_drvdata(pdev, data); ++ return 0; ++ ++err_disable_bus: ++ clk_disable_unprepare(data->busclk); ++err_assert_reset: ++ reset_control_assert(data->reset); ++ return ret; ++} ++ ++static int sun50i_h6_ths_remove(struct platform_device *pdev) ++{ ++ struct sun50i_h6_ths_data *data = platform_get_drvdata(pdev); ++ ++ reset_control_assert(data->reset); ++ clk_disable_unprepare(data->busclk); ++ return 0; ++} ++ ++static const struct sun50i_h6_ths_cfg sun50i_h6_ths_cfg = { ++ .sensor_num = 2, ++ .calc_temp = sun50i_h6_ths_calc_temp, ++}; ++ ++static const struct of_device_id sun50i_h6_ths_id_table[] = { ++ { .compatible = "allwinner,sun50i-h6-ths", .data = &sun50i_h6_ths_cfg }, ++ { /* sentinel */ }, ++}; ++MODULE_DEVICE_TABLE(of, sun50i_h6_ths_id_table); ++ ++static struct platform_driver sun50i_h6_ths_driver = { ++ .probe = sun50i_h6_ths_probe, ++ .remove = sun50i_h6_ths_remove, ++ .driver = { ++ .name = "sun50i_h6_ths", ++ .of_match_table = sun50i_h6_ths_id_table, ++ }, ++}; ++ ++module_platform_driver(sun50i_h6_ths_driver); ++ ++MODULE_AUTHOR("Icenowy Zheng "); ++MODULE_DESCRIPTION("Thermal sensor driver for Allwinner H6"); ++MODULE_LICENSE("GPL v2"); +-- +2.17.1 + + +From b2efe78569663e3188d712699209126a535df23d Mon Sep 17 00:00:00 2001 +From: Icenowy Zheng +Date: Fri, 27 Jul 2018 16:18:42 +0800 +Subject: [PATCH 41/45] basic ths dt + +Signed-off-by: Icenowy Zheng +--- + arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 35 ++++++++++++++++++++ + 1 file changed, 35 insertions(+) + +diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi +index 8e3c47c7c797..cf125ebd1c7b 100644 +--- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi ++++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi +@@ -10,6 +10,7 @@ + #include + #include + #include ++#include + + / { + interrupt-parent = <&gic>; +@@ -177,6 +178,12 @@ + sid: efuse@3006000 { + compatible = "allwinner,sun50i-h6-sid"; + reg = <0x03006000 0x1000>; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ ths_calib: thermal-sensor-calibration@14 { ++ reg = <0x14 0x6>; ++ }; + }; + + pio: pinctrl@300b000 { +@@ -445,6 +452,18 @@ + }; + }; + ++ ths: ths@5070400 { ++ compatible = "allwinner,sun50i-h6-ths"; ++ reg = <0x05070400 0x100>; ++ interrupts = ; ++ clocks = <&ccu CLK_BUS_THS>; ++ clock-names = "bus"; ++ resets = <&ccu RST_BUS_THS>; ++ nvmem-cells = <&ths_calib>; ++ nvmem-cell-names = "calibration"; ++ #thermal-sensor-cells = <1>; ++ }; ++ + r_ccu: clock@7010000 { + compatible = "allwinner,sun50i-h6-r-ccu"; + reg = <0x07010000 0x400>; +@@ -495,4 +514,20 @@ + #size-cells = <0>; + }; + }; ++ ++ thermal-zones { ++ cpu_thermal { ++ /* milliseconds */ ++ polling-delay-passive = <250>; ++ polling-delay = <1000>; ++ thermal-sensors = <&ths 0>; ++ }; ++ ++ gpu_thermal { ++ /* milliseconds */ ++ polling-delay-passive = <250>; ++ polling-delay = <1000>; ++ thermal-sensors = <&ths 1>; ++ }; ++ }; + }; +-- +2.17.1 + + +From 5568aa53d90402816fe45ce30f7aaa6e577810aa Mon Sep 17 00:00:00 2001 +From: Icenowy Zheng +Date: Fri, 27 Jul 2018 19:19:28 +0800 +Subject: [PATCH 43/45] arm64: allwinner: dts: h6: add CPU supply for Pine H64 + +The Pine H64, follows the reference design on the AXP805 DCDC +assignment, connects DCDCA (polyphased with DCDCB) to the ARM +cores' power supply. + +Add this to the device tree, to enable voltage scaling. + +Signed-off-by: Icenowy Zheng +--- + arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts +index 3c74cbed319b..fb45e68bc441 100644 +--- a/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts ++++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts +@@ -92,6 +92,10 @@ + }; + }; + ++&cpu0 { ++ cpu-supply = <®_dcdca>; ++}; ++ + &mmc0 { + pinctrl-names = "default"; + pinctrl-0 = <&mmc0_pins>; +-- +2.17.1 + + +From 6a83e3542e2ad0388f5ee5b9beb7774467ab08bd Mon Sep 17 00:00:00 2001 +From: Icenowy Zheng +Date: Fri, 27 Jul 2018 19:28:31 +0800 +Subject: [PATCH 44/45] bind trips + +Signed-off-by: Icenowy Zheng +--- + arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 35 ++++++++++++++++++++ + 1 file changed, 35 insertions(+) + +diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi +index 5cc72c943374..000a681fb515 100644 +--- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi ++++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi +@@ -540,6 +540,41 @@ + polling-delay-passive = <250>; + polling-delay = <1000>; + thermal-sensors = <&ths 0>; ++ ++ cooling-maps { ++ map0 { ++ trip = <&cpu_alert0>; ++ cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; ++ }; ++ ++ map1 { ++ trip = <&cpu_alert1>; ++ cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; ++ }; ++ }; ++ ++ trips { ++ cpu_alert0: cpu_alert0 { ++ /* milliCelsius */ ++ temperature = <75000>; ++ hysteresis = <2000>; ++ type = "passive"; ++ }; ++ ++ cpu_alert1: cpu_alert1 { ++ /* milliCelsius */ ++ temperature = <90000>; ++ hysteresis = <2000>; ++ type = "hot"; ++ }; ++ ++ cpu_crit: cpu_crit { ++ /* milliCelsius */ ++ temperature = <1000000>; ++ hysteresis = <2000>; ++ type = "critical"; ++ }; ++ }; + }; + + gpu_thermal { +-- +2.17.1 + + +From 32a3eba2d813fb311430f2275ba1dbe73c37da73 Mon Sep 17 00:00:00 2001 +From: Icenowy Zheng +Date: Fri, 27 Jul 2018 19:30:10 +0800 +Subject: [PATCH 45/45] add extra opps + +Signed-off-by: Icenowy Zheng +--- + arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 18 ++++++++++++++++++ + 1 file changed, 18 insertions(+) + +diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi +index 000a681fb515..bec8c4a46ec7 100644 +--- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi ++++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi +@@ -41,6 +41,24 @@ + opp-microvolt = <880000>; + clock-latency-ns = <244144>; /* 8 32k periods */ + }; ++ ++ opp-1008000000 { ++ opp-hz = /bits/ 64 <1008000000>; ++ opp-microvolt = <940000>; ++ clock-latency-ns = <244144>; /* 8 32k periods */ ++ }; ++ ++ opp-1320000000 { ++ opp-hz = /bits/ 64 <1320000000>; ++ opp-microvolt = <1000000>; ++ clock-latency-ns = <244144>; /* 8 32k periods */ ++ }; ++ ++ opp-1488000000 { ++ opp-hz = /bits/ 64 <1488000000>; ++ opp-microvolt = <1060000>; ++ clock-latency-ns = <244144>; /* 8 32k periods */ ++ }; + }; + + cpus { +-- +2.17.1 + diff --git a/patch/u-boot/u-boot-sun50iw6/0001-add-orangepione_plus.patch b/patch/u-boot/u-boot-sun50iw6/0001-add-orangepione_plus.patch deleted file mode 100644 index 0a5a4d6f59..0000000000 --- a/patch/u-boot/u-boot-sun50iw6/0001-add-orangepione_plus.patch +++ /dev/null @@ -1,103 +0,0 @@ -diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile -index 3669bdf..866e468 ---- a/arch/arm/dts/Makefile -+++ b/arch/arm/dts/Makefile -@@ -362,7 +362,8 @@ dtb-$(CONFIG_MACH_SUN50I_H5) += \ - sun50i-h5-orangepi-prime.dtb \ - sun50i-h5-orangepi-zero-plus2.dtb - dtb-$(CONFIG_MACH_SUN50I_H6) += \ -- sun50i-h6-pine-h64.dtb -+ sun50i-h6-pine-h64.dtb \ -+ sun50i-h6-orangepi-one-plus.dtb - dtb-$(CONFIG_MACH_SUN50I) += \ - sun50i-a64-bananapi-m64.dtb \ - sun50i-a64-nanopi-a64.dtb \ -diff --git a/arch/arm/dts/sun50i-h6-orangepi-one-plus.dts b/arch/arm/dts/sun50i-h6-orangepi-one-plus.dts -new file mode 100644 -index 0000000..7191127 ---- /dev/null -+++ b/arch/arm/dts/sun50i-h6-orangepi-one-plus.dts -@@ -0,0 +1,64 @@ -+/* -+ * Copyright (c) 2017 Icenowy Zheng -+ * -+ * This file is dual-licensed: you can use it either under the terms -+ * of the GPL or the X11 license, at your option. Note that this dual -+ * licensing only applies to this file, and not this project as a -+ * whole. -+ * -+ * a) This library is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 2 of the -+ * License, or (at your option) any later version. -+ * -+ * This library is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * Or, alternatively, -+ * -+ * b) Permission is hereby granted, free of charge, to any person -+ * obtaining a copy of this software and associated documentation -+ * files (the "Software"), to deal in the Software without -+ * restriction, including without limitation the rights to use, -+ * copy, modify, merge, publish, distribute, sublicense, and/or -+ * sell copies of the Software, and to permit persons to whom the -+ * Software is furnished to do so, subject to the following -+ * conditions: -+ * -+ * The above copyright notice and this permission notice shall be -+ * included in all copies or substantial portions of the Software. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -+ * OTHER DEALINGS IN THE SOFTWARE. -+ */ -+ -+/dts-v1/; -+ -+#include "sun50i-h6.dtsi" -+ -+#include -+ -+/ { -+ model = "Orange Pi One+"; -+ compatible = "pine64,pine-h64", "allwinner,sun50i-h6"; -+ -+ aliases { -+ serial0 = &uart0; -+ }; -+ -+ chosen { -+ stdout-path = "serial0:115200n8"; -+ }; -+}; -+ -+&uart0 { -+ status = "okay"; -+}; -diff --git a/configs/orangepi_one_plus_defconfig b/configs/orangepi_one_plus_defconfig -new file mode 100644 -index 0000000..ded0df6 ---- /dev/null -+++ b/configs/orangepi_one_plus_defconfig -@@ -0,0 +1,13 @@ -+CONFIG_ARM=y -+CONFIG_ARCH_SUNXI=y -+CONFIG_MACH_SUN50I_H6=y -+CONFIG_DRAM_ODT_EN=y -+# CONFIG_PSCI_RESET is not set -+CONFIG_DEFAULT_DEVICE_TREE="sun50i-h6-orangepi-one-plus" -+# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set -+CONFIG_SPL=y -+# CONFIG_CMD_FLASH is not set -+# CONFIG_CMD_FPGA is not set -+# CONFIG_SPL_DOS_PARTITION is not set -+# CONFIG_SPL_ISO_PARTITION is not set -+# CONFIG_SPL_EFI_PARTITION is not set diff --git a/patch/u-boot/u-boot-sun50iw6/0002-add-orangepilite_2.patch b/patch/u-boot/u-boot-sun50iw6/0002-add-orangepilite_2.patch deleted file mode 100644 index 13b4313bec..0000000000 --- a/patch/u-boot/u-boot-sun50iw6/0002-add-orangepilite_2.patch +++ /dev/null @@ -1,103 +0,0 @@ -diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile -index 3669bdf..866e468 ---- a/arch/arm/dts/Makefile -+++ b/arch/arm/dts/Makefile -@@ -363,7 +363,8 @@ dtb-$(CONFIG_MACH_SUN50I_H5) += \ - sun50i-h5-orangepi-zero-plus2.dtb - dtb-$(CONFIG_MACH_SUN50I_H6) += \ - sun50i-h6-pine-h64.dtb \ -- sun50i-h6-orangepi-one-plus.dtb -+ sun50i-h6-orangepi-one-plus.dtb \ -+ sun50i-h6-orangepi-lite2.dtb - dtb-$(CONFIG_MACH_SUN50I) += \ - sun50i-a64-bananapi-m64.dtb \ - sun50i-a64-nanopi-a64.dtb \ -diff --git a/arch/arm/dts/sun50i-h6-orangepi-lite2.dts b/arch/arm/dts/sun50i-h6-orangepi-lite2.dts -new file mode 100644 -index 0000000..7191127 ---- /dev/null -+++ b/arch/arm/dts/sun50i-h6-orangepi-lite2.dts -@@ -0,0 +1,64 @@ -+/* -+ * Copyright (c) 2017 Icenowy Zheng -+ * -+ * This file is dual-licensed: you can use it either under the terms -+ * of the GPL or the X11 license, at your option. Note that this dual -+ * licensing only applies to this file, and not this project as a -+ * whole. -+ * -+ * a) This library is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 2 of the -+ * License, or (at your option) any later version. -+ * -+ * This library is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * Or, alternatively, -+ * -+ * b) Permission is hereby granted, free of charge, to any person -+ * obtaining a copy of this software and associated documentation -+ * files (the "Software"), to deal in the Software without -+ * restriction, including without limitation the rights to use, -+ * copy, modify, merge, publish, distribute, sublicense, and/or -+ * sell copies of the Software, and to permit persons to whom the -+ * Software is furnished to do so, subject to the following -+ * conditions: -+ * -+ * The above copyright notice and this permission notice shall be -+ * included in all copies or substantial portions of the Software. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -+ * OTHER DEALINGS IN THE SOFTWARE. -+ */ -+ -+/dts-v1/; -+ -+#include "sun50i-h6.dtsi" -+ -+#include -+ -+/ { -+ model = "Orange Pi Lite 2"; -+ compatible = "pine64,pine-h64", "allwinner,sun50i-h6"; -+ -+ aliases { -+ serial0 = &uart0; -+ }; -+ -+ chosen { -+ stdout-path = "serial0:115200n8"; -+ }; -+}; -+ -+&uart0 { -+ status = "okay"; -+}; -diff --git a/configs/orangepi_lite2_defconfig b/configs/orangepi_lite2_defconfig -new file mode 100644 -index 0000000..ded0df6 ---- /dev/null -+++ b/configs/orangepi_lite2_defconfig -@@ -0,0 +1,13 @@ -+CONFIG_ARM=y -+CONFIG_ARCH_SUNXI=y -+CONFIG_MACH_SUN50I_H6=y -+CONFIG_DRAM_ODT_EN=y -+# CONFIG_PSCI_RESET is not set -+CONFIG_DEFAULT_DEVICE_TREE="sun50i-h6-orangepi-lite2" -+# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set -+CONFIG_SPL=y -+# CONFIG_CMD_FLASH is not set -+# CONFIG_CMD_FPGA is not set -+# CONFIG_SPL_DOS_PARTITION is not set -+# CONFIG_SPL_ISO_PARTITION is not set -+# CONFIG_SPL_EFI_PARTITION is not set diff --git a/patch/u-boot/u-boot-sun50iw6/add-orangepilite_2.patch b/patch/u-boot/u-boot-sun50iw6/add-orangepilite_2.patch new file mode 100644 index 0000000000..b915084d6e --- /dev/null +++ b/patch/u-boot/u-boot-sun50iw6/add-orangepilite_2.patch @@ -0,0 +1,188 @@ +diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile +index 89032bb..2309a6d 100644 +--- a/arch/arm/dts/Makefile ++++ b/arch/arm/dts/Makefile +@@ -392,6 +392,7 @@ dtb-$(CONFIG_MACH_SUN50I_H5) += \ + sun50i-h5-orangepi-zero-plus2.dtb + dtb-$(CONFIG_MACH_SUN50I_H6) += \ + sun50i-h6-orangepi-one-plus.dtb \ ++ sun50i-h6-orangepi-lite2.dtb \ + sun50i-h6-pine-h64.dtb + dtb-$(CONFIG_MACH_SUN50I) += \ + sun50i-a64-amarula-relic.dtb \ +diff --git a/arch/arm/dts/sun50i-h6-orangepi-lite2.dts b/arch/arm/dts/sun50i-h6-orangepi-lite2.dts +new file mode 100644 +index 0000000..a1fa1a7 +--- /dev/null ++++ b/arch/arm/dts/sun50i-h6-orangepi-lite2.dts +@@ -0,0 +1,150 @@ ++// SPDX-License-Identifier: (GPL-2.0+ or MIT) ++/* ++ * Copyright (C) 2018 Amarula Solutions ++ * Author: Jagan Teki ++ */ ++ ++/dts-v1/; ++ ++#include "sun50i-h6.dtsi" ++ ++#include ++ ++/ { ++ model = "OrangePi Lite 2"; ++ compatible = "xunlong,orangepi-lite2", "allwinner,sun50i-h6"; ++ ++ aliases { ++ serial0 = &uart0; ++ }; ++ ++ chosen { ++ stdout-path = "serial0:115200n8"; ++ }; ++}; ++ ++&mmc0 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&mmc0_pins>; ++ vmmc-supply = <®_cldo1>; ++ cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; ++ bus-width = <4>; ++ status = "okay"; ++}; ++ ++&r_i2c { ++ status = "okay"; ++ ++ axp805: pmic@36 { ++ compatible = "x-powers,axp805", "x-powers,axp806"; ++ reg = <0x36>; ++ interrupt-parent = <&r_intc>; ++ interrupts = <0 IRQ_TYPE_LEVEL_LOW>; ++ interrupt-controller; ++ #interrupt-cells = <1>; ++ x-powers,self-working-mode; ++ ++ regulators { ++ reg_aldo1: aldo1 { ++ regulator-always-on; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-name = "vcc-pl"; ++ }; ++ ++ reg_aldo2: aldo2 { ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-name = "vcc-ac200"; ++ }; ++ ++ reg_aldo3: aldo3 { ++ regulator-always-on; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-name = "vcc25-dram"; ++ }; ++ ++ reg_bldo1: bldo1 { ++ regulator-always-on; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ regulator-name = "vcc-bias-pll"; ++ }; ++ ++ reg_bldo2: bldo2 { ++ regulator-always-on; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ regulator-name = "vcc-efuse-pcie-hdmi-io"; ++ }; ++ ++ reg_bldo3: bldo3 { ++ regulator-always-on; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ regulator-name = "vcc-dcxoio"; ++ }; ++ ++ bldo4 { ++ /* unused */ ++ }; ++ ++ reg_cldo1: cldo1 { ++ regulator-always-on; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-name = "vcc-3v3"; ++ }; ++ ++ reg_cldo2: cldo2 { ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-name = "vcc-wifi-1"; ++ }; ++ ++ reg_cldo3: cldo3 { ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-name = "vcc-wifi-2"; ++ }; ++ ++ reg_dcdca: dcdca { ++ regulator-always-on; ++ regulator-min-microvolt = <810000>; ++ regulator-max-microvolt = <1080000>; ++ regulator-name = "vdd-cpu"; ++ }; ++ ++ reg_dcdcc: dcdcc { ++ regulator-min-microvolt = <810000>; ++ regulator-max-microvolt = <1080000>; ++ regulator-name = "vdd-gpu"; ++ }; ++ ++ reg_dcdcd: dcdcd { ++ regulator-always-on; ++ regulator-min-microvolt = <960000>; ++ regulator-max-microvolt = <960000>; ++ regulator-name = "vdd-sys"; ++ }; ++ ++ reg_dcdce: dcdce { ++ regulator-always-on; ++ regulator-min-microvolt = <1200000>; ++ regulator-max-microvolt = <1200000>; ++ regulator-name = "vcc-dram"; ++ }; ++ ++ sw { ++ /* unused */ ++ }; ++ }; ++ }; ++}; ++ ++&uart0 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&uart0_ph_pins>; ++ status = "okay"; ++}; +diff --git a/configs/orangepi_lite2_defconfig b/configs/orangepi_lite2_defconfig +index 13db9a7..030e865 100644 +--- /dev/null ++++ b/configs/orangepi_lite2_defconfig +@@ -0,0 +1,15 @@ ++CONFIG_ARM=y ++CONFIG_ARCH_SUNXI=y ++CONFIG_MACH_SUN50I_H6=y ++CONFIG_DRAM_ODT_EN=y ++CONFIG_MMC0_CD_PIN="PF6" ++CONFIG_HDMI_DDC_EN="PH2" ++# CONFIG_PSCI_RESET is not set ++CONFIG_DEFAULT_DEVICE_TREE="sun50i-h6-orangepi-lite2" ++# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set ++CONFIG_SPL=y ++# CONFIG_CMD_FLASH is not set ++# CONFIG_CMD_FPGA is not set ++# CONFIG_SPL_DOS_PARTITION is not set ++# CONFIG_SPL_ISO_PARTITION is not set ++# CONFIG_SPL_EFI_PARTITION is not set