Re: SPI driver for spi_mpc83xx
From: fabio777 <hidden>
Date: 2007-11-28 15:42:10
Thanks Ben works. Ben Warren wrote:
Fabio, Note: I've changed the e-mail subject back to the original. In the future, please ensure that it remains intact. fabio777 wrote:quoted
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 = 0quoted
.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 0quoted
.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.quoted
.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.quoted
spi_register_board_info(spi_board_info, ARRAY_SIZE(spi_board_info))Goodquoted
and then calls spi_register_driver(&k_driver);I don't think this last call is needed.quoted
I can't get the into the *probe functions. Thanksregards, Ben