#
# Example configuration for Lenovo ThinkPad P1 Gen2
#

#
# Use regex match for the string read from the given sysfs path
#
# The sysfs root directory (/sys) is hardwired in the test code
# (may be changed on demand).
#
# All strings must match.
#
sysfs [
	{
		path "class/dmi/id/product_sku"
		regex "LENOVO_MT_20QU_BU_Think_FM_ThinkPad P1 Gen 2"
	}
]

card.hda {
	#
	# Use regex match for the /sys/class/sound/card*/ tree (relative)
	#
	sysfs [
		{
			path "device/subsystem_device"
			regex "0x229e"
		}
		{
			path "device/subsystem_vendor"
			regex "0x17aa"
		}
	]

	#
	# PCM configuration
	#
	# pcm.0.0 - device 0 subdevice 0
	#
	pcm.0.0 {
		PLAYBACK {
			test.time1 {
				access RW_INTERLEAVED	# can be omitted - default
				format S16_LE		# can be omitted - default
				rate 48000		# can be omitted - default
				channels 2		# can be omitted - default
				period_size 512
				buffer_size 4096
			}
			test.time2 {
				access RW_INTERLEAVED
				format S16_LE
				rate 48000
				channels 2
				period_size 24000
				buffer_size 192000
			}
			test.time3 {
				access RW_INTERLEAVED
				format S16_LE
				rate 44100
				channels 2
				period_size 24000
				buffer_size 192000
			}
		}
		CAPTURE {
			# use default tests, check for the presence
		}
	}
	#
	# uncomment to force the missing device checks
	#
	#pcm.0.2 {
	#	PLAYBACK {
	#		# check for the presence
	#	}
	#}
	#pcm.0.3 {
	#	CAPTURE {
	#		# check for the presence
	#	}
	#}
}
