rpi: enable IQaudio sound card
authorHugo Villeneuve <hugo@hugovil.com>
Fri, 1 Mar 2024 17:57:57 +0000 (12:57 -0500)
committerHugo Villeneuve <hugo@hugovil.com>
Fri, 1 Mar 2024 18:00:46 +0000 (13:00 -0500)
conf/distro/hvmpd.conf
raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bbappend
recipes-multimedia/musicpd/mpd_%.bbappend

index d9dcc41..d475776 100644 (file)
@@ -44,3 +44,4 @@ IMAGE_LINGUAS = "en-us en-ca"
 WIC_CREATE_EXTRA_ARGS:append = " --no-fstab-update"
 
 ALSA_DEVICE_ID ?= "0"
+SOUND_CARD ?= "default"
index ea3c6d4..585ac66 100644 (file)
@@ -1,6 +1,17 @@
 do_deploy:append() {
-    # Enable Pi’s on-board sound card (load snd_bcm2835):
-    sed -i 's/^#\(dtparam=audio=\).*/\1on/' $CONFIG
+    if [ "${SOUND_CARD}" = "iqaudiodac" ]; then
+        # Disable Pi’s on-board sound card (snd_bcm2835):
+        sed -i 's/^#\(dtparam=audio=\).*/\1off/' $CONFIG
+
+        # Enable IQaudio sound card:
+        echo "dtoverlay=iqaudio-dacplus" >> $CONFIG
+
+        # Enable I2S mode:
+        sed -i 's/^#\(dtparam=i2s=\).*/\1on/' $CONFIG
+    else
+        # Enable Pi’s on-board sound card (load snd_bcm2835):
+        sed -i 's/^#\(dtparam=audio=\).*/\1on/' $CONFIG
+    fi
 
     # Pretends all audio formats are unsupported by display. This
     # forces ALSA to use analogue output:
index a158eb0..8e65fd0 100644 (file)
@@ -7,6 +7,8 @@ SRC_URI:append = " \
      file://classique.m3u \
 "
 
+SOUND_CARD ?= "default"
+
 do_install:append() {
     ALSA_MIXER="PCM"
 }
@@ -16,8 +18,13 @@ do_install:append:wandboard() {
 }
 
 do_install:append:rpi() {
-    # Internal sound card
-    ALSA_DEVICE_NAME="headphones"
+    if [ "${SOUND_CARD}" = "iqaudiodac" ]; then
+        ALSA_DEVICE_NAME="IQaudIODAC"
+        ALSA_MIXER="Digital"
+    else
+        # Internal sound card
+        ALSA_DEVICE_NAME="headphones"
+    fi
 }
 
 do_install:append() {