:orphan: .. raw:: html .. dtcompatible:: infineon,autanalog-ctb-opamp .. _dtbinding_infineon_autanalog_ctb_opamp: infineon,autanalog-ctb-opamp ############################ .. sidebar:: Overview :Name: ``infineon,autanalog-ctb-opamp`` :Vendor: :ref:`Infineon Technologies ` :Used in: :zephyr:board-catalog:`List of boards <#compatibles=infineon,autanalog-ctb-opamp>` using this compatible :Driver: :zephyr_file:`drivers/opamp/opamp_infineon_autanalog_ctb.c` Description *********** .. code-block:: none Infineon AutAnalog CTB opamp. Each node represents one of the two opamps (OA0 or OA1) within a CTB block. The opamp can be configured in various topologies via the topology property. When configured as PGA, TIA, or DiffAmp, the gain is set at build time via the gain property. Runtime gain changes are not supported because the Autonomous Controller restart required to reload the State Transition Table disrupts the shared SAR ADC sequencer. Input and output routing is configured via the switch-matrix properties. See the cy_autanalog_ctb.h PDL header for detailed pin/reference mapping. The parent node must have compatible "infineon,autanalog-ctb". Examples ******** .. code-block:: dts /* * Use constants from */ ctb1: { compatible = "infineon,autanalog-ctb"; opamp0: opamp@0 { compatible = "infineon,autanalog-ctb-opamp"; reg = <0>; power-mode = ; topology = ; ninv-inp-pin = ; functional-mode = "non_inverting"; out-to-pin; }; }; ---- .. code-block:: dts /* * Advanced mode: 2 dynamic config slots on opamp@1. * Each child node is one slot with named properties. */ ctb1: { compatible = "infineon,autanalog-ctb"; opamp1: opamp@1 { compatible = "infineon,autanalog-ctb-opamp"; reg = <1>; power-mode = ; topology = ; functional-mode = "non_inverting"; dyn-cfg-0 { ninv-inp-pin = ; res-inp-ref = ; out-to-pin; }; dyn-cfg-1 { ninv-inp-pin = ; res-inp-ref = ; out-to-pin; }; }; }; Properties ********** Top level properties ==================== These property descriptions apply to "infineon,autanalog-ctb-opamp" 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 * - ``power-mode`` - ``int`` - .. code-block:: none Opamp power mode. Use IFX_AUTANALOG_CTB_OA_PWR_* constants from . IFX_AUTANALOG_CTB_OA_PWR_OFF (0) - Off IFX_AUTANALOG_CTB_OA_PWR_ULTRA_LOW (1) - Ultra low IFX_AUTANALOG_CTB_OA_PWR_ULTRA_LOW_RAIL (2) - Ultra low, rail-to-rail IFX_AUTANALOG_CTB_OA_PWR_LOW_RAIL (4) - Low, rail-to-rail IFX_AUTANALOG_CTB_OA_PWR_MEDIUM_RAIL (6) - Medium, rail-to-rail IFX_AUTANALOG_CTB_OA_PWR_HIGH_RAIL (8) - High, rail-to-rail IFX_AUTANALOG_CTB_OA_PWR_ULTRA_HIGH_RAIL (10) - Ultra high, rail-to-rail This property is **required**. Legal values: ``0``, ``1``, ``2``, ``4``, ``6``, ``8``, ``10`` * - ``topology`` - ``int`` - .. code-block:: none Opamp topology. Use IFX_AUTANALOG_CTB_OA_TOPO_* constants from . IFX_AUTANALOG_CTB_OA_TOPO_COMPARATOR (0) - Comparator IFX_AUTANALOG_CTB_OA_TOPO_PGA (1) - PGA IFX_AUTANALOG_CTB_OA_TOPO_TIA (2) - TIA IFX_AUTANALOG_CTB_OA_TOPO_OPEN_LOOP_OPAMP (3) - Open-loop opamp IFX_AUTANALOG_CTB_OA_TOPO_DIFF_AMPLIFIER (4) - Differential amplifier IFX_AUTANALOG_CTB_OA_TOPO_HYST_COMPARATOR (5) - Comparator with hysteresis IFX_AUTANALOG_CTB_OA_TOPO_BUFFER (6) - Buffer (voltage follower) This property is **required**. Legal values: ``0``, ``1``, ``2``, ``3``, ``4``, ``5``, ``6`` * - ``interrupt-mode`` - ``int`` - .. code-block:: none Edge detection mode for comparator interrupts. Only applies to comparator topologies. Use IFX_AUTANALOG_CTB_COMP_INT_* constants from . IFX_AUTANALOG_CTB_COMP_INT_DISABLED (0) - Disabled IFX_AUTANALOG_CTB_COMP_INT_EDGE_RISING (1) - Rising edge IFX_AUTANALOG_CTB_COMP_INT_EDGE_FALLING (2) - Falling edge IFX_AUTANALOG_CTB_COMP_INT_EDGE_BOTH (3) - Both edges Default value: ``0`` Legal values: ``0``, ``1``, ``2``, ``3`` * - ``fb-cap`` - ``int`` - .. code-block:: none Feedback capacitor value, 0-15. Use IFX_AUTANALOG_CTB_OA_FB_CAP_* constants from . Default value: ``0`` * - ``cc-cap`` - ``int`` - .. code-block:: none Compensation capacitor value, 0-8. Use IFX_AUTANALOG_CTB_OA_CC_CAP_* constants from . Default 8 = disabled. Default value: ``8`` * - ``ninv-inp-pin`` - ``int`` - .. code-block:: none Non-inverting input direct pin connection. Use IFX_AUTANALOG_CTB_OA_NINV_PIN_* constants from . IFX_AUTANALOG_CTB_OA_NINV_PIN_DISCONNECT (0) IFX_AUTANALOG_CTB_OA_NINV_PIN_OA0_P0_OA1_P5 (1) IFX_AUTANALOG_CTB_OA_NINV_PIN_OA0_P1_OA1_P4 (2) Default value: ``0`` Legal values: ``0``, ``1``, ``2`` * - ``ninv-inp-ref`` - ``int`` - .. code-block:: none Non-inverting input reference connection. Use IFX_AUTANALOG_CTB_OA_NINV_REF_* constants from , values 0-7. Default value: ``0`` * - ``inv-inp-pin`` - ``int`` - .. code-block:: none Inverting input direct pin connection. Use IFX_AUTANALOG_CTB_OA_INV_PIN_* constants from . IFX_AUTANALOG_CTB_OA_INV_PIN_DISCONNECT (0) IFX_AUTANALOG_CTB_OA_INV_PIN_OA0_P0_OA1_P5 (1) IFX_AUTANALOG_CTB_OA_INV_PIN_OA0_P1_OA1_P4 (2) Default value: ``0`` Legal values: ``0``, ``1``, ``2`` * - ``res-inp-pin`` - ``int`` - .. code-block:: none Resistor ladder bottom pin connection. Use IFX_AUTANALOG_CTB_OA_RES_PIN_* constants from . IFX_AUTANALOG_CTB_OA_RES_PIN_DISCONNECT (0) IFX_AUTANALOG_CTB_OA_RES_PIN_OA0_P0_OA1_P5 (1) IFX_AUTANALOG_CTB_OA_RES_PIN_OA0_P1_OA1_P4 (2) Default value: ``0`` Legal values: ``0``, ``1``, ``2`` * - ``res-inp-ref`` - ``int`` - .. code-block:: none Resistor ladder bottom reference connection. Use IFX_AUTANALOG_CTB_OA_RES_REF_* constants from , values 0-5. Default value: ``0`` * - ``shared-mux-in`` - ``int`` - .. code-block:: none Input multiplexer connection to internal analog bus. Use IFX_AUTANALOG_CTB_OA_MUX_IN_* constants from , values 0-8. Default value: ``0`` * - ``shared-mux-out`` - ``int`` - .. code-block:: none Output multiplexer connection from internal analog bus. Use IFX_AUTANALOG_CTB_OA_MUX_OUT_* constants from . IFX_AUTANALOG_CTB_OA_MUX_OUT_DISCONNECT (0) IFX_AUTANALOG_CTB_OA_MUX_OUT_NINV (1) IFX_AUTANALOG_CTB_OA_MUX_OUT_INV (2) IFX_AUTANALOG_CTB_OA_MUX_OUT_RES (3) Default value: ``0`` Legal values: ``0``, ``1``, ``2``, ``3`` * - ``gain`` - ``int`` - .. code-block:: none Opamp gain for PGA, TIA, or DiffAmp topologies. Set at build time; runtime changes are not supported. Use IFX_AUTANALOG_CTB_OA_GAIN_* constants from . IFX_AUTANALOG_CTB_OA_GAIN_1_00 (0) - Gain 1.00 (default) IFX_AUTANALOG_CTB_OA_GAIN_1_42 (1) - Gain 1.42 IFX_AUTANALOG_CTB_OA_GAIN_2_00 (2) - Gain 2.00 IFX_AUTANALOG_CTB_OA_GAIN_2_78 (3) - Gain 2.78 IFX_AUTANALOG_CTB_OA_GAIN_4_00 (4) - Gain 4.00 IFX_AUTANALOG_CTB_OA_GAIN_5_82 (5) - Gain 5.82 IFX_AUTANALOG_CTB_OA_GAIN_8_00 (6) - Gain 8.00 IFX_AUTANALOG_CTB_OA_GAIN_10_67 (7) - Gain 10.67 IFX_AUTANALOG_CTB_OA_GAIN_16_00 (8) - Gain 16.00 IFX_AUTANALOG_CTB_OA_GAIN_21_33 (9) - Gain 21.33 IFX_AUTANALOG_CTB_OA_GAIN_32_00 (10) - Gain 32.00 Only meaningful for topologies with a resistor ladder. Default value: ``0`` * - ``out-to-pin`` - ``boolean`` - .. code-block:: none Connect opamp output directly to pin. * - ``functional-mode`` - ``string`` - .. code-block:: none Selects opamp functional mode. a) differential mode - Signals applied to both inputs - Amplifies the difference between two input signals - Common-mode signals are rejected - Used in instrumentation and noise rejection - Vout = (Rf/Rin) * (Vin2 - Vin1), where Rf is the feedback resistor and Rin is the input resistor, with gain (Rf/Rin) Rin Rf Vin1 --/\/\/\--*--/\/\/\----- | | | |\ | ------|- \ | | >--*-- Vout ------|+ / | |/ | Vin2 --/\/\/\--*--/\/\/\----- Rin Rf | GND b) inverting mode - Input signal applied to inverting (-) terminal - Non-inverting (+) terminal connected to ground - Feedback resistor connects output to inverting input - Output is 180° out of phase with input - Vout = (-Rf/Rin) * Vin, where Rf is the feedback resistor and Rin is the input resistor, s.t. gain is (-Rf/Rin) Rin Rf Vin --/\/\/\--*--/\/\/\----- | | | |\ | ------|- \ | | >--*-- Vout ------|+ / | |/ GND c) non_inverting mode - Input signal applied to non-inverting (+) terminal - Inverting (-) terminal connected to feedback network - Output is in phase with input - Vout = (1 + (Rf/Rin)) * Vin, where Rf is the feedback resistor and Rin is the input resistor, s.t. gain is (1 + (Rf/Rin)) Rin Rf |--/\/\/\--*--/\/\/\----- | | | GND | |\ | ------|- \ | | >--*-- Vout Vin ------|+ / |/ d) follower mode (voltage follower or buffer) - Special case of non-inverting amplifier - Vout = 1 * Vin, s.t. gain is 1 - Direct feedback from output to inverting input - Very high input impedance, very low output impedance - Used for impedance matching -------------- | | | |\ | ------|- \ | | >--*-- Vout Vin ------|+ / |/ e) standalone mode - The opamp mode is defined by external circuitry |\ Vin- -----|- \ | >---- Vout Vin+ -----|+ / |/ References: - https://www.electronics-tutorials.ws/category/opamp This property is **required**. Legal values: ``differential``, ``inverting``, ``non_inverting``, ``follower``, ``standalone`` * - ``programmable-gain`` - ``string-array`` - .. code-block:: none If the OPAMP supports programmable gain, then the gain of the opamp can be changed dynamically at runtime. The gain value needs to be one of the enumerations above. Gain selection: - OPAMP_GAIN_1_7 : x 1/7 - OPAMP_GAIN_1_3 : x 1/3 - OPAMP_GAIN_1 : x 1 - OPAMP_GAIN_5_3 : x 5/3 - OPAMP_GAIN_2 : x 2 - OPAMP_GAIN_11_5 : x 11/5 - OPAMP_GAIN_3 : x 3 - OPAMP_GAIN_4 : x 4 - OPAMP_GAIN_13_3 : x 13/3 - OPAMP_GAIN_7 : x 7 - OPAMP_GAIN_8 : x 8 - OPAMP_GAIN_15 : x 15 - OPAMP_GAIN_16 : x 16 - OPAMP_GAIN_31 : x 31 - OPAMP_GAIN_32 : x 32 - OPAMP_GAIN_33 : x 33 - OPAMP_GAIN_63 : x 63 - OPAMP_GAIN_64 : x 64 Legal values: ``OPAMP_GAIN_1_7``, ``OPAMP_GAIN_1_3``, ``OPAMP_GAIN_1``, ``OPAMP_GAIN_5_3``, ``OPAMP_GAIN_2``, ``OPAMP_GAIN_11_5``, ``OPAMP_GAIN_3``, ``OPAMP_GAIN_4``, ``OPAMP_GAIN_13_3``, ``OPAMP_GAIN_7``, ``OPAMP_GAIN_8``, ``OPAMP_GAIN_15``, ``OPAMP_GAIN_16``, ``OPAMP_GAIN_31``, ``OPAMP_GAIN_32``, ``OPAMP_GAIN_33``, ``OPAMP_GAIN_63``, ``OPAMP_GAIN_64`` * - ``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,autanalog-ctb-opamp" compatible. .. list-table:: :widths: 1 1 4 :header-rows: 1 * - Name - Type - Details * - ``reg`` - ``array`` - .. code-block:: none Opamp index within the CTB block (0 or 1). This property is **required**. See :ref:`zephyr:dt-important-props` for more information. * - ``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`` - ``array`` - .. code-block:: none Information about interrupts generated by the device, encoded as an array of one or more interrupt specifiers. The format of the data in this property varies by where the device appears in the interrupt tree. Devices with the same "interrupt-parent" will use the same format in their interrupts properties. For details, see "2.4 Interrupts and Interrupt Mapping" in Devicetree Specification v0.4. See :ref:`zephyr:dt-important-props` for more information. * - ``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. * - ``#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. * - ``#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. * - ``dma-coherent`` - ``boolean`` - .. code-block:: none Indicates that the device is capable of coherent DMA operations. For details, see "2.3.10 dma-coherent" in Devicetree Specification v0.4. * - ``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 * - ``ninv-inp-pin`` - ``int`` - .. code-block:: none Non-inverting input direct pin connection. Use IFX_AUTANALOG_CTB_OA_NINV_PIN_* constants from . Default value: ``0`` * - ``ninv-inp-ref`` - ``int`` - .. code-block:: none Non-inverting input reference connection. Use IFX_AUTANALOG_CTB_OA_NINV_REF_* constants from . Default value: ``0`` * - ``inv-inp-pin`` - ``int`` - .. code-block:: none Inverting input direct pin connection. Use IFX_AUTANALOG_CTB_OA_INV_PIN_* constants from . Default value: ``0`` * - ``res-inp-pin`` - ``int`` - .. code-block:: none Resistor ladder bottom pin connection. Use IFX_AUTANALOG_CTB_OA_RES_PIN_* constants from . Default value: ``0`` * - ``res-inp-ref`` - ``int`` - .. code-block:: none Resistor ladder bottom reference connection. Use IFX_AUTANALOG_CTB_OA_RES_REF_* constants from . Default value: ``0`` * - ``shared-mux-in`` - ``int`` - .. code-block:: none Input multiplexer connection to internal analog bus. Use IFX_AUTANALOG_CTB_OA_MUX_IN_* constants from . Default value: ``0`` * - ``shared-mux-out`` - ``int`` - .. code-block:: none Output multiplexer connection from internal analog bus. Use IFX_AUTANALOG_CTB_OA_MUX_OUT_* constants from . Default value: ``0`` * - ``out-to-pin`` - ``boolean`` - .. code-block:: none Connect opamp output directly to pin.