[lm-sensors] How to control GPIOs I2C chips from a separate platform driver ?

Jean Delvare khali at linux-fr.org
Sun May 28 17:27:19 CEST 2006

Hi Rudolf, hi Laurent,

> > I'm developping the DSL chipset driver, and the needed arises to control the 
> > GPIO lines from inside the driver. I've had a look at some PCI drivers which 
> > need to control I2C devices, and all of them have the I2C chips connected to 
> > an I2C bus controlled by the PCI device. Getting a reference to those chips 
> > is thus quite easy. I'm a bit puzzled regarding how to do the same for my 
> > design. Could anyone advice me on how to get a reference to the PCA9557 from 
> > the DSL platform driver in a clean way ?
> Well this is a bit problem. There are three ways:
> 1) create EXPORT_SYMBOL(my_api) with defined API and call it from your PCI
> device to the PCA driver some RTC drivers did this
> 2) there is,  now obsoleted, method with the i2c command callback. This may be
> removed in the future.
> 3) create a class interface for this stuff and register the device in the class
>    I'm taking this aproach to create an watchdog class even for i2c devices...

4) Have a single driver for both the DSL chipset and the
GPIO-controlling chip. Given that the GPIO pins usage is specific to
your system, reusability isn't an issue. You may make a composite
module to keep a clean limit between both parts of the driver. It's
mostly similar to option 1), except that you don't even have to define
and API and export the symbols.

Jean Delvare

More information about the lm-sensors mailing list