Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/dev lm(4): Add suport for NCT5174D, NCT6775F, NCT6779D a...



details:   https://anonhg.NetBSD.org/src/rev/c7cbba655b7e
branches:  trunk
changeset: 825357:c7cbba655b7e
user:      msaitoh <msaitoh%NetBSD.org@localhost>
date:      Tue Jul 11 10:10:51 2017 +0000

description:
lm(4): Add suport for NCT5174D, NCT6775F, NCT6779D and NCT679[1235]D.
wbsio(4): Add support for NCT6795D.

diffstat:

 sys/dev/ic/nslm7x.c    |  280 +++++++++++++++++++++++++++++++++++++++++++++++-
 sys/dev/ic/nslm7xvar.h |    7 +-
 sys/dev/isa/wbsio.c    |   34 +++--
 sys/dev/isa/wbsioreg.h |   14 +-
 4 files changed, 302 insertions(+), 33 deletions(-)

diffs (truncated from 473 to 300 lines):

diff -r 430a38fca0c1 -r c7cbba655b7e sys/dev/ic/nslm7x.c
--- a/sys/dev/ic/nslm7x.c       Tue Jul 11 10:06:07 2017 +0000
+++ b/sys/dev/ic/nslm7x.c       Tue Jul 11 10:10:51 2017 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: nslm7x.c,v 1.64 2016/06/01 08:06:38 pgoyette Exp $ */
+/*     $NetBSD: nslm7x.c,v 1.65 2017/07/11 10:10:51 msaitoh Exp $ */
 
 /*-
  * Copyright (c) 2000 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: nslm7x.c,v 1.64 2016/06/01 08:06:38 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nslm7x.c,v 1.65 2017/07/11 10:10:51 msaitoh Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -45,6 +45,7 @@
 
 #include <dev/isa/isareg.h>
 #include <dev/isa/isavar.h>
+#include <dev/isa/wbsioreg.h>
 
 #include <dev/sysmon/sysmonvar.h>
 
@@ -93,6 +94,8 @@
 static void wb_refresh_fanrpm(struct lm_softc *, int);
 static void wb_w83792d_refresh_fanrpm(struct lm_softc *, int);
 static void wb_nct6776f_refresh_fanrpm(struct lm_softc *, int);
+static const char * wm_nct67xx_id2str(uint8_t);
+
 static void as_refresh_temp(struct lm_softc *, int);
 
 struct lm_chip {
@@ -105,6 +108,20 @@
        { def_match } /* Must be last */
 };
 
+static struct {
+       uint8_t id;
+       const char *str;
+} nct_chips[] = {
+       {WBSIO_ID_NCT6775F, "NCT6775F"},
+       {WBSIO_ID_NCT6776F, "NCT6776F"},
+       {WBSIO_ID_NCT5104D, "NCT5104D or 610[246]D"},
+       {WBSIO_ID_NCT6779D, "NCT6779D"},
+       {WBSIO_ID_NCT6791D, "NCT6791D"},
+       {WBSIO_ID_NCT6792D, "NCT6792D"},
+       {WBSIO_ID_NCT6793D, "NCT6793D"},
+       {WBSIO_ID_NCT6795D, "NCT6795D"},
+};
+
 /* LM78/78J/79/81 */
 static struct lm_sensor lm78_sensors[] = {
        /* Voltage */
@@ -1619,7 +1636,7 @@
        { .desc = NULL }
 };
 
-/*  NCT6776F */
+/* NCT6776F */
 static struct lm_sensor nct6776f_sensors[] = {
        /* Voltage */
        {
@@ -1767,6 +1784,225 @@
        { .desc = NULL }
 };
 
+/* NCT6779D */
+static struct lm_sensor nct6779d_sensors[] = {
+       /* Voltage */
+       {
+               .desc = "VCore",
+               .type = ENVSYS_SVOLTS_DC,
+               .bank = 4,
+               .reg = 0x80,
+               .refresh = lm_refresh_volt,
+               .rfact = RFACT_NONE / 2
+       },
+       {
+               .desc = "VIN1",
+               .type = ENVSYS_SVOLTS_DC,
+               .bank = 4,
+               .reg = 0x81,
+               .refresh = lm_refresh_volt,
+               .rfact = RFACT(56, 10) / 2
+       },
+       {
+               .desc = "AVCC",
+               .type = ENVSYS_SVOLTS_DC,
+               .bank = 4,
+               .reg = 0x82,
+               .refresh = lm_refresh_volt,
+               .rfact = RFACT(34, 34) / 2
+       },
+       {
+               .desc = "+3.3V",
+               .type = ENVSYS_SVOLTS_DC,
+               .bank = 4,
+               .reg = 0x83,
+               .refresh = lm_refresh_volt,
+               .rfact = RFACT(34, 34) / 2
+       },
+       {
+               .desc = "VIN0",
+               .type = ENVSYS_SVOLTS_DC,
+               .bank = 4,
+               .reg = 0x84,
+               .refresh = lm_refresh_volt,
+               .rfact = RFACT(48600, 10000)
+       },
+       {
+               .desc = "VIN8",
+               .type = ENVSYS_SVOLTS_DC,
+               .bank = 4,
+               .reg = 0x85,
+               .refresh = lm_refresh_volt,
+               .rfact = RFACT_NONE / 2
+       },
+       {
+               .desc = "VIN4",
+               .type = ENVSYS_SVOLTS_DC,
+               .bank = 4,
+               .reg = 0x86,
+               .refresh = lm_refresh_volt,
+               .rfact = RFACT_NONE
+       },
+       {
+               .desc = "+3.3VSB",
+               .type = ENVSYS_SVOLTS_DC,
+               .bank = 4,
+               .reg = 0x87,
+               .refresh = lm_refresh_volt,
+               .rfact = RFACT(34, 34) / 2
+       },
+       {
+               .desc = "VBAT",
+               .type = ENVSYS_SVOLTS_DC,
+               .bank = 4,
+               .reg = 0x88,
+               .refresh = lm_refresh_volt,
+               .rfact = RFACT_NONE
+       },
+       {
+               .desc = "VTT",
+               .type = ENVSYS_SVOLTS_DC,
+               .bank = 4,
+               .reg = 0x89,
+               .refresh = lm_refresh_volt,
+               .rfact = RFACT_NONE
+       },
+       {
+               .desc = "VIN5",
+               .type = ENVSYS_SVOLTS_DC,
+               .bank = 4,
+               .reg = 0x8a,
+               .refresh = lm_refresh_volt,
+               .rfact = RFACT_NONE
+       },
+       {
+               .desc = "VIN6",
+               .type = ENVSYS_SVOLTS_DC,
+               .bank = 4,
+               .reg = 0x8b,
+               .refresh = lm_refresh_volt,
+               .rfact = RFACT_NONE
+       },
+       {
+               .desc = "VIN2",
+               .type = ENVSYS_SVOLTS_DC,
+               .bank = 4,
+               .reg = 0x8c,
+               .refresh = lm_refresh_volt,
+               .rfact = RFACT_NONE
+       },
+       {
+               .desc = "VIN3",
+               .type = ENVSYS_SVOLTS_DC,
+               .bank = 4,
+               .reg = 0x8d,
+               .refresh = lm_refresh_volt,
+               .rfact = RFACT(14414, 10000)
+       },
+       {
+               .desc = "VIN7",
+               .type = ENVSYS_SVOLTS_DC,
+               .bank = 4,
+               .reg = 0x8e,
+               .refresh = lm_refresh_volt,
+               .rfact = RFACT_NONE / 2
+       },
+
+       /* Temperature */
+       {
+               .desc = "MB Temperature",
+               .type = ENVSYS_STEMP,
+               .bank = 4,
+               .reg = 0x90,
+               .refresh = lm_refresh_temp,
+               .rfact = 0
+       },
+       {
+               .desc = "CPU Temperature",
+               .type = ENVSYS_STEMP,
+               .bank = 4,
+               .reg = 0x91,
+               .refresh = wb_refresh_temp,
+               .rfact = 0
+       },
+       {
+               .desc = "Aux Temp0",
+               .type = ENVSYS_STEMP,
+               .bank = 4,
+               .reg = 0x92,
+               .refresh = wb_refresh_temp,
+               .rfact = 0
+       },
+       {
+               .desc = "Aux Temp1",
+               .type = ENVSYS_STEMP,
+               .bank = 4,
+               .reg = 0x93,
+               .refresh = wb_refresh_temp,
+               .rfact = 0
+       },
+       {
+               .desc = "Aux Temp2",
+               .type = ENVSYS_STEMP,
+               .bank = 4,
+               .reg = 0x94,
+               .refresh = wb_refresh_temp,
+               .rfact = 0
+       },
+       {
+               .desc = "Aux Temp3",
+               .type = ENVSYS_STEMP,
+               .bank = 4,
+               .reg = 0x95,
+               .refresh = wb_refresh_temp,
+               .rfact = 0
+       },
+
+       /* Fans */
+       {
+               .desc = "System Fan",
+               .type = ENVSYS_SFANRPM,
+               .bank = 4,
+               .reg = 0xb0,
+               .refresh = wb_nct6776f_refresh_fanrpm,
+               .rfact = 0
+       },
+       {
+               .desc = "CPU Fan",
+               .type = ENVSYS_SFANRPM,
+               .bank = 4,
+               .reg = 0xb2,
+               .refresh = wb_nct6776f_refresh_fanrpm,
+               .rfact = 0
+       },
+       {
+               .desc = "Aux Fan0",
+               .type = ENVSYS_SFANRPM,
+               .bank = 4,
+               .reg = 0xb4,
+               .refresh = wb_nct6776f_refresh_fanrpm,
+               .rfact = 0
+       },
+       {
+               .desc = "Aux Fan1",
+               .type = ENVSYS_SFANRPM,
+               .bank = 4,
+               .reg = 0xb6,
+               .refresh = wb_nct6776f_refresh_fanrpm,
+               .rfact = 0
+       },
+       {
+               .desc = "Aux Fan2",
+               .type = ENVSYS_SFANRPM,
+               .bank = 4,
+               .reg = 0xb8,
+               .refresh = wb_nct6776f_refresh_fanrpm,
+               .rfact = 0
+       },
+
+       { .desc = NULL }
+};
+
 static void
 lm_generic_banksel(struct lm_softc *lmsc, int bank)
 {
@@ -2015,13 +2251,31 @@
                wb_temp_diode_type(sc, cf_flags);
                break;
        case WB_CHIPID_W83627DHG:
-               if (sc->sioid == WBSIO_ID_NCT6776F) {
+               model = wm_nct67xx_id2str(sc->sioid);
+               if (model != NULL) {
                        vendor = "Nuvoton";
-                       model = "NCT6776F";



Home | Main Index | Thread Index | Old Index