linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/6] davinci: Add SPI support for da8xx platforms
@ 2011-02-09 13:11 Michael Williamson
  2011-02-09 13:11 ` [PATCH v2 1/6] davinci: da830: fix driver name for spi clocks Michael Williamson
                   ` (5 more replies)
  0 siblings, 6 replies; 11+ messages in thread
From: Michael Williamson @ 2011-02-09 13:11 UTC (permalink / raw)
  To: linux-arm-kernel

This patch series adds the necessary SPI resources and registration
routines for da850/OMAP-L138/AM18x and da830/OMAP-L137/AM17x devices.
It also adds on-board SPI FLASH devices for the da830 evm, the da850
evm, and the MityDSP-L138/MityARM-1808 platforms.

These patches are based on work done during testing of davinci SPI driver
submissions incorporated in version 2.6.38 of the kernel, at [1].

The da850 and da830 EVM portions of this patch need verification / ack.

The MityDSP-L138 platform patch has been tested.

The patch series is against linux-davinci tree, but is dependent on the 
patches [2] (approved, but not applied) and [3] (submitted 2/3/2011), which 
were generated as a result of initial review of this series.

[1] http://arago-project.org/git/projects/?p=linux-davinci.git;a=shortlog;h=refs/heads/davinci-spi-rewrite
[2] https://patchwork.kernel.org/patch/540831/
[3] https://patchwork.kernel.org/patch/530471/

---
Changes since v1:
   - move event queue parameter to platform data structures
   - move magic numbers to #defines
   - rename da830 spi clock name to match driver
   - clarify patch description for resource additions per comments

Michael Williamson (4):
  davinci: da830: fix driver name for spi clocks
  davinci: da850: add spi device clock definitions
  davinci: da8xx: add spi resources and registration routine
  davinci: add spi devices support for MityDSP-L138/MityARM-1808
    platform

Sekhar Nori (2):
  davinci: add spi devices support for da850/omap-l138/am18x evm
  davinci: add spi devices support for da830/omap-l137/am17x evm

 arch/arm/mach-davinci/board-da830-evm.c    |   78 ++++++++++++++++++++++
 arch/arm/mach-davinci/board-da850-evm.c    |   84 +++++++++++++++++++++++
 arch/arm/mach-davinci/board-mityomapl138.c |  100 ++++++++++++++++++++++++++++
 arch/arm/mach-davinci/da830.c              |    4 +-
 arch/arm/mach-davinci/da850.c              |   16 +++++
 arch/arm/mach-davinci/devices-da8xx.c      |   98 +++++++++++++++++++++++++++
 arch/arm/mach-davinci/include/mach/da8xx.h |    3 +
 7 files changed, 381 insertions(+), 2 deletions(-)

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH v2 1/6] davinci: da830: fix driver name for spi clocks
  2011-02-09 13:11 [PATCH v2 0/6] davinci: Add SPI support for da8xx platforms Michael Williamson
@ 2011-02-09 13:11 ` Michael Williamson
  2011-02-09 13:11 ` [PATCH v2 2/6] davinci: da850: add spi device clock definitions Michael Williamson
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 11+ messages in thread
From: Michael Williamson @ 2011-02-09 13:11 UTC (permalink / raw)
  To: linux-arm-kernel

The spi driver name called out for the da830 spi clock list is not correct,
fix it.

Signed-off-by: Michael Williamson <michael.williamson@criticallink.com>
---
 arch/arm/mach-davinci/da830.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-davinci/da830.c b/arch/arm/mach-davinci/da830.c
index ec23ab4..826118e 100644
--- a/arch/arm/mach-davinci/da830.c
+++ b/arch/arm/mach-davinci/da830.c
@@ -397,8 +397,8 @@ static struct clk_lookup da830_clks[] = {
 	CLK(NULL,		"uart0",	&uart0_clk),
 	CLK(NULL,		"uart1",	&uart1_clk),
 	CLK(NULL,		"uart2",	&uart2_clk),
-	CLK("dm_spi.0",		NULL,		&spi0_clk),
-	CLK("dm_spi.1",		NULL,		&spi1_clk),
+	CLK("spi_davinci.0",	NULL,		&spi0_clk),
+	CLK("spi_davinci.1",	NULL,		&spi1_clk),
 	CLK(NULL,		"ecap0",	&ecap0_clk),
 	CLK(NULL,		"ecap1",	&ecap1_clk),
 	CLK(NULL,		"ecap2",	&ecap2_clk),
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v2 2/6] davinci: da850: add spi device clock definitions
  2011-02-09 13:11 [PATCH v2 0/6] davinci: Add SPI support for da8xx platforms Michael Williamson
  2011-02-09 13:11 ` [PATCH v2 1/6] davinci: da830: fix driver name for spi clocks Michael Williamson
@ 2011-02-09 13:11 ` Michael Williamson
  2011-02-09 13:11 ` [PATCH v2 3/6] davinci: da8xx: add spi resources and registration routine Michael Williamson
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 11+ messages in thread
From: Michael Williamson @ 2011-02-09 13:11 UTC (permalink / raw)
  To: linux-arm-kernel

Add spi clock information for da850.

Signed-off-by: Michael Williamson <michael.williamson@criticallink.com>
---
 arch/arm/mach-davinci/da850.c |   16 ++++++++++++++++
 1 files changed, 16 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-davinci/da850.c b/arch/arm/mach-davinci/da850.c
index 3443d97..68fe4c2 100644
--- a/arch/arm/mach-davinci/da850.c
+++ b/arch/arm/mach-davinci/da850.c
@@ -359,6 +359,20 @@ static struct clk usb20_clk = {
 	.gpsc		= 1,
 };
 
+static struct clk spi0_clk = {
+	.name		= "spi0",
+	.parent		= &pll0_sysclk2,
+	.lpsc		= DA8XX_LPSC0_SPI0,
+};
+
+static struct clk spi1_clk = {
+	.name		= "spi1",
+	.parent		= &pll0_sysclk2,
+	.lpsc		= DA8XX_LPSC1_SPI1,
+	.gpsc		= 1,
+	.flags		= DA850_CLK_ASYNC3,
+};
+
 static struct clk_lookup da850_clks[] = {
 	CLK(NULL,		"ref",		&ref_clk),
 	CLK(NULL,		"pll0",		&pll0_clk),
@@ -403,6 +417,8 @@ static struct clk_lookup da850_clks[] = {
 	CLK(NULL,		"aemif",	&aemif_clk),
 	CLK(NULL,		"usb11",	&usb11_clk),
 	CLK(NULL,		"usb20",	&usb20_clk),
+	CLK("spi_davinci.0",	NULL,		&spi0_clk),
+	CLK("spi_davinci.1",	NULL,		&spi1_clk),
 	CLK(NULL,		NULL,		NULL),
 };
 
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v2 3/6] davinci: da8xx: add spi resources and registration routine
  2011-02-09 13:11 [PATCH v2 0/6] davinci: Add SPI support for da8xx platforms Michael Williamson
  2011-02-09 13:11 ` [PATCH v2 1/6] davinci: da830: fix driver name for spi clocks Michael Williamson
  2011-02-09 13:11 ` [PATCH v2 2/6] davinci: da850: add spi device clock definitions Michael Williamson
@ 2011-02-09 13:11 ` Michael Williamson
  2011-02-22  6:14   ` Nori, Sekhar
  2011-02-09 13:11 ` [PATCH v2 4/6] davinci: add spi devices support for MityDSP-L138/MityARM-1808 platform Michael Williamson
                   ` (2 subsequent siblings)
  5 siblings, 1 reply; 11+ messages in thread
From: Michael Williamson @ 2011-02-09 13:11 UTC (permalink / raw)
  To: linux-arm-kernel

Add IO resource structures, platform data, and a registration
routine in order to support spi device on DA850/OMAP-L138/AM18x
and DA830/OMAP-L137/AM17x platforms.

Signed-off-by: Michael Williamson <michael.williamson@criticallink.com>
---
 arch/arm/mach-davinci/devices-da8xx.c      |   98 ++++++++++++++++++++++++++++
 arch/arm/mach-davinci/include/mach/da8xx.h |    3 +
 2 files changed, 101 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-davinci/devices-da8xx.c b/arch/arm/mach-davinci/devices-da8xx.c
index 119d46e..b72399a 100644
--- a/arch/arm/mach-davinci/devices-da8xx.c
+++ b/arch/arm/mach-davinci/devices-da8xx.c
@@ -38,14 +38,20 @@
 #define DA8XX_EMAC_MDIO_BASE		0x01e24000
 #define DA8XX_GPIO_BASE			0x01e26000
 #define DA8XX_I2C1_BASE			0x01e28000
+#define DA8XX_SPI0_BASE			0x01c41000
+#define DA8XX_SPI1_BASE			0x01f0e000
 
 #define DA8XX_EMAC_CTRL_REG_OFFSET	0x3000
 #define DA8XX_EMAC_MOD_REG_OFFSET	0x2000
 #define DA8XX_EMAC_RAM_OFFSET		0x0000
 #define DA8XX_EMAC_CTRL_RAM_SIZE	SZ_8K
 
+#define DA8XX_DMA_SPI0_RX	EDMA_CTLR_CHAN(0, 14)
+#define DA8XX_DMA_SPI0_TX	EDMA_CTLR_CHAN(0, 15)
 #define DA8XX_DMA_MMCSD0_RX	EDMA_CTLR_CHAN(0, 16)
 #define DA8XX_DMA_MMCSD0_TX	EDMA_CTLR_CHAN(0, 17)
+#define DA8XX_DMA_SPI1_RX	EDMA_CTLR_CHAN(0, 18)
+#define DA8XX_DMA_SPI1_TX	EDMA_CTLR_CHAN(0, 19)
 #define DA850_DMA_MMCSD1_RX	EDMA_CTLR_CHAN(1, 28)
 #define DA850_DMA_MMCSD1_TX	EDMA_CTLR_CHAN(1, 29)
 
@@ -730,3 +736,95 @@ int __init da8xx_register_cpuidle(void)
 
 	return platform_device_register(&da8xx_cpuidle_device);
 }
+
+static struct resource da8xx_spi0_resources[] = {
+	[0] = {
+		.start	= DA8XX_SPI0_BASE,
+		.end	= DA8XX_SPI0_BASE + SZ_4K - 1,
+		.flags	= IORESOURCE_MEM,
+	},
+	[1] = {
+		.start	= IRQ_DA8XX_SPINT0,
+		.end	= IRQ_DA8XX_SPINT0,
+		.flags	= IORESOURCE_IRQ,
+	},
+	[2] = {
+		.start	= DA8XX_DMA_SPI0_RX,
+		.end	= DA8XX_DMA_SPI0_RX,
+		.flags	= IORESOURCE_DMA,
+	},
+	[3] = {
+		.start	= DA8XX_DMA_SPI0_TX,
+		.end	= DA8XX_DMA_SPI0_TX,
+		.flags	= IORESOURCE_DMA,
+	},
+};
+
+static struct resource da8xx_spi1_resources[] = {
+	[0] = {
+		.start	= DA8XX_SPI1_BASE,
+		.end	= DA8XX_SPI1_BASE + SZ_4K -1,
+		.flags	= IORESOURCE_MEM,
+	},
+	[1] = {
+		.start	= IRQ_DA8XX_SPINT1,
+		.end	= IRQ_DA8XX_SPINT1,
+		.flags	= IORESOURCE_IRQ,
+	},
+	[2] = {
+		.start	= DA8XX_DMA_SPI1_RX,
+		.end	= DA8XX_DMA_SPI1_RX,
+		.flags	= IORESOURCE_DMA,
+	},
+	[3] = {
+		.start	= DA8XX_DMA_SPI1_TX,
+		.end	= DA8XX_DMA_SPI1_TX,
+		.flags	= IORESOURCE_DMA,
+	},
+};
+
+struct davinci_spi_platform_data da8xx_spi_pdata[] = {
+	[0] = {
+		.version	= SPI_VERSION_2,
+		.intr_line	= 1,
+		.dma_event_q	= EVENTQ_0,
+	},
+	[1] = {
+		.version	= SPI_VERSION_2,
+		.intr_line	= 1,
+		.dma_event_q	= EVENTQ_0,
+	},
+};
+
+static struct platform_device da8xx_spi_device[] = {
+	[0] = {
+		.name		= "spi_davinci",
+		.id		= 0,
+		.num_resources	= ARRAY_SIZE(da8xx_spi0_resources),
+		.resource	= da8xx_spi0_resources,
+		.dev		= {
+			.platform_data = &da8xx_spi_pdata[0],
+		},
+	},
+	[1] = {
+		.name		= "spi_davinci",
+		.id		= 1,
+		.num_resources	= ARRAY_SIZE(da8xx_spi1_resources),
+		.resource	= da8xx_spi1_resources,
+		.dev		= {
+			.platform_data = &da8xx_spi_pdata[1],
+		},
+	},
+};
+
+int __init da8xx_register_spi(int instance)
+{
+	struct platform_device *pdev;
+
+	if (instance == 0 || instance == 1)
+		pdev = &da8xx_spi_device[instance];
+	else
+		return -EINVAL;
+
+	return platform_device_register(pdev);
+}
diff --git a/arch/arm/mach-davinci/include/mach/da8xx.h b/arch/arm/mach-davinci/include/mach/da8xx.h
index cfcb223..0c5fa01 100644
--- a/arch/arm/mach-davinci/include/mach/da8xx.h
+++ b/arch/arm/mach-davinci/include/mach/da8xx.h
@@ -23,6 +23,7 @@
 #include <mach/mmc.h>
 #include <mach/usb.h>
 #include <mach/pm.h>
+#include <mach/spi.h>
 
 extern void __iomem *da8xx_syscfg0_base;
 extern void __iomem *da8xx_syscfg1_base;
@@ -77,6 +78,7 @@ void __init da850_init(void);
 int da830_register_edma(struct edma_rsv_info *rsv);
 int da850_register_edma(struct edma_rsv_info *rsv[2]);
 int da8xx_register_i2c(int instance, struct davinci_i2c_platform_data *pdata);
+int da8xx_register_spi(int instance);
 int da8xx_register_watchdog(void);
 int da8xx_register_usb20(unsigned mA, unsigned potpgt);
 int da8xx_register_usb11(struct da8xx_ohci_root_hub *pdata);
@@ -95,6 +97,7 @@ extern struct platform_device da8xx_serial_device;
 extern struct emac_platform_data da8xx_emac_pdata;
 extern struct da8xx_lcdc_platform_data sharp_lcd035q3dg01_pdata;
 extern struct da8xx_lcdc_platform_data sharp_lk043t1dg01_pdata;
+extern struct davinci_spi_platform_data da8xx_spi_pdata[];
 
 extern struct platform_device da8xx_wdt_device;
 
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v2 4/6] davinci: add spi devices support for MityDSP-L138/MityARM-1808 platform
  2011-02-09 13:11 [PATCH v2 0/6] davinci: Add SPI support for da8xx platforms Michael Williamson
                   ` (2 preceding siblings ...)
  2011-02-09 13:11 ` [PATCH v2 3/6] davinci: da8xx: add spi resources and registration routine Michael Williamson
@ 2011-02-09 13:11 ` Michael Williamson
  2011-02-09 13:11 ` [PATCH v2 5/6] davinci: add spi devices support for da850/omap-l138/am18x evm Michael Williamson
  2011-02-09 13:11 ` [PATCH v2 6/6] davinci: add spi devices support for da830/omap-l137/am17x evm Michael Williamson
  5 siblings, 0 replies; 11+ messages in thread
From: Michael Williamson @ 2011-02-09 13:11 UTC (permalink / raw)
  To: linux-arm-kernel

This patch adds support for accessing the on board SPI NOR FLASH
device for MityDSP-L138 and MityARM-1808 SoMs.

Signed-off-by: Michael Williamson <michael.williamson@criticallink.com>
Tested-by: Michael Williamson <michael.williamson@criticallink.com>
---
 arch/arm/mach-davinci/board-mityomapl138.c |  100 ++++++++++++++++++++++++++++
 1 files changed, 100 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-davinci/board-mityomapl138.c b/arch/arm/mach-davinci/board-mityomapl138.c
index 0ea5932..dc4c3f1 100644
--- a/arch/arm/mach-davinci/board-mityomapl138.c
+++ b/arch/arm/mach-davinci/board-mityomapl138.c
@@ -17,6 +17,8 @@
 #include <linux/i2c.h>
 #include <linux/i2c/at24.h>
 #include <linux/etherdevice.h>
+#include <linux/spi/spi.h>
+#include <linux/spi/flash.h>
 
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
@@ -25,6 +27,7 @@
 #include <mach/da8xx.h>
 #include <mach/nand.h>
 #include <mach/mux.h>
+#include <mach/spi.h>
 
 #define MITYOMAPL138_PHY_ID		"0:03"
 
@@ -294,6 +297,100 @@ static int __init pmic_tps65023_init(void)
 }
 
 /*
+ * SPI Devices:
+ *	SPI1_CS0: 8M Flash ST-M25P64-VME6G
+ */
+static struct mtd_partition spi_flash_partitions[] = {
+	[0] = {
+		.name		= "ubl",
+		.offset		= 0,
+		.size		= SZ_64K,
+		.mask_flags	= MTD_WRITEABLE,
+	},
+	[1] = {
+		.name		= "u-boot",
+		.offset		= MTDPART_OFS_APPEND,
+		.size		= SZ_512K,
+		.mask_flags	= MTD_WRITEABLE,
+	},
+	[2] = {
+		.name		= "u-boot-env",
+		.offset		= MTDPART_OFS_APPEND,
+		.size		= SZ_64K,
+		.mask_flags	= MTD_WRITEABLE,
+	},
+	[3] = {
+		.name		= "periph-config",
+		.offset		= MTDPART_OFS_APPEND,
+		.size		= SZ_64K,
+		.mask_flags	= MTD_WRITEABLE,
+	},
+	[4] = {
+		.name		= "reserved",
+		.offset		= MTDPART_OFS_APPEND,
+		.size		= SZ_256K + SZ_64K,
+	},
+	[5] = {
+		.name		= "kernel",
+		.offset		= MTDPART_OFS_APPEND,
+		.size		= SZ_2M + SZ_1M,
+	},
+	[6] = {
+		.name		= "fpga",
+		.offset		= MTDPART_OFS_APPEND,
+		.size		= SZ_2M,
+	},
+	[7] = {
+		.name		= "spare",
+		.offset		= MTDPART_OFS_APPEND,
+		.size		= MTDPART_SIZ_FULL,
+	},
+};
+
+static struct flash_platform_data mityomapl138_spi_flash_data = {
+	.name		= "m25p80",
+	.parts		= spi_flash_partitions,
+	.nr_parts	= ARRAY_SIZE(spi_flash_partitions),
+	.type		= "m24p64",
+};
+
+static struct davinci_spi_config spi_eprom_config = {
+	.io_type	= SPI_IO_TYPE_DMA,
+	.c2tdelay	= 8,
+	.t2cdelay	= 8,
+};
+
+static struct spi_board_info mityomapl138_spi_flash_info[] = {
+	{
+		.modalias		= "m25p80",
+		.platform_data		= &mityomapl138_spi_flash_data,
+		.controller_data	= &spi_eprom_config,
+		.mode			= SPI_MODE_0,
+		.max_speed_hz		= 30000000,
+		.bus_num		= 1,
+		.chip_select		= 0,
+	},
+};
+
+static void __init mityomapl138_init_spi1(struct spi_board_info *info,
+					  unsigned len)
+{
+	int ret;
+
+	ret = spi_register_board_info(info, len);
+	if (ret)
+		pr_warning("%s: failed to register board info : %d\n",
+				__func__, ret);
+
+	da8xx_spi_pdata[1].num_chipselect = len;
+
+	ret = da8xx_register_spi(1);
+	if (ret)
+		pr_warning("%s: failed to register spi 1 device : %d\n",
+				__func__, ret);
+}
+
+/*
  * MityDSP-L138 includes a 256 MByte large-page NAND flash
  * (128K blocks).
  */
@@ -448,6 +545,9 @@ static void __init mityomapl138_init(void)
 
 	mityomapl138_setup_nand();
 
+	mityomapl138_init_spi1(mityomapl138_spi_flash_info,
+			       ARRAY_SIZE(mityomapl138_spi_flash_info));
+
 	mityomapl138_config_emac();
 
 	ret = da8xx_register_rtc();
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v2 5/6] davinci: add spi devices support for da850/omap-l138/am18x evm
  2011-02-09 13:11 [PATCH v2 0/6] davinci: Add SPI support for da8xx platforms Michael Williamson
                   ` (3 preceding siblings ...)
  2011-02-09 13:11 ` [PATCH v2 4/6] davinci: add spi devices support for MityDSP-L138/MityARM-1808 platform Michael Williamson
@ 2011-02-09 13:11 ` Michael Williamson
  2011-02-22  6:37   ` Nori, Sekhar
  2011-02-09 13:11 ` [PATCH v2 6/6] davinci: add spi devices support for da830/omap-l137/am17x evm Michael Williamson
  5 siblings, 1 reply; 11+ messages in thread
From: Michael Williamson @ 2011-02-09 13:11 UTC (permalink / raw)
  To: linux-arm-kernel

From: Sekhar Nori <nsekhar@ti.com>

This patch adds the on-board SPI flash device to the
DA850/OMAP-L138/AM18x EVM. It also registers the SPI flash
device to the MTD subsystem.

Based on SPI flash device support for MityDSP-L138F platform.

Signed-off-by: Sekhar Nori <nsekhar@ti.com>
[michael.williamson at criticallink.com: moved da850_evm_spi1_pdata to devices-da8xx.c]
Signed-off-by: Michael Williamson <michael.williamson@criticallink.com>
---
 arch/arm/mach-davinci/board-da850-evm.c |   84 +++++++++++++++++++++++++++++++
 1 files changed, 84 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-davinci/board-da850-evm.c b/arch/arm/mach-davinci/board-da850-evm.c
index 11f986b..487bd3a 100644
--- a/arch/arm/mach-davinci/board-da850-evm.c
+++ b/arch/arm/mach-davinci/board-da850-evm.c
@@ -29,6 +29,8 @@
 #include <linux/regulator/machine.h>
 #include <linux/regulator/tps6507x.h>
 #include <linux/input/tps6507x-ts.h>
+#include <linux/spi/spi.h>
+#include <linux/spi/flash.h>
 
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
@@ -38,6 +40,7 @@
 #include <mach/nand.h>
 #include <mach/mux.h>
 #include <mach/aemif.h>
+#include <mach/spi.h>
 
 #define DA850_EVM_PHY_ID		"0:00"
 #define DA850_LCD_PWR_PIN		GPIO_TO_PIN(2, 8)
@@ -48,6 +51,85 @@
 
 #define DA850_MII_MDIO_CLKEN_PIN	GPIO_TO_PIN(2, 6)
 
+static struct mtd_partition da850evm_spiflash_part[] = {
+	[0] = {
+		.name = "UBL",
+		.offset = 0,
+		.size = SZ_64K,
+		.mask_flags = MTD_WRITEABLE,
+	},
+	[1] = {
+		.name = "U-Boot",
+		.offset = MTDPART_OFS_APPEND,
+		.size = SZ_512K,
+		.mask_flags = MTD_WRITEABLE,
+	},
+	[2] = {
+		.name = "U-Boot-Env",
+		.offset = MTDPART_OFS_APPEND,
+		.size = SZ_64K,
+		.mask_flags = MTD_WRITEABLE,
+	},
+	[3] = {
+		.name = "Kernel",
+		.offset = MTDPART_OFS_APPEND,
+		.size = SZ_2M + SZ_512K,
+		.mask_flags = 0,
+	},
+	[4] = {
+		.name = "Filesystem",
+		.offset = MTDPART_OFS_APPEND,
+		.size = SZ_4M,
+		.mask_flags = 0,
+	},
+	[5] = {
+		.name = "MAC-Address",
+		.offset = SZ_8M - SZ_64K,
+		.size = SZ_64K,
+		.mask_flags = MTD_WRITEABLE,
+	},
+};
+
+static struct flash_platform_data da850evm_spiflash_data = {
+	.name		= "m25p80",
+	.parts		= da850evm_spiflash_part,
+	.nr_parts	= ARRAY_SIZE(da850evm_spiflash_part),
+	.type		= "m25p64",
+};
+
+static struct davinci_spi_config da850evm_spiflash_cfg = {
+	.io_type	= SPI_IO_TYPE_DMA,
+	.c2tdelay	= 8,
+	.t2cdelay	= 8,
+};
+
+static struct spi_board_info da850evm_spi_info[] = {
+	{
+		.modalias		= "m25p80",
+		.platform_data		= &da850evm_spiflash_data,
+		.controller_data	= &da850evm_spiflash_cfg,
+		.mode			= SPI_MODE_0,
+		.max_speed_hz		= 30000000,
+		.bus_num		= 1,
+		.chip_select		= 0,
+	},
+};
+
+static void __init da850evm_init_spi1(struct spi_board_info *info, unsigned len)
+{
+	int ret;
+
+	ret = spi_register_board_info(info, len);
+	if (ret)
+		pr_warning("failed to register board info : %d\n", ret);
+
+	da8xx_spi_pdata[1].num_chipselect = len;
+
+	ret = da8xx_register_spi(1);
+	if (ret)
+		pr_warning("failed to register spi 1 device : %d\n", ret);
+}
+
 static struct mtd_partition da850_evm_norflash_partition[] = {
 	{
 		.name           = "bootloaders + env",
@@ -1167,6 +1249,8 @@ static __init void da850_evm_init(void)
 	if (ret)
 		pr_warning("da850_evm_init: suspend registration failed: %d\n",
 				ret);
+
+	da850evm_init_spi1(da850evm_spi_info, ARRAY_SIZE(da850evm_spi_info));
 }
 
 #ifdef CONFIG_SERIAL_8250_CONSOLE
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v2 6/6] davinci: add spi devices support for da830/omap-l137/am17x evm
  2011-02-09 13:11 [PATCH v2 0/6] davinci: Add SPI support for da8xx platforms Michael Williamson
                   ` (4 preceding siblings ...)
  2011-02-09 13:11 ` [PATCH v2 5/6] davinci: add spi devices support for da850/omap-l138/am18x evm Michael Williamson
@ 2011-02-09 13:11 ` Michael Williamson
  5 siblings, 0 replies; 11+ messages in thread
From: Michael Williamson @ 2011-02-09 13:11 UTC (permalink / raw)
  To: linux-arm-kernel

From: Sekhar Nori <nsekhar@ti.com>

This patch adds the on-board SPI flash device to the
DA830/OMAP-L137/AM17x EVM. It also registers the SPI flash
device to the MTD subsystem.

Based on SPI flash device support for MityDSP-L138F platform.

Signed-off-by: Sekhar Nori <nsekhar@ti.com>
[michael.williamson at criticallink.com: moved da830evm_spi0_pdata to devices-da8xx.c]
Signed-off-by: Michael Williamson <michael.williamson@criticallink.com>
---
 arch/arm/mach-davinci/board-da830-evm.c |   78 +++++++++++++++++++++++++++++++
 1 files changed, 78 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-davinci/board-da830-evm.c b/arch/arm/mach-davinci/board-da830-evm.c
index b52a3a1..01319bd 100644
--- a/arch/arm/mach-davinci/board-da830-evm.c
+++ b/arch/arm/mach-davinci/board-da830-evm.c
@@ -20,6 +20,8 @@
 #include <linux/i2c/at24.h>
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/partitions.h>
+#include <linux/spi/spi.h>
+#include <linux/spi/flash.h>
 
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
@@ -30,6 +32,7 @@
 #include <mach/da8xx.h>
 #include <mach/usb.h>
 #include <mach/aemif.h>
+#include <mach/spi.h>
 
 #define DA830_EVM_PHY_ID		""
 /*
@@ -534,6 +537,79 @@ static struct edma_rsv_info da830_edma_rsv[] = {
 	},
 };
 
+static struct mtd_partition da830evm_spiflash_part[] = {
+	[0] = {
+		.name = "DSP-UBL",
+		.offset = 0,
+		.size = SZ_8K,
+		.mask_flags = MTD_WRITEABLE,
+	},
+	[1] = {
+		.name = "ARM-UBL",
+		.offset = MTDPART_OFS_APPEND,
+		.size = SZ_16K + SZ_8K,
+		.mask_flags = MTD_WRITEABLE,
+	},
+	[2] = {
+		.name = "U-Boot",
+		.offset = MTDPART_OFS_APPEND,
+		.size = SZ_256K - SZ_32K,
+		.mask_flags = MTD_WRITEABLE,
+	},
+	[3] = {
+		.name = "U-Boot-Environment",
+		.offset = MTDPART_OFS_APPEND,
+		.size = SZ_16K,
+		.mask_flags = 0,
+	},
+	[4] = {
+		.name = "Kernel",
+		.offset = MTDPART_OFS_APPEND,
+		.size = MTDPART_SIZ_FULL,
+		.mask_flags = 0,
+	},
+};
+
+static struct flash_platform_data da830evm_spiflash_data = {
+	.name		= "m25p80",
+	.parts		= da830evm_spiflash_part,
+	.nr_parts	= ARRAY_SIZE(da830evm_spiflash_part),
+	.type		= "w25x32",
+};
+
+static struct davinci_spi_config da830evm_spiflash_cfg = {
+	.io_type	= SPI_IO_TYPE_DMA,
+	.c2tdelay	= 8,
+	.t2cdelay	= 8,
+};
+
+static struct spi_board_info da830evm_spi_info[] = {
+	{
+		.modalias		= "m25p80",
+		.platform_data		= &da830evm_spiflash_data,
+		.controller_data	= &da830evm_spiflash_cfg,
+		.mode			= SPI_MODE_0,
+		.max_speed_hz		= 30000000,
+		.bus_num		= 0,
+		.chip_select		= 0,
+	},
+};
+
+static void __init da830evm_init_spi0(struct spi_board_info *info, unsigned len)
+{
+	int ret;
+
+	ret = spi_register_board_info(info, len);
+	if (ret)
+		pr_warning("failed to register board info : %d\n", ret);
+
+	da8xx_spi_pdata[0].num_chipselect = len;
+
+	ret = da8xx_register_spi(0);
+	if (ret)
+		pr_warning("failed to register spi 0 device : %d\n", ret);
+}
+
 static __init void da830_evm_init(void)
 {
 	struct davinci_soc_info *soc_info = &davinci_soc_info;
@@ -590,6 +666,8 @@ static __init void da830_evm_init(void)
 	ret = da8xx_register_rtc();
 	if (ret)
 		pr_warning("da830_evm_init: rtc setup failed: %d\n", ret);
+
+	da830evm_init_spi0(da830evm_spi_info, ARRAY_SIZE(da830evm_spi_info));
 }
 
 #ifdef CONFIG_SERIAL_8250_CONSOLE
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v2 3/6] davinci: da8xx: add spi resources and registration routine
  2011-02-09 13:11 ` [PATCH v2 3/6] davinci: da8xx: add spi resources and registration routine Michael Williamson
@ 2011-02-22  6:14   ` Nori, Sekhar
  2011-02-22 12:13     ` Michael Williamson
  0 siblings, 1 reply; 11+ messages in thread
From: Nori, Sekhar @ 2011-02-22  6:14 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Mike,

On Wed, Feb 09, 2011 at 18:41:51, Michael Williamson wrote:
> Add IO resource structures, platform data, and a registration
> routine in order to support spi device on DA850/OMAP-L138/AM18x
> and DA830/OMAP-L137/AM17x platforms.
> 
> Signed-off-by: Michael Williamson <michael.williamson@criticallink.com>

[...]

> +static struct resource da8xx_spi1_resources[] = {
> +	[0] = {
> +		.start	= DA8XX_SPI1_BASE,
> +		.end	= DA8XX_SPI1_BASE + SZ_4K -1,

checkpatch reports a warning here. Need to have spaces
on either side of binary '-'

I tested this series and the two patches it depends on
using SPI flash present on DA850 and DA830 EVMs (tested
in DMA mode) and found no issues.

So, with this minor issue fixed, can you please repost
with my Ack? You can include the two dependent patches
in the same series so it is easy to pick-up the whole
bunch.

Thanks,
Sekhar

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH v2 5/6] davinci: add spi devices support for da850/omap-l138/am18x evm
  2011-02-09 13:11 ` [PATCH v2 5/6] davinci: add spi devices support for da850/omap-l138/am18x evm Michael Williamson
@ 2011-02-22  6:37   ` Nori, Sekhar
  2011-02-22 12:13     ` Michael Williamson
  0 siblings, 1 reply; 11+ messages in thread
From: Nori, Sekhar @ 2011-02-22  6:37 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Feb 09, 2011 at 18:41:53, Michael Williamson wrote:
> From: Sekhar Nori <nsekhar@ti.com>
> 
> This patch adds the on-board SPI flash device to the
> DA850/OMAP-L138/AM18x EVM. It also registers the SPI flash
> device to the MTD subsystem.
> 
> Based on SPI flash device support for MityDSP-L138F platform.
> 
> Signed-off-by: Sekhar Nori <nsekhar@ti.com>
> [michael.williamson at criticallink.com: moved da850_evm_spi1_pdata to devices-da8xx.c]
> Signed-off-by: Michael Williamson <michael.williamson@criticallink.com>
> +static void __init da850evm_init_spi1(struct spi_board_info *info, unsigned len)
> +{
> +	int ret;
> +
> +	ret = spi_register_board_info(info, len);
> +	if (ret)
> +		pr_warning("failed to register board info : %d\n", ret);
> +
> +	da8xx_spi_pdata[1].num_chipselect = len;
> +
> +	ret = da8xx_register_spi(1);
> +	if (ret)
> +		pr_warning("failed to register spi 1 device : %d\n", ret);
> +}

When reposting can you also modify this to print function name
with the error message (so it is easy to find what exactly failed).

The same thing needs to be done with DA830 EVM.

Rest of the stuff looks good to me.

Thanks,
Sekhar

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH v2 3/6] davinci: da8xx: add spi resources and registration routine
  2011-02-22  6:14   ` Nori, Sekhar
@ 2011-02-22 12:13     ` Michael Williamson
  0 siblings, 0 replies; 11+ messages in thread
From: Michael Williamson @ 2011-02-22 12:13 UTC (permalink / raw)
  To: linux-arm-kernel

On 2/22/2011 1:14 AM, Nori, Sekhar wrote:

> Hi Mike,
> 
> On Wed, Feb 09, 2011 at 18:41:51, Michael Williamson wrote:
>> Add IO resource structures, platform data, and a registration
>> routine in order to support spi device on DA850/OMAP-L138/AM18x
>> and DA830/OMAP-L137/AM17x platforms.
>>
>> Signed-off-by: Michael Williamson <michael.williamson@criticallink.com>
> 
> [...]
> 
>> +static struct resource da8xx_spi1_resources[] = {
>> +	[0] = {
>> +		.start	= DA8XX_SPI1_BASE,
>> +		.end	= DA8XX_SPI1_BASE + SZ_4K -1,
> 
> checkpatch reports a warning here. Need to have spaces
> on either side of binary '-'
> 


Sorry about that... not sure how I missed that one.

> I tested this series and the two patches it depends on
> using SPI flash present on DA850 and DA830 EVMs (tested
> in DMA mode) and found no issues.
> 


Thanks for testing, Sekhar.

> So, with this minor issue fixed, can you please repost
> with my Ack? You can include the two dependent patches
> in the same series so it is easy to pick-up the whole
> bunch.
> 


OK.

> Thanks,
> Sekhar
> 

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH v2 5/6] davinci: add spi devices support for da850/omap-l138/am18x evm
  2011-02-22  6:37   ` Nori, Sekhar
@ 2011-02-22 12:13     ` Michael Williamson
  0 siblings, 0 replies; 11+ messages in thread
From: Michael Williamson @ 2011-02-22 12:13 UTC (permalink / raw)
  To: linux-arm-kernel

On 2/22/2011 1:37 AM, Nori, Sekhar wrote:

> On Wed, Feb 09, 2011 at 18:41:53, Michael Williamson wrote:
>> From: Sekhar Nori <nsekhar@ti.com>
>>
>> This patch adds the on-board SPI flash device to the
>> DA850/OMAP-L138/AM18x EVM. It also registers the SPI flash
>> device to the MTD subsystem.
>>
>> Based on SPI flash device support for MityDSP-L138F platform.
>>
>> Signed-off-by: Sekhar Nori <nsekhar@ti.com>
>> [michael.williamson at criticallink.com: moved da850_evm_spi1_pdata to devices-da8xx.c]
>> Signed-off-by: Michael Williamson <michael.williamson@criticallink.com>
>> +static void __init da850evm_init_spi1(struct spi_board_info *info, unsigned len)
>> +{
>> +	int ret;
>> +
>> +	ret = spi_register_board_info(info, len);
>> +	if (ret)
>> +		pr_warning("failed to register board info : %d\n", ret);
>> +
>> +	da8xx_spi_pdata[1].num_chipselect = len;
>> +
>> +	ret = da8xx_register_spi(1);
>> +	if (ret)
>> +		pr_warning("failed to register spi 1 device : %d\n", ret);
>> +}
> 
> When reposting can you also modify this to print function name
> with the error message (so it is easy to find what exactly failed).
> 
> The same thing needs to be done with DA830 EVM.
> 
> Rest of the stuff looks good to me.
> 


Sure.

> Thanks,
> Sekhar

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2011-02-22 12:13 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-02-09 13:11 [PATCH v2 0/6] davinci: Add SPI support for da8xx platforms Michael Williamson
2011-02-09 13:11 ` [PATCH v2 1/6] davinci: da830: fix driver name for spi clocks Michael Williamson
2011-02-09 13:11 ` [PATCH v2 2/6] davinci: da850: add spi device clock definitions Michael Williamson
2011-02-09 13:11 ` [PATCH v2 3/6] davinci: da8xx: add spi resources and registration routine Michael Williamson
2011-02-22  6:14   ` Nori, Sekhar
2011-02-22 12:13     ` Michael Williamson
2011-02-09 13:11 ` [PATCH v2 4/6] davinci: add spi devices support for MityDSP-L138/MityARM-1808 platform Michael Williamson
2011-02-09 13:11 ` [PATCH v2 5/6] davinci: add spi devices support for da850/omap-l138/am18x evm Michael Williamson
2011-02-22  6:37   ` Nori, Sekhar
2011-02-22 12:13     ` Michael Williamson
2011-02-09 13:11 ` [PATCH v2 6/6] davinci: add spi devices support for da830/omap-l137/am17x evm Michael Williamson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).