:orphan:
.. raw:: html
.. dtcompatible:: infineon,hppass-sar-adc
.. _dtbinding_infineon_hppass_sar_adc:
infineon,hppass-sar-adc
#######################
.. sidebar:: Overview
:Name: ``infineon,hppass-sar-adc``
:Vendor: :ref:`Infineon Technologies `
:Used in: :zephyr:board-catalog:`List of boards <#compatibles=infineon,hppass-sar-adc>` using
this compatible
:Driver: :zephyr_file:`drivers/adc/adc_ifx_hppass_sar.c`
Description
***********
.. code-block:: none
PSOC C3 HPPASS SAR ADC
Infineon PSOC C3 HPPASS SAR ADC
The HPPASS (High Performance Programmable Analog Sub-System) SAR ADC
provides high-resolution analog-to-digital conversion capabilities
for the PSOC C3 family of microcontrollers.
Each ADC channel corresponds to a dedicated analog input pin, except for
the last four sampler inputs which are muxed. See the device datasheet for
pin assignments and mux options.
Dependency: This ADC node must be a child of the HPPASS analog subsystem
node ("infineon,hppass-analog"), which provides clock, power, and reference
resources.
Properties
**********
Top level properties
====================
These property descriptions apply to "infineon,hppass-sar-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``
- .. code-block:: none
Number of cells in an io-channel specifier
This property is **required**.
Constant value: ``1``
* - ``clock-frequency``
- ``int``
- .. code-block:: none
ADC clock frequency in Hz. If not specified, the driver will use
the default clock configuration.
* - ``vref-mv``
- ``int``
- .. code-block:: none
Internal reference voltage in millivolts.
Default value: ``3300``
* - ``offset-cal``
- ``boolean``
- .. code-block:: none
Enables Self-Calibration for offset correction within the ADC. If left disabled, the factory calibration for offset correction will be used.
* - ``gain-cal``
- ``boolean``
- .. code-block:: none
Enables Self-Calibration for gain within the ADC. If left disabled,
the factory calibration for gain will be used.
* - ``linear-cal``
- ``boolean``
- .. code-block:: none
Enables Self-Calibration for linearity correction within the ADC. If left disabled,
the factory calibration for linearity will be used.
* - ``ref-internal-source``
- ``boolean``
- .. code-block:: none
Selects whether the ADC uses internal (true) or external (false) reference.
External reference recommended for best performance.
.. 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 "infineon,hppass-sar-adc" compatible.
.. list-table::
:widths: 1 1 4
:header-rows: 1
* - Name
- Type
- Details
* - ``reg``
- ``array``
- .. code-block:: none
Base address of the HPPASS SAR ADC registers
This property is **required**.
See :ref:`zephyr:dt-important-props` for more information.
* - ``interrupts``
- ``array``
- .. code-block:: none
Interrupt configuration for the HPPASS SAR ADC
This property is **required**.
See :ref:`zephyr:dt-important-props` for more information.
* - ``#address-cells``
- ``int``
- .. code-block:: none
This property encodes the number of cells used by address fields
in "reg" properties in this node's children.
For details, see "2.3.5 #address-cells and #size-cells" in Devicetree
Specification v0.4.
Constant value: ``1``
* - ``#size-cells``
- ``int``
- .. code-block:: none
This property encodes the number of cells used by size fields in
"reg" properties in this node's children.
For details, see "2.3.5 #address-cells and #size-cells" in Devicetree
Specification v0.4.
* - ``status``
- ``string``
- .. code-block:: none
Indicates the operational status of the hardware or other
resource that the node represents. In particular:
- "okay" means the resource is operational and, for example,
can be used by device drivers
- "disabled" means the resource is not operational and the system
should treat it as if it is not present
For details, see "2.3.4 status" in Devicetree Specification v0.4.
Legal values: ``'okay'``, ``'disabled'``, ``'reserved'``, ``'fail'``, ``'fail-sss'``
See :ref:`zephyr:dt-important-props` for more information.
* - ``compatible``
- ``string-array``
- .. code-block:: none
This property is a list of strings that essentially define what
type of hardware or other resource this devicetree node
represents. Each device driver checks for specific compatible
property values to find the devicetree nodes that represent
resources that the driver should manage.
The recommended format is "vendor,device", The "vendor" part is
an abbreviated name of the vendor. The "device" is usually from
the datasheet.
The compatible property can have multiple values, ordered from
most- to least-specific. Having additional values is useful when the
device is a specific instance of a more general family, to allow the
system to match the most specific driver available.
For details, see "2.3.1 compatible" in Devicetree Specification v0.4.
This property is **required**.
See :ref:`zephyr:dt-important-props` for more information.
* - ``reg-names``
- ``string-array``
- .. code-block:: none
Optional names given to each register block in the "reg" property.
For example:
/ {
soc {
#address-cells = <1>;
#size-cells = <1>;
uart@1000 {
reg = <0x1000 0x2000>, <0x3000 0x4000>;
reg-names = "foo", "bar";
};
};
};
The uart@1000 node has two register blocks:
- one with base address 0x1000, size 0x2000, and name "foo"
- another with base address 0x3000, size 0x4000, and name "bar"
* - ``interrupts-extended``
- ``compound``
- .. code-block:: none
Extended interrupt specifier for device, used as an alternative to
the "interrupts" property.
For details, see "2.4 Interrupts and Interrupt Mapping" in
Devicetree Specification v0.4.
* - ``interrupt-names``
- ``string-array``
- .. code-block:: none
Optional names given to each interrupt generated by a device.
The interrupts themselves are defined in either "interrupts" or
"interrupts-extended" properties.
For details, see "2.4 Interrupts and Interrupt Mapping" in
Devicetree Specification v0.4.
* - ``interrupt-parent``
- ``phandle``
- .. code-block:: none
If present, this refers to the node which handles interrupts generated
by this device.
For details, see "2.4 Interrupts and Interrupt Mapping" in
Devicetree Specification v0.4.
* - ``label``
- ``string``
- .. code-block:: none
Human readable string describing the device. Use of this property is
deprecated except as needed on a case-by-case basis.
For details, see "4.1.2 Miscellaneous Properties" in Devicetree
Specification v0.4.
See :ref:`zephyr:dt-important-props` for more information.
* - ``clocks``
- ``phandle-array``
- .. code-block:: none
Information about the device's clock providers. In general, this property
should follow conventions established in the dt-schema binding:
https://github.com/devicetree-org/dt-schema/blob/main/dtschema/schemas/clock/clock.yaml
* - ``clock-names``
- ``string-array``
- .. code-block:: none
Optional names given to each clock provider in the "clocks" property.
* - ``dmas``
- ``phandle-array``
- .. code-block:: none
DMA channel specifiers relevant to the device.
* - ``dma-names``
- ``string-array``
- .. code-block:: none
Optional names given to the DMA channel specifiers in the "dmas" property.
* - ``io-channels``
- ``phandle-array``
- .. code-block:: none
IO channel specifiers relevant to the device.
* - ``io-channel-names``
- ``string-array``
- .. code-block:: none
Optional names given to the IO channel specifiers in the "io-channels" property.
* - ``mboxes``
- ``phandle-array``
- .. code-block:: none
Mailbox / IPM channel specifiers relevant to the device.
* - ``mbox-names``
- ``string-array``
- .. code-block:: none
Optional names given to the mbox specifiers in the "mboxes" property.
* - ``power-domains``
- ``phandle-array``
- .. code-block:: none
Power domain specifiers relevant to the device.
* - ``power-domain-names``
- ``string-array``
- .. code-block:: none
Optional names given to the power domain specifiers in the "power-domains" property.
* - ``#power-domain-cells``
- ``int``
- .. code-block:: none
Number of cells in power-domains property
* - ``hwlocks``
- ``phandle-array``
- .. code-block:: none
HW spinlock id relevant to the device.
* - ``hwlock-names``
- ``string-array``
- .. code-block:: none
Optional names given to the hwlock specifiers in the "hwlocks" property.
* - ``zephyr,deferred-init``
- ``boolean``
- .. code-block:: none
Do not initialize device automatically on boot. Device should be manually
initialized using device_init().
* - ``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.
* - ``zephyr,pm-device-runtime-auto``
- ``boolean``
- .. code-block:: none
Automatically configure the device for runtime power management after the
init function runs.
* - ``zephyr,disabling-power-states``
- ``phandles``
- .. code-block:: none
List of power states that will disable this device power.
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_2_7: x 2/7
- 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_2_7'``, ``'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.
* - ``zephyr,vbias-pins``
- ``int``
- .. code-block:: none
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