diff --git a/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio/hdmi/90-pulseaudio-hdmi.rules b/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio/hdmi/90-pulseaudio-hdmi.rules
new file mode 100644
index 000000000..f30a2b9ad
--- /dev/null
+++ b/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio/hdmi/90-pulseaudio-hdmi.rules
@@ -0,0 +1,4 @@
+# Digi ConnectCore HDMI sound card
+ATTRS{id}=="imxhdmisoc", ENV{PULSE_PROFILE_SET}="dey-audio-hdmi.conf"
+
+SUBSYSTEM=="platform", KERNEL=="*hdmi_video", ACTION=="change", RUN+="/etc/udev/scripts/hdmi_hotplug.sh"
diff --git a/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio/dey-audio-hdmi.conf b/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio/hdmi/dey-audio-hdmi.conf
similarity index 95%
rename from meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio/dey-audio-hdmi.conf
rename to meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio/hdmi/dey-audio-hdmi.conf
index 6ae671021..7069c63fa 100644
--- a/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio/dey-audio-hdmi.conf
+++ b/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio/hdmi/dey-audio-hdmi.conf
@@ -13,7 +13,7 @@
# You should have received a copy of the GNU Lesser General Public License
# along with PulseAudio; if not, see .
-; Audio profile for Digi ConnectCore 6 HDMI sound card
+; Audio profile for Digi ConnectCore HDMI sound card
;
; Copyright (C) 2017 by Digi International Inc.
;
diff --git a/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio/hdmi_hotplug.sh b/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio/hdmi/hdmi_hotplug.sh
similarity index 100%
rename from meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio/hdmi_hotplug.sh
rename to meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio/hdmi/hdmi_hotplug.sh
diff --git a/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio/max98089/90-pulseaudio.rules b/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio/max98089/90-pulseaudio.rules
new file mode 100644
index 000000000..4c9b5ca17
--- /dev/null
+++ b/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio/max98089/90-pulseaudio.rules
@@ -0,0 +1,2 @@
+# Digi ConnectCore MAX98089 sound card
+ATTRS{id}=="imxmax98088", ENV{PULSE_PROFILE_SET}="dey-audio-max98089.conf"
diff --git a/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio/max98089/dey-audio-max98089.conf b/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio/max98089/dey-audio-max98089.conf
new file mode 100644
index 000000000..e9753825d
--- /dev/null
+++ b/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio/max98089/dey-audio-max98089.conf
@@ -0,0 +1,75 @@
+# This file is part of PulseAudio.
+#
+# PulseAudio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation; either version 2.1 of the
+# License, or (at your option) any later version.
+#
+# PulseAudio is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with PulseAudio; if not, see .
+
+; Audio profile for Digi ConnectCore MAX98089 sound card
+;
+; Copyright (C) 2019 by Digi International Inc.
+;
+; This device can operate in either mono or stereo for output, input or duplex
+;
+; Profile probing is skipped to save time during loading
+;
+; See default.conf for an explanation on the directives used here.
+
+[General]
+auto-profiles = no
+
+[Mapping analog-mono]
+device-strings = hw:%f
+channel-map = mono
+priority = 2
+
+[Mapping analog-stereo]
+device-strings = hw:%f
+channel-map = left,right
+priority = 60
+
+[Profile input:analog-mono]
+description = Analog Mono Input
+input-mappings = analog-mono
+skip-probe = yes
+priority = 2
+
+[Profile input:analog-stereo]
+description = Analog Stereo Input
+input-mappings = analog-stereo
+skip-probe = yes
+priority = 60
+
+[Profile output:analog-mono]
+description = Analog Mono Output
+output-mappings = analog-mono
+skip-probe = yes
+priority = 200
+
+[Profile output:analog-mono+input:analog-mono]
+description = Analog Mono Duplex
+output-mappings = analog-mono
+input-mappings = analog-mono
+skip-probe = yes
+priority = 202
+
+[Profile output:analog-stereo]
+description = Analog Stereo Output
+output-mappings = analog-stereo
+skip-probe = yes
+priority = 6000
+
+[Profile output:analog-stereo+input:analog-stereo]
+description = Analog Stereo Duplex
+output-mappings = analog-stereo
+input-mappings = analog-stereo
+skip-probe = yes
+priority = 6060
diff --git a/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio/sgtl5000/90-pulseaudio.rules b/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio/sgtl5000/90-pulseaudio.rules
new file mode 100644
index 000000000..62f9e80f3
--- /dev/null
+++ b/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio/sgtl5000/90-pulseaudio.rules
@@ -0,0 +1,2 @@
+# Digi ConnectCore SGTL5000 sound card
+ATTRS{id}=="sgtl5000audio", ENV{PULSE_PROFILE_SET}="dey-audio-sgtl5000.conf"
diff --git a/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio/dey-audio-sgtl5000.conf b/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio/sgtl5000/dey-audio-sgtl5000.conf
similarity index 97%
rename from meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio/dey-audio-sgtl5000.conf
rename to meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio/sgtl5000/dey-audio-sgtl5000.conf
index ffd115c07..94cd64dfa 100644
--- a/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio/dey-audio-sgtl5000.conf
+++ b/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio/sgtl5000/dey-audio-sgtl5000.conf
@@ -13,7 +13,7 @@
# You should have received a copy of the GNU Lesser General Public License
# along with PulseAudio; if not, see .
-; Audio profile for Digi ConnectCore 6 SBC SGTL5000 sound card
+; Audio profile for Digi ConnectCore SGTL5000 sound card
;
; Copyright (C) 2017 by Digi International Inc.
;
diff --git a/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend b/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend
index 0b6d1ad0b..3ef776924 100644
--- a/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend
+++ b/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend
@@ -1,35 +1,59 @@
-# Copyright (C) 2017 Digi International
+# Copyright (C) 2019 Digi International
FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:"
-SRC_URI_append_ccimx6ulsbc = " file://0001-pulseaudio-keep-headphones-volume-in-platforms-witho.patch"
-SRC_URI_append_ccimx6 = " \
- file://hdmi_hotplug.sh \
- file://dey-audio-hdmi.conf \
- file://dey-audio-sgtl5000.conf \
+# Configuration files for SGTL500 sound card
+CFG_SGTL5000 = " \
+ file://sgtl5000/dey-audio-sgtl5000.conf \
+ file://sgtl5000/90-pulseaudio.rules \
+"
+
+# Configuration files for MAX98089 sound card
+CFG_MAX98089 = " \
+ file://max98089/dey-audio-max98089.conf \
+ file://max98089/90-pulseaudio.rules \
+"
+
+# Configuration files for HDMI sound card
+CFG_HDMI = " \
+ file://hdmi/hdmi_hotplug.sh \
+ file://hdmi/dey-audio-hdmi.conf \
+ file://hdmi/90-pulseaudio-hdmi.rules \
+"
+SOUND_CARD ?= "max98089"
+SOUND_CARD_ccimx6 ?= "sgtl5000"
+
+AUDIO_HDMI ?= ""
+AUDIO_HDMI_ccimx6 = "yes"
+
+SRC_URI_append = " \
+ ${@oe.utils.conditional('SOUND_CARD', 'sgtl5000', '${CFG_SGTL5000}', '', d)} \
+ ${@oe.utils.conditional('SOUND_CARD', 'max98089', '${CFG_MAX98089}', '', d)} \
+ ${@oe.utils.conditional('AUDIO_HDMI', 'yes', '${CFG_HDMI}', '', d)} \
+"
+
+SRC_URI_append_ccimx6ulsbc = " \
+ file://0001-pulseaudio-keep-headphones-volume-in-platforms-witho.patch \
"
EXTRA_OECONF_append_ccimx6 = " --disable-memfd"
-do_install_append_ccimx6() {
- install -d ${D}${sysconfdir}/udev/scripts
- install -m 0755 ${WORKDIR}/hdmi_hotplug.sh ${D}${sysconfdir}/udev/scripts
-
+do_install_append() {
install -d ${D}${datadir}/pulseaudio/alsa-mixer/profile-sets
- install -m 0644 ${WORKDIR}/dey-audio-hdmi.conf ${D}${datadir}/pulseaudio/alsa-mixer/profile-sets
- install -m 0644 ${WORKDIR}/dey-audio-sgtl5000.conf ${D}${datadir}/pulseaudio/alsa-mixer/profile-sets
+ install -m 0644 ${WORKDIR}/${SOUND_CARD}/dey-audio-*.conf ${D}${datadir}/pulseaudio/alsa-mixer/profile-sets
+
+ install -d ${D}${base_libdir}/udev/rules.d
+ install -m 0644 ${WORKDIR}/${SOUND_CARD}/90-pulseaudio.rules ${D}${base_libdir}/udev/rules.d
+
+ # Configuration files for HDMI sound card
+ if [ "${AUDIO_HDMI}" = "yes" ]; then
+ install -d ${D}${sysconfdir}/udev/scripts
+ install -m 0755 ${WORKDIR}/hdmi/hdmi_hotplug.sh ${D}${sysconfdir}/udev/scripts
+ install -m 0644 ${WORKDIR}/hdmi/dey-audio-hdmi.conf ${D}${datadir}/pulseaudio/alsa-mixer/profile-sets
+ install -m 0644 ${WORKDIR}/hdmi/90-pulseaudio-hdmi.rules ${D}${base_libdir}/udev/rules.d
+ fi
sed -i -e '/load-module module-suspend-on-idle/{s,$, timeout=0,g}' ${D}${sysconfdir}/pulse/default.pa
-
- cat >> ${D}${base_libdir}/udev/rules.d/90-pulseaudio.rules <<-_EOL_
-
- # Digi ConnectCore 6 SBC HDMI
- ATTRS{id}=="imxhdmisoc", ENV{PULSE_PROFILE_SET}="dey-audio-hdmi.conf"
- # Digi ConnectCore 6 SBC SGTL5000
- ATTRS{id}=="sgtl5000audio", ENV{PULSE_PROFILE_SET}="dey-audio-sgtl5000.conf"
-
- SUBSYSTEM=="platform", KERNEL=="*hdmi_video", ACTION=="change", RUN+="/etc/udev/scripts/hdmi_hotplug.sh"
- _EOL_
}
PACKAGE_ARCH = "${MACHINE_ARCH}"