cpqfcTStrigger.c 901 B

123456789101112131415161718192021222324252627282930313233
  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. #include "cpqfcTStrigger.h"
  6. #if TRIGGERABLE_HBA
  7. #include <linux/kernel.h>
  8. #include <linux/ioport.h>
  9. #include <linux/types.h>
  10. #include <linux/pci.h>
  11. #include <asm/io.h>
  12. void TriggerHBA( void* IOBaseUpper, int Print)
  13. {
  14. __u32 long value;
  15. // get initial value in hopes of not modifying any other GPIO line
  16. IOBaseUpper += 0x188; // TachTL/TS Control reg
  17. value = readl( IOBaseUpper);
  18. // set HIGH to trigger external analyzer (tested on Dolche Finisar 1Gb GTA)
  19. // The Finisar anaylzer triggers on low-to-high TTL transition
  20. value |= 0x01; // set bit 0
  21. writel( value, IOBaseUpper);
  22. if( Print)
  23. printk( " -GPIO0 set- ");
  24. }
  25. #endif