[PATCH 11/12] board hmi10: enable support for SPI
Jan Luebbe
jlu at pengutronix.de
Tue Jun 26 05:51:53 EDT 2012
Signed-off-by: Jan Luebbe <jlu at pengutronix.de>
---
arch/arm/boards/hmi10/board.c | 39 +++++++++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)
diff --git a/arch/arm/boards/hmi10/board.c b/arch/arm/boards/hmi10/board.c
index bc3283d..1ec2ea2 100644
--- a/arch/arm/boards/hmi10/board.c
+++ b/arch/arm/boards/hmi10/board.c
@@ -34,6 +34,7 @@
#include <mach/aemif.h>
#include <mach/hardware.h>
#include <mach/nand.h>
+#include <mach/spi.h>
#include <mach/da8xx.h>
#ifdef CONFIG_DRIVER_SERIAL_NS16550
@@ -101,12 +102,50 @@ static struct davinci_nand_pdata hmi10_nandflash_data = {
.timing = &hmi10_nandflash_timing,
};
+static struct spi_board_info hmi10_spi1_board_info[] = {
+ /* 20 MHz according to datasheet for 130nm and normal READ (!= FAST_READ) */
+ {
+ .name = "m25p",
+ .max_speed_hz = 20000000,
+ .bus_num = 1,
+ .chip_select = 0,
+ .mode = SPI_MODE_0,
+ },
+ {
+ .name = "m25p",
+ .max_speed_hz = 20000000,
+ .bus_num = 1,
+ .chip_select = 1,
+ .mode = SPI_MODE_0,
+ },
+};
+
+static struct davinci_spi_master_pdata hmi10_spi1_pdata = {
+ .num_chipselect = 2,
+ .bus_num = 1,
+};
+
static int hmi10_devices_init(void)
{
lpsc_on(DAVINCI_LPSC_AEMIF);
add_generic_device("davinci_nand", -1, NULL, DAVINCI_ASYNC_EMIF_CNTRL_BASE, 0,
IORESOURCE_MEM, &hmi10_nandflash_data);
+ lpsc_on(DAVINCI_LPSC_SPI1);
+ spi_register_board_info(hmi10_spi1_board_info, ARRAY_SIZE(hmi10_spi1_board_info));
+ hmi10_spi1_pdata.clk_id = DAVINCI_SPI1_CLKID;
+ add_generic_device("davinci_spi", 1, NULL, DAVINCI_SPI1_BASE, 0x68,
+ IORESOURCE_MEM, &hmi10_spi1_pdata);
+
+ /* one sector for the UBL (TI User Boot Loader) */
+ devfs_add_partition("m25p0", 0x00000, 0x40000,
+ DEVFS_PARTITION_FIXED|DEVFS_PARTITION_READONLY, "ubl"); /* 256k */
+ /* one sector for barebox itself */
+ devfs_add_partition("m25p0", 0x40000, 0x40000,
+ DEVFS_PARTITION_FIXED|DEVFS_PARTITION_READONLY, "self0"); /* 256k */
+ /* two sectors for read-write environment */
+ devfs_add_partition("m25p0", 0x80000, 0x80000, DEVFS_PARTITION_FIXED, "env0"); /* 512k */
+
armlinux_set_bootparams((void *)0xc0000100);
armlinux_set_architecture(MACH_TYPE_DAVINCI_HE_HMI10);
--
1.7.10
More information about the barebox
mailing list