diff options
author | Cyril Chemparathy <cyril@ti.com> | 2010-05-07 17:06:36 -0400 |
---|---|---|
committer | Kevin Hilman <khilman@deeprootsystems.com> | 2010-05-13 13:05:27 -0400 |
commit | e4c822c7e98cdda78b10a696b030fc20b22dcab4 (patch) | |
tree | 95a1ec13b404369fbc5104aed64adf29a8f78709 /arch | |
parent | 1bcd38ad2de4c1cd30387c588dfb28d637d4111d (diff) |
Davinci: psc - use ioremap()
This patch modifies the psc and clock control code to use ioremap()ed
registers.
Signed-off-by: Cyril Chemparathy <cyril@ti.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-davinci/clock.c | 14 | ||||
-rw-r--r-- | arch/arm/mach-davinci/da830.c | 5 | ||||
-rw-r--r-- | arch/arm/mach-davinci/da850.c | 5 | ||||
-rw-r--r-- | arch/arm/mach-davinci/dm355.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-davinci/dm365.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-davinci/dm644x.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-davinci/dm646x.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-davinci/include/mach/common.h | 2 | ||||
-rw-r--r-- | arch/arm/mach-davinci/psc.c | 7 |
9 files changed, 23 insertions, 26 deletions
diff --git a/arch/arm/mach-davinci/clock.c b/arch/arm/mach-davinci/clock.c index 868cb7693499..054c303caead 100644 --- a/arch/arm/mach-davinci/clock.c +++ b/arch/arm/mach-davinci/clock.c | |||
@@ -302,7 +302,6 @@ static unsigned long clk_pllclk_recalc(struct clk *clk) | |||
302 | struct pll_data *pll = clk->pll_data; | 302 | struct pll_data *pll = clk->pll_data; |
303 | unsigned long rate = clk->rate; | 303 | unsigned long rate = clk->rate; |
304 | 304 | ||
305 | pll->base = IO_ADDRESS(pll->phys_base); | ||
306 | ctrl = __raw_readl(pll->base + PLLCTL); | 305 | ctrl = __raw_readl(pll->base + PLLCTL); |
307 | rate = pll->input_rate = clk->parent->rate; | 306 | rate = pll->input_rate = clk->parent->rate; |
308 | 307 | ||
@@ -458,8 +457,17 @@ int __init davinci_clk_init(struct clk_lookup *clocks) | |||
458 | clk->recalc = clk_leafclk_recalc; | 457 | clk->recalc = clk_leafclk_recalc; |
459 | } | 458 | } |
460 | 459 | ||
461 | if (clk->pll_data && !clk->pll_data->div_ratio_mask) | 460 | if (clk->pll_data) { |
462 | clk->pll_data->div_ratio_mask = PLLDIV_RATIO_MASK; | 461 | struct pll_data *pll = clk->pll_data; |
462 | |||
463 | if (!pll->div_ratio_mask) | ||
464 | pll->div_ratio_mask = PLLDIV_RATIO_MASK; | ||
465 | |||
466 | if (pll->phys_base && !pll->base) { | ||
467 | pll->base = ioremap(pll->phys_base, SZ_4K); | ||
468 | WARN_ON(!pll->base); | ||
469 | } | ||
470 | } | ||
463 | 471 | ||
464 | if (clk->recalc) | 472 | if (clk->recalc) |
465 | clk->rate = clk->recalc(clk); | 473 | clk->rate = clk->recalc(clk); |
diff --git a/arch/arm/mach-davinci/da830.c b/arch/arm/mach-davinci/da830.c index 8a2510c5236f..47a7f490cf6a 100644 --- a/arch/arm/mach-davinci/da830.c +++ b/arch/arm/mach-davinci/da830.c | |||
@@ -1127,10 +1127,7 @@ static struct map_desc da830_io_desc[] = { | |||
1127 | }, | 1127 | }, |
1128 | }; | 1128 | }; |
1129 | 1129 | ||
1130 | static void __iomem *da830_psc_bases[] = { | 1130 | static u32 da830_psc_bases[] = { DA8XX_PSC0_BASE, DA8XX_PSC1_BASE }; |
1131 | IO_ADDRESS(DA8XX_PSC0_BASE), | ||
1132 | IO_ADDRESS(DA8XX_PSC1_BASE), | ||
1133 | }; | ||
1134 | 1131 | ||
1135 | /* Contents of JTAG ID register used to identify exact cpu type */ | 1132 | /* Contents of JTAG ID register used to identify exact cpu type */ |
1136 | static struct davinci_id da830_ids[] = { | 1133 | static struct davinci_id da830_ids[] = { |
diff --git a/arch/arm/mach-davinci/da850.c b/arch/arm/mach-davinci/da850.c index ebfa5ca29a81..2a430bbbd393 100644 --- a/arch/arm/mach-davinci/da850.c +++ b/arch/arm/mach-davinci/da850.c | |||
@@ -782,10 +782,7 @@ static struct map_desc da850_io_desc[] = { | |||
782 | }, | 782 | }, |
783 | }; | 783 | }; |
784 | 784 | ||
785 | static void __iomem *da850_psc_bases[] = { | 785 | static u32 da850_psc_bases[] = { DA8XX_PSC0_BASE, DA8XX_PSC1_BASE }; |
786 | IO_ADDRESS(DA8XX_PSC0_BASE), | ||
787 | IO_ADDRESS(DA8XX_PSC1_BASE), | ||
788 | }; | ||
789 | 786 | ||
790 | /* Contents of JTAG ID register used to identify exact cpu type */ | 787 | /* Contents of JTAG ID register used to identify exact cpu type */ |
791 | static struct davinci_id da850_ids[] = { | 788 | static struct davinci_id da850_ids[] = { |
diff --git a/arch/arm/mach-davinci/dm355.c b/arch/arm/mach-davinci/dm355.c index 228b6d1460e5..70a18275c5da 100644 --- a/arch/arm/mach-davinci/dm355.c +++ b/arch/arm/mach-davinci/dm355.c | |||
@@ -783,9 +783,7 @@ static struct davinci_id dm355_ids[] = { | |||
783 | }, | 783 | }, |
784 | }; | 784 | }; |
785 | 785 | ||
786 | static void __iomem *dm355_psc_bases[] = { | 786 | static u32 dm355_psc_bases[] = { DAVINCI_PWR_SLEEP_CNTRL_BASE }; |
787 | IO_ADDRESS(DAVINCI_PWR_SLEEP_CNTRL_BASE), | ||
788 | }; | ||
789 | 787 | ||
790 | /* | 788 | /* |
791 | * T0_BOT: Timer 0, bottom: clockevent source for hrtimers | 789 | * T0_BOT: Timer 0, bottom: clockevent source for hrtimers |
diff --git a/arch/arm/mach-davinci/dm365.c b/arch/arm/mach-davinci/dm365.c index b396d58f130a..451a4efb7ddf 100644 --- a/arch/arm/mach-davinci/dm365.c +++ b/arch/arm/mach-davinci/dm365.c | |||
@@ -1002,9 +1002,7 @@ static struct davinci_id dm365_ids[] = { | |||
1002 | }, | 1002 | }, |
1003 | }; | 1003 | }; |
1004 | 1004 | ||
1005 | static void __iomem *dm365_psc_bases[] = { | 1005 | static u32 dm365_psc_bases[] = { DAVINCI_PWR_SLEEP_CNTRL_BASE }; |
1006 | IO_ADDRESS(DAVINCI_PWR_SLEEP_CNTRL_BASE), | ||
1007 | }; | ||
1008 | 1006 | ||
1009 | static struct davinci_timer_info dm365_timer_info = { | 1007 | static struct davinci_timer_info dm365_timer_info = { |
1010 | .timers = davinci_timer_instance, | 1008 | .timers = davinci_timer_instance, |
diff --git a/arch/arm/mach-davinci/dm644x.c b/arch/arm/mach-davinci/dm644x.c index 9859567788c9..ee654de38f34 100644 --- a/arch/arm/mach-davinci/dm644x.c +++ b/arch/arm/mach-davinci/dm644x.c | |||
@@ -674,9 +674,7 @@ static struct davinci_id dm644x_ids[] = { | |||
674 | }, | 674 | }, |
675 | }; | 675 | }; |
676 | 676 | ||
677 | static void __iomem *dm644x_psc_bases[] = { | 677 | static u32 dm644x_psc_bases[] = { DAVINCI_PWR_SLEEP_CNTRL_BASE }; |
678 | IO_ADDRESS(DAVINCI_PWR_SLEEP_CNTRL_BASE), | ||
679 | }; | ||
680 | 678 | ||
681 | /* | 679 | /* |
682 | * T0_BOT: Timer 0, bottom: clockevent source for hrtimers | 680 | * T0_BOT: Timer 0, bottom: clockevent source for hrtimers |
diff --git a/arch/arm/mach-davinci/dm646x.c b/arch/arm/mach-davinci/dm646x.c index f9a8cc46eafd..4c98ef003c47 100644 --- a/arch/arm/mach-davinci/dm646x.c +++ b/arch/arm/mach-davinci/dm646x.c | |||
@@ -758,9 +758,7 @@ static struct davinci_id dm646x_ids[] = { | |||
758 | }, | 758 | }, |
759 | }; | 759 | }; |
760 | 760 | ||
761 | static void __iomem *dm646x_psc_bases[] = { | 761 | static u32 dm646x_psc_bases[] = { DAVINCI_PWR_SLEEP_CNTRL_BASE }; |
762 | IO_ADDRESS(DAVINCI_PWR_SLEEP_CNTRL_BASE), | ||
763 | }; | ||
764 | 762 | ||
765 | /* | 763 | /* |
766 | * T0_BOT: Timer 0, bottom: clockevent source for hrtimers | 764 | * T0_BOT: Timer 0, bottom: clockevent source for hrtimers |
diff --git a/arch/arm/mach-davinci/include/mach/common.h b/arch/arm/mach-davinci/include/mach/common.h index 2e1546401397..4c8dfcb4d930 100644 --- a/arch/arm/mach-davinci/include/mach/common.h +++ b/arch/arm/mach-davinci/include/mach/common.h | |||
@@ -49,7 +49,7 @@ struct davinci_soc_info { | |||
49 | struct davinci_id *ids; | 49 | struct davinci_id *ids; |
50 | unsigned long ids_num; | 50 | unsigned long ids_num; |
51 | struct clk_lookup *cpu_clks; | 51 | struct clk_lookup *cpu_clks; |
52 | void __iomem **psc_bases; | 52 | u32 *psc_bases; |
53 | unsigned long psc_bases_num; | 53 | unsigned long psc_bases_num; |
54 | void __iomem *pinmux_base; | 54 | void __iomem *pinmux_base; |
55 | const struct mux_config *pinmux_pins; | 55 | const struct mux_config *pinmux_pins; |
diff --git a/arch/arm/mach-davinci/psc.c b/arch/arm/mach-davinci/psc.c index d7cb438c4df6..1b15dbd0a77b 100644 --- a/arch/arm/mach-davinci/psc.c +++ b/arch/arm/mach-davinci/psc.c | |||
@@ -38,8 +38,9 @@ int __init davinci_psc_is_clk_active(unsigned int ctlr, unsigned int id) | |||
38 | return 0; | 38 | return 0; |
39 | } | 39 | } |
40 | 40 | ||
41 | psc_base = soc_info->psc_bases[ctlr]; | 41 | psc_base = ioremap(soc_info->psc_bases[ctlr], SZ_4K); |
42 | mdstat = __raw_readl(psc_base + MDSTAT + 4 * id); | 42 | mdstat = __raw_readl(psc_base + MDSTAT + 4 * id); |
43 | iounmap(psc_base); | ||
43 | 44 | ||
44 | /* if clocked, state can be "Enable" or "SyncReset" */ | 45 | /* if clocked, state can be "Enable" or "SyncReset" */ |
45 | return mdstat & BIT(12); | 46 | return mdstat & BIT(12); |
@@ -59,7 +60,7 @@ void davinci_psc_config(unsigned int domain, unsigned int ctlr, | |||
59 | return; | 60 | return; |
60 | } | 61 | } |
61 | 62 | ||
62 | psc_base = soc_info->psc_bases[ctlr]; | 63 | psc_base = ioremap(soc_info->psc_bases[ctlr], SZ_4K); |
63 | 64 | ||
64 | mdctl = __raw_readl(psc_base + MDCTL + 4 * id); | 65 | mdctl = __raw_readl(psc_base + MDCTL + 4 * id); |
65 | mdctl &= ~MDSTAT_STATE_MASK; | 66 | mdctl &= ~MDSTAT_STATE_MASK; |
@@ -99,4 +100,6 @@ void davinci_psc_config(unsigned int domain, unsigned int ctlr, | |||
99 | do { | 100 | do { |
100 | mdstat = __raw_readl(psc_base + MDSTAT + 4 * id); | 101 | mdstat = __raw_readl(psc_base + MDSTAT + 4 * id); |
101 | } while (!((mdstat & MDSTAT_STATE_MASK) == next_state)); | 102 | } while (!((mdstat & MDSTAT_STATE_MASK) == next_state)); |
103 | |||
104 | iounmap(psc_base); | ||
102 | } | 105 | } |