diff options
author | Michael Hennerich <michael.hennerich@analog.com> | 2008-05-06 23:41:26 -0400 |
---|---|---|
committer | Bryan Wu <cooloney@kernel.org> | 2008-05-06 23:41:26 -0400 |
commit | 14b03204c8060d036b04cbb18bbd6f6f311f4fed (patch) | |
tree | e4ac8f5e2a74fc63dd811aac9e349ac890670134 /arch/blackfin/mach-bf548 | |
parent | 19d6d7d53c8ff809182a1f092d2c6918146414e9 (diff) |
[Blackfin] arch: Functional power management support: Add CPU and platform voltage scaling support
Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
Signed-off-by: Bryan Wu <cooloney@kernel.org>
Diffstat (limited to 'arch/blackfin/mach-bf548')
-rw-r--r-- | arch/blackfin/mach-bf548/boards/cm_bf548.c | 32 | ||||
-rw-r--r-- | arch/blackfin/mach-bf548/boards/ezkit.c | 32 |
2 files changed, 64 insertions, 0 deletions
diff --git a/arch/blackfin/mach-bf548/boards/cm_bf548.c b/arch/blackfin/mach-bf548/boards/cm_bf548.c index e3e8479fffb5..40504eeadec9 100644 --- a/arch/blackfin/mach-bf548/boards/cm_bf548.c +++ b/arch/blackfin/mach-bf548/boards/cm_bf548.c | |||
@@ -44,6 +44,7 @@ | |||
44 | #include <asm/nand.h> | 44 | #include <asm/nand.h> |
45 | #include <asm/portmux.h> | 45 | #include <asm/portmux.h> |
46 | #include <asm/mach/bf54x_keys.h> | 46 | #include <asm/mach/bf54x_keys.h> |
47 | #include <asm/dpmc.h> | ||
47 | #include <linux/input.h> | 48 | #include <linux/input.h> |
48 | #include <linux/spi/ad7877.h> | 49 | #include <linux/spi/ad7877.h> |
49 | 50 | ||
@@ -590,7 +591,38 @@ static struct platform_device bfin_device_gpiokeys = { | |||
590 | }; | 591 | }; |
591 | #endif | 592 | #endif |
592 | 593 | ||
594 | static const unsigned int cclk_vlev_datasheet[] = | ||
595 | { | ||
596 | /* | ||
597 | * Internal VLEV BF54XSBBC1533 | ||
598 | ****temporarily using these values until data sheet is updated | ||
599 | */ | ||
600 | VRPAIR(VLEV_085, 150000000), | ||
601 | VRPAIR(VLEV_090, 250000000), | ||
602 | VRPAIR(VLEV_110, 276000000), | ||
603 | VRPAIR(VLEV_115, 301000000), | ||
604 | VRPAIR(VLEV_120, 525000000), | ||
605 | VRPAIR(VLEV_125, 550000000), | ||
606 | VRPAIR(VLEV_130, 600000000), | ||
607 | }; | ||
608 | |||
609 | static struct bfin_dpmc_platform_data bfin_dmpc_vreg_data = { | ||
610 | .tuple_tab = cclk_vlev_datasheet, | ||
611 | .tabsize = ARRAY_SIZE(cclk_vlev_datasheet), | ||
612 | .vr_settling_time = 25 /* us */, | ||
613 | }; | ||
614 | |||
615 | static struct platform_device bfin_dpmc = { | ||
616 | .name = "bfin dpmc", | ||
617 | .dev = { | ||
618 | .platform_data = &bfin_dmpc_vreg_data, | ||
619 | }, | ||
620 | }; | ||
621 | |||
593 | static struct platform_device *cm_bf548_devices[] __initdata = { | 622 | static struct platform_device *cm_bf548_devices[] __initdata = { |
623 | |||
624 | &bfin_dpmc, | ||
625 | |||
594 | #if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE) | 626 | #if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE) |
595 | &rtc_device, | 627 | &rtc_device, |
596 | #endif | 628 | #endif |
diff --git a/arch/blackfin/mach-bf548/boards/ezkit.c b/arch/blackfin/mach-bf548/boards/ezkit.c index b00f68ac6bc9..d1682bb37509 100644 --- a/arch/blackfin/mach-bf548/boards/ezkit.c +++ b/arch/blackfin/mach-bf548/boards/ezkit.c | |||
@@ -46,6 +46,7 @@ | |||
46 | #include <asm/dma.h> | 46 | #include <asm/dma.h> |
47 | #include <asm/gpio.h> | 47 | #include <asm/gpio.h> |
48 | #include <asm/nand.h> | 48 | #include <asm/nand.h> |
49 | #include <asm/dpmc.h> | ||
49 | #include <asm/portmux.h> | 50 | #include <asm/portmux.h> |
50 | #include <asm/mach/bf54x_keys.h> | 51 | #include <asm/mach/bf54x_keys.h> |
51 | #include <linux/input.h> | 52 | #include <linux/input.h> |
@@ -689,7 +690,38 @@ static struct platform_device bfin_gpios_device = { | |||
689 | .resource = &bfin_gpios_resources, | 690 | .resource = &bfin_gpios_resources, |
690 | }; | 691 | }; |
691 | 692 | ||
693 | static const unsigned int cclk_vlev_datasheet[] = | ||
694 | { | ||
695 | /* | ||
696 | * Internal VLEV BF54XSBBC1533 | ||
697 | ****temporarily using these values until data sheet is updated | ||
698 | */ | ||
699 | VRPAIR(VLEV_085, 150000000), | ||
700 | VRPAIR(VLEV_090, 250000000), | ||
701 | VRPAIR(VLEV_110, 276000000), | ||
702 | VRPAIR(VLEV_115, 301000000), | ||
703 | VRPAIR(VLEV_120, 525000000), | ||
704 | VRPAIR(VLEV_125, 550000000), | ||
705 | VRPAIR(VLEV_130, 600000000), | ||
706 | }; | ||
707 | |||
708 | static struct bfin_dpmc_platform_data bfin_dmpc_vreg_data = { | ||
709 | .tuple_tab = cclk_vlev_datasheet, | ||
710 | .tabsize = ARRAY_SIZE(cclk_vlev_datasheet), | ||
711 | .vr_settling_time = 25 /* us */, | ||
712 | }; | ||
713 | |||
714 | static struct platform_device bfin_dpmc = { | ||
715 | .name = "bfin dpmc", | ||
716 | .dev = { | ||
717 | .platform_data = &bfin_dmpc_vreg_data, | ||
718 | }, | ||
719 | }; | ||
720 | |||
692 | static struct platform_device *ezkit_devices[] __initdata = { | 721 | static struct platform_device *ezkit_devices[] __initdata = { |
722 | |||
723 | &bfin_dpmc, | ||
724 | |||
693 | #if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE) | 725 | #if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE) |
694 | &rtc_device, | 726 | &rtc_device, |
695 | #endif | 727 | #endif |