alsa-utils: rework Amlogic card soundconfig setup

This commit is contained in:
Christian Hewitt 2021-11-27 09:25:13 +00:00
parent 73c42fcfb5
commit 3598d43336

View File

@ -128,34 +128,52 @@ else
mixer "$card" Headphone 0db on mixer "$card" Headphone 0db on
mixer "$card" 'AIF1 Slot 0 Digital DAC' on mixer "$card" 'AIF1 Slot 0 Digital DAC' on
# Amlogic G12A/G12B/SM1 HDMI # Amlogic audio devices
case $(dtname) in case $(dtsoc) in
azw,gsking-x|khadas,vim3*) #TDM_A amlogic,g12*|amlogic,sm1)
mixer "$card" 'FRDDR_A SINK 1 SEL' 'OUT 0' # AXG HDMI // Logic assumes TDMOUT_A is not present in device-tree when TDMOUT_B is used
mixer "$card" 'FRDDR_A SRC 1 EN' on TDMOUT=$(awk '/TDMOUT/ && $2=="OUT" {print substr($1,length($1),1)}' /sys/firmware/devicetree/base/sound/audio-routing | sort | head -n 1)
mixer "$card" 'TDMOUT_A SRC SEL' 'IN 0' if [ "${TDMOUT}" = "A" ]; then
mixer "$card" 'TOHDMITX' on mixer "$card" 'FRDDR_A SINK 1 SEL' 'OUT 0'
mixer "$card" 'TOHDMITX I2S SRC' 'I2S A' mixer "$card" 'FRDDR_A SRC 1 EN' on
mixer "$card" 'TDMOUT_A SRC SEL' 'IN 0'
mixer "$card" 'TOHDMITX' on
mixer "$card" 'TOHDMITX I2S SRC' 'I2S A'
elif [ "${TDMOUT}" = "B" ]; then
mixer "$card" 'FRDDR_A SINK 1 SEL' 'OUT 1'
mixer "$card" 'FRDDR_A SRC 1 EN' on
mixer "$card" 'TDMOUT_B SRC SEL' 'IN 0'
mixer "$card" 'TOHDMITX' on
mixer "$card" 'TOHDMITX I2S SRC' 'I2S B'
fi
# AXG S/PDIF
SPDIFOUT=$(awk '/SPDIF/' /sys/firmware/devicetree/base/sound/audio-routing | sort | head -n 1)
if [ -n "${SPDIFOUT}" ]; then
mixer "$card" 'FRDDR_B SINK 1 SEL' 'OUT 3'
mixer "$card" 'FRDDR_B SRC 1 EN' on
mixer "$card" 'SPDIFOUT SRC SEL' 'IN 1'
mixer "$card" 'SPDIFOUT Playback' on
fi
# AXG Headphone Jack
ACODEC=$(awk '/ACODEC/' /sys/firmware/devicetree/base/sound/audio-routing | sort | head -n 1)
if [ -n "${ACODEC}" ]; then
mixer "$card" 'TOACODEC OUT EN' on
mixer "$card" 'TOACODEC SRC' 'I2S ${TDMOUT}'
mixer "$card" 'ACODEC Playback Switch' on
mixer "$card" 'ACODEC Playback Channel Mode' Stereo
fi
;; ;;
*) #TDM_B amlogic,meson-gx*)
mixer "$card" 'FRDDR_A SINK 1 SEL' 'OUT 1' # AIU HDMI and S/PDIF
mixer "$card" 'FRDDR_A SRC 1 EN' on mixer "$card" 'AIU HDMI CTRL SRC' 'I2S'
mixer "$card" 'TDMOUT_B SRC SEL' 'IN 0' mixer "$card" 'AIU SPDIF SRC SEL' 'SPDIF'
mixer "$card" 'TOHDMITX' on # AIU ACODEC headphone jack
mixer "$card" 'TOHDMITX I2S SRC' 'I2S B' mixer "$card" 'ACODEC' 80% on
mixer "$card" 'AIU ACODEC SRC' 'I2S'
mixer "$card" 'AIU ACODEC OUT EN' on
;; ;;
esac esac
# Amlogic G12A/G12B/SM1 S/PDIF
mixer "$card" 'FRDDR_B SINK 1 SEL' 'OUT 3'
mixer "$card" 'FRDDR_B SRC 1 EN' on
mixer "$card" 'SPDIFOUT SRC SEL' 'IN 1'
mixer "$card" 'SPDIFOUT Playback' on
# Amlogic GX HDMI and S/PDIF
mixer "$card" 'AIU HDMI CTRL SRC' 'I2S'
mixer "$card" 'AIU SPDIF SRC SEL' 'SPDIF'
# ES8316 headphone jack # ES8316 headphone jack
mixer "$card" 'Right Headphone Mixer Right DAC' on mixer "$card" 'Right Headphone Mixer Right DAC' on
mixer "$card" 'Left Headphone Mixer Left DAC' on mixer "$card" 'Left Headphone Mixer Left DAC' on