--- On Sat, 7/5/11, Jean Delvare <[email protected]> wrote:
> On Fri, 6 May 2011 04:30:33 -0700 (PDT), Lars Michael
> wrote:
> > But how do I access the same I2C device from several
> modules? Ideally I want to specify the adapter and slave
> address. If a client is found, I get the i2c_client
> otherwise I have to create it by i2c_new_device (or probe
> it). Is it possible?
> > 
> 
> In general I would have pointed you to drivers/mfd and told
> you to
> write a mfd core driver for your chip. However in your case
> I don't
> think you have a multifunction device. You have a single
> function
> device (GPIO) with multiple users. So I suggest that you
> simply write a
> proper gpio driver for your chip, and get the device
> registered as an
> I2C GPIO device. Then, in your function drivers (power
> supply control
> and button control) get a reference to the gpio device in
> question, and
> use it.

Thanks for the advice. I wrote a simple driver for my chip and
instantiated it in the platform code. In order to access the
device from the function modules, I exported an i2c_client get
function, in order to get a reference to the client:

struct i2c_client *pca950x_get_i2c_client(void)
.....
EXPORT_SYMBOL(pca950x_get_i2c_client);

Not sure this is the perfect way to do it, but it works.

Thanks and regards,
- Lars
--
To unsubscribe from this list: send the line "unsubscribe linux-i2c" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to