Thanks for the code!
Here is my approach:
const struct flash_platform_data tx53_flash
= {
.type
= "mx25l8005",
.name
= "spi_flash",
};
//MX25L8005MC-15G
static const struct spi_board_info mx53_spi_board_info[]
= {
{
.name = "mx25l8005",
.max_speed_hz = 70000000,
.bus_num = 0,
.chip_select = 0,
.bits_per_word = 8,
.mode = SPI_MODE_0,
.platform_data = &tx53_flash,
},
};
static struct spi_imx_master tx53_spi
= {
.num_chipselect = 1,
};
init_devices {
...
spi_register_board_info(mx53_spi_board_info,
ARRAY_SIZE(mx53_spi_board_info));
add_generic_device("m25p",-1,"m25p",MX53_ECSPI1_BASE_ADDR,64
* 1024,IORESOURCE_MEM,&mx53_spi_board_info);
...
}
When the m25p80.c driver probes i get
no spi instance:
static
int
m25p_probe(struct
device_d *dev) {
struct spi_device *spi = (struct
spi_device *)dev->type_data;
const
struct
spi_device_id *id = NULL;
...
}
struct
spi_device *spi is always null
Whats wrong here?
christian
Von:
Franck Jullien <franck.jullien@gmail.com>
An:
christian.buettner@rafi.de,
Kopie:
barebox@lists.infradead.org
Datum:
27.07.2012 13:33
Betreff:
Re: nor flash
board init code
2012/7/25 <christian.buettner@rafi.de>
>
> hi all,
> is there any example board init code to load the mx25l8005 spi nor-flash
through the imx53 (TX53 from KARO)?
> I want to use the m25p80 driver to read and write.
>
> christian
> _______________________________________________
> barebox mailing list
> barebox@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/barebox
>
Hi Christian,
This is what I use with the Altera SPI controller + an SPI flash device:
http://www.elec4fun.fr/index.php?option=com_content&view=article&id=10&Itemid=153
static struct spi_altera_master altera_spi_0_data = {
.num_chipselect = 1,
.spi_mode = 0, /* SPI mode of
the EPCS flash controller */
.databits = 8, /* Data length
of the EPCS flash controller */
.speed = 20000000, /* EPCS flash controller
speed */
};
static struct flash_platform_data epcs_flash = {
.name = "epcs", /* Cdev name,
optional */
.type = "m25p40", /* Device type,
required for non JEDEC chips */
};
static struct spi_board_info generic_spi_board_info[] = {
{
.name = "m25p",
.max_speed_hz = 20000000,
.bus_num = 0,
.chip_select = 0,
.bits_per_word = 8,
.mode = SPI_MODE_0,
.platform_data = &epcs_flash,
}
};
static int myboard_devices_init(void) {
...
spi_register_board_info(myboard_spi_board_info,
ARRAY_SIZE(myboard_spi_board_info));
add_generic_device("altera_spi", -1, NULL, NIOS_SOPC_EPCS_BASE,
0x18,
IORESOURCE_MEM,
&altera_spi_0_data);
...
Franck.