[coreboot-gerrit] New patch to review for coreboot: chromeec/acpi: add Tablet event and EC ACPI MEM

Martin Roth (martinroth@google.com) gerrit at coreboot.org
Thu Aug 11 20:16:47 CEST 2016


Martin Roth (martinroth at google.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/16151

-gerrit

commit df214f3c3899598de61f2383ea60c1f265eea800
Author: jiazi Yang <Tomato_Yang at asus.com>
Date:   Thu Jul 28 05:15:01 2016 -0400

    chromeec/acpi: add Tablet event and EC ACPI MEM
    
    Switch DPTF table when TABLET/NOTEBOOK mode changes
    1. EC send EC_HOST_EVENT_MODE_CHANGE(29/0x1D) when mode changes
    2. Host read current "physical mode" from EC ERAM
    
    BUG=chrome-os-partner:53526
    BRANCH=master
    TEST=build glados
    
    Change-Id: I836d2b9d1a24c455c4b8d4b85f7edc19259d2f71
    Signed-off-by: Martin Roth <martinroth at chromium.org>
    Original-Commit-Id: 9506c4c07e0f713c9a22a0231bc4255f6876783f
    Original-Change-Id: I5a3363ff9c958decb5aed1c85fc2a1ef6670931d
    Original-Signed-off-by: jiazi Yang <Tomato_Yang at asus.com>
    Original-Signed-off-by: Shasha Zhao <Sarah_Zhao at asus.com>
    Original-Signed-off-by: jiazi Yang <Tomato_Yang at asus.com>
    Original-Reviewed-on: https://chromium-review.googlesource.com/365991
    Original-Reviewed-by: Aaron Durbin <adurbin at chromium.org>
---
 src/ec/google/chromeec/acpi/ec.asl   | 17 +++++++++++++++++
 src/ec/google/chromeec/ec_commands.h |  9 +++++++++
 2 files changed, 26 insertions(+)

diff --git a/src/ec/google/chromeec/acpi/ec.asl b/src/ec/google/chromeec/acpi/ec.asl
index 13317f6..84d5e32 100644
--- a/src/ec/google/chromeec/acpi/ec.asl
+++ b/src/ec/google/chromeec/acpi/ec.asl
@@ -25,6 +25,7 @@ External (\_SB.DPTF.TEVT, MethodObj)
 #ifdef DPTF_ENABLE_CHARGER
 External (\_SB.DPTF.TCHG, DeviceObj)
 #endif
+External (\_SB.DPTF.TPET, MethodObj)
 
 Device (EC0)
 {
@@ -52,6 +53,7 @@ Device (EC0)
 		PATT, 8,	// Programmable Auxiliary Trip Threshold
 		PATC, 8,	// Programmable Auxiliary Trip Commit
 		CHGL, 8,	// Charger Current Limit
+		TBMD, 1,	// Tablet mode
 	}
 
 #if CONFIG_EC_GOOGLE_CHROMEEC_ACPI_MEMMAP
@@ -296,6 +298,15 @@ Device (EC0)
 		Notify (CREC, 0x80)
 	}
 
+	// TABLET mode switch Event
+	Method (_Q1D, 0, NotSerialized)
+	{
+		Store ("EC: TABLET mode switch Event", Debug)
+		If (CondRefOf (\_SB.DPTF.TPET)) {
+			\_SB.DPTF.TPET()
+		}
+	}
+
 	/*
 	 * Dynamic Platform Thermal Framework support
 	 */
@@ -422,6 +433,12 @@ Device (EC0)
 		Store (0xFF, ^CHGL)
 	}
 
+	/* Read current Tablet mode */
+	Method (RCTM, 0, NotSerialized)
+	{
+		Return (^TBMD)
+	}
+
 	#include "ac.asl"
 	#include "battery.asl"
 	#include "cros_ec.asl"
diff --git a/src/ec/google/chromeec/ec_commands.h b/src/ec/google/chromeec/ec_commands.h
index 2e2a695..4a551c2 100644
--- a/src/ec/google/chromeec/ec_commands.h
+++ b/src/ec/google/chromeec/ec_commands.h
@@ -327,6 +327,12 @@
 #define EC_ACPI_MEM_CHARGING_LIMIT_STEP_MA   64
 /* Value to disable DPTF battery charging limit */
 #define EC_ACPI_MEM_CHARGING_LIMIT_DISABLED  0xff
+/*
+ * Report device orientation
+ * bit 0 device is tablet mode
+ */
+#define EC_ACPI_MEM_DEVICE_ORIENTATION       0x09
+#define EC_ACPI_MEM_DEVICE_TABLET_MODE       0x01
 
 /*
  * ACPI addresses 0x20 - 0xff map to EC_MEMMAP offset 0x00 - 0xdf.  This data
@@ -465,6 +471,9 @@ enum host_event_code {
 	/* Emulate MKBP event */
 	EC_HOST_EVENT_MKBP = 27,
 
+	/* TABLET/LAPTOP mode event*/
+	EC_HOST_EVENT_MODE_CHANGE = 29,
+
 	/*
 	 * The high bit of the event mask is not used as a host event code.  If
 	 * it reads back as set, then the entire event mask should be



More information about the coreboot-gerrit mailing list