Subject: Re: How to set device's platform_data field for OF-described I2C devices ?

From: Jochen Friedrich <[email-masked]>
Date: Tue, 27 May 2008 17:35:15 +0200

Hi Laurent,

> I'm running into a small issue with the pca953x I2C GPIO driver. The driver 
> requires platform data (to set the GPIO base number among other information). 
> As the device is automatically instantiated from the OF device tree, I can't 
> find a way to add platform data in the process.

Platform data really is a problem for devices loaded by OF device trees (see the
discussion at http://ozlabs.org/pipermail/linuxppc-dev/2008-May/056728.html and
in particular http://ozlabs.org/pipermail/linuxppc-dev/2008-May/056752.html).

In case of this particular chip it might be feasible to support the new libgpio
API to get a GPIO base number dynamically and use some defaults for the other
platform data to enable the chip to be used without platform data.

Otherwise, you could only bypass the OF bindings totally and add the device
manually from platform code with the platform data filled in.

> What's the best way to specify platform data for OF-described I2C devices ?

This depends on the data. For example function pointers can't be described in the
device tree, at all.

Thanks,
Jochen