i2c@80003000 {
                        #address-cells = <1>;
                        #size-cells = <0>;
-                       device_type = "i2c";
+                       cell-index = <0>;
                        compatible = "fsl-i2c";
                        reg = <80003000 1000>;
                        interrupts = <5 2>;
 
                i2c@80003000 {
                        #address-cells = <1>;
                        #size-cells = <0>;
-                       device_type = "i2c";
+                       cell-index = <0>;
                        compatible = "fsl-i2c";
                        reg = <80003000 1000>;
                        interrupts = <5 2>;
 
                };
 
                i2c@3d00 {
-                       device_type = "i2c";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
                        compatible = "mpc5200-i2c","fsl-i2c";
                        cell-index = <0>;
                        reg = <3d00 40>;
                };
 
                i2c@3d40 {
-                       device_type = "i2c";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
                        compatible = "mpc5200-i2c","fsl-i2c";
                        cell-index = <1>;
                        reg = <3d40 40>;
 
                };
 
                i2c@3d00 {
-                       device_type = "i2c";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
                        compatible = "mpc5200b-i2c","mpc5200-i2c","fsl-i2c";
                        cell-index = <0>;
                        reg = <3d00 40>;
                };
 
                i2c@3d40 {
-                       device_type = "i2c";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
                        compatible = "mpc5200b-i2c","mpc5200-i2c","fsl-i2c";
                        cell-index = <1>;
                        reg = <3d40 40>;
 
                };
 
                i2c@3000 {
-                       device_type = "i2c";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       cell-index = <0>;
                        compatible = "fsl-i2c";
                        reg = <3000 100>;
                        interrupts = <e 8>;
                };
 
                i2c@3100 {
-                       device_type = "i2c";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       cell-index = <1>;
                        compatible = "fsl-i2c";
                        reg = <3100 100>;
                        interrupts = <f 8>;
 
                i2c@3000 {
                        #address-cells = <1>;
                        #size-cells = <0>;
-                       device_type = "i2c";
+                       cell-index = <0>;
                        compatible = "fsl-i2c";
                        reg = <3000 100>;
                        interrupts = <e 8>;
 
                };
 
                i2c@3000 {
-                       device_type = "i2c";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       cell-index = <0>;
                        compatible = "fsl-i2c";
                        reg = <3000 100>;
                        interrupts = <e 8>;
 
                };
 
                i2c@3000 {
-                       device_type = "i2c";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       cell-index = <0>;
                        compatible = "fsl-i2c";
                        reg = <3000 100>;
                        interrupts = <e 8>;
                };
 
                i2c@3100 {
-                       device_type = "i2c";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       cell-index = <1>;
                        compatible = "fsl-i2c";
                        reg = <3100 100>;
                        interrupts = <f 8>;
 
                };
 
                i2c@3000 {
-                       device_type = "i2c";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       cell-index = <0>;
                        compatible = "fsl-i2c";
                        reg = <3000 100>;
                        interrupts = <e 8>;
                };
 
                i2c@3100 {
-                       device_type = "i2c";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       cell-index = <1>;
                        compatible = "fsl-i2c";
                        reg = <3100 100>;
                        interrupts = <f 8>;
 
                i2c@3000 {
                        #address-cells = <1>;
                        #size-cells = <0>;
-                       device_type = "i2c";
+                       cell-index = <0>;
                        compatible = "fsl-i2c";
                        reg = <3000 100>;
                        interrupts = <e 8>;
                i2c@3100 {
                        #address-cells = <1>;
                        #size-cells = <0>;
-                       device_type = "i2c";
+                       cell-index = <1>;
                        compatible = "fsl-i2c";
                        reg = <3100 100>;
                        interrupts = <f 8>;
 
                i2c@3000 {
                        #address-cells = <1>;
                        #size-cells = <0>;
-                       device_type = "i2c";
+                       cell-index = <0>;
                        compatible = "fsl-i2c";
                        reg = <3000 100>;
                        interrupts = <e 8>;
                i2c@3100 {
                        #address-cells = <1>;
                        #size-cells = <0>;
-                       device_type = "i2c";
+                       cell-index = <1>;
                        compatible = "fsl-i2c";
                        reg = <3100 100>;
                        interrupts = <f 8>;
 
                };
 
                i2c@3000 {
-                       device_type = "i2c";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       cell-index = <0>;
                        compatible = "fsl-i2c";
                        reg = <3000 100>;
                        interrupts = <2b 2>;
 
                };
 
                i2c@3000 {
-                       device_type = "i2c";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       cell-index = <0>;
                        compatible = "fsl-i2c";
                        reg = <3000 100>;
                        interrupts = <2b 2>;
 
                };
 
                i2c@3000 {
-                       device_type = "i2c";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       cell-index = <0>;
                        compatible = "fsl-i2c";
                        reg = <3000 100>;
                        interrupts = <2b 2>;
                        dfsrr;
                };
 
+               i2c@3100 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       cell-index = <1>;
+                       compatible = "fsl-i2c";
+                       reg = <3100 100>;
+                       interrupts = <2b 2>;
+                       interrupt-parent = <&mpic>;
+                       dfsrr;
+               };
+
                mdio@24520 {
                        #address-cells = <1>;
                        #size-cells = <0>;
 
                };
 
                i2c@3000 {
-                       device_type = "i2c";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       cell-index = <0>;
                        compatible = "fsl-i2c";
                        reg = <3000 100>;
                        interrupts = <2b 2>;
                        dfsrr;
                };
 
+               i2c@3100 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       cell-index = <1>;
+                       compatible = "fsl-i2c";
+                       reg = <3100 100>;
+                       interrupts = <2b 2>;
+                       interrupt-parent = <&mpic>;
+                       dfsrr;
+               };
+
                mdio@24520 {
                        #address-cells = <1>;
                        #size-cells = <0>;
 
                };
 
                i2c@3000 {
-                       device_type = "i2c";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       cell-index = <0>;
                        compatible = "fsl-i2c";
                        reg = <3000 100>;
                        interrupts = <2b 2>;
 
                i2c@3000 {
                        #address-cells = <1>;
                        #size-cells = <0>;
-                       device_type = "i2c";
+                       cell-index = <0>;
                        compatible = "fsl-i2c";
                        reg = <3000 100>;
                        interrupts = <2b 2>;
                i2c@3100 {
                        #address-cells = <1>;
                        #size-cells = <0>;
-                       device_type = "i2c";
+                       cell-index = <1>;
                        compatible = "fsl-i2c";
                        reg = <3100 100>;
                        interrupts = <2b 2>;
 
                };
 
                i2c@3000 {
-                       device_type = "i2c";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       cell-index = <0>;
                        compatible = "fsl-i2c";
                        reg = <3000 100>;
                        interrupts = <2b 2>;
                };
 
                i2c@3100 {
-                       device_type = "i2c";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       cell-index = <1>;
                        compatible = "fsl-i2c";
                        reg = <3100 100>;
                        interrupts = <2b 2>;
 
                bus-frequency = <0>;
 
                i2c@3000 {
-                       device_type = "i2c";
-                       compatible = "fsl-i2c";
                        #address-cells = <1>;
                        #size-cells = <0>;
+                       cell-index = <0>;
+                       compatible = "fsl-i2c";
                        reg = <3000 100>;
                        interrupts = <2b 2>;
                        interrupt-parent = <&mpic>;
                };
 
                i2c@3100 {
-                       device_type = "i2c";
-                       compatible = "fsl-i2c";
                        #address-cells = <1>;
                        #size-cells = <0>;
+                       cell-index = <1>;
+                       compatible = "fsl-i2c";
                        reg = <3100 100>;
                        interrupts = <2b 2>;
                        interrupt-parent = <&mpic>;
 
                bus-frequency = <0>;
 
                i2c@3000 {
-                       device_type = "i2c";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       cell-index = <0>;
                        compatible = "fsl-i2c";
                        reg = <3000 100>;
                        interrupts = <2b 2>;
                };
 
                i2c@3100 {
-                       device_type = "i2c";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       cell-index = <1>;
                        compatible = "fsl-i2c";
                        reg = <3100 100>;
                        interrupts = <2b 2>;
 
 static int __init fsl_i2c_of_init(void)
 {
        struct device_node *np;
-       unsigned int i;
+       unsigned int i = 0;
        struct platform_device *i2c_dev;
        int ret;
 
-       for (np = NULL, i = 0;
-            (np = of_find_compatible_node(np, "i2c", "fsl-i2c")) != NULL;
-            i++) {
+       for_each_compatible_node(np, NULL, "fsl-i2c") {
                struct resource r[2];
                struct fsl_i2c_platform_data i2c_data;
                const unsigned char *flags = NULL;
                if (ret)
                        goto unreg;
 
-               of_register_i2c_devices(np, i);
+               of_register_i2c_devices(np, i++);
        }
 
        return 0;