diff options
author | Donald Johnson <donald.k.johnson@intel.com> | 2011-02-02 11:20:16 -0500 |
---|---|---|
committer | Wim Van Sebroeck <wim@iguana.be> | 2011-03-15 12:02:06 -0400 |
commit | 57539c1cf9f146ab9988a350dbc2d7e69a8a5c30 (patch) | |
tree | 5a9201718926afdac1bce6a179ec7f1c8a9428ff /drivers/watchdog/intel_scu_watchdog.h | |
parent | 742e4b630895d751812b0682750db76c8072bf37 (diff) |
watchdog: Intel SCU Watchdog Timer Driver for Moorestown and Medfield platforms.
This submission includes:
- Fix to intel_scu_write() to start watchdog timer the on the
first write, and refresh on subsequent writes.
This enables Open, write, write, ... usage model.
- Moves boot parameter checks from intel_scu_open() to
intel_scu_watchdog_init(), so driver init will fail if these
parameters are out of bounds.
- Adds check for whether process waiting in wait_event_interruptible()
received a signal while it was waiting.
- Other small error handling changes.
Removed the read() method for now as that wass a non-standard behaviour.
Signed-off-by: Donald Johnson <donald.k.johnson@intel.com>
Signed-off-by: Shuduo Sang <shuduo.sang@intel.com>
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
Diffstat (limited to 'drivers/watchdog/intel_scu_watchdog.h')
-rw-r--r-- | drivers/watchdog/intel_scu_watchdog.h | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/drivers/watchdog/intel_scu_watchdog.h b/drivers/watchdog/intel_scu_watchdog.h new file mode 100644 index 000000000000..d2b074a82db6 --- /dev/null +++ b/drivers/watchdog/intel_scu_watchdog.h | |||
@@ -0,0 +1,66 @@ | |||
1 | /* | ||
2 | * Intel_SCU 0.2: An Intel SCU IOH Based Watchdog Device | ||
3 | * for Intel part #(s): | ||
4 | * - AF82MP20 PCH | ||
5 | * | ||
6 | * Copyright (C) 2009-2010 Intel Corporation. All rights reserved. | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or | ||
9 | * modify it under the terms of version 2 of the GNU General | ||
10 | * Public License as published by the Free Software Foundation. | ||
11 | * | ||
12 | * This program is distributed in the hope that it will be | ||
13 | * useful, but WITHOUT ANY WARRANTY; without even the implied | ||
14 | * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR | ||
15 | * PURPOSE. See the GNU General Public License for more details. | ||
16 | * You should have received a copy of the GNU General Public | ||
17 | * License along with this program; if not, write to the Free | ||
18 | * Software Foundation, Inc., 59 Temple Place - Suite 330, | ||
19 | * Boston, MA 02111-1307, USA. | ||
20 | * The full GNU General Public License is included in this | ||
21 | * distribution in the file called COPYING. | ||
22 | * | ||
23 | */ | ||
24 | |||
25 | #ifndef __INTEL_SCU_WATCHDOG_H | ||
26 | #define __INTEL_SCU_WATCHDOG_H | ||
27 | |||
28 | #define PFX "Intel_SCU: " | ||
29 | #define WDT_VER "0.3" | ||
30 | |||
31 | /* minimum time between interrupts */ | ||
32 | #define MIN_TIME_CYCLE 1 | ||
33 | |||
34 | /* Time from warning to reboot is 2 seconds */ | ||
35 | #define DEFAULT_SOFT_TO_HARD_MARGIN 2 | ||
36 | |||
37 | #define MAX_TIME 170 | ||
38 | |||
39 | #define DEFAULT_TIME 5 | ||
40 | |||
41 | #define MAX_SOFT_TO_HARD_MARGIN (MAX_TIME-MIN_TIME_CYCLE) | ||
42 | |||
43 | /* Ajustment to clock tick frequency to make timing come out right */ | ||
44 | #define FREQ_ADJUSTMENT 8 | ||
45 | |||
46 | struct intel_scu_watchdog_dev { | ||
47 | ulong driver_open; | ||
48 | ulong driver_closed; | ||
49 | u32 timer_started; | ||
50 | u32 timer_set; | ||
51 | u32 threshold; | ||
52 | u32 soft_threshold; | ||
53 | u32 __iomem *timer_load_count_addr; | ||
54 | u32 __iomem *timer_current_value_addr; | ||
55 | u32 __iomem *timer_control_addr; | ||
56 | u32 __iomem *timer_clear_interrupt_addr; | ||
57 | u32 __iomem *timer_interrupt_status_addr; | ||
58 | struct sfi_timer_table_entry *timer_tbl_ptr; | ||
59 | struct notifier_block intel_scu_notifier; | ||
60 | struct miscdevice miscdev; | ||
61 | }; | ||
62 | |||
63 | extern int sfi_mtimer_num; | ||
64 | |||
65 | /* extern struct sfi_timer_table_entry *sfi_get_mtmr(int hint); */ | ||
66 | #endif /* __INTEL_SCU_WATCHDOG_H */ | ||