mirror of
https://github.com/torvalds/linux.git
synced 2026-04-24 17:42:27 -04:00
Change the listed examples to use more generic node names, representing the class of the device nodes: - apr-service@<id> - dai@<id> Both names are already in use in arch/arm64/boot/dts/qcom/sdm845.dtsi. Also add #address-cells + #size-cells to the q6asm example, without them the example produces dtc warnings. Signed-off-by: Stephan Gerhold <stephan@gerhold.net> Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Link: https://lore.kernel.org/r/20200415081159.1098-1-stephan@gerhold.net Signed-off-by: Mark Brown <broonie@kernel.org>
179 lines
3.8 KiB
Plaintext
179 lines
3.8 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 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>;
|
|
};
|
|
};
|
|
};
|