aboutsummaryrefslogtreecommitdiffstats
path: root/arch/blackfin/mach-bf561
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-bf561
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-bf561')
-rw-r--r--arch/blackfin/mach-bf561/boards/cm_bf561.c30
-rw-r--r--arch/blackfin/mach-bf561/boards/ezkit.c31
2 files changed, 61 insertions, 0 deletions
diff --git a/arch/blackfin/mach-bf561/boards/cm_bf561.c b/arch/blackfin/mach-bf561/boards/cm_bf561.c
index 9fd580952fd8..4075dafcbc80 100644
--- a/arch/blackfin/mach-bf561/boards/cm_bf561.c
+++ b/arch/blackfin/mach-bf561/boards/cm_bf561.c
@@ -39,6 +39,7 @@
39#include <asm/dma.h> 39#include <asm/dma.h>
40#include <asm/bfin5xx_spi.h> 40#include <asm/bfin5xx_spi.h>
41#include <asm/portmux.h> 41#include <asm/portmux.h>
42#include <asm/dpmc.h>
42 43
43/* 44/*
44 * Name the Board for the /proc/cpuinfo 45 * Name the Board for the /proc/cpuinfo
@@ -339,8 +340,37 @@ static struct platform_device bfin_pata_device = {
339}; 340};
340#endif 341#endif
341 342
343static const unsigned int cclk_vlev_datasheet[] =
344{
345 VRPAIR(VLEV_085, 250000000),
346 VRPAIR(VLEV_090, 300000000),
347 VRPAIR(VLEV_095, 313000000),
348 VRPAIR(VLEV_100, 350000000),
349 VRPAIR(VLEV_105, 400000000),
350 VRPAIR(VLEV_110, 444000000),
351 VRPAIR(VLEV_115, 450000000),
352 VRPAIR(VLEV_120, 475000000),
353 VRPAIR(VLEV_125, 500000000),
354 VRPAIR(VLEV_130, 600000000),
355};
356
357static struct bfin_dpmc_platform_data bfin_dmpc_vreg_data = {
358 .tuple_tab = cclk_vlev_datasheet,
359 .tabsize = ARRAY_SIZE(cclk_vlev_datasheet),
360 .vr_settling_time = 25 /* us */,
361};
362
363static struct platform_device bfin_dpmc = {
364 .name = "bfin dpmc",
365 .dev = {
366 .platform_data = &bfin_dmpc_vreg_data,
367 },
368};
369
342static struct platform_device *cm_bf561_devices[] __initdata = { 370static struct platform_device *cm_bf561_devices[] __initdata = {
343 371
372 &bfin_dpmc,
373
344#if defined(CONFIG_FB_HITACHI_TX09) || defined(CONFIG_FB_HITACHI_TX09_MODULE) 374#if defined(CONFIG_FB_HITACHI_TX09) || defined(CONFIG_FB_HITACHI_TX09_MODULE)
345 &hitachi_fb_device, 375 &hitachi_fb_device,
346#endif 376#endif
diff --git a/arch/blackfin/mach-bf561/boards/ezkit.c b/arch/blackfin/mach-bf561/boards/ezkit.c
index 0d74b7d99209..61d8f7648b24 100644
--- a/arch/blackfin/mach-bf561/boards/ezkit.c
+++ b/arch/blackfin/mach-bf561/boards/ezkit.c
@@ -39,6 +39,7 @@
39#include <asm/dma.h> 39#include <asm/dma.h>
40#include <asm/bfin5xx_spi.h> 40#include <asm/bfin5xx_spi.h>
41#include <asm/portmux.h> 41#include <asm/portmux.h>
42#include <asm/dpmc.h>
42 43
43/* 44/*
44 * Name the Board for the /proc/cpuinfo 45 * Name the Board for the /proc/cpuinfo
@@ -443,7 +444,37 @@ static struct platform_device i2c_gpio_device = {
443}; 444};
444#endif 445#endif
445 446
447static const unsigned int cclk_vlev_datasheet[] =
448{
449 VRPAIR(VLEV_085, 250000000),
450 VRPAIR(VLEV_090, 300000000),
451 VRPAIR(VLEV_095, 313000000),
452 VRPAIR(VLEV_100, 350000000),
453 VRPAIR(VLEV_105, 400000000),
454 VRPAIR(VLEV_110, 444000000),
455 VRPAIR(VLEV_115, 450000000),
456 VRPAIR(VLEV_120, 475000000),
457 VRPAIR(VLEV_125, 500000000),
458 VRPAIR(VLEV_130, 600000000),
459};
460
461static struct bfin_dpmc_platform_data bfin_dmpc_vreg_data = {
462 .tuple_tab = cclk_vlev_datasheet,
463 .tabsize = ARRAY_SIZE(cclk_vlev_datasheet),
464 .vr_settling_time = 25 /* us */,
465};
466
467static struct platform_device bfin_dpmc = {
468 .name = "bfin dpmc",
469 .dev = {
470 .platform_data = &bfin_dmpc_vreg_data,
471 },
472};
473
446static struct platform_device *ezkit_devices[] __initdata = { 474static struct platform_device *ezkit_devices[] __initdata = {
475
476 &bfin_dpmc,
477
447#if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE) 478#if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE)
448 &smc91x_device, 479 &smc91x_device,
449#endif 480#endif