diff options
author | Furquan Shaikh <furquan@google.com> | 2018-10-19 16:23:50 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2018-11-15 02:16:01 -0800 |
commit | 3b41a2b157de0a48160745d632163f7cc400c49b (patch) | |
tree | fefc319a4736bbc9564ac55b3fb2cdb51b5ae6b7 /include/acpi.h | |
parent | 5b749cf03594ec652ad8b52e24a31db95b9d4634 (diff) | |
download | chrome-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.h | 54 |
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 */ |