Re: [i2c] [PATCH 0/7 RFC] Handle I2C GPIO controllers with the OF (was: pca9539 I2C gpio expander)

2008-10-17 Thread Steven A. Falco
Anton Vorontsov wrote:
 Hi all,
 
 Recently there was a question about I2C GPIO controllers and how should
 we handle them with the OpenFirmware and such.
 
 Here is the attempt to connect I2C GPIO controllers to the
 OpenFirmware device tree, without writing an OF-specific bindings
 for each driver.
 
 The salt is in these two patches:
 
 [PATCH 3/7] of: fill the archdata for I2C devices
 ^ Here we're storing the device tree node into the I2C device.
 
 [PATCH 5/7] of/gpio: implement of_dev_gpiochip_{add,remove} calls
 ^ And here we extracting the the stored node to put the registered
   of_gpio_chip into that node.
 
 
 How does it look?

I've just tested this with a pca9539 chip attached to my Sequoia board,
and it works perfectly for me.  I don't have the mcu_mpc8349emitx.c file
in my tree, so I was not able to apply part 7 of 7, but the rest looks
fine.  Thanks for doing this.

Acked by: Steve Falco [EMAIL PROTECTED]

___
i2c mailing list
i2c@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/i2c


[i2c] [PATCH 0/7 RFC] Handle I2C GPIO controllers with the OF (was: pca9539 I2C gpio expander)

2008-10-16 Thread Anton Vorontsov
Hi all,

Recently there was a question about I2C GPIO controllers and how should
we handle them with the OpenFirmware and such.

Here is the attempt to connect I2C GPIO controllers to the
OpenFirmware device tree, without writing an OF-specific bindings
for each driver.

The salt is in these two patches:

[PATCH 3/7] of: fill the archdata for I2C devices
^ Here we're storing the device tree node into the I2C device.

[PATCH 5/7] of/gpio: implement of_dev_gpiochip_{add,remove} calls
^ And here we extracting the the stored node to put the registered
  of_gpio_chip into that node.


How does it look?

p.s. The original question:

- Forwarded message from Steven A. Falco [EMAIL PROTECTED] -

Date: Tue, 14 Oct 2008 14:10:25 -0400
From: Steven A. Falco [EMAIL PROTECTED]
To: [EMAIL PROTECTED] [EMAIL PROTECTED]
Subject: pca9539 I2C gpio expander
List-Id: Linux on PowerPC Developers Mail List linuxppc-dev.ozlabs.org

I am attempting to use a pca9539 I2C gpio driver on a PPC440EPx board.  The
driver is drivers/gpio/pca953x.c.  I've added an entry to the .dts file:

IIC0: [EMAIL PROTECTED] {
compatible = ibm,iic-440epx, ibm,iic;
...
[EMAIL PROTECTED] {
compatible = ti,pca9539;
reg = 76;
};
};

of_register_i2c_devices sees this entry and calls i2c_new_device.
i2c_new_device copies info-platform_data to client-dev.platform_data, but
I think that this structure is empty (at least I don't see where
of_register_i2c_devices would set it).

pca953x_probe is eventually called, but it expects to find its lowest gpio
number in client-dev.platform_data-gpio_base, which has not been set.  So
pca953x_probe returns -ENODEV.

I don't understand where the disconnect is.  Should I be able to use the
pca953x.c driver, or is it somehow incompatible?

If it is incompatible, is there a strategy for making it compatible?

Steve
___
Linuxppc-dev mailing list
[EMAIL PROTECTED]
https://ozlabs.org/mailman/listinfo/linuxppc-dev

- End forwarded message -

___
i2c mailing list
i2c@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/i2c