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-bf537 | |
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-bf537')
-rw-r--r-- | arch/blackfin/mach-bf537/boards/cm_bf537.c | 31 | ||||
-rw-r--r-- | arch/blackfin/mach-bf537/boards/stamp.c | 31 |
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 | ||
432 | static 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 | |||
446 | static 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 | |||
452 | static struct platform_device bfin_dpmc = { | ||
453 | .name = "bfin dpmc", | ||
454 | .dev = { | ||
455 | .platform_data = &bfin_dmpc_vreg_data, | ||
456 | }, | ||
457 | }; | ||
458 | |||
431 | static struct platform_device *cm_bf537_devices[] __initdata = { | 459 | static 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 | ||
821 | static 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 | |||
835 | static 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 | |||
841 | static struct platform_device bfin_dpmc = { | ||
842 | .name = "bfin dpmc", | ||
843 | .dev = { | ||
844 | .platform_data = &bfin_dmpc_vreg_data, | ||
845 | }, | ||
846 | }; | ||
847 | |||
820 | static struct platform_device *stamp_devices[] __initdata = { | 848 | static 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 |