| Index: arch/arm/cpu/armv7/tegra2/ap20.c
|
| diff --git a/arch/arm/cpu/armv7/tegra2/ap20.c b/arch/arm/cpu/armv7/tegra2/ap20.c
|
| index 60dd5dfc08489c46b1243556fa9adac662451f05..a9bfd6a663c11e040fd2050c71c8934053a5f610 100644
|
| --- a/arch/arm/cpu/armv7/tegra2/ap20.c
|
| +++ b/arch/arm/cpu/armv7/tegra2/ap20.c
|
| @@ -25,6 +25,7 @@
|
| #include <asm/io.h>
|
| #include <asm/arch/tegra2.h>
|
| #include <asm/arch/clk_rst.h>
|
| +#include <asm/arch/clock.h>
|
| #include <asm/arch/pmc.h>
|
| #include <asm/arch/pinmux.h>
|
| #include <asm/arch/scu.h>
|
| @@ -35,33 +36,34 @@ u32 s_first_boot = 1;
|
| void init_pllx(void)
|
| {
|
| struct clk_rst_ctlr *clkrst = (struct clk_rst_ctlr *)NV_PA_CLK_RST_BASE;
|
| + struct clk_pll *pll = &clkrst->crc_pll[CLOCK_PLL_ID_XCPU];
|
| u32 reg;
|
|
|
| /* If PLLX is already enabled, just return */
|
| - reg = readl(&clkrst->crc_pllx_base);
|
| - if (reg & PLL_ENABLE)
|
| + reg = readl(&pll->pll_base);
|
| + if (reg & PLL_ENABLE_BIT)
|
| return;
|
|
|
| /* Set PLLX_MISC */
|
| reg = CPCON; /* CPCON[11:8] = 0001 */
|
| - writel(reg, &clkrst->crc_pllx_misc);
|
| + writel(reg, &pll->pll_misc);
|
|
|
| /* Use 12MHz clock here */
|
| - reg = (PLL_BYPASS | PLL_DIVM);
|
| + reg = (PLL_BYPASS_BIT | PLL_DIVM_VALUE);
|
| reg |= (1000 << 8); /* DIVN = 0x3E8 */
|
| - writel(reg, &clkrst->crc_pllx_base);
|
| + writel(reg, &pll->pll_base);
|
|
|
| - reg |= PLL_ENABLE;
|
| - writel(reg, &clkrst->crc_pllx_base);
|
| + reg |= PLL_ENABLE_BIT;
|
| + writel(reg, &pll->pll_base);
|
|
|
| - reg &= ~PLL_BYPASS;
|
| - writel(reg, &clkrst->crc_pllx_base);
|
| + reg &= ~PLL_BYPASS_BIT;
|
| + writel(reg, &pll->pll_base);
|
| }
|
|
|
| static void enable_cpu_clock(int enable)
|
| {
|
| struct clk_rst_ctlr *clkrst = (struct clk_rst_ctlr *)NV_PA_CLK_RST_BASE;
|
| - u32 reg, clk;
|
| + u32 clk;
|
|
|
| /*
|
| * NOTE:
|
| @@ -83,10 +85,6 @@ static void enable_cpu_clock(int enable)
|
| writel(SUPER_CCLK_DIVIDER, &clkrst->crc_super_cclk_div);
|
| }
|
|
|
| - /* Fetch the register containing the main CPU complex clock enable */
|
| - reg = readl(&clkrst->crc_clk_out_enb_l);
|
| - reg |= CLK_ENB_CPU;
|
| -
|
| /*
|
| * Read the register containing the individual CPU clock enables and
|
| * always stop the clock to CPU 1.
|
| @@ -103,7 +101,7 @@ static void enable_cpu_clock(int enable)
|
| }
|
|
|
| writel(clk, &clkrst->crc_clk_cpu_cmplx);
|
| - writel(reg, &clkrst->crc_clk_out_enb_l);
|
| + clock_enable(PERIPH_ID_CPU);
|
| }
|
|
|
| static int is_cpu_powered(void)
|
| @@ -179,7 +177,7 @@ static void enable_cpu_power_rail(void)
|
| static void reset_A9_cpu(int reset)
|
| {
|
| struct clk_rst_ctlr *clkrst = (struct clk_rst_ctlr *)NV_PA_CLK_RST_BASE;
|
| - u32 reg, cpu;
|
| + u32 cpu;
|
|
|
| /*
|
| * NOTE: Regardless of whether the request is to hold the CPU in reset
|
| @@ -193,44 +191,27 @@ static void reset_A9_cpu(int reset)
|
| cpu = SET_DBGRESET1 | SET_DERESET1 | SET_CPURESET1;
|
| writel(cpu, &clkrst->crc_cpu_cmplx_set);
|
|
|
| - reg = readl(&clkrst->crc_rst_dev_l);
|
| if (reset) {
|
| /* Now place CPU0 into reset */
|
| cpu |= SET_DBGRESET0 | SET_DERESET0 | SET_CPURESET0;
|
| writel(cpu, &clkrst->crc_cpu_cmplx_set);
|
| -
|
| - /* Enable master CPU reset */
|
| - reg |= SWR_CPU_RST;
|
| } else {
|
| /* Take CPU0 out of reset */
|
| cpu = CLR_DBGRESET0 | CLR_DERESET0 | CLR_CPURESET0;
|
| writel(cpu, &clkrst->crc_cpu_cmplx_clr);
|
| -
|
| - /* Disable master CPU reset */
|
| - reg &= ~SWR_CPU_RST;
|
| }
|
|
|
| - writel(reg, &clkrst->crc_rst_dev_l);
|
| + /* Enable/Disable master CPU reset */
|
| + reset_set_enable(PERIPH_ID_CPU, reset);
|
| }
|
|
|
| static void clock_enable_coresight(int enable)
|
| {
|
| struct clk_rst_ctlr *clkrst = (struct clk_rst_ctlr *)NV_PA_CLK_RST_BASE;
|
| - u32 rst, clk, src;
|
| -
|
| - rst = readl(&clkrst->crc_rst_dev_u);
|
| - clk = readl(&clkrst->crc_clk_out_enb_u);
|
| -
|
| - if (enable) {
|
| - rst &= ~SWR_CSITE_RST;
|
| - clk |= CLK_ENB_CSITE;
|
| - } else {
|
| - rst |= SWR_CSITE_RST;
|
| - clk &= ~CLK_ENB_CSITE;
|
| - }
|
| + u32 rst, src;
|
|
|
| - writel(clk, &clkrst->crc_clk_out_enb_u);
|
| - writel(rst, &clkrst->crc_rst_dev_u);
|
| + clock_set_enable(PERIPH_ID_CORESIGHT, enable);
|
| + reset_set_enable(PERIPH_ID_CORESIGHT, !enable);
|
|
|
| if (enable) {
|
| /*
|
|
|