1 /* 2 * Detection routine for the NCR53c710 based MVME16x SCSI Controllers for Linux. 3 * 4 * Based on work by Alan Hourihane 5 */ 6 #include <linux/types.h> 7 #include <linux/mm.h> 8 #include <linux/blk.h> 9 #include <linux/sched.h> 10 #include <linux/version.h> 11 12 #include <asm/page.h> 13 #include <asm/pgtable.h> 14 #include <asm/mvme16xhw.h> 15 #include <asm/irq.h> 16 17 #include "scsi.h" 18 #include "hosts.h" 19 #include "53c7xx.h" 20 #include "mvme16x.h" 21 22 #include<linux/stat.h> 23 24 mvme16x_scsi_detect(Scsi_Host_Template * tpnt)25int mvme16x_scsi_detect(Scsi_Host_Template *tpnt) 26 { 27 static unsigned char called = 0; 28 int clock; 29 long long options; 30 31 if (!MACH_IS_MVME16x) 32 return 0; 33 if (mvme16x_config & MVME16x_CONFIG_NO_SCSICHIP) { 34 printk ("SCSI detection disabled, SCSI chip not present\n"); 35 return 0; 36 } 37 if (called) 38 return 0; 39 40 tpnt->proc_name = "MVME16x"; 41 42 options = OPTION_MEMORY_MAPPED|OPTION_DEBUG_TEST1|OPTION_INTFLY|OPTION_SYNCHRONOUS|OPTION_ALWAYS_SYNCHRONOUS|OPTION_DISCONNECT; 43 44 clock = 66000000; /* 66MHz SCSI Clock */ 45 46 ncr53c7xx_init(tpnt, 0, 710, (u32)0xfff47000, 47 0, MVME16x_IRQ_SCSI, DMA_NONE, 48 options, clock); 49 called = 1; 50 return 1; 51 } 52 53 static Scsi_Host_Template driver_template = MVME16x_SCSI; 54 #include "scsi_module.c" 55