From 0891f0bd6e8d57de32b60c0cda3df4fba3fd4c06 Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Thu, 14 May 2020 13:31:34 +0000
Subject: [PATCH] conf: add support for Amlogic AIU and AXG cards

The AIU conf is used with Amlogic GXBB/GXL/boards and supports HDMI
and hinted S/PDIF output. The AXG conf is used with G12A/G12B/SM1
boards and supports HDMI only.

Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
---
 src/conf/cards/Makefile.am         |   2 +
 src/conf/cards/axg-sound-card.conf |  65 ++++++++++++++++++
 src/conf/cards/gx-sound-card.conf  | 106 +++++++++++++++++++++++++++++
 3 files changed, 173 insertions(+)
 create mode 100644 src/conf/cards/axg-sound-card.conf
 create mode 100644 src/conf/cards/gx-sound-card.conf

diff --git a/src/conf/cards/Makefile.am b/src/conf/cards/Makefile.am
index 00999f01..dc2881d7 100644
--- a/src/conf/cards/Makefile.am
+++ b/src/conf/cards/Makefile.am
@@ -12,6 +12,7 @@ cfg_files = aliases.conf \
 	Audigy2.conf \
 	Aureon51.conf \
 	Aureon71.conf \
+	axg-sound-card.conf \
 	CA0106.conf \
 	CMI8338.conf \
 	CMI8338-SWIEC.conf \
@@ -29,6 +30,7 @@ cfg_files = aliases.conf \
 	FWSpeakers.conf \
 	FireWave.conf \
 	GUS.conf \
+	gx-sound-card.conf \
 	HDA-Intel.conf \
 	HdmiLpeAudio.conf \
 	ICE1712.conf \
diff --git a/src/conf/cards/axg-sound-card.conf b/src/conf/cards/axg-sound-card.conf
new file mode 100644
index 00000000..4f0fe80d
--- /dev/null
+++ b/src/conf/cards/axg-sound-card.conf
@@ -0,0 +1,65 @@
+#
+# Configuration for Amlogic AXG audio
+#
+
+axg-sound-card.pcm.default {
+	@args [ CARD  ]
+	@args.CARD {
+		type string
+	}
+	type softvol
+	slave.pcm {
+		type plug
+		slave {
+			pcm {
+				type hw
+				card $CARD
+				device 0
+			}
+		}
+	}
+	control {
+		name "PCM Playback Volume"
+		card $CARD
+	}
+}
+
+<confdir:pcm/hdmi.conf>
+
+axg-sound-card.pcm.hdmi.0 {
+	@args [ CARD AES0 AES1 AES2 AES3 ]
+	@args.CARD {
+		type string
+	}
+	@args.AES0 {
+		type integer
+	}
+	@args.AES1 {
+		type integer
+	}
+	@args.AES2 {
+		type integer
+	}
+	@args.AES3 {
+		type integer
+	}
+	type hooks
+	slave.pcm {
+		type hw
+		card $CARD
+		device 0
+	}
+	hooks.0 {
+		type ctl_elems
+		hook_args [
+			{
+				name "IEC958 Playback Default"
+				interface PCM
+				lock true
+				preserve true
+				optional true
+				value [ $AES0 $AES1 $AES2 $AES3 ]
+			}
+		]
+	}
+}
diff --git a/src/conf/cards/gx-sound-card.conf b/src/conf/cards/gx-sound-card.conf
new file mode 100644
index 00000000..59f48b3c
--- /dev/null
+++ b/src/conf/cards/gx-sound-card.conf
@@ -0,0 +1,106 @@
+#
+# Configuration for Amlogic AIU audio
+#
+
+gx-sound-card.pcm.default {
+	@args [ CARD  ]
+	@args.CARD {
+		type string
+	}
+	type softvol
+	slave.pcm {
+		type plug
+		slave {
+			pcm {
+				type hw
+				card $CARD
+				device 0
+			}
+		}
+	}
+	control {
+		name "PCM Playback Volume"
+		card $CARD
+	}
+}
+
+<confdir:pcm/hdmi.conf>
+
+gx-sound-card.pcm.hdmi.0 {
+	@args [ CARD AES0 AES1 AES2 AES3 ]
+	@args.CARD {
+		type string
+	}
+	@args.AES0 {
+		type integer
+	}
+	@args.AES1 {
+		type integer
+	}
+	@args.AES2 {
+		type integer
+	}
+	@args.AES3 {
+		type integer
+	}
+	type hooks
+	slave.pcm {
+		type hw
+		card $CARD
+		device 0
+	}
+	hooks.0 {
+		type ctl_elems
+		hook_args [
+			{
+				name "IEC958 Playback Default"
+				interface PCM
+				lock true
+				preserve true
+				optional true
+				value [ $AES0 $AES1 $AES2 $AES3 ]
+			}
+		]
+	}
+}
+
+<confdir:pcm/iec958.conf>
+
+gx-sound-card.pcm.iec958.0 {
+	@args [ CARD AES0 AES1 AES2 AES3 ]
+	@args.CARD {
+		type string
+	}
+	@args.AES0 {
+		type integer
+	}
+	@args.AES1 {
+		type integer
+	}
+	@args.AES2 {
+		type integer
+	}
+	@args.AES3 {
+		type integer
+	}
+	type hooks
+	slave.pcm {
+		type hw
+		card $CARD
+		device 1
+	}
+	hooks.0 {
+		type ctl_elems
+		hook_args [
+			{
+				name "IEC958 Playback Default"
+				interface PCM
+				lock true
+				preserve true
+				optional true
+				value [ $AES0 $AES1 $AES2 $AES3 ]
+			}
+		]
+	}
+	hint.device 1
+}
-- 
2.34.1

