From 5614c23925f8cc70a3bcda1f1d7b970ff86a4644 Mon Sep 17 00:00:00 2001 From: ZhengShunQian Date: Thu, 19 May 2016 20:41:08 +0800 Subject: [PATCH] veyron: fievel/tiger: congiure usb and hdmi Enable 5v_drv for usb and hdmi. For tiger(chromebase with eDP), set the vop mode to VOP_MODE_AUTO_DECTECT so it would fall through to hdmi if there is not edp(or edp initialized failed). For fievel(chromebox without eDP), set vop mode to VOP_MODE_HDMI. BRANCH=veyron BUG=none TEST=check usb/hdmi function Change-Id: I4bce8fb35a108a590608b3f7084e6be7b200aa5c Signed-off-by: ZhengShunQian Reviewed-on: https://chromium-review.googlesource.com/345747 Commit-Queue: Ren Kuo Reviewed-by: Julius Werner --- .../google/veyron_fievel/devicetree.cb | 2 +- src/mainboard/google/veyron_fievel/mainboard.c | 17 +++++++++++++++++ src/mainboard/google/veyron_tiger/devicetree.cb | 2 +- src/mainboard/google/veyron_tiger/mainboard.c | 17 +++++++++++++++++ 4 files changed, 36 insertions(+), 2 deletions(-) diff --git a/src/mainboard/google/veyron_fievel/devicetree.cb b/src/mainboard/google/veyron_fievel/devicetree.cb index 97b63d177e..49d9f12626 100644 --- a/src/mainboard/google/veyron_fievel/devicetree.cb +++ b/src/mainboard/google/veyron_fievel/devicetree.cb @@ -21,6 +21,6 @@ chip soc/rockchip/rk3288 device cpu_cluster 0 on end register "vop_id" = "1" - register "vop_mode" = "VOP_MODE_EDP" + register "vop_mode" = "VOP_MODE_HDMI" register "framebuffer_bits_per_pixel" = "16" end diff --git a/src/mainboard/google/veyron_fievel/mainboard.c b/src/mainboard/google/veyron_fievel/mainboard.c index 47f9eb607d..51b9552eba 100644 --- a/src/mainboard/google/veyron_fievel/mainboard.c +++ b/src/mainboard/google/veyron_fievel/mainboard.c @@ -41,6 +41,12 @@ #include "board.h" +static void enable_5v_drv(void) +{ + /* EN pin of NB679 for USB, Speaker, HDMI, TouchScreen*/ + gpio_output(GPIO(7, C, 5), 1); +} + static void configure_usb(void) { gpio_output(GPIO(0, B, 4), 1); /* USB_OTG_PWR_EN */ @@ -92,14 +98,25 @@ static void configure_vop(void) writel(IOMUX_EDP_HOTPLUG, &rk3288_grf->iomux_edp_hotplug); } +static void configure_hdmi(void) +{ + /* HDMI I2C */ + writel(IOMUX_HDMI_EDP_I2C_SDA, &rk3288_grf->iomux_i2c5sda); + writel(IOMUX_HDMI_EDP_I2C_SCL, &rk3288_grf->iomux_i2c5scl); + + gpio_output(GPIO(5, C, 3), 1); /* VCC50_HDMI_EN */ +} + static void mainboard_init(device_t dev) { gpio_output(GPIO_RESET, 0); + enable_5v_drv(); configure_usb(); configure_emmc(); configure_codec(); configure_vop(); + configure_hdmi(); elog_init(); elog_add_watchdog_reset(); diff --git a/src/mainboard/google/veyron_tiger/devicetree.cb b/src/mainboard/google/veyron_tiger/devicetree.cb index 97b63d177e..1c70b57bf4 100644 --- a/src/mainboard/google/veyron_tiger/devicetree.cb +++ b/src/mainboard/google/veyron_tiger/devicetree.cb @@ -21,6 +21,6 @@ chip soc/rockchip/rk3288 device cpu_cluster 0 on end register "vop_id" = "1" - register "vop_mode" = "VOP_MODE_EDP" + register "vop_mode" = "VOP_MODE_AUTO_DETECT" register "framebuffer_bits_per_pixel" = "16" end diff --git a/src/mainboard/google/veyron_tiger/mainboard.c b/src/mainboard/google/veyron_tiger/mainboard.c index 47f9eb607d..51b9552eba 100644 --- a/src/mainboard/google/veyron_tiger/mainboard.c +++ b/src/mainboard/google/veyron_tiger/mainboard.c @@ -41,6 +41,12 @@ #include "board.h" +static void enable_5v_drv(void) +{ + /* EN pin of NB679 for USB, Speaker, HDMI, TouchScreen*/ + gpio_output(GPIO(7, C, 5), 1); +} + static void configure_usb(void) { gpio_output(GPIO(0, B, 4), 1); /* USB_OTG_PWR_EN */ @@ -92,14 +98,25 @@ static void configure_vop(void) writel(IOMUX_EDP_HOTPLUG, &rk3288_grf->iomux_edp_hotplug); } +static void configure_hdmi(void) +{ + /* HDMI I2C */ + writel(IOMUX_HDMI_EDP_I2C_SDA, &rk3288_grf->iomux_i2c5sda); + writel(IOMUX_HDMI_EDP_I2C_SCL, &rk3288_grf->iomux_i2c5scl); + + gpio_output(GPIO(5, C, 3), 1); /* VCC50_HDMI_EN */ +} + static void mainboard_init(device_t dev) { gpio_output(GPIO_RESET, 0); + enable_5v_drv(); configure_usb(); configure_emmc(); configure_codec(); configure_vop(); + configure_hdmi(); elog_init(); elog_add_watchdog_reset();