summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNico Huber <nico.huber@secunet.com>2016-09-30 11:51:04 +0200
committerNico Huber <nico.h@gmx.de>2016-12-07 20:01:50 +0100
commit21707cc29d58237b9311c9e00d176867e0a16fd0 (patch)
tree3d419ca10e476cb9d258ea3d2e0648f91fb9d479
parent6167365530e0b8b2369077cf599a66b64bb07871 (diff)
sio/acpi: Add more magic bytes to ENTER/EXIT_CONFIG_MODE
ITE super-i/o chips need a fourth byte and have a special register to exit config mode. Change-Id: Ic40873649d567b87d3a937f2bf068649e67715de Signed-off-by: Nico Huber <nico.huber@secunet.com> Reviewed-on: https://review.coreboot.org/17286 Tested-by: build bot (Jenkins) Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
-rw-r--r--src/ec/kontron/it8516e/acpi/ec.asl3
-rw-r--r--src/superio/acpi/pnp_config.asl10
-rw-r--r--src/superio/winbond/w83627dhg/acpi/superio.asl3
3 files changed, 16 insertions, 0 deletions
diff --git a/src/ec/kontron/it8516e/acpi/ec.asl b/src/ec/kontron/it8516e/acpi/ec.asl
index 539a5ea0a8..66ae001f0f 100644
--- a/src/ec/kontron/it8516e/acpi/ec.asl
+++ b/src/ec/kontron/it8516e/acpi/ec.asl
@@ -81,7 +81,10 @@ Device(IT8516E_EC_DEV) {
#undef PNP_ENTER_MAGIC_1ST
#undef PNP_ENTER_MAGIC_2ND
#undef PNP_ENTER_MAGIC_3RD
+ #undef PNP_ENTER_MAGIC_4TH
#undef PNP_EXIT_MAGIC_1ST
+ #undef PNP_EXIT_SPECIAL_REG
+ #undef PNP_EXIT_SPECIAL_VAL
#include <superio/acpi/pnp_config.asl>
Method (_PSC)
diff --git a/src/superio/acpi/pnp_config.asl b/src/superio/acpi/pnp_config.asl
index a1347cf85b..a1da4c69f0 100644
--- a/src/superio/acpi/pnp_config.asl
+++ b/src/superio/acpi/pnp_config.asl
@@ -24,8 +24,12 @@
* used to enter config mode.
* PNP_ENTER_MAGIC_3RD If defined, specifies the third magic byte
* used to enter config mode.
+ * PNP_ENTER_MAGIC_4TH If defined, specifies the fourth magic byte
+ * used to enter config mode.
* PNP_EXIT_MAGIC_1ST If defined, specifies the first magic byte
* used to exit config mode.
+ * PNP_EXIT_SPECIAL_REG If defined, specifies a special register plus
+ * PNP_EXIT_SPECIAL_VAL a value to be written there to exit config mode.
*/
@@ -50,6 +54,9 @@ Method (ENTER_CONFIG_MODE, 1)
Store (PNP_ENTER_MAGIC_2ND, PNP_ADDR_REG)
#ifdef PNP_ENTER_MAGIC_3RD
Store (PNP_ENTER_MAGIC_3RD, PNP_ADDR_REG)
+#ifdef PNP_ENTER_MAGIC_4TH
+ Store (PNP_ENTER_MAGIC_4TH, PNP_ADDR_REG)
+#endif
#endif
#endif
#endif
@@ -67,6 +74,9 @@ Method (EXIT_CONFIG_MODE)
#ifdef PNP_EXIT_MAGIC_1ST
Store (PNP_EXIT_MAGIC_1ST, PNP_ADDR_REG)
#endif
+#if defined(PNP_EXIT_SPECIAL_REG) && defined(PNP_EXIT_SPECIAL_VAL)
+ Store (PNP_EXIT_SPECIAL_VAL, PNP_EXIT_SPECIAL_REG)
+#endif
Release (CONFIG_MODE_MUTEX)
}
diff --git a/src/superio/winbond/w83627dhg/acpi/superio.asl b/src/superio/winbond/w83627dhg/acpi/superio.asl
index e4d15dcc25..301ee94230 100644
--- a/src/superio/winbond/w83627dhg/acpi/superio.asl
+++ b/src/superio/winbond/w83627dhg/acpi/superio.asl
@@ -113,7 +113,10 @@ Device(SUPERIO_DEV) {
#undef PNP_ENTER_MAGIC_1ST
#undef PNP_ENTER_MAGIC_2ND
#undef PNP_ENTER_MAGIC_3RD
+ #undef PNP_ENTER_MAGIC_4TH
#undef PNP_EXIT_MAGIC_1ST
+ #undef PNP_EXIT_SPECIAL_REG
+ #undef PNP_EXIT_SPECIAL_VAL
#define PNP_ENTER_MAGIC_1ST 0x87
#define PNP_ENTER_MAGIC_2ND 0x87
#define PNP_EXIT_MAGIC_1ST 0xaa