From b3b09613452a72e3bc9803b61c9d9a44c8711b27 Mon Sep 17 00:00:00 2001 From: David Hendricks Date: Wed, 3 Jun 2015 17:00:32 -0700 Subject: [PATCH] veyron_danger: Add basic HDMI support This adds a configure_hdmi() function that drives the HDMI enable output high and configures the iomux. We'll add EDP/HDMI auto-detection in an upcoming patch. (write32() --> writel() for cherry-pick) BUG=none BRANCH=none TEST=set vop_mode to 1 in Danger's devicetree.cb and saw dev mode screen output to HDMI display. Signed-off-by: David Hendricks Reviewed-on: https://chromium-review.googlesource.com/280849 Reviewed-by: Julius Werner Change-Id: I139d39749963d4121aaeec0c3da37d825ffa94ac Reviewed-on: https://chromium-review.googlesource.com/284092 --- .../google/veyron_danger/mainboard.c | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/src/mainboard/google/veyron_danger/mainboard.c b/src/mainboard/google/veyron_danger/mainboard.c index c2cfa2488e..45e8ed763c 100644 --- a/src/mainboard/google/veyron_danger/mainboard.c +++ b/src/mainboard/google/veyron_danger/mainboard.c @@ -104,9 +104,27 @@ static void configure_vop(void) gpio_output(GPIO_BACKLIGHT, 1); /* BL_EN */ gpio_output(GPIO_LCDC_BL, 0); + rk808_configure_switch(1, 1); /* VCC33_LCD */ +} + +static void configure_hdmi(void) +{ rk808_configure_switch(2, 1); /* VCC18_LCD (HDMI_AVDD_1V8) */ rk808_configure_ldo(7, 1000); /* VDD10_LCD (HDMI_AVDD_1V0) */ - rk808_configure_switch(1, 1); /* VCC33_LCD */ + + /* set POWER_HDMI_EN */ + switch (board_id()) { + case 0: + gpio_output(GPIO(7, A, 2), 1); + break; + default: + gpio_output(GPIO(5, C, 3), 1); + break; + } + + /* HDMI I2C */ + writel(IOMUX_HDMI_EDP_I2C_SDA, &rk3288_grf->iomux_i2c5sda); + writel(IOMUX_HDMI_EDP_I2C_SCL, &rk3288_grf->iomux_i2c5scl); } static void mainboard_init(device_t dev) @@ -118,6 +136,11 @@ static void mainboard_init(device_t dev) configure_emmc(); configure_codec(); configure_vop(); + configure_hdmi(); + + elog_init(); + elog_add_watchdog_reset(); + elog_add_boot_reason(); } static void mainboard_enable(device_t dev)