summaryrefslogtreecommitdiff
path: root/board/hoho
diff options
context:
space:
mode:
authorTodd Broch <tbroch@chromium.org>2014-12-15 21:28:39 -0800
committerchrome-internal-fetch <chrome-internal-fetch@google.com>2014-12-23 22:10:56 +0000
commitb9b457173ea7f194c13a2d025496c3c49cf05792 (patch)
treef840953f110167bb9b591887b8c115f065dfcdc8 /board/hoho
parentdc1a89a70aa27d90f0538a87f1cf20b284563397 (diff)
downloadchrome-ec-b9b457173ea7f194c13a2d025496c3c49cf05792.tar.gz
pd: hoho: mcdp28x0 serial driver.
Add initial serial driver for mdcp2850 dp->hdmi converter. Driver implements 'get information' (cmd:0x40) to provide rudimentary method to test mcdp for functionality and assert GPIO if successful. Future CLs may expose more serial functionality if necessary. Signed-off-by: Todd Broch <tbroch@chromium.org> BRANCH=samus BUG=chrome-os-partner:34122 TEST=manual, when compiles with #define MCDP_DEBUG see successful serial communication and result from get info. buf:[00]0x04 [01]0x40 [02]0x00 [03]0xbc ... buf:[00]0x0f [01]0x40 [02]0x00 [03]0x0e [04]0x00 [05]0x01 [06]0x01 [07]0x00 [08]0x00 [09]0x00 [10]0x00 [11]0x00 [12]0x00 [13]0x00 family:000e chipid:0001 irom:1.0.0 fw:0.0.0 Change-Id: I35f9d9b0437633d1bd6a6c9fa14413bedb12f5c2 Reviewed-on: https://chromium-review.googlesource.com/235930 Trybot-Ready: Todd Broch <tbroch@chromium.org> Tested-by: Todd Broch <tbroch@chromium.org> Reviewed-by: Vincent Palatin <vpalatin@chromium.org> Commit-Queue: Todd Broch <tbroch@chromium.org>
Diffstat (limited to 'board/hoho')
-rw-r--r--board/hoho/board.c20
-rw-r--r--board/hoho/board.h5
2 files changed, 23 insertions, 2 deletions
diff --git a/board/hoho/board.c b/board/hoho/board.c
index 406bdebd77..324f79b2ef 100644
--- a/board/hoho/board.c
+++ b/board/hoho/board.c
@@ -10,6 +10,7 @@
#include "ec_version.h"
#include "gpio.h"
#include "hooks.h"
+#include "mcdp28x0.h"
#include "registers.h"
#include "task.h"
#include "usb.h"
@@ -131,6 +132,21 @@ static void board_init_spi2(void)
}
#endif /* CONFIG_SPI_FLASH */
+static void factory_validation_deferred(void)
+{
+ struct mcdp_info info;
+
+ mcdp_enable();
+
+ /* test mcdp via serial to validate function */
+ if (!mcdp_get_info(&info) && (MCDP_FAMILY(info.family) == 0xe) &&
+ (MCDP_CHIPID(info.chipid) == 0x1))
+ gpio_set_level(GPIO_MCDP_READY, 1);
+
+ mcdp_disable();
+}
+DECLARE_DEFERRED(factory_validation_deferred);
+
/* Initialize board. */
static void board_init(void)
{
@@ -144,8 +160,8 @@ static void board_init(void)
gpio_enable_interrupt(GPIO_DP_HPD);
gpio_set_level(GPIO_STM_READY, 1); /* factory test only */
- /* TODO(crosbug.com/p/34122): Add real check for MCDP function */
- gpio_set_level(GPIO_MCDP_READY, 1); /* factory test only */
+ /* Delay needed to allow HDMI MCU to boot. */
+ hook_call_deferred(factory_validation_deferred, 200*MSEC);
}
DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
diff --git a/board/hoho/board.h b/board/hoho/board.h
index 1345c4e1b7..1b43a4fe5a 100644
--- a/board/hoho/board.h
+++ b/board/hoho/board.h
@@ -43,6 +43,11 @@
#define CONFIG_USB_PD_IDENTITY_HW_VERS 1
#define CONFIG_USB_PD_IDENTITY_SW_VERS 1
#define CONFIG_USB_PD_NO_VBUS_DETECT
+/* mcdp2850 serial interface */
+#define CONFIG_MCDP28X0 usart3_hw
+#define CONFIG_STREAM
+#define CONFIG_STREAM_USART
+#define CONFIG_STREAM_USART3
#undef CONFIG_WATCHDOG_HELP
#undef CONFIG_LID_SWITCH
#undef CONFIG_TASK_PROFILING