extern struct amba_pl011_data uart1_plat;
 extern struct amba_pl011_data uart2_plat;
 extern struct pl022_ssp_controller ssp0_plat;
+extern struct stedma40_platform_data dma40_plat_data;
 
 extern void mop500_sdi_init(struct device *parent);
 extern void snowball_sdi_init(struct device *parent);
 
 
        db8500_add_usb(parent, usb_db8500_dma_cfg, usb_db8500_dma_cfg);
 
-       u8500_dma40_device.dev.parent = parent;
-
-       /*
-        * Devices to be DT:ed:
-        *   u8500_dma40_device  = todo
-        *   db8500_pmu_device   = done
-        *   db8500_prcmu_device = done
-        */
-       platform_device_register(&u8500_dma40_device);
-
        return parent;
 }
 
                "ux500-msp-i2s.2", &msp2_platform_data),
        OF_DEV_AUXDATA("stericsson,ux500-msp-i2s", 0x80125000,
                "ux500-msp-i2s.3", &msp3_platform_data),
+       /* Requires clock name bindings and channel address lookup table. */
+       OF_DEV_AUXDATA("stericsson,db8500-dma40", 0x801C0000,
+                      "dma40.0", &dma40_plat_data),
        {},
 };
 
 
        [DB8500_DMA_DEV48_CAC1] = U8500_CRYP1_BASE + CRYP1_RX_REG_OFFSET,
 };
 
-static struct stedma40_platform_data dma40_plat_data = {
+struct stedma40_platform_data dma40_plat_data = {
        .dev_rx = dma40_rx_map,
        .dev_tx = dma40_tx_map,
        .disabled_channels = {-1},