Linux-2.6.12-rc2
[cascardo/linux.git] / drivers / scsi / cpqfcTStrigger.c
1 // Routine to trigger Finisar GTA analyzer. Runs of GPIO2
2 // NOTE: DEBUG ONLY! Could interfere with FCMNGR/Miniport operation
3 // since it writes directly to the Tachyon board.  This function
4 // developed for Compaq HBA Tachyon TS v1.2 (Rev X5 PCB)
5
6 #include "cpqfcTStrigger.h"
7 #if TRIGGERABLE_HBA
8
9 #include <linux/kernel.h>
10 #include <linux/ioport.h>
11 #include <linux/types.h>
12 #include <linux/pci.h>
13 #include <asm/io.h>
14
15 void TriggerHBA( void* IOBaseUpper, int Print)
16 {
17   __u32 long value;
18
19   // get initial value in hopes of not modifying any other GPIO line
20   IOBaseUpper += 0x188;  // TachTL/TS Control reg
21   
22   value = readl( IOBaseUpper);
23   // set HIGH to trigger external analyzer (tested on Dolche Finisar 1Gb GTA)
24   // The Finisar anaylzer triggers on low-to-high TTL transition
25   value |= 0x01; // set bit 0
26
27   writel( value, IOBaseUpper);
28
29   if( Print)
30     printk( " -GPIO0 set- ");
31 }
32
33 #endif