#
# Configuration for the CMI8768 chip with 8 multi-channel support
#

<confdir:pcm/front.conf>

CMI8738-MC8.pcm.front.0 {
	@args [ CARD ]
	@args.CARD {
		type string
	}
	type softvol
	slave.pcm {
		type hw
		card $CARD
	}
	control {
		name "PCM Playback Volume"
		card $CARD
	}
}	

# default with dmix+softvol & dsnoop
CMI8738-MC8.pcm.default {
	@args [ CARD ]
	@args.CARD {
		type string
	}
	type asym
	playback.pcm {
		type plug
		slave.pcm {
			type softvol
			slave.pcm {
				@func concat
				strings [ "dmix:" $CARD ]
			}
			control {
				name "PCM Playback Volume"
				card $CARD
			}
		}
	}
	capture.pcm {
		type plug
		slave.pcm {
			@func concat
			strings [ "dsnoop:" $CARD ]
		}
	}
}

<confdir:pcm/rear.conf>

# 2nd DAC
CMI8738-MC8.pcm.rear.0 {
	@args [ CARD ]
	@args.CARD {
		type string
	}
	type softvol
	slave.pcm {
		type hw
		card $CARD
		device 1
	}
	control {
		name "PCM Playback Volume"
		card $CARD
	}
}

<confdir:pcm/surround40.conf>

CMI8738-MC8.pcm.surround40.0 {
	@args [ CARD ]
	@args.CARD {
		type string
	}
	type softvol
	slave.pcm {
		type hooks
		slave.pcm {
			type hw
			card $CARD
			device 1
			channels 4
		}
		hooks.0 {
			type ctl_elems
			hook_args [
			{
				name "Four Channel Mode"
				lock true
				preserve true
				value false
			}
			]
		}
	}
	control {
		name "PCM Playback Volume"
		card $CARD
	}
}	


<confdir:pcm/surround41.conf>
<confdir:pcm/surround50.conf>
<confdir:pcm/surround51.conf>

CMI8738-MC8.pcm.surround51.0 {
	@args [ CARD ]
	@args.CARD {
		type string
	}
	type softvol
	slave.pcm {
		type hooks
		slave.pcm {
			type hw
			card $CARD
			device 1
			channels 6
		}
		hooks.0 {
			type ctl_elems
			hook_args [
			{
				name "Four Channel Mode"
				lock true
				preserve true
				value false
			}
			]
		}
	}
	control {
		name "PCM Playback Volume"
		card $CARD
	}
}	

<confdir:pcm/surround71.conf>

CMI8738-MC8.pcm.surround71.0 {
	@args [ CARD ]
	@args.CARD {
		type string
	}
	type softvol
	slave.pcm {
		type hooks
		slave.pcm {
			type hw
			card $CARD
			device 1
			channels 8
		}
		hooks.0 {
			type ctl_elems
			hook_args [
			{
				name "Four Channel Mode"
				lock true
				preserve true
				value false
			}
			]
		}
	}
	control {
		name "PCM Playback Volume"
		card $CARD
	}
}	

<confdir:pcm/iec958.conf>

CMI8738-MC8.pcm.iec958.0 {
	@args [ CARD AES0 AES1 AES2 AES3 ]
	@args.CARD {
		type string
	}
	@args.AES0 {
		type integer
	}
	@args.AES1 {
		type integer
	}
	@args.AES2 {
		type integer
	}
	@args.AES3 {
		type integer
	}
	type asym
	playback.pcm {
		type hooks
		slave.pcm {
			type hw
			card $CARD
			device 2
		}
		hooks.0 {
			type ctl_elems
			hook_args [
				{
					interface PCM
					name "IEC958 Playback PCM Stream"
					device 2
					lock true
					preserve true
					value [ $AES0 $AES1 $AES2 $AES3 ]
				}
				{
					name "IEC958 Loop"
					lock true
					preserve true
					value off
				}
			]
		}
	}
	capture.pcm {
		type hw
		card $CARD
		device 2
	}
}
