infineon,autanalog-ctb-opamp
Description
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
/*
* Use constants from <dt-bindings/opamp/infineon-autanalog-ctb.h>
*/
ctb1: {
compatible = "infineon,autanalog-ctb";
opamp0: opamp@0 {
compatible = "infineon,autanalog-ctb-opamp";
reg = <0>;
power-mode = <IFX_AUTANALOG_CTB_OA_PWR_ULTRA_LOW>;
topology = <IFX_AUTANALOG_CTB_OA_TOPO_PGA>;
ninv-inp-pin = <IFX_AUTANALOG_CTB_OA_NINV_PIN_OA0_P0_OA1_P5>;
functional-mode = "non_inverting";
out-to-pin;
};
};
/*
* 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 = <IFX_AUTANALOG_CTB_OA_PWR_ULTRA_LOW>;
topology = <IFX_AUTANALOG_CTB_OA_TOPO_PGA>;
functional-mode = "non_inverting";
dyn-cfg-0 {
ninv-inp-pin = <IFX_AUTANALOG_CTB_OA_NINV_PIN_OA0_P0_OA1_P5>;
res-inp-ref = <IFX_AUTANALOG_CTB_OA_RES_REF_VSSA>;
out-to-pin;
};
dyn-cfg-1 {
ninv-inp-pin = <IFX_AUTANALOG_CTB_OA_NINV_PIN_OA0_P1_OA1_P4>;
res-inp-ref = <IFX_AUTANALOG_CTB_OA_RES_REF_VSSA>;
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.
Properties not inherited from the base binding file.
Name |
Type |
Details |
|---|---|---|
|
|
Opamp power mode.
Use IFX_AUTANALOG_CTB_OA_PWR_* constants from
<dt-bindings/opamp/infineon-autanalog-ctb.h>.
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: |
|
|
Opamp topology.
Use IFX_AUTANALOG_CTB_OA_TOPO_* constants from
<dt-bindings/opamp/infineon-autanalog-ctb.h>.
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: |
|
|
Edge detection mode for comparator interrupts.
Only applies to comparator topologies.
Use IFX_AUTANALOG_CTB_COMP_INT_* constants from
<dt-bindings/opamp/infineon-autanalog-ctb.h>.
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: Legal values: |
|
|
Feedback capacitor value, 0-15.
Use IFX_AUTANALOG_CTB_OA_FB_CAP_* constants from
<dt-bindings/opamp/infineon-autanalog-ctb.h>.
Default value: |
|
|
Compensation capacitor value, 0-8.
Use IFX_AUTANALOG_CTB_OA_CC_CAP_* constants from
<dt-bindings/opamp/infineon-autanalog-ctb.h>.
Default 8 = disabled.
Default value: |
|
|
Non-inverting input direct pin connection.
Use IFX_AUTANALOG_CTB_OA_NINV_PIN_* constants from
<dt-bindings/opamp/infineon-autanalog-ctb.h>.
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: Legal values: |
|
|
Non-inverting input reference connection.
Use IFX_AUTANALOG_CTB_OA_NINV_REF_* constants from
<dt-bindings/opamp/infineon-autanalog-ctb.h>, values 0-7.
Default value: |
|
|
Inverting input direct pin connection.
Use IFX_AUTANALOG_CTB_OA_INV_PIN_* constants from
<dt-bindings/opamp/infineon-autanalog-ctb.h>.
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: Legal values: |
|
|
Resistor ladder bottom pin connection.
Use IFX_AUTANALOG_CTB_OA_RES_PIN_* constants from
<dt-bindings/opamp/infineon-autanalog-ctb.h>.
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: Legal values: |
|
|
Resistor ladder bottom reference connection.
Use IFX_AUTANALOG_CTB_OA_RES_REF_* constants from
<dt-bindings/opamp/infineon-autanalog-ctb.h>, values 0-5.
Default value: |
|
|
Input multiplexer connection to internal analog bus.
Use IFX_AUTANALOG_CTB_OA_MUX_IN_* constants from
<dt-bindings/opamp/infineon-autanalog-ctb.h>, values 0-8.
Default value: |
|
|
Output multiplexer connection from internal analog bus.
Use IFX_AUTANALOG_CTB_OA_MUX_OUT_* constants from
<dt-bindings/opamp/infineon-autanalog-ctb.h>.
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: Legal values: |
|
|
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
<dt-bindings/mfd/infineon-autanalog.h>.
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: |
|
|
Connect opamp output directly to pin.
|
|
|
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: |
|
|
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: |
|
|
Pin configuration/s for the first state. Content is specific to the
selected pin controller driver implementation.
|
|
|
Pin configuration/s for the second state. See pinctrl-0.
|
|
|
Pin configuration/s for the third state. See pinctrl-0.
|
|
|
Pin configuration/s for the fourth state. See pinctrl-0.
|
|
|
Pin configuration/s for the fifth state. See pinctrl-0.
|
|
|
Names for the provided states. The number of names needs to match the
number of states.
|
Deprecated properties not inherited from the base binding file.
(None)
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.
Name |
Type |
Details |
|---|---|---|
|
|
Opamp index within the CTB block (0 or 1).
This property is required. See Important properties for more information. |
|
|
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: See Important properties for more information. |
|
|
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 Important properties for more information. |
|
|
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"
|
|
|
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 Important properties for more information. |
|
|
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.
|
|
|
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.
|
|
|
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.
|
|
|
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 Important properties for more information. |
|
|
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
|
|
|
Optional names given to each clock provider in the "clocks" property.
|
|
|
This property encodes the number of <u32> 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.
|
|
|
This property encodes the number of <u32> 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.
|
|
|
Indicates that the device is capable of coherent DMA operations.
For details, see "2.3.10 dma-coherent" in Devicetree Specification v0.4.
|
|
|
DMA channel specifiers relevant to the device.
|
|
|
Optional names given to the DMA channel specifiers in the "dmas" property.
|
|
|
IO channel specifiers relevant to the device.
|
|
|
Optional names given to the IO channel specifiers in the "io-channels" property.
|
|
|
Mailbox / IPM channel specifiers relevant to the device.
|
|
|
Optional names given to the mbox specifiers in the "mboxes" property.
|
|
|
Power domain specifiers relevant to the device.
|
|
|
Optional names given to the power domain specifiers in the "power-domains" property.
|
|
|
Number of cells in power-domains property
|
|
|
HW spinlock id relevant to the device.
|
|
|
Optional names given to the hwlock specifiers in the "hwlocks" property.
|
|
|
Do not initialize device automatically on boot. Device should be manually
initialized using device_init().
|
|
|
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.
|
|
|
Automatically configure the device for runtime power management after the
init function runs.
|
|
|
List of power states that will disable this device power.
|
Child node properties
Name |
Type |
Details |
|---|---|---|
|
|
Non-inverting input direct pin connection.
Use IFX_AUTANALOG_CTB_OA_NINV_PIN_* constants from
<dt-bindings/opamp/infineon-autanalog-ctb.h>.
Default value: |
|
|
Non-inverting input reference connection.
Use IFX_AUTANALOG_CTB_OA_NINV_REF_* constants from
<dt-bindings/opamp/infineon-autanalog-ctb.h>.
Default value: |
|
|
Inverting input direct pin connection.
Use IFX_AUTANALOG_CTB_OA_INV_PIN_* constants from
<dt-bindings/opamp/infineon-autanalog-ctb.h>.
Default value: |
|
|
Resistor ladder bottom pin connection.
Use IFX_AUTANALOG_CTB_OA_RES_PIN_* constants from
<dt-bindings/opamp/infineon-autanalog-ctb.h>.
Default value: |
|
|
Resistor ladder bottom reference connection.
Use IFX_AUTANALOG_CTB_OA_RES_REF_* constants from
<dt-bindings/opamp/infineon-autanalog-ctb.h>.
Default value: |
|
|
Input multiplexer connection to internal analog bus.
Use IFX_AUTANALOG_CTB_OA_MUX_IN_* constants from
<dt-bindings/opamp/infineon-autanalog-ctb.h>.
Default value: |
|
|
Output multiplexer connection from internal analog bus.
Use IFX_AUTANALOG_CTB_OA_MUX_OUT_* constants from
<dt-bindings/opamp/infineon-autanalog-ctb.h>.
Default value: |
|
|
Connect opamp output directly to pin.
|