10b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina/* 20b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina * Copyright 2003 Digi International (www.digi.com) 30b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina * Scott H Kilau <Scott_Kilau at digi dot com> 40b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina * 50b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina * This program is free software; you can redistribute it and/or modify 60b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina * it under the terms of the GNU General Public License as published by 70b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina * the Free Software Foundation; either version 2, or (at your option) 80b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina * any later version. 90b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina * 100b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina * This program is distributed in the hope that it will be useful, 110b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina * but WITHOUT ANY WARRANTY, EXPRESS OR IMPLIED; without even the 120b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 130b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina * PURPOSE. See the GNU General Public License for more details. 140b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina * 150b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina * You should have received a copy of the GNU General Public License 160b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina * along with this program; if not, write to the Free Software 170b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 180b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina * 190b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina * NOTE: THIS IS A SHARED HEADER. DO NOT CHANGE CODING STYLE!!! 200b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina * 210b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina */ 220b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina 230b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina#ifndef __DGNC_CLS_H 240b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina#define __DGNC_CLS_H 250b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina 260b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina#include "dgnc_types.h" 270b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina 280b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina 291ef56a42e93c7c27243943b6b8ef99a3abc2e674Lidza Louina/************************************************************************ 300b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina * Per channel/port Classic UART structure * 310b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina ************************************************************************ 320b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina * Base Structure Entries Usage Meanings to Host * 330b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina * * 341ef56a42e93c7c27243943b6b8ef99a3abc2e674Lidza Louina * W = read write R = read only * 350b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina * U = Unused. * 360b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina ************************************************************************/ 370b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina 380b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louinastruct cls_uart_struct { 392ea550bdfad1442749e6a1353afda93c8bb7a9acLidza Louina u8 txrx; /* WR RHR/THR - Holding Reg */ 402ea550bdfad1442749e6a1353afda93c8bb7a9acLidza Louina u8 ier; /* WR IER - Interrupt Enable Reg */ 412ea550bdfad1442749e6a1353afda93c8bb7a9acLidza Louina u8 isr_fcr; /* WR ISR/FCR - Interrupt Status Reg/Fifo Control Reg */ 422ea550bdfad1442749e6a1353afda93c8bb7a9acLidza Louina u8 lcr; /* WR LCR - Line Control Reg */ 432ea550bdfad1442749e6a1353afda93c8bb7a9acLidza Louina u8 mcr; /* WR MCR - Modem Control Reg */ 442ea550bdfad1442749e6a1353afda93c8bb7a9acLidza Louina u8 lsr; /* WR LSR - Line Status Reg */ 452ea550bdfad1442749e6a1353afda93c8bb7a9acLidza Louina u8 msr; /* WR MSR - Modem Status Reg */ 462ea550bdfad1442749e6a1353afda93c8bb7a9acLidza Louina u8 spr; /* WR SPR - Scratch Pad Reg */ 470b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina}; 480b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina 490b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina/* Where to read the interrupt register (8bits) */ 500b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina#define UART_CLASSIC_POLL_ADDR_OFFSET 0x40 510b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina 520b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina#define UART_EXAR654_ENHANCED_REGISTER_SET 0xBF 530b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina 540b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina#define UART_16654_FCR_TXTRIGGER_8 0x0 550b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina#define UART_16654_FCR_TXTRIGGER_16 0x10 560b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina#define UART_16654_FCR_TXTRIGGER_32 0x20 570b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina#define UART_16654_FCR_TXTRIGGER_56 0x30 580b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina 590b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina#define UART_16654_FCR_RXTRIGGER_8 0x0 600b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina#define UART_16654_FCR_RXTRIGGER_16 0x40 610b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina#define UART_16654_FCR_RXTRIGGER_56 0x80 620b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina#define UART_16654_FCR_RXTRIGGER_60 0xC0 630b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina 640b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina#define UART_IIR_CTSRTS 0x20 /* Received CTS/RTS change of state */ 650b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina#define UART_IIR_RDI_TIMEOUT 0x0C /* Receiver data TIMEOUT */ 660b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina 670b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina/* 680b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina * These are the EXTENDED definitions for the Exar 654's Interrupt 690b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina * Enable Register. 700b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina */ 710b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina#define UART_EXAR654_EFR_ECB 0x10 /* Enhanced control bit */ 720b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina#define UART_EXAR654_EFR_IXON 0x2 /* Receiver compares Xon1/Xoff1 */ 730b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina#define UART_EXAR654_EFR_IXOFF 0x8 /* Transmit Xon1/Xoff1 */ 740b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina#define UART_EXAR654_EFR_RTSDTR 0x40 /* Auto RTS/DTR Flow Control Enable */ 750b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina#define UART_EXAR654_EFR_CTSDSR 0x80 /* Auto CTS/DSR Flow COntrol Enable */ 760b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina 770b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina#define UART_EXAR654_XOFF_DETECT 0x1 /* Indicates whether chip saw an incoming XOFF char */ 780b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina#define UART_EXAR654_XON_DETECT 0x2 /* Indicates whether chip saw an incoming XON char */ 790b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina 800b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina#define UART_EXAR654_IER_XOFF 0x20 /* Xoff Interrupt Enable */ 810b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina#define UART_EXAR654_IER_RTSDTR 0x40 /* Output Interrupt Enable */ 820b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina#define UART_EXAR654_IER_CTSDSR 0x80 /* Input Interrupt Enable */ 830b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina 841ef56a42e93c7c27243943b6b8ef99a3abc2e674Lidza Louina/* 850b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina * Our Global Variables 860b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina */ 870b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louinaextern struct board_ops dgnc_cls_ops; 880b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina 890b99d58902dd82fa51216eb8e0d6ddd8c43e90e4Lidza Louina#endif 90