sun6i: Restrict some register initialization to Allwinner A31 SoC
These days many Allwinner SoCs use clock_sun6i.c, although out of them only the (original sun6i) A31 has a second MBUS clock register. Also the requirement for setting up the PRCM PLL_CTLR1 register to provide the proper voltage seems to be a property of older SoCs only as well. Restrict the MBUS initialization to this SoC only to avoid writing bogus values to (undefined) registers in other chips. I can only verify that the PLL voltage setup is not needed for H3 and A64, so for now we only spare those two SoCs. Signed-off-by: Andre Przywara <andre.przywara@arm.com> Reviewed-by: Alexander Graf <agraf@suse.de> Reviewed-by: Chen-Yu Tsai <wens@csie.org> Reviewed-by: Simon Glass <sjg@chromium.org> Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com> Reviewed-by: Jagan Teki <jagan@openedev.com>
This commit is contained in:
parent
a648936143
commit
2865433a46
1 changed files with 5 additions and 1 deletions
|
@ -21,6 +21,8 @@ void clock_init_safe(void)
|
|||
{
|
||||
struct sunxi_ccm_reg * const ccm =
|
||||
(struct sunxi_ccm_reg *)SUNXI_CCM_BASE;
|
||||
|
||||
#if !defined(CONFIG_MACH_SUN8I_H3) && !defined(CONFIG_MACH_SUN50I)
|
||||
struct sunxi_prcm_reg * const prcm =
|
||||
(struct sunxi_prcm_reg *)SUNXI_PRCM_BASE;
|
||||
|
||||
|
@ -31,6 +33,7 @@ void clock_init_safe(void)
|
|||
PRCM_PLL_CTRL_LDO_DIGITAL_EN | PRCM_PLL_CTRL_LDO_ANALOG_EN |
|
||||
PRCM_PLL_CTRL_EXT_OSC_EN | PRCM_PLL_CTRL_LDO_OUT_L(1140));
|
||||
clrbits_le32(&prcm->pll_ctrl1, PRCM_PLL_CTRL_LDO_KEY_MASK);
|
||||
#endif
|
||||
|
||||
clock_set_pll1(408000000);
|
||||
|
||||
|
@ -41,7 +44,8 @@ void clock_init_safe(void)
|
|||
writel(AHB1_ABP1_DIV_DEFAULT, &ccm->ahb1_apb1_div);
|
||||
|
||||
writel(MBUS_CLK_DEFAULT, &ccm->mbus0_clk_cfg);
|
||||
writel(MBUS_CLK_DEFAULT, &ccm->mbus1_clk_cfg);
|
||||
if (IS_ENABLED(CONFIG_MACH_SUN6I))
|
||||
writel(MBUS_CLK_DEFAULT, &ccm->mbus1_clk_cfg);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Reference in a new issue