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

          Line data    Source code
       1           0 : /*
       2             :  * Copyright (c) 2023 Nordic Semiconductor ASA
       3             :  * SPDX-License-Identifier: Apache-2.0
       4             :  */
       5             : 
       6             : #ifndef ZEPHYR_INCLUDE_DRIVERS_MFD_NPM1300_H_
       7             : #define ZEPHYR_INCLUDE_DRIVERS_MFD_NPM1300_H_
       8             : 
       9             : #ifdef __cplusplus
      10             : extern "C" {
      11             : #endif
      12             : 
      13             : /**
      14             :  * @defgroup mdf_interface_npm1300 MFD NPM1300 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_npm1300_event_t {
      26             :         NPM1300_EVENT_CHG_COMPLETED,
      27             :         NPM1300_EVENT_CHG_ERROR,
      28             :         NPM1300_EVENT_BATTERY_DETECTED,
      29             :         NPM1300_EVENT_BATTERY_REMOVED,
      30             :         NPM1300_EVENT_SHIPHOLD_PRESS,
      31             :         NPM1300_EVENT_SHIPHOLD_RELEASE,
      32             :         NPM1300_EVENT_WATCHDOG_WARN,
      33             :         NPM1300_EVENT_VBUS_DETECTED,
      34             :         NPM1300_EVENT_VBUS_REMOVED,
      35             :         NPM1300_EVENT_GPIO0_EDGE,
      36             :         NPM1300_EVENT_GPIO1_EDGE,
      37             :         NPM1300_EVENT_GPIO2_EDGE,
      38             :         NPM1300_EVENT_GPIO3_EDGE,
      39             :         NPM1300_EVENT_GPIO4_EDGE,
      40             :         NPM1300_EVENT_MAX
      41             : };
      42             : 
      43             : /**
      44             :  * @brief Read multiple registers from npm1300
      45             :  *
      46             :  * @param dev npm1300 mfd device
      47             :  * @param base Register base address (bits 15..8 of 16-bit address)
      48             :  * @param offset Register offset address (bits 7..0 of 16-bit address)
      49             :  * @param data Pointer to buffer for received data
      50             :  * @param len Number of bytes to read
      51             :  * @retval 0 If successful
      52             :  * @retval -errno In case of any bus error (see i2c_write_read_dt())
      53             :  */
      54           1 : int mfd_npm1300_reg_read_burst(const struct device *dev, uint8_t base, uint8_t offset, void *data,
      55             :                                size_t len);
      56             : 
      57             : /**
      58             :  * @brief Read single register from npm1300
      59             :  *
      60             :  * @param dev npm1300 mfd device
      61             :  * @param base Register base address (bits 15..8 of 16-bit address)
      62             :  * @param offset Register offset address (bits 7..0 of 16-bit address)
      63             :  * @param data Pointer to buffer for received data
      64             :  * @retval 0 If successful
      65             :  * @retval -errno In case of any bus error (see i2c_write_read_dt())
      66             :  */
      67           1 : int mfd_npm1300_reg_read(const struct device *dev, uint8_t base, uint8_t offset, uint8_t *data);
      68             : 
      69             : /**
      70             :  * @brief Write single register to npm1300
      71             :  *
      72             :  * @param dev npm1300 mfd device
      73             :  * @param base Register base address (bits 15..8 of 16-bit address)
      74             :  * @param offset Register offset address (bits 7..0 of 16-bit address)
      75             :  * @param data data to write
      76             :  * @retval 0 If successful
      77             :  * @retval -errno In case of any bus error (see i2c_write_dt())
      78             :  */
      79           1 : int mfd_npm1300_reg_write(const struct device *dev, uint8_t base, uint8_t offset, uint8_t data);
      80             : 
      81             : /**
      82             :  * @brief Write two registers to npm1300
      83             :  *
      84             :  * @param dev npm1300 mfd device
      85             :  * @param base Register base address (bits 15..8 of 16-bit address)
      86             :  * @param offset Register offset address (bits 7..0 of 16-bit address)
      87             :  * @param data1 first byte of data to write
      88             :  * @param data2 second byte of data to write
      89             :  * @retval 0 If successful
      90             :  * @retval -errno In case of any bus error (see i2c_write_dt())
      91             :  */
      92           1 : int mfd_npm1300_reg_write2(const struct device *dev, uint8_t base, uint8_t offset, uint8_t data1,
      93             :                            uint8_t data2);
      94             : 
      95             : /**
      96             :  * @brief Update selected bits in npm1300 register
      97             :  *
      98             :  * @param dev npm1300 mfd device
      99             :  * @param base Register base address (bits 15..8 of 16-bit address)
     100             :  * @param offset Register offset address (bits 7..0 of 16-bit address)
     101             :  * @param data data to write
     102             :  * @param mask mask of bits to be modified
     103             :  * @retval 0 If successful
     104             :  * @retval -errno In case of any bus error (see i2c_write_read_dt(), i2c_write_dt())
     105             :  */
     106           1 : int mfd_npm1300_reg_update(const struct device *dev, uint8_t base, uint8_t offset, uint8_t data,
     107             :                            uint8_t mask);
     108             : 
     109             : /**
     110             :  * @brief Write npm1300 timer register
     111             :  *
     112             :  * @param dev npm1300 mfd device
     113             :  * @param time_ms timer value in ms
     114             :  * @retval 0 If successful
     115             :  * @retval -EINVAL if time value is too large
     116             :  * @retval -errno In case of any bus error (see i2c_write_dt())
     117             :  */
     118           1 : int mfd_npm1300_set_timer(const struct device *dev, uint32_t time_ms);
     119             : 
     120             : /**
     121             :  * @brief npm1300 full power reset
     122             :  *
     123             :  * @param dev npm1300 mfd device
     124             :  * @retval 0 If successful
     125             :  * @retval -errno In case of any bus error (see i2c_write_dt())
     126             :  */
     127           1 : int mfd_npm1300_reset(const struct device *dev);
     128             : 
     129             : /**
     130             :  * @brief npm1300 hibernate
     131             :  *
     132             :  * Enters low power state, and wakes after specified time
     133             :  *
     134             :  * @param dev npm1300 mfd device
     135             :  * @param time_ms timer value in ms
     136             :  * @retval 0 If successful
     137             :  * @retval -EINVAL if time value is too large
     138             :  * @retval -errno In case of any bus error (see i2c_write_dt())
     139             :  */
     140           1 : int mfd_npm1300_hibernate(const struct device *dev, uint32_t time_ms);
     141             : 
     142             : /**
     143             :  * @brief Add npm1300 event callback
     144             :  *
     145             :  * @param dev npm1300 mfd device
     146             :  * @param callback callback
     147             :  * @return 0 on success, -errno on failure
     148             :  */
     149           1 : int mfd_npm1300_add_callback(const struct device *dev, struct gpio_callback *callback);
     150             : 
     151             : /**
     152             :  * @brief Remove npm1300 event callback
     153             :  *
     154             :  * @param dev npm1300 mfd device
     155             :  * @param callback callback
     156             :  * @return 0 on success, -errno on failure
     157             :  */
     158           1 : int mfd_npm1300_remove_callback(const struct device *dev, struct gpio_callback *callback);
     159             : 
     160             : /** @} */
     161             : 
     162             : #ifdef __cplusplus
     163             : }
     164             : #endif
     165             : 
     166             : #endif /* ZEPHYR_INCLUDE_DRIVERS_MFD_NPM1300_H_ */

Generated by: LCOV version 1.14