Thread (3 messages) 3 messages, 2 authors, 2007-11-28

Re: SPI driver for spi_mpc83xx

From: Ben Warren <hidden>
Date: 2007-11-27 19:33:05

Possibly related (same subject, not in this thread)

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help