diff options
Diffstat (limited to 'arch/mips/au1000')
42 files changed, 233 insertions, 493 deletions
diff --git a/arch/mips/au1000/common/cputable.c b/arch/mips/au1000/common/cputable.c index d8df5fdb045f..8c93a05d7382 100644 --- a/arch/mips/au1000/common/cputable.c +++ b/arch/mips/au1000/common/cputable.c | |||
@@ -11,10 +11,7 @@ | |||
11 | * as published by the Free Software Foundation; either version | 11 | * as published by the Free Software Foundation; either version |
12 | * 2 of the License, or (at your option) any later version. | 12 | * 2 of the License, or (at your option) any later version. |
13 | */ | 13 | */ |
14 | #include <linux/string.h> | 14 | |
15 | #include <linux/sched.h> | ||
16 | #include <linux/threads.h> | ||
17 | #include <linux/init.h> | ||
18 | #include <asm/mach-au1x00/au1000.h> | 15 | #include <asm/mach-au1x00/au1000.h> |
19 | 16 | ||
20 | struct cpu_spec* cur_cpu_spec[NR_CPUS]; | 17 | struct cpu_spec* cur_cpu_spec[NR_CPUS]; |
@@ -22,24 +19,24 @@ struct cpu_spec* cur_cpu_spec[NR_CPUS]; | |||
22 | /* With some thought, we can probably use the mask to reduce the | 19 | /* With some thought, we can probably use the mask to reduce the |
23 | * size of the table. | 20 | * size of the table. |
24 | */ | 21 | */ |
25 | struct cpu_spec cpu_specs[] = { | 22 | struct cpu_spec cpu_specs[] = { |
26 | { 0xffffffff, 0x00030100, "Au1000 DA", 1, 0 }, | 23 | { 0xffffffff, 0x00030100, "Au1000 DA", 1, 0, 1 }, |
27 | { 0xffffffff, 0x00030201, "Au1000 HA", 1, 0 }, | 24 | { 0xffffffff, 0x00030201, "Au1000 HA", 1, 0, 1 }, |
28 | { 0xffffffff, 0x00030202, "Au1000 HB", 1, 0 }, | 25 | { 0xffffffff, 0x00030202, "Au1000 HB", 1, 0, 1 }, |
29 | { 0xffffffff, 0x00030203, "Au1000 HC", 1, 1 }, | 26 | { 0xffffffff, 0x00030203, "Au1000 HC", 1, 1, 0 }, |
30 | { 0xffffffff, 0x00030204, "Au1000 HD", 1, 1 }, | 27 | { 0xffffffff, 0x00030204, "Au1000 HD", 1, 1, 0 }, |
31 | { 0xffffffff, 0x01030200, "Au1500 AB", 1, 1 }, | 28 | { 0xffffffff, 0x01030200, "Au1500 AB", 1, 1, 0 }, |
32 | { 0xffffffff, 0x01030201, "Au1500 AC", 0, 1 }, | 29 | { 0xffffffff, 0x01030201, "Au1500 AC", 0, 1, 0 }, |
33 | { 0xffffffff, 0x01030202, "Au1500 AD", 0, 1 }, | 30 | { 0xffffffff, 0x01030202, "Au1500 AD", 0, 1, 0 }, |
34 | { 0xffffffff, 0x02030200, "Au1100 AB", 1, 1 }, | 31 | { 0xffffffff, 0x02030200, "Au1100 AB", 1, 1, 0 }, |
35 | { 0xffffffff, 0x02030201, "Au1100 BA", 1, 1 }, | 32 | { 0xffffffff, 0x02030201, "Au1100 BA", 1, 1, 0 }, |
36 | { 0xffffffff, 0x02030202, "Au1100 BC", 1, 1 }, | 33 | { 0xffffffff, 0x02030202, "Au1100 BC", 1, 1, 0 }, |
37 | { 0xffffffff, 0x02030203, "Au1100 BD", 0, 1 }, | 34 | { 0xffffffff, 0x02030203, "Au1100 BD", 0, 1, 0 }, |
38 | { 0xffffffff, 0x02030204, "Au1100 BE", 0, 1 }, | 35 | { 0xffffffff, 0x02030204, "Au1100 BE", 0, 1, 0 }, |
39 | { 0xffffffff, 0x03030200, "Au1550 AA", 0, 1 }, | 36 | { 0xffffffff, 0x03030200, "Au1550 AA", 0, 1, 0 }, |
40 | { 0xffffffff, 0x04030200, "Au1200 AB", 0, 0 }, | 37 | { 0xffffffff, 0x04030200, "Au1200 AB", 0, 0, 0 }, |
41 | { 0xffffffff, 0x04030201, "Au1200 AC", 1, 0 }, | 38 | { 0xffffffff, 0x04030201, "Au1200 AC", 1, 0, 0 }, |
42 | { 0x00000000, 0x00000000, "Unknown Au1xxx", 1, 0 }, | 39 | { 0x00000000, 0x00000000, "Unknown Au1xxx", 1, 0, 0 } |
43 | }; | 40 | }; |
44 | 41 | ||
45 | void | 42 | void |
diff --git a/arch/mips/au1000/common/dbdma.c b/arch/mips/au1000/common/dbdma.c index 57f17b41098d..53377dfc0640 100644 --- a/arch/mips/au1000/common/dbdma.c +++ b/arch/mips/au1000/common/dbdma.c | |||
@@ -31,18 +31,12 @@ | |||
31 | */ | 31 | */ |
32 | 32 | ||
33 | #include <linux/kernel.h> | 33 | #include <linux/kernel.h> |
34 | #include <linux/errno.h> | ||
35 | #include <linux/sched.h> | ||
36 | #include <linux/slab.h> | 34 | #include <linux/slab.h> |
37 | #include <linux/spinlock.h> | 35 | #include <linux/spinlock.h> |
38 | #include <linux/string.h> | ||
39 | #include <linux/delay.h> | ||
40 | #include <linux/interrupt.h> | 36 | #include <linux/interrupt.h> |
41 | #include <linux/module.h> | 37 | #include <linux/module.h> |
42 | #include <asm/mach-au1x00/au1000.h> | 38 | #include <asm/mach-au1x00/au1000.h> |
43 | #include <asm/mach-au1x00/au1xxx_dbdma.h> | 39 | #include <asm/mach-au1x00/au1xxx_dbdma.h> |
44 | #include <asm/system.h> | ||
45 | |||
46 | 40 | ||
47 | #if defined(CONFIG_SOC_AU1550) || defined(CONFIG_SOC_AU1200) | 41 | #if defined(CONFIG_SOC_AU1550) || defined(CONFIG_SOC_AU1200) |
48 | 42 | ||
diff --git a/arch/mips/au1000/common/dbg_io.c b/arch/mips/au1000/common/dbg_io.c index 79e0b0a51ace..eae1bb2ca26e 100644 --- a/arch/mips/au1000/common/dbg_io.c +++ b/arch/mips/au1000/common/dbg_io.c | |||
@@ -1,5 +1,4 @@ | |||
1 | 1 | ||
2 | #include <asm/io.h> | ||
3 | #include <asm/mach-au1x00/au1000.h> | 2 | #include <asm/mach-au1x00/au1000.h> |
4 | 3 | ||
5 | #ifdef CONFIG_KGDB | 4 | #ifdef CONFIG_KGDB |
@@ -55,8 +54,7 @@ typedef unsigned int uint32; | |||
55 | #define UART16550_READ(y) (au_readl(DEBUG_BASE + y) & 0xff) | 54 | #define UART16550_READ(y) (au_readl(DEBUG_BASE + y) & 0xff) |
56 | #define UART16550_WRITE(y, z) (au_writel(z&0xff, DEBUG_BASE + y)) | 55 | #define UART16550_WRITE(y, z) (au_writel(z&0xff, DEBUG_BASE + y)) |
57 | 56 | ||
58 | extern unsigned long get_au1x00_uart_baud_base(void); | 57 | extern unsigned long calc_clock(void); |
59 | extern unsigned long cal_r4koff(void); | ||
60 | 58 | ||
61 | void debugInit(uint32 baud, uint8 data, uint8 parity, uint8 stop) | 59 | void debugInit(uint32 baud, uint8 data, uint8 parity, uint8 stop) |
62 | { | 60 | { |
@@ -64,7 +62,7 @@ void debugInit(uint32 baud, uint8 data, uint8 parity, uint8 stop) | |||
64 | if (UART16550_READ(UART_MOD_CNTRL) != 0x3) { | 62 | if (UART16550_READ(UART_MOD_CNTRL) != 0x3) { |
65 | UART16550_WRITE(UART_MOD_CNTRL, 3); | 63 | UART16550_WRITE(UART_MOD_CNTRL, 3); |
66 | } | 64 | } |
67 | cal_r4koff(); | 65 | calc_clock(); |
68 | 66 | ||
69 | /* disable interrupts */ | 67 | /* disable interrupts */ |
70 | UART16550_WRITE(UART_IER, 0); | 68 | UART16550_WRITE(UART_IER, 0); |
diff --git a/arch/mips/au1000/common/dma.c b/arch/mips/au1000/common/dma.c index c78260d4e837..95f69ea146e9 100644 --- a/arch/mips/au1000/common/dma.c +++ b/arch/mips/au1000/common/dma.c | |||
@@ -33,12 +33,9 @@ | |||
33 | #include <linux/module.h> | 33 | #include <linux/module.h> |
34 | #include <linux/kernel.h> | 34 | #include <linux/kernel.h> |
35 | #include <linux/errno.h> | 35 | #include <linux/errno.h> |
36 | #include <linux/sched.h> | ||
37 | #include <linux/spinlock.h> | 36 | #include <linux/spinlock.h> |
38 | #include <linux/string.h> | ||
39 | #include <linux/delay.h> | ||
40 | #include <linux/interrupt.h> | 37 | #include <linux/interrupt.h> |
41 | #include <asm/system.h> | 38 | |
42 | #include <asm/mach-au1x00/au1000.h> | 39 | #include <asm/mach-au1x00/au1000.h> |
43 | #include <asm/mach-au1x00/au1000_dma.h> | 40 | #include <asm/mach-au1x00/au1000_dma.h> |
44 | 41 | ||
diff --git a/arch/mips/au1000/common/gpio.c b/arch/mips/au1000/common/gpio.c index 0b658f1db4ce..525452589971 100644 --- a/arch/mips/au1000/common/gpio.c +++ b/arch/mips/au1000/common/gpio.c | |||
@@ -27,13 +27,8 @@ | |||
27 | * others have a second one : GPIO2 | 27 | * others have a second one : GPIO2 |
28 | */ | 28 | */ |
29 | 29 | ||
30 | #include <linux/init.h> | ||
31 | #include <linux/io.h> | ||
32 | #include <linux/types.h> | ||
33 | #include <linux/module.h> | 30 | #include <linux/module.h> |
34 | 31 | ||
35 | #include <asm/addrspace.h> | ||
36 | |||
37 | #include <asm/mach-au1x00/au1000.h> | 32 | #include <asm/mach-au1x00/au1000.h> |
38 | #include <asm/gpio.h> | 33 | #include <asm/gpio.h> |
39 | 34 | ||
diff --git a/arch/mips/au1000/common/irq.c b/arch/mips/au1000/common/irq.c index 3c7714f057ac..f0626992fd75 100644 --- a/arch/mips/au1000/common/irq.c +++ b/arch/mips/au1000/common/irq.c | |||
@@ -1,7 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright 2001 MontaVista Software Inc. | 2 | * Copyright 2001, 2007-2008 MontaVista Software Inc. |
3 | * Author: MontaVista Software, Inc. | 3 | * Author: MontaVista Software, Inc. <source@mvista.com> |
4 | * ppopov@mvista.com or source@mvista.com | ||
5 | * | 4 | * |
6 | * Copyright (C) 2007 Ralf Baechle (ralf@linux-mips.org) | 5 | * Copyright (C) 2007 Ralf Baechle (ralf@linux-mips.org) |
7 | * | 6 | * |
@@ -27,7 +26,6 @@ | |||
27 | */ | 26 | */ |
28 | #include <linux/bitops.h> | 27 | #include <linux/bitops.h> |
29 | #include <linux/init.h> | 28 | #include <linux/init.h> |
30 | #include <linux/io.h> | ||
31 | #include <linux/interrupt.h> | 29 | #include <linux/interrupt.h> |
32 | #include <linux/irq.h> | 30 | #include <linux/irq.h> |
33 | 31 | ||
@@ -591,7 +589,7 @@ void __init arch_init_irq(void) | |||
591 | imp++; | 589 | imp++; |
592 | } | 590 | } |
593 | 591 | ||
594 | set_c0_status(ALLINTS); | 592 | set_c0_status(IE_IRQ0 | IE_IRQ1 | IE_IRQ2 | IE_IRQ3 | IE_IRQ4); |
595 | 593 | ||
596 | /* Board specific IRQ initialization. | 594 | /* Board specific IRQ initialization. |
597 | */ | 595 | */ |
diff --git a/arch/mips/au1000/common/pci.c b/arch/mips/au1000/common/pci.c index ce771487567d..7e966b31e3e1 100644 --- a/arch/mips/au1000/common/pci.c +++ b/arch/mips/au1000/common/pci.c | |||
@@ -30,7 +30,7 @@ | |||
30 | * with this program; if not, write to the Free Software Foundation, Inc., | 30 | * with this program; if not, write to the Free Software Foundation, Inc., |
31 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 31 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
32 | */ | 32 | */ |
33 | #include <linux/types.h> | 33 | |
34 | #include <linux/pci.h> | 34 | #include <linux/pci.h> |
35 | #include <linux/kernel.h> | 35 | #include <linux/kernel.h> |
36 | #include <linux/init.h> | 36 | #include <linux/init.h> |
diff --git a/arch/mips/au1000/common/platform.c b/arch/mips/au1000/common/platform.c index 841904cdef4d..31d2a2270878 100644 --- a/arch/mips/au1000/common/platform.c +++ b/arch/mips/au1000/common/platform.c | |||
@@ -3,18 +3,65 @@ | |||
3 | * | 3 | * |
4 | * Copyright 2004, Matt Porter <mporter@kernel.crashing.org> | 4 | * Copyright 2004, Matt Porter <mporter@kernel.crashing.org> |
5 | * | 5 | * |
6 | * (C) Copyright Embedded Alley Solutions, Inc 2005 | ||
7 | * Author: Pantelis Antoniou <pantelis@embeddedalley.com> | ||
8 | * | ||
6 | * This file is licensed under the terms of the GNU General Public | 9 | * This file is licensed under the terms of the GNU General Public |
7 | * License version 2. This program is licensed "as is" without any | 10 | * License version 2. This program is licensed "as is" without any |
8 | * warranty of any kind, whether express or implied. | 11 | * warranty of any kind, whether express or implied. |
9 | */ | 12 | */ |
10 | #include <linux/device.h> | 13 | |
11 | #include <linux/platform_device.h> | 14 | #include <linux/platform_device.h> |
12 | #include <linux/kernel.h> | 15 | #include <linux/serial_8250.h> |
13 | #include <linux/init.h> | 16 | #include <linux/init.h> |
14 | #include <linux/resource.h> | ||
15 | 17 | ||
16 | #include <asm/mach-au1x00/au1xxx.h> | 18 | #include <asm/mach-au1x00/au1xxx.h> |
17 | 19 | ||
20 | #define PORT(_base, _irq) \ | ||
21 | { \ | ||
22 | .iobase = _base, \ | ||
23 | .membase = (void __iomem *)_base,\ | ||
24 | .mapbase = CPHYSADDR(_base), \ | ||
25 | .irq = _irq, \ | ||
26 | .regshift = 2, \ | ||
27 | .iotype = UPIO_AU, \ | ||
28 | .flags = UPF_SKIP_TEST \ | ||
29 | } | ||
30 | |||
31 | static struct plat_serial8250_port au1x00_uart_data[] = { | ||
32 | #if defined(CONFIG_SERIAL_8250_AU1X00) | ||
33 | #if defined(CONFIG_SOC_AU1000) | ||
34 | PORT(UART0_ADDR, AU1000_UART0_INT), | ||
35 | PORT(UART1_ADDR, AU1000_UART1_INT), | ||
36 | PORT(UART2_ADDR, AU1000_UART2_INT), | ||
37 | PORT(UART3_ADDR, AU1000_UART3_INT), | ||
38 | #elif defined(CONFIG_SOC_AU1500) | ||
39 | PORT(UART0_ADDR, AU1500_UART0_INT), | ||
40 | PORT(UART3_ADDR, AU1500_UART3_INT), | ||
41 | #elif defined(CONFIG_SOC_AU1100) | ||
42 | PORT(UART0_ADDR, AU1100_UART0_INT), | ||
43 | PORT(UART1_ADDR, AU1100_UART1_INT), | ||
44 | PORT(UART3_ADDR, AU1100_UART3_INT), | ||
45 | #elif defined(CONFIG_SOC_AU1550) | ||
46 | PORT(UART0_ADDR, AU1550_UART0_INT), | ||
47 | PORT(UART1_ADDR, AU1550_UART1_INT), | ||
48 | PORT(UART3_ADDR, AU1550_UART3_INT), | ||
49 | #elif defined(CONFIG_SOC_AU1200) | ||
50 | PORT(UART0_ADDR, AU1200_UART0_INT), | ||
51 | PORT(UART1_ADDR, AU1200_UART1_INT), | ||
52 | #endif | ||
53 | #endif /* CONFIG_SERIAL_8250_AU1X00 */ | ||
54 | { }, | ||
55 | }; | ||
56 | |||
57 | static struct platform_device au1xx0_uart_device = { | ||
58 | .name = "serial8250", | ||
59 | .id = PLAT8250_DEV_AU1X00, | ||
60 | .dev = { | ||
61 | .platform_data = au1x00_uart_data, | ||
62 | }, | ||
63 | }; | ||
64 | |||
18 | /* OHCI (USB full speed host controller) */ | 65 | /* OHCI (USB full speed host controller) */ |
19 | static struct resource au1xxx_usb_ohci_resources[] = { | 66 | static struct resource au1xxx_usb_ohci_resources[] = { |
20 | [0] = { | 67 | [0] = { |
@@ -186,19 +233,6 @@ static struct resource au1200_lcd_resources[] = { | |||
186 | } | 233 | } |
187 | }; | 234 | }; |
188 | 235 | ||
189 | static struct resource au1200_ide0_resources[] = { | ||
190 | [0] = { | ||
191 | .start = AU1XXX_ATA_PHYS_ADDR, | ||
192 | .end = AU1XXX_ATA_PHYS_ADDR + AU1XXX_ATA_PHYS_LEN, | ||
193 | .flags = IORESOURCE_MEM, | ||
194 | }, | ||
195 | [1] = { | ||
196 | .start = AU1XXX_ATA_INT, | ||
197 | .end = AU1XXX_ATA_INT, | ||
198 | .flags = IORESOURCE_IRQ, | ||
199 | } | ||
200 | }; | ||
201 | |||
202 | static u64 au1200_lcd_dmamask = ~(u32)0; | 236 | static u64 au1200_lcd_dmamask = ~(u32)0; |
203 | 237 | ||
204 | static struct platform_device au1200_lcd_device = { | 238 | static struct platform_device au1200_lcd_device = { |
@@ -212,20 +246,6 @@ static struct platform_device au1200_lcd_device = { | |||
212 | .resource = au1200_lcd_resources, | 246 | .resource = au1200_lcd_resources, |
213 | }; | 247 | }; |
214 | 248 | ||
215 | |||
216 | static u64 ide0_dmamask = ~(u32)0; | ||
217 | |||
218 | static struct platform_device au1200_ide0_device = { | ||
219 | .name = "au1200-ide", | ||
220 | .id = 0, | ||
221 | .dev = { | ||
222 | .dma_mask = &ide0_dmamask, | ||
223 | .coherent_dma_mask = 0xffffffff, | ||
224 | }, | ||
225 | .num_resources = ARRAY_SIZE(au1200_ide0_resources), | ||
226 | .resource = au1200_ide0_resources, | ||
227 | }; | ||
228 | |||
229 | static u64 au1xxx_mmc_dmamask = ~(u32)0; | 249 | static u64 au1xxx_mmc_dmamask = ~(u32)0; |
230 | 250 | ||
231 | static struct platform_device au1xxx_mmc_device = { | 251 | static struct platform_device au1xxx_mmc_device = { |
@@ -245,31 +265,6 @@ static struct platform_device au1x00_pcmcia_device = { | |||
245 | .id = 0, | 265 | .id = 0, |
246 | }; | 266 | }; |
247 | 267 | ||
248 | #ifdef CONFIG_MIPS_DB1200 | ||
249 | |||
250 | static struct resource smc91x_resources[] = { | ||
251 | [0] = { | ||
252 | .name = "smc91x-regs", | ||
253 | .start = AU1XXX_SMC91111_PHYS_ADDR, | ||
254 | .end = AU1XXX_SMC91111_PHYS_ADDR + 0xfffff, | ||
255 | .flags = IORESOURCE_MEM, | ||
256 | }, | ||
257 | [1] = { | ||
258 | .start = AU1XXX_SMC91111_IRQ, | ||
259 | .end = AU1XXX_SMC91111_IRQ, | ||
260 | .flags = IORESOURCE_IRQ, | ||
261 | }, | ||
262 | }; | ||
263 | |||
264 | static struct platform_device smc91x_device = { | ||
265 | .name = "smc91x", | ||
266 | .id = -1, | ||
267 | .num_resources = ARRAY_SIZE(smc91x_resources), | ||
268 | .resource = smc91x_resources, | ||
269 | }; | ||
270 | |||
271 | #endif | ||
272 | |||
273 | /* All Alchemy demoboards with I2C have this #define in their headers */ | 268 | /* All Alchemy demoboards with I2C have this #define in their headers */ |
274 | #ifdef SMBUS_PSC_BASE | 269 | #ifdef SMBUS_PSC_BASE |
275 | static struct resource pbdb_smbus_resources[] = { | 270 | static struct resource pbdb_smbus_resources[] = { |
@@ -289,6 +284,7 @@ static struct platform_device pbdb_smbus_device = { | |||
289 | #endif | 284 | #endif |
290 | 285 | ||
291 | static struct platform_device *au1xxx_platform_devices[] __initdata = { | 286 | static struct platform_device *au1xxx_platform_devices[] __initdata = { |
287 | &au1xx0_uart_device, | ||
292 | &au1xxx_usb_ohci_device, | 288 | &au1xxx_usb_ohci_device, |
293 | &au1x00_pcmcia_device, | 289 | &au1x00_pcmcia_device, |
294 | #ifdef CONFIG_FB_AU1100 | 290 | #ifdef CONFIG_FB_AU1100 |
@@ -299,12 +295,8 @@ static struct platform_device *au1xxx_platform_devices[] __initdata = { | |||
299 | &au1xxx_usb_gdt_device, | 295 | &au1xxx_usb_gdt_device, |
300 | &au1xxx_usb_otg_device, | 296 | &au1xxx_usb_otg_device, |
301 | &au1200_lcd_device, | 297 | &au1200_lcd_device, |
302 | &au1200_ide0_device, | ||
303 | &au1xxx_mmc_device, | 298 | &au1xxx_mmc_device, |
304 | #endif | 299 | #endif |
305 | #ifdef CONFIG_MIPS_DB1200 | ||
306 | &smc91x_device, | ||
307 | #endif | ||
308 | #ifdef SMBUS_PSC_BASE | 300 | #ifdef SMBUS_PSC_BASE |
309 | &pbdb_smbus_device, | 301 | &pbdb_smbus_device, |
310 | #endif | 302 | #endif |
@@ -312,6 +304,13 @@ static struct platform_device *au1xxx_platform_devices[] __initdata = { | |||
312 | 304 | ||
313 | int __init au1xxx_platform_init(void) | 305 | int __init au1xxx_platform_init(void) |
314 | { | 306 | { |
307 | unsigned int uartclk = get_au1x00_uart_baud_base() * 16; | ||
308 | int i; | ||
309 | |||
310 | /* Fill up uartclk. */ | ||
311 | for (i = 0; au1x00_uart_data[i].flags ; i++) | ||
312 | au1x00_uart_data[i].uartclk = uartclk; | ||
313 | |||
315 | return platform_add_devices(au1xxx_platform_devices, ARRAY_SIZE(au1xxx_platform_devices)); | 314 | return platform_add_devices(au1xxx_platform_devices, ARRAY_SIZE(au1xxx_platform_devices)); |
316 | } | 315 | } |
317 | 316 | ||
diff --git a/arch/mips/au1000/common/power.c b/arch/mips/au1000/common/power.c index 54047d69b820..a8cd2c1b9e1b 100644 --- a/arch/mips/au1000/common/power.c +++ b/arch/mips/au1000/common/power.c | |||
@@ -29,17 +29,14 @@ | |||
29 | * with this program; if not, write to the Free Software Foundation, Inc., | 29 | * with this program; if not, write to the Free Software Foundation, Inc., |
30 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 30 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
31 | */ | 31 | */ |
32 | |||
32 | #include <linux/init.h> | 33 | #include <linux/init.h> |
33 | #include <linux/pm.h> | 34 | #include <linux/pm.h> |
34 | #include <linux/pm_legacy.h> | 35 | #include <linux/pm_legacy.h> |
35 | #include <linux/slab.h> | ||
36 | #include <linux/sysctl.h> | 36 | #include <linux/sysctl.h> |
37 | #include <linux/jiffies.h> | 37 | #include <linux/jiffies.h> |
38 | 38 | ||
39 | #include <asm/string.h> | ||
40 | #include <asm/uaccess.h> | 39 | #include <asm/uaccess.h> |
41 | #include <asm/io.h> | ||
42 | #include <asm/system.h> | ||
43 | #include <asm/cacheflush.h> | 40 | #include <asm/cacheflush.h> |
44 | #include <asm/mach-au1x00/au1000.h> | 41 | #include <asm/mach-au1x00/au1000.h> |
45 | 42 | ||
@@ -47,17 +44,13 @@ | |||
47 | 44 | ||
48 | #define DEBUG 1 | 45 | #define DEBUG 1 |
49 | #ifdef DEBUG | 46 | #ifdef DEBUG |
50 | # define DPRINTK(fmt, args...) printk("%s: " fmt, __FUNCTION__ , ## args) | 47 | # define DPRINTK(fmt, args...) printk("%s: " fmt, __func__, ## args) |
51 | #else | 48 | #else |
52 | # define DPRINTK(fmt, args...) | 49 | # define DPRINTK(fmt, args...) |
53 | #endif | 50 | #endif |
54 | 51 | ||
55 | static void au1000_calibrate_delay(void); | 52 | static void au1000_calibrate_delay(void); |
56 | 53 | ||
57 | extern void set_au1x00_speed(unsigned int new_freq); | ||
58 | extern unsigned int get_au1x00_speed(void); | ||
59 | extern unsigned long get_au1x00_uart_baud_base(void); | ||
60 | extern void set_au1x00_uart_baud_base(unsigned long new_baud_base); | ||
61 | extern unsigned long save_local_and_disable(int controller); | 54 | extern unsigned long save_local_and_disable(int controller); |
62 | extern void restore_local_and_enable(int controller, unsigned long mask); | 55 | extern void restore_local_and_enable(int controller, unsigned long mask); |
63 | extern void local_enable_irq(unsigned int irq_nr); | 56 | extern void local_enable_irq(unsigned int irq_nr); |
@@ -258,7 +251,6 @@ int au_sleep(void) | |||
258 | static int pm_do_sleep(ctl_table * ctl, int write, struct file *file, | 251 | static int pm_do_sleep(ctl_table * ctl, int write, struct file *file, |
259 | void __user *buffer, size_t * len, loff_t *ppos) | 252 | void __user *buffer, size_t * len, loff_t *ppos) |
260 | { | 253 | { |
261 | int retval = 0; | ||
262 | #ifdef SLEEP_TEST_TIMEOUT | 254 | #ifdef SLEEP_TEST_TIMEOUT |
263 | #define TMPBUFLEN2 16 | 255 | #define TMPBUFLEN2 16 |
264 | char buf[TMPBUFLEN2], *p; | 256 | char buf[TMPBUFLEN2], *p; |
@@ -278,36 +270,12 @@ static int pm_do_sleep(ctl_table * ctl, int write, struct file *file, | |||
278 | p = buf; | 270 | p = buf; |
279 | sleep_ticks = simple_strtoul(p, &p, 0); | 271 | sleep_ticks = simple_strtoul(p, &p, 0); |
280 | #endif | 272 | #endif |
281 | retval = pm_send_all(PM_SUSPEND, (void *) 2); | ||
282 | |||
283 | if (retval) | ||
284 | return retval; | ||
285 | 273 | ||
286 | au_sleep(); | 274 | au_sleep(); |
287 | retval = pm_send_all(PM_RESUME, (void *) 0); | ||
288 | } | ||
289 | return retval; | ||
290 | } | ||
291 | |||
292 | static int pm_do_suspend(ctl_table * ctl, int write, struct file *file, | ||
293 | void __user *buffer, size_t * len, loff_t *ppos) | ||
294 | { | ||
295 | int retval = 0; | ||
296 | |||
297 | if (!write) { | ||
298 | *len = 0; | ||
299 | } else { | ||
300 | retval = pm_send_all(PM_SUSPEND, (void *) 2); | ||
301 | if (retval) | ||
302 | return retval; | ||
303 | suspend_mode = 1; | ||
304 | |||
305 | retval = pm_send_all(PM_RESUME, (void *) 0); | ||
306 | } | 275 | } |
307 | return retval; | 276 | return 0; |
308 | } | 277 | } |
309 | 278 | ||
310 | |||
311 | static int pm_do_freq(ctl_table * ctl, int write, struct file *file, | 279 | static int pm_do_freq(ctl_table * ctl, int write, struct file *file, |
312 | void __user *buffer, size_t * len, loff_t *ppos) | 280 | void __user *buffer, size_t * len, loff_t *ppos) |
313 | { | 281 | { |
@@ -421,14 +389,6 @@ static int pm_do_freq(ctl_table * ctl, int write, struct file *file, | |||
421 | 389 | ||
422 | static struct ctl_table pm_table[] = { | 390 | static struct ctl_table pm_table[] = { |
423 | { | 391 | { |
424 | .ctl_name = CTL_UNNUMBERED, | ||
425 | .procname = "suspend", | ||
426 | .data = NULL, | ||
427 | .maxlen = 0, | ||
428 | .mode = 0600, | ||
429 | .proc_handler = &pm_do_suspend | ||
430 | }, | ||
431 | { | ||
432 | .ctl_name = CTL_UNNUMBERED, | 392 | .ctl_name = CTL_UNNUMBERED, |
433 | .procname = "sleep", | 393 | .procname = "sleep", |
434 | .data = NULL, | 394 | .data = NULL, |
diff --git a/arch/mips/au1000/common/prom.c b/arch/mips/au1000/common/prom.c index 90d70695aa60..f10af829e4ec 100644 --- a/arch/mips/au1000/common/prom.c +++ b/arch/mips/au1000/common/prom.c | |||
@@ -33,8 +33,8 @@ | |||
33 | * with this program; if not, write to the Free Software Foundation, Inc., | 33 | * with this program; if not, write to the Free Software Foundation, Inc., |
34 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 34 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
35 | */ | 35 | */ |
36 | |||
36 | #include <linux/module.h> | 37 | #include <linux/module.h> |
37 | #include <linux/kernel.h> | ||
38 | #include <linux/init.h> | 38 | #include <linux/init.h> |
39 | #include <linux/string.h> | 39 | #include <linux/string.h> |
40 | 40 | ||
diff --git a/arch/mips/au1000/common/puts.c b/arch/mips/au1000/common/puts.c index 2705829cd466..e34c67e89293 100644 --- a/arch/mips/au1000/common/puts.c +++ b/arch/mips/au1000/common/puts.c | |||
@@ -28,7 +28,6 @@ | |||
28 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 28 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
29 | */ | 29 | */ |
30 | 30 | ||
31 | #include <linux/types.h> | ||
32 | #include <asm/mach-au1x00/au1000.h> | 31 | #include <asm/mach-au1x00/au1000.h> |
33 | 32 | ||
34 | #define SERIAL_BASE UART_BASE | 33 | #define SERIAL_BASE UART_BASE |
diff --git a/arch/mips/au1000/common/reset.c b/arch/mips/au1000/common/reset.c index b8638d293cf9..60cec537c745 100644 --- a/arch/mips/au1000/common/reset.c +++ b/arch/mips/au1000/common/reset.c | |||
@@ -27,13 +27,7 @@ | |||
27 | * with this program; if not, write to the Free Software Foundation, Inc., | 27 | * with this program; if not, write to the Free Software Foundation, Inc., |
28 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 28 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
29 | */ | 29 | */ |
30 | #include <linux/sched.h> | 30 | |
31 | #include <linux/mm.h> | ||
32 | #include <asm/io.h> | ||
33 | #include <asm/pgtable.h> | ||
34 | #include <asm/processor.h> | ||
35 | #include <asm/reboot.h> | ||
36 | #include <asm/system.h> | ||
37 | #include <asm/mach-au1x00/au1000.h> | 31 | #include <asm/mach-au1x00/au1000.h> |
38 | 32 | ||
39 | extern int au_sleep(void); | 33 | extern int au_sleep(void); |
diff --git a/arch/mips/au1000/common/setup.c b/arch/mips/au1000/common/setup.c index d885e3848ec6..0e86f7a6b4a7 100644 --- a/arch/mips/au1000/common/setup.c +++ b/arch/mips/au1000/common/setup.c | |||
@@ -25,21 +25,14 @@ | |||
25 | * with this program; if not, write to the Free Software Foundation, Inc., | 25 | * with this program; if not, write to the Free Software Foundation, Inc., |
26 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 26 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
27 | */ | 27 | */ |
28 | |||
28 | #include <linux/init.h> | 29 | #include <linux/init.h> |
29 | #include <linux/sched.h> | ||
30 | #include <linux/ioport.h> | 30 | #include <linux/ioport.h> |
31 | #include <linux/mm.h> | ||
32 | #include <linux/delay.h> | ||
33 | #include <linux/interrupt.h> | ||
34 | #include <linux/module.h> | 31 | #include <linux/module.h> |
35 | #include <linux/pm.h> | 32 | #include <linux/pm.h> |
36 | 33 | ||
37 | #include <asm/cpu.h> | ||
38 | #include <asm/bootinfo.h> | ||
39 | #include <asm/irq.h> | ||
40 | #include <asm/mipsregs.h> | 34 | #include <asm/mipsregs.h> |
41 | #include <asm/reboot.h> | 35 | #include <asm/reboot.h> |
42 | #include <asm/pgtable.h> | ||
43 | #include <asm/time.h> | 36 | #include <asm/time.h> |
44 | 37 | ||
45 | #include <au1000.h> | 38 | #include <au1000.h> |
@@ -49,15 +42,13 @@ extern void __init board_setup(void); | |||
49 | extern void au1000_restart(char *); | 42 | extern void au1000_restart(char *); |
50 | extern void au1000_halt(void); | 43 | extern void au1000_halt(void); |
51 | extern void au1000_power_off(void); | 44 | extern void au1000_power_off(void); |
52 | extern void au1x_time_init(void); | ||
53 | extern void au1x_timer_setup(struct irqaction *irq); | ||
54 | extern void set_cpuspec(void); | 45 | extern void set_cpuspec(void); |
55 | 46 | ||
56 | void __init plat_mem_setup(void) | 47 | void __init plat_mem_setup(void) |
57 | { | 48 | { |
58 | struct cpu_spec *sp; | 49 | struct cpu_spec *sp; |
59 | char *argptr; | 50 | char *argptr; |
60 | unsigned long prid, cpupll, bclk = 1; | 51 | unsigned long prid, cpufreq, bclk = 1; |
61 | 52 | ||
62 | set_cpuspec(); | 53 | set_cpuspec(); |
63 | sp = cur_cpu_spec[0]; | 54 | sp = cur_cpu_spec[0]; |
@@ -65,8 +56,15 @@ void __init plat_mem_setup(void) | |||
65 | board_setup(); /* board specific setup */ | 56 | board_setup(); /* board specific setup */ |
66 | 57 | ||
67 | prid = read_c0_prid(); | 58 | prid = read_c0_prid(); |
68 | cpupll = (au_readl(0xB1900060) & 0x3F) * 12; | 59 | if (sp->cpu_pll_wo) |
69 | printk("(PRId %08lx) @ %ldMHZ\n", prid, cpupll); | 60 | #ifdef CONFIG_SOC_AU1000_FREQUENCY |
61 | cpufreq = CONFIG_SOC_AU1000_FREQUENCY / 1000000; | ||
62 | #else | ||
63 | cpufreq = 396; | ||
64 | #endif | ||
65 | else | ||
66 | cpufreq = (au_readl(SYS_CPUPLL) & 0x3F) * 12; | ||
67 | printk(KERN_INFO "(PRID %08lx) @ %ld MHz\n", prid, cpufreq); | ||
70 | 68 | ||
71 | bclk = sp->cpu_bclk; | 69 | bclk = sp->cpu_bclk; |
72 | if (bclk) | 70 | if (bclk) |
diff --git a/arch/mips/au1000/common/sleeper.S b/arch/mips/au1000/common/sleeper.S index 683d9da84b66..4b3cf021a454 100644 --- a/arch/mips/au1000/common/sleeper.S +++ b/arch/mips/au1000/common/sleeper.S | |||
@@ -9,9 +9,9 @@ | |||
9 | * Free Software Foundation; either version 2 of the License, or (at your | 9 | * Free Software Foundation; either version 2 of the License, or (at your |
10 | * option) any later version. | 10 | * option) any later version. |
11 | */ | 11 | */ |
12 | |||
12 | #include <asm/asm.h> | 13 | #include <asm/asm.h> |
13 | #include <asm/mipsregs.h> | 14 | #include <asm/mipsregs.h> |
14 | #include <asm/addrspace.h> | ||
15 | #include <asm/regdef.h> | 15 | #include <asm/regdef.h> |
16 | #include <asm/stackframe.h> | 16 | #include <asm/stackframe.h> |
17 | 17 | ||
diff --git a/arch/mips/au1000/common/time.c b/arch/mips/au1000/common/time.c index f113b512d7b1..bdb6d73b26fb 100644 --- a/arch/mips/au1000/common/time.c +++ b/arch/mips/au1000/common/time.c | |||
@@ -1,6 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | * | 2 | * |
3 | * Copyright (C) 2001 MontaVista Software, ppopov@mvista.com | 3 | * Copyright (C) 2001, 2006, 2008 MontaVista Software, <source@mvista.com> |
4 | * Copied and modified Carsten Langgaard's time.c | 4 | * Copied and modified Carsten Langgaard's time.c |
5 | * | 5 | * |
6 | * Carsten Langgaard, carstenl@mips.com | 6 | * Carsten Langgaard, carstenl@mips.com |
@@ -34,23 +34,13 @@ | |||
34 | 34 | ||
35 | #include <linux/types.h> | 35 | #include <linux/types.h> |
36 | #include <linux/init.h> | 36 | #include <linux/init.h> |
37 | #include <linux/kernel_stat.h> | ||
38 | #include <linux/sched.h> | ||
39 | #include <linux/spinlock.h> | 37 | #include <linux/spinlock.h> |
40 | #include <linux/hardirq.h> | ||
41 | 38 | ||
42 | #include <asm/compiler.h> | ||
43 | #include <asm/mipsregs.h> | 39 | #include <asm/mipsregs.h> |
44 | #include <asm/time.h> | 40 | #include <asm/time.h> |
45 | #include <asm/div64.h> | ||
46 | #include <asm/mach-au1x00/au1000.h> | 41 | #include <asm/mach-au1x00/au1000.h> |
47 | 42 | ||
48 | #include <linux/mc146818rtc.h> | 43 | static int no_au1xxx_32khz; |
49 | #include <linux/timex.h> | ||
50 | |||
51 | static unsigned long r4k_offset; /* Amount to increment compare reg each time */ | ||
52 | static unsigned long r4k_cur; /* What counter should be at next timer irq */ | ||
53 | int no_au1xxx_32khz; | ||
54 | extern int allow_au1k_wait; /* default off for CP0 Counter */ | 44 | extern int allow_au1k_wait; /* default off for CP0 Counter */ |
55 | 45 | ||
56 | #ifdef CONFIG_PM | 46 | #ifdef CONFIG_PM |
@@ -184,7 +174,7 @@ wakeup_counter0_set(int ticks) | |||
184 | * "wait" is enabled, and we need to detect if the 32KHz isn't present | 174 | * "wait" is enabled, and we need to detect if the 32KHz isn't present |
185 | * but requested......got it? :-) -- Dan | 175 | * but requested......got it? :-) -- Dan |
186 | */ | 176 | */ |
187 | unsigned long cal_r4koff(void) | 177 | unsigned long calc_clock(void) |
188 | { | 178 | { |
189 | unsigned long cpu_speed; | 179 | unsigned long cpu_speed; |
190 | unsigned long flags; | 180 | unsigned long flags; |
@@ -209,35 +199,33 @@ unsigned long cal_r4koff(void) | |||
209 | while (au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_C1S); | 199 | while (au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_C1S); |
210 | au_writel(0, SYS_TOYWRITE); | 200 | au_writel(0, SYS_TOYWRITE); |
211 | while (au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_C1S); | 201 | while (au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_C1S); |
202 | } else | ||
203 | no_au1xxx_32khz = 1; | ||
212 | 204 | ||
213 | cpu_speed = (au_readl(SYS_CPUPLL) & 0x0000003f) * | 205 | /* |
214 | AU1000_SRC_CLK; | 206 | * On early Au1000, sys_cpupll was write-only. Since these |
215 | } | 207 | * silicon versions of Au1000 are not sold by AMD, we don't bend |
216 | else { | 208 | * over backwards trying to determine the frequency. |
217 | /* The 32KHz oscillator isn't running, so assume there | 209 | */ |
218 | * isn't one and grab the processor speed from the PLL. | 210 | if (cur_cpu_spec[0]->cpu_pll_wo) |
219 | * NOTE: some old silicon doesn't allow reading the PLL. | 211 | #ifdef CONFIG_SOC_AU1000_FREQUENCY |
220 | */ | 212 | cpu_speed = CONFIG_SOC_AU1000_FREQUENCY; |
213 | #else | ||
214 | cpu_speed = 396000000; | ||
215 | #endif | ||
216 | else | ||
221 | cpu_speed = (au_readl(SYS_CPUPLL) & 0x0000003f) * AU1000_SRC_CLK; | 217 | cpu_speed = (au_readl(SYS_CPUPLL) & 0x0000003f) * AU1000_SRC_CLK; |
222 | no_au1xxx_32khz = 1; | ||
223 | } | ||
224 | mips_hpt_frequency = cpu_speed; | 218 | mips_hpt_frequency = cpu_speed; |
225 | // Equation: Baudrate = CPU / (SD * 2 * CLKDIV * 16) | 219 | // Equation: Baudrate = CPU / (SD * 2 * CLKDIV * 16) |
226 | set_au1x00_uart_baud_base(cpu_speed / (2 * ((int)(au_readl(SYS_POWERCTRL)&0x03) + 2) * 16)); | 220 | set_au1x00_uart_baud_base(cpu_speed / (2 * ((int)(au_readl(SYS_POWERCTRL)&0x03) + 2) * 16)); |
227 | spin_unlock_irqrestore(&time_lock, flags); | 221 | spin_unlock_irqrestore(&time_lock, flags); |
228 | return (cpu_speed / HZ); | 222 | return cpu_speed; |
229 | } | 223 | } |
230 | 224 | ||
231 | void __init plat_time_init(void) | 225 | void __init plat_time_init(void) |
232 | { | 226 | { |
233 | unsigned int est_freq; | 227 | unsigned int est_freq = calc_clock(); |
234 | |||
235 | printk("calculating r4koff... "); | ||
236 | r4k_offset = cal_r4koff(); | ||
237 | printk("%08lx(%d)\n", r4k_offset, (int) r4k_offset); | ||
238 | 228 | ||
239 | //est_freq = 2*r4k_offset*HZ; | ||
240 | est_freq = r4k_offset*HZ; | ||
241 | est_freq += 5000; /* round */ | 229 | est_freq += 5000; /* round */ |
242 | est_freq -= est_freq%10000; | 230 | est_freq -= est_freq%10000; |
243 | printk("CPU frequency %d.%02d MHz\n", est_freq/1000000, | 231 | printk("CPU frequency %d.%02d MHz\n", est_freq/1000000, |
@@ -245,9 +233,6 @@ void __init plat_time_init(void) | |||
245 | set_au1x00_speed(est_freq); | 233 | set_au1x00_speed(est_freq); |
246 | set_au1x00_lcd_clock(); // program the LCD clock | 234 | set_au1x00_lcd_clock(); // program the LCD clock |
247 | 235 | ||
248 | r4k_cur = (read_c0_count() + r4k_offset); | ||
249 | write_c0_compare(r4k_cur); | ||
250 | |||
251 | #ifdef CONFIG_PM | 236 | #ifdef CONFIG_PM |
252 | /* | 237 | /* |
253 | * setup counter 0, since it keeps ticking after a | 238 | * setup counter 0, since it keeps ticking after a |
@@ -261,12 +246,8 @@ void __init plat_time_init(void) | |||
261 | * Check to ensure we really have a 32KHz oscillator before | 246 | * Check to ensure we really have a 32KHz oscillator before |
262 | * we do this. | 247 | * we do this. |
263 | */ | 248 | */ |
264 | if (no_au1xxx_32khz) { | 249 | if (no_au1xxx_32khz) |
265 | printk("WARNING: no 32KHz clock found.\n"); | 250 | printk("WARNING: no 32KHz clock found.\n"); |
266 | |||
267 | /* Ensure we get CPO_COUNTER interrupts. */ | ||
268 | set_c0_status(IE_IRQ5); | ||
269 | } | ||
270 | else { | 251 | else { |
271 | while (au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_C0S); | 252 | while (au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_C0S); |
272 | au_writel(0, SYS_TOYWRITE); | 253 | au_writel(0, SYS_TOYWRITE); |
diff --git a/arch/mips/au1000/db1x00/board_setup.c b/arch/mips/au1000/db1x00/board_setup.c index 99eafeada518..b7dcbad5c586 100644 --- a/arch/mips/au1000/db1x00/board_setup.c +++ b/arch/mips/au1000/db1x00/board_setup.c | |||
@@ -27,20 +27,9 @@ | |||
27 | * with this program; if not, write to the Free Software Foundation, Inc., | 27 | * with this program; if not, write to the Free Software Foundation, Inc., |
28 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 28 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
29 | */ | 29 | */ |
30 | |||
30 | #include <linux/init.h> | 31 | #include <linux/init.h> |
31 | #include <linux/sched.h> | 32 | |
32 | #include <linux/ioport.h> | ||
33 | #include <linux/mm.h> | ||
34 | #include <linux/console.h> | ||
35 | #include <linux/mc146818rtc.h> | ||
36 | #include <linux/delay.h> | ||
37 | |||
38 | #include <asm/cpu.h> | ||
39 | #include <asm/bootinfo.h> | ||
40 | #include <asm/irq.h> | ||
41 | #include <asm/mipsregs.h> | ||
42 | #include <asm/reboot.h> | ||
43 | #include <asm/pgtable.h> | ||
44 | #include <asm/mach-au1x00/au1000.h> | 33 | #include <asm/mach-au1x00/au1000.h> |
45 | #include <asm/mach-db1x00/db1x00.h> | 34 | #include <asm/mach-db1x00/db1x00.h> |
46 | 35 | ||
diff --git a/arch/mips/au1000/db1x00/init.c b/arch/mips/au1000/db1x00/init.c index e822c123eab8..d3b967caf70c 100644 --- a/arch/mips/au1000/db1x00/init.c +++ b/arch/mips/au1000/db1x00/init.c | |||
@@ -28,13 +28,8 @@ | |||
28 | */ | 28 | */ |
29 | 29 | ||
30 | #include <linux/init.h> | 30 | #include <linux/init.h> |
31 | #include <linux/mm.h> | ||
32 | #include <linux/sched.h> | ||
33 | #include <linux/bootmem.h> | ||
34 | #include <linux/string.h> | ||
35 | #include <linux/kernel.h> | 31 | #include <linux/kernel.h> |
36 | 32 | ||
37 | #include <asm/addrspace.h> | ||
38 | #include <asm/bootinfo.h> | 33 | #include <asm/bootinfo.h> |
39 | 34 | ||
40 | #include <prom.h> | 35 | #include <prom.h> |
diff --git a/arch/mips/au1000/db1x00/irqmap.c b/arch/mips/au1000/db1x00/irqmap.c index 09cea03411b0..eaa50c7b6341 100644 --- a/arch/mips/au1000/db1x00/irqmap.c +++ b/arch/mips/au1000/db1x00/irqmap.c | |||
@@ -25,26 +25,9 @@ | |||
25 | * with this program; if not, write to the Free Software Foundation, Inc., | 25 | * with this program; if not, write to the Free Software Foundation, Inc., |
26 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 26 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
27 | */ | 27 | */ |
28 | #include <linux/errno.h> | 28 | |
29 | #include <linux/init.h> | 29 | #include <linux/init.h> |
30 | #include <linux/irq.h> | ||
31 | #include <linux/kernel_stat.h> | ||
32 | #include <linux/module.h> | ||
33 | #include <linux/signal.h> | ||
34 | #include <linux/sched.h> | ||
35 | #include <linux/types.h> | ||
36 | #include <linux/interrupt.h> | ||
37 | #include <linux/ioport.h> | ||
38 | #include <linux/timex.h> | ||
39 | #include <linux/slab.h> | ||
40 | #include <linux/random.h> | ||
41 | #include <linux/delay.h> | ||
42 | #include <linux/bitops.h> | ||
43 | 30 | ||
44 | #include <asm/bootinfo.h> | ||
45 | #include <asm/io.h> | ||
46 | #include <asm/mipsregs.h> | ||
47 | #include <asm/system.h> | ||
48 | #include <asm/mach-au1x00/au1000.h> | 31 | #include <asm/mach-au1x00/au1000.h> |
49 | 32 | ||
50 | #ifdef CONFIG_MIPS_DB1500 | 33 | #ifdef CONFIG_MIPS_DB1500 |
diff --git a/arch/mips/au1000/mtx-1/board_setup.c b/arch/mips/au1000/mtx-1/board_setup.c index 310d5dff89fc..5736354829c6 100644 --- a/arch/mips/au1000/mtx-1/board_setup.c +++ b/arch/mips/au1000/mtx-1/board_setup.c | |||
@@ -28,19 +28,9 @@ | |||
28 | * with this program; if not, write to the Free Software Foundation, Inc., | 28 | * with this program; if not, write to the Free Software Foundation, Inc., |
29 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 29 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
30 | */ | 30 | */ |
31 | |||
31 | #include <linux/init.h> | 32 | #include <linux/init.h> |
32 | #include <linux/sched.h> | ||
33 | #include <linux/ioport.h> | ||
34 | #include <linux/mm.h> | ||
35 | #include <linux/console.h> | ||
36 | #include <linux/delay.h> | ||
37 | 33 | ||
38 | #include <asm/cpu.h> | ||
39 | #include <asm/bootinfo.h> | ||
40 | #include <asm/irq.h> | ||
41 | #include <asm/mipsregs.h> | ||
42 | #include <asm/reboot.h> | ||
43 | #include <asm/pgtable.h> | ||
44 | #include <asm/mach-au1x00/au1000.h> | 34 | #include <asm/mach-au1x00/au1000.h> |
45 | 35 | ||
46 | extern int (*board_pci_idsel)(unsigned int devsel, int assert); | 36 | extern int (*board_pci_idsel)(unsigned int devsel, int assert); |
diff --git a/arch/mips/au1000/mtx-1/init.c b/arch/mips/au1000/mtx-1/init.c index e700fd312a24..c015cbce1cca 100644 --- a/arch/mips/au1000/mtx-1/init.c +++ b/arch/mips/au1000/mtx-1/init.c | |||
@@ -28,14 +28,10 @@ | |||
28 | * with this program; if not, write to the Free Software Foundation, Inc., | 28 | * with this program; if not, write to the Free Software Foundation, Inc., |
29 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 29 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
30 | */ | 30 | */ |
31 | #include <linux/string.h> | 31 | |
32 | #include <linux/kernel.h> | 32 | #include <linux/kernel.h> |
33 | #include <linux/sched.h> | ||
34 | #include <linux/init.h> | 33 | #include <linux/init.h> |
35 | #include <linux/mm.h> | ||
36 | #include <linux/bootmem.h> | ||
37 | 34 | ||
38 | #include <asm/addrspace.h> | ||
39 | #include <asm/bootinfo.h> | 35 | #include <asm/bootinfo.h> |
40 | 36 | ||
41 | #include <prom.h> | 37 | #include <prom.h> |
diff --git a/arch/mips/au1000/mtx-1/irqmap.c b/arch/mips/au1000/mtx-1/irqmap.c index 49c612aeddcf..78d70c42c9db 100644 --- a/arch/mips/au1000/mtx-1/irqmap.c +++ b/arch/mips/au1000/mtx-1/irqmap.c | |||
@@ -25,26 +25,9 @@ | |||
25 | * with this program; if not, write to the Free Software Foundation, Inc., | 25 | * with this program; if not, write to the Free Software Foundation, Inc., |
26 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 26 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
27 | */ | 27 | */ |
28 | #include <linux/errno.h> | 28 | |
29 | #include <linux/init.h> | 29 | #include <linux/init.h> |
30 | #include <linux/irq.h> | ||
31 | #include <linux/kernel_stat.h> | ||
32 | #include <linux/module.h> | ||
33 | #include <linux/signal.h> | ||
34 | #include <linux/sched.h> | ||
35 | #include <linux/types.h> | ||
36 | #include <linux/interrupt.h> | ||
37 | #include <linux/ioport.h> | ||
38 | #include <linux/timex.h> | ||
39 | #include <linux/slab.h> | ||
40 | #include <linux/random.h> | ||
41 | #include <linux/delay.h> | ||
42 | #include <linux/bitops.h> | ||
43 | 30 | ||
44 | #include <asm/bootinfo.h> | ||
45 | #include <asm/io.h> | ||
46 | #include <asm/mipsregs.h> | ||
47 | #include <asm/system.h> | ||
48 | #include <asm/mach-au1x00/au1000.h> | 31 | #include <asm/mach-au1x00/au1000.h> |
49 | 32 | ||
50 | char irq_tab_alchemy[][5] __initdata = { | 33 | char irq_tab_alchemy[][5] __initdata = { |
diff --git a/arch/mips/au1000/mtx-1/platform.c b/arch/mips/au1000/mtx-1/platform.c index ce8637b3afa9..a7edbf0829ac 100644 --- a/arch/mips/au1000/mtx-1/platform.c +++ b/arch/mips/au1000/mtx-1/platform.c | |||
@@ -19,7 +19,6 @@ | |||
19 | */ | 19 | */ |
20 | 20 | ||
21 | #include <linux/init.h> | 21 | #include <linux/init.h> |
22 | #include <linux/types.h> | ||
23 | #include <linux/platform_device.h> | 22 | #include <linux/platform_device.h> |
24 | #include <linux/leds.h> | 23 | #include <linux/leds.h> |
25 | #include <linux/gpio_keys.h> | 24 | #include <linux/gpio_keys.h> |
diff --git a/arch/mips/au1000/pb1000/board_setup.c b/arch/mips/au1000/pb1000/board_setup.c index 5198c4f98b43..33f15acc1b17 100644 --- a/arch/mips/au1000/pb1000/board_setup.c +++ b/arch/mips/au1000/pb1000/board_setup.c | |||
@@ -23,19 +23,10 @@ | |||
23 | * with this program; if not, write to the Free Software Foundation, Inc., | 23 | * with this program; if not, write to the Free Software Foundation, Inc., |
24 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 24 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
25 | */ | 25 | */ |
26 | |||
26 | #include <linux/init.h> | 27 | #include <linux/init.h> |
27 | #include <linux/sched.h> | ||
28 | #include <linux/ioport.h> | ||
29 | #include <linux/mm.h> | ||
30 | #include <linux/console.h> | ||
31 | #include <linux/delay.h> | 28 | #include <linux/delay.h> |
32 | 29 | ||
33 | #include <asm/cpu.h> | ||
34 | #include <asm/bootinfo.h> | ||
35 | #include <asm/irq.h> | ||
36 | #include <asm/mipsregs.h> | ||
37 | #include <asm/reboot.h> | ||
38 | #include <asm/pgtable.h> | ||
39 | #include <asm/mach-au1x00/au1000.h> | 30 | #include <asm/mach-au1x00/au1000.h> |
40 | #include <asm/mach-pb1x00/pb1000.h> | 31 | #include <asm/mach-pb1x00/pb1000.h> |
41 | 32 | ||
diff --git a/arch/mips/au1000/pb1000/init.c b/arch/mips/au1000/pb1000/init.c index 2515b9fb24af..549447df71d6 100644 --- a/arch/mips/au1000/pb1000/init.c +++ b/arch/mips/au1000/pb1000/init.c | |||
@@ -26,14 +26,10 @@ | |||
26 | * with this program; if not, write to the Free Software Foundation, Inc., | 26 | * with this program; if not, write to the Free Software Foundation, Inc., |
27 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 27 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
28 | */ | 28 | */ |
29 | |||
29 | #include <linux/init.h> | 30 | #include <linux/init.h> |
30 | #include <linux/mm.h> | ||
31 | #include <linux/sched.h> | ||
32 | #include <linux/bootmem.h> | ||
33 | #include <linux/string.h> | ||
34 | #include <linux/kernel.h> | 31 | #include <linux/kernel.h> |
35 | 32 | ||
36 | #include <asm/addrspace.h> | ||
37 | #include <asm/bootinfo.h> | 33 | #include <asm/bootinfo.h> |
38 | 34 | ||
39 | #include <prom.h> | 35 | #include <prom.h> |
diff --git a/arch/mips/au1000/pb1000/irqmap.c b/arch/mips/au1000/pb1000/irqmap.c index 88e354508204..b3d56b0af321 100644 --- a/arch/mips/au1000/pb1000/irqmap.c +++ b/arch/mips/au1000/pb1000/irqmap.c | |||
@@ -25,26 +25,10 @@ | |||
25 | * with this program; if not, write to the Free Software Foundation, Inc., | 25 | * with this program; if not, write to the Free Software Foundation, Inc., |
26 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 26 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
27 | */ | 27 | */ |
28 | #include <linux/errno.h> | 28 | |
29 | #include <linux/init.h> | 29 | #include <linux/init.h> |
30 | #include <linux/irq.h> | ||
31 | #include <linux/kernel_stat.h> | ||
32 | #include <linux/module.h> | ||
33 | #include <linux/signal.h> | ||
34 | #include <linux/sched.h> | ||
35 | #include <linux/types.h> | ||
36 | #include <linux/interrupt.h> | 30 | #include <linux/interrupt.h> |
37 | #include <linux/ioport.h> | ||
38 | #include <linux/timex.h> | ||
39 | #include <linux/slab.h> | ||
40 | #include <linux/random.h> | ||
41 | #include <linux/delay.h> | ||
42 | #include <linux/bitops.h> | ||
43 | 31 | ||
44 | #include <asm/bootinfo.h> | ||
45 | #include <asm/io.h> | ||
46 | #include <asm/mipsregs.h> | ||
47 | #include <asm/system.h> | ||
48 | #include <asm/mach-au1x00/au1000.h> | 32 | #include <asm/mach-au1x00/au1000.h> |
49 | 33 | ||
50 | struct au1xxx_irqmap __initdata au1xxx_irq_map[] = { | 34 | struct au1xxx_irqmap __initdata au1xxx_irq_map[] = { |
diff --git a/arch/mips/au1000/pb1100/board_setup.c b/arch/mips/au1000/pb1100/board_setup.c index 42874a6b31d1..656164c8e9ca 100644 --- a/arch/mips/au1000/pb1100/board_setup.c +++ b/arch/mips/au1000/pb1100/board_setup.c | |||
@@ -23,19 +23,10 @@ | |||
23 | * with this program; if not, write to the Free Software Foundation, Inc., | 23 | * with this program; if not, write to the Free Software Foundation, Inc., |
24 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 24 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
25 | */ | 25 | */ |
26 | |||
26 | #include <linux/init.h> | 27 | #include <linux/init.h> |
27 | #include <linux/sched.h> | ||
28 | #include <linux/ioport.h> | ||
29 | #include <linux/mm.h> | ||
30 | #include <linux/console.h> | ||
31 | #include <linux/delay.h> | 28 | #include <linux/delay.h> |
32 | 29 | ||
33 | #include <asm/cpu.h> | ||
34 | #include <asm/bootinfo.h> | ||
35 | #include <asm/irq.h> | ||
36 | #include <asm/mipsregs.h> | ||
37 | #include <asm/reboot.h> | ||
38 | #include <asm/pgtable.h> | ||
39 | #include <asm/mach-au1x00/au1000.h> | 30 | #include <asm/mach-au1x00/au1000.h> |
40 | #include <asm/mach-pb1x00/pb1100.h> | 31 | #include <asm/mach-pb1x00/pb1100.h> |
41 | 32 | ||
diff --git a/arch/mips/au1000/pb1100/init.c b/arch/mips/au1000/pb1100/init.c index 490c3801c275..c91344648ed3 100644 --- a/arch/mips/au1000/pb1100/init.c +++ b/arch/mips/au1000/pb1100/init.c | |||
@@ -27,14 +27,10 @@ | |||
27 | * with this program; if not, write to the Free Software Foundation, Inc., | 27 | * with this program; if not, write to the Free Software Foundation, Inc., |
28 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 28 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
29 | */ | 29 | */ |
30 | |||
30 | #include <linux/init.h> | 31 | #include <linux/init.h> |
31 | #include <linux/mm.h> | ||
32 | #include <linux/sched.h> | ||
33 | #include <linux/bootmem.h> | ||
34 | #include <linux/string.h> | ||
35 | #include <linux/kernel.h> | 32 | #include <linux/kernel.h> |
36 | 33 | ||
37 | #include <asm/addrspace.h> | ||
38 | #include <asm/bootinfo.h> | 34 | #include <asm/bootinfo.h> |
39 | 35 | ||
40 | #include <prom.h> | 36 | #include <prom.h> |
diff --git a/arch/mips/au1000/pb1100/irqmap.c b/arch/mips/au1000/pb1100/irqmap.c index 880456bf8c11..b5021e3d477f 100644 --- a/arch/mips/au1000/pb1100/irqmap.c +++ b/arch/mips/au1000/pb1100/irqmap.c | |||
@@ -25,26 +25,9 @@ | |||
25 | * with this program; if not, write to the Free Software Foundation, Inc., | 25 | * with this program; if not, write to the Free Software Foundation, Inc., |
26 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 26 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
27 | */ | 27 | */ |
28 | #include <linux/errno.h> | 28 | |
29 | #include <linux/init.h> | 29 | #include <linux/init.h> |
30 | #include <linux/irq.h> | ||
31 | #include <linux/kernel_stat.h> | ||
32 | #include <linux/module.h> | ||
33 | #include <linux/signal.h> | ||
34 | #include <linux/sched.h> | ||
35 | #include <linux/types.h> | ||
36 | #include <linux/interrupt.h> | ||
37 | #include <linux/ioport.h> | ||
38 | #include <linux/timex.h> | ||
39 | #include <linux/slab.h> | ||
40 | #include <linux/random.h> | ||
41 | #include <linux/delay.h> | ||
42 | #include <linux/bitops.h> | ||
43 | 30 | ||
44 | #include <asm/bootinfo.h> | ||
45 | #include <asm/io.h> | ||
46 | #include <asm/mipsregs.h> | ||
47 | #include <asm/system.h> | ||
48 | #include <asm/mach-au1x00/au1000.h> | 31 | #include <asm/mach-au1x00/au1000.h> |
49 | 32 | ||
50 | struct au1xxx_irqmap __initdata au1xxx_irq_map[] = { | 33 | struct au1xxx_irqmap __initdata au1xxx_irq_map[] = { |
diff --git a/arch/mips/au1000/pb1200/Makefile b/arch/mips/au1000/pb1200/Makefile index 970b1b1d5cda..4fe02ea65a60 100644 --- a/arch/mips/au1000/pb1200/Makefile +++ b/arch/mips/au1000/pb1200/Makefile | |||
@@ -3,5 +3,6 @@ | |||
3 | # | 3 | # |
4 | 4 | ||
5 | lib-y := init.o board_setup.o irqmap.o | 5 | lib-y := init.o board_setup.o irqmap.o |
6 | obj-y += platform.o | ||
6 | 7 | ||
7 | EXTRA_CFLAGS += -Werror | 8 | EXTRA_CFLAGS += -Werror |
diff --git a/arch/mips/au1000/pb1200/board_setup.c b/arch/mips/au1000/pb1200/board_setup.c index b98bebfa87c6..4493a792cc4c 100644 --- a/arch/mips/au1000/pb1200/board_setup.c +++ b/arch/mips/au1000/pb1200/board_setup.c | |||
@@ -23,27 +23,11 @@ | |||
23 | * with this program; if not, write to the Free Software Foundation, Inc., | 23 | * with this program; if not, write to the Free Software Foundation, Inc., |
24 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 24 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
25 | */ | 25 | */ |
26 | |||
26 | #include <linux/init.h> | 27 | #include <linux/init.h> |
27 | #include <linux/sched.h> | 28 | #include <linux/sched.h> |
28 | #include <linux/ioport.h> | ||
29 | #include <linux/mm.h> | ||
30 | #include <linux/console.h> | ||
31 | #include <linux/mc146818rtc.h> | ||
32 | #include <linux/delay.h> | ||
33 | |||
34 | #if defined(CONFIG_BLK_DEV_IDE_AU1XXX) | ||
35 | #include <linux/ide.h> | ||
36 | #endif | ||
37 | |||
38 | #include <asm/cpu.h> | ||
39 | #include <asm/bootinfo.h> | ||
40 | #include <asm/irq.h> | ||
41 | #include <asm/mipsregs.h> | ||
42 | #include <asm/reboot.h> | ||
43 | #include <asm/pgtable.h> | ||
44 | 29 | ||
45 | #include <au1000.h> | 30 | #include <au1000.h> |
46 | #include <au1xxx_dbdma.h> | ||
47 | #include <prom.h> | 31 | #include <prom.h> |
48 | 32 | ||
49 | #ifdef CONFIG_MIPS_PB1200 | 33 | #ifdef CONFIG_MIPS_PB1200 |
@@ -52,8 +36,6 @@ | |||
52 | 36 | ||
53 | #ifdef CONFIG_MIPS_DB1200 | 37 | #ifdef CONFIG_MIPS_DB1200 |
54 | #include <asm/mach-db1x00/db1200.h> | 38 | #include <asm/mach-db1x00/db1200.h> |
55 | #define PB1200_ETH_INT DB1200_ETH_INT | ||
56 | #define PB1200_IDE_INT DB1200_IDE_INT | ||
57 | #endif | 39 | #endif |
58 | 40 | ||
59 | extern void _board_init_irq(void); | 41 | extern void _board_init_irq(void); |
diff --git a/arch/mips/au1000/pb1200/init.c b/arch/mips/au1000/pb1200/init.c index 069ed45f04f2..72af5500660b 100644 --- a/arch/mips/au1000/pb1200/init.c +++ b/arch/mips/au1000/pb1200/init.c | |||
@@ -27,14 +27,10 @@ | |||
27 | * with this program; if not, write to the Free Software Foundation, Inc., | 27 | * with this program; if not, write to the Free Software Foundation, Inc., |
28 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 28 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
29 | */ | 29 | */ |
30 | |||
30 | #include <linux/init.h> | 31 | #include <linux/init.h> |
31 | #include <linux/mm.h> | ||
32 | #include <linux/sched.h> | ||
33 | #include <linux/bootmem.h> | ||
34 | #include <linux/string.h> | ||
35 | #include <linux/kernel.h> | 32 | #include <linux/kernel.h> |
36 | 33 | ||
37 | #include <asm/addrspace.h> | ||
38 | #include <asm/bootinfo.h> | 34 | #include <asm/bootinfo.h> |
39 | 35 | ||
40 | #include <prom.h> | 36 | #include <prom.h> |
diff --git a/arch/mips/au1000/pb1200/irqmap.c b/arch/mips/au1000/pb1200/irqmap.c index 8fcd0df86f93..e61eb8e0b76b 100644 --- a/arch/mips/au1000/pb1200/irqmap.c +++ b/arch/mips/au1000/pb1200/irqmap.c | |||
@@ -22,26 +22,10 @@ | |||
22 | * with this program; if not, write to the Free Software Foundation, Inc., | 22 | * with this program; if not, write to the Free Software Foundation, Inc., |
23 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 23 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
24 | */ | 24 | */ |
25 | #include <linux/errno.h> | 25 | |
26 | #include <linux/init.h> | 26 | #include <linux/init.h> |
27 | #include <linux/irq.h> | ||
28 | #include <linux/kernel_stat.h> | ||
29 | #include <linux/module.h> | ||
30 | #include <linux/signal.h> | ||
31 | #include <linux/sched.h> | ||
32 | #include <linux/types.h> | ||
33 | #include <linux/interrupt.h> | 27 | #include <linux/interrupt.h> |
34 | #include <linux/ioport.h> | 28 | |
35 | #include <linux/timex.h> | ||
36 | #include <linux/slab.h> | ||
37 | #include <linux/random.h> | ||
38 | #include <linux/delay.h> | ||
39 | #include <linux/bitops.h> | ||
40 | |||
41 | #include <asm/bootinfo.h> | ||
42 | #include <asm/io.h> | ||
43 | #include <asm/mipsregs.h> | ||
44 | #include <asm/system.h> | ||
45 | #include <asm/mach-au1x00/au1000.h> | 29 | #include <asm/mach-au1x00/au1000.h> |
46 | 30 | ||
47 | #ifdef CONFIG_MIPS_PB1200 | 31 | #ifdef CONFIG_MIPS_PB1200 |
diff --git a/arch/mips/au1000/pb1200/platform.c b/arch/mips/au1000/pb1200/platform.c new file mode 100644 index 000000000000..5930110b9b6d --- /dev/null +++ b/arch/mips/au1000/pb1200/platform.c | |||
@@ -0,0 +1,84 @@ | |||
1 | /* | ||
2 | * Pb1200/DBAu1200 board platform device registration | ||
3 | * | ||
4 | * Copyright (C) 2008 MontaVista Software Inc. <source@mvista.com> | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License as published by | ||
8 | * the Free Software Foundation; either version 2 of the License, or | ||
9 | * (at your option) any later version. | ||
10 | * | ||
11 | * This program is distributed in the hope that it will be useful, | ||
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | * GNU General Public License for more details. | ||
15 | * | ||
16 | * You should have received a copy of the GNU General Public License | ||
17 | * along with this program; if not, write to the Free Software | ||
18 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | ||
19 | */ | ||
20 | |||
21 | #include <linux/init.h> | ||
22 | #include <linux/platform_device.h> | ||
23 | |||
24 | #include <asm/mach-au1x00/au1xxx.h> | ||
25 | |||
26 | static struct resource ide_resources[] = { | ||
27 | [0] = { | ||
28 | .start = IDE_PHYS_ADDR, | ||
29 | .end = IDE_PHYS_ADDR + IDE_PHYS_LEN - 1, | ||
30 | .flags = IORESOURCE_MEM | ||
31 | }, | ||
32 | [1] = { | ||
33 | .start = IDE_INT, | ||
34 | .end = IDE_INT, | ||
35 | .flags = IORESOURCE_IRQ | ||
36 | } | ||
37 | }; | ||
38 | |||
39 | static u64 ide_dmamask = ~(u32)0; | ||
40 | |||
41 | static struct platform_device ide_device = { | ||
42 | .name = "au1200-ide", | ||
43 | .id = 0, | ||
44 | .dev = { | ||
45 | .dma_mask = &ide_dmamask, | ||
46 | .coherent_dma_mask = 0xffffffff, | ||
47 | }, | ||
48 | .num_resources = ARRAY_SIZE(ide_resources), | ||
49 | .resource = ide_resources | ||
50 | }; | ||
51 | |||
52 | static struct resource smc91c111_resources[] = { | ||
53 | [0] = { | ||
54 | .name = "smc91x-regs", | ||
55 | .start = SMC91C111_PHYS_ADDR, | ||
56 | .end = SMC91C111_PHYS_ADDR + 0xf, | ||
57 | .flags = IORESOURCE_MEM | ||
58 | }, | ||
59 | [1] = { | ||
60 | .start = SMC91C111_INT, | ||
61 | .end = SMC91C111_INT, | ||
62 | .flags = IORESOURCE_IRQ | ||
63 | }, | ||
64 | }; | ||
65 | |||
66 | static struct platform_device smc91c111_device = { | ||
67 | .name = "smc91x", | ||
68 | .id = -1, | ||
69 | .num_resources = ARRAY_SIZE(smc91c111_resources), | ||
70 | .resource = smc91c111_resources | ||
71 | }; | ||
72 | |||
73 | static struct platform_device *board_platform_devices[] __initdata = { | ||
74 | &ide_device, | ||
75 | &smc91c111_device | ||
76 | }; | ||
77 | |||
78 | static int __init board_register_devices(void) | ||
79 | { | ||
80 | return platform_add_devices(board_platform_devices, | ||
81 | ARRAY_SIZE(board_platform_devices)); | ||
82 | } | ||
83 | |||
84 | arch_initcall(board_register_devices); | ||
diff --git a/arch/mips/au1000/pb1500/board_setup.c b/arch/mips/au1000/pb1500/board_setup.c index 5446836869d6..24c652e8ec4b 100644 --- a/arch/mips/au1000/pb1500/board_setup.c +++ b/arch/mips/au1000/pb1500/board_setup.c | |||
@@ -23,19 +23,10 @@ | |||
23 | * with this program; if not, write to the Free Software Foundation, Inc., | 23 | * with this program; if not, write to the Free Software Foundation, Inc., |
24 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 24 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
25 | */ | 25 | */ |
26 | |||
26 | #include <linux/init.h> | 27 | #include <linux/init.h> |
27 | #include <linux/sched.h> | ||
28 | #include <linux/ioport.h> | ||
29 | #include <linux/mm.h> | ||
30 | #include <linux/console.h> | ||
31 | #include <linux/delay.h> | 28 | #include <linux/delay.h> |
32 | 29 | ||
33 | #include <asm/cpu.h> | ||
34 | #include <asm/bootinfo.h> | ||
35 | #include <asm/irq.h> | ||
36 | #include <asm/mipsregs.h> | ||
37 | #include <asm/reboot.h> | ||
38 | #include <asm/pgtable.h> | ||
39 | #include <asm/mach-au1x00/au1000.h> | 30 | #include <asm/mach-au1x00/au1000.h> |
40 | #include <asm/mach-pb1x00/pb1500.h> | 31 | #include <asm/mach-pb1x00/pb1500.h> |
41 | 32 | ||
diff --git a/arch/mips/au1000/pb1500/init.c b/arch/mips/au1000/pb1500/init.c index db558c967048..488507c07db9 100644 --- a/arch/mips/au1000/pb1500/init.c +++ b/arch/mips/au1000/pb1500/init.c | |||
@@ -27,14 +27,10 @@ | |||
27 | * with this program; if not, write to the Free Software Foundation, Inc., | 27 | * with this program; if not, write to the Free Software Foundation, Inc., |
28 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 28 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
29 | */ | 29 | */ |
30 | |||
30 | #include <linux/init.h> | 31 | #include <linux/init.h> |
31 | #include <linux/mm.h> | ||
32 | #include <linux/sched.h> | ||
33 | #include <linux/bootmem.h> | ||
34 | #include <linux/string.h> | ||
35 | #include <linux/kernel.h> | 32 | #include <linux/kernel.h> |
36 | 33 | ||
37 | #include <asm/addrspace.h> | ||
38 | #include <asm/bootinfo.h> | 34 | #include <asm/bootinfo.h> |
39 | 35 | ||
40 | #include <prom.h> | 36 | #include <prom.h> |
diff --git a/arch/mips/au1000/pb1500/irqmap.c b/arch/mips/au1000/pb1500/irqmap.c index 810f695e24bb..4817ab44d07f 100644 --- a/arch/mips/au1000/pb1500/irqmap.c +++ b/arch/mips/au1000/pb1500/irqmap.c | |||
@@ -25,26 +25,9 @@ | |||
25 | * with this program; if not, write to the Free Software Foundation, Inc., | 25 | * with this program; if not, write to the Free Software Foundation, Inc., |
26 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 26 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
27 | */ | 27 | */ |
28 | #include <linux/errno.h> | 28 | |
29 | #include <linux/init.h> | 29 | #include <linux/init.h> |
30 | #include <linux/irq.h> | ||
31 | #include <linux/kernel_stat.h> | ||
32 | #include <linux/module.h> | ||
33 | #include <linux/signal.h> | ||
34 | #include <linux/sched.h> | ||
35 | #include <linux/types.h> | ||
36 | #include <linux/interrupt.h> | ||
37 | #include <linux/ioport.h> | ||
38 | #include <linux/timex.h> | ||
39 | #include <linux/slab.h> | ||
40 | #include <linux/random.h> | ||
41 | #include <linux/delay.h> | ||
42 | #include <linux/bitops.h> | ||
43 | 30 | ||
44 | #include <asm/bootinfo.h> | ||
45 | #include <asm/io.h> | ||
46 | #include <asm/mipsregs.h> | ||
47 | #include <asm/system.h> | ||
48 | #include <asm/mach-au1x00/au1000.h> | 31 | #include <asm/mach-au1x00/au1000.h> |
49 | 32 | ||
50 | char irq_tab_alchemy[][5] __initdata = { | 33 | char irq_tab_alchemy[][5] __initdata = { |
diff --git a/arch/mips/au1000/pb1550/board_setup.c b/arch/mips/au1000/pb1550/board_setup.c index e3cfb0d73180..45d60872b565 100644 --- a/arch/mips/au1000/pb1550/board_setup.c +++ b/arch/mips/au1000/pb1550/board_setup.c | |||
@@ -27,20 +27,9 @@ | |||
27 | * with this program; if not, write to the Free Software Foundation, Inc., | 27 | * with this program; if not, write to the Free Software Foundation, Inc., |
28 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 28 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
29 | */ | 29 | */ |
30 | |||
30 | #include <linux/init.h> | 31 | #include <linux/init.h> |
31 | #include <linux/sched.h> | ||
32 | #include <linux/ioport.h> | ||
33 | #include <linux/mm.h> | ||
34 | #include <linux/console.h> | ||
35 | #include <linux/mc146818rtc.h> | ||
36 | #include <linux/delay.h> | ||
37 | 32 | ||
38 | #include <asm/cpu.h> | ||
39 | #include <asm/bootinfo.h> | ||
40 | #include <asm/irq.h> | ||
41 | #include <asm/mipsregs.h> | ||
42 | #include <asm/reboot.h> | ||
43 | #include <asm/pgtable.h> | ||
44 | #include <asm/mach-au1x00/au1000.h> | 33 | #include <asm/mach-au1x00/au1000.h> |
45 | #include <asm/mach-pb1x00/pb1550.h> | 34 | #include <asm/mach-pb1x00/pb1550.h> |
46 | 35 | ||
diff --git a/arch/mips/au1000/pb1550/init.c b/arch/mips/au1000/pb1550/init.c index b716363ea564..f6b2fc587980 100644 --- a/arch/mips/au1000/pb1550/init.c +++ b/arch/mips/au1000/pb1550/init.c | |||
@@ -27,14 +27,10 @@ | |||
27 | * with this program; if not, write to the Free Software Foundation, Inc., | 27 | * with this program; if not, write to the Free Software Foundation, Inc., |
28 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 28 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
29 | */ | 29 | */ |
30 | |||
30 | #include <linux/init.h> | 31 | #include <linux/init.h> |
31 | #include <linux/mm.h> | ||
32 | #include <linux/sched.h> | ||
33 | #include <linux/bootmem.h> | ||
34 | #include <linux/string.h> | ||
35 | #include <linux/kernel.h> | 32 | #include <linux/kernel.h> |
36 | 33 | ||
37 | #include <asm/addrspace.h> | ||
38 | #include <asm/bootinfo.h> | 34 | #include <asm/bootinfo.h> |
39 | 35 | ||
40 | #include <prom.h> | 36 | #include <prom.h> |
diff --git a/arch/mips/au1000/pb1550/irqmap.c b/arch/mips/au1000/pb1550/irqmap.c index 56becab28e5d..e1dac37af08a 100644 --- a/arch/mips/au1000/pb1550/irqmap.c +++ b/arch/mips/au1000/pb1550/irqmap.c | |||
@@ -25,26 +25,9 @@ | |||
25 | * with this program; if not, write to the Free Software Foundation, Inc., | 25 | * with this program; if not, write to the Free Software Foundation, Inc., |
26 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 26 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
27 | */ | 27 | */ |
28 | #include <linux/errno.h> | 28 | |
29 | #include <linux/init.h> | 29 | #include <linux/init.h> |
30 | #include <linux/irq.h> | ||
31 | #include <linux/kernel_stat.h> | ||
32 | #include <linux/module.h> | ||
33 | #include <linux/signal.h> | ||
34 | #include <linux/sched.h> | ||
35 | #include <linux/types.h> | ||
36 | #include <linux/interrupt.h> | ||
37 | #include <linux/ioport.h> | ||
38 | #include <linux/timex.h> | ||
39 | #include <linux/slab.h> | ||
40 | #include <linux/random.h> | ||
41 | #include <linux/delay.h> | ||
42 | #include <linux/bitops.h> | ||
43 | 30 | ||
44 | #include <asm/bootinfo.h> | ||
45 | #include <asm/io.h> | ||
46 | #include <asm/mipsregs.h> | ||
47 | #include <asm/system.h> | ||
48 | #include <asm/mach-au1x00/au1000.h> | 31 | #include <asm/mach-au1x00/au1000.h> |
49 | 32 | ||
50 | char irq_tab_alchemy[][5] __initdata = { | 33 | char irq_tab_alchemy[][5] __initdata = { |
diff --git a/arch/mips/au1000/xxs1500/board_setup.c b/arch/mips/au1000/xxs1500/board_setup.c index a9237f41933d..79d1798621bf 100644 --- a/arch/mips/au1000/xxs1500/board_setup.c +++ b/arch/mips/au1000/xxs1500/board_setup.c | |||
@@ -23,21 +23,11 @@ | |||
23 | * with this program; if not, write to the Free Software Foundation, Inc., | 23 | * with this program; if not, write to the Free Software Foundation, Inc., |
24 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 24 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
25 | */ | 25 | */ |
26 | |||
26 | #include <linux/init.h> | 27 | #include <linux/init.h> |
27 | #include <linux/sched.h> | ||
28 | #include <linux/ioport.h> | ||
29 | #include <linux/mm.h> | ||
30 | #include <linux/console.h> | ||
31 | #include <linux/delay.h> | 28 | #include <linux/delay.h> |
32 | 29 | ||
33 | #include <asm/cpu.h> | 30 | #include <asm/mach-au1x00/au1000.h> |
34 | #include <asm/bootinfo.h> | ||
35 | #include <asm/irq.h> | ||
36 | #include <asm/keyboard.h> | ||
37 | #include <asm/mipsregs.h> | ||
38 | #include <asm/reboot.h> | ||
39 | #include <asm/pgtable.h> | ||
40 | #include <asm/au1000.h> | ||
41 | 31 | ||
42 | void board_reset(void) | 32 | void board_reset(void) |
43 | { | 33 | { |
diff --git a/arch/mips/au1000/xxs1500/init.c b/arch/mips/au1000/xxs1500/init.c index 7e6878c1b0a5..24fc6e132dc0 100644 --- a/arch/mips/au1000/xxs1500/init.c +++ b/arch/mips/au1000/xxs1500/init.c | |||
@@ -26,14 +26,10 @@ | |||
26 | * with this program; if not, write to the Free Software Foundation, Inc., | 26 | * with this program; if not, write to the Free Software Foundation, Inc., |
27 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 27 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
28 | */ | 28 | */ |
29 | |||
29 | #include <linux/init.h> | 30 | #include <linux/init.h> |
30 | #include <linux/mm.h> | ||
31 | #include <linux/sched.h> | ||
32 | #include <linux/bootmem.h> | ||
33 | #include <linux/string.h> | ||
34 | #include <linux/kernel.h> | 31 | #include <linux/kernel.h> |
35 | 32 | ||
36 | #include <asm/addrspace.h> | ||
37 | #include <asm/bootinfo.h> | 33 | #include <asm/bootinfo.h> |
38 | 34 | ||
39 | #include <prom.h> | 35 | #include <prom.h> |
diff --git a/arch/mips/au1000/xxs1500/irqmap.c b/arch/mips/au1000/xxs1500/irqmap.c index 389349295d70..dd6e3d1eb4d4 100644 --- a/arch/mips/au1000/xxs1500/irqmap.c +++ b/arch/mips/au1000/xxs1500/irqmap.c | |||
@@ -25,27 +25,10 @@ | |||
25 | * with this program; if not, write to the Free Software Foundation, Inc., | 25 | * with this program; if not, write to the Free Software Foundation, Inc., |
26 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 26 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
27 | */ | 27 | */ |
28 | #include <linux/errno.h> | 28 | |
29 | #include <linux/init.h> | 29 | #include <linux/init.h> |
30 | #include <linux/irq.h> | ||
31 | #include <linux/kernel_stat.h> | ||
32 | #include <linux/module.h> | ||
33 | #include <linux/signal.h> | ||
34 | #include <linux/sched.h> | ||
35 | #include <linux/types.h> | ||
36 | #include <linux/interrupt.h> | ||
37 | #include <linux/ioport.h> | ||
38 | #include <linux/timex.h> | ||
39 | #include <linux/slab.h> | ||
40 | #include <linux/random.h> | ||
41 | #include <linux/delay.h> | ||
42 | #include <linux/bitops.h> | ||
43 | 30 | ||
44 | #include <asm/bootinfo.h> | 31 | #include <asm/mach-au1x00/au1000.h> |
45 | #include <asm/io.h> | ||
46 | #include <asm/mipsregs.h> | ||
47 | #include <asm/system.h> | ||
48 | #include <asm/au1000.h> | ||
49 | 32 | ||
50 | struct au1xxx_irqmap __initdata au1xxx_irq_map[] = { | 33 | struct au1xxx_irqmap __initdata au1xxx_irq_map[] = { |
51 | { AU1500_GPIO_204, INTC_INT_HIGH_LEVEL, 0}, | 34 | { AU1500_GPIO_204, INTC_INT_HIGH_LEVEL, 0}, |