diff options
Diffstat (limited to 'arch/arm/mach-kirkwood/common.c')
-rw-r--r-- | arch/arm/mach-kirkwood/common.c | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/arch/arm/mach-kirkwood/common.c b/arch/arm/mach-kirkwood/common.c index bac21a554c91..49792a0cd2d3 100644 --- a/arch/arm/mach-kirkwood/common.c +++ b/arch/arm/mach-kirkwood/common.c | |||
@@ -499,6 +499,28 @@ void __init kirkwood_wdt_init(void) | |||
499 | orion_wdt_init(); | 499 | orion_wdt_init(); |
500 | } | 500 | } |
501 | 501 | ||
502 | /***************************************************************************** | ||
503 | * CPU idle | ||
504 | ****************************************************************************/ | ||
505 | static struct resource kirkwood_cpuidle_resource[] = { | ||
506 | { | ||
507 | .flags = IORESOURCE_MEM, | ||
508 | .start = DDR_OPERATION_BASE, | ||
509 | .end = DDR_OPERATION_BASE + 3, | ||
510 | }, | ||
511 | }; | ||
512 | |||
513 | static struct platform_device kirkwood_cpuidle = { | ||
514 | .name = "kirkwood_cpuidle", | ||
515 | .id = -1, | ||
516 | .resource = kirkwood_cpuidle_resource, | ||
517 | .num_resources = 1, | ||
518 | }; | ||
519 | |||
520 | void __init kirkwood_cpuidle_init(void) | ||
521 | { | ||
522 | platform_device_register(&kirkwood_cpuidle); | ||
523 | } | ||
502 | 524 | ||
503 | /***************************************************************************** | 525 | /***************************************************************************** |
504 | * Time handling | 526 | * Time handling |
@@ -530,7 +552,7 @@ static int __init kirkwood_find_tclk(void) | |||
530 | return 166666667; | 552 | return 166666667; |
531 | } | 553 | } |
532 | 554 | ||
533 | static void __init kirkwood_timer_init(void) | 555 | void __init kirkwood_timer_init(void) |
534 | { | 556 | { |
535 | kirkwood_tclk = kirkwood_find_tclk(); | 557 | kirkwood_tclk = kirkwood_find_tclk(); |
536 | 558 | ||
@@ -538,10 +560,6 @@ static void __init kirkwood_timer_init(void) | |||
538 | IRQ_KIRKWOOD_BRIDGE, kirkwood_tclk); | 560 | IRQ_KIRKWOOD_BRIDGE, kirkwood_tclk); |
539 | } | 561 | } |
540 | 562 | ||
541 | struct sys_timer kirkwood_timer = { | ||
542 | .init = kirkwood_timer_init, | ||
543 | }; | ||
544 | |||
545 | /***************************************************************************** | 563 | /***************************************************************************** |
546 | * Audio | 564 | * Audio |
547 | ****************************************************************************/ | 565 | ****************************************************************************/ |
@@ -671,6 +689,7 @@ void __init kirkwood_init(void) | |||
671 | kirkwood_xor1_init(); | 689 | kirkwood_xor1_init(); |
672 | kirkwood_crypto_init(); | 690 | kirkwood_crypto_init(); |
673 | 691 | ||
692 | kirkwood_cpuidle_init(); | ||
674 | #ifdef CONFIG_KEXEC | 693 | #ifdef CONFIG_KEXEC |
675 | kexec_reinit = kirkwood_enable_pcie; | 694 | kexec_reinit = kirkwood_enable_pcie; |
676 | #endif | 695 | #endif |