mirror of
				https://github.com/0xFEEDC0DE64/arduino-esp32.git
				synced 2025-11-04 08:01:38 +01:00 
			
		
		
		
	
		
			
	
	
		
			70 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			70 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								/*******************************************************************************
							 | 
						||
| 
								 | 
							
								Copyright (c) 2006-2013 by Tensilica Inc.  ALL RIGHTS RESERVED.
							 | 
						||
| 
								 | 
							
								These coded instructions, statements, and computer programs are the
							 | 
						||
| 
								 | 
							
								copyrighted works and confidential proprietary information of Tensilica Inc.
							 | 
						||
| 
								 | 
							
								They may not be modified, copied, reproduced, distributed, or disclosed to
							 | 
						||
| 
								 | 
							
								third parties in any manner, medium, or form, in whole or in part, without
							 | 
						||
| 
								 | 
							
								the prior written consent of Tensilica Inc.
							 | 
						||
| 
								 | 
							
								--------------------------------------------------------------------------------
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								uart-16550-board.h Board-specific UART info on these boards:
							 | 
						||
| 
								 | 
							
									Avnet AV60 (XT-AV60)
							 | 
						||
| 
								 | 
							
									Avnet AV110 (XT-AV110)
							 | 
						||
| 
								 | 
							
									Avnet AV200 (XT-AV200)
							 | 
						||
| 
								 | 
							
									Xilinx ML605 (XT-ML605)
							 | 
						||
| 
								 | 
							
									Xilinx KC705 (XT-KC705)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Interface between board-independent driver and board-specific header.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								This is used by a board-independent 16550 UART driver to obtain board-specific
							 | 
						||
| 
								 | 
							
								information about 1 instance of the 16550 UART on the board, such as the device
							 | 
						||
| 
								 | 
							
								register base address and spacing (a function of how the address lines are 
							 | 
						||
| 
								 | 
							
								connected on the board) and the frequency of the UART clock. The driver does
							 | 
						||
| 
								 | 
							
								not refer directly to the board-specific header, which therefore is not 
							 | 
						||
| 
								 | 
							
								constrained to use macro names consistent with other boards.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								!! Must not contain any board-specific macro names (only UART specific). !!
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Included at compile-time via an include path specific to the board.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								These boards contain a single 16550 UART implemented on the FPGA.
							 | 
						||
| 
								 | 
							
								Their clock frequency comes from the board's core clock (not its own crystal)
							 | 
						||
| 
								 | 
							
								which depends on the core config so is not a constant. Obtained via the BSP.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								*******************************************************************************/
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef _UART_16550_BOARD_H
							 | 
						||
| 
								 | 
							
								#define _UART_16550_BOARD_H
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include <xtensa/xtbsp.h>               /* BSP API */
							 | 
						||
| 
								 | 
							
								#include <xtensa/board.h>               /* Board info */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* Base address of UART's registers. */
							 | 
						||
| 
								 | 
							
								#ifdef UART16550_VADDR
							 | 
						||
| 
								 | 
							
								#define UART_16550_REGBASE UART16550_VADDR
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* 
							 | 
						||
| 
								 | 
							
								The UART's registers are connected at word addresses on these boards.
							 | 
						||
| 
								 | 
							
								Each byte-wide register appears as the least-significant-byte (LSB) of the 
							 | 
						||
| 
								 | 
							
								word regardless of the endianness of the processor.
							 | 
						||
| 
								 | 
							
								*/
							 | 
						||
| 
								 | 
							
								#define UART_16550_REGSPACING 4
							 | 
						||
| 
								 | 
							
								typedef unsigned uart16550_reg_t;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* UART Clock Frequency in Hz */
							 | 
						||
| 
								 | 
							
								#define UART_16550_XTAL_FREQ xtbsp_clock_freq_hz()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* UART Interrupt Number */
							 | 
						||
| 
								 | 
							
								#ifdef UART16550_INTNUM
							 | 
						||
| 
								 | 
							
								#define UART_16550_INTNUM UART16550_INTNUM
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* Include generic information shared by all boards that use this device. */
							 | 
						||
| 
								 | 
							
								#include    <xtensa/uart-16550.h>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif /* _UART_16550_BOARD_H */
							 | 
						||
| 
								 | 
							
								
							 |