.resource       = realview_pb11mp_smsc911x_resources,
 };
 
+struct resource realview_pb11mp_cf_resources[] = {
+       [0] = {
+               .start          = REALVIEW_PB11MP_CF_BASE,
+               .end            = REALVIEW_PB11MP_CF_BASE + SZ_4K - 1,
+               .flags          = IORESOURCE_MEM,
+       },
+       [1] = {
+               .start          = REALVIEW_PB11MP_CF_MEM_BASE,
+               .end            = REALVIEW_PB11MP_CF_MEM_BASE + SZ_4K - 1,
+               .flags          = IORESOURCE_MEM,
+       },
+       [2] = {
+               .start          = -1,           /* FIXME: Find correct irq */
+               .end            = -1,
+               .flags          = IORESOURCE_IRQ,
+       },
+};
+
+struct platform_device realview_pb11mp_cf_device = {
+       .name           = "compactflash",
+       .id             = 0,
+       .num_resources  = ARRAY_SIZE(realview_pb11mp_cf_resources),
+       .resource       = realview_pb11mp_cf_resources,
+};
+
 static void __init gic_init_irq(void)
 {
        unsigned int pldctrl;
                                ARRAY_SIZE(realview_pb11mp_flash_resource));
        platform_device_register(&realview_pb11mp_smsc911x_device);
        platform_device_register(&realview_i2c_device);
+       platform_device_register(&realview_pb11mp_cf_device);
 
        for (i = 0; i < ARRAY_SIZE(amba_devs); i++) {
                struct amba_device *d = amba_devs[i];