Unverified Commit 631b8a8b authored by Krzysztof Kozlowski's avatar Krzysztof Kozlowski Committed by Mark Brown
Browse files

ASoC: dt-bindings: qcom,wcd9335: Convert to dtschema



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: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20230220095643.64898-2-krzysztof.kozlowski@linaro.org


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 0106ba24
Loading
Loading
Loading
Loading
+0 −123
Original line number Diff line number Diff line
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>;
}
+156 −0
Original line number Diff line number Diff line
# 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>;
    };