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 */