Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: DTS: am437x: Use the new DT bindings for the eDMA3

Switch to use the ti,edma3-tpcc and ti,edma3-tptc binding for the eDMA3 and
enable the DMA even crossbar with ti,am335x-edma-crossbar.
With the new bindings boards can customize and tweak the DMA channel
priority to match their needs. With the new binding the memcpy is safe
to be used since with the old binding it was not possible for a driver
to know which channel is allowed to be used as non HW triggered channel.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>

authored by

Peter Ujfalusi and committed by
Tony Lindgren
cce1ee00 b5e50906

+62 -27
+60 -20
arch/arm/boot/dts/am4372.dtsi
··· 172 172 mboxes = <&mailbox &mbox_wkupm3>; 173 173 }; 174 174 175 + edma_xbar: dma-router@f90 { 176 + compatible = "ti,am335x-edma-crossbar"; 177 + reg = <0xf90 0x40>; 178 + #dma-cells = <3>; 179 + dma-requests = <64>; 180 + dma-masters = <&edma>; 181 + }; 182 + 175 183 scm_clockdomains: clockdomains { 176 184 }; 177 185 }; ··· 192 184 }; 193 185 194 186 edma: edma@49000000 { 195 - compatible = "ti,edma3"; 196 - ti,hwmods = "tpcc", "tptc0", "tptc1", "tptc2"; 197 - reg = <0x49000000 0x10000>, 198 - <0x44e10f90 0x10>; 187 + compatible = "ti,edma3-tpcc"; 188 + ti,hwmods = "tpcc"; 189 + reg = <0x49000000 0x10000>; 190 + reg-names = "edma3_cc"; 199 191 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>, 200 - <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>, 201 - <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; 202 - #dma-cells = <1>; 192 + <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>, 193 + <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; 194 + interrupt-names = "edma3_ccint", "emda3_mperr", 195 + "edma3_ccerrint"; 196 + dma-requests = <64>; 197 + #dma-cells = <2>; 198 + 199 + ti,tptcs = <&edma_tptc0 7>, <&edma_tptc1 5>, 200 + <&edma_tptc2 0>; 201 + 202 + ti,edma-memcpy-channels = <32 33>; 203 + }; 204 + 205 + edma_tptc0: tptc@49800000 { 206 + compatible = "ti,edma3-tptc"; 207 + ti,hwmods = "tptc0"; 208 + reg = <0x49800000 0x100000>; 209 + interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>; 210 + interrupt-names = "edma3_tcerrint"; 211 + }; 212 + 213 + edma_tptc1: tptc@49900000 { 214 + compatible = "ti,edma3-tptc"; 215 + ti,hwmods = "tptc1"; 216 + reg = <0x49900000 0x100000>; 217 + interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>; 218 + interrupt-names = "edma3_tcerrint"; 219 + }; 220 + 221 + edma_tptc2: tptc@49a00000 { 222 + compatible = "ti,edma3-tptc"; 223 + ti,hwmods = "tptc2"; 224 + reg = <0x49a00000 0x100000>; 225 + interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>; 226 + interrupt-names = "edma3_tcerrint"; 203 227 }; 204 228 205 229 uart0: serial@44e09000 { ··· 536 496 ti,hwmods = "mmc1"; 537 497 ti,dual-volt; 538 498 ti,needs-special-reset; 539 - dmas = <&edma 24 540 - &edma 25>; 499 + dmas = <&edma 24 0>, 500 + <&edma 25 0>; 541 501 dma-names = "tx", "rx"; 542 502 interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>; 543 503 status = "disabled"; ··· 548 508 reg = <0x481d8000 0x1000>; 549 509 ti,hwmods = "mmc2"; 550 510 ti,needs-special-reset; 551 - dmas = <&edma 2 552 - &edma 3>; 511 + dmas = <&edma 2 0>, 512 + <&edma 3 0>; 553 513 dma-names = "tx", "rx"; 554 514 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>; 555 515 status = "disabled"; ··· 817 777 compatible = "ti,omap5-sham"; 818 778 ti,hwmods = "sham"; 819 779 reg = <0x53100000 0x300>; 820 - dmas = <&edma 36>; 780 + dmas = <&edma 36 0>; 821 781 dma-names = "rx"; 822 782 interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>; 823 783 }; ··· 827 787 ti,hwmods = "aes"; 828 788 reg = <0x53501000 0xa0>; 829 789 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>; 830 - dmas = <&edma 6 831 - &edma 5>; 790 + dmas = <&edma 6 0>, 791 + <&edma 5 0>; 832 792 dma-names = "tx", "rx"; 833 793 }; 834 794 ··· 837 797 ti,hwmods = "des"; 838 798 reg = <0x53701000 0xa0>; 839 799 interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>; 840 - dmas = <&edma 34 841 - &edma 33>; 800 + dmas = <&edma 34 0>, 801 + <&edma 33 0>; 842 802 dma-names = "tx", "rx"; 843 803 }; 844 804 ··· 851 811 interrupts = <80>, <81>; 852 812 interrupt-names = "tx", "rx"; 853 813 status = "disabled"; 854 - dmas = <&edma 8>, 855 - <&edma 9>; 814 + dmas = <&edma 8 2>, 815 + <&edma 9 2>; 856 816 dma-names = "tx", "rx"; 857 817 }; 858 818 ··· 865 825 interrupts = <82>, <83>; 866 826 interrupt-names = "tx", "rx"; 867 827 status = "disabled"; 868 - dmas = <&edma 10>, 869 - <&edma 11>; 828 + dmas = <&edma 10 2>, 829 + <&edma 11 2>; 870 830 dma-names = "tx", "rx"; 871 831 }; 872 832
+2 -7
arch/arm/boot/dts/am437x-gp-evm.dts
··· 734 734 status = "okay"; 735 735 /* these are on the crossbar and are outlined in the 736 736 xbar-event-map element */ 737 - dmas = <&edma 30 738 - &edma 31>; 737 + dmas = <&edma_xbar 30 0 1>, 738 + <&edma_xbar 31 0 2>; 739 739 dma-names = "tx", "rx"; 740 740 vmmc-supply = <&vmmcwl_fixed>; 741 741 bus-width = <4>; ··· 754 754 interrupt-parent = <&gpio1>; 755 755 interrupts = <23 IRQ_TYPE_LEVEL_HIGH>; 756 756 }; 757 - }; 758 - 759 - &edma { 760 - ti,edma-xbar-event-map = /bits/ 16 <1 30 761 - 2 31>; 762 757 }; 763 758 764 759 &uart3 {