LCOV - code coverage report
Current view: top level - zephyr/drivers/misc/nxp_flexio - nxp_flexio.h Hit Total Coverage
Test: new.info Lines: 9 17 52.9 %
Date: 2024-12-21 15:13:37

          Line data    Source code
       1           0 : /*
       2             :  * Copyright (c) 2024, STRIM, ALC
       3             :  *
       4             :  * SPDX-License-Identifier: Apache-2.0
       5             :  */
       6             : 
       7             : #ifndef ZEPHYR_DRIVERS_MISC_NXP_FLEXIO_NXP_FLEXIO_H_
       8             : #define ZEPHYR_DRIVERS_MISC_NXP_FLEXIO_NXP_FLEXIO_H_
       9             : 
      10             : #include <zephyr/device.h>
      11             : 
      12             : /**
      13             :  * @struct nxp_flexio_child_res
      14             :  * @brief Structure containing information about the required
      15             :  * resources for a FlexIO child.
      16             :  */
      17           1 : struct nxp_flexio_child_res {
      18           0 :         uint8_t *shifter_index;
      19           0 :         uint8_t shifter_count;
      20           0 :         uint8_t *timer_index;
      21           0 :         uint8_t timer_count;
      22             : };
      23             : 
      24             : /**
      25             :  * @typedef nxp_flexio_child_isr_t
      26             :  * @brief Callback API to inform API user that FlexIO triggered interrupt
      27             :  *
      28             :  * This callback is called from IRQ context.
      29             :  */
      30           1 : typedef int (*nxp_flexio_child_isr_t)(void *user_data);
      31             : 
      32             : /**
      33             :  * @struct nxp_flexio_child
      34             :  * @brief Structure containing the required child data for FlexIO
      35             :  */
      36           1 : struct nxp_flexio_child {
      37           0 :         nxp_flexio_child_isr_t isr;
      38           0 :         void *user_data;
      39           0 :         struct nxp_flexio_child_res res;
      40             : };
      41             : 
      42             : /**
      43             :  * @brief Enable FlexIO IRQ
      44             :  * @param dev Pointer to the device structure for the FlexIO driver instance
      45             :  */
      46           1 : void nxp_flexio_irq_enable(const struct device *dev);
      47             : 
      48             : /**
      49             :  * @brief Disable FlexIO IRQ
      50             :  * @param dev Pointer to the device structure for the FlexIO driver instance
      51             :  */
      52           1 : void nxp_flexio_irq_disable(const struct device *dev);
      53             : 
      54             : /**
      55             :  * @brief Lock FlexIO mutex.
      56             :  * @param dev Pointer to the device structure for the FlexIO driver instance
      57             :  */
      58           1 : void nxp_flexio_lock(const struct device *dev);
      59             : 
      60             : /**
      61             :  * @brief Unlock FlexIO mutex.
      62             :  * @param dev Pointer to the device structure for the FlexIO driver instance
      63             :  */
      64           1 : void nxp_flexio_unlock(const struct device *dev);
      65             : 
      66             : /**
      67             :  * @brief Obtain the clock rate of sub-system used by the FlexIO
      68             :  * @param dev Pointer to the device structure for the FlexIO driver instance
      69             :  * @param[out] rate Subsystem clock rate
      70             :  * @retval 0 on successful rate reading.
      71             :  * @retval -EAGAIN if rate cannot be read. Some drivers do not support returning the rate when the
      72             :  *         clock is off.
      73             :  * @retval -ENOTSUP if reading the clock rate is not supported for the given sub-system.
      74             :  * @retval -ENOSYS if the interface is not implemented.
      75             :  */
      76           1 : int nxp_flexio_get_rate(const struct device *dev, uint32_t *rate);
      77             : 
      78             : /**
      79             :  * @brief Attach flexio child to flexio controller
      80             :  * @param dev Pointer to the device structure for the FlexIO driver instance
      81             :  * @param child Pointer to flexio child
      82             :  * @retval 0 if successful
      83             :  * @retval -ENOBUFS if there are not enough available resources
      84             :  */
      85           1 : int nxp_flexio_child_attach(const struct device *dev,
      86             :         const struct nxp_flexio_child *child);
      87             : 
      88             : #endif /* ZEPHYR_DRIVERS_MISC_NXP_FLEXIO_NXP_FLEXIO_H_ */

Generated by: LCOV version 1.14