summaryrefslogtreecommitdiff
path: root/include/acpi.h
diff options
context:
space:
mode:
authorFurquan Shaikh <furquan@google.com>2018-10-19 16:23:50 -0700
committerchrome-bot <chrome-bot@chromium.org>2018-11-15 02:16:01 -0800
commit3b41a2b157de0a48160745d632163f7cc400c49b (patch)
treefefc319a4736bbc9564ac55b3fb2cdb51b5ae6b7 /include/acpi.h
parent5b749cf03594ec652ad8b52e24a31db95b9d4634 (diff)
downloadchrome-ec-3b41a2b157de0a48160745d632163f7cc400c49b.tar.gz
dptf: Add support for DDPN
This change adds Device DPTF Profile Number(DDPN) to EC_ACPI_MEM_DEVICE_ORIENTATION field to indicate to host which DPTF profile should be loaded depending upon the device mode. This is done to de-couple DPTF table loading from tablet mode flag to allow different drivers within EC to set the profile number depending upon their design. In order to maintain backward compatibility, this change treats 0 as reserved to indicate to host that it should fall back to using tablet mode switch to decide which DPTF table to load. Additionally, it provides helper function to allow drivers to set the profile number that will be returned on host query for EC_ACPI_MEM_DEVICE_ORIENTATION. It also adds a new config option CONFIG_DPTF_MULTI_PROFILE that should be selected by the boards that support multiple DPTF profiles on the host side. CQ-DEPEND=CL:1295852 BUG=b:117844490 BRANCH=None TEST=make -j buildall Change-Id: Idfa0cfea48b9df346533342647258474fb63e86c Signed-off-by: Furquan Shaikh <furquan@google.com> Reviewed-on: https://chromium-review.googlesource.com/1295851 Commit-Ready: Furquan Shaikh <furquan@chromium.org> Tested-by: Furquan Shaikh <furquan@chromium.org> Reviewed-by: Aaron Durbin <adurbin@chromium.org> Reviewed-by: Duncan Laurie <dlaurie@google.com>
Diffstat (limited to 'include/acpi.h')
-rw-r--r--include/acpi.h54
1 files changed, 54 insertions, 0 deletions
diff --git a/include/acpi.h b/include/acpi.h
index 0ffc8d9f10..b966934d93 100644
--- a/include/acpi.h
+++ b/include/acpi.h
@@ -20,4 +20,58 @@
*/
int acpi_ap_to_ec(int is_cmd, uint8_t value, uint8_t *result);
+enum acpi_dptf_profile_num {
+ /*
+ * Value of 0 is reserved meaning the Device DPTF Profile Number in EC
+ * shared memory is invalid and host should fallback to using tablet
+ * mode switch to determine the DPTF table to load.
+ */
+ DPTF_PROFILE_INVALID = 0,
+
+#ifdef CONFIG_DPTF_MULTI_PROFILE
+ /*
+ * Set default profile value to 2 under the assumption that profile
+ * value of 1 means default high-power mode and value of 2 corresponds
+ * to a low-power mode. This value is used by ACPI routines to report
+ * back to host until appropriate EC driver updates the current profile
+ * number.
+ */
+ DPTF_PROFILE_DEFAULT = 2,
+#else
+ /* Default DPTF profile when multi-profile is not supported. */
+ DPTF_PROFILE_DEFAULT = 1,
+#endif
+
+ /* Range of valid values for DPTF profile number. */
+ DPTF_PROFILE_VALID_FIRST = 1,
+ DPTF_PROFILE_VALID_LAST = 7,
+
+ /* Standard convertible profiles */
+ DPTF_PROFILE_CLAMSHELL = 1,
+ DPTF_PROFILE_FLIPPED_360_MODE = 2,
+
+ /* Standard detachable profiles */
+ DPTF_PROFILE_BASE_ATTACHED = 1,
+ DPTF_PROFILE_BASE_DETACHED = 2,
+};
+
+/**
+ * Set current DPTF profile in EC shared memory.
+ *
+ * @param prof_num Profile number of current profile. Valid values are 1-7.
+ * See enum acpi_dptf_profile_num for standard profile
+ * numbers for convertibles/detachables.
+ * @return EC_SUCCESS if operation was successful, EC_ERROR* in
+ * case of error.
+ */
+int acpi_dptf_set_profile_num(int n);
+
+/**
+ * Get value of current DPTF profile.
+ *
+ * @return DPTF Profile number currently set to be shared with the
+ * host using EC shared memory.
+ */
+int acpi_dptf_get_profile_num(void);
+
#endif /* __CROS_EC_ACPI_H */