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