61 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */
 | |
| /*
 | |
|  * Copyright (c) 2023 Rockchip Electronics Co., Ltd.
 | |
|  */
 | |
| 
 | |
| #ifndef RKPM_URAT_H
 | |
| #define RKPM_URAT_H
 | |
| 
 | |
| #include "rkpm_helpers.h"
 | |
| 
 | |
| /* UART16550 Registers */
 | |
| #define UARTTX				0x0
 | |
| #define UARTRX				0x0
 | |
| #define UARTDLL				0x0
 | |
| #define UARTIER				0x4
 | |
| #define UARTDLLM			0x4
 | |
| #define UARTIIR				0x8
 | |
| #define UARTFCR				0x8
 | |
| #define UARTLCR				0xc
 | |
| #define UARTMCR				0x10
 | |
| #define UARTLSR				0x14
 | |
| #define UARTMSR				0x18
 | |
| #define UARTSPR				0x1c
 | |
| #define UARTCSR				0x20
 | |
| 
 | |
| #define UARTUSR				0x7c
 | |
| #define UARTSRR				0x88
 | |
| #define DIAGNOSTIC_MODE			BIT(4)
 | |
| #define UART_RESET			BIT(0)
 | |
| #define RCVR_FIFO_RESET			BIT(1)
 | |
| #define XMIT_FIFO_RESET			BIT(2)
 | |
| 
 | |
| /* UART_USR bits */
 | |
| #define UARTUSR_BUSY			BIT(0)
 | |
| #define UARTUSR_TFIFO_N_FULL		BIT(1)
 | |
| #define UARTUSR_TFIFO_EMPTY		BIT(2)
 | |
| #define UARTUSR_RRIFO_N_EMPTY		BIT(3)
 | |
| #define UARTUSR_RFIFO_FULL		BIT(4)
 | |
| 
 | |
| #define UARTFCR_FIFOEN			(1 << 0)	/* Enable the Tx/Rx FIFO */
 | |
| 
 | |
| #define UARTLCR_DLAB			(1 << 7)	/* Divisor Latch Access */
 | |
| 
 | |
| struct uart_debug_ctx {
 | |
| 	u32 uart_dll;
 | |
| 	u32 uart_dlh;
 | |
| 	u32 uart_ier;
 | |
| 	u32 uart_fcr;
 | |
| 	u32 uart_mcr;
 | |
| 	u32 uart_lcr;
 | |
| };
 | |
| 
 | |
| void rkpm_uart_debug_init(void __iomem *base,
 | |
| 			  unsigned int uart_clk,
 | |
| 			  unsigned int baud_rate);
 | |
| void rkpm_uart_debug_save(void __iomem *base,
 | |
| 			  struct uart_debug_ctx *ctx);
 | |
| void rkpm_uart_debug_restore(void __iomem *base,
 | |
| 			     struct uart_debug_ctx *ctx);
 | |
| #endif
 |