:orphan: .. raw:: html .. dtcompatible:: infineon,sar-adc .. _dtbinding_infineon_sar_adc: infineon,sar-adc ################ .. sidebar:: Overview :Name: ``infineon,sar-adc`` :Vendor: :ref:`Infineon Technologies ` :Used in: :zephyr:board-catalog:`List of boards <#compatibles=infineon,sar-adc>` using this compatible :Driver: :zephyr_file:`drivers/adc/adc_infineon_sar.c` Description *********** .. code-block:: none Infineon SAR ADC Successive Approximation Register (SAR) ADC peripheral found in Infineon devices. The IP block is version-specific, indicated by the infineon,version property which corresponds to CY_IP_M0S8PASS4A_SAR_VERSION in the PDL headers. Properties ********** Top level properties ==================== These property descriptions apply to "infineon,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 * - ``infineon,version`` - ``int`` - .. code-block:: none SAR ADC IP block version. Corresponds to CY_IP_M0S8PASS4A_SAR_VERSION in the PDL. Different versions have varying capabilities (e.g., v2/v3 have limited differential support, v4+ has full differential addressing). This property is **required**. Legal values: ``2``, ``3`` * - ``#io-channel-cells`` - ``int`` - .. code-block:: none Number of cells in an io-channel specifier This property is **required**. Constant value: ``1`` * - ``vref-src`` - ``string`` - .. code-block:: none Selects which voltage reference to use for the ADC. "internal": Internal Bandgap (1.2V) "vdda": VDDA "vdda_by_2": VDDA / 2 "external": External Ref pin Default value: ``internal`` Legal values: ``internal``, ``vdda``, ``vdda_by_2``, ``external`` * - ``vref-mv`` - ``int`` - .. code-block:: none Reference voltage in millivolts. For "internal" source, this is typically 1200. For "vdda" or "external", this should match the actual voltage applied. Default value: ``1200`` * - ``clk-dst`` - ``int`` - .. code-block:: none Peripheral clock destination for the ADC. This property is **required**. * - ``pinctrl-0`` - ``phandles`` - .. code-block:: none Pin configuration/s for the first state. Content is specific to the selected pin controller driver implementation. * - ``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. * - ``pinctrl-names`` - ``string-array`` - .. code-block:: none Names for the provided states. The number of names needs to match the number of states. .. 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,sar-adc" compatible. .. list-table:: :widths: 1 1 4 :header-rows: 1 * - Name - Type - Details * - ``reg`` - ``array`` - .. code-block:: none Base address of the 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 SAR ADC This property is **required**. See :ref:`zephyr:dt-important-props` for more information. * - ``clocks`` - ``phandle-array`` - .. code-block:: none Clock divider phandle for the ADC peripheral. This property is **required**. * - ``#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. * - ``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 * - ``gpio-port`` - ``int`` - .. code-block:: none GPIO port number for the ADC input pin. Required for SARMUX pins to configure GPIO drive mode. If not specified, defaults to port 2 for SARMUX pins 0-7. * - ``gpio-pin`` - ``int`` - .. code-block:: none GPIO pin number within the port for the ADC input pin. Required for SARMUX pins to configure GPIO drive mode. This should match the pin number in the pinctrl configuration. * - ``gpio-port-negative`` - ``int`` - .. code-block:: none GPIO port number for the negative ADC input pin (differential mode only). If not specified, defaults to port 2 for SARMUX pins. * - ``gpio-pin-negative`` - ``int`` - .. code-block:: none GPIO pin number for the negative ADC input pin (differential mode only). This should match the pin number in the pinctrl configuration. * - ``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