Zephyr Project API
4.4.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
gpio_rp1.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2024 Junho Lee <junho@tsnlab.com>
3
* Copyright (c) 2025 TOKITA Hiroshi
4
*
5
* SPDX-License-Identifier: Apache-2.0
6
*/
7
8
#ifndef ZEPHYR_INCLUDE_DRIVERS_GPIO_GPIO_RP1_H
9
#define ZEPHYR_INCLUDE_DRIVERS_GPIO_GPIO_RP1_H
10
15
20
21
/* Bit positions and masks for the RP1 GPIO control register. */
22
#define GPIO_CTRL_FUNCSEL_SHIFT 0
23
#define GPIO_CTRL_FUNCSEL_MASK (BIT_MASK(5) << GPIO_CTRL_FUNCSEL_SHIFT)
24
#define GPIO_CTRL_F_M_SHIFT 5
25
#define GPIO_CTRL_F_M_MASK (BIT_MASK(7) << GPIO_CTRL_F_M_SHIFT)
26
#define GPIO_CTRL_OUTOVER_SHIFT 12
27
#define GPIO_CTRL_OUTOVER_MASK (BIT_MASK(2) << GPIO_CTRL_OUTOVER_SHIFT)
28
#define GPIO_CTRL_OEOVER_SHIFT 14
29
#define GPIO_CTRL_OEOVER_MASK (BIT_MASK(2) << GPIO_CTRL_OEOVER_SHIFT)
30
#define GPIO_CTRL_INOVER_SHIFT 16
31
#define GPIO_CTRL_INOVER_MASK (BIT_MASK(2) << GPIO_CTRL_INOVER_SHIFT)
32
#define GPIO_CTRL_IRQMASK_EDGE_LOW_SHIFT 20
33
#define GPIO_CTRL_IRQMASK_EDGE_LOW_MASK (BIT_MASK(1) << GPIO_CTRL_IRQMASK_EDGE_LOW_SHIFT)
34
#define GPIO_CTRL_IRQMASK_EDGE_HIGH_SHIFT 21
35
#define GPIO_CTRL_IRQMASK_EDGE_HIGH_MASK (BIT_MASK(1) << GPIO_CTRL_IRQMASK_EDGE_HIGH_SHIFT)
36
#define GPIO_CTRL_IRQMASK_LEVEL_LOW_SHIFT 22
37
#define GPIO_CTRL_IRQMASK_LEVEL_LOW_MASK (BIT_MASK(1) << GPIO_CTRL_IRQMASK_LEVEL_LOW_SHIFT)
38
#define GPIO_CTRL_IRQMASK_LEVEL_HIGH_SHIFT 23
39
#define GPIO_CTRL_IRQMASK_LEVEL_HIGH_MASK (BIT_MASK(1) << GPIO_CTRL_IRQMASK_LEVEL_HIGH_SHIFT)
40
#define GPIO_CTRL_IRQMASK_F_EDGE_LOW_SHIFT 24
41
#define GPIO_CTRL_IRQMASK_F_EDGE_LOW_MASK (BIT_MASK(1) << GPIO_CTRL_IRQMASK_F_EDGE_LOW_SHIFT)
42
#define GPIO_CTRL_IRQMASK_F_EDGE_HIGH_SHIFT 25
43
#define GPIO_CTRL_IRQMASK_F_EDGE_HIGH_MASK (BIT_MASK(1) << GPIO_CTRL_IRQMASK_F_EDGE_HIGH_SHIFT)
44
#define GPIO_CTRL_IRQMASK_DB_LEVEL_LOW_SHIFT 26
45
#define GPIO_CTRL_IRQMASK_DB_LEVEL_LOW_MASK (BIT_MASK(1) << GPIO_CTRL_IRQMASK_DB_LEVEL_LOW_SHIFT)
46
#define GPIO_CTRL_IRQMASK_DB_LEVEL_HIGH_SHIFT 27
47
#define GPIO_CTRL_IRQMASK_DB_LEVEL_HIGH_MASK (BIT_MASK(1) << GPIO_CTRL_IRQMASK_DB_LEVEL_HIGH_SHIFT)
48
#define GPIO_CTRL_IRQRESET_SHIFT 28
49
#define GPIO_CTRL_IRQRESET_MASK (BIT_MASK(1) << GPIO_CTRL_IRQRESET_SHIFT)
50
#define GPIO_CTRL_IRQOVER_SHIFT 30
51
#define GPIO_CTRL_IRQOVER_MASK (BIT_MASK(2) << GPIO_CTRL_IRQOVER_SHIFT)
52
53
/* Reserved bits in the RP1 GPIO control register. */
54
#define GPIO_CTRL_RESERVED_MASK (BIT(29) | BIT(19) | BIT(18))
55
56
/* Bit positions and masks for the RP1 pad control register. */
57
#define GPIO_PADS_SLEWFAST_SHIFT 0
58
#define GPIO_PADS_SLEWFAST_MASK (BIT_MASK(1) << GPIO_PADS_SLEWFAST_SHIFT)
59
#define GPIO_PADS_SCHMITT_ENABLE_SHIFT 1
60
#define GPIO_PADS_SCHMITT_ENABLE_MASK (BIT_MASK(1) << GPIO_PADS_SCHMITT_ENABLE_SHIFT)
61
#define GPIO_PADS_PULL_DOWN_ENABLE_SHIFT 2
62
#define GPIO_PADS_PULL_DOWN_ENABLE_MASK (BIT_MASK(1) << GPIO_PADS_PULL_DOWN_ENABLE_SHIFT)
63
#define GPIO_PADS_PULL_UP_ENABLE_SHIFT 3
64
#define GPIO_PADS_PULL_UP_ENABLE_MASK (BIT_MASK(1) << GPIO_PADS_PULL_UP_ENABLE_SHIFT)
65
#define GPIO_PADS_DRIVE_SHIFT 4
66
#define GPIO_PADS_DRIVE_MASK (BIT_MASK(2) << GPIO_PADS_DRIVE_SHIFT)
67
#define GPIO_PADS_INPUT_ENABLE_SHIFT 6
68
#define GPIO_PADS_INPUT_ENABLE_MASK (BIT_MASK(1) << GPIO_PADS_INPUT_ENABLE_SHIFT)
69
#define GPIO_PADS_OUTPUT_DISABLE_SHIFT 7
70
#define GPIO_PADS_OUTPUT_DISABLE_MASK (BIT_MASK(1) << GPIO_PADS_OUTPUT_DISABLE_SHIFT)
71
72
/* Reserved bits in the RP1 pad control register. */
73
#define GPIO_PADS_RESERVED_MASK GENMASK(31, 8)
74
78
79
#endif
/* ZEPHYR_INCLUDE_DRIVERS_GPIO_GPIO_RP1_H */
include
zephyr
drivers
gpio
gpio_rp1.h
Generated on
for Zephyr Project API by
1.16.1