1/* 2 * Embedded Alley Solutions, source@embeddedalley.com. 3 * 4 * This program is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU General Public License as published by 6 * the Free Software Foundation; either version 2 of the License, or 7 * (at your option) any later version. 8 * 9 * This program is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * GNU General Public License for more details. 13 * 14 * You should have received a copy of the GNU General Public License 15 * along with this program; if not, write to the Free Software 16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 */ 18 19#ifndef _LINUX_SERIAL_IP3106_H 20#define _LINUX_SERIAL_IP3106_H 21 22#include <linux/serial_core.h> 23#include <linux/device.h> 24 25#define IP3106_NR_PORTS 2 26 27struct ip3106_port { 28 struct uart_port port; 29 struct timer_list timer; 30 unsigned int old_status; 31}; 32 33/* register offsets */ 34#define IP3106_LCR 0 35#define IP3106_MCR 0x004 36#define IP3106_BAUD 0x008 37#define IP3106_CFG 0x00c 38#define IP3106_FIFO 0x028 39#define IP3106_ISTAT 0xfe0 40#define IP3106_IEN 0xfe4 41#define IP3106_ICLR 0xfe8 42#define IP3106_ISET 0xfec 43#define IP3106_PD 0xff4 44#define IP3106_MID 0xffc 45 46#define IP3106_UART_LCR_TXBREAK (1<<30) 47#define IP3106_UART_LCR_PAREVN 0x10000000 48#define IP3106_UART_LCR_PAREN 0x08000000 49#define IP3106_UART_LCR_2STOPB 0x04000000 50#define IP3106_UART_LCR_8BIT 0x01000000 51#define IP3106_UART_LCR_TX_RST 0x00040000 52#define IP3106_UART_LCR_RX_RST 0x00020000 53#define IP3106_UART_LCR_RX_NEXT 0x00010000 54 55#define IP3106_UART_MCR_SCR 0xFF000000 56#define IP3106_UART_MCR_DCD 0x00800000 57#define IP3106_UART_MCR_CTS 0x00100000 58#define IP3106_UART_MCR_LOOP 0x00000010 59#define IP3106_UART_MCR_RTS 0x00000002 60#define IP3106_UART_MCR_DTR 0x00000001 61 62#define IP3106_UART_INT_TX 0x00000080 63#define IP3106_UART_INT_EMPTY 0x00000040 64#define IP3106_UART_INT_RCVTO 0x00000020 65#define IP3106_UART_INT_RX 0x00000010 66#define IP3106_UART_INT_RXOVRN 0x00000008 67#define IP3106_UART_INT_FRERR 0x00000004 68#define IP3106_UART_INT_BREAK 0x00000002 69#define IP3106_UART_INT_PARITY 0x00000001 70#define IP3106_UART_INT_ALLRX 0x0000003F 71#define IP3106_UART_INT_ALLTX 0x000000C0 72 73#define IP3106_UART_FIFO_TXFIFO 0x001F0000 74#define IP3106_UART_FIFO_TXFIFO_STA (0x1f<<16) 75#define IP3106_UART_FIFO_RXBRK 0x00008000 76#define IP3106_UART_FIFO_RXFE 0x00004000 77#define IP3106_UART_FIFO_RXPAR 0x00002000 78#define IP3106_UART_FIFO_RXFIFO 0x00001F00 79#define IP3106_UART_FIFO_RBRTHR 0x000000FF 80 81#endif