diff options
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/amba/bus.c | 113 | ||||
| -rw-r--r-- | drivers/char/watchdog/at91rm9200_wdt.c | 1 | ||||
| -rw-r--r-- | drivers/i2c/busses/Kconfig | 6 | ||||
| -rw-r--r-- | drivers/i2c/busses/i2c-pxa.c | 131 | ||||
| -rw-r--r-- | drivers/mmc/Kconfig | 8 | ||||
| -rw-r--r-- | drivers/mmc/Makefile | 2 | ||||
| -rw-r--r-- | drivers/mmc/at91_mci.c | 4 | ||||
| -rw-r--r-- | drivers/pcmcia/at91_cf.c | 2 | ||||
| -rw-r--r-- | drivers/serial/atmel_serial.c | 10 | ||||
| -rw-r--r-- | drivers/serial/atmel_serial.h | 11 | ||||
| -rw-r--r-- | drivers/usb/Kconfig | 2 | ||||
| -rw-r--r-- | drivers/usb/gadget/Kconfig | 2 | ||||
| -rw-r--r-- | drivers/usb/host/ohci-hcd.c | 5 |
13 files changed, 93 insertions, 204 deletions
diff --git a/drivers/amba/bus.c b/drivers/amba/bus.c index 9e3e2a69c03a..fd5475071acc 100644 --- a/drivers/amba/bus.c +++ b/drivers/amba/bus.c | |||
| @@ -80,12 +80,38 @@ static int amba_resume(struct device *dev) | |||
| 80 | return ret; | 80 | return ret; |
| 81 | } | 81 | } |
| 82 | 82 | ||
| 83 | #define amba_attr_func(name,fmt,arg...) \ | ||
| 84 | static ssize_t name##_show(struct device *_dev, \ | ||
| 85 | struct device_attribute *attr, char *buf) \ | ||
| 86 | { \ | ||
| 87 | struct amba_device *dev = to_amba_device(_dev); \ | ||
| 88 | return sprintf(buf, fmt, arg); \ | ||
| 89 | } | ||
| 90 | |||
| 91 | #define amba_attr(name,fmt,arg...) \ | ||
| 92 | amba_attr_func(name,fmt,arg) \ | ||
| 93 | static DEVICE_ATTR(name, S_IRUGO, name##_show, NULL) | ||
| 94 | |||
| 95 | amba_attr_func(id, "%08x\n", dev->periphid); | ||
| 96 | amba_attr(irq0, "%u\n", dev->irq[0]); | ||
| 97 | amba_attr(irq1, "%u\n", dev->irq[1]); | ||
| 98 | amba_attr_func(resource, "\t%016llx\t%016llx\t%016lx\n", | ||
| 99 | (unsigned long long)dev->res.start, (unsigned long long)dev->res.end, | ||
| 100 | dev->res.flags); | ||
| 101 | |||
| 102 | static struct device_attribute amba_dev_attrs[] = { | ||
| 103 | __ATTR_RO(id), | ||
| 104 | __ATTR_RO(resource), | ||
| 105 | __ATTR_NULL, | ||
| 106 | }; | ||
| 107 | |||
| 83 | /* | 108 | /* |
| 84 | * Primecells are part of the Advanced Microcontroller Bus Architecture, | 109 | * Primecells are part of the Advanced Microcontroller Bus Architecture, |
| 85 | * so we call the bus "amba". | 110 | * so we call the bus "amba". |
| 86 | */ | 111 | */ |
| 87 | static struct bus_type amba_bustype = { | 112 | static struct bus_type amba_bustype = { |
| 88 | .name = "amba", | 113 | .name = "amba", |
| 114 | .dev_attrs = amba_dev_attrs, | ||
| 89 | .match = amba_match, | 115 | .match = amba_match, |
| 90 | .uevent = amba_uevent, | 116 | .uevent = amba_uevent, |
| 91 | .suspend = amba_suspend, | 117 | .suspend = amba_suspend, |
| @@ -169,21 +195,6 @@ static void amba_device_release(struct device *dev) | |||
| 169 | kfree(d); | 195 | kfree(d); |
| 170 | } | 196 | } |
| 171 | 197 | ||
| 172 | #define amba_attr(name,fmt,arg...) \ | ||
| 173 | static ssize_t show_##name(struct device *_dev, struct device_attribute *attr, char *buf) \ | ||
| 174 | { \ | ||
| 175 | struct amba_device *dev = to_amba_device(_dev); \ | ||
| 176 | return sprintf(buf, fmt, arg); \ | ||
| 177 | } \ | ||
| 178 | static DEVICE_ATTR(name, S_IRUGO, show_##name, NULL) | ||
| 179 | |||
| 180 | amba_attr(id, "%08x\n", dev->periphid); | ||
| 181 | amba_attr(irq0, "%u\n", dev->irq[0]); | ||
| 182 | amba_attr(irq1, "%u\n", dev->irq[1]); | ||
| 183 | amba_attr(resource, "\t%016llx\t%016llx\t%016lx\n", | ||
| 184 | (unsigned long long)dev->res.start, (unsigned long long)dev->res.end, | ||
| 185 | dev->res.flags); | ||
| 186 | |||
| 187 | /** | 198 | /** |
| 188 | * amba_device_register - register an AMBA device | 199 | * amba_device_register - register an AMBA device |
| 189 | * @dev: AMBA device to register | 200 | * @dev: AMBA device to register |
| @@ -208,40 +219,46 @@ int amba_device_register(struct amba_device *dev, struct resource *parent) | |||
| 208 | dev_warn(&dev->dev, "coherent dma mask is unset\n"); | 219 | dev_warn(&dev->dev, "coherent dma mask is unset\n"); |
| 209 | 220 | ||
| 210 | ret = request_resource(parent, &dev->res); | 221 | ret = request_resource(parent, &dev->res); |
| 211 | if (ret == 0) { | 222 | if (ret) |
| 212 | tmp = ioremap(dev->res.start, SZ_4K); | 223 | goto err_out; |
| 213 | if (!tmp) { | 224 | |
| 214 | ret = -ENOMEM; | 225 | tmp = ioremap(dev->res.start, SZ_4K); |
| 215 | goto out; | 226 | if (!tmp) { |
| 216 | } | 227 | ret = -ENOMEM; |
| 217 | 228 | goto err_release; | |
| 218 | for (pid = 0, i = 0; i < 4; i++) | ||
| 219 | pid |= (readl(tmp + 0xfe0 + 4 * i) & 255) << (i * 8); | ||
| 220 | for (cid = 0, i = 0; i < 4; i++) | ||
| 221 | cid |= (readl(tmp + 0xff0 + 4 * i) & 255) << (i * 8); | ||
| 222 | |||
| 223 | iounmap(tmp); | ||
| 224 | |||
| 225 | if (cid == 0xb105f00d) | ||
| 226 | dev->periphid = pid; | ||
| 227 | |||
| 228 | if (dev->periphid) | ||
| 229 | ret = device_register(&dev->dev); | ||
| 230 | else | ||
| 231 | ret = -ENODEV; | ||
| 232 | |||
| 233 | if (ret == 0) { | ||
| 234 | device_create_file(&dev->dev, &dev_attr_id); | ||
| 235 | if (dev->irq[0] != NO_IRQ) | ||
| 236 | device_create_file(&dev->dev, &dev_attr_irq0); | ||
| 237 | if (dev->irq[1] != NO_IRQ) | ||
| 238 | device_create_file(&dev->dev, &dev_attr_irq1); | ||
| 239 | device_create_file(&dev->dev, &dev_attr_resource); | ||
| 240 | } else { | ||
| 241 | out: | ||
| 242 | release_resource(&dev->res); | ||
| 243 | } | ||
| 244 | } | 229 | } |
| 230 | |||
| 231 | for (pid = 0, i = 0; i < 4; i++) | ||
| 232 | pid |= (readl(tmp + 0xfe0 + 4 * i) & 255) << (i * 8); | ||
| 233 | for (cid = 0, i = 0; i < 4; i++) | ||
| 234 | cid |= (readl(tmp + 0xff0 + 4 * i) & 255) << (i * 8); | ||
| 235 | |||
| 236 | iounmap(tmp); | ||
| 237 | |||
| 238 | if (cid == 0xb105f00d) | ||
| 239 | dev->periphid = pid; | ||
| 240 | |||
| 241 | if (!dev->periphid) { | ||
| 242 | ret = -ENODEV; | ||
| 243 | goto err_release; | ||
| 244 | } | ||
| 245 | |||
| 246 | ret = device_register(&dev->dev); | ||
| 247 | if (ret) | ||
| 248 | goto err_release; | ||
| 249 | |||
| 250 | if (dev->irq[0] != NO_IRQ) | ||
| 251 | ret = device_create_file(&dev->dev, &dev_attr_irq0); | ||
| 252 | if (ret == 0 && dev->irq[1] != NO_IRQ) | ||
| 253 | ret = device_create_file(&dev->dev, &dev_attr_irq1); | ||
| 254 | if (ret == 0) | ||
| 255 | return ret; | ||
| 256 | |||
| 257 | device_unregister(&dev->dev); | ||
| 258 | |||
| 259 | err_release: | ||
| 260 | release_resource(&dev->res); | ||
| 261 | err_out: | ||
| 245 | return ret; | 262 | return ret; |
| 246 | } | 263 | } |
| 247 | 264 | ||
diff --git a/drivers/char/watchdog/at91rm9200_wdt.c b/drivers/char/watchdog/at91rm9200_wdt.c index 4e7a1145e78f..cb86967e2c5f 100644 --- a/drivers/char/watchdog/at91rm9200_wdt.c +++ b/drivers/char/watchdog/at91rm9200_wdt.c | |||
| @@ -21,6 +21,7 @@ | |||
| 21 | #include <linux/watchdog.h> | 21 | #include <linux/watchdog.h> |
| 22 | #include <asm/bitops.h> | 22 | #include <asm/bitops.h> |
| 23 | #include <asm/uaccess.h> | 23 | #include <asm/uaccess.h> |
| 24 | #include <asm/arch/at91_st.h> | ||
| 24 | 25 | ||
| 25 | 26 | ||
| 26 | #define WDT_DEFAULT_TIME 5 /* seconds */ | 27 | #define WDT_DEFAULT_TIME 5 /* seconds */ |
diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig index 510816c16da3..5cbf8b9d5141 100644 --- a/drivers/i2c/busses/Kconfig +++ b/drivers/i2c/busses/Kconfig | |||
| @@ -195,11 +195,11 @@ config I2C_IBM_IIC | |||
| 195 | will be called i2c-ibm_iic. | 195 | will be called i2c-ibm_iic. |
| 196 | 196 | ||
| 197 | config I2C_IOP3XX | 197 | config I2C_IOP3XX |
| 198 | tristate "Intel IOP3xx and IXP4xx on-chip I2C interface" | 198 | tristate "Intel IOPx3xx and IXP4xx on-chip I2C interface" |
| 199 | depends on (ARCH_IOP32X || ARCH_IOP33X || ARCH_IXP4XX) && I2C | 199 | depends on (ARCH_IOP32X || ARCH_IOP33X || ARCH_IXP4XX || ARCH_IOP13XX) && I2C |
| 200 | help | 200 | help |
| 201 | Say Y here if you want to use the IIC bus controller on | 201 | Say Y here if you want to use the IIC bus controller on |
| 202 | the Intel IOP3xx I/O Processors or IXP4xx Network Processors. | 202 | the Intel IOPx3xx I/O Processors or IXP4xx Network Processors. |
| 203 | 203 | ||
| 204 | This driver can also be built as a module. If so, the module | 204 | This driver can also be built as a module. If so, the module |
| 205 | will be called i2c-iop3xx. | 205 | will be called i2c-iop3xx. |
diff --git a/drivers/i2c/busses/i2c-pxa.c b/drivers/i2c/busses/i2c-pxa.c index c95a6c154165..c3b1567c852a 100644 --- a/drivers/i2c/busses/i2c-pxa.c +++ b/drivers/i2c/busses/i2c-pxa.c | |||
| @@ -358,133 +358,6 @@ static void i2c_pxa_reset(struct pxa_i2c *i2c) | |||
| 358 | 358 | ||
| 359 | #ifdef CONFIG_I2C_PXA_SLAVE | 359 | #ifdef CONFIG_I2C_PXA_SLAVE |
| 360 | /* | 360 | /* |
| 361 | * I2C EEPROM emulation. | ||
| 362 | */ | ||
| 363 | static struct i2c_eeprom_emu eeprom = { | ||
| 364 | .size = I2C_EEPROM_EMU_SIZE, | ||
| 365 | .watch = LIST_HEAD_INIT(eeprom.watch), | ||
| 366 | }; | ||
| 367 | |||
| 368 | struct i2c_eeprom_emu *i2c_pxa_get_eeprom(void) | ||
| 369 | { | ||
| 370 | return &eeprom; | ||
| 371 | } | ||
| 372 | |||
| 373 | int i2c_eeprom_emu_addwatcher(struct i2c_eeprom_emu *emu, void *data, | ||
| 374 | unsigned int addr, unsigned int size, | ||
| 375 | struct i2c_eeprom_emu_watcher *watcher) | ||
| 376 | { | ||
| 377 | struct i2c_eeprom_emu_watch *watch; | ||
| 378 | unsigned long flags; | ||
| 379 | |||
| 380 | if (addr + size > emu->size) | ||
| 381 | return -EINVAL; | ||
| 382 | |||
| 383 | watch = kmalloc(sizeof(struct i2c_eeprom_emu_watch), GFP_KERNEL); | ||
| 384 | if (watch) { | ||
| 385 | watch->start = addr; | ||
| 386 | watch->end = addr + size - 1; | ||
| 387 | watch->ops = watcher; | ||
| 388 | watch->data = data; | ||
| 389 | |||
| 390 | local_irq_save(flags); | ||
| 391 | list_add(&watch->node, &emu->watch); | ||
| 392 | local_irq_restore(flags); | ||
| 393 | } | ||
| 394 | |||
| 395 | return watch ? 0 : -ENOMEM; | ||
| 396 | } | ||
| 397 | |||
| 398 | void i2c_eeprom_emu_delwatcher(struct i2c_eeprom_emu *emu, void *data, | ||
| 399 | struct i2c_eeprom_emu_watcher *watcher) | ||
| 400 | { | ||
| 401 | struct i2c_eeprom_emu_watch *watch, *n; | ||
| 402 | unsigned long flags; | ||
| 403 | |||
| 404 | list_for_each_entry_safe(watch, n, &emu->watch, node) { | ||
| 405 | if (watch->ops == watcher && watch->data == data) { | ||
| 406 | local_irq_save(flags); | ||
| 407 | list_del(&watch->node); | ||
| 408 | local_irq_restore(flags); | ||
| 409 | kfree(watch); | ||
| 410 | } | ||
| 411 | } | ||
| 412 | } | ||
| 413 | |||
| 414 | static void i2c_eeprom_emu_event(void *ptr, i2c_slave_event_t event) | ||
| 415 | { | ||
| 416 | struct i2c_eeprom_emu *emu = ptr; | ||
| 417 | |||
| 418 | eedbg(3, "i2c_eeprom_emu_event: %d\n", event); | ||
| 419 | |||
| 420 | switch (event) { | ||
| 421 | case I2C_SLAVE_EVENT_START_WRITE: | ||
| 422 | emu->seen_start = 1; | ||
| 423 | eedbg(2, "i2c_eeprom: write initiated\n"); | ||
| 424 | break; | ||
| 425 | |||
| 426 | case I2C_SLAVE_EVENT_START_READ: | ||
| 427 | emu->seen_start = 0; | ||
| 428 | eedbg(2, "i2c_eeprom: read initiated\n"); | ||
| 429 | break; | ||
| 430 | |||
| 431 | case I2C_SLAVE_EVENT_STOP: | ||
| 432 | emu->seen_start = 0; | ||
| 433 | eedbg(2, "i2c_eeprom: received stop\n"); | ||
| 434 | break; | ||
| 435 | |||
| 436 | default: | ||
| 437 | eedbg(0, "i2c_eeprom: unhandled event\n"); | ||
| 438 | break; | ||
| 439 | } | ||
| 440 | } | ||
| 441 | |||
| 442 | static int i2c_eeprom_emu_read(void *ptr) | ||
| 443 | { | ||
| 444 | struct i2c_eeprom_emu *emu = ptr; | ||
| 445 | int ret; | ||
| 446 | |||
| 447 | ret = emu->bytes[emu->ptr]; | ||
| 448 | emu->ptr = (emu->ptr + 1) % emu->size; | ||
| 449 | |||
| 450 | return ret; | ||
| 451 | } | ||
| 452 | |||
| 453 | static void i2c_eeprom_emu_write(void *ptr, unsigned int val) | ||
| 454 | { | ||
| 455 | struct i2c_eeprom_emu *emu = ptr; | ||
| 456 | struct i2c_eeprom_emu_watch *watch; | ||
| 457 | |||
| 458 | if (emu->seen_start != 0) { | ||
| 459 | eedbg(2, "i2c_eeprom_emu_write: setting ptr %02x\n", val); | ||
| 460 | emu->ptr = val; | ||
| 461 | emu->seen_start = 0; | ||
| 462 | return; | ||
| 463 | } | ||
| 464 | |||
| 465 | emu->bytes[emu->ptr] = val; | ||
| 466 | |||
| 467 | eedbg(1, "i2c_eeprom_emu_write: ptr=0x%02x, val=0x%02x\n", | ||
| 468 | emu->ptr, val); | ||
| 469 | |||
| 470 | list_for_each_entry(watch, &emu->watch, node) { | ||
| 471 | if (!watch->ops || !watch->ops->write) | ||
| 472 | continue; | ||
| 473 | if (watch->start <= emu->ptr && watch->end >= emu->ptr) | ||
| 474 | watch->ops->write(watch->data, emu->ptr, val); | ||
| 475 | } | ||
| 476 | |||
| 477 | emu->ptr = (emu->ptr + 1) % emu->size; | ||
| 478 | } | ||
| 479 | |||
| 480 | struct i2c_slave_client eeprom_client = { | ||
| 481 | .data = &eeprom, | ||
| 482 | .event = i2c_eeprom_emu_event, | ||
| 483 | .read = i2c_eeprom_emu_read, | ||
| 484 | .write = i2c_eeprom_emu_write | ||
| 485 | }; | ||
| 486 | |||
| 487 | /* | ||
| 488 | * PXA I2C Slave mode | 361 | * PXA I2C Slave mode |
| 489 | */ | 362 | */ |
| 490 | 363 | ||
| @@ -963,11 +836,9 @@ static int i2c_pxa_probe(struct platform_device *dev) | |||
| 963 | i2c->slave_addr = I2C_PXA_SLAVE_ADDR; | 836 | i2c->slave_addr = I2C_PXA_SLAVE_ADDR; |
| 964 | 837 | ||
| 965 | #ifdef CONFIG_I2C_PXA_SLAVE | 838 | #ifdef CONFIG_I2C_PXA_SLAVE |
| 966 | i2c->slave = &eeprom_client; | ||
| 967 | if (plat) { | 839 | if (plat) { |
| 968 | i2c->slave_addr = plat->slave_addr; | 840 | i2c->slave_addr = plat->slave_addr; |
| 969 | if (plat->slave) | 841 | i2c->slave = plat->slave; |
| 970 | i2c->slave = plat->slave; | ||
| 971 | } | 842 | } |
| 972 | #endif | 843 | #endif |
| 973 | 844 | ||
diff --git a/drivers/mmc/Kconfig b/drivers/mmc/Kconfig index ea41852ec8cd..fbef8da60043 100644 --- a/drivers/mmc/Kconfig +++ b/drivers/mmc/Kconfig | |||
| @@ -91,11 +91,11 @@ config MMC_AU1X | |||
| 91 | 91 | ||
| 92 | If unsure, say N. | 92 | If unsure, say N. |
| 93 | 93 | ||
| 94 | config MMC_AT91RM9200 | 94 | config MMC_AT91 |
| 95 | tristate "AT91RM9200 SD/MMC Card Interface support" | 95 | tristate "AT91 SD/MMC Card Interface support" |
| 96 | depends on ARCH_AT91RM9200 && MMC | 96 | depends on ARCH_AT91 && MMC |
| 97 | help | 97 | help |
| 98 | This selects the AT91RM9200 MCI controller. | 98 | This selects the AT91 MCI controller. |
| 99 | 99 | ||
| 100 | If unsure, say N. | 100 | If unsure, say N. |
| 101 | 101 | ||
diff --git a/drivers/mmc/Makefile b/drivers/mmc/Makefile index acfd4de0aba5..83ffb9326a54 100644 --- a/drivers/mmc/Makefile +++ b/drivers/mmc/Makefile | |||
| @@ -22,7 +22,7 @@ obj-$(CONFIG_MMC_SDHCI) += sdhci.o | |||
| 22 | obj-$(CONFIG_MMC_WBSD) += wbsd.o | 22 | obj-$(CONFIG_MMC_WBSD) += wbsd.o |
| 23 | obj-$(CONFIG_MMC_AU1X) += au1xmmc.o | 23 | obj-$(CONFIG_MMC_AU1X) += au1xmmc.o |
| 24 | obj-$(CONFIG_MMC_OMAP) += omap.o | 24 | obj-$(CONFIG_MMC_OMAP) += omap.o |
| 25 | obj-$(CONFIG_MMC_AT91RM9200) += at91_mci.o | 25 | obj-$(CONFIG_MMC_AT91) += at91_mci.o |
| 26 | obj-$(CONFIG_MMC_TIFM_SD) += tifm_sd.o | 26 | obj-$(CONFIG_MMC_TIFM_SD) += tifm_sd.o |
| 27 | 27 | ||
| 28 | mmc_core-y := mmc.o mmc_sysfs.o | 28 | mmc_core-y := mmc.o mmc_sysfs.o |
diff --git a/drivers/mmc/at91_mci.c b/drivers/mmc/at91_mci.c index 494b23fb0a01..41761f7189a6 100644 --- a/drivers/mmc/at91_mci.c +++ b/drivers/mmc/at91_mci.c | |||
| @@ -73,8 +73,8 @@ | |||
| 73 | #include <asm/mach/mmc.h> | 73 | #include <asm/mach/mmc.h> |
| 74 | #include <asm/arch/board.h> | 74 | #include <asm/arch/board.h> |
| 75 | #include <asm/arch/gpio.h> | 75 | #include <asm/arch/gpio.h> |
| 76 | #include <asm/arch/at91rm9200_mci.h> | 76 | #include <asm/arch/at91_mci.h> |
| 77 | #include <asm/arch/at91rm9200_pdc.h> | 77 | #include <asm/arch/at91_pdc.h> |
| 78 | 78 | ||
| 79 | #define DRIVER_NAME "at91_mci" | 79 | #define DRIVER_NAME "at91_mci" |
| 80 | 80 | ||
diff --git a/drivers/pcmcia/at91_cf.c b/drivers/pcmcia/at91_cf.c index 3bcb7dc32995..697966703512 100644 --- a/drivers/pcmcia/at91_cf.c +++ b/drivers/pcmcia/at91_cf.c | |||
| @@ -23,9 +23,9 @@ | |||
| 23 | #include <asm/io.h> | 23 | #include <asm/io.h> |
| 24 | #include <asm/sizes.h> | 24 | #include <asm/sizes.h> |
| 25 | 25 | ||
| 26 | #include <asm/arch/at91rm9200.h> | ||
| 27 | #include <asm/arch/board.h> | 26 | #include <asm/arch/board.h> |
| 28 | #include <asm/arch/gpio.h> | 27 | #include <asm/arch/gpio.h> |
| 28 | #include <asm/arch/at91rm9200_mc.h> | ||
| 29 | 29 | ||
| 30 | 30 | ||
| 31 | /* | 31 | /* |
diff --git a/drivers/serial/atmel_serial.c b/drivers/serial/atmel_serial.c index 391a1f4167a4..9217ee6c7865 100644 --- a/drivers/serial/atmel_serial.c +++ b/drivers/serial/atmel_serial.c | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * linux/drivers/char/at91_serial.c | 2 | * linux/drivers/char/atmel_serial.c |
| 3 | * | 3 | * |
| 4 | * Driver for Atmel AT91 / AT32 Serial ports | 4 | * Driver for Atmel AT91 / AT32 Serial ports |
| 5 | * Copyright (C) 2003 Rick Bronson | 5 | * Copyright (C) 2003 Rick Bronson |
| @@ -36,11 +36,11 @@ | |||
| 36 | 36 | ||
| 37 | #include <asm/io.h> | 37 | #include <asm/io.h> |
| 38 | 38 | ||
| 39 | #include <asm/arch/at91rm9200_pdc.h> | ||
| 40 | #include <asm/mach/serial_at91.h> | 39 | #include <asm/mach/serial_at91.h> |
| 41 | #include <asm/arch/board.h> | 40 | #include <asm/arch/board.h> |
| 41 | #include <asm/arch/at91_pdc.h> | ||
| 42 | #ifdef CONFIG_ARM | 42 | #ifdef CONFIG_ARM |
| 43 | #include <asm/arch/system.h> | 43 | #include <asm/arch/cpu.h> |
| 44 | #include <asm/arch/gpio.h> | 44 | #include <asm/arch/gpio.h> |
| 45 | #endif | 45 | #endif |
| 46 | 46 | ||
| @@ -137,8 +137,8 @@ static void atmel_set_mctrl(struct uart_port *port, u_int mctrl) | |||
| 137 | unsigned int control = 0; | 137 | unsigned int control = 0; |
| 138 | unsigned int mode; | 138 | unsigned int mode; |
| 139 | 139 | ||
| 140 | #ifdef CONFIG_ARM | 140 | #ifdef CONFIG_ARCH_AT91RM9200 |
| 141 | if (arch_identify() == ARCH_ID_AT91RM9200) { | 141 | if (cpu_is_at91rm9200()) { |
| 142 | /* | 142 | /* |
| 143 | * AT91RM9200 Errata #39: RTS0 is not internally connected to PA21. | 143 | * AT91RM9200 Errata #39: RTS0 is not internally connected to PA21. |
| 144 | * We need to drive the pin manually. | 144 | * We need to drive the pin manually. |
diff --git a/drivers/serial/atmel_serial.h b/drivers/serial/atmel_serial.h index eced2ad1a8d9..fe1763b2a6d5 100644 --- a/drivers/serial/atmel_serial.h +++ b/drivers/serial/atmel_serial.h | |||
| @@ -31,8 +31,8 @@ | |||
| 31 | #define ATMEL_US_RSTIT (1 << 13) /* Reset Iterations */ | 31 | #define ATMEL_US_RSTIT (1 << 13) /* Reset Iterations */ |
| 32 | #define ATMEL_US_RSTNACK (1 << 14) /* Reset Non Acknowledge */ | 32 | #define ATMEL_US_RSTNACK (1 << 14) /* Reset Non Acknowledge */ |
| 33 | #define ATMEL_US_RETTO (1 << 15) /* Rearm Time-out */ | 33 | #define ATMEL_US_RETTO (1 << 15) /* Rearm Time-out */ |
| 34 | #define ATMEL_US_DTREN (1 << 16) /* Data Terminal Ready Enable */ | 34 | #define ATMEL_US_DTREN (1 << 16) /* Data Terminal Ready Enable [AT91RM9200 only] */ |
| 35 | #define ATMEL_US_DTRDIS (1 << 17) /* Data Terminal Ready Disable */ | 35 | #define ATMEL_US_DTRDIS (1 << 17) /* Data Terminal Ready Disable [AT91RM9200 only] */ |
| 36 | #define ATMEL_US_RTSEN (1 << 18) /* Request To Send Enable */ | 36 | #define ATMEL_US_RTSEN (1 << 18) /* Request To Send Enable */ |
| 37 | #define ATMEL_US_RTSDIS (1 << 19) /* Request To Send Disable */ | 37 | #define ATMEL_US_RTSDIS (1 << 19) /* Request To Send Disable */ |
| 38 | 38 | ||
| @@ -92,9 +92,9 @@ | |||
| 92 | #define ATMEL_US_TXBUFE (1 << 11) /* Transmission Buffer Empty */ | 92 | #define ATMEL_US_TXBUFE (1 << 11) /* Transmission Buffer Empty */ |
| 93 | #define ATMEL_US_RXBUFF (1 << 12) /* Reception Buffer Full */ | 93 | #define ATMEL_US_RXBUFF (1 << 12) /* Reception Buffer Full */ |
| 94 | #define ATMEL_US_NACK (1 << 13) /* Non Acknowledge */ | 94 | #define ATMEL_US_NACK (1 << 13) /* Non Acknowledge */ |
| 95 | #define ATMEL_US_RIIC (1 << 16) /* Ring Indicator Input Change */ | 95 | #define ATMEL_US_RIIC (1 << 16) /* Ring Indicator Input Change [AT91RM9200 only] */ |
| 96 | #define ATMEL_US_DSRIC (1 << 17) /* Data Set Ready Input Change */ | 96 | #define ATMEL_US_DSRIC (1 << 17) /* Data Set Ready Input Change [AT91RM9200 only] */ |
| 97 | #define ATMEL_US_DCDIC (1 << 18) /* Data Carrier Detect Input Change */ | 97 | #define ATMEL_US_DCDIC (1 << 18) /* Data Carrier Detect Input Change [AT91RM9200 only] */ |
| 98 | #define ATMEL_US_CTSIC (1 << 19) /* Clear to Send Input Change */ | 98 | #define ATMEL_US_CTSIC (1 << 19) /* Clear to Send Input Change */ |
| 99 | #define ATMEL_US_RI (1 << 20) /* RI */ | 99 | #define ATMEL_US_RI (1 << 20) /* RI */ |
| 100 | #define ATMEL_US_DSR (1 << 21) /* DSR */ | 100 | #define ATMEL_US_DSR (1 << 21) /* DSR */ |
| @@ -106,6 +106,7 @@ | |||
| 106 | #define ATMEL_US_CSR 0x14 /* Channel Status Register */ | 106 | #define ATMEL_US_CSR 0x14 /* Channel Status Register */ |
| 107 | #define ATMEL_US_RHR 0x18 /* Receiver Holding Register */ | 107 | #define ATMEL_US_RHR 0x18 /* Receiver Holding Register */ |
| 108 | #define ATMEL_US_THR 0x1c /* Transmitter Holding Register */ | 108 | #define ATMEL_US_THR 0x1c /* Transmitter Holding Register */ |
| 109 | #define ATMEL_US_SYNH (1 << 15) /* Transmit/Receive Sync [SAM9 only] */ | ||
| 109 | 110 | ||
| 110 | #define ATMEL_US_BRGR 0x20 /* Baud Rate Generator Register */ | 111 | #define ATMEL_US_BRGR 0x20 /* Baud Rate Generator Register */ |
| 111 | #define ATMEL_US_CD (0xffff << 0) /* Clock Divider */ | 112 | #define ATMEL_US_CD (0xffff << 0) /* Clock Divider */ |
diff --git a/drivers/usb/Kconfig b/drivers/usb/Kconfig index f9b1719b9a37..9980a4ddfed9 100644 --- a/drivers/usb/Kconfig +++ b/drivers/usb/Kconfig | |||
| @@ -24,7 +24,7 @@ config USB_ARCH_HAS_OHCI | |||
| 24 | default y if ARCH_S3C2410 | 24 | default y if ARCH_S3C2410 |
| 25 | default y if PXA27x | 25 | default y if PXA27x |
| 26 | default y if ARCH_EP93XX | 26 | default y if ARCH_EP93XX |
| 27 | default y if (ARCH_AT91RM9200 || ARCH_AT91SAM9261) | 27 | default y if ARCH_AT91 |
| 28 | default y if ARCH_PNX4008 | 28 | default y if ARCH_PNX4008 |
| 29 | # PPC: | 29 | # PPC: |
| 30 | default y if STB03xxx | 30 | default y if STB03xxx |
diff --git a/drivers/usb/gadget/Kconfig b/drivers/usb/gadget/Kconfig index bbbc82a8336a..4097a86c4b5e 100644 --- a/drivers/usb/gadget/Kconfig +++ b/drivers/usb/gadget/Kconfig | |||
| @@ -189,7 +189,7 @@ config USB_OTG | |||
| 189 | 189 | ||
| 190 | config USB_GADGET_AT91 | 190 | config USB_GADGET_AT91 |
| 191 | boolean "AT91 USB Device Port" | 191 | boolean "AT91 USB Device Port" |
| 192 | depends on ARCH_AT91RM9200 | 192 | depends on ARCH_AT91 |
| 193 | select USB_GADGET_SELECTED | 193 | select USB_GADGET_SELECTED |
| 194 | help | 194 | help |
| 195 | Many Atmel AT91 processors (such as the AT91RM2000) have a | 195 | Many Atmel AT91 processors (such as the AT91RM2000) have a |
diff --git a/drivers/usb/host/ohci-hcd.c b/drivers/usb/host/ohci-hcd.c index ea4714e557e4..4776b3bdf9c8 100644 --- a/drivers/usb/host/ohci-hcd.c +++ b/drivers/usb/host/ohci-hcd.c | |||
| @@ -935,7 +935,7 @@ MODULE_LICENSE ("GPL"); | |||
| 935 | #include "ohci-ppc-soc.c" | 935 | #include "ohci-ppc-soc.c" |
| 936 | #endif | 936 | #endif |
| 937 | 937 | ||
| 938 | #if defined(CONFIG_ARCH_AT91RM9200) || defined(CONFIG_ARCH_AT91SAM9261) | 938 | #ifdef CONFIG_ARCH_AT91 |
| 939 | #include "ohci-at91.c" | 939 | #include "ohci-at91.c" |
| 940 | #endif | 940 | #endif |
| 941 | 941 | ||
| @@ -952,8 +952,7 @@ MODULE_LICENSE ("GPL"); | |||
| 952 | || defined (CONFIG_ARCH_EP93XX) \ | 952 | || defined (CONFIG_ARCH_EP93XX) \ |
| 953 | || defined (CONFIG_SOC_AU1X00) \ | 953 | || defined (CONFIG_SOC_AU1X00) \ |
| 954 | || defined (CONFIG_USB_OHCI_HCD_PPC_SOC) \ | 954 | || defined (CONFIG_USB_OHCI_HCD_PPC_SOC) \ |
| 955 | || defined (CONFIG_ARCH_AT91RM9200) \ | 955 | || defined (CONFIG_ARCH_AT91) \ |
| 956 | || defined (CONFIG_ARCH_AT91SAM9261) \ | ||
| 957 | || defined (CONFIG_ARCH_PNX4008) \ | 956 | || defined (CONFIG_ARCH_PNX4008) \ |
| 958 | ) | 957 | ) |
| 959 | #error "missing bus glue for ohci-hcd" | 958 | #error "missing bus glue for ohci-hcd" |
