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