From: Jingchang Lu <b35083@freescale.com>
To: vinod.koul@intel.com
Cc: dan.j.williams@intel.com, shawn.guo@linaro.org,
pawel.moll@arm.com, mark.rutland@arm.com, swarren@wwwdotorg.org,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
Jingchang Lu <b35083@freescale.com>
Subject: [PATCHv8 1/2] ARM: dts: vf610: Add eDMA node
Date: Thu, 2 Jan 2014 14:52:23 +0800 [thread overview]
Message-ID: <1388645544-5596-2-git-send-email-b35083@freescale.com> (raw)
In-Reply-To: <1388645544-5596-1-git-send-email-b35083@freescale.com>
Signed-off-by: Jingchang Lu <b35083@freescale.com>
---
changes in v8:
describe dmamux info in edma node to avoid confusion.
change eDMA requst source macro definitions.
changes in v7:
fix dmamux2 and dmamux3 register number.
no changes in v2 ~ v6.
arch/arm/boot/dts/vf610.dtsi | 31 ++++++
include/dt-bindings/dma/vf610-edma.h | 195 +++++++++++++++++++++++++++++++++++
2 files changed, 226 insertions(+)
create mode 100644 include/dt-bindings/dma/vf610-edma.h
diff --git a/arch/arm/boot/dts/vf610.dtsi b/arch/arm/boot/dts/vf610.dtsi
index ef8a0ee..9f433b4 100644
--- a/arch/arm/boot/dts/vf610.dtsi
+++ b/arch/arm/boot/dts/vf610.dtsi
@@ -10,6 +10,7 @@
#include "skeleton.dtsi"
#include "vf610-pingrp.h"
#include <dt-bindings/clock/vf610-clock.h>
+#include <dt-bindings/dma/vf610-edma.h>
/ {
aliases {
@@ -87,6 +88,21 @@
arm,tag-latency = <2 2 2>;
};
+ edma0: dma-controller@40018000 {
+ #dma-cells = <2>;
+ compatible = "fsl,vf610-edma";
+ reg = <0x40018000 0x2000>,
+ <0x40024000 0x1000>,
+ <0x40025000 0x1000>;
+ interrupts = <0 8 0x04>,
+ <0 9 0x04>;
+ interrupt-names = "edma-tx", "edma-err";
+ dma-channels = <32>;
+ clocks = <&clks VF610_CLK_DMAMUX0>,
+ <&clks VF610_CLK_DMAMUX1>;
+ clock-names = "dmamux0", "dmamux1";
+ };
+
uart0: serial@40027000 {
compatible = "fsl,vf610-lpuart";
reg = <0x40027000 0x1000>;
@@ -262,6 +278,21 @@
reg = <0x40080000 0x80000>;
ranges;
+ edma1: dma-controller@40098000 {
+ #dma-cells = <2>;
+ compatible = "fsl,vf610-edma";
+ reg = <0x40098000 0x2000>,
+ <0x400a1000 0x1000>,
+ <0x400a2000 0x1000>;
+ interrupts = <0 10 0x04>,
+ <0 11 0x04>;
+ interrupt-names = "edma-tx", "edma-err";
+ dma-channels = <32>;
+ clocks = <&clks VF610_CLK_DMAMUX2>,
+ <&clks VF610_CLK_DMAMUX3>;
+ clock-names = "dmamux0", "dmamux1";
+ };
+
uart4: serial@400a9000 {
compatible = "fsl,vf610-lpuart";
reg = <0x400a9000 0x1000>;
diff --git a/include/dt-bindings/dma/vf610-edma.h b/include/dt-bindings/dma/vf610-edma.h
new file mode 100644
index 0000000..2c04142
--- /dev/null
+++ b/include/dt-bindings/dma/vf610-edma.h
@@ -0,0 +1,195 @@
+/*
+ * Copyright 2013-2014 Freescale Semiconductor, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ */
+
+#ifndef __DT_BINDINGS_VF610_EDMA_H__
+#define __DT_BINDINGS_VF610_EDMA_H__
+
+#define VF610_EDMA_DMAMUX0 0
+#define VF610_EDMA_DMAMUX1 1
+
+/* eDMA0 DMAMUX0 group reqeust source(slot) number */
+#define VF610_EDMA0_MUX0_UART0_RX 2
+#define VF610_EDMA0_MUX0_UART0_TX 3
+#define VF610_EDMA0_MUX0_UART1_RX 4
+#define VF610_EDMA0_MUX0_UART1_TX 5
+#define VF610_EDMA0_MUX0_UART2_RX 6
+#define VF610_EDMA0_MUX0_UART2_TX 7
+#define VF610_EDMA0_MUX0_UART3_RX 8
+#define VF610_EDMA0_MUX0_UART3_TX 9
+#define VF610_EDMA0_MUX0_DSPI0_RX 12
+#define VF610_EDMA0_MUX0_DSPI0_TX 13
+#define VF610_EDMA0_MUX0_DSPI1_RX 14
+#define VF610_EDMA0_MUX0_DSPI1_TX 15
+#define VF610_EDMA0_MUX0_SAI0_RX 16
+#define VF610_EDMA0_MUX0_SAI0_TX 17
+#define VF610_EDMA0_MUX0_SAI1_RX 18
+#define VF610_EDMA0_MUX0_SAI1_TX 19
+#define VF610_EDMA0_MUX0_SAI2_RX 20
+#define VF610_EDMA0_MUX0_SAI2_TX 21
+#define VF610_EDMA0_MUX0_PDB 22
+#define VF610_EDMA0_MUX0_FTM0_CH0 24
+#define VF610_EDMA0_MUX0_FTM0_CH1 25
+#define VF610_EDMA0_MUX0_FTM0_CH2 26
+#define VF610_EDMA0_MUX0_FTM0_CH3 27
+#define VF610_EDMA0_MUX0_FTM0_CH4 28
+#define VF610_EDMA0_MUX0_FTM0_CH5 29
+#define VF610_EDMA0_MUX0_FTM0_CH6 30
+#define VF610_EDMA0_MUX0_FTM0_CH7 31
+#define VF610_EDMA0_MUX0_FTM1_CH0 32
+#define VF610_EDMA0_MUX0_FTM1_CH1 33
+#define VF610_EDMA0_MUX0_ADC0 34
+#define VF610_EDMA0_MUX0_QUADSPI0 36
+#define VF610_EDMA0_MUX0_GPIOA 38
+#define VF610_EDMA0_MUX0_GPIOB 39
+#define VF610_EDMA0_MUX0_GPIOC 40
+#define VF610_EDMA0_MUX0_GPIOD 41
+#define VF610_EDMA0_MUX0_GPIOE 42
+#define VF610_EDMA0_MUX0_RLE_RX 45
+#define VF610_EDMA0_MUX0_RLE_TX 46
+#define VF610_EDMA0_MUX0_SPDIF_RX 47
+#define VF610_EDMA0_MUX0_SPDIF_TX 48
+#define VF610_EDMA0_MUX0_I2C0_RX 50
+#define VF610_EDMA0_MUX0_I2C0_TX 51
+#define VF610_EDMA0_MUX0_I2C1_RX 52
+#define VF610_EDMA0_MUX0_I2C1_TX 53
+
+/* eDMA DMAMUX1 group request source(slot) number */
+#define VF610_EDMA0_MUX1_UART4_RX 2
+#define VF610_EDMA0_MUX1_UART4_TX 3
+#define VF610_EDMA0_MUX1_UART5_RX 4
+#define VF610_EDMA0_MUX1_UART5_TX 5
+#define VF610_EDMA0_MUX1_SAI3_RX 8
+#define VF610_EDMA0_MUX1_SAI3_TX 9
+#define VF610_EDMA0_MUX1_DSPI2_RX 10
+#define VF610_EDMA0_MUX1_DSPI2_TX 11
+#define VF610_EDMA0_MUX1_DSPI3_RX 12
+#define VF610_EDMA0_MUX1_DSPI3_TX 13
+#define VF610_EDMA0_MUX1_FTM2_CH0 16
+#define VF610_EDMA0_MUX1_FTM2_CH1 17
+#define VF610_EDMA0_MUX1_FTM3_CH0 18
+#define VF610_EDMA0_MUX1_FTM3_CH1 19
+#define VF610_EDMA0_MUX1_FTM3_CH2 20
+#define VF610_EDMA0_MUX1_FTM3_CH3 21
+#define VF610_EDMA0_MUX1_FTM3_CH4 22
+#define VF610_EDMA0_MUX1_FTM3_CH5 24
+#define VF610_EDMA0_MUX1_FTM3_CH6 25
+#define VF610_EDMA0_MUX1_FTM3_CH7 26
+#define VF610_EDMA0_MUX1_QUADSPI1 27
+#define VF610_EDMA0_MUX1_DAC0 32
+#define VF610_EDMA0_MUX1_DAC1 33
+#define VF610_EDMA0_MUX1_ESAI_BIFIFO_TX 34
+#define VF610_EDMA0_MUX1_ESAI_BIFIFO_RX 35
+#define VF610_EDMA0_MUX1_I2C2_RX 36
+#define VF610_EDMA0_MUX1_I2C2_TX 37
+#define VF610_EDMA0_MUX1_I2C3_RX 38
+#define VF610_EDMA0_MUX1_I2C3_TX 39
+#define VF610_EDMA0_MUX1_ASRC0_TX 40
+#define VF610_EDMA0_MUX1_ASRC0_RX 41
+#define VF610_EDMA0_MUX1_ASRC1_TX 42
+#define VF610_EDMA0_MUX1_ASRC1_RX 43
+#define VF610_EDMA0_MUX1_TIMER0 44
+#define VF610_EDMA0_MUX1_TIMER1 45
+#define VF610_EDMA0_MUX1_TIMER2 46
+#define VF610_EDMA0_MUX1_TIMER3 47
+#define VF610_EDMA0_MUX1_TIMER4 48
+#define VF610_EDMA0_MUX1_TIMER5 49
+#define VF610_EDMA0_MUX1_TIMER6 50
+#define VF610_EDMA0_MUX1_TIMER7 51
+
+/* eDMA1 DMAMUX0 request source(slot) number */
+#define VF610_EDMA1_MUX0_UART4_RX 2
+#define VF610_EDMA1_MUX0_UART4_TX 3
+#define VF610_EDMA1_MUX0_UART5_RX 4
+#define VF610_EDMA1_MUX0_UART5_TX 5
+#define VF610_EDMA1_MUX0_SAI3_RX 8
+#define VF610_EDMA1_MUX0_SAI3_TX 9
+#define VF610_EDMA1_MUX0_DSPI2_RX 10
+#define VF610_EDMA1_MUX0_DSPI2_TX 11
+#define VF610_EDMA1_MUX0_DSPI3_RX 12
+#define VF610_EDMA1_MUX0_DSPI3_TX 13
+#define VF610_EDMA1_MUX0_FTM2_CH0 16
+#define VF610_EDMA1_MUX0_FTM2_CH1 17
+#define VF610_EDMA1_MUX0_FTM3_CH0 18
+#define VF610_EDMA1_MUX0_FTM3_CH1 19
+#define VF610_EDMA1_MUX0_FTM3_CH2 20
+#define VF610_EDMA1_MUX0_FTM3_CH3 21
+#define VF610_EDMA1_MUX0_FTM3_CH4 22
+#define VF610_EDMA1_MUX0_FTM3_CH5 24
+#define VF610_EDMA1_MUX0_FTM3_CH6 25
+#define VF610_EDMA1_MUX0_FTM3_CH7 26
+#define VF610_EDMA1_MUX0_QUADSPI1 27
+#define VF610_EDMA1_MUX0_DAC0 32
+#define VF610_EDMA1_MUX0_DAC1 33
+#define VF610_EDMA1_MUX0_ESAI_BIFIFO_TX 34
+#define VF610_EDMA1_MUX0_ESAI_BIFIFO_RX 35
+#define VF610_EDMA1_MUX0_I2C2_RX 36
+#define VF610_EDMA1_MUX0_I2C2_TX 37
+#define VF610_EDMA1_MUX0_I2C3_RX 38
+#define VF610_EDMA1_MUX0_I2C3_TX 39
+#define VF610_EDMA1_MUX0_ASRC0_TX 40
+#define VF610_EDMA1_MUX0_ASRC0_RX 41
+#define VF610_EDMA1_MUX0_ASRC1_TX 42
+#define VF610_EDMA1_MUX0_ASRC1_RX 43
+#define VF610_EDMA1_MUX0_TIMER0 44
+#define VF610_EDMA1_MUX0_TIMER1 45
+#define VF610_EDMA1_MUX0_TIMER2 46
+#define VF610_EDMA1_MUX0_TIMER3 47
+#define VF610_EDMA1_MUX0_TIMER4 48
+#define VF610_EDMA1_MUX0_TIMER5 49
+#define VF610_EDMA1_MUX0_TIMER6 50
+#define VF610_EDMA1_MUX0_TIMER7 51
+
+/* eDMA1 DMAMUX1 group reqeust source(slot) number */
+#define VF610_EDMA1_MUX1_UART0_RX 2
+#define VF610_EDMA1_MUX1_UART0_TX 3
+#define VF610_EDMA1_MUX1_UART1_RX 4
+#define VF610_EDMA1_MUX1_UART1_TX 5
+#define VF610_EDMA1_MUX1_UART2_RX 6
+#define VF610_EDMA1_MUX1_UART2_TX 7
+#define VF610_EDMA1_MUX1_UART3_RX 8
+#define VF610_EDMA1_MUX1_UART3_TX 9
+#define VF610_EDMA1_MUX1_DSPI0_RX 12
+#define VF610_EDMA1_MUX1_DSPI0_TX 13
+#define VF610_EDMA1_MUX1_DSPI1_RX 14
+#define VF610_EDMA1_MUX1_DSPI1_TX 15
+#define VF610_EDMA1_MUX1_SAI0_RX 16
+#define VF610_EDMA1_MUX1_SAI0_TX 17
+#define VF610_EDMA1_MUX1_SAI1_RX 18
+#define VF610_EDMA1_MUX1_SAI1_TX 19
+#define VF610_EDMA1_MUX1_SAI2_RX 20
+#define VF610_EDMA1_MUX1_SAI2_TX 21
+#define VF610_EDMA1_MUX1_PDB 22
+#define VF610_EDMA1_MUX1_FTM0_CH0 24
+#define VF610_EDMA1_MUX1_FTM0_CH1 25
+#define VF610_EDMA1_MUX1_FTM0_CH2 26
+#define VF610_EDMA1_MUX1_FTM0_CH3 27
+#define VF610_EDMA1_MUX1_FTM0_CH4 28
+#define VF610_EDMA1_MUX1_FTM0_CH5 29
+#define VF610_EDMA1_MUX1_FTM0_CH6 30
+#define VF610_EDMA1_MUX1_FTM0_CH7 31
+#define VF610_EDMA1_MUX1_FTM1_CH0 32
+#define VF610_EDMA1_MUX1_FTM1_CH1 33
+#define VF610_EDMA1_MUX1_ADC0 34
+#define VF610_EDMA1_MUX1_QUADSPI0 36
+#define VF610_EDMA1_MUX1_GPIOA 38
+#define VF610_EDMA1_MUX1_GPIOB 39
+#define VF610_EDMA1_MUX1_GPIOC 40
+#define VF610_EDMA1_MUX1_GPIOD 41
+#define VF610_EDMA1_MUX1_GPIOE 42
+#define VF610_EDMA1_MUX1_RLE_RX 45
+#define VF610_EDMA1_MUX1_RLE_TX 46
+#define VF610_EDMA1_MUX1_SPDIF_RX 47
+#define VF610_EDMA1_MUX1_SPDIF_TX 48
+#define VF610_EDMA1_MUX1_I2C0_RX 50
+#define VF610_EDMA1_MUX1_I2C0_TX 51
+#define VF610_EDMA1_MUX1_I2C1_RX 52
+#define VF610_EDMA1_MUX1_I2C1_TX 53
+
+#endif
--
1.8.0
next prev parent reply other threads:[~2014-01-02 6:52 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-02 6:52 [PATCHv8 0/2] dma: Add Freescale eDMA engine driver support Jingchang Lu
2014-01-02 6:52 ` Jingchang Lu [this message]
2014-01-02 6:52 ` [PATCHv8 2/2] " Jingchang Lu
[not found] ` <1388645544-5596-3-git-send-email-b35083-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2014-01-08 10:24 ` Jingchang Lu
2014-01-08 10:53 ` Arnd Bergmann
2014-01-09 10:17 ` Jingchang Lu
[not found] ` <4efd24a1219547cbbf0ce8ec66d762e5-AZ66ij2kwab4MB1ZSnT4iOO6mTEJWrR4XA4E9RH9d+qIuWR1G4zioA@public.gmane.org>
2014-01-09 10:42 ` Arnd Bergmann
2014-01-09 11:44 ` Jingchang Lu
2014-01-09 12:19 ` Arnd Bergmann
2014-01-10 6:17 ` Jingchang Lu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1388645544-5596-2-git-send-email-b35083@freescale.com \
--to=b35083@freescale.com \
--cc=dan.j.williams@intel.com \
--cc=devicetree@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=pawel.moll@arm.com \
--cc=shawn.guo@linaro.org \
--cc=swarren@wwwdotorg.org \
--cc=vinod.koul@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).