From 75439de2d9c5a1c2a043780d88e8237d94184cc1 Mon Sep 17 00:00:00 2001
From: Angel Pons <th3fanbus@gmail.com>
Date: Tue, 9 Feb 2021 16:19:08 +0100
Subject: util/superiotool: Add ITE IT8616E/IT8656E support
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Datasheet is not publicly available. Derive which registers to dump from
IT8625E, since there are mainboards that can use either chip depending
on BOM configuration. Default values are taken from an HP 280 G2 running
a coreboot build that does not configure the Super I/O.

Change-Id: Icc8c56e9cd19e940e85176ac51b8ef978275eb71
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/50457
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Michael Niewöhner <foss@mniewoehner.de>
---
 util/superiotool/ite.c | 38 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)

(limited to 'util')

diff --git a/util/superiotool/ite.c b/util/superiotool/ite.c
index 074d320a51..9b29ceb1e9 100644
--- a/util/superiotool/ite.c
+++ b/util/superiotool/ite.c
@@ -402,6 +402,44 @@ static const struct superio_registers reg_table[] = {
 			{0x30,0x60,0x61,0x70,0xf0,EOT},
 			{0x00,0x03,0x10,0x0b,0x06,EOT}},
 		{EOT}}},
+	{0x8616, "IT8616E/IT8656E", {
+		/* Derived from IT8625E, defaults dumped from hardware */
+		{NOLDN, NULL,
+			{0x20,0x21,0x22,0x23,0x24,EOT},
+			{0x86,0x16,MISC,0x40,0x00,EOT}},
+		{0x3, "Parallel port (unusable)",
+			{0x30,0x60,0x61,0x62,0x63,0x70,0x71,0x72,0x73,0x74,0xf0,EOT},
+			{0x00,0x03,0x78,0x07,0x78,0x07,0x02,0x00,0x00,0x04,0x0b,EOT}},
+		{0x4, "Environment controller",
+			{0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,
+			 0xf3,0xf4,0xf5,0xf6,0xf9,0xfa,0xfb,0xfc,0xfd,EOT},
+			{0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,
+			 0x00,0xe0,0x00,NANA,0x48,0x00,0x00,0x00,0x40,EOT}},
+		{0x5, "Keyboard",
+			{0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
+			{0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x48,EOT}},
+		{0x6, "Mouse",
+			{0x30,0x70,0x71,0xf0,EOT},
+			{0x00,0x0c,0x02,0x00,EOT}},
+		{0x7, "GPIO",
+			{0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x60,
+			 0x61,0x62,0x63,0x70,0x71,0x72,0x73,0x74,0xb0,0xb1,
+			 0xb2,0xb3,0xb4,0xb5,0xb8,0xba,0xbb,0xbc,0xbd,0xc0,
+			 0xc1,0xc2,0xc3,0xc4,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,
+			 0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,
+			 0xd8,0xd9,0xe0,0xe1,0xe2,0xe3,0xe4,0xec,0xf0,0xf1,
+			 0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,EOT},
+			{0x00,0xf3,0x00,0x00,0x00,0x01,0x48,0x01,0x00,0x00,
+			 0x00,0x00,0x00,0x00,0x00,MISC,0x38,0x00,0x00,0x00,
+			 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x03,0x01,
+			 0x00,0x00,0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,
+			 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x00,0x00,
+			 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+			 0x00,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,EOT}},
+		{0xa, "Consumer IR",
+			{0x30,0x60,0x61,0x70,0xf0,EOT},
+			{0x00,0x03,0x10,0x0b,0x06,EOT}},
+		{EOT}}},
 	{0x8623, "IT8623E", {
 		/* Defaults are not specified as no datasheet available */
 		{NOLDN, NULL,
-- 
cgit v1.2.3