|
@@ -30,6 +30,7 @@
|
|
|
#include <linux/root_dev.h>
|
|
|
#include <linux/initrd.h>
|
|
|
|
|
|
+#include <asm/of_device.h>
|
|
|
#include <asm/system.h>
|
|
|
#include <asm/atomic.h>
|
|
|
#include <asm/time.h>
|
|
@@ -141,6 +142,24 @@ static void __init mpc8360_sys_setup_arch(void)
|
|
|
#endif
|
|
|
}
|
|
|
|
|
|
+static int __init mpc8360_declare_of_platform_devices(void)
|
|
|
+{
|
|
|
+ struct device_node *np;
|
|
|
+
|
|
|
+ for (np = NULL; (np = of_find_compatible_node(np, "network",
|
|
|
+ "ucc_geth")) != NULL;) {
|
|
|
+ int ucc_num;
|
|
|
+ char bus_id[BUS_ID_SIZE];
|
|
|
+
|
|
|
+ ucc_num = *((uint *) get_property(np, "device-id", NULL)) - 1;
|
|
|
+ snprintf(bus_id, BUS_ID_SIZE, "ucc_geth.%u", ucc_num);
|
|
|
+ of_platform_device_create(np, bus_id, NULL);
|
|
|
+ }
|
|
|
+
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+device_initcall(mpc8360_declare_of_platform_devices);
|
|
|
+
|
|
|
void __init mpc8360_sys_init_IRQ(void)
|
|
|
{
|
|
|
|