Subject: Re: Device tree configuration for I2C eeprom

From: Felix Radensky <[email-masked]>
Date: Tue, 04 Nov 2008 18:45:58 +0200

Ayman El-Khashab wrote:
>
> Ok, here is what I used.  I see the nodes created in /sys/bus/i2c/... 
> but I see four of them at address 0x50,0x51,0x52,0x53.  That surprised
> me since I only have 3 of them in the device tree.  However, in any case
> I did not see a way to read or write them.  In one case I was able to
> cat the file "eeprom", but it was only 256 bytes and did not exist for
> the other 3 devices.  Here is the section of my device tree ... I do 
> see the controller being initialized in dmesg, it is just the read and
> write that is eluding me.
>
> One question I did have was within another sample device tree, there was
> a comment that "this makes address 0x50 and 0x51"?  Does that mean that
> large eeproms are spread over several nodes?  I searched around but
> could
> not find an example of how to use this at24 to access my E2 from
> userspace.
>
> Thanks
> Ayman
>
>
>                         IIC0: i2c@ef600700 {
>                                 compatible = "ibm,iic-460ex", "ibm,iic";
>                                 reg = <0xef600700 0x00000014>;
>                                 interrupt-parent = <&UIC0>;
>                                 interrupts = <0x2 0x4>;
>                                 #address-cells = <1>;
>                                 #size-cells = <0>;
>
>                                 at24@50 {
>                                         compatible = "at24,at24c128";
>                                         reg = <0x50>;
>                                 };
>                                 at24@52 {
>                                         compatible = "at24,at24c128";
>                                         reg = <0x52>;
>                                 };
>                                 at24@53 {
>                                         compatible = "at24,at24c128";
>                                         reg = <0x53>;
>                                 };
> 				}
>
>
>   
If you're using Denx kernel, you should add your  at24 device to 
i2c_devices[]
in drivers/i2c/busses/i2c-ibm_of.c This will pass your device tree data 
to at24 driver.

Felix.