/* Nios-sim - one simple NIOSII simulator only for personal interest and fun. Copyright (C) 2010 chysun2000@gmail.com This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef __UART_CORE_H__ #define __UART_CORE_H__ #include #include "public.h" #include "niosii.h" #include "io_device.h" #define UART_IRQ_MASK (1 << 2) #define UART_CORE_BASE_ADDR (0x80681000) #define UART_CORE_REG_CNT (8) /* Mask for registers */ /* copy from /drivers/serial/altuart.c */ #define ALTERA_UART_STATUS_PE_MSK (0x1) #define ALTERA_UART_STATUS_FE_MSK (0x2) #define ALTERA_UART_STATUS_BRK_MSK (0x4) #define ALTERA_UART_STATUS_ROE_MSK (0x8) #define ALTERA_UART_STATUS_TOE_MSK (0x10) #define ALTERA_UART_STATUS_TMT_MSK (0x20) #define ALTERA_UART_STATUS_TRDY_MSK (0x40) #define ALTERA_UART_STATUS_RRDY_MSK (0x80) #define ALTERA_UART_STATUS_E_MSK (0x100) #define ALTERA_UART_STATUS_DCTS_MSK (0x400) #define ALTERA_UART_STATUS_CTS_MSK (0x800) #define ALTERA_UART_STATUS_EOP_MSK (0x1000) #define ALTERA_UART_CONTROL_PE_MSK (0x1) #define ALTERA_UART_CONTROL_FE_MSK (0x2) #define ALTERA_UART_CONTROL_BRK_MSK (0x4) #define ALTERA_UART_CONTROL_ROE_MSK (0x8) #define ALTERA_UART_CONTROL_TOE_MSK (0x10) #define ALTERA_UART_CONTROL_TMT_MSK (0x20) #define ALTERA_UART_CONTROL_TRDY_MSK (0x40) #define ALTERA_UART_CONTROL_RRDY_MSK (0x80) #define ALTERA_UART_CONTROL_E_MSK (0x100) #define ALTERA_UART_CONTROL_TRBK_MSK (0x200) #define ALTERA_UART_CONTROL_DCTS_MSK (0x400) #define ALTERA_UART_CONTROL_RTS_MSK (0x800) #define ALTERA_UART_CONTROL_EOP_MSK (0x1000) #define ALTERA_UART_EOP_MSK (0xFF) #define ALTERA_UART_EOP_OFST (0) #define UART_HAS_NO_DATA_TO_RX (0x00) #define UART_HAS_DATA_TO_RX (0x01) #define UART_HAS_DATA_TO_TX (0x01) #define UART_HAS_NO_DATA_TO_TX (0x00) struct uart_core_hw { struct io_reg io_regs[UART_CORE_REG_CNT]; uint32_t rx_status; uint32_t tx_status; }; extern struct io_device uart_core; #endif