[POWERPC] 85xx: Enable DMA engine on the MPC8544 DS
authorSebastian Siewior <bigeasy@tglx.de>
Fri, 14 Mar 2008 23:01:30 +0000 (00:01 +0100)
committerKumar Gala <galak@kernel.crashing.org>
Thu, 17 Apr 2008 06:01:36 +0000 (01:01 -0500)
Add the device tree node for the DMA engine on 8544, publish
the device and enable the driver in the defconfig.

Signed-off-by: Sebastian Siewior <bigeasy@linutronix.de>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
arch/powerpc/boot/dts/mpc8544ds.dts
arch/powerpc/configs/85xx/mpc8544_ds_defconfig
arch/powerpc/platforms/85xx/mpc85xx_ds.c

index 688af9d06382b5b1b2b70390488a65c474915045..131ffaae2b5d7d42f850896f38b4cf32efd27d17 100644 (file)
                        };
                };
 
+               dma@21300 {
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       compatible = "fsl,mpc8544-dma", "fsl,eloplus-dma";
+                       reg = <21300 4>;
+                       ranges = <0 21100 200>;
+                       cell-index = <0>;
+                       dma-channel@0 {
+                               compatible = "fsl,mpc8544-dma-channel",
+                                               "fsl,eloplus-dma-channel";
+                               reg = <0 80>;
+                               cell-index = <0>;
+                               interrupt-parent = <&mpic>;
+                               interrupts = <14 2>;
+                       };
+                       dma-channel@80 {
+                               compatible = "fsl,mpc8544-dma-channel",
+                                               "fsl,eloplus-dma-channel";
+                               reg = <80 80>;
+                               cell-index = <1>;
+                               interrupt-parent = <&mpic>;
+                               interrupts = <15 2>;
+                       };
+                       dma-channel@100 {
+                               compatible = "fsl,mpc8544-dma-channel",
+                                               "fsl,eloplus-dma-channel";
+                               reg = <100 80>;
+                               cell-index = <2>;
+                               interrupt-parent = <&mpic>;
+                               interrupts = <16 2>;
+                       };
+                       dma-channel@180 {
+                               compatible = "fsl,mpc8544-dma-channel",
+                                               "fsl,eloplus-dma-channel";
+                               reg = <180 80>;
+                               cell-index = <3>;
+                               interrupt-parent = <&mpic>;
+                               interrupts = <17 2>;
+                       };
+               };
+
                enet0: ethernet@24000 {
                        cell-index = <0>;
                        device_type = "network";
index 418bcdb5f919be1d5f99832fca6246409c0d1361..a9f113b243ae9acfb27da79ecf9e7e1e1d8a6350 100644 (file)
@@ -162,6 +162,7 @@ CONFIG_MPC85xx=y
 # CONFIG_MPC85xx_CDS is not set
 # CONFIG_MPC85xx_MDS is not set
 CONFIG_MPC85xx_DS=y
+# CONFIG_KSI8560 is not set
 # CONFIG_STX_GP3 is not set
 # CONFIG_TQM8540 is not set
 # CONFIG_TQM8541 is not set
@@ -202,6 +203,7 @@ CONFIG_PREEMPT_NONE=y
 # CONFIG_PREEMPT is not set
 CONFIG_BINFMT_ELF=y
 CONFIG_BINFMT_MISC=m
+CONFIG_FORCE_MAX_ZONEORDER=11
 CONFIG_MATH_EMULATION=y
 # CONFIG_IOMMU_HELPER is not set
 CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
@@ -1255,7 +1257,19 @@ CONFIG_RTC_DRV_CMOS=y
 #
 # on-CPU RTC drivers
 #
-# CONFIG_DMADEVICES is not set
+CONFIG_DMADEVICES=y
+
+#
+# DMA Devices
+#
+CONFIG_FSL_DMA=y
+# CONFIG_FSL_DMA_SELFTEST is not set
+CONFIG_DMA_ENGINE=y
+
+#
+# DMA Clients
+#
+# CONFIG_NET_DMA is not set
 
 #
 # Userspace I/O
@@ -1447,6 +1461,7 @@ CONFIG_PLIST=y
 CONFIG_HAS_IOMEM=y
 CONFIG_HAS_IOPORT=y
 CONFIG_HAS_DMA=y
+CONFIG_HAVE_LMB=y
 
 #
 # Kernel hacking
index 2865d019afc366cab33487b5025c0aa59bc6d8cc..dfd8b4ad9b2854835ad27b9fe794a60b20537a81 100644 (file)
@@ -19,6 +19,7 @@
 #include <linux/delay.h>
 #include <linux/seq_file.h>
 #include <linux/interrupt.h>
+#include <linux/of_platform.h>
 
 #include <asm/system.h>
 #include <asm/time.h>
@@ -183,6 +184,18 @@ static int __init mpc8544_ds_probe(void)
        }
 }
 
+static struct of_device_id mpc85xxds_ids[] = {
+       { .type = "soc", },
+       { .compatible = "soc", },
+       {},
+};
+
+static int __init mpc85xxds_publish_devices(void)
+{
+       return of_platform_bus_probe(NULL, mpc85xxds_ids, NULL);
+}
+machine_device_initcall(mpc8544_ds, mpc85xxds_publish_devices);
+
 /*
  * Called very early, device-tree isn't unflattened
  */