Merge with git://www.denx.de/git/u-boot.git
[platform/kernel/u-boot.git] / board / mpc8360emds / pci.c
index 15a48dc..8f90471 100644 (file)
 #include <common.h>
 #include <pci.h>
 #include <i2c.h>
+#if defined(CONFIG_OF_FLAT_TREE)
+#include <ft_build.h>
+#elif defined(CONFIG_OF_LIBFDT)
+#include <libfdt.h>
+#include <libfdt_env.h>
+#endif
 
 #include <asm/fsl_i2c.h>
 
@@ -200,7 +206,7 @@ void pci_init_board(void)
 
        /* Switch temporarily to I2C bus #2 */
        orig_i2c_bus = i2c_get_bus_num();
-       i2c_set_bus_num(1);
+       i2c_set_bus_num(1);
 
        val8 = 0;
        i2c_write(0x23, 0x6, 1, &val8, 1);
@@ -296,18 +302,33 @@ void pci_init_board(void)
 }
 #endif                         /* CONFIG_PCISLAVE */
 
-#ifdef CONFIG_OF_FLAT_TREE
+#if defined(CONFIG_OF_LIBFDT)
+void
+ft_pci_setup(void *blob, bd_t *bd)
+{
+       int nodeoffset;
+       int err;
+       int tmp[2];
+
+       nodeoffset = fdt_find_node_by_path(blob, "/" OF_SOC "/pci@8500");
+       if (nodeoffset >= 0) {
+               tmp[0] = cpu_to_be32(hose[0].first_busno);
+               tmp[1] = cpu_to_be32(hose[0].last_busno);
+               err = fdt_setprop(blob, nodeoffset, "bus-range", tmp, sizeof(tmp));
+       }
+}
+#elif defined(CONFIG_OF_FLAT_TREE)
 void
 ft_pci_setup(void *blob, bd_t *bd)
 {
-               u32 *p;
-               int len;
+       u32 *p;
+       int len;
 
-               p = (u32 *)ft_get_prop(blob, "/" OF_SOC "/pci@8500/bus-range", &len);
-               if (p != NULL) {
+       p = (u32 *)ft_get_prop(blob, "/" OF_SOC "/pci@8500/bus-range", &len);
+       if (p != NULL) {
                p[0] = hose[0].first_busno;
                p[1] = hose[0].last_busno;
-               }
+       }
 }
 #endif                         /* CONFIG_OF_FLAT_TREE */
 #endif                         /* CONFIG_PCI */