/*1* Hardware specific macros, defines and structures2*3* This software may be used and distributed according to the terms4* of the GNU General Public License, incorporated herein by reference.5*6*/78#ifndef HARDWARE_H9#define HARDWARE_H1011#include <asm/param.h> /* For HZ */1213/*14* General hardware parameters common to all ISA adapters15*/1617#define MAX_CARDS 4 /* The maximum number of cards to18control or probe for. */1920#define SIGNATURE 0x87654321 /* Board reset signature */21#define SIG_OFFSET 0x1004 /* Where to find signature in shared RAM */22#define TRACE_OFFSET 0x1008 /* Trace enable word offset in shared RAM */23#define BUFFER_OFFSET 0x1800 /* Beginning of buffers */2425/* I/O Port parameters */26#define IOBASE_MIN 0x180 /* Lowest I/O port address */27#define IOBASE_MAX 0x3C0 /* Highest I/O port address */28#define IOBASE_OFFSET 0x20 /* Inter-board I/O port gap used during29probing */30#define FIFORD_OFFSET 0x031#define FIFOWR_OFFSET 0x40032#define FIFOSTAT_OFFSET 0x100033#define RESET_OFFSET 0x280034#define PG0_OFFSET 0x3000 /* Offset from I/O Base for Page 0 register */35#define PG1_OFFSET 0x3400 /* Offset from I/O Base for Page 1 register */36#define PG2_OFFSET 0x3800 /* Offset from I/O Base for Page 2 register */37#define PG3_OFFSET 0x3C00 /* Offset from I/O Base for Page 3 register */3839#define FIFO_READ 0 /* FIFO Read register */40#define FIFO_WRITE 1 /* FIFO Write rgister */41#define LO_ADDR_PTR 2 /* Extended RAM Low Addr Pointer */42#define HI_ADDR_PTR 3 /* Extended RAM High Addr Pointer */43#define NOT_USED_1 444#define FIFO_STATUS 5 /* FIFO Status Register */45#define NOT_USED_2 646#define MEM_OFFSET 747#define SFT_RESET 10 /* Reset Register */48#define EXP_BASE 11 /* Shared RAM Base address */49#define EXP_PAGE0 12 /* Shared RAM Page0 register */50#define EXP_PAGE1 13 /* Shared RAM Page1 register */51#define EXP_PAGE2 14 /* Shared RAM Page2 register */52#define EXP_PAGE3 15 /* Shared RAM Page3 register */53#define IRQ_SELECT 16 /* IRQ selection register */54#define MAX_IO_REGS 17 /* Total number of I/O ports */5556/* FIFO register values */57#define RF_HAS_DATA 0x01 /* fifo has data */58#define RF_QUART_FULL 0x02 /* fifo quarter full */59#define RF_HALF_FULL 0x04 /* fifo half full */60#define RF_NOT_FULL 0x08 /* fifo not full */61#define WF_HAS_DATA 0x10 /* fifo has data */62#define WF_QUART_FULL 0x20 /* fifo quarter full */63#define WF_HALF_FULL 0x40 /* fifo half full */64#define WF_NOT_FULL 0x80 /* fifo not full */6566/* Shared RAM parameters */67#define SRAM_MIN 0xC0000 /* Lowest host shared RAM address */68#define SRAM_MAX 0xEFFFF /* Highest host shared RAM address */69#define SRAM_PAGESIZE 0x4000 /* Size of one RAM page (16K) */7071/* Shared RAM buffer parameters */72#define BUFFER_SIZE 0x800 /* The size of a buffer in bytes */73#define BUFFER_BASE BUFFER_OFFSET /* Offset from start of shared RAM74where buffer start */75#define BUFFERS_MAX 16 /* Maximum number of send/receive76buffers per channel */77#define HDLC_PROTO 0x01 /* Frame Format for Layer 2 */7879#define BRI_BOARD 080#define POTS_BOARD 181#define PRI_BOARD 28283/*84* Specific hardware parameters for the DataCommute/BRI85*/86#define BRI_CHANNELS 2 /* Number of B channels */87#define BRI_BASEPG_VAL 0x9888#define BRI_MAGIC 0x60000 /* Magic Number */89#define BRI_MEMSIZE 0x10000 /* Amount of RAM (64K) */90#define BRI_PARTNO "72-029"91#define BRI_FEATURES ISDN_FEATURE_L2_HDLC | ISDN_FEATURE_L3_TRANS;92/*93* Specific hardware parameters for the DataCommute/PRI94*/95#define PRI_CHANNELS 23 /* Number of B channels */96#define PRI_BASEPG_VAL 0x8897#define PRI_MAGIC 0x20000 /* Magic Number */98#define PRI_MEMSIZE 0x100000 /* Amount of RAM (1M) */99#define PRI_PARTNO "72-030"100#define PRI_FEATURES ISDN_FEATURE_L2_HDLC | ISDN_FEATURE_L3_TRANS;101102/*103* Some handy macros104*/105106/* Determine if a channel number is valid for the adapter */107#define IS_VALID_CHANNEL(y,x) ((x>0) && (x <= sc_adapter[y]->channels))108109#endif110111112