* [PATCH/RFC 1/7] DMA: shdma: also support single top-level DMAC DT nodes
2013-06-26 14:40 [PATCH v3 0/7] ARM: shmobile: shdma DT on sh73a0 and r8a7740 Guennadi Liakhovetski
@ 2013-06-26 14:40 ` Guennadi Liakhovetski
2013-06-26 14:40 ` [PATCH/RFC v3 2/7] ARM: shmobile: sh73a0: add support for the DMA0 controller in DT Guennadi Liakhovetski
` (6 subsequent siblings)
7 siblings, 0 replies; 14+ messages in thread
From: Guennadi Liakhovetski @ 2013-06-26 14:40 UTC (permalink / raw)
To: linux-sh
Cc: devicetree-discuss, Magnus Damm, Simon Horman,
Guennadi Liakhovetski, Vinod Koul
Currently we support DMAC DT nodes, located under a multiplexer. This also
supports systems with a single DMAC instance by placing it alone under such
a multiplexer node, but this is rather unnatural. This patch adds an
ability to shdma support such single DT nodes with no dummy multiplexer.
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com>
Cc: Vinod Koul <vinod.koul@intel.com>
---
drivers/dma/sh/shdma-of.c | 5 +++--
drivers/dma/sh/shdma.c | 16 ++++++++++++++++
include/linux/sh_dma.h | 5 +++++
3 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/drivers/dma/sh/shdma-of.c b/drivers/dma/sh/shdma-of.c
index 9ab869d..fd2fa10 100644
--- a/drivers/dma/sh/shdma-of.c
+++ b/drivers/dma/sh/shdma-of.c
@@ -19,8 +19,8 @@
#define to_shdma_chan(c) container_of(c, struct shdma_chan, dma_chan)
-static struct dma_chan *shdma_of_xlate(struct of_phandle_args *dma_spec,
- struct of_dma *ofdma)
+struct dma_chan *shdma_of_xlate(struct of_phandle_args *dma_spec,
+ struct of_dma *ofdma)
{
u32 id = dma_spec->args[0];
dma_cap_mask_t mask;
@@ -39,6 +39,7 @@ static struct dma_chan *shdma_of_xlate(struct of_phandle_args *dma_spec,
return chan;
}
+EXPORT_SYMBOL(shdma_of_xlate);
static int shdma_of_probe(struct platform_device *pdev)
{
diff --git a/drivers/dma/sh/shdma.c b/drivers/dma/sh/shdma.c
index 70bc99a..98b2693 100644
--- a/drivers/dma/sh/shdma.c
+++ b/drivers/dma/sh/shdma.c
@@ -20,6 +20,8 @@
#include <linux/init.h>
#include <linux/module.h>
+#include <linux/of.h>
+#include <linux/of_dma.h>
#include <linux/slab.h>
#include <linux/interrupt.h>
#include <linux/dmaengine.h>
@@ -849,6 +851,15 @@ static int sh_dmae_probe(struct platform_device *pdev)
pm_runtime_put(&pdev->dev);
+ if (pdev->dev.of_node &&
+ !of_device_is_compatible(pdev->dev.of_node->parent,
+ "renesas,shdma-mux")) {
+ err = of_dma_controller_register(pdev->dev.of_node,
+ shdma_of_xlate, pdev);
+ if (err < 0)
+ goto eofdma;
+ }
+
err = dma_async_device_register(&shdev->shdma_dev.dma_dev);
if (err < 0)
goto edmadevreg;
@@ -856,6 +867,8 @@ static int sh_dmae_probe(struct platform_device *pdev)
return err;
edmadevreg:
+ of_dma_controller_free(pdev->dev.of_node);
+eofdma:
pm_runtime_get(&pdev->dev);
chan_probe_err:
@@ -901,6 +914,9 @@ static int sh_dmae_remove(struct platform_device *pdev)
dma_async_device_unregister(dma_dev);
+ /* Is a NOP if this controller isn't registered with of-dma */
+ of_dma_controller_free(pdev->dev.of_node);
+
if (errirq > 0)
free_irq(errirq, shdev);
diff --git a/include/linux/sh_dma.h b/include/linux/sh_dma.h
index 4e83f3e..887977d 100644
--- a/include/linux/sh_dma.h
+++ b/include/linux/sh_dma.h
@@ -99,4 +99,9 @@ struct sh_dmae_pdata {
#define CHCR_TE 0x00000002
#define CHCR_IE 0x00000004
+struct of_phandle_args;
+struct of_dma;
+struct dma_chan *shdma_of_xlate(struct of_phandle_args *dma_spec,
+ struct of_dma *ofdma);
+
#endif
--
1.7.2.5
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH/RFC v3 2/7] ARM: shmobile: sh73a0: add support for the DMA0 controller in DT
2013-06-26 14:40 [PATCH v3 0/7] ARM: shmobile: shdma DT on sh73a0 and r8a7740 Guennadi Liakhovetski
2013-06-26 14:40 ` [PATCH/RFC 1/7] DMA: shdma: also support single top-level DMAC DT nodes Guennadi Liakhovetski
@ 2013-06-26 14:40 ` Guennadi Liakhovetski
2013-06-26 14:40 ` [PATCH/RFC v3 3/7] ARM: shmobile: kzm9g-reference: add DMA channels to the MMCIF DT Guennadi Liakhovetski
` (5 subsequent siblings)
7 siblings, 0 replies; 14+ messages in thread
From: Guennadi Liakhovetski @ 2013-06-26 14:40 UTC (permalink / raw)
To: linux-sh
Cc: devicetree-discuss, Magnus Damm, Simon Horman,
Guennadi Liakhovetski
Add a Device Tree node for the DMA0 controller on sh73a0 and
auxdata to supply platform data to the driver. To enable the
DMA0 controller it also has to be taken out of reset.
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com>
---
arch/arm/boot/dts/sh73a0.dtsi | 36 +++++++++++++++++++++++++++++++++
arch/arm/mach-shmobile/setup-sh73a0.c | 4 +++
2 files changed, 40 insertions(+), 0 deletions(-)
diff --git a/arch/arm/boot/dts/sh73a0.dtsi b/arch/arm/boot/dts/sh73a0.dtsi
index b977502..e730246 100644
--- a/arch/arm/boot/dts/sh73a0.dtsi
+++ b/arch/arm/boot/dts/sh73a0.dtsi
@@ -119,6 +119,42 @@
0 32 0x4>;
};
+ dma0: shdma@fe000020 {
+ compatible = "renesas,shdma";
+ reg = <0xfe000020 0x89e0>;
+ interrupt-parent = <&gic>;
+ interrupts = <0 129 4
+ 0 109 4
+ 0 110 4
+ 0 111 4
+ 0 112 4
+ 0 113 4
+ 0 114 4
+ 0 115 4
+ 0 116 4
+ 0 117 4
+ 0 118 4
+ 0 119 4
+ 0 120 4
+ 0 121 4
+ 0 122 4
+ 0 123 4
+ 0 124 4
+ 0 125 4
+ 0 126 4
+ 0 127 4
+ 0 128 4>;
+ interrupt-names = "error",
+ "ch0", "ch1", "ch2", "ch3",
+ "ch4", "ch5", "ch6", "ch7",
+ "ch8", "ch9", "ch10", "ch11",
+ "ch12", "ch13", "ch14", "ch15",
+ "ch16", "ch17", "ch18", "ch19";
+ #dma-cells = <1>;
+ dma-channels = <20>;
+ dma-requests = <256>;
+ };
+
i2c0: i2c@e6820000 {
#address-cells = <1>;
#size-cells = <0>;
diff --git a/arch/arm/mach-shmobile/setup-sh73a0.c b/arch/arm/mach-shmobile/setup-sh73a0.c
index 96e7ca1e..f95ecc7 100644
--- a/arch/arm/mach-shmobile/setup-sh73a0.c
+++ b/arch/arm/mach-shmobile/setup-sh73a0.c
@@ -959,6 +959,7 @@ void __init sh73a0_add_early_devices(void)
#ifdef CONFIG_USE_OF
static const struct of_dev_auxdata sh73a0_auxdata_lookup[] __initconst = {
+ OF_DEV_AUXDATA("renesas,shdma", 0xfe000020, "sh-dma-engine.0", &sh73a0_dmae_platform_data),
{},
};
@@ -969,6 +970,9 @@ void __init sh73a0_add_standard_devices_dt(void)
/* clocks are setup late during boot in the case of DT */
sh73a0_clock_init();
+ /* Clear software reset bit on SY-DMAC module */
+ __raw_writel(__raw_readl(SRCR2) & ~(1 << 18), SRCR2);
+
platform_add_devices(sh73a0_devices_dt,
ARRAY_SIZE(sh73a0_devices_dt));
of_platform_populate(NULL, of_default_bus_match_table,
--
1.7.2.5
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH/RFC v3 3/7] ARM: shmobile: kzm9g-reference: add DMA channels to the MMCIF DT
2013-06-26 14:40 [PATCH v3 0/7] ARM: shmobile: shdma DT on sh73a0 and r8a7740 Guennadi Liakhovetski
2013-06-26 14:40 ` [PATCH/RFC 1/7] DMA: shdma: also support single top-level DMAC DT nodes Guennadi Liakhovetski
2013-06-26 14:40 ` [PATCH/RFC v3 2/7] ARM: shmobile: sh73a0: add support for the DMA0 controller in DT Guennadi Liakhovetski
@ 2013-06-26 14:40 ` Guennadi Liakhovetski
2013-06-26 14:40 ` [PATCH v3 4/7] ARM: shmobile: r8a7740: add MMCIF DMA definitions Guennadi Liakhovetski
` (4 subsequent siblings)
7 siblings, 0 replies; 14+ messages in thread
From: Guennadi Liakhovetski @ 2013-06-26 14:40 UTC (permalink / raw)
To: linux-sh
Cc: devicetree-discuss, Magnus Damm, Simon Horman,
Guennadi Liakhovetski
The MMCIF driver can use DMA for data transfer, add suitable
Device Tree bindings.
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com>
---
arch/arm/boot/dts/sh73a0-kzm9g-reference.dts | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts b/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts
index b6f759e..348e973 100644
--- a/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts
+++ b/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts
@@ -149,6 +149,9 @@
bus-width = <8>;
vmmc-supply = <®_1p8v>;
status = "okay";
+ dmas = <&dma0 0xd1
+ &dma0 0xd2>;
+ dma-names = "tx", "rx";
};
&sdhi0 {
--
1.7.2.5
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v3 4/7] ARM: shmobile: r8a7740: add MMCIF DMA definitions
2013-06-26 14:40 [PATCH v3 0/7] ARM: shmobile: shdma DT on sh73a0 and r8a7740 Guennadi Liakhovetski
` (2 preceding siblings ...)
2013-06-26 14:40 ` [PATCH/RFC v3 3/7] ARM: shmobile: kzm9g-reference: add DMA channels to the MMCIF DT Guennadi Liakhovetski
@ 2013-06-26 14:40 ` Guennadi Liakhovetski
2013-07-03 5:48 ` Simon Horman
2013-06-26 14:40 ` [PATCH v3 5/7] ARM: shmobile: r8a7740: add DT nodes for three DMAC instance Guennadi Liakhovetski
` (3 subsequent siblings)
7 siblings, 1 reply; 14+ messages in thread
From: Guennadi Liakhovetski @ 2013-06-26 14:40 UTC (permalink / raw)
To: linux-sh
Cc: devicetree-discuss, Magnus Damm, Simon Horman,
Guennadi Liakhovetski
Add DMA channel slave IDs and configuration entries for the r8a7740
MMCIF controller.
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com>
---
arch/arm/mach-shmobile/include/mach/r8a7740.h | 2 ++
arch/arm/mach-shmobile/setup-r8a7740.c | 10 ++++++++++
2 files changed, 12 insertions(+), 0 deletions(-)
diff --git a/arch/arm/mach-shmobile/include/mach/r8a7740.h b/arch/arm/mach-shmobile/include/mach/r8a7740.h
index b34d19b..56f3750 100644
--- a/arch/arm/mach-shmobile/include/mach/r8a7740.h
+++ b/arch/arm/mach-shmobile/include/mach/r8a7740.h
@@ -42,6 +42,8 @@ enum {
SHDMA_SLAVE_FSIB_TX,
SHDMA_SLAVE_USBHS_TX,
SHDMA_SLAVE_USBHS_RX,
+ SHDMA_SLAVE_MMCIF_TX,
+ SHDMA_SLAVE_MMCIF_RX,
};
extern void r8a7740_meram_workaround(void);
diff --git a/arch/arm/mach-shmobile/setup-r8a7740.c b/arch/arm/mach-shmobile/setup-r8a7740.c
index 00c5a70..6b3ed42 100644
--- a/arch/arm/mach-shmobile/setup-r8a7740.c
+++ b/arch/arm/mach-shmobile/setup-r8a7740.c
@@ -588,6 +588,16 @@ static const struct sh_dmae_slave_config r8a7740_dmae_slaves[] = {
.addr = 0xfe1f0064,
.chcr = CHCR_TX(XMIT_SZ_32BIT),
.mid_rid = 0xb5,
+ }, {
+ .slave_id = SHDMA_SLAVE_MMCIF_TX,
+ .addr = 0xe6bd0034,
+ .chcr = CHCR_TX(XMIT_SZ_32BIT),
+ .mid_rid = 0xd1,
+ }, {
+ .slave_id = SHDMA_SLAVE_MMCIF_RX,
+ .addr = 0xe6bd0034,
+ .chcr = CHCR_RX(XMIT_SZ_32BIT),
+ .mid_rid = 0xd2,
},
};
--
1.7.2.5
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH v3 4/7] ARM: shmobile: r8a7740: add MMCIF DMA definitions
2013-06-26 14:40 ` [PATCH v3 4/7] ARM: shmobile: r8a7740: add MMCIF DMA definitions Guennadi Liakhovetski
@ 2013-07-03 5:48 ` Simon Horman
0 siblings, 0 replies; 14+ messages in thread
From: Simon Horman @ 2013-07-03 5:48 UTC (permalink / raw)
To: Guennadi Liakhovetski
Cc: linux-sh, devicetree-discuss, Magnus Damm, Guennadi Liakhovetski
On Wed, Jun 26, 2013 at 04:40:53PM +0200, Guennadi Liakhovetski wrote:
> Add DMA channel slave IDs and configuration entries for the r8a7740
> MMCIF controller.
>
> Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com>
> ---
> arch/arm/mach-shmobile/include/mach/r8a7740.h | 2 ++
> arch/arm/mach-shmobile/setup-r8a7740.c | 10 ++++++++++
> 2 files changed, 12 insertions(+), 0 deletions(-)
Thanks, I will queue this up for v3.12 in the soc branch.
>
> diff --git a/arch/arm/mach-shmobile/include/mach/r8a7740.h b/arch/arm/mach-shmobile/include/mach/r8a7740.h
> index b34d19b..56f3750 100644
> --- a/arch/arm/mach-shmobile/include/mach/r8a7740.h
> +++ b/arch/arm/mach-shmobile/include/mach/r8a7740.h
> @@ -42,6 +42,8 @@ enum {
> SHDMA_SLAVE_FSIB_TX,
> SHDMA_SLAVE_USBHS_TX,
> SHDMA_SLAVE_USBHS_RX,
> + SHDMA_SLAVE_MMCIF_TX,
> + SHDMA_SLAVE_MMCIF_RX,
> };
>
> extern void r8a7740_meram_workaround(void);
> diff --git a/arch/arm/mach-shmobile/setup-r8a7740.c b/arch/arm/mach-shmobile/setup-r8a7740.c
> index 00c5a70..6b3ed42 100644
> --- a/arch/arm/mach-shmobile/setup-r8a7740.c
> +++ b/arch/arm/mach-shmobile/setup-r8a7740.c
> @@ -588,6 +588,16 @@ static const struct sh_dmae_slave_config r8a7740_dmae_slaves[] = {
> .addr = 0xfe1f0064,
> .chcr = CHCR_TX(XMIT_SZ_32BIT),
> .mid_rid = 0xb5,
> + }, {
> + .slave_id = SHDMA_SLAVE_MMCIF_TX,
> + .addr = 0xe6bd0034,
> + .chcr = CHCR_TX(XMIT_SZ_32BIT),
> + .mid_rid = 0xd1,
> + }, {
> + .slave_id = SHDMA_SLAVE_MMCIF_RX,
> + .addr = 0xe6bd0034,
> + .chcr = CHCR_RX(XMIT_SZ_32BIT),
> + .mid_rid = 0xd2,
> },
> };
>
> --
> 1.7.2.5
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH v3 5/7] ARM: shmobile: r8a7740: add DT nodes for three DMAC instance
2013-06-26 14:40 [PATCH v3 0/7] ARM: shmobile: shdma DT on sh73a0 and r8a7740 Guennadi Liakhovetski
` (3 preceding siblings ...)
2013-06-26 14:40 ` [PATCH v3 4/7] ARM: shmobile: r8a7740: add MMCIF DMA definitions Guennadi Liakhovetski
@ 2013-06-26 14:40 ` Guennadi Liakhovetski
2013-07-03 5:36 ` Magnus Damm
2013-06-26 14:40 ` [PATCH v3 6/7] ARM: shmobile: add SDHI and MMCIF interfaces to armadillo800eva-reference Guennadi Liakhovetski
` (2 subsequent siblings)
7 siblings, 1 reply; 14+ messages in thread
From: Guennadi Liakhovetski @ 2013-06-26 14:40 UTC (permalink / raw)
To: linux-sh
Cc: devicetree-discuss, Magnus Damm, Simon Horman,
Guennadi Liakhovetski
This patch adds Device Tree support for the three DMA controller instances
on r8a7740 in a DMA multiplexer node.
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com>
---
arch/arm/boot/dts/r8a7740.dtsi | 62 ++++++++++++++++++++++++++++++++
arch/arm/mach-shmobile/setup-r8a7740.c | 12 ++++++
2 files changed, 74 insertions(+), 0 deletions(-)
diff --git a/arch/arm/boot/dts/r8a7740.dtsi b/arch/arm/boot/dts/r8a7740.dtsi
index 25dc930..683751c 100644
--- a/arch/arm/boot/dts/r8a7740.dtsi
+++ b/arch/arm/boot/dts/r8a7740.dtsi
@@ -112,6 +112,68 @@
0 149 0x4>;
};
+ dmac: dma-mux0 {
+ compatible = "renesas,shdma-mux";
+ #dma-cells = <1>;
+ dma-channels = <6>;
+ dma-requests = <256>;
+ reg = <0 0>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
+
+ dma0: shdma@fe008020 {
+ compatible = "renesas,shdma";
+ reg = <0xfe008020 0x270>,
+ <0xfe009000 0xc>;
+ interrupt-parent = <&gic>;
+ interrupts = <0 34 4
+ 0 28 4
+ 0 29 4
+ 0 30 4
+ 0 31 4
+ 0 32 4
+ 0 33 4>;
+ interrupt-names = "error",
+ "ch0", "ch1", "ch2", "ch3",
+ "ch4", "ch5";
+ };
+
+ dma1: shdma@fe018020 {
+ compatible = "renesas,shdma";
+ reg = <0xfe018020 0x270>,
+ <0xfe019000 0xc>;
+ interrupt-parent = <&gic>;
+ interrupts = <0 41 4
+ 0 35 4
+ 0 36 4
+ 0 37 4
+ 0 38 4
+ 0 39 4
+ 0 40 4>;
+ interrupt-names = "error",
+ "ch0", "ch1", "ch2", "ch3",
+ "ch4", "ch5";
+ };
+
+ dma2: shdma@fe028020 {
+ compatible = "renesas,shdma";
+ reg = <0xfe028020 0x270>,
+ <0xfe029000 0xc>;
+ interrupt-parent = <&gic>;
+ interrupts = <0 48 4
+ 0 42 4
+ 0 43 4
+ 0 44 4
+ 0 45 4
+ 0 46 4
+ 0 47 4>;
+ interrupt-names = "error",
+ "ch0", "ch1", "ch2", "ch3",
+ "ch4", "ch5";
+ };
+ };
+
i2c0: i2c@fff20000 {
#address-cells = <1>;
#size-cells = <0>;
diff --git a/arch/arm/mach-shmobile/setup-r8a7740.c b/arch/arm/mach-shmobile/setup-r8a7740.c
index 6b3ed42..de55161 100644
--- a/arch/arm/mach-shmobile/setup-r8a7740.c
+++ b/arch/arm/mach-shmobile/setup-r8a7740.c
@@ -996,7 +996,19 @@ void __init r8a7740_add_early_devices(void)
#ifdef CONFIG_USE_OF
+static struct of_dev_auxdata r8a7740_dmac_auxdata[] = {
+ OF_DEV_AUXDATA("renesas,shdma", 0xfe008020, "sh-dma-engine.0",
+ &dma_platform_data),
+ OF_DEV_AUXDATA("renesas,shdma", 0xfe018020, "sh-dma-engine.1",
+ &dma_platform_data),
+ OF_DEV_AUXDATA("renesas,shdma", 0xfe028020, "sh-dma-engine.2",
+ &dma_platform_data),
+ { }
+};
+
static const struct of_dev_auxdata r8a7740_auxdata_lookup[] __initconst = {
+ OF_DEV_AUXDATA("renesas,shdma-mux", 0, "shdma-of.0",
+ r8a7740_dmac_auxdata),
{ }
};
--
1.7.2.5
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH v3 5/7] ARM: shmobile: r8a7740: add DT nodes for three DMAC instance
2013-06-26 14:40 ` [PATCH v3 5/7] ARM: shmobile: r8a7740: add DT nodes for three DMAC instance Guennadi Liakhovetski
@ 2013-07-03 5:36 ` Magnus Damm
2013-07-03 6:23 ` Guennadi Liakhovetski
0 siblings, 1 reply; 14+ messages in thread
From: Magnus Damm @ 2013-07-03 5:36 UTC (permalink / raw)
To: Guennadi Liakhovetski
Cc: SH-Linux, devicetree-discuss@lists.ozlabs.org, Simon Horman,
Guennadi Liakhovetski
Hi Guennadi,
On Wed, Jun 26, 2013 at 11:40 PM, Guennadi Liakhovetski
<g.liakhovetski@gmx.de> wrote:
> This patch adds Device Tree support for the three DMA controller instances
> on r8a7740 in a DMA multiplexer node.
>
> Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com>
> ---
> arch/arm/boot/dts/r8a7740.dtsi | 62 ++++++++++++++++++++++++++++++++
> arch/arm/mach-shmobile/setup-r8a7740.c | 12 ++++++
> 2 files changed, 74 insertions(+), 0 deletions(-)
Thanks for your work on this.
> --- a/arch/arm/mach-shmobile/setup-r8a7740.c
> +++ b/arch/arm/mach-shmobile/setup-r8a7740.c
> @@ -996,7 +996,19 @@ void __init r8a7740_add_early_devices(void)
>
> #ifdef CONFIG_USE_OF
>
> +static struct of_dev_auxdata r8a7740_dmac_auxdata[] = {
> + OF_DEV_AUXDATA("renesas,shdma", 0xfe008020, "sh-dma-engine.0",
> + &dma_platform_data),
> + OF_DEV_AUXDATA("renesas,shdma", 0xfe018020, "sh-dma-engine.1",
> + &dma_platform_data),
> + OF_DEV_AUXDATA("renesas,shdma", 0xfe028020, "sh-dma-engine.2",
> + &dma_platform_data),
> + { }
> +};
> +
> static const struct of_dev_auxdata r8a7740_auxdata_lookup[] __initconst = {
> + OF_DEV_AUXDATA("renesas,shdma-mux", 0, "shdma-of.0",
> + r8a7740_dmac_auxdata),
> { }
> };
Uhm, what is the reason for adding AUXDATA? For all other cases we
have clearly separated the DT reference bits from the C version
without using AUXDATA. With that approach we can use the default NULL
callbacks for ->init_machine(). Now with this patch we're going in the
totally different direction...
Why can't you use DT only for these?
Cheers,
/ magnus
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v3 5/7] ARM: shmobile: r8a7740: add DT nodes for three DMAC instance
2013-07-03 5:36 ` Magnus Damm
@ 2013-07-03 6:23 ` Guennadi Liakhovetski
2013-07-03 6:39 ` Magnus Damm
0 siblings, 1 reply; 14+ messages in thread
From: Guennadi Liakhovetski @ 2013-07-03 6:23 UTC (permalink / raw)
To: Magnus Damm
Cc: SH-Linux, devicetree-discuss@lists.ozlabs.org, Simon Horman,
Guennadi Liakhovetski
Hi Magnus
On Wed, 3 Jul 2013, Magnus Damm wrote:
> Hi Guennadi,
>
> On Wed, Jun 26, 2013 at 11:40 PM, Guennadi Liakhovetski
> <g.liakhovetski@gmx.de> wrote:
> > This patch adds Device Tree support for the three DMA controller instances
> > on r8a7740 in a DMA multiplexer node.
> >
> > Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com>
> > ---
> > arch/arm/boot/dts/r8a7740.dtsi | 62 ++++++++++++++++++++++++++++++++
> > arch/arm/mach-shmobile/setup-r8a7740.c | 12 ++++++
> > 2 files changed, 74 insertions(+), 0 deletions(-)
>
> Thanks for your work on this.
>
> > --- a/arch/arm/mach-shmobile/setup-r8a7740.c
> > +++ b/arch/arm/mach-shmobile/setup-r8a7740.c
> > @@ -996,7 +996,19 @@ void __init r8a7740_add_early_devices(void)
> >
> > #ifdef CONFIG_USE_OF
> >
> > +static struct of_dev_auxdata r8a7740_dmac_auxdata[] = {
> > + OF_DEV_AUXDATA("renesas,shdma", 0xfe008020, "sh-dma-engine.0",
> > + &dma_platform_data),
> > + OF_DEV_AUXDATA("renesas,shdma", 0xfe018020, "sh-dma-engine.1",
> > + &dma_platform_data),
> > + OF_DEV_AUXDATA("renesas,shdma", 0xfe028020, "sh-dma-engine.2",
> > + &dma_platform_data),
> > + { }
> > +};
> > +
> > static const struct of_dev_auxdata r8a7740_auxdata_lookup[] __initconst = {
> > + OF_DEV_AUXDATA("renesas,shdma-mux", 0, "shdma-of.0",
> > + r8a7740_dmac_auxdata),
> > { }
> > };
>
> Uhm, what is the reason for adding AUXDATA? For all other cases we
> have clearly separated the DT reference bits from the C version
> without using AUXDATA. With that approach we can use the default NULL
> callbacks for ->init_machine(). Now with this patch we're going in the
> totally different direction...
>
> Why can't you use DT only for these?
Short answer - because that's how the SH DMA driver, currently in the
"next" tree ready for Linus to be pulled, is implemented. We had enough
time to discuss this back then, I think, it is a pity this question is
raised only now.
A while ago I read, that it is ok to pass SoC-specific device properties
via auxdata, as opposed to board-specific ones, that have to go via DT. On
shmobile this is also easy to implement - all devices, initialised from
setup-<soc>.c, i.e. having no board-specific configuration, and defined in
<soc>.dtsi can just take their configuration from the same platform data,
as in .c case. Another motivation for this is, that we want to get rid of
board-<name>.c files, but we'll always have setup-<soc>.c files. With that
in mind I implemented DMAC DT bindings and that also allowed us to so
quickly get them accepted into the mainline. If we needed to initialise
DMAC completely from DT, mainlining would certainly take much longer.
Thanks
Guennadi
---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer
http://www.open-technology.de/
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v3 5/7] ARM: shmobile: r8a7740: add DT nodes for three DMAC instance
2013-07-03 6:23 ` Guennadi Liakhovetski
@ 2013-07-03 6:39 ` Magnus Damm
0 siblings, 0 replies; 14+ messages in thread
From: Magnus Damm @ 2013-07-03 6:39 UTC (permalink / raw)
To: Guennadi Liakhovetski
Cc: SH-Linux, devicetree-discuss@lists.ozlabs.org, Simon Horman,
Guennadi Liakhovetski
Hi Guennadi,
On Wed, Jul 3, 2013 at 3:23 PM, Guennadi Liakhovetski
<g.liakhovetski@gmx.de> wrote:
> Hi Magnus
>
> On Wed, 3 Jul 2013, Magnus Damm wrote:
>
>> Hi Guennadi,
>>
>> On Wed, Jun 26, 2013 at 11:40 PM, Guennadi Liakhovetski
>> <g.liakhovetski@gmx.de> wrote:
>> > This patch adds Device Tree support for the three DMA controller instances
>> > on r8a7740 in a DMA multiplexer node.
>> >
>> > Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com>
>> > ---
>> > arch/arm/boot/dts/r8a7740.dtsi | 62 ++++++++++++++++++++++++++++++++
>> > arch/arm/mach-shmobile/setup-r8a7740.c | 12 ++++++
>> > 2 files changed, 74 insertions(+), 0 deletions(-)
>>
>> Thanks for your work on this.
>>
>> > --- a/arch/arm/mach-shmobile/setup-r8a7740.c
>> > +++ b/arch/arm/mach-shmobile/setup-r8a7740.c
>> > @@ -996,7 +996,19 @@ void __init r8a7740_add_early_devices(void)
>> >
>> > #ifdef CONFIG_USE_OF
>> >
>> > +static struct of_dev_auxdata r8a7740_dmac_auxdata[] = {
>> > + OF_DEV_AUXDATA("renesas,shdma", 0xfe008020, "sh-dma-engine.0",
>> > + &dma_platform_data),
>> > + OF_DEV_AUXDATA("renesas,shdma", 0xfe018020, "sh-dma-engine.1",
>> > + &dma_platform_data),
>> > + OF_DEV_AUXDATA("renesas,shdma", 0xfe028020, "sh-dma-engine.2",
>> > + &dma_platform_data),
>> > + { }
>> > +};
>> > +
>> > static const struct of_dev_auxdata r8a7740_auxdata_lookup[] __initconst = {
>> > + OF_DEV_AUXDATA("renesas,shdma-mux", 0, "shdma-of.0",
>> > + r8a7740_dmac_auxdata),
>> > { }
>> > };
>>
>> Uhm, what is the reason for adding AUXDATA? For all other cases we
>> have clearly separated the DT reference bits from the C version
>> without using AUXDATA. With that approach we can use the default NULL
>> callbacks for ->init_machine(). Now with this patch we're going in the
>> totally different direction...
>>
>> Why can't you use DT only for these?
>
> Short answer - because that's how the SH DMA driver, currently in the
> "next" tree ready for Linus to be pulled, is implemented. We had enough
> time to discuss this back then, I think, it is a pity this question is
> raised only now.
Yes, indeed, in the same way it is a pity that this turns out to be
the only user of AUXDATA.
> A while ago I read, that it is ok to pass SoC-specific device properties
> via auxdata, as opposed to board-specific ones, that have to go via DT. On
> shmobile this is also easy to implement - all devices, initialised from
> setup-<soc>.c, i.e. having no board-specific configuration, and defined in
> <soc>.dtsi can just take their configuration from the same platform data,
> as in .c case. Another motivation for this is, that we want to get rid of
> board-<name>.c files, but we'll always have setup-<soc>.c files. With that
> in mind I implemented DMAC DT bindings and that also allowed us to so
> quickly get them accepted into the mainline. If we needed to initialise
> DMAC completely from DT, mainlining would certainly take much longer.
Neither DMAC nor DT have ever been rushing, so I'm not sure why you
are doing that now. Both those are about correctness. We are fine
without DMAC and without DT for a majority of the cases. So let's get
it right instead of half-right.
Sorry to say this, but from my perspective the AUXDATA solution above
seems to be a rushed short term solution to a more long term problem.
Actually, I'm not sure how you ever came to think that was a good
idea.
Please show how you plan on going from AUXDATA to DT only. I am fine
with something similar to the PFC implementation that has SoC-specifc
bits written in C outside arch/arm, but I'd rather not use AUXDATA for
future code.
Thanks,
/ magnus
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH v3 6/7] ARM: shmobile: add SDHI and MMCIF interfaces to armadillo800eva-reference
2013-06-26 14:40 [PATCH v3 0/7] ARM: shmobile: shdma DT on sh73a0 and r8a7740 Guennadi Liakhovetski
` (4 preceding siblings ...)
2013-06-26 14:40 ` [PATCH v3 5/7] ARM: shmobile: r8a7740: add DT nodes for three DMAC instance Guennadi Liakhovetski
@ 2013-06-26 14:40 ` Guennadi Liakhovetski
2013-06-26 14:40 ` [PATCH v3 7/7] ARM: shmobile: armadillo800eva-reference: add DMA support for MMCIF and SDHI Guennadi Liakhovetski
2013-06-27 5:22 ` [PATCH v3 0/7] ARM: shmobile: shdma DT on sh73a0 and r8a7740 Simon Horman
7 siblings, 0 replies; 14+ messages in thread
From: Guennadi Liakhovetski @ 2013-06-26 14:40 UTC (permalink / raw)
To: linux-sh; +Cc: devicetree-discuss, Magnus Damm, Simon Horman
Add SDHI0, SDHI1 and MMCIF interfaces to armadillo800eva-reference. With
no pinctrl DT support we cannot use GPIO card-detection and regulator
switching.
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
---
.../boot/dts/r8a7740-armadillo800eva-reference.dts | 21 +++++++++++-
arch/arm/boot/dts/r8a7740.dtsi | 33 ++++++++++++++++++
.../board-armadillo800eva-reference.c | 36 +++++++++++++++++++-
3 files changed, 88 insertions(+), 2 deletions(-)
diff --git a/arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts b/arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts
index 09ea22c..3752637 100644
--- a/arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts
+++ b/arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts
@@ -32,7 +32,6 @@
regulator-always-on;
regulator-boot-on;
};
-
};
&i2c0 {
@@ -43,3 +42,23 @@
interrupts = <2 0>; /* IRQ10: hwirq 2 on irqpin1 */
};
};
+
+&mmcif0 {
+ vmmc-supply = <®_3p3v>;
+ bus-width = <8>;
+ non-removable;
+ status = "okay";
+};
+
+&sdhi0 {
+ vmmc-supply = <®_3p3v>;
+ bus-width = <4>;
+ broken-cd;
+ status = "okay";
+};
+
+&sdhi1 {
+ vmmc-supply = <®_3p3v>;
+ bus-width = <4>;
+ status = "okay";
+};
diff --git a/arch/arm/boot/dts/r8a7740.dtsi b/arch/arm/boot/dts/r8a7740.dtsi
index 683751c..44fa11c 100644
--- a/arch/arm/boot/dts/r8a7740.dtsi
+++ b/arch/arm/boot/dts/r8a7740.dtsi
@@ -197,4 +197,37 @@
0 72 0x4
0 73 0x4>;
};
+
+ mmcif0: mmcif@e6bd0000 {
+ compatible = "renesas,sh-mmcif", "renesas,sh7372-mmcif";
+ reg = <0xe6bd0000 0x100>;
+ interrupt-parent = <&gic>;
+ interrupts = <0 56 4
+ 0 57 4>;
+ status = "disabled";
+ };
+
+ sdhi0: sdhi@e6850000 {
+ compatible = "renesas,r8a7740-sdhi";
+ reg = <0xe6850000 0x100>;
+ interrupt-parent = <&gic>;
+ interrupts = <0 117 4
+ 0 118 4
+ 0 119 4>;
+ cap-sd-highspeed;
+ cap-sdio-irq;
+ status = "disabled";
+ };
+
+ sdhi1: sdhi@e6860000 {
+ compatible = "renesas,r8a7740-sdhi";
+ reg = <0xe6860000 0x100>;
+ interrupt-parent = <&gic>;
+ interrupts = <0 121 4
+ 0 122 4
+ 0 123 4>;
+ cap-sd-highspeed;
+ cap-sdio-irq;
+ status = "disabled";
+ };
};
diff --git a/arch/arm/mach-shmobile/board-armadillo800eva-reference.c b/arch/arm/mach-shmobile/board-armadillo800eva-reference.c
index 03b85fe..d26a9da 100644
--- a/arch/arm/mach-shmobile/board-armadillo800eva-reference.c
+++ b/arch/arm/mach-shmobile/board-armadillo800eva-reference.c
@@ -123,6 +123,27 @@ static const struct pinctrl_map eva_pinctrl_map[] = {
/* SCIFA1 */
PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.1", "pfc-r8a7740",
"scifa1_data", "scifa1"),
+ /* MMCIF */
+ PIN_MAP_MUX_GROUP_DEFAULT("e6bd0000.sh-mmcif", "pfc-r8a7740",
+ "mmc0_data8_1", "mmc0"),
+ PIN_MAP_MUX_GROUP_DEFAULT("e6bd0000.sh-mmcif", "pfc-r8a7740",
+ "mmc0_ctrl_1", "mmc0"),
+ /* SDHI0 */
+ PIN_MAP_MUX_GROUP_DEFAULT("e6850000.sdhi", "pfc-r8a7740",
+ "sdhi0_data4", "sdhi0"),
+ PIN_MAP_MUX_GROUP_DEFAULT("e6850000.sdhi", "pfc-r8a7740",
+ "sdhi0_ctrl", "sdhi0"),
+ PIN_MAP_MUX_GROUP_DEFAULT("e6850000.sdhi", "pfc-r8a7740",
+ "sdhi0_wp", "sdhi0"),
+ /* SDHI1 */
+ PIN_MAP_MUX_GROUP_DEFAULT("e6860000.sdhi", "pfc-r8a7740",
+ "sdhi1_data4", "sdhi1"),
+ PIN_MAP_MUX_GROUP_DEFAULT("e6860000.sdhi", "pfc-r8a7740",
+ "sdhi1_ctrl", "sdhi1"),
+ PIN_MAP_MUX_GROUP_DEFAULT("e6860000.sdhi", "pfc-r8a7740",
+ "sdhi1_cd", "sdhi1"),
+ PIN_MAP_MUX_GROUP_DEFAULT("e6860000.sdhi", "pfc-r8a7740",
+ "sdhi1_wp", "sdhi1"),
};
static void __init eva_clock_init(void)
@@ -165,7 +186,6 @@ clock_error:
*/
static void __init eva_init(void)
{
-
r8a7740_clock_init(MD_CK0 | MD_CK2);
eva_clock_init();
@@ -180,6 +200,20 @@ static void __init eva_init(void)
*/
gpio_request_one(166, GPIOF_OUT_INIT_HIGH, NULL); /* TP_RST_B */
+ /* SDHI0 */
+ gpio_request_one(17, GPIOF_OUT_INIT_LOW, NULL); /* SDHI0_18/33_B */
+ gpio_request_one(74, GPIOF_OUT_INIT_HIGH, NULL); /* SDHI0_PON */
+ gpio_request_one(75, GPIOF_OUT_INIT_HIGH, NULL); /* SDSLOT1_PON */
+
+ /* We can switch CON8/CON14 by SW1.5, but only after DBGMD_SELECT_B */
+ gpio_request_one(6, GPIOF_IN, NULL);
+ if (!gpio_get_value(6)) {
+ /* CON14 disabled, CON8 (SDHI1) enabled */
+
+ /* SDSLOT2_PON */
+ gpio_request_one(16, GPIOF_OUT_INIT_HIGH, NULL);
+ }
+
#ifdef CONFIG_CACHE_L2X0
/* Early BRESP enable, Shared attribute override enable, 32K*8way */
l2x0_init(IOMEM(0xf0002000), 0x40440000, 0x82000fff);
--
1.7.2.5
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v3 7/7] ARM: shmobile: armadillo800eva-reference: add DMA support for MMCIF and SDHI
2013-06-26 14:40 [PATCH v3 0/7] ARM: shmobile: shdma DT on sh73a0 and r8a7740 Guennadi Liakhovetski
` (5 preceding siblings ...)
2013-06-26 14:40 ` [PATCH v3 6/7] ARM: shmobile: add SDHI and MMCIF interfaces to armadillo800eva-reference Guennadi Liakhovetski
@ 2013-06-26 14:40 ` Guennadi Liakhovetski
2013-06-27 5:22 ` [PATCH v3 0/7] ARM: shmobile: shdma DT on sh73a0 and r8a7740 Simon Horman
7 siblings, 0 replies; 14+ messages in thread
From: Guennadi Liakhovetski @ 2013-06-26 14:40 UTC (permalink / raw)
To: linux-sh
Cc: devicetree-discuss, Magnus Damm, Simon Horman,
Guennadi Liakhovetski
Add DMA bindings to SDHI and MMCIF DT nodes on armadillo800eva-reference.
Since SDHI and MMCIF devices can use any of the 3 DMAC instances on
r8a7740, we point to the DMA multiplexer node instead of a specific DMAC
DT node.
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com>
---
.../boot/dts/r8a7740-armadillo800eva-reference.dts | 9 +++++++++
1 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts b/arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts
index 3752637..1983d49 100644
--- a/arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts
+++ b/arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts
@@ -47,6 +47,9 @@
vmmc-supply = <®_3p3v>;
bus-width = <8>;
non-removable;
+ dmas = <&dmac 0xd1
+ &dmac 0xd2>;
+ dma-names = "tx", "rx";
status = "okay";
};
@@ -54,11 +57,17 @@
vmmc-supply = <®_3p3v>;
bus-width = <4>;
broken-cd;
+ dmas = <&dmac 0xc1
+ &dmac 0xc2>;
+ dma-names = "tx", "rx";
status = "okay";
};
&sdhi1 {
vmmc-supply = <®_3p3v>;
bus-width = <4>;
+ dmas = <&dmac 0xc9
+ &dmac 0xca>;
+ dma-names = "tx", "rx";
status = "okay";
};
--
1.7.2.5
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH v3 0/7] ARM: shmobile: shdma DT on sh73a0 and r8a7740
2013-06-26 14:40 [PATCH v3 0/7] ARM: shmobile: shdma DT on sh73a0 and r8a7740 Guennadi Liakhovetski
` (6 preceding siblings ...)
2013-06-26 14:40 ` [PATCH v3 7/7] ARM: shmobile: armadillo800eva-reference: add DMA support for MMCIF and SDHI Guennadi Liakhovetski
@ 2013-06-27 5:22 ` Simon Horman
2013-06-27 7:13 ` Guennadi Liakhovetski
7 siblings, 1 reply; 14+ messages in thread
From: Simon Horman @ 2013-06-27 5:22 UTC (permalink / raw)
To: Guennadi Liakhovetski
Cc: linux-sh, devicetree-discuss, Magnus Damm, Guennadi Liakhovetski,
Vinod Koul
On Wed, Jun 26, 2013 at 04:40:49PM +0200, Guennadi Liakhovetski wrote:
> Recently shdma acquired DT support with a possibility to place multiple
> compatible DMAC instances under a common DMA multiplexer DT node. This is
> used to provide DMA support on r8a7740 / armadillo800eva. However there
> are also SoCs with a single DMAC instance. We could still put it under a
> (dummy) multiplexer DT node, or we can add support for such configurations
> to the shdma driver and simplify DTs on such SoCs. Patch 1 in this
> series adds support for such top-level DMAC DT nodes to shdma, which is
> then used on sh73a0. This is why patches 1-3 are marked "RFC," if it is
> preferred to not add this complexity to the driver and use a dummy DMA
> multiplexer instead, patch 1 shall be dropped and patches 2 and 3 would
> have to be reworked.
Hi Guennadi, can patches 4+ be reviewed and applied independently of
the RFC patches 1-3 ?
> Cc: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com>
> Cc: Vinod Koul <vinod.koul@intel.com>
>
> Guennadi Liakhovetski (7):
> DMA: shdma: also support single top-level DMAC DT nodes
> ARM: shmobile: sh73a0: add support for the DMA0 controller in DT
> ARM: shmobile: kzm9g-reference: add DMA channels to the MMCIF DT
> ARM: shmobile: r8a7740: add MMCIF DMA definitions
> ARM: shmobile: r8a7740: add DT nodes for three DMAC instance
> ARM: shmobile: add SDHI and MMCIF interfaces to
> armadillo800eva-reference
> ARM: shmobile: armadillo800eva-reference: add DMA support for MMCIF
> and SDHI
>
> .../boot/dts/r8a7740-armadillo800eva-reference.dts | 30 ++++++-
> arch/arm/boot/dts/r8a7740.dtsi | 95 ++++++++++++++++++++
> arch/arm/boot/dts/sh73a0-kzm9g-reference.dts | 3 +
> arch/arm/boot/dts/sh73a0.dtsi | 36 ++++++++
> .../board-armadillo800eva-reference.c | 36 +++++++-
> arch/arm/mach-shmobile/include/mach/r8a7740.h | 2 +
> arch/arm/mach-shmobile/setup-r8a7740.c | 22 +++++
> arch/arm/mach-shmobile/setup-sh73a0.c | 4 +
> drivers/dma/sh/shdma-of.c | 5 +-
> drivers/dma/sh/shdma.c | 16 ++++
> include/linux/sh_dma.h | 5 +
> 11 files changed, 250 insertions(+), 4 deletions(-)
>
> --
> 1.7.2.5
>
> Thanks
> Guennadi
> ---
> Guennadi Liakhovetski, Ph.D.
> Freelance Open-Source Software Developer
> http://www.open-technology.de/
> --
> To unsubscribe from this list: send the line "unsubscribe linux-sh" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v3 0/7] ARM: shmobile: shdma DT on sh73a0 and r8a7740
2013-06-27 5:22 ` [PATCH v3 0/7] ARM: shmobile: shdma DT on sh73a0 and r8a7740 Simon Horman
@ 2013-06-27 7:13 ` Guennadi Liakhovetski
0 siblings, 0 replies; 14+ messages in thread
From: Guennadi Liakhovetski @ 2013-06-27 7:13 UTC (permalink / raw)
To: Simon Horman; +Cc: linux-sh, devicetree-discuss, Magnus Damm, Vinod Koul
Hi Simon
On Thu, 27 Jun 2013, Simon Horman wrote:
> On Wed, Jun 26, 2013 at 04:40:49PM +0200, Guennadi Liakhovetski wrote:
> > Recently shdma acquired DT support with a possibility to place multiple
> > compatible DMAC instances under a common DMA multiplexer DT node. This is
> > used to provide DMA support on r8a7740 / armadillo800eva. However there
> > are also SoCs with a single DMAC instance. We could still put it under a
> > (dummy) multiplexer DT node, or we can add support for such configurations
> > to the shdma driver and simplify DTs on such SoCs. Patch 1 in this
> > series adds support for such top-level DMAC DT nodes to shdma, which is
> > then used on sh73a0. This is why patches 1-3 are marked "RFC," if it is
> > preferred to not add this complexity to the driver and use a dummy DMA
> > multiplexer instead, patch 1 shall be dropped and patches 2 and 3 would
> > have to be reworked.
>
> Hi Guennadi, can patches 4+ be reviewed and applied independently of
> the RFC patches 1-3 ?
Yes, they can.
Thanks
Guennadi
> > Cc: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com>
> > Cc: Vinod Koul <vinod.koul@intel.com>
> >
> > Guennadi Liakhovetski (7):
> > DMA: shdma: also support single top-level DMAC DT nodes
> > ARM: shmobile: sh73a0: add support for the DMA0 controller in DT
> > ARM: shmobile: kzm9g-reference: add DMA channels to the MMCIF DT
> > ARM: shmobile: r8a7740: add MMCIF DMA definitions
> > ARM: shmobile: r8a7740: add DT nodes for three DMAC instance
> > ARM: shmobile: add SDHI and MMCIF interfaces to
> > armadillo800eva-reference
> > ARM: shmobile: armadillo800eva-reference: add DMA support for MMCIF
> > and SDHI
> >
> > .../boot/dts/r8a7740-armadillo800eva-reference.dts | 30 ++++++-
> > arch/arm/boot/dts/r8a7740.dtsi | 95 ++++++++++++++++++++
> > arch/arm/boot/dts/sh73a0-kzm9g-reference.dts | 3 +
> > arch/arm/boot/dts/sh73a0.dtsi | 36 ++++++++
> > .../board-armadillo800eva-reference.c | 36 +++++++-
> > arch/arm/mach-shmobile/include/mach/r8a7740.h | 2 +
> > arch/arm/mach-shmobile/setup-r8a7740.c | 22 +++++
> > arch/arm/mach-shmobile/setup-sh73a0.c | 4 +
> > drivers/dma/sh/shdma-of.c | 5 +-
> > drivers/dma/sh/shdma.c | 16 ++++
> > include/linux/sh_dma.h | 5 +
> > 11 files changed, 250 insertions(+), 4 deletions(-)
> >
> > --
> > 1.7.2.5
---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer
http://www.open-technology.de/
^ permalink raw reply [flat|nested] 14+ messages in thread