1# 2# Configuration for the CS46xx chip 3# 4 5<confdir:pcm/front.conf> 6 7CS46xx.pcm.front.0 { 8 @args [ CARD ] 9 @args.CARD { 10 type string 11 } 12 type hw 13 card $CARD 14} 15 16# default with plughw 17# CS46xx supports multi-playback 18CS46xx.pcm.default { 19 @args [ CARD ] 20 @args.CARD { 21 type string 22 } 23 type asym 24 playback.pcm { 25 type plug 26 slave.pcm { 27 @func concat 28 strings [ "hw:" $CARD ] 29 } 30 } 31 capture.pcm { 32 type plug 33 slave.pcm { 34 @func concat 35 strings [ "hw:" $CARD ] 36 } 37 } 38} 39 40<confdir:pcm/rear.conf> 41 42CS46xx.pcm.rear.0 { 43 @args [ CARD ] 44 @args.CARD { 45 type string 46 } 47 type hooks 48 slave.pcm { 49 type hw 50 card $CARD 51 device 1 52 } 53 hooks.0 { 54 type ctl_elems 55 hook_args [ 56 { 57 name "Duplicate Front" 58 lock true 59 preserve true 60 value 0 61 optional true 62 } 63 ] 64 } 65} 66 67<confdir:pcm/center_lfe.conf> 68 69CS46xx.pcm.center_lfe.0 { 70 @args [ CARD ] 71 @args.CARD { 72 type string 73 } 74 type hw 75 card $CARD 76 device 3 77} 78 79<confdir:pcm/surround40.conf> 80 81CS46xx.pcm.surround40.0 { 82 @args [ CARD ] 83 @args.CARD { 84 type string 85 } 86 type multi 87 slaves [ 88 { 89 pcm { 90 @func concat 91 strings [ 92 "cards.CS46xx.pcm.front.0:CARD=" $CARD 93 ] 94 } 95 channels 2 96 } 97 { 98 pcm { 99 @func concat 100 strings [ 101 "cards.CS46xx.pcm.rear.0:CARD=" $CARD 102 ] 103 } 104 channels 2 105 } 106 ] 107 bindings [ 108 { slave 0 channel 0 } 109 { slave 0 channel 1 } 110 { slave 1 channel 0 } 111 { slave 1 channel 1 } 112 ] 113} 114 115<confdir:pcm/surround21.conf> 116<confdir:pcm/surround41.conf> 117<confdir:pcm/surround50.conf> 118<confdir:pcm/surround51.conf> 119 120CS46xx.pcm.surround51.0 { 121 @args [ CARD ] 122 @args.CARD { 123 type string 124 } 125 type multi 126 slaves [ 127 { 128 pcm { 129 @func concat 130 strings [ 131 "cards.CS46xx.pcm.front.0:CARD=" $CARD 132 ] 133 } 134 channels 2 135 } 136 { 137 pcm { 138 @func concat 139 strings [ 140 "cards.CS46xx.pcm.rear.0:CARD=" $CARD 141 ] 142 } 143 channels 2 144 } 145 { 146 pcm { 147 @func concat 148 strings [ 149 "cards.CS46xx.pcm.center_lfe.0:CARD=" $CARD 150 ] 151 } 152 channels 2 153 } 154 ] 155 bindings [ 156 { slave 0 channel 0 } 157 { slave 0 channel 1 } 158 { slave 1 channel 0 } 159 { slave 1 channel 1 } 160 { slave 2 channel 0 } 161 { slave 2 channel 1 } 162 ] 163} 164 165<confdir:pcm/iec958.conf> 166 167CS46xx.pcm.iec958.0 { 168 @args [ CARD AES0 AES1 AES2 AES3 ] 169 @args.CARD { 170 type string 171 } 172 @args.AES0 { 173 type integer 174 } 175 @args.AES1 { 176 type integer 177 } 178 @args.AES2 { 179 type integer 180 } 181 @args.AES3 { 182 type integer 183 } 184 type hooks 185 slave.pcm { 186 type hw 187 card $CARD 188 device 2 189 } 190 hooks.0 { 191 type ctl_elems 192 hook_args [ 193 { 194 name "IEC958 Output Switch" 195 lock true 196 preserve true 197 value 1 198 } 199 { 200 interface PCM 201 name "IEC958 Playback PCM Stream" 202 device 2 203 lock true 204 preserve true 205 optional true 206 value [ $AES0 $AES1 $AES2 $AES3 ] 207 } 208 { 209 # for compatibility with older drivers 210 interface PCM 211 name "IEC958 Playback PCM Stream" 212 lock true 213 preserve true 214 optional true 215 value [ $AES0 $AES1 $AES2 $AES3 ] 216 } 217 ] 218 } 219} 220