/* * Copyright 2014, General Dynamics C4 Systems * * SPDX-License-Identifier: GPL-2.0-only */ #include #include #include #include #define USR 0x08 #define UTF 0x70 #define UNTX 0x40 #define USR_RXRDY BIT(0) #define USR_RXFUL BIT(1) #define USR_TXRDY BIT(2) #define USR_TXEMP BIT(3) #define UART_REG(X) ((volatile uint32_t *)(UART_PPTR + (X))) #if defined(CONFIG_DEBUG_BUILD) || defined(CONFIG_PRINTING) void putDebugChar(unsigned char c) { while ((*UART_REG(USR) & USR_TXEMP) == 0); /* Tell the peripheral how many characters to send */ *UART_REG(UNTX) = 1; /* Write the character into the FIFO */ *UART_REG(UTF) = c & 0xff; } #endif #ifdef CONFIG_DEBUG_BUILD unsigned char getDebugChar(void) { while ((*UART_REG(USR) & USR_RXRDY) == 0); return *UART_REG(UTF) & 0xff; } #endif /* CONFIG_DEBUG_BUILD */