diff --git a/.gitignore b/.gitignore index 9f9019c0..1a7eba48 100644 --- a/.gitignore +++ b/.gitignore @@ -12,5 +12,6 @@ buildroot/*.diff *~ *.pyc .claude +AGENTS.md diff --git a/buildroot/board/luckfox-pico/common/linux.config b/buildroot/board/luckfox-pico/common/linux.config index 29d1a644..903a5d8e 100755 --- a/buildroot/board/luckfox-pico/common/linux.config +++ b/buildroot/board/luckfox-pico/common/linux.config @@ -295,6 +295,7 @@ CONFIG_RK_DMABUF_PROCFS=y CONFIG_RK_MEMBLOCK_PROCFS=y CONFIG_DEVFREQ_GOV_USERSPACE=y CONFIG_EXTCON=y +CONFIG_EXTCON_USB_GPIO=y CONFIG_IIO=y CONFIG_ROCKCHIP_SARADC=y CONFIG_PWM=y diff --git a/buildroot/board/luckfox-pico/post-build.sh b/buildroot/board/luckfox-pico/post-build.sh new file mode 100644 index 00000000..0104b942 --- /dev/null +++ b/buildroot/board/luckfox-pico/post-build.sh @@ -0,0 +1,26 @@ +#!/bin/sh +# Post-build script to remove duplicate toolchain libraries + +# Remove duplicate C++ standard library from /lib (keep only in /usr/lib) +echo "Removing duplicate libstdc++ libraries from /lib..." +rm -f "${TARGET_DIR}/lib/libstdc++.so.6"* +rm -f "${TARGET_DIR}/lib/libstdc++.so" + +# Remove duplicate libgcc_s from /lib (keep only in /usr/lib) +echo "Removing duplicate libgcc_s from /lib..." +rm -f "${TARGET_DIR}/lib/libgcc_s.so.1" + +# Remove duplicate libatomic from /lib (keep only in /usr/lib) +echo "Removing duplicate libatomic from /lib..." +rm -f "${TARGET_DIR}/lib/libatomic.so.1"* +rm -f "${TARGET_DIR}/lib/libatomic.so" + +# Remove duplicate libgfortran from /lib (keep only in /usr/lib) +echo "Removing duplicate libgfortran from /lib..." +rm -f "${TARGET_DIR}/lib/libgfortran.so.5"* +rm -f "${TARGET_DIR}/lib/libgfortran.so" + +# Remove duplicate libgomp from /lib (keep only in /usr/lib) +echo "Removing duplicate libgomp from /lib..." +rm -f "${TARGET_DIR}/lib/libgomp.so.1"* +rm -f "${TARGET_DIR}/lib/libgomp.so" diff --git a/ext_tree/Config.in b/ext_tree/Config.in index 688c94ea..940377eb 100644 --- a/ext_tree/Config.in +++ b/ext_tree/Config.in @@ -9,4 +9,7 @@ menu "Custom packages" source "../ext_tree/package/status-monitor/Config.in" source "../ext_tree/package/qobuz-connect/Config.in" source "../ext_tree/package/tidal-connect/Config.in" -endmenu + source "../ext_tree/package/uac2_router/Config.in" + source "../ext_tree/package/buffer_daemon/Config.in" + source "../ext_tree/package/dlna_bridge/Config.in" + endmenu diff --git a/ext_tree/board/luckfox/config/linux.config b/ext_tree/board/luckfox/config/linux.config index 5e176abd..94d648ee 100644 --- a/ext_tree/board/luckfox/config/linux.config +++ b/ext_tree/board/luckfox/config/linux.config @@ -1,21 +1,26 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm 5.10.160 Kernel Configuration +# Linux/arm 6.1.118 Kernel Configuration # CONFIG_CC_VERSION_TEXT="arm-none-linux-gnueabihf-gcc (Arm GNU Toolchain 14.2.Rel1 (Build arm-14.52)) 14.2.1 20241119" CONFIG_CC_IS_GCC=y CONFIG_GCC_VERSION=140201 -CONFIG_LD_VERSION=243010000 CONFIG_CLANG_VERSION=0 +CONFIG_AS_IS_GNU=y +CONFIG_AS_VERSION=24301 +CONFIG_LD_IS_BFD=y +CONFIG_LD_VERSION=24301 CONFIG_LLD_VERSION=0 CONFIG_CC_CAN_LINK=y CONFIG_CC_CAN_LINK_STATIC=y -CONFIG_CC_HAS_ASM_GOTO=y CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y CONFIG_CC_HAS_ASM_INLINE=y +CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y +CONFIG_PAHOLE_VERSION=0 CONFIG_IRQ_WORK=y CONFIG_BUILDTIME_TABLE_SORT=y +CONFIG_THREAD_INFO_IN_TASK=y # # General setup @@ -38,8 +43,7 @@ CONFIG_KERNEL_GZIP=y # CONFIG_KERNEL_LZO is not set # CONFIG_KERNEL_LZ4 is not set CONFIG_DEFAULT_INIT="" -CONFIG_DEFAULT_HOSTNAME="localhost" -CONFIG_SWAP=y +CONFIG_DEFAULT_HOSTNAME="rv1106" CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y # CONFIG_POSIX_MQUEUE is not set @@ -55,15 +59,12 @@ CONFIG_HAVE_ARCH_AUDITSYSCALL=y CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_SHOW=y CONFIG_GENERIC_IRQ_SHOW_LEVEL=y -CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y CONFIG_HARDIRQS_SW_RESEND=y CONFIG_GENERIC_IRQ_CHIP=y CONFIG_IRQ_DOMAIN=y CONFIG_IRQ_DOMAIN_HIERARCHY=y -CONFIG_HANDLE_DOMAIN_IRQ=y CONFIG_IRQ_FORCED_THREADING=y CONFIG_SPARSE_IRQ=y -# CONFIG_GENERIC_IRQ_DEBUGFS is not set # end of IRQ subsystem CONFIG_GENERIC_IRQ_MULTI_HANDLER=y @@ -80,6 +81,17 @@ CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y # end of Timers subsystem +CONFIG_BPF=y +CONFIG_HAVE_EBPF_JIT=y + +# +# BPF subsystem +# +# CONFIG_BPF_SYSCALL is not set +# CONFIG_BPF_JIT is not set +# end of BPF subsystem + +CONFIG_PREEMPT_VOLUNTARY_BUILD=y # CONFIG_PREEMPT_NONE is not set CONFIG_PREEMPT_VOLUNTARY=y # CONFIG_PREEMPT is not set @@ -116,7 +128,11 @@ CONFIG_GENERIC_SCHED_CLOCK=y # # end of Scheduler features +CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5" +CONFIG_GCC10_NO_ARRAY_BOUNDS=y +CONFIG_CC_NO_ARRAY_BOUNDS=y CONFIG_CGROUPS=y +# CONFIG_CGROUP_FAVOR_DYNMODS is not set # CONFIG_MEMCG is not set # CONFIG_BLK_CGROUP is not set # CONFIG_CGROUP_SCHED is not set @@ -125,6 +141,7 @@ CONFIG_CGROUPS=y # CONFIG_CGROUP_FREEZER is not set # CONFIG_CGROUP_DEVICE is not set # CONFIG_CGROUP_CPUACCT is not set +# CONFIG_CGROUP_MISC is not set # CONFIG_CGROUP_DEBUG is not set # CONFIG_NAMESPACES is not set # CONFIG_CHECKPOINT_RESTORE is not set @@ -141,14 +158,15 @@ CONFIG_RD_XZ=y CONFIG_RD_LZO=y CONFIG_RD_LZ4=y CONFIG_RD_ZSTD=y -# CONFIG_INITRD_ASYNC is not set # CONFIG_BOOT_CONFIG is not set +CONFIG_INITRAMFS_PRESERVE_MTIME=y # CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE is not set CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_HAVE_LD_DEAD_CODE_DATA_ELIMINATION=y +# CONFIG_LD_DEAD_CODE_DATA_ELIMINATION is not set CONFIG_LD_ORPHAN_WARN=y CONFIG_SYSCTL=y CONFIG_HAVE_UID16=y -CONFIG_BPF=y CONFIG_EXPERT=y CONFIG_UID16=y CONFIG_MULTIUSER=y @@ -157,13 +175,11 @@ CONFIG_SYSFS_SYSCALL=y CONFIG_FHANDLE=y CONFIG_POSIX_TIMERS=y CONFIG_PRINTK=y -CONFIG_PRINTK_NMI=y # CONFIG_BUG is not set CONFIG_ELF_CORE=y # CONFIG_BASE_FULL is not set CONFIG_FUTEX=y CONFIG_FUTEX_PI=y -CONFIG_HAVE_FUTEX_CMPXCHG=y CONFIG_EPOLL=y CONFIG_SIGNALFD=y CONFIG_TIMERFD=y @@ -176,8 +192,6 @@ CONFIG_MEMBARRIER=y CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_ALL is not set CONFIG_KALLSYMS_BASE_RELATIVE=y -# CONFIG_BPF_SYSCALL is not set -# CONFIG_USERFAULTFD is not set CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y # CONFIG_KCMP is not set CONFIG_RSEQ=y @@ -193,32 +207,19 @@ CONFIG_PERF_USE_VMALLOC=y # CONFIG_PERF_EVENTS is not set # end of Kernel Performance Events And Counters -# CONFIG_VM_EVENT_COUNTERS is not set -CONFIG_SLUB_SYSFS=y -# CONFIG_SLUB_DEBUG is not set -CONFIG_COMPAT_BRK=y -# CONFIG_SLAB is not set -CONFIG_SLUB=y -# CONFIG_SLOB is not set -CONFIG_SLAB_MERGE_DEFAULT=y -# CONFIG_SLAB_FREELIST_RANDOM is not set -# CONFIG_SLAB_FREELIST_HARDENED is not set -# CONFIG_SHUFFLE_PAGE_ALLOCATOR is not set # CONFIG_PROFILING is not set # end of General setup CONFIG_ARM=y -CONFIG_ARM_HAS_SG_CHAIN=y +CONFIG_ARM_HAS_GROUP_RELOCS=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y CONFIG_HAVE_PROC_CPU=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_LOCKDEP_SUPPORT=y -CONFIG_TRACE_IRQFLAGS_SUPPORT=y CONFIG_FIX_EARLYCON_MEM=y CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_ARCH_SUPPORTS_UPROBES=y -CONFIG_FIQ=y CONFIG_ARM_PATCH_PHYS_VIRT=y CONFIG_PGTABLE_LEVELS=2 @@ -229,20 +230,9 @@ CONFIG_MMU=y CONFIG_ARCH_MMAP_RND_BITS_MIN=8 CONFIG_ARCH_MMAP_RND_BITS_MAX=16 CONFIG_ARCH_MULTIPLATFORM=y -# CONFIG_ARCH_EBSA110 is not set -# CONFIG_ARCH_EP93XX is not set -# CONFIG_ARCH_FOOTBRIDGE is not set -# CONFIG_ARCH_IOP32X is not set -# CONFIG_ARCH_IXP4XX is not set -# CONFIG_ARCH_DOVE is not set -# CONFIG_ARCH_PXA is not set -# CONFIG_ARCH_RPC is not set -# CONFIG_ARCH_SA1100 is not set -# CONFIG_ARCH_S3C24XX is not set -# CONFIG_ARCH_OMAP1 is not set # -# Multiple platform selection +# Platform selection # # @@ -251,9 +241,10 @@ CONFIG_ARCH_MULTIPLATFORM=y # CONFIG_ARCH_MULTI_V6 is not set CONFIG_ARCH_MULTI_V7=y CONFIG_ARCH_MULTI_V6_V7=y -# end of Multiple platform selection +# end of Platform selection # CONFIG_ARCH_VIRT is not set +# CONFIG_ARCH_AIROHA is not set # CONFIG_ARCH_ACTIONS is not set # CONFIG_ARCH_ALPINE is not set # CONFIG_ARCH_ARTPEC is not set @@ -262,9 +253,11 @@ CONFIG_ARCH_MULTI_V6_V7=y # CONFIG_ARCH_BCM is not set # CONFIG_ARCH_BERLIN is not set # CONFIG_ARCH_DIGICOLOR is not set +# CONFIG_ARCH_DOVE is not set # CONFIG_ARCH_EXYNOS is not set # CONFIG_ARCH_HIGHBANK is not set # CONFIG_ARCH_HISI is not set +# CONFIG_ARCH_HPE is not set # CONFIG_ARCH_MXC is not set # CONFIG_ARCH_KEYSTONE is not set # CONFIG_ARCH_MEDIATEK is not set @@ -286,26 +279,24 @@ CONFIG_ARCH_MULTI_V6_V7=y # CONFIG_SOC_DRA7XX is not set # end of TI OMAP/AM/DM/DRA Family -# CONFIG_ARCH_SIRF is not set # CONFIG_ARCH_QCOM is not set # CONFIG_ARCH_RDA is not set # CONFIG_ARCH_REALTEK is not set -# CONFIG_ARCH_REALVIEW is not set CONFIG_ARCH_ROCKCHIP=y # CONFIG_ARCH_S5PV210 is not set # CONFIG_ARCH_RENESAS is not set -# CONFIG_ARCH_SOCFPGA is not set +# CONFIG_ARCH_INTEL_SOCFPGA is not set # CONFIG_PLAT_SPEAR is not set # CONFIG_ARCH_STI is not set # CONFIG_ARCH_STM32 is not set +# CONFIG_ARCH_SUNPLUS is not set # CONFIG_ARCH_SUNXI is not set -# CONFIG_ARCH_TANGO is not set # CONFIG_ARCH_TEGRA is not set # CONFIG_ARCH_UNIPHIER is not set # CONFIG_ARCH_U8500 is not set +# CONFIG_ARCH_REALVIEW is not set # CONFIG_ARCH_VEXPRESS is not set # CONFIG_ARCH_WM8850 is not set -# CONFIG_ARCH_ZX is not set # CONFIG_ARCH_ZYNQ is not set # @@ -333,6 +324,8 @@ CONFIG_ARM_THUMB=y # CONFIG_ARM_THUMBEE is not set CONFIG_ARM_VIRT_EXT=y # CONFIG_SWP_EMULATE is not set +CONFIG_CPU_LITTLE_ENDIAN=y +# CONFIG_CPU_BIG_ENDIAN is not set # CONFIG_CPU_ICACHE_DISABLE is not set # CONFIG_CPU_DCACHE_DISABLE is not set # CONFIG_CPU_BPREDICT_DISABLE is not set @@ -356,6 +349,7 @@ CONFIG_ARM_HEAVY_MB=y # CONFIG_ARM_ERRATA_430973 is not set # CONFIG_ARM_ERRATA_720789 is not set # CONFIG_ARM_ERRATA_754322 is not set +# CONFIG_ARM_ERRATA_764319 is not set # CONFIG_ARM_ERRATA_775420 is not set # CONFIG_ARM_ERRATA_773022 is not set # CONFIG_ARM_ERRATA_818325_852422 is not set @@ -367,12 +361,10 @@ CONFIG_ARM_HEAVY_MB=y # CONFIG_ARM_ERRATA_857272 is not set # end of System Type -CONFIG_FIQ_GLUE=y - # # Bus support # -# CONFIG_ARM_ERRATA_814220 is not set +CONFIG_ARM_ERRATA_814220=y # end of Bus support # @@ -380,6 +372,8 @@ CONFIG_FIQ_GLUE=y # CONFIG_HAVE_SMP=y # CONFIG_SMP is not set +CONFIG_CURRENT_POINTER_IN_TPIDRURO=y +CONFIG_IRQSTACKS=y CONFIG_HAVE_ARM_ARCH_TIMER=y # CONFIG_VMSPLIT_3G is not set CONFIG_VMSPLIT_3G_OPT=y @@ -403,16 +397,17 @@ CONFIG_AEABI=y CONFIG_ARCH_SELECT_MEMORY_MODEL=y CONFIG_ARCH_FLATMEM_ENABLE=y CONFIG_ARCH_SPARSEMEM_ENABLE=y -CONFIG_HAVE_ARCH_PFN_VALID=y # CONFIG_HIGHMEM is not set # CONFIG_CPU_SW_DOMAIN_PAN is not set -CONFIG_ARCH_WANT_GENERAL_HUGETLB=y -CONFIG_FORCE_MAX_ZONEORDER=9 +CONFIG_ARM_MODULE_PLTS=y +CONFIG_ARCH_FORCE_MAX_ORDER=11 CONFIG_ALIGNMENT_TRAP=y CONFIG_UACCESS_WITH_MEMCPY=y # CONFIG_PARAVIRT is not set # CONFIG_PARAVIRT_TIME_ACCOUNTING is not set # CONFIG_XEN is not set +CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y +CONFIG_STACKPROTECTOR_PER_TASK=y # end of Kernel Features # @@ -420,11 +415,12 @@ CONFIG_UACCESS_WITH_MEMCPY=y # CONFIG_USE_OF=y CONFIG_ATAGS=y +# CONFIG_UNUSED_BOARD_FILES is not set # CONFIG_DEPRECATED_PARAM_STRUCT is not set CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 # CONFIG_ARM_APPENDED_DTB is not set -CONFIG_CMDLINE="user_debug=31 usbcore.initial_descriptor_timeout=30000 usbcore.reset_timeout=30000 usbcore.use_both_schemes=0" +CONFIG_CMDLINE="user_debug=31" # CONFIG_CMDLINE_FROM_BOOTLOADER is not set CONFIG_CMDLINE_EXTEND=y # CONFIG_CMDLINE_FORCE is not set @@ -445,7 +441,6 @@ CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_GOV_ATTR_SET=y CONFIG_CPU_FREQ_GOV_COMMON=y # CONFIG_CPU_FREQ_STAT is not set -# CONFIG_CPU_FREQ_TIMES is not set CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y # CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set @@ -454,7 +449,7 @@ CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y # CONFIG_CPU_FREQ_DEFAULT_GOV_INTERACTIVE is not set CONFIG_CPU_FREQ_GOV_PERFORMANCE=y CONFIG_CPU_FREQ_GOV_POWERSAVE=y -# CONFIG_CPU_FREQ_GOV_USERSPACE is not set +CONFIG_CPU_FREQ_GOV_USERSPACE=y CONFIG_CPU_FREQ_GOV_ONDEMAND=y CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y # CONFIG_CPU_FREQ_GOV_INTERACTIVE is not set @@ -463,7 +458,6 @@ CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y # CPU frequency scaling drivers # CONFIG_CPUFREQ_DT=y -# CONFIG_CPUFREQ_DUMMY is not set CONFIG_ARM_ROCKCHIP_CPUFREQ=y # end of CPU Frequency scaling @@ -501,31 +495,13 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y CONFIG_ARCH_HIBERNATION_POSSIBLE=y # end of Power management options -# -# Firmware Drivers -# -# CONFIG_FIRMWARE_MEMMAP is not set -# CONFIG_FW_CFG_SYSFS is not set -# CONFIG_QCOM_SCM is not set -# CONFIG_ROCKCHIP_SIP is not set -# CONFIG_TRUSTED_FOUNDATIONS is not set -# CONFIG_GOOGLE_FIRMWARE is not set -CONFIG_HAVE_ARM_SMCCC=y - -# -# Tegra firmware driver -# -# end of Tegra firmware driver -# end of Firmware Drivers - -# CONFIG_ARM_CRYPTO is not set CONFIG_AS_VFP_VMRS_FPINST=y +CONFIG_CPU_MITIGATIONS=y # # General architecture-dependent options # -CONFIG_SET_FS=y -CONFIG_HAVE_OPROFILE=y +# CONFIG_KPROBES is not set CONFIG_JUMP_LABEL=y # CONFIG_STATIC_KEYS_SELFTEST is not set CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y @@ -533,6 +509,7 @@ CONFIG_ARCH_USE_BUILTIN_BSWAP=y CONFIG_HAVE_KPROBES=y CONFIG_HAVE_KRETPROBES=y CONFIG_HAVE_NMI=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y CONFIG_HAVE_ARCH_TRACEHOOK=y CONFIG_HAVE_DMA_CONTIGUOUS=y CONFIG_GENERIC_SMP_IDLE_THREAD=y @@ -540,6 +517,7 @@ CONFIG_GENERIC_IDLE_POLL_SETUP=y CONFIG_ARCH_HAS_FORTIFY_SOURCE=y CONFIG_ARCH_HAS_KEEPINITRD=y CONFIG_ARCH_HAS_SET_MEMORY=y +CONFIG_ARCH_HAS_CPU_FINALIZE_INIT=y CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y CONFIG_ARCH_32BIT_OFF_T=y CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y @@ -547,41 +525,48 @@ CONFIG_HAVE_RSEQ=y CONFIG_HAVE_PERF_REGS=y CONFIG_HAVE_PERF_USER_STACK_DUMP=y CONFIG_HAVE_ARCH_JUMP_LABEL=y +CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y CONFIG_HAVE_ARCH_SECCOMP=y CONFIG_HAVE_ARCH_SECCOMP_FILTER=y CONFIG_SECCOMP=y CONFIG_SECCOMP_FILTER=y +# CONFIG_SECCOMP_CACHE_DEBUG is not set CONFIG_HAVE_STACKPROTECTOR=y CONFIG_STACKPROTECTOR=y # CONFIG_STACKPROTECTOR_STRONG is not set CONFIG_LTO_NONE=y -CONFIG_HAVE_CONTEXT_TRACKING=y +CONFIG_HAVE_CONTEXT_TRACKING_USER=y CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y CONFIG_HAVE_MOD_ARCH_SPECIFIC=y CONFIG_MODULES_USE_ELF_REL=y +CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y +CONFIG_HAVE_SOFTIRQ_ON_OWN_STACK=y +CONFIG_SOFTIRQ_ON_OWN_STACK=y CONFIG_ARCH_HAS_ELF_RANDOMIZE=y CONFIG_HAVE_ARCH_MMAP_RND_BITS=y CONFIG_HAVE_EXIT_THREAD=y CONFIG_ARCH_MMAP_RND_BITS=8 +CONFIG_PAGE_SIZE_LESS_THAN_64KB=y +CONFIG_PAGE_SIZE_LESS_THAN_256KB=y CONFIG_ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT=y CONFIG_CLONE_BACKWARDS=y CONFIG_OLD_SIGSUSPEND3=y CONFIG_OLD_SIGACTION=y CONFIG_COMPAT_32BIT_TIME=y +CONFIG_HAVE_ARCH_VMAP_STACK=y +CONFIG_VMAP_STACK=y CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y # CONFIG_STRICT_KERNEL_RWX is not set -CONFIG_ARCH_HAS_PHYS_TO_DMA=y -# CONFIG_LOCK_EVENT_COUNTS is not set CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y +CONFIG_HAVE_ARCH_PFN_VALID=y # # GCOV-based kernel profiling # -# CONFIG_GCOV_KERNEL is not set CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y # end of GCOV-based kernel profiling @@ -591,16 +576,27 @@ CONFIG_HAVE_GCC_PLUGINS=y CONFIG_RT_MUTEXES=y CONFIG_BASE_SMALL=1 -# CONFIG_MODULES is not set +CONFIG_MODULES=y +# CONFIG_MODULE_FORCE_LOAD is not set +CONFIG_MODULE_UNLOAD=y +# CONFIG_MODULE_FORCE_UNLOAD is not set +# CONFIG_MODULE_UNLOAD_TAINT_TRACKING is not set +# CONFIG_MODVERSIONS is not set +# CONFIG_MODULE_SRCVERSION_ALL is not set +# CONFIG_MODULE_SIG is not set +CONFIG_MODULE_COMPRESS_NONE=y +# CONFIG_MODULE_COMPRESS_GZIP is not set +# CONFIG_MODULE_COMPRESS_XZ is not set +# CONFIG_MODULE_COMPRESS_ZSTD is not set +# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set +CONFIG_MODPROBE_PATH="/sbin/modprobe" +# CONFIG_TRIM_UNUSED_KSYMS is not set CONFIG_BLOCK=y -CONFIG_BLK_SCSI_REQUEST=y -# CONFIG_BLK_DEV_BSG is not set +CONFIG_BLOCK_LEGACY_AUTOLOAD=y # CONFIG_BLK_DEV_BSGLIB is not set # CONFIG_BLK_DEV_INTEGRITY is not set # CONFIG_BLK_DEV_ZONED is not set -CONFIG_BLK_CMDLINE_PARSER=y # CONFIG_BLK_WBT is not set -CONFIG_BLK_DEBUG_FS=y # CONFIG_BLK_SED_OPAL is not set # CONFIG_BLK_INLINE_ENCRYPTION is not set @@ -665,36 +661,59 @@ CONFIG_COREDUMP=y # # Memory Management options # +CONFIG_SWAP=y +# CONFIG_ZSWAP is not set + +# +# SLAB allocator options +# +# CONFIG_SLAB is not set +CONFIG_SLUB=y +# CONFIG_SLOB is not set +CONFIG_SLAB_MERGE_DEFAULT=y +# CONFIG_SLAB_FREELIST_RANDOM is not set +# CONFIG_SLAB_FREELIST_HARDENED is not set +CONFIG_SLUB_SYSFS=y +# CONFIG_SLUB_STATS is not set +# end of SLAB allocator options + +# CONFIG_SHUFFLE_PAGE_ALLOCATOR is not set +CONFIG_COMPAT_BRK=y CONFIG_SELECT_MEMORY_MODEL=y CONFIG_FLATMEM_MANUAL=y # CONFIG_SPARSEMEM_MANUAL is not set CONFIG_FLATMEM=y -CONFIG_FLAT_NODE_MEM_MAP=y CONFIG_ARCH_KEEP_MEMBLOCK=y CONFIG_MEMORY_ISOLATION=y CONFIG_SPLIT_PTLOCK_CPUS=4 CONFIG_COMPACTION=y +CONFIG_COMPACT_UNEVICTABLE_DEFAULT=1 # CONFIG_PAGE_REPORTING is not set CONFIG_MIGRATION=y CONFIG_CONTIG_ALLOC=y +CONFIG_PCP_BATCH_SCALE_MAX=5 CONFIG_KSM=y CONFIG_DEFAULT_MMAP_MIN_ADDR=32768 +CONFIG_ARCH_WANT_GENERAL_HUGETLB=y CONFIG_NEED_PER_CPU_KM=y -# CONFIG_CLEANCACHE is not set -# CONFIG_FRONTSWAP is not set CONFIG_CMA=y CONFIG_CMA_INACTIVE=y # CONFIG_CMA_DEBUG is not set -# CONFIG_CMA_DEBUGFS is not set # CONFIG_CMA_SYSFS is not set CONFIG_CMA_AREAS=7 -# CONFIG_ZPOOL is not set -# CONFIG_ZBUD is not set -# CONFIG_ZSMALLOC is not set CONFIG_GENERIC_EARLY_IOREMAP=y # CONFIG_IDLE_PAGE_TRACKING is not set +CONFIG_ARCH_HAS_CURRENT_STACK_POINTER=y +# CONFIG_VM_EVENT_COUNTERS is not set # CONFIG_PERCPU_STATS is not set -# CONFIG_GUP_BENCHMARK is not set + +# +# GUP_TEST needs to have DEBUG_FS enabled +# +# CONFIG_ANON_VMA_NAME is not set +# CONFIG_USERFAULTFD is not set +# CONFIG_LRU_GEN is not set +CONFIG_LOCK_MM_AND_FIND_VMA=y # # Data Access Monitoring @@ -712,6 +731,7 @@ CONFIG_PACKET=y # CONFIG_PACKET_DIAG is not set CONFIG_UNIX=y CONFIG_UNIX_SCM=y +CONFIG_AF_UNIX_OOB=y # CONFIG_UNIX_DIAG is not set # CONFIG_TLS is not set # CONFIG_XFRM_USER is not set @@ -728,7 +748,7 @@ CONFIG_INET=y # CONFIG_INET_AH is not set # CONFIG_INET_ESP is not set # CONFIG_INET_IPCOMP is not set -CONFIG_INET_TABLE_PERTURB_ORDER=16 +CONFIG_INET_TABLE_PERTURB_ORDER=8 # CONFIG_INET_DIAG is not set # CONFIG_TCP_CONG_ADVANCED is not set CONFIG_TCP_CONG_CUBIC=y @@ -741,14 +761,16 @@ CONFIG_IPV6=y # CONFIG_INET6_ESP is not set # CONFIG_INET6_IPCOMP is not set # CONFIG_IPV6_MIP6 is not set +CONFIG_INET6_TUNNEL=y # CONFIG_IPV6_VTI is not set # CONFIG_IPV6_SIT is not set -# CONFIG_IPV6_TUNNEL is not set +CONFIG_IPV6_TUNNEL=y # CONFIG_IPV6_MULTIPLE_TABLES is not set # CONFIG_IPV6_MROUTE is not set # CONFIG_IPV6_SEG6_LWTUNNEL is not set # CONFIG_IPV6_SEG6_HMAC is not set # CONFIG_IPV6_RPL_LWTUNNEL is not set +# CONFIG_IPV6_IOAM6_LWTUNNEL is not set # CONFIG_MPTCP is not set # CONFIG_NETWORK_SECMARK is not set # CONFIG_NETWORK_PHY_TIMESTAMPING is not set @@ -761,10 +783,8 @@ CONFIG_IPV6=y # CONFIG_ATM is not set # CONFIG_L2TP is not set # CONFIG_BRIDGE is not set -CONFIG_HAVE_NET_DSA=y # CONFIG_NET_DSA is not set # CONFIG_VLAN_8021Q is not set -# CONFIG_DECNET is not set # CONFIG_LLC2 is not set # CONFIG_ATALK is not set # CONFIG_X25 is not set @@ -774,7 +794,6 @@ CONFIG_HAVE_NET_DSA=y # CONFIG_IEEE802154 is not set # CONFIG_NET_SCHED is not set # CONFIG_DCB is not set -CONFIG_DNS_RESOLVER=y # CONFIG_BATMAN_ADV is not set # CONFIG_OPENVSWITCH is not set # CONFIG_VSOCKETS is not set @@ -803,8 +822,8 @@ CONFIG_BQL=y # CONFIG_BT is not set # CONFIG_AF_RXRPC is not set # CONFIG_AF_KCM is not set +# CONFIG_MCTP is not set # CONFIG_WIRELESS is not set -# CONFIG_WIMAX is not set # CONFIG_RFKILL is not set # CONFIG_NET_9P is not set # CONFIG_CAIF is not set @@ -813,10 +832,13 @@ CONFIG_BQL=y # CONFIG_PSAMPLE is not set # CONFIG_NET_IFE is not set # CONFIG_LWTUNNEL is not set +CONFIG_DST_CACHE=y +CONFIG_GRO_CELLS=y +CONFIG_NET_SELFTESTS=y CONFIG_PAGE_POOL=y +# CONFIG_PAGE_POOL_STATS is not set # CONFIG_FAILOVER is not set CONFIG_ETHTOOL_NETLINK=y -CONFIG_HAVE_EBPF_JIT=y # # Device Drivers @@ -832,6 +854,7 @@ CONFIG_HAVE_PCI=y # CONFIG_UEVENT_HELPER is not set CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS_MOUNT=y +# CONFIG_DEVTMPFS_SAFE is not set CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y @@ -842,12 +865,14 @@ CONFIG_FW_LOADER=y CONFIG_EXTRA_FIRMWARE="" # CONFIG_FW_LOADER_USER_HELPER is not set # CONFIG_FW_LOADER_COMPRESS is not set +# CONFIG_FW_UPLOAD is not set # end of Firmware loader # CONFIG_ALLOW_DEV_COREDUMP is not set # CONFIG_DEBUG_DRIVER is not set # CONFIG_DEBUG_DEVRES is not set # CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set +# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set CONFIG_GENERIC_CPU_AUTOPROBE=y CONFIG_GENERIC_CPU_VULNERABILITIES=y CONFIG_REGMAP=y @@ -864,14 +889,39 @@ CONFIG_DMA_SHARED_BUFFER=y # # CONFIG_BRCMSTB_GISB_ARB is not set # CONFIG_MOXTET is not set -# CONFIG_SIMPLE_PM_BUS is not set # CONFIG_VEXPRESS_CONFIG is not set # CONFIG_MHI_BUS is not set +# CONFIG_MHI_BUS_EP is not set # end of Bus devices # CONFIG_CONNECTOR is not set + +# +# Firmware Drivers +# + +# +# ARM System Control and Management Interface Protocol +# +# CONFIG_ARM_SCMI_PROTOCOL is not set +# end of ARM System Control and Management Interface Protocol + +# CONFIG_FIRMWARE_MEMMAP is not set +# CONFIG_FW_CFG_SYSFS is not set +# CONFIG_ROCKCHIP_SIP is not set +# CONFIG_TRUSTED_FOUNDATIONS is not set +# CONFIG_GOOGLE_FIRMWARE is not set +CONFIG_HAVE_ARM_SMCCC=y + +# +# Tegra firmware driver +# +# end of Tegra firmware driver +# end of Firmware Drivers + # CONFIG_GNSS is not set CONFIG_MTD=y +# CONFIG_MTD_TESTS is not set # # Partition parsers @@ -888,6 +938,10 @@ CONFIG_MTD_CMDLINE_PARTS=y # CONFIG_MTD_BLKDEVS=y CONFIG_MTD_BLOCK=y + +# +# Note that in some cases UBI block is preferred. See MTD_UBI_BLOCK. +# # CONFIG_FTL is not set # CONFIG_NFTL is not set # CONFIG_INFTL is not set @@ -925,6 +979,7 @@ CONFIG_MTD_CFI_I2=y # # CONFIG_MTD_DATAFLASH is not set # CONFIG_MTD_MCHP23K256 is not set +# CONFIG_MTD_MCHP48L640 is not set # CONFIG_MTD_SST25L is not set # CONFIG_MTD_SLRAM is not set # CONFIG_MTD_PHRAM is not set @@ -944,10 +999,38 @@ CONFIG_MTD_NAND_CORE=y # CONFIG_MTD_ONENAND is not set # CONFIG_MTD_RAW_NAND is not set CONFIG_MTD_SPI_NAND=y +CONFIG_MTD_SPI_NAND_DEVICE_AUTOSELECT=y +CONFIG_MTD_SPI_NAND_ATO=y +CONFIG_MTD_SPI_NAND_BIWIN=y +CONFIG_MTD_SPI_NAND_DOSILICON=y +CONFIG_MTD_SPI_NAND_ESMT=y +CONFIG_MTD_SPI_NAND_ETRON=y +CONFIG_MTD_SPI_NAND_FMSH=y +CONFIG_MTD_SPI_NAND_FORESEE=y +CONFIG_MTD_SPI_NAND_GIGADEVICE=y +CONFIG_MTD_SPI_NAND_GSTO=y +CONFIG_MTD_SPI_NAND_HIKSEMI=y +CONFIG_MTD_SPI_NAND_HYF=y +CONFIG_MTD_SPI_NAND_JSC=y +CONFIG_MTD_SPI_NAND_MACRONIX=y +CONFIG_MTD_SPI_NAND_MICRON=y +CONFIG_MTD_SPI_NAND_PARAGON=y +CONFIG_MTD_SPI_NAND_SILICONGO=y +CONFIG_MTD_SPI_NAND_SKYHIGH=y +CONFIG_MTD_SPI_NAND_TOSHIBA=y +CONFIG_MTD_SPI_NAND_UNIM=y +CONFIG_MTD_SPI_NAND_WINBOND=y +CONFIG_MTD_SPI_NAND_XINCUN=y +CONFIG_MTD_SPI_NAND_XTX=y +CONFIG_MTD_SPI_NAND_ZBIT=y # # ECC engine support # +CONFIG_MTD_NAND_ECC=y +# CONFIG_MTD_NAND_ECC_SW_HAMMING is not set +# CONFIG_MTD_NAND_ECC_SW_BCH is not set +# CONFIG_MTD_NAND_ECC_MXIC is not set CONFIG_MTD_NAND_BBT_USING_FLASH=y # end of ECC engine support # end of NAND @@ -962,6 +1045,32 @@ CONFIG_MTD_NAND_BBT_USING_FLASH=y CONFIG_MTD_SPI_NOR=y # CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set CONFIG_MTD_SPI_NOR_MISC=y +# CONFIG_MTD_SPI_NOR_SWP_DISABLE is not set +CONFIG_MTD_SPI_NOR_SWP_DISABLE_ON_VOLATILE=y +# CONFIG_MTD_SPI_NOR_SWP_KEEP is not set +CONFIG_MTD_SPI_NOR_DEVICE_AUTOSELECT=y +CONFIG_MTD_SPI_NOR_ATMEL=y +CONFIG_MTD_SPI_NOR_BOYA=y +CONFIG_MTD_SPI_NOR_CATALYST=y +CONFIG_MTD_SPI_NOR_DOSILICON=y +CONFIG_MTD_SPI_NOR_EON=y +CONFIG_MTD_SPI_NOR_ESMT=y +CONFIG_MTD_SPI_NOR_EVERSPIN=y +CONFIG_MTD_SPI_NOR_FMSH=y +CONFIG_MTD_SPI_NOR_FUJITSU=y +CONFIG_MTD_SPI_NOR_GIGADEVICE=y +CONFIG_MTD_SPI_NOR_INTEL=y +CONFIG_MTD_SPI_NOR_ISSI=y +CONFIG_MTD_SPI_NOR_MACRONIX=y +CONFIG_MTD_SPI_NOR_NORMEM=y +CONFIG_MTD_SPI_NOR_PUYA=y +CONFIG_MTD_SPI_NOR_SPANSION=y +CONFIG_MTD_SPI_NOR_STMICRO=y +CONFIG_MTD_SPI_NOR_SST=y +CONFIG_MTD_SPI_NOR_WINBOND=y +CONFIG_MTD_SPI_NOR_XILINX=y +CONFIG_MTD_SPI_NOR_XMC=y +CONFIG_MTD_SPI_NOR_XTX=y CONFIG_MTD_UBI=y CONFIG_MTD_UBI_WL_THRESHOLD=4096 CONFIG_MTD_UBI_BEB_LIMIT=20 @@ -971,9 +1080,9 @@ CONFIG_MTD_UBI_BLOCK=y # CONFIG_MTD_HYPERBUS is not set CONFIG_DTC=y CONFIG_OF=y -# CONFIG_DTC_SYMBOLS is not set -# CONFIG_DTC_OMIT_DISABLED is not set -# CONFIG_DTC_OMIT_EMPTY is not set +CONFIG_DTC_SYMBOLS=y +CONFIG_DTC_OMIT_DISABLED=y +CONFIG_DTC_OMIT_EMPTY=y # CONFIG_OF_UNITTEST is not set CONFIG_OF_FLATTREE=y CONFIG_OF_EARLY_FLATTREE=y @@ -981,7 +1090,6 @@ CONFIG_OF_KOBJ=y CONFIG_OF_DYNAMIC=y CONFIG_OF_ADDRESS=y CONFIG_OF_IRQ=y -CONFIG_OF_NET=y CONFIG_OF_RESERVED_MEM=y CONFIG_OF_RESOLVE=y CONFIG_OF_OVERLAY=y @@ -989,17 +1097,17 @@ CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y # CONFIG_PARPORT is not set CONFIG_BLK_DEV=y # CONFIG_BLK_DEV_NULL_BLK is not set +# CONFIG_ZRAM is not set CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 -# CONFIG_BLK_DEV_CRYPTOLOOP is not set # CONFIG_BLK_DEV_DRBD is not set # CONFIG_BLK_DEV_NBD is not set CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM_COUNT=16 CONFIG_BLK_DEV_RAM_SIZE=4096 -# CONFIG_CDROM_PKTCDVD is not set # CONFIG_ATA_OVER_ETH is not set # CONFIG_BLK_DEV_RBD is not set +# CONFIG_BLK_DEV_UBLK is not set # # NVME Support @@ -1012,7 +1120,23 @@ CONFIG_BLK_DEV_RAM_SIZE=4096 # # Misc devices # + +# +# RK628 misc driver +# +# CONFIG_RK628_MISC is not set +# end of RK628 misc driver + # CONFIG_RK803 is not set + +# +# misc vehicle setting +# +# CONFIG_VEHICLE_CORE is not set +# CONFIG_VEHICLE_GPIO_MCU_EXPANDER is not set +# CONFIG_VEHICLE_DRIVER_OREO is not set +# end of misc vehicle setting + # CONFIG_AD525X_DPOT is not set # CONFIG_DUMMY_IRQ is not set # CONFIG_ICS932S401 is not set @@ -1028,8 +1152,9 @@ CONFIG_BLK_DEV_RAM_SIZE=4096 # CONFIG_LATTICE_ECP3_CONFIG is not set # CONFIG_SRAM is not set # CONFIG_XILINX_SDFEC is not set -# CONFIG_PVPANIC is not set # CONFIG_HISI_HIKEY_USB is not set +# CONFIG_OPEN_DICE is not set +# CONFIG_VCPU_STALL_DETECTOR is not set # CONFIG_C2PORT is not set # @@ -1056,6 +1181,7 @@ CONFIG_BLK_DEV_RAM_SIZE=4096 # CONFIG_ALTERA_STAPL is not set # CONFIG_ECHO is not set # CONFIG_MISC_RTSX_USB is not set +# CONFIG_PVPANIC is not set # end of Misc devices # @@ -1063,42 +1189,7 @@ CONFIG_BLK_DEV_RAM_SIZE=4096 # CONFIG_SCSI_MOD=y # CONFIG_RAID_ATTRS is not set -CONFIG_SCSI=y -CONFIG_SCSI_DMA=y -CONFIG_SCSI_PROC_FS=y - -# -# SCSI support type (disk, tape, CD-ROM) -# -CONFIG_BLK_DEV_SD=y -# CONFIG_CHR_DEV_ST is not set -# CONFIG_BLK_DEV_SR is not set -# CONFIG_CHR_DEV_SG is not set -# CONFIG_CHR_DEV_SCH is not set -# CONFIG_SCSI_CONSTANTS is not set -# CONFIG_SCSI_LOGGING is not set -# CONFIG_SCSI_SCAN_ASYNC is not set - -# -# SCSI Transports -# -# CONFIG_SCSI_SPI_ATTRS is not set -# CONFIG_SCSI_FC_ATTRS is not set -# CONFIG_SCSI_ISCSI_ATTRS is not set -# CONFIG_SCSI_SAS_ATTRS is not set -# CONFIG_SCSI_SAS_LIBSAS is not set -# CONFIG_SCSI_SRP_ATTRS is not set -# end of SCSI Transports - -CONFIG_SCSI_LOWLEVEL=y -# CONFIG_ISCSI_TCP is not set -# CONFIG_ISCSI_BOOT_SYSFS is not set -CONFIG_SCSI_UFSHCD=y -# CONFIG_SCSI_UFSHCD_PLATFORM is not set -# CONFIG_SCSI_UFS_BSG is not set -# CONFIG_SCSI_UFS_HPB is not set -# CONFIG_SCSI_DEBUG is not set -# CONFIG_SCSI_DH is not set +# CONFIG_SCSI is not set # end of SCSI device support # CONFIG_ATA is not set @@ -1107,32 +1198,30 @@ CONFIG_SCSI_UFSHCD=y CONFIG_NETDEVICES=y CONFIG_MII=y # CONFIG_NET_CORE is not set - -# -# Distributed Switch Architecture drivers -# -# end of Distributed Switch Architecture drivers - CONFIG_ETHERNET=y # CONFIG_NET_VENDOR_ALACRITECH is not set # CONFIG_ALTERA_TSE is not set # CONFIG_NET_VENDOR_AMAZON is not set # CONFIG_NET_VENDOR_AQUANTIA is not set # CONFIG_NET_VENDOR_ARC is not set -# CONFIG_NET_VENDOR_AURORA is not set +# CONFIG_NET_VENDOR_ASIX is not set # CONFIG_NET_VENDOR_BROADCOM is not set # CONFIG_NET_VENDOR_CADENCE is not set # CONFIG_NET_VENDOR_CAVIUM is not set # CONFIG_NET_VENDOR_CIRRUS is not set # CONFIG_NET_VENDOR_CORTINA is not set -# CONFIG_DM9000 is not set +# CONFIG_NET_VENDOR_DAVICOM is not set # CONFIG_DNET is not set +# CONFIG_NET_VENDOR_ENGLEDER is not set # CONFIG_NET_VENDOR_EZCHIP is not set # CONFIG_NET_VENDOR_FARADAY is not set +# CONFIG_NET_VENDOR_FUNGIBLE is not set # CONFIG_NET_VENDOR_GOOGLE is not set # CONFIG_NET_VENDOR_HISILICON is not set # CONFIG_NET_VENDOR_HUAWEI is not set # CONFIG_NET_VENDOR_INTEL is not set +# CONFIG_NET_VENDOR_ADI is not set +# CONFIG_NET_VENDOR_LITEX is not set # CONFIG_NET_VENDOR_MARVELL is not set CONFIG_NET_VENDOR_MELLANOX=y # CONFIG_MLXSW_CORE is not set @@ -1140,9 +1229,10 @@ CONFIG_NET_VENDOR_MELLANOX=y # CONFIG_NET_VENDOR_MICREL is not set # CONFIG_NET_VENDOR_MICROCHIP is not set # CONFIG_NET_VENDOR_MICROSEMI is not set +# CONFIG_NET_VENDOR_MICROSOFT is not set +# CONFIG_NET_VENDOR_NI is not set # CONFIG_NET_VENDOR_NATSEMI is not set # CONFIG_NET_VENDOR_NETRONOME is not set -# CONFIG_NET_VENDOR_NI is not set # CONFIG_ETHOC is not set # CONFIG_NET_VENDOR_PENSANDO is not set # CONFIG_NET_VENDOR_QUALCOMM is not set @@ -1166,7 +1256,9 @@ CONFIG_DWMAC_ROCKCHIP=y CONFIG_DWMAC_ROCKCHIP_TOOL=y # CONFIG_DWMAC_INTEL_PLAT is not set # CONFIG_NET_VENDOR_SYNOPSYS is not set +# CONFIG_NET_VENDOR_VERTEXCOM is not set # CONFIG_NET_VENDOR_VIA is not set +# CONFIG_NET_VENDOR_WANGXUN is not set # CONFIG_NET_VENDOR_WIZNET is not set # CONFIG_NET_VENDOR_XILINX is not set CONFIG_PHYLINK=y @@ -1181,6 +1273,7 @@ CONFIG_FIXED_PHY=y # # CONFIG_AMD_PHY is not set # CONFIG_ADIN_PHY is not set +# CONFIG_ADIN1100_PHY is not set # CONFIG_AQUANTIA_PHY is not set # CONFIG_AX88796B_PHY is not set # CONFIG_BROADCOM_PHY is not set @@ -1197,17 +1290,22 @@ CONFIG_FIXED_PHY=y # CONFIG_LSI_ET1011C_PHY is not set # CONFIG_MARVELL_PHY is not set # CONFIG_MARVELL_10G_PHY is not set +# CONFIG_MARVELL_88X2222_PHY is not set +# CONFIG_MAXLINEAR_GPHY is not set +# CONFIG_MEDIATEK_GE_PHY is not set # CONFIG_MICREL_PHY is not set # CONFIG_MICROCHIP_PHY is not set # CONFIG_MICROCHIP_T1_PHY is not set # CONFIG_MICROSEMI_PHY is not set # CONFIG_MOTORCOMM_PHY is not set # CONFIG_NATIONAL_PHY is not set +# CONFIG_NXP_C45_TJA11XX_PHY is not set # CONFIG_AT803X_PHY is not set # CONFIG_QSEMI_PHY is not set # CONFIG_REALTEK_PHY is not set # CONFIG_RENESAS_PHY is not set -# CONFIG_ROCKCHIP_PHY is not set +CONFIG_ROCKCHIP_FEPHY=y +CONFIG_ROCKCHIP_PHY=y CONFIG_RK630_PHY=y # CONFIG_SMSC_PHY is not set # CONFIG_STE10XP is not set @@ -1217,11 +1315,14 @@ CONFIG_RK630_PHY=y # CONFIG_DP83848_PHY is not set # CONFIG_DP83867_PHY is not set # CONFIG_DP83869_PHY is not set +# CONFIG_DP83TD510_PHY is not set # CONFIG_VITESSE_PHY is not set # CONFIG_XILINX_GMII2RGMII is not set # CONFIG_MICREL_KS8995MA is not set +# CONFIG_PSE_CONTROLLER is not set CONFIG_MDIO_DEVICE=y CONFIG_MDIO_BUS=y +CONFIG_FWNODE_MDIO=y CONFIG_OF_MDIO=y CONFIG_MDIO_DEVRES=y # CONFIG_MDIO_BITBANG is not set @@ -1249,12 +1350,14 @@ CONFIG_PCS_XPCS=y # CONFIG_SLIP is not set # CONFIG_USB_NET_DRIVERS is not set # CONFIG_WLAN is not set +# CONFIG_WAN is not set # -# Enable WiMAX (Networking options) to see the WiMAX drivers +# Wireless WAN # -# CONFIG_WAN is not set -# CONFIG_NETDEVSIM is not set +# CONFIG_WWAN is not set +# end of Wireless WAN + # CONFIG_NET_FAILOVER is not set # CONFIG_ISDN is not set @@ -1264,7 +1367,6 @@ CONFIG_PCS_XPCS=y CONFIG_INPUT=y CONFIG_INPUT_LEDS=y # CONFIG_INPUT_FF_MEMLESS is not set -# CONFIG_INPUT_POLLDEV is not set # CONFIG_INPUT_SPARSEKMAP is not set # CONFIG_INPUT_MATRIXKMAP is not set @@ -1279,36 +1381,7 @@ CONFIG_INPUT_EVDEV=y # # Input Device Drivers # -CONFIG_INPUT_KEYBOARD=y -CONFIG_KEYBOARD_ADC=y -# CONFIG_KEYBOARD_ADP5588 is not set -# CONFIG_KEYBOARD_ADP5589 is not set -# CONFIG_KEYBOARD_ATKBD is not set -# CONFIG_KEYBOARD_QT1050 is not set -# CONFIG_KEYBOARD_QT1070 is not set -# CONFIG_KEYBOARD_QT2160 is not set -# CONFIG_KEYBOARD_DLINK_DIR685 is not set -# CONFIG_KEYBOARD_LKKBD is not set -# CONFIG_KEYBOARD_GPIO is not set -# CONFIG_KEYBOARD_GPIO_POLLED is not set -# CONFIG_KEYBOARD_TCA6416 is not set -# CONFIG_KEYBOARD_TCA8418 is not set -# CONFIG_KEYBOARD_MATRIX is not set -# CONFIG_KEYBOARD_LM8323 is not set -# CONFIG_KEYBOARD_LM8333 is not set -# CONFIG_KEYBOARD_MAX7359 is not set -# CONFIG_KEYBOARD_MCS is not set -# CONFIG_KEYBOARD_MPR121 is not set -# CONFIG_KEYBOARD_NEWTON is not set -# CONFIG_KEYBOARD_OPENCORES is not set -# CONFIG_KEYBOARD_SAMSUNG is not set -# CONFIG_KEYBOARD_STOWAWAY is not set -# CONFIG_KEYBOARD_SUNKBD is not set -# CONFIG_KEYBOARD_OMAP4 is not set -# CONFIG_KEYBOARD_TM2_TOUCHKEY is not set -# CONFIG_KEYBOARD_XTKBD is not set -# CONFIG_KEYBOARD_CAP11XX is not set -# CONFIG_KEYBOARD_BCM is not set +# CONFIG_INPUT_KEYBOARD is not set # CONFIG_INPUT_MOUSE is not set # CONFIG_INPUT_JOYSTICK is not set # CONFIG_INPUT_TABLET is not set @@ -1340,14 +1413,25 @@ CONFIG_VT_CONSOLE=y CONFIG_HW_CONSOLE=y # CONFIG_VT_HW_CONSOLE_BINDING is not set CONFIG_UNIX98_PTYS=y -CONFIG_LEGACY_PTYS=y -CONFIG_LEGACY_PTY_COUNT=256 +# CONFIG_LEGACY_PTYS is not set CONFIG_LDISC_AUTOLOAD=y # # Serial drivers # -# CONFIG_SERIAL_8250 is not set +CONFIG_SERIAL_8250=y +# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set +CONFIG_SERIAL_8250_16550A_VARIANTS=y +# CONFIG_SERIAL_8250_FINTEK is not set +# CONFIG_SERIAL_8250_CONSOLE is not set +CONFIG_SERIAL_8250_DMA=y +CONFIG_SERIAL_8250_NR_UARTS=6 +CONFIG_SERIAL_8250_RUNTIME_UARTS=6 +# CONFIG_SERIAL_8250_EXTENDED is not set +CONFIG_SERIAL_8250_DWLIB=y +CONFIG_SERIAL_8250_DW=y +# CONFIG_SERIAL_8250_RT288X is not set +# CONFIG_SERIAL_OF_PLATFORM is not set # # Non-8250 serial port support @@ -1355,18 +1439,15 @@ CONFIG_LDISC_AUTOLOAD=y # CONFIG_SERIAL_AMBA_PL010 is not set # CONFIG_SERIAL_AMBA_PL011 is not set # CONFIG_SERIAL_EARLYCON_ARM_SEMIHOST is not set -# CONFIG_SERIAL_SAMSUNG is not set # CONFIG_SERIAL_MAX3100 is not set # CONFIG_SERIAL_MAX310X is not set # CONFIG_SERIAL_UARTLITE is not set -# CONFIG_SERIAL_MSM_GENI_EARLY_CONSOLE is not set +CONFIG_SERIAL_CORE=y # CONFIG_SERIAL_SIFIVE is not set # CONFIG_SERIAL_SCCNXP is not set # CONFIG_SERIAL_SC16IS7XX is not set -# CONFIG_SERIAL_BCM63XX is not set # CONFIG_SERIAL_ALTERA_JTAGUART is not set # CONFIG_SERIAL_ALTERA_UART is not set -# CONFIG_SERIAL_IFX6X60 is not set # CONFIG_SERIAL_XILINX_PS_UART is not set # CONFIG_SERIAL_ARC is not set # CONFIG_SERIAL_FSL_LPUART is not set @@ -1376,27 +1457,22 @@ CONFIG_LDISC_AUTOLOAD=y # CONFIG_SERIAL_SPRD is not set # end of Serial drivers +CONFIG_SERIAL_MCTRL_GPIO=y # CONFIG_SERIAL_NONSTANDARD is not set # CONFIG_N_GSM is not set # CONFIG_NULL_TTY is not set -# CONFIG_TRACE_SINK is not set # CONFIG_HVC_DCC is not set # CONFIG_SERIAL_DEV_BUS is not set # CONFIG_TTY_PRINTK is not set # CONFIG_VIRTIO_CONSOLE is not set # CONFIG_IPMI_HANDLER is not set -CONFIG_HW_RANDOM=y -# CONFIG_HW_RANDOM_TIMERIOMEM is not set -# CONFIG_HW_RANDOM_BA431 is not set -# CONFIG_HW_RANDOM_CCTRNG is not set -# CONFIG_HW_RANDOM_XIPHERA is not set -CONFIG_HW_RANDOM_ROCKCHIP=y +# CONFIG_HW_RANDOM is not set CONFIG_DEVMEM=y -# CONFIG_DEVKMEM is not set -# CONFIG_RAW_DRIVER is not set # CONFIG_TCG_TPM is not set # CONFIG_XILLYBUS is not set -CONFIG_RANDOM_TRUST_BOOTLOADER=y +# CONFIG_XILLYUSB is not set +CONFIG_RANDOM_TRUST_CPU=y +# CONFIG_RANDOM_TRUST_BOOTLOADER is not set # end of Character devices # @@ -1423,7 +1499,7 @@ CONFIG_I2C_HELPER_AUTO=y # CONFIG_I2C_NOMADIK is not set # CONFIG_I2C_OCORES is not set # CONFIG_I2C_PCA_PLATFORM is not set -CONFIG_I2C_RK3X=y +# CONFIG_I2C_RK3X is not set # CONFIG_I2C_SIMTEC is not set # CONFIG_I2C_XILINX is not set @@ -1431,6 +1507,7 @@ CONFIG_I2C_RK3X=y # External I2C/SMBus adapter drivers # # CONFIG_I2C_DIOLAN_U2C is not set +# CONFIG_I2C_CP2615 is not set # CONFIG_I2C_ROBOTFUZZ_OSIF is not set # CONFIG_I2C_TAOS_EVM is not set # CONFIG_I2C_TINY_USB is not set @@ -1438,15 +1515,22 @@ CONFIG_I2C_RK3X=y # # Other I2C/SMBus bus drivers # +# CONFIG_I2C_VIRTIO is not set # end of I2C Hardware Bus support +# CONFIG_I2C_STUB is not set # CONFIG_I2C_SLAVE is not set # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set # end of I2C support -# CONFIG_I3C is not set +CONFIG_I3C=y +# CONFIG_CDNS_I3C_MASTER is not set +# CONFIG_DW_I3C_MASTER is not set +# CONFIG_ROCKCHIP_I3C_MASTER is not set +# CONFIG_SVC_I3C_MASTER is not set +# CONFIG_MIPI_I3C_HCI is not set CONFIG_SPI=y # CONFIG_SPI_DEBUG is not set CONFIG_SPI_MASTER=y @@ -1460,15 +1544,21 @@ CONFIG_SPI_MEM=y # CONFIG_SPI_BITBANG is not set # CONFIG_SPI_CADENCE is not set # CONFIG_SPI_CADENCE_QUADSPI is not set +# CONFIG_SPI_CADENCE_XSPI is not set # CONFIG_SPI_DESIGNWARE is not set # CONFIG_SPI_NXP_FLEXSPI is not set # CONFIG_SPI_GPIO is not set # CONFIG_SPI_FSL_SPI is not set +# CONFIG_SPI_MICROCHIP_CORE is not set +# CONFIG_SPI_MICROCHIP_CORE_QSPI is not set # CONFIG_SPI_OC_TINY is not set # CONFIG_SPI_PL022 is not set CONFIG_SPI_ROCKCHIP=y CONFIG_SPI_ROCKCHIP_MISCDEV=y +# CONFIG_SPI_ROCKCHIP_FLEXBUS_FSPI is not set +# CONFIG_SPI_ROCKCHIP_FLEXBUS_SPI is not set CONFIG_SPI_ROCKCHIP_SFC=y +# CONFIG_SPI_ROCKCHIP_SLAVE is not set # CONFIG_SPI_SC18IS602 is not set # CONFIG_SPI_SIFIVE is not set # CONFIG_SPI_MXIC is not set @@ -1486,10 +1576,12 @@ CONFIG_SPI_ROCKCHIP_SFC=y # SPI Protocol Masters # CONFIG_SPI_SPIDEV=y +# CONFIG_SPI_LOOPBACK_TEST is not set # CONFIG_SPI_TLE62X0 is not set CONFIG_SPI_SLAVE=y # CONFIG_SPI_SLAVE_TIME is not set # CONFIG_SPI_SLAVE_SYSTEM_CONTROL is not set +# CONFIG_SPI_SLAVE_ROCKCHIP_OBJ is not set CONFIG_SPI_DYNAMIC=y # CONFIG_SPMI is not set # CONFIG_HSI is not set @@ -1499,6 +1591,7 @@ CONFIG_SPI_DYNAMIC=y # PTP clock support # # CONFIG_PTP_1588_CLOCK is not set +CONFIG_PTP_1588_CLOCK_OPTIONAL=y # # Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks. @@ -1510,12 +1603,14 @@ CONFIG_PINMUX=y CONFIG_PINCONF=y CONFIG_GENERIC_PINCONF=y # CONFIG_DEBUG_PINCTRL is not set +# CONFIG_PINCTRL_CY8C95X0 is not set # CONFIG_PINCTRL_MCP23S08 is not set +# CONFIG_PINCTRL_MICROCHIP_SGPIO is not set +# CONFIG_PINCTRL_OCELOT is not set CONFIG_PINCTRL_ROCKCHIP=y # CONFIG_PINCTRL_SINGLE is not set -# CONFIG_PINCTRL_SX150X is not set # CONFIG_PINCTRL_STMFX is not set -# CONFIG_PINCTRL_OCELOT is not set +# CONFIG_PINCTRL_SX150X is not set # # Renesas pinctrl drivers @@ -1548,7 +1643,6 @@ CONFIG_GPIO_CDEV_V1=y # CONFIG_GPIO_MPC8XXX is not set # CONFIG_GPIO_PL061 is not set CONFIG_GPIO_ROCKCHIP=y -# CONFIG_GPIO_SAMA5D2_PIOBU is not set # CONFIG_GPIO_SIFIVE is not set # CONFIG_GPIO_SYSCON is not set # CONFIG_GPIO_XILINX is not set @@ -1559,12 +1653,12 @@ CONFIG_GPIO_ROCKCHIP=y # # I2C GPIO expanders # -# CONFIG_GPIO_ADP5588 is not set # CONFIG_GPIO_ADNP is not set # CONFIG_GPIO_AW9110 is not set # CONFIG_GPIO_GW_PLD is not set # CONFIG_GPIO_MAX7300 is not set # CONFIG_GPIO_MAX732X is not set +# CONFIG_GPIO_NCA9539 is not set # CONFIG_GPIO_PCA953X is not set # CONFIG_GPIO_PCA9570 is not set # CONFIG_GPIO_PCF857X is not set @@ -1593,8 +1687,14 @@ CONFIG_GPIO_ROCKCHIP=y # # end of USB GPIO expanders +# +# Virtual GPIO drivers +# # CONFIG_GPIO_AGGREGATOR is not set # CONFIG_GPIO_MOCKUP is not set +# CONFIG_GPIO_SIM is not set +# end of Virtual GPIO drivers + # CONFIG_W1 is not set CONFIG_POWER_RESET=y # CONFIG_POWER_RESET_BRCMKONA is not set @@ -1602,6 +1702,7 @@ CONFIG_POWER_RESET=y # CONFIG_POWER_RESET_GPIO is not set # CONFIG_POWER_RESET_GPIO_RESTART is not set # CONFIG_POWER_RESET_LTC2952 is not set +# CONFIG_POWER_RESET_REGULATOR is not set CONFIG_POWER_RESET_RESTART=y # CONFIG_POWER_RESET_VERSATILE is not set # CONFIG_POWER_RESET_SYSCON is not set @@ -1613,6 +1714,7 @@ CONFIG_POWER_SUPPLY=y # CONFIG_POWER_SUPPLY_DEBUG is not set # CONFIG_PDA_POWER is not set # CONFIG_GENERIC_ADC_BATTERY is not set +# CONFIG_IP5XXX_POWER is not set # CONFIG_TEST_POWER is not set # CONFIG_CHARGER_ADP5061 is not set # CONFIG_BATTERY_CW2015 is not set @@ -1621,20 +1723,26 @@ CONFIG_POWER_SUPPLY=y # CONFIG_BATTERY_DS2780 is not set # CONFIG_BATTERY_DS2781 is not set # CONFIG_BATTERY_DS2782 is not set +# CONFIG_BATTERY_SAMSUNG_SDI is not set # CONFIG_BATTERY_SBS is not set # CONFIG_CHARGER_SBS is not set # CONFIG_BATTERY_BQ27XXX is not set # CONFIG_BATTERY_MAX17040 is not set # CONFIG_BATTERY_MAX17042 is not set +# CONFIG_CHARGER_CPS5601X is not set +# CONFIG_CHARGER_ISP1704 is not set # CONFIG_CHARGER_MAX8903 is not set # CONFIG_CHARGER_LP8727 is not set # CONFIG_CHARGER_GPIO is not set # CONFIG_CHARGER_MANAGER is not set # CONFIG_ROCKCHIP_CHARGER_MANAGER is not set # CONFIG_CHARGER_LT3651 is not set +# CONFIG_CHARGER_LTC4162L is not set # CONFIG_CHARGER_SC8551 is not set +# CONFIG_CHARGER_SC89601 is not set # CONFIG_CHARGER_SC89890 is not set # CONFIG_CHARGER_DETECTOR_MAX14656 is not set +# CONFIG_CHARGER_MAX77976 is not set # CONFIG_CHARGER_BQ2415X is not set # CONFIG_CHARGER_BQ24190 is not set # CONFIG_CHARGER_BQ24257 is not set @@ -1643,13 +1751,16 @@ CONFIG_POWER_SUPPLY=y # CONFIG_CHARGER_BQ25700 is not set # CONFIG_CHARGER_BQ25890 is not set # CONFIG_CHARGER_BQ25980 is not set +# CONFIG_CHARGER_BQ256XX is not set +# CONFIG_CHARGER_SGM41542 is not set # CONFIG_CHARGER_SMB347 is not set # CONFIG_BATTERY_GAUGE_LTC2941 is not set +# CONFIG_BATTERY_GOLDFISH is not set # CONFIG_BATTERY_RT5033 is not set # CONFIG_CHARGER_RT9455 is not set # CONFIG_CHARGER_UCS1002 is not set # CONFIG_CHARGER_BD99954 is not set -# CONFIG_CHARGER_SGM41542 is not set +# CONFIG_BATTERY_UG3105 is not set # CONFIG_HWMON is not set CONFIG_THERMAL=y # CONFIG_THERMAL_NETLINK is not set @@ -1670,6 +1781,7 @@ CONFIG_DEVFREQ_THERMAL=y # CONFIG_THERMAL_EMULATION is not set # CONFIG_THERMAL_MMIO is not set CONFIG_ROCKCHIP_THERMAL=y +# CONFIG_RK_VIRTUAL_THERMAL is not set # CONFIG_GENERIC_ADC_THERMAL is not set CONFIG_WATCHDOG=y CONFIG_WATCHDOG_CORE=y @@ -1677,6 +1789,7 @@ CONFIG_WATCHDOG_CORE=y CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y CONFIG_WATCHDOG_OPEN_TIMEOUT=0 # CONFIG_WATCHDOG_SYSFS is not set +# CONFIG_WATCHDOG_HRTIMER_PRETIMEOUT is not set # # Watchdog Pretimeout Governors @@ -1747,6 +1860,7 @@ CONFIG_BCMA_POSSIBLE=y # CONFIG_MFD_MAX77650 is not set # CONFIG_MFD_MAX77686 is not set # CONFIG_MFD_MAX77693 is not set +# CONFIG_MFD_MAX77714 is not set # CONFIG_MFD_MAX77843 is not set # CONFIG_MFD_MAX8907 is not set # CONFIG_MFD_MAX8925 is not set @@ -1755,34 +1869,45 @@ CONFIG_BCMA_POSSIBLE=y # CONFIG_MFD_MAX96745 is not set # CONFIG_MFD_MAX96755F is not set # CONFIG_MFD_MT6360 is not set +# CONFIG_MFD_MT6370 is not set # CONFIG_MFD_MT6397 is not set # CONFIG_MFD_MENF21BMC is not set +# CONFIG_MFD_OCELOT is not set # CONFIG_EZX_PCAP is not set # CONFIG_MFD_CPCAP is not set # CONFIG_MFD_VIPERBOARD is not set +# CONFIG_MFD_NTXEC is not set # CONFIG_MFD_RETU is not set # CONFIG_MFD_PCF50633 is not set # CONFIG_MFD_PM8XXX is not set +# CONFIG_MFD_SY7636A is not set +# CONFIG_MFD_RT4831 is not set # CONFIG_MFD_RT5033 is not set +# CONFIG_MFD_RT5120 is not set # CONFIG_MFD_RC5T583 is not set # CONFIG_MFD_RK618 is not set -# CONFIG_MFD_RK628 is not set # CONFIG_MFD_RK630 is not set # CONFIG_MFD_RK630_I2C is not set # CONFIG_MFD_RK630_SPI is not set # CONFIG_MFD_RK806 is not set +# CONFIG_MFD_RK806_I2C is not set # CONFIG_MFD_RK806_SPI is not set # CONFIG_MFD_RK808 is not set # CONFIG_MFD_RK1000 is not set + +# +# driver for different display serdes +# +# CONFIG_MFD_SERDES_DISPLAY is not set +# CONFIG_MFD_RKX110_X120 is not set +# CONFIG_MFD_ROCKCHIP_FLEXBUS is not set # CONFIG_MFD_RN5T618 is not set # CONFIG_MFD_SEC_CORE is not set # CONFIG_MFD_SI476X_CORE is not set # CONFIG_MFD_SM501 is not set # CONFIG_MFD_SKY81452 is not set -# CONFIG_ABX500_CORE is not set # CONFIG_MFD_STMPE is not set CONFIG_MFD_SYSCON=y -# CONFIG_MFD_TI_AM335X_TSCADC is not set # CONFIG_MFD_LP3943 is not set # CONFIG_MFD_LP8788 is not set # CONFIG_MFD_TI_LMU is not set @@ -1800,7 +1925,6 @@ CONFIG_MFD_SYSCON=y # CONFIG_MFD_TPS65910 is not set # CONFIG_MFD_TPS65912_I2C is not set # CONFIG_MFD_TPS65912_SPI is not set -# 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 @@ -1819,22 +1943,27 @@ CONFIG_MFD_SYSCON=y # CONFIG_MFD_WM8350_I2C is not set # CONFIG_MFD_WM8994 is not set # CONFIG_MFD_ROHM_BD718XX is not set -# CONFIG_MFD_ROHM_BD70528 is not set # CONFIG_MFD_ROHM_BD71828 is not set +# CONFIG_MFD_ROHM_BD957XMUF is not set # CONFIG_MFD_STPMIC1 is not set # CONFIG_MFD_STMFX is not set +# CONFIG_MFD_ATC260X_I2C is not set # CONFIG_MFD_KHADAS_MCU is not set +# CONFIG_MFD_QCOM_PM8008 is not set # CONFIG_MFD_INTEL_M10_BMC is not set +# CONFIG_MFD_RSMU_I2C is not set +# CONFIG_MFD_RSMU_SPI is not set # end of Multifunction device drivers CONFIG_REGULATOR=y -CONFIG_REGULATOR_DEBUG=y +# CONFIG_REGULATOR_DEBUG is not set CONFIG_REGULATOR_FIXED_VOLTAGE=y # CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set # CONFIG_REGULATOR_USERSPACE_CONSUMER is not set # CONFIG_REGULATOR_88PG86X is not set # CONFIG_REGULATOR_ACT8865 is not set # CONFIG_REGULATOR_AD5398 is not set +# CONFIG_REGULATOR_DA9121 is not set # CONFIG_REGULATOR_DA9210 is not set # CONFIG_REGULATOR_DA9211 is not set # CONFIG_REGULATOR_FAN53555 is not set @@ -1852,8 +1981,10 @@ CONFIG_REGULATOR_GPIO=y # CONFIG_REGULATOR_MAX1586 is not set # CONFIG_REGULATOR_MAX8649 is not set # CONFIG_REGULATOR_MAX8660 is not set +# CONFIG_REGULATOR_MAX8893 is not set # CONFIG_REGULATOR_MAX8952 is not set # CONFIG_REGULATOR_MAX8973 is not set +# CONFIG_REGULATOR_MAX20086 is not set # CONFIG_REGULATOR_MAX77826 is not set # CONFIG_REGULATOR_MCP16502 is not set # CONFIG_REGULATOR_MP5416 is not set @@ -1863,6 +1994,7 @@ CONFIG_REGULATOR_GPIO=y # CONFIG_REGULATOR_MPQ7920 is not set # CONFIG_REGULATOR_MT6311 is not set # CONFIG_REGULATOR_PCA9450 is not set +# CONFIG_REGULATOR_PF8X00 is not set # CONFIG_REGULATOR_PFUZE100 is not set # CONFIG_REGULATOR_PV88060 is not set # CONFIG_REGULATOR_PV88080 is not set @@ -1870,13 +2002,20 @@ CONFIG_REGULATOR_GPIO=y CONFIG_REGULATOR_PWM=y # CONFIG_REGULATOR_RK860X is not set # CONFIG_REGULATOR_RT4801 is not set +# CONFIG_REGULATOR_RT5190A is not set +# CONFIG_REGULATOR_RT5759 is not set +# CONFIG_REGULATOR_RT6160 is not set +# CONFIG_REGULATOR_RT6245 is not set +# CONFIG_REGULATOR_RTQ2134 is not set # CONFIG_REGULATOR_RTMV20 is not set +# CONFIG_REGULATOR_RTQ6752 is not set # CONFIG_REGULATOR_SLG51000 is not set # CONFIG_REGULATOR_SY8106A is not set # CONFIG_REGULATOR_SY8824X is not set # CONFIG_REGULATOR_SY8827N is not set # CONFIG_REGULATOR_TPS51632 is not set # CONFIG_REGULATOR_TPS62360 is not set +# CONFIG_REGULATOR_TPS6286X is not set # CONFIG_REGULATOR_TPS65023 is not set # CONFIG_REGULATOR_TPS6507X is not set # CONFIG_REGULATOR_TPS65132 is not set @@ -1885,7 +2024,13 @@ CONFIG_REGULATOR_PWM=y # CONFIG_REGULATOR_WL2868C is not set # CONFIG_REGULATOR_XZ3216 is not set # CONFIG_RC_CORE is not set + +# +# CEC support +# # CONFIG_MEDIA_CEC_SUPPORT is not set +# end of CEC support + # CONFIG_MEDIA_SUPPORT is not set # @@ -1893,6 +2038,7 @@ CONFIG_REGULATOR_PWM=y # # CONFIG_IMX_IPUV3_CORE is not set # CONFIG_DRM is not set +# CONFIG_DRM_DEBUG_MODESET_LOCK is not set # # ARM devices @@ -1903,6 +2049,7 @@ CONFIG_REGULATOR_PWM=y # CONFIG_MALI_MIDGARD is not set # CONFIG_MALI_KUTF is not set # CONFIG_MALI_BIFROST is not set +# CONFIG_MALI_VALHALL is not set # # Frame buffer Devices @@ -1938,8 +2085,14 @@ CONFIG_REGULATOR_PWM=y # end of IEP # CONFIG_ROCKCHIP_MPP_SERVICE is not set -CONFIG_ROCKCHIP_MPP_OSAL=y +# CONFIG_ROCKCHIP_MPP_OSAL is not set # CONFIG_ROCKCHIP_DVBM is not set + +# +# Rockchip video tunnel support +# +# CONFIG_ROCKCHIP_VIDEO_TUNNEL is not set +# end of Rockchip video tunnel support # end of Rockchip Misc Video driver # @@ -1966,14 +2119,12 @@ CONFIG_SND_HRTIMER=y CONFIG_SND_PROC_FS=y CONFIG_SND_VERBOSE_PROCFS=y # CONFIG_SND_VERBOSE_PRINTK is not set +CONFIG_SND_CTL_FAST_LOOKUP=y # CONFIG_SND_DEBUG is not set +# CONFIG_SND_CTL_INPUT_VALIDATION is not set # CONFIG_SND_SEQUENCER is not set CONFIG_SND_DRIVERS=y -# CONFIG_SND_DUMMY is not set -# CONFIG_SND_ALOOP is not set -# CONFIG_SND_MTPAV is not set -# CONFIG_SND_SERIAL_U16550 is not set -# CONFIG_SND_MPU401 is not set +CONFIG_SND_ALOOP=m # # HD-Audio @@ -1996,7 +2147,10 @@ CONFIG_SND_USB_HIFACE=y # CONFIG_SND_USB_VARIAX is not set CONFIG_SND_SOC=y CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y +# CONFIG_SND_SOC_DYNAMIC_DMA_CHAN is not set +# CONFIG_SND_SOC_ADI is not set # CONFIG_SND_SOC_AMD_ACP is not set +# CONFIG_SND_AMD_ACP_CONFIG is not set # CONFIG_SND_ATMEL_SOC is not set # CONFIG_SND_BCM63XX_I2S_WHISTLER is not set # CONFIG_SND_DESIGNWARE_I2S is not set @@ -2015,22 +2169,27 @@ CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y # CONFIG_SND_SOC_FSL_SPDIF is not set # CONFIG_SND_SOC_FSL_ESAI is not set # CONFIG_SND_SOC_FSL_MICFIL is not set +# CONFIG_SND_SOC_FSL_XCVR is not set # CONFIG_SND_SOC_IMX_AUDMUX is not set # end of SoC Audio for Freescale CPUs # CONFIG_SND_I2S_HI6210_I2S is not set -# CONFIG_SND_I2S_HI3660_I2S is not set # CONFIG_SND_SOC_IMG is not set # CONFIG_SND_SOC_MTK_BTCVSD is not set CONFIG_SND_SOC_ROCKCHIP=y -# CONFIG_SND_SOC_ROCKCHIP_DLP is not set +# CONFIG_SND_SOC_ROCKCHIP_ASRC is not set +# CONFIG_SND_SOC_ROCKCHIP_DLP_PCM is not set +# CONFIG_SND_SOC_ROCKCHIP_DUMMY_DAI is not set # CONFIG_SND_SOC_ROCKCHIP_I2S is not set CONFIG_SND_SOC_ROCKCHIP_I2S_TDM=y +CONFIG_SND_SOC_ROCKCHIP_I2S_TDM_MULTI_LANES=y # CONFIG_SND_SOC_ROCKCHIP_MULTI_DAIS is not set # CONFIG_SND_SOC_ROCKCHIP_PDM is not set +# CONFIG_SND_SOC_ROCKCHIP_PDM_V2 is not set # CONFIG_SND_SOC_ROCKCHIP_SAI is not set # CONFIG_SND_SOC_ROCKCHIP_SPDIF is not set # CONFIG_SND_SOC_ROCKCHIP_SPDIFRX is not set +CONFIG_SND_SOC_ROCKCHIP_TRCM=y # CONFIG_SND_SOC_ROCKCHIP_VAD is not set # CONFIG_SND_SOC_ROCKCHIP_MAX98090 is not set CONFIG_SND_SOC_ROCKCHIP_MULTICODECS=y @@ -2049,14 +2208,14 @@ CONFIG_SND_SOC_ROCKCHIP_MULTICODECS=y # CONFIG_SND_SOC_XILINX_AUDIO_FORMATTER is not set # CONFIG_SND_SOC_XILINX_SPDIF is not set # CONFIG_SND_SOC_XTFPGA_I2S is not set -# CONFIG_ZX_TDM is not set CONFIG_SND_SOC_I2C_AND_SPI=y # # CODEC drivers # -# CONFIG_SND_SOC_MYCODEC is not set # CONFIG_SND_SOC_AC97_CODEC is not set +# CONFIG_SND_SOC_ADAU1372_I2C is not set +# CONFIG_SND_SOC_ADAU1372_SPI is not set # CONFIG_SND_SOC_ADAU1701 is not set # CONFIG_SND_SOC_ADAU1761_I2C is not set # CONFIG_SND_SOC_ADAU1761_SPI is not set @@ -2065,6 +2224,7 @@ CONFIG_SND_SOC_I2C_AND_SPI=y # CONFIG_SND_SOC_ADAU7118_I2C is not set # CONFIG_SND_SOC_AK4104 is not set # CONFIG_SND_SOC_AK4118 is not set +# CONFIG_SND_SOC_AK4375 is not set # CONFIG_SND_SOC_AK4458 is not set # CONFIG_SND_SOC_AK4554 is not set # CONFIG_SND_SOC_AK4613 is not set @@ -2072,6 +2232,7 @@ CONFIG_SND_SOC_I2C_AND_SPI=y # CONFIG_SND_SOC_AK5386 is not set # CONFIG_SND_SOC_AK5558 is not set # CONFIG_SND_SOC_ALC5623 is not set +# CONFIG_SND_SOC_AW8738 is not set # CONFIG_SND_SOC_BD28623 is not set # CONFIG_SND_SOC_BT_SCO is not set # CONFIG_SND_SOC_CS35L32 is not set @@ -2079,11 +2240,16 @@ CONFIG_SND_SOC_I2C_AND_SPI=y # CONFIG_SND_SOC_CS35L34 is not set # CONFIG_SND_SOC_CS35L35 is not set # CONFIG_SND_SOC_CS35L36 is not set +# CONFIG_SND_SOC_CS35L41_SPI is not set +# CONFIG_SND_SOC_CS35L41_I2C is not set +# CONFIG_SND_SOC_CS35L45_SPI is not set +# CONFIG_SND_SOC_CS35L45_I2C is not set # CONFIG_SND_SOC_CS42L42 is not set # CONFIG_SND_SOC_CS42L51_I2C is not set # CONFIG_SND_SOC_CS42L52 is not set # CONFIG_SND_SOC_CS42L56 is not set # CONFIG_SND_SOC_CS42L73 is not set +# CONFIG_SND_SOC_CS42L83 is not set # CONFIG_SND_SOC_CS4234 is not set # CONFIG_SND_SOC_CS4265 is not set # CONFIG_SND_SOC_CS4270 is not set @@ -2109,16 +2275,21 @@ CONFIG_SND_SOC_DUMMY_CODEC=y # CONFIG_SND_SOC_ES8326 is not set # CONFIG_SND_SOC_ES8328_I2C is not set # CONFIG_SND_SOC_ES8328_SPI is not set +# CONFIG_SND_SOC_ES8389 is not set # CONFIG_SND_SOC_ES8396 is not set # CONFIG_SND_SOC_GTM601 is not set +# CONFIG_SND_SOC_HDA is not set +# CONFIG_SND_SOC_ICS43432 is not set # CONFIG_SND_SOC_INNO_RK3036 is not set # CONFIG_SND_SOC_MAX98088 is not set # CONFIG_SND_SOC_MAX98357A is not set # CONFIG_SND_SOC_MAX98504 is not set # CONFIG_SND_SOC_MAX9867 is not set # CONFIG_SND_SOC_MAX98927 is not set +# CONFIG_SND_SOC_MAX98520 is not set # CONFIG_SND_SOC_MAX98373_I2C is not set # CONFIG_SND_SOC_MAX98390 is not set +# CONFIG_SND_SOC_MAX98396 is not set # CONFIG_SND_SOC_MAX9860 is not set # CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set # CONFIG_SND_SOC_PCM1681 is not set @@ -2131,26 +2302,33 @@ CONFIG_SND_SOC_DUMMY_CODEC=y # CONFIG_SND_SOC_PCM3060_SPI is not set # CONFIG_SND_SOC_PCM3168A_I2C is not set # CONFIG_SND_SOC_PCM3168A_SPI is not set +# CONFIG_SND_SOC_PCM5102A is not set # CONFIG_SND_SOC_PCM512x_I2C is not set # CONFIG_SND_SOC_PCM512x_SPI is not set # CONFIG_SND_SOC_RK312X is not set # CONFIG_SND_SOC_RK3228 is not set # CONFIG_SND_SOC_RK3308 is not set # CONFIG_SND_SOC_RK3328 is not set +# CONFIG_SND_SOC_RK3506 is not set # CONFIG_SND_SOC_RK3528 is not set # CONFIG_SND_SOC_RK730 is not set # CONFIG_SND_SOC_RK_CODEC_DIGITAL is not set # CONFIG_SND_SOC_RK_DSM is not set +# CONFIG_SND_SOC_ROCKCHIP_SPI_CODEC is not set # CONFIG_SND_SOC_RT5616 is not set # CONFIG_SND_SOC_RT5631 is not set # CONFIG_SND_SOC_RT5640 is not set # CONFIG_SND_SOC_RT5651 is not set +# CONFIG_SND_SOC_RT5659 is not set +# CONFIG_SND_SOC_RT9120 is not set CONFIG_SND_SOC_RV1106=y # CONFIG_SND_SOC_SGTL5000 is not set # CONFIG_SND_SOC_SIMPLE_AMPLIFIER is not set -# CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set +# CONFIG_SND_SOC_SIMPLE_MUX is not set # CONFIG_SND_SOC_SPDIF is not set +# CONFIG_SND_SOC_SRC4XXX_I2C is not set # CONFIG_SND_SOC_SSM2305 is not set +# CONFIG_SND_SOC_SSM2518 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 @@ -2161,18 +2339,24 @@ CONFIG_SND_SOC_RV1106=y # CONFIG_SND_SOC_TAS2562 is not set # CONFIG_SND_SOC_TAS2764 is not set # CONFIG_SND_SOC_TAS2770 is not set +# CONFIG_SND_SOC_TAS2780 is not set # CONFIG_SND_SOC_TAS5086 is not set # CONFIG_SND_SOC_TAS571X is not set # CONFIG_SND_SOC_TAS5720 is not set +# CONFIG_SND_SOC_TAS5805M is not set # CONFIG_SND_SOC_TAS6424 is not set # CONFIG_SND_SOC_TDA7419 is not set +# CONFIG_SND_SOC_TDA7803 is not set # CONFIG_SND_SOC_TFA9879 is not set +# CONFIG_SND_SOC_TFA989X is not set +# CONFIG_SND_SOC_TLV320ADC3XXX is not set # CONFIG_SND_SOC_TLV320AIC23_I2C is not set # CONFIG_SND_SOC_TLV320AIC23_SPI is not set # CONFIG_SND_SOC_TLV320AIC31XX is not set # CONFIG_SND_SOC_TLV320AIC32X4_I2C is not set # CONFIG_SND_SOC_TLV320AIC32X4_SPI is not set -# CONFIG_SND_SOC_TLV320AIC3X is not set +# CONFIG_SND_SOC_TLV320AIC3X_I2C is not set +# CONFIG_SND_SOC_TLV320AIC3X_SPI is not set # CONFIG_SND_SOC_TLV320ADCX140 is not set # CONFIG_SND_SOC_TS3A227E is not set # CONFIG_SND_SOC_TSCS42XX is not set @@ -2184,7 +2368,8 @@ CONFIG_SND_SOC_RV1106=y # CONFIG_SND_SOC_WM8580 is not set # CONFIG_SND_SOC_WM8711 is not set # CONFIG_SND_SOC_WM8728 is not set -# CONFIG_SND_SOC_WM8731 is not set +# CONFIG_SND_SOC_WM8731_I2C is not set +# CONFIG_SND_SOC_WM8731_SPI is not set # CONFIG_SND_SOC_WM8737 is not set # CONFIG_SND_SOC_WM8741 is not set # CONFIG_SND_SOC_WM8750 is not set @@ -2196,146 +2381,65 @@ CONFIG_SND_SOC_RV1106=y # CONFIG_SND_SOC_WM8804_SPI is not set # CONFIG_SND_SOC_WM8903 is not set # CONFIG_SND_SOC_WM8904 is not set +# CONFIG_SND_SOC_WM8940 is not set # CONFIG_SND_SOC_WM8960 is not set # CONFIG_SND_SOC_WM8962 is not set # CONFIG_SND_SOC_WM8974 is not set # CONFIG_SND_SOC_WM8978 is not set # CONFIG_SND_SOC_WM8985 is not set # CONFIG_SND_SOC_ZL38060 is not set -# CONFIG_SND_SOC_ZX_AUD96P22 is not set # CONFIG_SND_SOC_MAX9759 is not set # CONFIG_SND_SOC_MT6351 is not set # CONFIG_SND_SOC_MT6358 is not set # CONFIG_SND_SOC_MT6660 is not set +# CONFIG_SND_SOC_NAU8315 is not set # CONFIG_SND_SOC_NAU8540 is not set # CONFIG_SND_SOC_NAU8810 is not set +# CONFIG_SND_SOC_NAU8821 is not set # CONFIG_SND_SOC_NAU8822 is not set # CONFIG_SND_SOC_NAU8824 is not set # CONFIG_SND_SOC_TPA6130A2 is not set +# CONFIG_SND_SOC_LPASS_WSA_MACRO is not set +# CONFIG_SND_SOC_LPASS_VA_MACRO is not set +# CONFIG_SND_SOC_LPASS_RX_MACRO is not set +# CONFIG_SND_SOC_LPASS_TX_MACRO is not set # CONFIG_SND_SOC_AW87XXX is not set +# CONFIG_SND_SOC_AW882XX is not set # CONFIG_SND_SOC_AW883XX is not set +# CONFIG_SND_SOC_IT6621 is not set # end of CODEC drivers CONFIG_SND_SIMPLE_CARD_UTILS=y CONFIG_SND_SIMPLE_CARD=y # CONFIG_SND_AUDIO_GRAPH_CARD is not set +# CONFIG_SND_AUDIO_GRAPH_CARD2 is not set +# CONFIG_SND_TEST_COMPONENT is not set # # HID support # -CONFIG_HID=y -# CONFIG_HID_BATTERY_STRENGTH is not set -# CONFIG_HIDRAW is not set -# CONFIG_UHID is not set -CONFIG_HID_GENERIC=y - -# -# Special HID drivers -# -# CONFIG_HID_A4TECH is not set -# CONFIG_HID_ACCUTOUCH is not set -# CONFIG_HID_ACRUX is not set -# CONFIG_HID_APPLE is not set -# CONFIG_HID_APPLEIR is not set -# CONFIG_HID_ASUS is not set -# CONFIG_HID_AUREAL is not set -# CONFIG_HID_BELKIN is not set -# CONFIG_HID_BETOP_FF is not set -# CONFIG_HID_BIGBEN_FF is not set -# CONFIG_HID_CHERRY is not set -# CONFIG_HID_CHICONY is not set -# CONFIG_HID_CORSAIR is not set -# CONFIG_HID_COUGAR is not set -# CONFIG_HID_MACALLY is not set -# CONFIG_HID_PRODIKEYS is not set -# CONFIG_HID_CMEDIA is not set -# CONFIG_HID_CREATIVE_SB0540 is not set -# CONFIG_HID_CYPRESS is not set -# CONFIG_HID_DRAGONRISE is not set -# CONFIG_HID_EMS_FF is not set -# CONFIG_HID_ELAN is not set -# CONFIG_HID_ELECOM is not set -# CONFIG_HID_ELO is not set -# CONFIG_HID_EZKEY is not set -# CONFIG_HID_GEMBIRD is not set -# CONFIG_HID_GFRM is not set -# CONFIG_HID_GLORIOUS is not set -# CONFIG_HID_HOLTEK is not set -# CONFIG_HID_VIVALDI is not set -# CONFIG_HID_GT683R is not set -# CONFIG_HID_KEYTOUCH is not set -# CONFIG_HID_KYE is not set -# CONFIG_HID_UCLOGIC is not set -# CONFIG_HID_WALTOP is not set -# CONFIG_HID_VIEWSONIC is not set -# CONFIG_HID_GYRATION is not set -# CONFIG_HID_ICADE is not set -# CONFIG_HID_ITE is not set -# CONFIG_HID_JABRA is not set -# CONFIG_HID_TWINHAN is not set -# CONFIG_HID_KENSINGTON is not set -# CONFIG_HID_LCPOWER is not set -# CONFIG_HID_LED is not set -# CONFIG_HID_LENOVO is not set -# CONFIG_HID_LOGITECH is not set -# CONFIG_HID_MAGICMOUSE is not set -# CONFIG_HID_MALTRON is not set -# CONFIG_HID_MAYFLASH is not set -# CONFIG_HID_REDRAGON is not set -# CONFIG_HID_MICROSOFT is not set -# CONFIG_HID_MONTEREY is not set -# CONFIG_HID_MULTITOUCH is not set -# CONFIG_HID_NINTENDO is not set -# CONFIG_HID_NTI is not set -# CONFIG_HID_NTRIG is not set -# CONFIG_HID_ORTEK is not set -# CONFIG_HID_PANTHERLORD is not set -# CONFIG_HID_PENMOUNT is not set -# CONFIG_HID_PETALYNX is not set -# CONFIG_HID_PICOLCD is not set -# CONFIG_HID_PLANTRONICS is not set -# CONFIG_HID_PLAYSTATION is not set -# CONFIG_HID_PRIMAX is not set -# CONFIG_HID_RETRODE is not set -# CONFIG_HID_ROCCAT is not set -# CONFIG_HID_SAITEK is not set -# 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 -# CONFIG_HID_GREENASIA is not set -# CONFIG_HID_SMARTJOYPLUS is not set -# CONFIG_HID_TIVO is not set -# CONFIG_HID_TOPSEED is not set -# CONFIG_HID_THINGM is not set -# CONFIG_HID_THRUSTMASTER is not set -# CONFIG_HID_UDRAW_PS3 is not set -# CONFIG_HID_U2FZERO is not set -# CONFIG_HID_WACOM is not set -# CONFIG_HID_WIIMOTE is not set -# CONFIG_HID_XINMO is not set -# CONFIG_HID_ZEROPLUS is not set -# CONFIG_HID_ZYDACRON is not set -# CONFIG_HID_SENSOR_HUB is not set -# CONFIG_HID_ALPS is not set -# CONFIG_HID_MCP2221 is not set -# end of Special HID drivers +# CONFIG_HID is not set # # USB HID support # -CONFIG_USB_HID=y +# CONFIG_USB_HID is not set # CONFIG_HID_PID is not set -# CONFIG_USB_HIDDEV is not set + +# +# USB HID Boot Protocol drivers +# +# CONFIG_USB_KBD is not set +# CONFIG_USB_MOUSE is not set +# end of USB HID Boot Protocol drivers # end of USB HID support # # I2C HID support # -# CONFIG_I2C_HID is not set +# CONFIG_I2C_HID_OF is not set +# CONFIG_I2C_HID_OF_ELAN is not set +# CONFIG_I2C_HID_OF_GOODIX is not set # end of I2C HID support # end of HID support @@ -2344,22 +2448,23 @@ CONFIG_USB_SUPPORT=y CONFIG_USB_COMMON=y # CONFIG_USB_LED_TRIG is not set # CONFIG_USB_ULPI_BUS is not set -# CONFIG_USB_CONN_GPIO is not set +CONFIG_USB_CONN_GPIO=y CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB=y -CONFIG_USB_ANNOUNCE_NEW_DEVICES=y +# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set # # Miscellaneous USB options # CONFIG_USB_DEFAULT_PERSIST=y -CONFIG_USB_FEW_INIT_RETRIES=y +# CONFIG_USB_FEW_INIT_RETRIES is not set # CONFIG_USB_DYNAMIC_MINORS is not set -# CONFIG_USB_OTG is not set +CONFIG_USB_OTG=y # CONFIG_USB_OTG_PRODUCTLIST is not set # CONFIG_USB_OTG_DISABLE_EXTERNAL_HUB is not set +CONFIG_USB_OTG_FSM=y # CONFIG_USB_LEDS_TRIGGER_USBPORT is not set -CONFIG_USB_AUTOSUSPEND_DELAY=5000 +CONFIG_USB_AUTOSUSPEND_DELAY=2 # CONFIG_USB_MON is not set # @@ -2371,7 +2476,7 @@ CONFIG_USB_XHCI_HCD=y # CONFIG_USB_XHCI_PCI_RENESAS is not set CONFIG_USB_XHCI_PLATFORM=y CONFIG_USB_EHCI_HCD=y -CONFIG_USB_EHCI_ROOT_HUB_TT=y +# CONFIG_USB_EHCI_ROOT_HUB_TT is not set CONFIG_USB_EHCI_TT_NEWSCHED=y # CONFIG_USB_EHCI_FSL is not set CONFIG_USB_EHCI_HCD_PLATFORM=y @@ -2399,38 +2504,35 @@ CONFIG_USB_EHCI_HCD_PLATFORM=y # # also be needed; see USB_STORAGE Help for more info # -CONFIG_USB_STORAGE=y -CONFIG_USB_STORAGE_DEBUG=y -# CONFIG_USB_STORAGE_REALTEK is not set -# CONFIG_USB_STORAGE_DATAFAB is not set -# CONFIG_USB_STORAGE_FREECOM is not set -# CONFIG_USB_STORAGE_ISD200 is not set -# CONFIG_USB_STORAGE_USBAT is not set -# CONFIG_USB_STORAGE_SDDR09 is not set -# CONFIG_USB_STORAGE_SDDR55 is not set -# CONFIG_USB_STORAGE_JUMPSHOT is not set -# CONFIG_USB_STORAGE_ALAUDA is not set -# CONFIG_USB_STORAGE_ONETOUCH is not set -# CONFIG_USB_STORAGE_KARMA is not set -# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set -# CONFIG_USB_STORAGE_ENE_UB6250 is not set -# CONFIG_USB_UAS is not set # # USB Imaging devices # # CONFIG_USB_MDC800 is not set -# CONFIG_USB_MICROTEK is not set # CONFIG_USBIP_CORE is not set -# CONFIG_USB_CDNS3 is not set -# CONFIG_USB_MUSB_HDRC is not set -CONFIG_USB_DWC3=y +# CONFIG_USB_CDNS_SUPPORT is not set +CONFIG_USB_MUSB_HDRC=y +CONFIG_USB_MUSB_HOST=y +# CONFIG_USB_MUSB_GADGET is not set +# CONFIG_USB_MUSB_DUAL_ROLE is not set + +# +# Platform Glue Layer +# + +# +# MUSB DMA mode +# +# CONFIG_MUSB_PIO_ONLY is not set +CONFIG_USB_DWC3=m CONFIG_USB_DWC3_HOST=y +# CONFIG_USB_DWC3_GADGET is not set +# CONFIG_USB_DWC3_DUAL_ROLE is not set # # Platform Glue Driver Support # -CONFIG_USB_DWC3_OF_SIMPLE=y +CONFIG_USB_DWC3_OF_SIMPLE=m # CONFIG_USB_DWC2 is not set # CONFIG_USB_CHIPIDEA is not set # CONFIG_USB_ISP1760 is not set @@ -2468,28 +2570,107 @@ CONFIG_USB_DWC3_OF_SIMPLE=y # CONFIG_USB_HSIC_USB3503 is not set # CONFIG_USB_HSIC_USB4604 is not set # CONFIG_USB_LINK_LAYER_TEST is not set -# CONFIG_USB_CHAOSKEY is not set +# CONFIG_USB_ONBOARD_HUB is not set # # USB Physical Layer drivers # +CONFIG_USB_PHY=y # CONFIG_NOP_USB_XCEIV is not set -# CONFIG_USB_GPIO_VBUS is not set +CONFIG_USB_GPIO_VBUS=y # CONFIG_USB_ISP1301 is not set # CONFIG_USB_ULPI is not set # end of USB Physical Layer drivers -# CONFIG_USB_GADGET is not set +CONFIG_USB_GADGET=y +# CONFIG_USB_GADGET_DEBUG is not set +# CONFIG_USB_GADGET_DEBUG_FILES is not set +CONFIG_USB_GADGET_VBUS_DRAW=500 +CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 + +# +# USB Peripheral Controller +# +# CONFIG_USB_FUSB300 is not set +# CONFIG_USB_FOTG210_UDC is not set +# CONFIG_USB_GR_UDC is not set +# CONFIG_USB_R8A66597 is not set +# CONFIG_USB_PXA27X is not set +# CONFIG_USB_MV_UDC is not set +# CONFIG_USB_MV_U3D is not set +# CONFIG_USB_SNP_UDC_PLAT is not set +# CONFIG_USB_M66592 is not set +# CONFIG_USB_BDC_UDC is not set +# CONFIG_USB_NET2272 is not set +# CONFIG_USB_GADGET_XILINX is not set +# CONFIG_USB_MAX3420_UDC is not set +# CONFIG_USB_DUMMY_HCD is not set +# end of USB Peripheral Controller + +CONFIG_USB_LIBCOMPOSITE=y +CONFIG_USB_U_AUDIO=y +CONFIG_USB_F_FS=y +CONFIG_USB_F_UAC1=y +CONFIG_USB_F_UAC2=y +CONFIG_USB_CONFIGFS=y +# CONFIG_USB_CONFIGFS_UEVENT is not set +# CONFIG_USB_CONFIGFS_SERIAL is not set +# CONFIG_USB_CONFIGFS_ACM is not set +# CONFIG_USB_CONFIGFS_OBEX is not set +# CONFIG_USB_CONFIGFS_NCM is not set +# CONFIG_USB_CONFIGFS_ECM is not set +# CONFIG_USB_CONFIGFS_ECM_SUBSET is not set +# CONFIG_USB_CONFIGFS_RNDIS is not set +# CONFIG_USB_CONFIGFS_EEM is not set +# CONFIG_USB_CONFIGFS_MASS_STORAGE is not set +# CONFIG_USB_CONFIGFS_F_LB_SS is not set +CONFIG_USB_CONFIGFS_F_FS=y +CONFIG_USB_CONFIGFS_F_UAC1=y +# CONFIG_USB_CONFIGFS_F_UAC1_LEGACY is not set +CONFIG_USB_CONFIGFS_F_UAC2=y +# CONFIG_USB_CONFIGFS_F_MIDI is not set +# CONFIG_USB_CONFIGFS_F_HID is not set +# CONFIG_USB_CONFIGFS_F_PRINTER is not set +# CONFIG_USB_CONFIGFS_F_VENDOR is not set + +# +# USB Gadget precomposed configurations +# +# CONFIG_USB_ZERO is not set +# CONFIG_USB_AUDIO is not set +# CONFIG_USB_ETH is not set +# CONFIG_USB_G_NCM is not set +# CONFIG_USB_GADGETFS is not set +CONFIG_USB_FUNCTIONFS=y +# CONFIG_USB_FUNCTIONFS_ETH is not set +# CONFIG_USB_FUNCTIONFS_RNDIS is not set +CONFIG_USB_FUNCTIONFS_GENERIC=y +# CONFIG_USB_MASS_STORAGE is not set +# CONFIG_USB_G_SERIAL is not set +# CONFIG_USB_MIDI_GADGET is not set +# CONFIG_USB_G_PRINTER is not set +# CONFIG_USB_CDC_COMPOSITE is not set +# CONFIG_USB_G_ACM_MS is not set +# CONFIG_USB_G_MULTI is not set +# CONFIG_USB_G_HID is not set +# CONFIG_USB_G_DBGP is not set +# CONFIG_USB_RAW_GADGET is not set +# end of USB Gadget precomposed configurations + CONFIG_TYPEC=y # CONFIG_TYPEC_TCPM is not set # CONFIG_TYPEC_UCSI is not set -# CONFIG_TYPEC_HD3SS3220 is not set # CONFIG_TYPEC_TPS6598X is not set +# CONFIG_TYPEC_ANX7411 is not set +# CONFIG_TYPEC_RT1719 is not set +# CONFIG_TYPEC_HD3SS3220 is not set # CONFIG_TYPEC_STUSB160X is not set +# CONFIG_TYPEC_WUSB3801 is not set # # USB Type-C Multiplexer/DeMultiplexer Switch support # +# CONFIG_TYPEC_MUX_FSA4480 is not set # CONFIG_TYPEC_MUX_PI3USB30532 is not set # end of USB Type-C Multiplexer/DeMultiplexer Switch support @@ -2578,6 +2759,14 @@ CONFIG_LEDS_GPIO=y # CONFIG_LEDS_SPI_BYTE is not set # CONFIG_LEDS_TI_LMU_COMMON is not set +# +# Flash and Torch LED drivers +# + +# +# RGB LED drivers +# + # # LED Triggers # @@ -2601,6 +2790,11 @@ CONFIG_LEDS_TRIGGER_ACTIVITY=y # CONFIG_LEDS_TRIGGER_NETDEV is not set # CONFIG_LEDS_TRIGGER_PATTERN is not set # CONFIG_LEDS_TRIGGER_AUDIO is not set +# CONFIG_LEDS_TRIGGER_TTY is not set + +# +# Simple LED drivers +# # CONFIG_ACCESSIBILITY is not set # CONFIG_INFINIBAND is not set CONFIG_EDAC_ATOMIC_SCRUB=y @@ -2634,6 +2828,7 @@ CONFIG_RTC_INTF_DEV=y # CONFIG_RTC_DRV_DS1672 is not set # CONFIG_RTC_DRV_HYM8563 is not set # CONFIG_RTC_DRV_MAX6900 is not set +# CONFIG_RTC_DRV_NCT3018Y is not set # CONFIG_RTC_DRV_ROCKCHIP is not set # CONFIG_RTC_DRV_RS5C372 is not set # CONFIG_RTC_DRV_ISL1208 is not set @@ -2671,7 +2866,6 @@ CONFIG_RTC_INTF_DEV=y # CONFIG_RTC_DRV_MAX6916 is not set # CONFIG_RTC_DRV_R9701 is not set # CONFIG_RTC_DRV_RX4581 is not set -# CONFIG_RTC_DRV_RX6110 is not set # CONFIG_RTC_DRV_RS5C348 is not set # CONFIG_RTC_DRV_MAX6902 is not set # CONFIG_RTC_DRV_PCF2123 is not set @@ -2684,6 +2878,7 @@ CONFIG_RTC_I2C_AND_SPI=y # CONFIG_RTC_DRV_DS3232 is not set # CONFIG_RTC_DRV_PCF2127 is not set # CONFIG_RTC_DRV_RV3029C2 is not set +# CONFIG_RTC_DRV_RX6110 is not set # # Platform RTC drivers @@ -2717,6 +2912,7 @@ CONFIG_RTC_I2C_AND_SPI=y # # HID Sensor RTC drivers # +# CONFIG_RTC_DRV_GOLDFISH is not set CONFIG_DMADEVICES=y # CONFIG_DMADEVICES_DEBUG is not set @@ -2733,6 +2929,7 @@ CONFIG_DMA_OF=y # CONFIG_INTEL_IDMA64 is not set # CONFIG_NBPFAXI_DMA is not set CONFIG_PL330_DMA=y +# CONFIG_ROCKCHIP_DMA is not set # CONFIG_XILINX_ZYNQMP_DPDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set # CONFIG_QCOM_HIDMA is not set @@ -2750,15 +2947,14 @@ CONFIG_PL330_DMA=y # CONFIG_DMABUF_CACHE=y # CONFIG_RK_DMABUF_DEBUG is not set -CONFIG_DMABUF_PARTIAL=y +# CONFIG_DMABUF_PARTIAL is not set # CONFIG_SYNC_FILE is not set # CONFIG_UDMABUF is not set # CONFIG_DMABUF_MOVE_NOTIFY is not set +# CONFIG_DMABUF_DEBUG is not set # CONFIG_DMABUF_SELFTESTS is not set # CONFIG_DMABUF_HEAPS is not set # CONFIG_DMABUF_SYSFS_STATS is not set -# CONFIG_DMABUF_HEAPS_DEFERRED_FREE is not set -# CONFIG_DMABUF_HEAPS_PAGE_POOL is not set CONFIG_DMABUF_HEAPS_ROCKCHIP=y CONFIG_DMABUF_HEAPS_ROCKCHIP_CMA_HEAP=y CONFIG_DMABUF_HEAPS_ROCKCHIP_CMA_ALIGNMENT=0 @@ -2780,8 +2976,8 @@ CONFIG_DMABUF_RK_HEAPS_DEBUG=y # end of Microsoft Hyper-V guest support # CONFIG_GREYBUS is not set -CONFIG_STAGING=y # CONFIG_COMEDI is not set +CONFIG_STAGING=y # # IIO staging drivers @@ -2798,7 +2994,6 @@ CONFIG_STAGING=y # Analog to digital converters # # CONFIG_AD7816 is not set -# CONFIG_AD7280 is not set # end of Analog to digital converters # @@ -2807,13 +3002,6 @@ CONFIG_STAGING=y # CONFIG_ADT7316 is not set # end of Analog digital bi-direction converters -# -# Capacitance to digital converters -# -# CONFIG_AD7150 is not set -# CONFIG_AD7746 is not set -# end of Capacitance to digital converters - # # Direct Digital Synthesis # @@ -2841,33 +3029,15 @@ CONFIG_STAGING=y # end of IIO staging drivers # CONFIG_STAGING_MEDIA is not set - -# -# Android -# -# CONFIG_ASHMEM is not set -# CONFIG_DEBUG_KINFO is not set -# CONFIG_ION is not set -# end of Android - # CONFIG_STAGING_BOARD is not set -# CONFIG_GS_FPGABOOT is not set -# CONFIG_UNISYSSPAR is not set -# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set +# CONFIG_LTE_GDM724X is not set # CONFIG_PI433 is not set - -# -# Gasket devices -# -# end of Gasket devices - # CONFIG_XIL_AXIS_FIFO is not set # CONFIG_FIELDBUS_DEV is not set # CONFIG_GOLDFISH is not set # CONFIG_CHROME_PLATFORMS is not set # CONFIG_MELLANOX_PLATFORM is not set CONFIG_HAVE_CLK=y -CONFIG_CLKDEV_LOOKUP=y CONFIG_HAVE_CLK_PREPARE=y CONFIG_COMMON_CLK=y CONFIG_COMMON_CLK_PROCFS=y @@ -2875,10 +3045,11 @@ CONFIG_COMMON_CLK_PROCFS=y # # Clock driver for ARM Reference designs # -# CONFIG_ICST is not set +# CONFIG_CLK_ICST is not set # CONFIG_CLK_SP810 is not set # end of Clock driver for ARM Reference designs +# CONFIG_LMK04832 is not set # CONFIG_COMMON_CLK_MAX9485 is not set # CONFIG_COMMON_CLK_SI5341 is not set # CONFIG_COMMON_CLK_SI5351 is not set @@ -2888,23 +3059,20 @@ CONFIG_COMMON_CLK_PROCFS=y # CONFIG_COMMON_CLK_CDCE706 is not set # CONFIG_COMMON_CLK_CDCE925 is not set # CONFIG_COMMON_CLK_CS2000_CP is not set -# CONFIG_CLK_QORIQ is not set +# CONFIG_COMMON_CLK_AXI_CLKGEN is not set # CONFIG_COMMON_CLK_PWM is not set +# CONFIG_COMMON_CLK_RS9_PCIE is not set # CONFIG_COMMON_CLK_VC5 is not set +# CONFIG_COMMON_CLK_VC7 is not set # CONFIG_COMMON_CLK_FIXED_MMIO is not set CONFIG_COMMON_CLK_ROCKCHIP=y CONFIG_CLK_RV1106=y # CONFIG_ROCKCHIP_CLK_COMPENSATION is not set # CONFIG_ROCKCHIP_CLK_LINK is not set -# CONFIG_ROCKCHIP_CLK_BOOST is not set -# CONFIG_ROCKCHIP_CLK_INV is not set # CONFIG_ROCKCHIP_CLK_OUT is not set -# CONFIG_ROCKCHIP_CLK_PVTM is not set -# CONFIG_ROCKCHIP_DDRCLK_SIP is not set -# CONFIG_ROCKCHIP_DDRCLK_SIP_V2 is not set -# CONFIG_ROCKCHIP_PLL_RK3066 is not set -# CONFIG_ROCKCHIP_PLL_RK3399 is not set -# CONFIG_ROCKCHIP_PLL_RK3588 is not set +# CONFIG_ROCKCHIP_CLK_PVTPLL is not set +# CONFIG_XILINX_VCU is not set +# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set # CONFIG_HWSPINLOCK is not set # @@ -2914,10 +3082,8 @@ CONFIG_TIMER_OF=y CONFIG_TIMER_PROBE=y CONFIG_CLKSRC_MMIO=y CONFIG_ROCKCHIP_TIMER=y -# CONFIG_SUN4I_TIMER is not set CONFIG_ARM_ARCH_TIMER=y # CONFIG_ARM_ARCH_TIMER_EVTSTREAM is not set -# CONFIG_MTK_TIMER is not set # CONFIG_MICROCHIP_PIT64B is not set # end of Clock Source drivers @@ -2933,6 +3099,7 @@ CONFIG_ARM_ARCH_TIMER=y # # Rpmsg drivers # +# CONFIG_RPMSG_ROCKCHIP_SOFTIRQ is not set # CONFIG_RPMSG_VIRTIO is not set # end of Rpmsg drivers @@ -2947,11 +3114,6 @@ CONFIG_ARM_ARCH_TIMER=y # # end of Amlogic SoC drivers -# -# Aspeed SoC drivers -# -# end of Aspeed SoC drivers - # # Broadcom SoC drivers # @@ -2964,11 +3126,22 @@ CONFIG_ARM_ARCH_TIMER=y # CONFIG_QUICC_ENGINE is not set # end of NXP/Freescale QorIQ SoC drivers +# +# fujitsu SoC drivers +# +# end of fujitsu SoC drivers + # # i.MX SoC drivers # # end of i.MX SoC drivers +# +# Enable LiteX SoC Builder specific drivers +# +# CONFIG_LITEX_SOC_CONTROLLER is not set +# end of Enable LiteX SoC Builder specific drivers + # # Qualcomm SoC drivers # @@ -2987,29 +3160,36 @@ CONFIG_ARM_ARCH_TIMER=y # CONFIG_CPU_RK3188 is not set # CONFIG_CPU_RK3288 is not set # CONFIG_CPU_RK322X is not set +# CONFIG_CPU_RV1103B is not set CONFIG_CPU_RV1106=y # CONFIG_CPU_RV1108 is not set # CONFIG_CPU_RV1126 is not set +# CONFIG_CPU_RV1126B is not set # CONFIG_CPU_PX30 is not set # CONFIG_CPU_RK1808 is not set # CONFIG_CPU_RK3308 is not set # CONFIG_CPU_RK3328 is not set # CONFIG_CPU_RK3368 is not set # CONFIG_CPU_RK3399 is not set +# CONFIG_CPU_RK3506 is not set # CONFIG_CPU_RK3528 is not set # CONFIG_CPU_RK3562 is not set # CONFIG_CPU_RK3568 is not set +# CONFIG_CPU_RK3576 is not set # CONFIG_CPU_RK3588 is not set # end of Rockchip CPU selection CONFIG_NO_GKI=y +# CONFIG_ROCKCHIP_DISABLE_UNUSED is not set CONFIG_ROCKCHIP_AMP=y CONFIG_ROCKCHIP_CPUINFO=y +# CONFIG_ROCKCHIP_CSU is not set +# CONFIG_ROCKCHIP_DMC_DEBUG is not set # CONFIG_ROCKCHIP_GRF is not set # CONFIG_ROCKCHIP_HW_DECOMPRESS is not set # CONFIG_ROCKCHIP_HW_DECOMPRESS_USER is not set # CONFIG_ROCKCHIP_IODOMAIN is not set -# CONFIG_ROCKCHIP_IOMUX is not set +CONFIG_ROCKCHIP_IOMUX=y # CONFIG_ROCKCHIP_IPA is not set CONFIG_ROCKCHIP_OPP=y # CONFIG_ROCKCHIP_OPTIMIZE_RT_PRIO is not set @@ -3017,11 +3197,10 @@ CONFIG_ROCKCHIP_OPP=y # CONFIG_ROCKCHIP_PM_DOMAINS is not set CONFIG_ROCKCHIP_PVTM=y # CONFIG_ROCKCHIP_RAMDISK is not set -# CONFIG_ROCKCHIP_SUSPEND_MODE is not set -# CONFIG_ROCKCHIP_SYSTEM_MONITOR is not set -CONFIG_ROCKCHIP_VENDOR_STORAGE=y -# CONFIG_ROCKCHIP_MMC_VENDOR_STORAGE is not set -CONFIG_ROCKCHIP_MTD_VENDOR_STORAGE=y +CONFIG_ROCKCHIP_SYSTEM_MONITOR=y +# CONFIG_ROCKCHIP_EARLYSUSPEND is not set +# CONFIG_ROCKCHIP_VENDOR_STORAGE is not set +# CONFIG_ROCKCHIP_MTD_VENDOR_STORAGE is not set # CONFIG_ROCKCHIP_VENDOR_STORAGE_UPDATE_LOADER is not set # @@ -3035,17 +3214,24 @@ CONFIG_FIQ_DEBUGGER_CONSOLE_DEFAULT_ENABLE=y # CONFIG_FIQ_DEBUGGER_TRUST_ZONE is not set # CONFIG_FIQ_DEBUGGER_UART_OVERLAY is not set CONFIG_RK_CONSOLE_THREAD=y -CONFIG_FIQ_DEBUGGER_FIQ_GLUE=y +# CONFIG_FIQ_DEBUGGER_FIQ_GLUE is not set CONFIG_ROCKCHIP_FIQ_DEBUGGER=y # end of FIQ Debugger # CONFIG_ROCKCHIP_DEBUG is not set CONFIG_ROCKCHIP_MINI_KERNEL=y +CONFIG_ROCKCHIP_KMALLOC_NO_USE_ARCH_DMA_MINALIGN=y # CONFIG_ROCKCHIP_THUNDER_BOOT is not set CONFIG_ROCKCHIP_NPOR_POWERGOOD=y CONFIG_RK_CMA_PROCFS=y CONFIG_RK_DMABUF_PROCFS=y CONFIG_RK_MEMBLOCK_PROCFS=y +# CONFIG_RK_ZONEINFO_PROCFS is not set + +# +# Rockchip Minidump drivers +# +# end of Rockchip Minidump drivers # end of Rockchip SoC drivers # CONFIG_SOC_TI is not set @@ -3053,7 +3239,6 @@ CONFIG_RK_MEMBLOCK_PROCFS=y # # Xilinx SoC drivers # -# CONFIG_XILINX_VCU is not set # end of Xilinx SoC drivers # end of SOC (System On Chip) specific Drivers @@ -3087,6 +3272,7 @@ CONFIG_EXTCON=y # CONFIG_EXTCON_RT8973A is not set # CONFIG_EXTCON_SM5502 is not set # CONFIG_EXTCON_USB_GPIO is not set +# CONFIG_EXTCON_USBC_TUSB320 is not set # CONFIG_MEMORY is not set CONFIG_IIO=y CONFIG_IIO_BUFFER=y @@ -3108,19 +3294,28 @@ CONFIG_IIO_CONSUMERS_PER_TRIGGER=2 # # CONFIG_ADIS16201 is not set # CONFIG_ADIS16209 is not set +# CONFIG_ADXL313_I2C is not set +# CONFIG_ADXL313_SPI is not set # CONFIG_ADXL345_I2C is not set # CONFIG_ADXL345_SPI is not set +# CONFIG_ADXL355_I2C is not set +# CONFIG_ADXL355_SPI is not set +# CONFIG_ADXL367_SPI is not set +# CONFIG_ADXL367_I2C is not set # CONFIG_ADXL372_SPI is not set # CONFIG_ADXL372_I2C is not set # CONFIG_BMA180 is not set # CONFIG_BMA220 is not set # CONFIG_BMA400 is not set # CONFIG_BMC150_ACCEL is not set +# CONFIG_BMI088_ACCEL is not set # CONFIG_DA280 is not set # CONFIG_DA311 is not set # CONFIG_DMARD06 is not set # CONFIG_DMARD09 is not set # CONFIG_DMARD10 is not set +# CONFIG_FXLS8962AF_I2C is not set +# CONFIG_FXLS8962AF_SPI is not set # CONFIG_IIO_ST_ACCEL_3AXIS is not set # CONFIG_KXSD9 is not set # CONFIG_KXCJK1013 is not set @@ -3131,9 +3326,11 @@ CONFIG_IIO_CONSUMERS_PER_TRIGGER=2 # CONFIG_MMA8452 is not set # CONFIG_MMA9551 is not set # CONFIG_MMA9553 is not set +# CONFIG_MSA311 is not set # CONFIG_MXC4005 is not set # CONFIG_MXC6255 is not set # CONFIG_SCA3000 is not set +# CONFIG_SCA3300 is not set # CONFIG_STK8312 is not set # CONFIG_STK8BA50 is not set # end of Accelerometers @@ -3145,6 +3342,7 @@ CONFIG_IIO_CONSUMERS_PER_TRIGGER=2 # CONFIG_AD7124 is not set # CONFIG_AD7192 is not set # CONFIG_AD7266 is not set +# CONFIG_AD7280 is not set # CONFIG_AD7291 is not set # CONFIG_AD7292 is not set # CONFIG_AD7298 is not set @@ -3173,6 +3371,7 @@ CONFIG_IIO_CONSUMERS_PER_TRIGGER=2 # CONFIG_MAX1027 is not set # CONFIG_MAX11100 is not set # CONFIG_MAX1118 is not set +# CONFIG_MAX11205 is not set # CONFIG_MAX1241 is not set # CONFIG_MAX1363 is not set # CONFIG_MAX9611 is not set @@ -3180,8 +3379,10 @@ CONFIG_IIO_CONSUMERS_PER_TRIGGER=2 # CONFIG_MCP3422 is not set # CONFIG_MCP3911 is not set # CONFIG_NAU7802 is not set +# CONFIG_ROCKCHIP_FLEXBUS_ADC is not set CONFIG_ROCKCHIP_SARADC=y # CONFIG_ROCKCHIP_SARADC_TEST_CHN is not set +# CONFIG_RICHTEK_RTQ6056 is not set # CONFIG_SD_ADC_MODULATOR is not set # CONFIG_TI_ADC081C is not set # CONFIG_TI_ADC0832 is not set @@ -3195,11 +3396,19 @@ CONFIG_ROCKCHIP_SARADC=y # CONFIG_TI_ADS8344 is not set # CONFIG_TI_ADS8688 is not set # CONFIG_TI_ADS124S08 is not set +# CONFIG_TI_ADS131E08 is not set # CONFIG_TI_TLC4541 is not set +# CONFIG_TI_TSC2046 is not set # CONFIG_VF610_ADC is not set # CONFIG_XILINX_XADC is not set # end of Analog to digital converters +# +# Analog to digital and digital to analog converters +# +# CONFIG_AD74413R is not set +# end of Analog to digital and digital to analog converters + # # Analog Front Ends # @@ -3210,9 +3419,17 @@ CONFIG_ROCKCHIP_SARADC=y # Amplifiers # # CONFIG_AD8366 is not set +# CONFIG_ADA4250 is not set # CONFIG_HMC425 is not set # end of Amplifiers +# +# Capacitance to digital converters +# +# CONFIG_AD7150 is not set +# CONFIG_AD7746 is not set +# end of Capacitance to digital converters + # # Chemical Sensors # @@ -3222,8 +3439,11 @@ CONFIG_ROCKCHIP_SARADC=y # CONFIG_CCS811 is not set # CONFIG_IAQCORE is not set # CONFIG_SCD30_CORE is not set +# CONFIG_SCD4X is not set # CONFIG_SENSIRION_SGP30 is not set -# CONFIG_SPS30 is not set +# CONFIG_SENSIRION_SGP40 is not set +# CONFIG_SPS30_I2C is not set +# CONFIG_SENSEAIR_SUNRISE_CO2 is not set # CONFIG_VZ89X is not set # end of Chemical Sensors @@ -3232,6 +3452,11 @@ CONFIG_ROCKCHIP_SARADC=y # # end of Hid Sensor IIO Common +# +# IIO SCMI Sensors +# +# end of IIO SCMI Sensors + # # SSP Sensor Common # @@ -3241,6 +3466,7 @@ CONFIG_ROCKCHIP_SARADC=y # # Digital to analog converters # +# CONFIG_AD3552R is not set # CONFIG_AD5064 is not set # CONFIG_AD5360 is not set # CONFIG_AD5380 is not set @@ -3251,14 +3477,17 @@ CONFIG_ROCKCHIP_SARADC=y # CONFIG_AD5593R is not set # CONFIG_AD5504 is not set # CONFIG_AD5624R_SPI is not set +# CONFIG_LTC2688 is not set # CONFIG_AD5686_SPI is not set # CONFIG_AD5696_I2C is not set # CONFIG_AD5755 is not set # CONFIG_AD5758 is not set # CONFIG_AD5761 is not set # CONFIG_AD5764 is not set +# CONFIG_AD5766 is not set # CONFIG_AD5770R is not set # CONFIG_AD5791 is not set +# CONFIG_AD7293 is not set # CONFIG_AD7303 is not set # CONFIG_AD8801 is not set # CONFIG_DPOT_DAC is not set @@ -3270,6 +3499,7 @@ CONFIG_ROCKCHIP_SARADC=y # CONFIG_MAX5821 is not set # CONFIG_MCP4725 is not set # CONFIG_MCP4922 is not set +# CONFIG_ROCKCHIP_FLEXBUS_DAC is not set # CONFIG_TI_DAC082S085 is not set # CONFIG_TI_DAC5571 is not set # CONFIG_TI_DAC7311 is not set @@ -3282,6 +3512,11 @@ CONFIG_ROCKCHIP_SARADC=y # # end of IIO dummy driver +# +# Filters +# +# end of Filters + # # Frequency Synthesizers DDS/PLL # @@ -3297,6 +3532,9 @@ CONFIG_ROCKCHIP_SARADC=y # # CONFIG_ADF4350 is not set # CONFIG_ADF4371 is not set +# CONFIG_ADMV1013 is not set +# CONFIG_ADMV4420 is not set +# CONFIG_ADRF6780 is not set # end of Phase-Locked Loop (PLL) frequency synthesizers # end of Frequency Synthesizers DDS/PLL @@ -3352,15 +3590,19 @@ CONFIG_ROCKCHIP_SARADC=y # CONFIG_ADIS16480 is not set # CONFIG_BMI160_I2C is not set # CONFIG_BMI160_SPI is not set +# CONFIG_BOSCH_BNO055_I2C is not set # CONFIG_FXOS8700_I2C is not set # CONFIG_FXOS8700_SPI is not set # CONFIG_KMX61 is not set # CONFIG_INV_ICM42600_I2C is not set # CONFIG_INV_ICM42600_SPI is not set +# CONFIG_INV_ICM42670_I2C is not set +# CONFIG_INV_ICM42670_SPI is not set # CONFIG_INV_MPU6050_I2C is not set # CONFIG_INV_MPU6050_SPI is not set # CONFIG_IIO_ST_LSM6DSR is not set # CONFIG_IIO_ST_LSM6DSX is not set +# CONFIG_IIO_ST_LSM9DS0 is not set # end of Inertial measurement units # @@ -3388,6 +3630,7 @@ CONFIG_ROCKCHIP_SARADC=y # CONFIG_JSA1212 is not set # CONFIG_RPR0521 is not set # CONFIG_LTR501 is not set +# CONFIG_LTRF216A is not set # CONFIG_LV0104CS is not set # CONFIG_MAX44000 is not set # CONFIG_MAX44009 is not set @@ -3402,6 +3645,7 @@ CONFIG_ROCKCHIP_SARADC=y # CONFIG_TCS3472 is not set # CONFIG_SENSORS_TSL2563 is not set # CONFIG_TSL2583 is not set +# CONFIG_TSL2591 is not set # CONFIG_TSL2772 is not set # CONFIG_TSL4531 is not set # CONFIG_UCS12CM0 is not set @@ -3429,6 +3673,7 @@ CONFIG_ROCKCHIP_SARADC=y # CONFIG_SENSORS_HMC5843_SPI is not set # CONFIG_SENSORS_RM3100_I2C is not set # CONFIG_SENSORS_RM3100_SPI is not set +# CONFIG_YAMAHA_YAS530 is not set # end of Magnetometer sensors # @@ -3457,6 +3702,7 @@ CONFIG_ROCKCHIP_SARADC=y # # Digital potentiometers # +# CONFIG_AD5110 is not set # CONFIG_AD5272 is not set # CONFIG_DS1803 is not set # CONFIG_MAX5432 is not set @@ -3511,6 +3757,8 @@ CONFIG_ROCKCHIP_SARADC=y # CONFIG_RFD77402 is not set # CONFIG_SRF04 is not set # CONFIG_SX9310 is not set +# CONFIG_SX9324 is not set +# CONFIG_SX9360 is not set # CONFIG_SX9500 is not set # CONFIG_SRF08 is not set # CONFIG_VCNL3020 is not set @@ -3533,19 +3781,26 @@ CONFIG_ROCKCHIP_SARADC=y # CONFIG_MLX90632 is not set # CONFIG_TMP006 is not set # CONFIG_TMP007 is not set +# CONFIG_TMP117 is not set # CONFIG_TSYS01 is not set # CONFIG_TSYS02D is not set # CONFIG_MAX31856 is not set +# CONFIG_MAX31865 is not set # end of Temperature sensors CONFIG_PWM=y CONFIG_PWM_SYSFS=y # CONFIG_PWM_DEBUG is not set +# CONFIG_PWM_ATMEL_TCB is not set +# CONFIG_PWM_CLK is not set # CONFIG_PWM_FSL_FTM is not set # CONFIG_PWM_GPIO is not set # CONFIG_PWM_PCA9685 is not set CONFIG_PWM_ROCKCHIP=y # CONFIG_PWM_ROCKCHIP_ONESHOT is not set +# CONFIG_PWM_ROCKCHIP_TEST is not set +# CONFIG_PWM_R7F701 is not set +# CONFIG_PWM_XILINX is not set # # IRQ chip support @@ -3554,36 +3809,46 @@ CONFIG_IRQCHIP=y CONFIG_ARM_GIC=y CONFIG_ARM_GIC_MAX_NR=1 # CONFIG_AL_FIC is not set +# CONFIG_XILINX_INTC is not set # end of IRQ chip support # CONFIG_IPACK_BUS is not set CONFIG_ARCH_HAS_RESET_CONTROLLER=y CONFIG_RESET_CONTROLLER=y +# CONFIG_RESET_SIMPLE is not set # CONFIG_RESET_TI_SYSCON is not set +# CONFIG_RESET_TI_TPS380X is not set # # PHY Subsystem # CONFIG_GENERIC_PHY=y +# CONFIG_PHY_CAN_TRANSCEIVER is not set + +# +# PHY drivers for Broadcom platforms +# # CONFIG_BCM_KONA_USB2_PHY is not set +# end of PHY drivers for Broadcom platforms + # CONFIG_PHY_CADENCE_TORRENT is not set # CONFIG_PHY_CADENCE_DPHY is not set +# CONFIG_PHY_CADENCE_DPHY_RX is not set # CONFIG_PHY_CADENCE_SIERRA is not set # CONFIG_PHY_CADENCE_SALVO is not set -# CONFIG_PHY_FSL_IMX8MQ_USB is not set -# CONFIG_PHY_MIXEL_MIPI_DPHY is not set # CONFIG_PHY_PXA_28NM_HSIC is not set # CONFIG_PHY_PXA_28NM_USB2 is not set +# CONFIG_PHY_LAN966X_SERDES is not set # CONFIG_PHY_CPCAP_USB is not set # CONFIG_PHY_MAPPHONE_MDM6600 is not set # CONFIG_PHY_OCELOT_SERDES is not set # CONFIG_PHY_ROCKCHIP_DP is not set # CONFIG_PHY_ROCKCHIP_DPHY_RX0 is not set # CONFIG_PHY_ROCKCHIP_EMMC is not set -# CONFIG_PHY_ROCKCHIP_INNO_COMBPHY is not set # CONFIG_PHY_ROCKCHIP_INNO_HDMI is not set CONFIG_PHY_ROCKCHIP_INNO_USB2=y # CONFIG_PHY_ROCKCHIP_INNO_USB3 is not set +# CONFIG_PHY_ROCKCHIP_INNO_CSIDPHY is not set # CONFIG_PHY_ROCKCHIP_INNO_DSIDPHY is not set # CONFIG_PHY_ROCKCHIP_NANENG_COMBO_PHY is not set # CONFIG_PHY_ROCKCHIP_NANENG_EDP is not set @@ -3605,18 +3870,16 @@ CONFIG_PHY_ROCKCHIP_INNO_USB2=y # # Android # -CONFIG_ANDROID=y # CONFIG_ANDROID_BINDER_IPC is not set -# CONFIG_ANDROID_DEBUG_SYMBOLS is not set -# CONFIG_ANDROID_KABI_RESERVE is not set -# CONFIG_ANDROID_VENDOR_OEM_DATA is not set # end of Android # CONFIG_DAX is not set CONFIG_NVMEM=y CONFIG_NVMEM_SYSFS=y -# CONFIG_ROCKCHIP_EFUSE is not set -CONFIG_ROCKCHIP_OTP=y +# CONFIG_NVMEM_RMEM is not set +# CONFIG_NVMEM_ROCKCHIP_EFUSE is not set +CONFIG_NVMEM_ROCKCHIP_OTP=y +# CONFIG_NVMEM_U_BOOT_ENV is not set # # HW tracing support @@ -3634,6 +3897,8 @@ CONFIG_PM_OPP=y # CONFIG_INTERCONNECT is not set # CONFIG_COUNTER is not set # CONFIG_MOST is not set +# CONFIG_PECI is not set +# CONFIG_HTE is not set # CONFIG_RK_FLASH is not set # CONFIG_RK_NAND is not set @@ -3646,7 +3911,10 @@ CONFIG_PM_OPP=y # # RKNPU # -# CONFIG_ROCKCHIP_RKNPU is not set +CONFIG_ROCKCHIP_RKNPU=y +CONFIG_ROCKCHIP_RKNPU_PROC_FS=y +# CONFIG_ROCKCHIP_RKNPU_SRAM is not set +CONFIG_ROCKCHIP_RKNPU_DMA_HEAP=y # end of RKNPU # end of Device Drivers @@ -3674,11 +3942,9 @@ CONFIG_FS_MBCACHE=y # CONFIG_BTRFS_FS is not set # CONFIG_NILFS2_FS is not set # CONFIG_F2FS_FS is not set -CONFIG_FS_POSIX_ACL=y CONFIG_EXPORTFS=y CONFIG_EXPORTFS_BLOCK_OPS=y CONFIG_FILE_LOCKING=y -CONFIG_MANDATORY_FILE_LOCKING=y # CONFIG_FS_ENCRYPTION is not set # CONFIG_FS_VERITY is not set CONFIG_FSNOTIFY=y @@ -3690,7 +3956,6 @@ CONFIG_INOTIFY_USER=y # CONFIG_AUTOFS_FS is not set # CONFIG_FUSE_FS is not set # CONFIG_OVERLAY_FS is not set -# CONFIG_INCREMENTAL_FS is not set # # Caches @@ -3714,8 +3979,10 @@ CONFIG_VFAT_FS=y CONFIG_FAT_DEFAULT_CODEPAGE=437 CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" # CONFIG_FAT_DEFAULT_UTF8 is not set -# CONFIG_EXFAT_FS is not set +CONFIG_EXFAT_FS=y +CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8" # CONFIG_NTFS_FS is not set +# CONFIG_NTFS3_FS is not set # end of DOS/FAT/EXFAT/NT Filesystems # @@ -3738,7 +4005,6 @@ CONFIG_MISC_FILESYSTEMS=y # CONFIG_ORANGEFS_FS is not set # CONFIG_ADFS_FS is not set # CONFIG_AFFS_FS is not set -# CONFIG_ECRYPT_FS is not set # CONFIG_HFS_FS is not set # CONFIG_HFSPLUS_FS is not set # CONFIG_BEFS_FS is not set @@ -3776,11 +4042,11 @@ CONFIG_SQUASHFS_DECOMP_SINGLE=y # CONFIG_SQUASHFS_DECOMP_MULTI is not set # CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU is not set # CONFIG_SQUASHFS_XATTR is not set -# CONFIG_SQUASHFS_ZLIB is not set +CONFIG_SQUASHFS_ZLIB=y # CONFIG_SQUASHFS_LZ4 is not set # CONFIG_SQUASHFS_LZO is not set CONFIG_SQUASHFS_XZ=y -# CONFIG_SQUASHFS_ZSTD is not set +CONFIG_SQUASHFS_ZSTD=y CONFIG_SQUASHFS_4K_DEVBLK_SIZE=y # CONFIG_SQUASHFS_EMBEDDED is not set CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 @@ -3795,30 +4061,7 @@ CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 # CONFIG_SYSV_FS is not set # CONFIG_UFS_FS is not set # CONFIG_EROFS_FS is not set -CONFIG_NETWORK_FILESYSTEMS=y -CONFIG_NFS_FS=y -CONFIG_NFS_V2=y -CONFIG_NFS_V3=y -CONFIG_NFS_V3_ACL=y -CONFIG_NFS_V4=y -# CONFIG_NFS_SWAP is not set -# CONFIG_NFS_V4_1 is not set -# CONFIG_NFS_USE_LEGACY_DNS is not set -CONFIG_NFS_USE_KERNEL_DNS=y -CONFIG_NFS_DISABLE_UDP_SUPPORT=y -# CONFIG_NFSD is not set -CONFIG_GRACE_PERIOD=y -CONFIG_LOCKD=y -CONFIG_LOCKD_V4=y -CONFIG_NFS_ACL_SUPPORT=y -CONFIG_NFS_COMMON=y -CONFIG_SUNRPC=y -CONFIG_SUNRPC_GSS=y -# CONFIG_SUNRPC_DEBUG is not set -# CONFIG_CEPH_FS is not set -# CONFIG_CIFS is not set -# CONFIG_CODA_FS is not set -# CONFIG_AFS_FS is not set +# CONFIG_NETWORK_FILESYSTEMS is not set CONFIG_NLS=y CONFIG_NLS_DEFAULT="iso8859-1" CONFIG_NLS_CODEPAGE_437=y @@ -3877,12 +4120,11 @@ CONFIG_NLS_ISO8859_1=y # # Security options # -CONFIG_KEYS=y -# CONFIG_KEYS_REQUEST_CACHE is not set -# CONFIG_PERSISTENT_KEYRINGS is not set -# CONFIG_ENCRYPTED_KEYS is not set -# CONFIG_KEY_DH_OPERATIONS is not set +# CONFIG_KEYS is not set # CONFIG_SECURITY_DMESG_RESTRICT is not set +CONFIG_PROC_MEM_ALWAYS_FORCE=y +# CONFIG_PROC_MEM_FORCE_PTRACE is not set +# CONFIG_PROC_MEM_NO_FORCE is not set # CONFIG_SECURITY is not set # CONFIG_SECURITYFS is not set CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y @@ -3890,7 +4132,7 @@ CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y # CONFIG_FORTIFY_SOURCE is not set # CONFIG_STATIC_USERMODEHELPER is not set CONFIG_DEFAULT_SECURITY_DAC=y -CONFIG_LSM="lockdown,yama,loadpin,safesetid,integrity,bpf" +CONFIG_LSM="landlock,lockdown,yama,loadpin,safesetid,integrity,bpf" # # Kernel hardening options @@ -3907,7 +4149,11 @@ CONFIG_INIT_STACK_NONE=y # CONFIG_INIT_STACK_ALL_ZERO is not set # CONFIG_INIT_ON_ALLOC_DEFAULT_ON is not set # CONFIG_INIT_ON_FREE_DEFAULT_ON is not set +CONFIG_CC_HAS_ZERO_CALL_USED_REGS=y +# CONFIG_ZERO_CALL_USED_REGS is not set # end of Memory initialization + +CONFIG_RANDSTRUCT_NONE=y # end of Kernel hardening options # end of Security options @@ -3927,6 +4173,8 @@ CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y # CONFIG_CRYPTO_NULL is not set # CONFIG_CRYPTO_CRYPTD is not set # CONFIG_CRYPTO_AUTHENC is not set +# CONFIG_CRYPTO_TEST is not set +# end of Crypto core or helper # # Public-key cryptography @@ -3934,87 +4182,90 @@ CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y # CONFIG_CRYPTO_RSA is not set # CONFIG_CRYPTO_DH is not set # CONFIG_CRYPTO_ECDH is not set +# CONFIG_CRYPTO_ECDSA is not set # CONFIG_CRYPTO_ECRDSA is not set # CONFIG_CRYPTO_SM2 is not set # CONFIG_CRYPTO_CURVE25519 is not set +# end of Public-key cryptography # -# Authenticated Encryption with Associated Data +# Block ciphers # -# CONFIG_CRYPTO_CCM is not set -# CONFIG_CRYPTO_GCM is not set -# CONFIG_CRYPTO_CHACHA20POLY1305 is not set -# CONFIG_CRYPTO_AEGIS128 is not set -# CONFIG_CRYPTO_SEQIV is not set -# CONFIG_CRYPTO_ECHAINIV is not set +# CONFIG_CRYPTO_AES is not set +# CONFIG_CRYPTO_AES_TI is not set +# CONFIG_CRYPTO_ARIA is not set +# CONFIG_CRYPTO_BLOWFISH is not set +# CONFIG_CRYPTO_CAMELLIA is not set +# CONFIG_CRYPTO_CAST5 is not set +# CONFIG_CRYPTO_CAST6 is not set +# CONFIG_CRYPTO_DES is not set +# CONFIG_CRYPTO_FCRYPT is not set +# CONFIG_CRYPTO_SERPENT is not set +# CONFIG_CRYPTO_SM4_GENERIC is not set +# CONFIG_CRYPTO_TWOFISH is not set +# end of Block ciphers # -# Block modes +# Length-preserving ciphers and modes # +# CONFIG_CRYPTO_ADIANTUM is not set +# CONFIG_CRYPTO_CHACHA20 is not set # CONFIG_CRYPTO_CBC is not set # CONFIG_CRYPTO_CFB is not set # CONFIG_CRYPTO_CTR is not set # CONFIG_CRYPTO_CTS is not set # CONFIG_CRYPTO_ECB is not set +# CONFIG_CRYPTO_HCTR2 is not set +# CONFIG_CRYPTO_KEYWRAP is not set # CONFIG_CRYPTO_LRW is not set # CONFIG_CRYPTO_OFB is not set # CONFIG_CRYPTO_PCBC is not set # CONFIG_CRYPTO_XTS is not set -# CONFIG_CRYPTO_KEYWRAP is not set -# CONFIG_CRYPTO_ADIANTUM is not set -# CONFIG_CRYPTO_ESSIV is not set +# end of Length-preserving ciphers and modes # -# Hash modes +# AEAD (authenticated encryption with associated data) ciphers # -# CONFIG_CRYPTO_CMAC is not set -# CONFIG_CRYPTO_HMAC is not set -# CONFIG_CRYPTO_XCBC is not set -# CONFIG_CRYPTO_VMAC is not set +# CONFIG_CRYPTO_AEGIS128 is not set +# CONFIG_CRYPTO_CHACHA20POLY1305 is not set +# CONFIG_CRYPTO_CCM is not set +# CONFIG_CRYPTO_GCM is not set +# CONFIG_CRYPTO_SEQIV is not set +# CONFIG_CRYPTO_ECHAINIV is not set +# CONFIG_CRYPTO_ESSIV is not set +# end of AEAD (authenticated encryption with associated data) ciphers # -# Digest +# Hashes, digests, and MACs # -CONFIG_CRYPTO_CRC32C=y -# CONFIG_CRYPTO_CRC32 is not set -# CONFIG_CRYPTO_XXHASH is not set # CONFIG_CRYPTO_BLAKE2B is not set -# CONFIG_CRYPTO_BLAKE2S is not set -# CONFIG_CRYPTO_CRCT10DIF is not set +# CONFIG_CRYPTO_CMAC is not set # CONFIG_CRYPTO_GHASH is not set -# CONFIG_CRYPTO_POLY1305 is not set +# CONFIG_CRYPTO_HMAC is not set # CONFIG_CRYPTO_MD4 is not set # CONFIG_CRYPTO_MD5 is not set # CONFIG_CRYPTO_MICHAEL_MIC is not set -# CONFIG_CRYPTO_RMD128 is not set +# CONFIG_CRYPTO_POLY1305 is not set # CONFIG_CRYPTO_RMD160 is not set -# CONFIG_CRYPTO_RMD256 is not set -# CONFIG_CRYPTO_RMD320 is not set # CONFIG_CRYPTO_SHA1 is not set # CONFIG_CRYPTO_SHA256 is not set # CONFIG_CRYPTO_SHA512 is not set # CONFIG_CRYPTO_SHA3 is not set -# CONFIG_CRYPTO_SM3 is not set +# CONFIG_CRYPTO_SM3_GENERIC is not set # CONFIG_CRYPTO_STREEBOG is not set -# CONFIG_CRYPTO_TGR192 is not set +# CONFIG_CRYPTO_VMAC is not set # CONFIG_CRYPTO_WP512 is not set +# CONFIG_CRYPTO_XCBC is not set +# CONFIG_CRYPTO_XXHASH is not set +# end of Hashes, digests, and MACs # -# Ciphers +# CRCs (cyclic redundancy checks) # -# CONFIG_CRYPTO_AES is not set -# CONFIG_CRYPTO_AES_TI is not set -# CONFIG_CRYPTO_BLOWFISH is not set -# CONFIG_CRYPTO_CAMELLIA is not set -# CONFIG_CRYPTO_CAST5 is not set -# CONFIG_CRYPTO_CAST6 is not set -# CONFIG_CRYPTO_DES is not set -# CONFIG_CRYPTO_FCRYPT is not set -# CONFIG_CRYPTO_SALSA20 is not set -# CONFIG_CRYPTO_CHACHA20 is not set -# CONFIG_CRYPTO_SERPENT is not set -# CONFIG_CRYPTO_SM4 is not set -# CONFIG_CRYPTO_TWOFISH is not set +CONFIG_CRYPTO_CRC32C=y +# CONFIG_CRYPTO_CRC32 is not set +# CONFIG_CRYPTO_CRCT10DIF is not set +# end of CRCs (cyclic redundancy checks) # # Compression @@ -4025,25 +4276,44 @@ CONFIG_CRYPTO_LZO=y # CONFIG_CRYPTO_LZ4 is not set # CONFIG_CRYPTO_LZ4HC is not set CONFIG_CRYPTO_ZSTD=y +# end of Compression # -# Random Number Generation +# Random number generation # # CONFIG_CRYPTO_ANSI_CPRNG is not set # CONFIG_CRYPTO_DRBG_MENU is not set # CONFIG_CRYPTO_JITTERENTROPY is not set +# end of Random number generation + +# +# Userspace interface +# # CONFIG_CRYPTO_USER_API_HASH is not set # CONFIG_CRYPTO_USER_API_SKCIPHER is not set # CONFIG_CRYPTO_USER_API_RNG is not set # CONFIG_CRYPTO_USER_API_AEAD is not set +# end of Userspace interface + CONFIG_CRYPTO_HASH_INFO=y + +# +# Accelerated Cryptographic Algorithms for CPU (arm) +# +# CONFIG_CRYPTO_POLY1305_ARM is not set +# CONFIG_CRYPTO_BLAKE2S_ARM is not set +# CONFIG_CRYPTO_SHA1_ARM is not set +# CONFIG_CRYPTO_SHA256_ARM is not set +# CONFIG_CRYPTO_SHA512_ARM is not set +# CONFIG_CRYPTO_AES_ARM is not set +# CONFIG_CRYPTO_CHACHA20_NEON is not set +# end of Accelerated Cryptographic Algorithms for CPU (arm) + # CONFIG_CRYPTO_HW is not set -# CONFIG_ASYMMETRIC_KEY_TYPE is not set # # Certificates for signature checking # -# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set # end of Certificates for signature checking # @@ -4065,18 +4335,20 @@ CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y # # Crypto library routines # +CONFIG_CRYPTO_LIB_UTILS=y CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y # CONFIG_CRYPTO_LIB_CHACHA is not set # CONFIG_CRYPTO_LIB_CURVE25519 is not set CONFIG_CRYPTO_LIB_POLY1305_RSIZE=9 # CONFIG_CRYPTO_LIB_POLY1305 is not set # CONFIG_CRYPTO_LIB_CHACHA20POLY1305 is not set +CONFIG_CRYPTO_LIB_SHA1=y # end of Crypto library routines -CONFIG_LIB_MEMNEQ=y # CONFIG_CRC_CCITT is not set CONFIG_CRC16=y # CONFIG_CRC_T10DIF is not set +# CONFIG_CRC64_ROCKSOFT is not set # CONFIG_CRC_ITU_T is not set CONFIG_CRC32=y # CONFIG_CRC32_SELFTEST is not set @@ -4096,6 +4368,7 @@ CONFIG_ZLIB_DEFLATE=y CONFIG_LZO_COMPRESS=y CONFIG_LZO_DECOMPRESS=y CONFIG_LZ4_DECOMPRESS=y +CONFIG_ZSTD_COMMON=y CONFIG_ZSTD_COMPRESS=y CONFIG_ZSTD_DECOMPRESS=y CONFIG_XZ_DEC=y @@ -4105,6 +4378,7 @@ CONFIG_XZ_DEC=y CONFIG_XZ_DEC_ARM=y CONFIG_XZ_DEC_ARMTHUMB=y # CONFIG_XZ_DEC_SPARC is not set +# CONFIG_XZ_DEC_MICROLZMA is not set CONFIG_XZ_DEC_BCJ=y # CONFIG_XZ_DEC_TEST is not set CONFIG_DECOMPRESS_GZIP=y @@ -4115,7 +4389,7 @@ CONFIG_DECOMPRESS_LZO=y CONFIG_DECOMPRESS_LZ4=y CONFIG_DECOMPRESS_ZSTD=y CONFIG_GENERIC_ALLOCATOR=y -CONFIG_ASSOCIATIVE_ARRAY=y +CONFIG_XARRAY_MULTI=y CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT_MAP=y CONFIG_HAS_DMA=y @@ -4124,8 +4398,9 @@ CONFIG_NEED_DMA_MAP_STATE=y CONFIG_DMA_DECLARE_COHERENT=y CONFIG_ARCH_HAS_SETUP_DMA_OPS=y CONFIG_ARCH_HAS_TEARDOWN_DMA_OPS=y +CONFIG_ARCH_HAS_SYNC_DMA_FOR_DEVICE=y +CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU=y CONFIG_DMA_NONCOHERENT_MMAP=y -CONFIG_DMA_REMAP=y CONFIG_DMA_CMA=y # CONFIG_DMA_PERNUMA_CMA is not set @@ -4144,12 +4419,11 @@ CONFIG_DQL=y CONFIG_NLATTR=y # CONFIG_IRQ_POLL is not set CONFIG_LIBFDT=y -CONFIG_OID_REGISTRY=y -CONFIG_SG_POOL=y CONFIG_SBITMAP=y -# CONFIG_STRING_SELFTEST is not set # end of Library routines +CONFIG_GENERIC_LIB_DEVMEM_IS_ALLOWED=y + # # Kernel hacking # @@ -4158,35 +4432,36 @@ CONFIG_SBITMAP=y # printk and dmesg options # CONFIG_PRINTK_TIME=y -# CONFIG_PRINTK_TIME_FROM_ARM_ARCH_TIMER is not set +CONFIG_PRINTK_TIME_FROM_ARM_ARCH_TIMER=y # CONFIG_PRINTK_CALLER is not set -CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 -CONFIG_CONSOLE_LOGLEVEL_QUIET=4 -CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 +# CONFIG_STACKTRACE_BUILD_ID is not set +CONFIG_CONSOLE_LOGLEVEL_DEFAULT=5 +CONFIG_CONSOLE_LOGLEVEL_QUIET=5 +CONFIG_MESSAGE_LOGLEVEL_DEFAULT=5 # CONFIG_BOOT_PRINTK_DELAY is not set # CONFIG_DYNAMIC_DEBUG is not set # CONFIG_DYNAMIC_DEBUG_CORE is not set CONFIG_SYMBOLIC_ERRNAME=y # end of printk and dmesg options +CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_MISC is not set + # # Compile-time checks and compiler options # -CONFIG_DEBUG_INFO=y -# CONFIG_DEBUG_INFO_REDUCED is not set -# CONFIG_DEBUG_INFO_COMPRESSED is not set -# CONFIG_DEBUG_INFO_SPLIT is not set +CONFIG_AS_HAS_NON_CONST_LEB128=y +CONFIG_DEBUG_INFO_NONE=y +# CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT is not set # CONFIG_DEBUG_INFO_DWARF4 is not set -# CONFIG_DEBUG_INFO_BTF is not set -# CONFIG_GDB_SCRIPTS is not set -CONFIG_ENABLE_MUST_CHECK=y +# CONFIG_DEBUG_INFO_DWARF5 is not set CONFIG_FRAME_WARN=1024 # CONFIG_STRIP_ASM_SYMS is not set # CONFIG_READABLE_ASM is not set # CONFIG_HEADERS_INSTALL is not set # CONFIG_DEBUG_SECTION_MISMATCH is not set CONFIG_SECTION_MISMATCH_WARN_ONLY=y -# CONFIG_DEBUG_FORCE_FUNCTION_ALIGN_32B is not set +# CONFIG_VMLINUX_MAP is not set # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set # end of Compile-time checks and compiler options @@ -4194,30 +4469,31 @@ CONFIG_SECTION_MISMATCH_WARN_ONLY=y # Generic Kernel Debugging Instruments # # CONFIG_MAGIC_SYSRQ is not set -CONFIG_DEBUG_FS=y -CONFIG_DEBUG_FS_ALLOW_ALL=y -# CONFIG_DEBUG_FS_DISALLOW_MOUNT is not set -# CONFIG_DEBUG_FS_ALLOW_NONE is not set +# CONFIG_DEBUG_FS is not set CONFIG_HAVE_ARCH_KGDB=y # CONFIG_KGDB is not set # CONFIG_UBSAN is not set CONFIG_HAVE_KCSAN_COMPILER=y # end of Generic Kernel Debugging Instruments -CONFIG_DEBUG_KERNEL=y -# CONFIG_DEBUG_MISC is not set +# +# Networking Debugging +# +# CONFIG_NET_DEV_REFCNT_TRACKER is not set +# CONFIG_NET_NS_REFCNT_TRACKER is not set +# CONFIG_DEBUG_NET is not set +# end of Networking Debugging # # Memory Debugging # # CONFIG_PAGE_EXTENSION is not set # CONFIG_DEBUG_PAGEALLOC is not set +# CONFIG_SLUB_DEBUG is not set # CONFIG_PAGE_OWNER is not set -# CONFIG_PAGE_PINNER is not set # CONFIG_PAGE_POISONING is not set # CONFIG_DEBUG_WX is not set # CONFIG_DEBUG_OBJECTS is not set -# CONFIG_SLUB_STATS is not set CONFIG_HAVE_DEBUG_KMEMLEAK=y # CONFIG_DEBUG_KMEMLEAK is not set # CONFIG_DEBUG_STACK_USAGE is not set @@ -4226,8 +4502,13 @@ CONFIG_HAVE_DEBUG_KMEMLEAK=y CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y # CONFIG_DEBUG_VIRTUAL is not set # CONFIG_DEBUG_MEMORY_INIT is not set +CONFIG_HAVE_ARCH_KASAN=y +CONFIG_HAVE_ARCH_KASAN_VMALLOC=y CONFIG_CC_HAS_KASAN_GENERIC=y CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y +# CONFIG_KASAN is not set +CONFIG_HAVE_ARCH_KFENCE=y +# CONFIG_KFENCE is not set # end of Memory Debugging # CONFIG_DEBUG_SHIRQ is not set @@ -4241,6 +4522,7 @@ CONFIG_PANIC_TIMEOUT=0 # CONFIG_SOFTLOCKUP_DETECTOR is not set # CONFIG_DETECT_HUNG_TASK is not set # CONFIG_WQ_WATCHDOG is not set +# CONFIG_TEST_LOCKUP is not set # end of Debug Oops, Lockups and Hangs # @@ -4271,6 +4553,7 @@ CONFIG_LOCK_DEBUGGING_SUPPORT=y # CONFIG_SCF_TORTURE_TEST is not set # end of Lock Debugging (spinlocks, mutexes, etc...) +# CONFIG_DEBUG_IRQFLAGS is not set # CONFIG_STACKTRACE is not set # CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set # CONFIG_DEBUG_KOBJECT is not set @@ -4283,6 +4566,7 @@ CONFIG_LOCK_DEBUGGING_SUPPORT=y # CONFIG_DEBUG_SG is not set # CONFIG_DEBUG_NOTIFIERS is not set # CONFIG_BUG_ON_DATA_CORRUPTION is not set +# CONFIG_DEBUG_MAPLE_TREE is not set # end of Debug kernel data structures # CONFIG_DEBUG_CREDENTIALS is not set @@ -4298,19 +4582,18 @@ CONFIG_LOCK_DEBUGGING_SUPPORT=y # end of RCU Debugging # CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set -# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set # CONFIG_LATENCYTOP is not set CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y CONFIG_HAVE_DYNAMIC_FTRACE=y CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y CONFIG_HAVE_SYSCALL_TRACEPOINTS=y CONFIG_HAVE_C_RECORDMCOUNT=y -# CONFIG_TRACEFS_DISABLE_AUTOMOUNT is not set +CONFIG_HAVE_BUILDTIME_MCOUNT_SORT=y CONFIG_TRACING_SUPPORT=y # CONFIG_FTRACE is not set # CONFIG_SAMPLES is not set -CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y # CONFIG_STRICT_DEVMEM is not set # @@ -4319,6 +4602,7 @@ CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y # CONFIG_ARM_PTDUMP_DEBUGFS is not set CONFIG_UNWINDER_ARM=y CONFIG_ARM_UNWIND=y +# CONFIG_BACKTRACE_VERBOSE is not set # CONFIG_DEBUG_USER is not set # CONFIG_DEBUG_LL is not set CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S" @@ -4337,6 +4621,12 @@ CONFIG_ARCH_HAS_KCOV=y CONFIG_CC_HAS_SANCOV_TRACE_PC=y # CONFIG_KCOV is not set # CONFIG_RUNTIME_TESTING_MENU is not set +CONFIG_ARCH_USE_MEMTEST=y # CONFIG_MEMTEST is not set # end of Kernel Testing and Coverage + +# +# Rust hacking +# +# end of Rust hacking # end of Kernel hacking diff --git a/ext_tree/board/luckfox/dts_max/rv1106.dtsi b/ext_tree/board/luckfox/dts_max/rv1106.dtsi index e1e0fa12..90b3397a 100644 --- a/ext_tree/board/luckfox/dts_max/rv1106.dtsi +++ b/ext_tree/board/luckfox/dts_max/rv1106.dtsi @@ -1464,7 +1464,7 @@ mmc0 { interrupts = ; resets = <&cru SRST_A_USBOTG>; reset-names = "usb3-otg"; - dr_mode = "host"; + dr_mode = "otg"; maximum-speed = "high-speed"; phys = <&u2phy_otg>; phy-names = "usb2-phy"; @@ -1476,7 +1476,7 @@ mmc0 { snps,dis-tx-ipgap-linecheck-quirk; snps,usb2-gadget-lpm-disable; snps,usb2-lpm-disable; - status = "disabled"; + status = "okay"; }; }; diff --git a/ext_tree/board/luckfox/dts_max/rv1106_512_ext-ipc.dtsi b/ext_tree/board/luckfox/dts_max/rv1106_512_ext-ipc.dtsi index 8d24a4b8..931ee4c1 100644 --- a/ext_tree/board/luckfox/dts_max/rv1106_512_ext-ipc.dtsi +++ b/ext_tree/board/luckfox/dts_max/rv1106_512_ext-ipc.dtsi @@ -227,168 +227,11 @@ i2s80:sound { status = "disable"; }; -&csi2_dphy0 { - status = "disable"; - - ports { - #address-cells = <1>; - #size-cells = <0>; - - port@0 { - reg = <0>; - #address-cells = <1>; - #size-cells = <0>; - - csi_dphy_input0: endpoint@0 { - reg = <0>; - remote-endpoint = <&sc3336_out>; - data-lanes = <1 2>; - }; - - csi_dphy_input1: endpoint@1 { - reg = <1>; - remote-endpoint = <&sc4336_out>; - data-lanes = <1 2>; - }; - - csi_dphy_input2: endpoint@2 { - reg = <2>; - remote-endpoint = <&sc530ai_out>; - data-lanes = <1 2>; - }; - }; - - port@1 { - reg = <1>; - #address-cells = <1>; - #size-cells = <0>; - - csi_dphy_output: endpoint@0 { - reg = <0>; - remote-endpoint = <&mipi_csi2_input>; - }; - }; - }; -}; - -&i2c4 { - status = "disable"; - clock-frequency = <400000>; - pinctrl-names = "default"; - pinctrl-0 = <&i2c4m2_xfer>; - - sc3336: sc3336@30 { - compatible = "smartsens,sc3336"; - status = "disable"; - reg = <0x30>; - clocks = <&cru MCLK_REF_MIPI0>; - clock-names = "xvclk"; - pwdn-gpios = <&gpio3 RK_PC5 GPIO_ACTIVE_HIGH>; - pinctrl-names = "default"; - pinctrl-0 = <&mipi_refclk_out0>; - rockchip,camera-module-index = <0>; - rockchip,camera-module-facing = "back"; - rockchip,camera-module-name = "CMK-OT2119-PC1"; - rockchip,camera-module-lens-name = "30IRC-F16"; - port { - sc3336_out: endpoint { - remote-endpoint = <&csi_dphy_input0>; - data-lanes = <1 2>; - }; - }; - }; - - sc4336: sc4336@30 { - compatible = "smartsens,sc4336"; - status = "disable"; - reg = <0x30>; - clocks = <&cru MCLK_REF_MIPI0>; - clock-names = "xvclk"; - pwdn-gpios = <&gpio3 RK_PC5 GPIO_ACTIVE_HIGH>; - pinctrl-names = "default"; - pinctrl-0 = <&mipi_refclk_out0>; - rockchip,camera-module-index = <0>; - rockchip,camera-module-facing = "back"; - rockchip,camera-module-name = "OT01"; - rockchip,camera-module-lens-name = "40IRC_F16"; - port { - sc4336_out: endpoint { - remote-endpoint = <&csi_dphy_input1>; - data-lanes = <1 2>; - }; - }; - }; - - sc530ai: sc530ai@30 { - compatible = "smartsens,sc530ai"; - status = "disable"; - reg = <0x30>; - clocks = <&cru MCLK_REF_MIPI0>; - clock-names = "xvclk"; - pwdn-gpios = <&gpio3 RK_PC5 GPIO_ACTIVE_HIGH>; - pinctrl-names = "default"; - pinctrl-0 = <&mipi_refclk_out0>; - rockchip,camera-module-index = <0>; - rockchip,camera-module-facing = "back"; - rockchip,camera-module-name = "CMK-OT2115-PC1"; - rockchip,camera-module-lens-name = "30IRC-F16"; - port { - sc530ai_out: endpoint { - remote-endpoint = <&csi_dphy_input2>; - data-lanes = <1 2>; - }; - }; - }; -}; - -&mipi0_csi2 { - status = "disable"; - - ports { - #address-cells = <1>; - #size-cells = <0>; - - port@0 { - reg = <0>; - #address-cells = <1>; - #size-cells = <0>; - - mipi_csi2_input: endpoint@1 { - reg = <1>; - remote-endpoint = <&csi_dphy_output>; - }; - }; - - port@1 { - reg = <1>; - #address-cells = <1>; - #size-cells = <0>; - - mipi_csi2_output: endpoint@0 { - reg = <0>; - remote-endpoint = <&cif_mipi_in>; - }; - }; - }; -}; &rkcif { status = "disable"; }; -&rkcif_mipi_lvds { - status = "disable"; - - pinctrl-names = "default"; - pinctrl-0 = <&mipi_pins>; - port { - /* MIPI CSI-2 endpoint */ - cif_mipi_in: endpoint { - remote-endpoint = <&mipi_csi2_output>; - }; - }; -}; - &rkcif_mipi_lvds_sditf { status = "disable"; diff --git a/ext_tree/board/luckfox/dts_max/rv1106_512_ext.dts b/ext_tree/board/luckfox/dts_max/rv1106_512_ext.dts index cb2b05de..0f562c5f 100644 --- a/ext_tree/board/luckfox/dts_max/rv1106_512_ext.dts +++ b/ext_tree/board/luckfox/dts_max/rv1106_512_ext.dts @@ -73,7 +73,7 @@ /**********USB**********/ &usbdrd_dwc3 { status = "okay"; - dr_mode = "host"; + dr_mode = "otg"; }; /**********I2C**********/ diff --git a/ext_tree/board/luckfox/dts_max/rv1106_ext-ipc.dtsi b/ext_tree/board/luckfox/dts_max/rv1106_ext-ipc.dtsi index 53548b63..701e0694 100644 --- a/ext_tree/board/luckfox/dts_max/rv1106_ext-ipc.dtsi +++ b/ext_tree/board/luckfox/dts_max/rv1106_ext-ipc.dtsi @@ -229,165 +229,13 @@ i2s80:sound { &csi2_dphy0 { status = "disable"; - - ports { - #address-cells = <1>; - #size-cells = <0>; - - port@0 { - reg = <0>; - #address-cells = <1>; - #size-cells = <0>; - - csi_dphy_input0: endpoint@0 { - reg = <0>; - remote-endpoint = <&sc3336_out>; - data-lanes = <1 2>; - }; - - csi_dphy_input1: endpoint@1 { - reg = <1>; - remote-endpoint = <&sc4336_out>; - data-lanes = <1 2>; - }; - - csi_dphy_input2: endpoint@2 { - reg = <2>; - remote-endpoint = <&sc530ai_out>; - data-lanes = <1 2>; - }; - }; - - port@1 { - reg = <1>; - #address-cells = <1>; - #size-cells = <0>; - - csi_dphy_output: endpoint@0 { - reg = <0>; - remote-endpoint = <&mipi_csi2_input>; - }; - }; - }; -}; - -&i2c4 { - status = "disable"; - clock-frequency = <400000>; - pinctrl-names = "default"; - pinctrl-0 = <&i2c4m2_xfer>; - - sc3336: sc3336@30 { - compatible = "smartsens,sc3336"; - status = "disable"; - reg = <0x30>; - clocks = <&cru MCLK_REF_MIPI0>; - clock-names = "xvclk"; - pwdn-gpios = <&gpio3 RK_PC5 GPIO_ACTIVE_HIGH>; - pinctrl-names = "default"; - pinctrl-0 = <&mipi_refclk_out0>; - rockchip,camera-module-index = <0>; - rockchip,camera-module-facing = "back"; - rockchip,camera-module-name = "CMK-OT2119-PC1"; - rockchip,camera-module-lens-name = "30IRC-F16"; - port { - sc3336_out: endpoint { - remote-endpoint = <&csi_dphy_input0>; - data-lanes = <1 2>; - }; - }; - }; - - sc4336: sc4336@30 { - compatible = "smartsens,sc4336"; - status = "disable"; - reg = <0x30>; - clocks = <&cru MCLK_REF_MIPI0>; - clock-names = "xvclk"; - pwdn-gpios = <&gpio3 RK_PC5 GPIO_ACTIVE_HIGH>; - pinctrl-names = "default"; - pinctrl-0 = <&mipi_refclk_out0>; - rockchip,camera-module-index = <0>; - rockchip,camera-module-facing = "back"; - rockchip,camera-module-name = "OT01"; - rockchip,camera-module-lens-name = "40IRC_F16"; - port { - sc4336_out: endpoint { - remote-endpoint = <&csi_dphy_input1>; - data-lanes = <1 2>; - }; - }; - }; - - sc530ai: sc530ai@30 { - compatible = "smartsens,sc530ai"; - status = "disable"; - reg = <0x30>; - clocks = <&cru MCLK_REF_MIPI0>; - clock-names = "xvclk"; - pwdn-gpios = <&gpio3 RK_PC5 GPIO_ACTIVE_HIGH>; - pinctrl-names = "default"; - pinctrl-0 = <&mipi_refclk_out0>; - rockchip,camera-module-index = <0>; - rockchip,camera-module-facing = "back"; - rockchip,camera-module-name = "CMK-OT2115-PC1"; - rockchip,camera-module-lens-name = "30IRC-F16"; - port { - sc530ai_out: endpoint { - remote-endpoint = <&csi_dphy_input2>; - data-lanes = <1 2>; - }; - }; - }; }; -&mipi0_csi2 { - status = "disable"; - - ports { - #address-cells = <1>; - #size-cells = <0>; - - port@0 { - reg = <0>; - #address-cells = <1>; - #size-cells = <0>; - - mipi_csi2_input: endpoint@1 { - reg = <1>; - remote-endpoint = <&csi_dphy_output>; - }; - }; - - port@1 { - reg = <1>; - #address-cells = <1>; - #size-cells = <0>; - - mipi_csi2_output: endpoint@0 { - reg = <0>; - remote-endpoint = <&cif_mipi_in>; - }; - }; - }; -}; &rkcif { status = "disable"; }; -&rkcif_mipi_lvds { - status = "disable"; - - pinctrl-names = "default"; - pinctrl-0 = <&mipi_pins>; - port { - /* MIPI CSI-2 endpoint */ - cif_mipi_in: endpoint { - remote-endpoint = <&mipi_csi2_output>; - }; - }; -}; &rkcif_mipi_lvds_sditf { status = "disable"; diff --git a/ext_tree/board/luckfox/dts_max/rv1106_ext.dts b/ext_tree/board/luckfox/dts_max/rv1106_ext.dts index e48fa980..de3183ae 100644 --- a/ext_tree/board/luckfox/dts_max/rv1106_ext.dts +++ b/ext_tree/board/luckfox/dts_max/rv1106_ext.dts @@ -11,6 +11,10 @@ / { model = "Luckfox Pico Max"; compatible = "rockchip,rv1106"; + + nvmem-cells = <&otp_id>; + nvmem-cell-names = "serial-number"; + serial-number; }; @@ -73,7 +77,7 @@ /**********USB**********/ &usbdrd_dwc3 { status = "okay"; - dr_mode = "host"; + dr_mode = "otg"; }; /**********I2C**********/ diff --git a/ext_tree/board/luckfox/dts_max/rv1106_pll-ipc.dtsi b/ext_tree/board/luckfox/dts_max/rv1106_pll-ipc.dtsi index 12009a27..ec2c8526 100644 --- a/ext_tree/board/luckfox/dts_max/rv1106_pll-ipc.dtsi +++ b/ext_tree/board/luckfox/dts_max/rv1106_pll-ipc.dtsi @@ -6,7 +6,7 @@ / { chosen { - bootargs = "earlycon=uart8250,mmio32,0xff4c0000 console=ttyFIQ0 root=/dev/mmcblk1p7 rootwait snd_soc_core.prealloc_buffer_size_kbytes=1024 coherent_pool=2M"; + bootargs = "root=/dev/mtdblock4 rootfstype=squashfs ro rootwait console=ttyS0,115200n8 noinitrd init=/linuxrc quiet loglevel=1 fastboot earlycon=uart8250,mmio32,0xff4c0000 console=ttyFIQ0 snd_soc_core.prealloc_buffer_size_kbytes=1024 coherent_pool=2M"; }; @@ -22,16 +22,16 @@ clocks = <&cru MCLK_I2S0_8CH_TX>, <&cru MCLK_I2S0_8CH_RX>, <&cru HCLK_I2S0>, <&cru CLK_I2S0_8CH_TX_SRC>, <&cru CLK_I2S0_8CH_RX_SRC>, <&cru PLL_GPLL>, <&cru PLL_GPLL>; - + clock-names = "mclk_tx", "mclk_rx", "hclk", "mclk_tx_src", "mclk_rx_src", "mclk_root0", "mclk_root1"; - - rockchip,mclk-calibrate; - assigned-clocks = <&cru PLL_GPLL>, <&cru CLK_I2S0_8CH_TX_SRC>, <&cru CLK_I2S0_8CH_RX_SRC>, <&cru I2S0_8CH_MCLKOUT>; - assigned-clock-parents = <0>, <&cru PLL_GPLL>, <&cru PLL_GPLL>, <&cru CLK_I2S0_8CH_TX_SRC>; - assigned-clock-rates = <983040000>, <0>, <0>, <0>; + rockchip,mclk-calibrate; + rockchip,no-fractional-divider; + assigned-clocks = <&cru PLL_GPLL>, <&cru CLK_I2S0_8CH_TX_SRC>, <&cru CLK_I2S0_8CH_RX_SRC>, <&cru CLK_I2S0_8CH_TX>, <&cru I2S0_8CH_MCLKOUT>; + assigned-clock-parents = <0>, <&cru PLL_GPLL>, <&cru PLL_GPLL>, <&cru CLK_I2S0_8CH_TX_SRC>, <&cru MCLK_I2S0_8CH_TX>; + assigned-clock-rates = <983040000>, <0>, <0>, <0>, <0>; dmas = <&dmac 22>, <&dmac 21>; dma-names = "tx", "rx"; resets = <&cru SRST_M_I2S0_8CH_TX>, <&cru SRST_M_I2S0_8CH_RX>; @@ -103,8 +103,6 @@ i2s80:sound { /*************EXT_AUDIO_CODEC_ALSA_CARD_END***************/ - - /***************OTHER_DEVICES*********************/ vcc_1v8: vcc-1v8 { @@ -153,192 +151,16 @@ i2s80:sound { status = "disable"; }; -&csi2_dphy0 { - status = "disable"; - - ports { - #address-cells = <1>; - #size-cells = <0>; - - port@0 { - reg = <0>; - #address-cells = <1>; - #size-cells = <0>; - - csi_dphy_input0: endpoint@0 { - reg = <0>; - remote-endpoint = <&sc3336_out>; - data-lanes = <1 2>; - }; - - csi_dphy_input1: endpoint@1 { - reg = <1>; - remote-endpoint = <&sc4336_out>; - data-lanes = <1 2>; - }; - - csi_dphy_input2: endpoint@2 { - reg = <2>; - remote-endpoint = <&sc530ai_out>; - data-lanes = <1 2>; - }; - }; - - port@1 { - reg = <1>; - #address-cells = <1>; - #size-cells = <0>; - - csi_dphy_output: endpoint@0 { - reg = <0>; - remote-endpoint = <&mipi_csi2_input>; - }; - }; - }; -}; - -&i2c4 { - status = "disable"; - clock-frequency = <400000>; - pinctrl-names = "default"; - pinctrl-0 = <&i2c4m2_xfer>; - - sc3336: sc3336@30 { - compatible = "smartsens,sc3336"; - status = "disable"; - reg = <0x30>; - clocks = <&cru MCLK_REF_MIPI0>; - clock-names = "xvclk"; - pwdn-gpios = <&gpio3 RK_PC5 GPIO_ACTIVE_HIGH>; - pinctrl-names = "default"; - pinctrl-0 = <&mipi_refclk_out0>; - rockchip,camera-module-index = <0>; - rockchip,camera-module-facing = "back"; - rockchip,camera-module-name = "CMK-OT2119-PC1"; - rockchip,camera-module-lens-name = "30IRC-F16"; - port { - sc3336_out: endpoint { - remote-endpoint = <&csi_dphy_input0>; - data-lanes = <1 2>; - }; - }; - }; - - sc4336: sc4336@30 { - compatible = "smartsens,sc4336"; - status = "disable"; - reg = <0x30>; - clocks = <&cru MCLK_REF_MIPI0>; - clock-names = "xvclk"; - pwdn-gpios = <&gpio3 RK_PC5 GPIO_ACTIVE_HIGH>; - pinctrl-names = "default"; - pinctrl-0 = <&mipi_refclk_out0>; - rockchip,camera-module-index = <0>; - rockchip,camera-module-facing = "back"; - rockchip,camera-module-name = "OT01"; - rockchip,camera-module-lens-name = "40IRC_F16"; - port { - sc4336_out: endpoint { - remote-endpoint = <&csi_dphy_input1>; - data-lanes = <1 2>; - }; - }; - }; - - sc530ai: sc530ai@30 { - compatible = "smartsens,sc530ai"; - status = "disable"; - reg = <0x30>; - clocks = <&cru MCLK_REF_MIPI0>; - clock-names = "xvclk"; - pwdn-gpios = <&gpio3 RK_PC5 GPIO_ACTIVE_HIGH>; - pinctrl-names = "default"; - pinctrl-0 = <&mipi_refclk_out0>; - rockchip,camera-module-index = <0>; - rockchip,camera-module-facing = "back"; - rockchip,camera-module-name = "CMK-OT2115-PC1"; - rockchip,camera-module-lens-name = "30IRC-F16"; - port { - sc530ai_out: endpoint { - remote-endpoint = <&csi_dphy_input2>; - data-lanes = <1 2>; - }; - }; - }; -}; - -&mipi0_csi2 { - status = "disable"; - - ports { - #address-cells = <1>; - #size-cells = <0>; - - port@0 { - reg = <0>; - #address-cells = <1>; - #size-cells = <0>; - - mipi_csi2_input: endpoint@1 { - reg = <1>; - remote-endpoint = <&csi_dphy_output>; - }; - }; - - port@1 { - reg = <1>; - #address-cells = <1>; - #size-cells = <0>; - - mipi_csi2_output: endpoint@0 { - reg = <0>; - remote-endpoint = <&cif_mipi_in>; - }; - }; - }; -}; &rkcif { status = "disable"; }; -&rkcif_mipi_lvds { - status = "disable"; - - pinctrl-names = "default"; - pinctrl-0 = <&mipi_pins>; - port { - /* MIPI CSI-2 endpoint */ - cif_mipi_in: endpoint { - remote-endpoint = <&mipi_csi2_output>; - }; - }; -}; - -&rkcif_mipi_lvds_sditf { - status = "disable"; - - port { - /* MIPI CSI-2 endpoint */ - mipi_lvds_sditf: endpoint { - remote-endpoint = <&isp_in>; - }; - }; -}; &rkisp { status = "disable"; }; -&rkisp_vir0 { - status = "disable"; - - port@0 { - isp_in: endpoint { - remote-endpoint = <&mipi_lvds_sditf>; - }; - }; -}; &saradc { status = "disable"; @@ -350,4 +172,17 @@ i2s80:sound { status = "disable"; }; +/***************USB_GADGET_UAC2_CONFIGURATION*********************/ + +&usbdrd_dwc3 { + dr_mode = "otg"; + status = "okay"; +}; + +&u2phy_otg { + status = "okay"; +}; + +/***************END_USB_GADGET_UAC2_CONFIGURATION***************/ + diff --git a/ext_tree/board/luckfox/dts_max/rv1106_pll.dts b/ext_tree/board/luckfox/dts_max/rv1106_pll.dts index 77c0b370..561c4b1c 100644 --- a/ext_tree/board/luckfox/dts_max/rv1106_pll.dts +++ b/ext_tree/board/luckfox/dts_max/rv1106_pll.dts @@ -11,6 +11,10 @@ / { model = "Luckfox Pico Max"; compatible = "rockchip,rv1106"; + + nvmem-cells = <&otp_id>; + nvmem-cell-names = "serial-number"; + serial-number; }; @@ -72,7 +76,7 @@ /**********USB**********/ &usbdrd_dwc3 { status = "okay"; - dr_mode = "host"; + dr_mode = "otg"; }; /**********I2C**********/ diff --git a/ext_tree/board/luckfox/rootfs_overlay/etc/asound.bridge b/ext_tree/board/luckfox/rootfs_overlay/etc/asound.bridge new file mode 100644 index 00000000..c2ef69dc --- /dev/null +++ b/ext_tree/board/luckfox/rootfs_overlay/etc/asound.bridge @@ -0,0 +1,20 @@ +pcm.!default { + type route + slave.pcm { + type multi + slaves.i2s.pcm "hw:0,0" + slaves.i2s.channels 2 + slaves.loop.pcm "hw:Loopback,0" + slaves.loop.channels 2 + bindings.0.slave i2s bindings.0.channel 0 + bindings.1.slave i2s bindings.1.channel 1 + bindings.2.slave loop bindings.2.channel 0 + bindings.3.slave loop bindings.3.channel 1 + } + slave.channels 4 + ttable.0.0 1 + ttable.1.1 1 + ttable.0.2 1 + ttable.1.3 1 +} +ctl.!default { type hw; card 0 } diff --git a/ext_tree/board/luckfox/rootfs_overlay/etc/init.d/S00usbmodules b/ext_tree/board/luckfox/rootfs_overlay/etc/init.d/S00usbmodules new file mode 100755 index 00000000..cd844751 --- /dev/null +++ b/ext_tree/board/luckfox/rootfs_overlay/etc/init.d/S00usbmodules @@ -0,0 +1,13 @@ +#!/bin/sh + +if [ -f /etc/usb_to_i2s.state ]; then + # USBtoI2S mode enabled - load gadget modules + insmod /lib/modules/dwc3_gadget.ko + modprobe dwc3-of-simple +else + # USBtoI2S mode disabled - load host modules + modprobe dwc3 + modprobe dwc3-of-simple +fi + +exit 0 diff --git a/ext_tree/board/luckfox/rootfs_overlay/etc/init.d/S01RkLunch b/ext_tree/board/luckfox/rootfs_overlay/etc/init.d/S01RkLunch index 6c380c49..5a09dc13 100755 --- a/ext_tree/board/luckfox/rootfs_overlay/etc/init.d/S01RkLunch +++ b/ext_tree/board/luckfox/rootfs_overlay/etc/init.d/S01RkLunch @@ -12,32 +12,30 @@ MIXER=$(amixer 2>/dev/null | awk ' exit } ') -# Fallback to first available control if none found [ -z "$MIXER" ] && MIXER=$(amixer 2>/dev/null | awk -F "'" 'NR==1 {print $2; exit}') echo 1 > /sys/devices/platform/ffae0000.i2s/mute [ -n "$MIXER" ] && /usr/bin/amixer set "$MIXER" mute 2>/dev/null - if [ -f /data/ethaddr.txt ]; then - MAC=`cat /data/ethaddr.txt` - else - OUI="BE10E0" - SERIAL=$(grep -o 'Serial[[:space:]]*:[[:space:]]*[[:xdigit:]]*' /proc/cpuinfo | awk '{print $NF}') - MAC_PART=$(echo "$SERIAL" | tail -c 7) - MAC="${OUI}${MAC_PART}" - MAC=$(echo "$MAC" | sed 's/\(..\)\(..\)\(..\)\(..\)\(..\)\(..\)/\1:\2:\3:\4:\5:\6/') - MAC=$(echo "$MAC" | tr '[:lower:]' '[:upper:]') - echo $MAC > /data/ethaddr.txt - chattr +i /data/ethaddr.txt - sync - fi +# MAC address generation from CPU Serial +if [ -f /data/ethaddr.txt ]; then + MAC=$(cat /data/ethaddr.txt) +else + # Generate MAC from CPU Serial (unique per board) + OUI="BE:10:E0" + SERIAL=$(cat /proc/cpuinfo | awk '/Serial/ {print $NF}') + # Use last 3 bytes of Serial (6 hex chars) + NIC=$(echo "$SERIAL" | tail -c 7) + MAC="${OUI}:${NIC:0:2}:${NIC:2:2}:${NIC:4:2}" + echo $MAC > /data/ethaddr.txt +fi /sbin/ifconfig eth0 down /sbin/ifconfig eth0 hw ether $MAC /sbin/ifconfig eth0 up && /sbin/udhcpc -i eth0 grep MCLK=1024 /etc/i2s.conf && echo 1024 > /sys/devices/platform/ffae0000.i2s/mclk_multiplier -echo 300 > /sys/devices/platform/ffae0000.i2s/postmute_delay_ms +echo 1 > /sys/devices/platform/ffae0000.i2s/postmute_delay_ms PCM_SWAP=$(grep '^PCM_SWAP=' /etc/i2s.conf | cut -d'=' -f2 | tr -d '[:space:]') [ -n "$PCM_SWAP" ] && echo "$PCM_SWAP" > /sys/devices/platform/ffae0000.i2s/pcm_channel_swap || echo 0 > /sys/devices/platform/ffae0000.i2s/pcm_channel_swap @@ -48,17 +46,17 @@ DSD_SWAP=$(grep '^DSD_SWAP=' /etc/i2s.conf | cut -d'=' -f2 | tr -d '[:space:]') FREQ_SWAP=$(grep '^FREQ_SWAP=' /etc/i2s.conf | cut -d'=' -f2 | tr -d '[:space:]') [ -n "$FREQ_SWAP" ] && echo "$FREQ_SWAP" > /sys/devices/platform/ffae0000.i2s/freq_domain_invert || echo 0 > /sys/devices/platform/ffae0000.i2s/freq_domain_invert +# LEFTJUST disabled - driver does not support it yet +# LEFTJUST=$(grep '^LEFTJUST=' /etc/i2s.conf | cut -d'=' -f2 | tr -d '[:space:]') +# [ -n "$LEFTJUST" ] && echo "$LEFTJUST" > /sys/devices/platform/ffae0000.i2s/leftjust || echo 0 > /sys/devices/platform/ffae0000.i2s/leftjust rcS() { for i in /oem/usr/etc/init.d/S??* ;do - - # Ignore dangling symlinks (if any). [ ! -f "$i" ] && continue case "$i" in *.sh) - # Source shell script for speed. ( trap - INT QUIT TSTP set start @@ -66,7 +64,6 @@ rcS() ) ;; *) - # No sh extension, so fork subprocess. $i start ;; esac @@ -75,20 +72,15 @@ rcS() check_linker() { - [ ! -L "$2" ] && ln -sf $1 $2 -} - + [ ! -L "$2" ] && ln -sf $1 $2 } rcS ulimit -c unlimited echo "/data/core-%p-%e" > /proc/sys/kernel/core_pattern -# echo 0 > /sys/devices/platform/rkcif-mipi-lvds/is_use_dummybuf - echo 1 > /proc/sys/vm/overcommit_memory sysctl -p post_chk & - diff --git a/ext_tree/board/luckfox/rootfs_overlay/etc/rc.pure/S95spotify b/ext_tree/board/luckfox/rootfs_overlay/etc/rc.pure/S95spotify index 375f276d..96b79558 100755 --- a/ext_tree/board/luckfox/rootfs_overlay/etc/rc.pure/S95spotify +++ b/ext_tree/board/luckfox/rootfs_overlay/etc/rc.pure/S95spotify @@ -39,8 +39,11 @@ start() { fi NAME=`hostname`_`ifconfig eth0 | awk '/inet addr/{print substr($2,6)}'` - renice -15 $$ - /usr/bin/librespot --cache /tmp --cache-size-limit 64M --bitrate 320 -R 100 --name $NAME > /dev/null 2>&1 & + nice -n -15 /usr/bin/librespot \ + --cache /tmp --cache-size-limit 12M \ + --bitrate 320 \ + --normalisation-gain-type none \ + --name $NAME > /dev/null 2>&1 & sleep 0.5 if [ -f /tmp/mixer_control_cache ]; then MIXER=$(cat /tmp/mixer_control_cache | cut -d, -f1 | tr -d "'") diff --git a/ext_tree/board/luckfox/rootfs_overlay/etc/rc.pure/S98uac2 b/ext_tree/board/luckfox/rootfs_overlay/etc/rc.pure/S98uac2 new file mode 100755 index 00000000..92f16463 --- /dev/null +++ b/ext_tree/board/luckfox/rootfs_overlay/etc/rc.pure/S98uac2 @@ -0,0 +1,142 @@ +#!/bin/sh + +# PureCore UAC2 Gadget Auto-start Script - FULL EMULATION +# Runs last in the boot sequence +# +# EMULATED via configfs: +# ✓ Device Qualifier: 0x00/0x00/0x00 +# ✓ Self-powered, 100mA +# ✓ Minimal string descriptors +# ✓ iConfiguration = 0x00, iFunction = 0x00 +# +# REQUIRE KERNEL PATCHES (f_uac2.c): +# ✗ HIGH BANDWIDTH mode (2x800 vs 1x808) - line 786-827 +# ✗ Lock Delay (0x02, 0x0800) - need configfs attributes +# ✗ Second vendor-specific configuration + +start() { + echo "Starting PureCore UAC2 gadget..." + sleep 2 # Give time for USB initialization + + # Check if UDC is available + if [ ! -d /sys/class/udc ]; then + echo "UDC not available, skipping PureCore gadget" + return 1 + fi + + # Create PureCore gadget + cd /sys/kernel/config/usb_gadget + + # Completely remove old gadget if it exists + if [ -d "purecore" ]; then + cd purecore + echo "" > UDC 2>/dev/null + rm -f configs/c.1/uac2.usb0 2>/dev/null + rm -f configs/c.2/vendor.0 2>/dev/null + rmdir configs/c.1 2>/dev/null + rmdir configs/c.2 2>/dev/null + rmdir functions/uac2.usb0 2>/dev/null + rmdir functions/vendor.0 2>/dev/null + rmdir strings/0x409 2>/dev/null + cd .. + rmdir purecore 2>/dev/null + fi + + mkdir -p purecore + cd purecore + + # Device Descriptor (original PureCore ID) +# echo 0x1209 > idVendor +# echo 0x2468 > idProduct + echo 0x152A > idVendor + echo 0x8852 > idProduct + echo 0x0312 > bcdDevice + echo 0x0200 > bcdUSB + # Standard UAC2: Device Class 0x00 (defined by interfaces) + echo 0x00 > bDeviceClass # Defined by interfaces + echo 0x00 > bDeviceSubClass # Defined by interfaces + echo 0x00 > bDeviceProtocol # Defined by interfaces + echo 64 > bMaxPacketSize0 + + # Device Strings - minimal as in the original + mkdir -p strings/0x409 + echo "PureCore" > strings/0x409/manufacturer + echo "PureCore USB Hi-Resolution Audio" > strings/0x409/product + # Serial number = 0x00 (empty) as in the original + echo "" > strings/0x409/serialnumber + + # UAC2 Function + mkdir -p functions/uac2.usb0 + + # CRITICAL FIX: Stock f_uac2.c has REVERSED naming! + # p_chmask controls EPIN (capture/mic), c_chmask controls EPOUT (playback/speaker) + echo 0 > functions/uac2.usb0/p_chmask # Disable p (actually capture/mic) + echo 255 > functions/uac2.usb0/c_chmask # 8 channels: 0xFF = TDM8 on I2S output + # PCM rates up to 768kHz + native DSD64-512 (for Linux Alt Setting 2) + echo "44100,48000,88200,96000,176400,192000,352800,384000,705600,768000,2822400,5644800,11289600,22579200" > functions/uac2.usb0/c_srate + echo 4 > functions/uac2.usb0/c_ssize + echo 1 > functions/uac2.usb0/c_mute_present + echo 1 > functions/uac2.usb0/c_volume_present + # c_hs_bint=0 allows kernel to auto-select optimal bInterval for DSD512 + # Kernel will choose bInterval=8 for DSD512 to fit in USB 2.0 bandwidth + + # Fix p_volume parameters even though p_chmask=0 (kernel validates all params regardless) + echo 0 > functions/uac2.usb0/p_volume_min + echo 256 > functions/uac2.usb0/p_volume_max + echo 256 > functions/uac2.usb0/p_volume_res + + # IMPORTANT: Set p_srate and p_ssize for capture (UAC2 input from host) + # Even though p_chmask=0, these are required for proper UAC2 function + echo "44100,48000,88200,96000,176400,192000,352800,384000,705600,768000,2822400,5644800,11289600,22579200" > functions/uac2.usb0/p_srate + echo 4 > functions/uac2.usb0/p_ssize + + # CRITICALLY IMPORTANT: Parameters for supporting up to DSD512 + echo 8 > functions/uac2.usb0/req_number # USB request buffers (increased for DSD512) + # fb_max=24 (2.4% overhead) allows DSD512 to fit in USB 2.0 HS bandwidth + # 22579200Hz * 1.024 / 8000 * 2ch * 4bytes = 23138 bytes → needs bInterval=8 + echo 24 > functions/uac2.usb0/fb_max # Async overhead optimized for DSD512 + + # Function name - shown in Windows as device name + echo "PureCore" > functions/uac2.usb0/function_name + + # Configuration 1 - UAC2 Audio (Self-powered) + mkdir -p configs/c.1 + echo 0xC0 > configs/c.1/bmAttributes # Self-powered + echo 100 > configs/c.1/MaxPower # 100mA + # iConfiguration = 0x00 (don't create strings!) + ln -s functions/uac2.usb0 configs/c.1/ + + # Configuration 2 - DISABLED for standard UAC2 (no PureCore driver needed) + # mkdir -p functions/vendor.0 + # mkdir -p configs/c.2 + # echo 0xC0 > configs/c.2/bmAttributes # Self-powered + # echo 100 > configs/c.2/MaxPower # 100mA + # iConfiguration = 0x00 (don't create strings!) + # ln -s functions/vendor.0 configs/c.2/ + + # Enable gadget + ls /sys/class/udc > UDC + + echo "PureCore UAC2 gadget started (8ch TDM, PCM up to 768kHz + DSD512)" +} + +case "$1" in + start) + start + ;; + stop) + echo "Stopping PureCore gadget..." + cd /sys/kernel/config/usb_gadget/purecore 2>/dev/null && echo "" > UDC 2>/dev/null + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 +esac +# Create symlink in init.d (like PureCore) +ln -sf /etc/rc.pure/S98uac2 /etc/init.d/S98uac2 + diff --git a/ext_tree/board/luckfox/rootfs_overlay/lib/modules/dwc3_gadget.ko b/ext_tree/board/luckfox/rootfs_overlay/lib/modules/dwc3_gadget.ko new file mode 100644 index 00000000..caa1c0ce Binary files /dev/null and b/ext_tree/board/luckfox/rootfs_overlay/lib/modules/dwc3_gadget.ko differ diff --git a/ext_tree/board/luckfox/rootfs_overlay/opt/2_std.sh b/ext_tree/board/luckfox/rootfs_overlay/opt/2_std.sh index c21508fb..0d2ddf3e 100755 --- a/ext_tree/board/luckfox/rootfs_overlay/opt/2_std.sh +++ b/ext_tree/board/luckfox/rootfs_overlay/opt/2_std.sh @@ -6,8 +6,4 @@ sed -i 's/^SUBMODE=.*$/SUBMODE=std/' /etc/i2s.conf echo I2S > /etc/output /etc/init.d/S01statusmonitor restart sync -if ls /etc/init.d/S95* >/dev/null 2>&1; then - /etc/init.d/S95* restart -else - echo "Service S95* not found, skipping restart" -fi \ No newline at end of file +sh -c '/etc/init.d/S95* restart' 2>/dev/null || true diff --git a/ext_tree/board/luckfox/rootfs_overlay/opt/2_usb.sh b/ext_tree/board/luckfox/rootfs_overlay/opt/2_usb.sh index 14df885c..88ba37a7 100755 --- a/ext_tree/board/luckfox/rootfs_overlay/opt/2_usb.sh +++ b/ext_tree/board/luckfox/rootfs_overlay/opt/2_usb.sh @@ -5,9 +5,4 @@ ln -s /etc/asound.usb /etc/asound.conf echo USB > /etc/output /etc/init.d/S01statusmonitor restart sync -if ls /etc/init.d/S95* >/dev/null 2>&1; then - /etc/init.d/S95* restart -else - echo "Service S95* not found, skipping restart" -fi - +sh -c '/etc/init.d/S95* restart' 2>/dev/null || true diff --git a/ext_tree/board/luckfox/rootfs_overlay/opt/dlna_disable.sh b/ext_tree/board/luckfox/rootfs_overlay/opt/dlna_disable.sh new file mode 100644 index 00000000..ff70e8d0 --- /dev/null +++ b/ext_tree/board/luckfox/rootfs_overlay/opt/dlna_disable.sh @@ -0,0 +1,18 @@ +#!/bin/sh +# dlna_disable.sh — disable ALSA loopback bridge to DLNA + +/etc/init.d/S96dlna_bridge stop 2>/dev/null || true +rm -f /etc/init.d/S96dlna_bridge + +# Revert ALSA to standard config based on current SUBMODE +SUBMODE=$(grep '^SUBMODE=' /etc/i2s.conf | cut -d= -f2 | tr -d '[:space:]') +CONF="std" +[ "$SUBMODE" = "lr" ] && CONF="lr" +[ "$SUBMODE" = "plr" ] && CONF="plr" +[ "$SUBMODE" = "8ch" ] && CONF="8ch" + +rm -f /etc/asound.conf +ln -sf /etc/asound.$CONF /etc/asound.conf + +echo "disabled" > /etc/dlna_bridge.state +echo "DLNA bridge disabled" diff --git a/ext_tree/board/luckfox/rootfs_overlay/opt/dlna_enable.sh b/ext_tree/board/luckfox/rootfs_overlay/opt/dlna_enable.sh new file mode 100644 index 00000000..5ba723d0 --- /dev/null +++ b/ext_tree/board/luckfox/rootfs_overlay/opt/dlna_enable.sh @@ -0,0 +1,19 @@ +#!/bin/sh +# dlna_enable.sh — enable ALSA loopback bridge to DLNA + +# Force SUBMODE=std (bridge only supports stereo) +sed -i 's/^SUBMODE=.*$/SUBMODE=std/' /etc/i2s.conf + +# Switch ALSA config to bridge mode +rm -f /etc/asound.conf +ln -sf /etc/asound.bridge /etc/asound.conf + +# Load loopback module +modprobe snd-aloop pcm_substreams=2 2>/dev/null || true + +# Start bridge daemon +ln -sf /etc/rc.pure/S96dlna_bridge /etc/init.d/S96dlna_bridge +/etc/init.d/S96dlna_bridge start + +echo "enabled" > /etc/dlna_bridge.state +echo "DLNA bridge enabled" diff --git a/ext_tree/board/luckfox/rootfs_overlay/opt/qobuz-connect/qobuz-connect b/ext_tree/board/luckfox/rootfs_overlay/opt/qobuz-connect/qobuz-connect_old similarity index 100% rename from ext_tree/board/luckfox/rootfs_overlay/opt/qobuz-connect/qobuz-connect rename to ext_tree/board/luckfox/rootfs_overlay/opt/qobuz-connect/qobuz-connect_old diff --git a/ext_tree/board/luckfox/rootfs_overlay/opt/usb_to_i2s.sh b/ext_tree/board/luckfox/rootfs_overlay/opt/usb_to_i2s.sh new file mode 100755 index 00000000..33858a6a --- /dev/null +++ b/ext_tree/board/luckfox/rootfs_overlay/opt/usb_to_i2s.sh @@ -0,0 +1,41 @@ +#!/bin/sh + +# USBtoI2S mode: I2S audio output + USB gadget (UAC2) +MODE_FILE="/etc/usb_to_i2s.state" +MODULES_DIR="/lib/modules" + +# Stop all running players and remove symlinks +sh -c '/etc/init.d/S95* stop' 2>/dev/null || true +rm -f /etc/init.d/S95* +ln -sf /etc/rc.pure/S98uac2 /etc/init.d/S98uac2 +ln -sf /etc/rc.pure/S95uac2_router /etc/init.d/S99uac2_router + +# Set mode file +echo "enabled" > "$MODE_FILE" + +# 1. Switch ALSA to I2S (8-channel TDM mode for USBtoI2S) +rm -f /etc/asound.conf +ln -sf /etc/asound.8ch /etc/asound.conf +sed -i 's/^SUBMODE=.*$/SUBMODE=8ch/' /etc/i2s.conf +echo I2S > /etc/output + +# 2. Switch USB to gadget mode +echo "Switching USB to gadget mode..." + +rmmod dwc3 2>/dev/null || true +sleep 0.2 + +# Load dwc3_gadget.ko from custom location +insmod $MODULES_DIR/dwc3_gadget.ko 2>/dev/null || true +sleep 1.0 + +# Start UAC2 gadget and router SYNCHRONOUSLY (critical services) +/etc/init.d/S98uac2 restart +/etc/init.d/S99uac2_router start + +# 3. Restart status monitor in BACKGROUND (can wait for services to stabilize) +/etc/init.d/S01statusmonitor restart >/dev/null 2>&1 & +sync + +echo "USBtoI2S mode enabled" +exit 0 diff --git a/ext_tree/board/luckfox/rootfs_overlay/opt/usb_unlock.sh b/ext_tree/board/luckfox/rootfs_overlay/opt/usb_unlock.sh new file mode 100755 index 00000000..2e102e4f --- /dev/null +++ b/ext_tree/board/luckfox/rootfs_overlay/opt/usb_unlock.sh @@ -0,0 +1,34 @@ +#!/bin/sh + +# Disable USBtoI2S mode: Switch USB to host mode, unlock ALSA toggle +MODE_FILE="/etc/usb_to_i2s.state" +UDC_SYSFS="/sys/kernel/config/usb_gadget" + +# Clear mode file +rm -f "$MODE_FILE" + +# 1. Stop UAC2 gadget SYNCHRONOUSLY (critical services) +/etc/init.d/S99uac2_router stop +/etc/init.d/S98uac2 stop +rm -f /etc/init.d/S98uac2 +rm -f /etc/init.d/S99uac2_router + +# 2. Unbind gadget from UDC +if [ -d "$UDC_SYSFS/purecore" ]; then + echo "" > "$UDC_SYSFS/purecore/UDC" 2>/dev/null || true +fi + +# 3. Switch USB to host mode +rmmod dwc3 2>/dev/null || true +sleep 0.2 + +# Load dwc3_host.ko +modprobe dwc3 2>/dev/null || true +sleep 0.5 + +# 4. Restart status monitor in BACKGROUND (can wait for services to stabilize) +/etc/init.d/S01statusmonitor restart >/dev/null 2>&1 & +sync + +echo "USBtoI2S mode disabled, USB switched to host mode" +exit 0 diff --git a/ext_tree/board/luckfox/rootfs_overlay/usr/bin/usb-mode-switch b/ext_tree/board/luckfox/rootfs_overlay/usr/bin/usb-mode-switch new file mode 100755 index 00000000..bbfe6619 --- /dev/null +++ b/ext_tree/board/luckfox/rootfs_overlay/usr/bin/usb-mode-switch @@ -0,0 +1,84 @@ +#!/bin/sh +# +# Switch USB DRD mode between host and peripheral (gadget) using different module sets +# + +UDC_SYSFS="/sys/kernel/config/usb_gadget" +OTG_MODE_PATH="/sys/devices/platform/ff3e0000.usb2-phy/otg_mode" +MODULES_DIR="/lib/modules" + +switch_to_gadget() { + echo "Switching USB to gadget mode..." + + # Unload host modules if loaded + rmmod dwc3 2>/dev/null || true + rmmod dwc3_of_simple 2>/dev/null || true + sleep 0.2 + + # Load gadget modules + insmod $MODULES_DIR/dwc3_gadget.ko 2>/dev/null || true + insmod $MODULES_DIR/dwc3_of_simple_gadget.ko 2>/dev/null || true + sleep 0.5 + + # Enable gadget via configfs if not already running + if [ -x /etc/rc.pure/S98uac2 ]; then + /etc/rc.pure/S98uac2 restart + else + echo "Error: S98uac2 script not found" + return 1 + fi + + echo "USB switched to gadget mode" +} + +switch_to_host() { + echo "Switching USB to host mode..." + + # Stop gadget + if [ -x /etc/rc.pure/S98uac2 ]; then + /etc/rc.pure/S98uac2 stop + fi + + # Unbind gadget from UDC + if [ -d "$UDC_SYSFS/purecore" ]; then + echo "" > "$UDC_SYSFS/purecore/UDC" 2>/dev/null || true + fi + + # Unload gadget modules + rmmod dwc3 2>/dev/null || true + rmmod dwc3_of_simple 2>/dev/null || true + sleep 0.2 + + # Load host modules + insmod $MODULES_DIR/dwc3_host.ko 2>/dev/null || true + insmod $MODULES_DIR/dwc3_of_simple_host.ko 2>/dev/null || true + sleep 0.5 + + echo "USB switched to host mode" +} + +get_current_mode() { + if [ -f "$OTG_MODE_PATH" ]; then + cat "$OTG_MODE_PATH" 2>/dev/null || echo "unknown" + else + echo "unknown" + fi +} + +case "$1" in + gadget) + switch_to_gadget + ;; + host) + switch_to_host + ;; + status) + get_current_mode + ;; + *) + echo "Usage: $0 {gadget|host|status}" + exit 1 + ;; +esac + +exit 0 diff --git a/ext_tree/board/luckfox/rootfs_overlay/var/www/assets/css/style.css b/ext_tree/board/luckfox/rootfs_overlay/var/www/assets/css/style.css index d559fa12..48b218aa 100644 --- a/ext_tree/board/luckfox/rootfs_overlay/var/www/assets/css/style.css +++ b/ext_tree/board/luckfox/rootfs_overlay/var/www/assets/css/style.css @@ -370,6 +370,14 @@ h1 { background-color: #5D636B; } +.btn-custom.info.active { + background-color: #5D636B; +} + +.btn-custom.usb2i2s.active { + background-color: #5D636B; +} + .btn-custom:focus { outline: none; border-color: #5D636B; @@ -391,10 +399,20 @@ h1 { border-color: #E67400; } +.btn-custom.info:focus { + border-color: #17A2B8; +} + +.btn-custom.usb2i2s:focus { + border-color: #9B59B6; +} + .btn-custom.primary { border-left: 5px solid #4A6BCC; } .btn-custom.success { border-left: 5px solid #28A0A0; } .btn-custom.warning { border-left: 5px solid #B8963D; } .btn-custom.danger { border-left: 5px solid #E67400; } +.btn-custom.info { border-left: 5px solid #17A2B8; } +.btn-custom.usb2i2s { border-left: 5px solid #9B59B6; } .group .row .btn-custom { justify-content: center; @@ -828,6 +846,7 @@ h1 { } + .alsa-toggle label { margin-right: 10px; font-size: 16px; @@ -937,6 +956,18 @@ h1 { transform: translateX(50%) translateY(-50%); } +.toggle-label.disabled { + opacity: 0.4; + pointer-events: none; + cursor: not-allowed; +} + +.toggle-input.disabled + .toggle-label { + opacity: 0.4; + pointer-events: none; + cursor: not-allowed; +} + @media (max-width: 360px) { .container { max-width: none; @@ -1195,15 +1226,36 @@ h1 { /* -------------------------------------------------- I2S MODAL STYLES -------------------------------------------------- */ -.i2s-modal-content { - max-width: 400px; - width: 370px; + .i2s-modal-content { + background: #2a2a2a; + padding: 15px; + border-radius: 8px; + max-width: 320px; + width: 300px; + max-height: 90vh; + overflow-y: auto; + overflow-x: hidden; + scrollbar-width: thin; + scrollbar-color: #5d5d5d #2a2a2a; +} + +.i2s-modal-content::-webkit-scrollbar { + width: 6px; +} + +.i2s-modal-content::-webkit-scrollbar-track { + background: #2a2a2a; +} + +.i2s-modal-content::-webkit-scrollbar-thumb { + background-color: #5d5d5d; + border-radius: 3px; } .i2s-group { - margin-bottom: 8px; + margin-bottom: 5px; text-align: center; - padding: 8px 0 12px 0; + padding: 5px 0 8px 0; border-bottom: 1px solid #3d3d3d; } @@ -1216,14 +1268,14 @@ h1 { display: flex; align-items: center; justify-content: space-between; - width: 300px; + width: 250px; margin: 0 auto; - gap: 20px; + gap: 10px; } .i2s-group h3 { margin: 0; - font-size: 16px; + font-size: 14px; color: #e0e0e0; flex-shrink: 0; } @@ -1238,29 +1290,31 @@ h1 { .i2s-submode-row { display: flex; - justify-content: space-between; - width: 300px; + justify-content: center; + gap: 10px; + width: 240px; margin: 0 auto; } .i2s-submode-btn { - padding: 3px 15px; - font-size: 14px; - width: 147px; - height: 32px; + padding: 2px 8px; + font-size: 13px; + width: 105px; + height: 28px; text-align: center; box-sizing: border-box; margin: 0; + flex: 0 0 auto; } .i2s-warning { - margin-top: 8px; + margin-top: 5px; text-align: left; color: #e0e0e0; - font-size: 13px; + font-size: 12px; font-weight: 500; - line-height: 1.3; - width: 300px; + line-height: 1.2; + width: 250px; margin-left: auto; margin-right: auto; hyphens: auto; @@ -1272,11 +1326,11 @@ h1 { .i2s-pulse { color: #ff4444; animation: pulse 2s infinite ease-in-out; - font-size: 20px; + font-size: 18px; font-weight: bold; display: block; text-align: center; - margin-bottom: 5px; + margin-bottom: 3px; } @keyframes pulse { @@ -1289,7 +1343,7 @@ h1 { align-items: center; justify-content: center; position: relative; - margin-bottom: 20px; + margin-bottom: 10px; } .i2s-modal-content .header .home-button { @@ -1343,10 +1397,10 @@ h1 { position: relative; display: flex; align-items: center; - width: 120px; - height: 32px; + width: 100px; + height: 28px; background-color: transparent; - border-radius: 16px; + border-radius: 14px; cursor: pointer; transition: all 0.3s ease; border: 2px solid #3d3d3d; @@ -1367,32 +1421,31 @@ h1 { position: absolute; top: 50%; transform: translateY(-50%); - font-size: 14px; + font-size: 12px; font-weight: normal; color: #e0e0e0; pointer-events: auto; z-index: 3; transition: color 0.3s ease; cursor: pointer; - padding: 4px 8px; + padding: 0; + text-align: center; } .toggle-option-compact.left { - left: 25%; - transform: translateX(-50%) translateY(-50%); + left: 8px; } .toggle-option-compact.right { - right: 25%; - transform: translateX(50%) translateY(-50%); + right: 8px; } .toggle-slider-compact { position: absolute; - width: 62px; - height: 32px; + width: 48px; + height: 26px; background-color: #5D636B; - border-radius: 16px; + border-radius: 13px; transition: left 0.5s ease; left: -2px; z-index: 1; @@ -1401,176 +1454,76 @@ h1 { } .toggle-input-compact:checked + .toggle-label-compact .toggle-slider-compact { - left: 56px; -} - -input[name="mode"][value="pll"]:checked ~ .toggle-label-compact .toggle-slider-compact { - left: -2px; -} - -input[name="mode"][value="ext"]:checked ~ .toggle-label-compact .toggle-slider-compact { - left: 56px; -} - -input[name="mclk"][value="512"]:checked ~ .toggle-label-compact .toggle-slider-compact { - left: -2px; -} - -input[name="mclk"][value="1024"]:checked ~ .toggle-label-compact .toggle-slider-compact { - left: 56px; -} - -input[name="mode"][value="pll"]:checked ~ .toggle-label-compact .toggle-option-compact.left { - color: #fff; - left: 29px; - transform: translateX(-50%) translateY(-50%); -} - -input[name="mode"][value="pll"]:checked ~ .toggle-label-compact .toggle-option-compact.right { - color: #888; -} - -input[name="mode"][value="ext"]:checked ~ .toggle-label-compact .toggle-option-compact.left { - color: #888; -} - -input[name="mode"][value="ext"]:checked ~ .toggle-label-compact .toggle-option-compact.right { - color: #fff; - right: 29px; - transform: translateX(50%) translateY(-50%); -} - -input[name="mclk"][value="512"]:checked ~ .toggle-label-compact .toggle-option-compact.left { - color: #fff; - left: 29px; - transform: translateX(-50%) translateY(-50%); -} - -input[name="mclk"][value="512"]:checked ~ .toggle-label-compact .toggle-option-compact.right { - color: #888; -} - -input[name="mclk"][value="1024"]:checked ~ .toggle-label-compact .toggle-option-compact.left { - color: #888; -} - -input[name="mclk"][value="1024"]:checked ~ .toggle-label-compact .toggle-option-compact.right { - color: #fff; - right: 29px; - transform: translateX(50%) translateY(-50%); -} - -input[name="pcm_swap"][value="0"]:checked ~ .toggle-label-compact .toggle-slider-compact { - left: -2px; -} - -input[name="pcm_swap"][value="1"]:checked ~ .toggle-label-compact .toggle-slider-compact { - left: 56px; -} - -input[name="pcm_swap"][value="0"]:checked ~ .toggle-label-compact .toggle-option-compact.left { - color: #fff; - left: 29px; - transform: translateX(-50%) translateY(-50%); + left: 50px; } -input[name="pcm_swap"][value="0"]:checked ~ .toggle-label-compact .toggle-option-compact.right { - color: #888; -} - -input[name="pcm_swap"][value="1"]:checked ~ .toggle-label-compact .toggle-option-compact.left { - color: #888; -} - -input[name="pcm_swap"][value="1"]:checked ~ .toggle-label-compact .toggle-option-compact.right { - color: #fff; - right: 29px; - transform: translateX(50%) translateY(-50%); +/* ─── DLNA Bridge ─────────────────────────────────────────────────── */ +/* Output selector: USB | I2S | DLNA OUT */ +.output-selector { + display: flex; + gap: 0; + border-radius: 8px; + overflow: hidden; + border: 1px solid #555; } -input[name="dsd_swap"][value="0"]:checked ~ .toggle-label-compact .toggle-slider-compact { - left: -2px; +.output-btn { + flex: 1; + background: #2C2C2C; + border: none; + border-right: 1px solid #555; + color: #999; + cursor: pointer; + font-size: 13px; + font-weight: 500; + padding: 8px 4px; + transition: background 0.2s, color 0.2s; } -input[name="dsd_swap"][value="1"]:checked ~ .toggle-label-compact .toggle-slider-compact { - left: 56px; +.output-btn:last-child { + border-right: none; } -input[name="dsd_swap"][value="0"]:checked ~ .toggle-label-compact .toggle-option-compact.left { +.output-btn:hover { + background: #3a3a3a; color: #fff; - left: 29px; - transform: translateX(-50%) translateY(-50%); -} - -input[name="dsd_swap"][value="0"]:checked ~ .toggle-label-compact .toggle-option-compact.right { - color: #888; -} - -input[name="dsd_swap"][value="1"]:checked ~ .toggle-label-compact .toggle-option-compact.left { - color: #888; } -input[name="dsd_swap"][value="1"]:checked ~ .toggle-label-compact .toggle-option-compact.right { +.output-btn.active { + background: #4A6BCC; color: #fff; - right: 29px; - transform: translateX(50%) translateY(-50%); } -input[name="freq_swap"][value="0"]:checked ~ .toggle-label-compact .toggle-slider-compact { - left: -2px; +.output-btn:disabled { + opacity: 0.4; + cursor: not-allowed; } -input[name="freq_swap"][value="1"]:checked ~ .toggle-label-compact .toggle-slider-compact { - left: 56px; +.btn-small-icon { + background: #2C2C2C; + border: 1px solid #444; + border-radius: 6px; + color: #ccc; + cursor: pointer; + font-size: 18px; + line-height: 1; + padding: 6px 10px; + transition: background 0.2s; } -input[name="freq_swap"][value="0"]:checked ~ .toggle-label-compact .toggle-option-compact.left { +.btn-small-icon:hover { + background: #3a3a3a; color: #fff; - left: 29px; - transform: translateX(-50%) translateY(-50%); -} - -input[name="freq_swap"][value="0"]:checked ~ .toggle-label-compact .toggle-option-compact.right { - color: #888; -} - -input[name="freq_swap"][value="1"]:checked ~ .toggle-label-compact .toggle-option-compact.left { - color: #888; } -input[name="freq_swap"][value="1"]:checked ~ .toggle-label-compact .toggle-option-compact.right { - color: #fff; - right: 29px; - transform: translateX(50%) translateY(-50%); +#dlna-modal input { + background: #2C2C2C; + border: 1px solid #555; + border-radius: 5px; + color: #ddd; + padding: 6px 8px; + font-size: 0.85em; + box-sizing: border-box; + width: 100%; } -/* -------------------------------------------------- - BUTTON DISSOLVE ANIMATION --------------------------------------------------- */ -@keyframes dissolve { - 0% { - opacity: 1; - transform: scale(1); - filter: blur(0px); - } - 30% { - opacity: 0.8; - transform: scale(1.05); - } - 60% { - opacity: 0.4; - transform: scale(1.15); - filter: blur(4px); - } - 100% { - opacity: 0; - transform: scale(1.5); - filter: blur(15px); - } -} - -.btn-dissolving { - animation: dissolve 1s ease-out forwards; - pointer-events: none; - overflow: visible !important; -} diff --git a/ext_tree/board/luckfox/rootfs_overlay/var/www/assets/js/app.js b/ext_tree/board/luckfox/rootfs_overlay/var/www/assets/js/app.js index 046757ac..d3fd676f 100644 --- a/ext_tree/board/luckfox/rootfs_overlay/var/www/assets/js/app.js +++ b/ext_tree/board/luckfox/rootfs_overlay/var/www/assets/js/app.js @@ -11,6 +11,7 @@ $(document).ready(function () { let isVolumeChanging = false; // Flag to block volume updates during user changes let isAlsaSwitching = false; // Flag to block ALSA updates during switching let statusInterval = null; + let isDlnaBridgeActive = false; // true when DLNA bridge is enabled // Universal interface update function function updateInterfaceFromStatus(data) { @@ -21,12 +22,13 @@ $(document).ready(function () { $(`button[data-service="${data.active_service}"]`).addClass('active'); } } - - // Update ALSA state ONLY if not switching - if (data.alsa_state !== undefined && !isAlsaSwitching) { + + // Update ALSA state ONLY if not switching AND USBtoI2S mode is not enabled + const usbToI2sEnabled = $('#usbto-i2s-btn').hasClass('active'); + if (data.alsa_state !== undefined && !isAlsaSwitching && !usbToI2sEnabled) { updateAlsaUI(data.alsa_state); } - + // Update volume only if user is not changing it at the moment if (!isVolumeChanging) { updateVolumeFromStatus(data); @@ -85,7 +87,8 @@ $(document).ready(function () { 'apply_reboot': 'Применить и перезагрузить', 'pcm_swap_title': 'PCM Swap', 'dsd_swap_title': 'DSD Swap', - 'freq_swap_title': '44/48 Swap' + 'freq_swap_title': '44/48 Swap', + 'leftjust_title': 'LeftJust' }, 'en': { 'alsa_output': 'ALSA Output:', @@ -130,7 +133,8 @@ $(document).ready(function () { 'apply_reboot': 'Apply & Reboot', 'pcm_swap_title': 'PCM Swap', 'dsd_swap_title': 'DSD Swap', - 'freq_swap_title': '44/48 Swap' + 'freq_swap_title': '44/48 Swap', + 'leftjust_title': 'LeftJust' }, 'de': { 'alsa_output': 'ALSA Ausgang:', @@ -175,7 +179,8 @@ $(document).ready(function () { 'apply_reboot': 'Anwenden & Neustart', 'pcm_swap_title': 'PCM Swap', 'dsd_swap_title': 'DSD Swap', - 'freq_swap_title': '44/48 Swap' + 'freq_swap_title': '44/48 Swap', + 'leftjust_title': 'LeftJust' }, 'fr': { 'alsa_output': 'Sortie ALSA:', @@ -220,7 +225,8 @@ $(document).ready(function () { 'apply_reboot': 'Appliquer et redémarrer', 'pcm_swap_title': 'PCM Swap', 'dsd_swap_title': 'DSD Swap', - 'freq_swap_title': '44/48 Swap' + 'freq_swap_title': '44/48 Swap', + 'leftjust_title': 'LeftJust' }, 'zh': { 'alsa_output': 'ALSA 输出:', @@ -265,7 +271,8 @@ $(document).ready(function () { 'apply_reboot': '应用并重启', 'pcm_swap_title': 'PCM Swap', 'dsd_swap_title': 'DSD Swap', - 'freq_swap_title': '44/48 Swap' + 'freq_swap_title': '44/48 Swap', + 'leftjust_title': 'LeftJust' } }; @@ -281,8 +288,6 @@ $(document).ready(function () { // Language application (PRESERVED!) window.currentLang = window.detectLanguage(); - // Update I2S settings link - now unified multilingual - $('#i2s-settings-link').attr('href', 'i2s.php'); window.applyTranslations = function() { $('[data-lang]').each(function() { @@ -445,17 +450,16 @@ $(document).ready(function () { }); } - // НОВАЯ функция для обновления ALSA UI + // Output selector UI update (usb / i2s / bridge) function updateAlsaUI(alsaState) { const toggleInput = $('#alsa-toggle'); const i2sSettingsLink = $('#i2s-settings-link'); - + $('.alsa-toggle').removeClass('active-i2s'); - + switch (alsaState) { case 'usb': toggleInput.prop('checked', false); - // Отключаем настройки I2S при USB - мгновенно! i2sSettingsLink.addClass('no-transition').css({ 'opacity': '0.3', 'pointer-events': 'none', @@ -464,9 +468,9 @@ $(document).ready(function () { setTimeout(() => i2sSettingsLink.removeClass('no-transition'), 10); break; case 'i2s': + case 'bridge': toggleInput.prop('checked', true); $('.alsa-toggle').addClass('active-i2s'); - // Включаем настройки I2S при I2S - мгновенно! i2sSettingsLink.addClass('no-transition').css({ 'opacity': '1', 'pointer-events': 'auto', @@ -492,36 +496,71 @@ $(document).ready(function () { checkActiveService(); } - // Обработка переключения ALSA toggle + // ALSA toggle: USB ↔ I2S $('#alsa-toggle').change(function(e) { e.preventDefault(); const checkbox = $(this); const isChecked = checkbox.is(':checked'); const cardType = isChecked ? 'i2s' : 'usb'; - - // СРАЗУ обновляем UI иконки настроек при клике на toggle! + updateAlsaUI(cardType); - - // Блокируем ALSA обновления во время переключения isAlsaSwitching = true; - - forceStatusCheck(); // Принудительная проверка при клике + forceStatusCheck(); if (cardType === 'usb') { - checkUsbDac( - function() { switchAlsa(cardType); }, - function() { - // При ошибке возвращаем toggle в исходное состояние - checkbox.prop('checked', !isChecked); - updateAlsaUI(!isChecked ? 'i2s' : 'usb'); // Откатываем UI иконки - isAlsaSwitching = false; // Разблокируем обновления + const doSwitch = function() { + if (isDlnaBridgeActive) { + $.ajax({ url: 'handle_dlna.php', method: 'POST', data: { action: 'disable' }, + success: function() { isDlnaBridgeActive = false; localStorage.removeItem('dlna_bridge_active'); $('#dlna-bridge-btn').removeClass('active'); switchAlsa('usb'); }, + error: function() { isAlsaSwitching = false; forceStatusCheck(); } + }); + } else { + switchAlsa(cardType); } - ); + }; + checkUsbDac(doSwitch, function() { + checkbox.prop('checked', !isChecked); + updateAlsaUI(!isChecked ? 'i2s' : 'usb'); + isAlsaSwitching = false; + }); } else { switchAlsa(cardType); } }); + // DLNA Bridge button — toggle on/off + $('#dlna-bridge-btn').click(function() { + if (isDlnaBridgeActive) { + isDlnaBridgeActive = false; + localStorage.removeItem('dlna_bridge_active'); + $(this).removeClass('active'); + $.ajax({ + url: 'handle_dlna.php', method: 'POST', data: { action: 'disable' }, + success: function() { forceStatusCheck(); }, + error: function() { + isDlnaBridgeActive = true; + localStorage.setItem('dlna_bridge_active', 'true'); + $('#dlna-bridge-btn').addClass('active'); + } + }); + } else { + isDlnaBridgeActive = true; + localStorage.setItem('dlna_bridge_active', 'true'); + $(this).addClass('active'); + $.ajax({ + url: 'handle_dlna.php', method: 'POST', data: { action: 'enable' }, + timeout: 15000, + success: function() { forceStatusCheck(); }, + error: function() { + isDlnaBridgeActive = false; + localStorage.removeItem('dlna_bridge_active'); + $('#dlna-bridge-btn').removeClass('active'); + customAlert('DLNA bridge enable failed'); + } + }); + } + }); + // Упрощенная функция переключения ALSA function switchAlsa(cardType) { // UI уже обновлен пользователем (toggle switch), просто отправляем команду @@ -579,12 +618,16 @@ $(document).ready(function () { function switchPlayerService(service) { // Блокируем обновления кнопок во время переключения isServiceSwitching = true; - + + // Unlock ALSA toggle and deactivate USBtoI2S button when switching to any player + unlockAlsaToggle(); + $('#usbto-i2s-btn').removeClass('active'); + // СРАЗУ делаем кнопку активной для отзывчивости UI $('.btn-custom').removeClass('active'); $(`button[data-service="${service}"]`).addClass('active'); console.log('Кнопка', service, 'активирована мгновенно, ожидаем запуск сервиса...'); - + // Переключение сервиса // Увеличенный таймаут для сервисов с двухэтапным запуском @@ -1103,7 +1146,7 @@ $(document).ready(function () { // Регулярный polling каждые 3 секунды statusInterval = setInterval(function() { - if (!isServiceSwitching && !isVolumeChanging) { + if (!isServiceSwitching && !isVolumeChanging && !isAlsaSwitching) { $.ajax({ url: 'status_fast.php', method: 'GET', @@ -1120,11 +1163,167 @@ $(document).ready(function () { // Запускаем polling через 2 секунды после загрузки setTimeout(startPolling, 2000); + // ===== USBtoI2S BUTTON FUNCTIONALITY ===== + const USBTOI2S_LOCK_KEY = 'usbToI2sLocked'; + + // Function to lock ALSA toggle (USB to I2S mode) + function lockAlsaToggle() { + localStorage.setItem(USBTOI2S_LOCK_KEY, 'true'); + const toggleInput = $('#alsa-toggle'); + const toggleLabel = $('#alsa-toggle').next('.toggle-label'); + toggleInput.prop('disabled', true); + toggleLabel.addClass('disabled'); + toggleLabel.css({ + 'opacity': '0.4', + 'pointer-events': 'none', + 'cursor': 'not-allowed' + }); + } + + // Function to unlock ALSA toggle + function unlockAlsaToggle() { + localStorage.removeItem(USBTOI2S_LOCK_KEY); + const toggleInput = $('#alsa-toggle'); + const toggleLabel = $('#alsa-toggle').next('.toggle-label'); + toggleInput.prop('disabled', false); + toggleLabel.removeClass('disabled'); + toggleLabel.css({ + 'opacity': '', + 'pointer-events': '', + 'cursor': '' + }); + } + + // Check USBtoI2S status and lock toggle if enabled + function checkUsbToI2sStatus() { + $.ajax({ + url: 'usb_to_i2s.php', + method: 'POST', + data: { action: 'status' }, + dataType: 'json', + timeout: 3000, + success: function(response) { + if (response.enabled) { + // Mode is enabled on server - lock toggle and activate button + lockAlsaToggle(); + $('#usbto-i2s-btn').addClass('active'); + // Also update ALSA UI to I2S + updateAlsaUI('i2s'); + } else { + // Mode is disabled - unlock toggle and deactivate button + unlockAlsaToggle(); + $('#usbto-i2s-btn').removeClass('active'); + } + }, + error: function() { + console.warn('Failed to check USBtoI2S status'); + // Fallback to localStorage + if (localStorage.getItem(USBTOI2S_LOCK_KEY) === 'true') { + lockAlsaToggle(); + $('#usbto-i2s-btn').addClass('active'); + updateAlsaUI('i2s'); + } else { + unlockAlsaToggle(); + $('#usbto-i2s-btn').removeClass('active'); + } + } + }); + } + + // Check status on page load + checkUsbToI2sStatus(); + + // USBtoI2S button click handler - toggle mode + $('#usbto-i2s-btn').click(function() { + const isEnabled = $(this).hasClass('active'); + + if (isEnabled) { + // Disable mode + const confirmDisable = { + 'ru': 'Отключить режим USBtoI2S?', + 'en': 'Disable USBtoI2S mode?', + 'de': 'USBtoI2S-Modus deaktivieren?', + 'fr': 'Désactiver le mode USBtoI2S?', + 'zh': '禁用USBtoI2S模式?' + }; + + customConfirm(confirmDisable[currentLang] || confirmDisable['en'], function(confirmed) { + if (confirmed) { + isAlsaSwitching = true; + showSpinner(translations[currentLang]['switching_output']); + + // Мгновенная деактивация кнопки + $('#usbto-i2s-btn').removeClass('active'); + + $.ajax({ + url: 'usb_to_i2s.php', + method: 'POST', + data: { action: 'disable' }, + timeout: 15000, + success: function() { + unlockAlsaToggle(); + isAlsaSwitching = false; + hideSpinner(); + forceStatusCheck(); + }, + error: function(xhr, status, error) { + isAlsaSwitching = false; + hideSpinner(); + $('#usbto-i2s-btn').addClass('active'); + console.error('USBtoI2S disable error:', status, error, 'Response:', xhr.responseText); + customAlert(translations[currentLang]['alsa_error']); + } + }); + } + }); + } else { + // Enable mode + const confirmEnable = { + 'ru': 'Включить режим USBtoI2S?\nВыход переключится на I2S, USB в режим входа.', + 'en': 'Enable USBtoI2S mode?\nOutput will switch to I2S, USB to input mode.', + 'de': 'USBtoI2S-Modus aktivieren?\nAusgabe wechselt zu I2S, USB zu Eingangsmodus.', + 'fr': 'Activer le mode USBtoI2S?\nLa sortie passera en I2S, USB en mode entrée.', + 'zh': '启用USBtoI2S模式?\n输出将切换到I2S,USB切换到输入模式。' + }; + + customConfirm(confirmEnable[currentLang] || confirmEnable['en'], function(confirmed) { + if (confirmed) { + isAlsaSwitching = true; + showSpinner(translations[currentLang]['switching_output']); + + // Мгновенная активация кнопки + $('#usbto-i2s-btn').addClass('active'); + $('.btn-custom').removeClass('active'); + + $.ajax({ + url: 'usb_to_i2s.php', + method: 'POST', + data: { action: 'enable' }, + timeout: 15000, + success: function() { + lockAlsaToggle(); + isAlsaSwitching = false; + hideSpinner(); + checkUsbToI2sStatus(); + }, + error: function(xhr, status, error) { + isAlsaSwitching = false; + hideSpinner(); + $('#usbto-i2s-btn').removeClass('active'); + console.error('USBtoI2S enable error:', status, error, 'Response:', xhr.responseText); + customAlert(translations[currentLang]['alsa_error']); + } + }); + } + }); + } + }); + // I2S Modal functions window.openI2SModal = function() { // Load current I2S settings $.ajax({ - url: 'i2s.php?action=getStatus', + url: 'handle_i2s.php?action=getStatus', method: 'GET', dataType: 'json', success: function(data) { @@ -1163,6 +1362,13 @@ $(document).ready(function () { $('#modal-freq-normal').prop('checked', true); } + // Set leftjust toggle + if (data.leftjust === '1') { + $('#modal-leftjust-on').prop('checked', true); + } else { + $('#modal-leftjust-off').prop('checked', true); + } + // Set submode buttons active state $('.i2s-submode-btn').removeClass('active'); $(`.i2s-submode-btn[value="${data.submode}"]`).addClass('active'); @@ -1238,7 +1444,7 @@ $(document).ready(function () { closeI2SModal(); // Apply settings - fetch('i2s.php', { + fetch('handle_i2s.php', { method: 'POST', body: formData }).then(() => { @@ -1272,7 +1478,7 @@ $(document).ready(function () { formData.append('submode', $(this).attr('value')); // Apply submode setting immediately - fetch('i2s.php', { + fetch('handle_i2s.php', { method: 'POST', body: formData }).then(() => { @@ -1297,10 +1503,12 @@ $(document).ready(function () { formData.append('dsd_swap', this.value); } else if (this.name === 'freq_swap') { formData.append('freq_swap', this.value); + } else if (this.name === 'leftjust') { + formData.append('leftjust', this.value); } // Apply setting immediately - fetch('i2s.php', { + fetch('handle_i2s.php', { method: 'POST', body: formData }).then(() => { @@ -1341,8 +1549,12 @@ $(document).ready(function () { if (hidden) { try { const hiddenArray = JSON.parse(hidden); - hiddenArray.forEach(service => { - $(`button[data-service="${service}"]`).hide(); + hiddenArray.forEach(id => { + if (id.startsWith('#')) { + $(id).hide(); + } else { + $(`button[data-service="${id}"]`).hide(); + } }); } catch (e) { console.error('Failed to parse hidden buttons:', e); @@ -1358,11 +1570,14 @@ $(document).ready(function () { hiddenButtons.push($(this).data('service')); } }); + ['#usbto-i2s-btn', '#dlna-bridge-btn'].forEach(id => { + if ($(id).is(':hidden')) hiddenButtons.push(id); + }); localStorage.setItem(HIDDEN_BUTTONS_KEY, JSON.stringify(hiddenButtons)); } // Handle swipe gestures on player buttons (touch and mouse) - $('button[data-service]').each(function() { + $('button[data-service], #usbto-i2s-btn, #dlna-bridge-btn').each(function() { const $button = $(this); let isDragging = false; @@ -1487,5 +1702,169 @@ $(document).ready(function () { loadHiddenButtons(); checkAndExpandButtons(); + // ===== DLNA BRIDGE FUNCTIONALITY ===== + + let dlnaRenderers = []; // discovered renderer list + let dlnaSelected = null; // currently selected renderer object + + function initDlnaBridge() { + // Restore button state immediately from localStorage to prevent flash on refresh + if (localStorage.getItem('dlna_bridge_active') === 'true') { + isDlnaBridgeActive = true; + $('#dlna-bridge-btn').addClass('active'); + } + $.ajax({ + url: 'handle_dlna.php?action=status', + method: 'GET', + timeout: 5000, + dataType: 'json', + success: function(data) { + if (data.bridge_state === 'enabled') { + isDlnaBridgeActive = true; + localStorage.setItem('dlna_bridge_active', 'true'); + $('#dlna-bridge-btn').addClass('active'); + } else { + isDlnaBridgeActive = false; + localStorage.removeItem('dlna_bridge_active'); + $('#dlna-bridge-btn').removeClass('active'); + } + updateDlnaStreamInfo(data.stream); + if (data.renderer_ip) { + dlnaSelected = { + ip: data.renderer_ip, + port: data.renderer_port, + control_url: '' + }; + $('#dlna-manual-ip').val(data.renderer_ip); + $('#dlna-manual-port').val(data.renderer_port); + } + }, + error: function() { + console.warn('DLNA bridge status unavailable'); + // Keep localStorage state — bridge may still be running + } + }); + } + + function updateDlnaStreamInfo(stream) { + if (!stream || !stream.active) { + $('#dlna-stream-info').text('Stream: inactive'); + return; + } + $('#dlna-stream-info').text( + 'Stream: ' + stream.rate + ' Hz / ' + stream.bits + '-bit / ' + + stream.channels + 'ch — clients: ' + stream.clients + ); + } + + // Settings modal — open (called from inline onclick in HTML) + window.openDlnaModal = function() { + $('#dlna-modal').addClass('show'); + $.ajax({ + url: 'handle_dlna.php?action=status', + method: 'GET', + timeout: 3000, + dataType: 'json', + success: function(data) { + updateDlnaStreamInfo(data.stream); + if (data.renderer_ip) { + $('#dlna-manual-ip').val(data.renderer_ip); + $('#dlna-manual-port').val(data.renderer_port); + } + } + }); + }; + + // Close modal + $('#dlna-modal-close').click(function() { + $('#dlna-modal').removeClass('show'); + }); + $('#dlna-modal').click(function(e) { + if (e.target === this) $('#dlna-modal').removeClass('show'); + }); + $('#dlna-modal .modal-content').click(function(e) { e.stopPropagation(); }); + + // Discover button + $('#dlna-discover-btn').click(function() { + $('#dlna-renderer-list').html('Discovering...'); + $.ajax({ + url: 'handle_dlna.php?action=discover', + method: 'GET', + timeout: 8000, + dataType: 'json', + success: function(renderers) { + dlnaRenderers = renderers; + if (!renderers || renderers.length === 0) { + $('#dlna-renderer-list').html('No renderers found'); + return; + } + var html = 'Found renderers:'; + $('#dlna-renderer-list').html(html); + + // Click to select + $('.dlna-renderer-item').click(function() { + var idx = parseInt($(this).data('idx')); + dlnaSelected = dlnaRenderers[idx]; + $('#dlna-manual-ip').val(dlnaSelected.ip); + $('#dlna-manual-port').val(dlnaSelected.port); + $('#dlna-manual-url').val(dlnaSelected.control_url); + $('.dlna-renderer-item').css('background', ''); + $(this).css('background', '#2a4a2a'); + }); + }, + error: function() { + $('#dlna-renderer-list').html('Discovery failed'); + } + }); + }); + + // Push button + $('#dlna-push-btn').click(function() { + var ip = $('#dlna-manual-ip').val().trim(); + var port = parseInt($('#dlna-manual-port').val().trim()) || 0; + var url = $('#dlna-manual-url').val().trim(); + + if (!ip || !port) { + customAlert('Please enter renderer IP and port (or use Discover)'); + return; + } + + // Save renderer config then push + $.ajax({ + url: 'handle_dlna.php', + method: 'POST', + data: { action: 'setrenderer', renderer_ip: ip, renderer_port: port, control_url: url }, + timeout: 5000, + dataType: 'json', + success: function() { + $.ajax({ + url: 'handle_dlna.php', + method: 'POST', + data: { action: 'push' }, + timeout: 5000, + dataType: 'json', + success: function(resp) { + if (resp.success) { + customAlert('Stream pushed to renderer'); + } else { + customAlert('Push failed: ' + (resp.error || 'unknown')); + } + }, + error: function() { customAlert('Push request failed'); } + }); + }, + error: function() { customAlert('Failed to save renderer settings'); } + }); + }); + + // Init on page load + initDlnaBridge(); + }); /* Cache bust version: 1753367744 */ diff --git a/ext_tree/board/luckfox/rootfs_overlay/var/www/config.php b/ext_tree/board/luckfox/rootfs_overlay/var/www/config.php index b70a7df6..840f98e9 100644 --- a/ext_tree/board/luckfox/rootfs_overlay/var/www/config.php +++ b/ext_tree/board/luckfox/rootfs_overlay/var/www/config.php @@ -1,6 +1,6 @@ diff --git a/ext_tree/board/luckfox/rootfs_overlay/var/www/default.php b/ext_tree/board/luckfox/rootfs_overlay/var/www/default.php index 9be01d77..efd09576 100644 --- a/ext_tree/board/luckfox/rootfs_overlay/var/www/default.php +++ b/ext_tree/board/luckfox/rootfs_overlay/var/www/default.php @@ -10,7 +10,10 @@ diff --git a/ext_tree/board/luckfox/rootfs_overlay/var/www/handle_alsa.php b/ext_tree/board/luckfox/rootfs_overlay/var/www/handle_alsa.php index 1fa25496..b01df850 100644 --- a/ext_tree/board/luckfox/rootfs_overlay/var/www/handle_alsa.php +++ b/ext_tree/board/luckfox/rootfs_overlay/var/www/handle_alsa.php @@ -25,8 +25,8 @@ // Execute script $output = []; $returnVar = 0; - exec('/usr/bin/sudo ' . escapeshellcmd($script) . ' 2>&1', $output, $returnVar); - + exec(escapeshellcmd($script) . ' 2>&1', $output, $returnVar); + // Don't fail if script exits with error (service may not exist) if ($returnVar !== 0) { error_log("Script $script exited with code $returnVar: " . implode("\n", $output)); @@ -34,7 +34,7 @@ } // Additional service restart (if exists) - $serviceOutput = shell_exec('/usr/bin/sudo /bin/sh -c "/etc/init.d/S95* restart" 2>/dev/null'); + $serviceOutput = shell_exec('/bin/sh -c "/etc/init.d/S95* restart" 2>/dev/null'); // Clear cache after switching if (file_exists($cache_file)) { diff --git a/ext_tree/board/luckfox/rootfs_overlay/var/www/handle_dlna.php b/ext_tree/board/luckfox/rootfs_overlay/var/www/handle_dlna.php new file mode 100644 index 00000000..f474fe19 --- /dev/null +++ b/ext_tree/board/luckfox/rootfs_overlay/var/www/handle_dlna.php @@ -0,0 +1,266 @@ + 'unknown action']); + break; +} + +/* ─── Status ─────────────────────────────────────────────────────── */ +function handle_status() { + $state = 'disabled'; + $state_file = '/etc/dlna_bridge.state'; + if (file_exists($state_file)) { + $state = trim(file_get_contents($state_file)); + } + + $stream_info = ['active' => false, 'rate' => 0, 'bits' => 0, 'channels' => 0, 'clients' => 0]; + $status_file = '/tmp/dlna_bridge_status.json'; + if (file_exists($status_file)) { + $json = @json_decode(file_get_contents($status_file), true); + if ($json) $stream_info = $json; + } + + $conf = read_conf(); + + echo json_encode([ + 'bridge_state' => $state, + 'stream' => $stream_info, + 'renderer_ip' => $conf['RENDERER_IP'] ?? '', + 'renderer_port' => (int)($conf['RENDERER_PORT'] ?? 0), + 'stream_port' => (int)($conf['STREAM_PORT'] ?? 8888), + 'auto_push' => (bool)(int)($conf['AUTO_PUSH'] ?? 0), + ]); +} + +/* ─── Enable ─────────────────────────────────────────────────────── */ +function handle_enable() { + $out = []; + $rc = 0; + exec('/opt/dlna_enable.sh 2>&1', $out, $rc); + echo json_encode(['success' => ($rc === 0), 'output' => implode("\n", $out)]); +} + +/* ─── Disable ────────────────────────────────────────────────────── */ +function handle_disable() { + $out = []; + $rc = 0; + exec('/opt/dlna_disable.sh 2>&1', $out, $rc); + echo json_encode(['success' => ($rc === 0), 'output' => implode("\n", $out)]); +} + +/* ─── Discover ───────────────────────────────────────────────────── */ +function handle_discover() { + $renderers = ssdp_discover(); + echo json_encode($renderers); +} + +function ssdp_discover() { + if (!function_exists('socket_create')) return []; + + $sock = @socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); + if ($sock === false) return []; + + socket_set_option($sock, SOL_SOCKET, SO_REUSEADDR, 1); + socket_set_nonblock($sock); + + $msearch = + "M-SEARCH * HTTP/1.1\r\n" . + "HOST: 239.255.255.250:1900\r\n" . + "MAN: \"ssdp:discover\"\r\n" . + "MX: 3\r\n" . + "ST: urn:schemas-upnp-org:device:MediaRenderer:1\r\n" . + "\r\n"; + + // Send twice for reliability + @socket_sendto($sock, $msearch, strlen($msearch), 0, '239.255.255.250', 1900); + usleep(100000); + @socket_sendto($sock, $msearch, strlen($msearch), 0, '239.255.255.250', 1900); + + $locations = []; + $deadline = microtime(true) + 4.5; + + while (($remaining = $deadline - microtime(true)) > 0) { + $r = [$sock]; + $w = null; + $e = null; + $usec = (int)min($remaining * 1e6, 500000); // poll in 500 ms slices + $ready = @socket_select($r, $w, $e, 0, $usec); + if ($ready === false) break; // fatal error + if ($ready === 0) continue; // nothing yet — keep looping + + $buf = $from_ip = ''; + $from_port = 0; + $n = @socket_recvfrom($sock, $buf, 2048, 0, $from_ip, $from_port); + if ($n > 0 && preg_match('/LOCATION:\s*(\S+)/i', $buf, $m)) { + $loc = trim($m[1]); + if (!in_array($loc, $locations)) $locations[] = $loc; + } + } + socket_close($sock); + + $renderers = []; + foreach ($locations as $loc) { + $info = fetch_device_description($loc); + if ($info) $renderers[] = $info; + } + return $renderers; +} + +function fetch_device_description($url) { + $ctx = stream_context_create(['http' => ['timeout' => 3]]); + $xml_str = @file_get_contents($url, false, $ctx); + if (!$xml_str) return null; + + $xml = @simplexml_load_string($xml_str); + if (!$xml) return null; + + $name = (string)($xml->device->friendlyName ?? 'Unknown'); + + /* Find AVTransport control URL */ + $control_url = ''; + $base_url = ''; + if (isset($xml->device->serviceList->service)) { + foreach ($xml->device->serviceList->service as $svc) { + $st = (string)$svc->serviceType; + if (strpos($st, 'AVTransport') !== false) { + $control_url = (string)$svc->controlURL; + break; + } + } + } + + /* Extract host/port from location URL */ + $parts = parse_url($url); + $host = $parts['host'] ?? ''; + $port = $parts['port'] ?? 80; + + /* Make control URL absolute if relative */ + if ($control_url && $control_url[0] === '/') { + // already relative to host root — good + } elseif ($control_url && !preg_match('/^https?:\/\//', $control_url)) { + $base_path = isset($parts['path']) ? dirname($parts['path']) : ''; + $control_url = $base_path . '/' . $control_url; + } + + if (!$host || !$control_url) return null; + + return [ + 'name' => $name, + 'ip' => $host, + 'port' => (int)$port, + 'control_url' => $control_url, + 'location' => $url, + ]; +} + +/* ─── Set renderer ───────────────────────────────────────────────── */ +function handle_setrenderer() { + $ip = isset($_POST['renderer_ip']) ? trim($_POST['renderer_ip']) : ''; + $port = isset($_POST['renderer_port']) ? (int)trim($_POST['renderer_port']) : 0; + $url = isset($_POST['control_url']) ? trim($_POST['control_url']) : ''; + + if (!$ip || !$port || !$url) { + // Also try JSON body + $raw = file_get_contents('php://input'); + $body = json_decode($raw, true); + if ($body) { + $ip = $body['renderer_ip'] ?? $ip; + $port = (int)($body['renderer_port'] ?? $port); + $url = $body['control_url'] ?? $url; + } + } + + $conf = read_conf(); + $conf['RENDERER_IP'] = $ip; + $conf['RENDERER_PORT'] = $port; + $conf['RENDERER_CONTROL_URL'] = $url; + $ok = write_conf($conf); + echo json_encode(['success' => $ok]); +} + +/* ─── Push (SIGUSR1) ─────────────────────────────────────────────── */ +function handle_push() { + $pidfile = '/var/run/dlna_bridge.pid'; + if (!file_exists($pidfile)) { + echo json_encode(['success' => false, 'error' => 'daemon not running']); + return; + } + $pid = (int)trim(file_get_contents($pidfile)); + if ($pid <= 0) { + echo json_encode(['success' => false, 'error' => 'invalid pid']); + return; + } + $ok = posix_kill($pid, SIGUSR1); + echo json_encode(['success' => $ok]); +} + +/* ─── Config helpers ─────────────────────────────────────────────── */ +function read_conf() { + $conf = [ + 'STREAM_PORT' => '8888', + 'RENDERER_IP' => '', + 'RENDERER_PORT' => '', + 'RENDERER_CONTROL_URL' => '', + 'AUTO_PUSH' => '0', + ]; + $file = '/etc/dlna_bridge.conf'; + if (!file_exists($file)) return $conf; + foreach (file($file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES) as $line) { + if (strpos($line, '=') === false) continue; + [$k, $v] = explode('=', $line, 2); + $conf[trim($k)] = trim($v); + } + return $conf; +} + +function write_conf($conf) { + $lines = []; + foreach ($conf as $k => $v) { + $lines[] = "$k=$v"; + } + return file_put_contents('/etc/dlna_bridge.conf', implode("\n", $lines) . "\n") !== false; +} diff --git a/ext_tree/board/luckfox/rootfs_overlay/var/www/handle_i2s.php b/ext_tree/board/luckfox/rootfs_overlay/var/www/handle_i2s.php new file mode 100644 index 00000000..0decd672 --- /dev/null +++ b/ext_tree/board/luckfox/rootfs_overlay/var/www/handle_i2s.php @@ -0,0 +1,154 @@ +&1', $output, $returnVar); + } +} + +// If submode is changed +if (isset($_POST['submode'])) { + $submode = $_POST['submode']; + if (in_array($submode, ['std', 'lr', 'plr', '8ch'])) { + $script = "/opt/2_$submode.sh"; + exec('/usr/bin/sudo ' . escapeshellcmd($script) . ' 2>&1', $output, $returnVar); + } +} + +// If MCLK is changed +if (isset($_POST['mclk'])) { + $mclk = $_POST['mclk']; + if (in_array($mclk, ['512', '1024'])) { + exec('/usr/bin/sudo /opt/2_' . $mclk . '.sh 2>&1', $output, $returnVar); + } +} + +// If PCM swap setting is changed +if (isset($_POST['pcm_swap'])) { + $pcm_swap = $_POST['pcm_swap']; + if (in_array($pcm_swap, ['0', '1'])) { + file_put_contents('/sys/devices/platform/ffae0000.i2s/pcm_channel_swap', $pcm_swap); + + // Update config file + $contents = ''; + if (file_exists($config_file)) { + $contents = file_get_contents($config_file); + } + $pattern = '/^### PCM channel swap.*?\nPCM_SWAP=.*$/m'; + $replacement = "### PCM channel swap: 0 or 1 ###\nPCM_SWAP=$pcm_swap"; + if (preg_match($pattern, $contents)) { + $contents = preg_replace($pattern, $replacement, $contents); + } else { + $contents .= "\n### PCM channel swap: 0 or 1 ###\nPCM_SWAP=$pcm_swap\n"; + } + file_put_contents($config_file, $contents); + } +} + +// If DSD swap setting is changed +if (isset($_POST['dsd_swap'])) { + $dsd_swap = $_POST['dsd_swap']; + if (in_array($dsd_swap, ['0', '1'])) { + file_put_contents('/sys/devices/platform/ffae0000.i2s/dsd_physical_swap', $dsd_swap); + + // Update config file + $contents = ''; + if (file_exists($config_file)) { + $contents = file_get_contents($config_file); + } + $pattern = '/^### DSD physical swap.*?\nDSD_SWAP=.*$/m'; + $replacement = "### DSD physical swap: 0 or 1 ###\nDSD_SWAP=$dsd_swap"; + if (preg_match($pattern, $contents)) { + $contents = preg_replace($pattern, $replacement, $contents); + } else { + $contents .= "\n### DSD physical swap: 0 or 1 ###\nDSD_SWAP=$dsd_swap\n"; + } + file_put_contents($config_file, $contents); + } +} + +// If frequency domain swap setting is changed +if (isset($_POST['freq_swap'])) { + $freq_swap = $_POST['freq_swap']; + if (in_array($freq_swap, ['0', '1'])) { + file_put_contents('/sys/devices/platform/ffae0000.i2s/freq_domain_invert', $freq_swap); + + // Update config file + $contents = ''; + if (file_exists($config_file)) { + $contents = file_get_contents($config_file); + } + $pattern = '/^### Frequency domain swap.*?\nFREQ_SWAP=.*$/m'; + $replacement = "### Frequency domain swap (44/48): 0 or 1 ###\nFREQ_SWAP=$freq_swap"; + if (preg_match($pattern, $contents)) { + $contents = preg_replace($pattern, $replacement, $contents); + } else { + $contents .= "\n### Frequency domain swap (44/48): 0 or 1 ###\nFREQ_SWAP=$freq_swap\n"; + } + file_put_contents($config_file, $contents); + } +} + +// If LeftJust setting is changed +if (isset($_POST['leftjust'])) { + $leftjust = $_POST['leftjust']; + if (in_array($leftjust, ['0', '1'])) { + // Update config file + $contents = ''; + if (file_exists($config_file)) { + $contents = file_get_contents($config_file); + } + $pattern = '/^### Left Justified.*?\nLEFTJUST=.*$/m'; + $replacement = "### Left Justified mode: 0 or 1 ###\nLEFTJUST=$leftjust"; + if (preg_match($pattern, $contents)) { + $contents = preg_replace($pattern, $replacement, $contents); + } else { + $contents .= "\n### Left Justified mode: 0 or 1 ###\nLEFTJUST=$leftjust\n"; + } + file_put_contents($config_file, $contents); + } +} + +// AJAX request for current status +if (isset($_GET['action']) && $_GET['action'] === 'getStatus') { + $result = ['mode' => '', 'mclk' => '', 'submode' => '', 'pcm_swap' => '0', 'dsd_swap' => '1', 'freq_swap' => '0', 'leftjust' => '0']; + + if (file_exists($config_file)) { + $contents = file_get_contents($config_file); + if (preg_match('/^MODE=(\w+)/m', $contents, $matches)) { + $result['mode'] = strtolower($matches[1]); + } + if (preg_match('/^MCLK=(\d+)/m', $contents, $matches)) { + $result['mclk'] = $matches[1]; + } + if (preg_match('/^SUBMODE=(\w+)/m', $contents, $matches)) { + $result['submode'] = strtolower($matches[1]); + } else { + $result['submode'] = 'std'; + } + if (preg_match('/^PCM_SWAP=([01])/m', $contents, $matches)) { + $result['pcm_swap'] = $matches[1]; + } + if (preg_match('/^DSD_SWAP=([01])/m', $contents, $matches)) { + $result['dsd_swap'] = $matches[1]; + } + if (preg_match('/^FREQ_SWAP=([01])/m', $contents, $matches)) { + $result['freq_swap'] = $matches[1]; + } + if (preg_match('/^LEFTJUST=([01])/m', $contents, $matches)) { + $result['leftjust'] = $matches[1]; + } + } + + header('Content-Type: application/json'); + echo json_encode($result); + exit; +} +?> diff --git a/ext_tree/board/luckfox/rootfs_overlay/var/www/handle_service.php b/ext_tree/board/luckfox/rootfs_overlay/var/www/handle_service.php index d6802959..56f35b4b 100644 --- a/ext_tree/board/luckfox/rootfs_overlay/var/www/handle_service.php +++ b/ext_tree/board/luckfox/rootfs_overlay/var/www/handle_service.php @@ -13,7 +13,7 @@ function logMessage($message) { function executeCommand($command) { logMessage("Executing: $command"); - $output = shell_exec("/usr/bin/sudo $command 2>&1"); + $output = shell_exec("$command 2>&1"); logMessage("Output: " . trim((string)$output)); return trim((string)$output); } @@ -85,14 +85,22 @@ function releaseLock() { } // Stop all current players - executeCommand("/etc/init.d/S95* stop"); + $stop_output = shell_exec('sh -c "/etc/init.d/S95* stop" 2>&1'); + logMessage("Stop output: " . trim($stop_output ?: "none")); - // Remove all S95* from /etc/init.d/ - executeCommand("/bin/rm -f /etc/init.d/S95*"); + // If switching to any player, disable USBtoI2S mode (switch USB to host) + if (file_exists('/etc/usb_to_i2s.state')) { + logMessage("Disabling USBtoI2S mode before player switch"); + executeCommand("/opt/usb_unlock.sh"); + } + + // Remove all S95* and S98uac2 symlinks + shell_exec('rm -f /etc/init.d/S95* /etc/init.d/S98uac2 2>&1'); // Create symlink $target_link = "/etc/init.d/{$players[$player_to_start]['script']}"; - executeCommand("/bin/ln -s '$script_path' '$target_link'"); + $ln_output = shell_exec("ln -sf '$script_path' '$target_link' 2>&1"); + logMessage("Symlink output: " . trim($ln_output ?: "none")); // Start player logMessage("Starting player: $player_to_start"); diff --git a/ext_tree/board/luckfox/rootfs_overlay/var/www/i2s.php b/ext_tree/board/luckfox/rootfs_overlay/var/www/i2s.php deleted file mode 100644 index 43a8dcec..00000000 --- a/ext_tree/board/luckfox/rootfs_overlay/var/www/i2s.php +++ /dev/null @@ -1,1020 +0,0 @@ - '', 'mclk' => '', 'submode' => '', 'pcm_swap' => '0', 'dsd_swap' => '1', 'freq_swap' => '0']; - if (file_exists($filePath)) { - $contents = file_get_contents($filePath); - if ($contents !== false) { - if (preg_match('/^MODE=(\w+)/m', $contents, $matches)) { - $result['mode'] = strtolower($matches[1]); - } - if (preg_match('/^MCLK=(\d+)/m', $contents, $matches)) { - $result['mclk'] = $matches[1]; - } - if (preg_match('/^SUBMODE=(\w+)/m', $contents, $matches)) { - $result['submode'] = strtolower($matches[1]); - } else { - $result['submode'] = 'std'; - } - if (preg_match('/^PCM_SWAP=([01])/m', $contents, $matches)) { - $result['pcm_swap'] = $matches[1]; - } - if (preg_match('/^DSD_SWAP=([01])/m', $contents, $matches)) { - $result['dsd_swap'] = $matches[1]; - } - if (preg_match('/^FREQ_SWAP=([01])/m', $contents, $matches)) { - $result['freq_swap'] = $matches[1]; - } - } - } - - // Read current values from sysfs if available - if (file_exists('/sys/devices/platform/ffae0000.i2s/pcm_channel_swap')) { - $pcm_current = trim(file_get_contents('/sys/devices/platform/ffae0000.i2s/pcm_channel_swap')); - if ($pcm_current !== false) { - $result['pcm_swap'] = $pcm_current; - } - } - - if (file_exists('/sys/devices/platform/ffae0000.i2s/dsd_physical_swap')) { - $dsd_current = trim(file_get_contents('/sys/devices/platform/ffae0000.i2s/dsd_physical_swap')); - if ($dsd_current !== false) { - $result['dsd_swap'] = $dsd_current; - } - } - - if (file_exists('/sys/devices/platform/ffae0000.i2s/freq_domain_invert')) { - $freq_current = trim(file_get_contents('/sys/devices/platform/ffae0000.i2s/freq_domain_invert')); - if ($freq_current !== false) { - $result['freq_swap'] = $freq_current; - } - } - - return $result; -} - -/** - * Update configuration file with new value - */ -function updateConfigValue($filePath, $key, $value) { - $contents = ''; - if (file_exists($filePath)) { - $contents = file_get_contents($filePath); - } - - $pattern = "/^$key=.*$/m"; - $replacement = "$key=$value"; - - if (preg_match($pattern, $contents)) { - $contents = preg_replace($pattern, $replacement, $contents); - } else { - $contents .= "\n$replacement\n"; - } - - file_put_contents($filePath, $contents); -} - -/** - * Update S01RkLunch init script with new swap settings - */ -function updateInitScript($value, $type) { - $initScript = '/etc/init.d/S01RkLunch'; - - if (!file_exists($initScript)) { - return; - } - - $contents = file_get_contents($initScript); - - if ($type === 'pcm') { - // Update PCM swap line - $pattern = '/^#?echo [01] > \/sys\/devices\/platform\/ffae0000\.i2s\/pcm_channel_swap$/m'; - $replacement = "echo $value > /sys/devices/platform/ffae0000.i2s/pcm_channel_swap"; - - if (preg_match($pattern, $contents)) { - $contents = preg_replace($pattern, $replacement, $contents); - } else { - // Add after DSD swap line - $contents = preg_replace( - '/(echo [01] > \/sys\/devices\/platform\/ffae0000\.i2s\/dsd_physical_swap)/', - "$1\necho $value > /sys/devices/platform/ffae0000.i2s/pcm_channel_swap", - $contents - ); - } - } else if ($type === 'dsd') { - // Update DSD swap line - $pattern = '/^echo [01] > \/sys\/devices\/platform\/ffae0000\.i2s\/dsd_physical_swap$/m'; - $replacement = "echo $value > /sys/devices/platform/ffae0000.i2s/dsd_physical_swap"; - $contents = preg_replace($pattern, $replacement, $contents); - } - - file_put_contents($initScript, $contents); -} - -// --- Processing AJAX request to get current state --- -if (isset($_GET['action']) && $_GET['action'] === 'getStatus') { - $config = readConfig($config_file); - header('Content-Type: application/json'); - echo json_encode($config); - exit; -} - -// --- Processing POST request --- -if ($_SERVER['REQUEST_METHOD'] === 'POST') { - // If button for changing mode (PLL/EXT) is pressed - if (isset($_POST['mode'])) { - $mode = $_POST['mode']; - if (in_array($mode, ['pll', 'ext'])) { - $script = ($mode === 'pll') ? '/opt/2pll.sh' : '/opt/2ext.sh'; - exec('/usr/bin/sudo ' . escapeshellcmd($script) . ' 2>&1', $output, $returnVar); - } - } - - // If button for changing SUBMODE (STD/L/R/±L/±R/8CH) is pressed - if (isset($_POST['submode'])) { - $submode = $_POST['submode']; - if (in_array($submode, ['std', 'lr', 'plr', '8ch'])) { - $script = "/opt/2_$submode.sh"; - exec('/usr/bin/sudo ' . escapeshellcmd($script) . ' 2>&1', $output, $returnVar); - } - } - - // If button for changing MCLK is pressed - if (isset($_POST['mclk'])) { - $mclk = $_POST['mclk']; - if (in_array($mclk, ['512', '1024'])) { - // Choose script depending on current mode - $config = readConfig($config_file); - $mode = $config['mode']; - - if ($mode === 'pll') { - $script = ($mclk === '1024') ? '/opt/2_1024_pll.sh' : '/opt/2_512_pll.sh'; - } else { - $script = ($mclk === '1024') ? '/opt/2_1024_ext.sh' : '/opt/2_512_ext.sh'; - } - exec('/usr/bin/sudo ' . escapeshellcmd($script) . ' 2>&1', $output, $returnVar); - } - } - - // If PCM swap setting is changed - if (isset($_POST['pcm_swap'])) { - $pcm_swap = $_POST['pcm_swap']; - if (in_array($pcm_swap, ['0', '1'])) { - // Write to sysfs - file_put_contents('/sys/devices/platform/ffae0000.i2s/pcm_channel_swap', $pcm_swap); - - // Update config file - updateConfigValue($config_file, 'PCM_SWAP', $pcm_swap); - - // Update S01RkLunch script - updateInitScript($pcm_swap, 'pcm'); - } - } - - // If DSD swap setting is changed - if (isset($_POST['dsd_swap'])) { - $dsd_swap = $_POST['dsd_swap']; - if (in_array($dsd_swap, ['0', '1'])) { - // Write to sysfs - file_put_contents('/sys/devices/platform/ffae0000.i2s/dsd_physical_swap', $dsd_swap); - - // Update config file - updateConfigValue($config_file, 'DSD_SWAP', $dsd_swap); - - // Update S01RkLunch script - updateInitScript($dsd_swap, 'dsd'); - } - } - - // If frequency domain swap setting is changed - if (isset($_POST['freq_swap'])) { - $freq_swap = $_POST['freq_swap']; - if (in_array($freq_swap, ['0', '1'])) { - // Write to sysfs - file_put_contents('/sys/devices/platform/ffae0000.i2s/freq_domain_invert', $freq_swap); - - // Update config file - updateConfigValue($config_file, 'FREQ_SWAP', $freq_swap); - } - } - - - // Reboot processing removed - now using reboot.php - - // After performing actions, redirect (PRG) - header("Location: " . $_SERVER['PHP_SELF']); - exit; -} - -// --- GET request: reading current state --- -$config = readConfig($config_file); -$current_mode = $config['mode']; -$current_mclk = $config['mclk']; -$current_submode = $config['submode']; -$current_pcm_swap = $config['pcm_swap']; -$current_dsd_swap = $config['dsd_swap']; -$current_freq_swap = $config['freq_swap']; -?> - - - - - - I2S Settings - - - - - - -
-
-
-
Loading...
-
-
-
-
-
- - Home - -

I2S Settings

-
- -
-
-
-

Mode

-
- > - > - -
-
-
-
-
-
- - -
-
- - -
-
-
-
-
-

MCLK

-
- > - > - -
-
-
-
-
-

PCM Swap

-
- > - > - -
-
-
-
-
-

DSD Swap

-
- > - > - -
-
-
-
-
-

44/48 Swap

-
- > - > - -
-
-
-
- Warning! - MCLK output has different settings in PLL and EXT modes (OUTPUT/INPUT).
- System reboot is required after changing I2S settings to apply them. -
-
-
- - Reboot - -
-
- - -
-
-
-
- - -
-
-
- - - - - \ No newline at end of file diff --git a/ext_tree/board/luckfox/rootfs_overlay/var/www/index.php b/ext_tree/board/luckfox/rootfs_overlay/var/www/index.php index f8226594..5ba5077d 100644 --- a/ext_tree/board/luckfox/rootfs_overlay/var/www/index.php +++ b/ext_tree/board/luckfox/rootfs_overlay/var/www/index.php @@ -39,9 +39,16 @@ - + + + - +
@@ -83,6 +90,25 @@
+ + +