Software APIs
gpio_regs.h
Go to the documentation of this file.
1/**
2 * @file
3 * @brief Generated register defines for gpio
4 */
5
6// Copyright information found in source file:
7// Copyright lowRISC contributors (OpenTitan project).
8
9// Licensing information found in source file:
10// Licensed under the Apache License, Version 2.0, see LICENSE for details.
11// SPDX-License-Identifier: Apache-2.0
12
13#ifndef _GPIO_REG_DEFS_
14#define _GPIO_REG_DEFS_
15
16#ifdef __cplusplus
17extern "C" {
18#endif
19// Number of I/Os.
20#define GPIO_PARAM_NUM_I_OS 32
21
22// Number of input period counters.
23#define GPIO_PARAM_NUM_INP_PERIOD_COUNTERS 8
24
25// Number of alerts
26#define GPIO_PARAM_NUM_ALERTS 1
27
28// Register width
29#define GPIO_PARAM_REG_WIDTH 32
30
31// Common Interrupt Offsets
32
33// Interrupt State Register
34#define GPIO_INTR_STATE_REG_OFFSET 0x0
35#define GPIO_INTR_STATE_REG_RESVAL 0x0u
36
37// Interrupt Enable Register
38#define GPIO_INTR_ENABLE_REG_OFFSET 0x4
39#define GPIO_INTR_ENABLE_REG_RESVAL 0x0u
40
41// Interrupt Test Register
42#define GPIO_INTR_TEST_REG_OFFSET 0x8
43#define GPIO_INTR_TEST_REG_RESVAL 0x0u
44
45// Alert Test Register
46#define GPIO_ALERT_TEST_REG_OFFSET 0xc
47#define GPIO_ALERT_TEST_REG_RESVAL 0x0u
48#define GPIO_ALERT_TEST_FATAL_FAULT_BIT 0
49
50// GPIO Input data read value
51#define GPIO_DATA_IN_REG_OFFSET 0x10
52#define GPIO_DATA_IN_REG_RESVAL 0x0u
53
54// GPIO direct output data write value
55#define GPIO_DIRECT_OUT_REG_OFFSET 0x14
56#define GPIO_DIRECT_OUT_REG_RESVAL 0x0u
57
58// GPIO write data lower with mask.
59#define GPIO_MASKED_OUT_LOWER_REG_OFFSET 0x18
60#define GPIO_MASKED_OUT_LOWER_REG_RESVAL 0x0u
61#define GPIO_MASKED_OUT_LOWER_DATA_MASK 0xffffu
62#define GPIO_MASKED_OUT_LOWER_DATA_OFFSET 0
63#define GPIO_MASKED_OUT_LOWER_DATA_FIELD \
64 ((bitfield_field32_t) { .mask = GPIO_MASKED_OUT_LOWER_DATA_MASK, .index = GPIO_MASKED_OUT_LOWER_DATA_OFFSET })
65#define GPIO_MASKED_OUT_LOWER_MASK_MASK 0xffffu
66#define GPIO_MASKED_OUT_LOWER_MASK_OFFSET 16
67#define GPIO_MASKED_OUT_LOWER_MASK_FIELD \
68 ((bitfield_field32_t) { .mask = GPIO_MASKED_OUT_LOWER_MASK_MASK, .index = GPIO_MASKED_OUT_LOWER_MASK_OFFSET })
69
70// GPIO write data upper with mask.
71#define GPIO_MASKED_OUT_UPPER_REG_OFFSET 0x1c
72#define GPIO_MASKED_OUT_UPPER_REG_RESVAL 0x0u
73#define GPIO_MASKED_OUT_UPPER_DATA_MASK 0xffffu
74#define GPIO_MASKED_OUT_UPPER_DATA_OFFSET 0
75#define GPIO_MASKED_OUT_UPPER_DATA_FIELD \
76 ((bitfield_field32_t) { .mask = GPIO_MASKED_OUT_UPPER_DATA_MASK, .index = GPIO_MASKED_OUT_UPPER_DATA_OFFSET })
77#define GPIO_MASKED_OUT_UPPER_MASK_MASK 0xffffu
78#define GPIO_MASKED_OUT_UPPER_MASK_OFFSET 16
79#define GPIO_MASKED_OUT_UPPER_MASK_FIELD \
80 ((bitfield_field32_t) { .mask = GPIO_MASKED_OUT_UPPER_MASK_MASK, .index = GPIO_MASKED_OUT_UPPER_MASK_OFFSET })
81
82// GPIO Output Enable.
83#define GPIO_DIRECT_OE_REG_OFFSET 0x20
84#define GPIO_DIRECT_OE_REG_RESVAL 0x0u
85
86// GPIO write Output Enable lower with mask.
87#define GPIO_MASKED_OE_LOWER_REG_OFFSET 0x24
88#define GPIO_MASKED_OE_LOWER_REG_RESVAL 0x0u
89#define GPIO_MASKED_OE_LOWER_DATA_MASK 0xffffu
90#define GPIO_MASKED_OE_LOWER_DATA_OFFSET 0
91#define GPIO_MASKED_OE_LOWER_DATA_FIELD \
92 ((bitfield_field32_t) { .mask = GPIO_MASKED_OE_LOWER_DATA_MASK, .index = GPIO_MASKED_OE_LOWER_DATA_OFFSET })
93#define GPIO_MASKED_OE_LOWER_MASK_MASK 0xffffu
94#define GPIO_MASKED_OE_LOWER_MASK_OFFSET 16
95#define GPIO_MASKED_OE_LOWER_MASK_FIELD \
96 ((bitfield_field32_t) { .mask = GPIO_MASKED_OE_LOWER_MASK_MASK, .index = GPIO_MASKED_OE_LOWER_MASK_OFFSET })
97
98// GPIO write Output Enable upper with mask.
99#define GPIO_MASKED_OE_UPPER_REG_OFFSET 0x28
100#define GPIO_MASKED_OE_UPPER_REG_RESVAL 0x0u
101#define GPIO_MASKED_OE_UPPER_DATA_MASK 0xffffu
102#define GPIO_MASKED_OE_UPPER_DATA_OFFSET 0
103#define GPIO_MASKED_OE_UPPER_DATA_FIELD \
104 ((bitfield_field32_t) { .mask = GPIO_MASKED_OE_UPPER_DATA_MASK, .index = GPIO_MASKED_OE_UPPER_DATA_OFFSET })
105#define GPIO_MASKED_OE_UPPER_MASK_MASK 0xffffu
106#define GPIO_MASKED_OE_UPPER_MASK_OFFSET 16
107#define GPIO_MASKED_OE_UPPER_MASK_FIELD \
108 ((bitfield_field32_t) { .mask = GPIO_MASKED_OE_UPPER_MASK_MASK, .index = GPIO_MASKED_OE_UPPER_MASK_OFFSET })
109
110// GPIO interrupt enable for GPIO, rising edge.
111#define GPIO_INTR_CTRL_EN_RISING_REG_OFFSET 0x2c
112#define GPIO_INTR_CTRL_EN_RISING_REG_RESVAL 0x0u
113
114// GPIO interrupt enable for GPIO, falling edge.
115#define GPIO_INTR_CTRL_EN_FALLING_REG_OFFSET 0x30
116#define GPIO_INTR_CTRL_EN_FALLING_REG_RESVAL 0x0u
117
118// GPIO interrupt enable for GPIO, level high.
119#define GPIO_INTR_CTRL_EN_LVLHIGH_REG_OFFSET 0x34
120#define GPIO_INTR_CTRL_EN_LVLHIGH_REG_RESVAL 0x0u
121
122// GPIO interrupt enable for GPIO, level low.
123#define GPIO_INTR_CTRL_EN_LVLLOW_REG_OFFSET 0x38
124#define GPIO_INTR_CTRL_EN_LVLLOW_REG_RESVAL 0x0u
125
126// filter enable for GPIO input bits.
127#define GPIO_CTRL_EN_INPUT_FILTER_REG_OFFSET 0x3c
128#define GPIO_CTRL_EN_INPUT_FILTER_REG_RESVAL 0x0u
129
130// Indicates whether the data in !!HW_STRAPS_DATA_IN is valid.
131#define GPIO_HW_STRAPS_DATA_IN_VALID_REG_OFFSET 0x40
132#define GPIO_HW_STRAPS_DATA_IN_VALID_REG_RESVAL 0x0u
133#define GPIO_HW_STRAPS_DATA_IN_VALID_HW_STRAPS_DATA_IN_VALID_BIT 0
134
135// GPIO input data that was sampled as straps at most once after the block
136#define GPIO_HW_STRAPS_DATA_IN_REG_OFFSET 0x44
137#define GPIO_HW_STRAPS_DATA_IN_REG_RESVAL 0x0u
138
139// Control register of one input period counter. (common parameters)
140#define GPIO_INP_PRD_CNT_CTRL_ENABLE_FIELD_WIDTH 1
141#define GPIO_INP_PRD_CNT_CTRL_CONTINUOUS_MODE_FIELD_WIDTH 1
142#define GPIO_INP_PRD_CNT_CTRL_POLARITY_FIELD_WIDTH 1
143#define GPIO_INP_PRD_CNT_CTRL_INPUT_SELECT_FIELD_WIDTH 8
144#define GPIO_INP_PRD_CNT_CTRL_PRESCALER_FIELD_WIDTH 8
145#define GPIO_INP_PRD_CNT_CTRL_MULTIREG_COUNT 8
146
147// Control register of one input period counter.
148#define GPIO_INP_PRD_CNT_CTRL_0_REG_OFFSET 0x48
149#define GPIO_INP_PRD_CNT_CTRL_0_REG_RESVAL 0x4u
150#define GPIO_INP_PRD_CNT_CTRL_0_ENABLE_0_BIT 0
151#define GPIO_INP_PRD_CNT_CTRL_0_CONTINUOUS_MODE_0_BIT 1
152#define GPIO_INP_PRD_CNT_CTRL_0_POLARITY_0_BIT 2
153#define GPIO_INP_PRD_CNT_CTRL_0_INPUT_SELECT_0_MASK 0xffu
154#define GPIO_INP_PRD_CNT_CTRL_0_INPUT_SELECT_0_OFFSET 8
155#define GPIO_INP_PRD_CNT_CTRL_0_INPUT_SELECT_0_FIELD \
156 ((bitfield_field32_t) { .mask = GPIO_INP_PRD_CNT_CTRL_0_INPUT_SELECT_0_MASK, .index = GPIO_INP_PRD_CNT_CTRL_0_INPUT_SELECT_0_OFFSET })
157#define GPIO_INP_PRD_CNT_CTRL_0_PRESCALER_0_MASK 0xffu
158#define GPIO_INP_PRD_CNT_CTRL_0_PRESCALER_0_OFFSET 16
159#define GPIO_INP_PRD_CNT_CTRL_0_PRESCALER_0_FIELD \
160 ((bitfield_field32_t) { .mask = GPIO_INP_PRD_CNT_CTRL_0_PRESCALER_0_MASK, .index = GPIO_INP_PRD_CNT_CTRL_0_PRESCALER_0_OFFSET })
161
162// Control register of one input period counter.
163#define GPIO_INP_PRD_CNT_CTRL_1_REG_OFFSET 0x4c
164#define GPIO_INP_PRD_CNT_CTRL_1_REG_RESVAL 0x4u
165#define GPIO_INP_PRD_CNT_CTRL_1_ENABLE_1_BIT 0
166#define GPIO_INP_PRD_CNT_CTRL_1_CONTINUOUS_MODE_1_BIT 1
167#define GPIO_INP_PRD_CNT_CTRL_1_POLARITY_1_BIT 2
168#define GPIO_INP_PRD_CNT_CTRL_1_INPUT_SELECT_1_MASK 0xffu
169#define GPIO_INP_PRD_CNT_CTRL_1_INPUT_SELECT_1_OFFSET 8
170#define GPIO_INP_PRD_CNT_CTRL_1_INPUT_SELECT_1_FIELD \
171 ((bitfield_field32_t) { .mask = GPIO_INP_PRD_CNT_CTRL_1_INPUT_SELECT_1_MASK, .index = GPIO_INP_PRD_CNT_CTRL_1_INPUT_SELECT_1_OFFSET })
172#define GPIO_INP_PRD_CNT_CTRL_1_PRESCALER_1_MASK 0xffu
173#define GPIO_INP_PRD_CNT_CTRL_1_PRESCALER_1_OFFSET 16
174#define GPIO_INP_PRD_CNT_CTRL_1_PRESCALER_1_FIELD \
175 ((bitfield_field32_t) { .mask = GPIO_INP_PRD_CNT_CTRL_1_PRESCALER_1_MASK, .index = GPIO_INP_PRD_CNT_CTRL_1_PRESCALER_1_OFFSET })
176
177// Control register of one input period counter.
178#define GPIO_INP_PRD_CNT_CTRL_2_REG_OFFSET 0x50
179#define GPIO_INP_PRD_CNT_CTRL_2_REG_RESVAL 0x4u
180#define GPIO_INP_PRD_CNT_CTRL_2_ENABLE_2_BIT 0
181#define GPIO_INP_PRD_CNT_CTRL_2_CONTINUOUS_MODE_2_BIT 1
182#define GPIO_INP_PRD_CNT_CTRL_2_POLARITY_2_BIT 2
183#define GPIO_INP_PRD_CNT_CTRL_2_INPUT_SELECT_2_MASK 0xffu
184#define GPIO_INP_PRD_CNT_CTRL_2_INPUT_SELECT_2_OFFSET 8
185#define GPIO_INP_PRD_CNT_CTRL_2_INPUT_SELECT_2_FIELD \
186 ((bitfield_field32_t) { .mask = GPIO_INP_PRD_CNT_CTRL_2_INPUT_SELECT_2_MASK, .index = GPIO_INP_PRD_CNT_CTRL_2_INPUT_SELECT_2_OFFSET })
187#define GPIO_INP_PRD_CNT_CTRL_2_PRESCALER_2_MASK 0xffu
188#define GPIO_INP_PRD_CNT_CTRL_2_PRESCALER_2_OFFSET 16
189#define GPIO_INP_PRD_CNT_CTRL_2_PRESCALER_2_FIELD \
190 ((bitfield_field32_t) { .mask = GPIO_INP_PRD_CNT_CTRL_2_PRESCALER_2_MASK, .index = GPIO_INP_PRD_CNT_CTRL_2_PRESCALER_2_OFFSET })
191
192// Control register of one input period counter.
193#define GPIO_INP_PRD_CNT_CTRL_3_REG_OFFSET 0x54
194#define GPIO_INP_PRD_CNT_CTRL_3_REG_RESVAL 0x4u
195#define GPIO_INP_PRD_CNT_CTRL_3_ENABLE_3_BIT 0
196#define GPIO_INP_PRD_CNT_CTRL_3_CONTINUOUS_MODE_3_BIT 1
197#define GPIO_INP_PRD_CNT_CTRL_3_POLARITY_3_BIT 2
198#define GPIO_INP_PRD_CNT_CTRL_3_INPUT_SELECT_3_MASK 0xffu
199#define GPIO_INP_PRD_CNT_CTRL_3_INPUT_SELECT_3_OFFSET 8
200#define GPIO_INP_PRD_CNT_CTRL_3_INPUT_SELECT_3_FIELD \
201 ((bitfield_field32_t) { .mask = GPIO_INP_PRD_CNT_CTRL_3_INPUT_SELECT_3_MASK, .index = GPIO_INP_PRD_CNT_CTRL_3_INPUT_SELECT_3_OFFSET })
202#define GPIO_INP_PRD_CNT_CTRL_3_PRESCALER_3_MASK 0xffu
203#define GPIO_INP_PRD_CNT_CTRL_3_PRESCALER_3_OFFSET 16
204#define GPIO_INP_PRD_CNT_CTRL_3_PRESCALER_3_FIELD \
205 ((bitfield_field32_t) { .mask = GPIO_INP_PRD_CNT_CTRL_3_PRESCALER_3_MASK, .index = GPIO_INP_PRD_CNT_CTRL_3_PRESCALER_3_OFFSET })
206
207// Control register of one input period counter.
208#define GPIO_INP_PRD_CNT_CTRL_4_REG_OFFSET 0x58
209#define GPIO_INP_PRD_CNT_CTRL_4_REG_RESVAL 0x4u
210#define GPIO_INP_PRD_CNT_CTRL_4_ENABLE_4_BIT 0
211#define GPIO_INP_PRD_CNT_CTRL_4_CONTINUOUS_MODE_4_BIT 1
212#define GPIO_INP_PRD_CNT_CTRL_4_POLARITY_4_BIT 2
213#define GPIO_INP_PRD_CNT_CTRL_4_INPUT_SELECT_4_MASK 0xffu
214#define GPIO_INP_PRD_CNT_CTRL_4_INPUT_SELECT_4_OFFSET 8
215#define GPIO_INP_PRD_CNT_CTRL_4_INPUT_SELECT_4_FIELD \
216 ((bitfield_field32_t) { .mask = GPIO_INP_PRD_CNT_CTRL_4_INPUT_SELECT_4_MASK, .index = GPIO_INP_PRD_CNT_CTRL_4_INPUT_SELECT_4_OFFSET })
217#define GPIO_INP_PRD_CNT_CTRL_4_PRESCALER_4_MASK 0xffu
218#define GPIO_INP_PRD_CNT_CTRL_4_PRESCALER_4_OFFSET 16
219#define GPIO_INP_PRD_CNT_CTRL_4_PRESCALER_4_FIELD \
220 ((bitfield_field32_t) { .mask = GPIO_INP_PRD_CNT_CTRL_4_PRESCALER_4_MASK, .index = GPIO_INP_PRD_CNT_CTRL_4_PRESCALER_4_OFFSET })
221
222// Control register of one input period counter.
223#define GPIO_INP_PRD_CNT_CTRL_5_REG_OFFSET 0x5c
224#define GPIO_INP_PRD_CNT_CTRL_5_REG_RESVAL 0x4u
225#define GPIO_INP_PRD_CNT_CTRL_5_ENABLE_5_BIT 0
226#define GPIO_INP_PRD_CNT_CTRL_5_CONTINUOUS_MODE_5_BIT 1
227#define GPIO_INP_PRD_CNT_CTRL_5_POLARITY_5_BIT 2
228#define GPIO_INP_PRD_CNT_CTRL_5_INPUT_SELECT_5_MASK 0xffu
229#define GPIO_INP_PRD_CNT_CTRL_5_INPUT_SELECT_5_OFFSET 8
230#define GPIO_INP_PRD_CNT_CTRL_5_INPUT_SELECT_5_FIELD \
231 ((bitfield_field32_t) { .mask = GPIO_INP_PRD_CNT_CTRL_5_INPUT_SELECT_5_MASK, .index = GPIO_INP_PRD_CNT_CTRL_5_INPUT_SELECT_5_OFFSET })
232#define GPIO_INP_PRD_CNT_CTRL_5_PRESCALER_5_MASK 0xffu
233#define GPIO_INP_PRD_CNT_CTRL_5_PRESCALER_5_OFFSET 16
234#define GPIO_INP_PRD_CNT_CTRL_5_PRESCALER_5_FIELD \
235 ((bitfield_field32_t) { .mask = GPIO_INP_PRD_CNT_CTRL_5_PRESCALER_5_MASK, .index = GPIO_INP_PRD_CNT_CTRL_5_PRESCALER_5_OFFSET })
236
237// Control register of one input period counter.
238#define GPIO_INP_PRD_CNT_CTRL_6_REG_OFFSET 0x60
239#define GPIO_INP_PRD_CNT_CTRL_6_REG_RESVAL 0x4u
240#define GPIO_INP_PRD_CNT_CTRL_6_ENABLE_6_BIT 0
241#define GPIO_INP_PRD_CNT_CTRL_6_CONTINUOUS_MODE_6_BIT 1
242#define GPIO_INP_PRD_CNT_CTRL_6_POLARITY_6_BIT 2
243#define GPIO_INP_PRD_CNT_CTRL_6_INPUT_SELECT_6_MASK 0xffu
244#define GPIO_INP_PRD_CNT_CTRL_6_INPUT_SELECT_6_OFFSET 8
245#define GPIO_INP_PRD_CNT_CTRL_6_INPUT_SELECT_6_FIELD \
246 ((bitfield_field32_t) { .mask = GPIO_INP_PRD_CNT_CTRL_6_INPUT_SELECT_6_MASK, .index = GPIO_INP_PRD_CNT_CTRL_6_INPUT_SELECT_6_OFFSET })
247#define GPIO_INP_PRD_CNT_CTRL_6_PRESCALER_6_MASK 0xffu
248#define GPIO_INP_PRD_CNT_CTRL_6_PRESCALER_6_OFFSET 16
249#define GPIO_INP_PRD_CNT_CTRL_6_PRESCALER_6_FIELD \
250 ((bitfield_field32_t) { .mask = GPIO_INP_PRD_CNT_CTRL_6_PRESCALER_6_MASK, .index = GPIO_INP_PRD_CNT_CTRL_6_PRESCALER_6_OFFSET })
251
252// Control register of one input period counter.
253#define GPIO_INP_PRD_CNT_CTRL_7_REG_OFFSET 0x64
254#define GPIO_INP_PRD_CNT_CTRL_7_REG_RESVAL 0x4u
255#define GPIO_INP_PRD_CNT_CTRL_7_ENABLE_7_BIT 0
256#define GPIO_INP_PRD_CNT_CTRL_7_CONTINUOUS_MODE_7_BIT 1
257#define GPIO_INP_PRD_CNT_CTRL_7_POLARITY_7_BIT 2
258#define GPIO_INP_PRD_CNT_CTRL_7_INPUT_SELECT_7_MASK 0xffu
259#define GPIO_INP_PRD_CNT_CTRL_7_INPUT_SELECT_7_OFFSET 8
260#define GPIO_INP_PRD_CNT_CTRL_7_INPUT_SELECT_7_FIELD \
261 ((bitfield_field32_t) { .mask = GPIO_INP_PRD_CNT_CTRL_7_INPUT_SELECT_7_MASK, .index = GPIO_INP_PRD_CNT_CTRL_7_INPUT_SELECT_7_OFFSET })
262#define GPIO_INP_PRD_CNT_CTRL_7_PRESCALER_7_MASK 0xffu
263#define GPIO_INP_PRD_CNT_CTRL_7_PRESCALER_7_OFFSET 16
264#define GPIO_INP_PRD_CNT_CTRL_7_PRESCALER_7_FIELD \
265 ((bitfield_field32_t) { .mask = GPIO_INP_PRD_CNT_CTRL_7_PRESCALER_7_MASK, .index = GPIO_INP_PRD_CNT_CTRL_7_PRESCALER_7_OFFSET })
266
267// Output value of one input period counter. (common parameters)
268#define GPIO_INP_PRD_CNT_VAL_VALUE_FIELD_WIDTH 32
269#define GPIO_INP_PRD_CNT_VAL_MULTIREG_COUNT 8
270
271// Output value of one input period counter.
272#define GPIO_INP_PRD_CNT_VAL_0_REG_OFFSET 0x68
273#define GPIO_INP_PRD_CNT_VAL_0_REG_RESVAL 0x0u
274
275// Output value of one input period counter.
276#define GPIO_INP_PRD_CNT_VAL_1_REG_OFFSET 0x6c
277#define GPIO_INP_PRD_CNT_VAL_1_REG_RESVAL 0x0u
278
279// Output value of one input period counter.
280#define GPIO_INP_PRD_CNT_VAL_2_REG_OFFSET 0x70
281#define GPIO_INP_PRD_CNT_VAL_2_REG_RESVAL 0x0u
282
283// Output value of one input period counter.
284#define GPIO_INP_PRD_CNT_VAL_3_REG_OFFSET 0x74
285#define GPIO_INP_PRD_CNT_VAL_3_REG_RESVAL 0x0u
286
287// Output value of one input period counter.
288#define GPIO_INP_PRD_CNT_VAL_4_REG_OFFSET 0x78
289#define GPIO_INP_PRD_CNT_VAL_4_REG_RESVAL 0x0u
290
291// Output value of one input period counter.
292#define GPIO_INP_PRD_CNT_VAL_5_REG_OFFSET 0x7c
293#define GPIO_INP_PRD_CNT_VAL_5_REG_RESVAL 0x0u
294
295// Output value of one input period counter.
296#define GPIO_INP_PRD_CNT_VAL_6_REG_OFFSET 0x80
297#define GPIO_INP_PRD_CNT_VAL_6_REG_RESVAL 0x0u
298
299// Output value of one input period counter.
300#define GPIO_INP_PRD_CNT_VAL_7_REG_OFFSET 0x84
301#define GPIO_INP_PRD_CNT_VAL_7_REG_RESVAL 0x0u
302
303#ifdef __cplusplus
304} // extern "C"
305#endif
306#endif // _GPIO_REG_DEFS_
307// End generated register defines for gpio