diff options
Diffstat (limited to 'arch/arm/mach-mmp/pxa910.c')
-rw-r--r-- | arch/arm/mach-mmp/pxa910.c | 44 |
1 files changed, 8 insertions, 36 deletions
diff --git a/arch/arm/mach-mmp/pxa910.c b/arch/arm/mach-mmp/pxa910.c index 6da52e9f2bdc..8b1e16fbb7a5 100644 --- a/arch/arm/mach-mmp/pxa910.c +++ b/arch/arm/mach-mmp/pxa910.c | |||
@@ -14,10 +14,10 @@ | |||
14 | #include <linux/io.h> | 14 | #include <linux/io.h> |
15 | #include <linux/platform_device.h> | 15 | #include <linux/platform_device.h> |
16 | 16 | ||
17 | #include <asm/hardware/cache-tauros2.h> | ||
17 | #include <asm/mach/time.h> | 18 | #include <asm/mach/time.h> |
18 | #include <mach/addr-map.h> | 19 | #include <mach/addr-map.h> |
19 | #include <mach/regs-apbc.h> | 20 | #include <mach/regs-apbc.h> |
20 | #include <mach/regs-apmu.h> | ||
21 | #include <mach/cputype.h> | 21 | #include <mach/cputype.h> |
22 | #include <mach/irqs.h> | 22 | #include <mach/irqs.h> |
23 | #include <mach/dma.h> | 23 | #include <mach/dma.h> |
@@ -25,7 +25,6 @@ | |||
25 | #include <mach/devices.h> | 25 | #include <mach/devices.h> |
26 | 26 | ||
27 | #include "common.h" | 27 | #include "common.h" |
28 | #include "clock.h" | ||
29 | 28 | ||
30 | #define MFPR_VIRT_BASE (APB_VIRT_BASE + 0x1e000) | 29 | #define MFPR_VIRT_BASE (APB_VIRT_BASE + 0x1e000) |
31 | 30 | ||
@@ -82,44 +81,16 @@ void __init pxa910_init_irq(void) | |||
82 | icu_init_irq(); | 81 | icu_init_irq(); |
83 | } | 82 | } |
84 | 83 | ||
85 | /* APB peripheral clocks */ | ||
86 | static APBC_CLK(uart1, PXA910_UART0, 1, 14745600); | ||
87 | static APBC_CLK(uart2, PXA910_UART1, 1, 14745600); | ||
88 | static APBC_CLK(twsi0, PXA168_TWSI0, 1, 33000000); | ||
89 | static APBC_CLK(twsi1, PXA168_TWSI1, 1, 33000000); | ||
90 | static APBC_CLK(pwm1, PXA910_PWM1, 1, 13000000); | ||
91 | static APBC_CLK(pwm2, PXA910_PWM2, 1, 13000000); | ||
92 | static APBC_CLK(pwm3, PXA910_PWM3, 1, 13000000); | ||
93 | static APBC_CLK(pwm4, PXA910_PWM4, 1, 13000000); | ||
94 | static APBC_CLK(gpio, PXA910_GPIO, 0, 13000000); | ||
95 | static APBC_CLK(rtc, PXA910_RTC, 8, 32768); | ||
96 | |||
97 | static APMU_CLK(nand, NAND, 0x19b, 156000000); | ||
98 | static APMU_CLK(u2o, USB, 0x1b, 480000000); | ||
99 | |||
100 | /* device and clock bindings */ | ||
101 | static struct clk_lookup pxa910_clkregs[] = { | ||
102 | INIT_CLKREG(&clk_uart1, "pxa2xx-uart.0", NULL), | ||
103 | INIT_CLKREG(&clk_uart2, "pxa2xx-uart.1", NULL), | ||
104 | INIT_CLKREG(&clk_twsi0, "pxa2xx-i2c.0", NULL), | ||
105 | INIT_CLKREG(&clk_twsi1, "pxa2xx-i2c.1", NULL), | ||
106 | INIT_CLKREG(&clk_pwm1, "pxa910-pwm.0", NULL), | ||
107 | INIT_CLKREG(&clk_pwm2, "pxa910-pwm.1", NULL), | ||
108 | INIT_CLKREG(&clk_pwm3, "pxa910-pwm.2", NULL), | ||
109 | INIT_CLKREG(&clk_pwm4, "pxa910-pwm.3", NULL), | ||
110 | INIT_CLKREG(&clk_nand, "pxa3xx-nand", NULL), | ||
111 | INIT_CLKREG(&clk_gpio, "pxa-gpio", NULL), | ||
112 | INIT_CLKREG(&clk_u2o, NULL, "U2OCLK"), | ||
113 | INIT_CLKREG(&clk_rtc, "sa1100-rtc", NULL), | ||
114 | }; | ||
115 | |||
116 | static int __init pxa910_init(void) | 84 | static int __init pxa910_init(void) |
117 | { | 85 | { |
118 | if (cpu_is_pxa910()) { | 86 | if (cpu_is_pxa910()) { |
87 | #ifdef CONFIG_CACHE_TAUROS2 | ||
88 | tauros2_init(0); | ||
89 | #endif | ||
119 | mfp_init_base(MFPR_VIRT_BASE); | 90 | mfp_init_base(MFPR_VIRT_BASE); |
120 | mfp_init_addr(pxa910_mfp_addr_map); | 91 | mfp_init_addr(pxa910_mfp_addr_map); |
121 | pxa_init_dma(IRQ_PXA910_DMA_INT0, 32); | 92 | pxa_init_dma(IRQ_PXA910_DMA_INT0, 32); |
122 | clkdev_add_table(ARRAY_AND_SIZE(pxa910_clkregs)); | 93 | pxa910_clk_init(); |
123 | } | 94 | } |
124 | 95 | ||
125 | return 0; | 96 | return 0; |
@@ -128,12 +99,13 @@ postcore_initcall(pxa910_init); | |||
128 | 99 | ||
129 | /* system timer - clock enabled, 3.25MHz */ | 100 | /* system timer - clock enabled, 3.25MHz */ |
130 | #define TIMER_CLK_RST (APBC_APBCLK | APBC_FNCLK | APBC_FNCLKSEL(3)) | 101 | #define TIMER_CLK_RST (APBC_APBCLK | APBC_FNCLK | APBC_FNCLKSEL(3)) |
102 | #define APBC_TIMERS APBC_REG(0x34) | ||
131 | 103 | ||
132 | static void __init pxa910_timer_init(void) | 104 | static void __init pxa910_timer_init(void) |
133 | { | 105 | { |
134 | /* reset and configure */ | 106 | /* reset and configure */ |
135 | __raw_writel(APBC_APBCLK | APBC_RST, APBC_PXA910_TIMERS); | 107 | __raw_writel(APBC_APBCLK | APBC_RST, APBC_TIMERS); |
136 | __raw_writel(TIMER_CLK_RST, APBC_PXA910_TIMERS); | 108 | __raw_writel(TIMER_CLK_RST, APBC_TIMERS); |
137 | 109 | ||
138 | timer_init(IRQ_PXA910_AP1_TIMER1); | 110 | timer_init(IRQ_PXA910_AP1_TIMER1); |
139 | } | 111 | } |