Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions
i6300esb.c File Reference
#include <linux/module.h>
#include <linux/types.h>
#include <linux/kernel.h>
#include <linux/fs.h>
#include <linux/mm.h>
#include <linux/miscdevice.h>
#include <linux/watchdog.h>
#include <linux/init.h>
#include <linux/pci.h>
#include <linux/ioport.h>
#include <linux/uaccess.h>
#include <linux/io.h>

Go to the source code of this file.

Macros

#define pr_fmt(fmt)   KBUILD_MODNAME ": " fmt
 
#define ESB_VERSION   "0.05"
 
#define ESB_MODULE_NAME   "i6300ESB timer"
 
#define ESB_DRIVER_NAME   ESB_MODULE_NAME ", v" ESB_VERSION
 
#define ESB_CONFIG_REG   0x60 /* Config register */
 
#define ESB_LOCK_REG   0x68 /* WDT lock register */
 
#define ESB_TIMER1_REG   (BASEADDR + 0x00)/* Timer1 value after each reset */
 
#define ESB_TIMER2_REG   (BASEADDR + 0x04)/* Timer2 value after each reset */
 
#define ESB_GINTSR_REG   (BASEADDR + 0x08)/* General Interrupt Status Register */
 
#define ESB_RELOAD_REG   (BASEADDR + 0x0c)/* Reload register */
 
#define ESB_WDT_FUNC   (0x01 << 2) /* Watchdog functionality */
 
#define ESB_WDT_ENABLE   (0x01 << 1) /* Enable WDT */
 
#define ESB_WDT_LOCK   (0x01 << 0) /* Lock (nowayout) */
 
#define ESB_WDT_REBOOT   (0x01 << 5) /* Enable reboot on timeout */
 
#define ESB_WDT_FREQ   (0x01 << 2) /* Decrement frequency */
 
#define ESB_WDT_INTTYPE   (0x03 << 0) /* Interrupt type on timer1 timeout */
 
#define ESB_WDT_TIMEOUT   (0x01 << 9) /* Watchdog timed out */
 
#define ESB_WDT_RELOAD   (0x01 << 8) /* prevent timeout */
 
#define ESB_UNLOCK1   0x80 /* Step 1 to unlock reset registers */
 
#define ESB_UNLOCK2   0x86 /* Step 2 to unlock reset registers */
 
#define WATCHDOG_HEARTBEAT   30
 

Functions

 module_param (heartbeat, int, 0)
 
 MODULE_PARM_DESC (heartbeat,"Watchdog heartbeat in seconds. (1<heartbeat<2046, default="__MODULE_STRING(WATCHDOG_HEARTBEAT)")")
 
 module_param (nowayout, bool, 0)
 
 MODULE_PARM_DESC (nowayout,"Watchdog cannot be stopped once started (default="__MODULE_STRING(WATCHDOG_NOWAYOUT)")")
 
 MODULE_DEVICE_TABLE (pci, esb_pci_tbl)
 
 module_pci_driver (esb_driver)
 
 MODULE_AUTHOR ("Ross Biro and David Härdeman")
 
 MODULE_DESCRIPTION ("Watchdog driver for Intel 6300ESB chipsets")
 
 MODULE_LICENSE ("GPL")
 
 MODULE_ALIAS_MISCDEV (WATCHDOG_MINOR)
 

Macro Definition Documentation

#define ESB_CONFIG_REG   0x60 /* Config register */

Definition at line 51 of file i6300esb.c.

#define ESB_DRIVER_NAME   ESB_MODULE_NAME ", v" ESB_VERSION

Definition at line 48 of file i6300esb.c.

#define ESB_GINTSR_REG   (BASEADDR + 0x08)/* General Interrupt Status Register */

Definition at line 57 of file i6300esb.c.

#define ESB_LOCK_REG   0x68 /* WDT lock register */

Definition at line 52 of file i6300esb.c.

#define ESB_MODULE_NAME   "i6300ESB timer"

Definition at line 47 of file i6300esb.c.

#define ESB_RELOAD_REG   (BASEADDR + 0x0c)/* Reload register */

Definition at line 58 of file i6300esb.c.

#define ESB_TIMER1_REG   (BASEADDR + 0x00)/* Timer1 value after each reset */

Definition at line 55 of file i6300esb.c.

#define ESB_TIMER2_REG   (BASEADDR + 0x04)/* Timer2 value after each reset */

Definition at line 56 of file i6300esb.c.

#define ESB_UNLOCK1   0x80 /* Step 1 to unlock reset registers */

Definition at line 75 of file i6300esb.c.

#define ESB_UNLOCK2   0x86 /* Step 2 to unlock reset registers */

Definition at line 76 of file i6300esb.c.

#define ESB_VERSION   "0.05"

Definition at line 46 of file i6300esb.c.

#define ESB_WDT_ENABLE   (0x01 << 1) /* Enable WDT */

Definition at line 62 of file i6300esb.c.

#define ESB_WDT_FREQ   (0x01 << 2) /* Decrement frequency */

Definition at line 67 of file i6300esb.c.

#define ESB_WDT_FUNC   (0x01 << 2) /* Watchdog functionality */

Definition at line 61 of file i6300esb.c.

#define ESB_WDT_INTTYPE   (0x03 << 0) /* Interrupt type on timer1 timeout */

Definition at line 68 of file i6300esb.c.

#define ESB_WDT_LOCK   (0x01 << 0) /* Lock (nowayout) */

Definition at line 63 of file i6300esb.c.

#define ESB_WDT_REBOOT   (0x01 << 5) /* Enable reboot on timeout */

Definition at line 66 of file i6300esb.c.

#define ESB_WDT_RELOAD   (0x01 << 8) /* prevent timeout */

Definition at line 72 of file i6300esb.c.

#define ESB_WDT_TIMEOUT   (0x01 << 9) /* Watchdog timed out */

Definition at line 71 of file i6300esb.c.

#define pr_fmt (   fmt)    KBUILD_MODNAME ": " fmt

Definition at line 30 of file i6300esb.c.

#define WATCHDOG_HEARTBEAT   30

Definition at line 91 of file i6300esb.c.

Function Documentation

MODULE_ALIAS_MISCDEV ( WATCHDOG_MINOR  )
MODULE_AUTHOR ( "Ross Biro and David Härdeman"  )
MODULE_DESCRIPTION ( "Watchdog driver for Intel 6300ESB chipsets"  )
MODULE_DEVICE_TABLE ( pci  ,
esb_pci_tbl   
)
MODULE_LICENSE ( "GPL"  )
module_param ( heartbeat  ,
int  ,
 
)
module_param ( nowayout  ,
bool  ,
 
)
MODULE_PARM_DESC ( heartbeat  ,
"Watchdog heartbeat in seconds. (1<heartbeat<2046, default="__MODULE_STRING(WATCHDOG_HEARTBEAT)")"   
)
MODULE_PARM_DESC ( nowayout  ,
"Watchdog cannot be stopped once started (default="__MODULE_STRING(WATCHDOG_NOWAYOUT)")"   
)
module_pci_driver ( esb_driver  )