blob: c52c913d52206cd24d2feaca94610e24e179bb82 [file] [log] [blame]
# 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,differential:
type: boolean
description: |
When set, selects differential input mode for the channel. Otherwise,
single-ended mode is used unless the zephyr,input-negative property is
specified, in which case the differential mode is selected implicitly.
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, implies the differential input mode for the channel.
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).
zephyr,current-source-pin:
type: uint8-array
description: |
Output pin selection for the current sources. The actual
interpretation depends on the driver. This is used only for drivers
which select the ADC_CONFIGURABLE_EXCITATION_CURRENT_SOURCE_PIN
Kconfig option.
zephyr,vbias-pins:
type: int
description: |
Output pin selection for the bias voltage. The actual interpretation
depends on the driver. This is used only for drivers which select
the ADC_CONFIGURABLE_VBIAS_PIN Kconfig option.