infineon,hppass-analog

Description

Infineon HPPASS (High Performance Programmable Analog Sub-System)
Multi-Function Device.

The HPPASS subsystem contains multiple analog peripherals (SAR ADC, CSG)
coordinated by an Autonomous Controller (AC) state machine.  This MFD
device manages the shared resources: subsystem initialisation, AC lifecycle,
STT management, and the combined MCPASS interrupt (AC state + error
conditions).

Individual peripherals (SAR ADC, CSG) are represented as child nodes of this device
and own their individual interrupt lines.

Examples

#include <dt-bindings/mfd/infineon-hppass.h>

/* Basic mode: no ac-states property.
 * Driver auto-generates 2-state SAR startup sequence.
 */
&hppass_analog0 {
    status = "okay";
    /* SAR child auto-detected, no AC config needed */
};

#include <dt-bindings/mfd/infineon-hppass.h>

/*
 * Advanced mode: custom 3-state sequence.
 * State 0: Wait for blocks ready, enable SAR
 * State 1: Trigger SAR group 0, wait for done, loop to 1
 * State 2: Stop
 */

/ {
    hppass_state0: hppass-ac-state-0 {
        compatible = "infineon,hppass-ac-state";
        ac-condition = <IFX_HPPASS_AC_COND_BLOCK_READY>;
        ac-action = <IFX_HPPASS_AC_ACTION_WAIT_FOR>;
        sar-unlock = <1>;
        sar-enable = <1>;
    };

    hppass_state1: hppass-ac-state-1 {
        compatible = "infineon,hppass-ac-state";
        ac-condition = <IFX_HPPASS_AC_COND_SAR_GROUP_0_DONE>;
        ac-action = <IFX_HPPASS_AC_ACTION_WAIT_FOR>;
        branch-state-idx = <1>;
        sar-unlock = <1>;
        sar-enable = <1>;
        sar-grp-msk = <IFX_HPPASS_SAR_GRP_0>;
    };

    hppass_state2: hppass-ac-state-2 {
        compatible = "infineon,hppass-ac-state";
        ac-condition = <IFX_HPPASS_AC_COND_FALSE>;
        ac-action = <IFX_HPPASS_AC_ACTION_STOP>;
    };
};

&hppass_analog0 {
    ac-states = <&hppass_state0 &hppass_state1 &hppass_state2>;
    startup-clk-div = <4>;
    trig-in-0-type = <IFX_HPPASS_TR_FW_PULSE>;
};

Properties

Properties not inherited from the base binding file.

Name

Type

Details

ac-states

phandles

Ordered list of AC state node phandles for advanced mode.  When present,
the driver uses these nodes to build the full State Transition Table.
Each referenced node must have compatible "infineon,hppass-ac-state".

When omitted, the driver uses a built-in 2-state startup sequence
(basic mode) and automatically populates SAR/CSG fields based on
child node status.

ac-gpio-out-en-msk

int

AC GPIO output enable mask. Use IFX_HPPASS_GPIO_OUT_* constants
from <dt-bindings/mfd/infineon-hppass.h>.
Enables GPIO outputs for AC state machine control.

Default value: 0

startup-clk-div

int

Startup clock divider (1-256).
Divides the HPPASS clock for the startup sequencer.

Default value: 1

startup-0-count

int

Startup phase 0 count in HPPASS clock cycles (0-255). Actual is count + 1.

Default value: 0

startup-0-sar

int

Startup phase 0 SAR enable flag (0 or 1).

Default value: 0

startup-0-csg-chan

int

Startup phase 0 CSG channel enable flag (0 or 1).

Default value: 0

startup-0-csg-slice

int

Startup phase 0 CSG slice enable flag (0 or 1).

Default value: 0

startup-0-csg-ready

int

Startup phase 0 CSG auto-zero/comparator gate enable flag (0 or 1).

Default value: 0

startup-1-count

int

Startup phase 1 count in HPPASS clock cycles (0-255).

Default value: 0

startup-1-sar

int

Startup phase 1 SAR enable flag (0 or 1).

Default value: 0

startup-1-csg-chan

int

Startup phase 1 CSG channel enable flag (0 or 1).

Default value: 0

startup-1-csg-slice

int

Startup phase 1 CSG slice enable flag (0 or 1).

Default value: 0

startup-1-csg-ready

int

Startup phase 1 CSG auto-zero/comparator gate enable flag (0 or 1).

Default value: 0

startup-2-count

int

Startup phase 2 count in HPPASS clock cycles (0-255).

Default value: 0

startup-2-sar

int

Startup phase 2 SAR enable flag (0 or 1).

Default value: 0

startup-2-csg-chan

int

Startup phase 2 CSG channel enable flag (0 or 1).

Default value: 0

startup-2-csg-slice

int

Startup phase 2 CSG slice enable flag (0 or 1).

Default value: 0

startup-2-csg-ready

int

Startup phase 2 CSG auto-zero/comparator gate enable flag (0 or 1).

Default value: 0

startup-3-count

int

Startup phase 3 count in HPPASS clock cycles (0-255).

Default value: 0

startup-3-sar

int

Startup phase 3 SAR enable flag (0 or 1).

Default value: 0

startup-3-csg-chan

int

Startup phase 3 CSG channel enable flag (0 or 1).

Default value: 0

startup-3-csg-slice

int

Startup phase 3 CSG slice enable flag (0 or 1).

Default value: 0

startup-3-csg-ready

int

Startup phase 3 CSG auto-zero/comparator gate enable flag (0 or 1).

Default value: 0

trig-in-0-type

int

Trigger input 0 type. Use IFX_HPPASS_TR_* constants.
Default: DISABLED (0).

Default value: 0

trig-in-0-hw-mode

int

Trigger input 0 HW mode. Use IFX_HPPASS_TR_HW_* constants.
Only effective when trig-in-0-type is HW_A or HW_B.

Default value: 0

trig-in-1-type

int

Trigger input 1 type. Use IFX_HPPASS_TR_* constants.

Default value: 0

trig-in-1-hw-mode

int

Trigger input 1 HW mode. Use IFX_HPPASS_TR_HW_* constants.

Default value: 0

trig-in-2-type

int

Trigger input 2 type. Use IFX_HPPASS_TR_* constants.

Default value: 0

trig-in-2-hw-mode

int

Trigger input 2 HW mode. Use IFX_HPPASS_TR_HW_* constants.

Default value: 0

trig-in-3-type

int

Trigger input 3 type. Use IFX_HPPASS_TR_* constants.

Default value: 0

trig-in-3-hw-mode

int

Trigger input 3 HW mode. Use IFX_HPPASS_TR_HW_* constants.

Default value: 0

trig-in-4-type

int

Trigger input 4 type. Use IFX_HPPASS_TR_* constants.

Default value: 0

trig-in-4-hw-mode

int

Trigger input 4 HW mode. Use IFX_HPPASS_TR_HW_* constants.

Default value: 0

trig-in-5-type

int

Trigger input 5 type. Use IFX_HPPASS_TR_* constants.

Default value: 0

trig-in-5-hw-mode

int

Trigger input 5 HW mode. Use IFX_HPPASS_TR_HW_* constants.

Default value: 0

trig-in-6-type

int

Trigger input 6 type. Use IFX_HPPASS_TR_* constants.

Default value: 0

trig-in-6-hw-mode

int

Trigger input 6 HW mode. Use IFX_HPPASS_TR_HW_* constants.

Default value: 0

trig-in-7-type

int

Trigger input 7 type. Use IFX_HPPASS_TR_* constants.

Default value: 0

trig-in-7-hw-mode

int

Trigger input 7 HW mode. Use IFX_HPPASS_TR_HW_* constants.

Default value: 0

trig-pulse-0

int

Trigger output 0 pulse source. Use IFX_HPPASS_TR_OUT_* constants.
Default: DISABLED (0).

Default value: 0

trig-pulse-1

int

Trigger output 1 pulse source. Use IFX_HPPASS_TR_OUT_* constants.

Default value: 0

trig-pulse-2

int

Trigger output 2 pulse source. Use IFX_HPPASS_TR_OUT_* constants.

Default value: 0

trig-pulse-3

int

Trigger output 3 pulse source. Use IFX_HPPASS_TR_OUT_* constants.

Default value: 0

trig-pulse-4

int

Trigger output 4 pulse source. Use IFX_HPPASS_TR_OUT_* constants.

Default value: 0

trig-pulse-5

int

Trigger output 5 pulse source. Use IFX_HPPASS_TR_OUT_* constants.

Default value: 0

trig-pulse-6

int

Trigger output 6 pulse source. Use IFX_HPPASS_TR_OUT_* constants.

Default value: 0

trig-pulse-7

int

Trigger output 7 pulse source. Use IFX_HPPASS_TR_OUT_* constants.

Default value: 0

trig-level-0-sync-bypass

int

Trigger output level 0 sync bypass flag (0 or 1).

Default value: 0

trig-level-0-comp-msk

int

Trigger output level 0 CSG comparator mask (5 bits, one per CSG slice).

Default value: 0

trig-level-0-limit-msk

int

Trigger output level 0 SAR limit detector mask (8 bits).

Default value: 0

trig-level-1-sync-bypass

int

Trigger output level 1 sync bypass flag (0 or 1).

Default value: 0

trig-level-1-comp-msk

int

Trigger output level 1 CSG comparator mask.

Default value: 0

trig-level-1-limit-msk

int

Trigger output level 1 SAR limit detector mask.

Default value: 0

trig-level-2-sync-bypass

int

Trigger output level 2 sync bypass flag (0 or 1).

Default value: 0

trig-level-2-comp-msk

int

Trigger output level 2 CSG comparator mask.

Default value: 0

trig-level-2-limit-msk

int

Trigger output level 2 SAR limit detector mask.

Default value: 0

trig-level-3-sync-bypass

int

Trigger output level 3 sync bypass flag (0 or 1).

Default value: 0

trig-level-3-comp-msk

int

Trigger output level 3 CSG comparator mask.

Default value: 0

trig-level-3-limit-msk

int

Trigger output level 3 SAR limit detector mask.

Default value: 0

trig-level-4-sync-bypass

int

Trigger output level 4 sync bypass flag (0 or 1).

Default value: 0

trig-level-4-comp-msk

int

Trigger output level 4 CSG comparator mask.

Default value: 0

trig-level-4-limit-msk

int

Trigger output level 4 SAR limit detector mask.

Default value: 0

trig-level-5-sync-bypass

int

Trigger output level 5 sync bypass flag (0 or 1).

Default value: 0

trig-level-5-comp-msk

int

Trigger output level 5 CSG comparator mask.

Default value: 0

trig-level-5-limit-msk

int

Trigger output level 5 SAR limit detector mask.

Default value: 0

trig-level-6-sync-bypass

int

Trigger output level 6 sync bypass flag (0 or 1).

Default value: 0

trig-level-6-comp-msk

int

Trigger output level 6 CSG comparator mask.

Default value: 0

trig-level-6-limit-msk

int

Trigger output level 6 SAR limit detector mask.

Default value: 0

trig-level-7-sync-bypass

int

Trigger output level 7 sync bypass flag (0 or 1).

Default value: 0

trig-level-7-comp-msk

int

Trigger output level 7 CSG comparator mask.

Default value: 0

trig-level-7-limit-msk

int

Trigger output level 7 SAR limit detector mask.

Default value: 0