2007-09-19 17:52:23 +02:00
|
|
|
/*
|
2007-09-28 17:45:43 +02:00
|
|
|
* This file is part of the superiotool project.
|
2007-09-19 17:52:23 +02:00
|
|
|
*
|
|
|
|
* Copyright (C) 2007 Uwe Hermann <uwe@hermann-uwe.de>
|
|
|
|
*
|
|
|
|
* This program is free software; you can redistribute it and/or modify
|
|
|
|
* it under the terms of the GNU General Public License as published by
|
|
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
|
|
* (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU General Public License
|
|
|
|
* along with this program; if not, write to the Free Software
|
Remove address from GPLv2 headers
As per discussion with lawyers[tm], it's not a good idea to
shorten the license header too much - not for legal reasons
but because there are tools that look for them, and giving
them a standard pattern simplifies things.
However, we got confirmation that we don't have to update
every file ever added to coreboot whenever the FSF gets a
new lease, but can drop the address instead.
util/kconfig is excluded because that's imported code that
we may want to synchronize every now and then.
$ find * -type f -exec sed -i "s:Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, *MA[, ]*02110-1301[, ]*USA:Foundation, Inc.:" {} +
$ find * -type f -exec sed -i "s:Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA:Foundation, Inc.:" {} +
$ find * -type f -exec sed -i "s:Foundation, Inc., 59 Temple Place[-, ]*Suite 330, Boston, MA *02111-1307[, ]*USA:Foundation, Inc.:" {} +
$ find * -type f -exec sed -i "s:Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.:Foundation, Inc.:" {} +
$ find * -type f
-a \! -name \*.patch \
-a \! -name \*_shipped \
-a \! -name LICENSE_GPL \
-a \! -name LGPL.txt \
-a \! -name COPYING \
-a \! -name DISCLAIMER \
-exec sed -i "/Foundation, Inc./ N;s:Foundation, Inc.* USA\.* *:Foundation, Inc. :;s:Foundation, Inc. $:Foundation, Inc.:" {} +
Change-Id: Icc968a5a5f3a5df8d32b940f9cdb35350654bef9
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Reviewed-on: http://review.coreboot.org/9233
Tested-by: build bot (Jenkins)
Reviewed-by: Vladimir Serbinenko <phcoder@gmail.com>
2015-03-26 15:17:45 +01:00
|
|
|
* Foundation, Inc.
|
2007-09-19 17:52:23 +02:00
|
|
|
*/
|
|
|
|
|
|
|
|
#include "superiotool.h"
|
|
|
|
|
2007-09-26 18:14:16 +02:00
|
|
|
#define DEVICE_ID_REG_OLD 0x09
|
|
|
|
|
|
|
|
#define DEVICE_ID_REG 0x20
|
|
|
|
#define DEVICE_REV_REG 0x21
|
2007-09-19 17:52:23 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* The ID entries must be in 0xYYZ format, where YY is the device ID,
|
|
|
|
* and Z is bits 7..4 of the device revision register. We do not match
|
2007-09-26 18:14:16 +02:00
|
|
|
* bits 3..0 of the device revision here (at least for newer Super I/Os).
|
|
|
|
*
|
|
|
|
* But some of the older versions use both bytes (0x20 and 0x21), where
|
|
|
|
* register 0x21 holds the ID and the full 8 bits of 0x21 hold the revision.
|
|
|
|
*
|
|
|
|
* Some other Super I/Os only use bits 3..0 of 0x09 as ID.
|
2007-09-19 17:52:23 +02:00
|
|
|
*/
|
2007-10-31 23:22:11 +01:00
|
|
|
static const struct superio_registers reg_table[] = {
|
2007-10-04 20:34:36 +02:00
|
|
|
/* ID and rev[3..0] */
|
|
|
|
{0x527, "W83977CTF", { /* TODO: Not yet in sensors-detect */
|
2007-09-26 18:14:16 +02:00
|
|
|
{EOT}}},
|
2008-10-19 23:03:41 +02:00
|
|
|
{0x52f, "W83977EF/EG", {
|
|
|
|
{NOLDN, NULL,
|
|
|
|
{0x02,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x28,0x2a,
|
|
|
|
0x2b,0x2c,0x2d,0x2e,0x2f,EOT},
|
|
|
|
{RSVD,0x52,MISC,0xff,0xfe,MISC,0x00,MISC,0x00,0x00,
|
|
|
|
0x00,0x00,RSVD,RSVD,RSVD,EOT}},
|
|
|
|
/* Some register defaults depend on the value of PNPCSV. */
|
|
|
|
{0x0, "Floppy",
|
|
|
|
{0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,0xf2,0xf4,
|
|
|
|
0xf5,EOT},
|
|
|
|
{0x01,0x03,0xf0,0x06,0x02,0x0e,0x00,0xff,0x00,
|
|
|
|
0x00,EOT}},
|
|
|
|
{0x1, "Parallel port",
|
|
|
|
{0x30,0x60,0x61,0x70,0x74,0xf0,EOT},
|
|
|
|
{0x01,0x03,0x78,0x07,0x04,0x3f,EOT}},
|
|
|
|
{0x2, "COM1",
|
|
|
|
{0x30,0x60,0x61,0x70,0xf0,EOT},
|
|
|
|
{0x01,0x03,0xf8,0x04,0x00,EOT}},
|
|
|
|
{0x3, "COM2",
|
|
|
|
{0x30,0x60,0x61,0x70,0xf0,0xf1,EOT},
|
|
|
|
{0x01,0x02,0xf8,0x03,0x00,0x00,EOT}},
|
|
|
|
{0x5, "Keyboard",
|
|
|
|
{0x30,0x60,0x61,0x62,0x63,0x70,0x72,0xf0,EOT},
|
|
|
|
{0x01,0x00,0x60,0x00,0x64,0x01,0x0c,0x83,EOT}},
|
|
|
|
{0x7, "GPIO 1",
|
|
|
|
{0x30,0x60,0x61,0x62,0x63,0x64,0x65,0x70,0x72,0xe0,
|
|
|
|
0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xf1,EOT},
|
|
|
|
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
|
|
|
|
0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,EOT}},
|
|
|
|
{0x8, "GPIO 2",
|
|
|
|
{0x30,0x60,0x61,0x70,0x72,0xe8,0xe9,0xea,0xeb,0xec,
|
|
|
|
0xed,0xf0,0xf1,0xf2,0xf3,0xf4,EOT},
|
|
|
|
{0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,
|
|
|
|
0x01,0x00,RSVD,0x00,0x00,0x00,EOT}},
|
|
|
|
{0xa, "ACPI",
|
|
|
|
{0x30,0x70,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,
|
|
|
|
0xf0,0xf1,0xf3,0xf4,0xf6,0xf7,0xf9,0xfe,0xff,EOT},
|
|
|
|
{0x00,0x00,0x00,0x00,MISC,MISC,MISC,0x00,0x00,0x00,
|
|
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,RSVD,RSVD,EOT}},
|
2007-09-26 18:14:16 +02:00
|
|
|
{EOT}}},
|
2007-10-04 20:34:36 +02:00
|
|
|
{0x595, "W83627SF", { /* TODO: Not yet in sensors-detect */
|
2007-09-26 18:14:16 +02:00
|
|
|
{EOT}}},
|
|
|
|
{0x601, "W83697HF/F/HG", { /* No G version? */
|
2007-09-20 02:00:49 +02:00
|
|
|
{NOLDN, NULL,
|
2008-10-14 18:34:38 +02:00
|
|
|
{0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x28,0x29,
|
2007-09-20 02:00:49 +02:00
|
|
|
0x2a,EOT},
|
2008-10-14 18:34:38 +02:00
|
|
|
{0x60,NANA,0xff,0x00,0x00,0x00,0x00,0x00,0x00,
|
2007-09-20 02:00:49 +02:00
|
|
|
MISC,EOT}},
|
|
|
|
/* Some register defaults depend on the value of PNPCSV. */
|
|
|
|
{0x0, "Floppy",
|
|
|
|
{0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,0xf2,0xf4,
|
|
|
|
0xf5,EOT},
|
|
|
|
{0x01,0x03,0xf0,0x06,0x02,0x0e,0x00,0xff,0x00,
|
|
|
|
0x00,EOT}},
|
|
|
|
{0x1, "Parallel port",
|
|
|
|
{0x30,0x60,0x61,0x70,0x74,0xf0,EOT},
|
|
|
|
{0x01,0x03,0x78,0x07,0x04,0x3f,EOT}},
|
|
|
|
{0x2, "COM1",
|
|
|
|
{0x30,0x60,0x61,0x70,0xf0,EOT},
|
|
|
|
{0x01,0x03,0xf8,0x04,0x00,EOT}},
|
|
|
|
{0x3, "COM2",
|
|
|
|
{0x30,0x60,0x61,0x70,0xf0,0xf1,EOT},
|
|
|
|
{0x01,0x02,0xf8,0x03,0x00,0x00,EOT}},
|
2007-09-21 00:13:48 +02:00
|
|
|
{0x6, "Consumer IR",
|
2007-09-20 02:00:49 +02:00
|
|
|
{0x30,0x60,0x61,0x70,EOT},
|
|
|
|
{0x00,0x00,0x00,0x00,EOT}},
|
2007-09-21 00:13:48 +02:00
|
|
|
{0x7, "Game port, GPIO 1",
|
2007-09-20 02:00:49 +02:00
|
|
|
{0x30,0x60,0x61,0x62,0x63,0xf0,0xf1,0xf2,EOT},
|
|
|
|
{0x00,0x02,0x01,0x00,0x00,0xff,0x00,0x00,EOT}},
|
2007-09-21 00:13:48 +02:00
|
|
|
{0x8, "MIDI port, GPIO 5",
|
2007-09-20 02:00:49 +02:00
|
|
|
{0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,0xf3,
|
|
|
|
0xf4,0xf5,EOT},
|
|
|
|
{0x00,0x03,0x30,0x00,0x00,0x09,0xff,0x00,0x00,0x00,
|
|
|
|
0x00,0x00,EOT}},
|
2007-09-21 00:13:48 +02:00
|
|
|
{0x9, "GPIO 2, GPIO 3, GPIO 4",
|
2007-09-20 02:00:49 +02:00
|
|
|
{0x30,0x60,0x61,0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,
|
|
|
|
0xf7,0xf8,0xf5,EOT},
|
|
|
|
{0x00,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,
|
|
|
|
0x00,0x00,0x00,EOT}},
|
|
|
|
{0xa, "ACPI",
|
|
|
|
{0x30,0x70,0xe0,0xe1,0xe2,0xe5,0xe6,0xe7,
|
|
|
|
0xf0,0xf1,0xf3,0xf4,0xf6,0xf7,0xf9,EOT},
|
|
|
|
{0x00,0x00,0x00,0x00,NANA,0x00,0x00,0x00,
|
|
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,EOT}},
|
|
|
|
{0xb, "Hardware monitor",
|
|
|
|
{0x30,0x60,0x61,0x70,EOT},
|
|
|
|
{0x00,0x00,0x00,0x00,EOT}},
|
2007-09-19 17:52:23 +02:00
|
|
|
{EOT}}},
|
2007-09-26 18:14:16 +02:00
|
|
|
{0x610, "W83L517D/D-F", {
|
|
|
|
{EOT}}},
|
2007-10-04 20:34:36 +02:00
|
|
|
{0x708, "W83637HF/HG", {
|
2007-09-26 18:14:16 +02:00
|
|
|
{EOT}}},
|
|
|
|
{0x828, "W83627THF/THG", { /* We assume rev is bits 3..0 of 0x21. */
|
2007-10-07 21:04:26 +02:00
|
|
|
{NOLDN, NULL,
|
|
|
|
{0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x28,0x29,0x2a,
|
|
|
|
0x2b,0x2c,0x2d,0x2e,0x2f,EOT},
|
|
|
|
{0x82,NANA,0xff,0x00,MISC,0x00,MISC,0x00,0x00,0x00,
|
|
|
|
MISC,MISC,MISC,0x00,0x00,EOT}},
|
|
|
|
/* Some register defaults depend on the value of PNPCSV. */
|
|
|
|
{0x0, "Floppy",
|
|
|
|
{0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,0xf2,0xf4,
|
|
|
|
0xf5,EOT},
|
|
|
|
{0x01,0x03,0xf0,0x06,0x02,0x0e,0x00,0xff,0x00,
|
|
|
|
0x00,EOT}},
|
|
|
|
{0x1, "Parallel port",
|
|
|
|
{0x30,0x60,0x61,0x70,0x74,0xf0,EOT},
|
|
|
|
{0x01,0x03,0x78,0x07,0x04,0x3f,EOT}},
|
|
|
|
{0x2, "COM1",
|
|
|
|
{0x30,0x60,0x61,0x70,0xf0,EOT},
|
|
|
|
{0x01,0x03,0xf8,0x04,0x00,EOT}},
|
|
|
|
{0x3, "COM2",
|
|
|
|
{0x30,0x60,0x61,0x70,0xf0,0xf1,EOT},
|
|
|
|
{0x01,0x02,0xf8,0x03,0x00,0x00,EOT}},
|
|
|
|
{0x5, "Keyboard",
|
|
|
|
{0x30,0x60,0x61,0x62,0x63,0x70,0x72,0xf0,EOT},
|
|
|
|
{0x01,0x00,0x60,0x00,0x64,0x01,0x0c,0x80,EOT}},
|
|
|
|
{0x7, "GPIO 1, GPIO 5, game port, MIDI port",
|
|
|
|
{0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,0xf3,
|
|
|
|
0xf4,0xf5,EOT},
|
|
|
|
{0x00,0x02,0x01,0x03,0x30,0x09,0xff,0x00,0x00,0xff,
|
|
|
|
0x00,0x00,EOT}},
|
|
|
|
{0x8, "GPIO 2",
|
|
|
|
{0x30,0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,EOT},
|
|
|
|
{0x00,0xff,0x00,0x00,0x00,RSVD,0x00,0x00,0x00,EOT}},
|
|
|
|
{0x9, "GPIO 3, GPIO 4",
|
|
|
|
{0x30,0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,EOT},
|
|
|
|
{0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,EOT}},
|
|
|
|
{0xa, "ACPI",
|
|
|
|
/* Note: Datasheet says 0xe2 can't be read/written. */
|
|
|
|
{0x30,0x70,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,
|
|
|
|
0xf0,0xf1,0xf3,0xf4,0xf6,0xf7,0xf9,0xfe,0xff,EOT},
|
|
|
|
{0x00,0x00,0x00,0x00,MISC,MISC,0x00,0x00,0x00,0x00,
|
|
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,RSVD,RSVD,EOT}},
|
|
|
|
{0xb, "Hardware monitor",
|
|
|
|
{0x30,0x60,0x61,0x70,EOT},
|
|
|
|
{0x00,0x00,0x00,0x00,EOT}},
|
2007-09-26 18:14:16 +02:00
|
|
|
{EOT}}},
|
2007-10-04 20:34:36 +02:00
|
|
|
#if 0
|
|
|
|
{0x85x, "W83687THF", { /* TODO: sensors-detect: 0x85 */
|
|
|
|
{EOT}}},
|
|
|
|
#endif
|
|
|
|
{0xa02, "W83627DHG", {
|
2008-01-19 01:32:07 +01:00
|
|
|
{NOLDN, NULL,
|
|
|
|
{0x02,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,
|
|
|
|
0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,EOT},
|
|
|
|
{0x00,0xa0,NANA,0xff,0x00,MISC,0x00,MISC,RSVD,0x50,
|
|
|
|
0x00,0x00,RSVD,0xe2,0x21,0x00,0x00,EOT}},
|
|
|
|
{0x0, "Floppy",
|
|
|
|
{0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,0xf2,0xf4,0xf5,
|
|
|
|
EOT},
|
|
|
|
{0x01,0x03,0xf0,0x06,0x02,0x8e,0x00,0xff,0x00,0x00,
|
|
|
|
EOT}},
|
|
|
|
{0x1, "Parallel port",
|
|
|
|
{0x30,0x60,0x61,0x70,0x74,0xf0,EOT},
|
|
|
|
{0x01,0x03,0x78,0x07,0x04,0x3f,EOT}},
|
|
|
|
{0x2, "COM1",
|
|
|
|
{0x30,0x60,0x61,0x70,0xf0,EOT},
|
|
|
|
{0x01,0x03,0xf8,0x04,0x00,EOT}},
|
|
|
|
{0x3, "COM2",
|
|
|
|
{0x30,0x60,0x61,0x70,0xf0,0xf1,EOT},
|
|
|
|
{0x01,0x02,0xf8,0x03,0x00,0x00,EOT}},
|
|
|
|
{0x5, "Keyboard",
|
|
|
|
{0x30,0x60,0x61,0x62,0x63,0x70,0x72,0xf0,EOT},
|
|
|
|
{0x01,0x00,0x60,0x00,0x64,0x01,0x0c,0x83,EOT}},
|
|
|
|
{0x6, "Serial peripheral interface",
|
|
|
|
{0x30,0x62,0x63,EOT},
|
|
|
|
{0x00,0x00,0x00,EOT}},
|
|
|
|
{0x7, "GPIO 6",
|
|
|
|
{0x30,0xf4,0xf5,0xf6,0xf7,EOT},
|
|
|
|
{0x00,0xff,0x00,0x00,0x00,EOT}},
|
|
|
|
{0x8, "WDTO#, PLED",
|
|
|
|
{0x30,0xf5,0xf6,0xf7,EOT},
|
|
|
|
{0x00,0x00,0x00,0x00,EOT}},
|
|
|
|
{0x9, "GPIO 2, GPIO 3, GPIO 4, GPIO 5",
|
|
|
|
{0x30,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,
|
2011-03-29 14:02:03 +02:00
|
|
|
0xe9,0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xfe,
|
|
|
|
EOT},
|
2008-01-19 01:32:07 +01:00
|
|
|
{0x00,0xff,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,
|
|
|
|
0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,
|
2011-03-29 14:02:03 +02:00
|
|
|
EOT}},
|
2008-01-19 01:32:07 +01:00
|
|
|
{0xa, "ACPI",
|
|
|
|
{0x30,0x70,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,
|
|
|
|
0xe8,0xe9,0xf2,0xf3,0xf4,0xf6,0xf7,0xfe,EOT},
|
|
|
|
{0x00,0x00,0x01,0x00,0xff,0x08,0x00,RSVD,0x1c,0x00,
|
|
|
|
RSVD,RSVD,0x7c,0x00,0x00,0x00,0x00,0x00,EOT}},
|
|
|
|
{0xb, "Hardware monitor",
|
|
|
|
{0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,EOT},
|
|
|
|
{0x00,0x00,0x00,0x00,0x81,0x00,0x00,EOT}},
|
|
|
|
{0xc, "PECI, SST",
|
2011-03-29 14:02:03 +02:00
|
|
|
{0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe8,0xf1,0xfe,0xff,
|
|
|
|
EOT},
|
|
|
|
{0x00,0x48,0x48,0x48,0x48,0x00,0x00,0x48,0x00,0x00,
|
|
|
|
EOT}},
|
2007-10-04 20:34:36 +02:00
|
|
|
{EOT}}},
|
superiotool: add CR dump for W83627UHG = NCT6627UD
This commit adds "register dump capability" to
superiotool for a specific chip by Winbond/Nuvoton:
the W83627UHG AKA NCT6627UD (same chip, different package).
In other words, it fills in the "CR map" definitions in winbond.c,
which so far have been void for this chip.
-
superiotool r4.0-3976-g190011e
Found Winbond W83627UHG = NCT6627UD (id=0xa2, rev=0x32) at 0x2e
Register dump:
idx 02 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f
val ff a2 32 ff f0 44 00 00 ff 00 00 00 00 03 00 00 ff
def 00 a2 NA ff f0 MM 00 MM RR 00 00 00 00 02 00 00 00
LDN 0x00 (Floppy)
idx 30 60 61 70 74 f0 f1 f2 f4 f5
val 00 00 00 00 02 8e 00 ff 00 00
def 01 03 f0 06 02 8e 00 ff 00 00
LDN 0x01 (Parallel port)
idx 30 60 61 70 74 f0
val 00 03 78 0c 04 3f
def 01 03 78 07 04 3f
LDN 0x02 (UART A)
idx 30 60 61 70 f0
val 01 03 f8 04 00
def 01 03 f8 04 00
LDN 0x03 (UART B)
idx 30 60 61 70 f0 f1
val 01 02 f8 03 00 44
def 01 02 f8 03 00 00
LDN 0x05 (Keyboard)
idx 30 60 61 62 63 70 72 f0
val 01 00 60 00 64 01 0c 82
def 01 00 60 00 64 01 0c 83
LDN 0x06 (UART C)
idx 30 60 61 70 f0
val 01 03 e8 05 80
def 01 03 e0 04 00
LDN 0x07 (GPIO 3, GPIO 4)
idx 30 e0 e1 e2 e3 e4 e5 e6 e7
val 04 ff ff ff ff ff ff ff ff
def 00 ff 00 00 00 ff 00 00 00
LDN 0x08 (WDTO#, PLED, GPIO 5,6 & GPIO Base Address)
idx 30 60 61 e0 e1 e2 e3 e4 e5 e6 e7 f5 f6 f7
val 01 00 00 ff ff ff ff ff ff ff ff 02 00 00
def 02 00 00 ff 00 00 00 ff 1f 00 00 00 00 00
LDN 0x09 (GPIO 1, GPIO 2 and SUSLED)
idx 30 e0 e1 e2 e3 e4 e5 e6 e7 f3
val 02 ff ff ff ff 00 ff 00 00 00
def 00 ff 00 00 00 ff 00 00 00 00
LDN 0x0a (ACPI)
idx 30 70 e0 e1 e2 e3 e4 e5 e6 e7 e8 e9 f2 f3 f4 f6 f7 fe
val 01 00 01 00 0a 00 00 00 0c 00 09 00 01 00 00 00 00 00
def 00 00 01 00 ff 08 00 00 1c 00 RR RR 3e 00 00 00 00 00
LDN 0x0b (Hardware monitor)
idx 30 60 61 70 f0 f1 f2
val 01 02 48 00 81 ff 81
def 00 00 00 00 RR RR 00
LDN 0x0c (PECI, SST)
idx e0 e1 e2 e3 e4 e5 e6 e7 e8 f1 f2 f3 fe ff
val 00 48 48 48 48 00 00 00 00 4c 50 10 23 5a
def 00 48 48 48 48 00 RR RR 00 48 50 10 23 5a
LDN 0x0d (UART D)
idx 30 60 61 70 f0
val 00 00 00 00 00
def 00 02 e0 03 00
LDN 0x0e (UART E)
idx 30 60 61 70 f0
val 00 00 00 00 80
def 00 03 e8 04 00
LDN 0x0f (UART F)
idx 30 60 61 70 f0
val 01 02 38 0a 00
def 00 02 e8 03 00
Change-Id: I834f8767b29f3148f353004edb22cfd7db5ddd56
Signed-off-by: Frank Rysanek <Frantisek.Rysanek@post.cz>
Reviewed-on: http://review.coreboot.org/3027
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Tested-by: build bot (Jenkins)
Reviewed-by: Anton Kochkov <anton.kochkov@gmail.com>
2013-04-05 10:44:10 +02:00
|
|
|
{0xa23, "W83627UHG = NCT6627UD", { /* TODO: Not yet in sensors-detect */
|
|
|
|
{NOLDN, NULL, /* CR2B (485) is only valid for chip rev.E */
|
|
|
|
{0x02,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,
|
|
|
|
0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,EOT},
|
|
|
|
{0x00,0xa2,NANA,0xff,0xF0,MISC,0x00,MISC,RSVD,0x00,
|
|
|
|
0x00,0x00,0x00,0x02,0x00,0x00,0x00,EOT}},
|
|
|
|
{0x0, "Floppy",
|
|
|
|
{0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,0xf2,0xf4,0xf5,
|
|
|
|
EOT},
|
|
|
|
{0x01,0x03,0xf0,0x06,0x02,0x8e,0x00,0xff,0x00,0x00,
|
|
|
|
EOT}},
|
|
|
|
{0x1, "Parallel port",
|
|
|
|
{0x30,0x60,0x61,0x70,0x74,0xf0,EOT},
|
|
|
|
{0x01,0x03,0x78,0x07,0x04,0x3f,EOT}},
|
|
|
|
{0x2, "UART A",
|
|
|
|
{0x30,0x60,0x61,0x70,0xf0,EOT},
|
|
|
|
{0x01,0x03,0xf8,0x04,0x00,EOT}},
|
|
|
|
{0x3, "UART B",
|
|
|
|
{0x30,0x60,0x61,0x70,0xf0,0xf1,EOT},
|
|
|
|
{0x01,0x02,0xf8,0x03,0x00,0x00,EOT}},
|
|
|
|
{0x5, "Keyboard",
|
|
|
|
{0x30,0x60,0x61,0x62,0x63,0x70,0x72,0xf0,EOT},
|
|
|
|
{0x01,0x00,0x60,0x00,0x64,0x01,0x0c,0x83,EOT}},
|
|
|
|
{0x6, "UART C",
|
|
|
|
{0x30,0x60,0x61,0x70,0xf0,EOT},
|
|
|
|
{0x01,0x03,0xE0,0x04,0x00,EOT}},
|
|
|
|
{0x7, "GPIO 3, GPIO 4",
|
|
|
|
{0x30,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,EOT},
|
|
|
|
{0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,EOT}},
|
|
|
|
{0x8, "WDTO#, PLED, GPIO 5,6 & GPIO Base Address",
|
|
|
|
{0x30,0x60,0x61,
|
|
|
|
0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,
|
|
|
|
0xF5,0xF6,0xF7,EOT},
|
|
|
|
{0x02,0x00,0x00,
|
|
|
|
0xFF,0x00,0x00,0x00,0xFF,0x1F,0x00,0x00,
|
|
|
|
0x00,0x00,0x00,EOT}},
|
|
|
|
{0x9, "GPIO 1, GPIO 2 and SUSLED",
|
|
|
|
{0x30,
|
|
|
|
0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,
|
|
|
|
0xF3,EOT},
|
|
|
|
{0x00,
|
|
|
|
0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,
|
|
|
|
0x00,EOT}},
|
|
|
|
{0xa, "ACPI",
|
|
|
|
{0x30,0x70,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,
|
|
|
|
0xe8,0xe9,0xf2,0xf3,0xf4,0xf6,0xf7,0xfe,EOT},
|
|
|
|
{0x00,0x00,0x01,0x00,0xff,0x08,0x00,0x00,0x1c,0x00,
|
|
|
|
RSVD,RSVD,0x3e,0x00,0x00,0x00,0x00,0x00,EOT}},
|
|
|
|
{0xb, "Hardware monitor",
|
|
|
|
{0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,EOT},
|
|
|
|
{0x00,0x00,0x00,0x00,RSVD,RSVD,0x00,EOT}},
|
|
|
|
{0xc, "PECI, SST",
|
|
|
|
{0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,
|
|
|
|
0xf1,0xf2,0xf3,0xfe,0xff,EOT},
|
|
|
|
{0x00,0x48,0x48,0x48,0x48,0x00,RSVD,RSVD,0x00,
|
|
|
|
0x48,0x50,0x10,0x23,0x5A,EOT}},
|
|
|
|
{0xD, "UART D",
|
|
|
|
{0x30,0x60,0x61,0x70,0xf0,EOT},
|
|
|
|
{0x00,0x02,0xe0,0x03,0x00,EOT}},
|
|
|
|
{0xE, "UART E",
|
|
|
|
{0x30,0x60,0x61,0x70,0xf0,EOT},
|
|
|
|
{0x00,0x03,0xe8,0x04,0x00,EOT}},
|
|
|
|
{0xF, "UART F",
|
|
|
|
{0x30,0x60,0x61,0x70,0xf0,EOT},
|
|
|
|
{0x00,0x02,0xe8,0x03,0x00,EOT}},
|
2007-09-26 18:14:16 +02:00
|
|
|
{EOT}}},
|
2010-01-23 22:51:10 +01:00
|
|
|
{0xa51, "W83667HG", {
|
|
|
|
/* See also: http://lists.lm-sensors.org/pipermail/lm-sensors/2008-July/023683.html */
|
|
|
|
{EOT}}},
|
2011-03-29 14:02:03 +02:00
|
|
|
{0xb07, "W83627DHG-P/-PT", {
|
|
|
|
{NOLDN, NULL,
|
|
|
|
{0x02,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,
|
|
|
|
0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,EOT},
|
|
|
|
{0x00,0xb0,NANA,0xff,0x00,MISC,0x00,MISC,RSVD,0x50,
|
|
|
|
0x00,0x00,RSVD,0xe2,0x21,0x00,0x00,EOT}},
|
|
|
|
{0x0, "Floppy",
|
|
|
|
{0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,0xf2,0xf4,0xf5,
|
|
|
|
EOT},
|
|
|
|
{0x01,0x03,0xf0,0x06,0x02,0x8e,0x00,0xff,0x00,0x00,
|
|
|
|
EOT}},
|
|
|
|
{0x1, "Parallel port",
|
|
|
|
{0x30,0x60,0x61,0x70,0x74,0xf0,EOT},
|
|
|
|
{0x01,0x03,0x78,0x07,0x04,0x3f,EOT}},
|
|
|
|
{0x2, "COM1",
|
|
|
|
{0x30,0x60,0x61,0x70,0xf0,EOT},
|
|
|
|
{0x01,0x03,0xf8,0x04,0x00,EOT}},
|
|
|
|
{0x3, "COM2",
|
|
|
|
{0x30,0x60,0x61,0x70,0xf0,0xf1,EOT},
|
|
|
|
{0x01,0x02,0xf8,0x03,0x00,0x00,EOT}},
|
|
|
|
{0x5, "Keyboard",
|
|
|
|
{0x30,0x60,0x61,0x62,0x63,0x70,0x72,0xf0,EOT},
|
|
|
|
{0x01,0x00,0x60,0x00,0x64,0x01,0x0c,0x83,EOT}},
|
|
|
|
{0x6, "Serial peripheral interface",
|
|
|
|
{0x30,0x62,0x63,EOT},
|
|
|
|
{0x00,0x00,0x00,EOT}},
|
|
|
|
{0x7, "GPIO 6",
|
|
|
|
{0x30,0xf4,0xf5,0xf6,0xf7,0xf8,EOT},
|
|
|
|
{0x00,0xff,0x00,0x00,0x00,0x00,EOT}},
|
|
|
|
{0x8, "WDTO#, PLED",
|
|
|
|
{0x30,0xf5,0xf6,0xf7,EOT},
|
|
|
|
{0x00,0x00,0x00,0x00,EOT}},
|
|
|
|
{0x9, "GPIO 2, GPIO 3, GPIO 4, GPIO 5",
|
|
|
|
{0x30,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,
|
|
|
|
0xe9,0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,
|
|
|
|
0xf9,0xfa,0xfe,EOT},
|
|
|
|
{0x00,0xff,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,
|
|
|
|
0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,
|
|
|
|
0x00,0x00,0x00,EOT}},
|
|
|
|
{0xa, "ACPI",
|
|
|
|
{0x30,0x70,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,
|
|
|
|
0xe8,0xe9,0xf2,0xf3,0xf4,0xf6,0xf7,0xfe,EOT},
|
|
|
|
{0x00,0x00,0x01,0x00,0xff,0x08,0x00,RSVD,0x1c,0x00,
|
|
|
|
RSVD,RSVD,0x7c,0x00,0x00,0x00,0x00,0x00,EOT}},
|
|
|
|
{0xb, "Hardware monitor",
|
|
|
|
{0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,EOT},
|
|
|
|
{0x00,0x00,0x00,0x00,0x81,0x00,0x00,EOT}},
|
|
|
|
{0xc, "PECI, SST",
|
|
|
|
{0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe8,0xe9,0xea,0xec,
|
|
|
|
0xee,0xef,0xf1,0xf2,0xf3,0xfe,0xff,EOT},
|
|
|
|
{0x00,0x48,0x48,0x48,0x48,0x00,0x00,RSVD,0x00,0x00,
|
|
|
|
0x01,0x5a,0x48,0x50,0x10,0x00,0x00,EOT}},
|
|
|
|
{EOT}}},
|
2010-08-17 09:14:44 +02:00
|
|
|
{0xb35, "Nuvoton NCT5571D", {
|
|
|
|
{NOLDN, NULL,
|
|
|
|
{0x02,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,
|
|
|
|
0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,EOT},
|
|
|
|
{RSVD,0xb3,NANA,0xff,0x00,0x40,0x00,MISC,0xff,0x20,0x00,
|
|
|
|
0x00,0x7f,0x0a,0x08,0x00,MISC,EOT}},
|
|
|
|
{0x2, "COM1",
|
|
|
|
{0x30,0x60,0x61,0x70,0xf0,EOT},
|
|
|
|
{0x01,0x03,0xf8,0x04,0x00,EOT}},
|
|
|
|
{0x5, "Keyboard",
|
|
|
|
{0x30,0x60,0x61,0x62,0x63,0x70,0x72,0xf0,EOT},
|
|
|
|
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x83,EOT}},
|
|
|
|
{0x7, "GPIO 6, GPIO 8, GPIO 9",
|
|
|
|
{0x30,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,0xeb,0xec,0xed,
|
|
|
|
0xee,0xf4,0xf5,0xf6,0xf7,0xf8,EOT},
|
|
|
|
{0x18,0xef,MISC,0x00,0x00,0xff,MISC,0x00,0x00,RSVD,0x00,
|
|
|
|
0x00,0xff,MISC,0x00,0x00,0x00,EOT}},
|
|
|
|
{0x9, "GPIO 2, GPIO 3, GPIO 5",
|
|
|
|
{0x30,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe9,0xea,
|
|
|
|
0xeb,0xf4,0xf5,0xf6,0xf7,0xfe,EOT},
|
|
|
|
{0x05,0xff,MISC,0x00,0x00,0xff,MISC,0x00,0x00,0x00,0x00,
|
|
|
|
0x00,0xff,MISC,0x00,0x00,0x00,EOT}},
|
|
|
|
{0xa, "ACPI",
|
|
|
|
{0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xf2,
|
|
|
|
0xf3,0xf4,0xf6,0xf7,0xfe,0xff,EOT},
|
|
|
|
{0x01,0x00,0xff,0x00,0x00,0x02,0x1c,0x00,RSVD,0x00,0x7c,
|
|
|
|
0x00,0x00,0x00,0x00,0x00,0x30,EOT}},
|
|
|
|
{0xb, "Hardware monitor",
|
|
|
|
{0x30,0x60,0x61,0x70,0xe0,0xe1,0xe2,0xe3,0xf0,0xf5,EOT},
|
|
|
|
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc1,0x10,EOT}},
|
|
|
|
{0xc, "PECI",
|
|
|
|
{0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe8,0xe9,0xea,0xec,
|
|
|
|
0xee,0xef,0xf1,0xf2,0xf3,0xfe,0xff,EOT},
|
|
|
|
{0x00,0x48,0x48,0x48,0x48,0x00,0x00,0x00,RSVD,0x00,0x00,
|
|
|
|
0x01,0x5a,0x48,0x50,0x10,0x80,0x01,EOT}},
|
|
|
|
{0xd, "SUSLED",
|
|
|
|
{0xec,EOT},
|
|
|
|
{0x01,EOT}},
|
|
|
|
{0xf, "GPIO Push-Pull/OD Select",
|
|
|
|
{0xe0,0xe1,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xf0,0xf1,
|
|
|
|
0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,
|
|
|
|
0xfd,0xfe,0xff,EOT},
|
|
|
|
{RSVD,0xfd,RSVD,0xf7,0xcb,RSVD,0xff,0xff,0x00,MISC,MISC,
|
|
|
|
MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,
|
|
|
|
MISC,MISC,MISC,EOT}},
|
|
|
|
{EOT}}},
|
2007-10-04 20:34:36 +02:00
|
|
|
|
|
|
|
/* ID and rev */
|
2007-09-26 18:14:16 +02:00
|
|
|
{0x9771, "W83977F-A/G-A/AF-A/AG-A", {
|
|
|
|
{EOT}}},
|
2007-10-16 23:56:32 +02:00
|
|
|
{0x9777, "W83977AF", {
|
2010-05-14 18:40:55 +02:00
|
|
|
/*
|
|
|
|
* W83977AF as found on the Advantech PCM-5820. We weren't able
|
2007-10-16 23:56:32 +02:00
|
|
|
* to find a datasheet (so far) which lists the 0x77 revision,
|
|
|
|
* but the hardware is there in the wild, so detect it...
|
|
|
|
*/
|
|
|
|
{EOT}}},
|
2007-09-26 18:14:16 +02:00
|
|
|
{0x9773, "W83977TF", {
|
2007-10-16 02:34:03 +02:00
|
|
|
{NOLDN, NULL,
|
|
|
|
{0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x28,0x2a,0x2b,
|
|
|
|
0x2c,0x2d,0x2e,0x2f,EOT},
|
|
|
|
{0x97,0x73,0xff,0xfe,MISC,0x00,MISC,0x00,0x00,0x00,
|
|
|
|
0x00,RSVD,RSVD,RSVD,EOT}},
|
|
|
|
{0x0, "Floppy",
|
|
|
|
{0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,0xf2,0xf4,0xf5,
|
|
|
|
EOT},
|
|
|
|
{0x01,0x03,0xf0,0x06,0x02,0x0e,0x00,0xff,0x00,0x00,
|
|
|
|
EOT}},
|
|
|
|
{0x1, "Parallel port",
|
|
|
|
{0x30,0x60,0x61,0x70,0x74,0xf0,EOT},
|
|
|
|
{0x01,0x03,0x78,0x07,0x04,0x3f,EOT}},
|
|
|
|
{0x2, "COM1",
|
|
|
|
{0x30,0x60,0x61,0x70,0xf0,EOT},
|
|
|
|
{0x01,0x03,0xf8,0x04,0x00,EOT}},
|
|
|
|
{0x3, "COM2",
|
|
|
|
{0x30,0x60,0x61,0x70,0xf0,0xf1,EOT},
|
|
|
|
{0x01,0x02,0xf8,0x03,0x00,0x00,EOT}},
|
|
|
|
{0x5, "Keyboard / mouse",
|
|
|
|
{0x30,0x60,0x61,0x62,0x63,0x70,0x72,0xf0,EOT},
|
|
|
|
{0x01,0x00,0x60,0x00,0x64,0x01,0x0c,0x83,EOT}},
|
|
|
|
{0x7, "GPIO 1",
|
|
|
|
{0x30,0x60,0x61,0x62,0x63,0x64,0x65,0x70,0x72,0xe0,
|
|
|
|
0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xf1,EOT},
|
|
|
|
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
|
|
|
|
0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,EOT}},
|
|
|
|
{0x8, "GPIO 2",
|
|
|
|
{0x30,0x60,0x61,0x70,0x72,0xe8,0xe9,0xea,0xeb,0xec,
|
|
|
|
0xed,0xee,0xf0,0xf1,0xf2,0xf3,0xf4,EOT},
|
|
|
|
{0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,
|
|
|
|
0x01,0x01,0x00,RSVD,0x00,0x00,0x00,EOT}},
|
|
|
|
{0x9, "GPIO 3",
|
|
|
|
{0x30,0x60,0x61,0x62,0x63,0x64,0x65,0x70,0x72,0xe0,
|
|
|
|
0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xf1,EOT},
|
|
|
|
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
|
|
|
|
0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,EOT}},
|
|
|
|
{0xa, "ACPI",
|
|
|
|
{0x30,0x60,0x61,0x62,0x63,0x64,0x65,0x70,0xe0,0xe1,
|
2009-06-12 16:20:27 +02:00
|
|
|
0xe2,0xe3,0xe4,0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,
|
2007-10-16 02:34:03 +02:00
|
|
|
0xf7,0xfe,0xff,EOT},
|
|
|
|
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
|
|
NANA,MISC,RSVD,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
|
|
0x00,RSVD,RSVD,EOT}},
|
2007-09-26 18:14:16 +02:00
|
|
|
{EOT}}},
|
|
|
|
{0x9774, "W83977ATF", {
|
|
|
|
{EOT}}},
|
2007-10-04 20:34:36 +02:00
|
|
|
|
2010-12-12 15:40:29 +01:00
|
|
|
{0xb07, "W83527HG", { /* TODO: Not yet in sensors-detect */
|
2010-12-14 03:02:34 +01:00
|
|
|
{NOLDN, NULL,
|
2010-12-21 00:40:23 +01:00
|
|
|
{0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,
|
|
|
|
0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,EOT},
|
|
|
|
{0xB0,0x73,0xff,0x00,MISC,0x00,0x00,RSVD,0x50,0x00,
|
|
|
|
0x00,RSVD,0xe2,0x21,0x00,0x00,EOT}},
|
2010-12-14 03:02:34 +01:00
|
|
|
{0x5, "Keyboard",
|
|
|
|
{0x30,0x60,0x61,0x62,0x63,0x70,0x72,0xf0,EOT},
|
|
|
|
{0x01,0x00,0x60,0x00,0x64,0x01,0x0c,0x83,EOT}},
|
2010-12-21 00:40:23 +01:00
|
|
|
{0x8, "WDTO#, PLED",
|
2010-12-14 03:02:34 +01:00
|
|
|
{0x30,0xf5,0xf6,0xf7,EOT},
|
|
|
|
{0x00,0x00,0x00,0x00,EOT}},
|
|
|
|
{0x9, "GPIO 2, GPIO3, GPIO5",
|
|
|
|
{0x30,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe9,
|
|
|
|
0xf0,0xf1,0xf2,0xf3,0xf8,0xf9,0xfa,0xfe,EOT},
|
|
|
|
{0x00,0xff,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,
|
|
|
|
0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,EOT}},
|
|
|
|
{0xa, "ACPI",
|
|
|
|
{0x30,0x70,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,
|
2010-12-21 00:40:23 +01:00
|
|
|
0xe8,0xe9,0xf2,0xf3,0xf4,0xf6,0xf7,0xfe,EOT},
|
|
|
|
{0x00,0x00,0x01,0x00,0xff,0x08,0x00,0x00,0x1c,0x00,
|
|
|
|
RSVD,RSVD,0x7c,0x00,0x00,0x00,0x00,0x00,EOT}},
|
2010-12-14 03:02:34 +01:00
|
|
|
{0xb, "Hardware monitor",
|
2010-12-21 00:40:23 +01:00
|
|
|
{0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,EOT},
|
|
|
|
{0x00,0x00,0x00,0x00,0x81,RSVD,0x00,EOT}},
|
|
|
|
{0xc, "PECI",
|
|
|
|
{0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe8,0xe9,0xea,0xec,
|
|
|
|
0xfe,0xff,EOT},
|
|
|
|
{0x00,0x48,0x48,0x48,0x48,0x00,0x00,RSVD,0x00,0x00,
|
|
|
|
0x00,0x00,EOT}},
|
2010-12-12 15:40:29 +01:00
|
|
|
{EOT}}},
|
2007-10-04 20:34:36 +02:00
|
|
|
/* ID only */
|
2007-09-26 18:14:16 +02:00
|
|
|
{0x52, "W83627HF/F/HG/G", {
|
2007-10-05 23:58:03 +02:00
|
|
|
{NOLDN, NULL,
|
2008-10-14 18:34:38 +02:00
|
|
|
{0x02,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x28,0x29,
|
|
|
|
0x2a,0x2b,0x2c,0x2e,0x2f,EOT},
|
|
|
|
{0x00,0x52,NANA,0xff,0x00,MISC,0x00,0x00,0x00,0x00,
|
|
|
|
0x7c,0xc0,0x00,0x00,0x00,EOT}},
|
2007-10-05 23:58:03 +02:00
|
|
|
{0x0, "Floppy",
|
|
|
|
{0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,0xf2,0xf4,
|
|
|
|
0xf5,EOT},
|
|
|
|
{0x01,0x03,0xf0,0x06,0x02,0x0e,0x00,0xff,0x00,
|
|
|
|
0x00,EOT}},
|
|
|
|
{0x1, "Parallel port",
|
|
|
|
{0x30,0x60,0x61,0x70,0x74,0xf0,EOT},
|
|
|
|
{0x01,0x03,0x78,0x07,0x04,0x3f,EOT}},
|
|
|
|
{0x2, "COM1",
|
|
|
|
{0x30,0x60,0x61,0x70,0xf0,EOT},
|
|
|
|
{0x01,0x03,0xf8,0x04,0x00,EOT}},
|
|
|
|
{0x3, "COM2",
|
|
|
|
{0x30,0x60,0x61,0x70,0xf0,0xf1,EOT},
|
|
|
|
{0x01,0x02,0xf8,0x03,0x00,0x00,EOT}},
|
|
|
|
{0x5, "Keyboard",
|
|
|
|
{0x30,0x60,0x61,0x62,0x63,0x70,0x72,0xf0,EOT},
|
|
|
|
{0x01,0x00,0x60,0x00,0x64,0x01,0x0c,0x80,EOT}},
|
|
|
|
{0x6, "Consumer IR",
|
|
|
|
{0x30,0x60,0x61,0x70,EOT},
|
|
|
|
{0x00,0x00,0x00,0x00,EOT}},
|
|
|
|
{0x7, "Game port, MIDI port, GPIO 1",
|
|
|
|
{0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,EOT},
|
|
|
|
{0x00,0x02,0x01,0x03,0x30,0x09,0xff,0x00,0x00,EOT}},
|
2009-06-26 17:25:04 +02:00
|
|
|
{0x8, "GPIO 2, watchdog timer",
|
2007-10-05 23:58:03 +02:00
|
|
|
{0x30,0xf0,0xf1,0xf2,0xf3,0xf5,0xf6,0xf6,0xf7,EOT},
|
|
|
|
{0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,EOT}},
|
|
|
|
{0x9, "GPIO 3",
|
|
|
|
{0x30,0xf0,0xf1,0xf2,0xf3,EOT},
|
|
|
|
{0x00,0xff,0x00,0x00,0x00,EOT}},
|
|
|
|
{0xa, "ACPI",
|
|
|
|
{0x30,0x70,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,
|
|
|
|
0xf0,0xf1,0xf3,0xf4,0xf6,0xf7,0xf9,0xfe,0xff,EOT},
|
|
|
|
{0x00,0x00,0x00,0x00,NANA,NANA,0x00,0x00,0x00,0x00,
|
|
|
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,EOT}},
|
|
|
|
{0xb, "Hardware monitor",
|
|
|
|
{0x30,0x60,0x61,0x70,0xf0,EOT},
|
|
|
|
{0x00,0x00,0x00,0x00,0x00,EOT}},
|
2007-09-26 18:14:16 +02:00
|
|
|
{EOT}}},
|
2007-10-18 01:37:36 +02:00
|
|
|
{0x68, "W83697SF/UF/UG", {
|
|
|
|
/* ID: 0x68 (for W83697SF/UF/UG)
|
|
|
|
* Rev: 0x1X (for W83697SF)
|
|
|
|
* 0x0X (for W83697SF) -- sic!
|
|
|
|
* 0x1X (for W83697UF/UG)
|
|
|
|
*/
|
|
|
|
{NOLDN, NULL,
|
|
|
|
{0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x28,0x29,0x2a,
|
|
|
|
0x2b,0x2c,EOT},
|
|
|
|
{0x68,NANA,0xef,0xfe,MISC,0x00,0x00,0x00,0x00,MISC,
|
|
|
|
0x00,0x30,EOT}},
|
|
|
|
{0x0, "Floppy",
|
|
|
|
{0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,0xf2,0xf4,0xf5,
|
|
|
|
EOT},
|
|
|
|
{0x01,0x03,0xf0,0x06,0x02,0x0e,0x00,0xff,0x00,0x00,
|
|
|
|
EOT}},
|
|
|
|
{0x1, "Parallel port",
|
|
|
|
{0x30,0x60,0x61,0x70,0x74,0xf0,EOT},
|
|
|
|
{0x01,0x03,0x78,0x07,0x03,0x3f,EOT}},
|
|
|
|
{0x2, "COM1",
|
|
|
|
{0x30,0x60,0x61,0x70,0xf0,EOT},
|
|
|
|
{0x01,0x03,0xf8,0x04,0x00,EOT}},
|
|
|
|
{0x3, "COM2",
|
|
|
|
{0x30,0x60,0x61,0x70,0xf0,0xf1,EOT},
|
|
|
|
{0x01,0x02,0xf8,0x03,0x00,0x00,EOT}},
|
|
|
|
{0x7, "Game port, GPIO 1",
|
|
|
|
{0x30,0x60,0x61,0x62,0x63,0xf0,0xf1,0xf2,EOT},
|
|
|
|
{0x00,0x02,0x01,0x00,0x00,0xff,0x00,0x00,EOT}},
|
|
|
|
{0x8, "MIDI port, GPIO 5",
|
|
|
|
{0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,0xf3,
|
|
|
|
0xf4,0xf5,EOT},
|
|
|
|
{0x00,0x03,0x30,0x00,0x00,0x09,0xff,0x00,0x00,0x00,
|
|
|
|
0x00,0x00,EOT}},
|
|
|
|
{0x9, "GPIO 2, GPIO 3, GPIO 4",
|
|
|
|
{0x30,0x60,0x61,0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,
|
|
|
|
0xf7,0xf8,EOT},
|
|
|
|
{0x00,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,
|
|
|
|
0x00,0x00,EOT}},
|
|
|
|
{0xa, "ACPI",
|
|
|
|
{0x30,0x70,0xf0,0xf1,0xf2,0xf3,0xf4,0xf6,0xf7,0xf9,
|
|
|
|
0xfa,EOT},
|
|
|
|
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
|
|
0x00,EOT}},
|
|
|
|
{0xb, "PWM",
|
|
|
|
{0x30,0x60,0x61,EOT},
|
|
|
|
{0x00,0x00,0x00,EOT}},
|
|
|
|
{0xc, "Smart card",
|
|
|
|
{0x30,0x60,0x61,0x70,0xf0,EOT},
|
|
|
|
{0x00,0x00,0x00,0x00,0x00,EOT}},
|
|
|
|
{0xd, "URC, GPIO 6",
|
|
|
|
{0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,0xf3,
|
|
|
|
0xf4,EOT},
|
|
|
|
{0x00,0x03,0xe8,0x00,0x00,0x00,0x00,0xff,0x00,0x00,
|
|
|
|
0x00,EOT}},
|
|
|
|
{0xe, "URD, GPIO 7",
|
|
|
|
{0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,0xf3,
|
|
|
|
EOT},
|
|
|
|
{0x00,0x02,0xe8,0x00,0x00,0x00,0x00,0xff,0x00,0x00,
|
|
|
|
EOT}},
|
|
|
|
{0xf, "GPIO 8",
|
|
|
|
{0x30,0x60,0x61,0xf0,0xf1,0xf2,EOT},
|
|
|
|
{0x00,0x00,0x00,0xff,0x00,0x00,EOT}},
|
2007-10-16 20:15:25 +02:00
|
|
|
{EOT}}},
|
2008-01-19 10:40:17 +01:00
|
|
|
{0x88, "W83627EHF/EF/EHG/EG", {
|
|
|
|
/*
|
|
|
|
* As per datasheet the ID should be 0x886? here.
|
|
|
|
* Not mentioned in the datasheet, but sensors-detect says
|
|
|
|
* 0x8853 is also possible. Also, the ASUS A8V-E Deluxe
|
|
|
|
* (W83627EHF) has an ID of 0x8854 (verified on hardware).
|
|
|
|
* So we now assume all 0x88?? IDs to mean W83627EHF/EF/EHG/EG.
|
|
|
|
*/
|
|
|
|
{NOLDN, NULL,
|
|
|
|
{0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,
|
|
|
|
0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,EOT},
|
|
|
|
{0x88,MISC,0xff,0x00,MISC,0x00,MISC,RSVD,0x50,
|
|
|
|
0x04,0x00,RSVD,0x00,0x21,0x00,0x00,EOT}},
|
|
|
|
{0x0, "Floppy",
|
|
|
|
{0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,0xf2,0xf4,
|
|
|
|
0xf5,EOT},
|
|
|
|
{0x01,0x03,0xf0,0x06,0x02,0x8e,0x00,0xff,0x00,
|
|
|
|
0x00,EOT}},
|
|
|
|
{0x1, "Parallel port",
|
|
|
|
{0x30,0x60,0x61,0x70,0x74,0xf0,EOT},
|
|
|
|
{0x01,0x03,0x78,0x07,0x04,0x3f,EOT}},
|
|
|
|
{0x2, "COM1",
|
|
|
|
{0x30,0x60,0x61,0x70,0xf0,EOT},
|
|
|
|
{0x01,0x03,0xf8,0x04,0x00,EOT}},
|
|
|
|
{0x3, "COM2",
|
|
|
|
{0x30,0x60,0x61,0x70,0xf0,0xf1,EOT},
|
|
|
|
{0x01,0x02,0xf8,0x03,0x00,0x00,EOT}},
|
|
|
|
{0x5, "Keyboard",
|
|
|
|
{0x30,0x60,0x61,0x62,0x63,0x70,0x72,0xf0,EOT},
|
|
|
|
{0x01,0x00,0x60,0x00,0x64,0x01,0x0c,0x83,EOT}},
|
|
|
|
{0x6, "Serial flash interface",
|
|
|
|
{0x30,0x62,0x63,EOT},
|
|
|
|
{0x00,0x00,0x00,EOT}},
|
|
|
|
{0x7, "GPIO 1, GPIO 6, game port, MIDI port",
|
|
|
|
{0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,0xf3,
|
|
|
|
0xf4,0xf5,0xf6,0xf7,EOT},
|
|
|
|
{0x00,0x02,0x01,0x03,0x30,0x09,0xff,0x00,0x00,0x00,
|
|
|
|
0xff,0x00,0x00,0x00,EOT}},
|
|
|
|
{0x8, "WDTO#, PLED",
|
|
|
|
{0x30,0xf5,0xf6,0xf7,EOT},
|
|
|
|
{0x00,0x00,0x00,0x00,EOT}},
|
|
|
|
{0x9, "GPIO 2, GPIO 3, GPIO 4, GPIO 5, SUSLED",
|
|
|
|
{0x30,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xf0,0xf1,0xf2,
|
|
|
|
0xf3,0xf4,0xf5,0xf6,0xf7,EOT},
|
|
|
|
{0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,
|
|
|
|
0x00,0xff,0x00,0x00,0x00,EOT}},
|
|
|
|
{0xa, "ACPI",
|
|
|
|
{0x30,0x70,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,
|
|
|
|
0xe8,0xf2,0xf3,0xf4,0xf6,0xf7,EOT},
|
|
|
|
{0x00,0x00,0x01,0x00,0xff,0x08,0x00,RSVD,0x00,0x00,
|
|
|
|
RSVD,0x7c,0x00,0x00,0x00,0x00,EOT}},
|
|
|
|
{0xb, "Hardware monitor",
|
|
|
|
{0x30,0x60,0x61,0x70,0xf0,0xf1,EOT},
|
|
|
|
{0x00,0x00,0x00,0x00,0xc1,0x00,EOT}},
|
|
|
|
{EOT}}},
|
2007-10-04 20:34:36 +02:00
|
|
|
|
|
|
|
/* ID[3..0] */
|
2007-09-26 18:14:16 +02:00
|
|
|
{0xa, "W83877F", {
|
|
|
|
{EOT}}},
|
2010-01-31 19:48:34 +01:00
|
|
|
{0xb, "W83877AF", {
|
2010-02-04 01:55:06 +01:00
|
|
|
{NOLDN, NULL,
|
|
|
|
{0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
|
|
|
|
0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,
|
|
|
|
0x14,0x15,0x16,0x17,0x1e,0x20,0x21,0x22,0x23,0x24,
|
|
|
|
0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,EOT},
|
|
|
|
{0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x0a,
|
|
|
|
0x1f,0x0c,0x28,0xa3,RSVD,RSVD,0x00,0x00,0x00,0x00,
|
|
|
|
0x00,0x00,0x0e,0x00,MISC,MISC,MISC,MISC,MISC,MISC,
|
|
|
|
MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,EOT}},
|
2010-01-31 19:48:34 +01:00
|
|
|
{EOT}}},
|
2007-09-26 18:14:16 +02:00
|
|
|
{0xc, "W83877TF", {
|
|
|
|
{EOT}}},
|
2010-01-31 19:48:34 +01:00
|
|
|
{0xd, "W83877ATF/ATG", {
|
2007-09-25 01:24:46 +02:00
|
|
|
{EOT}}},
|
2007-09-19 17:52:23 +02:00
|
|
|
{EOT}
|
|
|
|
};
|
|
|
|
|
2008-12-01 15:18:57 +01:00
|
|
|
static const struct superio_registers hwm_table[] = {
|
|
|
|
{0x828, "W83627THF/THG", {
|
|
|
|
{NOLDN, NULL,
|
|
|
|
{0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
|
|
|
|
0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,
|
|
|
|
0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,
|
|
|
|
0x1e,0x1f,
|
|
|
|
0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,
|
|
|
|
0x2b,0x2c,0x2d,0x2e,0x2f,0x30,0x31,0x32,0x33,0x34,
|
|
|
|
0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,
|
|
|
|
0x3f,
|
|
|
|
0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,
|
|
|
|
0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,EOT},
|
|
|
|
{RSVD,0xff,RSVD,0xff,0x00,0x00,0x00,0x00,0x01,0x01,
|
|
|
|
0x01,0x01,0x3c,0x3c,0x0a,0x0a,RSVD,0xff,0x00,0x00,
|
|
|
|
0x00,0x01,0x01,0x3c,0x43,RSVD,0xff,0xff,RSVD,RSVD,
|
|
|
|
NANA,NANA,
|
|
|
|
NANA,NANA,NANA,NANA,NANA,RSVD,RSVD,NANA,NANA,NANA,
|
|
|
|
NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
|
|
|
|
RSVD,RSVD,RSVD,RSVD,NANA,NANA,NANA,NANA,NANA,RSVD,
|
|
|
|
RSVD,
|
|
|
|
0x03,0x00,0x00,0xfe,0xff,RSVD,RSVD,0x5f,NANA,0x03,
|
|
|
|
RSVD,0x44,0x18,0x15,0x80,0x5c,EOT}},
|
|
|
|
{0x0, "Bank 0",
|
|
|
|
{0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,
|
|
|
|
0x5d,0x5e,0x5f,EOT},
|
|
|
|
{NANA,NANA,NANA,NANA,NANA,NANA,0x00,0x80,0x90,0x70,
|
|
|
|
0x00,RSVD,RSVD,EOT}},
|
|
|
|
{0x1, "Bank 1",
|
|
|
|
{0x50,0x51,0x52,0x53,0x54,0x55,0x56,EOT},
|
|
|
|
{NANA,NANA,0x00,0x4b,0x00,0x50,0x00,EOT}},
|
|
|
|
{0x2, "Bank 2",
|
|
|
|
{0x50,0x51,0x52,0x53,0x54,0x55,0x56,EOT},
|
|
|
|
{NANA,NANA,0x00,0x4b,0x00,0x50,0x00,EOT}},
|
|
|
|
{0x4, "Bank 4",
|
|
|
|
{0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x59,0x5a,
|
|
|
|
0x5b,EOT},
|
|
|
|
{0x00,0xff,RSVD,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
|
|
0x00,EOT}},
|
|
|
|
{0x5, "Bank 5",
|
|
|
|
{0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,EOT},
|
|
|
|
{NANA,NANA,RSVD,RSVD,NANA,NANA,NANA,NANA,EOT}},
|
|
|
|
{0x6, "Bank 6",
|
|
|
|
{0x50,EOT},
|
|
|
|
{RSVD,EOT}},
|
|
|
|
{EOT}}},
|
2013-04-25 15:00:15 +02:00
|
|
|
{0xb07, "W83627DHG-P/-PT", {
|
|
|
|
{NOLDN, NULL,
|
|
|
|
{0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
|
|
|
|
0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,
|
|
|
|
0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,
|
|
|
|
0x1e,0x1f,EOT},
|
|
|
|
{0x04,0xff,0x04,NANA,0x01,0x00,0x00,0x00,0x01,0x01,
|
|
|
|
0x01,0x01,0x3c,0x3c,0x0a,0x0a,0x04,0xff,0x00,0x00,
|
|
|
|
0x00,0x01,0x01,0x3c,0x43,RSVD,RSVD,RSVD,RSVD,RSVD,
|
|
|
|
RSVD,RSVD,EOT}},
|
|
|
|
{NOLDN, NULL,
|
|
|
|
{0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,
|
|
|
|
0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,0x30,0x31,0x32,0x33,
|
|
|
|
0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,
|
|
|
|
0x3e,0x3f,EOT},
|
|
|
|
{NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
|
|
|
|
NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
|
|
|
|
NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
|
|
|
|
NANA,NANA,EOT}},
|
|
|
|
{NOLDN, NULL,
|
|
|
|
{0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,
|
|
|
|
0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,EOT},
|
|
|
|
{0x03,0x00,0x00,0xff,0xff,0x00,0x3f,0x55,0x2d,0x00,
|
|
|
|
0x00,0x44,0x10,0x95,0x80,0xa3,EOT}},
|
|
|
|
{0x0, "Bank 0",
|
|
|
|
{0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,
|
|
|
|
0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,0x60,0x61,0x62,0x63,
|
|
|
|
0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,
|
|
|
|
0x6e,0x6f,EOT},
|
|
|
|
{RSVD,RSVD,RSVD,RSVD,RSVD,RSVD,0x00,0x80,0xc1,0x70,
|
|
|
|
RSVD,RSVD,RSVD,0x04,0x04,RSVD,0x04,NANA,0x40,0x00,
|
|
|
|
0x01,0x01,0x3c,0xff,0x01,0xff,0x01,0xff,0xff,0xff,
|
|
|
|
0xff,0x00,EOT}},
|
|
|
|
{0x0, "Bank 0 [...]",
|
|
|
|
{0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,
|
|
|
|
0x7a,0x7b,0x7c,0x7d,EOT},
|
|
|
|
{0x00,0x00,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x00,
|
|
|
|
0x00,0x00,0x00,NANA,EOT}},
|
|
|
|
{0x1, "Bank 1",
|
|
|
|
{0x50,0x51,0x52,0x53,0x54,0x55,0x56, 0x58,0x59,
|
|
|
|
0x5a,0x5b,0x5c,0x5d,0x5e, EOT},
|
|
|
|
{NANA,NANA,0x00,0x4b,0x00,0x50,0x00, 0x00,0x00,
|
|
|
|
0x00,0x00,0x00,0x00,0x0e, EOT}},
|
|
|
|
{0x2, "Bank 2",
|
|
|
|
{0x50,0x51,0x52,0x53,0x54,0x55,0x56, EOT},
|
|
|
|
{NANA,NANA,0x00,0x4b,0x00,0x50,0x00, EOT}},
|
|
|
|
{0x4, "Bank 4",
|
|
|
|
{0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,
|
|
|
|
0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,EOT},
|
|
|
|
{0x00,0x13,RSVD,0x00,0x00,0x00,0x00,RSVD,RSVD,0x00,
|
|
|
|
0x00,0x00,RSVD,RSVD,RSVD,RSVD,EOT}},
|
|
|
|
{0x5, "Bank 5",
|
|
|
|
{0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,
|
|
|
|
0x5a,0x5b,0x5c,EOT},
|
|
|
|
{NANA,NANA,RSVD,NANA,NANA,NANA,NANA,NANA,RSVD,RSVD,
|
|
|
|
RSVD,RSVD,NANA,EOT}},
|
|
|
|
{0x6, "Bank 6",
|
|
|
|
{0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,
|
|
|
|
0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,EOT},
|
|
|
|
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
|
|
0x0d,0xff,0xff,0xff,0xff,0xff,EOT}},
|
|
|
|
{EOT}}},
|
2008-12-01 15:18:57 +01:00
|
|
|
{EOT}
|
|
|
|
};
|
|
|
|
|
2007-09-26 18:14:16 +02:00
|
|
|
static void enter_conf_mode_winbond_88(uint16_t port)
|
2007-09-19 17:52:23 +02:00
|
|
|
{
|
2008-10-28 23:13:38 +01:00
|
|
|
OUTB(0x88, port);
|
2007-09-26 18:14:16 +02:00
|
|
|
}
|
2007-09-19 17:52:23 +02:00
|
|
|
|
2007-09-26 18:14:16 +02:00
|
|
|
static void enter_conf_mode_winbond_89(uint16_t port)
|
|
|
|
{
|
2008-10-28 23:13:38 +01:00
|
|
|
OUTB(0x89, port);
|
2007-09-26 18:14:16 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
static void enter_conf_mode_winbond_86(uint16_t port)
|
|
|
|
{
|
2008-10-28 23:13:38 +01:00
|
|
|
OUTB(0x86, port);
|
|
|
|
OUTB(0x86, port);
|
2007-09-26 18:14:16 +02:00
|
|
|
}
|
|
|
|
|
2010-12-30 17:57:58 +01:00
|
|
|
static int chip_found_at_port;
|
|
|
|
|
2007-11-29 03:43:50 +01:00
|
|
|
static void probe_idregs_winbond_helper(const char *init, uint16_t port)
|
2007-09-26 18:14:16 +02:00
|
|
|
{
|
2008-12-01 15:18:57 +01:00
|
|
|
uint16_t id, hwmport;
|
2007-09-26 18:14:16 +02:00
|
|
|
uint8_t devid, rev, olddevid;
|
2007-09-19 17:52:23 +02:00
|
|
|
|
2007-10-04 17:23:38 +02:00
|
|
|
probing_for("Winbond", init, port);
|
|
|
|
|
2007-09-19 17:52:23 +02:00
|
|
|
devid = regval(port, DEVICE_ID_REG);
|
|
|
|
rev = regval(port, DEVICE_REV_REG);
|
2007-10-04 17:23:38 +02:00
|
|
|
olddevid = regval(port, DEVICE_ID_REG_OLD) & 0x0f;
|
2007-09-19 17:52:23 +02:00
|
|
|
|
2008-10-19 23:03:41 +02:00
|
|
|
if (devid == 0x52 && (rev & 0xf0) != 0xf0)
|
|
|
|
id = devid; /* ID only */
|
|
|
|
else if (devid == 0x68 || devid == 0x88)
|
2007-09-26 18:14:16 +02:00
|
|
|
id = devid; /* ID only */
|
2007-10-15 17:46:59 +02:00
|
|
|
else if ((devid == 0x97) && ((rev & 0xf0) == 0x70))
|
2007-09-26 18:14:16 +02:00
|
|
|
id = (devid << 8) | rev; /* ID and rev */
|
2007-09-25 01:24:46 +02:00
|
|
|
else
|
2008-10-19 23:03:41 +02:00
|
|
|
id = (devid << 4) | ((rev & 0xf0) >> 4); /* ID and rev[7..4] */
|
2007-09-26 18:14:16 +02:00
|
|
|
|
2010-01-31 19:48:34 +01:00
|
|
|
if (olddevid >= 0x0a && olddevid <= 0x0d)
|
2007-09-26 18:14:16 +02:00
|
|
|
id = olddevid & 0x0f; /* ID[3..0] */
|
2007-09-19 17:52:23 +02:00
|
|
|
|
|
|
|
if (superio_unknown(reg_table, id)) {
|
2007-10-04 17:23:38 +02:00
|
|
|
if (verbose)
|
|
|
|
printf(NOTFOUND "id/oldid=0x%02x/0x%02x, rev=0x%02x\n",
|
|
|
|
devid, olddevid, rev);
|
2007-09-19 17:52:23 +02:00
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2010-01-31 19:48:34 +01:00
|
|
|
if (olddevid >= 0x0a && olddevid <= 0x0d)
|
2007-09-26 18:14:16 +02:00
|
|
|
printf("Found Winbond %s (id=0x%02x) at 0x%x\n",
|
|
|
|
get_superio_name(reg_table, id), olddevid, port);
|
|
|
|
else
|
|
|
|
printf("Found Winbond %s (id=0x%02x, rev=0x%02x) at 0x%x\n",
|
|
|
|
get_superio_name(reg_table, id), devid, rev, port);
|
2007-10-07 22:01:23 +02:00
|
|
|
chip_found = 1;
|
2010-12-30 17:57:58 +01:00
|
|
|
chip_found_at_port = 1;
|
2007-09-19 17:52:23 +02:00
|
|
|
|
2008-12-01 15:18:57 +01:00
|
|
|
dump_superio("Winbond", reg_table, port, id, LDN_SEL);
|
|
|
|
|
|
|
|
if (extra_dump) {
|
|
|
|
regwrite(port, LDN_SEL, 0x0b); /* Select LDN 0xb (HWM). */
|
|
|
|
|
|
|
|
if ((regval(port, 0x30) & (1 << 0)) != (1 << 0)) {
|
|
|
|
printf("Hardware Monitor disabled or does not exist.\n");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Get HWM base address (stored in LDN 0xb, index 0x60/0x61). */
|
|
|
|
hwmport = regval(port, 0x60) << 8;
|
|
|
|
hwmport |= regval(port, 0x61);
|
|
|
|
|
|
|
|
/* HWM address register = HWM base address + 5. */
|
|
|
|
hwmport += 5;
|
|
|
|
|
|
|
|
printf("Hardware monitor (0x%04x)\n", hwmport);
|
|
|
|
dump_superio("Winbond-HWM", hwm_table, hwmport, id,
|
|
|
|
WINBOND_HWM_SEL);
|
|
|
|
}
|
2007-09-26 18:14:16 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
void probe_idregs_winbond(uint16_t port)
|
|
|
|
{
|
2010-12-30 17:57:58 +01:00
|
|
|
chip_found_at_port = 0;
|
|
|
|
|
2007-09-26 18:14:16 +02:00
|
|
|
enter_conf_mode_winbond_88(port);
|
2007-09-28 17:45:43 +02:00
|
|
|
probe_idregs_winbond_helper("(init=0x88) ", port);
|
2007-09-26 18:14:16 +02:00
|
|
|
exit_conf_mode_winbond_fintek_ite_8787(port);
|
2011-06-09 20:56:29 +02:00
|
|
|
if (chip_found_at_port)
|
|
|
|
return;
|
2007-09-26 18:14:16 +02:00
|
|
|
|
|
|
|
enter_conf_mode_winbond_89(port);
|
2007-09-28 17:45:43 +02:00
|
|
|
probe_idregs_winbond_helper("(init=0x89) ", port);
|
2007-09-26 18:14:16 +02:00
|
|
|
exit_conf_mode_winbond_fintek_ite_8787(port);
|
2011-06-09 20:56:29 +02:00
|
|
|
if (chip_found_at_port)
|
|
|
|
return;
|
2007-09-19 17:52:23 +02:00
|
|
|
|
2007-09-26 18:14:16 +02:00
|
|
|
enter_conf_mode_winbond_86(port);
|
2007-09-28 17:45:43 +02:00
|
|
|
probe_idregs_winbond_helper("(init=0x86,0x86) ", port);
|
|
|
|
exit_conf_mode_winbond_fintek_ite_8787(port);
|
2011-06-09 20:56:29 +02:00
|
|
|
if (chip_found_at_port)
|
|
|
|
return;
|
2007-09-28 17:45:43 +02:00
|
|
|
|
|
|
|
enter_conf_mode_winbond_fintek_ite_8787(port);
|
|
|
|
probe_idregs_winbond_helper("(init=0x87,0x87) ", port);
|
2007-09-21 01:37:56 +02:00
|
|
|
exit_conf_mode_winbond_fintek_ite_8787(port);
|
2011-06-09 20:56:29 +02:00
|
|
|
if (chip_found_at_port)
|
|
|
|
return;
|
2007-09-19 17:52:23 +02:00
|
|
|
}
|
2008-01-15 23:30:55 +01:00
|
|
|
|
|
|
|
void print_winbond_chips(void)
|
|
|
|
{
|
|
|
|
print_vendor_chips("Winbond", reg_table);
|
2008-12-01 15:18:57 +01:00
|
|
|
print_vendor_chips("Winbond-HWM", hwm_table);
|
2008-01-15 23:30:55 +01:00
|
|
|
}
|