msm: pil-q6v5-mss: Temporarily program MSS_MPLL1_CONFIG_CTL
Early samples of 8974 v1.0 hardware misconfigure the MPLL1 in
the Modem's primary bootloader. Since this ROM code cannot be
changed, work around the issue by setting a corrected configuration
register value before bringing the modem out of reset.
This change will be reverted when modem support on v1.0 hardware is
dropped, which is expected in the very near future.
Change-Id: Ia422e97730c48b5fd6a6fae084eafd9aa0ee34de
Signed-off-by: Matt Wagantall <mattw@codeaurora.org>
(cherry picked from commit ed97e33f4b886f1b5db122a04d6a2ea0238a208c)
(cherry picked from commit 700c500d9e2e1d067c31aa0f2446aea4ffd0c88d)
diff --git a/arch/arm/mach-msm/pil-q6v5-mss.c b/arch/arm/mach-msm/pil-q6v5-mss.c
index 7c372ee..1720729 100644
--- a/arch/arm/mach-msm/pil-q6v5-mss.c
+++ b/arch/arm/mach-msm/pil-q6v5-mss.c
@@ -79,6 +79,7 @@
static int pil_mss_enable_clks(struct q6v5_data *drv)
{
int ret;
+ void __iomem *mpll1_config_ctl;
ret = clk_prepare_enable(drv->ahb_clk);
if (ret)
@@ -99,6 +100,12 @@
if (ret)
goto err_rom_clk;
+ /* TODO: Remove when support for 8974v1.0 HW is dropped. */
+ mpll1_config_ctl = ioremap(0xFC981034, 0x4);
+ writel_relaxed(0x0300403D, mpll1_config_ctl);
+ mb();
+ iounmap(mpll1_config_ctl);
+
return 0;
err_rom_clk: