mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2025-12-30 18:41:11 +00:00
reef: Enable PMIC after 3.3V
This changes the ordering of rail/PMIC init slightly so that the 3.3V rail comes up before the PMIC, which follows the ordering in the PMIC datasheet for cold booting. The way we did it earlier was to avoid interrupt storms caused by powering the SoC's GPIO block with SLP signals before powering the PMIC. However the PMIC ignores the SLP signals when it's first enabled, so while the suprious interrupts were visible on the scope it's unlikely that the software was affected. OTOH, as Kevin pointed out in CL:358913 enabling the PMIC before the 3.3V causes a race condition whereby the PMIC may fault. BUG=chrome-os-partner:51323 BRANCH=none TEST=built and booted on EVT Signed-off-by: Rachel Nancollas <rachelsn@chromium.org> Signed-off-by: David Hendricks <dhendrix@chromium.org> Change-Id: I6eb734f0600daa5de0d970ce228cf3e7ec97d01d Reviewed-on: https://chromium-review.googlesource.com/372344 Commit-Ready: David Hendricks <dhendrix@chromium.org> Tested-by: David Hendricks <dhendrix@chromium.org> Reviewed-by: Kevin K Wong <kevin.k.wong@intel.com> Reviewed-by: Shawn N <shawnn@chromium.org>
This commit is contained in:
committed by
chrome-bot
parent
862644b9bb
commit
9342bb62d7
@@ -375,14 +375,13 @@ static void chipset_pre_init(void)
|
||||
* To prevent SLP glitches, PMIC_EN (V5A_EN) should be enabled
|
||||
* at the same time as PP3300 (chrome-os-partner:51323).
|
||||
*/
|
||||
|
||||
/* Enable PMIC */
|
||||
gpio_set_level(GPIO_PMIC_EN, 1);
|
||||
|
||||
/* Enable 3.3V rail */
|
||||
gpio_set_level(GPIO_EN_PP3300, 1);
|
||||
while (!gpio_get_level(GPIO_PP3300_PG))
|
||||
;
|
||||
|
||||
/* Enable PMIC */
|
||||
gpio_set_level(GPIO_PMIC_EN, 1);
|
||||
#endif
|
||||
}
|
||||
DECLARE_HOOK(HOOK_CHIPSET_PRE_INIT, chipset_pre_init, HOOK_PRIO_DEFAULT);
|
||||
|
||||
Reference in New Issue
Block a user