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