diff mbox series

[v2] hwmon: (nct6683) Support NCT6687D.

Message ID 20201202025057.5492-1-andareed@gmail.com (mailing list archive)
State Accepted
Headers show
Series [v2] hwmon: (nct6683) Support NCT6687D. | expand

Commit Message

David Bartley Dec. 2, 2020, 2:50 a.m. UTC
This is found on many MSI motherboards.

Signed-off-by: David Bartley <andareed@gmail.com>
---
 Documentation/hwmon/nct6683.rst |  3 ++-
 drivers/hwmon/nct6683.c         | 14 ++++++++++++--
 2 files changed, 14 insertions(+), 3 deletions(-)

Comments

Guenter Roeck Dec. 2, 2020, 3:10 a.m. UTC | #1
On Tue, Dec 01, 2020 at 06:50:57PM -0800, David Bartley wrote:
> This is found on many MSI motherboards.
> 
> Signed-off-by: David Bartley <andareed@gmail.com>

Applied to hwmon-next.

Thanks,
Guenter

> ---
>  Documentation/hwmon/nct6683.rst |  3 ++-
>  drivers/hwmon/nct6683.c         | 14 ++++++++++++--
>  2 files changed, 14 insertions(+), 3 deletions(-)
> 
> diff --git a/Documentation/hwmon/nct6683.rst b/Documentation/hwmon/nct6683.rst
> index efbf7e9703ec..8646ad519fcd 100644
> --- a/Documentation/hwmon/nct6683.rst
> +++ b/Documentation/hwmon/nct6683.rst
> @@ -3,7 +3,7 @@ Kernel driver nct6683
>  
>  Supported chips:
>  
> -  * Nuvoton NCT6683D
> +  * Nuvoton NCT6683D/NCT6687D
>  
>      Prefix: 'nct6683'
>  
> @@ -61,4 +61,5 @@ Board		Firmware version
>  Intel DH87RL	NCT6683D EC firmware version 1.0 build 04/03/13
>  Intel DH87MC	NCT6683D EC firmware version 1.0 build 04/03/13
>  Intel DB85FL	NCT6683D EC firmware version 1.0 build 04/03/13
> +MSI B550	NCT6687D EC firmware version 1.0 build 05/07/20
>  =============== ===============================================
> diff --git a/drivers/hwmon/nct6683.c b/drivers/hwmon/nct6683.c
> index 2d299149f4d2..7f7e30f0de7b 100644
> --- a/drivers/hwmon/nct6683.c
> +++ b/drivers/hwmon/nct6683.c
> @@ -1,7 +1,7 @@
>  // SPDX-License-Identifier: GPL-2.0-or-later
>  /*
>   * nct6683 - Driver for the hardware monitoring functionality of
> - *	     Nuvoton NCT6683D eSIO
> + *	     Nuvoton NCT6683D/NCT6687D eSIO
>   *
>   * Copyright (C) 2013  Guenter Roeck <linux@roeck-us.net>
>   *
> @@ -12,6 +12,7 @@
>   *
>   * Chip        #vin    #fan    #pwm    #temp  chip ID
>   * nct6683d     21(1)   16      8       32(1) 0xc730
> + * nct6687d     21(1)   16      8       32(1) 0xd590
>   *
>   * Notes:
>   *	(1) Total number of vin and temp inputs is 32.
> @@ -32,7 +33,7 @@
>  #include <linux/platform_device.h>
>  #include <linux/slab.h>
>  
> -enum kinds { nct6683 };
> +enum kinds { nct6683, nct6687 };
>  
>  static bool force;
>  module_param(force, bool, 0);
> @@ -40,10 +41,12 @@ MODULE_PARM_DESC(force, "Set to one to enable support for unknown vendors");
>  
>  static const char * const nct6683_device_names[] = {
>  	"nct6683",
> +	"nct6687",
>  };
>  
>  static const char * const nct6683_chip_names[] = {
>  	"NCT6683D",
> +	"NCT6687D",
>  };
>  
>  #define DRVNAME "nct6683"
> @@ -63,6 +66,7 @@ static const char * const nct6683_chip_names[] = {
>  
>  #define SIO_NCT6681_ID		0xb270	/* for later */
>  #define SIO_NCT6683_ID		0xc730
> +#define SIO_NCT6687_ID		0xd590
>  #define SIO_ID_MASK		0xFFF0
>  
>  static inline void
> @@ -164,6 +168,7 @@ superio_exit(int ioreg)
>  #define NCT6683_REG_CUSTOMER_ID		0x602
>  #define NCT6683_CUSTOMER_ID_INTEL	0x805
>  #define NCT6683_CUSTOMER_ID_MITAC	0xa0e
> +#define NCT6683_CUSTOMER_ID_MSI		0x201
>  
>  #define NCT6683_REG_BUILD_YEAR		0x604
>  #define NCT6683_REG_BUILD_MONTH		0x605
> @@ -1218,6 +1223,8 @@ static int nct6683_probe(struct platform_device *pdev)
>  		break;
>  	case NCT6683_CUSTOMER_ID_MITAC:
>  		break;
> +	case NCT6683_CUSTOMER_ID_MSI:
> +		break;
>  	default:
>  		if (!force)
>  			return -ENODEV;
> @@ -1352,6 +1359,9 @@ static int __init nct6683_find(int sioaddr, struct nct6683_sio_data *sio_data)
>  	case SIO_NCT6683_ID:
>  		sio_data->kind = nct6683;
>  		break;
> +	case SIO_NCT6687_ID:
> +		sio_data->kind = nct6687;
> +		break;
>  	default:
>  		if (val != 0xffff)
>  			pr_debug("unsupported chip ID: 0x%04x\n", val);
> -- 
> 2.27.0
>
diff mbox series

Patch

diff --git a/Documentation/hwmon/nct6683.rst b/Documentation/hwmon/nct6683.rst
index efbf7e9703ec..8646ad519fcd 100644
--- a/Documentation/hwmon/nct6683.rst
+++ b/Documentation/hwmon/nct6683.rst
@@ -3,7 +3,7 @@  Kernel driver nct6683
 
 Supported chips:
 
-  * Nuvoton NCT6683D
+  * Nuvoton NCT6683D/NCT6687D
 
     Prefix: 'nct6683'
 
@@ -61,4 +61,5 @@  Board		Firmware version
 Intel DH87RL	NCT6683D EC firmware version 1.0 build 04/03/13
 Intel DH87MC	NCT6683D EC firmware version 1.0 build 04/03/13
 Intel DB85FL	NCT6683D EC firmware version 1.0 build 04/03/13
+MSI B550	NCT6687D EC firmware version 1.0 build 05/07/20
 =============== ===============================================
diff --git a/drivers/hwmon/nct6683.c b/drivers/hwmon/nct6683.c
index 2d299149f4d2..7f7e30f0de7b 100644
--- a/drivers/hwmon/nct6683.c
+++ b/drivers/hwmon/nct6683.c
@@ -1,7 +1,7 @@ 
 // SPDX-License-Identifier: GPL-2.0-or-later
 /*
  * nct6683 - Driver for the hardware monitoring functionality of
- *	     Nuvoton NCT6683D eSIO
+ *	     Nuvoton NCT6683D/NCT6687D eSIO
  *
  * Copyright (C) 2013  Guenter Roeck <linux@roeck-us.net>
  *
@@ -12,6 +12,7 @@ 
  *
  * Chip        #vin    #fan    #pwm    #temp  chip ID
  * nct6683d     21(1)   16      8       32(1) 0xc730
+ * nct6687d     21(1)   16      8       32(1) 0xd590
  *
  * Notes:
  *	(1) Total number of vin and temp inputs is 32.
@@ -32,7 +33,7 @@ 
 #include <linux/platform_device.h>
 #include <linux/slab.h>
 
-enum kinds { nct6683 };
+enum kinds { nct6683, nct6687 };
 
 static bool force;
 module_param(force, bool, 0);
@@ -40,10 +41,12 @@  MODULE_PARM_DESC(force, "Set to one to enable support for unknown vendors");
 
 static const char * const nct6683_device_names[] = {
 	"nct6683",
+	"nct6687",
 };
 
 static const char * const nct6683_chip_names[] = {
 	"NCT6683D",
+	"NCT6687D",
 };
 
 #define DRVNAME "nct6683"
@@ -63,6 +66,7 @@  static const char * const nct6683_chip_names[] = {
 
 #define SIO_NCT6681_ID		0xb270	/* for later */
 #define SIO_NCT6683_ID		0xc730
+#define SIO_NCT6687_ID		0xd590
 #define SIO_ID_MASK		0xFFF0
 
 static inline void
@@ -164,6 +168,7 @@  superio_exit(int ioreg)
 #define NCT6683_REG_CUSTOMER_ID		0x602
 #define NCT6683_CUSTOMER_ID_INTEL	0x805
 #define NCT6683_CUSTOMER_ID_MITAC	0xa0e
+#define NCT6683_CUSTOMER_ID_MSI		0x201
 
 #define NCT6683_REG_BUILD_YEAR		0x604
 #define NCT6683_REG_BUILD_MONTH		0x605
@@ -1218,6 +1223,8 @@  static int nct6683_probe(struct platform_device *pdev)
 		break;
 	case NCT6683_CUSTOMER_ID_MITAC:
 		break;
+	case NCT6683_CUSTOMER_ID_MSI:
+		break;
 	default:
 		if (!force)
 			return -ENODEV;
@@ -1352,6 +1359,9 @@  static int __init nct6683_find(int sioaddr, struct nct6683_sio_data *sio_data)
 	case SIO_NCT6683_ID:
 		sio_data->kind = nct6683;
 		break;
+	case SIO_NCT6687_ID:
+		sio_data->kind = nct6687;
+		break;
 	default:
 		if (val != 0xffff)
 			pr_debug("unsupported chip ID: 0x%04x\n", val);