diff options
| -rw-r--r-- | arch/arm/mach-omap1/time.c | 7 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/clock44xx_data.c | 1 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/clockdomain.c | 30 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/clockdomains44xx_data.c | 2 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/powerdomain2xxx_3xxx.c | 1 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/timer-gp.c | 10 | ||||
| -rw-r--r-- | arch/arm/plat-omap/counter_32k.c | 3 | ||||
| -rw-r--r-- | arch/arm/plat-omap/include/plat/common.h | 1 |
8 files changed, 43 insertions, 12 deletions
diff --git a/arch/arm/mach-omap1/time.c b/arch/arm/mach-omap1/time.c index ed7a61ff916..6ec65e59999 100644 --- a/arch/arm/mach-omap1/time.c +++ b/arch/arm/mach-omap1/time.c | |||
| @@ -244,6 +244,13 @@ static void __init omap_timer_init(void) | |||
| 244 | 244 | ||
| 245 | omap_init_mpu_timer(rate); | 245 | omap_init_mpu_timer(rate); |
| 246 | omap_init_clocksource(rate); | 246 | omap_init_clocksource(rate); |
| 247 | /* | ||
| 248 | * XXX Since this file seems to deal mostly with the MPU timer, | ||
| 249 | * this doesn't seem like the correct place for the sync timer | ||
| 250 | * clocksource init. | ||
| 251 | */ | ||
| 252 | if (!cpu_is_omap7xx() && !cpu_is_omap15xx()) | ||
| 253 | omap_init_clocksource_32k(); | ||
| 247 | } | 254 | } |
| 248 | 255 | ||
| 249 | struct sys_timer omap_timer = { | 256 | struct sys_timer omap_timer = { |
diff --git a/arch/arm/mach-omap2/clock44xx_data.c b/arch/arm/mach-omap2/clock44xx_data.c index e8cb32fd7f1..de9ec8ddd2a 100644 --- a/arch/arm/mach-omap2/clock44xx_data.c +++ b/arch/arm/mach-omap2/clock44xx_data.c | |||
| @@ -34,7 +34,6 @@ | |||
| 34 | #include "cm2_44xx.h" | 34 | #include "cm2_44xx.h" |
| 35 | #include "cm-regbits-44xx.h" | 35 | #include "cm-regbits-44xx.h" |
| 36 | #include "prm44xx.h" | 36 | #include "prm44xx.h" |
| 37 | #include "prm44xx.h" | ||
| 38 | #include "prm-regbits-44xx.h" | 37 | #include "prm-regbits-44xx.h" |
| 39 | #include "control.h" | 38 | #include "control.h" |
| 40 | #include "scrm44xx.h" | 39 | #include "scrm44xx.h" |
diff --git a/arch/arm/mach-omap2/clockdomain.c b/arch/arm/mach-omap2/clockdomain.c index e20b98636ab..58e42f76603 100644 --- a/arch/arm/mach-omap2/clockdomain.c +++ b/arch/arm/mach-omap2/clockdomain.c | |||
| @@ -423,6 +423,12 @@ int clkdm_add_wkdep(struct clockdomain *clkdm1, struct clockdomain *clkdm2) | |||
| 423 | { | 423 | { |
| 424 | struct clkdm_dep *cd; | 424 | struct clkdm_dep *cd; |
| 425 | 425 | ||
| 426 | if (!cpu_is_omap24xx() && !cpu_is_omap34xx()) { | ||
| 427 | pr_err("clockdomain: %s/%s: %s: not yet implemented\n", | ||
| 428 | clkdm1->name, clkdm2->name, __func__); | ||
| 429 | return -EINVAL; | ||
| 430 | } | ||
| 431 | |||
| 426 | if (!clkdm1 || !clkdm2) | 432 | if (!clkdm1 || !clkdm2) |
| 427 | return -EINVAL; | 433 | return -EINVAL; |
| 428 | 434 | ||
| @@ -458,6 +464,12 @@ int clkdm_del_wkdep(struct clockdomain *clkdm1, struct clockdomain *clkdm2) | |||
| 458 | { | 464 | { |
| 459 | struct clkdm_dep *cd; | 465 | struct clkdm_dep *cd; |
| 460 | 466 | ||
| 467 | if (!cpu_is_omap24xx() && !cpu_is_omap34xx()) { | ||
| 468 | pr_err("clockdomain: %s/%s: %s: not yet implemented\n", | ||
| 469 | clkdm1->name, clkdm2->name, __func__); | ||
| 470 | return -EINVAL; | ||
| 471 | } | ||
| 472 | |||
| 461 | if (!clkdm1 || !clkdm2) | 473 | if (!clkdm1 || !clkdm2) |
| 462 | return -EINVAL; | 474 | return -EINVAL; |
| 463 | 475 | ||
| @@ -500,6 +512,12 @@ int clkdm_read_wkdep(struct clockdomain *clkdm1, struct clockdomain *clkdm2) | |||
| 500 | if (!clkdm1 || !clkdm2) | 512 | if (!clkdm1 || !clkdm2) |
| 501 | return -EINVAL; | 513 | return -EINVAL; |
| 502 | 514 | ||
| 515 | if (!cpu_is_omap24xx() && !cpu_is_omap34xx()) { | ||
| 516 | pr_err("clockdomain: %s/%s: %s: not yet implemented\n", | ||
| 517 | clkdm1->name, clkdm2->name, __func__); | ||
| 518 | return -EINVAL; | ||
| 519 | } | ||
| 520 | |||
| 503 | cd = _clkdm_deps_lookup(clkdm2, clkdm1->wkdep_srcs); | 521 | cd = _clkdm_deps_lookup(clkdm2, clkdm1->wkdep_srcs); |
| 504 | if (IS_ERR(cd)) { | 522 | if (IS_ERR(cd)) { |
| 505 | pr_debug("clockdomain: hardware cannot set/clear wake up of " | 523 | pr_debug("clockdomain: hardware cannot set/clear wake up of " |
| @@ -527,6 +545,12 @@ int clkdm_clear_all_wkdeps(struct clockdomain *clkdm) | |||
| 527 | struct clkdm_dep *cd; | 545 | struct clkdm_dep *cd; |
| 528 | u32 mask = 0; | 546 | u32 mask = 0; |
| 529 | 547 | ||
| 548 | if (!cpu_is_omap24xx() && !cpu_is_omap34xx()) { | ||
| 549 | pr_err("clockdomain: %s: %s: not yet implemented\n", | ||
| 550 | clkdm->name, __func__); | ||
| 551 | return -EINVAL; | ||
| 552 | } | ||
| 553 | |||
| 530 | if (!clkdm) | 554 | if (!clkdm) |
| 531 | return -EINVAL; | 555 | return -EINVAL; |
| 532 | 556 | ||
| @@ -830,8 +854,7 @@ void omap2_clkdm_allow_idle(struct clockdomain *clkdm) | |||
| 830 | * dependency code and data for OMAP4. | 854 | * dependency code and data for OMAP4. |
| 831 | */ | 855 | */ |
| 832 | if (cpu_is_omap44xx()) { | 856 | if (cpu_is_omap44xx()) { |
| 833 | WARN_ONCE(1, "clockdomain: OMAP4 wakeup/sleep dependency " | 857 | pr_err("clockdomain: %s: OMAP4 wakeup/sleep dependency support: not yet implemented\n", clkdm->name); |
| 834 | "support is not yet implemented\n"); | ||
| 835 | } else { | 858 | } else { |
| 836 | if (atomic_read(&clkdm->usecount) > 0) | 859 | if (atomic_read(&clkdm->usecount) > 0) |
| 837 | _clkdm_add_autodeps(clkdm); | 860 | _clkdm_add_autodeps(clkdm); |
| @@ -872,8 +895,7 @@ void omap2_clkdm_deny_idle(struct clockdomain *clkdm) | |||
| 872 | * dependency code and data for OMAP4. | 895 | * dependency code and data for OMAP4. |
| 873 | */ | 896 | */ |
| 874 | if (cpu_is_omap44xx()) { | 897 | if (cpu_is_omap44xx()) { |
| 875 | WARN_ONCE(1, "clockdomain: OMAP4 wakeup/sleep dependency " | 898 | pr_err("clockdomain: %s: OMAP4 wakeup/sleep dependency support: not yet implemented\n", clkdm->name); |
| 876 | "support is not yet implemented\n"); | ||
| 877 | } else { | 899 | } else { |
| 878 | if (atomic_read(&clkdm->usecount) > 0) | 900 | if (atomic_read(&clkdm->usecount) > 0) |
| 879 | _clkdm_del_autodeps(clkdm); | 901 | _clkdm_del_autodeps(clkdm); |
diff --git a/arch/arm/mach-omap2/clockdomains44xx_data.c b/arch/arm/mach-omap2/clockdomains44xx_data.c index 51920fc7fc5..10622c914ab 100644 --- a/arch/arm/mach-omap2/clockdomains44xx_data.c +++ b/arch/arm/mach-omap2/clockdomains44xx_data.c | |||
| @@ -30,8 +30,6 @@ | |||
| 30 | #include "cm1_44xx.h" | 30 | #include "cm1_44xx.h" |
| 31 | #include "cm2_44xx.h" | 31 | #include "cm2_44xx.h" |
| 32 | 32 | ||
| 33 | #include "cm1_44xx.h" | ||
| 34 | #include "cm2_44xx.h" | ||
| 35 | #include "cm-regbits-44xx.h" | 33 | #include "cm-regbits-44xx.h" |
| 36 | #include "prm44xx.h" | 34 | #include "prm44xx.h" |
| 37 | #include "prcm44xx.h" | 35 | #include "prcm44xx.h" |
diff --git a/arch/arm/mach-omap2/powerdomain2xxx_3xxx.c b/arch/arm/mach-omap2/powerdomain2xxx_3xxx.c index d5233890370..cf600e22bf8 100644 --- a/arch/arm/mach-omap2/powerdomain2xxx_3xxx.c +++ b/arch/arm/mach-omap2/powerdomain2xxx_3xxx.c | |||
| @@ -19,7 +19,6 @@ | |||
| 19 | #include <plat/prcm.h> | 19 | #include <plat/prcm.h> |
| 20 | 20 | ||
| 21 | #include "powerdomain.h" | 21 | #include "powerdomain.h" |
| 22 | #include "prm-regbits-34xx.h" | ||
| 23 | #include "prm.h" | 22 | #include "prm.h" |
| 24 | #include "prm-regbits-24xx.h" | 23 | #include "prm-regbits-24xx.h" |
| 25 | #include "prm-regbits-34xx.h" | 24 | #include "prm-regbits-34xx.h" |
diff --git a/arch/arm/mach-omap2/timer-gp.c b/arch/arm/mach-omap2/timer-gp.c index 4e48e786bec..7b7c2683ae7 100644 --- a/arch/arm/mach-omap2/timer-gp.c +++ b/arch/arm/mach-omap2/timer-gp.c | |||
| @@ -42,6 +42,8 @@ | |||
| 42 | 42 | ||
| 43 | #include "timer-gp.h" | 43 | #include "timer-gp.h" |
| 44 | 44 | ||
| 45 | #include <plat/common.h> | ||
| 46 | |||
| 45 | /* MAX_GPTIMER_ID: number of GPTIMERs on the chip */ | 47 | /* MAX_GPTIMER_ID: number of GPTIMERs on the chip */ |
| 46 | #define MAX_GPTIMER_ID 12 | 48 | #define MAX_GPTIMER_ID 12 |
| 47 | 49 | ||
| @@ -176,10 +178,14 @@ static void __init omap2_gp_clockevent_init(void) | |||
| 176 | /* | 178 | /* |
| 177 | * When 32k-timer is enabled, don't use GPTimer for clocksource | 179 | * When 32k-timer is enabled, don't use GPTimer for clocksource |
| 178 | * instead, just leave default clocksource which uses the 32k | 180 | * instead, just leave default clocksource which uses the 32k |
| 179 | * sync counter. See clocksource setup in see plat-omap/common.c. | 181 | * sync counter. See clocksource setup in plat-omap/counter_32k.c |
| 180 | */ | 182 | */ |
| 181 | 183 | ||
| 182 | static inline void __init omap2_gp_clocksource_init(void) {} | 184 | static void __init omap2_gp_clocksource_init(void) |
| 185 | { | ||
| 186 | omap_init_clocksource_32k(); | ||
| 187 | } | ||
| 188 | |||
| 183 | #else | 189 | #else |
| 184 | /* | 190 | /* |
| 185 | * clocksource | 191 | * clocksource |
diff --git a/arch/arm/plat-omap/counter_32k.c b/arch/arm/plat-omap/counter_32k.c index ea4644021fb..0367998ff68 100644 --- a/arch/arm/plat-omap/counter_32k.c +++ b/arch/arm/plat-omap/counter_32k.c | |||
| @@ -160,7 +160,7 @@ void read_persistent_clock(struct timespec *ts) | |||
| 160 | *ts = *tsp; | 160 | *ts = *tsp; |
| 161 | } | 161 | } |
| 162 | 162 | ||
| 163 | static int __init omap_init_clocksource_32k(void) | 163 | int __init omap_init_clocksource_32k(void) |
| 164 | { | 164 | { |
| 165 | static char err[] __initdata = KERN_ERR | 165 | static char err[] __initdata = KERN_ERR |
| 166 | "%s: can't register clocksource!\n"; | 166 | "%s: can't register clocksource!\n"; |
| @@ -195,7 +195,6 @@ static int __init omap_init_clocksource_32k(void) | |||
| 195 | } | 195 | } |
| 196 | return 0; | 196 | return 0; |
| 197 | } | 197 | } |
| 198 | arch_initcall(omap_init_clocksource_32k); | ||
| 199 | 198 | ||
| 200 | #endif /* !(defined(CONFIG_ARCH_OMAP730) || defined(CONFIG_ARCH_OMAP15XX)) */ | 199 | #endif /* !(defined(CONFIG_ARCH_OMAP730) || defined(CONFIG_ARCH_OMAP15XX)) */ |
| 201 | 200 | ||
diff --git a/arch/arm/plat-omap/include/plat/common.h b/arch/arm/plat-omap/include/plat/common.h index 6b8088ec74a..84c707f713b 100644 --- a/arch/arm/plat-omap/include/plat/common.h +++ b/arch/arm/plat-omap/include/plat/common.h | |||
| @@ -35,6 +35,7 @@ struct sys_timer; | |||
| 35 | 35 | ||
| 36 | extern void omap_map_common_io(void); | 36 | extern void omap_map_common_io(void); |
| 37 | extern struct sys_timer omap_timer; | 37 | extern struct sys_timer omap_timer; |
| 38 | extern int __init omap_init_clocksource_32k(void); | ||
| 38 | 39 | ||
| 39 | extern void omap_reserve(void); | 40 | extern void omap_reserve(void); |
| 40 | 41 | ||
