diff mbox

[5/8] shdmac: fdt: wire r8a7790 for device tree usage.

Message ID 1401898455-31064-6-git-send-email-ben.dooks@codethink.co.uk (mailing list archive)
State RFC
Headers show

Commit Message

Ben Dooks June 4, 2014, 4:14 p.m. UTC
Add support for R8A7790 with new device tree code

Note, not yet converted the only other user to dt yet

Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
---
 drivers/dma/sh/shdmac.c | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

Comments

Kuninori Morimoto June 5, 2014, 8:16 a.m. UTC | #1
Hi Ben

> Add support for R8A7790 with new device tree code
> 
> Note, not yet converted the only other user to dt yet
> 
> Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
> ---
(snip)
>  static const struct of_device_id sh_dmae_of_match[] = {
> -	{.compatible = "renesas,shdma-r8a73a4", .data = r8a73a4_shdma_devid,},
> +	{ .compatible = "renesas,shdma-r8a73a4", .data = r8a73a4_shdma_devid },
> +	{ .compatible = "renesas,dma-r8a7790", .data = &shdma_arm_info },
>  	{}
>  };

renesas,shdma-r8a7790 ?
renesas,dma-r8a7790 ?

Is this typo ? or on  purpose ?
--
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
Ben Dooks June 5, 2014, 9:57 a.m. UTC | #2
On 05/06/14 09:16, Kuninori Morimoto wrote:
> 
> Hi Ben
> 
>> Add support for R8A7790 with new device tree code
>>
>> Note, not yet converted the only other user to dt yet
>>
>> Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
>> ---
> (snip)
>>  static const struct of_device_id sh_dmae_of_match[] = {
>> -	{.compatible = "renesas,shdma-r8a73a4", .data = r8a73a4_shdma_devid,},
>> +	{ .compatible = "renesas,shdma-r8a73a4", .data = r8a73a4_shdma_devid },
>> +	{ .compatible = "renesas,dma-r8a7790", .data = &shdma_arm_info },
>>  	{}
>>  };
> 
> renesas,shdma-r8a7790 ?
> renesas,dma-r8a7790 ?
> 
> Is this typo ? or on  purpose ?

Thanks for the feedback.

I thought dma was a pretty good description. Do we need to call this
shdma-r8a7790?
Kuninori Morimoto June 5, 2014, 10:09 a.m. UTC | #3
Hi Ben

> >>  static const struct of_device_id sh_dmae_of_match[] = {
> >> -	{.compatible = "renesas,shdma-r8a73a4", .data = r8a73a4_shdma_devid,},
> >> +	{ .compatible = "renesas,shdma-r8a73a4", .data = r8a73a4_shdma_devid },
> >> +	{ .compatible = "renesas,dma-r8a7790", .data = &shdma_arm_info },
> >>  	{}
> >>  };
> > 
> > renesas,shdma-r8a7790 ?
> > renesas,dma-r8a7790 ?
> > 
> > Is this typo ? or on  purpose ?
> 
> Thanks for the feedback.
> 
> I thought dma was a pretty good description. Do we need to call this
> shdma-r8a7790?

I'm not sure, but historically we called it as "shdma".
Renesas SoC has many DMACs, not only SYS-DMAC.
Maybe, this is natural ?
       SYS-DMAC -> shdma
       USB-DMAC -> usbdma
       SU-DMAC  -> sudma
       ...
--
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
diff mbox

Patch

diff --git a/drivers/dma/sh/shdmac.c b/drivers/dma/sh/shdmac.c
index 146d5df..e525f80 100644
--- a/drivers/dma/sh/shdmac.c
+++ b/drivers/dma/sh/shdmac.c
@@ -680,7 +680,8 @@  static const struct shdma_ops sh_dmae_shdma_ops = {
 };
 
 static const struct of_device_id sh_dmae_of_match[] = {
-	{.compatible = "renesas,shdma-r8a73a4", .data = r8a73a4_shdma_devid,},
+	{ .compatible = "renesas,shdma-r8a73a4", .data = r8a73a4_shdma_devid },
+	{ .compatible = "renesas,dma-r8a7790", .data = &shdma_arm_info },
 	{}
 };
 MODULE_DEVICE_TABLE(of, sh_dmae_of_match);
@@ -699,10 +700,17 @@  static int sh_dmae_probe(struct platform_device *pdev)
 	struct dma_device *dma_dev;
 	struct resource *chan, *dmars, *errirq_res, *chanirq_res;
 
-	if (pdev->dev.of_node)
-		pdata = of_match_device(sh_dmae_of_match, &pdev->dev)->data;
-	else
+	if (pdev->dev.of_node) {
+		const struct of_device_id *match;
+
+		match = of_match_device(sh_dmae_of_match, &pdev->dev);
+		if (match->data == r8a73a4_shdma_devid)
+			pdata = match->data;
+		else
+			pdata = sh_dma_probe_of(pdev, match);
+	} else {
 		pdata = dev_get_platdata(&pdev->dev);
+	}
 
 	/* get platform data */
 	if (!pdata || !pdata->channel_num)