aboutsummaryrefslogtreecommitdiffstats
path: root/arch/blackfin/mach-bf537/boards/stamp.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/blackfin/mach-bf537/boards/stamp.c')
-rw-r--r--arch/blackfin/mach-bf537/boards/stamp.c40
1 files changed, 33 insertions, 7 deletions
diff --git a/arch/blackfin/mach-bf537/boards/stamp.c b/arch/blackfin/mach-bf537/boards/stamp.c
index d3727b7c2d7d..671f9d67f23a 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/*
@@ -399,9 +400,6 @@ static struct platform_device stamp_flash_device = {
399}; 400};
400#endif 401#endif
401 402
402#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE)
403/* all SPI peripherals info goes here */
404
405#if defined(CONFIG_MTD_M25P80) \ 403#if defined(CONFIG_MTD_M25P80) \
406 || defined(CONFIG_MTD_M25P80_MODULE) 404 || defined(CONFIG_MTD_M25P80_MODULE)
407static struct mtd_partition bfin_spi_flash_partitions[] = { 405static struct mtd_partition bfin_spi_flash_partitions[] = {
@@ -628,6 +626,7 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
628#endif 626#endif
629}; 627};
630 628
629#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE)
631/* SPI controller data */ 630/* SPI controller data */
632static struct bfin5xx_spi_master bfin_spi0_info = { 631static struct bfin5xx_spi_master bfin_spi0_info = {
633 .num_chipselect = 8, 632 .num_chipselect = 8,
@@ -817,7 +816,37 @@ static struct platform_device bfin_pata_device = {
817}; 816};
818#endif 817#endif
819 818
819static const unsigned int cclk_vlev_datasheet[] =
820{
821 VRPAIR(VLEV_085, 250000000),
822 VRPAIR(VLEV_090, 376000000),
823 VRPAIR(VLEV_095, 426000000),
824 VRPAIR(VLEV_100, 426000000),
825 VRPAIR(VLEV_105, 476000000),
826 VRPAIR(VLEV_110, 476000000),
827 VRPAIR(VLEV_115, 476000000),
828 VRPAIR(VLEV_120, 500000000),
829 VRPAIR(VLEV_125, 533000000),
830 VRPAIR(VLEV_130, 600000000),
831};
832
833static struct bfin_dpmc_platform_data bfin_dmpc_vreg_data = {
834 .tuple_tab = cclk_vlev_datasheet,
835 .tabsize = ARRAY_SIZE(cclk_vlev_datasheet),
836 .vr_settling_time = 25 /* us */,
837};
838
839static struct platform_device bfin_dpmc = {
840 .name = "bfin dpmc",
841 .dev = {
842 .platform_data = &bfin_dmpc_vreg_data,
843 },
844};
845
820static struct platform_device *stamp_devices[] __initdata = { 846static struct platform_device *stamp_devices[] __initdata = {
847
848 &bfin_dpmc,
849
821#if defined(CONFIG_BFIN_CFPCMCIA) || defined(CONFIG_BFIN_CFPCMCIA_MODULE) 850#if defined(CONFIG_BFIN_CFPCMCIA) || defined(CONFIG_BFIN_CFPCMCIA_MODULE)
822 &bfin_pcmcia_cf_device, 851 &bfin_pcmcia_cf_device,
823#endif 852#endif
@@ -908,10 +937,7 @@ static int __init stamp_init(void)
908#endif 937#endif
909 938
910 platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); 939 platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices));
911#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) 940 spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info));
912 spi_register_board_info(bfin_spi_board_info,
913 ARRAY_SIZE(bfin_spi_board_info));
914#endif
915 941
916#if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE) 942#if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE)
917 irq_desc[PATA_INT].status |= IRQ_NOAUTOEN; 943 irq_desc[PATA_INT].status |= IRQ_NOAUTOEN;