1d5ac70f0Sopenharmony_ci#
2d5ac70f0Sopenharmony_ci# Configuration for the CMI8338/8738 chip (w/o multi-channel support)
3d5ac70f0Sopenharmony_ci#
4d5ac70f0Sopenharmony_ci
5d5ac70f0Sopenharmony_ci<confdir:pcm/front.conf>
6d5ac70f0Sopenharmony_ci
7d5ac70f0Sopenharmony_ciCMI8338.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 dmix/dsnoop
17d5ac70f0Sopenharmony_ciCMI8338.pcm.default {
18d5ac70f0Sopenharmony_ci	@args [ CARD ]
19d5ac70f0Sopenharmony_ci	@args.CARD {
20d5ac70f0Sopenharmony_ci		type string
21d5ac70f0Sopenharmony_ci	}
22d5ac70f0Sopenharmony_ci	type asym
23d5ac70f0Sopenharmony_ci	playback.pcm {
24d5ac70f0Sopenharmony_ci		type plug
25d5ac70f0Sopenharmony_ci		slave.pcm {
26d5ac70f0Sopenharmony_ci			@func concat
27d5ac70f0Sopenharmony_ci			strings [ "dmix:" $CARD ]
28d5ac70f0Sopenharmony_ci		}
29d5ac70f0Sopenharmony_ci	}
30d5ac70f0Sopenharmony_ci	capture.pcm {
31d5ac70f0Sopenharmony_ci		type plug
32d5ac70f0Sopenharmony_ci		slave.pcm {
33d5ac70f0Sopenharmony_ci			@func concat
34d5ac70f0Sopenharmony_ci			strings [ "dsnoop:" $CARD ]
35d5ac70f0Sopenharmony_ci		}
36d5ac70f0Sopenharmony_ci	}
37d5ac70f0Sopenharmony_ci}
38d5ac70f0Sopenharmony_ci
39d5ac70f0Sopenharmony_ci<confdir:pcm/rear.conf>
40d5ac70f0Sopenharmony_ci
41d5ac70f0Sopenharmony_ci# 2nd DAC
42d5ac70f0Sopenharmony_ci# FIXME: we need a volume attenuator for rear channel.
43d5ac70f0Sopenharmony_ciCMI8338.pcm.rear.0 {
44d5ac70f0Sopenharmony_ci	@args [ CARD ]
45d5ac70f0Sopenharmony_ci	@args.CARD {
46d5ac70f0Sopenharmony_ci		type string
47d5ac70f0Sopenharmony_ci	}
48d5ac70f0Sopenharmony_ci	type hw
49d5ac70f0Sopenharmony_ci	card $CARD
50d5ac70f0Sopenharmony_ci	device 1
51d5ac70f0Sopenharmony_ci}
52d5ac70f0Sopenharmony_ci
53d5ac70f0Sopenharmony_ci<confdir:pcm/surround40.conf>
54d5ac70f0Sopenharmony_ci
55d5ac70f0Sopenharmony_ci# for the old CM8738 with 2nd DAC for rear
56d5ac70f0Sopenharmony_ciCMI8338.pcm.surround40.0 {
57d5ac70f0Sopenharmony_ci	@args [ CARD ]
58d5ac70f0Sopenharmony_ci	@args.CARD {
59d5ac70f0Sopenharmony_ci		type string
60d5ac70f0Sopenharmony_ci	}
61d5ac70f0Sopenharmony_ci	type multi
62d5ac70f0Sopenharmony_ci	master 1
63d5ac70f0Sopenharmony_ci	slaves [
64d5ac70f0Sopenharmony_ci		{
65d5ac70f0Sopenharmony_ci			pcm {
66d5ac70f0Sopenharmony_ci				@func concat
67d5ac70f0Sopenharmony_ci				strings [
68d5ac70f0Sopenharmony_ci					"cards.CMI8338.pcm.front.0:CARD=" $CARD
69d5ac70f0Sopenharmony_ci				]
70d5ac70f0Sopenharmony_ci			}
71d5ac70f0Sopenharmony_ci			channels 2
72d5ac70f0Sopenharmony_ci		}
73d5ac70f0Sopenharmony_ci		{
74d5ac70f0Sopenharmony_ci			pcm {
75d5ac70f0Sopenharmony_ci				@func concat
76d5ac70f0Sopenharmony_ci				strings [
77d5ac70f0Sopenharmony_ci					"cards.CMI8338.pcm.rear.0:CARD=" $CARD
78d5ac70f0Sopenharmony_ci				]
79d5ac70f0Sopenharmony_ci			}
80d5ac70f0Sopenharmony_ci			channels 2
81d5ac70f0Sopenharmony_ci		}
82d5ac70f0Sopenharmony_ci	]
83d5ac70f0Sopenharmony_ci	bindings [
84d5ac70f0Sopenharmony_ci		{ slave 0 channel 0 }
85d5ac70f0Sopenharmony_ci		{ slave 0 channel 1 }
86d5ac70f0Sopenharmony_ci		{ slave 1 channel 0 }
87d5ac70f0Sopenharmony_ci		{ slave 1 channel 1 }
88d5ac70f0Sopenharmony_ci	]
89d5ac70f0Sopenharmony_ci}
90d5ac70f0Sopenharmony_ci
91d5ac70f0Sopenharmony_ci<confdir:pcm/iec958.conf>
92d5ac70f0Sopenharmony_ci
93d5ac70f0Sopenharmony_ciCMI8338.pcm.iec958.0 {
94d5ac70f0Sopenharmony_ci	@args [ CARD AES0 AES1 AES2 AES3 ]
95d5ac70f0Sopenharmony_ci	@args.CARD {
96d5ac70f0Sopenharmony_ci		type string
97d5ac70f0Sopenharmony_ci	}
98d5ac70f0Sopenharmony_ci	@args.AES0 {
99d5ac70f0Sopenharmony_ci		type integer
100d5ac70f0Sopenharmony_ci	}
101d5ac70f0Sopenharmony_ci	@args.AES1 {
102d5ac70f0Sopenharmony_ci		type integer
103d5ac70f0Sopenharmony_ci	}
104d5ac70f0Sopenharmony_ci	@args.AES2 {
105d5ac70f0Sopenharmony_ci		type integer
106d5ac70f0Sopenharmony_ci	}
107d5ac70f0Sopenharmony_ci	@args.AES3 {
108d5ac70f0Sopenharmony_ci		type integer
109d5ac70f0Sopenharmony_ci	}
110d5ac70f0Sopenharmony_ci	type asym
111d5ac70f0Sopenharmony_ci	playback.pcm {
112d5ac70f0Sopenharmony_ci		type hooks
113d5ac70f0Sopenharmony_ci		slave.pcm {
114d5ac70f0Sopenharmony_ci			type hw
115d5ac70f0Sopenharmony_ci			card $CARD
116d5ac70f0Sopenharmony_ci			device 2
117d5ac70f0Sopenharmony_ci		}
118d5ac70f0Sopenharmony_ci		hooks.0 {
119d5ac70f0Sopenharmony_ci			type ctl_elems
120d5ac70f0Sopenharmony_ci			hook_args [
121d5ac70f0Sopenharmony_ci				{
122d5ac70f0Sopenharmony_ci					interface PCM
123d5ac70f0Sopenharmony_ci					name "IEC958 Playback PCM Stream"
124d5ac70f0Sopenharmony_ci					device 2
125d5ac70f0Sopenharmony_ci					lock true
126d5ac70f0Sopenharmony_ci					preserve true
127d5ac70f0Sopenharmony_ci					value [ $AES0 $AES1 $AES2 $AES3 ]
128d5ac70f0Sopenharmony_ci				}
129d5ac70f0Sopenharmony_ci				{
130d5ac70f0Sopenharmony_ci					name "IEC958 Loop"
131d5ac70f0Sopenharmony_ci					lock true
132d5ac70f0Sopenharmony_ci					preserve true
133d5ac70f0Sopenharmony_ci					value off
134d5ac70f0Sopenharmony_ci				}
135d5ac70f0Sopenharmony_ci			]
136d5ac70f0Sopenharmony_ci		}
137d5ac70f0Sopenharmony_ci	}
138d5ac70f0Sopenharmony_ci	capture.pcm {
139d5ac70f0Sopenharmony_ci		type hw
140d5ac70f0Sopenharmony_ci		card $CARD
141d5ac70f0Sopenharmony_ci		device 2
142d5ac70f0Sopenharmony_ci	}
143d5ac70f0Sopenharmony_ci}
144