Qualcomm Audio Front End (Q6AFE) binding

AFE 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 all apr services. Must contain the following properties.

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

= AFE DAIs (Digial Audio Interface)
"dais" subnode of the AFE node. It represents afe dais, each afe dai is a
subnode of "dais" representing board specific dai setup.
"dais" node should have following properties followed by dai children.

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

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

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

- #size-cells
	Usage: required
	Value type: <u32>
	Definition: Must be 0

== AFE 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

- qcom,sd-lines
	Usage: required for mi2s interface
	Value type: <prop-encoded-array>
	Definition: Must be list of serial data lines used by this dai.
	should be one or more of the 0-3 sd lines.

 - qcom,tdm-sync-mode:
	Usage: required for tdm interface
	Value type: <prop-encoded-array>
	Definition: Synchronization mode.
		0 - Short sync bit mode
		1 - Long sync mode
		2 - Short sync slot mode

 - qcom,tdm-sync-src:
	Usage: required for tdm interface
	Value type: <prop-encoded-array>
	Definition: Synchronization source.
		0 - External source
		1 - Internal source

 - qcom,tdm-data-out:
	Usage: required for tdm interface
	Value type: <prop-encoded-array>
	Definition: Data out signal to drive with other masters.
		0 - Disable
		1 - Enable

 - qcom,tdm-invert-sync:
	Usage: required for tdm interface
	Value type: <prop-encoded-array>
	Definition: Invert the sync.
		0 - Normal
		1 - Invert

 - qcom,tdm-data-delay:
	Usage: required for tdm interface
	Value type: <prop-encoded-array>
	Definition: Number of bit clock to delay data
		with respect to sync edge.
		0 - 0 bit clock cycle
		1 - 1 bit clock cycle
		2 - 2 bit clock cycle

 - qcom,tdm-data-align:
	Usage: required for tdm interface
	Value type: <prop-encoded-array>
	Definition: Indicate how data is packed
		within the slot. For example, 32 slot width in case of
		sample bit width is 24.
		0 - MSB
		1 - LSB

= EXAMPLE

apr-service@4 {
	compatible = "qcom,q6afe";
	reg = <APR_SVC_AFE>;

	dais {
		compatible = "qcom,q6afe-dais";
		#sound-dai-cells = <1>;
		#address-cells = <1>;
		#size-cells = <0>;

		dai@1 {
			reg = <HDMI_RX>;
		};

		dai@24 {
			reg = <PRIMARY_TDM_RX_0>;
			qcom,tdm-sync-mode = <1>:
			qcom,tdm-sync-src = <1>;
			qcom,tdm-data-out = <0>;
			qcom,tdm-invert-sync = <1>;
			qcom,tdm-data-delay = <1>;
			qcom,tdm-data-align = <0>;

		};

		dai@25 {
			reg = <PRIMARY_TDM_TX_0>;
			qcom,tdm-sync-mode = <1>:
			qcom,tdm-sync-src = <1>;
			qcom,tdm-data-out = <0>;
			qcom,tdm-invert-sync = <1>;
			qcom,tdm-data-delay <1>:
			qcom,tdm-data-align = <0>;
		};

		dai@16 {
			reg = <PRIMARY_MI2S_RX>;
			qcom,sd-lines = <0 2>;
		};

		dai@17 {
			reg = <PRIMARY_MI2S_TX>;
			qcom,sd-lines = <1>;
		};

		dai@18 {
			reg = <SECONDARY_MI2S_RX>;
			qcom,sd-lines = <0 3>;
		};

		dai@19 {
			reg = <SECONDARY_MI2S_TX>;
			qcom,sd-lines = <1>;
		};

		dai@20 {
			reg = <TERTIARY_MI2S_RX>;
			qcom,sd-lines = <1 3>;
		};

		dai@21 {
			reg = <TERTIARY_MI2S_TX>;
			qcom,sd-lines = <0>;
		};

		dai@22 {
			reg = <QUATERNARY_MI2S_RX>;
			qcom,sd-lines = <0>;
		};

		dai@23 {
			reg = <QUATERNARY_MI2S_TX>;
			qcom,sd-lines = <1>;
		};
	};
};
