1*54fd6939SJiyong Park /* 2*54fd6939SJiyong Park * Copyright (c) 2016-2018, ARM Limited and Contributors. All rights reserved. 3*54fd6939SJiyong Park * 4*54fd6939SJiyong Park * SPDX-License-Identifier: BSD-3-Clause 5*54fd6939SJiyong Park */ 6*54fd6939SJiyong Park 7*54fd6939SJiyong Park #ifndef CDNS_UART_H 8*54fd6939SJiyong Park #define CDNS_UART_H 9*54fd6939SJiyong Park 10*54fd6939SJiyong Park #include <drivers/console.h> 11*54fd6939SJiyong Park 12*54fd6939SJiyong Park /* This is very minimalistic and will only work in QEMU. */ 13*54fd6939SJiyong Park 14*54fd6939SJiyong Park /* CADENCE Registers */ 15*54fd6939SJiyong Park #define R_UART_CR 0 16*54fd6939SJiyong Park #define R_UART_CR_RXRST (1 << 0) /* RX logic reset */ 17*54fd6939SJiyong Park #define R_UART_CR_TXRST (1 << 1) /* TX logic reset */ 18*54fd6939SJiyong Park #define R_UART_CR_RX_EN (1 << 2) /* RX enabled */ 19*54fd6939SJiyong Park #define R_UART_CR_TX_EN (1 << 4) /* TX enabled */ 20*54fd6939SJiyong Park 21*54fd6939SJiyong Park #define R_UART_SR 0x2C 22*54fd6939SJiyong Park #define UART_SR_INTR_REMPTY_BIT 1 23*54fd6939SJiyong Park #define UART_SR_INTR_TFUL_BIT 4 24*54fd6939SJiyong Park #define UART_SR_INTR_TEMPTY_BIT 3 25*54fd6939SJiyong Park 26*54fd6939SJiyong Park #define R_UART_TX 0x30 27*54fd6939SJiyong Park #define R_UART_RX 0x30 28*54fd6939SJiyong Park 29*54fd6939SJiyong Park #ifndef __ASSEMBLER__ 30*54fd6939SJiyong Park 31*54fd6939SJiyong Park #include <stdint.h> 32*54fd6939SJiyong Park 33*54fd6939SJiyong Park /* 34*54fd6939SJiyong Park * Initialize a new Cadence console instance and register it with the console 35*54fd6939SJiyong Park * framework. The |console| pointer must point to storage that will be valid 36*54fd6939SJiyong Park * for the lifetime of the console, such as a global or static local variable. 37*54fd6939SJiyong Park * Its contents will be reinitialized from scratch. 38*54fd6939SJiyong Park */ 39*54fd6939SJiyong Park int console_cdns_register(uintptr_t baseaddr, uint32_t clock, uint32_t baud, 40*54fd6939SJiyong Park console_t *console); 41*54fd6939SJiyong Park 42*54fd6939SJiyong Park #endif /*__ASSEMBLER__*/ 43*54fd6939SJiyong Park 44*54fd6939SJiyong Park #endif /* CDNS_UART_H */ 45