HPM SDK
HPMicro Software Development Kit
hpm_uart_regs.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2021-2024 HPMicro
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  *
6  */
7 
8 
9 #ifndef HPM_UART_H
10 #define HPM_UART_H
11 
12 typedef struct {
13  __R uint8_t RESERVED0[16]; /* 0x0 - 0xF: Reserved */
14  __RW uint32_t CFG; /* 0x10: Configuration Register */
15  __RW uint32_t OSCR; /* 0x14: Over Sample Control Register */
16  __R uint8_t RESERVED1[8]; /* 0x18 - 0x1F: Reserved */
17  union {
18  __R uint32_t RBR; /* 0x20: Receiver Buffer Register (when DLAB = 0) */
19  __W uint32_t THR; /* 0x20: Transmitter Holding Register (when DLAB = 0) */
20  __RW uint32_t DLL; /* 0x20: Divisor Latch LSB (when DLAB = 1) */
21  };
22  union {
23  __RW uint32_t IER; /* 0x24: Interrupt Enable Register (when DLAB = 0) */
24  __RW uint32_t DLM; /* 0x24: Divisor Latch MSB (when DLAB = 1) */
25  };
26  union {
27  __R uint32_t IIR; /* 0x28: Interrupt Identification Register */
28  __W uint32_t FCR; /* 0x28: FIFO Control Register */
29  };
30  __RW uint32_t LCR; /* 0x2C: Line Control Register */
31  __RW uint32_t MCR; /* 0x30: Modem Control Register ( */
32  __R uint32_t LSR; /* 0x34: Line Status Register */
33  __R uint32_t MSR; /* 0x38: Modem Status Register */
34  __RW uint32_t GPR; /* 0x3C: GPR Register */
35 } UART_Type;
36 
37 
38 /* Bitfield definition for register: CFG */
39 /*
40  * FIFOSIZE (RO)
41  *
42  * The depth of RXFIFO and TXFIFO
43  * 0: 16-byte FIFO
44  * 1: 32-byte FIFO
45  * 2: 64-byte FIFO
46  * 3: 128-byte FIFO
47  */
48 #define UART_CFG_FIFOSIZE_MASK (0x3U)
49 #define UART_CFG_FIFOSIZE_SHIFT (0U)
50 #define UART_CFG_FIFOSIZE_GET(x) (((uint32_t)(x) & UART_CFG_FIFOSIZE_MASK) >> UART_CFG_FIFOSIZE_SHIFT)
51 
52 /* Bitfield definition for register: OSCR */
53 /*
54  * OSC (RW)
55  *
56  * Over-sample control
57  * The value must be an even number; any odd value
58  * writes to this field will be converted to an even value.
59  * OSC=0: reserved
60  * OSC<=8: The over-sample ratio is 8
61  * 8 < OSC< 32: The over sample ratio is OSC
62  */
63 #define UART_OSCR_OSC_MASK (0x1FU)
64 #define UART_OSCR_OSC_SHIFT (0U)
65 #define UART_OSCR_OSC_SET(x) (((uint32_t)(x) << UART_OSCR_OSC_SHIFT) & UART_OSCR_OSC_MASK)
66 #define UART_OSCR_OSC_GET(x) (((uint32_t)(x) & UART_OSCR_OSC_MASK) >> UART_OSCR_OSC_SHIFT)
67 
68 /* Bitfield definition for register: RBR */
69 /*
70  * RBR (RO)
71  *
72  * Receive data read port
73  */
74 #define UART_RBR_RBR_MASK (0xFFU)
75 #define UART_RBR_RBR_SHIFT (0U)
76 #define UART_RBR_RBR_GET(x) (((uint32_t)(x) & UART_RBR_RBR_MASK) >> UART_RBR_RBR_SHIFT)
77 
78 /* Bitfield definition for register: THR */
79 /*
80  * THR (WO)
81  *
82  * Transmit data write port
83  */
84 #define UART_THR_THR_MASK (0xFFU)
85 #define UART_THR_THR_SHIFT (0U)
86 #define UART_THR_THR_SET(x) (((uint32_t)(x) << UART_THR_THR_SHIFT) & UART_THR_THR_MASK)
87 #define UART_THR_THR_GET(x) (((uint32_t)(x) & UART_THR_THR_MASK) >> UART_THR_THR_SHIFT)
88 
89 /* Bitfield definition for register: DLL */
90 /*
91  * DLL (RW)
92  *
93  * Least significant byte of the Divisor Latch
94  */
95 #define UART_DLL_DLL_MASK (0xFFU)
96 #define UART_DLL_DLL_SHIFT (0U)
97 #define UART_DLL_DLL_SET(x) (((uint32_t)(x) << UART_DLL_DLL_SHIFT) & UART_DLL_DLL_MASK)
98 #define UART_DLL_DLL_GET(x) (((uint32_t)(x) & UART_DLL_DLL_MASK) >> UART_DLL_DLL_SHIFT)
99 
100 /* Bitfield definition for register: IER */
101 /*
102  * EMSI (RW)
103  *
104  * Enable modem status interrupt
105  * The interrupt asserts when the status of one of the
106  * following occurs:
107  * The status of modem_rin, modem_dcdn,
108  * modem_dsrn or modem_ctsn (If the auto-cts mode is
109  * disabled) has been changed.
110  * If the auto-cts mode is enabled (MCR bit4 (AFE) = 1),
111  * modem_ctsn would be used to control the transmitter.
112  */
113 #define UART_IER_EMSI_MASK (0x8U)
114 #define UART_IER_EMSI_SHIFT (3U)
115 #define UART_IER_EMSI_SET(x) (((uint32_t)(x) << UART_IER_EMSI_SHIFT) & UART_IER_EMSI_MASK)
116 #define UART_IER_EMSI_GET(x) (((uint32_t)(x) & UART_IER_EMSI_MASK) >> UART_IER_EMSI_SHIFT)
117 
118 /*
119  * ELSI (RW)
120  *
121  * Enable receiver line status interrupt
122  */
123 #define UART_IER_ELSI_MASK (0x4U)
124 #define UART_IER_ELSI_SHIFT (2U)
125 #define UART_IER_ELSI_SET(x) (((uint32_t)(x) << UART_IER_ELSI_SHIFT) & UART_IER_ELSI_MASK)
126 #define UART_IER_ELSI_GET(x) (((uint32_t)(x) & UART_IER_ELSI_MASK) >> UART_IER_ELSI_SHIFT)
127 
128 /*
129  * ETHEI (RW)
130  *
131  * Enable transmitter holding register interrupt
132  */
133 #define UART_IER_ETHEI_MASK (0x2U)
134 #define UART_IER_ETHEI_SHIFT (1U)
135 #define UART_IER_ETHEI_SET(x) (((uint32_t)(x) << UART_IER_ETHEI_SHIFT) & UART_IER_ETHEI_MASK)
136 #define UART_IER_ETHEI_GET(x) (((uint32_t)(x) & UART_IER_ETHEI_MASK) >> UART_IER_ETHEI_SHIFT)
137 
138 /*
139  * ERBI (RW)
140  *
141  * Enable received data available interrupt and the
142  * character timeout interrupt
143  * 0: Disable
144  * 1: Enable
145  */
146 #define UART_IER_ERBI_MASK (0x1U)
147 #define UART_IER_ERBI_SHIFT (0U)
148 #define UART_IER_ERBI_SET(x) (((uint32_t)(x) << UART_IER_ERBI_SHIFT) & UART_IER_ERBI_MASK)
149 #define UART_IER_ERBI_GET(x) (((uint32_t)(x) & UART_IER_ERBI_MASK) >> UART_IER_ERBI_SHIFT)
150 
151 /* Bitfield definition for register: DLM */
152 /*
153  * DLM (RW)
154  *
155  * Most significant byte of the Divisor Latch
156  */
157 #define UART_DLM_DLM_MASK (0xFFU)
158 #define UART_DLM_DLM_SHIFT (0U)
159 #define UART_DLM_DLM_SET(x) (((uint32_t)(x) << UART_DLM_DLM_SHIFT) & UART_DLM_DLM_MASK)
160 #define UART_DLM_DLM_GET(x) (((uint32_t)(x) & UART_DLM_DLM_MASK) >> UART_DLM_DLM_SHIFT)
161 
162 /* Bitfield definition for register: IIR */
163 /*
164  * FIFOED (RO)
165  *
166  * FIFOs enabled
167  * These two bits are 1 when bit 0 of the FIFO Control
168  * Register (FIFOE) is set to 1.
169  */
170 #define UART_IIR_FIFOED_MASK (0xC0U)
171 #define UART_IIR_FIFOED_SHIFT (6U)
172 #define UART_IIR_FIFOED_GET(x) (((uint32_t)(x) & UART_IIR_FIFOED_MASK) >> UART_IIR_FIFOED_SHIFT)
173 
174 /*
175  * INTRID (RO)
176  *
177  * Interrupt ID, see IIR2 for detail decoding
178  */
179 #define UART_IIR_INTRID_MASK (0xFU)
180 #define UART_IIR_INTRID_SHIFT (0U)
181 #define UART_IIR_INTRID_GET(x) (((uint32_t)(x) & UART_IIR_INTRID_MASK) >> UART_IIR_INTRID_SHIFT)
182 
183 /* Bitfield definition for register: FCR */
184 /*
185  * RFIFOT (WO)
186  *
187  * Receiver FIFO trigger level(0 for 1byte, 0x3 for 4bytes). Uart will send rx_dma_req if data in fifo reachs the threshold
188  */
189 #define UART_FCR_RFIFOT_MASK (0xC0U)
190 #define UART_FCR_RFIFOT_SHIFT (6U)
191 #define UART_FCR_RFIFOT_SET(x) (((uint32_t)(x) << UART_FCR_RFIFOT_SHIFT) & UART_FCR_RFIFOT_MASK)
192 #define UART_FCR_RFIFOT_GET(x) (((uint32_t)(x) & UART_FCR_RFIFOT_MASK) >> UART_FCR_RFIFOT_SHIFT)
193 
194 /*
195  * TFIFOT (WO)
196  *
197  * Transmitter FIFO trigger level(0 for 1byte, 0x3 for 4bytes), uart will send tx_dma_req when data in fifo is less than threshold.
198  */
199 #define UART_FCR_TFIFOT_MASK (0x30U)
200 #define UART_FCR_TFIFOT_SHIFT (4U)
201 #define UART_FCR_TFIFOT_SET(x) (((uint32_t)(x) << UART_FCR_TFIFOT_SHIFT) & UART_FCR_TFIFOT_MASK)
202 #define UART_FCR_TFIFOT_GET(x) (((uint32_t)(x) & UART_FCR_TFIFOT_MASK) >> UART_FCR_TFIFOT_SHIFT)
203 
204 /*
205  * DMAE (WO)
206  *
207  * DMA enable
208  * 0: Disable
209  * 1: Enable
210  */
211 #define UART_FCR_DMAE_MASK (0x8U)
212 #define UART_FCR_DMAE_SHIFT (3U)
213 #define UART_FCR_DMAE_SET(x) (((uint32_t)(x) << UART_FCR_DMAE_SHIFT) & UART_FCR_DMAE_MASK)
214 #define UART_FCR_DMAE_GET(x) (((uint32_t)(x) & UART_FCR_DMAE_MASK) >> UART_FCR_DMAE_SHIFT)
215 
216 /*
217  * TFIFORST (WO)
218  *
219  * Transmitter FIFO reset
220  * Write 1 to clear all bytes in the TXFIFO and resets its
221  * counter. The Transmitter Shift Register is not cleared.
222  * This bit will automatically be cleared.
223  */
224 #define UART_FCR_TFIFORST_MASK (0x4U)
225 #define UART_FCR_TFIFORST_SHIFT (2U)
226 #define UART_FCR_TFIFORST_SET(x) (((uint32_t)(x) << UART_FCR_TFIFORST_SHIFT) & UART_FCR_TFIFORST_MASK)
227 #define UART_FCR_TFIFORST_GET(x) (((uint32_t)(x) & UART_FCR_TFIFORST_MASK) >> UART_FCR_TFIFORST_SHIFT)
228 
229 /*
230  * RFIFORST (WO)
231  *
232  * Receiver FIFO reset
233  * Write 1 to clear all bytes in the RXFIFO and resets its
234  * counter. The Receiver Shift Register is not cleared.
235  * This bit will automatically be cleared.
236  */
237 #define UART_FCR_RFIFORST_MASK (0x2U)
238 #define UART_FCR_RFIFORST_SHIFT (1U)
239 #define UART_FCR_RFIFORST_SET(x) (((uint32_t)(x) << UART_FCR_RFIFORST_SHIFT) & UART_FCR_RFIFORST_MASK)
240 #define UART_FCR_RFIFORST_GET(x) (((uint32_t)(x) & UART_FCR_RFIFORST_MASK) >> UART_FCR_RFIFORST_SHIFT)
241 
242 /*
243  * FIFOE (WO)
244  *
245  * FIFO enable
246  * Write 1 to enable both the transmitter and receiver
247  * FIFOs.
248  * The FIFOs are reset when the value of this bit toggles.
249  */
250 #define UART_FCR_FIFOE_MASK (0x1U)
251 #define UART_FCR_FIFOE_SHIFT (0U)
252 #define UART_FCR_FIFOE_SET(x) (((uint32_t)(x) << UART_FCR_FIFOE_SHIFT) & UART_FCR_FIFOE_MASK)
253 #define UART_FCR_FIFOE_GET(x) (((uint32_t)(x) & UART_FCR_FIFOE_MASK) >> UART_FCR_FIFOE_SHIFT)
254 
255 /* Bitfield definition for register: LCR */
256 /*
257  * DLAB (RW)
258  *
259  * Divisor latch access bit
260  */
261 #define UART_LCR_DLAB_MASK (0x80U)
262 #define UART_LCR_DLAB_SHIFT (7U)
263 #define UART_LCR_DLAB_SET(x) (((uint32_t)(x) << UART_LCR_DLAB_SHIFT) & UART_LCR_DLAB_MASK)
264 #define UART_LCR_DLAB_GET(x) (((uint32_t)(x) & UART_LCR_DLAB_MASK) >> UART_LCR_DLAB_SHIFT)
265 
266 /*
267  * BC (RW)
268  *
269  * Break control
270  */
271 #define UART_LCR_BC_MASK (0x40U)
272 #define UART_LCR_BC_SHIFT (6U)
273 #define UART_LCR_BC_SET(x) (((uint32_t)(x) << UART_LCR_BC_SHIFT) & UART_LCR_BC_MASK)
274 #define UART_LCR_BC_GET(x) (((uint32_t)(x) & UART_LCR_BC_MASK) >> UART_LCR_BC_SHIFT)
275 
276 /*
277  * SPS (RW)
278  *
279  * Stick parity
280  * 1: Parity bit is constant 0 or 1, depending on bit4 (EPS).
281  * 0: Disable the sticky bit parity.
282  */
283 #define UART_LCR_SPS_MASK (0x20U)
284 #define UART_LCR_SPS_SHIFT (5U)
285 #define UART_LCR_SPS_SET(x) (((uint32_t)(x) << UART_LCR_SPS_SHIFT) & UART_LCR_SPS_MASK)
286 #define UART_LCR_SPS_GET(x) (((uint32_t)(x) & UART_LCR_SPS_MASK) >> UART_LCR_SPS_SHIFT)
287 
288 /*
289  * EPS (RW)
290  *
291  * Even parity select
292  * 1: Even parity (an even number of logic-1 is in the data
293  * and parity bits)
294  * 0: Old parity.
295  */
296 #define UART_LCR_EPS_MASK (0x10U)
297 #define UART_LCR_EPS_SHIFT (4U)
298 #define UART_LCR_EPS_SET(x) (((uint32_t)(x) << UART_LCR_EPS_SHIFT) & UART_LCR_EPS_MASK)
299 #define UART_LCR_EPS_GET(x) (((uint32_t)(x) & UART_LCR_EPS_MASK) >> UART_LCR_EPS_SHIFT)
300 
301 /*
302  * PEN (RW)
303  *
304  * Parity enable
305  * When this bit is set, a parity bit is generated in
306  * transmitted data before the first STOP bit and the parity
307  * bit would be checked for the received data.
308  */
309 #define UART_LCR_PEN_MASK (0x8U)
310 #define UART_LCR_PEN_SHIFT (3U)
311 #define UART_LCR_PEN_SET(x) (((uint32_t)(x) << UART_LCR_PEN_SHIFT) & UART_LCR_PEN_MASK)
312 #define UART_LCR_PEN_GET(x) (((uint32_t)(x) & UART_LCR_PEN_MASK) >> UART_LCR_PEN_SHIFT)
313 
314 /*
315  * STB (RW)
316  *
317  * Number of STOP bits
318  * 0: 1 bits
319  * 1: The number of STOP bit is based on the WLS setting
320  * When WLS = 0, STOP bit is 1.5 bits
321  * When WLS = 1, 2, 3, STOP bit is 2 bits
322  */
323 #define UART_LCR_STB_MASK (0x4U)
324 #define UART_LCR_STB_SHIFT (2U)
325 #define UART_LCR_STB_SET(x) (((uint32_t)(x) << UART_LCR_STB_SHIFT) & UART_LCR_STB_MASK)
326 #define UART_LCR_STB_GET(x) (((uint32_t)(x) & UART_LCR_STB_MASK) >> UART_LCR_STB_SHIFT)
327 
328 /*
329  * WLS (RW)
330  *
331  * Word length setting
332  * 0: 5 bits
333  * 1: 6 bits
334  * 2: 7 bits
335  * 3: 8 bits
336  */
337 #define UART_LCR_WLS_MASK (0x3U)
338 #define UART_LCR_WLS_SHIFT (0U)
339 #define UART_LCR_WLS_SET(x) (((uint32_t)(x) << UART_LCR_WLS_SHIFT) & UART_LCR_WLS_MASK)
340 #define UART_LCR_WLS_GET(x) (((uint32_t)(x) & UART_LCR_WLS_MASK) >> UART_LCR_WLS_SHIFT)
341 
342 /* Bitfield definition for register: MCR */
343 /*
344  * AFE (RW)
345  *
346  * Auto flow control enable
347  * 0: Disable
348  * 1: The auto-CTS and auto-RTS setting is based on the
349  * RTS bit setting:
350  * When RTS = 0, auto-CTS only
351  * When RTS = 1, auto-CTS and auto-RTS
352  */
353 #define UART_MCR_AFE_MASK (0x20U)
354 #define UART_MCR_AFE_SHIFT (5U)
355 #define UART_MCR_AFE_SET(x) (((uint32_t)(x) << UART_MCR_AFE_SHIFT) & UART_MCR_AFE_MASK)
356 #define UART_MCR_AFE_GET(x) (((uint32_t)(x) & UART_MCR_AFE_MASK) >> UART_MCR_AFE_SHIFT)
357 
358 /*
359  * LOOP (RW)
360  *
361  * Enable loopback mode
362  * 0: Disable
363  * 1: Enable
364  */
365 #define UART_MCR_LOOP_MASK (0x10U)
366 #define UART_MCR_LOOP_SHIFT (4U)
367 #define UART_MCR_LOOP_SET(x) (((uint32_t)(x) << UART_MCR_LOOP_SHIFT) & UART_MCR_LOOP_MASK)
368 #define UART_MCR_LOOP_GET(x) (((uint32_t)(x) & UART_MCR_LOOP_MASK) >> UART_MCR_LOOP_SHIFT)
369 
370 /*
371  * RTS (RW)
372  *
373  * Request to send
374  * This bit controls the modem_rtsn output.
375  * 0: The modem_rtsn output signal will be driven HIGH
376  * 1: The modem_rtsn output signal will be driven LOW
377  */
378 #define UART_MCR_RTS_MASK (0x2U)
379 #define UART_MCR_RTS_SHIFT (1U)
380 #define UART_MCR_RTS_SET(x) (((uint32_t)(x) << UART_MCR_RTS_SHIFT) & UART_MCR_RTS_MASK)
381 #define UART_MCR_RTS_GET(x) (((uint32_t)(x) & UART_MCR_RTS_MASK) >> UART_MCR_RTS_SHIFT)
382 
383 /* Bitfield definition for register: LSR */
384 /*
385  * ERRF (RO)
386  *
387  * Error in RXFIFO
388  * In the FIFO mode, this bit is set when there is at least
389  * one parity error, framing error, or line break
390  * associated with data in the RXFIFO. It is cleared when
391  * this register is read and there is no more error for the
392  * rest of data in the RXFIFO.
393  */
394 #define UART_LSR_ERRF_MASK (0x80U)
395 #define UART_LSR_ERRF_SHIFT (7U)
396 #define UART_LSR_ERRF_GET(x) (((uint32_t)(x) & UART_LSR_ERRF_MASK) >> UART_LSR_ERRF_SHIFT)
397 
398 /*
399  * TEMT (RO)
400  *
401  * Transmitter empty
402  * This bit is 1 when the THR (TXFIFO in the FIFO
403  * mode) and the Transmitter Shift Register (TSR) are
404  * both empty. Otherwise, it is zero.
405  */
406 #define UART_LSR_TEMT_MASK (0x40U)
407 #define UART_LSR_TEMT_SHIFT (6U)
408 #define UART_LSR_TEMT_GET(x) (((uint32_t)(x) & UART_LSR_TEMT_MASK) >> UART_LSR_TEMT_SHIFT)
409 
410 /*
411  * THRE (RO)
412  *
413  * Transmitter Holding Register empty
414  * This bit is 1 when the THR (TXFIFO in the FIFO
415  * mode) is empty. Otherwise, it is zero.
416  * If the THRE interrupt is enabled, an interrupt is
417  * triggered when THRE becomes 1.
418  */
419 #define UART_LSR_THRE_MASK (0x20U)
420 #define UART_LSR_THRE_SHIFT (5U)
421 #define UART_LSR_THRE_GET(x) (((uint32_t)(x) & UART_LSR_THRE_MASK) >> UART_LSR_THRE_SHIFT)
422 
423 /*
424  * LBREAK (RO)
425  *
426  * Line break
427  * This bit is set when the uart_sin input signal was held
428  * LOWfor longer than the time for a full-word
429  * transmission. A full-word transmission is the
430  * transmission of the START, data, parity, and STOP
431  * bits. It is cleared when this register is read.
432  * In the FIFO mode, this bit indicates the line break for
433  * the received data at the top of the RXFIFO.
434  */
435 #define UART_LSR_LBREAK_MASK (0x10U)
436 #define UART_LSR_LBREAK_SHIFT (4U)
437 #define UART_LSR_LBREAK_GET(x) (((uint32_t)(x) & UART_LSR_LBREAK_MASK) >> UART_LSR_LBREAK_SHIFT)
438 
439 /*
440  * FE (RO)
441  *
442  * Framing error
443  * This bit is set when the received STOP bit is not
444  * HIGH. It is cleared when this register is read.
445  * In the FIFO mode, this bit indicates the framing error
446  * for the received data at the top of the RXFIFO.
447  */
448 #define UART_LSR_FE_MASK (0x8U)
449 #define UART_LSR_FE_SHIFT (3U)
450 #define UART_LSR_FE_GET(x) (((uint32_t)(x) & UART_LSR_FE_MASK) >> UART_LSR_FE_SHIFT)
451 
452 /*
453  * PE (RO)
454  *
455  * Parity error
456  * This bit is set when the received parity does not match
457  * with the parity selected in the LCR[5:4]. It is cleared
458  * when this register is read.
459  * In the FIFO mode, this bit indicates the parity error
460  * for the received data at the top of the RXFIFO.
461  */
462 #define UART_LSR_PE_MASK (0x4U)
463 #define UART_LSR_PE_SHIFT (2U)
464 #define UART_LSR_PE_GET(x) (((uint32_t)(x) & UART_LSR_PE_MASK) >> UART_LSR_PE_SHIFT)
465 
466 /*
467  * OE (RO)
468  *
469  * Overrun error
470  * This bit indicates that data in the Receiver Buffer
471  * Register (RBR) is overrun.
472  */
473 #define UART_LSR_OE_MASK (0x2U)
474 #define UART_LSR_OE_SHIFT (1U)
475 #define UART_LSR_OE_GET(x) (((uint32_t)(x) & UART_LSR_OE_MASK) >> UART_LSR_OE_SHIFT)
476 
477 /*
478  * DR (RO)
479  *
480  * Data ready.
481  * This bit is set when there are incoming received data
482  * in the Receiver Buffer Register (RBR). It is cleared
483  * when all of the received data are read.
484  */
485 #define UART_LSR_DR_MASK (0x1U)
486 #define UART_LSR_DR_SHIFT (0U)
487 #define UART_LSR_DR_GET(x) (((uint32_t)(x) & UART_LSR_DR_MASK) >> UART_LSR_DR_SHIFT)
488 
489 /* Bitfield definition for register: MSR */
490 /*
491  * CTS (RO)
492  *
493  * Clear to send
494  * 0: The modem_ctsn input signal is HIGH.
495  * 1: The modem_ctsn input signal is LOW.
496  */
497 #define UART_MSR_CTS_MASK (0x10U)
498 #define UART_MSR_CTS_SHIFT (4U)
499 #define UART_MSR_CTS_GET(x) (((uint32_t)(x) & UART_MSR_CTS_MASK) >> UART_MSR_CTS_SHIFT)
500 
501 /*
502  * DCTS (RC)
503  *
504  * Delta clear to send
505  * This bit is set when the state of the modem_ctsn input
506  * signal has been changed since the last time this
507  * register is read.
508  */
509 #define UART_MSR_DCTS_MASK (0x1U)
510 #define UART_MSR_DCTS_SHIFT (0U)
511 #define UART_MSR_DCTS_GET(x) (((uint32_t)(x) & UART_MSR_DCTS_MASK) >> UART_MSR_DCTS_SHIFT)
512 
513 /* Bitfield definition for register: GPR */
514 /*
515  * DATA (RW)
516  *
517  * A one-byte storage register
518  */
519 #define UART_GPR_DATA_MASK (0xFFU)
520 #define UART_GPR_DATA_SHIFT (0U)
521 #define UART_GPR_DATA_SET(x) (((uint32_t)(x) << UART_GPR_DATA_SHIFT) & UART_GPR_DATA_MASK)
522 #define UART_GPR_DATA_GET(x) (((uint32_t)(x) & UART_GPR_DATA_MASK) >> UART_GPR_DATA_SHIFT)
523 
524 
525 
526 
527 #endif /* HPM_UART_H */
Definition: hpm_uart_regs.h:12