1#
2# Configuration for the CA0106 chip
3#
4
5# default with dmix & dsnoop
6CA0106.pcm.default {
7	@args [ CARD ]
8	@args.CARD {
9		type string
10	}
11	type asym
12	playback.pcm {
13		type plug
14		slave.pcm {
15			@func concat
16			strings [ "dmix:" $CARD ]
17		}
18	}
19	capture.pcm {
20		type plug
21		slave.pcm {
22			@func concat
23			strings [ "dsnoop:" $CARD ]
24		}
25	}
26}
27
28<confdir:pcm/front.conf>
29
30CA0106.pcm.front.0 {
31	@args [ CARD  ]
32	@args.CARD {
33		type string
34	}
35	type hw
36	card $CARD
37}	
38
39<confdir:pcm/rear.conf>
40
41CA0106.pcm.rear.0 {
42	@args [ CARD ]
43	@args.CARD {
44		type string
45	}
46	type hw
47	card $CARD
48	device 1
49}	
50
51<confdir:pcm/center_lfe.conf>
52
53CA0106.pcm.center_lfe.0 {
54	@args [ CARD ]
55	@args.CARD {
56		type string
57	}
58	type hw
59	card $CARD
60	device 2
61}	
62
63<confdir:pcm/side.conf>
64
65CA0106.pcm.side.0 {
66	@args [ CARD ]
67	@args.CARD {
68		type string
69	}
70	type hw
71	card $CARD
72	device 3
73}	
74
75<confdir:pcm/surround40.conf>
76
77CA0106.pcm.surround40.0 {
78	@args [ CARD ]
79	@args.CARD {
80		type string
81	}
82	type multi
83	slaves [
84		{
85			pcm {
86				@func concat
87				strings [
88					"cards.CA0106.pcm.front.0:CARD=" $CARD
89				]
90			}
91			channels 2
92		}
93		{
94			pcm {
95				@func concat
96				strings [
97					"cards.CA0106.pcm.rear.0:CARD=" $CARD
98				]
99			}
100			channels 2
101		}
102	]
103	bindings [
104		{ slave 0 channel 0 }
105		{ slave 0 channel 1 }
106		{ slave 1 channel 0 }
107		{ slave 1 channel 1 }
108	]
109}
110
111<confdir:pcm/surround41.conf>
112<confdir:pcm/surround50.conf>
113<confdir:pcm/surround51.conf>
114<confdir:pcm/surround71.conf>
115
116CA0106.pcm.surround51.0 {
117	@args [ CARD ]
118	@args.CARD {
119		type string
120	}
121	type multi
122	slaves [
123		{
124			pcm {
125				@func concat
126				strings [
127					"cards.CA0106.pcm.front.0:CARD=" $CARD
128				]
129			}
130			channels 2
131		}
132		{
133			pcm {
134				@func concat
135				strings [
136					"cards.CA0106.pcm.rear.0:CARD=" $CARD
137				]
138			}
139			channels 2
140		}
141		{
142			pcm {
143				@func concat
144				strings [
145					"cards.CA0106.pcm.center_lfe.0:CARD=" $CARD
146				]
147			}
148			channels 2
149		}
150	]
151	bindings [
152		{ slave 0 channel 0 }
153		{ slave 0 channel 1 }
154		{ slave 1 channel 0 }
155		{ slave 1 channel 1 }
156		{ slave 2 channel 0 }
157		{ slave 2 channel 1 }
158	]
159}
160
161CA0106.pcm.surround71.0 {
162	@args [ CARD ]
163	@args.CARD {
164		type string
165	}
166	type multi
167	slaves [
168		{
169			pcm {
170				@func concat
171				strings [
172					"cards.CA0106.pcm.front.0:CARD=" $CARD
173				]
174			}
175			channels 2
176		}
177		{
178			pcm {
179				@func concat
180				strings [
181					"cards.CA0106.pcm.rear.0:CARD=" $CARD
182				]
183			}
184			channels 2
185		}
186		{
187			pcm {
188				@func concat
189				strings [
190					"cards.CA0106.pcm.center_lfe.0:CARD=" $CARD
191				]
192			}
193			channels 2
194		}
195		{
196			pcm {
197				@func concat
198				strings [
199					"cards.CA0106.pcm.side.0:CARD=" $CARD
200				]
201			}
202			channels 2
203		}
204	]
205	bindings [
206		{ slave 0 channel 0 }
207		{ slave 0 channel 1 }
208		{ slave 1 channel 0 }
209		{ slave 1 channel 1 }
210		{ slave 2 channel 0 }
211		{ slave 2 channel 1 }
212		{ slave 3 channel 0 }
213		{ slave 3 channel 1 }
214	]
215}
216
217
218
219
220<confdir:pcm/iec958.conf>
221
222CA0106.pcm.iec958.0 {
223	@args [ CARD AES0 AES1 AES2 AES3 ]
224	@args.CARD {
225		type string
226	}
227	@args.AES0 {
228		type integer
229	}
230	@args.AES1 {
231		type integer
232	}
233	@args.AES2 {
234		type integer
235	}
236	@args.AES3 {
237		type integer
238	}
239	type hooks
240	slave.pcm {
241		type hw
242		card $CARD
243	}
244	hooks.0 {
245		type ctl_elems
246		hook_args [
247			{
248				name "IEC958 Front Playback Volume"
249				index 0
250				lock true
251				preserve true
252				value [ 207 207 ]   # Puts 0x30303030 in the Volume register. 0xff - 0x30 = 0xcf = 207
253			}
254			{
255				name "IEC958 Playback Switch"
256				lock true
257				preserve true
258				value 1
259			}
260			{
261				interface PCM
262				name "IEC958 Playback Default"
263				index 1
264				lock true
265				preserve true
266				optional true
267				value [ $AES0 $AES1 $AES2 $AES3 ]
268			}
269			{
270				# for compatibility with older drivers
271				name "IEC958 Playback Default"
272				index 1
273				lock true
274				preserve true
275				optional true
276				value [ $AES0 $AES1 $AES2 $AES3 ]
277			}
278		]
279	}
280}
281