Fabio,
Note: I've changed the e-mail subject back to the original. In the
future, please ensure that it remains intact.
fabio777 wrote:
Thanks Ben,
Here it is
static struct fsl_spi_platform_data k_platform_data = {
.initial_spmode = 0,
.bus_num = 1,
Probably should be bus_num = 0
.max_chipselect = 1,
/* board specific information */
.activate_cs = k_cs_activate,
.deactivate_cs = k_cs_deactivate,
.sysclk = 266,
};
static struct spi_board_info spi_board_info[] __initdata = { {
.modalias = "kplus",
.platform_data = &k_platform_data,
.max_speed_hz = 120000,
.bus_num = 1,
Again, bus_num probably should be 0
.chip_select = 0,
},
};
struct platform_device k_plus = {
.name = "kplus",
name should be "mpc83xx_spi". At initialization, the SPI controller
driver searches the registered platform devices (models of board
hardware) for a match. Without a match, it gives up.
.id = 1,
.dev = {
.platform_data = &k_platform_data,
},
};
platform_device_register(&k_plus);
Do you add the SPI controller's resources (base address and IRQ?) You'll
need to in order for this to work. On my board, I use
'platform_device_register_simple()', passing the name and the two
resources, then call 'platform_add_data()', passing in the platform data
structure.
spi_register_board_info(spi_board_info, ARRAY_SIZE(spi_board_info))
Good
and then calls spi_register_driver(&k_driver);
I don't think this last call is needed.
I can't get the into the *probe functions.
Thanks
regards,
Ben