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/surround41.conf> 112<confdir:pcm/surround50.conf> 113<confdir:pcm/surround51.conf> 114<confdir:pcm/surround71.conf> 115 116CA0106.pcm.surround51.0 { 117 @args [ CARD ] 118 @args.CARD { 119 type string 120 } 121 type multi 122 slaves [ 123 { 124 pcm { 125 @func concat 126 strings [ 127 "cards.CA0106.pcm.front.0:CARD=" $CARD 128 ] 129 } 130 channels 2 131 } 132 { 133 pcm { 134 @func concat 135 strings [ 136 "cards.CA0106.pcm.rear.0:CARD=" $CARD 137 ] 138 } 139 channels 2 140 } 141 { 142 pcm { 143 @func concat 144 strings [ 145 "cards.CA0106.pcm.center_lfe.0:CARD=" $CARD 146 ] 147 } 148 channels 2 149 } 150 ] 151 bindings [ 152 { slave 0 channel 0 } 153 { slave 0 channel 1 } 154 { slave 1 channel 0 } 155 { slave 1 channel 1 } 156 { slave 2 channel 0 } 157 { slave 2 channel 1 } 158 ] 159} 160 161CA0106.pcm.surround71.0 { 162 @args [ CARD ] 163 @args.CARD { 164 type string 165 } 166 type multi 167 slaves [ 168 { 169 pcm { 170 @func concat 171 strings [ 172 "cards.CA0106.pcm.front.0:CARD=" $CARD 173 ] 174 } 175 channels 2 176 } 177 { 178 pcm { 179 @func concat 180 strings [ 181 "cards.CA0106.pcm.rear.0:CARD=" $CARD 182 ] 183 } 184 channels 2 185 } 186 { 187 pcm { 188 @func concat 189 strings [ 190 "cards.CA0106.pcm.center_lfe.0:CARD=" $CARD 191 ] 192 } 193 channels 2 194 } 195 { 196 pcm { 197 @func concat 198 strings [ 199 "cards.CA0106.pcm.side.0:CARD=" $CARD 200 ] 201 } 202 channels 2 203 } 204 ] 205 bindings [ 206 { slave 0 channel 0 } 207 { slave 0 channel 1 } 208 { slave 1 channel 0 } 209 { slave 1 channel 1 } 210 { slave 2 channel 0 } 211 { slave 2 channel 1 } 212 { slave 3 channel 0 } 213 { slave 3 channel 1 } 214 ] 215} 216 217 218 219 220<confdir:pcm/iec958.conf> 221 222CA0106.pcm.iec958.0 { 223 @args [ CARD AES0 AES1 AES2 AES3 ] 224 @args.CARD { 225 type string 226 } 227 @args.AES0 { 228 type integer 229 } 230 @args.AES1 { 231 type integer 232 } 233 @args.AES2 { 234 type integer 235 } 236 @args.AES3 { 237 type integer 238 } 239 type hooks 240 slave.pcm { 241 type hw 242 card $CARD 243 } 244 hooks.0 { 245 type ctl_elems 246 hook_args [ 247 { 248 name "IEC958 Front Playback Volume" 249 index 0 250 lock true 251 preserve true 252 value [ 207 207 ] # Puts 0x30303030 in the Volume register. 0xff - 0x30 = 0xcf = 207 253 } 254 { 255 name "IEC958 Playback Switch" 256 lock true 257 preserve true 258 value 1 259 } 260 { 261 interface PCM 262 name "IEC958 Playback Default" 263 index 1 264 lock true 265 preserve true 266 optional true 267 value [ $AES0 $AES1 $AES2 $AES3 ] 268 } 269 { 270 # for compatibility with older drivers 271 name "IEC958 Playback Default" 272 index 1 273 lock true 274 preserve true 275 optional true 276 value [ $AES0 $AES1 $AES2 $AES3 ] 277 } 278 ] 279 } 280} 281