Zephyr API Documentation 4.4.0-rc1
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
npm10xx.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2026 Nordic Semiconductor ASA
3 * SPDX-License-Identifier: Apache-2.0
4 */
5
6#ifndef ZEPHYR_INCLUDE_DRIVERS_MFD_NPM10XX_H_
7#define ZEPHYR_INCLUDE_DRIVERS_MFD_NPM10XX_H_
8
9#ifdef __cplusplus
10extern "C" {
11#endif
12
13#include <zephyr/sys/slist.h>
14#include <zephyr/sys/clock.h>
15#include <zephyr/device.h>
16
26
32#define NPM10XX_RSTREAS_HIBERNATE BIT(0)
34#define NPM10XX_RSTREAS_BOOTMON BIT(1)
36#define NPM10XX_RSTREAS_WATCHDOG BIT(2)
38#define NPM10XX_RSTREAS_LONGPRESS BIT(3)
40#define NPM10XX_RSTREAS_THERMAL BIT(4)
42#define NPM10XX_RSTREAS_POF BIT(5)
44#define NPM10XX_RSTREAS_SW BIT(6)
46#define NPM10XX_RSTREAS_SHIPERR BIT(7)
48#define NPM10XX_RSTREAS_TIMER BIT(8)
50#define NPM10XX_RSTREAS_BUTTON BIT(9)
52#define NPM10XX_RSTREAS_HIBERNATEVBUS BIT(10)
54#define NPM10XX_RSTREAS_WATCHDOGSOFT BIT(11)
56
62#define NPM10XX_EVENT_ADC_VBAT BIT64(0)
64#define NPM10XX_EVENT_ADC_NTC BIT64(1)
66#define NPM10XX_EVENT_ADC_DIETEMP BIT64(2)
68#define NPM10XX_EVENT_ADC_VSYS BIT64(3)
70#define NPM10XX_EVENT_ADC_VBUS BIT64(4)
72#define NPM10XX_EVENT_ADC_VSET BIT64(5)
74#define NPM10XX_EVENT_ADC_OFFSET BIT64(6)
76#define NPM10XX_EVENT_IBATVBAT BIT64(7)
78
84#define NPM10XX_EVENT_CHARGE BIT64(8)
86#define NPM10XX_EVENT_DISCHARGE BIT64(9)
88#define NPM10XX_EVENT_DROPOUT BIT64(10)
90#define NPM10XX_EVENT_SUPPLEMENT BIT64(11)
92#define NPM10XX_EVENT_COMPLETE BIT64(12)
94#define NPM10XX_EVENT_BATILIM BIT64(13)
96#define NPM10XX_EVENT_ITERM BIT64(14)
98#define NPM10XX_EVENT_VTERM BIT64(16)
100#define NPM10XX_EVENT_RECHARGE BIT64(17)
102#define NPM10XX_EVENT_VTHROTTLE BIT64(18)
104#define NPM10XX_EVENT_VWEAK BIT64(19)
106#define NPM10XX_EVENT_VTRICKLE BIT64(20)
108#define NPM10XX_EVENT_VBATLOW BIT64(21)
110#define NPM10XX_EVENT_NTCCOLD BIT64(24)
112#define NPM10XX_EVENT_NTCCOOL BIT64(25)
114#define NPM10XX_EVENT_NTCWARM BIT64(26)
116#define NPM10XX_EVENT_NTCHOT BIT64(27)
118#define NPM10XX_EVENT_DIETEMP BIT64(28)
120#define NPM10XX_EVENT_ERROR BIT64(29)
122#define NPM10XX_EVENT_VSYSWRNPE BIT64(30)
124#define NPM10XX_EVENT_VSYSWRNNE BIT64(31)
126
132#define NPM10XX_EVENT_VBUSOVPE BIT64(32)
134#define NPM10XX_EVENT_VBUSOVNE BIT64(33)
136#define NPM10XX_EVENT_VBUSUNDERPE BIT64(34)
138#define NPM10XX_EVENT_VBUSUNDERNE BIT64(35)
140#define NPM10XX_EVENT_VBUSPRESENTPE BIT64(36)
142#define NPM10XX_EVENT_VBUSPRESENTNE BIT64(37)
144#define NPM10XX_EVENT_VBUSOKPE BIT64(38)
146#define NPM10XX_EVENT_VBUSOKNE BIT64(39)
148
154#define NPM10XX_EVENT_GPIO0PE BIT64(40)
156#define NPM10XX_EVENT_GPIO0NE BIT64(41)
158#define NPM10XX_EVENT_GPIO1PE BIT64(42)
160#define NPM10XX_EVENT_GPIO1NE BIT64(43)
162#define NPM10XX_EVENT_GPIO2PE BIT64(44)
164#define NPM10XX_EVENT_GPIO2NE BIT64(45)
166
172#define NPM10XX_EVENT_TIMERTIMEOUT BIT64(48)
174#define NPM10XX_EVENT_TIMERFREE BIT64(49)
176#define NPM10XX_EVENT_TIMERPREWARN BIT64(50)
178#define NPM10XX_EVENT_LDOSWOC BIT64(51)
180#define NPM10XX_EVENT_LOADSWOC BIT64(52)
182#define NPM10XX_EVENT_SHPHLDPE BIT64(53)
184#define NPM10XX_EVENT_SHPHLDNE BIT64(54)
186#define NPM10XX_EVENT_ADCTEST BIT64(55)
188
198
212
215
222
224
236typedef void (*npm10xx_callback_handler_t)(const struct device *mfd_npm10xx_dev,
238 npm10xx_event_t events);
239
258
268int mfd_npm10xx_reset(const struct device *dev);
269
279
296
308int mfd_npm10xx_standby(const struct device *dev, enum mfd_npm10xx_standby_op operation);
309
323 struct mfd_npm10xx_event_callback *callback, bool add);
324
326
327#ifdef __cplusplus
328}
329#endif
330
331#endif /* ZEPHYR_INCLUDE_DRIVERS_MFD_NPM10XX_H_ */
System clock APIs.
mfd_npm10xx_hibernate_mode
nPM10xx Hibernate modes
Definition npm10xx.h:190
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.
uint16_t npm10xx_rstreas_t
Identifies a reset reason.
Definition npm10xx.h:221
int mfd_npm10xx_reset(const struct device *dev)
Reset the nPM10xx PMIC device.
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.
Definition npm10xx.h:236
uint64_t npm10xx_event_t
Identifies a set of events for the event callback.
Definition npm10xx.h:214
mfd_npm10xx_standby_op
nPM10xx Standby operations
Definition npm10xx.h:200
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_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_manage_callback(const struct device *dev, struct mfd_npm10xx_event_callback *callback, bool add)
Manage nPM10xx event callbacks.
@ NPM10XX_HIBERNATE_VBAT
Hibernate when powered from VBAT.
Definition npm10xx.h:192
@ NPM10XX_HIBERNATE_VBUS_WAIT
Hibernate when powered from VBUS.
Definition npm10xx.h:194
@ NPM10XX_HIBERNATE_VBUS_NOWAIT
Hibernate when powered from VBUS.
Definition npm10xx.h:196
@ NPM10XX_STANDBY1_ENTER_WAIT
Enter VBUS Standby1 mode (VBUS max 12V).
Definition npm10xx.h:202
@ NPM10XX_STANDBY1_ENTER_NOWAIT
Enter VBUS Standby1 mode (VBUS max 12V).
Definition npm10xx.h:204
@ NPM10XX_STANDBY2_ENTER_WAIT
Enter VBUS Standby2 mode (VBUS max 5V5).
Definition npm10xx.h:206
@ NPM10XX_STANDBY_EXIT
Exit VBUS Standby mode.
Definition npm10xx.h:210
@ NPM10XX_STANDBY2_ENTER_NOWAIT
Enter VBUS Standby2 mode (VBUS max 5V5).
Definition npm10xx.h:208
struct _snode sys_snode_t
Single-linked list node structure.
Definition slist.h:39
time_t time(time_t *tloc)
__UINT64_TYPE__ uint64_t
Definition stdint.h:91
__UINT16_TYPE__ uint16_t
Definition stdint.h:89
Runtime device structure (in ROM) per driver instance.
Definition device.h:513
Kernel timeout type.
Definition clock.h:65
nPM10xx MFD callback structure
Definition npm10xx.h:247
npm10xx_event_t event_mask
A set of events the callback is intrested in.
Definition npm10xx.h:254
sys_snode_t node
Intended for internal use by the driver.
Definition npm10xx.h:249
npm10xx_callback_handler_t handler
Function to be called when any of the provided events occur.
Definition npm10xx.h:256