mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2026-01-10 01:21:49 +00:00
rambi: Enable PP5000 at boot
Due to power topology, PP5000 needs to be enabled as soon after
PP3300_DSW as possible. Since PP3300_DSW is what powers the EC, the
EC needs to turn on PP5000 by default and leave it on.
BUG=chrome-os-partner:23673
BRANCH=none
TEST=reboot ap-off (this boots the EC without doing AP power sequencing)
gpioget -> shows PP5000_EN=1, PP5000_GOOD=1
Change-Id: I5d493877d330b2543a493f8a2f3411003d5964ca
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/174989
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
committed by
chrome-internal-fetch
parent
497e292542
commit
8eacb8ffe2
@@ -86,7 +86,11 @@ const struct gpio_info gpio_list[] = {
|
||||
{"PP3300_DX_EN", LM4_GPIO_J, (1<<2), GPIO_OUT_LOW, NULL},
|
||||
{"PP3300_LTE_EN", LM4_GPIO_D, (1<<2), GPIO_OUT_LOW, NULL},
|
||||
{"PP3300_WLAN_EN", LM4_GPIO_J, (1<<0), GPIO_OUT_LOW, NULL},
|
||||
{"PP5000_EN", LM4_GPIO_H, (1<<7), GPIO_OUT_LOW, NULL},
|
||||
/*
|
||||
* TODO(crosbug.com/p/23673): PP5000_EN should default to GPIO_OUT_LOW
|
||||
* once issues with Rev.1 boards are fixed.
|
||||
*/
|
||||
{"PP5000_EN", LM4_GPIO_H, (1<<7), GPIO_OUT_HIGH, NULL},
|
||||
{"PPSX_EN", LM4_GPIO_L, (1<<6), GPIO_OUT_LOW, NULL},
|
||||
{"SUSP_VR_EN", LM4_GPIO_C, (1<<7), GPIO_OUT_LOW, NULL},
|
||||
{"TOUCHSCREEN_RESET_L", LM4_GPIO_N, (1<<7), GPIO_OUT_LOW, NULL},
|
||||
|
||||
@@ -124,7 +124,12 @@ enum x86_state x86_chipset_init(void)
|
||||
gpio_set_level(GPIO_SUSP_VR_EN, 0);
|
||||
gpio_set_level(GPIO_PP1350_EN, 0);
|
||||
gpio_set_level(GPIO_PP3300_DX_EN, 0);
|
||||
gpio_set_level(GPIO_PP5000_EN, 0);
|
||||
/*
|
||||
* TODO(crosbug.com/p/23673): turn off PP5000 after
|
||||
* Rev.1 hardware is obsolete:
|
||||
*
|
||||
* gpio_set_level(GPIO_PP5000_EN, 0);
|
||||
*/
|
||||
gpio_set_level(GPIO_PCH_RSMRST_L, 0);
|
||||
gpio_set_level(GPIO_PCH_SYS_PWROK, 0);
|
||||
wireless_enable(0);
|
||||
@@ -180,9 +185,6 @@ enum x86_state x86_handle_state(enum x86_state state)
|
||||
break;
|
||||
|
||||
case X86_G3S5:
|
||||
/* TODO(rspangler): temporary hack on Rev.1 boards */
|
||||
gpio_set_level(GPIO_PP5000_EN, 1);
|
||||
|
||||
/*
|
||||
* Wait 10ms after +3VALW good, since that powers VccDSW and
|
||||
* VccSUS.
|
||||
@@ -246,7 +248,12 @@ enum x86_state x86_handle_state(enum x86_state state)
|
||||
chipset_force_shutdown();
|
||||
wireless_enable(0);
|
||||
gpio_set_level(GPIO_PP3300_DX_EN, 0);
|
||||
/* TODO(rspangler) turn off PP5000 after Rev.1 */
|
||||
/*
|
||||
* TODO(crosbug.com/p/23673): turn off PP5000 after
|
||||
* Rev.1 hardware is obsolete:
|
||||
*
|
||||
* gpio_set_level(GPIO_PP5000_EN, 0);
|
||||
*/
|
||||
gpio_set_level(GPIO_TOUCHSCREEN_RESET_L, 0);
|
||||
return X86_S3;
|
||||
}
|
||||
@@ -299,7 +306,8 @@ enum x86_state x86_handle_state(enum x86_state state)
|
||||
|
||||
/* Turn off power rails */
|
||||
gpio_set_level(GPIO_PP3300_DX_EN, 0);
|
||||
/* TODO(rspangler: turn off PP5000 after rev.1 */
|
||||
/* TODO(crosbug.com/p/23673): turn off PP5000 after rev.1 */
|
||||
/* gpio_set_level(GPIO_PP5000_EN, 0); */
|
||||
return X86_S3;
|
||||
|
||||
case X86_S3S5:
|
||||
@@ -320,9 +328,6 @@ enum x86_state x86_handle_state(enum x86_state state)
|
||||
gpio_set_level(GPIO_PCH_RSMRST_L, 0);
|
||||
gpio_set_level(GPIO_SUSP_VR_EN, 0);
|
||||
|
||||
/* TODO(rspangler): temporary hack on rev.1 boards */
|
||||
gpio_set_level(GPIO_PP5000_EN, 0);
|
||||
|
||||
return X86_G3;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user