ARM: ux500: Pass remnant platform data though to DMA40 driver
authorLee Jones <lee.jones@linaro.org>
Fri, 3 May 2013 14:32:13 +0000 (15:32 +0100)
committerLinus Walleij <linus.walleij@linaro.org>
Thu, 23 May 2013 19:13:12 +0000 (21:13 +0200)
Ironically, in order to remove lots of the auxdata assignments, we have
to add just one more. A lot of them require DMA information to be passed
into clients for DMA channel allocation, but we now have this capability
in Device Tree. However, the DMA40 driver still relies on a reverse table
look-up to obtain DMA addresses. Until all of the clients are converted,
over to the new API, we're stuck with this.

Also, now the DMA40 has been DT:ed, there's no requirement to register
it using traditional methods, so let's remove it.

Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
arch/arm/mach-ux500/board-mop500.h
arch/arm/mach-ux500/cpu-db8500.c
arch/arm/mach-ux500/devices-db8500.c

index 49514b825034b6af289c12093d96a5edc2f12755..6f0bfcb0890717654e099626c54173f2d47020fa 100644 (file)
@@ -93,6 +93,7 @@ extern struct amba_pl011_data uart0_plat;
 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);
index 5f0b2ed55df64ec2d5a9a3fd8c82d8e4a4694840..648fa0cd012318ba28134b27e8835e9ce9cd0973 100644 (file)
@@ -225,16 +225,6 @@ static struct device * __init u8500_of_init_devices(void)
 
        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;
 }
 
@@ -280,6 +270,9 @@ static struct of_dev_auxdata u8500_auxdata_lookup[] __initdata = {
                "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),
        {},
 };
 
index 130f3d9917e7c257a461fdeaa0a7c129f28ae820..bed25a39e68bd3004c376391e02fe2661db73c8c 100644 (file)
@@ -120,7 +120,7 @@ static const dma_addr_t dma40_rx_map[DB8500_DMA_NR_DEV] = {
        [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},