2018-05-09 20:56:15 +08:00
|
|
|
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.
|
|
|
|
|
|
|
|
- #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.
|
|
|
|
|
2018-05-29 18:18:28 +08:00
|
|
|
- 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
|
|
|
|
|
2018-05-09 20:56:15 +08:00
|
|
|
= EXAMPLE
|
|
|
|
|
|
|
|
q6afe@4 {
|
|
|
|
compatible = "qcom,q6afe";
|
|
|
|
reg = <APR_SVC_AFE>;
|
|
|
|
|
|
|
|
dais {
|
|
|
|
#sound-dai-cells = <1>;
|
|
|
|
#address-cells = <1>;
|
|
|
|
#size-cells = <0>;
|
|
|
|
|
|
|
|
hdmi@1 {
|
|
|
|
reg = <1>;
|
|
|
|
};
|
|
|
|
|
2018-05-29 18:18:28 +08:00
|
|
|
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>;
|
|
|
|
};
|
|
|
|
|
2018-05-09 20:56:15 +08:00
|
|
|
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>;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|