Zephyr API Documentation 4.4.0-rc1
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
npm10xx.h File Reference

nPM10xx PMICs MFD interface More...

#include <zephyr/sys/slist.h>
#include <zephyr/sys/clock.h>
#include <zephyr/device.h>

Go to the source code of this file.

Data Structures

struct  mfd_npm10xx_event_callback
 nPM10xx MFD callback structure More...

Macros

RESET reasons
#define NPM10XX_RSTREAS_HIBERNATE   BIT(0)
 VBAT Hibernate mode exit by VBUS connected.
#define NPM10XX_RSTREAS_BOOTMON   BIT(1)
 Boot monitor reset.
#define NPM10XX_RSTREAS_WATCHDOG   BIT(2)
 Watchdog reset.
#define NPM10XX_RSTREAS_LONGPRESS   BIT(3)
 Longpress reset.
#define NPM10XX_RSTREAS_THERMAL   BIT(4)
 Thermal shutdown reset.
#define NPM10XX_RSTREAS_POF   BIT(5)
 POF reset.
#define NPM10XX_RSTREAS_SW   BIT(6)
 Software reset (task register).
#define NPM10XX_RSTREAS_SHIPERR   BIT(7)
 Ship mode entry error reset.
#define NPM10XX_RSTREAS_TIMER   BIT(8)
 Hibernate mode exit by timer.
#define NPM10XX_RSTREAS_BUTTON   BIT(9)
 Hibernate mode exit by SHPHLD button.
#define NPM10XX_RSTREAS_HIBERNATEVBUS   BIT(10)
 VBUS Hibernate mode exit by VBUS disconnected.
#define NPM10XX_RSTREAS_WATCHDOGSOFT   BIT(11)
 Watchdog soft reset.
ADC events
#define NPM10XX_EVENT_ADC_VBAT   BIT64(0)
 ADC VBAT conversion ready.
#define NPM10XX_EVENT_ADC_NTC   BIT64(1)
 ADC NTC conversion ready.
#define NPM10XX_EVENT_ADC_DIETEMP   BIT64(2)
 ADC die temperature conversion ready.
#define NPM10XX_EVENT_ADC_VSYS   BIT64(3)
 ADC VSYS conversion ready.
#define NPM10XX_EVENT_ADC_VBUS   BIT64(4)
 ADC VBUS conversion ready.
#define NPM10XX_EVENT_ADC_VSET   BIT64(5)
 ADC VSET conversion ready.
#define NPM10XX_EVENT_ADC_OFFSET   BIT64(6)
 ADC OFFSET conversion ready.
#define NPM10XX_EVENT_IBATVBAT   BIT64(7)
 IBAT/VBAT battery current and/or voltage conversion ready.
CHARGER events
#define NPM10XX_EVENT_CHARGE   BIT64(8)
 Charger started.
#define NPM10XX_EVENT_DISCHARGE   BIT64(9)
 Battery discharge started.
#define NPM10XX_EVENT_DROPOUT   BIT64(10)
 Dropout loop activated.
#define NPM10XX_EVENT_SUPPLEMENT   BIT64(11)
 Supplement mode activated.
#define NPM10XX_EVENT_COMPLETE   BIT64(12)
 Battery charging completed.
#define NPM10XX_EVENT_BATILIM   BIT64(13)
 Battery discharge limit activated.
#define NPM10XX_EVENT_ITERM   BIT64(14)
 Charging current below ITERM.
#define NPM10XX_EVENT_VTERM   BIT64(16)
 Battery voltage has reached VTERM.
#define NPM10XX_EVENT_RECHARGE   BIT64(17)
 Battery voltage below VRECHARGE.
#define NPM10XX_EVENT_VTHROTTLE   BIT64(18)
 Battery voltage above VTHROTTLE.
#define NPM10XX_EVENT_VWEAK   BIT64(19)
 Battery voltage above VWEAK.
#define NPM10XX_EVENT_VTRICKLE   BIT64(20)
 Battery voltage above VTRICKLEFAST.
#define NPM10XX_EVENT_VBATLOW   BIT64(21)
 Battery voltage below VBATLOW.
#define NPM10XX_EVENT_NTCCOLD   BIT64(24)
 Battery temperature in cold region.
#define NPM10XX_EVENT_NTCCOOL   BIT64(25)
 Battery temperature in cool region.
#define NPM10XX_EVENT_NTCWARM   BIT64(26)
 Battery temperature in warm region.
#define NPM10XX_EVENT_NTCHOT   BIT64(27)
 Battery temperature in hot region.
#define NPM10XX_EVENT_DIETEMP   BIT64(28)
 Die temperature is over TCHGREDUCE.
#define NPM10XX_EVENT_ERROR   BIT64(29)
 Charging error.
#define NPM10XX_EVENT_VSYSWRNPE   BIT64(30)
 VSYSWRNR threshold detected.
#define NPM10XX_EVENT_VSYSWRNNE   BIT64(31)
 VSYSWRNF threshold detected.
SYSREG/VBUS events
#define NPM10XX_EVENT_VBUSOVPE   BIT64(32)
 VBUS overvoltage detected.
#define NPM10XX_EVENT_VBUSOVNE   BIT64(33)
 VBUS overvoltage removed.
#define NPM10XX_EVENT_VBUSUNDERPE   BIT64(34)
 VBUS undervoltage detected.
#define NPM10XX_EVENT_VBUSUNDERNE   BIT64(35)
 VBUS undervoltage removed.
#define NPM10XX_EVENT_VBUSPRESENTPE   BIT64(36)
 VBUS detected.
#define NPM10XX_EVENT_VBUSPRESENTNE   BIT64(37)
 VBUS removed.
#define NPM10XX_EVENT_VBUSOKPE   BIT64(38)
 VBUS within limit.
#define NPM10XX_EVENT_VBUSOKNE   BIT64(39)
 VBUS outside the limit.
GPIO events
#define NPM10XX_EVENT_GPIO0PE   BIT64(40)
 Rising edge on GPIO0.
#define NPM10XX_EVENT_GPIO0NE   BIT64(41)
 Falling edge on GPIO0.
#define NPM10XX_EVENT_GPIO1PE   BIT64(42)
 Rising edge on GPIO1.
#define NPM10XX_EVENT_GPIO1NE   BIT64(43)
 Falling edge on GPIO1.
#define NPM10XX_EVENT_GPIO2PE   BIT64(44)
 Rising edge on GPIO2.
#define NPM10XX_EVENT_GPIO2NE   BIT64(45)
 Falling edge on GPIO2.
SYSTEM events
#define NPM10XX_EVENT_TIMERTIMEOUT   BIT64(48)
 General purpose timer expired.
#define NPM10XX_EVENT_TIMERFREE   BIT64(49)
 Timer free event.
#define NPM10XX_EVENT_TIMERPREWARN   BIT64(50)
 Pre‑warning event before timer expires.
#define NPM10XX_EVENT_LDOSWOC   BIT64(51)
 LOADSW1/LDO1 overcurrent.
#define NPM10XX_EVENT_LOADSWOC   BIT64(52)
 LOADSW2 overcurrent.
#define NPM10XX_EVENT_SHPHLDPE   BIT64(53)
 Rising edge on SHPHLD.
#define NPM10XX_EVENT_SHPHLDNE   BIT64(54)
 Falling edge on SHPHLD.
#define NPM10XX_EVENT_ADCTEST   BIT64(55)
 ADC test finished.

Typedefs

typedef uint64_t npm10xx_event_t
 Identifies a set of events for the event callback.
typedef uint16_t npm10xx_rstreas_t
 Identifies a reset reason.
typedef void(* npm10xx_callback_handler_t) (const struct device *mfd_npm10xx_dev, struct mfd_npm10xx_event_callback *cb, npm10xx_event_t events)
 Define the application callback handler function signature.

Enumerations

enum  mfd_npm10xx_hibernate_mode { NPM10XX_HIBERNATE_VBAT , NPM10XX_HIBERNATE_VBUS_WAIT , NPM10XX_HIBERNATE_VBUS_NOWAIT }
 nPM10xx Hibernate modes More...
enum  mfd_npm10xx_standby_op {
  NPM10XX_STANDBY1_ENTER_WAIT , NPM10XX_STANDBY1_ENTER_NOWAIT , NPM10XX_STANDBY2_ENTER_WAIT , NPM10XX_STANDBY2_ENTER_NOWAIT ,
  NPM10XX_STANDBY_EXIT
}
 nPM10xx Standby operations More...

Functions

int mfd_npm10xx_reset (const struct device *dev)
 Reset the nPM10xx PMIC device.
int mfd_npm10xx_get_reset_reason (const struct device *dev, npm10xx_rstreas_t *reason)
 Retrieve and clear the reset reason of the nPM10xx PMIC device.
int mfd_npm10xx_hibernate (const struct device *dev, enum mfd_npm10xx_hibernate_mode mode, k_timeout_t time)
 Trigger a Hibernate mode on an nPM10xx PMIC device.
int mfd_npm10xx_standby (const struct device *dev, enum mfd_npm10xx_standby_op operation)
 Enter or exit a VBUS Standby mode on an nPM10xx PMIC device.
int mfd_npm10xx_manage_callback (const struct device *dev, struct mfd_npm10xx_event_callback *callback, bool add)
 Manage nPM10xx event callbacks.

Detailed Description

nPM10xx PMICs MFD interface