ASoC: dt-bindings: qcom,wcd9335: Convert to dtschema
authorKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Mon, 20 Feb 2023 09:56:43 +0000 (10:56 +0100)
committerMark Brown <broonie@kernel.org>
Sun, 5 Mar 2023 23:38:40 +0000 (23:38 +0000)
Convert the Qualcomm WCD9335 audio codec binding to DT schema.

Changes against original binding:
1. Drop "mclk2" from clocks as neither Linux driver nor DTS uses it.
2. Do not require vdd-micbias-supply as several DTS do not provide it.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20230220095643.64898-2-krzysztof.kozlowski@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Documentation/devicetree/bindings/sound/qcom,wcd9335.txt [deleted file]
Documentation/devicetree/bindings/sound/qcom,wcd9335.yaml [new file with mode: 0644]

diff --git a/Documentation/devicetree/bindings/sound/qcom,wcd9335.txt b/Documentation/devicetree/bindings/sound/qcom,wcd9335.txt
deleted file mode 100644 (file)
index 1f75fee..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-QCOM WCD9335 Codec
-
-Qualcomm WCD9335 Codec is a standalone Hi-Fi audio codec IC, supports
-Qualcomm Technologies, Inc. (QTI) multimedia solutions, including
-the MSM8996, MSM8976, and MSM8956 chipsets. It has in-built
-Soundwire controller, interrupt mux. It supports both I2S/I2C and
-SLIMbus audio interfaces.
-
-Required properties with SLIMbus Interface:
-
-- compatible:
-       Usage: required
-       Value type: <stringlist>
-       Definition: For SLIMbus interface it should be "slimMID,PID",
-                   textual representation of Manufacturer ID, Product Code,
-                   shall be in lower case hexadecimal with leading zeroes
-                   suppressed.  Refer to slimbus/bus.txt for details.
-                   Should be:
-                   "slim217,1a0" for MSM8996 and APQ8096 SoCs with SLIMbus.
-
-- reg
-       Usage: required
-       Value type: <u32 u32>
-       Definition: Should be ('Device index', 'Instance ID')
-
-- interrupts
-       Usage: required
-       Value type: <prop-encoded-array>
-       Definition: Interrupts via WCD INTR1 and INTR2 pins
-
-- interrupt-names:
-       Usage: required
-       Value type: <String array>
-       Definition: Interrupt names of WCD INTR1 and INTR2
-       Should be: "intr1", "intr2"
-
-- reset-gpios:
-       Usage: required
-       Value type: <String Array>
-       Definition: Reset gpio line
-
-- slim-ifc-dev:
-       Usage: required
-       Value type: <phandle>
-       Definition: SLIM interface device
-
-- clocks:
-       Usage: required
-       Value type: <prop-encoded-array>
-       Definition: See clock-bindings.txt section "consumers". List of
-                three clock specifiers for mclk, mclk2 and slimbus clock.
-
-- clock-names:
-       Usage: required
-       Value type: <string>
-       Definition: Must contain "mclk", "mclk2" and "slimbus" strings.
-
-- vdd-buck-supply:
-       Usage: required
-       Value type: <phandle>
-       Definition: Should contain a reference to the 1.8V buck supply
-
-- vdd-buck-sido-supply:
-       Usage: required
-       Value type: <phandle>
-       Definition: Should contain a reference to the 1.8V SIDO buck supply
-
-- vdd-rx-supply:
-       Usage: required
-       Value type: <phandle>
-       Definition: Should contain a reference to the 1.8V rx supply
-
-- vdd-tx-supply:
-       Usage: required
-       Value type: <phandle>
-       Definition: Should contain a reference to the 1.8V tx supply
-
-- vdd-vbat-supply:
-       Usage: Optional
-       Value type: <phandle>
-       Definition: Should contain a reference to the vbat supply
-
-- vdd-micbias-supply:
-       Usage: required
-       Value type: <phandle>
-       Definition: Should contain a reference to the micbias supply
-
-- vdd-io-supply:
-       Usage: required
-       Value type: <phandle>
-       Definition: Should contain a reference to the 1.8V io supply
-
-- interrupt-controller:
-       Usage: required
-       Definition: Indicating that this is a interrupt controller
-
-- #interrupt-cells:
-       Usage: required
-       Value type: <int>
-       Definition: should be 1
-
-#sound-dai-cells
-       Usage: required
-       Value type: <u32>
-       Definition: Must be 1
-
-audio-codec@1{
-       compatible = "slim217,1a0";
-       reg  = <1 0>;
-       interrupts = <&msmgpio 54 IRQ_TYPE_LEVEL_HIGH>;
-       interrupt-names = "intr2"
-       reset-gpios = <&msmgpio 64 GPIO_ACTIVE_LOW>;
-       slim-ifc-dev  = <&wc9335_ifd>;
-       clock-names = "mclk", "native";
-       clocks = <&rpmcc RPM_SMD_DIV_CLK1>,
-                <&rpmcc RPM_SMD_BB_CLK1>;
-       vdd-buck-supply = <&pm8994_s4>;
-       vdd-rx-supply = <&pm8994_s4>;
-       vdd-buck-sido-supply = <&pm8994_s4>;
-       vdd-tx-supply = <&pm8994_s4>;
-       vdd-io-supply = <&pm8994_s4>;
-       #sound-dai-cells = <1>;
-}
diff --git a/Documentation/devicetree/bindings/sound/qcom,wcd9335.yaml b/Documentation/devicetree/bindings/sound/qcom,wcd9335.yaml
new file mode 100644 (file)
index 0000000..34f8fe4
--- /dev/null
@@ -0,0 +1,156 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/qcom,wcd9335.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm WCD9335 Audio Codec
+
+maintainers:
+  - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
+
+description:
+  Qualcomm WCD9335 Codec is a standalone Hi-Fi audio codec IC with in-built
+  Soundwire controller and interrupt mux. It supports both I2S/I2C and SLIMbus
+  audio interfaces.
+
+properties:
+  compatible:
+    const: slim217,1a0
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 2
+
+  clock-names:
+    items:
+      - const: mclk
+      - const: slimbus
+
+  interrupts:
+    maxItems: 2
+
+  interrupt-names:
+    items:
+      - const: intr1
+      - const: intr2
+
+  interrupt-controller: true
+
+  '#interrupt-cells':
+    const: 1
+
+  reset-gpios:
+    maxItems: 1
+
+  slim-ifc-dev:
+    description: SLIM IFC device interface
+    $ref: /schemas/types.yaml#/definitions/phandle
+
+  '#sound-dai-cells':
+    const: 1
+
+  vdd-buck-supply:
+    description: 1.8V buck supply
+
+  vdd-buck-sido-supply:
+    description: 1.8V SIDO buck supply
+
+  vdd-io-supply:
+    description: 1.8V I/O supply
+
+  vdd-micbias-supply:
+    description: micbias supply
+
+  vdd-rx-supply:
+    description: 1.8V rx supply
+
+  vdd-tx-supply:
+    description: 1.8V tx supply
+
+  vdd-vbat-supply:
+    description: vbat supply
+
+required:
+  - compatible
+  - reg
+
+allOf:
+  - $ref: dai-common.yaml#
+  - if:
+      required:
+        - slim-ifc-dev
+    then:
+      required:
+        - clocks
+        - clock-names
+        - interrupts
+        - interrupt-names
+        - interrupt-controller
+        - '#interrupt-cells'
+        - reset-gpios
+        - slim-ifc-dev
+        - '#sound-dai-cells'
+        - vdd-buck-supply
+        - vdd-buck-sido-supply
+        - vdd-io-supply
+        - vdd-rx-supply
+        - vdd-tx-supply
+    else:
+      properties:
+        clocks: false
+        clock-names: false
+        interrupts: false
+        interrupt-names: false
+        interrupt-controller: false
+        '#interrupt-cells': false
+        reset-gpios: false
+        slim-ifc-dev: false
+        '#sound-dai-cells': false
+        vdd-buck-supply: false
+        vdd-buck-sido-supply: false
+        vdd-io-supply: false
+        vdd-micbias-supply: false
+        vdd-rx-supply: false
+        vdd-tx-supply: false
+        vdd-vbat-supply: false
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/qcom,rpmcc.h>
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    tasha_ifd: codec@0,0 {
+        compatible = "slim217,1a0";
+        reg = <0 0>;
+    };
+
+    codec@1,0 {
+        compatible = "slim217,1a0";
+        reg = <1 0>;
+
+        clock-names = "mclk", "slimbus";
+        clocks = <&div1_mclk>, <&rpmcc RPM_SMD_BB_CLK1>;
+
+        interrupt-parent = <&tlmm>;
+        interrupts = <54 IRQ_TYPE_LEVEL_HIGH>,
+                     <53 IRQ_TYPE_LEVEL_HIGH>;
+        interrupt-names = "intr1", "intr2";
+        interrupt-controller;
+        #interrupt-cells = <1>;
+
+        reset-gpios = <&tlmm 64 GPIO_ACTIVE_LOW>;
+        slim-ifc-dev = <&tasha_ifd>;
+        #sound-dai-cells = <1>;
+
+        vdd-buck-supply = <&vreg_s4a_1p8>;
+        vdd-buck-sido-supply = <&vreg_s4a_1p8>;
+        vdd-tx-supply = <&vreg_s4a_1p8>;
+        vdd-rx-supply = <&vreg_s4a_1p8>;
+        vdd-io-supply = <&vreg_s4a_1p8>;
+    };