PMU Configuration

The atmosic,atmx3-pmu.yaml binding defines PMU configuration related to battery type, battery level, VDDIO/VSTORE configuration, RF and PV harvesting, external boost options, harvesting metering, SoC-off wakeup, and 32 kHz crystal load calibration. The atmosic,brownout binding defines brownout policy and threshold configuration.

reg

Required.

interrupts

Required. PMU interrupt (PMU_IRQn) for brownout, PMU watchdog warning, and energy monitoring events.

The PMU driver provides a central handler that dispatches to appropriate sub-handlers based on compile-time configuration:

  • CONFIG_ATM_BROWNOUT

  • CONFIG_WDT_ATMOSIC_PMU_ENABLE

Battery and supply configuration

batt-type

Type: int

The battery type is specified through OTP and defaults to non-rechargeable. This property can override that default based on the board design.

Valid batt-type values:

  • 0: Li-ion

  • 1: Rechargeable

  • 2: No battery

  • 3: Non-rechargeable

If you wish to use Li-ion (batt-type = <0>), first power the board using a power source that is not lithium-ion, then load a program with batt-type set to <0>. This enables the lithium-ion power circuit. You can then disconnect the non-lithium-ion power source, connect the lithium-ion battery, and proceed normally.

batt-level

Type: int

The battery level is specified through OTP and defaults to > 1.8 V. This property can override that default.

Valid batt-level values:

  • 0: <= 1.8 V

  • 1: > 1.8 V

initial-volt-check-thr

Type: int

ATM34 raw initial voltage-check threshold, X, used by secure early initialization (CONFIG_ATM_SEC_HW_CFG) on every boot to determine whether software may boot before the runtime brownout detector is active. This check is separate from the runtime brownout-thr-vbat policy. Its formulas are similar to the brownout-thr-vbat formulas (see the Brownout threshold configuration section below), but include a fixed +0.1 V offset:

  • Rechargeable or non-rechargeable, > 1.8 V:

    V = 1.4 V + 0.1 V + 0.05 V * X; raw X: 8 to 31; default X: 20

  • Rechargeable or non-rechargeable, <= 1.8 V:

    V = 0.9 V + 0.1 V + 0.025 V * X; raw X: 4 to 31; default X: 8

  • Li-ion, > 1.8 V:

    V = 2.4 V + 0.1 V + 0.05 V * X; raw X: 6 to 31; default X: 16

  • Li-ion, <= 1.8 V:

    V = 1.9 V + 0.1 V + 0.025 V * X; raw X: 0 to 31; default X: 20

Note

Although Devicetree supplies the raw X value, the hardware selects the voltage formula from the battery configuration programmed in OTP, i.e. it does not use the overlay’s batt-type or batt-level property to select the formula. Choose X for the battery type and level programmed in OTP.

When MCUboot is used, the &pmu node overlay must also be passed to the MCUboot image because the secure early initialization and voltage check execute there. Add an MCUboot-specific overlay with -Dmcuboot_EXTRA_DTC_OVERLAY_FILE=<path>.

&pmu {
    initial-volt-check-thr = <20>;
};

Verify the effective value in build/mcuboot/zephyr/zephyr.dts.

vddio-type

Type: int

The VDDIO type defaults to Internal and can be overridden through the vddio-type property based on the board design.

Valid vddio-type values:

  • 0: Internal

  • 1: External

The external VDDIO type is determined by the source on the board, which is commonly assumed to be VBAT. Therefore, it is supported only for > 1.8 V (batt-level = <1>).

vstore-max

Type: int

The VSTORE maximum is specified through OTP and can be overridden through the vstore-max property.

Supported values for vstore-max:

  • 1500 mV to 3000 mV in 50 mV steps

  • 3100 mV

  • 3300 mV (default)

vddpa-src

Type: int

Supply source for VDDPA.

Valid vddpa-src values:

  • 0: VDDIOP

  • 1: VDDPAP / VSTORE (platform-specific naming)

  • 2: None

hsc-mode

Type: boolean

Indicates whether the design uses a Hybrid Super Cap.

This is valid only for Li-ion (batt-type = <0>).

Brownout threshold configuration

Enable brownout handling with CONFIG_ATM_BROWNOUT. Configure custom thresholds in an application Devicetree overlay by adding properties to the &brownout node. When these properties are absent, the driver selects defaults based on the SoC and battery configuration. The hardware-comparator threshold properties use raw integer values, X.

Brownout threshold formulas

ATM34

ATM34 brownout threshold formulas

Configuration

Property

Formula

Valid value X

Default value X

Rechargeable or non-rechargeable, > 1.8 V
batt-type = <1 or 3>, batt-level = <1>

brownout-thr-vbat

V = 1.4 V + 0.05 V * X

8 to 31
1.8 V to 2.95 V
14
2.1 V
Rechargeable or non-rechargeable, <= 1.8 V
batt-type = <1 or 3>, batt-level = <0>

brownout-thr-vbat

V = 0.9 V + 0.025 V * X

4 to 31
1.0 V to 1.675 V
4
1.0 V
Li-ion VBATLI, > 1.8 V
batt-type = <0>, batt-level = <1>

brownout-thr-vbat

V = 2.4 V + 0.05 V * X

6 to 31
2.7 V to 3.95 V
10
2.9 V
Li-ion VBATLI, <= 1.8 V
batt-type = <0>, batt-level = <0>

brownout-thr-vbat

V = 1.9 V + 0.025 V * X

0 to 31
1.9 V to 2.675 V
8
2.1 V

ATM5

ATM5 brownout threshold formulas

Configuration

Property

Formula

Valid value X

Default value X

Boost mode

brownout-thr-vbat

V = 0.875 V + 0.025 V * X

3 to 14
0.95 V to 1.225 V
3
0.95 V

Buck mode

brownout-thr-vbat

V = 1.75 V + 0.05 V * X

3 to 14
1.9 V to 2.45 V
3
1.9 V
brownout-thr-vbat

Type: int

Raw hardware-comparator threshold for the applicable ATM34 or ATM5 configuration. See the platform-specific table above for the formula and valid range.

brownout-thr-vstore

Type: int

Raw VSTORE brownout threshold for ATM34 non-VBATLI configurations that monitor VSTORE. See the ATM34 table above for its formula and range. For a rechargeable battery, brownout-thr-vstore must be 31.

brownout-thr-vbat-hysteresis-delta

Type: int

Raw value added to brownout-thr-vbat after a brownout wakeup to provide hysteresis. The summed raw threshold must be within the applicable platform range; an invalid configuration is rejected at build time. On ATM34, the resulting hysteresis voltage formula includes a fixed +0.1 V offset, the same offset used by initial-volt-check-thr. The delta must be non-negative, and the sum of this value and brownout-thr-vbat must satisfy the same configuration-specific range shown in the table above.

An explicit brownout-thr-vbat-hysteresis-delta property overrides these fallbacks.

Harvesting configuration

nonrf-harv

Type: boolean

Enables photovoltaic (PV) harvesting. Can be specified with rf-harv to enable combined harvesting.

rf-harv

Type: boolean

Enables RF harvesting. Can be specified with nonrf-harv to enable combined harvesting.

vharv-range

Type: int

The harvesting range must be specified when using PV harvesting and needs to match the PV cell operating region.

Valid vharv-range values:

  • 0: 0.4 V - 0.45 V

  • 1: 0.45 V - 0.5 V

  • 2: 0.525 V - 0.6 V

  • 3: 0.6 V - 0.7 V

  • 4: 0.675 V - 0.8 V

  • 5: 0.75 V - 0.9 V

  • 6: 0.825 V - 1.0 V

  • 7: 0.9 V - 1.1 V

  • 8: 0.975 V - 1.2 V

  • 9: 1.05 V - 1.3 V

  • 10: 1.175 V - 1.45 V

  • 11: 1.3 V - 1.6 V

  • 12: 1.5 V - 1.8 V

  • 13: 1.7 V - 2.0 V

  • 14: 1.95 V - 2.25 V

  • 15: 2.2 V - 2.5 V

External boost options

boost-from-vharv-inductor

Type: boolean

This option is only available with Li-ion (batt-type = <0>), PV harvesting enabled, and a valid vharv-range setting.

Refer to the application notes for the applicable scenarios, hardware connections, and performance.

Based on the selected PV cell characteristics, choose the lower or upper level of vharv-range by enabling one of these properties:

  • vharv-ll

  • vharv-ul

vharv-ll

Type: boolean

Select the lower level of the configured vharv-range.

vharv-ul

Type: boolean

Select the upper level of the configured vharv-range.

dig-test-out-pin

Type: int

Digital test output pin. Set when using inductive boost.

boost-io-pin

Type: int

Boost I/O pin. Set when using two-diode boost.

boost-from-vharv-two-diode

Type: boolean

This option is only available with Li-ion (batt-type = <0>), PV harvesting enabled, and a valid vharv-range setting.

Refer to the application notes for the applicable scenarios, hardware connections, and performance.

boost-from-vstore-two-diode

Type: boolean

This option is only available with Li-ion (batt-type = <0>), PV harvesting enabled, and a valid vharv-range setting.

Refer to the application notes for the applicable scenarios, hardware connections, and performance.

Harvesting meter

harv-meter

Type: boolean

Supported only when MPPT is disabled. The application must call the pmu_set_harv_meter() API to start or stop the meter.

Instantaneous power computation depends on the configured vharv-range and the inductor used.

inductor-nhenry

Type: int

Inductor value, in nH, used in the board design for the harvesting meter.

SoC-off wakeup configuration

soc-off-lpcomp-wakeup-pin

Type: int

LP comparator input pin number for SoC-off wakeup.

Valid values are platform-specific:

  • ATM33/e, ATM34/e, ATM5/e: 3 or 4

When this property is defined, soc-off-lpcomp-ref-level must also be defined.

soc-off-lpcomp-ref-level

Type: int

LP comparator reference voltage level (1 to 15).

The system wakes when the input voltage crosses this threshold.

This property is required when soc-off-lpcomp-wakeup-pin is defined.

32 kHz crystal load calibration

xtal-32k-cap-in

Type: int

32 kHz crystal load value on XTALI_32K. The value is calculated using calibration tools.

xtal-32k-cap-out

Type: int

32 kHz crystal load value on XTALO_32K. The value is calculated using calibration tools.