We have had this device tree (a section shown below) working for a long time:
        soc8...@e0000000 {
                #address-cells = <1>;
                #size-cells = <1>;
                #interrupt-cells = <2>;
                device_type = "soc";
                ranges = <00000000 e0000000 00100000>;
                reg = <e0000000 00000200>;
                bus-frequency = <0>;

                i...@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
_______________________________________________
devicetree-discuss mailing list
[email protected]
https://ozlabs.org/mailman/listinfo/devicetree-discuss

Reply via email to