Index: u-boot-1.3.2/board/freescale/mpc8313erdb/mpc8313erdb.c =================================================================== --- u-boot-1.3.2.orig/board/freescale/mpc8313erdb/mpc8313erdb.c 2008-11-24 16:34:21.000000000 +0100 +++ u-boot-1.3.2/board/freescale/mpc8313erdb/mpc8313erdb.c 2008-11-24 16:44:59.000000000 +0100 @@ -28,6 +28,7 @@ #endif #include #include +#include DECLARE_GLOBAL_DATA_PTR; @@ -107,3 +108,33 @@ #endif } #endif + + +/* + * The following are used to control the SPI chip selects for the SPI command. + */ +#ifdef CONFIG_HARD_SPI + +#define SPI_CS_MASK 0x80000000 + +void spi_eeprom_chipsel(int cs) +{ + volatile gpio83xx_t *iopd = &((immap_t *)CFG_IMMR)->gpio[0]; + + if (cs) + iopd->dat &= ~SPI_CS_MASK; + else + iopd->dat |= SPI_CS_MASK; +} + +/* + * The SPI command uses this table of functions for controlling the SPI + * chip selects. + */ +spi_chipsel_type spi_chipsel[] = { + spi_eeprom_chipsel, +}; +int spi_chipsel_cnt = sizeof(spi_chipsel) / sizeof(spi_chipsel[0]); + +#endif /* CONFIG_HARD_SPI */ + Index: u-boot-1.3.2/include/configs/MPC8313ERDB.h =================================================================== --- u-boot-1.3.2.orig/include/configs/MPC8313ERDB.h 2008-11-24 16:44:55.000000000 +0100 +++ u-boot-1.3.2/include/configs/MPC8313ERDB.h 2008-11-24 16:45:26.000000000 +0100 @@ -370,6 +370,7 @@ #define CONFIG_CMD_PCI #define CONFIG_CMD_NAND #define CONFIG_CMD_JFFS2 +#define CONFIG_CMD_SPI #if defined(CFG_RAMBOOT) #undef CONFIG_CMD_ENV @@ -387,6 +388,11 @@ #define MTDPARTS_DEFAULT "mtdparts=physmap-flash.0:384k(uboot),64k(env)" +/* SPI */ +#define CONFIG_MPC8XXX_SPI +#define CONFIG_HARD_SPI /* SPI with hardware support */ +#undef CONFIG_SOFT_SPI /* SPI bit-banged */ + /* * Miscellaneous configurable options */