lkml.org 
[lkml]   [2008]   [May]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 3/4] spi: Add OF binding support for SPI busses
On Fri, May 16, 2008 at 4:03 PM, Anton Vorontsov <cbouatmailru@gmail.com> wrote:
> On Fri, May 16, 2008 at 01:36:13PM -0600, Grant Likely wrote:
>> + /* Store a pointer to the node in the device structure */
>> + of_node_get(nc);
>> + spi->dev.archdata.of_node = nc;
>> +
>> + /* Register the new device */
>> + rc = spi_register_device(spi);
>> + if (rc) {
>> + dev_err(&master->dev, "spi_device register error %s\n",
>> + np->full_name);
>> + spi_device_release(spi);
>> + }
>
> No way to pass platform data... can you suggest any idea to use
> this for things like
> "[POWERPC] 86xx: mpc8610_hpcd: add support for SPI and MMC-over-SPI"
> I've sent just recently...?

That's right. platform_data being a very driver specific thing there
is no way to generically extract a pdata structure from the device
tree. Instead, I'm storing the device node in archdata.of_node (line
immediately above spi_register_device) so that drivers can read the
device node themselves to populate a platform_device structure.
(Protected by CONFIG_OF of course).

> Maybe this code could do something like
> spi->dev.platform_data = nc->data;
> and board code would fill nc->data at early stages? This needs to be a
> convention, not just random use though.. Maybe we can expand the struct
> device_node to explicitly include .platform_data for such cases?

Hmmm, as you say, this could end up being rather messy. However, by
passing the device node pointer, the driver could extract that data on
a per case basis. (ie. it would be decided on a per driver basis
where to get the platform data). I'm not sure; this bears more
thought...

Cheers,
g.

--
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.


\
 
 \ /
  Last update: 2008-05-17 00:17    [W:0.259 / U:0.380 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site