diff options
Diffstat (limited to 'arch/arm/mach-pxa/viper.c')
-rw-r--r-- | arch/arm/mach-pxa/viper.c | 50 |
1 files changed, 24 insertions, 26 deletions
diff --git a/arch/arm/mach-pxa/viper.c b/arch/arm/mach-pxa/viper.c index e90114a7e246..903218eab56d 100644 --- a/arch/arm/mach-pxa/viper.c +++ b/arch/arm/mach-pxa/viper.c | |||
@@ -36,6 +36,7 @@ | |||
36 | #include <linux/gpio.h> | 36 | #include <linux/gpio.h> |
37 | #include <linux/jiffies.h> | 37 | #include <linux/jiffies.h> |
38 | #include <linux/i2c-gpio.h> | 38 | #include <linux/i2c-gpio.h> |
39 | #include <linux/i2c/pxa-i2c.h> | ||
39 | #include <linux/serial_8250.h> | 40 | #include <linux/serial_8250.h> |
40 | #include <linux/smc91x.h> | 41 | #include <linux/smc91x.h> |
41 | #include <linux/pwm_backlight.h> | 42 | #include <linux/pwm_backlight.h> |
@@ -43,11 +44,11 @@ | |||
43 | #include <linux/mtd/mtd.h> | 44 | #include <linux/mtd/mtd.h> |
44 | #include <linux/mtd/partitions.h> | 45 | #include <linux/mtd/partitions.h> |
45 | #include <linux/mtd/physmap.h> | 46 | #include <linux/mtd/physmap.h> |
47 | #include <linux/syscore_ops.h> | ||
46 | 48 | ||
47 | #include <mach/pxa25x.h> | 49 | #include <mach/pxa25x.h> |
48 | #include <mach/audio.h> | 50 | #include <mach/audio.h> |
49 | #include <mach/pxafb.h> | 51 | #include <mach/pxafb.h> |
50 | #include <plat/i2c.h> | ||
51 | #include <mach/regs-uart.h> | 52 | #include <mach/regs-uart.h> |
52 | #include <mach/arcom-pcmcia.h> | 53 | #include <mach/arcom-pcmcia.h> |
53 | #include <mach/viper.h> | 54 | #include <mach/viper.h> |
@@ -130,20 +131,19 @@ static u8 viper_hw_version(void) | |||
130 | return v1; | 131 | return v1; |
131 | } | 132 | } |
132 | 133 | ||
133 | /* CPU sysdev */ | 134 | /* CPU system core operations. */ |
134 | static int viper_cpu_suspend(struct sys_device *sysdev, pm_message_t state) | 135 | static int viper_cpu_suspend(void) |
135 | { | 136 | { |
136 | viper_icr_set_bit(VIPER_ICR_R_DIS); | 137 | viper_icr_set_bit(VIPER_ICR_R_DIS); |
137 | return 0; | 138 | return 0; |
138 | } | 139 | } |
139 | 140 | ||
140 | static int viper_cpu_resume(struct sys_device *sysdev) | 141 | static void viper_cpu_resume(void) |
141 | { | 142 | { |
142 | viper_icr_clear_bit(VIPER_ICR_R_DIS); | 143 | viper_icr_clear_bit(VIPER_ICR_R_DIS); |
143 | return 0; | ||
144 | } | 144 | } |
145 | 145 | ||
146 | static struct sysdev_driver viper_cpu_sysdev_driver = { | 146 | static struct syscore_ops viper_cpu_syscore_ops = { |
147 | .suspend = viper_cpu_suspend, | 147 | .suspend = viper_cpu_suspend, |
148 | .resume = viper_cpu_resume, | 148 | .resume = viper_cpu_resume, |
149 | }; | 149 | }; |
@@ -249,9 +249,9 @@ static inline int viper_bit_to_irq(int bit) | |||
249 | return viper_isa_irqs[bit] + PXA_ISA_IRQ(0); | 249 | return viper_isa_irqs[bit] + PXA_ISA_IRQ(0); |
250 | } | 250 | } |
251 | 251 | ||
252 | static void viper_ack_irq(unsigned int irq) | 252 | static void viper_ack_irq(struct irq_data *d) |
253 | { | 253 | { |
254 | int viper_irq = viper_irq_to_bitmask(irq); | 254 | int viper_irq = viper_irq_to_bitmask(d->irq); |
255 | 255 | ||
256 | if (viper_irq & 0xff) | 256 | if (viper_irq & 0xff) |
257 | VIPER_LO_IRQ_STATUS = viper_irq; | 257 | VIPER_LO_IRQ_STATUS = viper_irq; |
@@ -259,14 +259,14 @@ static void viper_ack_irq(unsigned int irq) | |||
259 | VIPER_HI_IRQ_STATUS = (viper_irq >> 8); | 259 | VIPER_HI_IRQ_STATUS = (viper_irq >> 8); |
260 | } | 260 | } |
261 | 261 | ||
262 | static void viper_mask_irq(unsigned int irq) | 262 | static void viper_mask_irq(struct irq_data *d) |
263 | { | 263 | { |
264 | viper_irq_enabled_mask &= ~(viper_irq_to_bitmask(irq)); | 264 | viper_irq_enabled_mask &= ~(viper_irq_to_bitmask(d->irq)); |
265 | } | 265 | } |
266 | 266 | ||
267 | static void viper_unmask_irq(unsigned int irq) | 267 | static void viper_unmask_irq(struct irq_data *d) |
268 | { | 268 | { |
269 | viper_irq_enabled_mask |= viper_irq_to_bitmask(irq); | 269 | viper_irq_enabled_mask |= viper_irq_to_bitmask(d->irq); |
270 | } | 270 | } |
271 | 271 | ||
272 | static inline unsigned long viper_irq_pending(void) | 272 | static inline unsigned long viper_irq_pending(void) |
@@ -283,7 +283,7 @@ static void viper_irq_handler(unsigned int irq, struct irq_desc *desc) | |||
283 | do { | 283 | do { |
284 | /* we're in a chained irq handler, | 284 | /* we're in a chained irq handler, |
285 | * so ack the interrupt by hand */ | 285 | * so ack the interrupt by hand */ |
286 | desc->chip->ack(irq); | 286 | desc->irq_data.chip->irq_ack(&desc->irq_data); |
287 | 287 | ||
288 | if (likely(pending)) { | 288 | if (likely(pending)) { |
289 | irq = viper_bit_to_irq(__ffs(pending)); | 289 | irq = viper_bit_to_irq(__ffs(pending)); |
@@ -294,10 +294,10 @@ static void viper_irq_handler(unsigned int irq, struct irq_desc *desc) | |||
294 | } | 294 | } |
295 | 295 | ||
296 | static struct irq_chip viper_irq_chip = { | 296 | static struct irq_chip viper_irq_chip = { |
297 | .name = "ISA", | 297 | .name = "ISA", |
298 | .ack = viper_ack_irq, | 298 | .irq_ack = viper_ack_irq, |
299 | .mask = viper_mask_irq, | 299 | .irq_mask = viper_mask_irq, |
300 | .unmask = viper_unmask_irq | 300 | .irq_unmask = viper_unmask_irq |
301 | }; | 301 | }; |
302 | 302 | ||
303 | static void __init viper_init_irq(void) | 303 | static void __init viper_init_irq(void) |
@@ -310,14 +310,14 @@ static void __init viper_init_irq(void) | |||
310 | /* setup ISA IRQs */ | 310 | /* setup ISA IRQs */ |
311 | for (level = 0; level < ARRAY_SIZE(viper_isa_irqs); level++) { | 311 | for (level = 0; level < ARRAY_SIZE(viper_isa_irqs); level++) { |
312 | isa_irq = viper_bit_to_irq(level); | 312 | isa_irq = viper_bit_to_irq(level); |
313 | set_irq_chip(isa_irq, &viper_irq_chip); | 313 | irq_set_chip_and_handler(isa_irq, &viper_irq_chip, |
314 | set_irq_handler(isa_irq, handle_edge_irq); | 314 | handle_edge_irq); |
315 | set_irq_flags(isa_irq, IRQF_VALID | IRQF_PROBE); | 315 | set_irq_flags(isa_irq, IRQF_VALID | IRQF_PROBE); |
316 | } | 316 | } |
317 | 317 | ||
318 | set_irq_chained_handler(gpio_to_irq(VIPER_CPLD_GPIO), | 318 | irq_set_chained_handler(gpio_to_irq(VIPER_CPLD_GPIO), |
319 | viper_irq_handler); | 319 | viper_irq_handler); |
320 | set_irq_type(gpio_to_irq(VIPER_CPLD_GPIO), IRQ_TYPE_EDGE_BOTH); | 320 | irq_set_irq_type(gpio_to_irq(VIPER_CPLD_GPIO), IRQ_TYPE_EDGE_BOTH); |
321 | } | 321 | } |
322 | 322 | ||
323 | /* Flat Panel */ | 323 | /* Flat Panel */ |
@@ -932,7 +932,7 @@ static void __init viper_init(void) | |||
932 | /* Wake-up serial console */ | 932 | /* Wake-up serial console */ |
933 | viper_init_serial_gpio(); | 933 | viper_init_serial_gpio(); |
934 | 934 | ||
935 | set_pxa_fb_info(&fb_info); | 935 | pxa_set_fb_info(NULL, &fb_info); |
936 | 936 | ||
937 | /* v1 hardware cannot use the datacs line */ | 937 | /* v1 hardware cannot use the datacs line */ |
938 | version = viper_hw_version(); | 938 | version = viper_hw_version(); |
@@ -945,7 +945,7 @@ static void __init viper_init(void) | |||
945 | viper_init_vcore_gpios(); | 945 | viper_init_vcore_gpios(); |
946 | viper_init_cpufreq(); | 946 | viper_init_cpufreq(); |
947 | 947 | ||
948 | sysdev_driver_register(&cpu_sysdev_class, &viper_cpu_sysdev_driver); | 948 | register_syscore_ops(&viper_cpu_syscore_ops); |
949 | 949 | ||
950 | if (version) { | 950 | if (version) { |
951 | pr_info("viper: hardware v%di%d detected. " | 951 | pr_info("viper: hardware v%di%d detected. " |
@@ -983,7 +983,7 @@ static struct map_desc viper_io_desc[] __initdata = { | |||
983 | 983 | ||
984 | static void __init viper_map_io(void) | 984 | static void __init viper_map_io(void) |
985 | { | 985 | { |
986 | pxa_map_io(); | 986 | pxa25x_map_io(); |
987 | 987 | ||
988 | iotable_init(viper_io_desc, ARRAY_SIZE(viper_io_desc)); | 988 | iotable_init(viper_io_desc, ARRAY_SIZE(viper_io_desc)); |
989 | 989 | ||
@@ -992,8 +992,6 @@ static void __init viper_map_io(void) | |||
992 | 992 | ||
993 | MACHINE_START(VIPER, "Arcom/Eurotech VIPER SBC") | 993 | MACHINE_START(VIPER, "Arcom/Eurotech VIPER SBC") |
994 | /* Maintainer: Marc Zyngier <maz@misterjones.org> */ | 994 | /* Maintainer: Marc Zyngier <maz@misterjones.org> */ |
995 | .phys_io = 0x40000000, | ||
996 | .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc, | ||
997 | .boot_params = 0xa0000100, | 995 | .boot_params = 0xa0000100, |
998 | .map_io = viper_map_io, | 996 | .map_io = viper_map_io, |
999 | .init_irq = viper_init_irq, | 997 | .init_irq = viper_init_irq, |