1d5ac70f0Sopenharmony_ci#
2d5ac70f0Sopenharmony_ci# Configuration for the VC4-HDMI sound card using software IEC958
3d5ac70f0Sopenharmony_ci# subframe conversion
4d5ac70f0Sopenharmony_ci#
5d5ac70f0Sopenharmony_ci
6d5ac70f0Sopenharmony_ci<confdir:pcm/hdmi.conf>
7d5ac70f0Sopenharmony_ci
8d5ac70f0Sopenharmony_civc4-hdmi.pcm.hdmi.0 {
9d5ac70f0Sopenharmony_ci	@args [ CARD AES0 AES1 AES2 AES3 ]
10d5ac70f0Sopenharmony_ci	@args.CARD {
11d5ac70f0Sopenharmony_ci		type string
12d5ac70f0Sopenharmony_ci	}
13d5ac70f0Sopenharmony_ci	@args.AES0 {
14d5ac70f0Sopenharmony_ci		type integer
15d5ac70f0Sopenharmony_ci	}
16d5ac70f0Sopenharmony_ci	@args.AES1 {
17d5ac70f0Sopenharmony_ci		type integer
18d5ac70f0Sopenharmony_ci	}
19d5ac70f0Sopenharmony_ci	@args.AES2 {
20d5ac70f0Sopenharmony_ci		type integer
21d5ac70f0Sopenharmony_ci	}
22d5ac70f0Sopenharmony_ci	@args.AES3 {
23d5ac70f0Sopenharmony_ci		type integer
24d5ac70f0Sopenharmony_ci	}
25d5ac70f0Sopenharmony_ci	type iec958
26d5ac70f0Sopenharmony_ci	slave {
27d5ac70f0Sopenharmony_ci		format IEC958_SUBFRAME_LE
28d5ac70f0Sopenharmony_ci		pcm {
29d5ac70f0Sopenharmony_ci			type hooks
30d5ac70f0Sopenharmony_ci			slave.pcm {
31d5ac70f0Sopenharmony_ci				type hw
32d5ac70f0Sopenharmony_ci				card $CARD
33d5ac70f0Sopenharmony_ci				device 0
34d5ac70f0Sopenharmony_ci			}
35d5ac70f0Sopenharmony_ci			hooks.0 {
36d5ac70f0Sopenharmony_ci				type ctl_elems
37d5ac70f0Sopenharmony_ci				hook_args [
38d5ac70f0Sopenharmony_ci				{
39d5ac70f0Sopenharmony_ci					name "IEC958 Playback Default"
40d5ac70f0Sopenharmony_ci					interface PCM
41d5ac70f0Sopenharmony_ci					optional true
42d5ac70f0Sopenharmony_ci					lock true
43d5ac70f0Sopenharmony_ci					preserve true
44d5ac70f0Sopenharmony_ci					value [ $AES0 $AES1 $AES2 $AES3 ]
45d5ac70f0Sopenharmony_ci				}
46d5ac70f0Sopenharmony_ci				]
47d5ac70f0Sopenharmony_ci			}
48d5ac70f0Sopenharmony_ci		}
49d5ac70f0Sopenharmony_ci	}
50d5ac70f0Sopenharmony_ci	status [ $AES0 $AES1 $AES2 $AES3 ]
51d5ac70f0Sopenharmony_ci	hdmi_mode true
52d5ac70f0Sopenharmony_ci}
53d5ac70f0Sopenharmony_ci
54d5ac70f0Sopenharmony_ci# default with plug and softvol
55d5ac70f0Sopenharmony_civc4-hdmi.pcm.default {
56d5ac70f0Sopenharmony_ci	@args [ CARD ]
57d5ac70f0Sopenharmony_ci	@args.CARD {
58d5ac70f0Sopenharmony_ci		type string
59d5ac70f0Sopenharmony_ci	}
60d5ac70f0Sopenharmony_ci	type asym
61d5ac70f0Sopenharmony_ci	playback.pcm {
62d5ac70f0Sopenharmony_ci		type plug
63d5ac70f0Sopenharmony_ci		slave.pcm {
64d5ac70f0Sopenharmony_ci			type softvol
65d5ac70f0Sopenharmony_ci			slave.pcm {
66d5ac70f0Sopenharmony_ci				@func concat
67d5ac70f0Sopenharmony_ci				strings [
68d5ac70f0Sopenharmony_ci					"cards.vc4-hdmi.pcm.hdmi.0:"
69d5ac70f0Sopenharmony_ci					"CARD=" $CARD ","
70d5ac70f0Sopenharmony_ci					"AES0=0x04,"	# IEC958_AES0_CON_NOT_COPYRIGHT | IEC958_AES0_CON_EMPHASIS_NONE
71d5ac70f0Sopenharmony_ci					"AES1=0x82,"	# IEC958_AES1_CON_ORIGINAL | IEC958_AES1_CON_PCM_CODER
72d5ac70f0Sopenharmony_ci					"AES2=0x00,"	# IEC958_AES2_CON_SOURCE_UNSPEC | IEC958_AES2_CON_CHANNEL_UNSPEC
73d5ac70f0Sopenharmony_ci					"AES3=0x01"	# IEC958_AES3_CON_FS_NOTID (iec958 plugin will fill in actual rate)
74d5ac70f0Sopenharmony_ci				]
75d5ac70f0Sopenharmony_ci			}
76d5ac70f0Sopenharmony_ci			control {
77d5ac70f0Sopenharmony_ci				name "PCM Playback Volume"
78d5ac70f0Sopenharmony_ci				card $CARD
79d5ac70f0Sopenharmony_ci			}
80d5ac70f0Sopenharmony_ci		}
81d5ac70f0Sopenharmony_ci	}
82d5ac70f0Sopenharmony_ci}
83