veyron_brain: Add basic HDMI support

This adds a configure_hdmi() function that drives the HDMI
enable output high and configures the iomux. Calls to PMIC
functions to enable HDMI power are moved here as well.

BUG=none
BRANCH=none
TEST=with follow-up patches, we now get a dev screen on Brain.

Change-Id: Ifd2648376c789fb29c9e2e4ab6bdb10ca439e4a2
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: 91ec6a96edaf2042236aee0383e18715014f1013
Original-Change-Id: I0c6e9f8fc5e06f53a1a160d8ab2e32447168139e
Original-Signed-off-by: David Hendricks <dhendrix@chromium.org>
Original-Reviewed-on: https://chromium-review.googlesource.com/282046
Reviewed-on: http://review.coreboot.org/10778
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
This commit is contained in:
David Hendricks 2015-06-25 16:59:02 -07:00 committed by Patrick Georgi
parent d8086876a7
commit 51e73c3f6e
2 changed files with 12 additions and 0 deletions

View File

@ -21,5 +21,6 @@
chip soc/rockchip/rk3288 chip soc/rockchip/rk3288
device cpu_cluster 0 on end device cpu_cluster 0 on end
register "vop_id" = "1" register "vop_id" = "1"
register "vop_mode" = "VOP_MODE_HDMI"
register "framebuffer_bits_per_pixel" = "16" register "framebuffer_bits_per_pixel" = "16"
end end

View File

@ -76,10 +76,20 @@ static void configure_vop(void)
/* lcdc(vop) iodomain select 1.8V */ /* lcdc(vop) iodomain select 1.8V */
write32(&rk3288_grf->io_vsel, RK_SETBITS(1 << 0)); write32(&rk3288_grf->io_vsel, RK_SETBITS(1 << 0));
}
static void configure_hdmi(void)
{
rk808_configure_switch(2, 1); /* VCC18_LCD (HDMI_AVDD_1V8) */ rk808_configure_switch(2, 1); /* VCC18_LCD (HDMI_AVDD_1V8) */
rk808_configure_ldo(7, 1000); /* VDD10_LCD (HDMI_AVDD_1V0) */ rk808_configure_ldo(7, 1000); /* VDD10_LCD (HDMI_AVDD_1V0) */
rk808_configure_switch(1, 1); /* VCC33_LCD */ rk808_configure_switch(1, 1); /* VCC33_LCD */
/* set POWER_HDMI_ON */
gpio_output(GPIO(7, A, 2), 1);
/* HDMI I2C */
write32(&rk3288_grf->iomux_i2c5sda, IOMUX_HDMI_EDP_I2C_SDA);
write32(&rk3288_grf->iomux_i2c5scl, IOMUX_HDMI_EDP_I2C_SCL);
} }
static void mainboard_init(device_t dev) static void mainboard_init(device_t dev)
@ -90,6 +100,7 @@ static void mainboard_init(device_t dev)
configure_emmc(); configure_emmc();
configure_codec(); configure_codec();
configure_vop(); configure_vop();
configure_hdmi();
elog_init(); elog_init();
elog_add_watchdog_reset(); elog_add_watchdog_reset();