From 9e5c0e3043a7c49fb71276a0f6604047129eafdc Mon Sep 17 00:00:00 2001 From: Ming Liu Date: Mon, 2 May 2022 14:49:52 +0200 Subject: alsa-state: set up asound configs dynamically for verdin-imx8 boards We need set up asound.conf and asound.state dynamitically at runtime since the Verdin Development/Dahlia boards are using different ones. To achieve that, we now introduce a on-target package postinst script to set up them at runtime by checking /proc/device-tree/model to determine which config files should be used. Related-to: ELB-4349 Signed-off-by: Ming Liu --- recipes-bsp/alsa-state/alsa-state.bbappend | 38 +- .../alsa-state/verdin-imx8mm/asound-dahlia.conf | 250 +++++++ .../alsa-state/verdin-imx8mm/asound-dahlia.state | 519 +++++++++++++++ .../alsa-state/verdin-imx8mm/asound-dev.conf | 250 +++++++ .../alsa-state/verdin-imx8mm/asound-dev.state | 729 +++++++++++++++++++++ .../alsa-state/verdin-imx8mm/asound.state | 519 --------------- .../alsa-state/verdin-imx8mp/asound-dahlia.conf | 250 +++++++ .../alsa-state/verdin-imx8mp/asound-dahlia.state | 519 +++++++++++++++ .../alsa-state/verdin-imx8mp/asound-dev.conf | 250 +++++++ .../alsa-state/verdin-imx8mp/asound-dev.state | 729 +++++++++++++++++++++ 10 files changed, 3533 insertions(+), 520 deletions(-) create mode 100644 recipes-bsp/alsa-state/alsa-state/verdin-imx8mm/asound-dahlia.conf create mode 100644 recipes-bsp/alsa-state/alsa-state/verdin-imx8mm/asound-dahlia.state create mode 100644 recipes-bsp/alsa-state/alsa-state/verdin-imx8mm/asound-dev.conf create mode 100644 recipes-bsp/alsa-state/alsa-state/verdin-imx8mm/asound-dev.state delete mode 100644 recipes-bsp/alsa-state/alsa-state/verdin-imx8mm/asound.state create mode 100644 recipes-bsp/alsa-state/alsa-state/verdin-imx8mp/asound-dahlia.conf create mode 100644 recipes-bsp/alsa-state/alsa-state/verdin-imx8mp/asound-dahlia.state create mode 100644 recipes-bsp/alsa-state/alsa-state/verdin-imx8mp/asound-dev.conf create mode 100644 recipes-bsp/alsa-state/alsa-state/verdin-imx8mp/asound-dev.state diff --git a/recipes-bsp/alsa-state/alsa-state.bbappend b/recipes-bsp/alsa-state/alsa-state.bbappend index 51f5749..5a1cef7 100644 --- a/recipes-bsp/alsa-state/alsa-state.bbappend +++ b/recipes-bsp/alsa-state/alsa-state.bbappend @@ -1,4 +1,40 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/alsa-state/:" -#make this machine specific, as we have different codecs with different settings +# make this machine specific, as we have different codecs with different settings PACKAGE_ARCH_tdx = "${MACHINE_ARCH}" + +SRC_URI_append_mx8m_tdx = " \ + file://asound-dev.conf \ + file://asound-dahlia.conf \ + file://asound-dev.state \ + file://asound-dahlia.state \ +" + +FILES_${PN} += "${sysconfdir}/asound-*.conf" + +do_install_append_mx8m_tdx () { + # Remove the default asound.conf, we need set up asound.conf dynamically + # at runtime to support both dev/dahlia boards. + rm -f ${D}${sysconfdir}/asound.conf + rm -f ${D}${localstatedir}/lib/alsa/asound.state + install -m 0644 ${WORKDIR}/asound-*.conf ${D}${sysconfdir} + install -m 0644 ${WORKDIR}/asound-*.state ${D}${localstatedir}/lib/alsa +} + +# Invalidate the default pkg_postinst in oe-core, this ensures our ontarget +# postinst to be the only one to run during package installation. +pkg_postinst_${PN}_mx8m_tdx () { +} + +pkg_postinst_ontarget_${PN}_mx8m_tdx () { + if grep -q "Development" /proc/device-tree/model; then + board="dev" + else + board="dahlia" + fi + + mv /etc/asound-$board.conf /etc/asound.conf + mv /var/lib/alsa/asound-$board.state /var/lib/alsa/asound.state + rm -f /etc/asound-*.conf + rm -f /var/lib/alsa/asound-*.state +} diff --git a/recipes-bsp/alsa-state/alsa-state/verdin-imx8mm/asound-dahlia.conf b/recipes-bsp/alsa-state/alsa-state/verdin-imx8mm/asound-dahlia.conf new file mode 100644 index 0000000..122f912 --- /dev/null +++ b/recipes-bsp/alsa-state/alsa-state/verdin-imx8mm/asound-dahlia.conf @@ -0,0 +1,250 @@ +defaults.pcm.rate_converter "linear" + +pcm.default_card{ +type hw +card "imx8mmwm8904" +} + +pcm.dmix_48000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 48000 +} +} + +pcm.dmix_44100{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 44100 +} +} + +pcm.dmix_32000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 32000 +} +} + +pcm.dmix_24000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 24000 +} +} + +pcm.dmix_22050{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 22050 +} +} + +pcm.dmix_16000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 16000 +} +} + +pcm.dmix_12000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 12000 +} +} + +pcm.dmix_11025{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 11025 +} +} + +pcm.dmix_8000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 8000 +} +} + +pcm.!dsnoop_48000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 48000 +} +} + +pcm.!dsnoop_44100{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 44100 +} +} + +pcm.!dsnoop_32000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 32000 +} +} + +pcm.!dsnoop_24000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 24000 +} +} + +pcm.!dsnoop_22050{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 22050 +} +} + +pcm.!dsnoop_16000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 16000 +} +} + +pcm.!dsnoop_12000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 12000 +} +} + +pcm.!dsnoop_11025{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 11025 +} +} + +pcm.!dsnoop_8000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 8000 +} +} + +pcm.asymed{ +type asym +playback.pcm "dmix_44100" +capture.pcm "dsnoop_44100" +} + +pcm.dsp0{ +type plug +slave.pcm "asymed" +} + +pcm.!default{ +type plug +route_policy "average" +slave.pcm "asymed" +} + +ctl.!default{ +type hw +card "imx8mmwm8904" +} + +ctl.mixer0{ +type hw +card "imx8mmwm8904" +} + diff --git a/recipes-bsp/alsa-state/alsa-state/verdin-imx8mm/asound-dahlia.state b/recipes-bsp/alsa-state/alsa-state/verdin-imx8mm/asound-dahlia.state new file mode 100644 index 0000000..1d3e09a --- /dev/null +++ b/recipes-bsp/alsa-state/alsa-state/verdin-imx8mm/asound-dahlia.state @@ -0,0 +1,519 @@ +state.imx8mmwm8904 { + control.1 { + iface MIXER + name 'EQ1 Volume' + value 12 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 24' + dbmin -1200 + dbmax 1200 + dbvalue.0 0 + } + } + control.2 { + iface MIXER + name 'EQ2 Volume' + value 12 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 24' + dbmin -1200 + dbmax 1200 + dbvalue.0 0 + } + } + control.3 { + iface MIXER + name 'EQ3 Volume' + value 12 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 24' + dbmin -1200 + dbmax 1200 + dbvalue.0 0 + } + } + control.4 { + iface MIXER + name 'EQ4 Volume' + value 12 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 24' + dbmin -1200 + dbmax 1200 + dbvalue.0 0 + } + } + control.5 { + iface MIXER + name 'EQ5 Volume' + value 12 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 24' + dbmin -1200 + dbmax 1200 + dbvalue.0 0 + } + } + control.6 { + iface MIXER + name 'Digital Capture 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.7 { + iface MIXER + name 'Left Caputure Mode' + value Single-Ended + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Single-Ended + item.1 'Differential Line' + item.2 'Differential Mic' + } + } + control.8 { + iface MIXER + name 'Right Capture Mode' + value Single-Ended + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Single-Ended + item.1 'Differential Line' + item.2 'Differential Mic' + } + } + control.9 { + iface MIXER + name 'Capture Volume' + value.0 24 + value.1 24 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 31' + } + } + control.10 { + iface MIXER + name 'Capture Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.11 { + iface MIXER + name 'High Pass Filter Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.12 { + iface MIXER + name 'High Pass Filter Mode' + value Hi-fi + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Hi-fi + item.1 'Voice 1' + item.2 'Voice 2' + item.3 'Voice 3' + } + } + control.13 { + iface MIXER + name 'ADC 128x OSR Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.14 { + iface MIXER + name 'Digital Playback Boost Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 3' + dbmin 0 + dbmax 1800 + dbvalue.0 0 + } + } + control.15 { + iface MIXER + name 'Digital Playback Volume' + value.0 88 + value.1 88 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 96' + dbmin -9999999 + dbmax 0 + dbvalue.0 -600 + dbvalue.1 -600 + } + } + control.16 { + iface MIXER + name 'Headphone Volume' + value.0 43 + value.1 43 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 63' + dbmin -5700 + dbmax 600 + dbvalue.0 -1400 + dbvalue.1 -1400 + } + } + control.17 { + iface MIXER + name 'Headphone Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.18 { + iface MIXER + name 'Headphone ZC Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.19 { + iface MIXER + name 'Line Output Volume' + value.0 0 + value.1 0 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 63' + dbmin -5700 + dbmax 600 + dbvalue.0 -5700 + dbvalue.1 -5700 + } + } + control.20 { + iface MIXER + name 'Line Output Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.21 { + iface MIXER + name 'Line Output ZC Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.22 { + iface MIXER + name 'EQ Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.23 { + iface MIXER + name 'DRC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.24 { + iface MIXER + name 'DRC Path' + value ADC + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 ADC + item.1 DAC + } + } + control.25 { + iface MIXER + name 'DAC OSRx2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.26 { + iface MIXER + name 'DAC Deemphasis Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.27 { + iface MIXER + name 'Digital Sidetone Volume' + value.0 0 + value.1 0 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 15' + dbmin -3600 + dbmax 900 + dbvalue.0 -3600 + dbvalue.1 -3600 + } + } + control.28 { + iface MIXER + name 'Left Capture Mux' + value IN1L + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 IN1L + item.1 IN2L + item.2 IN3L + } + } + control.29 { + iface MIXER + name 'Left Capture Inverting Mux' + value IN1L + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 IN1L + item.1 IN2L + item.2 IN3L + } + } + control.30 { + iface MIXER + name 'Right Capture Mux' + value IN1R + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 IN1R + item.1 IN2R + item.2 IN3R + } + } + control.31 { + iface MIXER + name 'Right Capture Inverting Mux' + value IN1R + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 IN1R + item.1 IN2R + item.2 IN3R + } + } + control.32 { + iface MIXER + name 'AIFOUTL Mux' + value Left + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Left + item.1 Right + } + } + control.33 { + iface MIXER + name 'AIFOUTR Mux' + value Right + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Left + item.1 Right + } + } + control.34 { + iface MIXER + name 'DACL Mux' + value Left + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Left + item.1 Right + } + } + control.35 { + iface MIXER + name 'DACR Mux' + value Right + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Left + item.1 Right + } + } + control.36 { + iface MIXER + name 'Left Sidetone' + value None + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 None + item.1 Left + item.2 Right + } + } + control.37 { + iface MIXER + name 'Right Sidetone' + value None + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 None + item.1 Left + item.2 Right + } + } + control.38 { + iface MIXER + name 'HPL Mux' + value DAC + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 DAC + item.1 Bypass + } + } + control.39 { + iface MIXER + name 'HPR Mux' + value DAC + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 DAC + item.1 Bypass + } + } + control.40 { + iface MIXER + name 'LINEL Mux' + value DAC + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 DAC + item.1 Bypass + } + } + control.41 { + iface MIXER + name 'LINER Mux' + value DAC + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 DAC + item.1 Bypass + } + } +} diff --git a/recipes-bsp/alsa-state/alsa-state/verdin-imx8mm/asound-dev.conf b/recipes-bsp/alsa-state/alsa-state/verdin-imx8mm/asound-dev.conf new file mode 100644 index 0000000..c0789f6 --- /dev/null +++ b/recipes-bsp/alsa-state/alsa-state/verdin-imx8mm/asound-dev.conf @@ -0,0 +1,250 @@ +defaults.pcm.rate_converter "linear" + +pcm.default_card{ +type hw +card "imx8mmnau8822" +} + +pcm.dmix_48000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 48000 +} +} + +pcm.dmix_44100{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 44100 +} +} + +pcm.dmix_32000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 32000 +} +} + +pcm.dmix_24000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 24000 +} +} + +pcm.dmix_22050{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 22050 +} +} + +pcm.dmix_16000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 16000 +} +} + +pcm.dmix_12000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 12000 +} +} + +pcm.dmix_11025{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 11025 +} +} + +pcm.dmix_8000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 8000 +} +} + +pcm.!dsnoop_48000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 48000 +} +} + +pcm.!dsnoop_44100{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 44100 +} +} + +pcm.!dsnoop_32000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 32000 +} +} + +pcm.!dsnoop_24000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 24000 +} +} + +pcm.!dsnoop_22050{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 22050 +} +} + +pcm.!dsnoop_16000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 16000 +} +} + +pcm.!dsnoop_12000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 12000 +} +} + +pcm.!dsnoop_11025{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 11025 +} +} + +pcm.!dsnoop_8000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 8000 +} +} + +pcm.asymed{ +type asym +playback.pcm "dmix_44100" +capture.pcm "dsnoop_44100" +} + +pcm.dsp0{ +type plug +slave.pcm "asymed" +} + +pcm.!default{ +type plug +route_policy "average" +slave.pcm "asymed" +} + +ctl.!default{ +type hw +card "imx8mmnau8822" +} + +ctl.mixer0{ +type hw +card "imx8mmnau8822" +} + diff --git a/recipes-bsp/alsa-state/alsa-state/verdin-imx8mm/asound-dev.state b/recipes-bsp/alsa-state/alsa-state/verdin-imx8mm/asound-dev.state new file mode 100644 index 0000000..878f82e --- /dev/null +++ b/recipes-bsp/alsa-state/alsa-state/verdin-imx8mm/asound-dev.state @@ -0,0 +1,729 @@ +state.imx8mmnau8822 { + control.1 { + iface MIXER + name 'ADC Companding' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 NC + item.2 u-law + item.3 A-law + } + } + control.2 { + iface MIXER + name 'DAC Companding' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 NC + item.2 u-law + item.3 A-law + } + } + control.3 { + iface MIXER + name 'EQ Function' + value Playback + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Capture + item.1 Playback + } + } + control.4 { + iface MIXER + name 'EQ Parameters' + value '012c002c002c002c002c' + comment { + access 'read write' + type BYTES + count 10 + } + } + control.5 { + iface MIXER + name 'DAC Inversion Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.6 { + iface MIXER + name 'PCM Volume' + value.0 215 + value.1 215 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 -2000 + dbvalue.1 -2000 + } + } + control.7 { + iface MIXER + name 'High Pass Filter Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.8 { + iface MIXER + name 'High Pass Cut Off' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + } + } + control.9 { + iface MIXER + name 'ADC Inversion Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.10 { + iface MIXER + name 'ADC 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.11 { + iface MIXER + name 'DAC Limiter Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.12 { + iface MIXER + name 'DAC Limiter Decay' + value 3 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 15' + } + } + control.13 { + iface MIXER + name 'DAC Limiter Attack' + value 2 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 15' + } + } + control.14 { + iface MIXER + name 'DAC Limiter Threshold' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + } + } + control.15 { + iface MIXER + name 'DAC Limiter Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 12' + dbmin 0 + dbmax 1200 + dbvalue.0 0 + } + } + control.16 { + iface MIXER + name 'ALC Mode' + value Normal + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Normal + item.1 Limiter + } + } + control.17 { + iface MIXER + name 'ALC Enable Switch' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 Right + item.2 Left + item.3 Both + } + } + control.18 { + iface MIXER + name 'ALC Min Gain' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + } + } + control.19 { + iface MIXER + name 'ALC Max Gain' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + } + } + control.20 { + iface MIXER + name 'ALC Hold' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 10' + } + } + control.21 { + iface MIXER + name 'ALC Target' + value 11 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 15' + } + } + control.22 { + iface MIXER + name 'ALC Decay' + value 3 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 10' + } + } + control.23 { + iface MIXER + name 'ALC Attack' + value 2 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 10' + } + } + control.24 { + iface MIXER + name 'ALC Noise Gate Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.25 { + iface MIXER + name 'ALC Noise Gate Threshold' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + } + } + control.26 { + iface MIXER + name 'PGA ZC Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.27 { + iface MIXER + name 'PGA Volume' + value.0 16 + value.1 16 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 63' + dbmin -1200 + dbmax 3525 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.28 { + iface MIXER + name 'Headphone ZC Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.29 { + iface MIXER + name 'Headphone Playback Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.30 { + iface MIXER + name 'Headphone 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.31 { + iface MIXER + name 'Speaker RInversion Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.32 { + iface MIXER + name 'Speaker ZC Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.33 { + iface MIXER + name 'Speaker Playback Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.34 { + iface MIXER + name 'Speaker 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.35 { + iface MIXER + name 'AUXOUT Playback Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.36 { + iface MIXER + name 'PGA Boost Volume' + value.0 1 + value.1 1 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 1' + dbmin 0 + dbmax 2000 + dbvalue.0 2000 + dbvalue.1 2000 + } + } + control.37 { + iface MIXER + name 'L2/R2 Boost Volume' + value.0 0 + value.1 0 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 7' + dbmin -9999999 + dbmax 600 + dbvalue.0 -9999999 + dbvalue.1 -9999999 + } + } + control.38 { + iface MIXER + name 'Aux Boost Volume' + value.0 0 + value.1 0 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 7' + dbmin -9999999 + dbmax 600 + dbvalue.0 -9999999 + dbvalue.1 -9999999 + } + } + control.39 { + iface MIXER + name 'DAC 128x Oversampling Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.40 { + iface MIXER + name 'ADC 128x Oversampling Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.41 { + iface MIXER + name 'Left Output Mixer LINMIX Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.42 { + iface MIXER + name 'Left Output Mixer LAUX Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.43 { + iface MIXER + name 'Left Output Mixer LDAC Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.44 { + iface MIXER + name 'Left Output Mixer RDAC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.45 { + iface MIXER + name 'Right Output Mixer RINMIX Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.46 { + iface MIXER + name 'Right Output Mixer RAUX Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.47 { + iface MIXER + name 'Right Output Mixer RDAC Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.48 { + iface MIXER + name 'Right Output Mixer LDAC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.49 { + iface MIXER + name 'AUX1 Output Mixer RDAC Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.50 { + iface MIXER + name 'AUX1 Output Mixer RMIX Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.51 { + iface MIXER + name 'AUX1 Output Mixer RINMIX Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.52 { + iface MIXER + name 'AUX1 Output Mixer LDAC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.53 { + iface MIXER + name 'AUX1 Output Mixer LMIX Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.54 { + iface MIXER + name 'AUX2 Output Mixer LDAC Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.55 { + iface MIXER + name 'AUX2 Output Mixer LMIX Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.56 { + iface MIXER + name 'AUX2 Output Mixer LINMIX Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.57 { + iface MIXER + name 'AUX2 Output Mixer AUX1MIX Output Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.58 { + iface MIXER + name 'Left Input Mixer L2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.59 { + iface MIXER + name 'Left Input Mixer MicN Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.60 { + iface MIXER + name 'Left Input Mixer MicP Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.61 { + iface MIXER + name 'Right Input Mixer R2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.62 { + iface MIXER + name 'Right Input Mixer MicN Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.63 { + iface MIXER + name 'Right Input Mixer MicP Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.64 { + iface MIXER + name 'Digital Loopback Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } +} diff --git a/recipes-bsp/alsa-state/alsa-state/verdin-imx8mm/asound.state b/recipes-bsp/alsa-state/alsa-state/verdin-imx8mm/asound.state deleted file mode 100644 index 1d3e09a..0000000 --- a/recipes-bsp/alsa-state/alsa-state/verdin-imx8mm/asound.state +++ /dev/null @@ -1,519 +0,0 @@ -state.imx8mmwm8904 { - control.1 { - iface MIXER - name 'EQ1 Volume' - value 12 - comment { - access 'read write' - type INTEGER - count 1 - range '0 - 24' - dbmin -1200 - dbmax 1200 - dbvalue.0 0 - } - } - control.2 { - iface MIXER - name 'EQ2 Volume' - value 12 - comment { - access 'read write' - type INTEGER - count 1 - range '0 - 24' - dbmin -1200 - dbmax 1200 - dbvalue.0 0 - } - } - control.3 { - iface MIXER - name 'EQ3 Volume' - value 12 - comment { - access 'read write' - type INTEGER - count 1 - range '0 - 24' - dbmin -1200 - dbmax 1200 - dbvalue.0 0 - } - } - control.4 { - iface MIXER - name 'EQ4 Volume' - value 12 - comment { - access 'read write' - type INTEGER - count 1 - range '0 - 24' - dbmin -1200 - dbmax 1200 - dbvalue.0 0 - } - } - control.5 { - iface MIXER - name 'EQ5 Volume' - value 12 - comment { - access 'read write' - type INTEGER - count 1 - range '0 - 24' - dbmin -1200 - dbmax 1200 - dbvalue.0 0 - } - } - control.6 { - iface MIXER - name 'Digital Capture 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.7 { - iface MIXER - name 'Left Caputure Mode' - value Single-Ended - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 Single-Ended - item.1 'Differential Line' - item.2 'Differential Mic' - } - } - control.8 { - iface MIXER - name 'Right Capture Mode' - value Single-Ended - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 Single-Ended - item.1 'Differential Line' - item.2 'Differential Mic' - } - } - control.9 { - iface MIXER - name 'Capture Volume' - value.0 24 - value.1 24 - comment { - access 'read write' - type INTEGER - count 2 - range '0 - 31' - } - } - control.10 { - iface MIXER - name 'Capture Switch' - value.0 true - value.1 true - comment { - access 'read write' - type BOOLEAN - count 2 - } - } - control.11 { - iface MIXER - name 'High Pass Filter Switch' - value true - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.12 { - iface MIXER - name 'High Pass Filter Mode' - value Hi-fi - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 Hi-fi - item.1 'Voice 1' - item.2 'Voice 2' - item.3 'Voice 3' - } - } - control.13 { - iface MIXER - name 'ADC 128x OSR Switch' - value true - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.14 { - iface MIXER - name 'Digital Playback Boost Volume' - value 0 - comment { - access 'read write' - type INTEGER - count 1 - range '0 - 3' - dbmin 0 - dbmax 1800 - dbvalue.0 0 - } - } - control.15 { - iface MIXER - name 'Digital Playback Volume' - value.0 88 - value.1 88 - comment { - access 'read write' - type INTEGER - count 2 - range '0 - 96' - dbmin -9999999 - dbmax 0 - dbvalue.0 -600 - dbvalue.1 -600 - } - } - control.16 { - iface MIXER - name 'Headphone Volume' - value.0 43 - value.1 43 - comment { - access 'read write' - type INTEGER - count 2 - range '0 - 63' - dbmin -5700 - dbmax 600 - dbvalue.0 -1400 - dbvalue.1 -1400 - } - } - control.17 { - iface MIXER - name 'Headphone Switch' - value.0 true - value.1 true - comment { - access 'read write' - type BOOLEAN - count 2 - } - } - control.18 { - iface MIXER - name 'Headphone ZC Switch' - value.0 true - value.1 true - comment { - access 'read write' - type BOOLEAN - count 2 - } - } - control.19 { - iface MIXER - name 'Line Output Volume' - value.0 0 - value.1 0 - comment { - access 'read write' - type INTEGER - count 2 - range '0 - 63' - dbmin -5700 - dbmax 600 - dbvalue.0 -5700 - dbvalue.1 -5700 - } - } - control.20 { - iface MIXER - name 'Line Output Switch' - value.0 false - value.1 false - comment { - access 'read write' - type BOOLEAN - count 2 - } - } - control.21 { - iface MIXER - name 'Line Output ZC Switch' - value.0 true - value.1 true - comment { - access 'read write' - type BOOLEAN - count 2 - } - } - control.22 { - iface MIXER - name 'EQ Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.23 { - iface MIXER - name 'DRC Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.24 { - iface MIXER - name 'DRC Path' - value ADC - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 ADC - item.1 DAC - } - } - control.25 { - iface MIXER - name 'DAC OSRx2 Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.26 { - iface MIXER - name 'DAC Deemphasis Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.27 { - iface MIXER - name 'Digital Sidetone Volume' - value.0 0 - value.1 0 - comment { - access 'read write' - type INTEGER - count 2 - range '0 - 15' - dbmin -3600 - dbmax 900 - dbvalue.0 -3600 - dbvalue.1 -3600 - } - } - control.28 { - iface MIXER - name 'Left Capture Mux' - value IN1L - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 IN1L - item.1 IN2L - item.2 IN3L - } - } - control.29 { - iface MIXER - name 'Left Capture Inverting Mux' - value IN1L - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 IN1L - item.1 IN2L - item.2 IN3L - } - } - control.30 { - iface MIXER - name 'Right Capture Mux' - value IN1R - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 IN1R - item.1 IN2R - item.2 IN3R - } - } - control.31 { - iface MIXER - name 'Right Capture Inverting Mux' - value IN1R - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 IN1R - item.1 IN2R - item.2 IN3R - } - } - control.32 { - iface MIXER - name 'AIFOUTL Mux' - value Left - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 Left - item.1 Right - } - } - control.33 { - iface MIXER - name 'AIFOUTR Mux' - value Right - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 Left - item.1 Right - } - } - control.34 { - iface MIXER - name 'DACL Mux' - value Left - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 Left - item.1 Right - } - } - control.35 { - iface MIXER - name 'DACR Mux' - value Right - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 Left - item.1 Right - } - } - control.36 { - iface MIXER - name 'Left Sidetone' - value None - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 None - item.1 Left - item.2 Right - } - } - control.37 { - iface MIXER - name 'Right Sidetone' - value None - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 None - item.1 Left - item.2 Right - } - } - control.38 { - iface MIXER - name 'HPL Mux' - value DAC - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 DAC - item.1 Bypass - } - } - control.39 { - iface MIXER - name 'HPR Mux' - value DAC - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 DAC - item.1 Bypass - } - } - control.40 { - iface MIXER - name 'LINEL Mux' - value DAC - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 DAC - item.1 Bypass - } - } - control.41 { - iface MIXER - name 'LINER Mux' - value DAC - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 DAC - item.1 Bypass - } - } -} diff --git a/recipes-bsp/alsa-state/alsa-state/verdin-imx8mp/asound-dahlia.conf b/recipes-bsp/alsa-state/alsa-state/verdin-imx8mp/asound-dahlia.conf new file mode 100644 index 0000000..2289bd0 --- /dev/null +++ b/recipes-bsp/alsa-state/alsa-state/verdin-imx8mp/asound-dahlia.conf @@ -0,0 +1,250 @@ +defaults.pcm.rate_converter "linear" + +pcm.default_card{ +type hw +card "imx8mpwm8904" +} + +pcm.dmix_48000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 48000 +} +} + +pcm.dmix_44100{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 44100 +} +} + +pcm.dmix_32000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 32000 +} +} + +pcm.dmix_24000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 24000 +} +} + +pcm.dmix_22050{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 22050 +} +} + +pcm.dmix_16000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 16000 +} +} + +pcm.dmix_12000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 12000 +} +} + +pcm.dmix_11025{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 11025 +} +} + +pcm.dmix_8000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 8000 +} +} + +pcm.!dsnoop_48000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 48000 +} +} + +pcm.!dsnoop_44100{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 44100 +} +} + +pcm.!dsnoop_32000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 32000 +} +} + +pcm.!dsnoop_24000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 24000 +} +} + +pcm.!dsnoop_22050{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 22050 +} +} + +pcm.!dsnoop_16000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 16000 +} +} + +pcm.!dsnoop_12000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 12000 +} +} + +pcm.!dsnoop_11025{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 11025 +} +} + +pcm.!dsnoop_8000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 8000 +} +} + +pcm.asymed{ +type asym +playback.pcm "dmix_44100" +capture.pcm "dsnoop_44100" +} + +pcm.dsp0{ +type plug +slave.pcm "asymed" +} + +pcm.!default{ +type plug +route_policy "average" +slave.pcm "asymed" +} + +ctl.!default{ +type hw +card "imx8mpwm8904" +} + +ctl.mixer0{ +type hw +card "imx8mpwm8904" +} + diff --git a/recipes-bsp/alsa-state/alsa-state/verdin-imx8mp/asound-dahlia.state b/recipes-bsp/alsa-state/alsa-state/verdin-imx8mp/asound-dahlia.state new file mode 100644 index 0000000..194c7bf --- /dev/null +++ b/recipes-bsp/alsa-state/alsa-state/verdin-imx8mp/asound-dahlia.state @@ -0,0 +1,519 @@ +state.imx8mpwm8904 { + control.1 { + iface MIXER + name 'EQ1 Volume' + value 12 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 24' + dbmin -1200 + dbmax 1200 + dbvalue.0 0 + } + } + control.2 { + iface MIXER + name 'EQ2 Volume' + value 12 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 24' + dbmin -1200 + dbmax 1200 + dbvalue.0 0 + } + } + control.3 { + iface MIXER + name 'EQ3 Volume' + value 12 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 24' + dbmin -1200 + dbmax 1200 + dbvalue.0 0 + } + } + control.4 { + iface MIXER + name 'EQ4 Volume' + value 12 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 24' + dbmin -1200 + dbmax 1200 + dbvalue.0 0 + } + } + control.5 { + iface MIXER + name 'EQ5 Volume' + value 12 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 24' + dbmin -1200 + dbmax 1200 + dbvalue.0 0 + } + } + control.6 { + iface MIXER + name 'Digital Capture 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.7 { + iface MIXER + name 'Left Caputure Mode' + value Single-Ended + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Single-Ended + item.1 'Differential Line' + item.2 'Differential Mic' + } + } + control.8 { + iface MIXER + name 'Right Capture Mode' + value Single-Ended + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Single-Ended + item.1 'Differential Line' + item.2 'Differential Mic' + } + } + control.9 { + iface MIXER + name 'Capture Volume' + value.0 24 + value.1 24 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 31' + } + } + control.10 { + iface MIXER + name 'Capture Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.11 { + iface MIXER + name 'High Pass Filter Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.12 { + iface MIXER + name 'High Pass Filter Mode' + value Hi-fi + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Hi-fi + item.1 'Voice 1' + item.2 'Voice 2' + item.3 'Voice 3' + } + } + control.13 { + iface MIXER + name 'ADC 128x OSR Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.14 { + iface MIXER + name 'Digital Playback Boost Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 3' + dbmin 0 + dbmax 1800 + dbvalue.0 0 + } + } + control.15 { + iface MIXER + name 'Digital Playback Volume' + value.0 88 + value.1 88 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 96' + dbmin -9999999 + dbmax 0 + dbvalue.0 -600 + dbvalue.1 -600 + } + } + control.16 { + iface MIXER + name 'Headphone Volume' + value.0 43 + value.1 43 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 63' + dbmin -5700 + dbmax 600 + dbvalue.0 -1400 + dbvalue.1 -1400 + } + } + control.17 { + iface MIXER + name 'Headphone Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.18 { + iface MIXER + name 'Headphone ZC Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.19 { + iface MIXER + name 'Line Output Volume' + value.0 0 + value.1 0 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 63' + dbmin -5700 + dbmax 600 + dbvalue.0 -5700 + dbvalue.1 -5700 + } + } + control.20 { + iface MIXER + name 'Line Output Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.21 { + iface MIXER + name 'Line Output ZC Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.22 { + iface MIXER + name 'EQ Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.23 { + iface MIXER + name 'DRC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.24 { + iface MIXER + name 'DRC Path' + value ADC + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 ADC + item.1 DAC + } + } + control.25 { + iface MIXER + name 'DAC OSRx2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.26 { + iface MIXER + name 'DAC Deemphasis Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.27 { + iface MIXER + name 'Digital Sidetone Volume' + value.0 0 + value.1 0 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 15' + dbmin -3600 + dbmax 900 + dbvalue.0 -3600 + dbvalue.1 -3600 + } + } + control.28 { + iface MIXER + name 'Left Capture Mux' + value IN1L + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 IN1L + item.1 IN2L + item.2 IN3L + } + } + control.29 { + iface MIXER + name 'Left Capture Inverting Mux' + value IN1L + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 IN1L + item.1 IN2L + item.2 IN3L + } + } + control.30 { + iface MIXER + name 'Right Capture Mux' + value IN1R + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 IN1R + item.1 IN2R + item.2 IN3R + } + } + control.31 { + iface MIXER + name 'Right Capture Inverting Mux' + value IN1R + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 IN1R + item.1 IN2R + item.2 IN3R + } + } + control.32 { + iface MIXER + name 'AIFOUTL Mux' + value Left + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Left + item.1 Right + } + } + control.33 { + iface MIXER + name 'AIFOUTR Mux' + value Right + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Left + item.1 Right + } + } + control.34 { + iface MIXER + name 'DACL Mux' + value Left + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Left + item.1 Right + } + } + control.35 { + iface MIXER + name 'DACR Mux' + value Right + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Left + item.1 Right + } + } + control.36 { + iface MIXER + name 'Left Sidetone' + value None + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 None + item.1 Left + item.2 Right + } + } + control.37 { + iface MIXER + name 'Right Sidetone' + value None + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 None + item.1 Left + item.2 Right + } + } + control.38 { + iface MIXER + name 'HPL Mux' + value DAC + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 DAC + item.1 Bypass + } + } + control.39 { + iface MIXER + name 'HPR Mux' + value DAC + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 DAC + item.1 Bypass + } + } + control.40 { + iface MIXER + name 'LINEL Mux' + value DAC + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 DAC + item.1 Bypass + } + } + control.41 { + iface MIXER + name 'LINER Mux' + value DAC + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 DAC + item.1 Bypass + } + } +} diff --git a/recipes-bsp/alsa-state/alsa-state/verdin-imx8mp/asound-dev.conf b/recipes-bsp/alsa-state/alsa-state/verdin-imx8mp/asound-dev.conf new file mode 100644 index 0000000..54941e3 --- /dev/null +++ b/recipes-bsp/alsa-state/alsa-state/verdin-imx8mp/asound-dev.conf @@ -0,0 +1,250 @@ +defaults.pcm.rate_converter "linear" + +pcm.default_card{ +type hw +card "imx8mpnau8822" +} + +pcm.dmix_48000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 48000 +} +} + +pcm.dmix_44100{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 44100 +} +} + +pcm.dmix_32000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 32000 +} +} + +pcm.dmix_24000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 24000 +} +} + +pcm.dmix_22050{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 22050 +} +} + +pcm.dmix_16000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 16000 +} +} + +pcm.dmix_12000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 12000 +} +} + +pcm.dmix_11025{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 11025 +} +} + +pcm.dmix_8000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 8000 +} +} + +pcm.!dsnoop_48000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 48000 +} +} + +pcm.!dsnoop_44100{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 44100 +} +} + +pcm.!dsnoop_32000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 32000 +} +} + +pcm.!dsnoop_24000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 24000 +} +} + +pcm.!dsnoop_22050{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 22050 +} +} + +pcm.!dsnoop_16000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 16000 +} +} + +pcm.!dsnoop_12000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 12000 +} +} + +pcm.!dsnoop_11025{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 11025 +} +} + +pcm.!dsnoop_8000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 8000 +} +} + +pcm.asymed{ +type asym +playback.pcm "dmix_44100" +capture.pcm "dsnoop_44100" +} + +pcm.dsp0{ +type plug +slave.pcm "asymed" +} + +pcm.!default{ +type plug +route_policy "average" +slave.pcm "asymed" +} + +ctl.!default{ +type hw +card "imx8mpnau8822" +} + +ctl.mixer0{ +type hw +card "imx8mpnau8822" +} + diff --git a/recipes-bsp/alsa-state/alsa-state/verdin-imx8mp/asound-dev.state b/recipes-bsp/alsa-state/alsa-state/verdin-imx8mp/asound-dev.state new file mode 100644 index 0000000..125ddf7 --- /dev/null +++ b/recipes-bsp/alsa-state/alsa-state/verdin-imx8mp/asound-dev.state @@ -0,0 +1,729 @@ +state.imx8mpnau8822 { + control.1 { + iface MIXER + name 'ADC Companding' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 NC + item.2 u-law + item.3 A-law + } + } + control.2 { + iface MIXER + name 'DAC Companding' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 NC + item.2 u-law + item.3 A-law + } + } + control.3 { + iface MIXER + name 'EQ Function' + value Playback + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Capture + item.1 Playback + } + } + control.4 { + iface MIXER + name 'EQ Parameters' + value '012c002c002c002c002c' + comment { + access 'read write' + type BYTES + count 10 + } + } + control.5 { + iface MIXER + name 'DAC Inversion Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.6 { + iface MIXER + name 'PCM Volume' + value.0 215 + value.1 215 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 -2000 + dbvalue.1 -2000 + } + } + control.7 { + iface MIXER + name 'High Pass Filter Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.8 { + iface MIXER + name 'High Pass Cut Off' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + } + } + control.9 { + iface MIXER + name 'ADC Inversion Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.10 { + iface MIXER + name 'ADC 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.11 { + iface MIXER + name 'DAC Limiter Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.12 { + iface MIXER + name 'DAC Limiter Decay' + value 3 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 15' + } + } + control.13 { + iface MIXER + name 'DAC Limiter Attack' + value 2 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 15' + } + } + control.14 { + iface MIXER + name 'DAC Limiter Threshold' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + } + } + control.15 { + iface MIXER + name 'DAC Limiter Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 12' + dbmin 0 + dbmax 1200 + dbvalue.0 0 + } + } + control.16 { + iface MIXER + name 'ALC Mode' + value Normal + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Normal + item.1 Limiter + } + } + control.17 { + iface MIXER + name 'ALC Enable Switch' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 Right + item.2 Left + item.3 Both + } + } + control.18 { + iface MIXER + name 'ALC Min Gain' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + } + } + control.19 { + iface MIXER + name 'ALC Max Gain' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + } + } + control.20 { + iface MIXER + name 'ALC Hold' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 10' + } + } + control.21 { + iface MIXER + name 'ALC Target' + value 11 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 15' + } + } + control.22 { + iface MIXER + name 'ALC Decay' + value 3 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 10' + } + } + control.23 { + iface MIXER + name 'ALC Attack' + value 2 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 10' + } + } + control.24 { + iface MIXER + name 'ALC Noise Gate Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.25 { + iface MIXER + name 'ALC Noise Gate Threshold' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + } + } + control.26 { + iface MIXER + name 'PGA ZC Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.27 { + iface MIXER + name 'PGA Volume' + value.0 16 + value.1 16 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 63' + dbmin -1200 + dbmax 3525 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.28 { + iface MIXER + name 'Headphone ZC Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.29 { + iface MIXER + name 'Headphone Playback Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.30 { + iface MIXER + name 'Headphone Volume' + value.0 51 + value.1 51 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 63' + dbmin -5700 + dbmax 600 + dbvalue.0 -600 + dbvalue.1 -600 + } + } + control.31 { + iface MIXER + name 'Speaker RInversion Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.32 { + iface MIXER + name 'Speaker ZC Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.33 { + iface MIXER + name 'Speaker Playback Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.34 { + iface MIXER + name 'Speaker 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.35 { + iface MIXER + name 'AUXOUT Playback Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.36 { + iface MIXER + name 'PGA Boost Volume' + value.0 1 + value.1 1 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 1' + dbmin 0 + dbmax 2000 + dbvalue.0 2000 + dbvalue.1 2000 + } + } + control.37 { + iface MIXER + name 'L2/R2 Boost Volume' + value.0 0 + value.1 0 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 7' + dbmin -9999999 + dbmax 600 + dbvalue.0 -9999999 + dbvalue.1 -9999999 + } + } + control.38 { + iface MIXER + name 'Aux Boost Volume' + value.0 0 + value.1 0 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 7' + dbmin -9999999 + dbmax 600 + dbvalue.0 -9999999 + dbvalue.1 -9999999 + } + } + control.39 { + iface MIXER + name 'DAC 128x Oversampling Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.40 { + iface MIXER + name 'ADC 128x Oversampling Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.41 { + iface MIXER + name 'Left Output Mixer LINMIX Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.42 { + iface MIXER + name 'Left Output Mixer LAUX Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.43 { + iface MIXER + name 'Left Output Mixer LDAC Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.44 { + iface MIXER + name 'Left Output Mixer RDAC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.45 { + iface MIXER + name 'Right Output Mixer RINMIX Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.46 { + iface MIXER + name 'Right Output Mixer RAUX Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.47 { + iface MIXER + name 'Right Output Mixer RDAC Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.48 { + iface MIXER + name 'Right Output Mixer LDAC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.49 { + iface MIXER + name 'AUX1 Output Mixer RDAC Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.50 { + iface MIXER + name 'AUX1 Output Mixer RMIX Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.51 { + iface MIXER + name 'AUX1 Output Mixer RINMIX Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.52 { + iface MIXER + name 'AUX1 Output Mixer LDAC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.53 { + iface MIXER + name 'AUX1 Output Mixer LMIX Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.54 { + iface MIXER + name 'AUX2 Output Mixer LDAC Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.55 { + iface MIXER + name 'AUX2 Output Mixer LMIX Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.56 { + iface MIXER + name 'AUX2 Output Mixer LINMIX Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.57 { + iface MIXER + name 'AUX2 Output Mixer AUX1MIX Output Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.58 { + iface MIXER + name 'Left Input Mixer L2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.59 { + iface MIXER + name 'Left Input Mixer MicN Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.60 { + iface MIXER + name 'Left Input Mixer MicP Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.61 { + iface MIXER + name 'Right Input Mixer R2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.62 { + iface MIXER + name 'Right Input Mixer MicN Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.63 { + iface MIXER + name 'Right Input Mixer MicP Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.64 { + iface MIXER + name 'Digital Loopback Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } +} -- cgit v1.2.3