Index: u-boot-1.3.2/board/freescale/mpc8313erdb/mpc8313erdb.c =================================================================== --- u-boot-1.3.2.orig/board/freescale/mpc8313erdb/mpc8313erdb.c 2008-09-12 18:48:23.000000000 +0200 +++ u-boot-1.3.2/board/freescale/mpc8313erdb/mpc8313erdb.c 2008-09-12 18:50:10.000000000 +0200 @@ -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-09-12 18:50:09.000000000 +0200 +++ u-boot-1.3.2/include/configs/MPC8313ERDB.h 2008-09-12 18:50:50.000000000 +0200 @@ -359,6 +359,7 @@ #define CONFIG_CMD_DATE #define CONFIG_CMD_PCI #define CONFIG_CMD_NAND +#define CONFIG_CMD_SPI #if defined(CFG_RAMBOOT) #undef CONFIG_CMD_ENV @@ -367,6 +368,11 @@ #define CONFIG_CMDLINE_EDITING 1 +/* SPI */ +#define CONFIG_MPC8XXX_SPI +#define CONFIG_HARD_SPI /* SPI with hardware support */ +#undef CONFIG_SOFT_SPI /* SPI bit-banged */ + /* * JFFS2 partitions (mtdparts command line support) */