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