Linux Kernel
3.7.1
|
#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/errno.h>
#include <linux/init.h>
#include <linux/interrupt.h>
#include <linux/kernel.h>
#include <linux/slab.h>
#include <linux/string.h>
#include <linux/ioport.h>
#include <linux/blkdev.h>
#include <linux/spinlock.h>
#include <linux/bitops.h>
#include <asm/io.h>
#include <asm/dma.h>
#include <asm/irq.h>
#include <scsi/scsi_ioctl.h>
#include <scsi/scsi_cmnd.h>
#include <scsi/scsi_device.h>
#include <scsi/scsi.h>
#include <scsi/scsi_host.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/ds.h>
#include <pcmcia/ciscode.h>
Go to the source code of this file.
Data Structures | |
struct | scsi_info_t |
struct | sym53c500_data |
Macros | |
#define | SYM53C500_DEBUG 0 |
#define | VERBOSE_SYM53C500_DEBUG 0 |
#define | USE_FAST_PIO 1 |
#define | SYNC_MODE 0 /* Synchronous transfer mode */ |
#define | C1_IMG 0x07 /* ID=7 */ |
#define | C2_IMG 0x48 /* FE SCSI2 */ |
#define | C3_IMG 0x20 /* CDB */ |
#define | C4_IMG 0x04 /* ANE */ |
#define | C5_IMG 0xa4 /* ? changed from b6= AA PI SIE POL */ |
#define | C7_IMG 0x80 /* added for SYM53C500 t. corner */ |
#define | TC_LSB 0x00 /* transfer counter lsb */ |
#define | TC_MSB 0x01 /* transfer counter msb */ |
#define | SCSI_FIFO 0x02 /* scsi fifo register */ |
#define | CMD_REG 0x03 /* command register */ |
#define | STAT_REG 0x04 /* status register */ |
#define | DEST_ID 0x04 /* selection/reselection bus id */ |
#define | INT_REG 0x05 /* interrupt status register */ |
#define | SRTIMOUT 0x05 /* select/reselect timeout reg */ |
#define | SEQ_REG 0x06 /* sequence step register */ |
#define | SYNCPRD 0x06 /* synchronous transfer period */ |
#define | FIFO_FLAGS 0x07 /* indicates # of bytes in fifo */ |
#define | SYNCOFF 0x07 /* synchronous offset register */ |
#define | CONFIG1 0x08 /* configuration register */ |
#define | CLKCONV 0x09 /* clock conversion register */ |
#define | CONFIG2 0x0B /* configuration 2 register */ |
#define | CONFIG3 0x0C /* configuration 3 register */ |
#define | CONFIG4 0x0D /* configuration 4 register */ |
#define | TC_HIGH 0x0E /* transfer counter high */ |
#define | PIO_FIFO 0x04 /* PIO FIFO registers (r/w) */ |
#define | PIO_STATUS 0x08 /* PIO status (r/w) */ |
#define | PIO_FLAG 0x0B /* PIO flag interrupt enable (r/w) */ |
#define | CONFIG5 0x09 /* configuration 5 register */ |
#define | CONFIG7 0x0d |
#define | REG0(x) (outb(C4_IMG, (x) + CONFIG4)) |
#define | REG1(x) outb(C7_IMG, (x) + CONFIG7); outb(C5_IMG, (x) + CONFIG5) |
#define | DEB(x) |
#define | VDEB(x) |
#define | LOAD_DMA_COUNT(x, count) |
#define | DMA_OP 0x80 |
#define | SCSI_NOP 0x00 |
#define | FLUSH_FIFO 0x01 |
#define | CHIP_RESET 0x02 |
#define | SCSI_RESET 0x03 |
#define | RESELECT 0x40 |
#define | SELECT_NO_ATN 0x41 |
#define | SELECT_ATN 0x42 |
#define | SELECT_ATN_STOP 0x43 |
#define | ENABLE_SEL 0x44 |
#define | DISABLE_SEL 0x45 |
#define | SELECT_ATN3 0x46 |
#define | RESELECT3 0x47 |
#define | TRANSFER_INFO 0x10 |
#define | INIT_CMD_COMPLETE 0x11 |
#define | MSG_ACCEPT 0x12 |
#define | TRANSFER_PAD 0x18 |
#define | SET_ATN 0x1a |
#define | RESET_ATN 0x1b |
#define | SEND_MSG 0x20 |
#define | SEND_STATUS 0x21 |
#define | SEND_DATA 0x22 |
#define | DISCONN_SEQ 0x23 |
#define | TERMINATE_SEQ 0x24 |
#define | TARG_CMD_COMPLETE 0x25 |
#define | DISCONN 0x27 |
#define | RECV_MSG 0x28 |
#define | RECV_CMD 0x29 |
#define | RECV_DATA 0x2a |
#define | RECV_CMD_SEQ 0x2b |
#define | TARGET_ABORT_DMA 0x04 |
Enumerations | |
enum | Phase { idle, data_out, data_in, command_ph, status_ph, message_out, message_in, idle, data_out, data_in, command_ph, status_ph, message_out, message_in } |
Functions | |
MODULE_AUTHOR ("Bob Tracy <[email protected]>") | |
MODULE_DESCRIPTION ("SYM53C500 PCMCIA SCSI driver") | |
MODULE_LICENSE ("GPL") | |
MODULE_DEVICE_TABLE (pcmcia, sym53c500_ids) | |
module_init (init_sym53c500_cs) | |
module_exit (exit_sym53c500_cs) | |
#define C1_IMG 0x07 /* ID=7 */ |
Definition at line 84 of file sym53c500_cs.c.
#define C2_IMG 0x48 /* FE SCSI2 */ |
Definition at line 85 of file sym53c500_cs.c.
#define C3_IMG 0x20 /* CDB */ |
Definition at line 86 of file sym53c500_cs.c.
#define C4_IMG 0x04 /* ANE */ |
Definition at line 87 of file sym53c500_cs.c.
#define C5_IMG 0xa4 /* ? changed from b6= AA PI SIE POL */ |
Definition at line 88 of file sym53c500_cs.c.
#define C7_IMG 0x80 /* added for SYM53C500 t. corner */ |
Definition at line 89 of file sym53c500_cs.c.
#define CHIP_RESET 0x02 |
Definition at line 159 of file sym53c500_cs.c.
#define CLKCONV 0x09 /* clock conversion register */ |
Definition at line 107 of file sym53c500_cs.c.
#define CMD_REG 0x03 /* command register */ |
Definition at line 97 of file sym53c500_cs.c.
#define CONFIG1 0x08 /* configuration register */ |
Definition at line 106 of file sym53c500_cs.c.
#define CONFIG2 0x0B /* configuration 2 register */ |
Definition at line 109 of file sym53c500_cs.c.
#define CONFIG3 0x0C /* configuration 3 register */ |
Definition at line 110 of file sym53c500_cs.c.
#define CONFIG4 0x0D /* configuration 4 register */ |
Definition at line 111 of file sym53c500_cs.c.
#define CONFIG5 0x09 /* configuration 5 register */ |
Definition at line 127 of file sym53c500_cs.c.
#define CONFIG7 0x0d |
Definition at line 130 of file sym53c500_cs.c.
#define DEB | ( | x | ) |
Definition at line 140 of file sym53c500_cs.c.
#define DEST_ID 0x04 /* selection/reselection bus id */ |
Definition at line 99 of file sym53c500_cs.c.
#define DISABLE_SEL 0x45 |
Definition at line 166 of file sym53c500_cs.c.
#define DISCONN 0x27 |
Definition at line 181 of file sym53c500_cs.c.
#define DISCONN_SEQ 0x23 |
Definition at line 178 of file sym53c500_cs.c.
#define DMA_OP 0x80 |
Definition at line 155 of file sym53c500_cs.c.
#define ENABLE_SEL 0x44 |
Definition at line 165 of file sym53c500_cs.c.
#define FIFO_FLAGS 0x07 /* indicates # of bytes in fifo */ |
Definition at line 104 of file sym53c500_cs.c.
#define FLUSH_FIFO 0x01 |
Definition at line 158 of file sym53c500_cs.c.
#define INIT_CMD_COMPLETE 0x11 |
Definition at line 170 of file sym53c500_cs.c.
#define INT_REG 0x05 /* interrupt status register */ |
Definition at line 100 of file sym53c500_cs.c.
#define MSG_ACCEPT 0x12 |
Definition at line 171 of file sym53c500_cs.c.
#define PIO_FIFO 0x04 /* PIO FIFO registers (r/w) */ |
Definition at line 119 of file sym53c500_cs.c.
#define PIO_FLAG 0x0B /* PIO flag interrupt enable (r/w) */ |
Definition at line 126 of file sym53c500_cs.c.
#define PIO_STATUS 0x08 /* PIO status (r/w) */ |
Definition at line 123 of file sym53c500_cs.c.
#define RECV_CMD 0x29 |
Definition at line 183 of file sym53c500_cs.c.
#define RECV_CMD_SEQ 0x2b |
Definition at line 185 of file sym53c500_cs.c.
#define RECV_DATA 0x2a |
Definition at line 184 of file sym53c500_cs.c.
#define RECV_MSG 0x28 |
Definition at line 182 of file sym53c500_cs.c.
Definition at line 135 of file sym53c500_cs.c.
#define RESELECT 0x40 |
Definition at line 161 of file sym53c500_cs.c.
#define RESELECT3 0x47 |
Definition at line 168 of file sym53c500_cs.c.
#define RESET_ATN 0x1b |
Definition at line 174 of file sym53c500_cs.c.
#define SCSI_FIFO 0x02 /* scsi fifo register */ |
Definition at line 96 of file sym53c500_cs.c.
#define SCSI_NOP 0x00 |
Definition at line 157 of file sym53c500_cs.c.
#define SCSI_RESET 0x03 |
Definition at line 160 of file sym53c500_cs.c.
#define SELECT_ATN 0x42 |
Definition at line 163 of file sym53c500_cs.c.
#define SELECT_ATN3 0x46 |
Definition at line 167 of file sym53c500_cs.c.
#define SELECT_ATN_STOP 0x43 |
Definition at line 164 of file sym53c500_cs.c.
#define SELECT_NO_ATN 0x41 |
Definition at line 162 of file sym53c500_cs.c.
#define SEND_DATA 0x22 |
Definition at line 177 of file sym53c500_cs.c.
#define SEND_MSG 0x20 |
Definition at line 175 of file sym53c500_cs.c.
#define SEND_STATUS 0x21 |
Definition at line 176 of file sym53c500_cs.c.
#define SEQ_REG 0x06 /* sequence step register */ |
Definition at line 102 of file sym53c500_cs.c.
#define SET_ATN 0x1a |
Definition at line 173 of file sym53c500_cs.c.
#define SRTIMOUT 0x05 /* select/reselect timeout reg */ |
Definition at line 101 of file sym53c500_cs.c.
#define STAT_REG 0x04 /* status register */ |
Definition at line 98 of file sym53c500_cs.c.
#define SYM53C500_DEBUG 0 |
Definition at line 40 of file sym53c500_cs.c.
#define SYNC_MODE 0 /* Synchronous transfer mode */ |
Definition at line 81 of file sym53c500_cs.c.
#define SYNCOFF 0x07 /* synchronous offset register */ |
Definition at line 105 of file sym53c500_cs.c.
#define SYNCPRD 0x06 /* synchronous transfer period */ |
Definition at line 103 of file sym53c500_cs.c.
#define TARG_CMD_COMPLETE 0x25 |
Definition at line 180 of file sym53c500_cs.c.
#define TARGET_ABORT_DMA 0x04 |
Definition at line 186 of file sym53c500_cs.c.
#define TC_HIGH 0x0E /* transfer counter high */ |
Definition at line 112 of file sym53c500_cs.c.
#define TC_LSB 0x00 /* transfer counter lsb */ |
Definition at line 94 of file sym53c500_cs.c.
#define TC_MSB 0x01 /* transfer counter msb */ |
Definition at line 95 of file sym53c500_cs.c.
#define TERMINATE_SEQ 0x24 |
Definition at line 179 of file sym53c500_cs.c.
#define TRANSFER_INFO 0x10 |
Definition at line 169 of file sym53c500_cs.c.
#define TRANSFER_PAD 0x18 |
Definition at line 172 of file sym53c500_cs.c.
#define USE_FAST_PIO 1 |
Definition at line 47 of file sym53c500_cs.c.
#define VDEB | ( | x | ) |
Definition at line 146 of file sym53c500_cs.c.
#define VERBOSE_SYM53C500_DEBUG 0 |
Definition at line 41 of file sym53c500_cs.c.
enum Phase |
idle | |
data_out | |
data_in | |
command_ph | |
status_ph | |
message_out | |
message_in | |
idle | |
data_out | |
data_in | |
command_ph | |
status_ph | |
message_out | |
message_in |
Definition at line 204 of file sym53c500_cs.c.
MODULE_AUTHOR | ( | "Bob Tracy <[email protected]>" | ) |
MODULE_DEVICE_TABLE | ( | pcmcia | , |
sym53c500_ids | |||
) |
module_exit | ( | exit_sym53c500_cs | ) |
module_init | ( | init_sym53c500_cs | ) |
MODULE_LICENSE | ( | "GPL" | ) |