# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/cirrus,cs42l43.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Cirrus Logic CS42L43 Audio CODEC

maintainers:
  - patches@opensource.cirrus.com

description: |
  The CS42L43 is an audio CODEC with integrated MIPI SoundWire interface
  (Version 1.2.1 compliant), I2C, SPI, and I2S/TDM interfaces designed
  for portable applications. It provides a high dynamic range, stereo
  DAC for headphone output, two integrated Class D amplifiers for
  loudspeakers, and two ADCs for wired headset microphone input or
  stereo line input. PDM inputs are provided for digital microphones.

allOf:
  - $ref: dai-common.yaml#

properties:
  compatible:
    enum:
      - cirrus,cs42l43

  reg:
    maxItems: 1

  vdd-p-supply:
    description:
      Power supply for the high voltage interface.

  vdd-a-supply:
    description:
      Power supply for internal analog circuits.

  vdd-d-supply:
    description:
      Power supply for internal digital circuits. Can be internally supplied.

  vdd-io-supply:
    description:
      Power supply for external interface and internal digital logic.

  vdd-cp-supply:
    description:
      Power supply for the amplifier 3 and 4 charge pump.

  vdd-amp-supply:
    description:
      Power supply for amplifier 1 and 2.

  reset-gpios:
    maxItems: 1

  interrupt-controller: true

  "#interrupt-cells":
    const: 2

  interrupts:
    maxItems: 1

  "#sound-dai-cells":
    const: 1

  clocks:
    items:
      - description: Synchronous audio clock provided on mclk_in.

  clock-names:
    const: mclk

  cirrus,bias-low:
    type: boolean
    description:
      Select a 1.8V headset micbias rather than 2.8V.

  cirrus,bias-sense-microamp:
    description:
      Current at which the headset micbias sense clamp will engage, 0 to
      disable.
    enum: [ 0, 14, 24, 43, 52, 61, 71, 90, 99 ]
    default: 14

  cirrus,bias-ramp-ms:
    description:
      Time in milliseconds the hardware allows for the headset micbias to
      ramp up.
    enum: [ 10, 40, 90, 170 ]
    default: 170

  cirrus,detect-us:
    description:
      Time in microseconds the type detection will run for. Long values will
      cause more audible effects, but give more accurate detection.
    enum: [ 20, 100, 1000, 10000, 50000, 75000, 100000, 200000 ]
    default: 1000

  cirrus,button-automute:
    type: boolean
    description:
      Enable the hardware automuting of decimator 1 when a headset button is
      pressed.

  cirrus,buttons-ohms:
    description:
      Impedance in Ohms for each headset button, these should be listed in
      ascending order.
    minItems: 1
    maxItems: 6

  cirrus,tip-debounce-ms:
    description:
      Software debounce on tip sense triggering in milliseconds.
    default: 0

  cirrus,tip-invert:
    type: boolean
    description:
      Indicates tip detect polarity, inverted implies open-circuit whilst the
      jack is inserted.

  cirrus,tip-disable-pullup:
    type: boolean
    description:
      Indicates if the internal pullup on the tip detect should be disabled.

  cirrus,tip-fall-db-ms:
    description:
      Time in milliseconds a falling edge on the tip detect should be hardware
      debounced for. Note the falling edge is considered after the invert.
    enum: [ 0, 125, 250, 500, 750, 1000, 1250, 1500 ]
    default: 500

  cirrus,tip-rise-db-ms:
    description:
      Time in milliseconds a rising edge on the tip detect should be hardware
      debounced for. Note the rising edge is considered after the invert.
    enum: [ 0, 125, 250, 500, 750, 1000, 1250, 1500 ]
    default: 500

  cirrus,use-ring-sense:
    type: boolean
    description:
      Indicates if the ring sense should be used.

  cirrus,ring-invert:
    type: boolean
    description:
      Indicates ring detect polarity, inverted implies open-circuit whilst the
      jack is inserted.

  cirrus,ring-disable-pullup:
    type: boolean
    description:
      Indicates if the internal pullup on the ring detect should be disabled.

  cirrus,ring-fall-db-ms:
    description:
      Time in milliseconds a falling edge on the ring detect should be hardware
      debounced for. Note the falling edge is considered after the invert.
    enum: [ 0, 125, 250, 500, 750, 1000, 1250, 1500 ]
    default: 500

  cirrus,ring-rise-db-ms:
    description:
      Time in milliseconds a rising edge on the ring detect should be hardware
      debounced for. Note the rising edge is considered after the invert.
    enum: [ 0, 125, 250, 500, 750, 1000, 1250, 1500 ]
    default: 500

  pinctrl:
    type: object
    $ref: /schemas/pinctrl/pinctrl.yaml#
    additionalProperties: false

    properties:
      gpio-controller: true

      "#gpio-cells":
        const: 2

      gpio-ranges:
        items:
          - items:
              - description: A phandle to the CODEC pinctrl node
                minimum: 0
              - const: 0
              - const: 0
              - const: 3

    patternProperties:
      "-state$":
        oneOf:
          - $ref: "#/$defs/cirrus-cs42l43-state"
          - patternProperties:
              "-pins$":
                $ref: "#/$defs/cirrus-cs42l43-state"
            additionalProperties: false

  spi:
    type: object
    $ref: /schemas/spi/spi-controller.yaml#
    unevaluatedProperties: false

$defs:
  cirrus-cs42l43-state:
    type: object

    allOf:
      - $ref: /schemas/pinctrl/pincfg-node.yaml#
      - $ref: /schemas/pinctrl/pinmux-node.yaml#

    oneOf:
      - required: [ groups ]
      - required: [ pins ]

    additionalProperties: false

    properties:
      groups:
        enum: [ gpio1, gpio2, gpio3, asp, pdmout2, pdmout1, i2c, spi ]

      pins:
        enum: [ gpio1, gpio2, gpio3,
                asp_dout, asp_fsync, asp_bclk,
                pdmout2_clk, pdmout2_data, pdmout1_clk, pdmout1_data,
                i2c_sda, i2c_scl,
                spi_miso, spi_sck, spi_ssb ]

      function:
        enum: [ gpio, spdif, irq, mic-shutter, spk-shutter ]

      drive-strength:
        description: Set drive strength in mA
        enum: [ 1, 2, 4, 8, 9, 10, 12, 16 ]

      input-debounce:
        description: Set input debounce in uS
        enum: [ 0, 85 ]

required:
  - compatible
  - reg
  - vdd-p-supply
  - vdd-a-supply
  - vdd-io-supply
  - vdd-cp-supply

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>

    i2c {
        #address-cells = <1>;
        #size-cells = <0>;

        cs42l43: codec@1a {
            compatible = "cirrus,cs42l43";
            reg = <0x1a>;

            vdd-p-supply = <&vdd5v0>;
            vdd-a-supply = <&vdd1v8>;
            vdd-io-supply = <&vdd1v8>;
            vdd-cp-supply = <&vdd1v8>;
            vdd-amp-supply = <&vdd5v0>;

            reset-gpios = <&gpio 0>;

            interrupt-controller;
            #interrupt-cells = <2>;
            interrupt-parent = <&gpio>;
            interrupts = <56 IRQ_TYPE_LEVEL_LOW>;

            #sound-dai-cells = <1>;

            clocks = <&clks 0>;
            clock-names = "mclk";

            cs42l43_pins: pinctrl {
                gpio-controller;
                #gpio-cells = <2>;
                gpio-ranges = <&cs42l43_pins 0 0 3>;

                pinctrl-names = "default";
                pinctrl-0 = <&pinsettings>;

                pinsettings: default-state {
                    shutter-pins {
                        groups = "gpio3";
                        function = "mic-shutter";
                    };
                };
            };

            spi {
                #address-cells = <1>;
                #size-cells = <0>;

                cs-gpios = <&cs42l43_pins 1 0>;

                sensor@0 {
                    compatible = "bosch,bme680";
                    reg = <0>;
                    spi-max-frequency = <1400000>;
                };
            };
        };
    };
