Forráskód Böngészése

watchdog: w83627hf_wdt: Add support for NCT6791 and NCT6792

The watchdog functionality in both chips is almost identical to NCT6779.

Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
Guenter Roeck 10 éve
szülő
commit
a77841d59e
2 módosított fájl, 15 hozzáadás és 1 törlés
  1. 2 0
      drivers/watchdog/Kconfig
  2. 13 1
      drivers/watchdog/w83627hf_wdt.c

+ 2 - 0
drivers/watchdog/Kconfig

@@ -1015,6 +1015,8 @@ config W83627HF_WDT
 		NCT6775
 		NCT6775
 		NCT6776
 		NCT6776
 		NCT6779
 		NCT6779
+		NCT6791
+		NCT6792
 
 
 	  This watchdog simply watches your kernel to make sure it doesn't
 	  This watchdog simply watches your kernel to make sure it doesn't
 	  freeze, and if it does, it reboots your computer after a certain
 	  freeze, and if it does, it reboots your computer after a certain

+ 13 - 1
drivers/watchdog/w83627hf_wdt.c

@@ -50,7 +50,7 @@ static int cr_wdt_control;	/* WDT control register */
 
 
 enum chips { w83627hf, w83627s, w83697hf, w83697ug, w83637hf, w83627thf,
 enum chips { w83627hf, w83627s, w83697hf, w83697ug, w83637hf, w83627thf,
 	     w83687thf, w83627ehf, w83627dhg, w83627uhg, w83667hg, w83627dhg_p,
 	     w83687thf, w83627ehf, w83627dhg, w83627uhg, w83667hg, w83627dhg_p,
-	     w83667hg_b, nct6775, nct6776, nct6779 };
+	     w83667hg_b, nct6775, nct6776, nct6779, nct6791, nct6792 };
 
 
 static int timeout;			/* in seconds */
 static int timeout;			/* in seconds */
 module_param(timeout, int, 0);
 module_param(timeout, int, 0);
@@ -95,6 +95,8 @@ MODULE_PARM_DESC(early_disable, "Disable watchdog at boot time (default=0)");
 #define NCT6775_ID		0xb4
 #define NCT6775_ID		0xb4
 #define NCT6776_ID		0xc3
 #define NCT6776_ID		0xc3
 #define NCT6779_ID		0xc5
 #define NCT6779_ID		0xc5
+#define NCT6791_ID		0xc8
+#define NCT6792_ID		0xc9
 
 
 #define W83627HF_WDT_TIMEOUT	0xf6
 #define W83627HF_WDT_TIMEOUT	0xf6
 #define W83697HF_WDT_TIMEOUT	0xf4
 #define W83697HF_WDT_TIMEOUT	0xf4
@@ -195,6 +197,8 @@ static int w83627hf_init(struct watchdog_device *wdog, enum chips chip)
 	case nct6775:
 	case nct6775:
 	case nct6776:
 	case nct6776:
 	case nct6779:
 	case nct6779:
+	case nct6791:
+	case nct6792:
 		/*
 		/*
 		 * These chips have a fixed WDTO# output pin (W83627UHG),
 		 * These chips have a fixed WDTO# output pin (W83627UHG),
 		 * or support more than one WDTO# output pin.
 		 * or support more than one WDTO# output pin.
@@ -395,6 +399,12 @@ static int wdt_find(int addr)
 	case NCT6779_ID:
 	case NCT6779_ID:
 		ret = nct6779;
 		ret = nct6779;
 		break;
 		break;
+	case NCT6791_ID:
+		ret = nct6791;
+		break;
+	case NCT6792_ID:
+		ret = nct6792;
+		break;
 	case 0xff:
 	case 0xff:
 		ret = -ENODEV;
 		ret = -ENODEV;
 		break;
 		break;
@@ -428,6 +438,8 @@ static int __init wdt_init(void)
 		"NCT6775",
 		"NCT6775",
 		"NCT6776",
 		"NCT6776",
 		"NCT6779",
 		"NCT6779",
+		"NCT6791",
+		"NCT6792",
 	};
 	};
 
 
 	wdt_io = 0x2e;
 	wdt_io = 0x2e;