:orphan:
.. raw:: html
.. dtcompatible:: st,stm32f4-adc
.. _dtbinding_st_stm32f4_adc:
st,stm32f4-adc
##############
Vendor: :ref:`STMicroelectronics `
Description
***********
.. code-block:: none
ST STM32F4 family ADC
This compatible stands for all ADC blocks similar to the one on STM32F4,
like F2, F7 or L1.
Properties
**********
Top level properties
====================
These property descriptions apply to "st,stm32f4-adc"
nodes themselves. This page also describes child node
properties in the following sections.
.. tabs::
.. group-tab:: Node specific properties
Properties not inherited from the base binding file.
.. list-table::
:widths: 1 1 4
:header-rows: 1
* - Name
- Type
- Details
* - ``#io-channel-cells``
- ``int``
- This property is **required**.
Constant value: ``1``
* - ``pinctrl-0``
- ``phandles``
- .. code-block:: none
Pin configuration/s for the first state. Content is specific to the
selected pin controller driver implementation.
This property is **required**.
* - ``pinctrl-names``
- ``string-array``
- .. code-block:: none
Names for the provided states. The number of names needs to match the
number of states.
This property is **required**.
* - ``st,adc-clock-source``
- ``int``
- .. code-block:: none
Type of ADC clock source :
- : derived from the bus clock.
- : independent and asynchronous with the bus clock
One of the two values may not apply to some series. Refer to the RefMan.
This property is **required**.
Legal values: ``1``, ``2``
* - ``st,adc-prescaler``
- ``int``
- .. code-block:: none
Clock prescaler at the input of the ADC:
Apply to synchronous or asynchronous clock depending on the STM32
st,adc-clock-source.
Some of the values may not apply to some series, and may depend on the
selected clock source. Refer to the RefMan.
On STM32F3x (except STM32F37x), this configures only the synchronous
prescaler (see properties adcXX-prescaler in st,stm32f3-rcc bindings to
set asynchronous prescaler).
This property is **required**.
Legal values: ``1``, ``2``, ``4``, ``6``, ``8``, ``10``, ``12``, ``16``, ``32``, ``64``, ``128``, ``256``
* - ``vref-mv``
- ``int``
- .. code-block:: none
Indicates the reference voltage of the ADC in mV (on the target board).
Default value: ``3300``
* - ``resolutions``
- ``array``
- .. code-block:: none
List of the resolutions supported by the ADC instance. They should be
values created with STM32_ADC_RES macro or similar. Their order is not
important. For example for STM32F4:
The two parameters are the resolution (for example 10 bits) and the
corresponding register value (0x01 for a 10-bit resolution).
By design, these macros also contains all register information (address,
field offset and field mask) necessary to properly set the resolution.
This property is **required**.
* - ``sampling-times``
- ``array``
- .. code-block:: none
List all the sampling times supported by the ADC instance.
Rounded up if needed. Order is important: their index matches their binary
value in the register.
This property is **required**.
* - ``num-sampling-time-common-channels``
- ``int``
- .. code-block:: none
Number of sampling time common channels for this ADC instance, if any.
* - ``st,adc-sequencer``
- ``int``
- .. code-block:: none
Type of ADC sequencer:
- : Not fully configurable sequencer
- : Fully configurable sequencer
This property is **required**.
Legal values: ``0``, ``1``
* - ``pinctrl-1``
- ``phandles``
- .. code-block:: none
Pin configuration/s for the second state. See pinctrl-0.
* - ``pinctrl-2``
- ``phandles``
- .. code-block:: none
Pin configuration/s for the third state. See pinctrl-0.
* - ``pinctrl-3``
- ``phandles``
- .. code-block:: none
Pin configuration/s for the fourth state. See pinctrl-0.
* - ``pinctrl-4``
- ``phandles``
- .. code-block:: none
Pin configuration/s for the fifth state. See pinctrl-0.
.. group-tab:: Deprecated node specific properties
Deprecated properties not inherited from the base binding file.
(None)
.. group-tab:: Base properties
Properties inherited from the base binding file, which defines
common properties that may be set on many nodes. Not all of these
may apply to the "st,stm32f4-adc" compatible.
.. list-table::
:widths: 1 1 4
:header-rows: 1
* - Name
- Type
- Details
* - ``reg``
- ``array``
- .. code-block:: none
register space
This property is **required**.
See :ref:`zephyr:dt-important-props` for more information.
* - ``clocks``
- ``phandle-array``
- .. code-block:: none
Clock gate information
This property is **required**.
* - ``interrupts``
- ``array``
- .. code-block:: none
interrupts for device
This property is **required**.
See :ref:`zephyr:dt-important-props` for more information.
* - ``#address-cells``
- ``int``
- .. code-block:: none
number of address cells in reg property
Constant value: ``1``
* - ``#size-cells``
- ``int``
- .. code-block:: none
number of size cells in reg property
* - ``status``
- ``string``
- .. code-block:: none
indicates the operational status of a device
Legal values: ``'ok'``, ``'okay'``, ``'disabled'``, ``'reserved'``, ``'fail'``, ``'fail-sss'``
See :ref:`zephyr:dt-important-props` for more information.
* - ``compatible``
- ``string-array``
- .. code-block:: none
compatible strings
This property is **required**.
See :ref:`zephyr:dt-important-props` for more information.
* - ``reg-names``
- ``string-array``
- .. code-block:: none
name of each register space
* - ``interrupts-extended``
- ``compound``
- .. code-block:: none
extended interrupt specifier for device
* - ``interrupt-names``
- ``string-array``
- .. code-block:: none
name of each interrupt
* - ``interrupt-parent``
- ``phandle``
- .. code-block:: none
phandle to interrupt controller node
* - ``label``
- ``string``
- .. code-block:: none
Human readable string describing the device (used as device_get_binding() argument)
See :ref:`zephyr:dt-important-props` for more information.
This property is **deprecated**.
* - ``clock-names``
- ``string-array``
- .. code-block:: none
name of each clock
* - ``dmas``
- ``phandle-array``
- .. code-block:: none
DMA channels specifiers
* - ``dma-names``
- ``string-array``
- .. code-block:: none
Provided names of DMA channel specifiers
* - ``io-channels``
- ``phandle-array``
- .. code-block:: none
IO channels specifiers
* - ``io-channel-names``
- ``string-array``
- .. code-block:: none
Provided names of IO channel specifiers
* - ``mboxes``
- ``phandle-array``
- .. code-block:: none
mailbox / IPM channels specifiers
* - ``mbox-names``
- ``string-array``
- .. code-block:: none
Provided names of mailbox / IPM channel specifiers
* - ``wakeup-source``
- ``boolean``
- .. code-block:: none
Property to identify that a device can be used as wake up source.
When this property is provided a specific flag is set into the
device that tells the system that the device is capable of
wake up the system.
Wake up capable devices are disabled (interruptions will not wake up
the system) by default but they can be enabled at runtime if necessary.
* - ``power-domain``
- ``phandle``
- .. code-block:: none
Power domain the device belongs to.
The device will be notified when the power domain it belongs to is either
suspended or resumed.
* - ``zephyr,pm-device-runtime-auto``
- ``boolean``
- .. code-block:: none
Automatically configure the device for runtime power management after the
init function runs.
Child node properties
=====================
.. list-table::
:widths: 1 1 4
:header-rows: 1
* - Name
- Type
- Details
* - ``reg``
- ``array``
- .. code-block:: none
Channel identifier.
This property is **required**.
See :ref:`zephyr:dt-important-props` for more information.
* - ``zephyr,gain``
- ``string``
- .. code-block:: none
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``
- .. code-block:: none
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``
- .. code-block:: none
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``
- .. code-block:: none
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``
- .. code-block:: none
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``
- .. code-block:: none
Positive ADC input. Used only for drivers that select
the ADC_CONFIGURABLE_INPUTS Kconfig option.
* - ``zephyr,input-negative``
- ``int``
- .. code-block:: none
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``
- .. code-block:: none
ADC resolution to be used for the channel.
* - ``zephyr,oversampling``
- ``int``
- .. code-block:: none
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``
- .. code-block:: none
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.
Specifier cell names
********************
- io-channel cells: input