All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/7] ARM: davinci: McASP related cleanups and fixes
@ 2015-02-10 13:58 ` Peter Ujfalusi
  0 siblings, 0 replies; 16+ messages in thread
From: Peter Ujfalusi @ 2015-02-10 13:58 UTC (permalink / raw)
  To: nsekhar, khilman; +Cc: linux-arm-kernel, linux-kernel

Hi,

Clean up series of McASP device creation for da8xx and dm646x DMSoCs.

Patch5 (dm646x: Clean up the McASP DMA resources) depends on a patch queed for
3.20 via ASoC:
http://mailman.alsa-project.org/pipermail/alsa-devel/2015-February/087321.html

There is another daVinci related fix going via ASoC for da830, which have shared
irq line for all it's McASP ip:
http://mailman.alsa-project.org/pipermail/alsa-devel/2015-February/087322.html

Regards,
Peter
---
Peter Ujfalusi (7):
  ARM: davinci: devices-da8xx: Add resource name for the McASP DMA
    request
  ARM: davinci: devices-da8xx: Add interrupt resource to McASP structs
  ARM: davinci: devices-da8xx: Clean up and correct the McASP device
    creation
  ARM: davinci: devices-da8xx: Add support for McASP2 on da830
  ARM: davinci: dm646x: Clean up the McASP DMA resources
  ARM: davinci: irqs: Correct McASP1 TX interrupt definition for DM646x
  ARM: davinci: dm646x: Add interrupt resource for McASPs

 arch/arm/mach-davinci/asp.h               |  7 +++
 arch/arm/mach-davinci/devices-da8xx.c     | 80 ++++++++++++++++++++++++++++---
 arch/arm/mach-davinci/dm646x.c            | 23 ++++++---
 arch/arm/mach-davinci/include/mach/irqs.h |  2 +-
 4 files changed, 98 insertions(+), 14 deletions(-)

-- 
2.3.0


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH 0/7] ARM: davinci: McASP related cleanups and fixes
@ 2015-02-10 13:58 ` Peter Ujfalusi
  0 siblings, 0 replies; 16+ messages in thread
From: Peter Ujfalusi @ 2015-02-10 13:58 UTC (permalink / raw)
  To: linux-arm-kernel

Hi,

Clean up series of McASP device creation for da8xx and dm646x DMSoCs.

Patch5 (dm646x: Clean up the McASP DMA resources) depends on a patch queed for
3.20 via ASoC:
http://mailman.alsa-project.org/pipermail/alsa-devel/2015-February/087321.html

There is another daVinci related fix going via ASoC for da830, which have shared
irq line for all it's McASP ip:
http://mailman.alsa-project.org/pipermail/alsa-devel/2015-February/087322.html

Regards,
Peter
---
Peter Ujfalusi (7):
  ARM: davinci: devices-da8xx: Add resource name for the McASP DMA
    request
  ARM: davinci: devices-da8xx: Add interrupt resource to McASP structs
  ARM: davinci: devices-da8xx: Clean up and correct the McASP device
    creation
  ARM: davinci: devices-da8xx: Add support for McASP2 on da830
  ARM: davinci: dm646x: Clean up the McASP DMA resources
  ARM: davinci: irqs: Correct McASP1 TX interrupt definition for DM646x
  ARM: davinci: dm646x: Add interrupt resource for McASPs

 arch/arm/mach-davinci/asp.h               |  7 +++
 arch/arm/mach-davinci/devices-da8xx.c     | 80 ++++++++++++++++++++++++++++---
 arch/arm/mach-davinci/dm646x.c            | 23 ++++++---
 arch/arm/mach-davinci/include/mach/irqs.h |  2 +-
 4 files changed, 98 insertions(+), 14 deletions(-)

-- 
2.3.0

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH 1/7] ARM: davinci: devices-da8xx: Add resource name for the McASP DMA request
  2015-02-10 13:58 ` Peter Ujfalusi
@ 2015-02-10 13:58   ` Peter Ujfalusi
  -1 siblings, 0 replies; 16+ messages in thread
From: Peter Ujfalusi @ 2015-02-10 13:58 UTC (permalink / raw)
  To: nsekhar, khilman; +Cc: linux-arm-kernel, linux-kernel

Add "tx" or "rx" as resource name for the DMA resources.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
---
 arch/arm/mach-davinci/devices-da8xx.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/arch/arm/mach-davinci/devices-da8xx.c b/arch/arm/mach-davinci/devices-da8xx.c
index b85b781b05fd..f35174317770 100644
--- a/arch/arm/mach-davinci/devices-da8xx.c
+++ b/arch/arm/mach-davinci/devices-da8xx.c
@@ -463,12 +463,14 @@ static struct resource da830_mcasp1_resources[] = {
 	},
 	/* TX event */
 	{
+		.name	= "tx",
 		.start	= DAVINCI_DA830_DMA_MCASP1_AXEVT,
 		.end	= DAVINCI_DA830_DMA_MCASP1_AXEVT,
 		.flags	= IORESOURCE_DMA,
 	},
 	/* RX event */
 	{
+		.name	= "rx",
 		.start	= DAVINCI_DA830_DMA_MCASP1_AREVT,
 		.end	= DAVINCI_DA830_DMA_MCASP1_AREVT,
 		.flags	= IORESOURCE_DMA,
@@ -491,12 +493,14 @@ static struct resource da850_mcasp_resources[] = {
 	},
 	/* TX event */
 	{
+		.name	= "tx",
 		.start	= DAVINCI_DA8XX_DMA_MCASP0_AXEVT,
 		.end	= DAVINCI_DA8XX_DMA_MCASP0_AXEVT,
 		.flags	= IORESOURCE_DMA,
 	},
 	/* RX event */
 	{
+		.name	= "rx",
 		.start	= DAVINCI_DA8XX_DMA_MCASP0_AREVT,
 		.end	= DAVINCI_DA8XX_DMA_MCASP0_AREVT,
 		.flags	= IORESOURCE_DMA,
-- 
2.3.0


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 1/7] ARM: davinci: devices-da8xx: Add resource name for the McASP DMA request
@ 2015-02-10 13:58   ` Peter Ujfalusi
  0 siblings, 0 replies; 16+ messages in thread
From: Peter Ujfalusi @ 2015-02-10 13:58 UTC (permalink / raw)
  To: linux-arm-kernel

Add "tx" or "rx" as resource name for the DMA resources.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
---
 arch/arm/mach-davinci/devices-da8xx.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/arch/arm/mach-davinci/devices-da8xx.c b/arch/arm/mach-davinci/devices-da8xx.c
index b85b781b05fd..f35174317770 100644
--- a/arch/arm/mach-davinci/devices-da8xx.c
+++ b/arch/arm/mach-davinci/devices-da8xx.c
@@ -463,12 +463,14 @@ static struct resource da830_mcasp1_resources[] = {
 	},
 	/* TX event */
 	{
+		.name	= "tx",
 		.start	= DAVINCI_DA830_DMA_MCASP1_AXEVT,
 		.end	= DAVINCI_DA830_DMA_MCASP1_AXEVT,
 		.flags	= IORESOURCE_DMA,
 	},
 	/* RX event */
 	{
+		.name	= "rx",
 		.start	= DAVINCI_DA830_DMA_MCASP1_AREVT,
 		.end	= DAVINCI_DA830_DMA_MCASP1_AREVT,
 		.flags	= IORESOURCE_DMA,
@@ -491,12 +493,14 @@ static struct resource da850_mcasp_resources[] = {
 	},
 	/* TX event */
 	{
+		.name	= "tx",
 		.start	= DAVINCI_DA8XX_DMA_MCASP0_AXEVT,
 		.end	= DAVINCI_DA8XX_DMA_MCASP0_AXEVT,
 		.flags	= IORESOURCE_DMA,
 	},
 	/* RX event */
 	{
+		.name	= "rx",
 		.start	= DAVINCI_DA8XX_DMA_MCASP0_AREVT,
 		.end	= DAVINCI_DA8XX_DMA_MCASP0_AREVT,
 		.flags	= IORESOURCE_DMA,
-- 
2.3.0

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 2/7] ARM: davinci: devices-da8xx: Add interrupt resource to McASP structs
  2015-02-10 13:58 ` Peter Ujfalusi
@ 2015-02-10 13:58   ` Peter Ujfalusi
  -1 siblings, 0 replies; 16+ messages in thread
From: Peter Ujfalusi @ 2015-02-10 13:58 UTC (permalink / raw)
  To: nsekhar, khilman; +Cc: linux-arm-kernel, linux-kernel

On da8xx McASP TX/RX interrupt requests are combined.
The interrupt can be used for error recovery.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
---
 arch/arm/mach-davinci/devices-da8xx.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/arch/arm/mach-davinci/devices-da8xx.c b/arch/arm/mach-davinci/devices-da8xx.c
index f35174317770..e15e046c5438 100644
--- a/arch/arm/mach-davinci/devices-da8xx.c
+++ b/arch/arm/mach-davinci/devices-da8xx.c
@@ -475,6 +475,11 @@ static struct resource da830_mcasp1_resources[] = {
 		.end	= DAVINCI_DA830_DMA_MCASP1_AREVT,
 		.flags	= IORESOURCE_DMA,
 	},
+	{
+		.name	= "common",
+		.start	= IRQ_DA8XX_MCASPINT,
+		.flags	= IORESOURCE_IRQ,
+	},
 };
 
 static struct platform_device da830_mcasp1_device = {
@@ -505,6 +510,11 @@ static struct resource da850_mcasp_resources[] = {
 		.end	= DAVINCI_DA8XX_DMA_MCASP0_AREVT,
 		.flags	= IORESOURCE_DMA,
 	},
+	{
+		.name	= "common",
+		.start	= IRQ_DA8XX_MCASPINT,
+		.flags	= IORESOURCE_IRQ,
+	},
 };
 
 static struct platform_device da850_mcasp_device = {
-- 
2.3.0


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 2/7] ARM: davinci: devices-da8xx: Add interrupt resource to McASP structs
@ 2015-02-10 13:58   ` Peter Ujfalusi
  0 siblings, 0 replies; 16+ messages in thread
From: Peter Ujfalusi @ 2015-02-10 13:58 UTC (permalink / raw)
  To: linux-arm-kernel

On da8xx McASP TX/RX interrupt requests are combined.
The interrupt can be used for error recovery.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
---
 arch/arm/mach-davinci/devices-da8xx.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/arch/arm/mach-davinci/devices-da8xx.c b/arch/arm/mach-davinci/devices-da8xx.c
index f35174317770..e15e046c5438 100644
--- a/arch/arm/mach-davinci/devices-da8xx.c
+++ b/arch/arm/mach-davinci/devices-da8xx.c
@@ -475,6 +475,11 @@ static struct resource da830_mcasp1_resources[] = {
 		.end	= DAVINCI_DA830_DMA_MCASP1_AREVT,
 		.flags	= IORESOURCE_DMA,
 	},
+	{
+		.name	= "common",
+		.start	= IRQ_DA8XX_MCASPINT,
+		.flags	= IORESOURCE_IRQ,
+	},
 };
 
 static struct platform_device da830_mcasp1_device = {
@@ -505,6 +510,11 @@ static struct resource da850_mcasp_resources[] = {
 		.end	= DAVINCI_DA8XX_DMA_MCASP0_AREVT,
 		.flags	= IORESOURCE_DMA,
 	},
+	{
+		.name	= "common",
+		.start	= IRQ_DA8XX_MCASPINT,
+		.flags	= IORESOURCE_IRQ,
+	},
 };
 
 static struct platform_device da850_mcasp_device = {
-- 
2.3.0

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 3/7] ARM: davinci: devices-da8xx: Clean up and correct the McASP device creation
  2015-02-10 13:58 ` Peter Ujfalusi
@ 2015-02-10 13:58   ` Peter Ujfalusi
  -1 siblings, 0 replies; 16+ messages in thread
From: Peter Ujfalusi @ 2015-02-10 13:58 UTC (permalink / raw)
  To: nsekhar, khilman; +Cc: linux-arm-kernel, linux-kernel

Both DA830 and DA850 has McASP0 module, so do not restrict the use of
McASP0 for da850 only.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
---
 arch/arm/mach-davinci/devices-da8xx.c | 25 ++++++++++++++++++-------
 1 file changed, 18 insertions(+), 7 deletions(-)

diff --git a/arch/arm/mach-davinci/devices-da8xx.c b/arch/arm/mach-davinci/devices-da8xx.c
index e15e046c5438..fdc3219ba684 100644
--- a/arch/arm/mach-davinci/devices-da8xx.c
+++ b/arch/arm/mach-davinci/devices-da8xx.c
@@ -526,14 +526,25 @@ static struct platform_device da850_mcasp_device = {
 
 void __init da8xx_register_mcasp(int id, struct snd_platform_data *pdata)
 {
-	/* DA830/OMAP-L137 has 3 instances of McASP */
-	if (cpu_is_davinci_da830() && id == 1) {
-		da830_mcasp1_device.dev.platform_data = pdata;
-		platform_device_register(&da830_mcasp1_device);
-	} else if (cpu_is_davinci_da850()) {
-		da850_mcasp_device.dev.platform_data = pdata;
-		platform_device_register(&da850_mcasp_device);
+	struct platform_device *pdev;
+
+	switch (id) {
+	case 0:
+		/* Valid for DA830/OMAP-L137 or DA850/OMAP-L138 */
+		pdev = &da850_mcasp_device;
+		break;
+	case 1:
+		/* Valid for DA830/OMAP-L137 only */
+		if (!cpu_is_davinci_da830())
+			return;
+		pdev = &da830_mcasp1_device;
+		break;
+	default:
+		return;
 	}
+
+	pdev->dev.platform_data = pdata;
+	platform_device_register(pdev);
 }
 
 static struct resource da8xx_pruss_resources[] = {
-- 
2.3.0


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 3/7] ARM: davinci: devices-da8xx: Clean up and correct the McASP device creation
@ 2015-02-10 13:58   ` Peter Ujfalusi
  0 siblings, 0 replies; 16+ messages in thread
From: Peter Ujfalusi @ 2015-02-10 13:58 UTC (permalink / raw)
  To: linux-arm-kernel

Both DA830 and DA850 has McASP0 module, so do not restrict the use of
McASP0 for da850 only.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
---
 arch/arm/mach-davinci/devices-da8xx.c | 25 ++++++++++++++++++-------
 1 file changed, 18 insertions(+), 7 deletions(-)

diff --git a/arch/arm/mach-davinci/devices-da8xx.c b/arch/arm/mach-davinci/devices-da8xx.c
index e15e046c5438..fdc3219ba684 100644
--- a/arch/arm/mach-davinci/devices-da8xx.c
+++ b/arch/arm/mach-davinci/devices-da8xx.c
@@ -526,14 +526,25 @@ static struct platform_device da850_mcasp_device = {
 
 void __init da8xx_register_mcasp(int id, struct snd_platform_data *pdata)
 {
-	/* DA830/OMAP-L137 has 3 instances of McASP */
-	if (cpu_is_davinci_da830() && id == 1) {
-		da830_mcasp1_device.dev.platform_data = pdata;
-		platform_device_register(&da830_mcasp1_device);
-	} else if (cpu_is_davinci_da850()) {
-		da850_mcasp_device.dev.platform_data = pdata;
-		platform_device_register(&da850_mcasp_device);
+	struct platform_device *pdev;
+
+	switch (id) {
+	case 0:
+		/* Valid for DA830/OMAP-L137 or DA850/OMAP-L138 */
+		pdev = &da850_mcasp_device;
+		break;
+	case 1:
+		/* Valid for DA830/OMAP-L137 only */
+		if (!cpu_is_davinci_da830())
+			return;
+		pdev = &da830_mcasp1_device;
+		break;
+	default:
+		return;
 	}
+
+	pdev->dev.platform_data = pdata;
+	platform_device_register(pdev);
 }
 
 static struct resource da8xx_pruss_resources[] = {
-- 
2.3.0

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 4/7] ARM: davinci: devices-da8xx: Add support for McASP2 on da830
  2015-02-10 13:58 ` Peter Ujfalusi
@ 2015-02-10 13:58   ` Peter Ujfalusi
  -1 siblings, 0 replies; 16+ messages in thread
From: Peter Ujfalusi @ 2015-02-10 13:58 UTC (permalink / raw)
  To: nsekhar, khilman; +Cc: linux-arm-kernel, linux-kernel

da830 has three McASP blocks.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
---
 arch/arm/mach-davinci/asp.h           |  7 ++++++
 arch/arm/mach-davinci/devices-da8xx.c | 41 +++++++++++++++++++++++++++++++++++
 2 files changed, 48 insertions(+)

diff --git a/arch/arm/mach-davinci/asp.h b/arch/arm/mach-davinci/asp.h
index d9b2acd12393..1128e1d8e4b4 100644
--- a/arch/arm/mach-davinci/asp.h
+++ b/arch/arm/mach-davinci/asp.h
@@ -21,6 +21,9 @@
 /* Bases of da830 McASP1 register banks */
 #define DAVINCI_DA830_MCASP1_REG_BASE	0x01D04000
 
+/* Bases of da830 McASP2 register banks */
+#define DAVINCI_DA830_MCASP2_REG_BASE	0x01D08000
+
 /* EDMA channels of dm644x and dm355 */
 #define DAVINCI_DMA_ASP0_TX	2
 #define DAVINCI_DMA_ASP0_RX	3
@@ -40,6 +43,10 @@
 #define DAVINCI_DA830_DMA_MCASP1_AREVT	2
 #define DAVINCI_DA830_DMA_MCASP1_AXEVT	3
 
+/* EDMA channels of da830 McASP2 */
+#define DAVINCI_DA830_DMA_MCASP2_AREVT	4
+#define DAVINCI_DA830_DMA_MCASP2_AXEVT	5
+
 /* Interrupts */
 #define DAVINCI_ASP0_RX_INT	IRQ_MBRINT
 #define DAVINCI_ASP0_TX_INT	IRQ_MBXINT
diff --git a/arch/arm/mach-davinci/devices-da8xx.c b/arch/arm/mach-davinci/devices-da8xx.c
index fdc3219ba684..ddfdd820e6f2 100644
--- a/arch/arm/mach-davinci/devices-da8xx.c
+++ b/arch/arm/mach-davinci/devices-da8xx.c
@@ -489,6 +489,41 @@ static struct platform_device da830_mcasp1_device = {
 	.resource	= da830_mcasp1_resources,
 };
 
+static struct resource da830_mcasp2_resources[] = {
+	{
+		.name	= "mpu",
+		.start	= DAVINCI_DA830_MCASP2_REG_BASE,
+		.end	= DAVINCI_DA830_MCASP2_REG_BASE + (SZ_1K * 12) - 1,
+		.flags	= IORESOURCE_MEM,
+	},
+	/* TX event */
+	{
+		.name	= "tx",
+		.start	= DAVINCI_DA830_DMA_MCASP2_AXEVT,
+		.end	= DAVINCI_DA830_DMA_MCASP2_AXEVT,
+		.flags	= IORESOURCE_DMA,
+	},
+	/* RX event */
+	{
+		.name	= "rx",
+		.start	= DAVINCI_DA830_DMA_MCASP2_AREVT,
+		.end	= DAVINCI_DA830_DMA_MCASP2_AREVT,
+		.flags	= IORESOURCE_DMA,
+	},
+	{
+		.name	= "common",
+		.start	= IRQ_DA8XX_MCASPINT,
+		.flags	= IORESOURCE_IRQ,
+	},
+};
+
+static struct platform_device da830_mcasp2_device = {
+	.name		= "davinci-mcasp",
+	.id		= 2,
+	.num_resources	= ARRAY_SIZE(da830_mcasp2_resources),
+	.resource	= da830_mcasp2_resources,
+};
+
 static struct resource da850_mcasp_resources[] = {
 	{
 		.name	= "mpu",
@@ -539,6 +574,12 @@ void __init da8xx_register_mcasp(int id, struct snd_platform_data *pdata)
 			return;
 		pdev = &da830_mcasp1_device;
 		break;
+	case 2:
+		/* Valid for DA830/OMAP-L137 only */
+		if (!cpu_is_davinci_da830())
+			return;
+		pdev = &da830_mcasp2_device;
+		break;
 	default:
 		return;
 	}
-- 
2.3.0


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 4/7] ARM: davinci: devices-da8xx: Add support for McASP2 on da830
@ 2015-02-10 13:58   ` Peter Ujfalusi
  0 siblings, 0 replies; 16+ messages in thread
From: Peter Ujfalusi @ 2015-02-10 13:58 UTC (permalink / raw)
  To: linux-arm-kernel

da830 has three McASP blocks.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
---
 arch/arm/mach-davinci/asp.h           |  7 ++++++
 arch/arm/mach-davinci/devices-da8xx.c | 41 +++++++++++++++++++++++++++++++++++
 2 files changed, 48 insertions(+)

diff --git a/arch/arm/mach-davinci/asp.h b/arch/arm/mach-davinci/asp.h
index d9b2acd12393..1128e1d8e4b4 100644
--- a/arch/arm/mach-davinci/asp.h
+++ b/arch/arm/mach-davinci/asp.h
@@ -21,6 +21,9 @@
 /* Bases of da830 McASP1 register banks */
 #define DAVINCI_DA830_MCASP1_REG_BASE	0x01D04000
 
+/* Bases of da830 McASP2 register banks */
+#define DAVINCI_DA830_MCASP2_REG_BASE	0x01D08000
+
 /* EDMA channels of dm644x and dm355 */
 #define DAVINCI_DMA_ASP0_TX	2
 #define DAVINCI_DMA_ASP0_RX	3
@@ -40,6 +43,10 @@
 #define DAVINCI_DA830_DMA_MCASP1_AREVT	2
 #define DAVINCI_DA830_DMA_MCASP1_AXEVT	3
 
+/* EDMA channels of da830 McASP2 */
+#define DAVINCI_DA830_DMA_MCASP2_AREVT	4
+#define DAVINCI_DA830_DMA_MCASP2_AXEVT	5
+
 /* Interrupts */
 #define DAVINCI_ASP0_RX_INT	IRQ_MBRINT
 #define DAVINCI_ASP0_TX_INT	IRQ_MBXINT
diff --git a/arch/arm/mach-davinci/devices-da8xx.c b/arch/arm/mach-davinci/devices-da8xx.c
index fdc3219ba684..ddfdd820e6f2 100644
--- a/arch/arm/mach-davinci/devices-da8xx.c
+++ b/arch/arm/mach-davinci/devices-da8xx.c
@@ -489,6 +489,41 @@ static struct platform_device da830_mcasp1_device = {
 	.resource	= da830_mcasp1_resources,
 };
 
+static struct resource da830_mcasp2_resources[] = {
+	{
+		.name	= "mpu",
+		.start	= DAVINCI_DA830_MCASP2_REG_BASE,
+		.end	= DAVINCI_DA830_MCASP2_REG_BASE + (SZ_1K * 12) - 1,
+		.flags	= IORESOURCE_MEM,
+	},
+	/* TX event */
+	{
+		.name	= "tx",
+		.start	= DAVINCI_DA830_DMA_MCASP2_AXEVT,
+		.end	= DAVINCI_DA830_DMA_MCASP2_AXEVT,
+		.flags	= IORESOURCE_DMA,
+	},
+	/* RX event */
+	{
+		.name	= "rx",
+		.start	= DAVINCI_DA830_DMA_MCASP2_AREVT,
+		.end	= DAVINCI_DA830_DMA_MCASP2_AREVT,
+		.flags	= IORESOURCE_DMA,
+	},
+	{
+		.name	= "common",
+		.start	= IRQ_DA8XX_MCASPINT,
+		.flags	= IORESOURCE_IRQ,
+	},
+};
+
+static struct platform_device da830_mcasp2_device = {
+	.name		= "davinci-mcasp",
+	.id		= 2,
+	.num_resources	= ARRAY_SIZE(da830_mcasp2_resources),
+	.resource	= da830_mcasp2_resources,
+};
+
 static struct resource da850_mcasp_resources[] = {
 	{
 		.name	= "mpu",
@@ -539,6 +574,12 @@ void __init da8xx_register_mcasp(int id, struct snd_platform_data *pdata)
 			return;
 		pdev = &da830_mcasp1_device;
 		break;
+	case 2:
+		/* Valid for DA830/OMAP-L137 only */
+		if (!cpu_is_davinci_da830())
+			return;
+		pdev = &da830_mcasp2_device;
+		break;
 	default:
 		return;
 	}
-- 
2.3.0

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 5/7] ARM: davinci: dm646x: Clean up the McASP DMA resources
  2015-02-10 13:58 ` Peter Ujfalusi
@ 2015-02-10 13:58   ` Peter Ujfalusi
  -1 siblings, 0 replies; 16+ messages in thread
From: Peter Ujfalusi @ 2015-02-10 13:58 UTC (permalink / raw)
  To: nsekhar, khilman; +Cc: linux-arm-kernel, linux-kernel

Add names to the DMA resources and remove the RX DMA dummy part for McASP1.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
---
 arch/arm/mach-davinci/dm646x.c | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

diff --git a/arch/arm/mach-davinci/dm646x.c b/arch/arm/mach-davinci/dm646x.c
index 6c3bbea7d77d..d2a2619aee81 100644
--- a/arch/arm/mach-davinci/dm646x.c
+++ b/arch/arm/mach-davinci/dm646x.c
@@ -610,19 +610,21 @@ static struct resource dm646x_mcasp0_resources[] = {
 		.end 	= DAVINCI_DM646X_MCASP0_REG_BASE + (SZ_1K << 1) - 1,
 		.flags 	= IORESOURCE_MEM,
 	},
-	/* first TX, then RX */
 	{
+		.name	= "tx",
 		.start	= DAVINCI_DM646X_DMA_MCASP0_AXEVT0,
 		.end	= DAVINCI_DM646X_DMA_MCASP0_AXEVT0,
 		.flags	= IORESOURCE_DMA,
 	},
 	{
+		.name	= "rx",
 		.start	= DAVINCI_DM646X_DMA_MCASP0_AREVT0,
 		.end	= DAVINCI_DM646X_DMA_MCASP0_AREVT0,
 		.flags	= IORESOURCE_DMA,
 	},
 };
 
+/* DIT mode only, rx is not supported */
 static struct resource dm646x_mcasp1_resources[] = {
 	{
 		.name	= "mpu",
@@ -630,18 +632,12 @@ static struct resource dm646x_mcasp1_resources[] = {
 		.end	= DAVINCI_DM646X_MCASP1_REG_BASE + (SZ_1K << 1) - 1,
 		.flags	= IORESOURCE_MEM,
 	},
-	/* DIT mode, only TX event */
 	{
+		.name	= "tx",
 		.start	= DAVINCI_DM646X_DMA_MCASP1_AXEVT1,
 		.end	= DAVINCI_DM646X_DMA_MCASP1_AXEVT1,
 		.flags	= IORESOURCE_DMA,
 	},
-	/* DIT mode, dummy entry */
-	{
-		.start	= -1,
-		.end	= -1,
-		.flags	= IORESOURCE_DMA,
-	},
 };
 
 static struct platform_device dm646x_mcasp0_device = {
-- 
2.3.0


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 5/7] ARM: davinci: dm646x: Clean up the McASP DMA resources
@ 2015-02-10 13:58   ` Peter Ujfalusi
  0 siblings, 0 replies; 16+ messages in thread
From: Peter Ujfalusi @ 2015-02-10 13:58 UTC (permalink / raw)
  To: linux-arm-kernel

Add names to the DMA resources and remove the RX DMA dummy part for McASP1.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
---
 arch/arm/mach-davinci/dm646x.c | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

diff --git a/arch/arm/mach-davinci/dm646x.c b/arch/arm/mach-davinci/dm646x.c
index 6c3bbea7d77d..d2a2619aee81 100644
--- a/arch/arm/mach-davinci/dm646x.c
+++ b/arch/arm/mach-davinci/dm646x.c
@@ -610,19 +610,21 @@ static struct resource dm646x_mcasp0_resources[] = {
 		.end 	= DAVINCI_DM646X_MCASP0_REG_BASE + (SZ_1K << 1) - 1,
 		.flags 	= IORESOURCE_MEM,
 	},
-	/* first TX, then RX */
 	{
+		.name	= "tx",
 		.start	= DAVINCI_DM646X_DMA_MCASP0_AXEVT0,
 		.end	= DAVINCI_DM646X_DMA_MCASP0_AXEVT0,
 		.flags	= IORESOURCE_DMA,
 	},
 	{
+		.name	= "rx",
 		.start	= DAVINCI_DM646X_DMA_MCASP0_AREVT0,
 		.end	= DAVINCI_DM646X_DMA_MCASP0_AREVT0,
 		.flags	= IORESOURCE_DMA,
 	},
 };
 
+/* DIT mode only, rx is not supported */
 static struct resource dm646x_mcasp1_resources[] = {
 	{
 		.name	= "mpu",
@@ -630,18 +632,12 @@ static struct resource dm646x_mcasp1_resources[] = {
 		.end	= DAVINCI_DM646X_MCASP1_REG_BASE + (SZ_1K << 1) - 1,
 		.flags	= IORESOURCE_MEM,
 	},
-	/* DIT mode, only TX event */
 	{
+		.name	= "tx",
 		.start	= DAVINCI_DM646X_DMA_MCASP1_AXEVT1,
 		.end	= DAVINCI_DM646X_DMA_MCASP1_AXEVT1,
 		.flags	= IORESOURCE_DMA,
 	},
-	/* DIT mode, dummy entry */
-	{
-		.start	= -1,
-		.end	= -1,
-		.flags	= IORESOURCE_DMA,
-	},
 };
 
 static struct platform_device dm646x_mcasp0_device = {
-- 
2.3.0

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 6/7] ARM: davinci: irqs: Correct McASP1 TX interrupt definition for DM646x
  2015-02-10 13:58 ` Peter Ujfalusi
@ 2015-02-10 13:58   ` Peter Ujfalusi
  -1 siblings, 0 replies; 16+ messages in thread
From: Peter Ujfalusi @ 2015-02-10 13:58 UTC (permalink / raw)
  To: nsekhar, khilman; +Cc: linux-arm-kernel, linux-kernel

McASP1 TX interrupt is 30, not 32 on DM646x DMSoC

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
---
 arch/arm/mach-davinci/include/mach/irqs.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/mach-davinci/include/mach/irqs.h b/arch/arm/mach-davinci/include/mach/irqs.h
index 354af71798dc..edb2ca62321a 100644
--- a/arch/arm/mach-davinci/include/mach/irqs.h
+++ b/arch/arm/mach-davinci/include/mach/irqs.h
@@ -129,8 +129,8 @@
 #define IRQ_DM646X_EMACMISCINT  27
 #define IRQ_DM646X_MCASP0TXINT  28
 #define IRQ_DM646X_MCASP0RXINT  29
+#define IRQ_DM646X_MCASP1TXINT  30
 #define IRQ_DM646X_RESERVED_3   31
-#define IRQ_DM646X_MCASP1TXINT  32
 #define IRQ_DM646X_VLQINT       38
 #define IRQ_DM646X_UARTINT2     42
 #define IRQ_DM646X_SPINT0       43
-- 
2.3.0


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 6/7] ARM: davinci: irqs: Correct McASP1 TX interrupt definition for DM646x
@ 2015-02-10 13:58   ` Peter Ujfalusi
  0 siblings, 0 replies; 16+ messages in thread
From: Peter Ujfalusi @ 2015-02-10 13:58 UTC (permalink / raw)
  To: linux-arm-kernel

McASP1 TX interrupt is 30, not 32 on DM646x DMSoC

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
---
 arch/arm/mach-davinci/include/mach/irqs.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/mach-davinci/include/mach/irqs.h b/arch/arm/mach-davinci/include/mach/irqs.h
index 354af71798dc..edb2ca62321a 100644
--- a/arch/arm/mach-davinci/include/mach/irqs.h
+++ b/arch/arm/mach-davinci/include/mach/irqs.h
@@ -129,8 +129,8 @@
 #define IRQ_DM646X_EMACMISCINT  27
 #define IRQ_DM646X_MCASP0TXINT  28
 #define IRQ_DM646X_MCASP0RXINT  29
+#define IRQ_DM646X_MCASP1TXINT  30
 #define IRQ_DM646X_RESERVED_3   31
-#define IRQ_DM646X_MCASP1TXINT  32
 #define IRQ_DM646X_VLQINT       38
 #define IRQ_DM646X_UARTINT2     42
 #define IRQ_DM646X_SPINT0       43
-- 
2.3.0

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 7/7] ARM: davinci: dm646x: Add interrupt resource for McASPs
  2015-02-10 13:58 ` Peter Ujfalusi
@ 2015-02-10 13:58   ` Peter Ujfalusi
  -1 siblings, 0 replies; 16+ messages in thread
From: Peter Ujfalusi @ 2015-02-10 13:58 UTC (permalink / raw)
  To: nsekhar, khilman; +Cc: linux-arm-kernel, linux-kernel

The interrupt can be used for error recovery.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
---
 arch/arm/mach-davinci/dm646x.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/arch/arm/mach-davinci/dm646x.c b/arch/arm/mach-davinci/dm646x.c
index d2a2619aee81..c86e0d503b68 100644
--- a/arch/arm/mach-davinci/dm646x.c
+++ b/arch/arm/mach-davinci/dm646x.c
@@ -622,6 +622,16 @@ static struct resource dm646x_mcasp0_resources[] = {
 		.end	= DAVINCI_DM646X_DMA_MCASP0_AREVT0,
 		.flags	= IORESOURCE_DMA,
 	},
+	{
+		.name	= "tx",
+		.start	= IRQ_DM646X_MCASP0TXINT,
+		.flags	= IORESOURCE_IRQ,
+	},
+	{
+		.name	= "rx",
+		.start	= IRQ_DM646X_MCASP0RXINT,
+		.flags	= IORESOURCE_IRQ,
+	},
 };
 
 /* DIT mode only, rx is not supported */
@@ -638,6 +648,11 @@ static struct resource dm646x_mcasp1_resources[] = {
 		.end	= DAVINCI_DM646X_DMA_MCASP1_AXEVT1,
 		.flags	= IORESOURCE_DMA,
 	},
+	{
+		.name	= "tx",
+		.start	= IRQ_DM646X_MCASP1TXINT,
+		.flags	= IORESOURCE_IRQ,
+	},
 };
 
 static struct platform_device dm646x_mcasp0_device = {
-- 
2.3.0


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 7/7] ARM: davinci: dm646x: Add interrupt resource for McASPs
@ 2015-02-10 13:58   ` Peter Ujfalusi
  0 siblings, 0 replies; 16+ messages in thread
From: Peter Ujfalusi @ 2015-02-10 13:58 UTC (permalink / raw)
  To: linux-arm-kernel

The interrupt can be used for error recovery.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
---
 arch/arm/mach-davinci/dm646x.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/arch/arm/mach-davinci/dm646x.c b/arch/arm/mach-davinci/dm646x.c
index d2a2619aee81..c86e0d503b68 100644
--- a/arch/arm/mach-davinci/dm646x.c
+++ b/arch/arm/mach-davinci/dm646x.c
@@ -622,6 +622,16 @@ static struct resource dm646x_mcasp0_resources[] = {
 		.end	= DAVINCI_DM646X_DMA_MCASP0_AREVT0,
 		.flags	= IORESOURCE_DMA,
 	},
+	{
+		.name	= "tx",
+		.start	= IRQ_DM646X_MCASP0TXINT,
+		.flags	= IORESOURCE_IRQ,
+	},
+	{
+		.name	= "rx",
+		.start	= IRQ_DM646X_MCASP0RXINT,
+		.flags	= IORESOURCE_IRQ,
+	},
 };
 
 /* DIT mode only, rx is not supported */
@@ -638,6 +648,11 @@ static struct resource dm646x_mcasp1_resources[] = {
 		.end	= DAVINCI_DM646X_DMA_MCASP1_AXEVT1,
 		.flags	= IORESOURCE_DMA,
 	},
+	{
+		.name	= "tx",
+		.start	= IRQ_DM646X_MCASP1TXINT,
+		.flags	= IORESOURCE_IRQ,
+	},
 };
 
 static struct platform_device dm646x_mcasp0_device = {
-- 
2.3.0

^ permalink raw reply related	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2015-02-10 14:02 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-02-10 13:58 [PATCH 0/7] ARM: davinci: McASP related cleanups and fixes Peter Ujfalusi
2015-02-10 13:58 ` Peter Ujfalusi
2015-02-10 13:58 ` [PATCH 1/7] ARM: davinci: devices-da8xx: Add resource name for the McASP DMA request Peter Ujfalusi
2015-02-10 13:58   ` Peter Ujfalusi
2015-02-10 13:58 ` [PATCH 2/7] ARM: davinci: devices-da8xx: Add interrupt resource to McASP structs Peter Ujfalusi
2015-02-10 13:58   ` Peter Ujfalusi
2015-02-10 13:58 ` [PATCH 3/7] ARM: davinci: devices-da8xx: Clean up and correct the McASP device creation Peter Ujfalusi
2015-02-10 13:58   ` Peter Ujfalusi
2015-02-10 13:58 ` [PATCH 4/7] ARM: davinci: devices-da8xx: Add support for McASP2 on da830 Peter Ujfalusi
2015-02-10 13:58   ` Peter Ujfalusi
2015-02-10 13:58 ` [PATCH 5/7] ARM: davinci: dm646x: Clean up the McASP DMA resources Peter Ujfalusi
2015-02-10 13:58   ` Peter Ujfalusi
2015-02-10 13:58 ` [PATCH 6/7] ARM: davinci: irqs: Correct McASP1 TX interrupt definition for DM646x Peter Ujfalusi
2015-02-10 13:58   ` Peter Ujfalusi
2015-02-10 13:58 ` [PATCH 7/7] ARM: davinci: dm646x: Add interrupt resource for McASPs Peter Ujfalusi
2015-02-10 13:58   ` Peter Ujfalusi

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.