Re: [PATCH v2 13/14] ARM: DTS: am33xx: Use the new DT bindings for the eDMA3

Olof Johansson
2015-11-02T09:21:42Z

Hi,

1) This seems to have broken BBB in -next for me, bisected down to this patch.

For bootlog:
http://arm-soc.lixom.net/bootlogs/next/next-20151102/bbb-arm-omap2plus_defconfig.html

2) Please avoid merging DT/platform code in your driver tree, Vinod,
at least without an ack from the platform maintainer. It can be a a
huge mess if they end up causing conflicts, so we always ask to merge
the DT changes through the platform maintainer (Tony in this case) by
default.

Thanks,

-Olof

On Fri, Oct 16, 2015 at 12:18 AM, Peter Ujfalusi <peter.ujfalusi@ti.com> wrote:
> 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>
> ---
> arch/arm/boot/dts/am335x-evm.dts | 9 +---
> arch/arm/boot/dts/am335x-pepper.dts | 11 +----
> arch/arm/boot/dts/am33xx.dtsi | 96 ++++++++++++++++++++++++++-----------
> 3 files changed, 73 insertions(+), 43 deletions(-)
>
> diff --git a/arch/arm/boot/dts/am335x-evm.dts b/arch/arm/boot/dts/am335x-evm.dts
> index 1942a5c8132d..507980672c32 100644
> --- a/arch/arm/boot/dts/am335x-evm.dts
> +++ b/arch/arm/boot/dts/am335x-evm.dts
> @@ -743,8 +743,8 @@
> &mmc3 {
> /* these are on the crossbar and are outlined in the
> xbar-event-map element */
> - dmas = <&edma 12
> - &edma 13>;
> + dmas = <&edma_xbar 12 0 1
> + &edma_xbar 13 0 2>;
> dma-names = "tx", "rx";
> status = "okay";
> vmmc-supply = <&wlan_en_reg>;
> @@ -766,11 +766,6 @@
> };
> };
>
> -&edma {
> - ti,edma-xbar-event-map = /bits/ 16 <1 12
> - 2 13>;
> -};
> -
> &sham {
> status = "okay";
> };
> diff --git a/arch/arm/boot/dts/am335x-pepper.dts b/arch/arm/boot/dts/am335x-pepper.dts
> index 7106114c7464..39073b921664 100644
> --- a/arch/arm/boot/dts/am335x-pepper.dts
> +++ b/arch/arm/boot/dts/am335x-pepper.dts
> @@ -339,13 +339,6 @@
> ti,non-removable;
> };
>
> -&edma {
> - /* Map eDMA MMC2 Events from Crossbar */
> - ti,edma-xbar-event-map = /bits/ 16 <1 12
> - 2 13>;
> -};
> -
> -
> &mmc3 {
> /* Wifi & Bluetooth on MMC #3 */
> status = "okay";
> @@ -354,8 +347,8 @@
> vmmmc-supply = <&v3v3c_reg>;
> bus-width = <4>;
> ti,non-removable;
> - dmas = <&edma 12
> - &edma 13>;
> + dmas = <&edma_xbar 12 0 1
> + &edma_xbar 13 0 2>;
> dma-names = "tx", "rx";
> };
>
> diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi
> index d23e2524d694..6053e75c6e99 100644
> --- a/arch/arm/boot/dts/am33xx.dtsi
> +++ b/arch/arm/boot/dts/am33xx.dtsi
> @@ -174,12 +174,54 @@
> };
>
> edma: edma@49000000 {
> - compatible = "ti,edma3";
> - ti,hwmods = "tpcc", "tptc0", "tptc1", "tptc2";
> - reg = <0x49000000 0x10000>,
> - <0x44e10f90 0x40>;
> + compatible = "ti,edma3-tpcc";
> + ti,hwmods = "tpcc";
> + reg = <0x49000000 0x10000>;
> + reg-names = "edma3_cc";
> interrupts = <12 13 14>;
> - #dma-cells = <1>;
> + interrupt-names = "edma3_ccint", "emda3_mperr",
> + "edma3_ccerrint";
> + dma-requests = <64>;
> + #dma-cells = <2>;
> +
> + ti,tptcs = <&edma_tptc0 7>, <&edma_tptc1 5>,
> + <&edma_tptc2 0>;
> +
> + ti,edma-memcpy-channels = /bits/ 16 <20 21>;
> + };
> +
> + edma_tptc0: tptc@49800000 {
> + compatible = "ti,edma3-tptc";
> + ti,hwmods = "tptc0";
> + reg = <0x49800000 0x100000>;
> + interrupts = <112>;
> + interrupt-names = "edma3_tcerrint";
> + };
> +
> + edma_tptc1: tptc@49900000 {
> + compatible = "ti,edma3-tptc";
> + ti,hwmods = "tptc1";
> + reg = <0x49900000 0x100000>;
> + interrupts = <113>;
> + interrupt-names = "edma3_tcerrint";
> + };
> +
> + edma_tptc2: tptc@49a00000 {
> + compatible = "ti,edma3-tptc";
> + ti,hwmods = "tptc2";
> + reg = <0x49a00000 0x100000>;
> + interrupts = <114>;
> + interrupt-names = "edma3_tcerrint";
> + };
> +
> + edma_xbar: dma-router@44e10f90 {
> + compatible = "ti,am335x-edma-crossbar";
> + reg = <0x44e10f90 0x40>;
> +
> + #dma-cells = <3>;
> + dma-requests = <32>;
> +
> + dma-masters = <&edma>;
> };
>
> gpio0: gpio@44e07000 {
> @@ -233,7 +275,7 @@
> reg = <0x44e09000 0x2000>;
> interrupts = <72>;
> status = "disabled";
> - dmas = <&edma 26>, <&edma 27>;
> + dmas = <&edma 26 0>, <&edma 27 0>;
> dma-names = "tx", "rx";
> };
>
> @@ -244,7 +286,7 @@
> reg = <0x48022000 0x2000>;
> interrupts = <73>;
> status = "disabled";
> - dmas = <&edma 28>, <&edma 29>;
> + dmas = <&edma 28 0>, <&edma 29 0>;
> dma-names = "tx", "rx";
> };
>
> @@ -255,7 +297,7 @@
> reg = <0x48024000 0x2000>;
> interrupts = <74>;
> status = "disabled";
> - dmas = <&edma 30>, <&edma 31>;
> + dmas = <&edma 30 0>, <&edma 31 0>;
> dma-names = "tx", "rx";
> };
>
> @@ -322,8 +364,8 @@
> ti,dual-volt;
> ti,needs-special-reset;
> ti,needs-special-hs-handling;
> - dmas = <&edma 24
> - &edma 25>;
> + dmas = <&edma_xbar 24 0 0
> + &edma_xbar 25 0 0>;
> dma-names = "tx", "rx";
> interrupts = <64>;
> interrupt-parent = <&intc>;
> @@ -335,8 +377,8 @@
> compatible = "ti,omap4-hsmmc";
> ti,hwmods = "mmc2";
> ti,needs-special-reset;
> - dmas = <&edma 2
> - &edma 3>;
> + dmas = <&edma 2 0
> + &edma 3 0>;
> dma-names = "tx", "rx";
> interrupts = <28>;
> interrupt-parent = <&intc>;
> @@ -474,10 +516,10 @@
> interrupts = <65>;
> ti,spi-num-cs = <2>;
> ti,hwmods = "spi0";
> - dmas = <&edma 16
> - &edma 17
> - &edma 18
> - &edma 19>;
> + dmas = <&edma 16 0
> + &edma 17 0
> + &edma 18 0
> + &edma 19 0>;
> dma-names = "tx0", "rx0", "tx1", "rx1";
> status = "disabled";
> };
> @@ -490,10 +532,10 @@
> interrupts = <125>;
> ti,spi-num-cs = <2>;
> ti,hwmods = "spi1";
> - dmas = <&edma 42
> - &edma 43
> - &edma 44
> - &edma 45>;
> + dmas = <&edma 42 0
> + &edma 43 0
> + &edma 44 0
> + &edma 45 0>;
> dma-names = "tx0", "rx0", "tx1", "rx1";
> status = "disabled";
> };
> @@ -831,7 +873,7 @@
> ti,hwmods = "sham";
> reg = <0x53100000 0x200>;
> interrupts = <109>;
> - dmas = <&edma 36>;
> + dmas = <&edma 36 0>;
> dma-names = "rx";
> };
>
> @@ -840,8 +882,8 @@
> ti,hwmods = "aes";
> reg = <0x53500000 0xa0>;
> interrupts = <103>;
> - dmas = <&edma 6>,
> - <&edma 5>;
> + dmas = <&edma 6 0>,
> + <&edma 5 0>;
> dma-names = "tx", "rx";
> };
>
> @@ -854,8 +896,8 @@
> interrupts = <80>, <81>;
> interrupt-names = "tx", "rx";
> status = "disabled";
> - dmas = <&edma 8>,
> - <&edma 9>;
> + dmas = <&edma 8 2>,
> + <&edma 9 2>;
> dma-names = "tx", "rx";
> };
>
> @@ -868,8 +910,8 @@
> interrupts = <82>, <83>;
> interrupt-names = "tx", "rx";
> status = "disabled";
> - dmas = <&edma 10>,
> - <&edma 11>;
> + dmas = <&edma 10 2>,
> + <&edma 11 2>;
> dma-names = "tx", "rx";
> };
>
> --
> 2.6.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/