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