diff options
-rw-r--r-- | arch/arm/configs/s3c2410_defconfig | 27 | ||||
-rw-r--r-- | arch/arm/mach-s3c2410/mach-bast.c | 49 | ||||
-rw-r--r-- | arch/arm/mach-s3c2410/mach-vr1000.c | 77 | ||||
-rw-r--r-- | arch/arm/nwfpe/softfloat-macros | 22 | ||||
-rw-r--r-- | arch/arm/nwfpe/softfloat.c | 12 | ||||
-rw-r--r-- | drivers/serial/s3c2410.c | 4 | ||||
-rw-r--r-- | drivers/video/pxafb.c | 3 |
7 files changed, 167 insertions, 27 deletions
diff --git a/arch/arm/configs/s3c2410_defconfig b/arch/arm/configs/s3c2410_defconfig index 2a63fb277196..98b72ff38832 100644 --- a/arch/arm/configs/s3c2410_defconfig +++ b/arch/arm/configs/s3c2410_defconfig | |||
@@ -1,14 +1,13 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.12-rc1-bk2 | 3 | # Linux kernel version: 2.6.12-git4 |
4 | # Sun Mar 27 17:47:45 2005 | 4 | # Wed Jun 22 15:56:42 2005 |
5 | # | 5 | # |
6 | CONFIG_ARM=y | 6 | CONFIG_ARM=y |
7 | CONFIG_MMU=y | 7 | CONFIG_MMU=y |
8 | CONFIG_UID16=y | 8 | CONFIG_UID16=y |
9 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 9 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
10 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 10 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
11 | CONFIG_GENERIC_IOMAP=y | ||
12 | 11 | ||
13 | # | 12 | # |
14 | # Code maturity level options | 13 | # Code maturity level options |
@@ -17,6 +16,7 @@ CONFIG_EXPERIMENTAL=y | |||
17 | # CONFIG_CLEAN_COMPILE is not set | 16 | # CONFIG_CLEAN_COMPILE is not set |
18 | CONFIG_BROKEN=y | 17 | CONFIG_BROKEN=y |
19 | CONFIG_BROKEN_ON_SMP=y | 18 | CONFIG_BROKEN_ON_SMP=y |
19 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
20 | 20 | ||
21 | # | 21 | # |
22 | # General setup | 22 | # General setup |
@@ -35,6 +35,8 @@ CONFIG_KOBJECT_UEVENT=y | |||
35 | CONFIG_KALLSYMS=y | 35 | CONFIG_KALLSYMS=y |
36 | # CONFIG_KALLSYMS_ALL is not set | 36 | # CONFIG_KALLSYMS_ALL is not set |
37 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 37 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
38 | CONFIG_PRINTK=y | ||
39 | CONFIG_BUG=y | ||
38 | CONFIG_BASE_FULL=y | 40 | CONFIG_BASE_FULL=y |
39 | CONFIG_FUTEX=y | 41 | CONFIG_FUTEX=y |
40 | CONFIG_EPOLL=y | 42 | CONFIG_EPOLL=y |
@@ -81,6 +83,7 @@ CONFIG_ARCH_S3C2410=y | |||
81 | # CONFIG_ARCH_VERSATILE is not set | 83 | # CONFIG_ARCH_VERSATILE is not set |
82 | # CONFIG_ARCH_IMX is not set | 84 | # CONFIG_ARCH_IMX is not set |
83 | # CONFIG_ARCH_H720X is not set | 85 | # CONFIG_ARCH_H720X is not set |
86 | # CONFIG_ARCH_AAEC2000 is not set | ||
84 | 87 | ||
85 | # | 88 | # |
86 | # S3C24XX Implementations | 89 | # S3C24XX Implementations |
@@ -134,6 +137,7 @@ CONFIG_CPU_TLB_V4WBI=y | |||
134 | # | 137 | # |
135 | # Bus support | 138 | # Bus support |
136 | # | 139 | # |
140 | CONFIG_ISA_DMA_API=y | ||
137 | 141 | ||
138 | # | 142 | # |
139 | # PCCARD (PCMCIA/CardBus) support | 143 | # PCCARD (PCMCIA/CardBus) support |
@@ -143,7 +147,9 @@ CONFIG_CPU_TLB_V4WBI=y | |||
143 | # | 147 | # |
144 | # Kernel Features | 148 | # Kernel Features |
145 | # | 149 | # |
150 | # CONFIG_SMP is not set | ||
146 | # CONFIG_PREEMPT is not set | 151 | # CONFIG_PREEMPT is not set |
152 | # CONFIG_DISCONTIGMEM is not set | ||
147 | CONFIG_ALIGNMENT_TRAP=y | 153 | CONFIG_ALIGNMENT_TRAP=y |
148 | 154 | ||
149 | # | 155 | # |
@@ -297,7 +303,6 @@ CONFIG_PARPORT_1284=y | |||
297 | # | 303 | # |
298 | # Block devices | 304 | # Block devices |
299 | # | 305 | # |
300 | # CONFIG_BLK_DEV_FD is not set | ||
301 | # CONFIG_PARIDE is not set | 306 | # CONFIG_PARIDE is not set |
302 | # CONFIG_BLK_DEV_COW_COMMON is not set | 307 | # CONFIG_BLK_DEV_COW_COMMON is not set |
303 | CONFIG_BLK_DEV_LOOP=y | 308 | CONFIG_BLK_DEV_LOOP=y |
@@ -359,6 +364,7 @@ CONFIG_BLK_DEV_IDE_BAST=y | |||
359 | # | 364 | # |
360 | # Fusion MPT device support | 365 | # Fusion MPT device support |
361 | # | 366 | # |
367 | # CONFIG_FUSION is not set | ||
362 | 368 | ||
363 | # | 369 | # |
364 | # IEEE 1394 (FireWire) support | 370 | # IEEE 1394 (FireWire) support |
@@ -378,10 +384,11 @@ CONFIG_NET=y | |||
378 | # Networking options | 384 | # Networking options |
379 | # | 385 | # |
380 | # CONFIG_PACKET is not set | 386 | # CONFIG_PACKET is not set |
381 | # CONFIG_NETLINK_DEV is not set | ||
382 | CONFIG_UNIX=y | 387 | CONFIG_UNIX=y |
383 | # CONFIG_NET_KEY is not set | 388 | # CONFIG_NET_KEY is not set |
384 | CONFIG_INET=y | 389 | CONFIG_INET=y |
390 | CONFIG_IP_FIB_HASH=y | ||
391 | # CONFIG_IP_FIB_TRIE is not set | ||
385 | # CONFIG_IP_MULTICAST is not set | 392 | # CONFIG_IP_MULTICAST is not set |
386 | # CONFIG_IP_ADVANCED_ROUTER is not set | 393 | # CONFIG_IP_ADVANCED_ROUTER is not set |
387 | CONFIG_IP_PNP=y | 394 | CONFIG_IP_PNP=y |
@@ -443,8 +450,9 @@ CONFIG_NETDEVICES=y | |||
443 | # Ethernet (10 or 100Mbit) | 450 | # Ethernet (10 or 100Mbit) |
444 | # | 451 | # |
445 | CONFIG_NET_ETHERNET=y | 452 | CONFIG_NET_ETHERNET=y |
446 | # CONFIG_MII is not set | 453 | CONFIG_MII=m |
447 | # CONFIG_SMC91X is not set | 454 | # CONFIG_SMC91X is not set |
455 | CONFIG_DM9000=m | ||
448 | 456 | ||
449 | # | 457 | # |
450 | # Ethernet (1000 Mbit) | 458 | # Ethernet (1000 Mbit) |
@@ -521,7 +529,6 @@ CONFIG_SERIO_SERPORT=y | |||
521 | CONFIG_SERIO_LIBPS2=y | 529 | CONFIG_SERIO_LIBPS2=y |
522 | # CONFIG_SERIO_RAW is not set | 530 | # CONFIG_SERIO_RAW is not set |
523 | # CONFIG_GAMEPORT is not set | 531 | # CONFIG_GAMEPORT is not set |
524 | CONFIG_SOUND_GAMEPORT=y | ||
525 | 532 | ||
526 | # | 533 | # |
527 | # Character devices | 534 | # Character devices |
@@ -605,7 +612,6 @@ CONFIG_S3C2410_RTC=y | |||
605 | # | 612 | # |
606 | # TPM devices | 613 | # TPM devices |
607 | # | 614 | # |
608 | # CONFIG_TCG_TPM is not set | ||
609 | 615 | ||
610 | # | 616 | # |
611 | # I2C support | 617 | # I2C support |
@@ -654,6 +660,7 @@ CONFIG_SENSORS_LM78=m | |||
654 | CONFIG_SENSORS_LM85=m | 660 | CONFIG_SENSORS_LM85=m |
655 | # CONFIG_SENSORS_LM87 is not set | 661 | # CONFIG_SENSORS_LM87 is not set |
656 | # CONFIG_SENSORS_LM90 is not set | 662 | # CONFIG_SENSORS_LM90 is not set |
663 | # CONFIG_SENSORS_LM92 is not set | ||
657 | # CONFIG_SENSORS_MAX1619 is not set | 664 | # CONFIG_SENSORS_MAX1619 is not set |
658 | # CONFIG_SENSORS_PC87360 is not set | 665 | # CONFIG_SENSORS_PC87360 is not set |
659 | # CONFIG_SENSORS_SMSC47B397 is not set | 666 | # CONFIG_SENSORS_SMSC47B397 is not set |
@@ -665,6 +672,7 @@ CONFIG_SENSORS_LM85=m | |||
665 | # | 672 | # |
666 | # Other I2C Chip support | 673 | # Other I2C Chip support |
667 | # | 674 | # |
675 | # CONFIG_SENSORS_DS1337 is not set | ||
668 | CONFIG_SENSORS_EEPROM=m | 676 | CONFIG_SENSORS_EEPROM=m |
669 | # CONFIG_SENSORS_PCF8574 is not set | 677 | # CONFIG_SENSORS_PCF8574 is not set |
670 | # CONFIG_SENSORS_PCF8591 is not set | 678 | # CONFIG_SENSORS_PCF8591 is not set |
@@ -696,8 +704,10 @@ CONFIG_FB=y | |||
696 | # CONFIG_FB_CFB_COPYAREA is not set | 704 | # CONFIG_FB_CFB_COPYAREA is not set |
697 | # CONFIG_FB_CFB_IMAGEBLIT is not set | 705 | # CONFIG_FB_CFB_IMAGEBLIT is not set |
698 | # CONFIG_FB_SOFT_CURSOR is not set | 706 | # CONFIG_FB_SOFT_CURSOR is not set |
707 | # CONFIG_FB_MACMODES is not set | ||
699 | CONFIG_FB_MODE_HELPERS=y | 708 | CONFIG_FB_MODE_HELPERS=y |
700 | # CONFIG_FB_TILEBLITTING is not set | 709 | # CONFIG_FB_TILEBLITTING is not set |
710 | # CONFIG_FB_S1D13XXX is not set | ||
701 | # CONFIG_FB_VIRTUAL is not set | 711 | # CONFIG_FB_VIRTUAL is not set |
702 | 712 | ||
703 | # | 713 | # |
@@ -782,7 +792,6 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | |||
782 | # | 792 | # |
783 | CONFIG_PROC_FS=y | 793 | CONFIG_PROC_FS=y |
784 | CONFIG_SYSFS=y | 794 | CONFIG_SYSFS=y |
785 | # CONFIG_DEVFS_FS is not set | ||
786 | # CONFIG_DEVPTS_FS_XATTR is not set | 795 | # CONFIG_DEVPTS_FS_XATTR is not set |
787 | # CONFIG_TMPFS is not set | 796 | # CONFIG_TMPFS is not set |
788 | # CONFIG_HUGETLBFS is not set | 797 | # CONFIG_HUGETLBFS is not set |
diff --git a/arch/arm/mach-s3c2410/mach-bast.c b/arch/arm/mach-s3c2410/mach-bast.c index 3bb97eb6e693..f3e970039b65 100644 --- a/arch/arm/mach-s3c2410/mach-bast.c +++ b/arch/arm/mach-s3c2410/mach-bast.c | |||
@@ -26,6 +26,7 @@ | |||
26 | * 03-Mar-2005 BJD Ensured that bast-cpld.h is included | 26 | * 03-Mar-2005 BJD Ensured that bast-cpld.h is included |
27 | * 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA | 27 | * 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA |
28 | * 14-Mar-2006 BJD Updated for __iomem changes | 28 | * 14-Mar-2006 BJD Updated for __iomem changes |
29 | * 22-Jun-2006 BJD Added DM9000 platform information | ||
29 | */ | 30 | */ |
30 | 31 | ||
31 | #include <linux/kernel.h> | 32 | #include <linux/kernel.h> |
@@ -35,6 +36,7 @@ | |||
35 | #include <linux/timer.h> | 36 | #include <linux/timer.h> |
36 | #include <linux/init.h> | 37 | #include <linux/init.h> |
37 | #include <linux/device.h> | 38 | #include <linux/device.h> |
39 | #include <linux/dm9000.h> | ||
38 | 40 | ||
39 | #include <asm/mach/arch.h> | 41 | #include <asm/mach/arch.h> |
40 | #include <asm/mach/map.h> | 42 | #include <asm/mach/map.h> |
@@ -53,6 +55,7 @@ | |||
53 | #include <asm/arch/regs-serial.h> | 55 | #include <asm/arch/regs-serial.h> |
54 | #include <asm/arch/regs-gpio.h> | 56 | #include <asm/arch/regs-gpio.h> |
55 | #include <asm/arch/regs-mem.h> | 57 | #include <asm/arch/regs-mem.h> |
58 | #include <asm/arch/regs-lcd.h> | ||
56 | #include <asm/arch/nand.h> | 59 | #include <asm/arch/nand.h> |
57 | 60 | ||
58 | #include <linux/mtd/mtd.h> | 61 | #include <linux/mtd/mtd.h> |
@@ -112,7 +115,6 @@ static struct map_desc bast_iodesc[] __initdata = { | |||
112 | { VA_C2(BAST_VA_ISAMEM), PA_CS2(BAST_PA_ISAMEM), SZ_16M, MT_DEVICE }, | 115 | { VA_C2(BAST_VA_ISAMEM), PA_CS2(BAST_PA_ISAMEM), SZ_16M, MT_DEVICE }, |
113 | { VA_C2(BAST_VA_ASIXNET), PA_CS3(BAST_PA_ASIXNET), SZ_1M, MT_DEVICE }, | 116 | { VA_C2(BAST_VA_ASIXNET), PA_CS3(BAST_PA_ASIXNET), SZ_1M, MT_DEVICE }, |
114 | { VA_C2(BAST_VA_SUPERIO), PA_CS2(BAST_PA_SUPERIO), SZ_1M, MT_DEVICE }, | 117 | { VA_C2(BAST_VA_SUPERIO), PA_CS2(BAST_PA_SUPERIO), SZ_1M, MT_DEVICE }, |
115 | { VA_C2(BAST_VA_DM9000), PA_CS2(BAST_PA_DM9000), SZ_1M, MT_DEVICE }, | ||
116 | { VA_C2(BAST_VA_IDEPRI), PA_CS3(BAST_PA_IDEPRI), SZ_1M, MT_DEVICE }, | 118 | { VA_C2(BAST_VA_IDEPRI), PA_CS3(BAST_PA_IDEPRI), SZ_1M, MT_DEVICE }, |
117 | { VA_C2(BAST_VA_IDESEC), PA_CS3(BAST_PA_IDESEC), SZ_1M, MT_DEVICE }, | 119 | { VA_C2(BAST_VA_IDESEC), PA_CS3(BAST_PA_IDESEC), SZ_1M, MT_DEVICE }, |
118 | { VA_C2(BAST_VA_IDEPRIAUX), PA_CS3(BAST_PA_IDEPRIAUX), SZ_1M, MT_DEVICE }, | 120 | { VA_C2(BAST_VA_IDEPRIAUX), PA_CS3(BAST_PA_IDEPRIAUX), SZ_1M, MT_DEVICE }, |
@@ -123,7 +125,6 @@ static struct map_desc bast_iodesc[] __initdata = { | |||
123 | { VA_C3(BAST_VA_ISAMEM), PA_CS3(BAST_PA_ISAMEM), SZ_16M, MT_DEVICE }, | 125 | { VA_C3(BAST_VA_ISAMEM), PA_CS3(BAST_PA_ISAMEM), SZ_16M, MT_DEVICE }, |
124 | { VA_C3(BAST_VA_ASIXNET), PA_CS3(BAST_PA_ASIXNET), SZ_1M, MT_DEVICE }, | 126 | { VA_C3(BAST_VA_ASIXNET), PA_CS3(BAST_PA_ASIXNET), SZ_1M, MT_DEVICE }, |
125 | { VA_C3(BAST_VA_SUPERIO), PA_CS3(BAST_PA_SUPERIO), SZ_1M, MT_DEVICE }, | 127 | { VA_C3(BAST_VA_SUPERIO), PA_CS3(BAST_PA_SUPERIO), SZ_1M, MT_DEVICE }, |
126 | { VA_C3(BAST_VA_DM9000), PA_CS3(BAST_PA_DM9000), SZ_1M, MT_DEVICE }, | ||
127 | { VA_C3(BAST_VA_IDEPRI), PA_CS3(BAST_PA_IDEPRI), SZ_1M, MT_DEVICE }, | 128 | { VA_C3(BAST_VA_IDEPRI), PA_CS3(BAST_PA_IDEPRI), SZ_1M, MT_DEVICE }, |
128 | { VA_C3(BAST_VA_IDESEC), PA_CS3(BAST_PA_IDESEC), SZ_1M, MT_DEVICE }, | 129 | { VA_C3(BAST_VA_IDESEC), PA_CS3(BAST_PA_IDESEC), SZ_1M, MT_DEVICE }, |
129 | { VA_C3(BAST_VA_IDEPRIAUX), PA_CS3(BAST_PA_IDEPRIAUX), SZ_1M, MT_DEVICE }, | 130 | { VA_C3(BAST_VA_IDEPRIAUX), PA_CS3(BAST_PA_IDEPRIAUX), SZ_1M, MT_DEVICE }, |
@@ -134,7 +135,6 @@ static struct map_desc bast_iodesc[] __initdata = { | |||
134 | { VA_C4(BAST_VA_ISAMEM), PA_CS4(BAST_PA_ISAMEM), SZ_16M, MT_DEVICE }, | 135 | { VA_C4(BAST_VA_ISAMEM), PA_CS4(BAST_PA_ISAMEM), SZ_16M, MT_DEVICE }, |
135 | { VA_C4(BAST_VA_ASIXNET), PA_CS5(BAST_PA_ASIXNET), SZ_1M, MT_DEVICE }, | 136 | { VA_C4(BAST_VA_ASIXNET), PA_CS5(BAST_PA_ASIXNET), SZ_1M, MT_DEVICE }, |
136 | { VA_C4(BAST_VA_SUPERIO), PA_CS4(BAST_PA_SUPERIO), SZ_1M, MT_DEVICE }, | 137 | { VA_C4(BAST_VA_SUPERIO), PA_CS4(BAST_PA_SUPERIO), SZ_1M, MT_DEVICE }, |
137 | { VA_C4(BAST_VA_DM9000), PA_CS4(BAST_PA_DM9000), SZ_1M, MT_DEVICE }, | ||
138 | { VA_C4(BAST_VA_IDEPRI), PA_CS5(BAST_PA_IDEPRI), SZ_1M, MT_DEVICE }, | 138 | { VA_C4(BAST_VA_IDEPRI), PA_CS5(BAST_PA_IDEPRI), SZ_1M, MT_DEVICE }, |
139 | { VA_C4(BAST_VA_IDESEC), PA_CS5(BAST_PA_IDESEC), SZ_1M, MT_DEVICE }, | 139 | { VA_C4(BAST_VA_IDESEC), PA_CS5(BAST_PA_IDESEC), SZ_1M, MT_DEVICE }, |
140 | { VA_C4(BAST_VA_IDEPRIAUX), PA_CS5(BAST_PA_IDEPRIAUX), SZ_1M, MT_DEVICE }, | 140 | { VA_C4(BAST_VA_IDEPRIAUX), PA_CS5(BAST_PA_IDEPRIAUX), SZ_1M, MT_DEVICE }, |
@@ -145,7 +145,6 @@ static struct map_desc bast_iodesc[] __initdata = { | |||
145 | { VA_C5(BAST_VA_ISAMEM), PA_CS5(BAST_PA_ISAMEM), SZ_16M, MT_DEVICE }, | 145 | { VA_C5(BAST_VA_ISAMEM), PA_CS5(BAST_PA_ISAMEM), SZ_16M, MT_DEVICE }, |
146 | { VA_C5(BAST_VA_ASIXNET), PA_CS5(BAST_PA_ASIXNET), SZ_1M, MT_DEVICE }, | 146 | { VA_C5(BAST_VA_ASIXNET), PA_CS5(BAST_PA_ASIXNET), SZ_1M, MT_DEVICE }, |
147 | { VA_C5(BAST_VA_SUPERIO), PA_CS5(BAST_PA_SUPERIO), SZ_1M, MT_DEVICE }, | 147 | { VA_C5(BAST_VA_SUPERIO), PA_CS5(BAST_PA_SUPERIO), SZ_1M, MT_DEVICE }, |
148 | { VA_C5(BAST_VA_DM9000), PA_CS5(BAST_PA_DM9000), SZ_1M, MT_DEVICE }, | ||
149 | { VA_C5(BAST_VA_IDEPRI), PA_CS5(BAST_PA_IDEPRI), SZ_1M, MT_DEVICE }, | 148 | { VA_C5(BAST_VA_IDEPRI), PA_CS5(BAST_PA_IDEPRI), SZ_1M, MT_DEVICE }, |
150 | { VA_C5(BAST_VA_IDESEC), PA_CS5(BAST_PA_IDESEC), SZ_1M, MT_DEVICE }, | 149 | { VA_C5(BAST_VA_IDESEC), PA_CS5(BAST_PA_IDESEC), SZ_1M, MT_DEVICE }, |
151 | { VA_C5(BAST_VA_IDEPRIAUX), PA_CS5(BAST_PA_IDEPRIAUX), SZ_1M, MT_DEVICE }, | 150 | { VA_C5(BAST_VA_IDEPRIAUX), PA_CS5(BAST_PA_IDEPRIAUX), SZ_1M, MT_DEVICE }, |
@@ -313,6 +312,45 @@ static struct s3c2410_platform_nand bast_nand_info = { | |||
313 | .select_chip = bast_nand_select, | 312 | .select_chip = bast_nand_select, |
314 | }; | 313 | }; |
315 | 314 | ||
315 | /* DM9000 */ | ||
316 | |||
317 | static struct resource bast_dm9k_resource[] = { | ||
318 | [0] = { | ||
319 | .start = S3C2410_CS5 + BAST_PA_DM9000, | ||
320 | .end = S3C2410_CS5 + BAST_PA_DM9000 + 3, | ||
321 | .flags = IORESOURCE_MEM | ||
322 | }, | ||
323 | [1] = { | ||
324 | .start = S3C2410_CS5 + BAST_PA_DM9000 + 0x40, | ||
325 | .end = S3C2410_CS5 + BAST_PA_DM9000 + 0x40 + 0x3f, | ||
326 | .flags = IORESOURCE_MEM | ||
327 | }, | ||
328 | [2] = { | ||
329 | .start = IRQ_DM9000, | ||
330 | .end = IRQ_DM9000, | ||
331 | .flags = IORESOURCE_IRQ | ||
332 | } | ||
333 | |||
334 | }; | ||
335 | |||
336 | /* for the moment we limit ourselves to 16bit IO until some | ||
337 | * better IO routines can be written and tested | ||
338 | */ | ||
339 | |||
340 | struct dm9000_plat_data bast_dm9k_platdata = { | ||
341 | .flags = DM9000_PLATF_16BITONLY | ||
342 | }; | ||
343 | |||
344 | static struct platform_device bast_device_dm9k = { | ||
345 | .name = "dm9000", | ||
346 | .id = 0, | ||
347 | .num_resources = ARRAY_SIZE(bast_dm9k_resource), | ||
348 | .resource = bast_dm9k_resource, | ||
349 | .dev = { | ||
350 | .platform_data = &bast_dm9k_platdata, | ||
351 | } | ||
352 | }; | ||
353 | |||
316 | 354 | ||
317 | /* Standard BAST devices */ | 355 | /* Standard BAST devices */ |
318 | 356 | ||
@@ -324,7 +362,8 @@ static struct platform_device *bast_devices[] __initdata = { | |||
324 | &s3c_device_iis, | 362 | &s3c_device_iis, |
325 | &s3c_device_rtc, | 363 | &s3c_device_rtc, |
326 | &s3c_device_nand, | 364 | &s3c_device_nand, |
327 | &bast_device_nor | 365 | &bast_device_nor, |
366 | &bast_device_dm9k, | ||
328 | }; | 367 | }; |
329 | 368 | ||
330 | static struct clk *bast_clocks[] = { | 369 | static struct clk *bast_clocks[] = { |
diff --git a/arch/arm/mach-s3c2410/mach-vr1000.c b/arch/arm/mach-s3c2410/mach-vr1000.c index 5512146b1ce4..76be074944a0 100644 --- a/arch/arm/mach-s3c2410/mach-vr1000.c +++ b/arch/arm/mach-s3c2410/mach-vr1000.c | |||
@@ -27,6 +27,7 @@ | |||
27 | * 10-Feb-2005 BJD Added power-off capability | 27 | * 10-Feb-2005 BJD Added power-off capability |
28 | * 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA | 28 | * 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA |
29 | * 14-Mar-2006 BJD void __iomem fixes | 29 | * 14-Mar-2006 BJD void __iomem fixes |
30 | * 22-Jun-2006 BJD Added DM9000 platform information | ||
30 | */ | 31 | */ |
31 | 32 | ||
32 | #include <linux/kernel.h> | 33 | #include <linux/kernel.h> |
@@ -35,6 +36,7 @@ | |||
35 | #include <linux/list.h> | 36 | #include <linux/list.h> |
36 | #include <linux/timer.h> | 37 | #include <linux/timer.h> |
37 | #include <linux/init.h> | 38 | #include <linux/init.h> |
39 | #include <linux/dm9000.h> | ||
38 | 40 | ||
39 | #include <linux/serial.h> | 41 | #include <linux/serial.h> |
40 | #include <linux/tty.h> | 42 | #include <linux/tty.h> |
@@ -98,28 +100,24 @@ static struct map_desc vr1000_iodesc[] __initdata = { | |||
98 | * are only 8bit */ | 100 | * are only 8bit */ |
99 | 101 | ||
100 | /* slow, byte */ | 102 | /* slow, byte */ |
101 | { VA_C2(VR1000_VA_DM9000), PA_CS2(VR1000_PA_DM9000), SZ_1M, MT_DEVICE }, | ||
102 | { VA_C2(VR1000_VA_IDEPRI), PA_CS3(VR1000_PA_IDEPRI), SZ_1M, MT_DEVICE }, | 103 | { VA_C2(VR1000_VA_IDEPRI), PA_CS3(VR1000_PA_IDEPRI), SZ_1M, MT_DEVICE }, |
103 | { VA_C2(VR1000_VA_IDESEC), PA_CS3(VR1000_PA_IDESEC), SZ_1M, MT_DEVICE }, | 104 | { VA_C2(VR1000_VA_IDESEC), PA_CS3(VR1000_PA_IDESEC), SZ_1M, MT_DEVICE }, |
104 | { VA_C2(VR1000_VA_IDEPRIAUX), PA_CS3(VR1000_PA_IDEPRIAUX), SZ_1M, MT_DEVICE }, | 105 | { VA_C2(VR1000_VA_IDEPRIAUX), PA_CS3(VR1000_PA_IDEPRIAUX), SZ_1M, MT_DEVICE }, |
105 | { VA_C2(VR1000_VA_IDESECAUX), PA_CS3(VR1000_PA_IDESECAUX), SZ_1M, MT_DEVICE }, | 106 | { VA_C2(VR1000_VA_IDESECAUX), PA_CS3(VR1000_PA_IDESECAUX), SZ_1M, MT_DEVICE }, |
106 | 107 | ||
107 | /* slow, word */ | 108 | /* slow, word */ |
108 | { VA_C3(VR1000_VA_DM9000), PA_CS3(VR1000_PA_DM9000), SZ_1M, MT_DEVICE }, | ||
109 | { VA_C3(VR1000_VA_IDEPRI), PA_CS3(VR1000_PA_IDEPRI), SZ_1M, MT_DEVICE }, | 109 | { VA_C3(VR1000_VA_IDEPRI), PA_CS3(VR1000_PA_IDEPRI), SZ_1M, MT_DEVICE }, |
110 | { VA_C3(VR1000_VA_IDESEC), PA_CS3(VR1000_PA_IDESEC), SZ_1M, MT_DEVICE }, | 110 | { VA_C3(VR1000_VA_IDESEC), PA_CS3(VR1000_PA_IDESEC), SZ_1M, MT_DEVICE }, |
111 | { VA_C3(VR1000_VA_IDEPRIAUX), PA_CS3(VR1000_PA_IDEPRIAUX), SZ_1M, MT_DEVICE }, | 111 | { VA_C3(VR1000_VA_IDEPRIAUX), PA_CS3(VR1000_PA_IDEPRIAUX), SZ_1M, MT_DEVICE }, |
112 | { VA_C3(VR1000_VA_IDESECAUX), PA_CS3(VR1000_PA_IDESECAUX), SZ_1M, MT_DEVICE }, | 112 | { VA_C3(VR1000_VA_IDESECAUX), PA_CS3(VR1000_PA_IDESECAUX), SZ_1M, MT_DEVICE }, |
113 | 113 | ||
114 | /* fast, byte */ | 114 | /* fast, byte */ |
115 | { VA_C4(VR1000_VA_DM9000), PA_CS4(VR1000_PA_DM9000), SZ_1M, MT_DEVICE }, | ||
116 | { VA_C4(VR1000_VA_IDEPRI), PA_CS5(VR1000_PA_IDEPRI), SZ_1M, MT_DEVICE }, | 115 | { VA_C4(VR1000_VA_IDEPRI), PA_CS5(VR1000_PA_IDEPRI), SZ_1M, MT_DEVICE }, |
117 | { VA_C4(VR1000_VA_IDESEC), PA_CS5(VR1000_PA_IDESEC), SZ_1M, MT_DEVICE }, | 116 | { VA_C4(VR1000_VA_IDESEC), PA_CS5(VR1000_PA_IDESEC), SZ_1M, MT_DEVICE }, |
118 | { VA_C4(VR1000_VA_IDEPRIAUX), PA_CS5(VR1000_PA_IDEPRIAUX), SZ_1M, MT_DEVICE }, | 117 | { VA_C4(VR1000_VA_IDEPRIAUX), PA_CS5(VR1000_PA_IDEPRIAUX), SZ_1M, MT_DEVICE }, |
119 | { VA_C4(VR1000_VA_IDESECAUX), PA_CS5(VR1000_PA_IDESECAUX), SZ_1M, MT_DEVICE }, | 118 | { VA_C4(VR1000_VA_IDESECAUX), PA_CS5(VR1000_PA_IDESECAUX), SZ_1M, MT_DEVICE }, |
120 | 119 | ||
121 | /* fast, word */ | 120 | /* fast, word */ |
122 | { VA_C5(VR1000_VA_DM9000), PA_CS5(VR1000_PA_DM9000), SZ_1M, MT_DEVICE }, | ||
123 | { VA_C5(VR1000_VA_IDEPRI), PA_CS5(VR1000_PA_IDEPRI), SZ_1M, MT_DEVICE }, | 121 | { VA_C5(VR1000_VA_IDEPRI), PA_CS5(VR1000_PA_IDEPRI), SZ_1M, MT_DEVICE }, |
124 | { VA_C5(VR1000_VA_IDESEC), PA_CS5(VR1000_PA_IDESEC), SZ_1M, MT_DEVICE }, | 122 | { VA_C5(VR1000_VA_IDESEC), PA_CS5(VR1000_PA_IDESEC), SZ_1M, MT_DEVICE }, |
125 | { VA_C5(VR1000_VA_IDEPRIAUX), PA_CS5(VR1000_PA_IDEPRIAUX), SZ_1M, MT_DEVICE }, | 123 | { VA_C5(VR1000_VA_IDEPRIAUX), PA_CS5(VR1000_PA_IDEPRIAUX), SZ_1M, MT_DEVICE }, |
@@ -246,6 +244,74 @@ static struct platform_device vr1000_nor = { | |||
246 | .resource = vr1000_nor_resource, | 244 | .resource = vr1000_nor_resource, |
247 | }; | 245 | }; |
248 | 246 | ||
247 | /* DM9000 ethernet devices */ | ||
248 | |||
249 | static struct resource vr1000_dm9k0_resource[] = { | ||
250 | [0] = { | ||
251 | .start = S3C2410_CS5 + VR1000_PA_DM9000, | ||
252 | .end = S3C2410_CS5 + VR1000_PA_DM9000 + 3, | ||
253 | .flags = IORESOURCE_MEM | ||
254 | }, | ||
255 | [1] = { | ||
256 | .start = S3C2410_CS5 + VR1000_PA_DM9000 + 0x40, | ||
257 | .end = S3C2410_CS5 + VR1000_PA_DM9000 + 0x7f, | ||
258 | .flags = IORESOURCE_MEM | ||
259 | }, | ||
260 | [2] = { | ||
261 | .start = IRQ_VR1000_DM9000A, | ||
262 | .end = IRQ_VR1000_DM9000A, | ||
263 | .flags = IORESOURCE_IRQ | ||
264 | } | ||
265 | |||
266 | }; | ||
267 | |||
268 | static struct resource vr1000_dm9k1_resource[] = { | ||
269 | [0] = { | ||
270 | .start = S3C2410_CS5 + VR1000_PA_DM9000 + 0x80, | ||
271 | .end = S3C2410_CS5 + VR1000_PA_DM9000 + 0x83, | ||
272 | .flags = IORESOURCE_MEM | ||
273 | }, | ||
274 | [1] = { | ||
275 | .start = S3C2410_CS5 + VR1000_PA_DM9000 + 0xC0, | ||
276 | .end = S3C2410_CS5 + VR1000_PA_DM9000 + 0xFF, | ||
277 | .flags = IORESOURCE_MEM | ||
278 | }, | ||
279 | [2] = { | ||
280 | .start = IRQ_VR1000_DM9000N, | ||
281 | .end = IRQ_VR1000_DM9000N, | ||
282 | .flags = IORESOURCE_IRQ | ||
283 | } | ||
284 | }; | ||
285 | |||
286 | /* for the moment we limit ourselves to 16bit IO until some | ||
287 | * better IO routines can be written and tested | ||
288 | */ | ||
289 | |||
290 | struct dm9000_plat_data vr1000_dm9k_platdata = { | ||
291 | .flags = DM9000_PLATF_16BITONLY, | ||
292 | }; | ||
293 | |||
294 | static struct platform_device vr1000_dm9k0 = { | ||
295 | .name = "dm9000", | ||
296 | .id = 0, | ||
297 | .num_resources = ARRAY_SIZE(vr1000_dm9k0_resource), | ||
298 | .resource = vr1000_dm9k0_resource, | ||
299 | .dev = { | ||
300 | .platform_data = &vr1000_dm9k_platdata, | ||
301 | } | ||
302 | }; | ||
303 | |||
304 | static struct platform_device vr1000_dm9k1 = { | ||
305 | .name = "dm9000", | ||
306 | .id = 1, | ||
307 | .num_resources = ARRAY_SIZE(vr1000_dm9k1_resource), | ||
308 | .resource = vr1000_dm9k1_resource, | ||
309 | .dev = { | ||
310 | .platform_data = &vr1000_dm9k_platdata, | ||
311 | } | ||
312 | }; | ||
313 | |||
314 | /* devices for this board */ | ||
249 | 315 | ||
250 | static struct platform_device *vr1000_devices[] __initdata = { | 316 | static struct platform_device *vr1000_devices[] __initdata = { |
251 | &s3c_device_usb, | 317 | &s3c_device_usb, |
@@ -253,8 +319,11 @@ static struct platform_device *vr1000_devices[] __initdata = { | |||
253 | &s3c_device_wdt, | 319 | &s3c_device_wdt, |
254 | &s3c_device_i2c, | 320 | &s3c_device_i2c, |
255 | &s3c_device_iis, | 321 | &s3c_device_iis, |
322 | &s3c_device_adc, | ||
256 | &serial_device, | 323 | &serial_device, |
257 | &vr1000_nor, | 324 | &vr1000_nor, |
325 | &vr1000_dm9k0, | ||
326 | &vr1000_dm9k1 | ||
258 | }; | 327 | }; |
259 | 328 | ||
260 | static struct clk *vr1000_clocks[] = { | 329 | static struct clk *vr1000_clocks[] = { |
diff --git a/arch/arm/nwfpe/softfloat-macros b/arch/arm/nwfpe/softfloat-macros index 5469989f2c5e..5a060f95a58f 100644 --- a/arch/arm/nwfpe/softfloat-macros +++ b/arch/arm/nwfpe/softfloat-macros | |||
@@ -563,8 +563,14 @@ static bits64 estimateDiv128To64( bits64 a0, bits64 a1, bits64 b ) | |||
563 | bits64 rem0, rem1, term0, term1; | 563 | bits64 rem0, rem1, term0, term1; |
564 | bits64 z; | 564 | bits64 z; |
565 | if ( b <= a0 ) return LIT64( 0xFFFFFFFFFFFFFFFF ); | 565 | if ( b <= a0 ) return LIT64( 0xFFFFFFFFFFFFFFFF ); |
566 | b0 = b>>32; | 566 | b0 = b>>32; /* hence b0 is 32 bits wide now */ |
567 | z = ( b0<<32 <= a0 ) ? LIT64( 0xFFFFFFFF00000000 ) : ( a0 / b0 )<<32; | 567 | if ( b0<<32 <= a0 ) { |
568 | z = LIT64( 0xFFFFFFFF00000000 ); | ||
569 | } else { | ||
570 | z = a0; | ||
571 | do_div( z, b0 ); | ||
572 | z <<= 32; | ||
573 | } | ||
568 | mul64To128( b, z, &term0, &term1 ); | 574 | mul64To128( b, z, &term0, &term1 ); |
569 | sub128( a0, a1, term0, term1, &rem0, &rem1 ); | 575 | sub128( a0, a1, term0, term1, &rem0, &rem1 ); |
570 | while ( ( (sbits64) rem0 ) < 0 ) { | 576 | while ( ( (sbits64) rem0 ) < 0 ) { |
@@ -573,7 +579,12 @@ static bits64 estimateDiv128To64( bits64 a0, bits64 a1, bits64 b ) | |||
573 | add128( rem0, rem1, b0, b1, &rem0, &rem1 ); | 579 | add128( rem0, rem1, b0, b1, &rem0, &rem1 ); |
574 | } | 580 | } |
575 | rem0 = ( rem0<<32 ) | ( rem1>>32 ); | 581 | rem0 = ( rem0<<32 ) | ( rem1>>32 ); |
576 | z |= ( b0<<32 <= rem0 ) ? 0xFFFFFFFF : rem0 / b0; | 582 | if ( b0<<32 <= rem0 ) { |
583 | z |= 0xFFFFFFFF; | ||
584 | } else { | ||
585 | do_div( rem0, b0 ); | ||
586 | z |= rem0; | ||
587 | } | ||
577 | return z; | 588 | return z; |
578 | 589 | ||
579 | } | 590 | } |
@@ -601,6 +612,7 @@ static bits32 estimateSqrt32( int16 aExp, bits32 a ) | |||
601 | }; | 612 | }; |
602 | int8 index; | 613 | int8 index; |
603 | bits32 z; | 614 | bits32 z; |
615 | bits64 A; | ||
604 | 616 | ||
605 | index = ( a>>27 ) & 15; | 617 | index = ( a>>27 ) & 15; |
606 | if ( aExp & 1 ) { | 618 | if ( aExp & 1 ) { |
@@ -614,7 +626,9 @@ static bits32 estimateSqrt32( int16 aExp, bits32 a ) | |||
614 | z = ( 0x20000 <= z ) ? 0xFFFF8000 : ( z<<15 ); | 626 | z = ( 0x20000 <= z ) ? 0xFFFF8000 : ( z<<15 ); |
615 | if ( z <= a ) return (bits32) ( ( (sbits32) a )>>1 ); | 627 | if ( z <= a ) return (bits32) ( ( (sbits32) a )>>1 ); |
616 | } | 628 | } |
617 | return ( (bits32) ( ( ( (bits64) a )<<31 ) / z ) ) + ( z>>1 ); | 629 | A = ( (bits64) a )<<31; |
630 | do_div( A, z ); | ||
631 | return ( (bits32) A ) + ( z>>1 ); | ||
618 | 632 | ||
619 | } | 633 | } |
620 | 634 | ||
diff --git a/arch/arm/nwfpe/softfloat.c b/arch/arm/nwfpe/softfloat.c index 9d743ae29062..e038dd3be9b3 100644 --- a/arch/arm/nwfpe/softfloat.c +++ b/arch/arm/nwfpe/softfloat.c | |||
@@ -28,6 +28,8 @@ this code that are retained. | |||
28 | =============================================================================== | 28 | =============================================================================== |
29 | */ | 29 | */ |
30 | 30 | ||
31 | #include <asm/div64.h> | ||
32 | |||
31 | #include "fpa11.h" | 33 | #include "fpa11.h" |
32 | //#include "milieu.h" | 34 | //#include "milieu.h" |
33 | //#include "softfloat.h" | 35 | //#include "softfloat.h" |
@@ -1331,7 +1333,11 @@ float32 float32_div( float32 a, float32 b ) | |||
1331 | aSig >>= 1; | 1333 | aSig >>= 1; |
1332 | ++zExp; | 1334 | ++zExp; |
1333 | } | 1335 | } |
1334 | zSig = ( ( (bits64) aSig )<<32 ) / bSig; | 1336 | { |
1337 | bits64 tmp = ( (bits64) aSig )<<32; | ||
1338 | do_div( tmp, bSig ); | ||
1339 | zSig = tmp; | ||
1340 | } | ||
1335 | if ( ( zSig & 0x3F ) == 0 ) { | 1341 | if ( ( zSig & 0x3F ) == 0 ) { |
1336 | zSig |= ( ( (bits64) bSig ) * zSig != ( (bits64) aSig )<<32 ); | 1342 | zSig |= ( ( (bits64) bSig ) * zSig != ( (bits64) aSig )<<32 ); |
1337 | } | 1343 | } |
@@ -1397,7 +1403,9 @@ float32 float32_rem( float32 a, float32 b ) | |||
1397 | q = ( bSig <= aSig ); | 1403 | q = ( bSig <= aSig ); |
1398 | if ( q ) aSig -= bSig; | 1404 | if ( q ) aSig -= bSig; |
1399 | if ( 0 < expDiff ) { | 1405 | if ( 0 < expDiff ) { |
1400 | q = ( ( (bits64) aSig )<<32 ) / bSig; | 1406 | bits64 tmp = ( (bits64) aSig )<<32; |
1407 | do_div( tmp, bSig ); | ||
1408 | q = tmp; | ||
1401 | q >>= 32 - expDiff; | 1409 | q >>= 32 - expDiff; |
1402 | bSig >>= 2; | 1410 | bSig >>= 2; |
1403 | aSig = ( ( aSig>>1 )<<( expDiff - 1 ) ) - bSig * q; | 1411 | aSig = ( ( aSig>>1 )<<( expDiff - 1 ) ) - bSig * q; |
diff --git a/drivers/serial/s3c2410.c b/drivers/serial/s3c2410.c index 2a9f7ade2c9d..5c4678478b1d 100644 --- a/drivers/serial/s3c2410.c +++ b/drivers/serial/s3c2410.c | |||
@@ -198,7 +198,7 @@ static inline struct s3c24xx_uart_port *to_ourport(struct uart_port *port) | |||
198 | 198 | ||
199 | /* translate a port to the device name */ | 199 | /* translate a port to the device name */ |
200 | 200 | ||
201 | static inline char *s3c24xx_serial_portname(struct uart_port *port) | 201 | static inline const char *s3c24xx_serial_portname(struct uart_port *port) |
202 | { | 202 | { |
203 | return to_platform_device(port->dev)->name; | 203 | return to_platform_device(port->dev)->name; |
204 | } | 204 | } |
@@ -903,7 +903,7 @@ static void s3c24xx_serial_release_port(struct uart_port *port) | |||
903 | 903 | ||
904 | static int s3c24xx_serial_request_port(struct uart_port *port) | 904 | static int s3c24xx_serial_request_port(struct uart_port *port) |
905 | { | 905 | { |
906 | char *name = s3c24xx_serial_portname(port); | 906 | const char *name = s3c24xx_serial_portname(port); |
907 | return request_mem_region(port->mapbase, MAP_SIZE, name) ? 0 : -EBUSY; | 907 | return request_mem_region(port->mapbase, MAP_SIZE, name) ? 0 : -EBUSY; |
908 | } | 908 | } |
909 | 909 | ||
diff --git a/drivers/video/pxafb.c b/drivers/video/pxafb.c index 815fbc8317fc..16e37a535d85 100644 --- a/drivers/video/pxafb.c +++ b/drivers/video/pxafb.c | |||
@@ -43,6 +43,7 @@ | |||
43 | #include <asm/io.h> | 43 | #include <asm/io.h> |
44 | #include <asm/irq.h> | 44 | #include <asm/irq.h> |
45 | #include <asm/uaccess.h> | 45 | #include <asm/uaccess.h> |
46 | #include <asm/div64.h> | ||
46 | #include <asm/arch/pxa-regs.h> | 47 | #include <asm/arch/pxa-regs.h> |
47 | #include <asm/arch/bitfield.h> | 48 | #include <asm/arch/bitfield.h> |
48 | #include <asm/arch/pxafb.h> | 49 | #include <asm/arch/pxafb.h> |
@@ -460,7 +461,7 @@ static inline unsigned int get_pcd(unsigned int pixclock) | |||
460 | * speeds */ | 461 | * speeds */ |
461 | 462 | ||
462 | pcd = (unsigned long long)get_lcdclk_frequency_10khz() * pixclock; | 463 | pcd = (unsigned long long)get_lcdclk_frequency_10khz() * pixclock; |
463 | pcd /= 100000000 * 2; | 464 | do_div(pcd, 100000000 * 2); |
464 | /* no need for this, since we should subtract 1 anyway. they cancel */ | 465 | /* no need for this, since we should subtract 1 anyway. they cancel */ |
465 | /* pcd += 1; */ /* make up for integer math truncations */ | 466 | /* pcd += 1; */ /* make up for integer math truncations */ |
466 | return (unsigned int)pcd; | 467 | return (unsigned int)pcd; |