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/surround41.conf> 116<confdir:pcm/surround50.conf> 117<confdir:pcm/surround51.conf> 118 119CS46xx.pcm.surround51.0 { 120 @args [ CARD ] 121 @args.CARD { 122 type string 123 } 124 type multi 125 slaves [ 126 { 127 pcm { 128 @func concat 129 strings [ 130 "cards.CS46xx.pcm.front.0:CARD=" $CARD 131 ] 132 } 133 channels 2 134 } 135 { 136 pcm { 137 @func concat 138 strings [ 139 "cards.CS46xx.pcm.rear.0:CARD=" $CARD 140 ] 141 } 142 channels 2 143 } 144 { 145 pcm { 146 @func concat 147 strings [ 148 "cards.CS46xx.pcm.center_lfe.0:CARD=" $CARD 149 ] 150 } 151 channels 2 152 } 153 ] 154 bindings [ 155 { slave 0 channel 0 } 156 { slave 0 channel 1 } 157 { slave 1 channel 0 } 158 { slave 1 channel 1 } 159 { slave 2 channel 0 } 160 { slave 2 channel 1 } 161 ] 162} 163 164<confdir:pcm/iec958.conf> 165 166CS46xx.pcm.iec958.0 { 167 @args [ CARD AES0 AES1 AES2 AES3 ] 168 @args.CARD { 169 type string 170 } 171 @args.AES0 { 172 type integer 173 } 174 @args.AES1 { 175 type integer 176 } 177 @args.AES2 { 178 type integer 179 } 180 @args.AES3 { 181 type integer 182 } 183 type hooks 184 slave.pcm { 185 type hw 186 card $CARD 187 device 2 188 } 189 hooks.0 { 190 type ctl_elems 191 hook_args [ 192 { 193 name "IEC958 Output Switch" 194 lock true 195 preserve true 196 value 1 197 } 198 { 199 interface PCM 200 name "IEC958 Playback PCM Stream" 201 device 2 202 lock true 203 preserve true 204 optional true 205 value [ $AES0 $AES1 $AES2 $AES3 ] 206 } 207 { 208 # for compatibility with older drivers 209 interface PCM 210 name "IEC958 Playback PCM Stream" 211 lock true 212 preserve true 213 optional true 214 value [ $AES0 $AES1 $AES2 $AES3 ] 215 } 216 ] 217 } 218} 219