diff options
Diffstat (limited to 'src/mainboard/google/veyron_emile/mainboard.c')
-rw-r--r-- | src/mainboard/google/veyron_emile/mainboard.c | 32 |
1 files changed, 22 insertions, 10 deletions
diff --git a/src/mainboard/google/veyron_emile/mainboard.c b/src/mainboard/google/veyron_emile/mainboard.c index b668ff8b8d..3a5513b1b7 100644 --- a/src/mainboard/google/veyron_emile/mainboard.c +++ b/src/mainboard/google/veyron_emile/mainboard.c @@ -41,9 +41,27 @@ #include "board.h" +static void enable_5v_drv(void) +{ + gpio_output(GPIO(7, A, 3), 1); /* 5v_drv enable */ +} + +static void configure_sdmmc(void) +{ + write32(&rk3288_grf->iomux_sdmmc0, IOMUX_SDMMC0); + + /* use sdmmc0 io, disable JTAG function */ + write32(&rk3288_grf->soc_con0, RK_CLRBITS(1 << 12)); + + sdmmc_power_on(); + + gpio_input(GPIO(7, A, 5)); /* SDMMC_DET_L */ +} + static void configure_usb(void) { - gpio_output(GPIO(0, B, 4), 1); /* USB2_PWR_EN */ + gpio_output(GPIO(2, B, 2), 1); /* USB3_PWR_EN */ + gpio_output(GPIO(2, B, 3), 1); /* USB2_PWR_EN */ } static void configure_emmc(void) @@ -83,14 +101,16 @@ static void configure_hdmi(void) write32(&rk3288_grf->iomux_i2c5sda, IOMUX_HDMI_EDP_I2C_SDA); write32(&rk3288_grf->iomux_i2c5scl, IOMUX_HDMI_EDP_I2C_SCL); - gpio_output(GPIO(7, B, 3), 1); /* POWER_HDMI_ON */ + gpio_output(GPIO(7, A, 2), 1); /* POWER_HDMI_ON */ } static void mainboard_init(device_t dev) { gpio_output(GPIO_RESET, 0); + enable_5v_drv(); configure_usb(); + configure_sdmmc(); configure_emmc(); configure_i2s(); configure_vop(); @@ -99,14 +119,6 @@ static void mainboard_init(device_t dev) elog_init(); elog_add_watchdog_reset(); elog_add_boot_reason(); - - /* If recovery mode is detected, reduce frequency and voltage to reduce - * heat in case machine is left unattended. chrome-os-partner:41201. */ - if (recovery_mode_enabled()) { - printk(BIOS_DEBUG, "Reducing APLL freq for recovery mode.\n"); - rkclk_configure_cpu(APLL_600_MHZ); - rk808_configure_buck(1, 900); - } } static void mainboard_enable(device_t dev) |