diff options
Diffstat (limited to 'drivers/clk/tegra/clk-pll.c')
-rw-r--r-- | drivers/clk/tegra/clk-pll.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/drivers/clk/tegra/clk-pll.c b/drivers/clk/tegra/clk-pll.c index 637b62ccc91e..c7c6d8fb32fb 100644 --- a/drivers/clk/tegra/clk-pll.c +++ b/drivers/clk/tegra/clk-pll.c | |||
@@ -110,6 +110,12 @@ | |||
110 | #define XUSBIO_PLL_CFG0_SEQ_ENABLE BIT(24) | 110 | #define XUSBIO_PLL_CFG0_SEQ_ENABLE BIT(24) |
111 | #define XUSBIO_PLL_CFG0_SEQ_START_STATE BIT(25) | 111 | #define XUSBIO_PLL_CFG0_SEQ_START_STATE BIT(25) |
112 | 112 | ||
113 | #define SATA_PLL_CFG0 0x490 | ||
114 | #define SATA_PLL_CFG0_PADPLL_RESET_SWCTL BIT(0) | ||
115 | #define SATA_PLL_CFG0_PADPLL_USE_LOCKDET BIT(2) | ||
116 | #define SATA_PLL_CFG0_SEQ_ENABLE BIT(24) | ||
117 | #define SATA_PLL_CFG0_SEQ_START_STATE BIT(25) | ||
118 | |||
113 | #define PLLE_MISC_PLLE_PTS BIT(8) | 119 | #define PLLE_MISC_PLLE_PTS BIT(8) |
114 | #define PLLE_MISC_IDDQ_SW_VALUE BIT(13) | 120 | #define PLLE_MISC_IDDQ_SW_VALUE BIT(13) |
115 | #define PLLE_MISC_IDDQ_SW_CTRL BIT(14) | 121 | #define PLLE_MISC_IDDQ_SW_CTRL BIT(14) |
@@ -1361,6 +1367,19 @@ static int clk_plle_tegra114_enable(struct clk_hw *hw) | |||
1361 | val |= XUSBIO_PLL_CFG0_SEQ_ENABLE; | 1367 | val |= XUSBIO_PLL_CFG0_SEQ_ENABLE; |
1362 | pll_writel(val, XUSBIO_PLL_CFG0, pll); | 1368 | pll_writel(val, XUSBIO_PLL_CFG0, pll); |
1363 | 1369 | ||
1370 | /* Enable hw control of SATA pll */ | ||
1371 | val = pll_readl(SATA_PLL_CFG0, pll); | ||
1372 | val &= ~SATA_PLL_CFG0_PADPLL_RESET_SWCTL; | ||
1373 | val |= SATA_PLL_CFG0_PADPLL_USE_LOCKDET; | ||
1374 | val |= SATA_PLL_CFG0_SEQ_START_STATE; | ||
1375 | pll_writel(val, SATA_PLL_CFG0, pll); | ||
1376 | |||
1377 | udelay(1); | ||
1378 | |||
1379 | val = pll_readl(SATA_PLL_CFG0, pll); | ||
1380 | val |= SATA_PLL_CFG0_SEQ_ENABLE; | ||
1381 | pll_writel(val, SATA_PLL_CFG0, pll); | ||
1382 | |||
1364 | out: | 1383 | out: |
1365 | if (pll->lock) | 1384 | if (pll->lock) |
1366 | spin_unlock_irqrestore(pll->lock, flags); | 1385 | spin_unlock_irqrestore(pll->lock, flags); |