Implement hard SPI driver on MPC8349EMDS
PATCH v2 2/2 Implement hard SPI driver on MPC8349EMDS
This patch implements the fsl_spi driver on the MPC8349EMDS evaluation board. This board has an ST M25P40 4Mbit EEPROM on its SPI bus
--- board/freescale/mpc8349emds/mpc8349emds.c | 29 +++++++++++++++++++++++++++++ include/configs/MPC8349EMDS.h | 10 ++++++++++ 2 files changed, 39 insertions(+), 0 deletions(-)
board/freescale/mpc8349emds/mpc8349emds.c +29 -0
@@ -27,6 +27,7 @@#include <mpc83xx.h> #include <asm/mpc8349_pci.h> #include <i2c.h> +#include <spi.h> #include <spd.h> #include <miiphy.h> #if defined(CONFIG_SPD_EEPROM )
@@ -251,6 +252,34 @@ void sdram_init(void) }#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 */ +#if defined(CONFIG_OF_BOARD_SETUP )void ft_board_setup (void *blob,bd_t *bd) {
include/configs/MPC8349EMDS.h +10 -0
@@ -355,6 +355,16 @@#define CFG_I2C_OFFSET 0x3000#define CFG_I2C2_OFFSET 0x3100 +/* SPI */ +#define CONFIG_HARD_SPI /* SPI with hardware support*/ +#undef CONFIG_SOFT_SPI/* SPI bit-banged */ +#define CONFIG_FSL_SPI + +/* GPIOs. Used as SPI chip selects */ +#define CFG_GPIO1_PRELIM +#define CFG_GPIO1_DIR 0xC0000000/* SPI CS on 0, LED on 1 */ +#define CFG_GPIO1_DAT 0xC0000000/* Both are active LOW */ +/* TSEC */ #define CFG_TSEC1_OFFSET 0x24000#define CFG_TSEC1 (CFG_IMMR+CFG_TSEC1_OFFSET)
Signature · 1 line
1.5.2.5
PATCH v2 2/2 Implement hard SPI driver on MPC8349EMDS
board/freescale/mpc8349emds/mpc8349emds.c void sdram_init(void) · line 266
Quoted 5 lines · On Wed, 16 Jan 2008 22:37:42 -0500 Ben Warren <[email protected]> wrote:
board/freescale/mpc8349emds/mpc8349emds.c +5
-0+void spi_eeprom_chipsel (int cs) +{ +volatile gpio83xx_t *iopd = &((immap_t *)CFG_IMMR )->gpio[0 ]; + +if (cs)
s/if(/if (/
unless no-one else has any objections, this should probably go in before the window closes.
Kim
PATCH v2 2/2 Implement hard SPI driver on MPC8349EMDS
Quoted 13 lines · Kim Phillips
board/freescale/mpc8349emds/mpc8349emds.c void sdram_init(void) · line 266
Quoted 6 lines · On Wed, 16 Jan 2008 22:37:42 -0500 Ben Warren <[email protected]> wrote:
board/freescale/mpc8349emds/mpc8349emds.c +5
-0+void spi_eeprom_chipsel (int cs) +{ +volatile gpio83xx_t *iopd = &((immap_t *)CFG_IMMR )->gpio[0 ]; + +if (cs)s/if(/if (/
Quoted 6 lines
unless no-one else has any objections, this should probably go in before the window closes.
Kim
I was just about to respond to your other message to ask if you'd have time to fit it in. Do you want me to resend patches or can you apply yourself (since you already have the handy diff). Either way's fine by me.
regards,
Ben
PATCH v2 2/2 Implement hard SPI driver on MPC8349EMDS
Quoted 3 lines · On Thu, 17 Jan 2008 14:06:57 -0500 Ben Warren <[email protected]> wrote:
I was just about to respond to your other message to ask if you'd have time to fit it in. Do you want me to resend patches or can you apply yourself (since you already have the handy diff). Either way's fine by me.
I'm on it.
Kim
PATCH v2 2/2 Implement hard SPI driver on MPC8349EMDS
Quoted 4 lines · Kim Phillips
On Thu, 17 Jan 2008 14:06:57 -0500
Ben Warren <[email protected]> wrote:
Quoted 10 lines
Quoted 4 lines
I was just about to respond to your other message to ask if you'd have time to fit it in. Do you want me to resend patches or can you apply yourself (since you already have the handy diff). Either way's fine by me.
I'm on it.
Kim
Thanks dude.
Ben