Re: [PATCH v2 1/2] ASoC: qcom: dt-bindings: Add sc7180 machine bindings

From: Srinivas Kandagatla
Date: Wed Jul 22 2020 - 05:25:27 EST




On 21/07/2020 11:44, Cheng-Yi Chiang wrote:
Add devicetree bindings documentation file for sc7180 sound card.

Signed-off-by: Cheng-Yi Chiang <cychiang@xxxxxxxxxxxx>
---
.../bindings/sound/qcom,sc7180.yaml | 130 ++++++++++++++++++
1 file changed, 130 insertions(+)
create mode 100644 Documentation/devicetree/bindings/sound/qcom,sc7180.yaml

diff --git a/Documentation/devicetree/bindings/sound/qcom,sc7180.yaml b/Documentation/devicetree/bindings/sound/qcom,sc7180.yaml
new file mode 100644
index 000000000000..82f9483276eb
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/qcom,sc7180.yaml
@@ -0,0 +1,130 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/qcom,sc7180.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Technologies Inc. SC7180 ASoC sound card driver
+
+maintainers:
+ - Rohit kumar <rohitkr@xxxxxxxxxxxxxx>
+ - Cheng-Yi Chiang <cychiang@xxxxxxxxxxxx>
+
+description:
+ This binding describes the SC7180 sound card which uses LPASS for audio.
+
+definitions:
+
+ dai:
+ type: object
+ properties:
+ sound-dai:
+ maxItems: 1
+ $ref: /schemas/types.yaml#/definitions/phandle-array
+ description: phandle array of the codec or CPU DAI
+
+ required:
+ - sound-dai
+
+properties:
+ compatible:
+ contains:
+ const: qcom,sc7180-sndcard
+
+ audio-routing:
+ $ref: /schemas/types.yaml#/definitions/non-unique-string-array
+ description:
+ A list of the connections between audio components. Each entry is a
+ pair of strings, the first being the connection's sink, the second
+ being the connection's source.
+
+ model:
+ $ref: /schemas/types.yaml#/definitions/string
+ description: User specified audio sound card name
+
+ aux-dev:
+ $ref: /schemas/types.yaml#/definitions/phandle
+ description: phandle of the codec for headset detection


Why do we need this? You should be able to set the jack for codec snd_soc_component_set_jack()?


+
+patternProperties:
+ "^dai-link(@[0-9]+)?$":
+ description:
+ Each subnode represents a dai link. Subnodes of each dai links would be
+ cpu/codec dais.
+
+ type: object
+
+ properties:
+ link-name:
+ description: Indicates dai-link name and PCM stream name.
+ $ref: /schemas/types.yaml#/definitions/string
+ maxItems: 1
+
+ reg:
+ description: dai link address.
+ $ref: /schemas/types.yaml#/definitions/uint32
+ maxItems: 1

Why do we need this?? I have not seen the parsing code using this.


+
+ playback-only:
+ description: Specify that the dai link is only for playback.
+ $ref: /schemas/types.yaml#/definitions/flag
+
+ capture-only:
+ description: Specify that the dai link is only for capture.
+ $ref: /schemas/types.yaml#/definitions/flag
+

Are these because the cpu/codec dais are single directional?

If so you can extend snd_soc_dai_link_set_capabilities() and use this function.


--srini

+ cpu:
+ $ref: "#/definitions/dai"
+
+ codec:
+ $ref: "#/definitions/dai"
+
+ required:
+ - link-name
+ - reg
+ - cpu
+ - codec
+
+ additionalProperties: false
+
+examples:
+
+ - |
+ sound {
+ compatible = "qcom,sc7180-sndcard";
+ model = "sc7180-snd-card";
+
+ audio-routing =
+ "Headphone Jack", "HPOL",
+ "Headphone Jack", "HPOR";
+
+ aux-dev = <&alc5682>;
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ dai-link@0 {
+ reg = <0>;
+ link-name = "MultiMedia0";
+ cpu {
+ sound-dai = <&lpass_cpu 0>;
+ };
+
+ codec {
+ sound-dai = <&alc5682 0>;
+ };
+ };
+
+ dai-link@1 {
+ reg = <1>;
+ link-name = "MultiMedia1";
+ playback-only;
+ cpu {
+ sound-dai = <&lpass_cpu 1>;
+ };
+
+ codec {
+ sound-dai = <&max98357a>;
+ };
+ };
+ };