1d5ac70f0Sopenharmony_ci#
2d5ac70f0Sopenharmony_ci# Configuration for the CS46xx chip
3d5ac70f0Sopenharmony_ci#
4d5ac70f0Sopenharmony_ci
5d5ac70f0Sopenharmony_ci<confdir:pcm/front.conf>
6d5ac70f0Sopenharmony_ci
7d5ac70f0Sopenharmony_ciCS46xx.pcm.front.0 {
8d5ac70f0Sopenharmony_ci	@args [ CARD  ]
9d5ac70f0Sopenharmony_ci	@args.CARD {
10d5ac70f0Sopenharmony_ci		type string
11d5ac70f0Sopenharmony_ci	}
12d5ac70f0Sopenharmony_ci	type hw
13d5ac70f0Sopenharmony_ci	card $CARD
14d5ac70f0Sopenharmony_ci}	
15d5ac70f0Sopenharmony_ci
16d5ac70f0Sopenharmony_ci# default with plughw
17d5ac70f0Sopenharmony_ci# CS46xx supports multi-playback
18d5ac70f0Sopenharmony_ciCS46xx.pcm.default {
19d5ac70f0Sopenharmony_ci	@args [ CARD ]
20d5ac70f0Sopenharmony_ci	@args.CARD {
21d5ac70f0Sopenharmony_ci		type string
22d5ac70f0Sopenharmony_ci	}
23d5ac70f0Sopenharmony_ci	type asym
24d5ac70f0Sopenharmony_ci	playback.pcm {
25d5ac70f0Sopenharmony_ci		type plug
26d5ac70f0Sopenharmony_ci		slave.pcm {
27d5ac70f0Sopenharmony_ci			@func concat
28d5ac70f0Sopenharmony_ci			strings [ "hw:" $CARD ]
29d5ac70f0Sopenharmony_ci		}
30d5ac70f0Sopenharmony_ci	}
31d5ac70f0Sopenharmony_ci	capture.pcm {
32d5ac70f0Sopenharmony_ci		type plug
33d5ac70f0Sopenharmony_ci		slave.pcm {
34d5ac70f0Sopenharmony_ci			@func concat
35d5ac70f0Sopenharmony_ci			strings [ "hw:" $CARD ]
36d5ac70f0Sopenharmony_ci		}
37d5ac70f0Sopenharmony_ci	}
38d5ac70f0Sopenharmony_ci}
39d5ac70f0Sopenharmony_ci
40d5ac70f0Sopenharmony_ci<confdir:pcm/rear.conf>
41d5ac70f0Sopenharmony_ci
42d5ac70f0Sopenharmony_ciCS46xx.pcm.rear.0 {
43d5ac70f0Sopenharmony_ci	@args [ CARD ]
44d5ac70f0Sopenharmony_ci	@args.CARD {
45d5ac70f0Sopenharmony_ci		type string
46d5ac70f0Sopenharmony_ci	}
47d5ac70f0Sopenharmony_ci	type hooks
48d5ac70f0Sopenharmony_ci	slave.pcm {
49d5ac70f0Sopenharmony_ci		type hw
50d5ac70f0Sopenharmony_ci		card $CARD
51d5ac70f0Sopenharmony_ci		device 1
52d5ac70f0Sopenharmony_ci	}
53d5ac70f0Sopenharmony_ci	hooks.0 {
54d5ac70f0Sopenharmony_ci		type ctl_elems
55d5ac70f0Sopenharmony_ci		hook_args [
56d5ac70f0Sopenharmony_ci			{
57d5ac70f0Sopenharmony_ci				name "Duplicate Front"
58d5ac70f0Sopenharmony_ci				lock true
59d5ac70f0Sopenharmony_ci				preserve true
60d5ac70f0Sopenharmony_ci				value 0
61d5ac70f0Sopenharmony_ci				optional true
62d5ac70f0Sopenharmony_ci			}
63d5ac70f0Sopenharmony_ci		]
64d5ac70f0Sopenharmony_ci	}
65d5ac70f0Sopenharmony_ci}	
66d5ac70f0Sopenharmony_ci
67d5ac70f0Sopenharmony_ci<confdir:pcm/center_lfe.conf>
68d5ac70f0Sopenharmony_ci
69d5ac70f0Sopenharmony_ciCS46xx.pcm.center_lfe.0 {
70d5ac70f0Sopenharmony_ci	@args [ CARD ]
71d5ac70f0Sopenharmony_ci	@args.CARD {
72d5ac70f0Sopenharmony_ci		type string
73d5ac70f0Sopenharmony_ci	}
74d5ac70f0Sopenharmony_ci	type hw
75d5ac70f0Sopenharmony_ci	card $CARD
76d5ac70f0Sopenharmony_ci	device 3
77d5ac70f0Sopenharmony_ci}	
78d5ac70f0Sopenharmony_ci
79d5ac70f0Sopenharmony_ci<confdir:pcm/surround40.conf>
80d5ac70f0Sopenharmony_ci
81d5ac70f0Sopenharmony_ciCS46xx.pcm.surround40.0 {
82d5ac70f0Sopenharmony_ci	@args [ CARD ]
83d5ac70f0Sopenharmony_ci	@args.CARD {
84d5ac70f0Sopenharmony_ci		type string
85d5ac70f0Sopenharmony_ci	}
86d5ac70f0Sopenharmony_ci	type multi
87d5ac70f0Sopenharmony_ci	slaves [
88d5ac70f0Sopenharmony_ci		{
89d5ac70f0Sopenharmony_ci			pcm {
90d5ac70f0Sopenharmony_ci				@func concat
91d5ac70f0Sopenharmony_ci				strings [
92d5ac70f0Sopenharmony_ci					"cards.CS46xx.pcm.front.0:CARD=" $CARD
93d5ac70f0Sopenharmony_ci				]
94d5ac70f0Sopenharmony_ci			}
95d5ac70f0Sopenharmony_ci			channels 2
96d5ac70f0Sopenharmony_ci		}
97d5ac70f0Sopenharmony_ci		{
98d5ac70f0Sopenharmony_ci			pcm {
99d5ac70f0Sopenharmony_ci				@func concat
100d5ac70f0Sopenharmony_ci				strings [
101d5ac70f0Sopenharmony_ci					"cards.CS46xx.pcm.rear.0:CARD=" $CARD
102d5ac70f0Sopenharmony_ci				]
103d5ac70f0Sopenharmony_ci			}
104d5ac70f0Sopenharmony_ci			channels 2
105d5ac70f0Sopenharmony_ci		}
106d5ac70f0Sopenharmony_ci	]
107d5ac70f0Sopenharmony_ci	bindings [
108d5ac70f0Sopenharmony_ci		{ slave 0 channel 0 }
109d5ac70f0Sopenharmony_ci		{ slave 0 channel 1 }
110d5ac70f0Sopenharmony_ci		{ slave 1 channel 0 }
111d5ac70f0Sopenharmony_ci		{ slave 1 channel 1 }
112d5ac70f0Sopenharmony_ci	]
113d5ac70f0Sopenharmony_ci}
114d5ac70f0Sopenharmony_ci
115d5ac70f0Sopenharmony_ci<confdir:pcm/surround21.conf>
116d5ac70f0Sopenharmony_ci<confdir:pcm/surround41.conf>
117d5ac70f0Sopenharmony_ci<confdir:pcm/surround50.conf>
118d5ac70f0Sopenharmony_ci<confdir:pcm/surround51.conf>
119d5ac70f0Sopenharmony_ci
120d5ac70f0Sopenharmony_ciCS46xx.pcm.surround51.0 {
121d5ac70f0Sopenharmony_ci	@args [ CARD ]
122d5ac70f0Sopenharmony_ci	@args.CARD {
123d5ac70f0Sopenharmony_ci		type string
124d5ac70f0Sopenharmony_ci	}
125d5ac70f0Sopenharmony_ci	type multi
126d5ac70f0Sopenharmony_ci	slaves [
127d5ac70f0Sopenharmony_ci		{
128d5ac70f0Sopenharmony_ci			pcm {
129d5ac70f0Sopenharmony_ci				@func concat
130d5ac70f0Sopenharmony_ci				strings [
131d5ac70f0Sopenharmony_ci					"cards.CS46xx.pcm.front.0:CARD=" $CARD
132d5ac70f0Sopenharmony_ci				]
133d5ac70f0Sopenharmony_ci			}
134d5ac70f0Sopenharmony_ci			channels 2
135d5ac70f0Sopenharmony_ci		}
136d5ac70f0Sopenharmony_ci		{
137d5ac70f0Sopenharmony_ci			pcm {
138d5ac70f0Sopenharmony_ci				@func concat
139d5ac70f0Sopenharmony_ci				strings [
140d5ac70f0Sopenharmony_ci					"cards.CS46xx.pcm.rear.0:CARD=" $CARD
141d5ac70f0Sopenharmony_ci				]
142d5ac70f0Sopenharmony_ci			}
143d5ac70f0Sopenharmony_ci			channels 2
144d5ac70f0Sopenharmony_ci		}
145d5ac70f0Sopenharmony_ci		{
146d5ac70f0Sopenharmony_ci			pcm {
147d5ac70f0Sopenharmony_ci				@func concat
148d5ac70f0Sopenharmony_ci				strings [
149d5ac70f0Sopenharmony_ci					"cards.CS46xx.pcm.center_lfe.0:CARD=" $CARD
150d5ac70f0Sopenharmony_ci				]
151d5ac70f0Sopenharmony_ci			}
152d5ac70f0Sopenharmony_ci			channels 2
153d5ac70f0Sopenharmony_ci		}
154d5ac70f0Sopenharmony_ci	]
155d5ac70f0Sopenharmony_ci	bindings [
156d5ac70f0Sopenharmony_ci		{ slave 0 channel 0 }
157d5ac70f0Sopenharmony_ci		{ slave 0 channel 1 }
158d5ac70f0Sopenharmony_ci		{ slave 1 channel 0 }
159d5ac70f0Sopenharmony_ci		{ slave 1 channel 1 }
160d5ac70f0Sopenharmony_ci		{ slave 2 channel 0 }
161d5ac70f0Sopenharmony_ci		{ slave 2 channel 1 }
162d5ac70f0Sopenharmony_ci	]
163d5ac70f0Sopenharmony_ci}
164d5ac70f0Sopenharmony_ci
165d5ac70f0Sopenharmony_ci<confdir:pcm/iec958.conf>
166d5ac70f0Sopenharmony_ci
167d5ac70f0Sopenharmony_ciCS46xx.pcm.iec958.0 {
168d5ac70f0Sopenharmony_ci	@args [ CARD AES0 AES1 AES2 AES3 ]
169d5ac70f0Sopenharmony_ci	@args.CARD {
170d5ac70f0Sopenharmony_ci		type string
171d5ac70f0Sopenharmony_ci	}
172d5ac70f0Sopenharmony_ci	@args.AES0 {
173d5ac70f0Sopenharmony_ci		type integer
174d5ac70f0Sopenharmony_ci	}
175d5ac70f0Sopenharmony_ci	@args.AES1 {
176d5ac70f0Sopenharmony_ci		type integer
177d5ac70f0Sopenharmony_ci	}
178d5ac70f0Sopenharmony_ci	@args.AES2 {
179d5ac70f0Sopenharmony_ci		type integer
180d5ac70f0Sopenharmony_ci	}
181d5ac70f0Sopenharmony_ci	@args.AES3 {
182d5ac70f0Sopenharmony_ci		type integer
183d5ac70f0Sopenharmony_ci	}
184d5ac70f0Sopenharmony_ci	type hooks
185d5ac70f0Sopenharmony_ci	slave.pcm {
186d5ac70f0Sopenharmony_ci		type hw
187d5ac70f0Sopenharmony_ci		card $CARD
188d5ac70f0Sopenharmony_ci		device 2
189d5ac70f0Sopenharmony_ci	}
190d5ac70f0Sopenharmony_ci	hooks.0 {
191d5ac70f0Sopenharmony_ci		type ctl_elems
192d5ac70f0Sopenharmony_ci		hook_args [
193d5ac70f0Sopenharmony_ci			{
194d5ac70f0Sopenharmony_ci				name "IEC958 Output Switch"
195d5ac70f0Sopenharmony_ci				lock true
196d5ac70f0Sopenharmony_ci				preserve true
197d5ac70f0Sopenharmony_ci				value 1
198d5ac70f0Sopenharmony_ci			}
199d5ac70f0Sopenharmony_ci			{
200d5ac70f0Sopenharmony_ci				interface PCM
201d5ac70f0Sopenharmony_ci				name "IEC958 Playback PCM Stream"
202d5ac70f0Sopenharmony_ci				device 2
203d5ac70f0Sopenharmony_ci				lock true
204d5ac70f0Sopenharmony_ci				preserve true
205d5ac70f0Sopenharmony_ci				optional true
206d5ac70f0Sopenharmony_ci				value [ $AES0 $AES1 $AES2 $AES3 ]
207d5ac70f0Sopenharmony_ci			}
208d5ac70f0Sopenharmony_ci			{
209d5ac70f0Sopenharmony_ci				# for compatibility with older drivers
210d5ac70f0Sopenharmony_ci				interface PCM
211d5ac70f0Sopenharmony_ci				name "IEC958 Playback PCM Stream"
212d5ac70f0Sopenharmony_ci				lock true
213d5ac70f0Sopenharmony_ci				preserve true
214d5ac70f0Sopenharmony_ci				optional true
215d5ac70f0Sopenharmony_ci				value [ $AES0 $AES1 $AES2 $AES3 ]
216d5ac70f0Sopenharmony_ci			}
217d5ac70f0Sopenharmony_ci		]
218d5ac70f0Sopenharmony_ci	}
219d5ac70f0Sopenharmony_ci}
220