1#
2# Configuration for the VIA8237 chip with 4/6 multi-channel support
3#
4
5<confdir:pcm/front.conf>
6
7VIA8237.pcm.front.0 {
8	@args [ CARD ]
9	@args.CARD {
10		type string
11	}
12	type hw
13	card $CARD
14}	
15
16# default with softvol/dsnoop
17# VIA8237 supports multi-playback
18VIA8237.pcm.default {
19	@args [ CARD ]
20	@args.CARD {
21		type string
22	}
23	type asym
24	playback.pcm {
25		type plug
26		slave.pcm {
27			type softvol
28			slave.pcm {
29				type hw
30				card $CARD
31			}
32			control {
33				name "PCM Playback Volume"
34				card $CARD
35			}
36		}
37	}
38	capture.pcm {
39		type plug
40		slave.pcm {
41			@func concat
42			strings [ "dsnoop:" $CARD ]
43		}
44	}
45}
46
47<confdir:pcm/surround40.conf>
48
49VIA8237.pcm.surround40.0 {
50	@args [ CARD ]
51	@args.CARD {
52		type string
53	}
54	type hooks
55	slave.pcm {
56		type hw
57		card $CARD
58		device 1
59		channels 4
60	}
61	hooks.0 {
62		type ctl_elems
63		hook_args [
64			{
65				name "Channel Mode"
66				preserve true
67				value "4ch"
68				lock true
69				optional true
70			}
71			{
72				name "Surround Down Mix"
73				preserve true
74				value off
75				lock true
76				optional true
77			}
78		]
79	}
80}
81
82<confdir:pcm/surround41.conf>
83<confdir:pcm/surround50.conf>
84<confdir:pcm/surround51.conf>
85
86VIA8237.pcm.surround51.0 {
87	@args [ CARD ]
88	@args.CARD {
89		type string
90	}
91	type route
92	ttable.0.0 1
93	ttable.1.1 1
94	ttable.2.4 1
95	ttable.3.5 1
96	ttable.4.2 1
97	ttable.5.3 1
98	slave.pcm {
99		type hooks
100		slave.pcm {
101			type hw
102			card $CARD
103			device 1
104			channels 6
105		}
106		hooks.0 {
107			type ctl_elems
108			hook_args [
109				{
110					name "Channel Mode"
111					preserve true
112					value "6ch"
113					lock true
114					optional true
115				}
116				{
117					name "Surround Down Mix"
118					preserve true
119					value off
120					lock true
121					optional true
122				}
123				{
124					name "Center/LFE Down Mix"
125					preserve true
126					value off
127					lock true
128					optional true
129				}
130			]
131		}
132	}
133	slave.channels 6
134}
135
136<confdir:pcm/iec958.conf>
137
138VIA8237.pcm.iec958.0 {
139	@args [ CARD AES0 AES1 AES2 AES3 ]
140	@args.CARD {
141		type string
142	}
143	@args.AES0 {
144		type integer
145	}
146	@args.AES1 {
147		type integer
148	}
149	@args.AES2 {
150		type integer
151	}
152	@args.AES3 {
153		type integer
154	}
155	type hooks
156	slave.pcm {
157		type hw
158		card $CARD
159		subdevice 3
160	}
161	hooks.0 {
162		type ctl_elems
163		hook_args [
164			{
165				name "IEC958 Playback AC97-SPSA"
166				lock true
167				preserve true
168				value 3
169			}
170			{
171				name "IEC958 Playback Default"
172				lock true
173				preserve true
174				value [ $AES0 $AES1 $AES2 $AES3 ]
175			}
176			{
177				name "IEC958 Playback Switch"
178				lock true
179				preserve true
180				value true
181			}
182			{
183				name "IEC958 Output Switch"
184				lock true
185				preserve true
186				value true
187			}
188		]
189	}
190}
191