Commit 3775c313 authored by Peter Ujfalusi's avatar Peter Ujfalusi Committed by Sekhar Nori

ARM: davinci: devices-da8xx: Add support for McASP2 on da830

da830 has three McASP blocks.
Signed-off-by: default avatarPeter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: default avatarSekhar Nori <nsekhar@ti.com>
parent c96aacb1
...@@ -21,6 +21,9 @@ ...@@ -21,6 +21,9 @@
/* Bases of da830 McASP1 register banks */ /* Bases of da830 McASP1 register banks */
#define DAVINCI_DA830_MCASP1_REG_BASE 0x01D04000 #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 */ /* EDMA channels of dm644x and dm355 */
#define DAVINCI_DMA_ASP0_TX 2 #define DAVINCI_DMA_ASP0_TX 2
#define DAVINCI_DMA_ASP0_RX 3 #define DAVINCI_DMA_ASP0_RX 3
...@@ -40,6 +43,10 @@ ...@@ -40,6 +43,10 @@
#define DAVINCI_DA830_DMA_MCASP1_AREVT 2 #define DAVINCI_DA830_DMA_MCASP1_AREVT 2
#define DAVINCI_DA830_DMA_MCASP1_AXEVT 3 #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 */ /* Interrupts */
#define DAVINCI_ASP0_RX_INT IRQ_MBRINT #define DAVINCI_ASP0_RX_INT IRQ_MBRINT
#define DAVINCI_ASP0_TX_INT IRQ_MBXINT #define DAVINCI_ASP0_TX_INT IRQ_MBXINT
......
...@@ -489,6 +489,41 @@ static struct platform_device da830_mcasp1_device = { ...@@ -489,6 +489,41 @@ static struct platform_device da830_mcasp1_device = {
.resource = da830_mcasp1_resources, .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[] = { static struct resource da850_mcasp_resources[] = {
{ {
.name = "mpu", .name = "mpu",
...@@ -539,6 +574,12 @@ void __init da8xx_register_mcasp(int id, struct snd_platform_data *pdata) ...@@ -539,6 +574,12 @@ void __init da8xx_register_mcasp(int id, struct snd_platform_data *pdata)
return; return;
pdev = &da830_mcasp1_device; pdev = &da830_mcasp1_device;
break; break;
case 2:
/* Valid for DA830/OMAP-L137 only */
if (!cpu_is_davinci_da830())
return;
pdev = &da830_mcasp2_device;
break;
default: default:
return; return;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment