From 21707cc29d58237b9311c9e00d176867e0a16fd0 Mon Sep 17 00:00:00 2001 From: Nico Huber Date: Fri, 30 Sep 2016 11:51:04 +0200 Subject: 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 Reviewed-on: https://review.coreboot.org/17286 Tested-by: build bot (Jenkins) Reviewed-by: Ronald G. Minnich --- src/ec/kontron/it8516e/acpi/ec.asl | 3 +++ src/superio/acpi/pnp_config.asl | 10 ++++++++++ src/superio/winbond/w83627dhg/acpi/superio.asl | 3 +++ 3 files changed, 16 insertions(+) (limited to 'src') 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 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 @@ -66,6 +73,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 -- cgit v1.2.3