SPI devices and OF

Kumar Gala galak at kernel.crashing.org
Thu Apr 5 02:34:11 EST 2007


On Apr 4, 2007, at 6:51 AM, Vitaly Wool wrote:

> On 4/4/07, Sascha Hauer <s.hauer at pengutronix.de> wrote:
>> Hi,
>>
>> I'm currently writing a driver for the mpc5200 spi controller (the
>> dedicated one, not the PSC ones).
>> The driver has the form of a of_platform_driver. My problem is that I
>> don't know how to define the spi devices on the spi bus. My current
>> approach is having something like this in the OF tree:
>>
>>
>>         spi at f00 {
>>                 device_type = "spi";
>>                 compatible = "mpc5200b-spi\0mpc5200-spi";
>>                 reg = <f00 20>;
>>                 interrupts = <2 d 0 2 e 0>;
>>                 interrupt-parent = <500>;
>>                 mmc at 0 {
>>                         device_type = "mmc_spi";
>>                         compatible = "mmc_spi";
>>                 };
>>         };
>>
>> I can then parse the children in my spi driver with
>>
>>         while( (child = of_get_next_child(odev->node, child))) {
>>                 struct spi_board_info info;
>>
>>                 info.max_speed_hz =
>>                 info.bus_num =
>>                 info.chip_select =
>>                 ...
>>                 spi_register_board_info(&info, 1);
>>         }
>>
>> I think it will work this way but I found no way getting the
>> platform_data for the spi devices.
>
> I think that it's worth extending the current SPI core with OF
> support. Maybe I'll manage to get to it :)
> If you have something ready, please email to
> spi-devel-general at lists.sourceforge.net.

I don't think this is a good idea for SPI devices.  The effort vs  
reward isn't worth it.  The simple fact that the 'chip select'  
mechanism ends up being board specific is too much of a pain to  
figure out how to deal with in the device tree.  I think its ok if we  
put information about the controller in the tree, but trying to do  
the devices as well at this point doesn't seem like its much of a win.

- k



More information about the Linuxppc-dev mailing list