14 #include "uart_regs.h"
36 alert_idx = UART_ALERT_TEST_FATAL_FAULT_BIT;
43 mmio_region_write32(uart->
base_addr, (ptrdiff_t)UART_ALERT_TEST_REG_OFFSET,
56 *index_out = UART_INTR_COMMON_TX_WATERMARK_BIT;
59 *index_out = UART_INTR_COMMON_RX_WATERMARK_BIT;
62 *index_out = UART_INTR_COMMON_TX_EMPTY_BIT;
65 *index_out = UART_INTR_COMMON_RX_OVERFLOW_BIT;
68 *index_out = UART_INTR_COMMON_RX_FRAME_ERR_BIT;
71 *index_out = UART_INTR_COMMON_RX_BREAK_ERR_BIT;
74 *index_out = UART_INTR_COMMON_RX_TIMEOUT_BIT;
77 *index_out = UART_INTR_COMMON_RX_PARITY_ERR_BIT;
98 *type = irq_types[irq];
106 if (uart == NULL || snapshot == NULL) {
110 *snapshot = mmio_region_read32(uart->
base_addr,
111 (ptrdiff_t)UART_INTR_STATE_REG_OFFSET);
123 mmio_region_write32(uart->
base_addr, (ptrdiff_t)UART_INTR_STATE_REG_OFFSET,
132 if (uart == NULL || is_pending == NULL) {
137 if (!uart_get_irq_bit_index(irq, &index)) {
141 uint32_t intr_state_reg = mmio_region_read32(
142 uart->
base_addr, (ptrdiff_t)UART_INTR_STATE_REG_OFFSET);
156 mmio_region_write32(uart->
base_addr, (ptrdiff_t)UART_INTR_STATE_REG_OFFSET,
170 if (!uart_get_irq_bit_index(irq, &index)) {
176 mmio_region_write32(uart->
base_addr, (ptrdiff_t)UART_INTR_STATE_REG_OFFSET,
190 if (!uart_get_irq_bit_index(irq, &index)) {
195 mmio_region_write32(uart->
base_addr, (ptrdiff_t)UART_INTR_TEST_REG_OFFSET,
204 if (uart == NULL || state == NULL) {
209 if (!uart_get_irq_bit_index(irq, &index)) {
213 uint32_t intr_enable_reg = mmio_region_read32(
214 uart->
base_addr, (ptrdiff_t)UART_INTR_ENABLE_REG_OFFSET);
230 if (!uart_get_irq_bit_index(irq, &index)) {
234 uint32_t intr_enable_reg = mmio_region_read32(
235 uart->
base_addr, (ptrdiff_t)UART_INTR_ENABLE_REG_OFFSET);
239 mmio_region_write32(uart->
base_addr, (ptrdiff_t)UART_INTR_ENABLE_REG_OFFSET,
253 if (snapshot != NULL) {
254 *snapshot = mmio_region_read32(uart->
base_addr,
255 (ptrdiff_t)UART_INTR_ENABLE_REG_OFFSET);
259 mmio_region_write32(uart->
base_addr, (ptrdiff_t)UART_INTR_ENABLE_REG_OFFSET,
268 if (uart == NULL || snapshot == NULL) {
272 mmio_region_write32(uart->
base_addr, (ptrdiff_t)UART_INTR_ENABLE_REG_OFFSET,