diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-05-04 17:52:43 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-05-04 17:52:43 -0400 |
commit | f9cc8475e7595dbb41a9567f83288e2cd7445b6c (patch) | |
tree | ee7b80def9339c51413f6bb5fc9557643dc4ead0 /arch | |
parent | 6fc56ccfe44c8bc3fb47d6346c12c3b865756ef8 (diff) | |
parent | 5b802344357338a4d645beac8ca97470bcbe3542 (diff) |
Merge master.kernel.org:/home/rmk/linux-2.6-arm
* master.kernel.org:/home/rmk/linux-2.6-arm:
[ARM] 3490/1: i.MX: move uart resources to board files
[ARM] 3488/1: make icedcc_putc do the right thing
[ARM] 3487/1: IXP4xx: Support non-PCI systems
[ARM] 3486/1: Mark memory as clobbered by the ARM _syscallX() macros
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/Kconfig | 2 | ||||
-rw-r--r-- | arch/arm/boot/compressed/misc.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-imx/generic.c | 52 | ||||
-rw-r--r-- | arch/arm/mach-imx/mx1ads.c | 74 | ||||
-rw-r--r-- | arch/arm/mach-ixp4xx/Kconfig | 15 | ||||
-rw-r--r-- | arch/arm/mach-ixp4xx/Makefile | 3 |
6 files changed, 92 insertions, 58 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 1dbf6ddb300d..08b7cc900cae 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
@@ -150,8 +150,6 @@ config ARCH_IOP3XX | |||
150 | 150 | ||
151 | config ARCH_IXP4XX | 151 | config ARCH_IXP4XX |
152 | bool "IXP4xx-based" | 152 | bool "IXP4xx-based" |
153 | select DMABOUNCE | ||
154 | select PCI | ||
155 | help | 153 | help |
156 | Support for Intel's IXP4XX (XScale) family of processors. | 154 | Support for Intel's IXP4XX (XScale) family of processors. |
157 | 155 | ||
diff --git a/arch/arm/boot/compressed/misc.c b/arch/arm/boot/compressed/misc.c index 0af3772efcb7..ace3fb5835d9 100644 --- a/arch/arm/boot/compressed/misc.c +++ b/arch/arm/boot/compressed/misc.c | |||
@@ -38,10 +38,10 @@ static void icedcc_putc(int ch) | |||
38 | if (--i < 0) | 38 | if (--i < 0) |
39 | return; | 39 | return; |
40 | 40 | ||
41 | asm("mrc p14, 0, %0, c0, c0, 0" : "=r" (status)); | 41 | asm volatile ("mrc p14, 0, %0, c0, c0, 0" : "=r" (status)); |
42 | } while (status & 2); | 42 | } while (status & 2); |
43 | 43 | ||
44 | asm("mcr p15, 0, %0, c1, c0, 0" : : "r" (ch)); | 44 | asm("mcr p14, 0, %0, c1, c0, 0" : : "r" (ch)); |
45 | } | 45 | } |
46 | 46 | ||
47 | #define putc(ch) icedcc_putc(ch) | 47 | #define putc(ch) icedcc_putc(ch) |
diff --git a/arch/arm/mach-imx/generic.c b/arch/arm/mach-imx/generic.c index 9d8331be2b58..12ea58a3b84f 100644 --- a/arch/arm/mach-imx/generic.c +++ b/arch/arm/mach-imx/generic.c | |||
@@ -195,56 +195,6 @@ void __init imx_set_mmc_info(struct imxmmc_platform_data *info) | |||
195 | } | 195 | } |
196 | EXPORT_SYMBOL(imx_set_mmc_info); | 196 | EXPORT_SYMBOL(imx_set_mmc_info); |
197 | 197 | ||
198 | static struct resource imx_uart1_resources[] = { | ||
199 | [0] = { | ||
200 | .start = 0x00206000, | ||
201 | .end = 0x002060FF, | ||
202 | .flags = IORESOURCE_MEM, | ||
203 | }, | ||
204 | [1] = { | ||
205 | .start = (UART1_MINT_RX), | ||
206 | .end = (UART1_MINT_RX), | ||
207 | .flags = IORESOURCE_IRQ, | ||
208 | }, | ||
209 | [2] = { | ||
210 | .start = (UART1_MINT_TX), | ||
211 | .end = (UART1_MINT_TX), | ||
212 | .flags = IORESOURCE_IRQ, | ||
213 | }, | ||
214 | }; | ||
215 | |||
216 | static struct platform_device imx_uart1_device = { | ||
217 | .name = "imx-uart", | ||
218 | .id = 0, | ||
219 | .num_resources = ARRAY_SIZE(imx_uart1_resources), | ||
220 | .resource = imx_uart1_resources, | ||
221 | }; | ||
222 | |||
223 | static struct resource imx_uart2_resources[] = { | ||
224 | [0] = { | ||
225 | .start = 0x00207000, | ||
226 | .end = 0x002070FF, | ||
227 | .flags = IORESOURCE_MEM, | ||
228 | }, | ||
229 | [1] = { | ||
230 | .start = (UART2_MINT_RX), | ||
231 | .end = (UART2_MINT_RX), | ||
232 | .flags = IORESOURCE_IRQ, | ||
233 | }, | ||
234 | [2] = { | ||
235 | .start = (UART2_MINT_TX), | ||
236 | .end = (UART2_MINT_TX), | ||
237 | .flags = IORESOURCE_IRQ, | ||
238 | }, | ||
239 | }; | ||
240 | |||
241 | static struct platform_device imx_uart2_device = { | ||
242 | .name = "imx-uart", | ||
243 | .id = 1, | ||
244 | .num_resources = ARRAY_SIZE(imx_uart2_resources), | ||
245 | .resource = imx_uart2_resources, | ||
246 | }; | ||
247 | |||
248 | static struct imxfb_mach_info imx_fb_info; | 198 | static struct imxfb_mach_info imx_fb_info; |
249 | 199 | ||
250 | void __init set_imx_fb_info(struct imxfb_mach_info *hard_imx_fb_info) | 200 | void __init set_imx_fb_info(struct imxfb_mach_info *hard_imx_fb_info) |
@@ -283,8 +233,6 @@ static struct platform_device imxfb_device = { | |||
283 | static struct platform_device *devices[] __initdata = { | 233 | static struct platform_device *devices[] __initdata = { |
284 | &imx_mmc_device, | 234 | &imx_mmc_device, |
285 | &imxfb_device, | 235 | &imxfb_device, |
286 | &imx_uart1_device, | ||
287 | &imx_uart2_device, | ||
288 | }; | 236 | }; |
289 | 237 | ||
290 | static struct map_desc imx_io_desc[] __initdata = { | 238 | static struct map_desc imx_io_desc[] __initdata = { |
diff --git a/arch/arm/mach-imx/mx1ads.c b/arch/arm/mach-imx/mx1ads.c index e34d0df90aed..e1f6c0bbe1e7 100644 --- a/arch/arm/mach-imx/mx1ads.c +++ b/arch/arm/mach-imx/mx1ads.c | |||
@@ -26,6 +26,7 @@ | |||
26 | 26 | ||
27 | #include <asm/mach/arch.h> | 27 | #include <asm/mach/arch.h> |
28 | #include <asm/arch/mmc.h> | 28 | #include <asm/arch/mmc.h> |
29 | #include <asm/arch/imx-uart.h> | ||
29 | #include <linux/interrupt.h> | 30 | #include <linux/interrupt.h> |
30 | #include "generic.h" | 31 | #include "generic.h" |
31 | 32 | ||
@@ -48,8 +49,70 @@ static struct platform_device cs89x0_device = { | |||
48 | .resource = cs89x0_resources, | 49 | .resource = cs89x0_resources, |
49 | }; | 50 | }; |
50 | 51 | ||
52 | static struct imxuart_platform_data uart_pdata = { | ||
53 | .flags = IMXUART_HAVE_RTSCTS, | ||
54 | }; | ||
55 | |||
56 | static struct resource imx_uart1_resources[] = { | ||
57 | [0] = { | ||
58 | .start = 0x00206000, | ||
59 | .end = 0x002060FF, | ||
60 | .flags = IORESOURCE_MEM, | ||
61 | }, | ||
62 | [1] = { | ||
63 | .start = (UART1_MINT_RX), | ||
64 | .end = (UART1_MINT_RX), | ||
65 | .flags = IORESOURCE_IRQ, | ||
66 | }, | ||
67 | [2] = { | ||
68 | .start = (UART1_MINT_TX), | ||
69 | .end = (UART1_MINT_TX), | ||
70 | .flags = IORESOURCE_IRQ, | ||
71 | }, | ||
72 | }; | ||
73 | |||
74 | static struct platform_device imx_uart1_device = { | ||
75 | .name = "imx-uart", | ||
76 | .id = 0, | ||
77 | .num_resources = ARRAY_SIZE(imx_uart1_resources), | ||
78 | .resource = imx_uart1_resources, | ||
79 | .dev = { | ||
80 | .platform_data = &uart_pdata, | ||
81 | } | ||
82 | }; | ||
83 | |||
84 | static struct resource imx_uart2_resources[] = { | ||
85 | [0] = { | ||
86 | .start = 0x00207000, | ||
87 | .end = 0x002070FF, | ||
88 | .flags = IORESOURCE_MEM, | ||
89 | }, | ||
90 | [1] = { | ||
91 | .start = (UART2_MINT_RX), | ||
92 | .end = (UART2_MINT_RX), | ||
93 | .flags = IORESOURCE_IRQ, | ||
94 | }, | ||
95 | [2] = { | ||
96 | .start = (UART2_MINT_TX), | ||
97 | .end = (UART2_MINT_TX), | ||
98 | .flags = IORESOURCE_IRQ, | ||
99 | }, | ||
100 | }; | ||
101 | |||
102 | static struct platform_device imx_uart2_device = { | ||
103 | .name = "imx-uart", | ||
104 | .id = 1, | ||
105 | .num_resources = ARRAY_SIZE(imx_uart2_resources), | ||
106 | .resource = imx_uart2_resources, | ||
107 | .dev = { | ||
108 | .platform_data = &uart_pdata, | ||
109 | } | ||
110 | }; | ||
111 | |||
51 | static struct platform_device *devices[] __initdata = { | 112 | static struct platform_device *devices[] __initdata = { |
52 | &cs89x0_device, | 113 | &cs89x0_device, |
114 | &imx_uart1_device, | ||
115 | &imx_uart2_device, | ||
53 | }; | 116 | }; |
54 | 117 | ||
55 | #ifdef CONFIG_MMC_IMX | 118 | #ifdef CONFIG_MMC_IMX |
@@ -75,6 +138,17 @@ mx1ads_init(void) | |||
75 | imx_gpio_mode(GPIO_PORTB | GPIO_GIUS | GPIO_IN | 20); | 138 | imx_gpio_mode(GPIO_PORTB | GPIO_GIUS | GPIO_IN | 20); |
76 | imx_set_mmc_info(&mx1ads_mmc_info); | 139 | imx_set_mmc_info(&mx1ads_mmc_info); |
77 | #endif | 140 | #endif |
141 | |||
142 | imx_gpio_mode(PC9_PF_UART1_CTS); | ||
143 | imx_gpio_mode(PC10_PF_UART1_RTS); | ||
144 | imx_gpio_mode(PC11_PF_UART1_TXD); | ||
145 | imx_gpio_mode(PC12_PF_UART1_RXD); | ||
146 | |||
147 | imx_gpio_mode(PB28_PF_UART2_CTS); | ||
148 | imx_gpio_mode(PB29_PF_UART2_RTS); | ||
149 | imx_gpio_mode(PB30_PF_UART2_TXD); | ||
150 | imx_gpio_mode(PB31_PF_UART2_RXD); | ||
151 | |||
78 | platform_add_devices(devices, ARRAY_SIZE(devices)); | 152 | platform_add_devices(devices, ARRAY_SIZE(devices)); |
79 | } | 153 | } |
80 | 154 | ||
diff --git a/arch/arm/mach-ixp4xx/Kconfig b/arch/arm/mach-ixp4xx/Kconfig index 5bf50a2a737d..2a39f9e481ad 100644 --- a/arch/arm/mach-ixp4xx/Kconfig +++ b/arch/arm/mach-ixp4xx/Kconfig | |||
@@ -11,6 +11,7 @@ comment "IXP4xx Platforms" | |||
11 | config MACH_NSLU2 | 11 | config MACH_NSLU2 |
12 | bool | 12 | bool |
13 | prompt "Linksys NSLU2" | 13 | prompt "Linksys NSLU2" |
14 | select PCI | ||
14 | help | 15 | help |
15 | Say 'Y' here if you want your kernel to support Linksys's | 16 | Say 'Y' here if you want your kernel to support Linksys's |
16 | NSLU2 NAS device. For more information on this platform, | 17 | NSLU2 NAS device. For more information on this platform, |
@@ -18,6 +19,7 @@ config MACH_NSLU2 | |||
18 | 19 | ||
19 | config ARCH_AVILA | 20 | config ARCH_AVILA |
20 | bool "Avila" | 21 | bool "Avila" |
22 | select PCI | ||
21 | help | 23 | help |
22 | Say 'Y' here if you want your kernel to support the Gateworks | 24 | Say 'Y' here if you want your kernel to support the Gateworks |
23 | Avila Network Platform. For more information on this platform, | 25 | Avila Network Platform. For more information on this platform, |
@@ -25,6 +27,7 @@ config ARCH_AVILA | |||
25 | 27 | ||
26 | config ARCH_ADI_COYOTE | 28 | config ARCH_ADI_COYOTE |
27 | bool "Coyote" | 29 | bool "Coyote" |
30 | select PCI | ||
28 | help | 31 | help |
29 | Say 'Y' here if you want your kernel to support the ADI | 32 | Say 'Y' here if you want your kernel to support the ADI |
30 | Engineering Coyote Gateway Reference Platform. For more | 33 | Engineering Coyote Gateway Reference Platform. For more |
@@ -32,6 +35,7 @@ config ARCH_ADI_COYOTE | |||
32 | 35 | ||
33 | config ARCH_IXDP425 | 36 | config ARCH_IXDP425 |
34 | bool "IXDP425" | 37 | bool "IXDP425" |
38 | select PCI | ||
35 | help | 39 | help |
36 | Say 'Y' here if you want your kernel to support Intel's | 40 | Say 'Y' here if you want your kernel to support Intel's |
37 | IXDP425 Development Platform (Also known as Richfield). | 41 | IXDP425 Development Platform (Also known as Richfield). |
@@ -39,6 +43,7 @@ config ARCH_IXDP425 | |||
39 | 43 | ||
40 | config MACH_IXDPG425 | 44 | config MACH_IXDPG425 |
41 | bool "IXDPG425" | 45 | bool "IXDPG425" |
46 | select PCI | ||
42 | help | 47 | help |
43 | Say 'Y' here if you want your kernel to support Intel's | 48 | Say 'Y' here if you want your kernel to support Intel's |
44 | IXDPG425 Development Platform (Also known as Montajade). | 49 | IXDPG425 Development Platform (Also known as Montajade). |
@@ -46,6 +51,7 @@ config MACH_IXDPG425 | |||
46 | 51 | ||
47 | config MACH_IXDP465 | 52 | config MACH_IXDP465 |
48 | bool "IXDP465" | 53 | bool "IXDP465" |
54 | select PCI | ||
49 | help | 55 | help |
50 | Say 'Y' here if you want your kernel to support Intel's | 56 | Say 'Y' here if you want your kernel to support Intel's |
51 | IXDP465 Development Platform (Also known as BMP). | 57 | IXDP465 Development Platform (Also known as BMP). |
@@ -72,6 +78,7 @@ config ARCH_PRPMC1100 | |||
72 | config MACH_NAS100D | 78 | config MACH_NAS100D |
73 | bool | 79 | bool |
74 | prompt "NAS100D" | 80 | prompt "NAS100D" |
81 | select PCI | ||
75 | help | 82 | help |
76 | Say 'Y' here if you want your kernel to support Iomega's | 83 | Say 'Y' here if you want your kernel to support Iomega's |
77 | NAS 100d device. For more information on this platform, | 84 | NAS 100d device. For more information on this platform, |
@@ -96,6 +103,7 @@ config CPU_IXP46X | |||
96 | config MACH_GTWX5715 | 103 | config MACH_GTWX5715 |
97 | bool "Gemtek WX5715 (Linksys WRV54G)" | 104 | bool "Gemtek WX5715 (Linksys WRV54G)" |
98 | depends on ARCH_IXP4XX | 105 | depends on ARCH_IXP4XX |
106 | select PCI | ||
99 | help | 107 | help |
100 | This board is currently inside the Linksys WRV54G Gateways. | 108 | This board is currently inside the Linksys WRV54G Gateways. |
101 | 109 | ||
@@ -110,11 +118,16 @@ config MACH_GTWX5715 | |||
110 | "High Speed" UART is n/c (as far as I can tell) | 118 | "High Speed" UART is n/c (as far as I can tell) |
111 | 20 Pin ARM/Xscale JTAG interface on J2 | 119 | 20 Pin ARM/Xscale JTAG interface on J2 |
112 | 120 | ||
113 | |||
114 | comment "IXP4xx Options" | 121 | comment "IXP4xx Options" |
115 | 122 | ||
123 | config DMABOUNCE | ||
124 | bool | ||
125 | default y | ||
126 | depends on PCI | ||
127 | |||
116 | config IXP4XX_INDIRECT_PCI | 128 | config IXP4XX_INDIRECT_PCI |
117 | bool "Use indirect PCI memory access" | 129 | bool "Use indirect PCI memory access" |
130 | depends on PCI | ||
118 | help | 131 | help |
119 | IXP4xx provides two methods of accessing PCI memory space: | 132 | IXP4xx provides two methods of accessing PCI memory space: |
120 | 133 | ||
diff --git a/arch/arm/mach-ixp4xx/Makefile b/arch/arm/mach-ixp4xx/Makefile index 0471044fa179..5a4aaa0e0a09 100644 --- a/arch/arm/mach-ixp4xx/Makefile +++ b/arch/arm/mach-ixp4xx/Makefile | |||
@@ -2,8 +2,9 @@ | |||
2 | # Makefile for the linux kernel. | 2 | # Makefile for the linux kernel. |
3 | # | 3 | # |
4 | 4 | ||
5 | obj-y += common.o common-pci.o | 5 | obj-y += common.o |
6 | 6 | ||
7 | obj-$(CONFIG_PCI) += common-pci.o | ||
7 | obj-$(CONFIG_ARCH_IXDP4XX) += ixdp425-pci.o ixdp425-setup.o | 8 | obj-$(CONFIG_ARCH_IXDP4XX) += ixdp425-pci.o ixdp425-setup.o |
8 | obj-$(CONFIG_MACH_IXDPG425) += ixdpg425-pci.o coyote-setup.o | 9 | obj-$(CONFIG_MACH_IXDPG425) += ixdpg425-pci.o coyote-setup.o |
9 | obj-$(CONFIG_ARCH_ADI_COYOTE) += coyote-pci.o coyote-setup.o | 10 | obj-$(CONFIG_ARCH_ADI_COYOTE) += coyote-pci.o coyote-setup.o |