aboutsummaryrefslogtreecommitdiffstats
path: root/arch/blackfin/mach-bf548
diff options
context:
space:
mode:
authorMichael Hennerich <michael.hennerich@analog.com>2008-05-06 23:41:26 -0400
committerBryan Wu <cooloney@kernel.org>2008-05-06 23:41:26 -0400
commit14b03204c8060d036b04cbb18bbd6f6f311f4fed (patch)
treee4ac8f5e2a74fc63dd811aac9e349ac890670134 /arch/blackfin/mach-bf548
parent19d6d7d53c8ff809182a1f092d2c6918146414e9 (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.c32
-rw-r--r--arch/blackfin/mach-bf548/boards/ezkit.c32
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
594static 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
609static 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
615static struct platform_device bfin_dpmc = {
616 .name = "bfin dpmc",
617 .dev = {
618 .platform_data = &bfin_dmpc_vreg_data,
619 },
620};
621
593static struct platform_device *cm_bf548_devices[] __initdata = { 622static 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
693static 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
708static 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
714static struct platform_device bfin_dpmc = {
715 .name = "bfin dpmc",
716 .dev = {
717 .platform_data = &bfin_dmpc_vreg_data,
718 },
719};
720
692static struct platform_device *ezkit_devices[] __initdata = { 721static 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