Supported chips:
- * Nuvoton NCT6683D
+ * Nuvoton NCT6683D/NCT6687D
Prefix: 'nct6683'
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
=============== ===============================================
// 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>
*
*
* 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.
#include <linux/platform_device.h>
#include <linux/slab.h>
-enum kinds { nct6683 };
+enum kinds { nct6683, nct6687 };
static bool force;
module_param(force, bool, 0);
static const char * const nct6683_device_names[] = {
"nct6683",
+ "nct6687",
};
static const char * const nct6683_chip_names[] = {
"NCT6683D",
+ "NCT6687D",
};
#define DRVNAME "nct6683"
#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
#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
break;
case NCT6683_CUSTOMER_ID_MITAC:
break;
+ case NCT6683_CUSTOMER_ID_MSI:
+ break;
default:
if (!force)
return -ENODEV;
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);