summaryrefslogtreecommitdiff
path: root/board
diff options
context:
space:
mode:
authorShawn Nematbakhsh <shawnn@chromium.org>2016-01-06 17:02:49 -0800
committerchrome-bot <chrome-bot@chromium.org>2016-01-07 20:12:58 -0800
commit126f48aa3f31065cb0f340a68219fa7894f1b53b (patch)
tree1ab62633dfe39d3956ec549d2da86d7f02b8b444 /board
parentc7c04e673efe535e00003fa66c83f7b19a5a0786 (diff)
downloadchrome-ec-126f48aa3f31065cb0f340a68219fa7894f1b53b.tar.gz
pd: Add common EC_HOST_EVENT_PD_MCU implementation
For TCPMs with an off chip TCPC, PD MCU host event status can be handled in a common way. When a status flag is updated (ex. from charge_manager), notify the AP through the host event, and save the status flag for later retrieval. BUG=chrome-os-partner:49124 BRANCH=None TEST=Verify `cat /sys/class/power_supply/CROS_USB_PD_CHARGER1/online` on chell reflects the actual online status of the charger. Also verify UI charge icon tracks the online status correctly. Signed-off-by: Shawn Nematbakhsh <shawnn@chromium.org> Change-Id: I63bc70205627474590e38ffd282faedaea3bcc66 Reviewed-on: https://chromium-review.googlesource.com/320796 Commit-Ready: Shawn N <shawnn@chromium.org> Tested-by: Shawn N <shawnn@chromium.org> Reviewed-by: Benson Leung <bleung@chromium.org> Reviewed-by: Duncan Laurie <dlaurie@chromium.org>
Diffstat (limited to 'board')
-rw-r--r--board/lucid/board.c4
-rw-r--r--board/oak/board.c36
-rw-r--r--board/strago/board.h2
3 files changed, 7 insertions, 35 deletions
diff --git a/board/lucid/board.c b/board/lucid/board.c
index 12bf407a36..d82467bd7e 100644
--- a/board/lucid/board.c
+++ b/board/lucid/board.c
@@ -153,3 +153,7 @@ enum battery_present battery_is_present(void)
{
return gpio_get_level(GPIO_BAT_PRESENT) ? BP_YES : BP_NO;
}
+
+void pd_send_host_event(int mask)
+{
+}
diff --git a/board/oak/board.c b/board/oak/board.c
index fef8387663..1b4141b4f7 100644
--- a/board/oak/board.c
+++ b/board/oak/board.c
@@ -47,20 +47,13 @@
#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP | GPIO_INT_BOTH)
#define GPIO_KB_OUTPUT GPIO_ODR_HIGH
-/*
- * PD host event status for host command
- * Note: this variable must be aligned on 4-byte boundary because we pass the
- * address to atomic_ functions which use assembly to access them.
- */
-static struct ec_response_host_event_status host_event_status __aligned(4);
-
/* Dispaly port hardware can connect to port 0, 1 or neither. */
#define PD_PORT_NONE -1
void pd_mcu_interrupt(enum gpio_signal signal)
{
#ifdef HAS_TASK_PDCMD
- /* Exchange status with PD MCU to determin interrupt cause */
+ /* Exchange status with PD MCU to determine interrupt cause */
host_command_pd_send_status(0);
#endif
}
@@ -182,18 +175,6 @@ void board_reset_pd_mcu(void)
gpio_set_level(GPIO_USB_PD_RST_L, 1);
}
-/* Send host event up to AP */
-void pd_send_host_event(int mask)
-{
- /* mask must be set */
- if (!mask)
- return;
-
- atomic_or(&(host_event_status.status), mask);
- /* interrupt the AP */
- host_set_single_event(EC_HOST_EVENT_PD_MCU);
-}
-
/**
* There is a level shift for AC_OK & LID_OPEN signal between AP & EC,
* disable it (drive high) when AP is off, otherwise enable it (drive low).
@@ -438,21 +419,6 @@ void board_set_ap_reset(int asserted)
}
}
-/****************************************************************************/
-/* Host commands */
-static int host_event_status_host_cmd(struct host_cmd_handler_args *args)
-{
- struct ec_response_host_event_status *r = args->response;
-
- /* Read and clear the host event status to return to AP */
- r->status = atomic_read_clear(&(host_event_status.status));
-
- args->response_size = sizeof(*r);
- return EC_RES_SUCCESS;
-}
-DECLARE_HOST_COMMAND(EC_CMD_PD_HOST_EVENT_STATUS, host_event_status_host_cmd,
- EC_VER_MASK(0));
-
#if BOARD_REV < OAK_REV4
/**
* Check VBUS state and trigger USB BC1.2 charger.
diff --git a/board/strago/board.h b/board/strago/board.h
index bb64cc5d6e..1bf563a642 100644
--- a/board/strago/board.h
+++ b/board/strago/board.h
@@ -99,6 +99,8 @@
/* Modules we want to exclude */
#undef CONFIG_CMD_HASH
#undef CONFIG_CMD_HOSTCMD
+#undef CONFIG_CMD_I2C_SCAN
+#undef CONFIG_CMD_IDLE_STATS
#undef CONFIG_CMD_PD
#undef CONFIG_CMD_SHMEM
#undef CONFIG_CMD_TEMP_SENSOR