aboutsummaryrefslogtreecommitdiffstats
path: root/arch/blackfin/mach-bf537
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-bf537
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-bf537')
-rw-r--r--arch/blackfin/mach-bf537/boards/cm_bf537.c31
-rw-r--r--arch/blackfin/mach-bf537/boards/stamp.c31
2 files changed, 62 insertions, 0 deletions
diff --git a/arch/blackfin/mach-bf537/boards/cm_bf537.c b/arch/blackfin/mach-bf537/boards/cm_bf537.c
index d8a23cd9b9ed..706e1a574f09 100644
--- a/arch/blackfin/mach-bf537/boards/cm_bf537.c
+++ b/arch/blackfin/mach-bf537/boards/cm_bf537.c
@@ -41,6 +41,7 @@
41#include <asm/dma.h> 41#include <asm/dma.h>
42#include <asm/bfin5xx_spi.h> 42#include <asm/bfin5xx_spi.h>
43#include <asm/portmux.h> 43#include <asm/portmux.h>
44#include <asm/dpmc.h>
44 45
45/* 46/*
46 * Name the Board for the /proc/cpuinfo 47 * Name the Board for the /proc/cpuinfo
@@ -428,7 +429,37 @@ static struct platform_device bfin_pata_device = {
428}; 429};
429#endif 430#endif
430 431
432static const unsigned int cclk_vlev_datasheet[] =
433{
434 VRPAIR(VLEV_085, 250000000),
435 VRPAIR(VLEV_090, 376000000),
436 VRPAIR(VLEV_095, 426000000),
437 VRPAIR(VLEV_100, 426000000),
438 VRPAIR(VLEV_105, 476000000),
439 VRPAIR(VLEV_110, 476000000),
440 VRPAIR(VLEV_115, 476000000),
441 VRPAIR(VLEV_120, 500000000),
442 VRPAIR(VLEV_125, 533000000),
443 VRPAIR(VLEV_130, 600000000),
444};
445
446static struct bfin_dpmc_platform_data bfin_dmpc_vreg_data = {
447 .tuple_tab = cclk_vlev_datasheet,
448 .tabsize = ARRAY_SIZE(cclk_vlev_datasheet),
449 .vr_settling_time = 25 /* us */,
450};
451
452static struct platform_device bfin_dpmc = {
453 .name = "bfin dpmc",
454 .dev = {
455 .platform_data = &bfin_dmpc_vreg_data,
456 },
457};
458
431static struct platform_device *cm_bf537_devices[] __initdata = { 459static struct platform_device *cm_bf537_devices[] __initdata = {
460
461 &bfin_dpmc,
462
432#if defined(CONFIG_FB_HITACHI_TX09) || defined(CONFIG_FB_HITACHI_TX09_MODULE) 463#if defined(CONFIG_FB_HITACHI_TX09) || defined(CONFIG_FB_HITACHI_TX09_MODULE)
433 &hitachi_fb_device, 464 &hitachi_fb_device,
434#endif 465#endif
diff --git a/arch/blackfin/mach-bf537/boards/stamp.c b/arch/blackfin/mach-bf537/boards/stamp.c
index d3727b7c2d7d..9a756d1f3d73 100644
--- a/arch/blackfin/mach-bf537/boards/stamp.c
+++ b/arch/blackfin/mach-bf537/boards/stamp.c
@@ -47,6 +47,7 @@
47#include <asm/bfin5xx_spi.h> 47#include <asm/bfin5xx_spi.h>
48#include <asm/reboot.h> 48#include <asm/reboot.h>
49#include <asm/portmux.h> 49#include <asm/portmux.h>
50#include <asm/dpmc.h>
50#include <linux/spi/ad7877.h> 51#include <linux/spi/ad7877.h>
51 52
52/* 53/*
@@ -817,7 +818,37 @@ static struct platform_device bfin_pata_device = {
817}; 818};
818#endif 819#endif
819 820
821static const unsigned int cclk_vlev_datasheet[] =
822{
823 VRPAIR(VLEV_085, 250000000),
824 VRPAIR(VLEV_090, 376000000),
825 VRPAIR(VLEV_095, 426000000),
826 VRPAIR(VLEV_100, 426000000),
827 VRPAIR(VLEV_105, 476000000),
828 VRPAIR(VLEV_110, 476000000),
829 VRPAIR(VLEV_115, 476000000),
830 VRPAIR(VLEV_120, 500000000),
831 VRPAIR(VLEV_125, 533000000),
832 VRPAIR(VLEV_130, 600000000),
833};
834
835static struct bfin_dpmc_platform_data bfin_dmpc_vreg_data = {
836 .tuple_tab = cclk_vlev_datasheet,
837 .tabsize = ARRAY_SIZE(cclk_vlev_datasheet),
838 .vr_settling_time = 25 /* us */,
839};
840
841static struct platform_device bfin_dpmc = {
842 .name = "bfin dpmc",
843 .dev = {
844 .platform_data = &bfin_dmpc_vreg_data,
845 },
846};
847
820static struct platform_device *stamp_devices[] __initdata = { 848static struct platform_device *stamp_devices[] __initdata = {
849
850 &bfin_dpmc,
851
821#if defined(CONFIG_BFIN_CFPCMCIA) || defined(CONFIG_BFIN_CFPCMCIA_MODULE) 852#if defined(CONFIG_BFIN_CFPCMCIA) || defined(CONFIG_BFIN_CFPCMCIA_MODULE)
822 &bfin_pcmcia_cf_device, 853 &bfin_pcmcia_cf_device,
823#endif 854#endif