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:
Definition: must be “qcom,q6afe-v. “ 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.
#sound-dai-cells
Usage: required
Value type:
Definition: Must be 1#address-cells
Usage: required
Value type:
Definition: Must be 1#size-cells
Usage: required
Value type:
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:
Definition: Must be dai idqcom,sd-lines
Usage: required for mi2s interface
Value type:
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:
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:
Definition: Synchronization source.0 - External source 1 - Internal source
qcom,tdm-data-out:
Usage: required for tdm interface
Value type:
Definition: Data out signal to drive with other masters.0 - Disable 1 - Enable
qcom,tdm-invert-sync:
Usage: required for tdm interface
Value type:
Definition: Invert the sync.0 - Normal 1 - Invert
qcom,tdm-data-delay:
Usage: required for tdm interface
Value type:
Definition: Number of bit clock to delay datawith 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:
Definition: Indicate how data is packedwithin 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 =
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>;
};
};
};