aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-iop32x/Kconfig9
-rw-r--r--arch/arm/mach-iop32x/iq31244.c22
-rw-r--r--arch/arm/mach-iop32x/iq80321.c14
-rw-r--r--arch/arm/mach-iop32x/irq.c54
-rw-r--r--arch/arm/mach-iop33x/iq80331.c12
-rw-r--r--arch/arm/mach-iop33x/iq80332.c12
-rw-r--r--arch/arm/mach-iop33x/irq.c95
-rw-r--r--arch/arm/mach-iop33x/uart.c37
-rw-r--r--arch/arm/oprofile/op_model_xscale.c6
-rw-r--r--arch/arm/plat-iop/i2c.c8
-rw-r--r--arch/arm/plat-iop/time.c4
11 files changed, 127 insertions, 146 deletions
diff --git a/arch/arm/mach-iop32x/Kconfig b/arch/arm/mach-iop32x/Kconfig
index ff8a77a8866e..d7abfaa525c3 100644
--- a/arch/arm/mach-iop32x/Kconfig
+++ b/arch/arm/mach-iop32x/Kconfig
@@ -8,13 +8,14 @@ config ARCH_IQ80321
8 bool "Enable support for IQ80321" 8 bool "Enable support for IQ80321"
9 help 9 help
10 Say Y here if you want to run your kernel on the Intel IQ80321 10 Say Y here if you want to run your kernel on the Intel IQ80321
11 evaluation kit for the IOP321 chipset. 11 evaluation kit for the IOP321 processor.
12 12
13config ARCH_IQ31244 13config ARCH_IQ31244
14 bool "Enable support for IQ31244" 14 bool "Enable support for EP80219/IQ31244"
15 help 15 help
16 Say Y here if you want to run your kernel on the Intel IQ31244 16 Say Y here if you want to run your kernel on the Intel EP80219
17 evaluation kit for the IOP321 chipset. 17 evaluation kit for the Intel 80219 processor (a IOP321 variant)
18 or the IQ31244 evaluation kit for the IOP321 processor.
18 19
19endmenu 20endmenu
20 21
diff --git a/arch/arm/mach-iop32x/iq31244.c b/arch/arm/mach-iop32x/iq31244.c
index 88b77d32b0ac..be4aedfa0de6 100644
--- a/arch/arm/mach-iop32x/iq31244.c
+++ b/arch/arm/mach-iop32x/iq31244.c
@@ -98,16 +98,16 @@ ep80219_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
98 98
99 if (slot == 0) { 99 if (slot == 0) {
100 /* CFlash */ 100 /* CFlash */
101 irq = IRQ_IOP321_XINT1; 101 irq = IRQ_IOP32X_XINT1;
102 } else if (slot == 1) { 102 } else if (slot == 1) {
103 /* 82551 Pro 100 */ 103 /* 82551 Pro 100 */
104 irq = IRQ_IOP321_XINT0; 104 irq = IRQ_IOP32X_XINT0;
105 } else if (slot == 2) { 105 } else if (slot == 2) {
106 /* PCI-X Slot */ 106 /* PCI-X Slot */
107 irq = IRQ_IOP321_XINT3; 107 irq = IRQ_IOP32X_XINT3;
108 } else if (slot == 3) { 108 } else if (slot == 3) {
109 /* SATA */ 109 /* SATA */
110 irq = IRQ_IOP321_XINT2; 110 irq = IRQ_IOP32X_XINT2;
111 } else { 111 } else {
112 printk(KERN_ERR "ep80219_pci_map_irq() called for unknown " 112 printk(KERN_ERR "ep80219_pci_map_irq() called for unknown "
113 "device PCI:%d:%d:%d\n", dev->bus->number, 113 "device PCI:%d:%d:%d\n", dev->bus->number,
@@ -134,18 +134,18 @@ iq31244_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
134 134
135 if (slot == 0) { 135 if (slot == 0) {
136 /* CFlash */ 136 /* CFlash */
137 irq = IRQ_IOP321_XINT1; 137 irq = IRQ_IOP32X_XINT1;
138 } else if (slot == 1) { 138 } else if (slot == 1) {
139 /* SATA */ 139 /* SATA */
140 irq = IRQ_IOP321_XINT2; 140 irq = IRQ_IOP32X_XINT2;
141 } else if (slot == 2) { 141 } else if (slot == 2) {
142 /* PCI-X Slot */ 142 /* PCI-X Slot */
143 irq = IRQ_IOP321_XINT3; 143 irq = IRQ_IOP32X_XINT3;
144 } else if (slot == 3) { 144 } else if (slot == 3) {
145 /* 82546 GigE */ 145 /* 82546 GigE */
146 irq = IRQ_IOP321_XINT0; 146 irq = IRQ_IOP32X_XINT0;
147 } else { 147 } else {
148 printk(KERN_ERR "iq31244_pci_map_irq() called for unknown " 148 printk(KERN_ERR "iq31244_pci_map_irq called for unknown "
149 "device PCI:%d:%d:%d\n", dev->bus->number, 149 "device PCI:%d:%d:%d\n", dev->bus->number,
150 PCI_SLOT(dev->devfn), PCI_FUNC(dev->devfn)); 150 PCI_SLOT(dev->devfn), PCI_FUNC(dev->devfn));
151 irq = -1; 151 irq = -1;
@@ -206,7 +206,7 @@ static struct plat_serial8250_port iq31244_serial_port[] = {
206 { 206 {
207 .mapbase = IQ31244_UART, 207 .mapbase = IQ31244_UART,
208 .membase = (char *)IQ31244_UART, 208 .membase = (char *)IQ31244_UART,
209 .irq = IRQ_IOP321_XINT1, 209 .irq = IRQ_IOP32X_XINT1,
210 .flags = UPF_SKIP_TEST, 210 .flags = UPF_SKIP_TEST,
211 .iotype = UPIO_MEM, 211 .iotype = UPIO_MEM,
212 .regshift = 0, 212 .regshift = 0,
@@ -287,7 +287,7 @@ MACHINE_START(IQ31244, "Intel IQ31244")
287 .io_pg_offst = ((IQ31244_UART) >> 18) & 0xfffc, 287 .io_pg_offst = ((IQ31244_UART) >> 18) & 0xfffc,
288 .boot_params = 0xa0000100, 288 .boot_params = 0xa0000100,
289 .map_io = iq31244_map_io, 289 .map_io = iq31244_map_io,
290 .init_irq = iop321_init_irq, 290 .init_irq = iop32x_init_irq,
291 .timer = &iq31244_timer, 291 .timer = &iq31244_timer,
292 .init_machine = iq31244_init_machine, 292 .init_machine = iq31244_init_machine,
293MACHINE_END 293MACHINE_END
diff --git a/arch/arm/mach-iop32x/iq80321.c b/arch/arm/mach-iop32x/iq80321.c
index 3c9b86271759..1f37b5501888 100644
--- a/arch/arm/mach-iop32x/iq80321.c
+++ b/arch/arm/mach-iop32x/iq80321.c
@@ -78,19 +78,19 @@ iq80321_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
78 78
79 if ((slot == 2 || slot == 6) && pin == 1) { 79 if ((slot == 2 || slot == 6) && pin == 1) {
80 /* PCI-X Slot INTA */ 80 /* PCI-X Slot INTA */
81 irq = IRQ_IOP321_XINT2; 81 irq = IRQ_IOP32X_XINT2;
82 } else if ((slot == 2 || slot == 6) && pin == 2) { 82 } else if ((slot == 2 || slot == 6) && pin == 2) {
83 /* PCI-X Slot INTA */ 83 /* PCI-X Slot INTA */
84 irq = IRQ_IOP321_XINT3; 84 irq = IRQ_IOP32X_XINT3;
85 } else if ((slot == 2 || slot == 6) && pin == 3) { 85 } else if ((slot == 2 || slot == 6) && pin == 3) {
86 /* PCI-X Slot INTA */ 86 /* PCI-X Slot INTA */
87 irq = IRQ_IOP321_XINT0; 87 irq = IRQ_IOP32X_XINT0;
88 } else if ((slot == 2 || slot == 6) && pin == 4) { 88 } else if ((slot == 2 || slot == 6) && pin == 4) {
89 /* PCI-X Slot INTA */ 89 /* PCI-X Slot INTA */
90 irq = IRQ_IOP321_XINT1; 90 irq = IRQ_IOP32X_XINT1;
91 } else if (slot == 4 || slot == 8) { 91 } else if (slot == 4 || slot == 8) {
92 /* Gig-E */ 92 /* Gig-E */
93 irq = IRQ_IOP321_XINT0; 93 irq = IRQ_IOP32X_XINT0;
94 } else { 94 } else {
95 printk(KERN_ERR "iq80321_pci_map_irq() called for unknown " 95 printk(KERN_ERR "iq80321_pci_map_irq() called for unknown "
96 "device PCI:%d:%d:%d\n", dev->bus->number, 96 "device PCI:%d:%d:%d\n", dev->bus->number,
@@ -148,7 +148,7 @@ static struct plat_serial8250_port iq80321_serial_port[] = {
148 { 148 {
149 .mapbase = IQ80321_UART, 149 .mapbase = IQ80321_UART,
150 .membase = (char *)IQ80321_UART, 150 .membase = (char *)IQ80321_UART,
151 .irq = IRQ_IOP321_XINT1, 151 .irq = IRQ_IOP32X_XINT1,
152 .flags = UPF_SKIP_TEST, 152 .flags = UPF_SKIP_TEST,
153 .iotype = UPIO_MEM, 153 .iotype = UPIO_MEM,
154 .regshift = 0, 154 .regshift = 0,
@@ -187,7 +187,7 @@ MACHINE_START(IQ80321, "Intel IQ80321")
187 .io_pg_offst = ((IQ80321_UART) >> 18) & 0xfffc, 187 .io_pg_offst = ((IQ80321_UART) >> 18) & 0xfffc,
188 .boot_params = 0xa0000100, 188 .boot_params = 0xa0000100,
189 .map_io = iq80321_map_io, 189 .map_io = iq80321_map_io,
190 .init_irq = iop321_init_irq, 190 .init_irq = iop32x_init_irq,
191 .timer = &iq80321_timer, 191 .timer = &iq80321_timer,
192 .init_machine = iq80321_init_machine, 192 .init_machine = iq80321_init_machine,
193MACHINE_END 193MACHINE_END
diff --git a/arch/arm/mach-iop32x/irq.c b/arch/arm/mach-iop32x/irq.c
index ff049e02f5f7..21294be5a369 100644
--- a/arch/arm/mach-iop32x/irq.c
+++ b/arch/arm/mach-iop32x/irq.c
@@ -1,5 +1,5 @@
1/* 1/*
2 * linux/arch/arm/mach-iop32x/irq.c 2 * arch/arm/mach-iop32x/irq.c
3 * 3 *
4 * Generic IOP32X IRQ handling functionality 4 * Generic IOP32X IRQ handling functionality
5 * 5 *
@@ -9,76 +9,66 @@
9 * This program is free software; you can redistribute it and/or modify 9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License version 2 as 10 * it under the terms of the GNU General Public License version 2 as
11 * published by the Free Software Foundation. 11 * published by the Free Software Foundation.
12 *
13 * Added IOP3XX chipset and IQ80321 board masking code.
14 *
15 */ 12 */
13
16#include <linux/init.h> 14#include <linux/init.h>
17#include <linux/interrupt.h> 15#include <linux/interrupt.h>
18#include <linux/list.h> 16#include <linux/list.h>
19
20#include <asm/mach/irq.h> 17#include <asm/mach/irq.h>
21#include <asm/irq.h> 18#include <asm/irq.h>
22#include <asm/hardware.h> 19#include <asm/hardware.h>
23
24#include <asm/mach-types.h> 20#include <asm/mach-types.h>
25 21
26static u32 iop321_mask /* = 0 */; 22static u32 iop32x_mask;
27 23
28static inline void intctl_write(u32 val) 24static inline void intctl_write(u32 val)
29{ 25{
30 iop3xx_cp6_enable(); 26 iop3xx_cp6_enable();
31 asm volatile("mcr p6,0,%0,c0,c0,0"::"r" (val)); 27 asm volatile("mcr p6, 0, %0, c0, c0, 0" : : "r" (val));
32 iop3xx_cp6_disable(); 28 iop3xx_cp6_disable();
33} 29}
34 30
35static inline void intstr_write(u32 val) 31static inline void intstr_write(u32 val)
36{ 32{
37 iop3xx_cp6_enable(); 33 iop3xx_cp6_enable();
38 asm volatile("mcr p6,0,%0,c4,c0,0"::"r" (val)); 34 asm volatile("mcr p6, 0, %0, c4, c0, 0" : : "r" (val));
39 iop3xx_cp6_disable(); 35 iop3xx_cp6_disable();
40} 36}
41 37
42static void 38static void
43iop321_irq_mask (unsigned int irq) 39iop32x_irq_mask(unsigned int irq)
44{ 40{
45 41 iop32x_mask &= ~(1 << irq);
46 iop321_mask &= ~(1 << irq); 42 intctl_write(iop32x_mask);
47
48 intctl_write(iop321_mask);
49} 43}
50 44
51static void 45static void
52iop321_irq_unmask (unsigned int irq) 46iop32x_irq_unmask(unsigned int irq)
53{ 47{
54 iop321_mask |= (1 << irq); 48 iop32x_mask |= 1 << irq;
55 49 intctl_write(iop32x_mask);
56 intctl_write(iop321_mask);
57} 50}
58 51
59struct irq_chip ext_chip = { 52struct irq_chip ext_chip = {
60 .name = "IOP", 53 .name = "IOP32x",
61 .ack = iop321_irq_mask, 54 .ack = iop32x_irq_mask,
62 .mask = iop321_irq_mask, 55 .mask = iop32x_irq_mask,
63 .unmask = iop321_irq_unmask, 56 .unmask = iop32x_irq_unmask,
64}; 57};
65 58
66void __init iop321_init_irq(void) 59void __init iop32x_init_irq(void)
67{ 60{
68 unsigned int i; 61 int i;
69 62
70 intctl_write(0); // disable all interrupts 63 intctl_write(0);
71 intstr_write(0); // treat all as IRQ 64 intstr_write(0);
72 if(machine_is_iq80321() || 65 if (machine_is_iq80321() ||
73 machine_is_iq31244()) // all interrupts are inputs to chip 66 machine_is_iq31244())
74 *IOP3XX_PCIIRSR = 0x0f; 67 *IOP3XX_PCIIRSR = 0x0f;
75 68
76 for(i = 0; i < NR_IRQS; i++) 69 for (i = 0; i < NR_IRQS; i++) {
77 {
78 set_irq_chip(i, &ext_chip); 70 set_irq_chip(i, &ext_chip);
79 set_irq_handler(i, do_level_IRQ); 71 set_irq_handler(i, do_level_IRQ);
80 set_irq_flags(i, IRQF_VALID | IRQF_PROBE); 72 set_irq_flags(i, IRQF_VALID | IRQF_PROBE);
81
82 } 73 }
83} 74}
84
diff --git a/arch/arm/mach-iop33x/iq80331.c b/arch/arm/mach-iop33x/iq80331.c
index 6b8475da3df6..97a7b7488264 100644
--- a/arch/arm/mach-iop33x/iq80331.c
+++ b/arch/arm/mach-iop33x/iq80331.c
@@ -61,19 +61,19 @@ iq80331_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
61 61
62 if (slot == 1 && pin == 1) { 62 if (slot == 1 && pin == 1) {
63 /* PCI-X Slot INTA */ 63 /* PCI-X Slot INTA */
64 irq = IRQ_IOP331_XINT1; 64 irq = IRQ_IOP33X_XINT1;
65 } else if (slot == 1 && pin == 2) { 65 } else if (slot == 1 && pin == 2) {
66 /* PCI-X Slot INTB */ 66 /* PCI-X Slot INTB */
67 irq = IRQ_IOP331_XINT2; 67 irq = IRQ_IOP33X_XINT2;
68 } else if (slot == 1 && pin == 3) { 68 } else if (slot == 1 && pin == 3) {
69 /* PCI-X Slot INTC */ 69 /* PCI-X Slot INTC */
70 irq = IRQ_IOP331_XINT3; 70 irq = IRQ_IOP33X_XINT3;
71 } else if (slot == 1 && pin == 4) { 71 } else if (slot == 1 && pin == 4) {
72 /* PCI-X Slot INTD */ 72 /* PCI-X Slot INTD */
73 irq = IRQ_IOP331_XINT0; 73 irq = IRQ_IOP33X_XINT0;
74 } else if (slot == 2) { 74 } else if (slot == 2) {
75 /* GigE */ 75 /* GigE */
76 irq = IRQ_IOP331_XINT2; 76 irq = IRQ_IOP33X_XINT2;
77 } else { 77 } else {
78 printk(KERN_ERR "iq80331_pci_map_irq() called for unknown " 78 printk(KERN_ERR "iq80331_pci_map_irq() called for unknown "
79 "device PCI:%d:%d:%d\n", dev->bus->number, 79 "device PCI:%d:%d:%d\n", dev->bus->number,
@@ -142,7 +142,7 @@ MACHINE_START(IQ80331, "Intel IQ80331")
142 .io_pg_offst = ((0xfffff000) >> 18) & 0xfffc, 142 .io_pg_offst = ((0xfffff000) >> 18) & 0xfffc,
143 .boot_params = 0x00000100, 143 .boot_params = 0x00000100,
144 .map_io = iop3xx_map_io, 144 .map_io = iop3xx_map_io,
145 .init_irq = iop331_init_irq, 145 .init_irq = iop33x_init_irq,
146 .timer = &iq80331_timer, 146 .timer = &iq80331_timer,
147 .init_machine = iq80331_init_machine, 147 .init_machine = iq80331_init_machine,
148MACHINE_END 148MACHINE_END
diff --git a/arch/arm/mach-iop33x/iq80332.c b/arch/arm/mach-iop33x/iq80332.c
index 150f3fd5de0b..9887bfc1c078 100644
--- a/arch/arm/mach-iop33x/iq80332.c
+++ b/arch/arm/mach-iop33x/iq80332.c
@@ -61,19 +61,19 @@ iq80332_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
61 61
62 if (slot == 4 && pin == 1) { 62 if (slot == 4 && pin == 1) {
63 /* PCI-X Slot INTA */ 63 /* PCI-X Slot INTA */
64 irq = IRQ_IOP331_XINT0; 64 irq = IRQ_IOP33X_XINT0;
65 } else if (slot == 4 && pin == 2) { 65 } else if (slot == 4 && pin == 2) {
66 /* PCI-X Slot INTB */ 66 /* PCI-X Slot INTB */
67 irq = IRQ_IOP331_XINT1; 67 irq = IRQ_IOP33X_XINT1;
68 } else if (slot == 4 && pin == 3) { 68 } else if (slot == 4 && pin == 3) {
69 /* PCI-X Slot INTC */ 69 /* PCI-X Slot INTC */
70 irq = IRQ_IOP331_XINT2; 70 irq = IRQ_IOP33X_XINT2;
71 } else if (slot == 4 && pin == 4) { 71 } else if (slot == 4 && pin == 4) {
72 /* PCI-X Slot INTD */ 72 /* PCI-X Slot INTD */
73 irq = IRQ_IOP331_XINT3; 73 irq = IRQ_IOP33X_XINT3;
74 } else if (slot == 6) { 74 } else if (slot == 6) {
75 /* GigE */ 75 /* GigE */
76 irq = IRQ_IOP331_XINT2; 76 irq = IRQ_IOP33X_XINT2;
77 } else { 77 } else {
78 printk(KERN_ERR "iq80332_pci_map_irq() called for unknown " 78 printk(KERN_ERR "iq80332_pci_map_irq() called for unknown "
79 "device PCI:%d:%d:%d\n", dev->bus->number, 79 "device PCI:%d:%d:%d\n", dev->bus->number,
@@ -142,7 +142,7 @@ MACHINE_START(IQ80332, "Intel IQ80332")
142 .io_pg_offst = ((0xfffff000) >> 18) & 0xfffc, 142 .io_pg_offst = ((0xfffff000) >> 18) & 0xfffc,
143 .boot_params = 0x00000100, 143 .boot_params = 0x00000100,
144 .map_io = iop3xx_map_io, 144 .map_io = iop3xx_map_io,
145 .init_irq = iop331_init_irq, 145 .init_irq = iop33x_init_irq,
146 .timer = &iq80332_timer, 146 .timer = &iq80332_timer,
147 .init_machine = iq80332_init_machine, 147 .init_machine = iq80332_init_machine,
148MACHINE_END 148MACHINE_END
diff --git a/arch/arm/mach-iop33x/irq.c b/arch/arm/mach-iop33x/irq.c
index 3c720551ac12..63304b3d0d76 100644
--- a/arch/arm/mach-iop33x/irq.c
+++ b/arch/arm/mach-iop33x/irq.c
@@ -1,5 +1,5 @@
1/* 1/*
2 * linux/arch/arm/mach-iop33x/irq.c 2 * arch/arm/mach-iop33x/irq.c
3 * 3 *
4 * Generic IOP331 IRQ handling functionality 4 * Generic IOP331 IRQ handling functionality
5 * 5 *
@@ -9,51 +9,44 @@
9 * This program is free software; you can redistribute it and/or modify 9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License version 2 as 10 * it under the terms of the GNU General Public License version 2 as
11 * published by the Free Software Foundation. 11 * published by the Free Software Foundation.
12 *
13 *
14 */ 12 */
13
15#include <linux/init.h> 14#include <linux/init.h>
16#include <linux/interrupt.h> 15#include <linux/interrupt.h>
17#include <linux/list.h> 16#include <linux/list.h>
18
19#include <asm/mach/irq.h> 17#include <asm/mach/irq.h>
20#include <asm/irq.h> 18#include <asm/irq.h>
21#include <asm/hardware.h> 19#include <asm/hardware.h>
22
23#include <asm/mach-types.h> 20#include <asm/mach-types.h>
24 21
25static u32 iop331_mask0 = 0; 22static u32 iop33x_mask0;
26static u32 iop331_mask1 = 0; 23static u32 iop33x_mask1;
27 24
28static inline void intctl_write0(u32 val) 25static inline void intctl0_write(u32 val)
29{ 26{
30 // INTCTL0
31 iop3xx_cp6_enable(); 27 iop3xx_cp6_enable();
32 asm volatile("mcr p6,0,%0,c0,c0,0"::"r" (val)); 28 asm volatile("mcr p6, 0, %0, c0, c0, 0" : : "r" (val));
33 iop3xx_cp6_disable(); 29 iop3xx_cp6_disable();
34} 30}
35 31
36static inline void intctl_write1(u32 val) 32static inline void intctl1_write(u32 val)
37{ 33{
38 // INTCTL1
39 iop3xx_cp6_enable(); 34 iop3xx_cp6_enable();
40 asm volatile("mcr p6,0,%0,c1,c0,0"::"r" (val)); 35 asm volatile("mcr p6, 0, %0, c1, c0, 0" : : "r" (val));
41 iop3xx_cp6_disable(); 36 iop3xx_cp6_disable();
42} 37}
43 38
44static inline void intstr_write0(u32 val) 39static inline void intstr0_write(u32 val)
45{ 40{
46 // INTSTR0
47 iop3xx_cp6_enable(); 41 iop3xx_cp6_enable();
48 asm volatile("mcr p6,0,%0,c2,c0,0"::"r" (val)); 42 asm volatile("mcr p6, 0, %0, c2, c0, 0" : : "r" (val));
49 iop3xx_cp6_disable(); 43 iop3xx_cp6_disable();
50} 44}
51 45
52static inline void intstr_write1(u32 val) 46static inline void intstr1_write(u32 val)
53{ 47{
54 // INTSTR1
55 iop3xx_cp6_enable(); 48 iop3xx_cp6_enable();
56 asm volatile("mcr p6,0,%0,c3,c0,0"::"r" (val)); 49 asm volatile("mcr p6, 0, %0, c3, c0, 0" : : "r" (val));
57 iop3xx_cp6_disable(); 50 iop3xx_cp6_disable();
58} 51}
59 52
@@ -72,65 +65,63 @@ static inline void intsize_write(u32 val)
72} 65}
73 66
74static void 67static void
75iop331_irq_mask1 (unsigned int irq) 68iop33x_irq_mask1 (unsigned int irq)
76{ 69{
77 iop331_mask0 &= ~(1 << irq); 70 iop33x_mask0 &= ~(1 << irq);
78 intctl_write0(iop331_mask0); 71 intctl0_write(iop33x_mask0);
79} 72}
80 73
81static void 74static void
82iop331_irq_mask2 (unsigned int irq) 75iop33x_irq_mask2 (unsigned int irq)
83{ 76{
84 iop331_mask1 &= ~(1 << (irq - 32)); 77 iop33x_mask1 &= ~(1 << (irq - 32));
85 intctl_write1(iop331_mask1); 78 intctl1_write(iop33x_mask1);
86} 79}
87 80
88static void 81static void
89iop331_irq_unmask1(unsigned int irq) 82iop33x_irq_unmask1(unsigned int irq)
90{ 83{
91 iop331_mask0 |= (1 << irq); 84 iop33x_mask0 |= 1 << irq;
92 intctl_write0(iop331_mask0); 85 intctl0_write(iop33x_mask0);
93} 86}
94 87
95static void 88static void
96iop331_irq_unmask2(unsigned int irq) 89iop33x_irq_unmask2(unsigned int irq)
97{ 90{
98 iop331_mask1 |= (1 << (irq - 32)); 91 iop33x_mask1 |= (1 << (irq - 32));
99 intctl_write1(iop331_mask1); 92 intctl1_write(iop33x_mask1);
100} 93}
101 94
102struct irq_chip iop331_irqchip1 = { 95struct irq_chip iop33x_irqchip1 = {
103 .name = "IOP-1", 96 .name = "IOP33x-1",
104 .ack = iop331_irq_mask1, 97 .ack = iop33x_irq_mask1,
105 .mask = iop331_irq_mask1, 98 .mask = iop33x_irq_mask1,
106 .unmask = iop331_irq_unmask1, 99 .unmask = iop33x_irq_unmask1,
107}; 100};
108 101
109struct irq_chip iop331_irqchip2 = { 102struct irq_chip iop33x_irqchip2 = {
110 .name = "IOP-2", 103 .name = "IOP33x-2",
111 .ack = iop331_irq_mask2, 104 .ack = iop33x_irq_mask2,
112 .mask = iop331_irq_mask2, 105 .mask = iop33x_irq_mask2,
113 .unmask = iop331_irq_unmask2, 106 .unmask = iop33x_irq_unmask2,
114}; 107};
115 108
116void __init iop331_init_irq(void) 109void __init iop33x_init_irq(void)
117{ 110{
118 unsigned int i; 111 int i;
119 112
120 intctl_write0(0); // disable all interrupts 113 intctl0_write(0);
121 intctl_write1(0); 114 intctl1_write(0);
122 intstr_write0(0); // treat all as IRQ 115 intstr0_write(0);
123 intstr_write1(0); 116 intstr1_write(0);
124 intbase_write(0); 117 intbase_write(0);
125 intsize_write(1); 118 intsize_write(1);
126 if(machine_is_iq80331()) // all interrupts are inputs to chip 119 if (machine_is_iq80331())
127 *IOP3XX_PCIIRSR = 0x0f; 120 *IOP3XX_PCIIRSR = 0x0f;
128 121
129 for(i = 0; i < NR_IRQS; i++) 122 for (i = 0; i < NR_IRQS; i++) {
130 { 123 set_irq_chip(i, (i < 32) ? &iop33x_irqchip1 : &iop33x_irqchip2);
131 set_irq_chip(i, (i < 32) ? &iop331_irqchip1 : &iop331_irqchip2);
132 set_irq_handler(i, do_level_IRQ); 124 set_irq_handler(i, do_level_IRQ);
133 set_irq_flags(i, IRQF_VALID | IRQF_PROBE); 125 set_irq_flags(i, IRQF_VALID | IRQF_PROBE);
134 } 126 }
135} 127}
136
diff --git a/arch/arm/mach-iop33x/uart.c b/arch/arm/mach-iop33x/uart.c
index d221d4abaa87..ac297cd0276c 100644
--- a/arch/arm/mach-iop33x/uart.c
+++ b/arch/arm/mach-iop33x/uart.c
@@ -1,5 +1,5 @@
1/* 1/*
2 * linux/arch/arm/mach-iop33x/uart.c 2 * arch/arm/mach-iop33x/uart.c
3 * 3 *
4 * Author: Dave Jiang (dave.jiang@intel.com) 4 * Author: Dave Jiang (dave.jiang@intel.com)
5 * Copyright (C) 2004 Intel Corporation. 5 * Copyright (C) 2004 Intel Corporation.
@@ -17,7 +17,6 @@
17#include <linux/serial.h> 17#include <linux/serial.h>
18#include <linux/tty.h> 18#include <linux/tty.h>
19#include <linux/serial_8250.h> 19#include <linux/serial_8250.h>
20
21#include <asm/io.h> 20#include <asm/io.h>
22#include <asm/pgtable.h> 21#include <asm/pgtable.h>
23#include <asm/page.h> 22#include <asm/page.h>
@@ -30,14 +29,14 @@
30#include <asm/mach-types.h> 29#include <asm/mach-types.h>
31#include <asm/mach/arch.h> 30#include <asm/mach/arch.h>
32 31
33#define IOP331_UART_XTAL 33334000 32#define IOP33X_UART_XTAL 33334000
34 33
35static struct plat_serial8250_port iop33x_uart0_data[] = { 34static struct plat_serial8250_port iop33x_uart0_data[] = {
36 { 35 {
37 .membase = (char *)IOP331_UART0_VIRT, 36 .membase = (char *)IOP33X_UART0_VIRT,
38 .mapbase = IOP331_UART0_PHYS, 37 .mapbase = IOP33X_UART0_PHYS,
39 .irq = IRQ_IOP331_UART0, 38 .irq = IRQ_IOP33X_UART0,
40 .uartclk = IOP331_UART_XTAL, 39 .uartclk = IOP33X_UART_XTAL,
41 .regshift = 2, 40 .regshift = 2,
42 .iotype = UPIO_MEM, 41 .iotype = UPIO_MEM,
43 .flags = UPF_SKIP_TEST, 42 .flags = UPF_SKIP_TEST,
@@ -47,13 +46,13 @@ static struct plat_serial8250_port iop33x_uart0_data[] = {
47 46
48static struct resource iop33x_uart0_resources[] = { 47static struct resource iop33x_uart0_resources[] = {
49 [0] = { 48 [0] = {
50 .start = IOP331_UART0_PHYS, 49 .start = IOP33X_UART0_PHYS,
51 .end = IOP331_UART0_PHYS + 0x3f, 50 .end = IOP33X_UART0_PHYS + 0x3f,
52 .flags = IORESOURCE_MEM, 51 .flags = IORESOURCE_MEM,
53 }, 52 },
54 [1] = { 53 [1] = {
55 .start = IRQ_IOP331_UART0, 54 .start = IRQ_IOP33X_UART0,
56 .end = IRQ_IOP331_UART0, 55 .end = IRQ_IOP33X_UART0,
57 .flags = IORESOURCE_IRQ, 56 .flags = IORESOURCE_IRQ,
58 }, 57 },
59}; 58};
@@ -71,23 +70,23 @@ struct platform_device iop33x_uart0_device = {
71 70
72static struct resource iop33x_uart1_resources[] = { 71static struct resource iop33x_uart1_resources[] = {
73 [0] = { 72 [0] = {
74 .start = IOP331_UART1_PHYS, 73 .start = IOP33X_UART1_PHYS,
75 .end = IOP331_UART1_PHYS + 0x3f, 74 .end = IOP33X_UART1_PHYS + 0x3f,
76 .flags = IORESOURCE_MEM, 75 .flags = IORESOURCE_MEM,
77 }, 76 },
78 [1] = { 77 [1] = {
79 .start = IRQ_IOP331_UART1, 78 .start = IRQ_IOP33X_UART1,
80 .end = IRQ_IOP331_UART1, 79 .end = IRQ_IOP33X_UART1,
81 .flags = IORESOURCE_IRQ, 80 .flags = IORESOURCE_IRQ,
82 }, 81 },
83}; 82};
84 83
85static struct plat_serial8250_port iop33x_uart1_data[] = { 84static struct plat_serial8250_port iop33x_uart1_data[] = {
86 { 85 {
87 .membase = (char *)IOP331_UART1_VIRT, 86 .membase = (char *)IOP33X_UART1_VIRT,
88 .mapbase = IOP331_UART1_PHYS, 87 .mapbase = IOP33X_UART1_PHYS,
89 .irq = IRQ_IOP331_UART1, 88 .irq = IRQ_IOP33X_UART1,
90 .uartclk = IOP331_UART_XTAL, 89 .uartclk = IOP33X_UART_XTAL,
91 .regshift = 2, 90 .regshift = 2,
92 .iotype = UPIO_MEM, 91 .iotype = UPIO_MEM,
93 .flags = UPF_SKIP_TEST, 92 .flags = UPF_SKIP_TEST,
diff --git a/arch/arm/oprofile/op_model_xscale.c b/arch/arm/oprofile/op_model_xscale.c
index 7e0cc5b15b15..6576143f2559 100644
--- a/arch/arm/oprofile/op_model_xscale.c
+++ b/arch/arm/oprofile/op_model_xscale.c
@@ -37,10 +37,10 @@
37#define XSCALE_PMU_IRQ IRQ_XS80200_PMU 37#define XSCALE_PMU_IRQ IRQ_XS80200_PMU
38#endif 38#endif
39#ifdef CONFIG_ARCH_IOP32X 39#ifdef CONFIG_ARCH_IOP32X
40#define XSCALE_PMU_IRQ IRQ_IOP321_CORE_PMU 40#define XSCALE_PMU_IRQ IRQ_IOP32X_CORE_PMU
41#endif 41#endif
42#ifdef CONFIG_ARCH_IOP33X 42#ifdef CONFIG_ARCH_IOP33X
43#define XSCALE_PMU_IRQ IRQ_IOP331_CORE_PMU 43#define XSCALE_PMU_IRQ IRQ_IOP33X_CORE_PMU
44#endif 44#endif
45#ifdef CONFIG_ARCH_PXA 45#ifdef CONFIG_ARCH_PXA
46#define XSCALE_PMU_IRQ IRQ_PMU 46#define XSCALE_PMU_IRQ IRQ_PMU
@@ -88,7 +88,7 @@ static struct pmu_counter results[MAX_COUNTERS];
88/* 88/*
89 * There are two versions of the PMU in current XScale processors 89 * There are two versions of the PMU in current XScale processors
90 * with differing register layouts and number of performance counters. 90 * with differing register layouts and number of performance counters.
91 * e.g. IOP321 is xsc1 whilst IOP331 is xsc2. 91 * e.g. IOP32x is xsc1 whilst IOP33x is xsc2.
92 * We detect which register layout to use in xscale_detect_pmu() 92 * We detect which register layout to use in xscale_detect_pmu()
93 */ 93 */
94enum { PMU_XSC1, PMU_XSC2 }; 94enum { PMU_XSC1, PMU_XSC2 };
diff --git a/arch/arm/plat-iop/i2c.c b/arch/arm/plat-iop/i2c.c
index 7ae149c2e982..e99909bdba71 100644
--- a/arch/arm/plat-iop/i2c.c
+++ b/arch/arm/plat-iop/i2c.c
@@ -31,12 +31,12 @@
31#include <asm/mach/arch.h> 31#include <asm/mach/arch.h>
32 32
33#ifdef CONFIG_ARCH_IOP32X 33#ifdef CONFIG_ARCH_IOP32X
34#define IRQ_IOP3XX_I2C_0 IRQ_IOP321_I2C_0 34#define IRQ_IOP3XX_I2C_0 IRQ_IOP32X_I2C_0
35#define IRQ_IOP3XX_I2C_1 IRQ_IOP321_I2C_1 35#define IRQ_IOP3XX_I2C_1 IRQ_IOP32X_I2C_1
36#endif 36#endif
37#ifdef CONFIG_ARCH_IOP33X 37#ifdef CONFIG_ARCH_IOP33X
38#define IRQ_IOP3XX_I2C_0 IRQ_IOP331_I2C_0 38#define IRQ_IOP3XX_I2C_0 IRQ_IOP33X_I2C_0
39#define IRQ_IOP3XX_I2C_1 IRQ_IOP331_I2C_1 39#define IRQ_IOP3XX_I2C_1 IRQ_IOP33X_I2C_1
40#endif 40#endif
41 41
42static struct resource iop3xx_i2c0_resources[] = { 42static struct resource iop3xx_i2c0_resources[] = {
diff --git a/arch/arm/plat-iop/time.c b/arch/arm/plat-iop/time.c
index bed20f3669f4..06282dffbdc6 100644
--- a/arch/arm/plat-iop/time.c
+++ b/arch/arm/plat-iop/time.c
@@ -26,10 +26,10 @@
26#include <asm/mach/time.h> 26#include <asm/mach/time.h>
27 27
28#ifdef CONFIG_ARCH_IOP32X 28#ifdef CONFIG_ARCH_IOP32X
29#define IRQ_IOP3XX_TIMER0 IRQ_IOP321_TIMER0 29#define IRQ_IOP3XX_TIMER0 IRQ_IOP32X_TIMER0
30#else 30#else
31#ifdef CONFIG_ARCH_IOP33X 31#ifdef CONFIG_ARCH_IOP33X
32#define IRQ_IOP3XX_TIMER0 IRQ_IOP331_TIMER0 32#define IRQ_IOP3XX_TIMER0 IRQ_IOP33X_TIMER0
33#endif 33#endif
34#endif 34#endif
35 35