Unverified Commit 6ad2ef65 authored by Srinivas Kandagatla's avatar Srinivas Kandagatla Committed by Mark Brown
Browse files

ASoC: qdsp6: dt-bindings: Add q6afe dt bindings



This patch add DT bindings for AFE (Audio Frontend) DSP module.

Signed-off-by: default avatarSrinivas Kandagatla <srinivas.kandagatla@linaro.org>
Reviewed-and-tested-by: default avatarRohit kumar <rohitkr@codeaurora.org>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Reviewed-by: default avatarBanajit Goswami <bgoswami@codeaurora.org>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 8c943ef1
Loading
Loading
Loading
Loading
+104 −0
Original line number Diff line number Diff line
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.

= 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>;
		};

		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>;
		};
	};
};
+31 −0
Original line number Diff line number Diff line
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef __DT_BINDINGS_Q6_AFE_H__
#define __DT_BINDINGS_Q6_AFE_H__

/* Audio Front End (AFE) virtual ports IDs */
#define HDMI_RX		1
#define SLIMBUS_0_RX    2
#define SLIMBUS_0_TX    3
#define SLIMBUS_1_RX    4
#define SLIMBUS_1_TX    5
#define SLIMBUS_2_RX    6
#define SLIMBUS_2_TX    7
#define SLIMBUS_3_RX    8
#define SLIMBUS_3_TX    9
#define SLIMBUS_4_RX    10
#define SLIMBUS_4_TX    11
#define SLIMBUS_5_RX    12
#define SLIMBUS_5_TX    13
#define SLIMBUS_6_RX    14
#define SLIMBUS_6_TX    15
#define PRIMARY_MI2S_RX		16
#define PRIMARY_MI2S_TX		17
#define SECONDARY_MI2S_RX	18
#define SECONDARY_MI2S_TX	19
#define TERTIARY_MI2S_RX	20
#define TERTIARY_MI2S_TX	21
#define QUATERNARY_MI2S_RX	22
#define QUATERNARY_MI2S_TX	23

#endif /* __DT_BINDINGS_Q6_AFE_H__ */