[U-Boot] [PATCH] at91sam9/at91cap: add new spi framework and spi flash support

Jean-Christophe PLAGNIOL-VILLARD plagnioj at jcrosoft.com
Sat Apr 4 12:15:05 CEST 2009


The new Framework is not yet activated by default, it will be next release
at the same time of the removal of the DATAFLASH support

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
---
 board/afeb9260/afeb9260.c                 |   40 +++++++++++++++++++++++++++++
 board/atmel/at91cap9adk/at91cap9adk.c     |   24 ++++++++++++++++-
 board/atmel/at91sam9260ek/at91sam9260ek.c |   40 ++++++++++++++++++++++++++++-
 board/atmel/at91sam9261ek/at91sam9261ek.c |   40 ++++++++++++++++++++++++++++-
 board/atmel/at91sam9263ek/at91sam9263ek.c |   26 ++++++++++++++++++-
 board/atmel/at91sam9rlek/at91sam9rlek.c   |   24 ++++++++++++++++-
 board/ronetix/pm9263/pm9263.c             |   24 ++++++++++++++++-
 cpu/arm926ejs/at91/Makefile               |    6 ++++
 include/asm-arm/arch-at91/clk.h           |    5 +++
 include/asm-arm/arch-at91/hardware.h      |    9 ++++++
 include/configs/afeb9260.h                |    7 +++++
 include/configs/at91cap9adk.h             |    7 +++++
 include/configs/at91sam9260ek.h           |    7 +++++
 include/configs/at91sam9261ek.h           |    7 +++++
 include/configs/at91sam9263ek.h           |    7 +++++
 include/configs/at91sam9rlek.h            |    7 +++++
 include/configs/pm9263.h                  |    7 +++++
 17 files changed, 281 insertions(+), 6 deletions(-)

diff --git a/board/afeb9260/afeb9260.c b/board/afeb9260/afeb9260.c
index 024db2b..d1606b6 100644
--- a/board/afeb9260/afeb9260.c
+++ b/board/afeb9260/afeb9260.c
@@ -145,7 +145,11 @@ int board_init(void)
 #ifdef CONFIG_CMD_NAND
 	afeb9260_nand_hw_init();
 #endif
+#if defined(CONFIG_ATMEL_SPI)
+	at91_spi0_hw_init((1 << 4) || (1 << 5));
+#elif defined(CONFIG_HAS_DATAFLASH)
 	at91_spi0_hw_init((1 << 0) || (1 << 1));
+#endif
 #ifdef CONFIG_MACB
 	afeb9260_macb_hw_init();
 #endif
@@ -181,3 +185,39 @@ int board_eth_init(bd_t *bis)
 #endif
 	return rc;
 }
+
+/* SPI chip select control */
+#ifdef CONFIG_ATMEL_SPI
+#include <spi.h>
+
+int spi_cs_is_valid(unsigned int bus, unsigned int cs)
+{
+	return bus == 0 && cs < 2;
+}
+
+void spi_cs_activate(struct spi_slave *slave)
+{
+	switch(slave->cs) {
+	case 1:
+		at91_set_gpio_value(AT91_PIN_PC11, 0);
+		break;
+	case 0:
+	default:
+		at91_set_gpio_value(AT91_PIN_PA3, 0);
+		break;
+	}
+}
+
+void spi_cs_deactivate(struct spi_slave *slave)
+{
+	switch(slave->cs) {
+	case 1:
+		at91_set_gpio_value(AT91_PIN_PC11, 1);
+		break;
+	case 0:
+	default:
+		at91_set_gpio_value(AT91_PIN_PA3, 1);
+		break;
+	}
+}
+#endif /* CONFIG_ATMEL_SPI */
diff --git a/board/atmel/at91cap9adk/at91cap9adk.c b/board/atmel/at91cap9adk/at91cap9adk.c
index f52edaa..1e99bba 100644
--- a/board/atmel/at91cap9adk/at91cap9adk.c
+++ b/board/atmel/at91cap9adk/at91cap9adk.c
@@ -315,7 +315,9 @@ int board_init(void)
 #ifdef CONFIG_CMD_NAND
 	at91cap9_nand_hw_init();
 #endif
-#ifdef CONFIG_HAS_DATAFLASH
+#if defined(CONFIG_ATMEL_SPI)
+	at91_spi0_hw_init(1 << 4);
+#elif defined(CONFIG_HAS_DATAFLASH)
 	at91_spi0_hw_init(1 << 0);
 #endif
 #ifdef CONFIG_MACB
@@ -358,3 +360,23 @@ int board_eth_init(bd_t *bis)
 #endif
 	return rc;
 }
+
+/* SPI chip select control */
+#ifdef CONFIG_ATMEL_SPI
+#include <spi.h>
+
+int spi_cs_is_valid(unsigned int bus, unsigned int cs)
+{
+	return bus == 0 && cs == 0;
+}
+
+void spi_cs_activate(struct spi_slave *slave)
+{
+	at91_set_gpio_value(AT91_PIN_PA5, 0);
+}
+
+void spi_cs_deactivate(struct spi_slave *slave)
+{
+	at91_set_gpio_value(AT91_PIN_PA5, 1);
+}
+#endif /* CONFIG_ATMEL_SPI */
diff --git a/board/atmel/at91sam9260ek/at91sam9260ek.c b/board/atmel/at91sam9260ek/at91sam9260ek.c
index 6bd3b44..c4eaafd 100644
--- a/board/atmel/at91sam9260ek/at91sam9260ek.c
+++ b/board/atmel/at91sam9260ek/at91sam9260ek.c
@@ -155,7 +155,9 @@ int board_init(void)
 #ifdef CONFIG_CMD_NAND
 	at91sam9260ek_nand_hw_init();
 #endif
-#ifdef CONFIG_HAS_DATAFLASH
+#if defined(CONFIG_ATMEL_SPI)
+	at91_spi0_hw_init((1 << 4) || (1 << 5));
+#elif defined(CONFIG_HAS_DATAFLASH)
 	at91_spi0_hw_init((1 << 0) || (1 << 1));
 #endif
 #ifdef CONFIG_MACB
@@ -193,3 +195,39 @@ int board_eth_init(bd_t *bis)
 #endif
 	return rc;
 }
+
+/* SPI chip select control */
+#ifdef CONFIG_ATMEL_SPI
+#include <spi.h>
+
+int spi_cs_is_valid(unsigned int bus, unsigned int cs)
+{
+	return bus == 0 && cs < 2;
+}
+
+void spi_cs_activate(struct spi_slave *slave)
+{
+	switch(slave->cs) {
+	case 1:
+		at91_set_gpio_value(AT91_PIN_PC11, 0);
+		break;
+	case 0:
+	default:
+		at91_set_gpio_value(AT91_PIN_PA3, 0);
+		break;
+	}
+}
+
+void spi_cs_deactivate(struct spi_slave *slave)
+{
+	switch(slave->cs) {
+	case 1:
+		at91_set_gpio_value(AT91_PIN_PC11, 1);
+		break;
+	case 0:
+	default:
+		at91_set_gpio_value(AT91_PIN_PA3, 1);
+		break;
+	}
+}
+#endif /* CONFIG_ATMEL_SPI */
diff --git a/board/atmel/at91sam9261ek/at91sam9261ek.c b/board/atmel/at91sam9261ek/at91sam9261ek.c
index a89cb8b..9d31324 100644
--- a/board/atmel/at91sam9261ek/at91sam9261ek.c
+++ b/board/atmel/at91sam9261ek/at91sam9261ek.c
@@ -215,7 +215,9 @@ int board_init(void)
 #ifdef CONFIG_CMD_NAND
 	at91sam9261ek_nand_hw_init();
 #endif
-#ifdef CONFIG_HAS_DATAFLASH
+#if defined(CONFIG_ATMEL_SPI)
+	at91_spi0_hw_init((1 << 4) || (1 << 7));
+#elif defined(CONFIG_HAS_DATAFLASH)
 	at91_spi0_hw_init(1 << 0);
 #endif
 #ifdef CONFIG_DRIVER_DM9000
@@ -246,3 +248,39 @@ void reset_phy(void)
 #endif
 }
 #endif
+
+/* SPI chip select control */
+#ifdef CONFIG_ATMEL_SPI
+#include <spi.h>
+
+int spi_cs_is_valid(unsigned int bus, unsigned int cs)
+{
+	return bus == 0 && (cs == 0 || cs == 3);
+}
+
+void spi_cs_activate(struct spi_slave *slave)
+{
+	switch(slave->cs) {
+	case 3:
+		at91_set_gpio_value(AT91_PIN_PA6, 0);
+		break;
+	case 0:
+	default:
+		at91_set_gpio_value(AT91_PIN_PA3, 0);
+		break;
+	}
+}
+
+void spi_cs_deactivate(struct spi_slave *slave)
+{
+	switch(slave->cs) {
+	case 3:
+		at91_set_gpio_value(AT91_PIN_PA6, 1);
+		break;
+	case 0:
+	default:
+		at91_set_gpio_value(AT91_PIN_PA3, 1);
+		break;
+	}
+}
+#endif /* CONFIG_ATMEL_SPI */
diff --git a/board/atmel/at91sam9263ek/at91sam9263ek.c b/board/atmel/at91sam9263ek/at91sam9263ek.c
index 57d5c95..e9c73af 100644
--- a/board/atmel/at91sam9263ek/at91sam9263ek.c
+++ b/board/atmel/at91sam9263ek/at91sam9263ek.c
@@ -236,10 +236,14 @@ int board_init(void)
 #ifdef CONFIG_CMD_NAND
 	at91sam9263ek_nand_hw_init();
 #endif
-#ifdef CONFIG_HAS_DATAFLASH
+#if defined(CONFIG_HAS_DATAFLASH) || defined(CONFIG_ATMEL_SPI)
 	at91_set_gpio_output(AT91_PIN_PE20, 1);	/* select spi0 clock */
+#if defined(CONFIG_ATMEL_SPI)
+	at91_spi0_hw_init(1 << 4);
+#else
 	at91_spi0_hw_init(1 << 0);
 #endif
+#endif
 #ifdef CONFIG_MACB
 	at91sam9263ek_macb_hw_init();
 #endif
@@ -280,3 +284,23 @@ int board_eth_init(bd_t *bis)
 #endif
 	return rc;
 }
+
+/* SPI chip select control */
+#ifdef CONFIG_ATMEL_SPI
+#include <spi.h>
+
+int spi_cs_is_valid(unsigned int bus, unsigned int cs)
+{
+	return bus == 0 && cs == 0;
+}
+
+void spi_cs_activate(struct spi_slave *slave)
+{
+	at91_set_gpio_value(AT91_PIN_PA5, 0);
+}
+
+void spi_cs_deactivate(struct spi_slave *slave)
+{
+	at91_set_gpio_value(AT91_PIN_PA5, 1);
+}
+#endif /* CONFIG_ATMEL_SPI */
diff --git a/board/atmel/at91sam9rlek/at91sam9rlek.c b/board/atmel/at91sam9rlek/at91sam9rlek.c
index 7013ba2..35adfcd 100644
--- a/board/atmel/at91sam9rlek/at91sam9rlek.c
+++ b/board/atmel/at91sam9rlek/at91sam9rlek.c
@@ -188,7 +188,9 @@ int board_init(void)
 #ifdef CONFIG_CMD_NAND
 	at91sam9rlek_nand_hw_init();
 #endif
-#ifdef CONFIG_HAS_DATAFLASH
+#if defined(CONFIG_ATMEL_SPI)
+	at91_spi0_hw_init(1 << 4);
+#elif defined(CONFIG_HAS_DATAFLASH)
 	at91_spi0_hw_init(1 << 0);
 #endif
 #ifdef CONFIG_LCD
@@ -203,3 +205,23 @@ int dram_init(void)
 	gd->bd->bi_dram[0].size = PHYS_SDRAM_SIZE;
 	return 0;
 }
+
+/* SPI chip select control */
+#ifdef CONFIG_ATMEL_SPI
+#include <spi.h>
+
+int spi_cs_is_valid(unsigned int bus, unsigned int cs)
+{
+	return bus == 0 && cs == 0;
+}
+
+void spi_cs_activate(struct spi_slave *slave)
+{
+	at91_set_gpio_value(AT91_PIN_PA28, 0);
+}
+
+void spi_cs_deactivate(struct spi_slave *slave)
+{
+	at91_set_gpio_value(AT91_PIN_PA28, 1);
+}
+#endif /* CONFIG_ATMEL_SPI */
diff --git a/board/ronetix/pm9263/pm9263.c b/board/ronetix/pm9263/pm9263.c
index 801b268..c16bea0 100644
--- a/board/ronetix/pm9263/pm9263.c
+++ b/board/ronetix/pm9263/pm9263.c
@@ -334,7 +334,9 @@ int board_init(void)
 #ifdef CONFIG_CMD_NAND
 	pm9263_nand_hw_init();
 #endif
-#ifdef CONFIG_HAS_DATAFLASH
+#if defined(CONFIG_ATMEL_SPI)
+	at91_spi0_hw_init(1 << 4);
+#elif defined(CONFIG_HAS_DATAFLASH)
 	at91_spi0_hw_init(1 << 0);
 #endif
 #ifdef CONFIG_MACB
@@ -411,3 +413,23 @@ int checkboard (void)
 	return 0;
 }
 #endif
+
+/* SPI chip select control */
+#ifdef CONFIG_ATMEL_SPI
+#include <spi.h>
+
+int spi_cs_is_valid(unsigned int bus, unsigned int cs)
+{
+	return bus == 0 && cs == 0;
+}
+
+void spi_cs_activate(struct spi_slave *slave)
+{
+	at91_set_gpio_value(AT91_PIN_PA5, 0);
+}
+
+void spi_cs_deactivate(struct spi_slave *slave)
+{
+	at91_set_gpio_value(AT91_PIN_PA5, 1);
+}
+#endif /* CONFIG_ATMEL_SPI */
diff --git a/cpu/arm926ejs/at91/Makefile b/cpu/arm926ejs/at91/Makefile
index fbc82d1..e73f450 100644
--- a/cpu/arm926ejs/at91/Makefile
+++ b/cpu/arm926ejs/at91/Makefile
@@ -28,30 +28,36 @@ LIB	= $(obj)lib$(SOC).a
 ifdef CONFIG_AT91CAP9
 COBJS-$(CONFIG_MACB)		+= at91cap9_macb.o
 COBJS-y				+= at91cap9_serial.o
+COBJS-$(CONFIG_ATMEL_SPI)	+= at91cap9_spi.o
 COBJS-$(CONFIG_HAS_DATAFLASH)	+= at91cap9_spi.o
 endif
 ifdef CONFIG_AT91SAM9260
 COBJS-$(CONFIG_MACB)		+= at91sam9260_macb.o
 COBJS-y				+= at91sam9260_serial.o
+COBJS-$(CONFIG_ATMEL_SPI)	+= at91sam9260_spi.o
 COBJS-$(CONFIG_HAS_DATAFLASH)	+= at91sam9260_spi.o
 endif
 ifdef CONFIG_AT91SAM9G20
 COBJS-$(CONFIG_MACB)		+= at91sam9260_macb.o
 COBJS-y				+= at91sam9260_serial.o
+COBJS-$(CONFIG_ATMEL_SPI)	+= at91sam9260_spi.o
 COBJS-$(CONFIG_HAS_DATAFLASH)	+= at91sam9260_spi.o
 endif
 ifdef CONFIG_AT91SAM9261
 COBJS-y				+= at91sam9261_serial.o
+COBJS-$(CONFIG_ATMEL_SPI)	+= at91sam9261_spi.o
 COBJS-$(CONFIG_HAS_DATAFLASH)	+= at91sam9261_spi.o
 endif
 ifdef CONFIG_AT91SAM9263
 COBJS-$(CONFIG_MACB)		+= at91sam9263_macb.o
 COBJS-y				+= at91sam9263_serial.o
+COBJS-$(CONFIG_ATMEL_SPI)	+= at91sam9263_spi.o
 COBJS-$(CONFIG_HAS_DATAFLASH)	+= at91sam9263_spi.o
 COBJS-$(CONFIG_USB_OHCI_NEW)	+= at91sam9263_usb.o
 endif
 ifdef CONFIG_AT91SAM9RL
 COBJS-y				+= at91sam9rl_serial.o
+COBJS-$(CONFIG_ATMEL_SPI)	+= at91sam9rl_spi.o
 COBJS-$(CONFIG_HAS_DATAFLASH)	+= at91sam9rl_spi.o
 endif
 COBJS-$(CONFIG_AT91_LED)	+= led.o
diff --git a/include/asm-arm/arch-at91/clk.h b/include/asm-arm/arch-at91/clk.h
index 6aaf82e..f642dd9 100644
--- a/include/asm-arm/arch-at91/clk.h
+++ b/include/asm-arm/arch-at91/clk.h
@@ -49,6 +49,11 @@ static inline unsigned long get_lcdc_clk_rate(unsigned int dev_id)
 	return get_mck_clk_rate();
 }
 
+static inline unsigned long get_spi_clk_rate(unsigned int dev_id)
+{
+	return get_mck_clk_rate();
+}
+
 static inline unsigned long get_twi_clk_rate(unsigned int dev_id)
 {
 	return get_mck_clk_rate();
diff --git a/include/asm-arm/arch-at91/hardware.h b/include/asm-arm/arch-at91/hardware.h
index 8704106..0403b09 100644
--- a/include/asm-arm/arch-at91/hardware.h
+++ b/include/asm-arm/arch-at91/hardware.h
@@ -21,25 +21,34 @@
 #elif defined(CONFIG_AT91SAM9260) || defined(CONFIG_AT91SAM9G20)
 #include <asm/arch/at91sam9260.h>
 #define AT91_BASE_SPI	AT91SAM9260_BASE_SPI0
+#define SPI0_BASE	AT91SAM9260_BASE_SPI0
+#define SPI1_BASE	AT91SAM9260_BASE_SPI1
 #define AT91_ID_UHP	AT91SAM9260_ID_UHP
 #define AT91_PMC_UHP	AT91SAM926x_PMC_UHP
 #elif defined(CONFIG_AT91SAM9261)
 #include <asm/arch/at91sam9261.h>
 #define AT91_BASE_SPI	AT91SAM9261_BASE_SPI0
+#define SPI0_BASE	AT91SAM9261_BASE_SPI0
+#define SPI1_BASE	AT91SAM9261_BASE_SPI1
 #define AT91_ID_UHP	AT91SAM9261_ID_UHP
 #define AT91_PMC_UHP	AT91SAM926x_PMC_UHP
 #elif defined(CONFIG_AT91SAM9263)
 #include <asm/arch/at91sam9263.h>
 #define AT91_BASE_SPI	AT91SAM9263_BASE_SPI0
+#define SPI0_BASE	AT91SAM9263_BASE_SPI0
+#define SPI1_BASE	AT91SAM9263_BASE_SPI1
 #define AT91_ID_UHP	AT91SAM9263_ID_UHP
 #define AT91_PMC_UHP	AT91SAM926x_PMC_UHP
 #elif defined(CONFIG_AT91SAM9RL)
 #include <asm/arch/at91sam9rl.h>
 #define AT91_BASE_SPI	AT91SAM9RL_BASE_SPI
+#define SPI0_BASE	AT91SAM9RL_BASE_SPI
 #define AT91_ID_UHP	AT91SAM9RL_ID_UHP
 #elif defined(CONFIG_AT91CAP9)
 #include <asm/arch/at91cap9.h>
 #define AT91_BASE_SPI	AT91CAP9_BASE_SPI0
+#define SPI0_BASE	AT91CAP9_BASE_SPI0
+#define SPI1_BASE	AT91CAP9_BASE_SPI1
 #define AT91_ID_UHP	AT91CAP9_ID_UHP
 #define AT91_PMC_UHP	AT91CAP9_PMC_UHP
 #elif defined(CONFIG_AT91X40)
diff --git a/include/configs/afeb9260.h b/include/configs/afeb9260.h
index 89b16fe..a897c62 100644
--- a/include/configs/afeb9260.h
+++ b/include/configs/afeb9260.h
@@ -84,6 +84,12 @@
 #define PHYS_SDRAM_SIZE			0x04000000	/* 64 megs */
 
 /* DataFlash */
+#ifdef CONFIG_ATMEL_SPI
+#define CONFIG_CMD_SF
+#define CONFIG_CMD_SPI
+#define CONFIG_SPI_FLASH		1
+#define CONFIG_SPI_FLASH_ATMEL		1
+#else
 #define CONFIG_ATMEL_DATAFLASH_SPI
 #define CONFIG_HAS_DATAFLASH		1
 #define CONFIG_SYS_SPI_WRITE_TOUT		(5 * CONFIG_SYS_HZ)
@@ -93,6 +99,7 @@
 #define AT91_SPI_CLK			15000000
 #define DATAFLASH_TCSS			(0x1a << 16)
 #define DATAFLASH_TCHS			(0x1 << 24)
+#endif
 
 /* NAND flash */
 #ifdef CONFIG_CMD_NAND
diff --git a/include/configs/at91cap9adk.h b/include/configs/at91cap9adk.h
index 749c5a9..758a779 100644
--- a/include/configs/at91cap9adk.h
+++ b/include/configs/at91cap9adk.h
@@ -103,6 +103,12 @@
 #define PHYS_SDRAM_SIZE			0x04000000	/* 64 megs */
 
 /* DataFlash */
+#ifdef CONFIG_ATMEL_SPI
+#define CONFIG_CMD_SF
+#define CONFIG_CMD_SPI
+#define CONFIG_SPI_FLASH		1
+#define CONFIG_SPI_FLASH_ATMEL		1
+#else
 #define CONFIG_ATMEL_DATAFLASH_SPI
 #define CONFIG_HAS_DATAFLASH		1
 #define CONFIG_SYS_SPI_WRITE_TOUT		(5*CONFIG_SYS_HZ)
@@ -111,6 +117,7 @@
 #define AT91_SPI_CLK			15000000
 #define DATAFLASH_TCSS			(0x1a << 16)
 #define DATAFLASH_TCHS			(0x1 << 24)
+#endif
 
 /* NOR flash */
 #define CONFIG_SYS_FLASH_CFI			1
diff --git a/include/configs/at91sam9260ek.h b/include/configs/at91sam9260ek.h
index 2e49455..240f888 100644
--- a/include/configs/at91sam9260ek.h
+++ b/include/configs/at91sam9260ek.h
@@ -97,6 +97,12 @@
 #define PHYS_SDRAM_SIZE			0x04000000	/* 64 megs */
 
 /* DataFlash */
+#ifdef CONFIG_ATMEL_SPI
+#define CONFIG_CMD_SF
+#define CONFIG_CMD_SPI
+#define CONFIG_SPI_FLASH		1
+#define CONFIG_SPI_FLASH_ATMEL		1
+#else
 #define CONFIG_ATMEL_DATAFLASH_SPI
 #define CONFIG_HAS_DATAFLASH		1
 #define CONFIG_SYS_SPI_WRITE_TOUT		(5*CONFIG_SYS_HZ)
@@ -111,6 +117,7 @@
 #define DATAFLASH_TCSS			(0x1a << 16)
 #endif
 #define DATAFLASH_TCHS			(0x1 << 24)
+#endif
 
 /* NAND flash */
 #ifdef CONFIG_CMD_NAND
diff --git a/include/configs/at91sam9261ek.h b/include/configs/at91sam9261ek.h
index b890912..f2843b7 100644
--- a/include/configs/at91sam9261ek.h
+++ b/include/configs/at91sam9261ek.h
@@ -104,6 +104,12 @@
 #define PHYS_SDRAM_SIZE			0x04000000	/* 64 megs */
 
 /* DataFlash */
+#ifdef CONFIG_ATMEL_SPI
+#define CONFIG_CMD_SF
+#define CONFIG_CMD_SPI
+#define CONFIG_SPI_FLASH		1
+#define CONFIG_SPI_FLASH_ATMEL		1
+#else
 #define CONFIG_ATMEL_DATAFLASH_SPI
 #define CONFIG_HAS_DATAFLASH		1
 #define CONFIG_SYS_SPI_WRITE_TOUT		(5*CONFIG_SYS_HZ)
@@ -113,6 +119,7 @@
 #define AT91_SPI_CLK			15000000
 #define DATAFLASH_TCSS			(0x1a << 16)
 #define DATAFLASH_TCHS			(0x1 << 24)
+#endif
 
 /* NAND flash */
 #ifdef CONFIG_CMD_NAND
diff --git a/include/configs/at91sam9263ek.h b/include/configs/at91sam9263ek.h
index d86f2c5..3d035fc 100644
--- a/include/configs/at91sam9263ek.h
+++ b/include/configs/at91sam9263ek.h
@@ -104,6 +104,12 @@
 #define PHYS_SDRAM_SIZE			0x04000000	/* 64 megs */
 
 /* DataFlash */
+#ifdef CONFIG_ATMEL_SPI
+#define CONFIG_CMD_SF
+#define CONFIG_CMD_SPI
+#define CONFIG_SPI_FLASH		1
+#define CONFIG_SPI_FLASH_ATMEL		1
+#else
 #define CONFIG_ATMEL_DATAFLASH_SPI
 #define CONFIG_HAS_DATAFLASH		1
 #define CONFIG_SYS_SPI_WRITE_TOUT		(5*CONFIG_SYS_HZ)
@@ -112,6 +118,7 @@
 #define AT91_SPI_CLK			15000000
 #define DATAFLASH_TCSS			(0x1a << 16)
 #define DATAFLASH_TCHS			(0x1 << 24)
+#endif
 
 /* NOR flash, if populated */
 #if 1
diff --git a/include/configs/at91sam9rlek.h b/include/configs/at91sam9rlek.h
index 728f73f..386e7c0 100644
--- a/include/configs/at91sam9rlek.h
+++ b/include/configs/at91sam9rlek.h
@@ -95,6 +95,12 @@
 #define PHYS_SDRAM_SIZE			0x04000000	/* 64 megs */
 
 /* DataFlash */
+#ifdef CONFIG_ATMEL_SPI
+#define CONFIG_CMD_SF
+#define CONFIG_CMD_SPI
+#define CONFIG_SPI_FLASH		1
+#define CONFIG_SPI_FLASH_ATMEL		1
+#else
 #define CONFIG_ATMEL_DATAFLASH_SPI
 #define CONFIG_HAS_DATAFLASH		1
 #define CONFIG_SYS_SPI_WRITE_TOUT		(5*CONFIG_SYS_HZ)
@@ -103,6 +109,7 @@
 #define AT91_SPI_CLK			15000000
 #define DATAFLASH_TCSS			(0x1a << 16)
 #define DATAFLASH_TCHS			(0x1 << 24)
+#endif
 
 /* NOR flash - not present */
 #define CONFIG_SYS_NO_FLASH			1
diff --git a/include/configs/pm9263.h b/include/configs/pm9263.h
index 9ae737f..33e320c 100644
--- a/include/configs/pm9263.h
+++ b/include/configs/pm9263.h
@@ -184,6 +184,12 @@
 #define PHYS_SDRAM_SIZE		0x04000000	/* 64 megs */
 
 /* DataFlash */
+#ifdef CONFIG_ATMEL_SPI
+#define CONFIG_CMD_SF
+#define CONFIG_CMD_SPI
+#define CONFIG_SPI_FLASH		1
+#define CONFIG_SPI_FLASH_ATMEL		1
+#else
 #define CONFIG_ATMEL_DATAFLASH_SPI
 #define CONFIG_HAS_DATAFLASH			1
 #define CONFIG_SYS_SPI_WRITE_TOUT		(5 * CONFIG_SYS_HZ)
@@ -192,6 +198,7 @@
 #define AT91_SPI_CLK				15000000
 #define DATAFLASH_TCSS				(0x1a << 16)
 #define DATAFLASH_TCHS				(0x1 << 24)
+#endif
 
 /* NOR flash, if populated */
 #define CONFIG_SYS_FLASH_CFI		1
-- 
1.6.1.3



More information about the U-Boot mailing list