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 WDT_VER "0.3" 29 30 /* minimum time between interrupts */ 31 #define MIN_TIME_CYCLE 1 32 33 /* Time from warning to reboot is 2 seconds */ 34 #define DEFAULT_SOFT_TO_HARD_MARGIN 2 35 36 #define MAX_TIME 170 37 38 #define DEFAULT_TIME 5 39 40 #define MAX_SOFT_TO_HARD_MARGIN (MAX_TIME-MIN_TIME_CYCLE) 41 42 /* Ajustment to clock tick frequency to make timing come out right */ 43 #define FREQ_ADJUSTMENT 8 44 45 struct intel_scu_watchdog_dev { 46 ulong driver_open; 47 ulong driver_closed; 48 u32 timer_started; 49 u32 timer_set; 50 u32 threshold; 51 u32 soft_threshold; 52 u32 __iomem *timer_load_count_addr; 53 u32 __iomem *timer_current_value_addr; 54 u32 __iomem *timer_control_addr; 55 u32 __iomem *timer_clear_interrupt_addr; 56 u32 __iomem *timer_interrupt_status_addr; 57 struct sfi_timer_table_entry *timer_tbl_ptr; 58 struct notifier_block intel_scu_notifier; 59 struct miscdevice miscdev; 60 }; 61 62 extern int sfi_mtimer_num; 63 64 /* extern struct sfi_timer_table_entry *sfi_get_mtmr(int hint); */ 65 #endif /* __INTEL_SCU_WATCHDOG_H */ 66