linux-watchdog.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] watchdog: w83627hf_wdt: Support NCT6116D
@ 2019-09-18 13:42 Srikanth_Krishnakar
  2019-09-18 14:57 ` Guenter Roeck
  0 siblings, 1 reply; 4+ messages in thread
From: Srikanth_Krishnakar @ 2019-09-18 13:42 UTC (permalink / raw)
  To: linux-watchdog, linux, wim; +Cc: Cedric_Hombourger, Srikanth_Krishnakar

From: Srikanth Krishnakar <Srikanth_Krishnakar@mentor.com>

The watchdog controller on NCT6116D is compatible with NCT6102D.
Extend the support to enable SuperIO based NCT6116D watchdog device.

Signed-off-by: Srikanth Krishnakar <Srikanth_Krishnakar@mentor.com>
---
 drivers/watchdog/Kconfig        |  1 +
 drivers/watchdog/w83627hf_wdt.c | 11 ++++++++++-
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
index a45f9e3e442b..4affadda5185 100644
--- a/drivers/watchdog/Kconfig
+++ b/drivers/watchdog/Kconfig
@@ -1488,6 +1488,7 @@ config W83627HF_WDT
 		NCT6791
 		NCT6792
 		NCT6102D/04D/06D
+		NCT6116D
 
 	  This watchdog simply watches your kernel to make sure it doesn't
 	  freeze, and if it does, it reboots your computer after a certain
diff --git a/drivers/watchdog/w83627hf_wdt.c b/drivers/watchdog/w83627hf_wdt.c
index 38b31e9947aa..fdf533fe0bb2 100644
--- a/drivers/watchdog/w83627hf_wdt.c
+++ b/drivers/watchdog/w83627hf_wdt.c
@@ -49,7 +49,7 @@ static int wdt_cfg_leave = 0xAA;/* key to lock configuration space */
 enum chips { w83627hf, w83627s, w83697hf, w83697ug, w83637hf, w83627thf,
 	     w83687thf, w83627ehf, w83627dhg, w83627uhg, w83667hg, w83627dhg_p,
 	     w83667hg_b, nct6775, nct6776, nct6779, nct6791, nct6792, nct6793,
-	     nct6795, nct6796, nct6102 };
+	     nct6795, nct6796, nct6102, nct6116 };
 
 static int timeout;			/* in seconds */
 module_param(timeout, int, 0);
@@ -94,6 +94,7 @@ MODULE_PARM_DESC(early_disable, "Disable watchdog at boot time (default=0)");
 #define NCT6775_ID		0xb4
 #define NCT6776_ID		0xc3
 #define NCT6102_ID		0xc4
+#define NCT6116_ID		0xd2
 #define NCT6779_ID		0xc5
 #define NCT6791_ID		0xc8
 #define NCT6792_ID		0xc9
@@ -211,6 +212,7 @@ static int w83627hf_init(struct watchdog_device *wdog, enum chips chip)
 	case nct6795:
 	case nct6796:
 	case nct6102:
+	case nct6116:
 		/*
 		 * These chips have a fixed WDTO# output pin (W83627UHG),
 		 * or support more than one WDTO# output pin.
@@ -417,6 +419,12 @@ static int wdt_find(int addr)
 		cr_wdt_control = NCT6102D_WDT_CONTROL;
 		cr_wdt_csr = NCT6102D_WDT_CSR;
 		break;
+	case NCT6116_ID:
+		ret = nct6102;
+		cr_wdt_timeout = NCT6102D_WDT_TIMEOUT;
+		cr_wdt_control = NCT6102D_WDT_CONTROL;
+		cr_wdt_csr = NCT6102D_WDT_CSR;
+		break;
 	case 0xff:
 		ret = -ENODEV;
 		break;
@@ -482,6 +490,7 @@ static int __init wdt_init(void)
 		"NCT6795",
 		"NCT6796",
 		"NCT6102",
+		"NCT6116",
 	};
 
 	/* Apply system-specific quirks */
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] watchdog: w83627hf_wdt: Support NCT6116D
  2019-09-18 13:42 [PATCH] watchdog: w83627hf_wdt: Support NCT6116D Srikanth_Krishnakar
@ 2019-09-18 14:57 ` Guenter Roeck
  2019-09-18 16:04   ` [PATCH v2] " Srikanth Krishnakar
  0 siblings, 1 reply; 4+ messages in thread
From: Guenter Roeck @ 2019-09-18 14:57 UTC (permalink / raw)
  To: Srikanth_Krishnakar
  Cc: linux-watchdog, wim, Cedric_Hombourger, Srikanth_Krishnakar

On Wed, Sep 18, 2019 at 07:12:15PM +0530, Srikanth_Krishnakar wrote:
> From: Srikanth Krishnakar <Srikanth_Krishnakar@mentor.com>
> 
> The watchdog controller on NCT6116D is compatible with NCT6102D.
> Extend the support to enable SuperIO based NCT6116D watchdog device.
> 
> Signed-off-by: Srikanth Krishnakar <Srikanth_Krishnakar@mentor.com>
> ---
>  drivers/watchdog/Kconfig        |  1 +
>  drivers/watchdog/w83627hf_wdt.c | 11 ++++++++++-
>  2 files changed, 11 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
> index a45f9e3e442b..4affadda5185 100644
> --- a/drivers/watchdog/Kconfig
> +++ b/drivers/watchdog/Kconfig
> @@ -1488,6 +1488,7 @@ config W83627HF_WDT
>  		NCT6791
>  		NCT6792
>  		NCT6102D/04D/06D
> +		NCT6116D
>  
>  	  This watchdog simply watches your kernel to make sure it doesn't
>  	  freeze, and if it does, it reboots your computer after a certain
> diff --git a/drivers/watchdog/w83627hf_wdt.c b/drivers/watchdog/w83627hf_wdt.c
> index 38b31e9947aa..fdf533fe0bb2 100644
> --- a/drivers/watchdog/w83627hf_wdt.c
> +++ b/drivers/watchdog/w83627hf_wdt.c
> @@ -49,7 +49,7 @@ static int wdt_cfg_leave = 0xAA;/* key to lock configuration space */
>  enum chips { w83627hf, w83627s, w83697hf, w83697ug, w83637hf, w83627thf,
>  	     w83687thf, w83627ehf, w83627dhg, w83627uhg, w83667hg, w83627dhg_p,
>  	     w83667hg_b, nct6775, nct6776, nct6779, nct6791, nct6792, nct6793,
> -	     nct6795, nct6796, nct6102 };
> +	     nct6795, nct6796, nct6102, nct6116 };
>  
>  static int timeout;			/* in seconds */
>  module_param(timeout, int, 0);
> @@ -94,6 +94,7 @@ MODULE_PARM_DESC(early_disable, "Disable watchdog at boot time (default=0)");
>  #define NCT6775_ID		0xb4
>  #define NCT6776_ID		0xc3
>  #define NCT6102_ID		0xc4
> +#define NCT6116_ID		0xd2
>  #define NCT6779_ID		0xc5
>  #define NCT6791_ID		0xc8
>  #define NCT6792_ID		0xc9
> @@ -211,6 +212,7 @@ static int w83627hf_init(struct watchdog_device *wdog, enum chips chip)
>  	case nct6795:
>  	case nct6796:
>  	case nct6102:
> +	case nct6116:
>  		/*
>  		 * These chips have a fixed WDTO# output pin (W83627UHG),
>  		 * or support more than one WDTO# output pin.
> @@ -417,6 +419,12 @@ static int wdt_find(int addr)
>  		cr_wdt_control = NCT6102D_WDT_CONTROL;
>  		cr_wdt_csr = NCT6102D_WDT_CSR;
>  		break;
> +	case NCT6116_ID:
> +		ret = nct6102;

What is the point of introducing a new id for the chip and then
ignoring it ?

Guenter

> +		cr_wdt_timeout = NCT6102D_WDT_TIMEOUT;
> +		cr_wdt_control = NCT6102D_WDT_CONTROL;
> +		cr_wdt_csr = NCT6102D_WDT_CSR;
> +		break;
>  	case 0xff:
>  		ret = -ENODEV;
>  		break;
> @@ -482,6 +490,7 @@ static int __init wdt_init(void)
>  		"NCT6795",
>  		"NCT6796",
>  		"NCT6102",
> +		"NCT6116",
>  	};
>  
>  	/* Apply system-specific quirks */
> -- 
> 2.17.1
> 

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH v2] watchdog: w83627hf_wdt: Support NCT6116D
  2019-09-18 14:57 ` Guenter Roeck
@ 2019-09-18 16:04   ` Srikanth Krishnakar
  2019-09-18 20:15     ` Guenter Roeck
  0 siblings, 1 reply; 4+ messages in thread
From: Srikanth Krishnakar @ 2019-09-18 16:04 UTC (permalink / raw)
  To: linux-watchdog, linux; +Cc: Cedric_Hombourger, Srikanth_Krishnakar

The watchdog controller on NCT6116D is compatible with NCT6102D.
Extend the support to enable SuperIO based NCT6116D watchdog device.

Tested on Siemens SIMATIC IPC-527G.

Signed-off-by: Srikanth Krishnakar <Srikanth_Krishnakar@mentor.com>
---

Thanks for the catch Guenter!

That was not intentional. Fixed the typo of return ID. I could have 
merged return ID of 6116 into 6102D but that would display 6102D as
SuperIO Initialized in bootlog.

 drivers/watchdog/Kconfig        |  1 +
 drivers/watchdog/w83627hf_wdt.c | 11 ++++++++++-
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
index a45f9e3e442b..4affadda5185 100644
--- a/drivers/watchdog/Kconfig
+++ b/drivers/watchdog/Kconfig
@@ -1488,6 +1488,7 @@ config W83627HF_WDT
 		NCT6791
 		NCT6792
 		NCT6102D/04D/06D
+		NCT6116D
 
 	  This watchdog simply watches your kernel to make sure it doesn't
 	  freeze, and if it does, it reboots your computer after a certain
diff --git a/drivers/watchdog/w83627hf_wdt.c b/drivers/watchdog/w83627hf_wdt.c
index 38b31e9947aa..56a4a4030ca9 100644
--- a/drivers/watchdog/w83627hf_wdt.c
+++ b/drivers/watchdog/w83627hf_wdt.c
@@ -49,7 +49,7 @@ static int wdt_cfg_leave = 0xAA;/* key to lock configuration space */
 enum chips { w83627hf, w83627s, w83697hf, w83697ug, w83637hf, w83627thf,
 	     w83687thf, w83627ehf, w83627dhg, w83627uhg, w83667hg, w83627dhg_p,
 	     w83667hg_b, nct6775, nct6776, nct6779, nct6791, nct6792, nct6793,
-	     nct6795, nct6796, nct6102 };
+	     nct6795, nct6796, nct6102, nct6116 };
 
 static int timeout;			/* in seconds */
 module_param(timeout, int, 0);
@@ -94,6 +94,7 @@ MODULE_PARM_DESC(early_disable, "Disable watchdog at boot time (default=0)");
 #define NCT6775_ID		0xb4
 #define NCT6776_ID		0xc3
 #define NCT6102_ID		0xc4
+#define NCT6116_ID		0xd2
 #define NCT6779_ID		0xc5
 #define NCT6791_ID		0xc8
 #define NCT6792_ID		0xc9
@@ -211,6 +212,7 @@ static int w83627hf_init(struct watchdog_device *wdog, enum chips chip)
 	case nct6795:
 	case nct6796:
 	case nct6102:
+	case nct6116:
 		/*
 		 * These chips have a fixed WDTO# output pin (W83627UHG),
 		 * or support more than one WDTO# output pin.
@@ -417,6 +419,12 @@ static int wdt_find(int addr)
 		cr_wdt_control = NCT6102D_WDT_CONTROL;
 		cr_wdt_csr = NCT6102D_WDT_CSR;
 		break;
+	case NCT6116_ID:
+		ret = nct6116;
+		cr_wdt_timeout = NCT6102D_WDT_TIMEOUT;
+		cr_wdt_control = NCT6102D_WDT_CONTROL;
+		cr_wdt_csr = NCT6102D_WDT_CSR;
+		break;
 	case 0xff:
 		ret = -ENODEV;
 		break;
@@ -482,6 +490,7 @@ static int __init wdt_init(void)
 		"NCT6795",
 		"NCT6796",
 		"NCT6102",
+		"NCT6116",
 	};
 
 	/* Apply system-specific quirks */
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH v2] watchdog: w83627hf_wdt: Support NCT6116D
  2019-09-18 16:04   ` [PATCH v2] " Srikanth Krishnakar
@ 2019-09-18 20:15     ` Guenter Roeck
  0 siblings, 0 replies; 4+ messages in thread
From: Guenter Roeck @ 2019-09-18 20:15 UTC (permalink / raw)
  To: Srikanth Krishnakar
  Cc: linux-watchdog, Cedric_Hombourger, Srikanth_Krishnakar

On Wed, Sep 18, 2019 at 09:34:58PM +0530, Srikanth Krishnakar wrote:
> The watchdog controller on NCT6116D is compatible with NCT6102D.
> Extend the support to enable SuperIO based NCT6116D watchdog device.
> 
> Tested on Siemens SIMATIC IPC-527G.
> 
> Signed-off-by: Srikanth Krishnakar <Srikanth_Krishnakar@mentor.com>

Reviewed-by: Guenter Roeck <linux@roeck-us.net>

> ---
> 
> Thanks for the catch Guenter!
> 
> That was not intentional. Fixed the typo of return ID. I could have 
> merged return ID of 6116 into 6102D but that would display 6102D as
> SuperIO Initialized in bootlog.
> 
>  drivers/watchdog/Kconfig        |  1 +
>  drivers/watchdog/w83627hf_wdt.c | 11 ++++++++++-
>  2 files changed, 11 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
> index a45f9e3e442b..4affadda5185 100644
> --- a/drivers/watchdog/Kconfig
> +++ b/drivers/watchdog/Kconfig
> @@ -1488,6 +1488,7 @@ config W83627HF_WDT
>  		NCT6791
>  		NCT6792
>  		NCT6102D/04D/06D
> +		NCT6116D
>  
>  	  This watchdog simply watches your kernel to make sure it doesn't
>  	  freeze, and if it does, it reboots your computer after a certain
> diff --git a/drivers/watchdog/w83627hf_wdt.c b/drivers/watchdog/w83627hf_wdt.c
> index 38b31e9947aa..56a4a4030ca9 100644
> --- a/drivers/watchdog/w83627hf_wdt.c
> +++ b/drivers/watchdog/w83627hf_wdt.c
> @@ -49,7 +49,7 @@ static int wdt_cfg_leave = 0xAA;/* key to lock configuration space */
>  enum chips { w83627hf, w83627s, w83697hf, w83697ug, w83637hf, w83627thf,
>  	     w83687thf, w83627ehf, w83627dhg, w83627uhg, w83667hg, w83627dhg_p,
>  	     w83667hg_b, nct6775, nct6776, nct6779, nct6791, nct6792, nct6793,
> -	     nct6795, nct6796, nct6102 };
> +	     nct6795, nct6796, nct6102, nct6116 };
>  
>  static int timeout;			/* in seconds */
>  module_param(timeout, int, 0);
> @@ -94,6 +94,7 @@ MODULE_PARM_DESC(early_disable, "Disable watchdog at boot time (default=0)");
>  #define NCT6775_ID		0xb4
>  #define NCT6776_ID		0xc3
>  #define NCT6102_ID		0xc4
> +#define NCT6116_ID		0xd2
>  #define NCT6779_ID		0xc5
>  #define NCT6791_ID		0xc8
>  #define NCT6792_ID		0xc9
> @@ -211,6 +212,7 @@ static int w83627hf_init(struct watchdog_device *wdog, enum chips chip)
>  	case nct6795:
>  	case nct6796:
>  	case nct6102:
> +	case nct6116:
>  		/*
>  		 * These chips have a fixed WDTO# output pin (W83627UHG),
>  		 * or support more than one WDTO# output pin.
> @@ -417,6 +419,12 @@ static int wdt_find(int addr)
>  		cr_wdt_control = NCT6102D_WDT_CONTROL;
>  		cr_wdt_csr = NCT6102D_WDT_CSR;
>  		break;
> +	case NCT6116_ID:
> +		ret = nct6116;
> +		cr_wdt_timeout = NCT6102D_WDT_TIMEOUT;
> +		cr_wdt_control = NCT6102D_WDT_CONTROL;
> +		cr_wdt_csr = NCT6102D_WDT_CSR;
> +		break;
>  	case 0xff:
>  		ret = -ENODEV;
>  		break;
> @@ -482,6 +490,7 @@ static int __init wdt_init(void)
>  		"NCT6795",
>  		"NCT6796",
>  		"NCT6102",
> +		"NCT6116",
>  	};
>  
>  	/* Apply system-specific quirks */
> -- 
> 2.17.1
> 

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-09-18 20:15 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-18 13:42 [PATCH] watchdog: w83627hf_wdt: Support NCT6116D Srikanth_Krishnakar
2019-09-18 14:57 ` Guenter Roeck
2019-09-18 16:04   ` [PATCH v2] " Srikanth Krishnakar
2019-09-18 20:15     ` Guenter Roeck

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).