LCOV - code coverage report
Current view: top level - zephyr/drivers/mfd - npm2100.h Hit Total Coverage
Test: new.info Lines: 6 9 66.7 %
Date: 2024-12-22 00:14:23

          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             :  *
      96             :  * @param dev npm2100 mfd device
      97             :  * @param time_ms timer value in ms. Set to 0 to disable timer.
      98             :  * @retval 0 If successful
      99             :  * @retval -EINVAL if time value is too large
     100             :  * @retval -EBUSY if the timer is already in use.
     101             :  * @retval -errno In case of any bus error (see i2c_write_dt())
     102             :  */
     103           1 : int mfd_npm2100_hibernate(const struct device *dev, uint32_t time_ms);
     104             : 
     105             : /**
     106             :  * @brief Add npm2100 event callback
     107             :  *
     108             :  * @param dev npm2100 mfd device
     109             :  * @param callback callback
     110             :  * @return 0 on success, -errno on failure
     111             :  */
     112           1 : int mfd_npm2100_add_callback(const struct device *dev, struct gpio_callback *callback);
     113             : 
     114             : /**
     115             :  * @brief Remove npm2100 event callback
     116             :  *
     117             :  * @param dev npm2100 mfd device
     118             :  * @param callback callback
     119             :  * @return 0 on success, -errno on failure
     120             :  */
     121           1 : int mfd_npm2100_remove_callback(const struct device *dev, struct gpio_callback *callback);
     122             : 
     123             : /** @} */
     124             : 
     125             : #ifdef __cplusplus
     126             : }
     127             : #endif
     128             : 
     129             : #endif /* ZEPHYR_INCLUDE_DRIVERS_MFD_NPM2100_H_ */

Generated by: LCOV version 1.14