diff options
author | Romain Naour <romain.naour@openwide.fr> | 2013-01-09 21:47:04 -0500 |
---|---|---|
committer | Kukjin Kim <kgene.kim@samsung.com> | 2013-03-05 06:16:38 -0500 |
commit | 7f78b6eb5f51731fd7d6e272b5adc1d030f0791f (patch) | |
tree | efb624c83c58059865fc8fa51b15bbdd341c2e6a /arch | |
parent | c1fcd403ced3ad0d63418cc1120e1562283b16ce (diff) |
ARM: S3C24XX: Add samsung-time support for s3c24xx
Signed-off-by: Naour Romain <romain.naour@openwide.fr>
Reviewed-by: Tomasz Figa <tomasz.figa@gmail.com>
[heiko@sntech.de: tested on a s3c2416 based machine]
Reviewed-and-Tested-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Diffstat (limited to 'arch')
28 files changed, 100 insertions, 35 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 5b714695b01b..967bcd31eb3b 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
@@ -770,8 +770,10 @@ config ARCH_SA1100 | |||
770 | config ARCH_S3C24XX | 770 | config ARCH_S3C24XX |
771 | bool "Samsung S3C24XX SoCs" | 771 | bool "Samsung S3C24XX SoCs" |
772 | select ARCH_HAS_CPUFREQ | 772 | select ARCH_HAS_CPUFREQ |
773 | select ARCH_USES_GETTIMEOFFSET | ||
774 | select CLKDEV_LOOKUP | 773 | select CLKDEV_LOOKUP |
774 | select CLKSRC_MMIO | ||
775 | select GENERIC_CLOCKEVENTS | ||
776 | select GENERIC_GPIO | ||
775 | select HAVE_CLK | 777 | select HAVE_CLK |
776 | select HAVE_S3C2410_I2C if I2C | 778 | select HAVE_S3C2410_I2C if I2C |
777 | select HAVE_S3C2410_WATCHDOG if WATCHDOG | 779 | select HAVE_S3C2410_WATCHDOG if WATCHDOG |
diff --git a/arch/arm/mach-s3c24xx/Kconfig b/arch/arm/mach-s3c24xx/Kconfig index 37f513d1588e..0c5e4fb61117 100644 --- a/arch/arm/mach-s3c24xx/Kconfig +++ b/arch/arm/mach-s3c24xx/Kconfig | |||
@@ -30,6 +30,7 @@ config CPU_S3C2410 | |||
30 | select S3C2410_CLOCK | 30 | select S3C2410_CLOCK |
31 | select S3C2410_CPUFREQ if CPU_FREQ_S3C24XX | 31 | select S3C2410_CPUFREQ if CPU_FREQ_S3C24XX |
32 | select S3C2410_PM if PM | 32 | select S3C2410_PM if PM |
33 | select SAMSUNG_HRT | ||
33 | help | 34 | help |
34 | Support for S3C2410 and S3C2410A family from the S3C24XX line | 35 | Support for S3C2410 and S3C2410A family from the S3C24XX line |
35 | of Samsung Mobile CPUs. | 36 | of Samsung Mobile CPUs. |
@@ -41,6 +42,7 @@ config CPU_S3C2412 | |||
41 | select CPU_LLSERIAL_S3C2440 | 42 | select CPU_LLSERIAL_S3C2440 |
42 | select S3C2412_DMA if S3C24XX_DMA | 43 | select S3C2412_DMA if S3C24XX_DMA |
43 | select S3C2412_PM if PM | 44 | select S3C2412_PM if PM |
45 | select SAMSUNG_HRT | ||
44 | help | 46 | help |
45 | Support for the S3C2412 and S3C2413 SoCs from the S3C24XX line | 47 | Support for the S3C2412 and S3C2413 SoCs from the S3C24XX line |
46 | 48 | ||
@@ -53,6 +55,7 @@ config CPU_S3C2416 | |||
53 | select S3C2443_COMMON | 55 | select S3C2443_COMMON |
54 | select S3C2443_DMA if S3C24XX_DMA | 56 | select S3C2443_DMA if S3C24XX_DMA |
55 | select SAMSUNG_CLKSRC | 57 | select SAMSUNG_CLKSRC |
58 | select SAMSUNG_HRT | ||
56 | help | 59 | help |
57 | Support for the S3C2416 SoC from the S3C24XX line | 60 | Support for the S3C2416 SoC from the S3C24XX line |
58 | 61 | ||
@@ -63,6 +66,7 @@ config CPU_S3C2440 | |||
63 | select S3C2410_CLOCK | 66 | select S3C2410_CLOCK |
64 | select S3C2410_PM if PM | 67 | select S3C2410_PM if PM |
65 | select S3C2440_DMA if S3C24XX_DMA | 68 | select S3C2440_DMA if S3C24XX_DMA |
69 | select SAMSUNG_HRT | ||
66 | help | 70 | help |
67 | Support for S3C2440 Samsung Mobile CPU based systems. | 71 | Support for S3C2440 Samsung Mobile CPU based systems. |
68 | 72 | ||
@@ -72,6 +76,7 @@ config CPU_S3C2442 | |||
72 | select CPU_LLSERIAL_S3C2440 | 76 | select CPU_LLSERIAL_S3C2440 |
73 | select S3C2410_CLOCK | 77 | select S3C2410_CLOCK |
74 | select S3C2410_PM if PM | 78 | select S3C2410_PM if PM |
79 | select SAMSUNG_HRT | ||
75 | help | 80 | help |
76 | Support for S3C2442 Samsung Mobile CPU based systems. | 81 | Support for S3C2442 Samsung Mobile CPU based systems. |
77 | 82 | ||
@@ -87,6 +92,7 @@ config CPU_S3C2443 | |||
87 | select S3C2443_COMMON | 92 | select S3C2443_COMMON |
88 | select S3C2443_DMA if S3C24XX_DMA | 93 | select S3C2443_DMA if S3C24XX_DMA |
89 | select SAMSUNG_CLKSRC | 94 | select SAMSUNG_CLKSRC |
95 | select SAMSUNG_HRT | ||
90 | help | 96 | help |
91 | Support for the S3C2443 SoC from the S3C24XX line | 97 | Support for the S3C2443 SoC from the S3C24XX line |
92 | 98 | ||
diff --git a/arch/arm/mach-s3c24xx/mach-amlm5900.c b/arch/arm/mach-s3c24xx/mach-amlm5900.c index 0e0279e79150..432144cb54ae 100644 --- a/arch/arm/mach-s3c24xx/mach-amlm5900.c +++ b/arch/arm/mach-s3c24xx/mach-amlm5900.c | |||
@@ -63,6 +63,8 @@ | |||
63 | #include <linux/mtd/map.h> | 63 | #include <linux/mtd/map.h> |
64 | #include <linux/mtd/physmap.h> | 64 | #include <linux/mtd/physmap.h> |
65 | 65 | ||
66 | #include <plat/samsung-time.h> | ||
67 | |||
66 | #include "common.h" | 68 | #include "common.h" |
67 | 69 | ||
68 | static struct resource amlm5900_nor_resource = | 70 | static struct resource amlm5900_nor_resource = |
@@ -160,6 +162,7 @@ static void __init amlm5900_map_io(void) | |||
160 | s3c24xx_init_io(amlm5900_iodesc, ARRAY_SIZE(amlm5900_iodesc)); | 162 | s3c24xx_init_io(amlm5900_iodesc, ARRAY_SIZE(amlm5900_iodesc)); |
161 | s3c24xx_init_clocks(0); | 163 | s3c24xx_init_clocks(0); |
162 | s3c24xx_init_uarts(amlm5900_uartcfgs, ARRAY_SIZE(amlm5900_uartcfgs)); | 164 | s3c24xx_init_uarts(amlm5900_uartcfgs, ARRAY_SIZE(amlm5900_uartcfgs)); |
165 | samsung_set_timer_source(SAMSUNG_PWM3, SAMSUNG_PWM4); | ||
163 | } | 166 | } |
164 | 167 | ||
165 | #ifdef CONFIG_FB_S3C2410 | 168 | #ifdef CONFIG_FB_S3C2410 |
@@ -237,6 +240,6 @@ MACHINE_START(AML_M5900, "AML_M5900") | |||
237 | .map_io = amlm5900_map_io, | 240 | .map_io = amlm5900_map_io, |
238 | .init_irq = s3c24xx_init_irq, | 241 | .init_irq = s3c24xx_init_irq, |
239 | .init_machine = amlm5900_init, | 242 | .init_machine = amlm5900_init, |
240 | .init_time = s3c24xx_timer_init, | 243 | .init_time = samsung_timer_init, |
241 | .restart = s3c2410_restart, | 244 | .restart = s3c2410_restart, |
242 | MACHINE_END | 245 | MACHINE_END |
diff --git a/arch/arm/mach-s3c24xx/mach-anubis.c b/arch/arm/mach-s3c24xx/mach-anubis.c index bb595f15ce36..24f1a04ccc88 100644 --- a/arch/arm/mach-s3c24xx/mach-anubis.c +++ b/arch/arm/mach-s3c24xx/mach-anubis.c | |||
@@ -49,6 +49,7 @@ | |||
49 | #include <plat/devs.h> | 49 | #include <plat/devs.h> |
50 | #include <plat/cpu.h> | 50 | #include <plat/cpu.h> |
51 | #include <linux/platform_data/asoc-s3c24xx_simtec.h> | 51 | #include <linux/platform_data/asoc-s3c24xx_simtec.h> |
52 | #include <plat/samsung-time.h> | ||
52 | 53 | ||
53 | #include "anubis.h" | 54 | #include "anubis.h" |
54 | #include "common.h" | 55 | #include "common.h" |
@@ -410,6 +411,7 @@ static void __init anubis_map_io(void) | |||
410 | s3c24xx_init_io(anubis_iodesc, ARRAY_SIZE(anubis_iodesc)); | 411 | s3c24xx_init_io(anubis_iodesc, ARRAY_SIZE(anubis_iodesc)); |
411 | s3c24xx_init_clocks(0); | 412 | s3c24xx_init_clocks(0); |
412 | s3c24xx_init_uarts(anubis_uartcfgs, ARRAY_SIZE(anubis_uartcfgs)); | 413 | s3c24xx_init_uarts(anubis_uartcfgs, ARRAY_SIZE(anubis_uartcfgs)); |
414 | samsung_set_timer_source(SAMSUNG_PWM3, SAMSUNG_PWM4); | ||
413 | 415 | ||
414 | /* check for the newer revision boards with large page nand */ | 416 | /* check for the newer revision boards with large page nand */ |
415 | 417 | ||
@@ -444,6 +446,6 @@ MACHINE_START(ANUBIS, "Simtec-Anubis") | |||
444 | .map_io = anubis_map_io, | 446 | .map_io = anubis_map_io, |
445 | .init_machine = anubis_init, | 447 | .init_machine = anubis_init, |
446 | .init_irq = s3c24xx_init_irq, | 448 | .init_irq = s3c24xx_init_irq, |
447 | .init_time = s3c24xx_timer_init, | 449 | .init_time = samsung_timer_init, |
448 | .restart = s3c244x_restart, | 450 | .restart = s3c244x_restart, |
449 | MACHINE_END | 451 | MACHINE_END |
diff --git a/arch/arm/mach-s3c24xx/mach-at2440evb.c b/arch/arm/mach-s3c24xx/mach-at2440evb.c index b4bc60c78ebb..2bf6c8c24317 100644 --- a/arch/arm/mach-s3c24xx/mach-at2440evb.c +++ b/arch/arm/mach-s3c24xx/mach-at2440evb.c | |||
@@ -48,6 +48,7 @@ | |||
48 | #include <plat/devs.h> | 48 | #include <plat/devs.h> |
49 | #include <plat/cpu.h> | 49 | #include <plat/cpu.h> |
50 | #include <linux/platform_data/mmc-s3cmci.h> | 50 | #include <linux/platform_data/mmc-s3cmci.h> |
51 | #include <plat/samsung-time.h> | ||
51 | 52 | ||
52 | #include "common.h" | 53 | #include "common.h" |
53 | 54 | ||
@@ -192,6 +193,7 @@ static void __init at2440evb_map_io(void) | |||
192 | s3c24xx_init_io(at2440evb_iodesc, ARRAY_SIZE(at2440evb_iodesc)); | 193 | s3c24xx_init_io(at2440evb_iodesc, ARRAY_SIZE(at2440evb_iodesc)); |
193 | s3c24xx_init_clocks(16934400); | 194 | s3c24xx_init_clocks(16934400); |
194 | s3c24xx_init_uarts(at2440evb_uartcfgs, ARRAY_SIZE(at2440evb_uartcfgs)); | 195 | s3c24xx_init_uarts(at2440evb_uartcfgs, ARRAY_SIZE(at2440evb_uartcfgs)); |
196 | samsung_set_timer_source(SAMSUNG_PWM3, SAMSUNG_PWM4); | ||
195 | } | 197 | } |
196 | 198 | ||
197 | static void __init at2440evb_init(void) | 199 | static void __init at2440evb_init(void) |
@@ -210,6 +212,6 @@ MACHINE_START(AT2440EVB, "AT2440EVB") | |||
210 | .map_io = at2440evb_map_io, | 212 | .map_io = at2440evb_map_io, |
211 | .init_machine = at2440evb_init, | 213 | .init_machine = at2440evb_init, |
212 | .init_irq = s3c24xx_init_irq, | 214 | .init_irq = s3c24xx_init_irq, |
213 | .init_time = s3c24xx_timer_init, | 215 | .init_time = samsung_timer_init, |
214 | .restart = s3c244x_restart, | 216 | .restart = s3c244x_restart, |
215 | MACHINE_END | 217 | MACHINE_END |
diff --git a/arch/arm/mach-s3c24xx/mach-bast.c b/arch/arm/mach-s3c24xx/mach-bast.c index ca6618081041..eabe2db42ef6 100644 --- a/arch/arm/mach-s3c24xx/mach-bast.c +++ b/arch/arm/mach-s3c24xx/mach-bast.c | |||
@@ -55,6 +55,7 @@ | |||
55 | #include <plat/devs.h> | 55 | #include <plat/devs.h> |
56 | #include <plat/gpio-cfg.h> | 56 | #include <plat/gpio-cfg.h> |
57 | #include <plat/regs-serial.h> | 57 | #include <plat/regs-serial.h> |
58 | #include <plat/samsung-time.h> | ||
58 | 59 | ||
59 | #include "bast.h" | 60 | #include "bast.h" |
60 | #include "common.h" | 61 | #include "common.h" |
@@ -576,6 +577,7 @@ static void __init bast_map_io(void) | |||
576 | s3c24xx_init_io(bast_iodesc, ARRAY_SIZE(bast_iodesc)); | 577 | s3c24xx_init_io(bast_iodesc, ARRAY_SIZE(bast_iodesc)); |
577 | s3c24xx_init_clocks(0); | 578 | s3c24xx_init_clocks(0); |
578 | s3c24xx_init_uarts(bast_uartcfgs, ARRAY_SIZE(bast_uartcfgs)); | 579 | s3c24xx_init_uarts(bast_uartcfgs, ARRAY_SIZE(bast_uartcfgs)); |
580 | samsung_set_timer_source(SAMSUNG_PWM3, SAMSUNG_PWM4); | ||
579 | } | 581 | } |
580 | 582 | ||
581 | static void __init bast_init(void) | 583 | static void __init bast_init(void) |
@@ -605,6 +607,6 @@ MACHINE_START(BAST, "Simtec-BAST") | |||
605 | .map_io = bast_map_io, | 607 | .map_io = bast_map_io, |
606 | .init_irq = s3c24xx_init_irq, | 608 | .init_irq = s3c24xx_init_irq, |
607 | .init_machine = bast_init, | 609 | .init_machine = bast_init, |
608 | .init_time = s3c24xx_timer_init, | 610 | .init_time = samsung_timer_init, |
609 | .restart = s3c2410_restart, | 611 | .restart = s3c2410_restart, |
610 | MACHINE_END | 612 | MACHINE_END |
diff --git a/arch/arm/mach-s3c24xx/mach-gta02.c b/arch/arm/mach-s3c24xx/mach-gta02.c index a25e8c5a7b4c..84a750d46d4b 100644 --- a/arch/arm/mach-s3c24xx/mach-gta02.c +++ b/arch/arm/mach-s3c24xx/mach-gta02.c | |||
@@ -81,6 +81,7 @@ | |||
81 | #include <plat/gpio-cfg.h> | 81 | #include <plat/gpio-cfg.h> |
82 | #include <plat/pm.h> | 82 | #include <plat/pm.h> |
83 | #include <plat/regs-serial.h> | 83 | #include <plat/regs-serial.h> |
84 | #include <plat/samsung-time.h> | ||
84 | 85 | ||
85 | #include "common.h" | 86 | #include "common.h" |
86 | #include "gta02.h" | 87 | #include "gta02.h" |
@@ -501,6 +502,7 @@ static void __init gta02_map_io(void) | |||
501 | s3c24xx_init_io(gta02_iodesc, ARRAY_SIZE(gta02_iodesc)); | 502 | s3c24xx_init_io(gta02_iodesc, ARRAY_SIZE(gta02_iodesc)); |
502 | s3c24xx_init_clocks(12000000); | 503 | s3c24xx_init_clocks(12000000); |
503 | s3c24xx_init_uarts(gta02_uartcfgs, ARRAY_SIZE(gta02_uartcfgs)); | 504 | s3c24xx_init_uarts(gta02_uartcfgs, ARRAY_SIZE(gta02_uartcfgs)); |
505 | samsung_set_timer_source(SAMSUNG_PWM3, SAMSUNG_PWM4); | ||
504 | } | 506 | } |
505 | 507 | ||
506 | 508 | ||
@@ -589,6 +591,6 @@ MACHINE_START(NEO1973_GTA02, "GTA02") | |||
589 | .map_io = gta02_map_io, | 591 | .map_io = gta02_map_io, |
590 | .init_irq = s3c24xx_init_irq, | 592 | .init_irq = s3c24xx_init_irq, |
591 | .init_machine = gta02_machine_init, | 593 | .init_machine = gta02_machine_init, |
592 | .init_time = s3c24xx_timer_init, | 594 | .init_time = samsung_timer_init, |
593 | .restart = s3c244x_restart, | 595 | .restart = s3c244x_restart, |
594 | MACHINE_END | 596 | MACHINE_END |
diff --git a/arch/arm/mach-s3c24xx/mach-h1940.c b/arch/arm/mach-s3c24xx/mach-h1940.c index 79bc0830d740..8dd660102846 100644 --- a/arch/arm/mach-s3c24xx/mach-h1940.c +++ b/arch/arm/mach-s3c24xx/mach-h1940.c | |||
@@ -62,7 +62,7 @@ | |||
62 | #include <plat/pll.h> | 62 | #include <plat/pll.h> |
63 | #include <plat/pm.h> | 63 | #include <plat/pm.h> |
64 | #include <plat/regs-serial.h> | 64 | #include <plat/regs-serial.h> |
65 | 65 | #include <plat/samsung-time.h> | |
66 | 66 | ||
67 | #include "common.h" | 67 | #include "common.h" |
68 | #include "h1940.h" | 68 | #include "h1940.h" |
@@ -646,6 +646,7 @@ static void __init h1940_map_io(void) | |||
646 | s3c24xx_init_io(h1940_iodesc, ARRAY_SIZE(h1940_iodesc)); | 646 | s3c24xx_init_io(h1940_iodesc, ARRAY_SIZE(h1940_iodesc)); |
647 | s3c24xx_init_clocks(0); | 647 | s3c24xx_init_clocks(0); |
648 | s3c24xx_init_uarts(h1940_uartcfgs, ARRAY_SIZE(h1940_uartcfgs)); | 648 | s3c24xx_init_uarts(h1940_uartcfgs, ARRAY_SIZE(h1940_uartcfgs)); |
649 | samsung_set_timer_source(SAMSUNG_PWM3, SAMSUNG_PWM4); | ||
649 | 650 | ||
650 | /* setup PM */ | 651 | /* setup PM */ |
651 | 652 | ||
@@ -741,6 +742,6 @@ MACHINE_START(H1940, "IPAQ-H1940") | |||
741 | .reserve = h1940_reserve, | 742 | .reserve = h1940_reserve, |
742 | .init_irq = h1940_init_irq, | 743 | .init_irq = h1940_init_irq, |
743 | .init_machine = h1940_init, | 744 | .init_machine = h1940_init, |
744 | .init_time = s3c24xx_timer_init, | 745 | .init_time = samsung_timer_init, |
745 | .restart = s3c2410_restart, | 746 | .restart = s3c2410_restart, |
746 | MACHINE_END | 747 | MACHINE_END |
diff --git a/arch/arm/mach-s3c24xx/mach-jive.c b/arch/arm/mach-s3c24xx/mach-jive.c index ca08d7df07f7..aade943288c7 100644 --- a/arch/arm/mach-s3c24xx/mach-jive.c +++ b/arch/arm/mach-s3c24xx/mach-jive.c | |||
@@ -52,6 +52,7 @@ | |||
52 | #include <plat/cpu.h> | 52 | #include <plat/cpu.h> |
53 | #include <plat/pm.h> | 53 | #include <plat/pm.h> |
54 | #include <linux/platform_data/usb-s3c2410_udc.h> | 54 | #include <linux/platform_data/usb-s3c2410_udc.h> |
55 | #include <plat/samsung-time.h> | ||
55 | 56 | ||
56 | #include "common.h" | 57 | #include "common.h" |
57 | #include "s3c2412-power.h" | 58 | #include "s3c2412-power.h" |
@@ -506,6 +507,7 @@ static void __init jive_map_io(void) | |||
506 | s3c24xx_init_io(jive_iodesc, ARRAY_SIZE(jive_iodesc)); | 507 | s3c24xx_init_io(jive_iodesc, ARRAY_SIZE(jive_iodesc)); |
507 | s3c24xx_init_clocks(12000000); | 508 | s3c24xx_init_clocks(12000000); |
508 | s3c24xx_init_uarts(jive_uartcfgs, ARRAY_SIZE(jive_uartcfgs)); | 509 | s3c24xx_init_uarts(jive_uartcfgs, ARRAY_SIZE(jive_uartcfgs)); |
510 | samsung_set_timer_source(SAMSUNG_PWM3, SAMSUNG_PWM4); | ||
509 | } | 511 | } |
510 | 512 | ||
511 | static void jive_power_off(void) | 513 | static void jive_power_off(void) |
@@ -661,6 +663,6 @@ MACHINE_START(JIVE, "JIVE") | |||
661 | .init_irq = s3c24xx_init_irq, | 663 | .init_irq = s3c24xx_init_irq, |
662 | .map_io = jive_map_io, | 664 | .map_io = jive_map_io, |
663 | .init_machine = jive_machine_init, | 665 | .init_machine = jive_machine_init, |
664 | .init_time = s3c24xx_timer_init, | 666 | .init_time = samsung_timer_init, |
665 | .restart = s3c2412_restart, | 667 | .restart = s3c2412_restart, |
666 | MACHINE_END | 668 | MACHINE_END |
diff --git a/arch/arm/mach-s3c24xx/mach-mini2440.c b/arch/arm/mach-s3c24xx/mach-mini2440.c index 2865e5919f2c..29f106cb370e 100644 --- a/arch/arm/mach-s3c24xx/mach-mini2440.c +++ b/arch/arm/mach-s3c24xx/mach-mini2440.c | |||
@@ -56,6 +56,7 @@ | |||
56 | #include <plat/clock.h> | 56 | #include <plat/clock.h> |
57 | #include <plat/devs.h> | 57 | #include <plat/devs.h> |
58 | #include <plat/cpu.h> | 58 | #include <plat/cpu.h> |
59 | #include <plat/samsung-time.h> | ||
59 | 60 | ||
60 | #include <sound/s3c24xx_uda134x.h> | 61 | #include <sound/s3c24xx_uda134x.h> |
61 | 62 | ||
@@ -525,6 +526,7 @@ static void __init mini2440_map_io(void) | |||
525 | s3c24xx_init_io(mini2440_iodesc, ARRAY_SIZE(mini2440_iodesc)); | 526 | s3c24xx_init_io(mini2440_iodesc, ARRAY_SIZE(mini2440_iodesc)); |
526 | s3c24xx_init_clocks(12000000); | 527 | s3c24xx_init_clocks(12000000); |
527 | s3c24xx_init_uarts(mini2440_uartcfgs, ARRAY_SIZE(mini2440_uartcfgs)); | 528 | s3c24xx_init_uarts(mini2440_uartcfgs, ARRAY_SIZE(mini2440_uartcfgs)); |
529 | samsung_set_timer_source(SAMSUNG_PWM3, SAMSUNG_PWM4); | ||
528 | } | 530 | } |
529 | 531 | ||
530 | /* | 532 | /* |
@@ -687,6 +689,6 @@ MACHINE_START(MINI2440, "MINI2440") | |||
687 | .map_io = mini2440_map_io, | 689 | .map_io = mini2440_map_io, |
688 | .init_machine = mini2440_init, | 690 | .init_machine = mini2440_init, |
689 | .init_irq = s3c24xx_init_irq, | 691 | .init_irq = s3c24xx_init_irq, |
690 | .init_time = s3c24xx_timer_init, | 692 | .init_time = samsung_timer_init, |
691 | .restart = s3c244x_restart, | 693 | .restart = s3c244x_restart, |
692 | MACHINE_END | 694 | MACHINE_END |
diff --git a/arch/arm/mach-s3c24xx/mach-n30.c b/arch/arm/mach-s3c24xx/mach-n30.c index 8017c0fc1729..73a690f431e6 100644 --- a/arch/arm/mach-s3c24xx/mach-n30.c +++ b/arch/arm/mach-s3c24xx/mach-n30.c | |||
@@ -49,6 +49,7 @@ | |||
49 | #include <plat/devs.h> | 49 | #include <plat/devs.h> |
50 | #include <linux/platform_data/mmc-s3cmci.h> | 50 | #include <linux/platform_data/mmc-s3cmci.h> |
51 | #include <linux/platform_data/usb-s3c2410_udc.h> | 51 | #include <linux/platform_data/usb-s3c2410_udc.h> |
52 | #include <plat/samsung-time.h> | ||
52 | 53 | ||
53 | #include "common.h" | 54 | #include "common.h" |
54 | 55 | ||
@@ -535,6 +536,7 @@ static void __init n30_map_io(void) | |||
535 | n30_hwinit(); | 536 | n30_hwinit(); |
536 | s3c24xx_init_clocks(0); | 537 | s3c24xx_init_clocks(0); |
537 | s3c24xx_init_uarts(n30_uartcfgs, ARRAY_SIZE(n30_uartcfgs)); | 538 | s3c24xx_init_uarts(n30_uartcfgs, ARRAY_SIZE(n30_uartcfgs)); |
539 | samsung_set_timer_source(SAMSUNG_PWM3, SAMSUNG_PWM4); | ||
538 | } | 540 | } |
539 | 541 | ||
540 | /* GPB3 is the line that controls the pull-up for the USB D+ line */ | 542 | /* GPB3 is the line that controls the pull-up for the USB D+ line */ |
@@ -588,7 +590,7 @@ MACHINE_START(N30, "Acer-N30") | |||
588 | Ben Dooks <ben-linux@fluff.org> | 590 | Ben Dooks <ben-linux@fluff.org> |
589 | */ | 591 | */ |
590 | .atag_offset = 0x100, | 592 | .atag_offset = 0x100, |
591 | .init_time = s3c24xx_timer_init, | 593 | .init_time = samsung_timer_init, |
592 | .init_machine = n30_init, | 594 | .init_machine = n30_init, |
593 | .init_irq = s3c24xx_init_irq, | 595 | .init_irq = s3c24xx_init_irq, |
594 | .map_io = n30_map_io, | 596 | .map_io = n30_map_io, |
@@ -599,7 +601,7 @@ MACHINE_START(N35, "Acer-N35") | |||
599 | /* Maintainer: Christer Weinigel <christer@weinigel.se> | 601 | /* Maintainer: Christer Weinigel <christer@weinigel.se> |
600 | */ | 602 | */ |
601 | .atag_offset = 0x100, | 603 | .atag_offset = 0x100, |
602 | .init_time = s3c24xx_timer_init, | 604 | .init_time = samsung_timer_init, |
603 | .init_machine = n30_init, | 605 | .init_machine = n30_init, |
604 | .init_irq = s3c24xx_init_irq, | 606 | .init_irq = s3c24xx_init_irq, |
605 | .map_io = n30_map_io, | 607 | .map_io = n30_map_io, |
diff --git a/arch/arm/mach-s3c24xx/mach-nexcoder.c b/arch/arm/mach-s3c24xx/mach-nexcoder.c index 144b9f80c4a5..5c826d10a66d 100644 --- a/arch/arm/mach-s3c24xx/mach-nexcoder.c +++ b/arch/arm/mach-s3c24xx/mach-nexcoder.c | |||
@@ -44,6 +44,7 @@ | |||
44 | #include <plat/clock.h> | 44 | #include <plat/clock.h> |
45 | #include <plat/devs.h> | 45 | #include <plat/devs.h> |
46 | #include <plat/cpu.h> | 46 | #include <plat/cpu.h> |
47 | #include <plat/samsung-time.h> | ||
47 | 48 | ||
48 | #include "common.h" | 49 | #include "common.h" |
49 | 50 | ||
@@ -135,6 +136,7 @@ static void __init nexcoder_map_io(void) | |||
135 | s3c24xx_init_io(nexcoder_iodesc, ARRAY_SIZE(nexcoder_iodesc)); | 136 | s3c24xx_init_io(nexcoder_iodesc, ARRAY_SIZE(nexcoder_iodesc)); |
136 | s3c24xx_init_clocks(0); | 137 | s3c24xx_init_clocks(0); |
137 | s3c24xx_init_uarts(nexcoder_uartcfgs, ARRAY_SIZE(nexcoder_uartcfgs)); | 138 | s3c24xx_init_uarts(nexcoder_uartcfgs, ARRAY_SIZE(nexcoder_uartcfgs)); |
139 | samsung_set_timer_source(SAMSUNG_PWM3, SAMSUNG_PWM4); | ||
138 | 140 | ||
139 | nexcoder_sensorboard_init(); | 141 | nexcoder_sensorboard_init(); |
140 | } | 142 | } |
@@ -151,6 +153,6 @@ MACHINE_START(NEXCODER_2440, "NexVision - Nexcoder 2440") | |||
151 | .map_io = nexcoder_map_io, | 153 | .map_io = nexcoder_map_io, |
152 | .init_machine = nexcoder_init, | 154 | .init_machine = nexcoder_init, |
153 | .init_irq = s3c24xx_init_irq, | 155 | .init_irq = s3c24xx_init_irq, |
154 | .init_time = s3c24xx_timer_init, | 156 | .init_time = samsung_timer_init, |
155 | .restart = s3c244x_restart, | 157 | .restart = s3c244x_restart, |
156 | MACHINE_END | 158 | MACHINE_END |
diff --git a/arch/arm/mach-s3c24xx/mach-osiris.c b/arch/arm/mach-s3c24xx/mach-osiris.c index ae2cbdf3e3ca..4c90ffda4e11 100644 --- a/arch/arm/mach-s3c24xx/mach-osiris.c +++ b/arch/arm/mach-s3c24xx/mach-osiris.c | |||
@@ -45,6 +45,7 @@ | |||
45 | #include <plat/devs.h> | 45 | #include <plat/devs.h> |
46 | #include <plat/gpio-cfg.h> | 46 | #include <plat/gpio-cfg.h> |
47 | #include <plat/regs-serial.h> | 47 | #include <plat/regs-serial.h> |
48 | #include <plat/samsung-time.h> | ||
48 | 49 | ||
49 | #include <mach/hardware.h> | 50 | #include <mach/hardware.h> |
50 | #include <mach/regs-gpio.h> | 51 | #include <mach/regs-gpio.h> |
@@ -384,6 +385,7 @@ static void __init osiris_map_io(void) | |||
384 | s3c24xx_init_io(osiris_iodesc, ARRAY_SIZE(osiris_iodesc)); | 385 | s3c24xx_init_io(osiris_iodesc, ARRAY_SIZE(osiris_iodesc)); |
385 | s3c24xx_init_clocks(0); | 386 | s3c24xx_init_clocks(0); |
386 | s3c24xx_init_uarts(osiris_uartcfgs, ARRAY_SIZE(osiris_uartcfgs)); | 387 | s3c24xx_init_uarts(osiris_uartcfgs, ARRAY_SIZE(osiris_uartcfgs)); |
388 | samsung_set_timer_source(SAMSUNG_PWM3, SAMSUNG_PWM4); | ||
387 | 389 | ||
388 | /* check for the newer revision boards with large page nand */ | 390 | /* check for the newer revision boards with large page nand */ |
389 | 391 | ||
@@ -426,6 +428,6 @@ MACHINE_START(OSIRIS, "Simtec-OSIRIS") | |||
426 | .map_io = osiris_map_io, | 428 | .map_io = osiris_map_io, |
427 | .init_irq = s3c24xx_init_irq, | 429 | .init_irq = s3c24xx_init_irq, |
428 | .init_machine = osiris_init, | 430 | .init_machine = osiris_init, |
429 | .init_time = s3c24xx_timer_init, | 431 | .init_time = samsung_timer_init, |
430 | .restart = s3c244x_restart, | 432 | .restart = s3c244x_restart, |
431 | MACHINE_END | 433 | MACHINE_END |
diff --git a/arch/arm/mach-s3c24xx/mach-otom.c b/arch/arm/mach-s3c24xx/mach-otom.c index deb0ace585b0..7b8670746b6a 100644 --- a/arch/arm/mach-s3c24xx/mach-otom.c +++ b/arch/arm/mach-s3c24xx/mach-otom.c | |||
@@ -33,6 +33,7 @@ | |||
33 | #include <plat/cpu.h> | 33 | #include <plat/cpu.h> |
34 | #include <plat/devs.h> | 34 | #include <plat/devs.h> |
35 | #include <plat/regs-serial.h> | 35 | #include <plat/regs-serial.h> |
36 | #include <plat/samsung-time.h> | ||
36 | 37 | ||
37 | #include "common.h" | 38 | #include "common.h" |
38 | #include "otom.h" | 39 | #include "otom.h" |
@@ -101,6 +102,7 @@ static void __init otom11_map_io(void) | |||
101 | s3c24xx_init_io(otom11_iodesc, ARRAY_SIZE(otom11_iodesc)); | 102 | s3c24xx_init_io(otom11_iodesc, ARRAY_SIZE(otom11_iodesc)); |
102 | s3c24xx_init_clocks(0); | 103 | s3c24xx_init_clocks(0); |
103 | s3c24xx_init_uarts(otom11_uartcfgs, ARRAY_SIZE(otom11_uartcfgs)); | 104 | s3c24xx_init_uarts(otom11_uartcfgs, ARRAY_SIZE(otom11_uartcfgs)); |
105 | samsung_set_timer_source(SAMSUNG_PWM3, SAMSUNG_PWM4); | ||
104 | } | 106 | } |
105 | 107 | ||
106 | static void __init otom11_init(void) | 108 | static void __init otom11_init(void) |
@@ -115,6 +117,6 @@ MACHINE_START(OTOM, "Nex Vision - Otom 1.1") | |||
115 | .map_io = otom11_map_io, | 117 | .map_io = otom11_map_io, |
116 | .init_machine = otom11_init, | 118 | .init_machine = otom11_init, |
117 | .init_irq = s3c24xx_init_irq, | 119 | .init_irq = s3c24xx_init_irq, |
118 | .init_time = s3c24xx_timer_init, | 120 | .init_time = samsung_timer_init, |
119 | .restart = s3c2410_restart, | 121 | .restart = s3c2410_restart, |
120 | MACHINE_END | 122 | MACHINE_END |
diff --git a/arch/arm/mach-s3c24xx/mach-qt2410.c b/arch/arm/mach-s3c24xx/mach-qt2410.c index 84c541602661..71cf29b12d1f 100644 --- a/arch/arm/mach-s3c24xx/mach-qt2410.c +++ b/arch/arm/mach-s3c24xx/mach-qt2410.c | |||
@@ -59,6 +59,7 @@ | |||
59 | #include <plat/devs.h> | 59 | #include <plat/devs.h> |
60 | #include <plat/cpu.h> | 60 | #include <plat/cpu.h> |
61 | #include <plat/pm.h> | 61 | #include <plat/pm.h> |
62 | #include <plat/samsung-time.h> | ||
62 | 63 | ||
63 | #include "common.h" | 64 | #include "common.h" |
64 | #include "common-smdk.h" | 65 | #include "common-smdk.h" |
@@ -304,6 +305,7 @@ static void __init qt2410_map_io(void) | |||
304 | s3c24xx_init_io(qt2410_iodesc, ARRAY_SIZE(qt2410_iodesc)); | 305 | s3c24xx_init_io(qt2410_iodesc, ARRAY_SIZE(qt2410_iodesc)); |
305 | s3c24xx_init_clocks(12*1000*1000); | 306 | s3c24xx_init_clocks(12*1000*1000); |
306 | s3c24xx_init_uarts(smdk2410_uartcfgs, ARRAY_SIZE(smdk2410_uartcfgs)); | 307 | s3c24xx_init_uarts(smdk2410_uartcfgs, ARRAY_SIZE(smdk2410_uartcfgs)); |
308 | samsung_set_timer_source(SAMSUNG_PWM3, SAMSUNG_PWM4); | ||
307 | } | 309 | } |
308 | 310 | ||
309 | static void __init qt2410_machine_init(void) | 311 | static void __init qt2410_machine_init(void) |
@@ -343,6 +345,6 @@ MACHINE_START(QT2410, "QT2410") | |||
343 | .map_io = qt2410_map_io, | 345 | .map_io = qt2410_map_io, |
344 | .init_irq = s3c24xx_init_irq, | 346 | .init_irq = s3c24xx_init_irq, |
345 | .init_machine = qt2410_machine_init, | 347 | .init_machine = qt2410_machine_init, |
346 | .init_time = s3c24xx_timer_init, | 348 | .init_time = samsung_timer_init, |
347 | .restart = s3c2410_restart, | 349 | .restart = s3c2410_restart, |
348 | MACHINE_END | 350 | MACHINE_END |
diff --git a/arch/arm/mach-s3c24xx/mach-rx1950.c b/arch/arm/mach-s3c24xx/mach-rx1950.c index 1f9ba2ae5288..799af43b4e6a 100644 --- a/arch/arm/mach-s3c24xx/mach-rx1950.c +++ b/arch/arm/mach-s3c24xx/mach-rx1950.c | |||
@@ -58,6 +58,7 @@ | |||
58 | #include <plat/pm.h> | 58 | #include <plat/pm.h> |
59 | #include <plat/regs-iic.h> | 59 | #include <plat/regs-iic.h> |
60 | #include <plat/regs-serial.h> | 60 | #include <plat/regs-serial.h> |
61 | #include <plat/samsung-time.h> | ||
61 | 62 | ||
62 | #include "common.h" | 63 | #include "common.h" |
63 | #include "h1940.h" | 64 | #include "h1940.h" |
@@ -741,6 +742,7 @@ static void __init rx1950_map_io(void) | |||
741 | s3c24xx_init_io(rx1950_iodesc, ARRAY_SIZE(rx1950_iodesc)); | 742 | s3c24xx_init_io(rx1950_iodesc, ARRAY_SIZE(rx1950_iodesc)); |
742 | s3c24xx_init_clocks(16934000); | 743 | s3c24xx_init_clocks(16934000); |
743 | s3c24xx_init_uarts(rx1950_uartcfgs, ARRAY_SIZE(rx1950_uartcfgs)); | 744 | s3c24xx_init_uarts(rx1950_uartcfgs, ARRAY_SIZE(rx1950_uartcfgs)); |
745 | samsung_set_timer_source(SAMSUNG_PWM3, SAMSUNG_PWM4); | ||
744 | 746 | ||
745 | /* setup PM */ | 747 | /* setup PM */ |
746 | 748 | ||
@@ -813,6 +815,6 @@ MACHINE_START(RX1950, "HP iPAQ RX1950") | |||
813 | .reserve = rx1950_reserve, | 815 | .reserve = rx1950_reserve, |
814 | .init_irq = s3c24xx_init_irq, | 816 | .init_irq = s3c24xx_init_irq, |
815 | .init_machine = rx1950_init_machine, | 817 | .init_machine = rx1950_init_machine, |
816 | .init_time = s3c24xx_timer_init, | 818 | .init_time = samsung_timer_init, |
817 | .restart = s3c244x_restart, | 819 | .restart = s3c244x_restart, |
818 | MACHINE_END | 820 | MACHINE_END |
diff --git a/arch/arm/mach-s3c24xx/mach-rx3715.c b/arch/arm/mach-s3c24xx/mach-rx3715.c index f20418a2fb1b..0a3c96452f0f 100644 --- a/arch/arm/mach-s3c24xx/mach-rx3715.c +++ b/arch/arm/mach-s3c24xx/mach-rx3715.c | |||
@@ -49,6 +49,7 @@ | |||
49 | #include <plat/devs.h> | 49 | #include <plat/devs.h> |
50 | #include <plat/pm.h> | 50 | #include <plat/pm.h> |
51 | #include <plat/regs-serial.h> | 51 | #include <plat/regs-serial.h> |
52 | #include <plat/samsung-time.h> | ||
52 | 53 | ||
53 | #include "common.h" | 54 | #include "common.h" |
54 | #include "h1940.h" | 55 | #include "h1940.h" |
@@ -179,6 +180,7 @@ static void __init rx3715_map_io(void) | |||
179 | s3c24xx_init_io(rx3715_iodesc, ARRAY_SIZE(rx3715_iodesc)); | 180 | s3c24xx_init_io(rx3715_iodesc, ARRAY_SIZE(rx3715_iodesc)); |
180 | s3c24xx_init_clocks(16934000); | 181 | s3c24xx_init_clocks(16934000); |
181 | s3c24xx_init_uarts(rx3715_uartcfgs, ARRAY_SIZE(rx3715_uartcfgs)); | 182 | s3c24xx_init_uarts(rx3715_uartcfgs, ARRAY_SIZE(rx3715_uartcfgs)); |
183 | samsung_set_timer_source(SAMSUNG_PWM3, SAMSUNG_PWM4); | ||
182 | } | 184 | } |
183 | 185 | ||
184 | /* H1940 and RX3715 need to reserve this for suspend */ | 186 | /* H1940 and RX3715 need to reserve this for suspend */ |
@@ -212,6 +214,6 @@ MACHINE_START(RX3715, "IPAQ-RX3715") | |||
212 | .reserve = rx3715_reserve, | 214 | .reserve = rx3715_reserve, |
213 | .init_irq = rx3715_init_irq, | 215 | .init_irq = rx3715_init_irq, |
214 | .init_machine = rx3715_init_machine, | 216 | .init_machine = rx3715_init_machine, |
215 | .init_time = s3c24xx_timer_init, | 217 | .init_time = samsung_timer_init, |
216 | .restart = s3c244x_restart, | 218 | .restart = s3c244x_restart, |
217 | MACHINE_END | 219 | MACHINE_END |
diff --git a/arch/arm/mach-s3c24xx/mach-smdk2410.c b/arch/arm/mach-s3c24xx/mach-smdk2410.c index cd0b1635c47e..fd96f7fc330c 100644 --- a/arch/arm/mach-s3c24xx/mach-smdk2410.c +++ b/arch/arm/mach-s3c24xx/mach-smdk2410.c | |||
@@ -51,6 +51,7 @@ | |||
51 | 51 | ||
52 | #include <plat/devs.h> | 52 | #include <plat/devs.h> |
53 | #include <plat/cpu.h> | 53 | #include <plat/cpu.h> |
54 | #include <plat/samsung-time.h> | ||
54 | 55 | ||
55 | #include "common.h" | 56 | #include "common.h" |
56 | #include "common-smdk.h" | 57 | #include "common-smdk.h" |
@@ -100,6 +101,7 @@ static void __init smdk2410_map_io(void) | |||
100 | s3c24xx_init_io(smdk2410_iodesc, ARRAY_SIZE(smdk2410_iodesc)); | 101 | s3c24xx_init_io(smdk2410_iodesc, ARRAY_SIZE(smdk2410_iodesc)); |
101 | s3c24xx_init_clocks(0); | 102 | s3c24xx_init_clocks(0); |
102 | s3c24xx_init_uarts(smdk2410_uartcfgs, ARRAY_SIZE(smdk2410_uartcfgs)); | 103 | s3c24xx_init_uarts(smdk2410_uartcfgs, ARRAY_SIZE(smdk2410_uartcfgs)); |
104 | samsung_set_timer_source(SAMSUNG_PWM3, SAMSUNG_PWM4); | ||
103 | } | 105 | } |
104 | 106 | ||
105 | static void __init smdk2410_init(void) | 107 | static void __init smdk2410_init(void) |
@@ -116,6 +118,6 @@ MACHINE_START(SMDK2410, "SMDK2410") /* @TODO: request a new identifier and switc | |||
116 | .map_io = smdk2410_map_io, | 118 | .map_io = smdk2410_map_io, |
117 | .init_irq = s3c24xx_init_irq, | 119 | .init_irq = s3c24xx_init_irq, |
118 | .init_machine = smdk2410_init, | 120 | .init_machine = smdk2410_init, |
119 | .init_time = s3c24xx_timer_init, | 121 | .init_time = samsung_timer_init, |
120 | .restart = s3c2410_restart, | 122 | .restart = s3c2410_restart, |
121 | MACHINE_END | 123 | MACHINE_END |
diff --git a/arch/arm/mach-s3c24xx/mach-smdk2413.c b/arch/arm/mach-s3c24xx/mach-smdk2413.c index 79485907950f..8e3f1d9bbb7c 100644 --- a/arch/arm/mach-s3c24xx/mach-smdk2413.c +++ b/arch/arm/mach-s3c24xx/mach-smdk2413.c | |||
@@ -44,6 +44,7 @@ | |||
44 | #include <plat/clock.h> | 44 | #include <plat/clock.h> |
45 | #include <plat/devs.h> | 45 | #include <plat/devs.h> |
46 | #include <plat/cpu.h> | 46 | #include <plat/cpu.h> |
47 | #include <plat/samsung-time.h> | ||
47 | 48 | ||
48 | #include "common.h" | 49 | #include "common.h" |
49 | #include "common-smdk.h" | 50 | #include "common-smdk.h" |
@@ -105,6 +106,7 @@ static void __init smdk2413_map_io(void) | |||
105 | s3c24xx_init_io(smdk2413_iodesc, ARRAY_SIZE(smdk2413_iodesc)); | 106 | s3c24xx_init_io(smdk2413_iodesc, ARRAY_SIZE(smdk2413_iodesc)); |
106 | s3c24xx_init_clocks(12000000); | 107 | s3c24xx_init_clocks(12000000); |
107 | s3c24xx_init_uarts(smdk2413_uartcfgs, ARRAY_SIZE(smdk2413_uartcfgs)); | 108 | s3c24xx_init_uarts(smdk2413_uartcfgs, ARRAY_SIZE(smdk2413_uartcfgs)); |
109 | samsung_set_timer_source(SAMSUNG_PWM3, SAMSUNG_PWM4); | ||
108 | } | 110 | } |
109 | 111 | ||
110 | static void __init smdk2413_machine_init(void) | 112 | static void __init smdk2413_machine_init(void) |
@@ -131,7 +133,7 @@ MACHINE_START(S3C2413, "S3C2413") | |||
131 | .init_irq = s3c24xx_init_irq, | 133 | .init_irq = s3c24xx_init_irq, |
132 | .map_io = smdk2413_map_io, | 134 | .map_io = smdk2413_map_io, |
133 | .init_machine = smdk2413_machine_init, | 135 | .init_machine = smdk2413_machine_init, |
134 | .init_time = s3c24xx_timer_init, | 136 | .init_time = samsung_timer_init, |
135 | .restart = s3c2412_restart, | 137 | .restart = s3c2412_restart, |
136 | MACHINE_END | 138 | MACHINE_END |
137 | 139 | ||
@@ -143,7 +145,7 @@ MACHINE_START(SMDK2412, "SMDK2412") | |||
143 | .init_irq = s3c24xx_init_irq, | 145 | .init_irq = s3c24xx_init_irq, |
144 | .map_io = smdk2413_map_io, | 146 | .map_io = smdk2413_map_io, |
145 | .init_machine = smdk2413_machine_init, | 147 | .init_machine = smdk2413_machine_init, |
146 | .init_time = s3c24xx_timer_init, | 148 | .init_time = samsung_timer_init, |
147 | .restart = s3c2412_restart, | 149 | .restart = s3c2412_restart, |
148 | MACHINE_END | 150 | MACHINE_END |
149 | 151 | ||
@@ -155,6 +157,6 @@ MACHINE_START(SMDK2413, "SMDK2413") | |||
155 | .init_irq = s3c24xx_init_irq, | 157 | .init_irq = s3c24xx_init_irq, |
156 | .map_io = smdk2413_map_io, | 158 | .map_io = smdk2413_map_io, |
157 | .init_machine = smdk2413_machine_init, | 159 | .init_machine = smdk2413_machine_init, |
158 | .init_time = s3c24xx_timer_init, | 160 | .init_time = samsung_timer_init, |
159 | .restart = s3c2412_restart, | 161 | .restart = s3c2412_restart, |
160 | MACHINE_END | 162 | MACHINE_END |
diff --git a/arch/arm/mach-s3c24xx/mach-smdk2416.c b/arch/arm/mach-s3c24xx/mach-smdk2416.c index 037a5da343bd..cb46847c66b4 100644 --- a/arch/arm/mach-s3c24xx/mach-smdk2416.c +++ b/arch/arm/mach-s3c24xx/mach-smdk2416.c | |||
@@ -50,6 +50,7 @@ | |||
50 | #include <plat/sdhci.h> | 50 | #include <plat/sdhci.h> |
51 | #include <linux/platform_data/usb-s3c2410_udc.h> | 51 | #include <linux/platform_data/usb-s3c2410_udc.h> |
52 | #include <linux/platform_data/s3c-hsudc.h> | 52 | #include <linux/platform_data/s3c-hsudc.h> |
53 | #include <plat/samsung-time.h> | ||
53 | 54 | ||
54 | #include <plat/fb.h> | 55 | #include <plat/fb.h> |
55 | 56 | ||
@@ -221,6 +222,7 @@ static void __init smdk2416_map_io(void) | |||
221 | s3c24xx_init_io(smdk2416_iodesc, ARRAY_SIZE(smdk2416_iodesc)); | 222 | s3c24xx_init_io(smdk2416_iodesc, ARRAY_SIZE(smdk2416_iodesc)); |
222 | s3c24xx_init_clocks(12000000); | 223 | s3c24xx_init_clocks(12000000); |
223 | s3c24xx_init_uarts(smdk2416_uartcfgs, ARRAY_SIZE(smdk2416_uartcfgs)); | 224 | s3c24xx_init_uarts(smdk2416_uartcfgs, ARRAY_SIZE(smdk2416_uartcfgs)); |
225 | samsung_set_timer_source(SAMSUNG_PWM3, SAMSUNG_PWM4); | ||
224 | } | 226 | } |
225 | 227 | ||
226 | static void __init smdk2416_machine_init(void) | 228 | static void __init smdk2416_machine_init(void) |
@@ -253,6 +255,6 @@ MACHINE_START(SMDK2416, "SMDK2416") | |||
253 | .init_irq = s3c2416_init_irq, | 255 | .init_irq = s3c2416_init_irq, |
254 | .map_io = smdk2416_map_io, | 256 | .map_io = smdk2416_map_io, |
255 | .init_machine = smdk2416_machine_init, | 257 | .init_machine = smdk2416_machine_init, |
256 | .init_time = s3c24xx_timer_init, | 258 | .init_time = samsung_timer_init, |
257 | .restart = s3c2416_restart, | 259 | .restart = s3c2416_restart, |
258 | MACHINE_END | 260 | MACHINE_END |
diff --git a/arch/arm/mach-s3c24xx/mach-smdk2440.c b/arch/arm/mach-s3c24xx/mach-smdk2440.c index 29d31314e23c..f56cb08e6d1c 100644 --- a/arch/arm/mach-s3c24xx/mach-smdk2440.c +++ b/arch/arm/mach-s3c24xx/mach-smdk2440.c | |||
@@ -41,6 +41,7 @@ | |||
41 | #include <plat/clock.h> | 41 | #include <plat/clock.h> |
42 | #include <plat/devs.h> | 42 | #include <plat/devs.h> |
43 | #include <plat/cpu.h> | 43 | #include <plat/cpu.h> |
44 | #include <plat/samsung-time.h> | ||
44 | 45 | ||
45 | #include "common.h" | 46 | #include "common.h" |
46 | #include "common-smdk.h" | 47 | #include "common-smdk.h" |
@@ -160,6 +161,7 @@ static void __init smdk2440_map_io(void) | |||
160 | s3c24xx_init_io(smdk2440_iodesc, ARRAY_SIZE(smdk2440_iodesc)); | 161 | s3c24xx_init_io(smdk2440_iodesc, ARRAY_SIZE(smdk2440_iodesc)); |
161 | s3c24xx_init_clocks(16934400); | 162 | s3c24xx_init_clocks(16934400); |
162 | s3c24xx_init_uarts(smdk2440_uartcfgs, ARRAY_SIZE(smdk2440_uartcfgs)); | 163 | s3c24xx_init_uarts(smdk2440_uartcfgs, ARRAY_SIZE(smdk2440_uartcfgs)); |
164 | samsung_set_timer_source(SAMSUNG_PWM3, SAMSUNG_PWM4); | ||
163 | } | 165 | } |
164 | 166 | ||
165 | static void __init smdk2440_machine_init(void) | 167 | static void __init smdk2440_machine_init(void) |
@@ -178,6 +180,6 @@ MACHINE_START(S3C2440, "SMDK2440") | |||
178 | .init_irq = s3c24xx_init_irq, | 180 | .init_irq = s3c24xx_init_irq, |
179 | .map_io = smdk2440_map_io, | 181 | .map_io = smdk2440_map_io, |
180 | .init_machine = smdk2440_machine_init, | 182 | .init_machine = smdk2440_machine_init, |
181 | .init_time = s3c24xx_timer_init, | 183 | .init_time = samsung_timer_init, |
182 | .restart = s3c244x_restart, | 184 | .restart = s3c244x_restart, |
183 | MACHINE_END | 185 | MACHINE_END |
diff --git a/arch/arm/mach-s3c24xx/mach-smdk2443.c b/arch/arm/mach-s3c24xx/mach-smdk2443.c index b3be4c4dc7bc..9435c3bef18a 100644 --- a/arch/arm/mach-s3c24xx/mach-smdk2443.c +++ b/arch/arm/mach-s3c24xx/mach-smdk2443.c | |||
@@ -41,6 +41,7 @@ | |||
41 | #include <plat/clock.h> | 41 | #include <plat/clock.h> |
42 | #include <plat/devs.h> | 42 | #include <plat/devs.h> |
43 | #include <plat/cpu.h> | 43 | #include <plat/cpu.h> |
44 | #include <plat/samsung-time.h> | ||
44 | 45 | ||
45 | #include "common.h" | 46 | #include "common.h" |
46 | #include "common-smdk.h" | 47 | #include "common-smdk.h" |
@@ -121,6 +122,7 @@ static void __init smdk2443_map_io(void) | |||
121 | s3c24xx_init_io(smdk2443_iodesc, ARRAY_SIZE(smdk2443_iodesc)); | 122 | s3c24xx_init_io(smdk2443_iodesc, ARRAY_SIZE(smdk2443_iodesc)); |
122 | s3c24xx_init_clocks(12000000); | 123 | s3c24xx_init_clocks(12000000); |
123 | s3c24xx_init_uarts(smdk2443_uartcfgs, ARRAY_SIZE(smdk2443_uartcfgs)); | 124 | s3c24xx_init_uarts(smdk2443_uartcfgs, ARRAY_SIZE(smdk2443_uartcfgs)); |
125 | samsung_set_timer_source(SAMSUNG_PWM3, SAMSUNG_PWM4); | ||
124 | } | 126 | } |
125 | 127 | ||
126 | static void __init smdk2443_machine_init(void) | 128 | static void __init smdk2443_machine_init(void) |
@@ -142,6 +144,6 @@ MACHINE_START(SMDK2443, "SMDK2443") | |||
142 | .init_irq = s3c2443_init_irq, | 144 | .init_irq = s3c2443_init_irq, |
143 | .map_io = smdk2443_map_io, | 145 | .map_io = smdk2443_map_io, |
144 | .init_machine = smdk2443_machine_init, | 146 | .init_machine = smdk2443_machine_init, |
145 | .init_time = s3c24xx_timer_init, | 147 | .init_time = samsung_timer_init, |
146 | .restart = s3c2443_restart, | 148 | .restart = s3c2443_restart, |
147 | MACHINE_END | 149 | MACHINE_END |
diff --git a/arch/arm/mach-s3c24xx/mach-tct_hammer.c b/arch/arm/mach-s3c24xx/mach-tct_hammer.c index 24b3d79e7b2c..31dfe589e349 100644 --- a/arch/arm/mach-s3c24xx/mach-tct_hammer.c +++ b/arch/arm/mach-s3c24xx/mach-tct_hammer.c | |||
@@ -53,6 +53,7 @@ | |||
53 | #include <linux/mtd/partitions.h> | 53 | #include <linux/mtd/partitions.h> |
54 | #include <linux/mtd/map.h> | 54 | #include <linux/mtd/map.h> |
55 | #include <linux/mtd/physmap.h> | 55 | #include <linux/mtd/physmap.h> |
56 | #include <plat/samsung-time.h> | ||
56 | 57 | ||
57 | #include "common.h" | 58 | #include "common.h" |
58 | 59 | ||
@@ -136,6 +137,7 @@ static void __init tct_hammer_map_io(void) | |||
136 | s3c24xx_init_io(tct_hammer_iodesc, ARRAY_SIZE(tct_hammer_iodesc)); | 137 | s3c24xx_init_io(tct_hammer_iodesc, ARRAY_SIZE(tct_hammer_iodesc)); |
137 | s3c24xx_init_clocks(0); | 138 | s3c24xx_init_clocks(0); |
138 | s3c24xx_init_uarts(tct_hammer_uartcfgs, ARRAY_SIZE(tct_hammer_uartcfgs)); | 139 | s3c24xx_init_uarts(tct_hammer_uartcfgs, ARRAY_SIZE(tct_hammer_uartcfgs)); |
140 | samsung_set_timer_source(SAMSUNG_PWM3, SAMSUNG_PWM4); | ||
139 | } | 141 | } |
140 | 142 | ||
141 | static void __init tct_hammer_init(void) | 143 | static void __init tct_hammer_init(void) |
@@ -149,6 +151,6 @@ MACHINE_START(TCT_HAMMER, "TCT_HAMMER") | |||
149 | .map_io = tct_hammer_map_io, | 151 | .map_io = tct_hammer_map_io, |
150 | .init_irq = s3c24xx_init_irq, | 152 | .init_irq = s3c24xx_init_irq, |
151 | .init_machine = tct_hammer_init, | 153 | .init_machine = tct_hammer_init, |
152 | .init_time = s3c24xx_timer_init, | 154 | .init_time = samsung_timer_init, |
153 | .restart = s3c2410_restart, | 155 | .restart = s3c2410_restart, |
154 | MACHINE_END | 156 | MACHINE_END |
diff --git a/arch/arm/mach-s3c24xx/mach-vr1000.c b/arch/arm/mach-s3c24xx/mach-vr1000.c index ec42d1e4e465..deeb8a0a4034 100644 --- a/arch/arm/mach-s3c24xx/mach-vr1000.c +++ b/arch/arm/mach-s3c24xx/mach-vr1000.c | |||
@@ -45,6 +45,7 @@ | |||
45 | #include <plat/cpu.h> | 45 | #include <plat/cpu.h> |
46 | #include <plat/devs.h> | 46 | #include <plat/devs.h> |
47 | #include <plat/regs-serial.h> | 47 | #include <plat/regs-serial.h> |
48 | #include <plat/samsung-time.h> | ||
48 | 49 | ||
49 | #include "bast.h" | 50 | #include "bast.h" |
50 | #include "common.h" | 51 | #include "common.h" |
@@ -332,6 +333,7 @@ static void __init vr1000_map_io(void) | |||
332 | s3c24xx_init_io(vr1000_iodesc, ARRAY_SIZE(vr1000_iodesc)); | 333 | s3c24xx_init_io(vr1000_iodesc, ARRAY_SIZE(vr1000_iodesc)); |
333 | s3c24xx_init_clocks(0); | 334 | s3c24xx_init_clocks(0); |
334 | s3c24xx_init_uarts(vr1000_uartcfgs, ARRAY_SIZE(vr1000_uartcfgs)); | 335 | s3c24xx_init_uarts(vr1000_uartcfgs, ARRAY_SIZE(vr1000_uartcfgs)); |
336 | samsung_set_timer_source(SAMSUNG_PWM3, SAMSUNG_PWM4); | ||
335 | } | 337 | } |
336 | 338 | ||
337 | static void __init vr1000_init(void) | 339 | static void __init vr1000_init(void) |
@@ -354,6 +356,6 @@ MACHINE_START(VR1000, "Thorcom-VR1000") | |||
354 | .map_io = vr1000_map_io, | 356 | .map_io = vr1000_map_io, |
355 | .init_machine = vr1000_init, | 357 | .init_machine = vr1000_init, |
356 | .init_irq = s3c24xx_init_irq, | 358 | .init_irq = s3c24xx_init_irq, |
357 | .init_time = s3c24xx_timer_init, | 359 | .init_time = samsung_timer_init, |
358 | .restart = s3c2410_restart, | 360 | .restart = s3c2410_restart, |
359 | MACHINE_END | 361 | MACHINE_END |
diff --git a/arch/arm/mach-s3c24xx/mach-vstms.c b/arch/arm/mach-s3c24xx/mach-vstms.c index 239129c2d8bc..622a1ed24509 100644 --- a/arch/arm/mach-s3c24xx/mach-vstms.c +++ b/arch/arm/mach-s3c24xx/mach-vstms.c | |||
@@ -44,6 +44,7 @@ | |||
44 | #include <plat/clock.h> | 44 | #include <plat/clock.h> |
45 | #include <plat/devs.h> | 45 | #include <plat/devs.h> |
46 | #include <plat/cpu.h> | 46 | #include <plat/cpu.h> |
47 | #include <plat/samsung-time.h> | ||
47 | 48 | ||
48 | #include "common.h" | 49 | #include "common.h" |
49 | 50 | ||
@@ -142,6 +143,7 @@ static void __init vstms_map_io(void) | |||
142 | s3c24xx_init_io(vstms_iodesc, ARRAY_SIZE(vstms_iodesc)); | 143 | s3c24xx_init_io(vstms_iodesc, ARRAY_SIZE(vstms_iodesc)); |
143 | s3c24xx_init_clocks(12000000); | 144 | s3c24xx_init_clocks(12000000); |
144 | s3c24xx_init_uarts(vstms_uartcfgs, ARRAY_SIZE(vstms_uartcfgs)); | 145 | s3c24xx_init_uarts(vstms_uartcfgs, ARRAY_SIZE(vstms_uartcfgs)); |
146 | samsung_set_timer_source(SAMSUNG_PWM3, SAMSUNG_PWM4); | ||
145 | } | 147 | } |
146 | 148 | ||
147 | static void __init vstms_init(void) | 149 | static void __init vstms_init(void) |
@@ -159,6 +161,6 @@ MACHINE_START(VSTMS, "VSTMS") | |||
159 | .init_irq = s3c24xx_init_irq, | 161 | .init_irq = s3c24xx_init_irq, |
160 | .init_machine = vstms_init, | 162 | .init_machine = vstms_init, |
161 | .map_io = vstms_map_io, | 163 | .map_io = vstms_map_io, |
162 | .init_time = s3c24xx_timer_init, | 164 | .init_time = samsung_timer_init, |
163 | .restart = s3c2412_restart, | 165 | .restart = s3c2412_restart, |
164 | MACHINE_END | 166 | MACHINE_END |
diff --git a/arch/arm/plat-samsung/include/plat/cpu.h b/arch/arm/plat-samsung/include/plat/cpu.h index 37703ef6dfc7..100c29606e1e 100644 --- a/arch/arm/plat-samsung/include/plat/cpu.h +++ b/arch/arm/plat-samsung/include/plat/cpu.h | |||
@@ -192,7 +192,7 @@ extern void s3c24xx_init_uartdevs(char *name, | |||
192 | struct s3c24xx_uart_resources *res, | 192 | struct s3c24xx_uart_resources *res, |
193 | struct s3c2410_uartcfg *cfg, int no); | 193 | struct s3c2410_uartcfg *cfg, int no); |
194 | 194 | ||
195 | /* timer for 2410/2440 */ | 195 | /* timer for s5pc100 only */ |
196 | 196 | ||
197 | extern void s3c24xx_timer_init(void); | 197 | extern void s3c24xx_timer_init(void); |
198 | 198 | ||
diff --git a/arch/arm/plat-samsung/include/plat/samsung-time.h b/arch/arm/plat-samsung/include/plat/samsung-time.h index c686f6a53c8d..21198ace3845 100644 --- a/arch/arm/plat-samsung/include/plat/samsung-time.h +++ b/arch/arm/plat-samsung/include/plat/samsung-time.h | |||
@@ -30,7 +30,18 @@ struct samsung_timer_source { | |||
30 | /* Be able to sleep for atleast 4 seconds (usually more) */ | 30 | /* Be able to sleep for atleast 4 seconds (usually more) */ |
31 | #define SAMSUNG_TIMER_MIN_RANGE 4 | 31 | #define SAMSUNG_TIMER_MIN_RANGE 4 |
32 | 32 | ||
33 | #ifdef CONFIG_ARCH_S3C24XX | ||
34 | #define TCNT_MAX 0xffff | ||
35 | #define TSCALER_DIV 25 | ||
36 | #define TDIV 50 | ||
37 | #define TSIZE 16 | ||
38 | #else | ||
33 | #define TCNT_MAX 0xffffffff | 39 | #define TCNT_MAX 0xffffffff |
40 | #define TSCALER_DIV 2 | ||
41 | #define TDIV 2 | ||
42 | #define TSIZE 32 | ||
43 | #endif | ||
44 | |||
34 | #define NON_PERIODIC 0 | 45 | #define NON_PERIODIC 0 |
35 | #define PERIODIC 1 | 46 | #define PERIODIC 1 |
36 | 47 | ||
diff --git a/arch/arm/plat-samsung/samsung-time.c b/arch/arm/plat-samsung/samsung-time.c index aa8aa8014cc1..f899cbc9b288 100644 --- a/arch/arm/plat-samsung/samsung-time.c +++ b/arch/arm/plat-samsung/samsung-time.c | |||
@@ -2,7 +2,7 @@ | |||
2 | * Copyright (c) 2011 Samsung Electronics Co., Ltd. | 2 | * Copyright (c) 2011 Samsung Electronics Co., Ltd. |
3 | * http://www.samsung.com/ | 3 | * http://www.samsung.com/ |
4 | * | 4 | * |
5 | * SAMSUNG - Common hr-timer support | 5 | * samsung - Common hr-timer support (s3c and s5p) |
6 | * | 6 | * |
7 | * This program is free software; you can redistribute it and/or modify | 7 | * This program is free software; you can redistribute it and/or modify |
8 | * it under the terms of the GNU General Public License version 2 as | 8 | * it under the terms of the GNU General Public License version 2 as |
@@ -267,8 +267,8 @@ static void __init samsung_clockevent_init(void) | |||
267 | 267 | ||
268 | tscaler = clk_get_parent(tdiv_event); | 268 | tscaler = clk_get_parent(tdiv_event); |
269 | 269 | ||
270 | clk_set_rate(tscaler, pclk / 2); | 270 | clk_set_rate(tscaler, pclk / TSCALER_DIV); |
271 | clk_set_rate(tdiv_event, pclk / 2); | 271 | clk_set_rate(tdiv_event, pclk / TDIV); |
272 | clk_set_parent(tin_event, tdiv_event); | 272 | clk_set_parent(tin_event, tdiv_event); |
273 | 273 | ||
274 | clock_rate = clk_get_rate(tin_event); | 274 | clock_rate = clk_get_rate(tin_event); |
@@ -329,7 +329,7 @@ static void __init samsung_clocksource_init(void) | |||
329 | 329 | ||
330 | pclk = clk_get_rate(timerclk); | 330 | pclk = clk_get_rate(timerclk); |
331 | 331 | ||
332 | clk_set_rate(tdiv_source, pclk / 2); | 332 | clk_set_rate(tdiv_source, pclk / TDIV); |
333 | clk_set_parent(tin_source, tdiv_source); | 333 | clk_set_parent(tin_source, tdiv_source); |
334 | 334 | ||
335 | clock_rate = clk_get_rate(tin_source); | 335 | clock_rate = clk_get_rate(tin_source); |
@@ -337,10 +337,10 @@ static void __init samsung_clocksource_init(void) | |||
337 | samsung_time_setup(timer_source.source_id, TCNT_MAX); | 337 | samsung_time_setup(timer_source.source_id, TCNT_MAX); |
338 | samsung_time_start(timer_source.source_id, PERIODIC); | 338 | samsung_time_start(timer_source.source_id, PERIODIC); |
339 | 339 | ||
340 | setup_sched_clock(samsung_read_sched_clock, 32, clock_rate); | 340 | setup_sched_clock(samsung_read_sched_clock, TSIZE, clock_rate); |
341 | 341 | ||
342 | if (clocksource_mmio_init(samsung_timer_reg(), "samsung_clocksource_timer", | 342 | if (clocksource_mmio_init(samsung_timer_reg(), "samsung_clocksource_timer", |
343 | clock_rate, 250, 32, clocksource_mmio_readl_down)) | 343 | clock_rate, 250, TSIZE, clocksource_mmio_readl_down)) |
344 | panic("samsung_clocksource_timer: can't register clocksource\n"); | 344 | panic("samsung_clocksource_timer: can't register clocksource\n"); |
345 | } | 345 | } |
346 | 346 | ||