Merge pull request #21 from Fred78290/nct6687d

Add suport for NCT6687D with ID 0xD592 found on MSI B460M bazooka
This commit is contained in:
Frederic BOLTZ 2022-02-15 23:21:48 +01:00 committed by GitHub
commit 4f00acebc6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 6 deletions

View file

@ -69,11 +69,18 @@ Just add nct6687 into /etc/modules
![Fan](./images/fan.png) ![Voltage](./images/voltage.png) ![Fan](./images/fan.png) ![Voltage](./images/voltage.png)
## Tested ## Tested
This module was tested on Ubuntu 20.04 with [Linux Kernel 5.8.18-050818-generic](https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.8.18/) on motherboard [MAG-B550-TOMAHAWK](https://www.msi.com//Motherboard/MAG-B550-TOMAHAWK) running an [AMD 3900X](https://www.amd.com/en/products/cpu/amd-ryzen-9-3900x) This module was tested on Ubuntu 20.04 with all kernel availble on motherboard [MAG-B550-TOMAHAWK](https://www.msi.com//Motherboard/MAG-B550-TOMAHAWK) running an [AMD 3900X/AMD 5900X](https://www.amd.com/en/products/cpu/amd-ryzen-9-3900x)
## TODO ## Other motherboard supported
- Many people have reported compatibility with MB having h410M & H510M chipset from some manufacturer. See issue report.
## CHANGELOG
- Add support for MSI B460M Bazooka having NCT6687 with another device ID
## VERIFIED
**1. Fan speed control** **1. Fan speed control**
- Changing fan speed and restore to default value not tested. - Changing fan speed was tested succesfuly by users, see reported issue.
- Becareful probably fan speed could down to 0 RPM

View file

@ -19,6 +19,7 @@
* Notes: * Notes:
* (1) Total number of voltage and 9 displayed. * (1) Total number of voltage and 9 displayed.
*/ */
#define DEBUG 1
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#include <linux/acpi.h> #include <linux/acpi.h>
@ -70,7 +71,8 @@ static const char *const nct6687_chip_names[] = {
#define SIO_REG_ENABLE 0x30 /* Logical device enable */ #define SIO_REG_ENABLE 0x30 /* Logical device enable */
#define SIO_REG_ADDR 0x60 /* Logical device address (2 bytes) */ #define SIO_REG_ADDR 0x60 /* Logical device address (2 bytes) */
#define SIO_NCT6687_ID 0xd592 #define SIO_NCT6687_ID 0xd451 // 0xd592
#define SIO_NCT6687D_ID 0xd592
static inline void superio_outb(int ioreg, int reg, int val) static inline void superio_outb(int ioreg, int reg, int val)
{ {
@ -1034,7 +1036,9 @@ static int __init nct6687_find(int sioaddr, struct nct6687_sio_data *sio_data)
val = (superio_inb(sioaddr, SIO_REG_DEVID) << 8) | superio_inb(sioaddr, SIO_REG_DEVREVISION); val = (superio_inb(sioaddr, SIO_REG_DEVID) << 8) | superio_inb(sioaddr, SIO_REG_DEVREVISION);
if (val == SIO_NCT6687_ID) pr_debug("found chip ID: 0x%04x\n", val);
if (val == SIO_NCT6687_ID || val == SIO_NCT6687D_ID)
{ {
sio_data->kind = nct6687; sio_data->kind = nct6687;
} }