Qualcomm Audio Stream Manager (Q6ASM) binding

Q6ASM is one of the APR audio service on Q6DSP.
Please refer to qcom,apr.txt for details of the common apr service bindings
used by the apr service device.

- but must contain the following property:

- compatible:
	Usage: required
	Value type: <stringlist>
	Definition: must be "qcom,q6asm-v<MAJOR-NUMBER>.<MINOR-NUMBER>".
		    Or "qcom,q6asm" where the version number can be queried
		    from DSP.
		    example "qcom,q6asm-v2.0"

= ASM DAIs (Digial Audio Interface)
"dais" subnode of the ASM node represents dai specific configuration

- compatible:
	Usage: required
	Value type: <stringlist>
	Definition: must be "qcom,q6asm-dais".

- #sound-dai-cells
	Usage: required
	Value type: <u32>
	Definition: Must be 1

== ASM DAI is subnode of "dais" and represent a dai, it includes board specific
configuration of each dai. Must contain the following properties.

- reg
	Usage: required
	Value type: <u32>
	Definition: Must be dai id

- direction:
	Usage: Required for Compress offload dais
	Value type: <u32>
	Definition: Specifies the direction of the dai stream
			Q6ASM_DAI_TX_RX (0) for both tx and rx
			Q6ASM_DAI_TX (1) for only tx (Capture/Encode)
			Q6ASM_DAI_RX (2) for only rx (Playback/Decode)

- is-compress-dai:
	Usage: Required for Compress offload dais
	Value type: <boolean>
	Definition: present for Compress offload dais


= EXAMPLE
#include <dt-bindings/sound/qcom,q6asm.h>

apr-service@7 {
	compatible = "qcom,q6asm";
	reg = <APR_SVC_ASM>;
	q6asmdai: dais {
		compatible = "qcom,q6asm-dais";
		#address-cells = <1>;
		#size-cells = <0>;
		#sound-dai-cells = <1>;

		dai@0 {
			reg = <0>;
			direction = <Q6ASM_DAI_RX>;
			is-compress-dai;
		};
	};
};
