179 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			179 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
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 1-4 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
 | 
						|
 | 
						|
q6afe@4 {
 | 
						|
	compatible = "qcom,q6afe";
 | 
						|
	reg = <APR_SVC_AFE>;
 | 
						|
 | 
						|
	dais {
 | 
						|
		compatible = "qcom,q6afe-dais";
 | 
						|
		#sound-dai-cells = <1>;
 | 
						|
		#address-cells = <1>;
 | 
						|
		#size-cells = <0>;
 | 
						|
 | 
						|
		hdmi@1 {
 | 
						|
			reg = <1>;
 | 
						|
		};
 | 
						|
 | 
						|
		tdm@24 {
 | 
						|
			reg = <24>;
 | 
						|
			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>;
 | 
						|
 | 
						|
		};
 | 
						|
 | 
						|
		tdm@25 {
 | 
						|
			reg = <25>;
 | 
						|
			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>;
 | 
						|
		};
 | 
						|
 | 
						|
		prim-mi2s-rx@16 {
 | 
						|
			reg = <16>;
 | 
						|
			qcom,sd-lines = <1 3>;
 | 
						|
		};
 | 
						|
 | 
						|
		prim-mi2s-tx@17 {
 | 
						|
			reg = <17>;
 | 
						|
			qcom,sd-lines = <2>;
 | 
						|
		};
 | 
						|
 | 
						|
		sec-mi2s-rx@18 {
 | 
						|
			reg = <18>;
 | 
						|
			qcom,sd-lines = <1 4>;
 | 
						|
		};
 | 
						|
 | 
						|
		sec-mi2s-tx@19 {
 | 
						|
			reg = <19>;
 | 
						|
			qcom,sd-lines = <2>;
 | 
						|
		};
 | 
						|
 | 
						|
		tert-mi2s-rx@20 {
 | 
						|
			reg = <20>;
 | 
						|
			qcom,sd-lines = <2 4>;
 | 
						|
		};
 | 
						|
 | 
						|
		tert-mi2s-tx@21 {
 | 
						|
			reg = <21>;
 | 
						|
			qcom,sd-lines = <1>;
 | 
						|
		};
 | 
						|
 | 
						|
		quat-mi2s-rx@22 {
 | 
						|
			reg = <22>;
 | 
						|
			qcom,sd-lines = <1>;
 | 
						|
		};
 | 
						|
 | 
						|
		quat-mi2s-tx@23 {
 | 
						|
			reg = <23>;
 | 
						|
			qcom,sd-lines = <2>;
 | 
						|
		};
 | 
						|
	};
 | 
						|
};
 |