[POWERPC] FSL: enet device tree cleanups
[pandora-kernel.git] / arch / powerpc / sysdev / fsl_soc.c
index 3ace747..4baad80 100644 (file)
@@ -132,15 +132,18 @@ EXPORT_SYMBOL(get_baudrate);
 
 static int __init gfar_mdio_of_init(void)
 {
-       struct device_node *np;
-       unsigned int i;
+       struct device_node *np = NULL;
        struct platform_device *mdio_dev;
        struct resource res;
        int ret;
 
-       for (np = NULL, i = 0;
-            (np = of_find_compatible_node(np, "mdio", "gianfar")) != NULL;
-            i++) {
+       np = of_find_compatible_node(np, NULL, "fsl,gianfar-mdio");
+
+       /* try the deprecated version */
+       if (!np)
+               np = of_find_compatible_node(np, "mdio", "gianfar");
+
+       if (np) {
                int k;
                struct device_node *child = NULL;
                struct gianfar_mdio_data mdio_data;
@@ -179,11 +182,13 @@ static int __init gfar_mdio_of_init(void)
                        goto unreg;
        }
 
+       of_node_put(np);
        return 0;
 
 unreg:
        platform_device_unregister(mdio_dev);
 err:
+       of_node_put(np);
        return ret;
 }
 
@@ -390,13 +395,11 @@ static void __init of_register_i2c_devices(struct device_node *adap_node,
 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;
@@ -432,7 +435,7 @@ static int __init fsl_i2c_of_init(void)
                if (ret)
                        goto unreg;
 
-               of_register_i2c_devices(np, i);
+               of_register_i2c_devices(np, i++);
        }
 
        return 0;