Software APIs
uart_regs.h
Go to the documentation of this file.
1/**
2 * @file
3 * @brief Generated register defines for uart
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 _UART_REG_DEFS_
14#define _UART_REG_DEFS_
15
16#ifdef __cplusplus
17extern "C" {
18#endif
19// Number of bytes in the RX FIFO.
20#define UART_PARAM_RX_FIFO_DEPTH 64
21
22// Number of bytes in the TX FIFO.
23#define UART_PARAM_TX_FIFO_DEPTH 32
24
25// Number of alerts
26#define UART_PARAM_NUM_ALERTS 1
27
28// Register width
29#define UART_PARAM_REG_WIDTH 32
30
31// Common Interrupt Offsets
32#define UART_INTR_COMMON_TX_WATERMARK_BIT 0
33#define UART_INTR_COMMON_RX_WATERMARK_BIT 1
34#define UART_INTR_COMMON_TX_DONE_BIT 2
35#define UART_INTR_COMMON_RX_OVERFLOW_BIT 3
36#define UART_INTR_COMMON_RX_FRAME_ERR_BIT 4
37#define UART_INTR_COMMON_RX_BREAK_ERR_BIT 5
38#define UART_INTR_COMMON_RX_TIMEOUT_BIT 6
39#define UART_INTR_COMMON_RX_PARITY_ERR_BIT 7
40#define UART_INTR_COMMON_TX_EMPTY_BIT 8
41
42// Interrupt State Register
43#define UART_INTR_STATE_REG_OFFSET 0x0
44#define UART_INTR_STATE_REG_RESVAL 0x101u
45#define UART_INTR_STATE_TX_WATERMARK_BIT 0
46#define UART_INTR_STATE_RX_WATERMARK_BIT 1
47#define UART_INTR_STATE_TX_DONE_BIT 2
48#define UART_INTR_STATE_RX_OVERFLOW_BIT 3
49#define UART_INTR_STATE_RX_FRAME_ERR_BIT 4
50#define UART_INTR_STATE_RX_BREAK_ERR_BIT 5
51#define UART_INTR_STATE_RX_TIMEOUT_BIT 6
52#define UART_INTR_STATE_RX_PARITY_ERR_BIT 7
53#define UART_INTR_STATE_TX_EMPTY_BIT 8
54
55// Interrupt Enable Register
56#define UART_INTR_ENABLE_REG_OFFSET 0x4
57#define UART_INTR_ENABLE_REG_RESVAL 0x0u
58#define UART_INTR_ENABLE_TX_WATERMARK_BIT 0
59#define UART_INTR_ENABLE_RX_WATERMARK_BIT 1
60#define UART_INTR_ENABLE_TX_DONE_BIT 2
61#define UART_INTR_ENABLE_RX_OVERFLOW_BIT 3
62#define UART_INTR_ENABLE_RX_FRAME_ERR_BIT 4
63#define UART_INTR_ENABLE_RX_BREAK_ERR_BIT 5
64#define UART_INTR_ENABLE_RX_TIMEOUT_BIT 6
65#define UART_INTR_ENABLE_RX_PARITY_ERR_BIT 7
66#define UART_INTR_ENABLE_TX_EMPTY_BIT 8
67
68// Interrupt Test Register
69#define UART_INTR_TEST_REG_OFFSET 0x8
70#define UART_INTR_TEST_REG_RESVAL 0x0u
71#define UART_INTR_TEST_TX_WATERMARK_BIT 0
72#define UART_INTR_TEST_RX_WATERMARK_BIT 1
73#define UART_INTR_TEST_TX_DONE_BIT 2
74#define UART_INTR_TEST_RX_OVERFLOW_BIT 3
75#define UART_INTR_TEST_RX_FRAME_ERR_BIT 4
76#define UART_INTR_TEST_RX_BREAK_ERR_BIT 5
77#define UART_INTR_TEST_RX_TIMEOUT_BIT 6
78#define UART_INTR_TEST_RX_PARITY_ERR_BIT 7
79#define UART_INTR_TEST_TX_EMPTY_BIT 8
80
81// Alert Test Register
82#define UART_ALERT_TEST_REG_OFFSET 0xc
83#define UART_ALERT_TEST_REG_RESVAL 0x80000000u
84#define UART_ALERT_TEST_FATAL_FAULT_BIT 0
85#define UART_ALERT_TEST_REGWEN_BIT 31
86
87// UART control register
88#define UART_CTRL_REG_OFFSET 0x10
89#define UART_CTRL_REG_RESVAL 0x0u
90#define UART_CTRL_TX_BIT 0
91#define UART_CTRL_RX_BIT 1
92#define UART_CTRL_NF_BIT 2
93#define UART_CTRL_SLPBK_BIT 4
94#define UART_CTRL_LLPBK_BIT 5
95#define UART_CTRL_PARITY_EN_BIT 6
96#define UART_CTRL_PARITY_ODD_BIT 7
97#define UART_CTRL_RXBLVL_MASK 0x3u
98#define UART_CTRL_RXBLVL_OFFSET 8
99#define UART_CTRL_RXBLVL_FIELD \
100 ((bitfield_field32_t) { .mask = UART_CTRL_RXBLVL_MASK, .index = UART_CTRL_RXBLVL_OFFSET })
101#define UART_CTRL_RXBLVL_VALUE_BREAK2 0x0
102#define UART_CTRL_RXBLVL_VALUE_BREAK4 0x1
103#define UART_CTRL_RXBLVL_VALUE_BREAK8 0x2
104#define UART_CTRL_RXBLVL_VALUE_BREAK16 0x3
105#define UART_CTRL_NCO_MASK 0xffffu
106#define UART_CTRL_NCO_OFFSET 16
107#define UART_CTRL_NCO_FIELD \
108 ((bitfield_field32_t) { .mask = UART_CTRL_NCO_MASK, .index = UART_CTRL_NCO_OFFSET })
109
110// UART live status register
111#define UART_STATUS_REG_OFFSET 0x14
112#define UART_STATUS_REG_RESVAL 0x3cu
113#define UART_STATUS_TXFULL_BIT 0
114#define UART_STATUS_RXFULL_BIT 1
115#define UART_STATUS_TXEMPTY_BIT 2
116#define UART_STATUS_TXIDLE_BIT 3
117#define UART_STATUS_RXIDLE_BIT 4
118#define UART_STATUS_RXEMPTY_BIT 5
119
120// UART read data
121#define UART_RDATA_REG_OFFSET 0x18
122#define UART_RDATA_REG_RESVAL 0x0u
123#define UART_RDATA_RDATA_MASK 0xffu
124#define UART_RDATA_RDATA_OFFSET 0
125#define UART_RDATA_RDATA_FIELD \
126 ((bitfield_field32_t) { .mask = UART_RDATA_RDATA_MASK, .index = UART_RDATA_RDATA_OFFSET })
127
128// UART write data
129#define UART_WDATA_REG_OFFSET 0x1c
130#define UART_WDATA_REG_RESVAL 0x0u
131#define UART_WDATA_WDATA_MASK 0xffu
132#define UART_WDATA_WDATA_OFFSET 0
133#define UART_WDATA_WDATA_FIELD \
134 ((bitfield_field32_t) { .mask = UART_WDATA_WDATA_MASK, .index = UART_WDATA_WDATA_OFFSET })
135
136// UART FIFO control register
137#define UART_FIFO_CTRL_REG_OFFSET 0x20
138#define UART_FIFO_CTRL_REG_RESVAL 0x0u
139#define UART_FIFO_CTRL_RXRST_BIT 0
140#define UART_FIFO_CTRL_TXRST_BIT 1
141#define UART_FIFO_CTRL_RXILVL_MASK 0x7u
142#define UART_FIFO_CTRL_RXILVL_OFFSET 2
143#define UART_FIFO_CTRL_RXILVL_FIELD \
144 ((bitfield_field32_t) { .mask = UART_FIFO_CTRL_RXILVL_MASK, .index = UART_FIFO_CTRL_RXILVL_OFFSET })
145#define UART_FIFO_CTRL_RXILVL_VALUE_RXLVL1 0x0
146#define UART_FIFO_CTRL_RXILVL_VALUE_RXLVL2 0x1
147#define UART_FIFO_CTRL_RXILVL_VALUE_RXLVL4 0x2
148#define UART_FIFO_CTRL_RXILVL_VALUE_RXLVL8 0x3
149#define UART_FIFO_CTRL_RXILVL_VALUE_RXLVL16 0x4
150#define UART_FIFO_CTRL_RXILVL_VALUE_RXLVL32 0x5
151#define UART_FIFO_CTRL_RXILVL_VALUE_RXLVL62 0x6
152#define UART_FIFO_CTRL_TXILVL_MASK 0x7u
153#define UART_FIFO_CTRL_TXILVL_OFFSET 5
154#define UART_FIFO_CTRL_TXILVL_FIELD \
155 ((bitfield_field32_t) { .mask = UART_FIFO_CTRL_TXILVL_MASK, .index = UART_FIFO_CTRL_TXILVL_OFFSET })
156#define UART_FIFO_CTRL_TXILVL_VALUE_TXLVL1 0x0
157#define UART_FIFO_CTRL_TXILVL_VALUE_TXLVL2 0x1
158#define UART_FIFO_CTRL_TXILVL_VALUE_TXLVL4 0x2
159#define UART_FIFO_CTRL_TXILVL_VALUE_TXLVL8 0x3
160#define UART_FIFO_CTRL_TXILVL_VALUE_TXLVL16 0x4
161
162// UART FIFO status register
163#define UART_FIFO_STATUS_REG_OFFSET 0x24
164#define UART_FIFO_STATUS_REG_RESVAL 0x0u
165#define UART_FIFO_STATUS_TXLVL_MASK 0xffu
166#define UART_FIFO_STATUS_TXLVL_OFFSET 0
167#define UART_FIFO_STATUS_TXLVL_FIELD \
168 ((bitfield_field32_t) { .mask = UART_FIFO_STATUS_TXLVL_MASK, .index = UART_FIFO_STATUS_TXLVL_OFFSET })
169#define UART_FIFO_STATUS_RXLVL_MASK 0xffu
170#define UART_FIFO_STATUS_RXLVL_OFFSET 16
171#define UART_FIFO_STATUS_RXLVL_FIELD \
172 ((bitfield_field32_t) { .mask = UART_FIFO_STATUS_RXLVL_MASK, .index = UART_FIFO_STATUS_RXLVL_OFFSET })
173
174// TX pin override control. Gives direct SW control over TX pin state
175#define UART_OVRD_REG_OFFSET 0x28
176#define UART_OVRD_REG_RESVAL 0x0u
177#define UART_OVRD_TXEN_BIT 0
178#define UART_OVRD_TXVAL_BIT 1
179
180// UART oversampled values
181#define UART_VAL_REG_OFFSET 0x2c
182#define UART_VAL_REG_RESVAL 0x0u
183#define UART_VAL_RX_MASK 0xffffu
184#define UART_VAL_RX_OFFSET 0
185#define UART_VAL_RX_FIELD \
186 ((bitfield_field32_t) { .mask = UART_VAL_RX_MASK, .index = UART_VAL_RX_OFFSET })
187
188// UART RX timeout control
189#define UART_TIMEOUT_CTRL_REG_OFFSET 0x30
190#define UART_TIMEOUT_CTRL_REG_RESVAL 0x0u
191#define UART_TIMEOUT_CTRL_VAL_MASK 0xffffffu
192#define UART_TIMEOUT_CTRL_VAL_OFFSET 0
193#define UART_TIMEOUT_CTRL_VAL_FIELD \
194 ((bitfield_field32_t) { .mask = UART_TIMEOUT_CTRL_VAL_MASK, .index = UART_TIMEOUT_CTRL_VAL_OFFSET })
195#define UART_TIMEOUT_CTRL_EN_BIT 31
196
197#ifdef __cplusplus
198} // extern "C"
199#endif
200#endif // _UART_REG_DEFS_
201// End generated register defines for uart