diff options
Diffstat (limited to 'src/mainboard/google/pit')
-rw-r--r-- | src/mainboard/google/pit/mainboard.c | 22 | ||||
-rw-r--r-- | src/mainboard/google/pit/romstage.c | 15 |
2 files changed, 22 insertions, 15 deletions
diff --git a/src/mainboard/google/pit/mainboard.c b/src/mainboard/google/pit/mainboard.c index 3ffb824216..9aa8d5cd30 100644 --- a/src/mainboard/google/pit/mainboard.c +++ b/src/mainboard/google/pit/mainboard.c @@ -330,6 +330,19 @@ static void disable_usb30_pll(void) gpio_direction_output(usb3_pll_l, 0); } +static void setup_storage(void) +{ + /* MMC0: Fixed, 8 bit mode, connected with GPIO. */ + if (clock_set_dwmci(PERIPH_ID_SDMMC0)) + printk(BIOS_CRIT, "%s: Failed to set MMC0 clock.\n", __func__); + exynos_pinmux_sdmmc0(); + + /* MMC2: Removable, 4 bit mode, no GPIO. */ + /* (Must be after romstage to avoid breaking SDMMC boot.) */ + clock_set_dwmci(PERIPH_ID_SDMMC2); + exynos_pinmux_sdmmc2(); +} + static void gpio_init(void) { /* Set up the I2C busses. */ @@ -370,6 +383,12 @@ static void backlight_vdd(void) tps65090_thru_ec_fet_set(1); } +static void sdmmc_vdd(void) +{ + /* Enable FET4, P3.3V_SDCARD */ + tps65090_thru_ec_fet_set(4); +} + /* this happens after cpu_init where exynos resources are set */ static void mainboard_init(device_t dev) { @@ -380,6 +399,7 @@ static void mainboard_init(device_t dev) void *fb_addr = (void *)(get_fb_base_kb() * KiB); gpio_init(); + setup_storage(); tmu_init(&exynos5420_tmu_info); /* Clock Gating all the unused IP's to save power */ @@ -388,6 +408,8 @@ static void mainboard_init(device_t dev) /* Disable USB3.0 PLL to save 250mW of power */ disable_usb30_pll(); + sdmmc_vdd(); + set_vbe_mode_info_valid(&edid, (uintptr_t)fb_addr); /* diff --git a/src/mainboard/google/pit/romstage.c b/src/mainboard/google/pit/romstage.c index 319ebf97e2..7967a559f2 100644 --- a/src/mainboard/google/pit/romstage.c +++ b/src/mainboard/google/pit/romstage.c @@ -40,8 +40,6 @@ #include <drivers/maxim/max77802/max77802.h> #include <device/i2c.h> -#define MMC0_GPIO_PIN (58) - #define PMIC_I2C_BUS 4 struct pmic_write @@ -109,18 +107,6 @@ static int setup_power(int is_resume) return error; } -static void setup_storage(void) -{ - /* MMC0: Fixed, 8 bit mode, connected with GPIO. */ - if (clock_set_dwmci(PERIPH_ID_SDMMC0)) - printk(BIOS_CRIT, "%s: Failed to set MMC0 clock.\n", __func__); - exynos_pinmux_sdmmc0(); - - /* MMC2: Removable, 4 bit mode, no GPIO. */ - clock_set_dwmci(PERIPH_ID_SDMMC2); - exynos_pinmux_sdmmc2(); -} - static void setup_ec(void) { /* SPI2 (EC) is slower and needs to work in half-duplex mode with @@ -270,7 +256,6 @@ void main(void) wakeup(); } - setup_storage(); setup_gpio(); setup_ec(); |