aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Siewior <bigeasy@tglx.de>2008-03-14 19:01:30 -0400
committerKumar Gala <galak@kernel.crashing.org>2008-04-17 02:01:36 -0400
commit1028d4f162796a99b87565b6b40b5fec79c242d0 (patch)
treed8207c813ef7abb8f7f953351b2c874343a242ed
parent370131c3f2cdd82edeb71add4b098b51803e214e (diff)
[POWERPC] 85xx: Enable DMA engine on the MPC8544 DS
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>
-rw-r--r--arch/powerpc/boot/dts/mpc8544ds.dts41
-rw-r--r--arch/powerpc/configs/85xx/mpc8544_ds_defconfig17
-rw-r--r--arch/powerpc/platforms/85xx/mpc85xx_ds.c13
3 files changed, 70 insertions, 1 deletions
diff --git a/arch/powerpc/boot/dts/mpc8544ds.dts b/arch/powerpc/boot/dts/mpc8544ds.dts
index 688af9d06382..131ffaae2b5d 100644
--- a/arch/powerpc/boot/dts/mpc8544ds.dts
+++ b/arch/powerpc/boot/dts/mpc8544ds.dts
@@ -116,6 +116,47 @@
116 }; 116 };
117 }; 117 };
118 118
119 dma@21300 {
120 #address-cells = <1>;
121 #size-cells = <1>;
122 compatible = "fsl,mpc8544-dma", "fsl,eloplus-dma";
123 reg = <21300 4>;
124 ranges = <0 21100 200>;
125 cell-index = <0>;
126 dma-channel@0 {
127 compatible = "fsl,mpc8544-dma-channel",
128 "fsl,eloplus-dma-channel";
129 reg = <0 80>;
130 cell-index = <0>;
131 interrupt-parent = <&mpic>;
132 interrupts = <14 2>;
133 };
134 dma-channel@80 {
135 compatible = "fsl,mpc8544-dma-channel",
136 "fsl,eloplus-dma-channel";
137 reg = <80 80>;
138 cell-index = <1>;
139 interrupt-parent = <&mpic>;
140 interrupts = <15 2>;
141 };
142 dma-channel@100 {
143 compatible = "fsl,mpc8544-dma-channel",
144 "fsl,eloplus-dma-channel";
145 reg = <100 80>;
146 cell-index = <2>;
147 interrupt-parent = <&mpic>;
148 interrupts = <16 2>;
149 };
150 dma-channel@180 {
151 compatible = "fsl,mpc8544-dma-channel",
152 "fsl,eloplus-dma-channel";
153 reg = <180 80>;
154 cell-index = <3>;
155 interrupt-parent = <&mpic>;
156 interrupts = <17 2>;
157 };
158 };
159
119 enet0: ethernet@24000 { 160 enet0: ethernet@24000 {
120 cell-index = <0>; 161 cell-index = <0>;
121 device_type = "network"; 162 device_type = "network";
diff --git a/arch/powerpc/configs/85xx/mpc8544_ds_defconfig b/arch/powerpc/configs/85xx/mpc8544_ds_defconfig
index 418bcdb5f919..a9f113b243ae 100644
--- a/arch/powerpc/configs/85xx/mpc8544_ds_defconfig
+++ b/arch/powerpc/configs/85xx/mpc8544_ds_defconfig
@@ -162,6 +162,7 @@ CONFIG_MPC85xx=y
162# CONFIG_MPC85xx_CDS is not set 162# CONFIG_MPC85xx_CDS is not set
163# CONFIG_MPC85xx_MDS is not set 163# CONFIG_MPC85xx_MDS is not set
164CONFIG_MPC85xx_DS=y 164CONFIG_MPC85xx_DS=y
165# CONFIG_KSI8560 is not set
165# CONFIG_STX_GP3 is not set 166# CONFIG_STX_GP3 is not set
166# CONFIG_TQM8540 is not set 167# CONFIG_TQM8540 is not set
167# CONFIG_TQM8541 is not set 168# CONFIG_TQM8541 is not set
@@ -202,6 +203,7 @@ CONFIG_PREEMPT_NONE=y
202# CONFIG_PREEMPT is not set 203# CONFIG_PREEMPT is not set
203CONFIG_BINFMT_ELF=y 204CONFIG_BINFMT_ELF=y
204CONFIG_BINFMT_MISC=m 205CONFIG_BINFMT_MISC=m
206CONFIG_FORCE_MAX_ZONEORDER=11
205CONFIG_MATH_EMULATION=y 207CONFIG_MATH_EMULATION=y
206# CONFIG_IOMMU_HELPER is not set 208# CONFIG_IOMMU_HELPER is not set
207CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 209CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
@@ -1255,7 +1257,19 @@ CONFIG_RTC_DRV_CMOS=y
1255# 1257#
1256# on-CPU RTC drivers 1258# on-CPU RTC drivers
1257# 1259#
1258# CONFIG_DMADEVICES is not set 1260CONFIG_DMADEVICES=y
1261
1262#
1263# DMA Devices
1264#
1265CONFIG_FSL_DMA=y
1266# CONFIG_FSL_DMA_SELFTEST is not set
1267CONFIG_DMA_ENGINE=y
1268
1269#
1270# DMA Clients
1271#
1272# CONFIG_NET_DMA is not set
1259 1273
1260# 1274#
1261# Userspace I/O 1275# Userspace I/O
@@ -1447,6 +1461,7 @@ CONFIG_PLIST=y
1447CONFIG_HAS_IOMEM=y 1461CONFIG_HAS_IOMEM=y
1448CONFIG_HAS_IOPORT=y 1462CONFIG_HAS_IOPORT=y
1449CONFIG_HAS_DMA=y 1463CONFIG_HAS_DMA=y
1464CONFIG_HAVE_LMB=y
1450 1465
1451# 1466#
1452# Kernel hacking 1467# Kernel hacking
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_ds.c b/arch/powerpc/platforms/85xx/mpc85xx_ds.c
index 2865d019afc3..dfd8b4ad9b28 100644
--- a/arch/powerpc/platforms/85xx/mpc85xx_ds.c
+++ b/arch/powerpc/platforms/85xx/mpc85xx_ds.c
@@ -19,6 +19,7 @@
19#include <linux/delay.h> 19#include <linux/delay.h>
20#include <linux/seq_file.h> 20#include <linux/seq_file.h>
21#include <linux/interrupt.h> 21#include <linux/interrupt.h>
22#include <linux/of_platform.h>
22 23
23#include <asm/system.h> 24#include <asm/system.h>
24#include <asm/time.h> 25#include <asm/time.h>
@@ -183,6 +184,18 @@ static int __init mpc8544_ds_probe(void)
183 } 184 }
184} 185}
185 186
187static struct of_device_id mpc85xxds_ids[] = {
188 { .type = "soc", },
189 { .compatible = "soc", },
190 {},
191};
192
193static int __init mpc85xxds_publish_devices(void)
194{
195 return of_platform_bus_probe(NULL, mpc85xxds_ids, NULL);
196}
197machine_device_initcall(mpc8544_ds, mpc85xxds_publish_devices);
198
186/* 199/*
187 * Called very early, device-tree isn't unflattened 200 * Called very early, device-tree isn't unflattened
188 */ 201 */