defaults.pcm.surround40.device defaults.pcm.device
defaults.pcm.surround51.card defaults.pcm.card
defaults.pcm.surround51.device defaults.pcm.device
+defaults.pcm.iec958.card defaults.pcm.card
+defaults.pcm.iec958.device defaults.pcm.device
defaults.rawmidi.card 0
defaults.rawmidi.device 0
defaults.rawmidi.subdevice -1
pcm.center_lfe cards.pcm.center_lfe
pcm.surround40 cards.pcm.surround40
pcm.surround51 cards.pcm.surround51
+pcm.iec958 cards.pcm.iec958
+pcm.spdif cards.pcm.iec958
#
# Control interface
# Configuration for the CMIPCI chip
#
-CMIPCI.pcm.front.0 {
+<confdir:pcm/front.conf>
+
+CMI8738.pcm.front.0 {
@args [ CARD ]
@args.CARD {
type string
device 0
}
+<confdir:pcm/rear.conf>
+
# 2nd DAC
# FIXME: we need a volume attenuator for rear channel.
-CMIPCI.pcm.rear.0 {
+CMI8738.pcm.rear.0 {
@args [ CARD ]
@args.CARD {
type string
device 1
}
-# for the recent CM8738 chips
-# cards.CMIPCI.pcm.surround40.0 "cards.CMIPCI.pcm.front.0"
-CMIPCI.pcm.surround51.0 "cards.CMIPCI.pcm.front.0"
+<confdir:pcm/surround40.conf>
# for the old CM8738 with 2nd DAC for rear
-CMIPCI.pcm.surround40.0 {
+CMI8738.pcm.surround40.0 {
@args [ CARD ]
@args.CARD {
type string
pcm {
@func concat
strings [
- "cards.CMIPCI.pcm.front.0:CARD=" $CARD
+ "cards.CMI8738.pcm.front.0:CARD=" $CARD
]
}
channels 2
pcm {
@func concat
strings [
- "cards.CMIPCI.pcm.rear.0:CARD=" $CARD
+ "cards.CMI8738.pcm.rear.0:CARD=" $CARD
]
}
channels 2
]
}
+# for the recent CM8738 chips
+# cards.CMI8738.pcm.surround40.0 "cards.CMI8738.pcm.front.0"
+
+
+<confdir:pcm/surround51.conf>
+
+CMI8738.pcm.surround51.0 "cards.CMI8738.pcm.front.0"
-CMIPCI.pcm.iec958.0 {
+<confdir:pcm/iec958.conf>
+
+CMI8738.pcm.iec958.0 {
@args [ CARD DEV AES0 AES1 AES2 AES3 ]
@args.CARD {
type string
type integer
}
type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ device 2
+ }
hooks.0 {
type ctl_elems
hook_args [
- {
- name "IEC958 Enable"
- value 1
- lock true
- preserve true
- }
{
interface PCM
name "IEC958 Playback PCM Stream"
+ device 2
lock true
preserve true
value [ $AES0 $AES1 $AES2 $AES3 ]
--- /dev/null
+#
+# Hardware output from iec958
+#
+
+pcm.!iec958 {
+ @args [ CARD DEV AES0 AES1 AES2 AES3 ]
+ @args.CARD {
+ type string
+ default {
+ @func getenv
+ vars [
+ ALSA_IEC958_CARD
+ ALSA_PCM_CARD
+ ALSA_CARD
+ ]
+ default {
+ @func refer
+ name defaults.pcm.iec958.card
+ }
+ }
+ }
+ @args.DEV {
+ type integer
+ default {
+ @func igetenv
+ vars [
+ ALSA_IEC958_DEVICE
+ ]
+ default {
+ @func refer
+ name defaults.pcm.iec958.device
+ }
+ }
+ }
+ @args.AES0 {
+ type integer
+ # consumer, not-copyright, emphasis-none, mode=0
+ default 0x04
+ }
+ @args.AES1 {
+ type integer
+ # original, PCM coder
+ default 0x82
+ }
+ @args.AES2 {
+ type integer
+ # source and channel
+ default 0x00
+ }
+ @args.AES3 {
+ type integer
+ # fs=48000Hz, clock accuracy=1000ppm
+ default 0x02
+ }
+ @func refer
+ name {
+ @func concat
+ strings [
+ "cards."
+ {
+ @func card_strtype
+ card $CARD
+ }
+ ".pcm.iec958." $DEV ":"
+ "CARD=" $CARD ","
+ "AES0=" $AES0 ","
+ "AES1=" $AES1 ","
+ "AES2=" $AES2 ","
+ "AES3=" $AES3
+ ]
+ }
+}