Index: linux-davinci-2.6/arch/arm/mach-davinci/devices.c
===================================================================
--- linux-davinci-2.6.orig/arch/arm/mach-davinci/devices.c
+++ linux-davinci-2.6/arch/arm/mach-davinci/devices.c
@@ -92,6 +92,40 @@ static void davinci_init_mmcsd(void) {}
 
 #endif
 
+#if defined(CONFIG_TI_DAVINCI_EMAC) || defined(CONFIG_TI_DAVINCI_EMAC_MODULE)
+
+static struct resource emac_resources[] = {
+	{
+	.start = DAVINCI_EMAC_CNTRL_REGS_BASE,
+	.end   = DAVINCI_EMAC_CNTRL_REGS_BASE + 0x4800, /* 4K */
+	.flags = IORESOURCE_MEM,
+	},
+	{
+	.start = IRQ_EMACINT,
+	.flags = IORESOURCE_IRQ,
+	},
+};
+
+
+static struct platform_device davinci_emac_device = {
+	.name = "davinci_emac",
+	.id = 1,
+	.num_resources = ARRAY_SIZE(emac_resources),
+	.resource = emac_resources,
+};
+
+
+static void davinci_init_emac(void)
+{
+	(void) platform_device_register(&davinci_emac_device);
+}
+
+#else
+
+static void davinci_init_emac(void) {}
+
+#endif
+
 /*-------------------------------------------------------------------------*/
 
 static int __init davinci_init_devices(void)
@@ -101,6 +135,7 @@ static int __init davinci_init_devices(v
 	 */
 	davinci_init_i2c();
 	davinci_init_mmcsd();
+	davinci_init_emac();
 
 	return 0;
 }
