1#
2# Configuration for the SI7018 chip
3#
4# This configuration does not reflect hardware.
5#
6
7<confdir:pcm/front.conf>
8
9SI7018.pcm.front.0 {
10	@args [ CARD ]
11	@args.CARD {
12		type string
13	}
14	type hw
15	card $CARD
16}	
17
18<confdir:pcm/rear.conf>
19
20SI7018.pcm.rear.0 {
21	@args [ CARD ]
22	@args.CARD {
23		type string
24	}
25        type hooks
26	slave.pcm {
27		type hw
28		card $CARD
29	}
30	hooks.0 {
31		type ctl_elems
32		hook_args [
33			{
34				name "PCM Playback Volume"
35				preserve true
36				lock true
37				value [ 24 24 ]
38			}
39		]
40	}
41}	
42
43<confdir:pcm/surround40.conf>
44
45SI7018.pcm.surround40.0 {
46	@args [ CARD ]
47	@args.CARD {
48		type string
49	}
50	type multi
51	slaves [
52		{
53			pcm {
54				@func concat
55				strings [
56					"cards.SI7018.pcm.front.0:CARD=" $CARD
57				]
58			}
59			channels 2
60		}
61		{
62			pcm {
63				@func concat
64				strings [
65					"cards.SI7018.pcm.rear.0:CARD=" $CARD
66				]
67			}
68			channels 2
69		}
70	]
71	bindings [
72		{ slave 0 channel 0 }
73		{ slave 0 channel 1 }
74		{ slave 1 channel 0 }
75		{ slave 1 channel 1 }
76	]
77}
78
79<confdir:pcm/surround41.conf>
80<confdir:pcm/surround50.conf>
81<confdir:pcm/surround51.conf>
82
83SI7018.pcm.surround51.0 {
84	@args [ CARD ]
85	@args.CARD {
86		type string
87	}
88	type multi
89	slaves [
90		{
91			pcm {
92				@func concat
93				strings [
94					"cards.SI7018.pcm.front.0:CARD=" $CARD
95				]
96			}
97			channels 2
98		}
99		{
100			pcm {
101				@func concat
102				strings [
103					"cards.SI7018.pcm.rear.0:CARD=" $CARD
104				]
105			}
106			channels 2
107		}
108		{
109			pcm {
110				@func concat
111				strings [
112					"cards.SI7018.pcm.front.0:CARD=" $CARD
113				]
114			}
115			channels 2
116		}
117	]
118	bindings [
119		{ slave 0 channel 0 }
120		{ slave 0 channel 1 }
121		{ slave 1 channel 0 }
122		{ slave 1 channel 1 }
123		{ slave 2 channel 0 }
124		{ slave 2 channel 1 }
125	]
126}
127
128<confdir:pcm/iec958.conf>
129
130SI7018.pcm.iec958.0 {
131	@args [ CARD AES0 AES1 AES2 AES3 ]
132	@args.CARD {
133		type string
134	}
135	@args.AES0 {
136		type integer
137	}
138	@args.AES1 {
139		type integer
140	}
141	@args.AES2 {
142		type integer
143	}
144	@args.AES3 {
145		type integer
146	}
147	type hooks
148	slave.pcm {
149		type hw
150		card $CARD
151		device 1
152	}
153	hooks.0 {
154		type ctl_elems
155		hook_args [
156			{
157				interface PCM
158				name "IEC958 Playback PCM Stream"
159				value [ $AES0 $AES1 $AES2 $AES3 ]
160				device 1
161				lock true
162				preserve true
163			}
164		]
165	}
166}
167