LCOV - code coverage report
Current view: top level - zephyr/drivers/mfd - pca9422.h Coverage Total Hit
Test: new.info Lines: 66.7 % 9 6
Test Date: 2025-09-25 19:22:35

            Line data    Source code
       1            0 : /*
       2              :  * Copyright 2025 NXP
       3              :  *
       4              :  * SPDX-License-Identifier: Apache-2.0
       5              :  */
       6              : 
       7              : #ifndef ZEPHYR_INCLUDE_DRIVERS_MFD_PCA9422_H_
       8              : #define ZEPHYR_INCLUDE_DRIVERS_MFD_PCA9422_H_
       9              : 
      10              : #ifdef __cplusplus
      11              : extern "C" {
      12              : #endif
      13              : 
      14              : /**
      15              :  * @defgroup mdf_interface_pca9422 MFD PCA9422 Interface
      16              :  * @ingroup mfd_interfaces
      17              :  * @{
      18              :  */
      19              : 
      20              : #include <stddef.h>
      21              : #include <stdint.h>
      22              : 
      23              : #include <zephyr/device.h>
      24              : 
      25            0 : typedef void (*child_isr_t)(const struct device *dev);
      26              : 
      27              : /**
      28              :  * @brief Child device of pca9422
      29              :  */
      30            0 : enum child_dev {
      31              :         PCA9422_DEV_REG = 0, /** Regulator */
      32              :         PCA9422_DEV_CHG,     /** Charger */
      33              :         PCA9422_DEV_FG,      /** Fuelgauge */
      34              :         PCA9422_DEV_MAX,     /** Maximum number of child devices */
      35              : };
      36              : 
      37              : /**
      38              :  * @brief Set child interrupt handler of pca9422
      39              :  *
      40              :  * @param dev pca9422 mfd device
      41              :  * @param child_dev pca9422 child device
      42              :  * @param child_idx index in enum type of child device
      43              :  * @param handler interrupt handler of child device
      44              :  */
      45            1 : void mfd_pca9422_set_irqhandler(const struct device *dev, const struct device *child_dev,
      46              :                                 enum child_dev child_idx, child_isr_t handler);
      47              : 
      48              : /**
      49              :  * @brief Read multiple registers from pca9422
      50              :  *
      51              :  * @param dev pca9422 mfd device
      52              :  * @param reg Register start address
      53              :  * @param value Pointer that stores the received data
      54              :  * @param len Number of bytes to read
      55              :  * @retval 0 If successful
      56              :  * @retval -errno In case of any bus error (see i2c_burst_read_dt())
      57              :  */
      58            1 : int mfd_pca9422_reg_burst_read(const struct device *dev, uint8_t reg, uint8_t *value, size_t len);
      59              : 
      60              : /**
      61              :  * @brief Read single register from pca9422
      62              :  *
      63              :  * @param dev pca9422 mfd device
      64              :  * @param reg Register address
      65              :  * @param value Pointer that stores the received data
      66              :  * @retval 0 If successful
      67              :  * @retval -errno In case of any bus error (see i2c_reg_read_byte_dt())
      68              :  */
      69            1 : int mfd_pca9422_reg_read_byte(const struct device *dev, uint8_t reg, uint8_t *value);
      70              : 
      71              : /**
      72              :  * @brief Write multiple registers to pca9422
      73              :  *
      74              :  * @param dev pca9422 mfd device
      75              :  * @param reg Register start address
      76              :  * @param value Pointer that stores the write data
      77              :  * @param len Number of bytes to write
      78              :  * @retval 0 If successful
      79              :  * @retval -errno In case of any bus error (see i2c_burst_write_dt())
      80              :  */
      81            1 : int mfd_pca9422_reg_burst_write(const struct device *dev, uint8_t reg, uint8_t *value, size_t len);
      82              : 
      83              : /**
      84              :  * @brief Write single register to pca9422
      85              :  *
      86              :  * @param dev pca9422 mfd device
      87              :  * @param reg Register address
      88              :  * @param value data to write
      89              :  * @retval 0 If successful
      90              :  * @retval -errno In case of any bus error (see i2c_reg_write_byte_dt())
      91              :  */
      92            1 : int mfd_pca9422_reg_write_byte(const struct device *dev, uint8_t reg, uint8_t value);
      93              : 
      94              : /**
      95              :  * @brief Update selected bits in pca9422 register
      96              :  *
      97              :  * @param dev pca9422 mfd device
      98              :  * @param reg Register address
      99              :  * @param mask mask of bits to be modified
     100              :  * @param value data to write
     101              :  * @retval 0 If successful
     102              :  * @retval -errno In case of any bus error (see i2c_reg_update_byte_dt())
     103              :  */
     104            1 : int mfd_pca9422_reg_update_byte(const struct device *dev, uint8_t reg, uint8_t mask, uint8_t value);
     105              : 
     106              : /** @} */
     107              : 
     108              : #ifdef __cplusplus
     109              : }
     110              : #endif
     111              : 
     112              : #endif /* ZEPHYR_INCLUDE_DRIVERS_MFD_PCA9422_H_ */
        

Generated by: LCOV version 2.0-1