aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-w90x900
diff options
context:
space:
mode:
authorGlenn Elliott <gelliott@cs.unc.edu>2012-03-04 19:47:13 -0500
committerGlenn Elliott <gelliott@cs.unc.edu>2012-03-04 19:47:13 -0500
commitc71c03bda1e86c9d5198c5d83f712e695c4f2a1e (patch)
treeecb166cb3e2b7e2adb3b5e292245fefd23381ac8 /arch/arm/mach-w90x900
parentea53c912f8a86a8567697115b6a0d8152beee5c8 (diff)
parent6a00f206debf8a5c8899055726ad127dbeeed098 (diff)
Merge branch 'mpi-master' into wip-k-fmlpwip-k-fmlp
Conflicts: litmus/sched_cedf.c
Diffstat (limited to 'arch/arm/mach-w90x900')
-rw-r--r--arch/arm/mach-w90x900/clock.h2
-rw-r--r--arch/arm/mach-w90x900/include/mach/memory.h2
-rw-r--r--arch/arm/mach-w90x900/include/mach/uncompress.h2
-rw-r--r--arch/arm/mach-w90x900/irq.c24
-rw-r--r--arch/arm/mach-w90x900/mach-nuc910evb.c2
-rw-r--r--arch/arm/mach-w90x900/mach-nuc950evb.c2
-rw-r--r--arch/arm/mach-w90x900/mach-nuc960evb.c2
-rw-r--r--arch/arm/mach-w90x900/time.c20
8 files changed, 17 insertions, 39 deletions
diff --git a/arch/arm/mach-w90x900/clock.h b/arch/arm/mach-w90x900/clock.h
index c56ddab3d912..b88a1b16b2e9 100644
--- a/arch/arm/mach-w90x900/clock.h
+++ b/arch/arm/mach-w90x900/clock.h
@@ -10,7 +10,7 @@
10 * the Free Software Foundation; either version 2 of the License. 10 * the Free Software Foundation; either version 2 of the License.
11 */ 11 */
12 12
13#include <asm/clkdev.h> 13#include <linux/clkdev.h>
14 14
15void nuc900_clk_enable(struct clk *clk, int enable); 15void nuc900_clk_enable(struct clk *clk, int enable);
16void nuc900_subclk_enable(struct clk *clk, int enable); 16void nuc900_subclk_enable(struct clk *clk, int enable);
diff --git a/arch/arm/mach-w90x900/include/mach/memory.h b/arch/arm/mach-w90x900/include/mach/memory.h
index 971b80702c27..f02905ba7746 100644
--- a/arch/arm/mach-w90x900/include/mach/memory.h
+++ b/arch/arm/mach-w90x900/include/mach/memory.h
@@ -18,6 +18,6 @@
18#ifndef __ASM_ARCH_MEMORY_H 18#ifndef __ASM_ARCH_MEMORY_H
19#define __ASM_ARCH_MEMORY_H 19#define __ASM_ARCH_MEMORY_H
20 20
21#define PHYS_OFFSET UL(0x00000000) 21#define PLAT_PHYS_OFFSET UL(0x00000000)
22 22
23#endif 23#endif
diff --git a/arch/arm/mach-w90x900/include/mach/uncompress.h b/arch/arm/mach-w90x900/include/mach/uncompress.h
index 56f1a74d7016..03130212ace2 100644
--- a/arch/arm/mach-w90x900/include/mach/uncompress.h
+++ b/arch/arm/mach-w90x900/include/mach/uncompress.h
@@ -27,7 +27,7 @@
27#define arch_decomp_wdog() 27#define arch_decomp_wdog()
28 28
29#define TX_DONE (UART_LSR_TEMT | UART_LSR_THRE) 29#define TX_DONE (UART_LSR_TEMT | UART_LSR_THRE)
30static volatile u32 * uart_base = (u32 *)UART0_PA; 30static volatile u32 * const uart_base = (u32 *)UART0_PA;
31 31
32static void putc(int ch) 32static void putc(int ch)
33{ 33{
diff --git a/arch/arm/mach-w90x900/irq.c b/arch/arm/mach-w90x900/irq.c
index 0ce9d8e867eb..7bf143c443f1 100644
--- a/arch/arm/mach-w90x900/irq.c
+++ b/arch/arm/mach-w90x900/irq.c
@@ -92,15 +92,15 @@ static void nuc900_group_enable(struct group_irq *gpirq, int enable)
92 __raw_writel(regval, REG_AIC_GEN); 92 __raw_writel(regval, REG_AIC_GEN);
93} 93}
94 94
95static void nuc900_irq_mask(unsigned int irq) 95static void nuc900_irq_mask(struct irq_data *d)
96{ 96{
97 struct group_irq *group_irq; 97 struct group_irq *group_irq;
98 98
99 group_irq = NULL; 99 group_irq = NULL;
100 100
101 __raw_writel(1 << irq, REG_AIC_MDCR); 101 __raw_writel(1 << d->irq, REG_AIC_MDCR);
102 102
103 switch (irq) { 103 switch (d->irq) {
104 case IRQ_GROUP0: 104 case IRQ_GROUP0:
105 group_irq = &group_nirq0; 105 group_irq = &group_nirq0;
106 break; 106 break;
@@ -143,20 +143,20 @@ static void nuc900_irq_mask(unsigned int irq)
143 * to REG_AIC_EOSCR for ACK 143 * to REG_AIC_EOSCR for ACK
144 */ 144 */
145 145
146static void nuc900_irq_ack(unsigned int irq) 146static void nuc900_irq_ack(struct irq_data *d)
147{ 147{
148 __raw_writel(0x01, REG_AIC_EOSCR); 148 __raw_writel(0x01, REG_AIC_EOSCR);
149} 149}
150 150
151static void nuc900_irq_unmask(unsigned int irq) 151static void nuc900_irq_unmask(struct irq_data *d)
152{ 152{
153 struct group_irq *group_irq; 153 struct group_irq *group_irq;
154 154
155 group_irq = NULL; 155 group_irq = NULL;
156 156
157 __raw_writel(1 << irq, REG_AIC_MECR); 157 __raw_writel(1 << d->irq, REG_AIC_MECR);
158 158
159 switch (irq) { 159 switch (d->irq) {
160 case IRQ_GROUP0: 160 case IRQ_GROUP0:
161 group_irq = &group_nirq0; 161 group_irq = &group_nirq0;
162 break; 162 break;
@@ -195,9 +195,9 @@ static void nuc900_irq_unmask(unsigned int irq)
195} 195}
196 196
197static struct irq_chip nuc900_irq_chip = { 197static struct irq_chip nuc900_irq_chip = {
198 .ack = nuc900_irq_ack, 198 .irq_ack = nuc900_irq_ack,
199 .mask = nuc900_irq_mask, 199 .irq_mask = nuc900_irq_mask,
200 .unmask = nuc900_irq_unmask, 200 .irq_unmask = nuc900_irq_unmask,
201}; 201};
202 202
203void __init nuc900_init_irq(void) 203void __init nuc900_init_irq(void)
@@ -207,8 +207,8 @@ void __init nuc900_init_irq(void)
207 __raw_writel(0xFFFFFFFE, REG_AIC_MDCR); 207 __raw_writel(0xFFFFFFFE, REG_AIC_MDCR);
208 208
209 for (irqno = IRQ_WDT; irqno <= IRQ_ADC; irqno++) { 209 for (irqno = IRQ_WDT; irqno <= IRQ_ADC; irqno++) {
210 set_irq_chip(irqno, &nuc900_irq_chip); 210 irq_set_chip_and_handler(irqno, &nuc900_irq_chip,
211 set_irq_handler(irqno, handle_level_irq); 211 handle_level_irq);
212 set_irq_flags(irqno, IRQF_VALID); 212 set_irq_flags(irqno, IRQF_VALID);
213 } 213 }
214} 214}
diff --git a/arch/arm/mach-w90x900/mach-nuc910evb.c b/arch/arm/mach-w90x900/mach-nuc910evb.c
index ec05bda946f3..30fccde94fb8 100644
--- a/arch/arm/mach-w90x900/mach-nuc910evb.c
+++ b/arch/arm/mach-w90x900/mach-nuc910evb.c
@@ -34,8 +34,6 @@ static void __init nuc910evb_init(void)
34 34
35MACHINE_START(W90P910EVB, "W90P910EVB") 35MACHINE_START(W90P910EVB, "W90P910EVB")
36 /* Maintainer: Wan ZongShun */ 36 /* Maintainer: Wan ZongShun */
37 .phys_io = W90X900_PA_UART,
38 .io_pg_offst = (((u32)W90X900_VA_UART) >> 18) & 0xfffc,
39 .boot_params = 0, 37 .boot_params = 0,
40 .map_io = nuc910evb_map_io, 38 .map_io = nuc910evb_map_io,
41 .init_irq = nuc900_init_irq, 39 .init_irq = nuc900_init_irq,
diff --git a/arch/arm/mach-w90x900/mach-nuc950evb.c b/arch/arm/mach-w90x900/mach-nuc950evb.c
index 04d295f89eb0..590c99b96dc1 100644
--- a/arch/arm/mach-w90x900/mach-nuc950evb.c
+++ b/arch/arm/mach-w90x900/mach-nuc950evb.c
@@ -37,8 +37,6 @@ static void __init nuc950evb_init(void)
37 37
38MACHINE_START(W90P950EVB, "W90P950EVB") 38MACHINE_START(W90P950EVB, "W90P950EVB")
39 /* Maintainer: Wan ZongShun */ 39 /* Maintainer: Wan ZongShun */
40 .phys_io = W90X900_PA_UART,
41 .io_pg_offst = (((u32)W90X900_VA_UART) >> 18) & 0xfffc,
42 .boot_params = 0, 40 .boot_params = 0,
43 .map_io = nuc950evb_map_io, 41 .map_io = nuc950evb_map_io,
44 .init_irq = nuc900_init_irq, 42 .init_irq = nuc900_init_irq,
diff --git a/arch/arm/mach-w90x900/mach-nuc960evb.c b/arch/arm/mach-w90x900/mach-nuc960evb.c
index e3a46f19f2bc..e09c645d61b6 100644
--- a/arch/arm/mach-w90x900/mach-nuc960evb.c
+++ b/arch/arm/mach-w90x900/mach-nuc960evb.c
@@ -34,8 +34,6 @@ static void __init nuc960evb_init(void)
34 34
35MACHINE_START(W90N960EVB, "W90N960EVB") 35MACHINE_START(W90N960EVB, "W90N960EVB")
36 /* Maintainer: Wan ZongShun */ 36 /* Maintainer: Wan ZongShun */
37 .phys_io = W90X900_PA_UART,
38 .io_pg_offst = (((u32)W90X900_VA_UART) >> 18) & 0xfffc,
39 .boot_params = 0, 37 .boot_params = 0,
40 .map_io = nuc960evb_map_io, 38 .map_io = nuc960evb_map_io,
41 .init_irq = nuc900_init_irq, 39 .init_irq = nuc900_init_irq,
diff --git a/arch/arm/mach-w90x900/time.c b/arch/arm/mach-w90x900/time.c
index b80f769bc135..a2c4e2d0a0d4 100644
--- a/arch/arm/mach-w90x900/time.c
+++ b/arch/arm/mach-w90x900/time.c
@@ -43,7 +43,6 @@
43#define PRESCALE 0x63 /* Divider = prescale + 1 */ 43#define PRESCALE 0x63 /* Divider = prescale + 1 */
44 44
45#define TDR_SHIFT 24 45#define TDR_SHIFT 24
46#define TDR_MASK ((1 << TDR_SHIFT) - 1)
47 46
48static unsigned int timer0_load; 47static unsigned int timer0_load;
49 48
@@ -143,20 +142,6 @@ static void __init nuc900_clockevents_init(void)
143 clockevents_register_device(&nuc900_clockevent_device); 142 clockevents_register_device(&nuc900_clockevent_device);
144} 143}
145 144
146static cycle_t nuc900_get_cycles(struct clocksource *cs)
147{
148 return (~__raw_readl(REG_TDR1)) & TDR_MASK;
149}
150
151static struct clocksource clocksource_nuc900 = {
152 .name = "nuc900-timer1",
153 .rating = 200,
154 .read = nuc900_get_cycles,
155 .mask = CLOCKSOURCE_MASK(TDR_SHIFT),
156 .shift = 10,
157 .flags = CLOCK_SOURCE_IS_CONTINUOUS,
158};
159
160static void __init nuc900_clocksource_init(void) 145static void __init nuc900_clocksource_init(void)
161{ 146{
162 unsigned int val; 147 unsigned int val;
@@ -176,9 +161,8 @@ static void __init nuc900_clocksource_init(void)
176 val |= (COUNTEN | PERIOD | PRESCALE); 161 val |= (COUNTEN | PERIOD | PRESCALE);
177 __raw_writel(val, REG_TCSR1); 162 __raw_writel(val, REG_TCSR1);
178 163
179 clocksource_nuc900.mult = 164 clocksource_mmio_init(REG_TDR1, "nuc900-timer1", rate, 200,
180 clocksource_khz2mult((rate / 1000), clocksource_nuc900.shift); 165 TDR_SHIFT, clocksource_mmio_readl_down);
181 clocksource_register(&clocksource_nuc900);
182} 166}
183 167
184static void __init nuc900_timer_init(void) 168static void __init nuc900_timer_init(void)