aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorSebastian Andrzej Siewior <bigeasy@linutronix.de>2013-06-20 06:13:04 -0400
committerFelipe Balbi <balbi@ti.com>2013-08-09 10:40:16 -0400
commit9b3452d1fa3c017d3664ff9e6a601daa6e0576eb (patch)
treeac2fdd71c45975f2430d094ef138ccd0a2d835c0 /arch/arm
parent97238b35d5bbb5d5312d83c30a429824b777619f (diff)
usb: musb dma: add cppi41 dma driver
This driver is currently used by musb' cppi41 couter part. I may merge both dma engine user of musb at some point but not just yet. The driver seems to work in RX/TX mode in host mode, tested on mass storage. I increaed the size of the TX / RX transfers and waited for the core code to cancel a transfers and it seems to recover. v2..3: - use mall transfers on RX side and check data toggle. - use rndis mode on tx side so we haveon interrupt for 4096 transfers. - remove custom "transferred" hack and use dmaengine_tx_status() to compute the total amount of data that has been transferred. - cancel transfers and reclaim descriptors v1..v2: - RX path added - dma mode 0 & 1 is working - device tree nodes re-created. Cc: Vinod Koul <vinod.koul@intel.com> Cc: Dan Williams <djbw@fb.com> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Felipe Balbi <balbi@ti.com>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/boot/dts/am335x-evm.dts4
-rw-r--r--arch/arm/boot/dts/am33xx.dtsi61
2 files changed, 65 insertions, 0 deletions
diff --git a/arch/arm/boot/dts/am335x-evm.dts b/arch/arm/boot/dts/am335x-evm.dts
index b2987e03b19f..c26c16cace3c 100644
--- a/arch/arm/boot/dts/am335x-evm.dts
+++ b/arch/arm/boot/dts/am335x-evm.dts
@@ -193,6 +193,10 @@
193 usb@47401800 { 193 usb@47401800 {
194 status = "okay"; 194 status = "okay";
195 }; 195 };
196
197 dma@07402000 {
198 status = "okay";
199 };
196 }; 200 };
197 201
198 i2c1: i2c@4802a000 { 202 i2c1: i2c@4802a000 {
diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi
index e1e773cd2556..24d63095ab83 100644
--- a/arch/arm/boot/dts/am33xx.dtsi
+++ b/arch/arm/boot/dts/am33xx.dtsi
@@ -383,6 +383,29 @@
383 port-mode = <3>; 383 port-mode = <3>;
384 power = <250>; 384 power = <250>;
385 phys = <&usb0_phy>; 385 phys = <&usb0_phy>;
386
387 dmas = <&cppi41dma 0 0 &cppi41dma 1 0
388 &cppi41dma 2 0 &cppi41dma 3 0
389 &cppi41dma 4 0 &cppi41dma 5 0
390 &cppi41dma 6 0 &cppi41dma 7 0
391 &cppi41dma 8 0 &cppi41dma 9 0
392 &cppi41dma 10 0 &cppi41dma 11 0
393 &cppi41dma 12 0 &cppi41dma 13 0
394 &cppi41dma 14 0 &cppi41dma 0 1
395 &cppi41dma 1 1 &cppi41dma 2 1
396 &cppi41dma 3 1 &cppi41dma 4 1
397 &cppi41dma 5 1 &cppi41dma 6 1
398 &cppi41dma 7 1 &cppi41dma 8 1
399 &cppi41dma 9 1 &cppi41dma 10 1
400 &cppi41dma 11 1 &cppi41dma 12 1
401 &cppi41dma 13 1 &cppi41dma 14 1>;
402 dma-names =
403 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
404 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
405 "rx14", "rx15",
406 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
407 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
408 "tx14", "tx15";
386 }; 409 };
387 }; 410 };
388 411
@@ -415,8 +438,46 @@
415 port-mode = <3>; 438 port-mode = <3>;
416 power = <250>; 439 power = <250>;
417 phys = <&usb1_phy>; 440 phys = <&usb1_phy>;
441
442 dmas = <&cppi41dma 15 0 &cppi41dma 16 0
443 &cppi41dma 17 0 &cppi41dma 18 0
444 &cppi41dma 19 0 &cppi41dma 20 0
445 &cppi41dma 21 0 &cppi41dma 22 0
446 &cppi41dma 23 0 &cppi41dma 24 0
447 &cppi41dma 25 0 &cppi41dma 26 0
448 &cppi41dma 27 0 &cppi41dma 28 0
449 &cppi41dma 29 0 &cppi41dma 15 1
450 &cppi41dma 16 1 &cppi41dma 17 1
451 &cppi41dma 18 1 &cppi41dma 19 1
452 &cppi41dma 20 1 &cppi41dma 21 1
453 &cppi41dma 22 1 &cppi41dma 23 1
454 &cppi41dma 24 1 &cppi41dma 25 1
455 &cppi41dma 26 1 &cppi41dma 27 1
456 &cppi41dma 28 1 &cppi41dma 29 1>;
457 dma-names =
458 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
459 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
460 "rx14", "rx15",
461 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
462 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
463 "tx14", "tx15";
418 }; 464 };
419 }; 465 };
466
467 cppi41dma: dma@07402000 {
468 compatible = "ti,am3359-cppi41";
469 reg = <0x47400000 0x1000
470 0x47402000 0x1000
471 0x47403000 0x1000
472 0x47404000 0x4000>;
473 reg-names = "glue controller scheduler queuemgr";
474 interrupts = <17>;
475 interrupt-names = "glue";
476 #dma-cells = <2>;
477 #dma-channels = <30>;
478 #dma-requests = <256>;
479 status = "disabled";
480 };
420 }; 481 };
421 482
422 epwmss0: epwmss@48300000 { 483 epwmss0: epwmss@48300000 {