diff options
-rw-r--r-- | arch/arm/mach-msm/board-halibut.c | 8 | ||||
-rw-r--r-- | arch/arm/mach-msm/board-qsd8x50.c | 8 | ||||
-rw-r--r-- | arch/arm/mach-pxa/idp.c | 5 | ||||
-rw-r--r-- | arch/arm/mach-pxa/lpd270.c | 8 | ||||
-rw-r--r-- | arch/arm/mach-realview/core.c | 7 | ||||
-rw-r--r-- | arch/arm/mach-realview/realview_eb.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-sa1100/neponset.c | 6 | ||||
-rw-r--r-- | arch/arm/mach-sa1100/pleb.c | 7 | ||||
-rw-r--r-- | drivers/net/ethernet/smsc/smc91x.c | 9 | ||||
-rw-r--r-- | drivers/net/ethernet/smsc/smc91x.h | 114 |
10 files changed, 57 insertions, 117 deletions
diff --git a/arch/arm/mach-msm/board-halibut.c b/arch/arm/mach-msm/board-halibut.c index 61bfe584a9d7..fc832040c6e9 100644 --- a/arch/arm/mach-msm/board-halibut.c +++ b/arch/arm/mach-msm/board-halibut.c | |||
@@ -20,6 +20,7 @@ | |||
20 | #include <linux/input.h> | 20 | #include <linux/input.h> |
21 | #include <linux/io.h> | 21 | #include <linux/io.h> |
22 | #include <linux/delay.h> | 22 | #include <linux/delay.h> |
23 | #include <linux/smc91x.h> | ||
23 | 24 | ||
24 | #include <mach/hardware.h> | 25 | #include <mach/hardware.h> |
25 | #include <asm/mach-types.h> | 26 | #include <asm/mach-types.h> |
@@ -46,15 +47,20 @@ static struct resource smc91x_resources[] = { | |||
46 | [1] = { | 47 | [1] = { |
47 | .start = MSM_GPIO_TO_INT(49), | 48 | .start = MSM_GPIO_TO_INT(49), |
48 | .end = MSM_GPIO_TO_INT(49), | 49 | .end = MSM_GPIO_TO_INT(49), |
49 | .flags = IORESOURCE_IRQ, | 50 | .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL, |
50 | }, | 51 | }, |
51 | }; | 52 | }; |
52 | 53 | ||
54 | static struct smc91x_platdata smc91x_platdata = { | ||
55 | .flags = SMC91X_USE_16BIT | SMC91X_NOWAIT, | ||
56 | }; | ||
57 | |||
53 | static struct platform_device smc91x_device = { | 58 | static struct platform_device smc91x_device = { |
54 | .name = "smc91x", | 59 | .name = "smc91x", |
55 | .id = 0, | 60 | .id = 0, |
56 | .num_resources = ARRAY_SIZE(smc91x_resources), | 61 | .num_resources = ARRAY_SIZE(smc91x_resources), |
57 | .resource = smc91x_resources, | 62 | .resource = smc91x_resources, |
63 | .dev.platform_data = &smc91x_platdata, | ||
58 | }; | 64 | }; |
59 | 65 | ||
60 | static struct platform_device *devices[] __initdata = { | 66 | static struct platform_device *devices[] __initdata = { |
diff --git a/arch/arm/mach-msm/board-qsd8x50.c b/arch/arm/mach-msm/board-qsd8x50.c index 4c748616ef47..10016a3bc698 100644 --- a/arch/arm/mach-msm/board-qsd8x50.c +++ b/arch/arm/mach-msm/board-qsd8x50.c | |||
@@ -22,6 +22,7 @@ | |||
22 | #include <linux/usb/msm_hsusb.h> | 22 | #include <linux/usb/msm_hsusb.h> |
23 | #include <linux/err.h> | 23 | #include <linux/err.h> |
24 | #include <linux/clkdev.h> | 24 | #include <linux/clkdev.h> |
25 | #include <linux/smc91x.h> | ||
25 | 26 | ||
26 | #include <asm/mach-types.h> | 27 | #include <asm/mach-types.h> |
27 | #include <asm/mach/arch.h> | 28 | #include <asm/mach/arch.h> |
@@ -49,15 +50,20 @@ static struct resource smc91x_resources[] = { | |||
49 | .flags = IORESOURCE_MEM, | 50 | .flags = IORESOURCE_MEM, |
50 | }, | 51 | }, |
51 | [1] = { | 52 | [1] = { |
52 | .flags = IORESOURCE_IRQ, | 53 | .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL, |
53 | }, | 54 | }, |
54 | }; | 55 | }; |
55 | 56 | ||
57 | static struct smc91x_platdata smc91x_platdata = { | ||
58 | .flags = SMC91X_USE_16BIT | SMC91X_NOWAIT, | ||
59 | }; | ||
60 | |||
56 | static struct platform_device smc91x_device = { | 61 | static struct platform_device smc91x_device = { |
57 | .name = "smc91x", | 62 | .name = "smc91x", |
58 | .id = 0, | 63 | .id = 0, |
59 | .num_resources = ARRAY_SIZE(smc91x_resources), | 64 | .num_resources = ARRAY_SIZE(smc91x_resources), |
60 | .resource = smc91x_resources, | 65 | .resource = smc91x_resources, |
66 | .dev.platform_data = &smc91x_platdata, | ||
61 | }; | 67 | }; |
62 | 68 | ||
63 | static int __init msm_init_smc91x(void) | 69 | static int __init msm_init_smc91x(void) |
diff --git a/arch/arm/mach-pxa/idp.c b/arch/arm/mach-pxa/idp.c index 343c4e3a7c5d..7d8eab857a93 100644 --- a/arch/arm/mach-pxa/idp.c +++ b/arch/arm/mach-pxa/idp.c | |||
@@ -81,11 +81,16 @@ static struct resource smc91x_resources[] = { | |||
81 | } | 81 | } |
82 | }; | 82 | }; |
83 | 83 | ||
84 | static struct smc91x_platdata smc91x_platdata = { | ||
85 | .flags = SMC91X_USE_32BIT | SMC91X_USE_DMA | SMC91X_NOWAIT, | ||
86 | }; | ||
87 | |||
84 | static struct platform_device smc91x_device = { | 88 | static struct platform_device smc91x_device = { |
85 | .name = "smc91x", | 89 | .name = "smc91x", |
86 | .id = 0, | 90 | .id = 0, |
87 | .num_resources = ARRAY_SIZE(smc91x_resources), | 91 | .num_resources = ARRAY_SIZE(smc91x_resources), |
88 | .resource = smc91x_resources, | 92 | .resource = smc91x_resources, |
93 | .dev.platform_data = &smc91x_platdata, | ||
89 | }; | 94 | }; |
90 | 95 | ||
91 | static void idp_backlight_power(int on) | 96 | static void idp_backlight_power(int on) |
diff --git a/arch/arm/mach-pxa/lpd270.c b/arch/arm/mach-pxa/lpd270.c index ad777b353bd5..28da319d389f 100644 --- a/arch/arm/mach-pxa/lpd270.c +++ b/arch/arm/mach-pxa/lpd270.c | |||
@@ -24,6 +24,7 @@ | |||
24 | #include <linux/mtd/mtd.h> | 24 | #include <linux/mtd/mtd.h> |
25 | #include <linux/mtd/partitions.h> | 25 | #include <linux/mtd/partitions.h> |
26 | #include <linux/pwm_backlight.h> | 26 | #include <linux/pwm_backlight.h> |
27 | #include <linux/smc91x.h> | ||
27 | 28 | ||
28 | #include <asm/types.h> | 29 | #include <asm/types.h> |
29 | #include <asm/setup.h> | 30 | #include <asm/setup.h> |
@@ -189,15 +190,20 @@ static struct resource smc91x_resources[] = { | |||
189 | [1] = { | 190 | [1] = { |
190 | .start = LPD270_ETHERNET_IRQ, | 191 | .start = LPD270_ETHERNET_IRQ, |
191 | .end = LPD270_ETHERNET_IRQ, | 192 | .end = LPD270_ETHERNET_IRQ, |
192 | .flags = IORESOURCE_IRQ, | 193 | .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE, |
193 | }, | 194 | }, |
194 | }; | 195 | }; |
195 | 196 | ||
197 | struct smc91x_platdata smc91x_platdata = { | ||
198 | .flags = SMC91X_USE_16BIT | SMC91X_NOWAIT; | ||
199 | }; | ||
200 | |||
196 | static struct platform_device smc91x_device = { | 201 | static struct platform_device smc91x_device = { |
197 | .name = "smc91x", | 202 | .name = "smc91x", |
198 | .id = 0, | 203 | .id = 0, |
199 | .num_resources = ARRAY_SIZE(smc91x_resources), | 204 | .num_resources = ARRAY_SIZE(smc91x_resources), |
200 | .resource = smc91x_resources, | 205 | .resource = smc91x_resources, |
206 | .dev.platform_data = &smc91x_platdata, | ||
201 | }; | 207 | }; |
202 | 208 | ||
203 | static struct resource lpd270_flash_resources[] = { | 209 | static struct resource lpd270_flash_resources[] = { |
diff --git a/arch/arm/mach-realview/core.c b/arch/arm/mach-realview/core.c index 850e506926df..c309593abdb2 100644 --- a/arch/arm/mach-realview/core.c +++ b/arch/arm/mach-realview/core.c | |||
@@ -28,6 +28,7 @@ | |||
28 | #include <linux/platform_data/video-clcd-versatile.h> | 28 | #include <linux/platform_data/video-clcd-versatile.h> |
29 | #include <linux/io.h> | 29 | #include <linux/io.h> |
30 | #include <linux/smsc911x.h> | 30 | #include <linux/smsc911x.h> |
31 | #include <linux/smc91x.h> | ||
31 | #include <linux/ata_platform.h> | 32 | #include <linux/ata_platform.h> |
32 | #include <linux/amba/mmci.h> | 33 | #include <linux/amba/mmci.h> |
33 | #include <linux/gfp.h> | 34 | #include <linux/gfp.h> |
@@ -94,6 +95,10 @@ static struct smsc911x_platform_config smsc911x_config = { | |||
94 | .phy_interface = PHY_INTERFACE_MODE_MII, | 95 | .phy_interface = PHY_INTERFACE_MODE_MII, |
95 | }; | 96 | }; |
96 | 97 | ||
98 | static struct smc91x_platdata smc91x_platdata = { | ||
99 | .flags = SMC91X_USE_32BIT | SMC91X_NOWAIT, | ||
100 | }; | ||
101 | |||
97 | static struct platform_device realview_eth_device = { | 102 | static struct platform_device realview_eth_device = { |
98 | .name = "smsc911x", | 103 | .name = "smsc911x", |
99 | .id = 0, | 104 | .id = 0, |
@@ -107,6 +112,8 @@ int realview_eth_register(const char *name, struct resource *res) | |||
107 | realview_eth_device.resource = res; | 112 | realview_eth_device.resource = res; |
108 | if (strcmp(realview_eth_device.name, "smsc911x") == 0) | 113 | if (strcmp(realview_eth_device.name, "smsc911x") == 0) |
109 | realview_eth_device.dev.platform_data = &smsc911x_config; | 114 | realview_eth_device.dev.platform_data = &smsc911x_config; |
115 | else | ||
116 | realview_eth_device.dev.platform_data = &smc91x_platdata; | ||
110 | 117 | ||
111 | return platform_device_register(&realview_eth_device); | 118 | return platform_device_register(&realview_eth_device); |
112 | } | 119 | } |
diff --git a/arch/arm/mach-realview/realview_eb.c b/arch/arm/mach-realview/realview_eb.c index 64c88d657f9e..b3869cbbcc68 100644 --- a/arch/arm/mach-realview/realview_eb.c +++ b/arch/arm/mach-realview/realview_eb.c | |||
@@ -234,7 +234,7 @@ static struct resource realview_eb_eth_resources[] = { | |||
234 | [1] = { | 234 | [1] = { |
235 | .start = IRQ_EB_ETH, | 235 | .start = IRQ_EB_ETH, |
236 | .end = IRQ_EB_ETH, | 236 | .end = IRQ_EB_ETH, |
237 | .flags = IORESOURCE_IRQ, | 237 | .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE, |
238 | }, | 238 | }, |
239 | }; | 239 | }; |
240 | 240 | ||
diff --git a/arch/arm/mach-sa1100/neponset.c b/arch/arm/mach-sa1100/neponset.c index 169262e3040d..7b0cd3172354 100644 --- a/arch/arm/mach-sa1100/neponset.c +++ b/arch/arm/mach-sa1100/neponset.c | |||
@@ -12,6 +12,7 @@ | |||
12 | #include <linux/pm.h> | 12 | #include <linux/pm.h> |
13 | #include <linux/serial_core.h> | 13 | #include <linux/serial_core.h> |
14 | #include <linux/slab.h> | 14 | #include <linux/slab.h> |
15 | #include <linux/smc91x.h> | ||
15 | 16 | ||
16 | #include <asm/mach-types.h> | 17 | #include <asm/mach-types.h> |
17 | #include <asm/mach/map.h> | 18 | #include <asm/mach/map.h> |
@@ -258,12 +259,17 @@ static int neponset_probe(struct platform_device *dev) | |||
258 | 0x02000000, "smc91x-attrib"), | 259 | 0x02000000, "smc91x-attrib"), |
259 | { .flags = IORESOURCE_IRQ }, | 260 | { .flags = IORESOURCE_IRQ }, |
260 | }; | 261 | }; |
262 | struct smc91x_platdata smc91x_platdata = { | ||
263 | .flags = SMC91X_USE_8BIT | SMC91X_IO_SHIFT_2 | SMC91X_NOWAIT, | ||
264 | }; | ||
261 | struct platform_device_info smc91x_devinfo = { | 265 | struct platform_device_info smc91x_devinfo = { |
262 | .parent = &dev->dev, | 266 | .parent = &dev->dev, |
263 | .name = "smc91x", | 267 | .name = "smc91x", |
264 | .id = 0, | 268 | .id = 0, |
265 | .res = smc91x_resources, | 269 | .res = smc91x_resources, |
266 | .num_res = ARRAY_SIZE(smc91x_resources), | 270 | .num_res = ARRAY_SIZE(smc91x_resources), |
271 | .data = &smc91c_platdata, | ||
272 | .size_data = sizeof(smc91c_platdata), | ||
267 | }; | 273 | }; |
268 | int ret, irq; | 274 | int ret, irq; |
269 | 275 | ||
diff --git a/arch/arm/mach-sa1100/pleb.c b/arch/arm/mach-sa1100/pleb.c index 091261878eff..696fd0fe4806 100644 --- a/arch/arm/mach-sa1100/pleb.c +++ b/arch/arm/mach-sa1100/pleb.c | |||
@@ -11,6 +11,7 @@ | |||
11 | #include <linux/irq.h> | 11 | #include <linux/irq.h> |
12 | #include <linux/io.h> | 12 | #include <linux/io.h> |
13 | #include <linux/mtd/partitions.h> | 13 | #include <linux/mtd/partitions.h> |
14 | #include <linux/smc91x.h> | ||
14 | 15 | ||
15 | #include <mach/hardware.h> | 16 | #include <mach/hardware.h> |
16 | #include <asm/setup.h> | 17 | #include <asm/setup.h> |
@@ -43,12 +44,18 @@ static struct resource smc91x_resources[] = { | |||
43 | #endif | 44 | #endif |
44 | }; | 45 | }; |
45 | 46 | ||
47 | static struct smc91x_platdata smc91x_platdata = { | ||
48 | .flags = SMC91X_USE_16BIT | SMC91X_NOWAIT, | ||
49 | }; | ||
46 | 50 | ||
47 | static struct platform_device smc91x_device = { | 51 | static struct platform_device smc91x_device = { |
48 | .name = "smc91x", | 52 | .name = "smc91x", |
49 | .id = 0, | 53 | .id = 0, |
50 | .num_resources = ARRAY_SIZE(smc91x_resources), | 54 | .num_resources = ARRAY_SIZE(smc91x_resources), |
51 | .resource = smc91x_resources, | 55 | .resource = smc91x_resources, |
56 | .dev = { | ||
57 | .platform_data = &smc91c_platdata, | ||
58 | }, | ||
52 | }; | 59 | }; |
53 | 60 | ||
54 | static struct platform_device *devices[] __initdata = { | 61 | static struct platform_device *devices[] __initdata = { |
diff --git a/drivers/net/ethernet/smsc/smc91x.c b/drivers/net/ethernet/smsc/smc91x.c index fa3f193b5f4d..209ee1b27f8d 100644 --- a/drivers/net/ethernet/smsc/smc91x.c +++ b/drivers/net/ethernet/smsc/smc91x.c | |||
@@ -91,6 +91,10 @@ static const char version[] = | |||
91 | 91 | ||
92 | #include "smc91x.h" | 92 | #include "smc91x.h" |
93 | 93 | ||
94 | #if defined(CONFIG_ASSABET_NEPONSET) | ||
95 | #include <mach/neponset.h> | ||
96 | #endif | ||
97 | |||
94 | #ifndef SMC_NOWAIT | 98 | #ifndef SMC_NOWAIT |
95 | # define SMC_NOWAIT 0 | 99 | # define SMC_NOWAIT 0 |
96 | #endif | 100 | #endif |
@@ -2355,8 +2359,9 @@ static int smc_drv_probe(struct platform_device *pdev) | |||
2355 | ret = smc_request_attrib(pdev, ndev); | 2359 | ret = smc_request_attrib(pdev, ndev); |
2356 | if (ret) | 2360 | if (ret) |
2357 | goto out_release_io; | 2361 | goto out_release_io; |
2358 | #if defined(CONFIG_ASSABET_NEPONSET) && !defined(CONFIG_SA1100_PLEB) | 2362 | #if defined(CONFIG_ASSABET_NEPONSET) |
2359 | neponset_ncr_set(NCR_ENET_OSC_EN); | 2363 | if (machine_is_assabet() && machine_has_neponset()) |
2364 | neponset_ncr_set(NCR_ENET_OSC_EN); | ||
2360 | #endif | 2365 | #endif |
2361 | platform_set_drvdata(pdev, ndev); | 2366 | platform_set_drvdata(pdev, ndev); |
2362 | ret = smc_enable_device(pdev); | 2367 | ret = smc_enable_device(pdev); |
diff --git a/drivers/net/ethernet/smsc/smc91x.h b/drivers/net/ethernet/smsc/smc91x.h index be67baf5f677..3a18501d1068 100644 --- a/drivers/net/ethernet/smsc/smc91x.h +++ b/drivers/net/ethernet/smsc/smc91x.h | |||
@@ -39,14 +39,7 @@ | |||
39 | * Define your architecture specific bus configuration parameters here. | 39 | * Define your architecture specific bus configuration parameters here. |
40 | */ | 40 | */ |
41 | 41 | ||
42 | #if defined(CONFIG_ARCH_LUBBOCK) ||\ | 42 | #if defined(CONFIG_ARM) |
43 | defined(CONFIG_MACH_MAINSTONE) ||\ | ||
44 | defined(CONFIG_MACH_ZYLONITE) ||\ | ||
45 | defined(CONFIG_MACH_LITTLETON) ||\ | ||
46 | defined(CONFIG_MACH_ZYLONITE2) ||\ | ||
47 | defined(CONFIG_ARCH_VIPER) ||\ | ||
48 | defined(CONFIG_MACH_STARGATE2) ||\ | ||
49 | defined(CONFIG_ARCH_VERSATILE) | ||
50 | 43 | ||
51 | #include <asm/mach-types.h> | 44 | #include <asm/mach-types.h> |
52 | 45 | ||
@@ -74,95 +67,8 @@ | |||
74 | /* We actually can't write halfwords properly if not word aligned */ | 67 | /* We actually can't write halfwords properly if not word aligned */ |
75 | static inline void SMC_outw(u16 val, void __iomem *ioaddr, int reg) | 68 | static inline void SMC_outw(u16 val, void __iomem *ioaddr, int reg) |
76 | { | 69 | { |
77 | if ((machine_is_mainstone() || machine_is_stargate2()) && reg & 2) { | 70 | if ((machine_is_mainstone() || machine_is_stargate2() || |
78 | unsigned int v = val << 16; | 71 | machine_is_pxa_idp()) && reg & 2) { |
79 | v |= readl(ioaddr + (reg & ~2)) & 0xffff; | ||
80 | writel(v, ioaddr + (reg & ~2)); | ||
81 | } else { | ||
82 | writew(val, ioaddr + reg); | ||
83 | } | ||
84 | } | ||
85 | |||
86 | #elif defined(CONFIG_SA1100_PLEB) | ||
87 | /* We can only do 16-bit reads and writes in the static memory space. */ | ||
88 | #define SMC_CAN_USE_8BIT 1 | ||
89 | #define SMC_CAN_USE_16BIT 1 | ||
90 | #define SMC_CAN_USE_32BIT 0 | ||
91 | #define SMC_IO_SHIFT 0 | ||
92 | #define SMC_NOWAIT 1 | ||
93 | |||
94 | #define SMC_inb(a, r) readb((a) + (r)) | ||
95 | #define SMC_insb(a, r, p, l) readsb((a) + (r), p, (l)) | ||
96 | #define SMC_inw(a, r) readw((a) + (r)) | ||
97 | #define SMC_insw(a, r, p, l) readsw((a) + (r), p, l) | ||
98 | #define SMC_outb(v, a, r) writeb(v, (a) + (r)) | ||
99 | #define SMC_outsb(a, r, p, l) writesb((a) + (r), p, (l)) | ||
100 | #define SMC_outw(v, a, r) writew(v, (a) + (r)) | ||
101 | #define SMC_outsw(a, r, p, l) writesw((a) + (r), p, l) | ||
102 | |||
103 | #define SMC_IRQ_FLAGS (-1) | ||
104 | |||
105 | #elif defined(CONFIG_SA1100_ASSABET) | ||
106 | |||
107 | #include <mach/neponset.h> | ||
108 | |||
109 | /* We can only do 8-bit reads and writes in the static memory space. */ | ||
110 | #define SMC_CAN_USE_8BIT 1 | ||
111 | #define SMC_CAN_USE_16BIT 0 | ||
112 | #define SMC_CAN_USE_32BIT 0 | ||
113 | #define SMC_NOWAIT 1 | ||
114 | |||
115 | /* The first two address lines aren't connected... */ | ||
116 | #define SMC_IO_SHIFT 2 | ||
117 | |||
118 | #define SMC_inb(a, r) readb((a) + (r)) | ||
119 | #define SMC_outb(v, a, r) writeb(v, (a) + (r)) | ||
120 | #define SMC_insb(a, r, p, l) readsb((a) + (r), p, (l)) | ||
121 | #define SMC_outsb(a, r, p, l) writesb((a) + (r), p, (l)) | ||
122 | #define SMC_IRQ_FLAGS (-1) /* from resource */ | ||
123 | |||
124 | #elif defined(CONFIG_MACH_LOGICPD_PXA270) || \ | ||
125 | defined(CONFIG_MACH_NOMADIK_8815NHK) | ||
126 | |||
127 | #define SMC_CAN_USE_8BIT 0 | ||
128 | #define SMC_CAN_USE_16BIT 1 | ||
129 | #define SMC_CAN_USE_32BIT 0 | ||
130 | #define SMC_IO_SHIFT 0 | ||
131 | #define SMC_NOWAIT 1 | ||
132 | |||
133 | #define SMC_inw(a, r) readw((a) + (r)) | ||
134 | #define SMC_outw(v, a, r) writew(v, (a) + (r)) | ||
135 | #define SMC_insw(a, r, p, l) readsw((a) + (r), p, l) | ||
136 | #define SMC_outsw(a, r, p, l) writesw((a) + (r), p, l) | ||
137 | |||
138 | #elif defined(CONFIG_ARCH_INNOKOM) || \ | ||
139 | defined(CONFIG_ARCH_PXA_IDP) || \ | ||
140 | defined(CONFIG_ARCH_RAMSES) || \ | ||
141 | defined(CONFIG_ARCH_PCM027) | ||
142 | |||
143 | #define SMC_CAN_USE_8BIT 1 | ||
144 | #define SMC_CAN_USE_16BIT 1 | ||
145 | #define SMC_CAN_USE_32BIT 1 | ||
146 | #define SMC_IO_SHIFT 0 | ||
147 | #define SMC_NOWAIT 1 | ||
148 | #define SMC_USE_PXA_DMA 1 | ||
149 | |||
150 | #define SMC_inb(a, r) readb((a) + (r)) | ||
151 | #define SMC_inw(a, r) readw((a) + (r)) | ||
152 | #define SMC_inl(a, r) readl((a) + (r)) | ||
153 | #define SMC_outb(v, a, r) writeb(v, (a) + (r)) | ||
154 | #define SMC_outl(v, a, r) writel(v, (a) + (r)) | ||
155 | #define SMC_insl(a, r, p, l) readsl((a) + (r), p, l) | ||
156 | #define SMC_outsl(a, r, p, l) writesl((a) + (r), p, l) | ||
157 | #define SMC_insw(a, r, p, l) readsw((a) + (r), p, l) | ||
158 | #define SMC_outsw(a, r, p, l) writesw((a) + (r), p, l) | ||
159 | #define SMC_IRQ_FLAGS (-1) /* from resource */ | ||
160 | |||
161 | /* We actually can't write halfwords properly if not word aligned */ | ||
162 | static inline void | ||
163 | SMC_outw(u16 val, void __iomem *ioaddr, int reg) | ||
164 | { | ||
165 | if (reg & 2) { | ||
166 | unsigned int v = val << 16; | 72 | unsigned int v = val << 16; |
167 | v |= readl(ioaddr + (reg & ~2)) & 0xffff; | 73 | v |= readl(ioaddr + (reg & ~2)) & 0xffff; |
168 | writel(v, ioaddr + (reg & ~2)); | 74 | writel(v, ioaddr + (reg & ~2)); |
@@ -237,20 +143,6 @@ SMC_outw(u16 val, void __iomem *ioaddr, int reg) | |||
237 | #define RPC_LSA_DEFAULT RPC_LED_100_10 | 143 | #define RPC_LSA_DEFAULT RPC_LED_100_10 |
238 | #define RPC_LSB_DEFAULT RPC_LED_TX_RX | 144 | #define RPC_LSB_DEFAULT RPC_LED_TX_RX |
239 | 145 | ||
240 | #elif defined(CONFIG_ARCH_MSM) | ||
241 | |||
242 | #define SMC_CAN_USE_8BIT 0 | ||
243 | #define SMC_CAN_USE_16BIT 1 | ||
244 | #define SMC_CAN_USE_32BIT 0 | ||
245 | #define SMC_NOWAIT 1 | ||
246 | |||
247 | #define SMC_inw(a, r) readw((a) + (r)) | ||
248 | #define SMC_outw(v, a, r) writew(v, (a) + (r)) | ||
249 | #define SMC_insw(a, r, p, l) readsw((a) + (r), p, l) | ||
250 | #define SMC_outsw(a, r, p, l) writesw((a) + (r), p, l) | ||
251 | |||
252 | #define SMC_IRQ_FLAGS IRQF_TRIGGER_HIGH | ||
253 | |||
254 | #elif defined(CONFIG_COLDFIRE) | 146 | #elif defined(CONFIG_COLDFIRE) |
255 | 147 | ||
256 | #define SMC_CAN_USE_8BIT 0 | 148 | #define SMC_CAN_USE_8BIT 0 |