ec: Add support for reading the Power Button state
authorVadim Bendebury <vbendeb@chromium.org>
Fri, 24 Jun 2016 03:14:28 +0000 (20:14 -0700)
committerchrome-bot <chrome-bot@chromium.org>
Fri, 24 Jun 2016 21:49:02 +0000 (14:49 -0700)
Add a function for reading the power button state from the EC via the
memmap. This can be used to read the button, for example, since if it
is only connected to the EC there is no way to use the AP GPIOs.

BUG=chrome-os-partner:53208
BRANCH=none
TEST=none

Change-Id: If87b19a50b413a798e1f11f0aa33d97a08cfab12
Signed-off-by: Vadim Bendebury <vbendeb@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/355706
Reviewed-by: Shawn N <shawnn@chromium.org>
src/drivers/ec/cros/ec.c
src/drivers/ec/cros/ec.h

index 443a368..6836f49 100644 (file)
@@ -1084,6 +1084,17 @@ int cros_ec_read_lid_switch(uint32_t *lid)
        return 0;
 }
 
+int cros_ec_read_power_btn(uint32_t *pwr_btn)
+{
+       uint8_t flags;
+
+       if (read_memmap(EC_MEMMAP_SWITCHES, sizeof(flags), &flags))
+               return -1;
+       *pwr_btn = !!(flags & EC_SWITCH_POWER_BUTTON_PRESSED);
+
+       return 0;
+}
+
 int cros_ec_read_limit_power_request(int *limit_power)
 {
        struct ec_params_charge_state p;
index d717f65..6ecc2a8 100644 (file)
@@ -257,6 +257,14 @@ int cros_ec_set_bl_pwm_duty(uint32_t percent);
  */
 int cros_ec_read_lid_switch(uint32_t *lid);
 
+/**
+ * Read the value of power button.
+ *
+ * @param pwr_btn      Buffer to read lid open flag (returns 0 or 1)
+ * @return 0 if ok, -1 on error
+ */
+int cros_ec_read_power_btn(uint32_t *pwr_btn);
+
 CrosEc *new_cros_ec(CrosEcBusOps *bus, int devidx, GpioOps *interrupt_gpio);
 
 #endif