From 6ab284bf2ee8809a4bfcd29645801bf70e432eb4 Mon Sep 17 00:00:00 2001 From: Eric Lee Date: Tue, 18 Aug 2020 13:06:06 +0800 Subject: [PATCH] Yocto Zeus Support for SMARC-iMX8MQ, Initial Release --- conf/layer.conf | 110 +- conf/machine/smarcimx8m2g.conf | 88 - conf/machine/smarcimx8m4g.conf | 88 - conf/machine/smarcimx8mq2g.conf | 91 + conf/machine/smarcimx8mq4g.conf | 91 + recipes-bsp/alsa-state/alsa-state/asound.state | 9732 ++++++++++++++++++-- .../imx-atf/imx-atf/imx8m-atf-ddr-timing.patch | 14 +- .../imx-atf/imx8m-atf-fix-derate-enable.patch | 56 - recipes-bsp/imx-atf/imx-atf_2.0.bbappend | 6 - recipes-bsp/imx-atf/imx-atf_2.2.bbappend | 5 + recipes-bsp/imx-mkimage/imx-boot_0.2.bbappend | 20 - recipes-bsp/imx-mkimage/imx-boot_1.0.bbappend | 7 + recipes-bsp/u-boot/u-boot-smarcimx8m_2019.04.bb | 56 - recipes-bsp/u-boot/u-boot-smarcimx8mq_2020.04.bb | 57 + recipes-core/base-files/base-files/issue | 6 + recipes-core/base-files/base-files/issue.net | 6 + recipes-core/base-files/base-files_%.bbappend | 1 + .../packagegroup-core-tools-testapps.bbappend | 1 + recipes-kernel/linux/linux-smarcimx8m_4.19.35.bb | 36 - recipes-kernel/linux/linux-smarcimx8mq_5.4.bb | 64 + .../emb_mk_yocto_sdcard/emb-create-yocto-emmc.sh | 4 +- .../emb_mk_yocto_sdcard/emb-create-yocto-sdcard.sh | 8 +- scripts/emb_mk_yocto_sdcard/uEnv.txt | 2 +- scripts/emb_mk_yocto_sdcard/uEnv_emmc.txt | 2 +- 24 files changed, 9536 insertions(+), 1015 deletions(-) delete mode 100644 conf/machine/smarcimx8m2g.conf delete mode 100644 conf/machine/smarcimx8m4g.conf create mode 100644 conf/machine/smarcimx8mq2g.conf create mode 100644 conf/machine/smarcimx8mq4g.conf delete mode 100644 recipes-bsp/imx-atf/imx-atf/imx8m-atf-fix-derate-enable.patch delete mode 100644 recipes-bsp/imx-atf/imx-atf_2.0.bbappend create mode 100644 recipes-bsp/imx-atf/imx-atf_2.2.bbappend delete mode 100644 recipes-bsp/imx-mkimage/imx-boot_0.2.bbappend create mode 100644 recipes-bsp/imx-mkimage/imx-boot_1.0.bbappend delete mode 100644 recipes-bsp/u-boot/u-boot-smarcimx8m_2019.04.bb create mode 100644 recipes-bsp/u-boot/u-boot-smarcimx8mq_2020.04.bb create mode 100644 recipes-core/base-files/base-files/issue create mode 100644 recipes-core/base-files/base-files/issue.net create mode 100644 recipes-core/base-files/base-files_%.bbappend delete mode 100644 recipes-kernel/linux/linux-smarcimx8m_4.19.35.bb create mode 100644 recipes-kernel/linux/linux-smarcimx8mq_5.4.bb diff --git a/conf/layer.conf b/conf/layer.conf index 1c1a36f..ca40b9f 100644 --- a/conf/layer.conf +++ b/conf/layer.conf @@ -5,23 +5,112 @@ BBPATH .= ":${LAYERDIR}" BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ ${LAYERDIR}/recipes-*/*/*.bbappend" -BBFILE_COLLECTIONS += "smarcimx8m" -BBFILE_PATTERN_smarcimx8m := "^${LAYERDIR}/" -BBFILE_PRIORITY_smarcimx8m = "12" -LAYERSERIES_COMPAT_smarcimx8m = "warrior" +BBFILE_COLLECTIONS += "smarcimx8mq" +BBFILE_PATTERN_smarcimx8mq := "^${LAYERDIR}" +BBFILE_PRIORITY_smarcimx8mq = "12" +LAYERSERIES_COMPAT_smarcimx8mq = "warrior zeus" -HOSTTOOLS_NONFATAL_append = " bc sha384sum xxd" +# Define new EULAs and add them to the list defined in meta-freescale. +# See fsl-eula-unpack.bbclass. +FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V10 = "fd4b227530cd88a82af6a5982cfb724d" +FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V11 = "228c72f2a91452b8a03c4cab30f30ef9" +FSL_EULA_FILE_MD5SUMS_append = " \ + ${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V10} \ + ${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V11} \ +" + +# Override the EULA defined in meta-freescale. +FSL_EULA_FILE = "${LAYERDIR}/../EULA.txt" +FSL_EULA_FILE_MD5SUM = "${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V11}" -# Enable optee for all builds using this layer, assuming the machine supports it. -# To remove optee from the build, add the following line to local.conf: -# DISTRO_FEATURES_remove = "optee" +HOSTTOOLS_NONFATAL_append = " bc rsync xxd" + +# optee is no longer a valid distro feature. Use machine feature to remove, like this: +# MACHINE_FEATURES_remove = "optee" # DEPRECATED: The ability to remove optee from the build is deprecated and # will be removed in some future release. -DISTRO_FEATURES_append = " optee" DISTRO_FEATURES_FILTER_NATIVESDK += "wayland" -BBMASK += "meta-freescale/recipes-graphics/wayland/weston-init.bbappend" +MACHINE_USES_VIVANTE_KERNEL_DRIVER_MODULE ?= "0" + +# Overrides for imx-base.inc +IMAGE_CLASSES += "image_types_create_sdcard_symlink" + +MACHINE_SOCARCH_FILTER_append_imxgpu = " opencv" + +MACHINE_SOCARCH_FILTER_remove = " imx-parser" + +MACHINE_FIRMWARE_append = " ${@bb.utils.contains('MACHINE_FEATURES', 'bcm4339', 'linux-firmware-bcm4339', '', d)}" +MACHINE_FIRMWARE_append = " ${@bb.utils.contains('MACHINE_FEATURES', 'bcm43430', 'linux-firmware-bcm43430', '', d)}" +MACHINE_FIRMWARE_append = " ${@bb.utils.contains('MACHINE_FEATURES', 'bcm43455', 'linux-firmware-bcm43455', '', d)}" +MACHINE_FIRMWARE_append = " ${@bb.utils.contains('MACHINE_FEATURES', 'bcm4356', 'linux-firmware-bcm4356-pcie', '', d)}" +MACHINE_FIRMWARE_append = " ${@bb.utils.contains('MACHINE_FEATURES', 'bcm4359', 'linux-firmware-bcm4359-pcie', '', d)}" +MACHINE_FIRMWARE_append = " ${@bb.utils.contains('MACHINE_FEATURES', 'nxp8987', 'linux-firmware-nxp8987', '', d)}" + +# Extra Marvell Wi-Fi & BTE driver and firmware +MACHINE_EXTRA_RRECOMMENDS_append = " ${@bb.utils.contains('MACHINE_FEATURES', 'mrvl8997', 'packagegroup-imx-mrvl8997', '', d)}" + +# Extra NXP Wlan SDK +MACHINE_EXTRA_RRECOMMENDS_append = " ${@bb.utils.contains('MACHINE_FEATURES', 'nxp8987', 'nxp-wlan-sdk', '', d)}" + +MACHINE_GSTREAMER_1_0_PLUGIN_mx8 ?= "imx-gst1.0-plugin" + +PREFERRED_VERSION_weston_mx8 ?= "8.0.0.imx" + +PREFERRED_VERSION_wayland-protocols_mx8 = "1.18.imx" + +PREFERRED_VERSION_libdrm_mx8 ?= "2.4.99.imx" + +PREFERRED_VERSION_isp-imx ?= "4.0.8.2" +PREFERRED_VERSION_basler-camera ?= "1.0.2" + +PREFERRED_VERSION_optee-client_mx8 = "3.7.0.imx" +PREFERRED_VERSION_optee-os_mx8 = "3.7.0.imx" +PREFERRED_VERSION_optee-test_mx8 = "3.7.0.imx" + +# Use the stable version 3.2.0. Version 3.7.0 is still +# in an experimental state +PREFERRED_VERSION_optee-os ?= "3.2.0.imx" +PREFERRED_VERSION_optee-client ?= "3.2.0.imx" +PREFERRED_VERSION_optee-test ?= "3.2.0.imx" +# Temporary workaround to override specific prefered version +# in meta-freescale layer for i.MX8. +PREFERRED_VERSION_optee-os_mx8 ?= "3.7.0.imx" +PREFERRED_VERSION_optee-client_mx8 ?= "3.7.0.imx" +PREFERRED_VERSION_optee-test_mx8 ?= "3.7.0.imx" + +IMX_DEFAULT_KERNEL_mx6ulz = "linux-imx" + +SOC_DEFAULT_IMAGE_FSTYPES_remove = "wic.gz" +SOC_DEFAULT_IMAGE_FSTYPES_append = " wic.bz2 tar.bz2" + +# Remove from upstream +SDCARD_ROOTFS = "NO_LONGER_USED" + +OPTEE_BOOT_IMAGE_mx8 ?= "tee.bin" + +IMAGE_BOOT_FILES_append = " \ + ${@bb.utils.contains('COMBINED_FEATURES', 'xen', 'xen', '', d)} \ +" + +IMAGE_INSTALL_append = " \ + ${@bb.utils.contains('COMBINED_FEATURES', 'jailhouse', 'jailhouse', '', d)} \ + ${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'packagegroup-fsl-optee-imx', '', d)} \ + ${@bb.utils.contains('COMBINED_FEATURES', 'xen', 'imx-xen-base imx-xen-hypervisor', '', d)} \ +" + +MACHINE_FEATURES_append_imx = " nxp8987" + +# Overrides for all MACHINE.conf with optee support +UBOOT_CONFIG_OPTEE_CONFIG = "mx${OPTEE_BIN_EXT}_optee_config" +UBOOT_CONFIG[sd-optee] = "${UBOOT_CONFIG_OPTEE_CONFIG},sdcard" + + +MACHINE_FEATURES_remove_smarcimx8mq2g = "qca6174" +MACHINE_FEATURES_append_smarcimx8mq2g = " bcm43455 bcm4356 bcm4359 mrvl8997 jailhouse" +MACHINE_FEATURES_remove_smarcimx8mq4g = "qca6174" +MACHINE_FEATURES_append_smarcimx8mq4g = " bcm43455 bcm4356 bcm4359 mrvl8997 jailhouse" EMB_UBOOT_MIRROR ?= "git://git@git.embedian.com/developer/smarc-t335x-uboot.git" EMB_KERNEL_MIRROR ?= "git://git@git.embedian.com/developer/smarc-fsl-linux-kernel.git" @@ -30,3 +119,4 @@ MIRRORS += " \ ${EMB_UBOOT_MIRROR} git://github.com/embedian/smarc-uboot.git;protocol=git;branch=${SRCBRANCH} \n \ ${EMB_KERNEL_MIRROR} git://github.com/embedian/smarc-fsl-linux-kernel.git;protocol=git;branch=${SRCBRANCH} \n \ " + diff --git a/conf/machine/smarcimx8m2g.conf b/conf/machine/smarcimx8m2g.conf deleted file mode 100644 index 1f0824d..0000000 --- a/conf/machine/smarcimx8m2g.conf +++ /dev/null @@ -1,88 +0,0 @@ -#@TYPE: Machine -#@NAME: EMBEDIAN SMARC-iMX8M COMPUTER ON MODULES with 2GB LPDDR4 MEMORY -#@SOC: i.MX8MQ -#@DESCRIPTION: Machine configuration for Embedian SMARC-iMX8M -#@MAINTAINER: Eric Lee -# -# http://www.www.embedian.com - -MACHINEOVERRIDES =. "mx8:mx8m:mx8mq:" - -require conf/machine/include/imx-base.inc -require conf/machine/include/arm/arch-arm64.inc - -MACHINE_FEATURES_append_smarcimx8m2g = " jailhouse" - -MACHINE_FEATURES += " usbgadget vfat ext2 alsa serial pci wifi bluetooth" - -IMAGE_FEATURES += "package-management" - -# Embedian BSP default providers -PREFERRED_PROVIDER_virtual/kernel_smarcimx8m2g ?= "linux-smarcimx8m" -PREFERRED_VERSION_linux-smarcimx8m2g_smarcimx8m2g = "4.19.35" - -KERNEL_DEVICETREE = " \ - embedian/fsl-smarcimx8mq.dtb \ - embedian/fsl-smarcimx8mq-dcss-lvds.dtb \ - embedian/fsl-smarcimx8mq-lcdif-lvds.dtb \ - embedian/fsl-smarcimx8mq-hdmi.dtb \ - embedian/fsl-smarcimx8mq-dp.dtb \ - embedian/fsl-smarcimx8mq-edp.dtb \ - embedian/fsl-smarcimx8mq-dual-display.dtb \ -" -IMAGE_BOOTFILES_DEPENDS += "imx-m4-demos:do_deploy" -IMAGE_BOOT_FILES += "imx8mq_m4_TCM_hello_world.bin imx8mq_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin imx8mq_m4_TCM_rpmsg_lite_str_echo_rtos.bin" - -PREFERRED_PROVIDER_u-boot_smarcimx8m2g = "u-boot-smarcimx8m" -PREFERRED_PROVIDER_virtual/bootloader_smarcimx8m2g = "u-boot-smarcimx8m" - -UBOOT_CONFIG ??= "sd" -UBOOT_CONFIG[sd] = "smarcimx8mq_2g_ser3_defconfig,sdcard" -SPL_BINARY = "spl/u-boot-spl.bin" - -# Set DDR FIRMWARE -DDR_FIRMWARE_NAME = "lpddr4_pmu_train_1d_imem.bin lpddr4_pmu_train_1d_dmem.bin lpddr4_pmu_train_2d_imem.bin lpddr4_pmu_train_2d_dmem.bin" - -# Set U-Boot DTB -UBOOT_DTB_NAME = "fsl-smarcimx8mq.dtb" - -# Set imx-mkimage boot target -IMXBOOT_TARGETS = "flash_evk flash_evk_no_hdmi flash_dp_evk" - -SERIAL_CONSOLE = "115200 ttymxc0" - -IMAGE_BOOTLOADER = "imx-boot" - -LOADADDR = "" -UBOOT_MAKE_TARGET = "" -IMX_BOOT_SEEK = "33" - -MACHINE_EXTRA_RDEPENDS += " \ - imx-boot \ - packagegroup-tools-bluetooth \ - pm-utils \ - kmod \ - hdparm \ - gptfdisk \ - lftp \ - vim \ - ntp \ - boost \ - nodejs \ - networkmanager \ - imx-gpu-viv \ - " - -# Packages added to all images (including core-image-minimal) -IMAGE_INSTALL_append = " \ - firmware-imx-sdma \ - firmware-imx-epdc \ - fsl-rc-local \ - " - -IMAGE_FSTYPES = "tar.bz2" - -# Ship all kernel modules by default -MACHINE_EXTRA_RRECOMMENDS = "kernel-modules" - -MACHINE_FIRMWARE_append_mx8 = " linux-firmware-ath10k" diff --git a/conf/machine/smarcimx8m4g.conf b/conf/machine/smarcimx8m4g.conf deleted file mode 100644 index c206df9..0000000 --- a/conf/machine/smarcimx8m4g.conf +++ /dev/null @@ -1,88 +0,0 @@ -#@TYPE: Machine -#@NAME: EMBEDIAN SMARC-iMX8M COMPUTER ON MODULES with 2GB LPDDR4 MEMORY -#@SOC: i.MX8MQ -#@DESCRIPTION: Machine configuration for Embedian SMARC-iMX8M -#@MAINTAINER: Eric Lee -# -# http://www.www.embedian.com - -MACHINEOVERRIDES =. "mx8:mx8m:mx8mq:" - -require conf/machine/include/imx-base.inc -require conf/machine/include/arm/arch-arm64.inc - -MACHINE_FEATURES_append_smarcimx8m4g = " jailhouse" - -MACHINE_FEATURES += " usbgadget vfat ext2 alsa serial pci wifi bluetooth" - -IMAGE_FEATURES += "package-management" - -# Embedian BSP default providers -PREFERRED_PROVIDER_virtual/kernel_smarcimx8m4g ?= "linux-smarcimx8m" -PREFERRED_VERSION_linux-smarcimx8m4g_smarcimx8m4g = "4.19.35" - -KERNEL_DEVICETREE = " \ - embedian/fsl-smarcimx8mq.dtb \ - embedian/fsl-smarcimx8mq-dcss-lvds.dtb \ - embedian/fsl-smarcimx8mq-lcdif-lvds.dtb \ - embedian/fsl-smarcimx8mq-hdmi.dtb \ - embedian/fsl-smarcimx8mq-dp.dtb \ - embedian/fsl-smarcimx8mq-edp.dtb \ - embedian/fsl-smarcimx8mq-dual-display.dtb \ -" -IMAGE_BOOTFILES_DEPENDS += "imx-m4-demos:do_deploy" -IMAGE_BOOT_FILES += "imx8mq_m4_TCM_hello_world.bin imx8mq_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin imx8mq_m4_TCM_rpmsg_lite_str_echo_rtos.bin" - -PREFERRED_PROVIDER_u-boot_smarcimx8m4g = "u-boot-smarcimx8m" -PREFERRED_PROVIDER_virtual/bootloader_smarcimx8m4g = "u-boot-smarcimx8m" - -UBOOT_CONFIG ??= "sd" -UBOOT_CONFIG[sd] = "smarcimx8mq_4g_ser3_defconfig,sdcard" -SPL_BINARY = "spl/u-boot-spl.bin" - -# Set DDR FIRMWARE -DDR_FIRMWARE_NAME = "lpddr4_pmu_train_1d_imem.bin lpddr4_pmu_train_1d_dmem.bin lpddr4_pmu_train_2d_imem.bin lpddr4_pmu_train_2d_dmem.bin" - -# Set U-Boot DTB -UBOOT_DTB_NAME = "fsl-smarcimx8mq.dtb" - -# Set imx-mkimage boot target -IMXBOOT_TARGETS = "flash_evk flash_evk_no_hdmi flash_dp_evk" - -SERIAL_CONSOLE = "115200 ttymxc0" - -IMAGE_BOOTLOADER = "imx-boot" - -LOADADDR = "" -UBOOT_MAKE_TARGET = "" -IMX_BOOT_SEEK = "33" - -MACHINE_EXTRA_RDEPENDS += " \ - imx-boot \ - packagegroup-tools-bluetooth \ - pm-utils \ - kmod \ - hdparm \ - gptfdisk \ - lftp \ - vim \ - ntp \ - boost \ - nodejs \ - networkmanager \ - imx-gpu-viv \ - " - -# Packages added to all images (including core-image-minimal) -IMAGE_INSTALL_append = " \ - firmware-imx-sdma \ - firmware-imx-epdc \ - fsl-rc-local \ - " - -IMAGE_FSTYPES = "tar.bz2" - -# Ship all kernel modules by default -MACHINE_EXTRA_RRECOMMENDS = "kernel-modules" - -MACHINE_FIRMWARE_append_mx8 = " linux-firmware-ath10k" diff --git a/conf/machine/smarcimx8mq2g.conf b/conf/machine/smarcimx8mq2g.conf new file mode 100644 index 0000000..df17617 --- /dev/null +++ b/conf/machine/smarcimx8mq2g.conf @@ -0,0 +1,91 @@ +#@TYPE: Machine +#@NAME: EMBEDIAN SMARC-iMX8M COMPUTER ON MODULES with 2GB LPDDR4 MEMORY +#@SOC: i.MX8MQ +#@DESCRIPTION: Machine configuration for Embedian SMARC-iMX8M +#@MAINTAINER: Eric Lee +# +# http://www.www.embedian.com + +MACHINEOVERRIDES =. "mx8:mx8m:mx8mq:" + +require conf/machine/include/imx-base.inc +require conf/machine/include/tune-cortexa53.inc + +MACHINE_FEATURES += " usbgadget vfat ext2 alsa serial pci wifi bluetooth" + +PACKAGE_CLASSES = "package_rpm" + +# Embedian BSP default providers +PREFERRED_PROVIDER_virtual/kernel_smarcimx8mq2g ?= "linux-smarcimx8mq" +PREFERRED_VERSION_linux-smarcimx8mq4g_smarcimx8mq2g = "5.4" + +KERNEL_DEVICETREE = " \ + embedian/imx8mq-smarc.dtb \ + embedian/imx8mq-smarc-dcss-lvds.dtb \ + embedian/imx8mq-smarc-lcdif-lvds.dtb \ + embedian/imx8mq-smarc-hdmi.dtb \ + embedian/imx8mq-smarc-dp.dtb \ + embedian/imx8mq-smarc-dual-display.dtb \ +" +MACHINE_EXTRA_RRECOMMENDS_append_mx8mq = " imx-m4-demos" +IMAGE_BOOTFILES_DEPENDS += "imx-m4-demos:do_deploy" +IMAGE_BOOT_FILES += "imx8mq_m4_TCM_hello_world.bin imx8mq_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin imx8mq_m4_TCM_rpmsg_lite_str_echo_rtos.bin" + +PREFERRED_PROVIDER_u-boot_smarcimx8mq2g = "u-boot-smarcimx8mq" +PREFERRED_PROVIDER_virtual/bootloader_smarcimx8mq2g = "u-boot-smarcimx8mq" + +UBOOT_CONFIG ??= "sd" +UBOOT_CONFIG[sd] = "smarcimx8mq_2g_ser3_defconfig,sdcard" +SPL_BINARY = "spl/u-boot-spl.bin" + +# Set DDR FIRMWARE +DDR_FIRMWARE_NAME = "lpddr4_pmu_train_1d_imem.bin lpddr4_pmu_train_1d_dmem.bin lpddr4_pmu_train_2d_imem.bin lpddr4_pmu_train_2d_dmem.bin" + +# Set U-Boot DTB +UBOOT_DTB_NAME = "imx8mq-smarc.dtb" + +# Set imx-mkimage boot target +IMXBOOT_TARGETS = "flash_evk flash_evk_no_hdmi flash_dp_evk" + +SERIAL_CONSOLE = "115200 ttymxc0" + +IMAGE_BOOTLOADER = "imx-boot" + +LOADADDR = "" +UBOOT_MAKE_TARGET = "" +IMX_BOOT_SEEK = "33" + +MACHINE_EXTRA_RDEPENDS += " \ + imx-boot \ + packagegroup-tools-bluetooth \ + pm-utils \ + kmod \ + hdparm \ + gptfdisk \ + lftp \ + vim \ + ntp \ + boost \ + nodejs \ + networkmanager \ + imx-gpu-viv \ + " + +# Packages added to all images (including core-image-minimal) + +# eIQ Machine Learning. Note that many of the features require Qt 5. Disable +# this when you build image without QT 5. +IMAGE_INSTALL_append = " \ + packagegroup-imx-ml \ + fsl-rc-local \ + " +#IMAGE_INSTALL_append = " \ +# fsl-rc-local \ +# " + +IMAGE_FSTYPES = "tar.bz2" + +# Ship all kernel modules by default +MACHINE_EXTRA_RRECOMMENDS = "kernel-modules" + +MACHINE_FIRMWARE_append_mx8 = " linux-firmware-ath10k firmware-imx-sdma firmware-imx-regulatory" diff --git a/conf/machine/smarcimx8mq4g.conf b/conf/machine/smarcimx8mq4g.conf new file mode 100644 index 0000000..8095884 --- /dev/null +++ b/conf/machine/smarcimx8mq4g.conf @@ -0,0 +1,91 @@ +#@TYPE: Machine +#@NAME: EMBEDIAN SMARC-iMX8M COMPUTER ON MODULES with 4GB LPDDR4 MEMORY +#@SOC: i.MX8MQ +#@DESCRIPTION: Machine configuration for Embedian SMARC-iMX8M +#@MAINTAINER: Eric Lee +# +# http://www.www.embedian.com + +MACHINEOVERRIDES =. "mx8:mx8m:mx8mq:" + +require conf/machine/include/imx-base.inc +require conf/machine/include/tune-cortexa53.inc + +MACHINE_FEATURES += " usbgadget vfat ext2 alsa serial pci wifi bluetooth" + +PACKAGE_CLASSES = "package_rpm" + +# Embedian BSP default providers +PREFERRED_PROVIDER_virtual/kernel_smarcimx8mq4g ?= "linux-smarcimx8mq" +PREFERRED_VERSION_linux-smarcimx8mq4g_smarcimx8mq4g = "5.4" + +KERNEL_DEVICETREE = " \ + embedian/imx8mq-smarc.dtb \ + embedian/imx8mq-smarc-dcss-lvds.dtb \ + embedian/imx8mq-smarc-lcdif-lvds.dtb \ + embedian/imx8mq-smarc-hdmi.dtb \ + embedian/imx8mq-smarc-dp.dtb \ + embedian/imx8mq-smarc-dual-display.dtb \ +" +MACHINE_EXTRA_RRECOMMENDS_append_mx8mq = " imx-m4-demos" +IMAGE_BOOTFILES_DEPENDS += "imx-m4-demos:do_deploy" +IMAGE_BOOT_FILES += "imx8mq_m4_TCM_hello_world.bin imx8mq_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin imx8mq_m4_TCM_rpmsg_lite_str_echo_rtos.bin" + +PREFERRED_PROVIDER_u-boot_smarcimx8mq4g = "u-boot-smarcimx8mq" +PREFERRED_PROVIDER_virtual/bootloader_smarcimx8mq4g = "u-boot-smarcimx8mq" + +UBOOT_CONFIG ??= "sd" +UBOOT_CONFIG[sd] = "smarcimx8mq_4g_ser3_defconfig,sdcard" +SPL_BINARY = "spl/u-boot-spl.bin" + +# Set DDR FIRMWARE +DDR_FIRMWARE_NAME = "lpddr4_pmu_train_1d_imem.bin lpddr4_pmu_train_1d_dmem.bin lpddr4_pmu_train_2d_imem.bin lpddr4_pmu_train_2d_dmem.bin" + +# Set U-Boot DTB +UBOOT_DTB_NAME = "imx8mq-smarc.dtb" + +# Set imx-mkimage boot target +IMXBOOT_TARGETS = "flash_evk flash_evk_no_hdmi flash_dp_evk" + +SERIAL_CONSOLE = "115200 ttymxc0" + +IMAGE_BOOTLOADER = "imx-boot" + +LOADADDR = "" +UBOOT_MAKE_TARGET = "" +IMX_BOOT_SEEK = "33" + +MACHINE_EXTRA_RDEPENDS += " \ + imx-boot \ + packagegroup-tools-bluetooth \ + pm-utils \ + kmod \ + hdparm \ + gptfdisk \ + lftp \ + vim \ + ntp \ + boost \ + nodejs \ + networkmanager \ + imx-gpu-viv \ + " + +# Packages added to all images (including core-image-minimal) + +# eIQ Machine Learning. Note that many of the features require Qt 5. Disable +# this when you build image without QT 5. +IMAGE_INSTALL_append = " \ + packagegroup-imx-ml \ + fsl-rc-local \ + " +#IMAGE_INSTALL_append = " \ +# fsl-rc-local \ +# " + +IMAGE_FSTYPES = "tar.bz2" + +# Ship all kernel modules by default +MACHINE_EXTRA_RRECOMMENDS = "kernel-modules" + +MACHINE_FIRMWARE_append_mx8 = " linux-firmware-ath10k firmware-imx-sdma firmware-imx-regulatory" diff --git a/recipes-bsp/alsa-state/alsa-state/asound.state b/recipes-bsp/alsa-state/alsa-state/asound.state index 55499dd..75c1bf8 100755 --- a/recipes-bsp/alsa-state/alsa-state/asound.state +++ b/recipes-bsp/alsa-state/alsa-state/asound.state @@ -1,632 +1,9286 @@ -state.imxhdmisoc { - control.1 { - iface MIXER - name 'IEC958 Playback Default' - value '0400020200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' - comment { - access 'read write volatile' - type IEC958 - count 1 - } - } - control.2 { - iface MIXER - name 'HDMI Support Channels' - value 2 - comment { - access 'read volatile' - type INTEGER - count 1 - range '0 - 0' - } - } - control.3 { - iface MIXER - name 'HDMI Support Rates' - value.0 32000 - value.1 44100 - value.2 48000 - comment { - access 'read volatile' - type INTEGER - count 3 - range '0 - 0' - } - } - control.4 { - iface MIXER - name 'HDMI Support Formats' - value 16 - comment { - access 'read volatile' - type INTEGER - count 1 - range '0 - 0' - } - } -} -state.amixaudiosai { +state.wm8962audio { control.1 { iface MIXER - name 'Mixing Clock Source' - value TDM1 + name 'Input Mixer Switch' + value.0 true + value.1 true comment { access 'read write' - type ENUMERATED - count 1 - item.0 TDM1 - item.1 TDM2 + type BOOLEAN + count 2 } } control.2 { iface MIXER - name 'Output Source' - value Disabled + name 'MIXINL IN2L Volume' + value 5 comment { access 'read write' - type ENUMERATED + type INTEGER count 1 - item.0 Disabled - item.1 TDM1 - item.2 TDM2 - item.3 Mixed + range '0 - 7' + dbmin -1500 + dbmax 600 + dbvalue.0 0 } } control.3 { iface MIXER - name 'Output Width' - value '32b' + name 'MIXINL PGA Volume' + value 0 comment { access 'read write' - type ENUMERATED + type INTEGER count 1 - item.0 '16b' - item.1 '18b' - item.2 '20b' - item.3 '24b' - item.4 '32b' + range '0 - 7' + dbmin 0 + dbmax 3000 + dbvalue.0 0 } } control.4 { iface MIXER - name 'Output Clock Polarity' - value 'Negative edge' + name 'MIXINL IN3L Volume' + value 5 comment { access 'read write' - type ENUMERATED + type INTEGER count 1 - item.0 'Positive edge' - item.1 'Negative edge' + range '0 - 7' + dbmin -1500 + dbmax 600 + dbvalue.0 0 } } control.5 { iface MIXER - name 'Frame Rate Diff Error' - value Unmask + name 'MIXINR IN2R Volume' + value 5 comment { access 'read write' - type ENUMERATED + type INTEGER count 1 - item.0 Unmask - item.1 Mask + range '0 - 7' + dbmin -1500 + dbmax 600 + dbvalue.0 0 } } control.6 { iface MIXER - name 'Clock Freq Diff Error' - value Unmask + name 'MIXINR PGA Volume' + value 0 comment { access 'read write' - type ENUMERATED + type INTEGER count 1 - item.0 Unmask - item.1 Mask + range '0 - 7' + dbmin 0 + dbmax 3000 + dbvalue.0 0 } } control.7 { iface MIXER - name 'Sync Mode Config' - value Disabled + name 'MIXINR IN3R Volume' + value 7 comment { access 'read write' - type ENUMERATED + type INTEGER count 1 - item.0 Disabled - item.1 Enabled + range '0 - 7' + dbmin -1500 + dbmax 600 + dbvalue.0 600 } } control.8 { iface MIXER - name 'Sync Mode Clk Source' - value TDM1 + name 'Digital Capture Volume' + value.0 108 + value.1 108 comment { access 'read write' - type ENUMERATED - count 1 - item.0 TDM1 - item.1 TDM2 + type INTEGER + count 2 + range '0 - 127' + dbmin -9999999 + dbmax 2325 + dbvalue.0 900 + dbvalue.1 900 } } control.9 { iface MIXER - name 'TDM1 Attenuation' - value Disabled + name 'Capture Volume' + value.0 40 + value.1 40 comment { access 'read write' - type ENUMERATED - count 1 - item.0 Disabled - item.1 Enabled + type INTEGER + count 2 + range '0 - 63' + dbmin -2325 + dbmax 2400 + dbvalue.0 675 + dbvalue.1 675 } } control.10 { iface MIXER - name 'TDM1 Attenuation Direction' - value Downward + name 'Capture Switch' + value.0 true + value.1 true comment { access 'read write' - type ENUMERATED - count 1 - item.0 Downward - item.1 Upward + type BOOLEAN + count 2 } } control.11 { iface MIXER - name 'TDM1 Attenuation Step Divider' - value 0 + name 'Capture ZC Switch' + value.0 true + value.1 true comment { access 'read write' - type INTEGER - count 1 - range '0 - 4095' + type BOOLEAN + count 2 } } control.12 { iface MIXER - name 'TDM1 Attenuation Initial Value' - value 262143 + name 'Capture HPF Switch' + value true comment { access 'read write' - type INTEGER + type BOOLEAN count 1 - range '0 - 262143' } } control.13 { iface MIXER - name 'TDM1 Attenuation Step Up Factor' - value 174762 + name 'Capture HPF Mode' + value Hi-fi comment { access 'read write' - type INTEGER + type ENUMERATED count 1 - range '0 - 262143' + item.0 Hi-fi + item.1 Application } } control.14 { iface MIXER - name 'TDM1 Attenuation Step Down Factor' - value 196608 + name 'Capture HPF Cutoff' + value 0 comment { access 'read write' type INTEGER count 1 - range '0 - 262143' + range '0 - 7' } } control.15 { iface MIXER - name 'TDM1 Attenuation Step Target' - value 16 + name 'Capture LHPF Switch' + value false comment { access 'read write' - type INTEGER + type BOOLEAN count 1 - range '0 - 262143' } } control.16 { iface MIXER - name 'TDM2 Attenuation' - value Disabled + name 'Capture LHPF Mode' + value LPF comment { access 'read write' type ENUMERATED count 1 - item.0 Disabled - item.1 Enabled + item.0 LPF + item.1 HPF } } control.17 { iface MIXER - name 'TDM2 Attenuation Direction' - value Downward + name 'Sidetone Volume' + value.0 0 + value.1 0 comment { access 'read write' - type ENUMERATED - count 1 - item.0 Downward - item.1 Upward + type INTEGER + count 2 + range '0 - 12' + dbmin -3600 + dbmax 0 + dbvalue.0 -3600 + dbvalue.1 -3600 } } control.18 { iface MIXER - name 'TDM2 Attenuation Step Divider' - value 0 + name 'Digital Playback Volume' + value.0 96 + value.1 96 comment { access 'read write' type INTEGER - count 1 - range '0 - 4095' + count 2 + range '0 - 127' + dbmin -9999999 + dbmax 2325 + dbvalue.0 0 + dbvalue.1 0 } } control.19 { iface MIXER - name 'TDM2 Attenuation Initial Value' - value 262143 + name 'DAC High Performance Switch' + value false comment { access 'read write' - type INTEGER + type BOOLEAN count 1 - range '0 - 262143' } } control.20 { iface MIXER - name 'TDM2 Attenuation Step Up Factor' - value 174762 + name 'DAC L/R Swap Switch' + value false comment { access 'read write' - type INTEGER + type BOOLEAN count 1 - range '0 - 262143' } } control.21 { iface MIXER - name 'TDM2 Attenuation Step Down Factor' - value 196608 + name 'ADC L/R Swap Switch' + value false comment { access 'read write' - type INTEGER + type BOOLEAN count 1 - range '0 - 262143' } } control.22 { iface MIXER - name 'TDM2 Attenuation Step Target' - value 16 + name 'ADC High Performance Switch' + value true comment { access 'read write' - type INTEGER + type BOOLEAN count 1 - range '0 - 262143' } } -} -state.wm8904audio { - control.1 { + control.23 { iface MIXER - name 'EQ1 Volume' - value 12 + name 'Beep Volume' + value 0 comment { access 'read write' type INTEGER count 1 - range '0 - 24' - dbmin -1200 - dbmax 1200 - dbvalue.0 0 + range '0 - 15' + dbmin -9999999 + dbmax -600 + dbvalue.0 -9999999 } } - control.2 { + control.24 { iface MIXER - name 'EQ2 Volume' - value 12 + name 'Headphone Volume' + value.0 93 + value.1 93 comment { access 'read write' type INTEGER - count 1 - range '0 - 24' - dbmin -1200 - dbmax 1200 - dbvalue.0 0 + count 2 + range '0 - 127' + dbmin -9999999 + dbmax 600 + dbvalue.0 -2800 + dbvalue.1 -2800 } } - control.3 { + control.25 { iface MIXER - name 'EQ3 Volume' - value 12 + name 'Headphone Switch' + value.0 true + value.1 true comment { access 'read write' - type INTEGER - count 1 - range '0 - 24' - dbmin -1200 - dbmax 1200 - dbvalue.0 0 + type BOOLEAN + count 2 } } - control.4 { + control.26 { iface MIXER - name 'EQ4 Volume' - value 12 + name 'Headphone ZC Switch' + value.0 false + value.1 false comment { access 'read write' - type INTEGER - count 1 - range '0 - 24' - dbmin -1200 - dbmax 1200 - dbvalue.0 0 + type BOOLEAN + count 2 } } - control.5 { + control.27 { iface MIXER - name 'EQ5 Volume' - value 12 + name 'Headphone Aux Volume' + value.0 7 + value.1 7 comment { access 'read write' type INTEGER - count 1 - range '0 - 24' - dbmin -1200 - dbmax 1200 + count 2 + range '0 - 7' + dbmin -700 + dbmax 0 dbvalue.0 0 + dbvalue.1 0 } } - control.6 { + control.28 { iface MIXER - name 'Digital Capture Volume' - value.0 96 - value.1 96 + name 'Headphone Mixer Switch' + value.0 false + value.1 false comment { access 'read write' - type INTEGER + type BOOLEAN count 2 - range '0 - 119' - dbmin -9999999 - dbmax 1725 - dbvalue.0 0 - dbvalue.1 0 } } - control.7 { + control.29 { iface MIXER - name 'Left Caputure Mode' - value Single-Ended + name 'HPMIXL IN4L Volume' + value 7 comment { access 'read write' - type ENUMERATED + type INTEGER count 1 - item.0 Single-Ended - item.1 'Differential Line' - item.2 'Differential Mic' + range '0 - 7' + dbmin -1500 + dbmax 600 + dbvalue.0 600 } } - control.8 { + control.30 { iface MIXER - name 'Right Capture Mode' - value Single-Ended + name 'HPMIXL IN4R Volume' + value 7 comment { access 'read write' - type ENUMERATED + type INTEGER count 1 - item.0 Single-Ended - item.1 'Differential Line' - item.2 'Differential Mic' + range '0 - 7' + dbmin -1500 + dbmax 600 + dbvalue.0 600 } } - control.9 { + control.31 { iface MIXER - name 'Capture Volume' - value.0 24 - value.1 24 + name 'HPMIXL MIXINL Volume' + value 1 comment { access 'read write' type INTEGER - count 2 - range '0 - 31' + count 1 + range '0 - 1' + dbmin -600 + dbmax 0 + dbvalue.0 0 } } - control.10 { + control.32 { iface MIXER - name 'Capture Switch' - value.0 true - value.1 true + name 'HPMIXL MIXINR Volume' + value 1 comment { access 'read write' - type BOOLEAN - count 2 + type INTEGER + count 1 + range '0 - 1' + dbmin -600 + dbmax 0 + dbvalue.0 0 } } - control.11 { + control.33 { iface MIXER - name 'High Pass Filter Switch' - value true + name 'HPMIXR IN4L Volume' + value 7 comment { access 'read write' - type BOOLEAN + type INTEGER count 1 + range '0 - 7' + dbmin -1500 + dbmax 600 + dbvalue.0 600 } } - control.12 { + control.34 { iface MIXER - name 'High Pass Filter Mode' - value Hi-fi + name 'HPMIXR IN4R Volume' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -1500 + dbmax 600 + dbvalue.0 600 + } + } + control.35 { + iface MIXER + name 'HPMIXR MIXINL Volume' + value 1 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin -600 + dbmax 0 + dbvalue.0 0 + } + } + control.36 { + iface MIXER + name 'HPMIXR MIXINR Volume' + value 1 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin -600 + dbmax 0 + dbvalue.0 0 + } + } + control.37 { + iface MIXER + name 'Speaker Boost Volume' + value 3 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin 0 + dbmax 1200 + dbvalue.0 450 + } + } + control.38 { + iface MIXER + name 'EQ Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.39 { + iface MIXER + name 'EQ1 Volume' + value.0 12 + value.1 12 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 31' + dbmin -1200 + dbmax 1900 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.40 { + iface MIXER + name 'EQ2 Volume' + value.0 12 + value.1 12 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 31' + dbmin -1200 + dbmax 1900 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.41 { + iface MIXER + name 'EQ3 Volume' + value.0 12 + value.1 12 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 31' + dbmin -1200 + dbmax 1900 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.42 { + iface MIXER + name 'EQ4 Volume' + value.0 12 + value.1 12 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 31' + dbmin -1200 + dbmax 1900 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.43 { + iface MIXER + name 'EQ5 Volume' + value.0 12 + value.1 12 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 31' + dbmin -1200 + dbmax 1900 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.44 { + iface MIXER + name 'EQL Coefficients' + value '0fca040000d81eb5f1450b7501c51c58f3730a540558168ef82907ad1103056405594000' + comment { + access 'read write' + type BYTES + count 36 + } + } + control.45 { + iface MIXER + name 'EQR Coefficients' + value '0fca040000d81eb5f1450b7501c51c58f3730a540558168ef82907ad1103056405594000' + comment { + access 'read write' + type BYTES + count 36 + } + } + control.46 { + iface MIXER + name '3D Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.47 { + iface MIXER + name '3D Coefficients' + value '0040000000000000' + comment { + access 'read write' + type BYTES + count 8 + } + } + control.48 { + iface MIXER + name 'DF1 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.49 { + iface MIXER + name 'DF1 Coefficients' + value '0000000000000000000000000000' + comment { + access 'read write' + type BYTES + count 14 + } + } + control.50 { + iface MIXER + name 'DRC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.51 { + iface MIXER + name 'DRC Coefficients' + value '000c0925000000000000' + comment { + access 'read write' + type BYTES + count 10 + } + } + control.52 { + iface MIXER + name 'VSS Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.53 { + iface MIXER + name 'VSS Coefficients' + value '008c020000350700003a4100008b7d00003a4100008cfee800780000003fb260002d18180020000000f1834000fb830000eeaec000fbac4000f17f8000f43b4000f5fb0000ea10c000fcc58000e275c00004b48000d4f9800004914000d8a48000023dc000cf7a8000dc060000f2dac000baf340000a7940001c068000fd2d00001ce840000ddc4000fc9d000009558000fe7e80000eab4000f99880000987c000fd2c400009480000035f400000870000fae4c000000b400004e18000011f4000f8b00000fbcbc00004f3800007df4000ff070000efd70000fbaf4000108a80001107c000e0080000d276000020cf400030234000fd69c0002835000006330000d9f6c000f33340000f420000040c8000fb3f8000f757c0000354000000c6c0000312c000fd8580' + comment { + access 'read write' + type BYTES + count 296 + } + } + control.54 { + iface MIXER + name 'HPF1 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.55 { + iface MIXER + name 'HPF2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.56 { + iface MIXER + name 'HPF Coefficients' + value '0000' + comment { + access 'read write' + type BYTES + count 2 + } + } + control.57 { + iface MIXER + name 'HD Bass Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.58 { + iface MIXER + name 'HD Bass Coefficients' + value '0002bd12007c586c00538121003f8bd80032f52d0065ac8c006be08700721483007214830043352500066a4a0043607900080000000100000059999a' + comment { + access 'read write' + type BYTES + count 60 + } + } + control.59 { + iface MIXER + name 'ALC Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.60 { + iface MIXER + name ALC1 + value '007b' + comment { + access 'read write' + type BYTES + count 2 + } + } + control.61 { + iface MIXER + name ALC2 + value '0000' + comment { + access 'read write' + type BYTES + count 2 + } + } + control.62 { + iface MIXER + name ALC3 + value '1c32' + comment { + access 'read write' + type BYTES + count 2 + } + } + control.63 { + iface MIXER + name 'Noise Gate' + value '3200' + comment { + access 'read write' + type BYTES + count 2 + } + } + control.64 { + iface MIXER + name 'Speaker Volume' + value.0 114 + value.1 114 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 127' + dbmin -9999999 + dbmax 600 + dbvalue.0 -700 + dbvalue.1 -700 + } + } + control.65 { + iface MIXER + name 'Speaker Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.66 { + iface MIXER + name 'Speaker ZC Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.67 { + iface MIXER + name 'Speaker Mixer Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.68 { + iface MIXER + name 'SPKOUTL Mixer IN4L Volume' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -1500 + dbmax 600 + dbvalue.0 600 + } + } + control.69 { + iface MIXER + name 'SPKOUTL Mixer IN4R Volume' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -1500 + dbmax 600 + dbvalue.0 600 + } + } + control.70 { + iface MIXER + name 'SPKOUTL Mixer MIXINL Volume' + value 1 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin -600 + dbmax 0 + dbvalue.0 0 + } + } + control.71 { + iface MIXER + name 'SPKOUTL Mixer MIXINR Volume' + value 1 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin -600 + dbmax 0 + dbvalue.0 0 + } + } + control.72 { + iface MIXER + name 'SPKOUTL Mixer DACL Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin -600 + dbmax 0 + dbvalue.0 -600 + } + } + control.73 { + iface MIXER + name 'SPKOUTL Mixer DACR Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin -600 + dbmax 0 + dbvalue.0 -600 + } + } + control.74 { + iface MIXER + name 'SPKOUTR Mixer IN4L Volume' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -1500 + dbmax 600 + dbvalue.0 600 + } + } + control.75 { + iface MIXER + name 'SPKOUTR Mixer IN4R Volume' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -1500 + dbmax 600 + dbvalue.0 600 + } + } + control.76 { + iface MIXER + name 'SPKOUTR Mixer MIXINL Volume' + value 1 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin -600 + dbmax 0 + dbvalue.0 0 + } + } + control.77 { + iface MIXER + name 'SPKOUTR Mixer MIXINR Volume' + value 1 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin -600 + dbmax 0 + dbvalue.0 0 + } + } + control.78 { + iface MIXER + name 'SPKOUTR Mixer DACL Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin -600 + dbmax 0 + dbvalue.0 -600 + } + } + control.79 { + iface MIXER + name 'SPKOUTR Mixer DACR Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin -600 + dbmax 0 + dbvalue.0 -600 + } + } + control.80 { + iface MIXER + name 'SPKOUTR PGA' + value DAC + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 DAC + item.1 Mixer + } + } + control.81 { + iface MIXER + name 'SPKOUTL PGA' + value DAC + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 DAC + item.1 Mixer + } + } + control.82 { + iface MIXER + name 'SPKOUTR Mixer DACL Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.83 { + iface MIXER + name 'SPKOUTR Mixer DACR Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.84 { + iface MIXER + name 'SPKOUTR Mixer MIXINL Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.85 { + iface MIXER + name 'SPKOUTR Mixer MIXINR Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.86 { + iface MIXER + name 'SPKOUTR Mixer IN4L Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.87 { + iface MIXER + name 'SPKOUTR Mixer IN4R Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.88 { + iface MIXER + name 'SPKOUTL Mixer DACL Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.89 { + iface MIXER + name 'SPKOUTL Mixer DACR Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.90 { + iface MIXER + name 'SPKOUTL Mixer MIXINL Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.91 { + iface MIXER + name 'SPKOUTL Mixer MIXINR Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.92 { + iface MIXER + name 'SPKOUTL Mixer IN4L Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.93 { + iface MIXER + name 'SPKOUTL Mixer IN4R Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.94 { + iface MIXER + name 'HPOUTR PGA' + value DAC + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 DAC + item.1 Mixer + } + } + control.95 { + iface MIXER + name 'HPOUTL PGA' + value DAC + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 DAC + item.1 Mixer + } + } + control.96 { + iface MIXER + name 'HPMIXR DACL Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.97 { + iface MIXER + name 'HPMIXR DACR Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.98 { + iface MIXER + name 'HPMIXR MIXINL Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.99 { + iface MIXER + name 'HPMIXR MIXINR Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.100 { + iface MIXER + name 'HPMIXR IN4L Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.101 { + iface MIXER + name 'HPMIXR IN4R Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.102 { + iface MIXER + name 'HPMIXL DACL Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.103 { + iface MIXER + name 'HPMIXL DACR Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.104 { + iface MIXER + name 'HPMIXL MIXINL Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.105 { + iface MIXER + name 'HPMIXL MIXINR Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.106 { + iface MIXER + name 'HPMIXL IN4L Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.107 { + iface MIXER + name 'HPMIXL IN4R Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.108 { + iface MIXER + name STR + value None + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 None + item.1 Left + item.2 Right + } + } + control.109 { + iface MIXER + name STL + value None + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 None + item.1 Left + item.2 Right + } + } + control.110 { + iface MIXER + name 'MIXINR IN2R Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.111 { + iface MIXER + name 'MIXINR IN3R Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.112 { + iface MIXER + name 'MIXINR PGA Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.113 { + iface MIXER + name 'MIXINL IN2L Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.114 { + iface MIXER + name 'MIXINL IN3L Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.115 { + iface MIXER + name 'MIXINL PGA Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.116 { + iface MIXER + name 'INPGAR IN1R Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.117 { + iface MIXER + name 'INPGAR IN2R Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.118 { + iface MIXER + name 'INPGAR IN3R Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.119 { + iface MIXER + name 'INPGAR IN4R Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.120 { + iface MIXER + name 'INPGAL IN1L Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.121 { + iface MIXER + name 'INPGAL IN2L Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.122 { + iface MIXER + name 'INPGAL IN3L Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.123 { + iface MIXER + name 'INPGAL IN4L Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.124 { + iface CARD + name 'Headphone Jack' + value true + comment { + access read + type BOOLEAN + count 1 + } + } +} +state.wm8960audio { + control.1 { + iface MIXER + name 'Capture Volume' + value.0 35 + value.1 35 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 63' + dbmin -1725 + dbmax 3000 + dbvalue.0 900 + dbvalue.1 900 + } + } + control.2 { + iface MIXER + name 'Capture Volume ZC Switch' + value.0 0 + value.1 0 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 1' + } + } + control.3 { + iface MIXER + name 'Capture Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.4 { + iface MIXER + name 'Right Input Boost Mixer RINPUT3 Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -9999999 + dbmax 600 + dbvalue.0 -9999999 + } + } + control.5 { + iface MIXER + name 'Right Input Boost Mixer RINPUT2 Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -9999999 + dbmax 600 + dbvalue.0 -9999999 + } + } + control.6 { + iface MIXER + name 'Left Input Boost Mixer LINPUT3 Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -9999999 + dbmax 600 + dbvalue.0 -9999999 + } + } + control.7 { + iface MIXER + name 'Left Input Boost Mixer LINPUT2 Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -9999999 + dbmax 600 + dbvalue.0 -9999999 + } + } + control.8 { + iface MIXER + name 'Right Input Boost Mixer RINPUT1 Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 3' + dbmin 0 + dbmax 2900 + dbvalue.0 0 + } + } + control.9 { + iface MIXER + name 'Left Input Boost Mixer LINPUT1 Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 3' + dbmin 0 + dbmax 2900 + dbvalue.0 0 + } + } + control.10 { + iface MIXER + name 'Playback Volume' + value.0 235 + value.1 235 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 -1000 + dbvalue.1 -1000 + } + } + control.11 { + iface MIXER + name 'Headphone Playback Volume' + value.0 101 + value.1 101 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 127' + dbmin -9999999 + dbmax 600 + dbvalue.0 -2000 + dbvalue.1 -2000 + } + } + control.12 { + iface MIXER + name 'Headphone Playback ZC Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.13 { + iface MIXER + name 'Speaker Playback Volume' + value.0 110 + value.1 110 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 127' + dbmin -9999999 + dbmax 600 + dbvalue.0 -1100 + dbvalue.1 -1100 + } + } + control.14 { + iface MIXER + name 'Speaker Playback ZC Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.15 { + iface MIXER + name 'Speaker DC Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 5' + } + } + control.16 { + iface MIXER + name 'Speaker AC Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 5' + } + } + control.17 { + iface MIXER + name 'PCM Playback -6dB Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.18 { + iface MIXER + name 'ADC Polarity' + value 'No Inversion' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'No Inversion' + item.1 'Left Inverted' + item.2 'Right Inverted' + item.3 'Stereo Inversion' + } + } + control.19 { + iface MIXER + name 'ADC High Pass Filter Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.20 { + iface MIXER + name 'DAC Polarity' + value 'No Inversion' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'No Inversion' + item.1 'Left Inverted' + item.2 'Right Inverted' + item.3 'Stereo Inversion' + } + } + control.21 { + iface MIXER + name 'DAC Deemphasis Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.22 { + iface MIXER + name '3D Filter Upper Cut-Off' + value High + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 High + item.1 Low + } + } + control.23 { + iface MIXER + name '3D Filter Lower Cut-Off' + value Low + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Low + item.1 High + } + } + control.24 { + iface MIXER + name '3D Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 15' + } + } + control.25 { + iface MIXER + name '3D Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.26 { + iface MIXER + name 'ALC Function' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 Right + item.2 Left + item.3 Stereo + } + } + control.27 { + iface MIXER + name 'ALC Max Gain' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + } + } + control.28 { + iface MIXER + name 'ALC Target' + value 4 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 15' + } + } + control.29 { + iface MIXER + name 'ALC Min Gain' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + } + } + control.30 { + iface MIXER + name 'ALC Hold Time' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 15' + } + } + control.31 { + iface MIXER + name 'ALC Mode' + value ALC + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 ALC + item.1 Limiter + } + } + control.32 { + iface MIXER + name 'ALC Decay' + value 3 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 15' + } + } + control.33 { + iface MIXER + name 'ALC Attack' + value 2 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 15' + } + } + control.34 { + iface MIXER + name 'Noise Gate Threshold' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + } + } + control.35 { + iface MIXER + name 'Noise Gate Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.36 { + iface MIXER + name 'ADC PCM Capture Volume' + value.0 195 + value.1 195 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 255' + dbmin -9999999 + dbmax 3000 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.37 { + iface MIXER + name 'Left Output Mixer Boost Bypass Volume' + value 2 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 -1500 + } + } + control.38 { + iface MIXER + name 'Left Output Mixer LINPUT3 Volume' + value 2 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 -1500 + } + } + control.39 { + iface MIXER + name 'Right Output Mixer Boost Bypass Volume' + value 2 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 -1500 + } + } + control.40 { + iface MIXER + name 'Right Output Mixer RINPUT3 Volume' + value 2 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 -1500 + } + } + control.41 { + iface MIXER + name 'ADC Data Output Select' + value 'Left Data = Left ADC; Right Data = Left ADC' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Left Data = Left ADC; Right Data = Right ADC' + item.1 'Left Data = Left ADC; Right Data = Left ADC' + item.2 'Left Data = Right ADC; Right Data = Right ADC' + item.3 'Left Data = Right ADC; Right Data = Left ADC' + } + } + control.42 { + iface MIXER + name 'Mono Output Mixer Left Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.43 { + iface MIXER + name 'Mono Output Mixer Right Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.44 { + iface MIXER + name 'Right Output Mixer PCM Playback Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.45 { + iface MIXER + name 'Right Output Mixer RINPUT3 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.46 { + iface MIXER + name 'Right Output Mixer Boost Bypass Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.47 { + iface MIXER + name 'Left Output Mixer PCM Playback Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.48 { + iface MIXER + name 'Left Output Mixer LINPUT3 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.49 { + iface MIXER + name 'Left Output Mixer Boost Bypass Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.50 { + iface MIXER + name 'Right Input Mixer Boost Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.51 { + iface MIXER + name 'Left Input Mixer Boost Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.52 { + iface MIXER + name 'Right Boost Mixer RINPUT2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.53 { + iface MIXER + name 'Right Boost Mixer RINPUT3 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.54 { + iface MIXER + name 'Right Boost Mixer RINPUT1 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.55 { + iface MIXER + name 'Left Boost Mixer LINPUT2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.56 { + iface MIXER + name 'Left Boost Mixer LINPUT3 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.57 { + iface MIXER + name 'Left Boost Mixer LINPUT1 Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.58 { + iface CARD + name 'Headphone Jack' + value true + comment { + access read + type BOOLEAN + count 1 + } + } +} +state.wm8958audio { + control.1 { + iface MIXER + name 'AIF1.1 DRC' + value '00980845000000000000' + comment { + access 'read write' + type BYTES + count 10 + } + } + control.2 { + iface MIXER + name 'AIF1.2 DRC' + value '00980845000000000000' + comment { + access 'read write' + type BYTES + count 10 + } + } + control.3 { + iface MIXER + name 'AIF2 DRC' + value '00980845000000000000' + comment { + access 'read write' + type BYTES + count 10 + } + } + control.4 { + iface MIXER + name 'AIF1DAC1 EQ1 Volume' + value 12 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + dbmin -1200 + dbmax 1900 + dbvalue.0 0 + } + } + control.5 { + iface MIXER + name 'AIF1DAC1 EQ2 Volume' + value 12 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + dbmin -1200 + dbmax 1900 + dbvalue.0 0 + } + } + control.6 { + iface MIXER + name 'AIF1DAC1 EQ3 Volume' + value 12 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + dbmin -1200 + dbmax 1900 + dbvalue.0 0 + } + } + control.7 { + iface MIXER + name 'AIF1DAC1 EQ4 Volume' + value 12 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + dbmin -1200 + dbmax 1900 + dbvalue.0 0 + } + } + control.8 { + iface MIXER + name 'AIF1DAC1 EQ5 Volume' + value 12 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + dbmin -1200 + dbmax 1900 + dbvalue.0 0 + } + } + control.9 { + iface MIXER + name 'AIF1DAC2 EQ1 Volume' + value 12 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + dbmin -1200 + dbmax 1900 + dbvalue.0 0 + } + } + control.10 { + iface MIXER + name 'AIF1DAC2 EQ2 Volume' + value 12 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + dbmin -1200 + dbmax 1900 + dbvalue.0 0 + } + } + control.11 { + iface MIXER + name 'AIF1DAC2 EQ3 Volume' + value 12 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + dbmin -1200 + dbmax 1900 + dbvalue.0 0 + } + } + control.12 { + iface MIXER + name 'AIF1DAC2 EQ4 Volume' + value 12 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + dbmin -1200 + dbmax 1900 + dbvalue.0 0 + } + } + control.13 { + iface MIXER + name 'AIF1DAC2 EQ5 Volume' + value 12 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + dbmin -1200 + dbmax 1900 + dbvalue.0 0 + } + } + control.14 { + iface MIXER + name 'AIF2 EQ1 Volume' + value 12 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + dbmin -1200 + dbmax 1900 + dbvalue.0 0 + } + } + control.15 { + iface MIXER + name 'AIF2 EQ2 Volume' + value 12 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + dbmin -1200 + dbmax 1900 + dbvalue.0 0 + } + } + control.16 { + iface MIXER + name 'AIF2 EQ3 Volume' + value 12 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + dbmin -1200 + dbmax 1900 + dbvalue.0 0 + } + } + control.17 { + iface MIXER + name 'AIF2 EQ4 Volume' + value 12 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + dbmin -1200 + dbmax 1900 + dbvalue.0 0 + } + } + control.18 { + iface MIXER + name 'AIF2 EQ5 Volume' + value 12 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + dbmin -1200 + dbmax 1900 + dbvalue.0 0 + } + } + control.19 { + iface MIXER + name 'IN1L Volume' + value 11 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + dbmin -1650 + dbmax 3000 + dbvalue.0 0 + } + } + control.20 { + iface MIXER + name 'IN1L Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.21 { + iface MIXER + name 'IN1L ZC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.22 { + iface MIXER + name 'IN1R Volume' + value 11 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + dbmin -1650 + dbmax 3000 + dbvalue.0 0 + } + } + control.23 { + iface MIXER + name 'IN1R Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.24 { + iface MIXER + name 'IN1R ZC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.25 { + iface MIXER + name 'IN2L Volume' + value 11 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + dbmin -1650 + dbmax 3000 + dbvalue.0 0 + } + } + control.26 { + iface MIXER + name 'IN2L Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.27 { + iface MIXER + name 'IN2L ZC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.28 { + iface MIXER + name 'IN2R Volume' + value 11 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + dbmin -1650 + dbmax 3000 + dbvalue.0 0 + } + } + control.29 { + iface MIXER + name 'IN2R Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.30 { + iface MIXER + name 'IN2R ZC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.31 { + iface MIXER + name 'MIXINL IN2L Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin 0 + dbmax 3000 + dbvalue.0 0 + } + } + control.32 { + iface MIXER + name 'MIXINL IN1L Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin 0 + dbmax 3000 + dbvalue.0 0 + } + } + control.33 { + iface MIXER + name 'MIXINL Output Record Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -9999999 + dbmax 600 + dbvalue.0 -9999999 + } + } + control.34 { + iface MIXER + name 'MIXINL IN1LP Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -9999999 + dbmax 600 + dbvalue.0 -9999999 + } + } + control.35 { + iface MIXER + name 'MIXINL Direct Voice Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 6' + dbmin -9999999 + dbmax 300 + dbvalue.0 -9999999 + } + } + control.36 { + iface MIXER + name 'MIXINR IN2R Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin 0 + dbmax 3000 + dbvalue.0 0 + } + } + control.37 { + iface MIXER + name 'MIXINR IN1R Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin 0 + dbmax 3000 + dbvalue.0 0 + } + } + control.38 { + iface MIXER + name 'MIXINR Output Record Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -9999999 + dbmax 600 + dbvalue.0 -9999999 + } + } + control.39 { + iface MIXER + name 'MIXINR IN1RP Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -9999999 + dbmax 600 + dbvalue.0 -9999999 + } + } + control.40 { + iface MIXER + name 'MIXINR Direct Voice Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 6' + dbmin -9999999 + dbmax 300 + dbvalue.0 -9999999 + } + } + control.41 { + iface MIXER + name 'Left Output Mixer IN2RN Volume' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 0 + } + } + control.42 { + iface MIXER + name 'Left Output Mixer IN2LN Volume' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 0 + } + } + control.43 { + iface MIXER + name 'Left Output Mixer IN2LP Volume' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 0 + } + } + control.44 { + iface MIXER + name 'Left Output Mixer IN1L Volume' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 0 + } + } + control.45 { + iface MIXER + name 'Left Output Mixer IN1R Volume' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 0 + } + } + control.46 { + iface MIXER + name 'Left Output Mixer Right Input Volume' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 0 + } + } + control.47 { + iface MIXER + name 'Left Output Mixer Left Input Volume' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 0 + } + } + control.48 { + iface MIXER + name 'Left Output Mixer DAC Volume' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 0 + } + } + control.49 { + iface MIXER + name 'Right Output Mixer IN2LN Volume' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 0 + } + } + control.50 { + iface MIXER + name 'Right Output Mixer IN2RN Volume' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 0 + } + } + control.51 { + iface MIXER + name 'Right Output Mixer IN1L Volume' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 0 + } + } + control.52 { + iface MIXER + name 'Right Output Mixer IN1R Volume' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 0 + } + } + control.53 { + iface MIXER + name 'Right Output Mixer IN2RP Volume' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 0 + } + } + control.54 { + iface MIXER + name 'Right Output Mixer Left Input Volume' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 0 + } + } + control.55 { + iface MIXER + name 'Right Output Mixer Right Input Volume' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 0 + } + } + control.56 { + iface MIXER + name 'Right Output Mixer DAC Volume' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 0 + } + } + control.57 { + iface MIXER + name 'Output Volume' + value.0 57 + value.1 57 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 63' + dbmin -5700 + dbmax 600 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.58 { + iface MIXER + name 'Output Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.59 { + iface MIXER + name 'Output ZC Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.60 { + iface MIXER + name 'Earpiece Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.61 { + iface MIXER + name 'Earpiece Volume' + value 1 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin -600 + dbmax 0 + dbvalue.0 0 + } + } + control.62 { + iface MIXER + name 'SPKL Input Volume' + value 1 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin -300 + dbmax 0 + dbvalue.0 0 + } + } + control.63 { + iface MIXER + name 'SPKL IN1LP Volume' + value 1 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin -300 + dbmax 0 + dbvalue.0 0 + } + } + control.64 { + iface MIXER + name 'SPKL Output Volume' + value 1 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin -300 + dbmax 0 + dbvalue.0 0 + } + } + control.65 { + iface MIXER + name 'SPKR Input Volume' + value 1 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin -300 + dbmax 0 + dbvalue.0 0 + } + } + control.66 { + iface MIXER + name 'SPKR IN1RP Volume' + value 1 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin -300 + dbmax 0 + dbvalue.0 0 + } + } + control.67 { + iface MIXER + name 'SPKR Output Volume' + value 1 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin -300 + dbmax 0 + dbvalue.0 0 + } + } + control.68 { + iface MIXER + name 'Speaker Mixer Volume' + value.0 3 + value.1 3 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 3' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.69 { + iface MIXER + name 'Speaker Volume' + value.0 60 + value.1 60 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 63' + dbmin -5700 + dbmax 600 + dbvalue.0 300 + dbvalue.1 300 + } + } + control.70 { + iface MIXER + name 'Speaker Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.71 { + iface MIXER + name 'Speaker ZC Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.72 { + iface MIXER + name 'Speaker Boost Volume' + value.0 0 + value.1 0 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 7' + dbmin 0 + dbmax 1200 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.73 { + iface MIXER + name 'Speaker Reference' + value SPKVDD/2 + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 SPKVDD/2 + item.1 VMID + } + } + control.74 { + iface MIXER + name 'Speaker Mode' + value 'Class D' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Class D' + item.1 'Class AB' + } + } + control.75 { + iface MIXER + name 'Headphone Volume' + value.0 25 + value.1 25 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 63' + dbmin -5700 + dbmax 600 + dbvalue.0 -3200 + dbvalue.1 -3200 + } + } + control.76 { + iface MIXER + name 'Headphone Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.77 { + iface MIXER + name 'Headphone ZC Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.78 { + iface MIXER + name 'LINEOUT1N Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.79 { + iface MIXER + name 'LINEOUT1P Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.80 { + iface MIXER + name 'LINEOUT1 Volume' + value 1 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin -600 + dbmax 0 + dbvalue.0 0 + } + } + control.81 { + iface MIXER + name 'LINEOUT2N Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.82 { + iface MIXER + name 'LINEOUT2P Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.83 { + iface MIXER + name 'LINEOUT2 Volume' + value 1 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin -600 + dbmax 0 + dbvalue.0 0 + } + } + control.84 { + iface MIXER + name 'AIF1ADC1 Volume' + value.0 96 + value.1 96 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 119' + dbmin -9999999 + dbmax 1725 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.85 { + iface MIXER + name 'AIF1ADC2 Volume' + value.0 96 + value.1 96 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 119' + dbmin -9999999 + dbmax 1725 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.86 { + iface MIXER + name 'AIF2ADC Volume' + value.0 96 + value.1 96 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 119' + dbmin -9999999 + dbmax 1725 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.87 { + iface MIXER + name 'AIF1ADCL Source' + value Left + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Left + item.1 Right + } + } + control.88 { + iface MIXER + name 'AIF1ADCR Source' + value Left + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Left + item.1 Right + } + } + control.89 { + iface MIXER + name 'AIF2ADCL Source' + value Left + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Left + item.1 Right + } + } + control.90 { + iface MIXER + name 'AIF2ADCR Source' + value Right + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Left + item.1 Right + } + } + control.91 { + iface MIXER + name 'AIF1DACL Source' + value Left + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Left + item.1 Right + } + } + control.92 { + iface MIXER + name 'AIF1DACR Source' + value Right + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Left + item.1 Right + } + } + control.93 { + iface MIXER + name 'AIF2DACL Source' + value Left + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Left + item.1 Right + } + } + control.94 { + iface MIXER + name 'AIF2DACR Source' + value Right + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Left + item.1 Right + } + } + control.95 { + iface MIXER + name 'AIF1DAC1 Volume' + value.0 96 + value.1 96 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 96' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.96 { + iface MIXER + name 'AIF1DAC2 Volume' + value.0 96 + value.1 96 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 96' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.97 { + iface MIXER + name 'AIF2DAC Volume' + value.0 96 + value.1 96 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 96' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.98 { + iface MIXER + name 'AIF1 Boost Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 3' + dbmin 0 + dbmax 1800 + dbvalue.0 0 + } + } + control.99 { + iface MIXER + name 'AIF2 Boost Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 3' + dbmin 0 + dbmax 1800 + dbvalue.0 0 + } + } + control.100 { + iface MIXER + name 'AIF1DAC1 EQ Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.101 { + iface MIXER + name 'AIF1DAC2 EQ Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.102 { + iface MIXER + name 'AIF2 EQ Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.103 { + iface MIXER + name 'AIF1DAC1 DRC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.104 { + iface MIXER + name 'AIF1ADC1L DRC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.105 { + iface MIXER + name 'AIF1ADC1R DRC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.106 { + iface MIXER + name 'AIF1DAC2 DRC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.107 { + iface MIXER + name 'AIF1ADC2L DRC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.108 { + iface MIXER + name 'AIF1ADC2R DRC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.109 { + iface MIXER + name 'AIF2DAC DRC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.110 { + iface MIXER + name 'AIF2ADCL DRC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.111 { + iface MIXER + name 'AIF2ADCR DRC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.112 { + iface MIXER + name 'DAC1 Right Sidetone Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 12' + dbmin -3600 + dbmax 0 + dbvalue.0 -3600 + } + } + control.113 { + iface MIXER + name 'DAC1 Left Sidetone Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 12' + dbmin -3600 + dbmax 0 + dbvalue.0 -3600 + } + } + control.114 { + iface MIXER + name 'DAC2 Right Sidetone Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 12' + dbmin -3600 + dbmax 0 + dbvalue.0 -3600 + } + } + control.115 { + iface MIXER + name 'DAC2 Left Sidetone Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 12' + dbmin -3600 + dbmax 0 + dbvalue.0 -3600 + } + } + control.116 { + iface MIXER + name 'Sidetone HPF Mux' + value '2.7kHz' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '2.7kHz' + item.1 '1.35kHz' + item.2 '675Hz' + item.3 '370Hz' + item.4 '180Hz' + item.5 '90Hz' + item.6 '45Hz' + } + } + control.117 { + iface MIXER + name 'Sidetone HPF Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.118 { + iface MIXER + name 'AIF1ADC1 HPF Mode' + value HiFi + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 HiFi + item.1 'Voice 1' + item.2 'Voice 2' + item.3 'Voice 3' + } + } + control.119 { + iface MIXER + name 'AIF1ADC1 HPF Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.120 { + iface MIXER + name 'AIF1ADC2 HPF Mode' + value HiFi + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 HiFi + item.1 'Voice 1' + item.2 'Voice 2' + item.3 'Voice 3' + } + } + control.121 { + iface MIXER + name 'AIF1ADC2 HPF Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.122 { + iface MIXER + name 'AIF2ADC HPF Mode' + value HiFi + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 HiFi + item.1 'Voice 1' + item.2 'Voice 2' + item.3 'Voice 3' + } + } + control.123 { + iface MIXER + name 'AIF2ADC HPF Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.124 { + iface MIXER + name 'ADC OSR' + value 'High Performance' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Low Power' + item.1 'High Performance' + } + } + control.125 { + iface MIXER + name 'DAC OSR' + value 'Low Power' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Low Power' + item.1 'High Performance' + } + } + control.126 { + iface MIXER + name 'DAC1 Volume' + value.0 96 + value.1 96 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 96' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.127 { + iface MIXER + name 'DAC1 Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.128 { + iface MIXER + name 'DAC2 Volume' + value.0 96 + value.1 96 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 96' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.129 { + iface MIXER + name 'DAC2 Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.130 { + iface MIXER + name 'SPKL DAC2 Volume' + value 1 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin -300 + dbmax 0 + dbvalue.0 0 + } + } + control.131 { + iface MIXER + name 'SPKL DAC1 Volume' + value 1 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin -300 + dbmax 0 + dbvalue.0 0 + } + } + control.132 { + iface MIXER + name 'SPKR DAC2 Volume' + value 1 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin -300 + dbmax 0 + dbvalue.0 0 + } + } + control.133 { + iface MIXER + name 'SPKR DAC1 Volume' + value 1 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin -300 + dbmax 0 + dbvalue.0 0 + } + } + control.134 { + iface MIXER + name 'AIF1DAC1 3D Stereo Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 15' + dbmin -1600 + dbmax 1145 + dbvalue.0 -1600 + } + } + control.135 { + iface MIXER + name 'AIF1DAC1 3D Stereo Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.136 { + iface MIXER + name 'AIF1DAC2 3D Stereo Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 15' + dbmin -1600 + dbmax 1145 + dbvalue.0 -1600 + } + } + control.137 { + iface MIXER + name 'AIF1DAC2 3D Stereo Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.138 { + iface MIXER + name 'AIF2DAC 3D Stereo Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 15' + dbmin -1600 + dbmax 1145 + dbvalue.0 -1600 + } + } + control.139 { + iface MIXER + name 'AIF2DAC 3D Stereo Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.140 { + iface MIXER + name 'AIF3 Boost Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 3' + dbmin 0 + dbmax 1800 + dbvalue.0 0 + } + } + control.141 { + iface MIXER + name 'AIF1DAC1 Noise Gate Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.142 { + iface MIXER + name 'AIF1DAC1 Noise Gate Hold Time' + value '30ms' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '30ms' + item.1 '125ms' + item.2 '250ms' + item.3 '500ms' + } + } + control.143 { + iface MIXER + name 'AIF1DAC1 Noise Gate Threshold Volume' + value 3 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -10200 + dbmax -6000 + dbvalue.0 -8400 + } + } + control.144 { + iface MIXER + name 'AIF1DAC2 Noise Gate Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.145 { + iface MIXER + name 'AIF1DAC2 Noise Gate Hold Time' + value '30ms' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '30ms' + item.1 '125ms' + item.2 '250ms' + item.3 '500ms' + } + } + control.146 { + iface MIXER + name 'AIF1DAC2 Noise Gate Threshold Volume' + value 3 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -10200 + dbmax -6000 + dbvalue.0 -8400 + } + } + control.147 { + iface MIXER + name 'AIF2DAC Noise Gate Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.148 { + iface MIXER + name 'AIF2DAC Noise Gate Hold Time' + value '30ms' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '30ms' + item.1 '125ms' + item.2 '250ms' + item.3 '500ms' + } + } + control.149 { + iface MIXER + name 'AIF2DAC Noise Gate Threshold Volume' + value 3 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -10200 + dbmax -6000 + dbvalue.0 -8400 + } + } + control.150 { + iface MIXER + name 'AIF1DAC1 MBC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.151 { + iface MIXER + name 'AIF1DAC2 MBC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.152 { + iface MIXER + name 'AIF2DAC MBC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.153 { + iface MIXER + name 'AIF1DAC1 VSS Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.154 { + iface MIXER + name 'AIF1DAC2 VSS Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.155 { + iface MIXER + name 'AIF2DAC VSS Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.156 { + iface MIXER + name 'AIF1DAC1 HPF1 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.157 { + iface MIXER + name 'AIF1DAC2 HPF1 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.158 { + iface MIXER + name 'AIF2DAC HPF1 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.159 { + iface MIXER + name 'AIF1DAC1 HPF2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.160 { + iface MIXER + name 'AIF1DAC2 HPF2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.161 { + iface MIXER + name 'AIF2DAC HPF2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.162 { + iface MIXER + name 'AIF1DAC1 Enhanced EQ Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.163 { + iface MIXER + name 'AIF1DAC2 Enhanced EQ Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.164 { + iface MIXER + name 'AIF2DAC Enhanced EQ Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.165 { + iface MIXER + name 'ADCR Mux' + value ADC + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 ADC + item.1 DMIC + } + } + control.166 { + iface MIXER + name 'ADCL Mux' + value ADC + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 ADC + item.1 DMIC + } + } + control.167 { + iface MIXER + name 'Right Headphone Mux' + value DAC + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Mixer + item.1 DAC + } + } + control.168 { + iface MIXER + name 'Left Headphone Mux' + value DAC + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Mixer + item.1 DAC + } + } + control.169 { + iface MIXER + name 'SPKR DAC2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.170 { + iface MIXER + name 'SPKR Input Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.171 { + iface MIXER + name 'SPKR IN1RP Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.172 { + iface MIXER + name 'SPKR Output Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.173 { + iface MIXER + name 'SPKR DAC1 Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.174 { + iface MIXER + name 'SPKL DAC2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.175 { + iface MIXER + name 'SPKL Input Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.176 { + iface MIXER + name 'SPKL IN1LP Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.177 { + iface MIXER + name 'SPKL Output Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.178 { + iface MIXER + name 'SPKL DAC1 Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.179 { + iface MIXER + name 'AIF3ADC Mux' + value AIF1ADCDAT + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 AIF1ADCDAT + item.1 AIF2ADCDAT + item.2 AIF2DACDAT + item.3 'Mono PCM' + } + } + control.180 { + iface MIXER + name 'AIF2DACR Mux' + value AIF2 + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 AIF2 + item.1 AIF3 + } + } + control.181 { + iface MIXER + name 'AIF2DACL Mux' + value AIF2 + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 AIF2 + item.1 AIF3 + } + } + control.182 { + iface MIXER + name 'Mono PCM Out Mux' + value None + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 None + item.1 AIF2ADCL + item.2 AIF2ADCR + } + } + control.183 { + iface MIXER + name 'AIF2 Loopback' + value None + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 None + item.1 ADCDAT + } + } + control.184 { + iface MIXER + name 'AIF1 Loopback' + value None + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 None + item.1 ADCDAT + } + } + control.185 { + iface MIXER + name 'AIF2ADC Mux' + value AIF2ADCDAT + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 AIF2ADCDAT + item.1 AIF3DACDAT + } + } + control.186 { + iface MIXER + name 'AIF2DAC Mux' + value AIF2DACDAT + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 AIF2DACDAT + item.1 AIF3DACDAT + } + } + control.187 { + iface MIXER + name 'AIF1DAC Mux' + value AIF1DACDAT + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 AIF1DACDAT + item.1 AIF3DACDAT + } + } + control.188 { + iface MIXER + name 'DAC1R Mixer Right Sidetone Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.189 { + iface MIXER + name 'DAC1R Mixer Left Sidetone Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.190 { + iface MIXER + name 'DAC1R Mixer AIF2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.191 { + iface MIXER + name 'DAC1R Mixer AIF1.2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.192 { + iface MIXER + name 'DAC1R Mixer AIF1.1 Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.193 { + iface MIXER + name 'DAC1L Mixer Right Sidetone Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.194 { + iface MIXER + name 'DAC1L Mixer Left Sidetone Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.195 { + iface MIXER + name 'DAC1L Mixer AIF2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.196 { + iface MIXER + name 'DAC1L Mixer AIF1.2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.197 { + iface MIXER + name 'DAC1L Mixer AIF1.1 Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.198 { + iface MIXER + name 'Right Sidetone' + value ADC/DMIC1 + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 ADC/DMIC1 + item.1 DMIC2 + } + } + control.199 { + iface MIXER + name 'Left Sidetone' + value ADC/DMIC1 + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 ADC/DMIC1 + item.1 DMIC2 + } + } + control.200 { + iface MIXER + name 'AIF2DAC2R Mixer Right Sidetone Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.201 { + iface MIXER + name 'AIF2DAC2R Mixer Left Sidetone Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.202 { + iface MIXER + name 'AIF2DAC2R Mixer AIF2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.203 { + iface MIXER + name 'AIF2DAC2R Mixer AIF1.2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.204 { + iface MIXER + name 'AIF2DAC2R Mixer AIF1.1 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.205 { + iface MIXER + name 'AIF2DAC2L Mixer Right Sidetone Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.206 { + iface MIXER + name 'AIF2DAC2L Mixer Left Sidetone Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.207 { + iface MIXER + name 'AIF2DAC2L Mixer AIF2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.208 { + iface MIXER + name 'AIF2DAC2L Mixer AIF1.2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.209 { + iface MIXER + name 'AIF2DAC2L Mixer AIF1.1 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.210 { + iface MIXER + name 'AIF1ADC2R Mixer DMIC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.211 { + iface MIXER + name 'AIF1ADC2R Mixer AIF2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.212 { + iface MIXER + name 'AIF1ADC2L Mixer DMIC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.213 { + iface MIXER + name 'AIF1ADC2L Mixer AIF2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.214 { + iface MIXER + name 'AIF1ADC1R Mixer ADC/DMIC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.215 { + iface MIXER + name 'AIF1ADC1R Mixer AIF2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.216 { + iface MIXER + name 'AIF1ADC1L Mixer ADC/DMIC Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.217 { + iface MIXER + name 'AIF1ADC1L Mixer AIF2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.218 { + iface MIXER + name 'LINEOUT2P Mixer Right Output Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.219 { + iface MIXER + name 'LINEOUT2N Mixer Left Output Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.220 { + iface MIXER + name 'LINEOUT2N Mixer Right Output Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.221 { + iface MIXER + name 'LINEOUT1P Mixer Left Output Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.222 { + iface MIXER + name 'LINEOUT1N Mixer Left Output Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.223 { + iface MIXER + name 'LINEOUT1N Mixer Right Output Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.224 { + iface MIXER + name 'SPKR Boost Direct Voice Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.225 { + iface MIXER + name 'SPKR Boost SPKL Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.226 { + iface MIXER + name 'SPKR Boost SPKR Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.227 { + iface MIXER + name 'SPKL Boost Direct Voice Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.228 { + iface MIXER + name 'SPKL Boost SPKL Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.229 { + iface MIXER + name 'SPKL Boost SPKR Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.230 { + iface MIXER + name 'Earpiece Mixer Direct Voice Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.231 { + iface MIXER + name 'Earpiece Mixer Left Output Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.232 { + iface MIXER + name 'Earpiece Mixer Right Output Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.233 { + iface MIXER + name 'Right Output Mixer Left Input Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.234 { + iface MIXER + name 'Right Output Mixer Right Input Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.235 { + iface MIXER + name 'Right Output Mixer IN2LN Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.236 { + iface MIXER + name 'Right Output Mixer IN2RN Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.237 { + iface MIXER + name 'Right Output Mixer IN1L Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.238 { + iface MIXER + name 'Right Output Mixer IN1R Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.239 { + iface MIXER + name 'Right Output Mixer IN2RP Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.240 { + iface MIXER + name 'Right Output Mixer DAC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.241 { + iface MIXER + name 'Left Output Mixer Right Input Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.242 { + iface MIXER + name 'Left Output Mixer Left Input Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.243 { + iface MIXER + name 'Left Output Mixer IN2RN Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.244 { + iface MIXER + name 'Left Output Mixer IN2LN Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.245 { + iface MIXER + name 'Left Output Mixer IN2LP Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.246 { + iface MIXER + name 'Left Output Mixer IN1R Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.247 { + iface MIXER + name 'Left Output Mixer IN1L Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.248 { + iface MIXER + name 'Left Output Mixer DAC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.249 { + iface MIXER + name 'MIXINR IN2R Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.250 { + iface MIXER + name 'MIXINR IN1R Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.251 { + iface MIXER + name 'MIXINL IN2L Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.252 { + iface MIXER + name 'MIXINL IN1L Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.253 { + iface MIXER + name 'IN2R PGA IN2RP Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.254 { + iface MIXER + name 'IN2R PGA IN2RN Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.255 { + iface MIXER + name 'IN2L PGA IN2LP Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.256 { + iface MIXER + name 'IN2L PGA IN2LN Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.257 { + iface MIXER + name 'IN1R PGA IN1RP Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.258 { + iface MIXER + name 'IN1R PGA IN1RN Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.259 { + iface MIXER + name 'IN1L PGA IN1LP Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.260 { + iface MIXER + name 'IN1L PGA IN1LN Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.261 { + iface CARD + name 'Headphone Jack' + value true + comment { + access read + type BOOLEAN + count 1 + } + } +} +state.cs42888audio { + control.1 { + iface MIXER + name 'DAC1 Playback Volume' + value.0 255 + value.1 255 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.2 { + iface MIXER + name 'DAC2 Playback Volume' + value.0 255 + value.1 255 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.3 { + iface MIXER + name 'DAC3 Playback Volume' + value.0 255 + value.1 255 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.4 { + iface MIXER + name 'DAC4 Playback Volume' + value.0 255 + value.1 255 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.5 { + iface MIXER + name 'ADC1 Capture Volume' + value.0 128 + value.1 128 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 176' + dbmin -6400 + dbmax 2400 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.6 { + iface MIXER + name 'ADC2 Capture Volume' + value.0 128 + value.1 128 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 176' + dbmin -6400 + dbmax 2400 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.7 { + iface MIXER + name 'DAC1 Invert Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.8 { + iface MIXER + name 'DAC2 Invert Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.9 { + iface MIXER + name 'DAC3 Invert Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.10 { + iface MIXER + name 'DAC4 Invert Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.11 { + iface MIXER + name 'ADC1 Invert Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.12 { + iface MIXER + name 'ADC2 Invert Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.13 { + iface MIXER + name 'ADC High-Pass Filter Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.14 { + iface MIXER + name 'DAC De-emphasis Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.15 { + iface MIXER + name 'ADC1 Single Ended Mode Switch' + value Differential + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Differential + item.1 Single-Ended + } + } + control.16 { + iface MIXER + name 'ADC2 Single Ended Mode Switch' + value Differential + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Differential + item.1 Single-Ended + } + } + control.17 { + iface MIXER + name 'DAC Single Volume Control Switch' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + } + } + control.18 { + iface MIXER + name 'DAC Soft Ramp & Zero Cross Control Switch' + value 'Immediate Change' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Immediate Change' + item.1 'Zero Cross' + item.2 'Soft Ramp' + item.3 'Soft Ramp on Zero Cross' + } + } + control.19 { + iface MIXER + name 'DAC Auto Mute Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.20 { + iface MIXER + name 'Mute ADC Serial Port Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.21 { + iface MIXER + name 'ADC Single Volume Control Switch' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + } + } + control.22 { + iface MIXER + name 'ADC Soft Ramp & Zero Cross Control Switch' + value 'Immediate Change' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Immediate Change' + item.1 'Zero Cross' + item.2 'Soft Ramp' + item.3 'Soft Ramp on Zero Cross' + } + } +} +state.imxhdmisoc { + control.1 { + iface MIXER + name 'IEC958 Playback Default' + value '0400020200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' + comment { + access 'read write volatile' + type IEC958 + count 1 + } + } + control.2 { + iface MIXER + name 'HDMI Support Channels' + value 2 + comment { + access 'read volatile' + type INTEGER + count 1 + range '0 - 0' + } + } + control.3 { + iface MIXER + name 'HDMI Support Rates' + value.0 32000 + value.1 44100 + value.2 48000 + comment { + access 'read volatile' + type INTEGER + count 3 + range '0 - 0' + } + } + control.4 { + iface MIXER + name 'HDMI Support Formats' + value 16 + comment { + access 'read volatile' + type INTEGER + count 1 + range '0 - 0' + } + } +} +state.sii902xaudio { + control { + } +} +state.ak4458audio { + control.1 { + iface MIXER + name '0 AK4458 L1ch Digital Volume' + value 255 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + } + } + control.2 { + iface MIXER + name '0 AK4458 R1ch Digital Volume' + value 255 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + } + } + control.3 { + iface MIXER + name '0 AK4458 L2ch Digital Volume' + value 255 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + } + } + control.4 { + iface MIXER + name '0 AK4458 R2ch Digital Volume' + value 255 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + } + } + control.5 { + iface MIXER + name '0 AK4458 L3ch Digital Volume' + value 255 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + } + } + control.6 { + iface MIXER + name '0 AK4458 R3ch Digital Volume' + value 255 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + } + } + control.7 { + iface MIXER + name '0 AK4458 L4ch Digital Volume' + value 255 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + } + } + control.8 { + iface MIXER + name '0 AK4458 R4ch Digital Volume' + value 255 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + } + } + control.9 { + iface MIXER + name '0 AK4458 De-emphasis Response DAC1' + value OFF + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '44.1kHz' + item.1 OFF + item.2 '48kHz' + item.3 '32kHz' + } + } + control.10 { + iface MIXER + name '0 AK4458 De-emphasis Response DAC2' + value OFF + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '44.1kHz' + item.1 OFF + item.2 '48kHz' + item.3 '32kHz' + } + } + control.11 { + iface MIXER + name '0 AK4458 De-emphasis Response DAC3' + value OFF + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '44.1kHz' + item.1 OFF + item.2 '48kHz' + item.3 '32kHz' + } + } + control.12 { + iface MIXER + name '0 AK4458 De-emphasis Response DAC4' + value OFF + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '44.1kHz' + item.1 OFF + item.2 '48kHz' + item.3 '32kHz' + } + } + control.13 { + iface MIXER + name '0 AK4458 Digital Filter Setting' + value 'Sharp Roll-Off Filter' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Sharp Roll-Off Filter' + item.1 'Slow Roll-Off Filter' + item.2 'Short delay Sharp Roll-Off Filter' + item.3 'Short delay Slow Roll-Off Filter' + item.4 'Super Slow Roll-Off Filter' + } + } + control.14 { + iface MIXER + name '0 AK4458 Inverting Enable of DZFB' + value H + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 H + item.1 L + } + } + control.15 { + iface MIXER + name '0 AK4458 Sound Mode' + value 'Sound Mode 0' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Sound Mode 0' + item.1 'Sound Mode 1' + item.2 'Sound Mode 2' + } + } + control.16 { + iface MIXER + name '0 AK4458 SDS Setting' + value 'Setting 0' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Setting 0' + item.1 'Setting 1' + item.2 'Setting 2' + item.3 'Setting 3' + item.4 'Setting 4' + item.5 'Setting 5' + item.6 'Setting 6' + item.7 'Setting 7' + } + } + control.17 { + iface MIXER + name '0 AK4458 FIR Filter Mode Setting' + value 'Mode 0' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Mode 0' + item.1 'Mode 1' + item.2 'Mode 2' + item.3 'Mode 3' + item.4 'Mode 4' + item.5 'Mode 5' + item.6 'Mode 6' + item.7 'Mode 7' + } + } + control.18 { + iface MIXER + name '0 AK4458 TDM Mode Setting' + value 'Normal Mode' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Normal Mode' + item.1 'TDM128 Mode' + item.2 'TDM256 Mode' + item.3 'TDM512 Mode' + } + } + control.19 { + iface MIXER + name '0 AK4458 DAC1 LRch Setting' + value 'Lch In, Rch In' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Lch In, Rch In' + item.1 'Lch In, Rch In Invert' + item.2 'Lch In Invert, Rch In' + item.3 'Lch In Invert, Rch In Invert' + item.4 'Rch In, Lch In' + item.5 'Rch In, Lch In Invert' + item.6 'Rch In Invert, Lch In' + item.7 'Rch In Invert, Lch In Invert' + item.8 'Lch In, Lch In' + item.9 'Lch In, Lch In Invert' + item.10 'Lch In Invert, Lch In' + item.11 'Lch In Invert, Lch In Invert' + item.12 'Rch In, Rch In' + item.13 'Rch In, Rch In Invert' + item.14 'Rch In Invert, Rch In' + item.15 'Rch In Invert, Rch In Invert' + } + } + control.20 { + iface MIXER + name '0 AK4458 DAC2 LRch Setting' + value 'Lch In, Rch In' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Lch In, Rch In' + item.1 'Lch In, Rch In Invert' + item.2 'Lch In Invert, Rch In' + item.3 'Lch In Invert, Rch In Invert' + item.4 'Rch In, Lch In' + item.5 'Rch In, Lch In Invert' + item.6 'Rch In Invert, Lch In' + item.7 'Rch In Invert, Lch In Invert' + item.8 'Lch In, Lch In' + item.9 'Lch In, Lch In Invert' + item.10 'Lch In Invert, Lch In' + item.11 'Lch In Invert, Lch In Invert' + item.12 'Rch In, Rch In' + item.13 'Rch In, Rch In Invert' + item.14 'Rch In Invert, Rch In' + item.15 'Rch In Invert, Rch In Invert' + } + } + control.21 { + iface MIXER + name '0 AK4458 DAC3 LRch Setting' + value 'Lch In, Rch In' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Lch In, Rch In' + item.1 'Lch In, Rch In Invert' + item.2 'Lch In Invert, Rch In' + item.3 'Lch In Invert, Rch In Invert' + item.4 'Rch In, Lch In' + item.5 'Rch In, Lch In Invert' + item.6 'Rch In Invert, Lch In' + item.7 'Rch In Invert, Lch In Invert' + item.8 'Lch In, Lch In' + item.9 'Lch In, Lch In Invert' + item.10 'Lch In Invert, Lch In' + item.11 'Lch In Invert, Lch In Invert' + item.12 'Rch In, Rch In' + item.13 'Rch In, Rch In Invert' + item.14 'Rch In Invert, Rch In' + item.15 'Rch In Invert, Rch In Invert' + } + } + control.22 { + iface MIXER + name '0 AK4458 DAC4 LRch Setting' + value 'Lch In, Rch In' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Lch In, Rch In' + item.1 'Lch In, Rch In Invert' + item.2 'Lch In Invert, Rch In' + item.3 'Lch In Invert, Rch In Invert' + item.4 'Rch In, Lch In' + item.5 'Rch In, Lch In Invert' + item.6 'Rch In Invert, Lch In' + item.7 'Rch In Invert, Lch In Invert' + item.8 'Lch In, Lch In' + item.9 'Lch In, Lch In Invert' + item.10 'Lch In Invert, Lch In' + item.11 'Lch In Invert, Lch In Invert' + item.12 'Rch In, Rch In' + item.13 'Rch In, Rch In Invert' + item.14 'Rch In Invert, Rch In' + item.15 'Rch In Invert, Rch In Invert' + } + } + control.23 { + iface MIXER + name '0 AK4458 Attenuation transition Time Settin' + value '4080/fs' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '4080/fs' + item.1 '2040/fs' + item.2 '510/fs' + item.3 '255/fs' + } + } + control.24 { + iface MIXER + name '0 AK4458 BICK fs Setting' + value '64fs' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '32fs,48fs' + item.1 '64fs' + } + } + control.25 { + iface MIXER + name '1 AK4458 L1ch Digital Volume' + value 255 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + } + } + control.26 { + iface MIXER + name '1 AK4458 R1ch Digital Volume' + value 255 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + } + } + control.27 { + iface MIXER + name '1 AK4458 L2ch Digital Volume' + value 255 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + } + } + control.28 { + iface MIXER + name '1 AK4458 R2ch Digital Volume' + value 255 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + } + } + control.29 { + iface MIXER + name '1 AK4458 L3ch Digital Volume' + value 255 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + } + } + control.30 { + iface MIXER + name '1 AK4458 R3ch Digital Volume' + value 255 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + } + } + control.31 { + iface MIXER + name '1 AK4458 L4ch Digital Volume' + value 255 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + } + } + control.32 { + iface MIXER + name '1 AK4458 R4ch Digital Volume' + value 255 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + } + } + control.33 { + iface MIXER + name '1 AK4458 De-emphasis Response DAC1' + value OFF + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '44.1kHz' + item.1 OFF + item.2 '48kHz' + item.3 '32kHz' + } + } + control.34 { + iface MIXER + name '1 AK4458 De-emphasis Response DAC2' + value OFF + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '44.1kHz' + item.1 OFF + item.2 '48kHz' + item.3 '32kHz' + } + } + control.35 { + iface MIXER + name '1 AK4458 De-emphasis Response DAC3' + value OFF + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '44.1kHz' + item.1 OFF + item.2 '48kHz' + item.3 '32kHz' + } + } + control.36 { + iface MIXER + name '1 AK4458 De-emphasis Response DAC4' + value OFF + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '44.1kHz' + item.1 OFF + item.2 '48kHz' + item.3 '32kHz' + } + } + control.37 { + iface MIXER + name '1 AK4458 Digital Filter Setting' + value 'Sharp Roll-Off Filter' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Sharp Roll-Off Filter' + item.1 'Slow Roll-Off Filter' + item.2 'Short delay Sharp Roll-Off Filter' + item.3 'Short delay Slow Roll-Off Filter' + item.4 'Super Slow Roll-Off Filter' + } + } + control.38 { + iface MIXER + name '1 AK4458 Inverting Enable of DZFB' + value H + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 H + item.1 L + } + } + control.39 { + iface MIXER + name '1 AK4458 Sound Mode' + value 'Sound Mode 0' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Sound Mode 0' + item.1 'Sound Mode 1' + item.2 'Sound Mode 2' + } + } + control.40 { + iface MIXER + name '1 AK4458 SDS Setting' + value 'Setting 0' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Setting 0' + item.1 'Setting 1' + item.2 'Setting 2' + item.3 'Setting 3' + item.4 'Setting 4' + item.5 'Setting 5' + item.6 'Setting 6' + item.7 'Setting 7' + } + } + control.41 { + iface MIXER + name '1 AK4458 FIR Filter Mode Setting' + value 'Mode 0' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Mode 0' + item.1 'Mode 1' + item.2 'Mode 2' + item.3 'Mode 3' + item.4 'Mode 4' + item.5 'Mode 5' + item.6 'Mode 6' + item.7 'Mode 7' + } + } + control.42 { + iface MIXER + name '1 AK4458 TDM Mode Setting' + value 'Normal Mode' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Normal Mode' + item.1 'TDM128 Mode' + item.2 'TDM256 Mode' + item.3 'TDM512 Mode' + } + } + control.43 { + iface MIXER + name '1 AK4458 DAC1 LRch Setting' + value 'Lch In, Rch In' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Lch In, Rch In' + item.1 'Lch In, Rch In Invert' + item.2 'Lch In Invert, Rch In' + item.3 'Lch In Invert, Rch In Invert' + item.4 'Rch In, Lch In' + item.5 'Rch In, Lch In Invert' + item.6 'Rch In Invert, Lch In' + item.7 'Rch In Invert, Lch In Invert' + item.8 'Lch In, Lch In' + item.9 'Lch In, Lch In Invert' + item.10 'Lch In Invert, Lch In' + item.11 'Lch In Invert, Lch In Invert' + item.12 'Rch In, Rch In' + item.13 'Rch In, Rch In Invert' + item.14 'Rch In Invert, Rch In' + item.15 'Rch In Invert, Rch In Invert' + } + } + control.44 { + iface MIXER + name '1 AK4458 DAC2 LRch Setting' + value 'Lch In, Rch In' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Lch In, Rch In' + item.1 'Lch In, Rch In Invert' + item.2 'Lch In Invert, Rch In' + item.3 'Lch In Invert, Rch In Invert' + item.4 'Rch In, Lch In' + item.5 'Rch In, Lch In Invert' + item.6 'Rch In Invert, Lch In' + item.7 'Rch In Invert, Lch In Invert' + item.8 'Lch In, Lch In' + item.9 'Lch In, Lch In Invert' + item.10 'Lch In Invert, Lch In' + item.11 'Lch In Invert, Lch In Invert' + item.12 'Rch In, Rch In' + item.13 'Rch In, Rch In Invert' + item.14 'Rch In Invert, Rch In' + item.15 'Rch In Invert, Rch In Invert' + } + } + control.45 { + iface MIXER + name '1 AK4458 DAC3 LRch Setting' + value 'Lch In, Rch In' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Lch In, Rch In' + item.1 'Lch In, Rch In Invert' + item.2 'Lch In Invert, Rch In' + item.3 'Lch In Invert, Rch In Invert' + item.4 'Rch In, Lch In' + item.5 'Rch In, Lch In Invert' + item.6 'Rch In Invert, Lch In' + item.7 'Rch In Invert, Lch In Invert' + item.8 'Lch In, Lch In' + item.9 'Lch In, Lch In Invert' + item.10 'Lch In Invert, Lch In' + item.11 'Lch In Invert, Lch In Invert' + item.12 'Rch In, Rch In' + item.13 'Rch In, Rch In Invert' + item.14 'Rch In Invert, Rch In' + item.15 'Rch In Invert, Rch In Invert' + } + } + control.46 { + iface MIXER + name '1 AK4458 DAC4 LRch Setting' + value 'Lch In, Rch In' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Lch In, Rch In' + item.1 'Lch In, Rch In Invert' + item.2 'Lch In Invert, Rch In' + item.3 'Lch In Invert, Rch In Invert' + item.4 'Rch In, Lch In' + item.5 'Rch In, Lch In Invert' + item.6 'Rch In Invert, Lch In' + item.7 'Rch In Invert, Lch In Invert' + item.8 'Lch In, Lch In' + item.9 'Lch In, Lch In Invert' + item.10 'Lch In Invert, Lch In' + item.11 'Lch In Invert, Lch In Invert' + item.12 'Rch In, Rch In' + item.13 'Rch In, Rch In Invert' + item.14 'Rch In Invert, Rch In' + item.15 'Rch In Invert, Rch In Invert' + } + } + control.47 { + iface MIXER + name '1 AK4458 Attenuation transition Time Settin' + value '4080/fs' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '4080/fs' + item.1 '2040/fs' + item.2 '510/fs' + item.3 '255/fs' + } + } + control.48 { + iface MIXER + name '1 AK4458 BICK fs Setting' + value '64fs' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '32fs,48fs' + item.1 '64fs' + } + } + control.49 { + iface MIXER + name '0 DAC1 to AOUTA' + value ON + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 OFF + item.1 ON + } + } + control.50 { + iface MIXER + name '0 DAC2 to AOUTB' + value ON + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 OFF + item.1 ON + } + } + control.51 { + iface MIXER + name '0 DAC3 to AOUTC' + value ON + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 OFF + item.1 ON + } + } + control.52 { + iface MIXER + name '0 DAC4 to AOUTD' + value ON + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 OFF + item.1 ON + } + } + control.53 { + iface MIXER + name '1 DAC1 to AOUTA' + value ON + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 OFF + item.1 ON + } + } + control.54 { + iface MIXER + name '1 DAC2 to AOUTB' + value ON + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 OFF + item.1 ON + } + } + control.55 { + iface MIXER + name '1 DAC3 to AOUTC' + value ON + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 OFF + item.1 ON + } + } + control.56 { + iface MIXER + name '1 DAC4 to AOUTD' + value ON + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 OFF + item.1 ON + } + } +} +state.ak5558audio { + control.1 { + iface MIXER + name 'AK5558 Monaural Mode' + value '8 Slot' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '8 Slot' + item.1 '2 Slot' + item.2 '4 Slot' + item.3 '1 Slot' + } + } + control.2 { + iface MIXER + name 'AK5558 TDM mode' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 TDM128 + item.2 TDM256 + item.3 TDM512 + } + } + control.3 { + iface MIXER + name 'AK5558 Digital Filter' + value 'Sharp Roll-Off' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Sharp Roll-Off' + item.1 'Show Roll-Off' + item.2 'Short Delay Sharp Roll-Off' + item.3 'Short Delay Show Roll-Off' + } + } + control.4 { + iface MIXER + name 'AK5558 DSD Mode' + value PCM + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 PCM + item.1 DSD + } + } + control.5 { + iface MIXER + name 'AK5558 Frequency of DCLK' + value '64fs' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '64fs' + item.1 '128fs' + item.2 '256fs' + } + } + control.6 { + iface MIXER + name 'AK5558 Polarity of DCLK' + value Falling + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Falling + item.1 Rising + } + } + control.7 { + iface MIXER + name 'AK5558 Master Clock Frequency at DSD Mode' + value '512fs' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '512fs' + item.1 '768fs' + } + } + control.8 { + iface MIXER + name 'AK5558 DSD Phase Modulation' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.9 { + iface MIXER + name 'AK5558 Ch1 Enable' + value On + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 On + } + } + control.10 { + iface MIXER + name 'AK5558 Ch2 Enable' + value On + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 On + } + } + control.11 { + iface MIXER + name 'AK5558 Ch3 Enable' + value On + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 On + } + } + control.12 { + iface MIXER + name 'AK5558 Ch4 Enable' + value On + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 On + } + } + control.13 { + iface MIXER + name 'AK5558 Ch5 Enable' + value On + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 On + } + } + control.14 { + iface MIXER + name 'AK5558 Ch6 Enable' + value On + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 On + } + } + control.15 { + iface MIXER + name 'AK5558 Ch7 Enable' + value On + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 On + } + } + control.16 { + iface MIXER + name 'AK5558 Ch8 Enable' + value On + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 On + } + } +} +state.ak4497audio { + control.1 { + iface MIXER + name 'AK4497 Lch Digital Volume' + value 255 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 255' + dbmin -12750 + dbmax 0 + dbvalue.0 0 + } + } + control.2 { + iface MIXER + name 'AK4497 Rch Digital Volume' + value 255 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 255' + dbmin -12750 + dbmax 0 + dbvalue.0 0 + } + } + control.3 { + iface MIXER + name 'AK4497 EX DF I/F clock' + value '768kHz' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '768kHz' + item.1 '384kHz' + } + } + control.4 { + iface MIXER + name 'AK4497 De-emphasis Response' + value OFF + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '44.1kHz' + item.1 OFF + item.2 '48kHz' + item.3 '32kHz' + } + } + control.5 { + iface MIXER + name 'AK4497 Data Zero Detect Mode' + value Separated + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Separated + item.1 ANDed + } + } + control.6 { + iface MIXER + name 'AK4497 Data Selection at Mono Mode' + value Rch + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Rch + item.1 Lch + } + } + control.7 { + iface MIXER + name 'AK4497 Polarity of DCLK' + value Falling + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Falling + item.1 Rising + } + } + control.8 { + iface MIXER + name 'AK4497 DCKL Frequency' + value '512fs' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '512fs' + item.1 '768fs' + } + } + control.9 { + iface MIXER + name 'AK4497 DDSD Play Back Path' + value Normal + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Normal + item.1 'Volume Bypass' + } + } + control.10 { + iface MIXER + name 'AK4497 Sound control' + value 'Setting 1' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Setting 1' + item.1 'Setting 2' + item.2 'Setting 3' + } + } + control.11 { + iface MIXER + name 'AK4497 Cut Off of DSD Filter' + value '50kHz' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '50kHz' + item.1 '150kHz' + } + } + control.12 { + iface MIXER + name 'AK4497 DSD Data Stream' + value '64fs' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '64fs' + item.1 '128fs' + item.2 '256fs' + item.3 '512fs' + } + } + control.13 { + iface MIXER + name 'AK4497 BICK Frequency Select' + value '64fs' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '48fs' + item.1 '64fs' + } + } + control.14 { + iface MIXER + name 'AK4497 TDM Data Select' + value L1R1 + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 L1R1 + item.1 TDM128_L1R1 + item.2 TDM128_L2R2 + item.3 TDM256_L1R1 + item.4 TDM256_L2R2 + item.5 TDM256_L3R3 + item.6 TDM256_L4R4 + item.7 TDM512_L1R1 + item.8 TDM512_L2R2 + item.9 TDM512_L3R3 + item.10 TDM512_L4R4 + item.11 TDM512_L5R5 + item.12 TDM512_L6R6 + item.13 TDM512_L7R7 + item.14 TDM512_L8R8 + } + } + control.15 { + iface MIXER + name 'AK4497 External Digital Filter' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.16 { + iface MIXER + name 'AK4497 MCLK Frequency Auto Setting' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.17 { + iface MIXER + name 'AK4497 MCLK FS Auto Detect' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.18 { + iface MIXER + name 'AK4497 Soft Mute Control' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.19 { + iface MIXER + name 'AK4497 Short delay filter' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.20 { + iface MIXER + name 'AK4497 Data Zero Detect Enable' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.21 { + iface MIXER + name 'AK4497 Slow Roll-off Filter' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.22 { + iface MIXER + name 'AK4497 Invering Enable of DZF' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.23 { + iface MIXER + name 'AK4497 Mono Mode' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.24 { + iface MIXER + name 'AK4497 Super Slow Roll-off Filter' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.25 { + iface MIXER + name 'AK4497 AOUTR Phase Inverting' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.26 { + iface MIXER + name 'AK4497 AOUTL Phase Inverting' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.27 { + iface MIXER + name 'AK4497 DSD Mute Release' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.28 { + iface MIXER + name 'AK4497 DSD Mute Control Hold' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.29 { + iface MIXER + name 'AK4497 DSDR is detected' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.30 { + iface MIXER + name 'AK4497 DSDL is detected' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.31 { + iface MIXER + name 'AK4497 DSD Data Mute' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.32 { + iface MIXER + name 'AK4497 Synchronization Control' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.33 { + iface MIXER + name 'AK4497 Output Level' + value '2.8_2.8Vpp' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '2.8_2.8Vpp' + item.1 '2.8_2.5Vpp' + item.2 '2.5_2.5Vpp' + item.3 '3.75_3.75Vpp' + item.4 '3.75_2.5Vpp' + } + } + control.34 { + iface MIXER + name 'AK4497 High Sonud Quality Mode' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.35 { + iface MIXER + name 'AK4497 Heavy Load Mode' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.36 { + iface MIXER + name 'AK4497 DSD Data Input Pin' + value '3_4_5pin' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '16_17_19pin' + item.1 '3_4_5pin' + } + } + control.37 { + iface MIXER + name 'AK4497 Daisy Chain' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.38 { + iface MIXER + name 'AK4497 ATT Transit Time' + value '4080/fs' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '4080/fs' + item.1 '2040/fs' + item.2 '510/fs' + item.3 '255/fs' + } + } + control.39 { + iface MIXER + name 'AK4497 Read FS Auto Detect Mode' + value 'Normal Speed Mode' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Normal Speed Mode' + item.1 'Double Speed Mode' + item.2 'Quad Speed Mode' + item.3 'Quad Speed Mode' + item.4 'Oct Speed Mode' + item.5 'Hex Speed Mode' + item.6 'Oct Speed Mode' + item.7 'Hex Speed Mode' + } + } + control.40 { + iface MIXER + name 'AK4497 DAC Enable' + value On + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 On + } + } +} +state.sofwm8960audio { + control.1 { + iface MIXER + name 'Capture Volume' + value.0 35 + value.1 35 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 63' + dbmin -1725 + dbmax 3000 + dbvalue.0 900 + dbvalue.1 900 + } + } + control.2 { + iface MIXER + name 'Capture Volume ZC Switch' + value.0 0 + value.1 0 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 1' + } + } + control.3 { + iface MIXER + name 'Capture Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.4 { + iface MIXER + name 'Right Input Boost Mixer RINPUT3 Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -9999999 + dbmax 600 + dbvalue.0 -9999999 + } + } + control.5 { + iface MIXER + name 'Right Input Boost Mixer RINPUT2 Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -9999999 + dbmax 600 + dbvalue.0 -9999999 + } + } + control.6 { + iface MIXER + name 'Left Input Boost Mixer LINPUT3 Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -9999999 + dbmax 600 + dbvalue.0 -9999999 + } + } + control.7 { + iface MIXER + name 'Left Input Boost Mixer LINPUT2 Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -9999999 + dbmax 600 + dbvalue.0 -9999999 + } + } + control.8 { + iface MIXER + name 'Right Input Boost Mixer RINPUT1 Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 3' + dbmin 0 + dbmax 2900 + dbvalue.0 0 + } + } + control.9 { + iface MIXER + name 'Left Input Boost Mixer LINPUT1 Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 3' + dbmin 0 + dbmax 2900 + dbvalue.0 0 + } + } + control.10 { + iface MIXER + name 'Playback Volume' + value.0 235 + value.1 235 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 -1000 + dbvalue.1 -1000 + } + } + control.11 { + iface MIXER + name 'Headphone Playback Volume' + value.0 101 + value.1 101 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 127' + dbmin -9999999 + dbmax 600 + dbvalue.0 -2000 + dbvalue.1 -2000 + } + } + control.12 { + iface MIXER + name 'Headphone Playback ZC Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.13 { + iface MIXER + name 'Speaker Playback Volume' + value.0 110 + value.1 110 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 127' + dbmin -9999999 + dbmax 600 + dbvalue.0 -1100 + dbvalue.1 -1100 + } + } + control.14 { + iface MIXER + name 'Speaker Playback ZC Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.15 { + iface MIXER + name 'Speaker DC Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 5' + } + } + control.16 { + iface MIXER + name 'Speaker AC Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 5' + } + } + control.17 { + iface MIXER + name 'PCM Playback -6dB Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.18 { + iface MIXER + name 'ADC Polarity' + value 'No Inversion' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'No Inversion' + item.1 'Left Inverted' + item.2 'Right Inverted' + item.3 'Stereo Inversion' + } + } + control.19 { + iface MIXER + name 'ADC High Pass Filter Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.20 { + iface MIXER + name 'DAC Polarity' + value 'No Inversion' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'No Inversion' + item.1 'Left Inverted' + item.2 'Right Inverted' + item.3 'Stereo Inversion' + } + } + control.21 { + iface MIXER + name 'DAC Deemphasis Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.22 { + iface MIXER + name '3D Filter Upper Cut-Off' + value High + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 High + item.1 Low + } + } + control.23 { + iface MIXER + name '3D Filter Lower Cut-Off' + value Low + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Low + item.1 High + } + } + control.24 { + iface MIXER + name '3D Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 15' + } + } + control.25 { + iface MIXER + name '3D Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.26 { + iface MIXER + name 'ALC Function' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 Right + item.2 Left + item.3 Stereo + } + } + control.27 { + iface MIXER + name 'ALC Max Gain' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + } + } + control.28 { + iface MIXER + name 'ALC Target' + value 4 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 15' + } + } + control.29 { + iface MIXER + name 'ALC Min Gain' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + } + } + control.30 { + iface MIXER + name 'ALC Hold Time' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 15' + } + } + control.31 { + iface MIXER + name 'ALC Mode' + value ALC + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 ALC + item.1 Limiter + } + } + control.32 { + iface MIXER + name 'ALC Decay' + value 3 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 15' + } + } + control.33 { + iface MIXER + name 'ALC Attack' + value 2 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 15' + } + } + control.34 { + iface MIXER + name 'Noise Gate Threshold' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + } + } + control.35 { + iface MIXER + name 'Noise Gate Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.36 { + iface MIXER + name 'ADC PCM Capture Volume' + value.0 195 + value.1 195 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 255' + dbmin -9999999 + dbmax 3000 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.37 { + iface MIXER + name 'Left Output Mixer Boost Bypass Volume' + value 2 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 -1500 + } + } + control.38 { + iface MIXER + name 'Left Output Mixer LINPUT3 Volume' + value 2 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 -1500 + } + } + control.39 { + iface MIXER + name 'Right Output Mixer Boost Bypass Volume' + value 2 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 -1500 + } + } + control.40 { + iface MIXER + name 'Right Output Mixer RINPUT3 Volume' + value 2 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 -1500 + } + } + control.41 { + iface MIXER + name 'ADC Data Output Select' + value 'Left Data = Left ADC; Right Data = Left ADC' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Left Data = Left ADC; Right Data = Right ADC' + item.1 'Left Data = Left ADC; Right Data = Left ADC' + item.2 'Left Data = Right ADC; Right Data = Right ADC' + item.3 'Left Data = Right ADC; Right Data = Left ADC' + } + } + control.42 { + iface MIXER + name 'Mono Output Mixer Left Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.43 { + iface MIXER + name 'Mono Output Mixer Right Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.44 { + iface MIXER + name 'Right Output Mixer PCM Playback Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.45 { + iface MIXER + name 'Right Output Mixer RINPUT3 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.46 { + iface MIXER + name 'Right Output Mixer Boost Bypass Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.47 { + iface MIXER + name 'Left Output Mixer PCM Playback Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.48 { + iface MIXER + name 'Left Output Mixer LINPUT3 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.49 { + iface MIXER + name 'Left Output Mixer Boost Bypass Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.50 { + iface MIXER + name 'Right Input Mixer Boost Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.51 { + iface MIXER + name 'Left Input Mixer Boost Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.52 { + iface MIXER + name 'Right Boost Mixer RINPUT2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.53 { + iface MIXER + name 'Right Boost Mixer RINPUT3 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.54 { + iface MIXER + name 'Right Boost Mixer RINPUT1 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.55 { + iface MIXER + name 'Left Boost Mixer LINPUT2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.56 { + iface MIXER + name 'Left Boost Mixer LINPUT3 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.57 { + iface MIXER + name 'Left Boost Mixer LINPUT1 Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.58 { + iface CARD + name 'Headphone Jack' + value true + comment { + access read + type BOOLEAN + count 1 + } + } +} +state.wm8960audio2 { + control.1 { + iface MIXER + name 'Capture Volume' + value.0 35 + value.1 35 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 63' + dbmin -1725 + dbmax 3000 + dbvalue.0 900 + dbvalue.1 900 + } + } + control.2 { + iface MIXER + name 'Capture Volume ZC Switch' + value.0 0 + value.1 0 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 1' + } + } + control.3 { + iface MIXER + name 'Capture Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.4 { + iface MIXER + name 'Right Input Boost Mixer RINPUT3 Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -9999999 + dbmax 600 + dbvalue.0 -9999999 + } + } + control.5 { + iface MIXER + name 'Right Input Boost Mixer RINPUT2 Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -9999999 + dbmax 600 + dbvalue.0 -9999999 + } + } + control.6 { + iface MIXER + name 'Left Input Boost Mixer LINPUT3 Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -9999999 + dbmax 600 + dbvalue.0 -9999999 + } + } + control.7 { + iface MIXER + name 'Left Input Boost Mixer LINPUT2 Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -9999999 + dbmax 600 + dbvalue.0 -9999999 + } + } + control.8 { + iface MIXER + name 'Right Input Boost Mixer RINPUT1 Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 3' + dbmin 0 + dbmax 2900 + dbvalue.0 0 + } + } + control.9 { + iface MIXER + name 'Left Input Boost Mixer LINPUT1 Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 3' + dbmin 0 + dbmax 2900 + dbvalue.0 0 + } + } + control.10 { + iface MIXER + name 'Playback Volume' + value.0 235 + value.1 235 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 -1000 + dbvalue.1 -1000 + } + } + control.11 { + iface MIXER + name 'Headphone Playback Volume' + value.0 101 + value.1 101 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 127' + dbmin -9999999 + dbmax 600 + dbvalue.0 -2000 + dbvalue.1 -2000 + } + } + control.12 { + iface MIXER + name 'Headphone Playback ZC Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.13 { + iface MIXER + name 'Speaker Playback Volume' + value.0 110 + value.1 110 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 127' + dbmin -9999999 + dbmax 600 + dbvalue.0 -1100 + dbvalue.1 -1100 + } + } + control.14 { + iface MIXER + name 'Speaker Playback ZC Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.15 { + iface MIXER + name 'Speaker DC Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 5' + } + } + control.16 { + iface MIXER + name 'Speaker AC Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 5' + } + } + control.17 { + iface MIXER + name 'PCM Playback -6dB Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.18 { + iface MIXER + name 'ADC Polarity' + value 'No Inversion' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'No Inversion' + item.1 'Left Inverted' + item.2 'Right Inverted' + item.3 'Stereo Inversion' + } + } + control.19 { + iface MIXER + name 'ADC High Pass Filter Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.20 { + iface MIXER + name 'DAC Polarity' + value 'No Inversion' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'No Inversion' + item.1 'Left Inverted' + item.2 'Right Inverted' + item.3 'Stereo Inversion' + } + } + control.21 { + iface MIXER + name 'DAC Deemphasis Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.22 { + iface MIXER + name '3D Filter Upper Cut-Off' + value High + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 High + item.1 Low + } + } + control.23 { + iface MIXER + name '3D Filter Lower Cut-Off' + value Low + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Low + item.1 High + } + } + control.24 { + iface MIXER + name '3D Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 15' + } + } + control.25 { + iface MIXER + name '3D Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.26 { + iface MIXER + name 'ALC Function' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 Right + item.2 Left + item.3 Stereo + } + } + control.27 { + iface MIXER + name 'ALC Max Gain' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + } + } + control.28 { + iface MIXER + name 'ALC Target' + value 4 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 15' + } + } + control.29 { + iface MIXER + name 'ALC Min Gain' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + } + } + control.30 { + iface MIXER + name 'ALC Hold Time' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 15' + } + } + control.31 { + iface MIXER + name 'ALC Mode' + value ALC + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 ALC + item.1 Limiter + } + } + control.32 { + iface MIXER + name 'ALC Decay' + value 3 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 15' + } + } + control.33 { + iface MIXER + name 'ALC Attack' + value 2 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 15' + } + } + control.34 { + iface MIXER + name 'Noise Gate Threshold' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + } + } + control.35 { + iface MIXER + name 'Noise Gate Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.36 { + iface MIXER + name 'ADC PCM Capture Volume' + value.0 195 + value.1 195 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 255' + dbmin -9999999 + dbmax 3000 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.37 { + iface MIXER + name 'Left Output Mixer Boost Bypass Volume' + value 2 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 -1500 + } + } + control.38 { + iface MIXER + name 'Left Output Mixer LINPUT3 Volume' + value 2 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 -1500 + } + } + control.39 { + iface MIXER + name 'Right Output Mixer Boost Bypass Volume' + value 2 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 -1500 + } + } + control.40 { + iface MIXER + name 'Right Output Mixer RINPUT3 Volume' + value 2 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 -1500 + } + } + control.41 { + iface MIXER + name 'ADC Data Output Select' + value 'Left Data = Left ADC; Right Data = Left ADC' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Left Data = Left ADC; Right Data = Right ADC' + item.1 'Left Data = Left ADC; Right Data = Left ADC' + item.2 'Left Data = Right ADC; Right Data = Right ADC' + item.3 'Left Data = Right ADC; Right Data = Left ADC' + } + } + control.42 { + iface MIXER + name 'Mono Output Mixer Left Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.43 { + iface MIXER + name 'Mono Output Mixer Right Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.44 { + iface MIXER + name 'Right Output Mixer PCM Playback Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.45 { + iface MIXER + name 'Right Output Mixer RINPUT3 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.46 { + iface MIXER + name 'Right Output Mixer Boost Bypass Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.47 { + iface MIXER + name 'Left Output Mixer PCM Playback Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.48 { + iface MIXER + name 'Left Output Mixer LINPUT3 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.49 { + iface MIXER + name 'Left Output Mixer Boost Bypass Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.50 { + iface MIXER + name 'Right Input Mixer Boost Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.51 { + iface MIXER + name 'Left Input Mixer Boost Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.52 { + iface MIXER + name 'Right Boost Mixer RINPUT2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.53 { + iface MIXER + name 'Right Boost Mixer RINPUT3 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.54 { + iface MIXER + name 'Right Boost Mixer RINPUT1 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.55 { + iface MIXER + name 'Left Boost Mixer LINPUT2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.56 { + iface MIXER + name 'Left Boost Mixer LINPUT3 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.57 { + iface MIXER + name 'Left Boost Mixer LINPUT1 Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.58 { + iface CARD + name 'Headphone Jack' + value true + comment { + access read + type BOOLEAN + count 1 + } + } +} +state.wm8960audio3 { + control.1 { + iface MIXER + name 'Capture Volume' + value.0 35 + value.1 35 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 63' + dbmin -1725 + dbmax 3000 + dbvalue.0 900 + dbvalue.1 900 + } + } + control.2 { + iface MIXER + name 'Capture Volume ZC Switch' + value.0 0 + value.1 0 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 1' + } + } + control.3 { + iface MIXER + name 'Capture Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.4 { + iface MIXER + name 'Right Input Boost Mixer RINPUT3 Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -9999999 + dbmax 600 + dbvalue.0 -9999999 + } + } + control.5 { + iface MIXER + name 'Right Input Boost Mixer RINPUT2 Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -9999999 + dbmax 600 + dbvalue.0 -9999999 + } + } + control.6 { + iface MIXER + name 'Left Input Boost Mixer LINPUT3 Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -9999999 + dbmax 600 + dbvalue.0 -9999999 + } + } + control.7 { + iface MIXER + name 'Left Input Boost Mixer LINPUT2 Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -9999999 + dbmax 600 + dbvalue.0 -9999999 + } + } + control.8 { + iface MIXER + name 'Right Input Boost Mixer RINPUT1 Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 3' + dbmin 0 + dbmax 2900 + dbvalue.0 0 + } + } + control.9 { + iface MIXER + name 'Left Input Boost Mixer LINPUT1 Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 3' + dbmin 0 + dbmax 2900 + dbvalue.0 0 + } + } + control.10 { + iface MIXER + name 'Playback Volume' + value.0 235 + value.1 235 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 -1000 + dbvalue.1 -1000 + } + } + control.11 { + iface MIXER + name 'Headphone Playback Volume' + value.0 101 + value.1 101 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 127' + dbmin -9999999 + dbmax 600 + dbvalue.0 -2000 + dbvalue.1 -2000 + } + } + control.12 { + iface MIXER + name 'Headphone Playback ZC Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.13 { + iface MIXER + name 'Speaker Playback Volume' + value.0 110 + value.1 110 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 127' + dbmin -9999999 + dbmax 600 + dbvalue.0 -1100 + dbvalue.1 -1100 + } + } + control.14 { + iface MIXER + name 'Speaker Playback ZC Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.15 { + iface MIXER + name 'Speaker DC Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 5' + } + } + control.16 { + iface MIXER + name 'Speaker AC Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 5' + } + } + control.17 { + iface MIXER + name 'PCM Playback -6dB Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.18 { + iface MIXER + name 'ADC Polarity' + value 'No Inversion' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'No Inversion' + item.1 'Left Inverted' + item.2 'Right Inverted' + item.3 'Stereo Inversion' + } + } + control.19 { + iface MIXER + name 'ADC High Pass Filter Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.20 { + iface MIXER + name 'DAC Polarity' + value 'No Inversion' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'No Inversion' + item.1 'Left Inverted' + item.2 'Right Inverted' + item.3 'Stereo Inversion' + } + } + control.21 { + iface MIXER + name 'DAC Deemphasis Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.22 { + iface MIXER + name '3D Filter Upper Cut-Off' + value High + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 High + item.1 Low + } + } + control.23 { + iface MIXER + name '3D Filter Lower Cut-Off' + value Low + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Low + item.1 High + } + } + control.24 { + iface MIXER + name '3D Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 15' + } + } + control.25 { + iface MIXER + name '3D Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.26 { + iface MIXER + name 'ALC Function' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 Right + item.2 Left + item.3 Stereo + } + } + control.27 { + iface MIXER + name 'ALC Max Gain' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + } + } + control.28 { + iface MIXER + name 'ALC Target' + value 4 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 15' + } + } + control.29 { + iface MIXER + name 'ALC Min Gain' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + } + } + control.30 { + iface MIXER + name 'ALC Hold Time' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 15' + } + } + control.31 { + iface MIXER + name 'ALC Mode' + value ALC + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 ALC + item.1 Limiter + } + } + control.32 { + iface MIXER + name 'ALC Decay' + value 3 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 15' + } + } + control.33 { + iface MIXER + name 'ALC Attack' + value 2 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 15' + } + } + control.34 { + iface MIXER + name 'Noise Gate Threshold' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + } + } + control.35 { + iface MIXER + name 'Noise Gate Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.36 { + iface MIXER + name 'ADC PCM Capture Volume' + value.0 195 + value.1 195 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 255' + dbmin -9999999 + dbmax 3000 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.37 { + iface MIXER + name 'Left Output Mixer Boost Bypass Volume' + value 2 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 -1500 + } + } + control.38 { + iface MIXER + name 'Left Output Mixer LINPUT3 Volume' + value 2 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 -1500 + } + } + control.39 { + iface MIXER + name 'Right Output Mixer Boost Bypass Volume' + value 2 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 -1500 + } + } + control.40 { + iface MIXER + name 'Right Output Mixer RINPUT3 Volume' + value 2 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 -1500 + } + } + control.41 { + iface MIXER + name 'ADC Data Output Select' + value 'Left Data = Left ADC; Right Data = Left ADC' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Left Data = Left ADC; Right Data = Right ADC' + item.1 'Left Data = Left ADC; Right Data = Left ADC' + item.2 'Left Data = Right ADC; Right Data = Right ADC' + item.3 'Left Data = Right ADC; Right Data = Left ADC' + } + } + control.42 { + iface MIXER + name 'Mono Output Mixer Left Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.43 { + iface MIXER + name 'Mono Output Mixer Right Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.44 { + iface MIXER + name 'Right Output Mixer PCM Playback Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.45 { + iface MIXER + name 'Right Output Mixer RINPUT3 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.46 { + iface MIXER + name 'Right Output Mixer Boost Bypass Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.47 { + iface MIXER + name 'Left Output Mixer PCM Playback Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.48 { + iface MIXER + name 'Left Output Mixer LINPUT3 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.49 { + iface MIXER + name 'Left Output Mixer Boost Bypass Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.50 { + iface MIXER + name 'Right Input Mixer Boost Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.51 { + iface MIXER + name 'Left Input Mixer Boost Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.52 { + iface MIXER + name 'Right Boost Mixer RINPUT2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.53 { + iface MIXER + name 'Right Boost Mixer RINPUT3 Switch' + value false comment { access 'read write' - type ENUMERATED + type BOOLEAN count 1 - item.0 Hi-fi - item.1 'Voice 1' - item.2 'Voice 2' - item.3 'Voice 3' } } - control.13 { + control.54 { iface MIXER - name 'ADC 128x OSR Switch' - value true + name 'Right Boost Mixer RINPUT1 Switch' + value false comment { access 'read write' type BOOLEAN count 1 } } - control.14 { + control.55 { iface MIXER - name 'Digital Playback Boost Volume' - value 0 + name 'Left Boost Mixer LINPUT2 Switch' + value false comment { access 'read write' - type INTEGER + type BOOLEAN count 1 - range '0 - 3' - dbmin 0 - dbmax 1800 - dbvalue.0 0 } } - control.15 { + control.56 { iface MIXER - name 'Digital Playback Volume' - value.0 96 - value.1 96 + name 'Left Boost Mixer LINPUT3 Switch' + value false comment { access 'read write' - type INTEGER - count 2 - range '0 - 96' - dbmin -9999999 - dbmax 0 - dbvalue.0 0 - dbvalue.1 0 + type BOOLEAN + count 1 } } - control.16 { + control.57 { iface MIXER - name 'Headphone Volume' - value.0 45 - value.1 45 + name 'Left Boost Mixer LINPUT1 Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.58 { + iface CARD + name 'Headphone Jack' + value true + comment { + access read + type BOOLEAN + count 1 + } + } +} +state.sgtl5000audio { + control.1 { + iface MIXER + name 'PCM Playback Volume' + value.0 184 + value.1 184 comment { access 'read write' type INTEGER count 2 - range '0 - 63' - dbmin -5700 - dbmax 600 - dbvalue.0 -1200 - dbvalue.1 -1200 + range '0 - 192' } } - control.17 { + control.2 { iface MIXER - name 'Headphone Switch' - value.0 true - value.1 true + name 'Capture Volume' + value.0 12 + value.1 12 comment { access 'read write' - type BOOLEAN + type INTEGER count 2 + range '0 - 15' } } - control.18 { + control.3 { iface MIXER - name 'Headphone ZC Switch' - value.0 true - value.1 true + name 'Capture Attenuate Switch (-6dB)' + value false comment { access 'read write' type BOOLEAN - count 2 + count 1 } } - control.19 { + control.4 { iface MIXER - name 'Line Output Volume' - value.0 57 - value.1 57 + name 'Capture ZC Switch' + value true comment { access 'read write' - type INTEGER - count 2 - range '0 - 63' - dbmin -5700 - dbmax 600 - dbvalue.0 0 - dbvalue.1 0 + type BOOLEAN + count 1 } } - control.20 { + control.5 { iface MIXER - name 'Line Output Switch' - value.0 true - value.1 true + name 'Capture Switch' + value true comment { access 'read write' type BOOLEAN - count 2 + count 1 } } - control.21 { + control.6 { iface MIXER - name 'Line Output ZC Switch' - value.0 true - value.1 true + name 'Headphone Playback Volume' + value.0 127 + value.1 127 comment { access 'read write' - type BOOLEAN + type INTEGER count 2 + range '0 - 127' + dbmin -5150 + dbmax 1200 + dbvalue.0 1200 + dbvalue.1 1200 } } - control.22 { + control.7 { iface MIXER - name 'EQ Switch' - value false + name 'Headphone Playback Switch' + value true comment { access 'read write' type BOOLEAN count 1 } } - control.23 { + control.8 { iface MIXER - name 'DRC Switch' - value false + name 'Headphone Playback ZC Switch' + value true comment { access 'read write' type BOOLEAN count 1 } } - control.24 { + control.9 { iface MIXER - name 'DRC Path' - value ADC + name 'Mic Volume' + value 3 comment { access 'read write' - type ENUMERATED + type INTEGER count 1 - item.0 ADC - item.1 DAC + range '0 - 3' + dbmin 0 + dbmax 4000 + dbvalue.0 4000 } } - control.25 { + control.10 { iface MIXER - name 'DAC OSRx2 Switch' - value false + name 'Lineout Playback Volume' + value.0 30 + value.1 30 comment { access 'read write' - type BOOLEAN - count 1 + type INTEGER + count 2 + range '0 - 31' + dbmin -1550 + dbmax 0 + dbvalue.0 -50 + dbvalue.1 -50 } } - control.26 { + control.11 { iface MIXER - name 'DAC Deemphasis Switch' + name 'Lineout Playback Switch' value false comment { access 'read write' @@ -634,425 +9288,223 @@ state.wm8904audio { count 1 } } - control.27 { + control.12 { iface MIXER - name 'Digital Sidetone Volume' - value.0 0 - value.1 0 + name 'DAP Main channel' + value 32768 comment { access 'read write' type INTEGER - count 2 - range '0 - 15' - dbmin -3600 - dbmax 900 - dbvalue.0 -3600 - dbvalue.1 -3600 + count 1 + range '0 - 65535' + dbmin 0 + dbmax 65535 + dbvalue.0 32768 } } - control.28 { + control.13 { iface MIXER - name 'DMIC Mux' - value DMIC1 + name 'DAP Mix channel' + value 0 comment { access 'read write' - type ENUMERATED + type INTEGER count 1 - item.0 DMIC1 - item.1 DMIC2 + range '0 - 65535' + dbmin 0 + dbmax 65535 + dbvalue.0 0 } } - control.29 { + control.14 { iface MIXER - name 'Capture Input' - value DMIC + name 'AVC Switch' + value false comment { access 'read write' - type ENUMERATED + type BOOLEAN count 1 - item.0 ADC - item.1 DMIC } } - control.30 { + control.15 { iface MIXER - name 'Left Capture Mux' - value IN2L + name 'AVC Hard Limiter Switch' + value false comment { access 'read write' - type ENUMERATED + type BOOLEAN count 1 - item.0 IN1L - item.1 IN2L - item.2 IN3L } } - control.31 { + control.16 { iface MIXER - name 'Left Capture Inverting Mux' - value IN2L + name 'AVC Max Gain Volume' + value 0 comment { access 'read write' - type ENUMERATED + type INTEGER count 1 - item.0 IN1L - item.1 IN2L - item.2 IN3L + range '0 - 2' + dbmin 0 + dbmax 1200 + dbvalue.0 0 } } - control.32 { + control.17 { iface MIXER - name 'Right Capture Mux' - value IN2R + name 'AVC Integrator Response' + value 1 comment { access 'read write' - type ENUMERATED + type INTEGER count 1 - item.0 IN1R - item.1 IN2R - item.2 IN3R + range '0 - 3' } } - control.33 { + control.18 { iface MIXER - name 'Right Capture Inverting Mux' - value IN2R + name 'AVC Threshold Volume' + value 12 comment { access 'read write' - type ENUMERATED + type INTEGER count 1 - item.0 IN1R - item.1 IN2R - item.2 IN3R + range '0 - 96' + dbmin 0 + dbmax 9600 + dbvalue.0 1200 } } - control.34 { + control.19 { iface MIXER - name 'AIFOUTL Mux' - value Left + name 'BASS 0' + value 47 comment { access 'read write' - type ENUMERATED + type INTEGER count 1 - item.0 Left - item.1 Right + range '0 - 95' + dbmin -1175 + dbmax 1200 + dbvalue.0 0 } } - control.35 { + control.20 { iface MIXER - name 'AIFOUTR Mux' - value Right + name 'BASS 1' + value 47 comment { access 'read write' - type ENUMERATED + type INTEGER count 1 - item.0 Left - item.1 Right + range '0 - 95' + dbmin -1175 + dbmax 1200 + dbvalue.0 0 } } - control.36 { + control.21 { iface MIXER - name 'DACL Mux' - value Left + name 'BASS 2' + value 47 comment { access 'read write' - type ENUMERATED + type INTEGER count 1 - item.0 Left - item.1 Right + range '0 - 95' + dbmin -1175 + dbmax 1200 + dbvalue.0 0 } } - control.37 { + control.22 { iface MIXER - name 'DACR Mux' - value Right + name 'BASS 3' + value 47 comment { access 'read write' - type ENUMERATED + type INTEGER count 1 - item.0 Left - item.1 Right + range '0 - 95' + dbmin -1175 + dbmax 1200 + dbvalue.0 0 } } - control.38 { + control.23 { iface MIXER - name 'Left Sidetone' - value None + name 'BASS 4' + value 47 comment { access 'read write' - type ENUMERATED + type INTEGER count 1 - item.0 None - item.1 Left - item.2 Right + range '0 - 95' + dbmin -1175 + dbmax 1200 + dbvalue.0 0 } } - control.39 { + control.24 { iface MIXER - name 'Right Sidetone' - value None + name 'Capture Mux' + value MIC_IN comment { access 'read write' type ENUMERATED count 1 - item.0 None - item.1 Left - item.2 Right + item.0 MIC_IN + item.1 LINE_IN } } - control.40 { + control.25 { iface MIXER - name 'HPL Mux' + name 'Headphone Mux' value DAC comment { access 'read write' type ENUMERATED count 1 item.0 DAC - item.1 Bypass + item.1 LINE_IN } } - control.41 { + control.26 { iface MIXER - name 'HPR Mux' - value DAC + name 'Digital Input Mux' + value I2S comment { access 'read write' type ENUMERATED count 1 - item.0 DAC - item.1 Bypass + item.0 ADC + item.1 I2S + item.2 Rsvrd + item.3 DAP } } - control.42 { + control.27 { iface MIXER - name 'LINEL Mux' - value DAC + name 'DAP Mux' + value ADC comment { access 'read write' type ENUMERATED count 1 - item.0 DAC - item.1 Bypass + item.0 ADC + item.1 I2S } } - control.43 { + control.28 { iface MIXER - name 'LINER Mux' - value DAC + name 'DAP MIX Mux' + value ADC comment { access 'read write' type ENUMERATED count 1 - item.0 DAC - item.1 Bypass + item.0 ADC + item.1 I2S } } } - -state.imx8mqaudiosgtl { - control.1 { - iface MIXER - name 'PCM Playback Volume' - value.0 192 - value.1 192 - comment { - access 'read write' - type INTEGER - count 2 - range '0 - 192' - } - } - control.2 { - iface MIXER - name 'Capture Volume' - value.0 12 - value.1 12 - comment { - access 'read write' - type INTEGER - count 2 - range '0 - 15' - } - } - control.3 { - iface MIXER - name 'Capture Attenuate Switch (-6dB)' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.4 { - iface MIXER - name 'Capture ZC Switch' - value true - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.5 { - iface MIXER - name 'Headphone Playback Volume' - value.0 127 - value.1 127 - comment { - access 'read write' - type INTEGER - count 2 - range '0 - 127' - dbmin -5150 - dbmax 1200 - dbvalue.0 1200 - dbvalue.1 1200 - } - } - control.6 { - iface MIXER - name 'Headphone Playback Switch' - value true - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.7 { - iface MIXER - name 'Headphone Playback ZC Switch' - value true - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.8 { - iface MIXER - name 'Mic Volume' - value 3 - comment { - access 'read write' - type INTEGER - count 1 - range '0 - 3' - dbmin 0 - dbmax 4000 - dbvalue.0 4000 - } - } - control.9 { - iface MIXER - name 'Lineout Playback Volume' - value.0 31 - value.1 31 - comment { - access 'read write' - type INTEGER - count 2 - range '0 - 31' - dbmin -1550 - dbmax 0 - dbvalue.0 0 - dbvalue.1 0 - } - } - control.10 { - iface MIXER - name 'Lineout Playback Switch' - value true - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.11 { - iface MIXER - name 'AVC Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.12 { - iface MIXER - name 'AVC Hard Limiter Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.13 { - iface MIXER - name 'AVC Max Gain Volume' - value 0 - comment { - access 'read write' - type INTEGER - count 1 - range '0 - 2' - dbmin 0 - dbmax 1200 - dbvalue.0 0 - } - } - control.14 { - iface MIXER - name 'AVC Integrator Response' - value 1 - comment { - access 'read write' - type INTEGER - count 1 - range '0 - 3' - } - } - control.15 { - iface MIXER - name 'AVC Threshold Volume' - value 12 - comment { - access 'read write' - type INTEGER - count 1 - range '0 - 96' - dbmin 0 - dbmax 9600 - dbvalue.0 1200 - } - } - control.16 { - iface MIXER - name 'Capture Mux' - value MIC_IN - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 MIC_IN - item.1 LINE_IN - } - } - control.17 { - iface MIXER - name 'Headphone Mux' - value DAC - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 DAC - item.1 LINE_IN - } - } -} - diff --git a/recipes-bsp/imx-atf/imx-atf/imx8m-atf-ddr-timing.patch b/recipes-bsp/imx-atf/imx-atf/imx8m-atf-ddr-timing.patch index b6cae1b..025543e 100644 --- a/recipes-bsp/imx-atf/imx-atf/imx8m-atf-ddr-timing.patch +++ b/recipes-bsp/imx-atf/imx-atf/imx8m-atf-ddr-timing.patch @@ -1,13 +1,13 @@ -diff --git a/plat/imx/common/include/dram.h b/plat/imx/common/include/dram.h -index bf0b384..8b5f90c 100644 ---- a/plat/imx/common/include/dram.h -+++ b/plat/imx/common/include/dram.h -@@ -41,6 +41,8 @@ struct dram_cfg_param { +diff --git a/plat/imx/imx8m/include/dram.h b/plat/imx/imx8m/include/dram.h +index d0d5bf81e..d3c2a2717 100644 +--- a/plat/imx/imx8m/include/dram.h ++++ b/plat/imx/imx8m/include/dram.h +@@ -29,6 +29,8 @@ struct dram_cfg_param { }; struct dram_timing_info { -+ /* ddrphy firmware offset */ -+ unsigned int ddrphy_fw_offset; ++ /* ddrphy firmware offset */ ++ unsigned int ddrphy_fw_offset; /* umctl2 config */ struct dram_cfg_param *ddrc_cfg; unsigned int ddrc_cfg_num; diff --git a/recipes-bsp/imx-atf/imx-atf/imx8m-atf-fix-derate-enable.patch b/recipes-bsp/imx-atf/imx-atf/imx8m-atf-fix-derate-enable.patch deleted file mode 100644 index 0195ed2..0000000 --- a/recipes-bsp/imx-atf/imx-atf/imx8m-atf-fix-derate-enable.patch +++ /dev/null @@ -1,56 +0,0 @@ -diff --git a/plat/imx/common/imx8m/lpddr4_dvfs.c b/plat/imx/common/imx8m/lpddr4_dvfs.c -index b3ea27b..b19bada 100644 ---- a/plat/imx/common/imx8m/lpddr4_dvfs.c -+++ b/plat/imx/common/imx8m/lpddr4_dvfs.c -@@ -20,6 +20,7 @@ void lpddr4_swffc(struct dram_info *info, unsigned int init_fsp, - unsigned int mr, emr, emr2, emr3; - unsigned int mr11, mr12, mr22, mr14; - unsigned int tmp; -+ unsigned int derate_backup[3]; - - /* 1. program targetd UMCTL2_REGS_FREQ1/2/3,already done, skip it. */ - -@@ -109,14 +110,17 @@ void lpddr4_swffc(struct dram_info *info, unsigned int init_fsp, - - /* 10. Disable automatic derating: derate_enable */ - tmp= mmio_read_32(DDRC_DERATEEN(0)); -+ derate_backup[0] = tmp; - tmp &= ~0x1; - mmio_write_32(DDRC_DERATEEN(0), tmp); - - tmp= mmio_read_32(DDRC_FREQ1_DERATEEN(0)); -+ derate_backup[1] = tmp; - tmp &= ~0x1; - mmio_write_32(DDRC_FREQ1_DERATEEN(0), tmp); - - tmp= mmio_read_32(DDRC_FREQ2_DERATEEN(0)); -+ derate_backup[2] = tmp; - tmp &= ~0x1; - mmio_write_32(DDRC_FREQ2_DERATEEN(0), tmp); - -@@ -346,10 +350,9 @@ void lpddr4_swffc(struct dram_info *info, unsigned int init_fsp, - mmio_write_32(DDRC_ZQCTL0(0), tmp); - } - -- /* 40. re-emable automatic derating: derate_enable */ -- tmp= mmio_read_32(DDRC_DERATEEN(0)); -- tmp &= 0xFFFFFFFE; -- mmio_write_32(DDRC_DERATEEN(0), tmp); -+ mmio_write_32(DDRC_DERATEEN(0), derate_backup[0]); -+ mmio_write_32(DDRC_FREQ1_DERATEEN(0), derate_backup[1]); -+ mmio_write_32(DDRC_FREQ2_DERATEEN(0), derate_backup[2]); - - /* 41. write 1 to PCTRL.port_en */ - mmio_write_32(DDRC_PCTRL_0(0), 0x1); -diff --git a/plat/imx/common/imx8m/lpddr4_retention.c b/plat/imx/common/imx8m/lpddr4_retention.c -index 8cc44c8..9cdca3d 100644 ---- a/plat/imx/common/imx8m/lpddr4_retention.c -+++ b/plat/imx/common/imx8m/lpddr4_retention.c -@@ -250,7 +250,6 @@ void lpddr4_exit_retention(void) - INFO("wait STAT to normal state\n"); - } - -- mmio_write_32(DDRC_DERATEEN(0), 0x00000302); - - mmio_write_32(DDRC_PCTRL_0(0), 0x00000001); - /* dis_auto-refresh is set to 0 */ diff --git a/recipes-bsp/imx-atf/imx-atf_2.0.bbappend b/recipes-bsp/imx-atf/imx-atf_2.0.bbappend deleted file mode 100644 index 3c66719..0000000 --- a/recipes-bsp/imx-atf/imx-atf_2.0.bbappend +++ /dev/null @@ -1,6 +0,0 @@ -FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" - -SRC_URI_append = " \ - file://imx8m-atf-ddr-timing.patch \ - file://imx8m-atf-fix-derate-enable.patch \ -" diff --git a/recipes-bsp/imx-atf/imx-atf_2.2.bbappend b/recipes-bsp/imx-atf/imx-atf_2.2.bbappend new file mode 100644 index 0000000..7e0f6f9 --- /dev/null +++ b/recipes-bsp/imx-atf/imx-atf_2.2.bbappend @@ -0,0 +1,5 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +SRC_URI_append = " \ + file://imx8m-atf-ddr-timing.patch \ +" diff --git a/recipes-bsp/imx-mkimage/imx-boot_0.2.bbappend b/recipes-bsp/imx-mkimage/imx-boot_0.2.bbappend deleted file mode 100644 index bbbf35f..0000000 --- a/recipes-bsp/imx-mkimage/imx-boot_0.2.bbappend +++ /dev/null @@ -1,20 +0,0 @@ -# Workaround to fix do_compile() failure due to missing fsl-imx8mq-evk.dtb -do_compile_prepend() { - echo "Copying DTB" - if [ -f ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/fsl-smarcimx8mq.dtb ]; then - cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/fsl-smarcimx8mq.dtb ${S}/iMX8M/fsl-imx8mq-evk.dtb - fi -} - -deploy_mx8m() { - install -d ${DEPLOYDIR}/${BOOT_TOOLS} - install -m 0644 ${DEPLOY_DIR_IMAGE}/u-boot-spl.bin-${MACHINE}-${UBOOT_CONFIG} \ - ${DEPLOYDIR}/${BOOT_TOOLS} - for ddr_firmware in ${DDR_FIRMWARE_NAME}; do - install -m 0644 ${DEPLOY_DIR_IMAGE}/${ddr_firmware} ${DEPLOYDIR}/${BOOT_TOOLS} - done - install -m 0644 ${BOOT_STAGING}/signed_dp_imx8m.bin ${DEPLOYDIR}/${BOOT_TOOLS} - install -m 0644 ${BOOT_STAGING}/signed_hdmi_imx8m.bin ${DEPLOYDIR}/${BOOT_TOOLS} - install -m 0755 ${BOOT_STAGING}/${TOOLS_NAME} ${DEPLOYDIR}/${BOOT_TOOLS} - install -m 0755 ${BOOT_STAGING}/mkimage_fit_atf.sh ${DEPLOYDIR}/${BOOT_TOOLS} -} diff --git a/recipes-bsp/imx-mkimage/imx-boot_1.0.bbappend b/recipes-bsp/imx-mkimage/imx-boot_1.0.bbappend new file mode 100644 index 0000000..81b4780 --- /dev/null +++ b/recipes-bsp/imx-mkimage/imx-boot_1.0.bbappend @@ -0,0 +1,7 @@ +# Workaround to fix do_compile() failure due to missing fsl-imx8mq-evk.dtb +do_compile_prepend() { + echo "Copying DTB" + if [ -f ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/imx8mq-smarc.dtb ]; then + cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/imx8mq-smarc.dtb ${S}/iMX8M/imx8mq-evk.dtb + fi +} diff --git a/recipes-bsp/u-boot/u-boot-smarcimx8m_2019.04.bb b/recipes-bsp/u-boot/u-boot-smarcimx8m_2019.04.bb deleted file mode 100644 index f16e01f..0000000 --- a/recipes-bsp/u-boot/u-boot-smarcimx8m_2019.04.bb +++ /dev/null @@ -1,56 +0,0 @@ -# Copyright (C) 2013-2016 Freescale Semiconductor -# Copyright 2017-2019 NXP - -DESCRIPTION = "i.MX U-Boot suppporting i.MX reference boards." -require recipes-bsp/u-boot/u-boot-common.inc -require recipes-bsp/u-boot/u-boot.inc -inherit pythonnative - -PROVIDES += "u-boot" -DEPENDS_append = " python dtc-native" - -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://Licenses/gpl-2.0.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -UBOOT_SRC ?= "${EMB_UBOOT_MIRROR};protocol=ssh" -SRCBRANCH = "smarc_8m-imx_v2019.04_4.19.35_1.1.0" -SRC_URI = "${UBOOT_SRC};branch=${SRCBRANCH}" -SRCREV = "2fd847944db504558a62523462415531efd48898" - -S = "${WORKDIR}/git" - -inherit fsl-u-boot-localversion - -LOCALVERSION ?= "-${SRCBRANCH}" - -BOOT_TOOLS = "imx-boot-tools" - -do_deploy_append_mx8m () { - # Deploy the mkimage, u-boot-nodtb.bin and fsl-imx8mq-XX.dtb for mkimage to generate boot binary - if [ -n "${UBOOT_CONFIG}" ] - then - for config in ${UBOOT_MACHINE}; do - i=$(expr $i + 1); - for type in ${UBOOT_CONFIG}; do - j=$(expr $j + 1); - if [ $j -eq $i ] - then - install -d ${DEPLOYDIR}/${BOOT_TOOLS} - install -m 0777 ${B}/${config}/arch/arm/dts/${UBOOT_DTB_NAME} ${DEPLOYDIR}/${BOOT_TOOLS} - install -m 0777 ${B}/${config}/tools/mkimage ${DEPLOYDIR}/${BOOT_TOOLS}/mkimage_uboot - install -m 0777 ${B}/${config}/u-boot-nodtb.bin ${DEPLOYDIR}/${BOOT_TOOLS}/u-boot-nodtb.bin-${MACHINE}-${UBOOT_CONFIG} - fi - done - unset j - done - unset i - fi - -} - -PACKAGE_ARCH = "${MACHINE_ARCH}" -COMPATIBLE_MACHINE = "(mx6|mx7|mx8)" - -UBOOT_NAME_mx6 = "u-boot-${MACHINE}.bin-${UBOOT_CONFIG}" -UBOOT_NAME_mx7 = "u-boot-${MACHINE}.bin-${UBOOT_CONFIG}" -UBOOT_NAME_mx8 = "u-boot-${MACHINE}.bin-${UBOOT_CONFIG}" diff --git a/recipes-bsp/u-boot/u-boot-smarcimx8mq_2020.04.bb b/recipes-bsp/u-boot/u-boot-smarcimx8mq_2020.04.bb new file mode 100644 index 0000000..7dff9e7 --- /dev/null +++ b/recipes-bsp/u-boot/u-boot-smarcimx8mq_2020.04.bb @@ -0,0 +1,57 @@ +# Copyright (C) 2013-2016 Freescale Semiconductor +# Copyright 2017-2019 NXP + +DESCRIPTION = "i.MX U-Boot suppporting i.MX reference boards." +require recipes-bsp/u-boot/u-boot-common.inc +require recipes-bsp/u-boot/u-boot.inc +inherit pythonnative + +FILESEXTRAPATHS_prepend := "${THISDIR}/files:" + +PROVIDES += "u-boot" +DEPENDS_append = " dtc-native" + +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://Licenses/gpl-2.0.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +UBOOT_SRC ?= "${EMB_UBOOT_MIRROR};protocol=ssh" +SRCBRANCH = "smarc_8mq-imx_v2020.04_5.4.24_2.1.0" +SRC_URI = "${UBOOT_SRC};branch=${SRCBRANCH}" +SRCREV = "e44dd05afd50171f1c89a5f4530e2e7cdfe4c23e" + +S = "${WORKDIR}/git" + +inherit fsl-u-boot-localversion + +LOCALVERSION ?= "-${SRCBRANCH}" + +BOOT_TOOLS = "imx-boot-tools" + +do_deploy_append_mx8m () { + # Deploy the mkimage, u-boot-nodtb.bin and fsl-imx8mq-XX.dtb for mkimage to generate boot binary + if [ -n "${UBOOT_CONFIG}" ] + then + for config in ${UBOOT_MACHINE}; do + i=$(expr $i + 1); + for type in ${UBOOT_CONFIG}; do + j=$(expr $j + 1); + if [ $j -eq $i ] + then + install -d ${DEPLOYDIR}/${BOOT_TOOLS} + install -m 0777 ${B}/${config}/arch/arm/dts/${UBOOT_DTB_NAME} ${DEPLOYDIR}/${BOOT_TOOLS} + install -m 0777 ${B}/${config}/u-boot-nodtb.bin ${DEPLOYDIR}/${BOOT_TOOLS}/u-boot-nodtb.bin-${MACHINE}-${UBOOT_CONFIG} + fi + done + unset j + done + unset i + fi + +} + +PACKAGE_ARCH = "${MACHINE_ARCH}" +COMPATIBLE_MACHINE = "(mx6|mx7|mx8)" + +UBOOT_NAME_mx6 = "u-boot-${MACHINE}.bin-${UBOOT_CONFIG}" +UBOOT_NAME_mx7 = "u-boot-${MACHINE}.bin-${UBOOT_CONFIG}" +UBOOT_NAME_mx8 = "u-boot-${MACHINE}.bin-${UBOOT_CONFIG}" diff --git a/recipes-core/base-files/base-files/issue b/recipes-core/base-files/base-files/issue new file mode 100644 index 0000000..431b9ff --- /dev/null +++ b/recipes-core/base-files/base-files/issue @@ -0,0 +1,6 @@ + _ ^ _ ^ (_) _ +// _ \\ ^ ^ || _ // _ \\ _ || | _` _ +|| __/ //\\//\\||// \\| __/// \\| |(_| // \\ +\\__\\_// \\||__||\\__\\\\__// ||\__,|| || + + 2019 Embedian, Inc. diff --git a/recipes-core/base-files/base-files/issue.net b/recipes-core/base-files/base-files/issue.net new file mode 100644 index 0000000..431b9ff --- /dev/null +++ b/recipes-core/base-files/base-files/issue.net @@ -0,0 +1,6 @@ + _ ^ _ ^ (_) _ +// _ \\ ^ ^ || _ // _ \\ _ || | _` _ +|| __/ //\\//\\||// \\| __/// \\| |(_| // \\ +\\__\\_// \\||__||\\__\\\\__// ||\__,|| || + + 2019 Embedian, Inc. diff --git a/recipes-core/base-files/base-files_%.bbappend b/recipes-core/base-files/base-files_%.bbappend new file mode 100644 index 0000000..72d991c --- /dev/null +++ b/recipes-core/base-files/base-files_%.bbappend @@ -0,0 +1 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" diff --git a/recipes-core/packagegroups/packagegroup-core-tools-testapps.bbappend b/recipes-core/packagegroups/packagegroup-core-tools-testapps.bbappend index c708747..fae37f0 100644 --- a/recipes-core/packagegroups/packagegroup-core-tools-testapps.bbappend +++ b/recipes-core/packagegroups/packagegroup-core-tools-testapps.bbappend @@ -3,3 +3,4 @@ RDEPENDS_${PN}_remove = "\ connman-tests \ connman-client \ " + diff --git a/recipes-kernel/linux/linux-smarcimx8m_4.19.35.bb b/recipes-kernel/linux/linux-smarcimx8m_4.19.35.bb deleted file mode 100644 index 0ca2b6b..0000000 --- a/recipes-kernel/linux/linux-smarcimx8m_4.19.35.bb +++ /dev/null @@ -1,36 +0,0 @@ -# Copyright (C) 2013-2016 Freescale Semiconductor -# Copyright 2017 NXP -# Copyright 2018-2019 Embedian, Inc. -# Released under the MIT license (see COPYING.MIT for the terms) - -SUMMARY = "Linux kernel provided and supported by Embedian" -DESCRIPTION = "Linux kernel provided and supported by Embedian (based on the kernel imx_4.19.35_1.1.0 provided by NXP) \ -with focus on i.MX Family SOMs. It includes support for many IPs such as GPU, VPU and IPU." - -require recipes-kernel/linux/linux-imx.inc - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" -DEPENDS += "lzop-native bc-native" - -DEFAULT_PREFERENCE = "1" - -SRCBRANCH = "smarc_8m_imx_4.19.35_1.1.0" - -LOCALVERSION = "-${SRCBRANCH}" -KERNEL_DEFCONFIG = "${S}/arch/arm64/configs/smarcimx8m_defconfig" -DEFAULT_DTB = "fsl-smarcimx8mq" - -KERNEL_SRC ?= "git@git.embedian.com:developer/smarc-fsl-linux-kernel.git;protocol=git" -SRC_URI = "${EMB_KERNEL_MIRROR};protocol=ssh;branch=${SRCBRANCH}" -SRCREV = "1cd5563826f7305acab8d4538cad38b396d89e79" - -S = "${WORKDIR}/git" - -addtask copy_defconfig after do_patch before do_preconfigure -do_copy_defconfig () { - cp ${KERNEL_DEFCONFIG} ${WORKDIR}/defconfig -} - -COMPATIBLE_MACHINE = "(mx6|mx7|mx8)" -EXTRA_OEMAKE_append_mx8 = " ARCH=arm64" diff --git a/recipes-kernel/linux/linux-smarcimx8mq_5.4.bb b/recipes-kernel/linux/linux-smarcimx8mq_5.4.bb new file mode 100644 index 0000000..6ae5bc5 --- /dev/null +++ b/recipes-kernel/linux/linux-smarcimx8mq_5.4.bb @@ -0,0 +1,64 @@ +# Copyright (C) 2013-2016 Freescale Semiconductor +# Copyright 2017-2019 NXP +# Copyright 2018-2019 Embedian, Inc. +# Released under the MIT license (see COPYING.MIT for the terms) + +SUMMARY = "Linux kernel provided and supported by Embedian" +DESCRIPTION = "Linux kernel provided and supported by Embedian (based on the kernel imx_5.4.24_2.1.0 provided by NXP) \ +with focus on i.MX Family SOMs. It includes support for many IPs such as GPU, VPU and IPU." + +require recipes-kernel/linux/linux-imx.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" + +DEPENDS += "lzop-native bc-native" + +SRCBRANCH = "smarc_8mq_imx_5.4.24_2.1.0" +#KERNEL_BRANCH ?= "smarc_8mq_imx_5.4.24_2.1.0" +LOCALVERSION = "-${SRCBRANCH}" +KERNEL_DEFCONFIG = "${S}/arch/arm64/configs/smarcimx8mq_defconfig" + +KERNEL_SRC ?= "git@git.embedian.com:developer/smarc-fsl-linux-kernel.git;protocol=git" +SRC_URI = "${EMB_KERNEL_MIRROR};protocol=ssh;branch=${SRCBRANCH}" +SRCREV = "acd8a316f05af41aa051e50215b3e4e301767235" + +S = "${WORKDIR}/git" + +FILES_${KERNEL_PACKAGE_NAME}-base += "${nonarch_base_libdir}/modules/${KERNEL_VERSION}/modules.builtin.modinfo " + +KERNEL_CONFIG_COMMAND = "oe_runmake_call -C ${S} CC="${KERNEL_CC}" O=${B} olddefconfig" + +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +DEFAULT_PREFERENCE = "1" + +addtask copy_defconfig after do_patch before do_preconfigure + +do_copy_defconfig () { + install -d ${B} + # copy kernel defconfig smarcimx8mq_defconfig to use for mx8 + mkdir -p ${B} + cp ${KERNEL_DEFCONFIG} ${B}/.config + cp ${KERNEL_DEFCONFIG} ${B}/../defconfig +} + +DELTA_KERNEL_DEFCONFIG ?= "" +#DELTA_KERNEL_DEFCONFIG_prepend_mx8 = "sdk_imx.config " + +do_merge_delta_config[dirs] = "${B}" +do_merge_delta_config() { + for deltacfg in ${DELTA_KERNEL_DEFCONFIG}; do + if [ -f ${S}/arch/${ARCH}/configs/${deltacfg} ]; then + ${KERNEL_CONFIG_COMMAND} + oe_runmake_call -C ${S} CC="${KERNEL_CC}" O=${B} ${deltacfg} + elif [ -f "${WORKDIR}/${deltacfg}" ]; then + ${S}/scripts/kconfig/merge_config.sh -m .config ${WORKDIR}/${deltacfg} + elif [ -f "${deltacfg}" ]; then + ${S}/scripts/kconfig/merge_config.sh -m .config ${deltacfg} + fi + done + cp .config ${WORKDIR}/defconfig +} +addtask merge_delta_config before do_preconfigure after do_copy_defconfig + +COMPATIBLE_MACHINE = "(mx6|mx7|mx8)" diff --git a/scripts/emb_mk_yocto_sdcard/emb-create-yocto-emmc.sh b/scripts/emb_mk_yocto_sdcard/emb-create-yocto-emmc.sh index f102f4a..59c2410 100755 --- a/scripts/emb_mk_yocto_sdcard/emb-create-yocto-emmc.sh +++ b/scripts/emb_mk_yocto_sdcard/emb-create-yocto-emmc.sh @@ -32,7 +32,7 @@ check_board() { if grep -q "i.MX8M" /sys/devices/soc0/soc_id; then BOARD=smarc-imx8m - DTB_PREFIX=fsl-smarcimx8mq + DTB_PREFIX=imx8mq-smarc BLOCK=mmcblk0 if [[ $DISPLAY != "-lvds" && $DISPLAY != "-hdmi" && \ @@ -149,7 +149,7 @@ install_kernel_to_emmc() mount /dev/${BLOCK}${PART}${BOOTPART} ${MOUNTDIR} mkdir -p ${MOUNTDIR}/dtbs/ cp -v ${IMGS_PATH}/${KERNEL_IMAGE} ${MOUNTDIR} - cp -v ${IMGS_PATH}/${DTB_PREFIX}${DISPLAY}.dtb ${MOUNTDIR}/dtbs/fsl-smarcimx8mq.dtb + cp -v ${IMGS_PATH}/${DTB_PREFIX}${DISPLAY}.dtb ${MOUNTDIR}/dtbs/imx8mq-smarc.dtb cp -v ${IMGS_PATH}/uEnv.txt ${MOUNTDIR} echo diff --git a/scripts/emb_mk_yocto_sdcard/emb-create-yocto-sdcard.sh b/scripts/emb_mk_yocto_sdcard/emb-create-yocto-sdcard.sh index 17cd8d0..69b4522 100755 --- a/scripts/emb_mk_yocto_sdcard/emb-create-yocto-sdcard.sh +++ b/scripts/emb_mk_yocto_sdcard/emb-create-yocto-sdcard.sh @@ -100,7 +100,7 @@ echo "================================================" help() { bn=`basename $0` - echo " Usage: MACHINE= $bn device_node" + echo " Usage: MACHINE= $bn device_node" echo echo " options:" echo " -h display this Help message" @@ -117,7 +117,7 @@ if [[ $EUID -ne 0 ]] ; then exit 1 fi -if [[ $MACHINE != "smarcimx8m2g" && $MACHINE != "smarcimx8m4g" ]] ; then +if [[ $MACHINE != "smarcimx8mq2g" && $MACHINE != "smarcimx8mq4g" ]] ; then help exit 1 fi @@ -262,7 +262,7 @@ function install_yocto echo "Flashing \"Image, device tree and uEnv.txt\" partition" cp -v ${YOCTO_IMGS_PATH}/Image ${P1_MOUNT_DIR}/ mkdir -p ${P1_MOUNT_DIR}/dtbs/ - cp -v ${YOCTO_IMGS_PATH}/fsl-smarcimx8mq${DISPLAY}.dtb ${P1_MOUNT_DIR}/dtbs/fsl-smarcimx8mq.dtb + cp -v ${YOCTO_IMGS_PATH}/imx8mq-smarc${DISPLAY}.dtb ${P1_MOUNT_DIR}/dtbs/imx8mq-smarc.dtb cp -v ${YOCTO_SCRIPTS_PATH}/uEnv.txt ${P1_MOUNT_DIR}/ echo @@ -296,7 +296,7 @@ function copy_images echo "Copying Kernel Parameter uEnv.txt to /opt/images/" cp -v ${YOCTO_SCRIPTS_PATH}/uEnv_emmc.txt ${P2_MOUNT_DIR}/opt/images/Yocto/uEnv.txt - if [[ $MACHINE = "smarcimx8m2g" || ${MACHINE} = "smarcimx8m4g" ]]; then + if [[ $MACHINE = "smarcimx8mq2g" || ${MACHINE} = "smarcimx8mq4g" ]]; then cp ${YOCTO_IMGS_PATH}/imx-boot-${MACHINE}-sd.bin-* ${P2_MOUNT_DIR}/opt/images/Yocto (cd ${P2_MOUNT_DIR}/opt/images/Yocto; ln -fs imx-boot-${MACHINE}-sd.bin-flash_evk imx-boot-sd.bin) else diff --git a/scripts/emb_mk_yocto_sdcard/uEnv.txt b/scripts/emb_mk_yocto_sdcard/uEnv.txt index 2a247ae..fab33cb 100644 --- a/scripts/emb_mk_yocto_sdcard/uEnv.txt +++ b/scripts/emb_mk_yocto_sdcard/uEnv.txt @@ -22,7 +22,7 @@ ethact=FEC0 ipaddr=192.168.1.150 serverip=192.168.1.53 gatewayip=192.168.1.254 -mmcargs=setenv bootargs console=${console} root=${mmcroot} rootfstype=${mmcrootfstype} ${optargs} +mmcargs=setenv bootargs cma=960M console=${console} root=${mmcroot} rootfstype=${mmcrootfstype} ${optargs} uenvcmd=run loadimage; run loadfdt; run mmcboot # USB Boot #usbargs=setenv bootargs console=${console} root=${usbroot} rootfstype=${mmcrootfstype} ${optargs} diff --git a/scripts/emb_mk_yocto_sdcard/uEnv_emmc.txt b/scripts/emb_mk_yocto_sdcard/uEnv_emmc.txt index 9dc5ff1..64692b6 100644 --- a/scripts/emb_mk_yocto_sdcard/uEnv_emmc.txt +++ b/scripts/emb_mk_yocto_sdcard/uEnv_emmc.txt @@ -22,7 +22,7 @@ ethact=FEC0 ipaddr=192.168.1.150 serverip=192.168.1.53 gatewayip=192.168.1.254 -mmcargs=setenv bootargs console=${console} root=${mmcroot} rootfstype=${mmcrootfstype} ${optargs} +mmcargs=setenv bootargs cma=960M console=${console} root=${mmcroot} rootfstype=${mmcrootfstype} ${optargs} uenvcmd=run loadimage; run loadfdt; run mmcboot # USB Boot #usbargs=setenv bootargs console=${console} root=${usbroot} rootfstype=${mmcrootfstype} ${optargs} -- 1.9.1