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

title: Cirrus Logic CS42L42 audio CODEC

maintainers:
  - patches@opensource.cirrus.com

description:
  The CS42L42 is a low-power audio codec designed for portable applications.
  It provides a high-dynamic range, stereo DAC for audio playback and a mono
  high-dynamic-range ADC for audio capture. There is an integrated headset
  detection block.

properties:
  compatible:
    enum:
      - cirrus,cs42l42

  reg:
    description:
      The I2C address of the CS42L42.
    maxItems: 1

  VP-supply:
    description:
      VP power supply.

  VCP-supply:
    description:
      Charge pump power supply.

  VD_FILT-supply:
    description:
      FILT+ power supply.

  VL-supply:
    description:
      Logic power supply.

  VA-supply:
    description:
      Analog power supply.

  reset-gpios:
    description:
      This pin will be asserted and then deasserted to reset the
      CS42L42 before communication starts.
    maxItems: 1

  interrupts:
    description:
      Interrupt for CS42L42 IRQ line.
    maxItems: 1

  cirrus,ts-inv:
    description: |
      Sets the behaviour of the jack plug detect switch.

      0 - (Default) Shorted to tip when unplugged, open when plugged.
      This is "inverted tip sense (ITS)" in the datasheet.

      1 - Open when unplugged, shorted to tip when plugged.
      This is "normal tip sense (TS)" in the datasheet.

      The CS42L42_TS_INV_* defines are available for this.
    $ref: "/schemas/types.yaml#/definitions/uint32"
    minimum: 0
    maximum: 1

  cirrus,ts-dbnc-rise:
    description: |
      Debounce the rising edge of TIP_SENSE_PLUG. With no
      debounce, the tip sense pin might be noisy on a plug event.

      0 - 0ms
      1 - 125ms
      2 - 250ms
      3 - 500ms
      4 - 750ms
      5 - 1s (Default)
      6 - 1.25s
      7 - 1.5s

      The CS42L42_TS_DBNCE_* defines are available for this.
    $ref: "/schemas/types.yaml#/definitions/uint32"
    minimum: 0
    maximum: 7

  cirrus,ts-dbnc-fall:
    description: |
      Debounce the falling edge of TIP_SENSE_UNPLUG. With no
      debounce, the tip sense pin might be noisy on an unplug event.

      0 - 0ms
      1 - 125ms
      2 - 250ms
      3 - 500ms
      4 - 750ms
      5 - 1s (Default)
      6 - 1.25s
      7 - 1.5s

      The CS42L42_TS_DBNCE_* defines are available for this.
    $ref: "/schemas/types.yaml#/definitions/uint32"
    minimum: 0
    maximum: 7

  cirrus,btn-det-init-dbnce:
    description: |
      This sets how long to wait after enabling button detection
      interrupts before servicing button interrupts, to allow the
      HS bias time to settle. Value is in milliseconds.
      There may be erroneous button interrupts if this debounce time
      is too short.

      0ms - 200ms,
      Default = 100ms
    $ref: "/schemas/types.yaml#/definitions/uint32"
    minimum: 0
    maximum: 200

  cirrus,btn-det-event-dbnce:
    description: |
      This sets how long to wait after receiving a button press
      interrupt before processing it. Allows time for the button
      press to make a clean connection with the bias resistors.
      Value is in milliseconds.

      0ms - 20ms,
      Default = 10ms
    $ref: "/schemas/types.yaml#/definitions/uint32"
    minimum: 0
    maximum: 20

  cirrus,bias-lvls:
    description: |
      For a level-detect headset button scheme, each button will bias
      the mic pin to a certain voltage. To determine which button was
      pressed, the voltage is compared to sequential, decreasing
      voltages, until the compared voltage < bias voltage.
      For different hardware setups, a designer might want to tweak this.
      This is an array of descending values for the comparator voltage,
      given as percent of the HSBIAS voltage.

      Array of 4 values, each 0-63
      < x1 x2 x3 x4 >
      Default = < 15 8 4 1 >
    $ref: /schemas/types.yaml#/definitions/uint32-array
    minItems: 4
    maxItems: 4
    items:
      minimum: 0
      maximum: 63

  cirrus,hs-bias-ramp-rate:
    description: |
      If present this sets the rate that the HS bias should rise and fall.
      The actual rise and fall times depend on external hardware (the
      datasheet gives several rise and fall time examples).

      0 - Fast rise time; slow, load-dependent fall time
      1 - Fast
      2 - Slow (default)
      3 - Slowest

      The CS42L42_HSBIAS_RAMP_* defines are available for this.
    $ref: "/schemas/types.yaml#/definitions/uint32"
    minimum: 0
    maximum: 3

  cirrus,hs-bias-sense-disable:
    description: |
      If present the HSBIAS sense is disabled. Configures HSBIAS output
      current sense through the external 2.21-k resistor. HSBIAS_SENSE
      is a hardware feature to reduce the potential pop noise when the
      headset plug is removed slowly. But on some platforms ESD voltage
      will affect it causing plug detection to fail, especially with CTIA
      headset type. For different hardware setups, a designer might want
      to tweak default behavior.
    type: boolean

required:
  - compatible
  - reg
  - VP-supply
  - VCP-supply
  - VD_FILT-supply
  - VL-supply
  - VA-supply

additionalProperties: false

examples:
  - |
    #include <dt-bindings/sound/cs42l42.h>
    i2c {
      #address-cells = <1>;
      #size-cells = <0>;

      cs42l42: cs42l42@48 {
          compatible = "cirrus,cs42l42";
          reg = <0x48>;
          VA-supply = <&dummy_vreg>;
          VP-supply = <&dummy_vreg>;
          VCP-supply = <&dummy_vreg>;
          VD_FILT-supply = <&dummy_vreg>;
          VL-supply = <&dummy_vreg>;

          reset-gpios = <&axi_gpio_0 1 0>;
          interrupt-parent = <&gpio0>;
          interrupts = <55 8>;

          cirrus,ts-inv = <CS42L42_TS_INV_DIS>;
          cirrus,ts-dbnc-rise = <CS42L42_TS_DBNCE_1000>;
          cirrus,ts-dbnc-fall = <CS42L42_TS_DBNCE_0>;
          cirrus,btn-det-init-dbnce = <100>;
          cirrus,btn-det-event-dbnce = <10>;
          cirrus,bias-lvls = <0x0F 0x08 0x04 0x01>;
          cirrus,hs-bias-ramp-rate = <CS42L42_HSBIAS_RAMP_SLOW>;
      };
    };
