[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