veyron: Change eMMC enable pin to be pulled (not driven) high
The eMMC enable pin is in a 3.3V IO domain. Unfortunately the eMMC
expects this pin to be 1.8V. The way we were driving this pin would
cause the eMMC to pull power through this pin and that was causing
current leaks.
In future revisions of hardware we should move this pin somewhere more
legit. However, in the current hardware we can get things working
pretty well by using a pullup to "drive" this pin. This will work in
conjunction with the external 100K pullup to give a somewhat
reasonable voltage. The eMMC will also not be able to pull much
current through this pin, so it can't leak too badly.
BRANCH=none
BUG=chrome-os-partner:33319
TEST=Boot a kernel that doesn't touch the mux/pulls and see no leak:
dut-control --port=${SERVO} vcc_flash_ma -t 5
Change-Id: Iadfc1477cd478773cc9d159e3fbc22b66b8f0f78
Signed-off-by: Doug Anderson <dianders@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/226039
Reviewed-by: Julius Werner <jwerner@chromium.org>
This commit is contained in:
parent
8c70625ad4
commit
26e7a9d7e0
2 changed files with 12 additions and 2 deletions
|
|
@ -79,7 +79,12 @@ static void configure_emmc(void)
|
|||
writel(IOMUX_EMMCPWREN, &rk3288_grf->iomux_emmcpwren);
|
||||
writel(IOMUX_EMMCCMD, &rk3288_grf->iomux_emmccmd);
|
||||
|
||||
gpio_output(GPIO(7, B, 4), 1); /* EMMC_RST_L */
|
||||
/*
|
||||
* Use a pullup instead of a drive since the output is 3.3V and
|
||||
* really should be 1.8V (oops). The external pulldown will help
|
||||
* bring the voltage down if we only drive with a pullup here.
|
||||
*/
|
||||
gpio_input_pullup(GPIO(7, B, 4)); /* EMMC_RST_L */
|
||||
}
|
||||
|
||||
static void configure_codec(void)
|
||||
|
|
|
|||
|
|
@ -79,7 +79,12 @@ static void configure_emmc(void)
|
|||
writel(IOMUX_EMMCPWREN, &rk3288_grf->iomux_emmcpwren);
|
||||
writel(IOMUX_EMMCCMD, &rk3288_grf->iomux_emmccmd);
|
||||
|
||||
gpio_output(GPIO(7, B, 4), 1); /* EMMC_RST_L */
|
||||
/*
|
||||
* Use a pullup instead of a drive since the output is 3.3V and
|
||||
* really should be 1.8V (oops). The external pulldown will help
|
||||
* bring the voltage down if we only drive with a pullup here.
|
||||
*/
|
||||
gpio_input_pullup(GPIO(7, B, 4)); /* EMMC_RST_L */
|
||||
}
|
||||
|
||||
static void configure_codec(void)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue