LCOV - code coverage report
Current view: top level - zephyr/drivers/mfd - npm2100.h Coverage Total Hit
Test: new.info Lines: 66.7 % 9 6
Test Date: 2025-09-05 16:43:28

            Line data    Source code
       1            0 : /*
       2              :  * Copyright (c) 2024 Nordic Semiconductor ASA
       3              :  * SPDX-License-Identifier: Apache-2.0
       4              :  */
       5              : 
       6              : #ifndef ZEPHYR_INCLUDE_DRIVERS_MFD_NPM2100_H_
       7              : #define ZEPHYR_INCLUDE_DRIVERS_MFD_NPM2100_H_
       8              : 
       9              : #ifdef __cplusplus
      10              : extern "C" {
      11              : #endif
      12              : 
      13              : /**
      14              :  * @defgroup mdf_interface_npm2100 MFD NPM2100 Interface
      15              :  * @ingroup mfd_interfaces
      16              :  * @{
      17              :  */
      18              : 
      19              : #include <stddef.h>
      20              : #include <stdint.h>
      21              : 
      22              : #include <zephyr/device.h>
      23              : #include <zephyr/drivers/gpio.h>
      24              : 
      25            0 : enum mfd_npm2100_event {
      26              :         NPM2100_EVENT_SYS_DIETEMP_WARN,
      27              :         NPM2100_EVENT_SYS_SHIPHOLD_FALL,
      28              :         NPM2100_EVENT_SYS_SHIPHOLD_RISE,
      29              :         NPM2100_EVENT_SYS_PGRESET_FALL,
      30              :         NPM2100_EVENT_SYS_PGRESET_RISE,
      31              :         NPM2100_EVENT_SYS_TIMER_EXPIRY,
      32              :         NPM2100_EVENT_ADC_VBAT_READY,
      33              :         NPM2100_EVENT_ADC_DIETEMP_READY,
      34              :         NPM2100_EVENT_ADC_DROOP_DETECT,
      35              :         NPM2100_EVENT_ADC_VOUT_READY,
      36              :         NPM2100_EVENT_GPIO0_FALL,
      37              :         NPM2100_EVENT_GPIO0_RISE,
      38              :         NPM2100_EVENT_GPIO1_FALL,
      39              :         NPM2100_EVENT_GPIO1_RISE,
      40              :         NPM2100_EVENT_BOOST_VBAT_WARN,
      41              :         NPM2100_EVENT_BOOST_VOUT_MIN,
      42              :         NPM2100_EVENT_BOOST_VOUT_WARN,
      43              :         NPM2100_EVENT_BOOST_VOUT_DPS,
      44              :         NPM2100_EVENT_BOOST_VOUT_OK,
      45              :         NPM2100_EVENT_LDOSW_OCP,
      46              :         NPM2100_EVENT_LDOSW_VINTFAIL,
      47              :         NPM2100_EVENT_MAX
      48              : };
      49              : 
      50            0 : enum mfd_npm2100_timer_mode {
      51              :         NPM2100_TIMER_MODE_GENERAL_PURPOSE,
      52              :         NPM2100_TIMER_MODE_WDT_RESET,
      53              :         NPM2100_TIMER_MODE_WDT_POWER_CYCLE,
      54              :         NPM2100_TIMER_MODE_WAKEUP,
      55              : };
      56              : 
      57              : /**
      58              :  * @brief Write npm2100 timer register
      59              :  *
      60              :  * The timer tick resolution is 1/64 seconds.
      61              :  * This function does not start the timer (see mfd_npm2100_start_timer()).
      62              :  *
      63              :  * @param dev npm2100 mfd device
      64              :  * @param time_ms timer value in ms
      65              :  * @param mode timer mode
      66              :  * @retval 0 If successful
      67              :  * @retval -EINVAL if time value is too large
      68              :  * @retval -errno In case of any bus error (see i2c_write_dt())
      69              :  */
      70            1 : int mfd_npm2100_set_timer(const struct device *dev, uint32_t time_ms,
      71              :                           enum mfd_npm2100_timer_mode mode);
      72              : 
      73              : /**
      74              :  * @brief Start npm2100 timer
      75              :  *
      76              :  * @param dev npm2100 mfd device
      77              :  * @retval 0 If successful
      78              :  * @retval -errno In case of any bus error (see i2c_write_dt())
      79              :  */
      80            1 : int mfd_npm2100_start_timer(const struct device *dev);
      81              : 
      82              : /**
      83              :  * @brief npm2100 full power reset
      84              :  *
      85              :  * @param dev npm2100 mfd device
      86              :  * @retval 0 If successful
      87              :  * @retval -errno In case of any bus error (see i2c_write_dt())
      88              :  */
      89            1 : int mfd_npm2100_reset(const struct device *dev);
      90              : 
      91              : /**
      92              :  * @brief npm2100 hibernate
      93              :  *
      94              :  * Enters low power state, and wakes after specified time or "shphld" pin signal.
      95              :  * Pass-through mode can be used when the battery voltage is high enough to supply the pmic directly
      96              :  * without boosting. This lowers the power consumption of the pmic when hibernate mode is active.
      97              :  *
      98              :  * @param dev npm2100 mfd device
      99              :  * @param time_ms timer value in ms. Set to 0 to disable timer.
     100              :  * @param pass_through set to use pass-through hibernate mode.
     101              :  * @retval 0 If successful
     102              :  * @retval -EINVAL if time value is too large
     103              :  * @retval -EBUSY if the timer is already in use.
     104              :  * @retval -errno In case of any bus error (see i2c_write_dt())
     105              :  */
     106            1 : int mfd_npm2100_hibernate(const struct device *dev, uint32_t time_ms, bool pass_through);
     107              : 
     108              : /**
     109              :  * @brief Add npm2100 event callback
     110              :  *
     111              :  * @param dev npm2100 mfd device
     112              :  * @param callback callback
     113              :  * @return 0 on success, -errno on failure
     114              :  */
     115            1 : int mfd_npm2100_add_callback(const struct device *dev, struct gpio_callback *callback);
     116              : 
     117              : /**
     118              :  * @brief Remove npm2100 event callback
     119              :  *
     120              :  * @param dev npm2100 mfd device
     121              :  * @param callback callback
     122              :  * @return 0 on success, -errno on failure
     123              :  */
     124            1 : int mfd_npm2100_remove_callback(const struct device *dev, struct gpio_callback *callback);
     125              : 
     126              : /** @} */
     127              : 
     128              : #ifdef __cplusplus
     129              : }
     130              : #endif
     131              : 
     132              : #endif /* ZEPHYR_INCLUDE_DRIVERS_MFD_NPM2100_H_ */
        

Generated by: LCOV version 2.0-1