blob: 962e655605c73a0866a6ad0dcaa5a46a5fb774ea [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":
required: false
const: 1
"#size-cells":
required: false
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
required: false
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
required: false
description: |
Positive ADC input. Used only for drivers that select
the ADC_CONFIGURABLE_INPUTS Kconfig option.
zephyr,input-negative:
type: int
required: false
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
required: false
description: |
ADC resolution to be used for the channel.
zephyr,oversampling:
type: int
required: false
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).