I2C not working upon 2.6.24 to 2.6.28 kernel upgrade
Johns Daniel
johns.daniel at gmail.com
Fri Mar 13 04:37:38 EST 2009
We have had this device tree (a section shown below) working for a long time:
soc8343 at e0000000 {
#address-cells = <1>;
#size-cells = <1>;
#interrupt-cells = <2>;
device_type = "soc";
ranges = <00000000 e0000000 00100000>;
reg = <e0000000 00000200>;
bus-frequency = <0>;
i2c at 3000 {
device_type = "i2c";
compatible = "fsl-i2c";
reg = <3000 100>;
interrupts = <e 8>;
interrupt-parent = <700>;
dfsrr;
};
...
}
With linux-2.6.24, it worked with this struct defined in the
board-specific file:
static struct of_device_id __initdata of_bus_ids[] = {
{ .compatible = "fsl,pq2pro-localbus", },
{},
};
With linux-2.6.28, it needs the following struct in the board-specific
file for I2C to work:
static struct of_device_id __initdata of_bus_ids[] = {
{ .type = "soc", },
{ .name = "localbus", },
{},
};
Is this easily explained?
What is the right way to do this now? Ideally, I would like to keep
the device tree unchanged since I need for it to work with older
versions of the kernel!
-- Johns
More information about the devicetree-discuss
mailing list