# Copyright (c) 2017, NXP
# Copyright (c) 2022, Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0

# Common fields for ADC controllers

include: base.yaml

properties:
    "#io-channel-cells":
      type: int
      required: true

    "#address-cells":
      const: 1

    "#size-cells":
      const: 0

child-binding:
    description: |
      Channel configuration.

      All nodes using this binding must be named "channel", otherwise their
      data will not be accessible for the ADC API macros.

      This is based on Linux, documentation:
        https://www.kernel.org/doc/Documentation/devicetree/bindings/iio/adc/adc.yaml

    properties:
      reg:
        type: array
        required: true
        description: Channel identifier.

      zephyr,gain:
        type: string
        required: true
        description: |
          Gain selection:
          - ADC_GAIN_1_6: x 1/6
          - ADC_GAIN_1_5: x 1/5
          - ADC_GAIN_1_4: x 1/4
          - ADC_GAIN_1_3: x 1/3
          - ADC_GAIN_2_5: x 2/5
          - ADC_GAIN_1_2: x 1/2
          - ADC_GAIN_2_3: x 2/3
          - ADC_GAIN_4_5: x 4/5
          - ADC_GAIN_1:   x 1
          - ADC_GAIN_2:   x 2
          - ADC_GAIN_3:   x 3
          - ADC_GAIN_4:   x 4
          - ADC_GAIN_6:   x 6
          - ADC_GAIN_8:   x 8
          - ADC_GAIN_12:  x 12
          - ADC_GAIN_16:  x 16
          - ADC_GAIN_24:  x 24
          - ADC_GAIN_32:  x 32
          - ADC_GAIN_64:  x 64
          - ADC_GAIN_128: x 128
        enum:
          - "ADC_GAIN_1_6"
          - "ADC_GAIN_1_5"
          - "ADC_GAIN_1_4"
          - "ADC_GAIN_1_3"
          - "ADC_GAIN_2_5"
          - "ADC_GAIN_1_2"
          - "ADC_GAIN_2_3"
          - "ADC_GAIN_4_5"
          - "ADC_GAIN_1"
          - "ADC_GAIN_2"
          - "ADC_GAIN_3"
          - "ADC_GAIN_4"
          - "ADC_GAIN_6"
          - "ADC_GAIN_8"
          - "ADC_GAIN_12"
          - "ADC_GAIN_16"
          - "ADC_GAIN_24"
          - "ADC_GAIN_32"
          - "ADC_GAIN_64"
          - "ADC_GAIN_128"

      zephyr,reference:
        type: string
        required: true
        description: |
          Reference selection:
          - ADC_REF_VDD_1:     VDD
          - ADC_REF_VDD_1_2:   VDD/2
          - ADC_REF_VDD_1_3:   VDD/3
          - ADC_REF_VDD_1_4:   VDD/4
          - ADC_REF_INTERNAL:  Internal
          - ADC_REF_EXTERNAL0: External, input 0
          - ADC_REF_EXTERNAL1: External, input 1
        enum:
          - "ADC_REF_VDD_1"
          - "ADC_REF_VDD_1_2"
          - "ADC_REF_VDD_1_3"
          - "ADC_REF_VDD_1_4"
          - "ADC_REF_INTERNAL"
          - "ADC_REF_EXTERNAL0"
          - "ADC_REF_EXTERNAL1"

      zephyr,vref-mv:
        type: int
        description: |
          This property can be used to specify the voltage (in millivolts)
          of the reference selected for this channel, so that applications
          can get that value if needed for some calculations.
          For the internal reference, the voltage can be usually obtained with
          a dedicated ADC API call, so there is no need to use this property
          in that case, but for other references this property can be useful.

      zephyr,acquisition-time:
        type: int
        required: true
        description: |
          Acquisition time.
          Use the ADC_ACQ_TIME macro to compose the value for this property
          or pass ADC_ACQ_TIME_DEFAULT to use the default setting for a given
          hardware (e.g. when the hardware does not allow to configure the
          acquisition time).

      zephyr,input-positive:
        type: int
        description: |
          Positive ADC input. Used only for drivers that select
          the ADC_CONFIGURABLE_INPUTS Kconfig option.

      zephyr,input-negative:
        type: int
        description: |
          Negative ADC input. Used only for drivers that select
          the ADC_CONFIGURABLE_INPUTS Kconfig option.
          When specified, the channel is to be used in differential input mode,
          otherwise, single-ended mode is used.

      zephyr,resolution:
        type: int
        description: |
          ADC resolution to be used for the channel.

      zephyr,oversampling:
        type: int
        description: |
          Oversampling setting to be used for the channel.
          When specified, each sample is averaged from 2^N conversion results
          (where N is the provided value).
