]> err.no Git - linux-2.6/blobdiff - arch/powerpc/sysdev/fsl_soc.c
[POWERPC] QE: get rid of most device_types and model
[linux-2.6] / arch / powerpc / sysdev / fsl_soc.c
index 474cb8e22f64603451dae9777ac24614cec1e69f..26f7d83c4be548c9e379f87d75f528468c0c93dc 100644 (file)
@@ -55,10 +55,18 @@ phys_addr_t get_immrbase(void)
        soc = of_find_node_by_type(NULL, "soc");
        if (soc) {
                int size;
-               const void *prop = of_get_property(soc, "reg", &size);
+               u32 naddr;
+               const u32 *prop = of_get_property(soc, "#address-cells", &size);
 
+               if (prop && size == 4)
+                       naddr = *prop;
+               else
+                       naddr = 2;
+
+               prop = of_get_property(soc, "ranges", &size);
                if (prop)
-                       immrbase = of_translate_address(soc, prop);
+                       immrbase = of_translate_address(soc, prop + naddr);
+
                of_node_put(soc);
        }
 
@@ -1268,7 +1276,10 @@ int __init fsl_spi_init(struct spi_board_info *board_infos,
        const u32 *sysclk;
 
        /* SPI controller is either clocked from QE or SoC clock */
-       np = of_find_node_by_type(NULL, "qe");
+       np = of_find_compatible_node(NULL, NULL, "fsl,qe");
+       if (!np)
+               np = of_find_node_by_type(NULL, "qe");
+
        if (!np)
                np = of_find_node_by_type(NULL, "soc");