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

title: Cirrus Logic/Wolfson Microelectronics Arizona class audio SoCs

maintainers:
  - patches@opensource.cirrus.com

description: |
  These devices are audio SoCs with extensive digital capabilities and a
  range of analogue I/O.

  This document lists Extcon specific bindings, see the primary binding
  document ../mfd/arizona.yaml

properties:
  wlf,hpdet-channel:
    description:
      Headphone detection channel.  ARIZONA_ACCDET_MODE_HPL/1 sets the
      headphone detect mode to HPDETL, ARIZONA_ACCDET_MODE_HPR/2 sets it
      to HPDETR.  If this node is not included or if the value is unknown,
      then headphone detection mode is set to HPDETL.
    $ref: "/schemas/types.yaml#/definitions/uint32"
    minimum: 1
    maximum: 2

  wlf,use-jd2:
    description:
      Use the additional JD input along with JD1 for dual pin jack detection.
    type: boolean

  wlf,use-jd2-nopull:
    description:
      Internal pull on JD2 is disabled when used for jack detection.
    type: boolean

  wlf,jd-invert:
    description:
      Invert the polarity of the jack detection switch.
    type: boolean

  wlf,micd-software-compare:
    description:
      Use a software comparison to determine mic presence.
    type: boolean

  wlf,micd-detect-debounce:
    description:
      Additional software microphone detection debounce specified in
      milliseconds.
    $ref: "/schemas/types.yaml#/definitions/uint32"

  wlf,micd-pol-gpio:
    description:
      GPIO specifier for the GPIO controlling the headset polarity if one
      exists.
    maxItems: 1

  wlf,micd-bias-start-time:
    description:
      Time allowed for MICBIAS to startup prior to performing microphone
      detection, specified as per the ARIZONA_MICD_TIME_XXX defines.
    $ref: "/schemas/types.yaml#/definitions/uint32"
    minimum: 0
    maximum: 12

  wlf,micd-rate:
    description:
      Delay between successive microphone detection measurements, specified
      as per the ARIZONA_MICD_TIME_XXX defines.
    $ref: "/schemas/types.yaml#/definitions/uint32"
    minimum: 0
    maximum: 12

  wlf,micd-dbtime:
    description:
      Microphone detection hardware debounces specified as the number of
      measurements to take.
    $ref: "/schemas/types.yaml#/definitions/uint32"
    enum: [2, 4]

  wlf,micd-timeout-ms:
    description:
      Timeout for microphone detection, specified in milliseconds.
    $ref: "/schemas/types.yaml#/definitions/uint32"

  wlf,micd-force-micbias:
    description:
      Force MICBIAS continuously on during microphone detection.
    type: boolean

  wlf,micd-configs:
    description:
      Headset polarity configurations (generally used for detection of
      CTIA / OMTP headsets), the field can be of variable length but
      should always be a multiple of 3 cells long, each three cell group
      represents one polarity configuration.
    $ref: "/schemas/types.yaml#/definitions/uint32-matrix"
    items:
      items:
        - description:
            The first cell defines the accessory detection pin, zero
            will use MICDET1 and 0x2000 will use MICDET2.
          enum: [ 0, 0x2000 ]
        - description:
            The second cell represents the MICBIAS to be used. Zero
            will use MICVDD, 1-3 will use MICBIASx.
          minimum: 0
          maximum: 3
        - description:
            The third cell represents the value of the micd-pol-gpio
            pin.
          minimum: 0
          maximum: 1

  wlf,gpsw:
    description:
      Settings for the general purpose switch, set as one of the
      ARIZONA_GPSW_XXX defines.
    $ref: "/schemas/types.yaml#/definitions/uint32"
    minimum: 0
    maximum: 3
