forked from Minki/linux
clk: tegra: Handle UTMIPLL IDDQ
Export UTMIPLL IDDQ functions. These will be needed when powergating the XUSB partition. Signed-off-by: BH Hsieh <bhsieh@nvidia.com> Signed-off-by: Peter De Schrijver <pdeschrijver@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
This commit is contained in:
parent
24c3ebef1a
commit
3843832fc8
@ -2313,6 +2313,32 @@ static const char * const aclk_parents[] = {
|
||||
"clk_m"
|
||||
};
|
||||
|
||||
void tegra210_put_utmipll_in_iddq(void)
|
||||
{
|
||||
u32 reg;
|
||||
|
||||
reg = readl_relaxed(clk_base + UTMIPLL_HW_PWRDN_CFG0);
|
||||
|
||||
if (reg & UTMIPLL_HW_PWRDN_CFG0_UTMIPLL_LOCK) {
|
||||
pr_err("trying to assert IDDQ while UTMIPLL is locked\n");
|
||||
return;
|
||||
}
|
||||
|
||||
reg |= UTMIPLL_HW_PWRDN_CFG0_IDDQ_OVERRIDE;
|
||||
writel_relaxed(reg, clk_base + UTMIPLL_HW_PWRDN_CFG0);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(tegra210_put_utmipll_in_iddq);
|
||||
|
||||
void tegra210_put_utmipll_out_iddq(void)
|
||||
{
|
||||
u32 reg;
|
||||
|
||||
reg = readl_relaxed(clk_base + UTMIPLL_HW_PWRDN_CFG0);
|
||||
reg &= ~UTMIPLL_HW_PWRDN_CFG0_IDDQ_OVERRIDE;
|
||||
writel_relaxed(reg, clk_base + UTMIPLL_HW_PWRDN_CFG0);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(tegra210_put_utmipll_out_iddq);
|
||||
|
||||
static __init void tegra210_periph_clk_init(void __iomem *clk_base,
|
||||
void __iomem *pmc_base)
|
||||
{
|
||||
|
@ -125,5 +125,7 @@ extern void tegra210_xusb_pll_hw_control_enable(void);
|
||||
extern void tegra210_xusb_pll_hw_sequence_start(void);
|
||||
extern void tegra210_sata_pll_hw_control_enable(void);
|
||||
extern void tegra210_sata_pll_hw_sequence_start(void);
|
||||
extern void tegra210_put_utmipll_in_iddq(void);
|
||||
extern void tegra210_put_utmipll_out_iddq(void);
|
||||
|
||||
#endif /* __LINUX_CLK_TEGRA_H_ */
|
||||
|
Loading…
Reference in New Issue
Block a user