Zephyr API Documentation
3.7.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
gpio_mmio32.h
Go to the documentation of this file.
1
/*
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
extern
const
struct
gpio_driver_api
gpio_mmio32_api
;
19
20
struct
gpio_mmio32_config
{
21
/* gpio_driver_config needs to be first */
22
struct
gpio_driver_config
common
;
23
volatile
uint32_t
*
reg
;
24
uint32_t
mask
;
25
};
26
27
struct
gpio_mmio32_context
{
28
/* gpio_driver_data needs to be first */
29
struct
gpio_driver_data
common
;
30
const
struct
gpio_mmio32_config
*
config
;
31
};
32
33
int
gpio_mmio32_init
(
const
struct
device
*dev);
34
35
#ifdef CONFIG_GPIO_MMIO32
36
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
#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_ */
device.h
gpio.h
Public APIs for GPIO drivers.
gpio_mmio32_init
int gpio_mmio32_init(const struct device *dev)
gpio_mmio32_api
const struct gpio_driver_api gpio_mmio32_api
types.h
uint32_t
__UINT32_TYPE__ uint32_t
Definition
stdint.h:90
device
Runtime device structure (in ROM) per driver instance.
Definition
device.h:403
gpio_driver_config
This structure is common to all GPIO drivers and is expected to be the first element in the object po...
Definition
gpio.h:690
gpio_driver_data
This structure is common to all GPIO drivers and is expected to be the first element in the driver's ...
Definition
gpio.h:703
gpio_mmio32_config
Definition
gpio_mmio32.h:20
gpio_mmio32_config::reg
volatile uint32_t * reg
Definition
gpio_mmio32.h:23
gpio_mmio32_config::mask
uint32_t mask
Definition
gpio_mmio32.h:24
gpio_mmio32_config::common
struct gpio_driver_config common
Definition
gpio_mmio32.h:22
gpio_mmio32_context
Definition
gpio_mmio32.h:27
gpio_mmio32_context::common
struct gpio_driver_data common
Definition
gpio_mmio32.h:29
gpio_mmio32_context::config
const struct gpio_mmio32_config * config
Definition
gpio_mmio32.h:30
zephyr
drivers
gpio
gpio_mmio32.h
Generated on Sat Sep 7 2024 21:06:07 for Zephyr API Documentation by
1.12.0