]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - include/linux/cyclades.h
Merge remote-tracking branch 'parisc-hd/for-next'
[karo-tx-linux.git] / include / linux / cyclades.h
index a5049eaf782d09ea7122857548b73444ca4cbadc..19ae518f54715ca3592043c70797e2176a84cb30 100644 (file)
  *
  *
  */
-
 #ifndef _LINUX_CYCLADES_H
 #define _LINUX_CYCLADES_H
 
-#include <linux/types.h>
-
-struct cyclades_monitor {
-        unsigned long           int_count;
-        unsigned long           char_count;
-        unsigned long           char_max;
-        unsigned long           char_last;
-};
-
-/*
- * These stats all reflect activity since the device was last initialized.
- * (i.e., since the port was opened with no other processes already having it
- * open)
- */
-struct cyclades_idle_stats {
-    __kernel_time_t in_use;    /* Time device has been in use (secs) */
-    __kernel_time_t recv_idle; /* Time since last char received (secs) */
-    __kernel_time_t xmit_idle; /* Time since last char transmitted (secs) */
-    unsigned long  recv_bytes; /* Bytes received */
-    unsigned long  xmit_bytes; /* Bytes transmitted */
-    unsigned long  overruns;   /* Input overruns */
-    unsigned long  frame_errs; /* Input framing errors */
-    unsigned long  parity_errs;        /* Input parity errors */
-};
-
-#define CYCLADES_MAGIC  0x4359
-
-#define CYGETMON                0x435901
-#define CYGETTHRESH             0x435902
-#define CYSETTHRESH             0x435903
-#define CYGETDEFTHRESH          0x435904
-#define CYSETDEFTHRESH          0x435905
-#define CYGETTIMEOUT            0x435906
-#define CYSETTIMEOUT            0x435907
-#define CYGETDEFTIMEOUT         0x435908
-#define CYSETDEFTIMEOUT         0x435909
-#define CYSETRFLOW             0x43590a
-#define CYGETRFLOW             0x43590b
-#define CYSETRTSDTR_INV                0x43590c
-#define CYGETRTSDTR_INV                0x43590d
-#define CYZSETPOLLCYCLE                0x43590e
-#define CYZGETPOLLCYCLE                0x43590f
-#define CYGETCD1400VER         0x435910
-#define        CYSETWAIT               0x435912
-#define        CYGETWAIT               0x435913
-
-/*************** CYCLOM-Z ADDITIONS ***************/
-
-#define CZIOC           ('M' << 8)
-#define CZ_NBOARDS      (CZIOC|0xfa)
-#define CZ_BOOT_START   (CZIOC|0xfb)
-#define CZ_BOOT_DATA    (CZIOC|0xfc)
-#define CZ_BOOT_END     (CZIOC|0xfd)
-#define CZ_TEST         (CZIOC|0xfe)
-
-#define CZ_DEF_POLL    (HZ/25)
-
-#define MAX_BOARD       4       /* Max number of boards */
-#define MAX_DEV         256     /* Max number of ports total */
-#define        CYZ_MAX_SPEED   921600
-
-#define        CYZ_FIFO_SIZE   16
-
-#define CYZ_BOOT_NWORDS 0x100
-struct CYZ_BOOT_CTRL {
-        unsigned short  nboard;
-        int             status[MAX_BOARD];
-        int             nchannel[MAX_BOARD];
-        int             fw_rev[MAX_BOARD];
-        unsigned long   offset;
-        unsigned long   data[CYZ_BOOT_NWORDS];
-};
-
-
-#ifndef DP_WINDOW_SIZE
-/*
- *     Memory Window Sizes
- */
-
-#define        DP_WINDOW_SIZE          (0x00080000)    /* window size 512 Kb */
-#define        ZE_DP_WINDOW_SIZE       (0x00100000)    /* window size 1 Mb (Ze and
-                                                 8Zo V.2 */
-#define        CTRL_WINDOW_SIZE        (0x00000080)    /* runtime regs 128 bytes */
-
-/*
- *     CUSTOM_REG - Cyclom-Z/PCI Custom Registers Set. The driver
- *     normally will access only interested on the fpga_id, fpga_version,
- *     start_cpu and stop_cpu.
- */
-
-struct CUSTOM_REG {
-       __u32   fpga_id;                /* FPGA Identification Register */
-       __u32   fpga_version;           /* FPGA Version Number Register */
-       __u32   cpu_start;              /* CPU start Register (write) */
-       __u32   cpu_stop;               /* CPU stop Register (write) */
-       __u32   misc_reg;               /* Miscellaneous Register */
-       __u32   idt_mode;               /* IDT mode Register */
-       __u32   uart_irq_status;        /* UART IRQ status Register */
-       __u32   clear_timer0_irq;       /* Clear timer interrupt Register */
-       __u32   clear_timer1_irq;       /* Clear timer interrupt Register */
-       __u32   clear_timer2_irq;       /* Clear timer interrupt Register */
-       __u32   test_register;          /* Test Register */
-       __u32   test_count;             /* Test Count Register */
-       __u32   timer_select;           /* Timer select register */
-       __u32   pr_uart_irq_status;     /* Prioritized UART IRQ stat Reg */
-       __u32   ram_wait_state;         /* RAM wait-state Register */
-       __u32   uart_wait_state;        /* UART wait-state Register */
-       __u32   timer_wait_state;       /* timer wait-state Register */
-       __u32   ack_wait_state;         /* ACK wait State Register */
-};
-
-/*
- *     RUNTIME_9060 - PLX PCI9060ES local configuration and shared runtime
- *     registers. This structure can be used to access the 9060 registers
- *     (memory mapped).
- */
-
-struct RUNTIME_9060 {
-       __u32   loc_addr_range; /* 00h - Local Address Range */
-       __u32   loc_addr_base;  /* 04h - Local Address Base */
-       __u32   loc_arbitr;     /* 08h - Local Arbitration */
-       __u32   endian_descr;   /* 0Ch - Big/Little Endian Descriptor */
-       __u32   loc_rom_range;  /* 10h - Local ROM Range */
-       __u32   loc_rom_base;   /* 14h - Local ROM Base */
-       __u32   loc_bus_descr;  /* 18h - Local Bus descriptor */
-       __u32   loc_range_mst;  /* 1Ch - Local Range for Master to PCI */
-       __u32   loc_base_mst;   /* 20h - Local Base for Master PCI */
-       __u32   loc_range_io;   /* 24h - Local Range for Master IO */
-       __u32   pci_base_mst;   /* 28h - PCI Base for Master PCI */
-       __u32   pci_conf_io;    /* 2Ch - PCI configuration for Master IO */
-       __u32   filler1;        /* 30h */
-       __u32   filler2;        /* 34h */
-       __u32   filler3;        /* 38h */
-       __u32   filler4;        /* 3Ch */
-       __u32   mail_box_0;     /* 40h - Mail Box 0 */
-       __u32   mail_box_1;     /* 44h - Mail Box 1 */
-       __u32   mail_box_2;     /* 48h - Mail Box 2 */
-       __u32   mail_box_3;     /* 4Ch - Mail Box 3 */
-       __u32   filler5;        /* 50h */
-       __u32   filler6;        /* 54h */
-       __u32   filler7;        /* 58h */
-       __u32   filler8;        /* 5Ch */
-       __u32   pci_doorbell;   /* 60h - PCI to Local Doorbell */
-       __u32   loc_doorbell;   /* 64h - Local to PCI Doorbell */
-       __u32   intr_ctrl_stat; /* 68h - Interrupt Control/Status */
-       __u32   init_ctrl;      /* 6Ch - EEPROM control, Init Control, etc */
-};
-
-/* Values for the Local Base Address re-map register */
-
-#define        WIN_RAM         0x00000001L     /* set the sliding window to RAM */
-#define        WIN_CREG        0x14000001L     /* set the window to custom Registers */
-
-/* Values timer select registers */
-
-#define        TIMER_BY_1M     0x00            /* clock divided by 1M */
-#define        TIMER_BY_256K   0x01            /* clock divided by 256k */
-#define        TIMER_BY_128K   0x02            /* clock divided by 128k */
-#define        TIMER_BY_32K    0x03            /* clock divided by 32k */
-
-/****************** ****************** *******************/
-#endif
-
-#ifndef ZFIRM_ID
-/* #include "zfwint.h" */
-/****************** ****************** *******************/
-/*
- *     This file contains the definitions for interfacing with the
- *     Cyclom-Z ZFIRM Firmware.
- */
-
-/* General Constant definitions */
-
-#define        MAX_CHAN        64              /* max number of channels per board */
-
-/* firmware id structure (set after boot) */
-
-#define ID_ADDRESS     0x00000180L     /* signature/pointer address */
-#define        ZFIRM_ID        0x5557465AL     /* ZFIRM/U signature */
-#define        ZFIRM_HLT       0x59505B5CL     /* ZFIRM needs external power supply */
-#define        ZFIRM_RST       0x56040674L     /* RST signal (due to FW reset) */
-
-#define        ZF_TINACT_DEF   1000            /* default inactivity timeout 
-                                          (1000 ms) */
-#define        ZF_TINACT       ZF_TINACT_DEF
-
-struct FIRM_ID {
-       __u32   signature;              /* ZFIRM/U signature */
-       __u32   zfwctrl_addr;           /* pointer to ZFW_CTRL structure */
-};
-
-/* Op. System id */
-
-#define        C_OS_LINUX      0x00000030      /* generic Linux system */
-
-/* channel op_mode */
-
-#define        C_CH_DISABLE    0x00000000      /* channel is disabled */
-#define        C_CH_TXENABLE   0x00000001      /* channel Tx enabled */
-#define        C_CH_RXENABLE   0x00000002      /* channel Rx enabled */
-#define        C_CH_ENABLE     0x00000003      /* channel Tx/Rx enabled */
-#define        C_CH_LOOPBACK   0x00000004      /* Loopback mode */
-
-/* comm_parity - parity */
-
-#define        C_PR_NONE       0x00000000      /* None */
-#define        C_PR_ODD        0x00000001      /* Odd */
-#define C_PR_EVEN      0x00000002      /* Even */
-#define C_PR_MARK      0x00000004      /* Mark */
-#define C_PR_SPACE     0x00000008      /* Space */
-#define C_PR_PARITY    0x000000ff
-
-#define        C_PR_DISCARD    0x00000100      /* discard char with frame/par error */
-#define C_PR_IGNORE    0x00000200      /* ignore frame/par error */
-
-/* comm_data_l - data length and stop bits */
-
-#define C_DL_CS5       0x00000001
-#define C_DL_CS6       0x00000002
-#define C_DL_CS7       0x00000004
-#define C_DL_CS8       0x00000008
-#define        C_DL_CS         0x0000000f
-#define C_DL_1STOP     0x00000010
-#define C_DL_15STOP    0x00000020
-#define C_DL_2STOP     0x00000040
-#define        C_DL_STOP       0x000000f0
-
-/* interrupt enabling/status */
-
-#define        C_IN_DISABLE    0x00000000      /* zero, disable interrupts */
-#define        C_IN_TXBEMPTY   0x00000001      /* tx buffer empty */
-#define        C_IN_TXLOWWM    0x00000002      /* tx buffer below LWM */
-#define        C_IN_RXHIWM     0x00000010      /* rx buffer above HWM */
-#define        C_IN_RXNNDT     0x00000020      /* rx no new data timeout */
-#define        C_IN_MDCD       0x00000100      /* modem DCD change */
-#define        C_IN_MDSR       0x00000200      /* modem DSR change */
-#define        C_IN_MRI        0x00000400      /* modem RI change */
-#define        C_IN_MCTS       0x00000800      /* modem CTS change */
-#define        C_IN_RXBRK      0x00001000      /* Break received */
-#define        C_IN_PR_ERROR   0x00002000      /* parity error */
-#define        C_IN_FR_ERROR   0x00004000      /* frame error */
-#define C_IN_OVR_ERROR  0x00008000      /* overrun error */
-#define C_IN_RXOFL     0x00010000      /* RX buffer overflow */
-#define C_IN_IOCTLW    0x00020000      /* I/O control w/ wait */
-#define C_IN_MRTS      0x00040000      /* modem RTS drop */
-#define C_IN_ICHAR     0x00080000
-/* flow control */
-
-#define        C_FL_OXX        0x00000001      /* output Xon/Xoff flow control */
-#define        C_FL_IXX        0x00000002      /* output Xon/Xoff flow control */
-#define C_FL_OIXANY    0x00000004      /* output Xon/Xoff (any xon) */
-#define        C_FL_SWFLOW     0x0000000f
-
-/* flow status */
-
-#define        C_FS_TXIDLE     0x00000000      /* no Tx data in the buffer or UART */
-#define        C_FS_SENDING    0x00000001      /* UART is sending data */
-#define        C_FS_SWFLOW     0x00000002      /* Tx is stopped by received Xoff */
-
-/* rs_control/rs_status RS-232 signals */
-
-#define C_RS_PARAM     0x80000000      /* Indicates presence of parameter in 
-                                          IOCTLM command */
-#define        C_RS_RTS        0x00000001      /* RTS */
-#define        C_RS_DTR        0x00000004      /* DTR */
-#define        C_RS_DCD        0x00000100      /* CD */
-#define        C_RS_DSR        0x00000200      /* DSR */
-#define        C_RS_RI         0x00000400      /* RI */
-#define        C_RS_CTS        0x00000800      /* CTS */
-
-/* commands Host <-> Board */
-
-#define        C_CM_RESET      0x01            /* reset/flush buffers */
-#define        C_CM_IOCTL      0x02            /* re-read CH_CTRL */
-#define        C_CM_IOCTLW     0x03            /* re-read CH_CTRL, intr when done */
-#define        C_CM_IOCTLM     0x04            /* RS-232 outputs change */
-#define        C_CM_SENDXOFF   0x10            /* send Xoff */
-#define        C_CM_SENDXON    0x11            /* send Xon */
-#define C_CM_CLFLOW    0x12            /* Clear flow control (resume) */
-#define        C_CM_SENDBRK    0x41            /* send break */
-#define        C_CM_INTBACK    0x42            /* Interrupt back */
-#define        C_CM_SET_BREAK  0x43            /* Tx break on */
-#define        C_CM_CLR_BREAK  0x44            /* Tx break off */
-#define        C_CM_CMD_DONE   0x45            /* Previous command done */
-#define C_CM_INTBACK2  0x46            /* Alternate Interrupt back */
-#define        C_CM_TINACT     0x51            /* set inactivity detection */
-#define        C_CM_IRQ_ENBL   0x52            /* enable generation of interrupts */
-#define        C_CM_IRQ_DSBL   0x53            /* disable generation of interrupts */
-#define        C_CM_ACK_ENBL   0x54            /* enable acknowledged interrupt mode */
-#define        C_CM_ACK_DSBL   0x55            /* disable acknowledged intr mode */
-#define        C_CM_FLUSH_RX   0x56            /* flushes Rx buffer */
-#define        C_CM_FLUSH_TX   0x57            /* flushes Tx buffer */
-#define C_CM_Q_ENABLE  0x58            /* enables queue access from the 
-                                          driver */
-#define C_CM_Q_DISABLE  0x59            /* disables queue access from the 
-                                          driver */
-
-#define        C_CM_TXBEMPTY   0x60            /* Tx buffer is empty */
-#define        C_CM_TXLOWWM    0x61            /* Tx buffer low water mark */
-#define        C_CM_RXHIWM     0x62            /* Rx buffer high water mark */
-#define        C_CM_RXNNDT     0x63            /* rx no new data timeout */
-#define        C_CM_TXFEMPTY   0x64
-#define        C_CM_ICHAR      0x65
-#define        C_CM_MDCD       0x70            /* modem DCD change */
-#define        C_CM_MDSR       0x71            /* modem DSR change */
-#define        C_CM_MRI        0x72            /* modem RI change */
-#define        C_CM_MCTS       0x73            /* modem CTS change */
-#define C_CM_MRTS      0x74            /* modem RTS drop */
-#define        C_CM_RXBRK      0x84            /* Break received */
-#define        C_CM_PR_ERROR   0x85            /* Parity error */
-#define        C_CM_FR_ERROR   0x86            /* Frame error */
-#define C_CM_OVR_ERROR  0x87            /* Overrun error */
-#define C_CM_RXOFL     0x88            /* RX buffer overflow */
-#define        C_CM_CMDERROR   0x90            /* command error */
-#define        C_CM_FATAL      0x91            /* fatal error */
-#define        C_CM_HW_RESET   0x92            /* reset board */
-
-/*
- *     CH_CTRL - This per port structure contains all parameters
- *     that control an specific port. It can be seen as the
- *     configuration registers of a "super-serial-controller".
- */
-
-struct CH_CTRL {
-       __u32   op_mode;        /* operation mode */
-       __u32   intr_enable;    /* interrupt masking */
-       __u32   sw_flow;        /* SW flow control */
-       __u32   flow_status;    /* output flow status */
-       __u32   comm_baud;      /* baud rate  - numerically specified */
-       __u32   comm_parity;    /* parity */
-       __u32   comm_data_l;    /* data length/stop */
-       __u32   comm_flags;     /* other flags */
-       __u32   hw_flow;        /* HW flow control */
-       __u32   rs_control;     /* RS-232 outputs */
-       __u32   rs_status;      /* RS-232 inputs */
-       __u32   flow_xon;       /* xon char */
-       __u32   flow_xoff;      /* xoff char */
-       __u32   hw_overflow;    /* hw overflow counter */
-       __u32   sw_overflow;    /* sw overflow counter */
-       __u32   comm_error;     /* frame/parity error counter */
-       __u32 ichar;
-       __u32 filler[7];
-};
-
-
-/*
- *     BUF_CTRL - This per channel structure contains
- *     all Tx and Rx buffer control for a given channel.
- */
-
-struct BUF_CTRL        {
-       __u32   flag_dma;       /* buffers are in Host memory */
-       __u32   tx_bufaddr;     /* address of the tx buffer */
-       __u32   tx_bufsize;     /* tx buffer size */
-       __u32   tx_threshold;   /* tx low water mark */
-       __u32   tx_get;         /* tail index tx buf */
-       __u32   tx_put;         /* head index tx buf */
-       __u32   rx_bufaddr;     /* address of the rx buffer */
-       __u32   rx_bufsize;     /* rx buffer size */
-       __u32   rx_threshold;   /* rx high water mark */
-       __u32   rx_get;         /* tail index rx buf */
-       __u32   rx_put;         /* head index rx buf */
-       __u32   filler[5];      /* filler to align structures */
-};
-
-/*
- *     BOARD_CTRL - This per board structure contains all global 
- *     control fields related to the board.
- */
-
-struct BOARD_CTRL {
-
-       /* static info provided by the on-board CPU */
-       __u32   n_channel;      /* number of channels */
-       __u32   fw_version;     /* firmware version */
-
-       /* static info provided by the driver */
-       __u32   op_system;      /* op_system id */
-       __u32   dr_version;     /* driver version */
-
-       /* board control area */
-       __u32   inactivity;     /* inactivity control */
-
-       /* host to FW commands */
-       __u32   hcmd_channel;   /* channel number */
-       __u32   hcmd_param;     /* pointer to parameters */
-
-       /* FW to Host commands */
-       __u32   fwcmd_channel;  /* channel number */
-       __u32   fwcmd_param;    /* pointer to parameters */
-       __u32   zf_int_queue_addr; /* offset for INT_QUEUE structure */
-
-       /* filler so the structures are aligned */
-       __u32   filler[6];
-};
-
-/* Host Interrupt Queue */
-
-#define QUEUE_SIZE     (10*MAX_CHAN)
-
-struct INT_QUEUE {
-       unsigned char   intr_code[QUEUE_SIZE];
-       unsigned long   channel[QUEUE_SIZE];
-       unsigned long   param[QUEUE_SIZE];
-       unsigned long   put;
-       unsigned long   get;
-};
-
-/*
- *     ZFW_CTRL - This is the data structure that includes all other
- *     data structures used by the Firmware.
- */
-struct ZFW_CTRL {
-       struct BOARD_CTRL       board_ctrl;
-       struct CH_CTRL          ch_ctrl[MAX_CHAN];
-       struct BUF_CTRL         buf_ctrl[MAX_CHAN];
-};
-
-/****************** ****************** *******************/
-#endif
+#include <uapi/linux/cyclades.h>
 
-#ifdef __KERNEL__
 
 /* Per card data structure */
 struct cyclades_card {
@@ -780,5 +357,4 @@ struct cyclades_port {
 
 /***************************************************************************/
 
-#endif /* __KERNEL__ */
 #endif /* _LINUX_CYCLADES_H */