1 /* 2 * Industrial Computer Source WDT500/501 driver for Linux 1.3.x 3 * 4 * (c) Copyright 1995 CymruNET Ltd 5 * Innovation Centre 6 * Singleton Park 7 * Swansea 8 * Wales 9 * UK 10 * SA2 8PP 11 * 12 * http://www.cymru.net 13 * 14 * This driver is provided under the GNU General Public License, incorporated 15 * herein by reference. The driver is provided without warranty or 16 * support. 17 * 18 * Release 0.04. 19 * 20 */ 21 22 #include <linux/config.h> 23 24 #define WDT_COUNT0 (io+0) 25 #define WDT_COUNT1 (io+1) 26 #define WDT_COUNT2 (io+2) 27 #define WDT_CR (io+3) 28 #define WDT_SR (io+4) /* Start buzzer on PCI write */ 29 #define WDT_RT (io+5) /* Stop buzzer on PCI write */ 30 #define WDT_BUZZER (io+6) /* PCI only: rd=disable, wr=enable */ 31 #define WDT_DC (io+7) 32 33 /* The following are only on the PCI card, they're outside of I/O space on 34 * the ISA card: */ 35 #define WDT_CLOCK (io+12) /* COUNT2: rd=16.67MHz, wr=2.0833MHz */ 36 /* inverted opto isolated reset output: */ 37 #define WDT_OPTONOTRST (io+13) /* wr=enable, rd=disable */ 38 /* opto isolated reset output: */ 39 #define WDT_OPTORST (io+14) /* wr=enable, rd=disable */ 40 /* programmable outputs: */ 41 #define WDT_PROGOUT (io+15) /* wr=enable, rd=disable */ 42 43 #define WDC_SR_WCCR 1 /* Active low */ 44 #define WDC_SR_TGOOD 2 45 #define WDC_SR_ISOI0 4 46 #define WDC_SR_ISII1 8 47 #define WDC_SR_FANGOOD 16 48 #define WDC_SR_PSUOVER 32 /* Active low */ 49 #define WDC_SR_PSUUNDR 64 /* Active low */ 50 #define WDC_SR_IRQ 128 /* Active low */ 51 52 #ifndef WDT_IS_PCI 53 54 /* 55 * Feature Map 1 is the active high inputs not supported on your card. 56 * Feature Map 2 is the active low inputs not supported on your card. 57 */ 58 59 #ifdef CONFIG_WDT_501 /* Full board */ 60 61 #ifdef CONFIG_WDT501_FAN /* Full board, Fan has no tachometer */ 62 #define FEATUREMAP1 0 63 #define WDT_OPTION_MASK (WDIOF_OVERHEAT|WDIOF_POWERUNDER|WDIOF_POWEROVER|WDIOF_EXTERN1|WDIOF_EXTERN2|WDIOF_FANFAULT) 64 #else 65 #define FEATUREMAP1 WDC_SR_FANGOOD 66 #define WDT_OPTION_MASK (WDIOF_OVERHEAT|WDIOF_POWERUNDER|WDIOF_POWEROVER|WDIOF_EXTERN1|WDIOF_EXTERN2) 67 #endif 68 69 #define FEATUREMAP2 0 70 #endif 71 72 #ifndef CONFIG_WDT_501 73 #define CONFIG_WDT_500 74 #endif 75 76 #ifdef CONFIG_WDT_500 /* Minimal board */ 77 #define FEATUREMAP1 (WDC_SR_TGOOD|WDC_SR_FANGOOD) 78 #define FEATUREMAP2 (WDC_SR_PSUOVER|WDC_SR_PSUUNDR) 79 #define WDT_OPTION_MASK (WDIOF_OVERHEAT) 80 #endif 81 82 #else 83 84 #define FEATUREMAP1 (WDC_SR_TGOOD|WDC_SR_FANGOOD) 85 #define FEATUREMAP2 (WDC_SR_PSUOVER|WDC_SR_PSUUNDR) 86 #define WDT_OPTION_MASK (WDIOF_OVERHEAT) 87 #endif 88 89 #ifndef FEATUREMAP1 90 #error "Config option not set" 91 #endif 92