This is the documentation for the latest (main) development branch of Zephyr. If you are looking for the documentation of previous releases, use the drop-down menu on the left and select the desired version.

espressif,esp32-adc

Vendor: Espressif Systems

Description

Espressif ESP32 ADC
Possible available resolutions depends on the used chip.
  - ESP32     < 9,10,11,12 >
  - ESP32-S2  < 12 >
  - ESP32-C3  < 12 >
  - ESP32-S3  < 12 >
For chips with configurable resolution feature (ESP32),
maximum resolution will be used if not set explicitly.

Zephyr API is using gain unit to characterize ADC input.
To achieve compatibility we choose to select those gain,
which corresponds to the ESP32 ADC attenuation feature.

  ESP32,attenuation ~ zephyr,gain
  -----------------   -----------
  0 dB                ADC_GAIN_1
  2.5 dB              ADC_GAIN_4_5
  6 dB                ADC_GAIN_1_2
  11 dB               ADC_GAIN_1_4

In case unsupported gain is selected the adc_channel_setup()
would return ENOTSUP error.

Properties

Top level properties

These property descriptions apply to “espressif,esp32-adc” nodes themselves. This page also describes child node properties in the following sections.

Properties not inherited from the base binding file.

Name

Type

Details

#io-channel-cells

int

This property is required.

Constant value: 1

unit

int

ADC unit number. Possible values are 1,2,.. depending on chip.

This property is required.

channel-count

int

The maximum channels supported on each unit.

This property is required.

Child node properties

Name

Type

Details

reg

array

Channel identifier.

This property is required.

See Important properties for more information.

zephyr,gain

string

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

This property is required.

Legal values: '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

string

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

This property is required.

Legal values: '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

int

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

int

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).

This property is required.

zephyr,differential

boolean

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

int

Positive ADC input. Used only for drivers that select
the ADC_CONFIGURABLE_INPUTS Kconfig option.

zephyr,input-negative

int

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

int

ADC resolution to be used for the channel.

zephyr,oversampling

int

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

uint8-array

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

int

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.

Specifier cell names

  • io-channel cells: input