#include "mmc-twl4030.h"
 
 
+#define SDP3430_SMC91X_CS      3
 #define CONFIG_DISABLE_HFCLK 1
 
 #define ENABLE_VAUX1_DEDICATED 0x03
 
 #define TWL4030_MSECURE_GPIO   22
 
+static struct resource ldp_smc911x_resources[] = {
+       [0] = {
+               .start  = OMAP34XX_ETHR_START,
+               .end    = OMAP34XX_ETHR_START + SZ_4K,
+               .flags  = IORESOURCE_MEM,
+       },
+       [1] = {
+               .start  = 0,
+               .end    = 0,
+               .flags  = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWLEVEL,
+       },
+};
+
+static struct platform_device ldp_smc911x_device = {
+       .name           = "smc911x",
+       .id             = -1,
+       .num_resources  = ARRAY_SIZE(ldp_smc911x_resources),
+       .resource       = ldp_smc911x_resources,
+};
+
 static int ts_gpio;
 
 static int __init msecure_init(void)
 };
 
 static struct platform_device *ldp_devices[] __initdata = {
+       &ldp_smc911x_device,
        &ldp_lcd_device,
 };
 
+static inline void __init ldp_init_smc911x(void)
+{
+       int eth_cs;
+       unsigned long cs_mem_base;
+       int eth_gpio = 0;
+
+       eth_cs = LDP_SMC911X_CS;
+
+       if (gpmc_cs_request(eth_cs, SZ_16M, &cs_mem_base) < 0) {
+               printk(KERN_ERR "Failed to request GPMC mem for smc911x\n");
+               return;
+       }
+
+       ldp_smc911x_resources[0].start = cs_mem_base + 0x0;
+       ldp_smc911x_resources[0].end   = cs_mem_base + 0xf;
+       udelay(100);
+
+       eth_gpio = LDP_SMC911X_GPIO;
+
+       ldp_smc911x_resources[1].start = OMAP_GPIO_IRQ(eth_gpio);
+
+       if (omap_request_gpio(eth_gpio) < 0) {
+               printk(KERN_ERR "Failed to request GPIO%d for smc911x IRQ\n",
+                               eth_gpio);
+               return;
+       }
+       omap_set_gpio_direction(eth_gpio, 1);
+}
+
+
 static void __init omap_ldp_init_irq(void)
 {
        omap2_init_common_hw(NULL);
        omap_init_irq();
        omap_gpio_init();
+       ldp_init_smc911x();
 }
 
 static struct omap_uart_config ldp_uart_config __initdata = {