LCOV - code coverage report
Current view: top level - zephyr/drivers/gpio - gpio_mmio32.h Hit Total Coverage
Test: new.info Lines: 0 11 0.0 %
Date: 2024-12-22 00:14:23

          Line data    Source code
       1           0 : /*
       2             :  * Copyright (c) 2016 Linaro Ltd.
       3             :  *
       4             :  * SPDX-License-Identifier: Apache-2.0
       5             :  */
       6             : 
       7             : #ifndef ZEPHYR_INCLUDE_DRIVERS_GPIO_GPIO_MMIO32_H_
       8             : #define ZEPHYR_INCLUDE_DRIVERS_GPIO_GPIO_MMIO32_H_
       9             : 
      10             : #include <zephyr/device.h>
      11             : #include <zephyr/drivers/gpio.h>
      12             : #include <zephyr/types.h>
      13             : 
      14             : #ifdef __cplusplus
      15             : extern "C" {
      16             : #endif
      17             : 
      18           0 : extern const struct gpio_driver_api gpio_mmio32_api;
      19             : 
      20           0 : struct gpio_mmio32_config {
      21             :         /* gpio_driver_config needs to be first */
      22           0 :         struct gpio_driver_config common;
      23           0 :         volatile uint32_t *reg;
      24           0 :         uint32_t mask;
      25             : };
      26             : 
      27           0 : struct gpio_mmio32_context {
      28             :         /* gpio_driver_data needs to be first */
      29           0 :         struct gpio_driver_data common;
      30           0 :         const struct gpio_mmio32_config *config;
      31             : };
      32             : 
      33           0 : int gpio_mmio32_init(const struct device *dev);
      34             : 
      35             : #ifdef CONFIG_GPIO_MMIO32
      36             : 
      37             : /**
      38             :  * Create a device object for accessing a simple 32-bit i/o register using the
      39             :  * same APIs as GPIO drivers.
      40             :  *
      41             :  * @param node_id   The devicetree node identifier.
      42             :  * @param _address  The address of the 32-bit i/o register the device will
      43             :  *                  provide access to.
      44             :  * @param _mask     Mask of bits in the register that it is valid to access.
      45             :  *                  E.g. 0xffffffffu to allow access to all of them.
      46             :  *
      47             :  */
      48             : #define GPIO_MMIO32_INIT(node_id, _address, _mask)                                      \
      49             : static struct gpio_mmio32_context _CONCAT(Z_DEVICE_DT_DEV_ID(node_id), _ctx);           \
      50             :                                                                                         \
      51             : static const struct gpio_mmio32_config _CONCAT(Z_DEVICE_DT_DEV_ID(node_id), _cfg) = {   \
      52             :         .common = {                                                                     \
      53             :                  .port_pin_mask = _mask,                                                \
      54             :         },                                                                              \
      55             :         .reg    = (volatile uint32_t *)_address,                                        \
      56             :         .mask   = _mask,                                                                \
      57             : };                                                                                      \
      58             :                                                                                         \
      59             : DEVICE_DT_DEFINE(node_id,                                                               \
      60             :                     &gpio_mmio32_init,                                                      \
      61             :                     NULL,                                                               \
      62             :                     &_CONCAT(Z_DEVICE_DT_DEV_ID(node_id), _ctx),                    \
      63             :                     &_CONCAT(Z_DEVICE_DT_DEV_ID(node_id), _cfg),                    \
      64             :                     PRE_KERNEL_1, CONFIG_KERNEL_INIT_PRIORITY_DEVICE,                   \
      65             :                     &gpio_mmio32_api)
      66             : 
      67             : 
      68             : #else /* CONFIG_GPIO_MMIO32 */
      69             : 
      70             : /* Null definition for when support not configured into kernel */
      71           0 : #define GPIO_MMIO32_INIT(node_id, _address, _mask)
      72             : 
      73             : #endif
      74             : 
      75             : #ifdef __cplusplus
      76             : }
      77             : #endif
      78             : 
      79             : #endif /* ZEPHYR_INCLUDE_DRIVERS_GPIO_GPIO_MMIO32_H_ */

Generated by: LCOV version 1.14