summaryrefslogtreecommitdiff
path: root/recipes-bsp
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-bsp')
-rw-r--r--recipes-bsp/alsa-state/alsa-state.bbappend40
-rw-r--r--recipes-bsp/alsa-state/alsa-state/colibri-imx7-emmc/asound.state259
-rw-r--r--recipes-bsp/alsa-state/alsa-state/colibri-imx7/asound.state259
-rw-r--r--recipes-bsp/alsa-state/alsa-state/verdin-imx8mm/asound-dahlia.conf250
-rw-r--r--recipes-bsp/alsa-state/alsa-state/verdin-imx8mm/asound-dahlia.state (renamed from recipes-bsp/alsa-state/alsa-state/verdin-imx8mm/asound.state)0
-rw-r--r--recipes-bsp/alsa-state/alsa-state/verdin-imx8mm/asound-dev.conf250
-rw-r--r--recipes-bsp/alsa-state/alsa-state/verdin-imx8mm/asound-dev.state729
-rw-r--r--recipes-bsp/alsa-state/alsa-state/verdin-imx8mp/asound-dahlia.conf250
-rw-r--r--recipes-bsp/alsa-state/alsa-state/verdin-imx8mp/asound-dahlia.state519
-rw-r--r--recipes-bsp/alsa-state/alsa-state/verdin-imx8mp/asound-dev.conf250
-rw-r--r--recipes-bsp/alsa-state/alsa-state/verdin-imx8mp/asound-dev.state729
-rw-r--r--recipes-bsp/firmware-imx/firmware-imx-8_8.%.bbappend14
-rw-r--r--recipes-bsp/imx-atf/imx-atf_%.bbappend12
-rw-r--r--recipes-bsp/imx-mkimage/imx-boot_%.bbappend8
-rw-r--r--recipes-bsp/imx-sc-firmware/imx-sc-firmware-toradex_1.7.0.bb3
-rw-r--r--recipes-bsp/u-boot/files/0001-colibri_imx7-boot-linux-kernel-in-non-secure-mode.patch15
-rw-r--r--recipes-bsp/u-boot/files/0001-tools-image-host-fix-wrong-return-value.patch41
-rw-r--r--recipes-bsp/u-boot/u-boot-tools_%.bbappend5
-rw-r--r--recipes-bsp/u-boot/u-boot-toradex-common.inc2
-rw-r--r--recipes-bsp/u-boot/u-boot-toradex-common_2020.04.inc2
-rw-r--r--recipes-bsp/u-boot/u-boot-toradex_2020.07.bb20
21 files changed, 3596 insertions, 61 deletions
diff --git a/recipes-bsp/alsa-state/alsa-state.bbappend b/recipes-bsp/alsa-state/alsa-state.bbappend
index 05bfa70..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
-PACKAGE_ARCH = "${MACHINE_ARCH}"
+# 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/colibri-imx7-emmc/asound.state b/recipes-bsp/alsa-state/alsa-state/colibri-imx7-emmc/asound.state
index a578e3d..8497618 100644
--- a/recipes-bsp/alsa-state/alsa-state/colibri-imx7-emmc/asound.state
+++ b/recipes-bsp/alsa-state/alsa-state/colibri-imx7-emmc/asound.state
@@ -1,4 +1,4 @@
-state.imx7colibrisgtl {
+state.imx7sgtl5000 {
control.1 {
iface MIXER
name 'PCM Playback Volume'
@@ -45,6 +45,16 @@ state.imx7colibrisgtl {
}
control.5 {
iface MIXER
+ name 'Capture Switch'
+ value true
+ comment {
+ access 'read write'
+ type BOOLEAN
+ count 1
+ }
+ }
+ control.6 {
+ iface MIXER
name 'Headphone Playback Volume'
value.0 103
value.1 103
@@ -59,7 +69,17 @@ state.imx7colibrisgtl {
dbvalue.1 0
}
}
- control.6 {
+ control.7 {
+ iface MIXER
+ name 'Headphone Playback Switch'
+ value true
+ comment {
+ access 'read write'
+ type BOOLEAN
+ count 1
+ }
+ }
+ control.8 {
iface MIXER
name 'Headphone Playback ZC Switch'
value true
@@ -69,7 +89,7 @@ state.imx7colibrisgtl {
count 1
}
}
- control.7 {
+ control.9 {
iface MIXER
name 'Mic Volume'
value 0
@@ -83,7 +103,202 @@ state.imx7colibrisgtl {
dbvalue.0 0
}
}
- control.8 {
+ control.10 {
+ iface MIXER
+ name 'Lineout Playback Volume'
+ value.0 18
+ value.1 18
+ comment {
+ access 'read write'
+ type INTEGER
+ count 2
+ range '0 - 31'
+ dbmin -1550
+ dbmax 0
+ dbvalue.0 -650
+ dbvalue.1 -650
+ }
+ }
+ control.11 {
+ iface MIXER
+ name 'Lineout Playback Switch'
+ value false
+ comment {
+ access 'read write'
+ type BOOLEAN
+ count 1
+ }
+ }
+ control.12 {
+ iface MIXER
+ name 'DAP Main channel'
+ value 32768
+ comment {
+ access 'read write'
+ type INTEGER
+ count 1
+ range '0 - 65535'
+ dbmin 0
+ dbmax 65535
+ dbvalue.0 32768
+ }
+ }
+ control.13 {
+ iface MIXER
+ name 'DAP Mix channel'
+ value 0
+ comment {
+ access 'read write'
+ type INTEGER
+ count 1
+ range '0 - 65535'
+ dbmin 0
+ dbmax 65535
+ dbvalue.0 0
+ }
+ }
+ control.14 {
+ iface MIXER
+ name 'AVC Switch'
+ value false
+ comment {
+ access 'read write'
+ type BOOLEAN
+ count 1
+ }
+ }
+ control.15 {
+ iface MIXER
+ name 'AVC Hard Limiter Switch'
+ value false
+ comment {
+ access 'read write'
+ type BOOLEAN
+ count 1
+ }
+ }
+ control.16 {
+ iface MIXER
+ name 'AVC Max Gain Volume'
+ value 1
+ comment {
+ access 'read write'
+ type INTEGER
+ count 1
+ range '0 - 2'
+ dbmin 0
+ dbmax 1200
+ dbvalue.0 600
+ }
+ }
+ control.17 {
+ iface MIXER
+ name 'AVC Integrator Response'
+ value 1
+ comment {
+ access 'read write'
+ type INTEGER
+ count 1
+ range '0 - 3'
+ }
+ }
+ control.18 {
+ 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.19 {
+ iface MIXER
+ name 'BASS 0'
+ value 47
+ comment {
+ access 'read write'
+ type INTEGER
+ count 1
+ range '0 - 95'
+ dbmin -1175
+ dbmax 1200
+ dbvalue.0 0
+ }
+ }
+ control.20 {
+ iface MIXER
+ name 'BASS 1'
+ value 47
+ comment {
+ access 'read write'
+ type INTEGER
+ count 1
+ range '0 - 95'
+ dbmin -1175
+ dbmax 1200
+ dbvalue.0 0
+ }
+ }
+ control.21 {
+ iface MIXER
+ name 'BASS 2'
+ value 47
+ comment {
+ access 'read write'
+ type INTEGER
+ count 1
+ range '0 - 95'
+ dbmin -1175
+ dbmax 1200
+ dbvalue.0 0
+ }
+ }
+ control.22 {
+ iface MIXER
+ name 'BASS 3'
+ value 47
+ comment {
+ access 'read write'
+ type INTEGER
+ count 1
+ range '0 - 95'
+ dbmin -1175
+ dbmax 1200
+ dbvalue.0 0
+ }
+ }
+ control.23 {
+ iface MIXER
+ name 'BASS 4'
+ value 47
+ comment {
+ access 'read write'
+ type INTEGER
+ count 1
+ range '0 - 95'
+ dbmin -1175
+ dbmax 1200
+ dbvalue.0 0
+ }
+ }
+ control.24 {
+ 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.25 {
iface MIXER
name 'Headphone Mux'
value DAC
@@ -95,16 +310,42 @@ state.imx7colibrisgtl {
item.1 LINE_IN
}
}
- control.9 {
+ control.26 {
iface MIXER
- name 'Capture Mux'
- value MIC_IN
+ name 'Digital Input Mux'
+ value I2S
comment {
access 'read write'
type ENUMERATED
count 1
- item.0 MIC_IN
- item.1 LINE_IN
+ item.0 ADC
+ item.1 I2S
+ item.2 Rsvrd
+ item.3 DAP
+ }
+ }
+ control.27 {
+ iface MIXER
+ name 'DAP Mux'
+ value ADC
+ comment {
+ access 'read write'
+ type ENUMERATED
+ count 1
+ item.0 ADC
+ item.1 I2S
+ }
+ }
+ control.28 {
+ iface MIXER
+ name 'DAP MIX Mux'
+ value ADC
+ comment {
+ access 'read write'
+ type ENUMERATED
+ count 1
+ item.0 ADC
+ item.1 I2S
}
}
}
diff --git a/recipes-bsp/alsa-state/alsa-state/colibri-imx7/asound.state b/recipes-bsp/alsa-state/alsa-state/colibri-imx7/asound.state
index a578e3d..8497618 100644
--- a/recipes-bsp/alsa-state/alsa-state/colibri-imx7/asound.state
+++ b/recipes-bsp/alsa-state/alsa-state/colibri-imx7/asound.state
@@ -1,4 +1,4 @@
-state.imx7colibrisgtl {
+state.imx7sgtl5000 {
control.1 {
iface MIXER
name 'PCM Playback Volume'
@@ -45,6 +45,16 @@ state.imx7colibrisgtl {
}
control.5 {
iface MIXER
+ name 'Capture Switch'
+ value true
+ comment {
+ access 'read write'
+ type BOOLEAN
+ count 1
+ }
+ }
+ control.6 {
+ iface MIXER
name 'Headphone Playback Volume'
value.0 103
value.1 103
@@ -59,7 +69,17 @@ state.imx7colibrisgtl {
dbvalue.1 0
}
}
- control.6 {
+ control.7 {
+ iface MIXER
+ name 'Headphone Playback Switch'
+ value true
+ comment {
+ access 'read write'
+ type BOOLEAN
+ count 1
+ }
+ }
+ control.8 {
iface MIXER
name 'Headphone Playback ZC Switch'
value true
@@ -69,7 +89,7 @@ state.imx7colibrisgtl {
count 1
}
}
- control.7 {
+ control.9 {
iface MIXER
name 'Mic Volume'
value 0
@@ -83,7 +103,202 @@ state.imx7colibrisgtl {
dbvalue.0 0
}
}
- control.8 {
+ control.10 {
+ iface MIXER
+ name 'Lineout Playback Volume'
+ value.0 18
+ value.1 18
+ comment {
+ access 'read write'
+ type INTEGER
+ count 2
+ range '0 - 31'
+ dbmin -1550
+ dbmax 0
+ dbvalue.0 -650
+ dbvalue.1 -650
+ }
+ }
+ control.11 {
+ iface MIXER
+ name 'Lineout Playback Switch'
+ value false
+ comment {
+ access 'read write'
+ type BOOLEAN
+ count 1
+ }
+ }
+ control.12 {
+ iface MIXER
+ name 'DAP Main channel'
+ value 32768
+ comment {
+ access 'read write'
+ type INTEGER
+ count 1
+ range '0 - 65535'
+ dbmin 0
+ dbmax 65535
+ dbvalue.0 32768
+ }
+ }
+ control.13 {
+ iface MIXER
+ name 'DAP Mix channel'
+ value 0
+ comment {
+ access 'read write'
+ type INTEGER
+ count 1
+ range '0 - 65535'
+ dbmin 0
+ dbmax 65535
+ dbvalue.0 0
+ }
+ }
+ control.14 {
+ iface MIXER
+ name 'AVC Switch'
+ value false
+ comment {
+ access 'read write'
+ type BOOLEAN
+ count 1
+ }
+ }
+ control.15 {
+ iface MIXER
+ name 'AVC Hard Limiter Switch'
+ value false
+ comment {
+ access 'read write'
+ type BOOLEAN
+ count 1
+ }
+ }
+ control.16 {
+ iface MIXER
+ name 'AVC Max Gain Volume'
+ value 1
+ comment {
+ access 'read write'
+ type INTEGER
+ count 1
+ range '0 - 2'
+ dbmin 0
+ dbmax 1200
+ dbvalue.0 600
+ }
+ }
+ control.17 {
+ iface MIXER
+ name 'AVC Integrator Response'
+ value 1
+ comment {
+ access 'read write'
+ type INTEGER
+ count 1
+ range '0 - 3'
+ }
+ }
+ control.18 {
+ 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.19 {
+ iface MIXER
+ name 'BASS 0'
+ value 47
+ comment {
+ access 'read write'
+ type INTEGER
+ count 1
+ range '0 - 95'
+ dbmin -1175
+ dbmax 1200
+ dbvalue.0 0
+ }
+ }
+ control.20 {
+ iface MIXER
+ name 'BASS 1'
+ value 47
+ comment {
+ access 'read write'
+ type INTEGER
+ count 1
+ range '0 - 95'
+ dbmin -1175
+ dbmax 1200
+ dbvalue.0 0
+ }
+ }
+ control.21 {
+ iface MIXER
+ name 'BASS 2'
+ value 47
+ comment {
+ access 'read write'
+ type INTEGER
+ count 1
+ range '0 - 95'
+ dbmin -1175
+ dbmax 1200
+ dbvalue.0 0
+ }
+ }
+ control.22 {
+ iface MIXER
+ name 'BASS 3'
+ value 47
+ comment {
+ access 'read write'
+ type INTEGER
+ count 1
+ range '0 - 95'
+ dbmin -1175
+ dbmax 1200
+ dbvalue.0 0
+ }
+ }
+ control.23 {
+ iface MIXER
+ name 'BASS 4'
+ value 47
+ comment {
+ access 'read write'
+ type INTEGER
+ count 1
+ range '0 - 95'
+ dbmin -1175
+ dbmax 1200
+ dbvalue.0 0
+ }
+ }
+ control.24 {
+ 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.25 {
iface MIXER
name 'Headphone Mux'
value DAC
@@ -95,16 +310,42 @@ state.imx7colibrisgtl {
item.1 LINE_IN
}
}
- control.9 {
+ control.26 {
iface MIXER
- name 'Capture Mux'
- value MIC_IN
+ name 'Digital Input Mux'
+ value I2S
comment {
access 'read write'
type ENUMERATED
count 1
- item.0 MIC_IN
- item.1 LINE_IN
+ item.0 ADC
+ item.1 I2S
+ item.2 Rsvrd
+ item.3 DAP
+ }
+ }
+ control.27 {
+ iface MIXER
+ name 'DAP Mux'
+ value ADC
+ comment {
+ access 'read write'
+ type ENUMERATED
+ count 1
+ item.0 ADC
+ item.1 I2S
+ }
+ }
+ control.28 {
+ iface MIXER
+ name 'DAP MIX Mux'
+ value ADC
+ comment {
+ access 'read write'
+ type ENUMERATED
+ count 1
+ item.0 ADC
+ item.1 I2S
}
}
}
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.state b/recipes-bsp/alsa-state/alsa-state/verdin-imx8mm/asound-dahlia.state
index 1d3e09a..1d3e09a 100644
--- a/recipes-bsp/alsa-state/alsa-state/verdin-imx8mm/asound.state
+++ b/recipes-bsp/alsa-state/alsa-state/verdin-imx8mm/asound-dahlia.state
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-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
+ }
+ }
+}
diff --git a/recipes-bsp/firmware-imx/firmware-imx-8_8.%.bbappend b/recipes-bsp/firmware-imx/firmware-imx-8_8.%.bbappend
deleted file mode 100644
index 1766a7a..0000000
--- a/recipes-bsp/firmware-imx/firmware-imx-8_8.%.bbappend
+++ /dev/null
@@ -1,14 +0,0 @@
-FILES_${PN} += " \
- ${nonarch_base_libdir}/firmware/imx/hdmi/hdmitxfw.bin \
- ${nonarch_base_libdir}/firmware/imx/hdmi/hdmirxfw.bin \
- ${nonarch_base_libdir}/firmware/imx/hdmi/dpfw.bin \
-"
-
-unset do_install[noexec]
-
-do_install_append () {
- install -d ${D}${nonarch_base_libdir}/firmware/imx/hdmi
- install -m 0644 ${S}/firmware/hdmi/cadence/hdmitxfw.bin ${D}${nonarch_base_libdir}/firmware/imx/hdmi/
- install -m 0644 ${S}/firmware/hdmi/cadence/hdmirxfw.bin ${D}${nonarch_base_libdir}/firmware/imx/hdmi/
- install -m 0644 ${S}/firmware/hdmi/cadence/dpfw.bin ${D}${nonarch_base_libdir}/firmware/imx/hdmi/
-}
diff --git a/recipes-bsp/imx-atf/imx-atf_%.bbappend b/recipes-bsp/imx-atf/imx-atf_%.bbappend
index d4947ff..f39e541 100644
--- a/recipes-bsp/imx-atf/imx-atf_%.bbappend
+++ b/recipes-bsp/imx-atf/imx-atf_%.bbappend
@@ -1,10 +1,10 @@
-PV = "2.2+git${SRCPV}"
-SRCBRANCH = "toradex_imx_5.4.70_2.3.0"
-SRCREV = "7f1187ba31cc1624f7dadd98998e010cb229926a"
-SRCREV_use-head-next = "${AUTOREV}"
-SRC_URI = "git://git.toradex.com/imx-atf.git;protocol=https;branch=${SRCBRANCH}"
+PV_tdx = "2.2+git${SRCPV}"
+SRCBRANCH_tdx = "toradex_imx_5.4.70_2.3.0"
+SRCREV_tdx = "2fa8c6349e9a1d965757d44f05a6c72687850b77"
+SRCREV_use-head-next_tdx = "${AUTOREV}"
+SRC_URI_tdx = "git://git.toradex.com/imx-atf.git;protocol=https;branch=${SRCBRANCH}"
-EXTRA_OEMAKE_append = " \
+EXTRA_OEMAKE_append_tdx = " \
BUILD_STRING="${SRCBRANCH}-g${@'${SRCPV}'.replace('AUTOINC+', '')}" \
"
EXTRA_OEMAKE_append_verdin-imx8mm = " \
diff --git a/recipes-bsp/imx-mkimage/imx-boot_%.bbappend b/recipes-bsp/imx-mkimage/imx-boot_%.bbappend
deleted file mode 100644
index bd97840..0000000
--- a/recipes-bsp/imx-mkimage/imx-boot_%.bbappend
+++ /dev/null
@@ -1,8 +0,0 @@
-# Create symbolic link rather than copying mkimage_uboot
-compile_mx8m_prepend() {
- rm -rf ${BOOT_STAGING}/mkimage_uboot
-}
-compile_mx8m_append() {
- rm -rf ${BOOT_STAGING}/mkimage_uboot
- lnr ${STAGING_DIR_NATIVE}/${bindir}/mkimage ${BOOT_STAGING}/mkimage_uboot
-}
diff --git a/recipes-bsp/imx-sc-firmware/imx-sc-firmware-toradex_1.7.0.bb b/recipes-bsp/imx-sc-firmware/imx-sc-firmware-toradex_1.7.0.bb
index 16495b3..da7e101 100644
--- a/recipes-bsp/imx-sc-firmware/imx-sc-firmware-toradex_1.7.0.bb
+++ b/recipes-bsp/imx-sc-firmware/imx-sc-firmware-toradex_1.7.0.bb
@@ -11,8 +11,7 @@ inherit deploy
SRC_URI = "git://github.com/toradex/i.MX-System-Controller-Firmware.git;branch=master;protocol=https;fsl-eula=true"
-SRCREV = "bad4eef87700c1834f8510bdf72bd18826b87cd7"
-SRCREV_use-head-next = "${AUTOREV}"
+SRCREV = "4b69cbb6cba9a097334233086a314b9e0718381c"
S = "${WORKDIR}/git"
diff --git a/recipes-bsp/u-boot/files/0001-colibri_imx7-boot-linux-kernel-in-non-secure-mode.patch b/recipes-bsp/u-boot/files/0001-colibri_imx7-boot-linux-kernel-in-non-secure-mode.patch
index 20e7e98..8573807 100644
--- a/recipes-bsp/u-boot/files/0001-colibri_imx7-boot-linux-kernel-in-non-secure-mode.patch
+++ b/recipes-bsp/u-boot/files/0001-colibri_imx7-boot-linux-kernel-in-non-secure-mode.patch
@@ -1,5 +1,4 @@
-From 9bdb801953e4a81c59fc358cc5bf91811b0d514f Mon Sep 17 00:00:00 2001
-Message-Id: <9bdb801953e4a81c59fc358cc5bf91811b0d514f.1601476897.git.marcel.ziswiler@toradex.com>
+From 3192378a0bd7cfbadf752a770545e7c879f3e603 Mon Sep 17 00:00:00 2001
From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Date: Wed, 30 Sep 2020 16:37:54 +0200
Subject: [PATCH] colibri_imx7: boot linux kernel in non-secure mode
@@ -9,23 +8,21 @@ mode mainline/upstream requires non-secure mode instead, as it properly
uses PSCI to control further cores.
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
+
---
include/configs/colibri_imx7.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/configs/colibri_imx7.h b/include/configs/colibri_imx7.h
-index 1b50dac83c..be33f1bdf9 100644
+index b48172ab19..b796fba3e2 100644
--- a/include/configs/colibri_imx7.h
+++ b/include/configs/colibri_imx7.h
-@@ -140,7 +140,7 @@
- UBOOT_UPDATE \
- "boot_script_dhcp=boot.scr\0" \
+@@ -161,7 +161,7 @@
+ "boot_scripts=" BOOT_SCRIPT "\0" \
+ "boot_script_dhcp=" BOOT_SCRIPT "\0" \
"boot_file=zImage\0" \
- "bootm_boot_mode=sec\0" \
+ "bootm_boot_mode=nonsec\0" \
"bootubipart=ubi\0" \
"console=ttymxc0\0" \
"defargs=\0" \
---
-2.29.0
-
diff --git a/recipes-bsp/u-boot/files/0001-tools-image-host-fix-wrong-return-value.patch b/recipes-bsp/u-boot/files/0001-tools-image-host-fix-wrong-return-value.patch
new file mode 100644
index 0000000..5e58173
--- /dev/null
+++ b/recipes-bsp/u-boot/files/0001-tools-image-host-fix-wrong-return-value.patch
@@ -0,0 +1,41 @@
+From 77fe3ad2ab2953ccdf6e9417cbecc060b45d3e55 Mon Sep 17 00:00:00 2001
+From: Ming Liu <liu.ming50@gmail.com>
+Date: Sun, 30 May 2021 10:32:08 +0200
+Subject: [PATCH] tools: image-host: fix wrong return value
+
+Upstream-Status: Submitted [ Sent to u-boot@lists.denx.de on 2021-05-31 ]
+
+The return value '-ENOSPC' of fit_set_timestamp function does not match
+the caller fit_image_write_sig's expection which is '-FDT_ERR_NOSPACE'.
+
+Fix it by not calling fit_set_timestamp, but call fdt_setprop instead.
+
+This fixes a following mkimage error:
+| Can't write signature for 'signature@1' signature node in
+| 'conf@imx6ull-colibri-wifi-eval-v3.dtb' conf node: <unknown error>
+| mkimage Can't add hashes to FIT blob: -1
+
+Signed-off-by: Ming Liu <liu.ming50@gmail.com>
+---
+ tools/image-host.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/tools/image-host.c b/tools/image-host.c
+index 270d36fe45..73095461a7 100644
+--- a/tools/image-host.c
++++ b/tools/image-host.c
+@@ -132,8 +132,10 @@ static int fit_image_write_sig(void *fit, int noffset, uint8_t *value,
+ if (!ret) {
+ time_t timestamp = imagetool_get_source_date(cmdname,
+ time(NULL));
++ uint32_t t = cpu_to_uimage(timestamp);
+
+- ret = fit_set_timestamp(fit, noffset, timestamp);
++ ret = fdt_setprop(fit, noffset, FIT_TIMESTAMP_PROP, &t,
++ sizeof(uint32_t));
+ }
+ if (region_prop && !ret) {
+ uint32_t strdata[2];
+--
+2.29.0
+
diff --git a/recipes-bsp/u-boot/u-boot-tools_%.bbappend b/recipes-bsp/u-boot/u-boot-tools_%.bbappend
new file mode 100644
index 0000000..a2f2625
--- /dev/null
+++ b/recipes-bsp/u-boot/u-boot-tools_%.bbappend
@@ -0,0 +1,5 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+
+SRC_URI_append = " \
+ file://0001-tools-image-host-fix-wrong-return-value.patch \
+"
diff --git a/recipes-bsp/u-boot/u-boot-toradex-common.inc b/recipes-bsp/u-boot/u-boot-toradex-common.inc
index f00a856..32c4083 100644
--- a/recipes-bsp/u-boot/u-boot-toradex-common.inc
+++ b/recipes-bsp/u-boot/u-boot-toradex-common.inc
@@ -12,7 +12,7 @@ inherit toradex-u-boot-localversion
# We use the revision in order to avoid having to fetch it from the
# repo during parse
-SRCREV = "2a68bb1926d61ee0f15877ce76d615fd1bc88fe3"
+SRCREV = "4baed786463e78727265420bf36df440b0a9ac92"
SRCBRANCH = "toradex_2020.07"
SRCREV_use-head-next = "${AUTOREV}"
diff --git a/recipes-bsp/u-boot/u-boot-toradex-common_2020.04.inc b/recipes-bsp/u-boot/u-boot-toradex-common_2020.04.inc
index 30fd029..9da1c42 100644
--- a/recipes-bsp/u-boot/u-boot-toradex-common_2020.04.inc
+++ b/recipes-bsp/u-boot/u-boot-toradex-common_2020.04.inc
@@ -10,7 +10,7 @@ SRC_URI = " \
file://fw_env.config \
"
-SRCREV = "76fd4496a40b9dd7271ceb9ff330982c954fe8e9"
+SRCREV = "e72d2f7c00a195a6db25c1d1d9249999bcf51fc9"
SRCREV_use-head-next = "${AUTOREV}"
SRCBRANCH = "toradex_imx_v2020.04_5.4.70_2.3.0"
diff --git a/recipes-bsp/u-boot/u-boot-toradex_2020.07.bb b/recipes-bsp/u-boot/u-boot-toradex_2020.07.bb
index 4add74e..bc6405a 100644
--- a/recipes-bsp/u-boot/u-boot-toradex_2020.07.bb
+++ b/recipes-bsp/u-boot/u-boot-toradex_2020.07.bb
@@ -31,6 +31,14 @@ nand_padding () {
dd bs=1024 count=1 if=/dev/zero | cat - ${PADDING_DIR}/u-boot.imx.zero-padded > ${PADDING_DIR}/u-boot-nand.imx
}
+deploy_uboot_with_spl () {
+ for config in ${UBOOT_MACHINE}; do
+ if [ -f "${B}/${config}/u-boot-with-spl.imx" ]; then
+ install -D -m 644 ${B}/${config}/u-boot-with-spl.imx ${DEPLOYDIR}/u-boot-with-spl.imx
+ fi
+ done
+}
+
do_compile_append_colibri-imx6ull () {
nand_padding
}
@@ -38,3 +46,15 @@ do_compile_append_colibri-imx6ull () {
do_compile_append_colibri-imx7 () {
nand_padding
}
+
+do_compile_append_colibri-vf () {
+ nand_padding
+}
+
+do_deploy_append_colibri-imx6 () {
+ deploy_uboot_with_spl
+}
+
+do_deploy_append_apalis-imx6 () {
+ deploy_uboot_with_spl
+}