Re: Device tree configuration for I2C eeprom
From: Sebastian Siewior <hidden>
Date: 2008-09-18 22:13:35
* Ayman El-Khashab | 2008-09-18 14:44:44 [-0500]:
Here is a snippet from the dts file, and I assume I need something like
what I've added:
IIC0: i2c@ef600700 {
compatible = "ibm,iic-460ex", "ibm,iic";
reg = <ef600700 14>;
interrupt-parent = <&UIC0>;
interrupts = <2 4>;
#address-cells = <1>;
#size-cells = <0>;
rtc@68 {
compatible = "stm,m41t80";
reg = <68>;
};
eeprom@50 {
compatible = "?????";
something
something;
};
This should look like:
| IIC0: i2c@ef600700 {
| compatible = "ibm,iic-460ex", "ibm,iic";
| reg = <ef600700 14>;
| interrupt-parent = <&UIC0>;
| interrupts = <2 4>;
| #address-cells = <1>;
| #size-cells = <0>;
| rtc@68 {
| compatible = "m41t80";
| reg = <68>;
| };
| eeprom@50 {
| compatible = "eeprom";
| reg = <50>;
| };
Compatible is the ID of the driver. You can find it in the driver
itself: if you look in ./drivers/rtc/rtc-m41t80.c you will find a struct
m41t80_id which contains the ids. The same applies to the eeprom driver.
You might want to update your dts from current kernel tree which
contains the "/dts-v1/" tag at the beginning and then your field must
contain an 0x prefix.
Once I do all that, how does one use the eeprom driver to read and write this part?
The eeprom driver should create an eeprom file somewhere in /sys I am not sure where exactly. The help entry in Kconfig says that is module provides only RO access to the eeprom. Sebastian