Commit e89861e9b44fcd606cdade6230eb0037ad5911bf

Authored by Miguel Aguilar
Committed by Kevin Hilman
1 parent 3b43cd6f2d

DaVinci: DM365: Voice codec support for the DM365 SoC

This patch adds the generic Voice Codec support for the DM365 based
platforms.

Signed-off-by: Miguel Aguilar <miguel.aguilar@ridgerun.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>

Showing 3 changed files with 43 additions and 1 deletions Side-by-side Diff

arch/arm/mach-davinci/dm365.c
... ... @@ -455,7 +455,7 @@
455 455 CLK(NULL, "timer3", &timer3_clk),
456 456 CLK(NULL, "usb", &usb_clk),
457 457 CLK("davinci_emac.1", NULL, &emac_clk),
458   - CLK("voice_codec", NULL, &voicecodec_clk),
  458 + CLK("davinci_voicecodec", NULL, &voicecodec_clk),
459 459 CLK("davinci-asp.0", NULL, &asp0_clk),
460 460 CLK(NULL, "rto", &rto_clk),
461 461 CLK(NULL, "mjcp", &mjcp_clk),
... ... @@ -606,6 +606,8 @@
606 606  
607 607 EVT_CFG(DM365, EVT2_ASP_TX, 0, 1, 0, false)
608 608 EVT_CFG(DM365, EVT3_ASP_RX, 1, 1, 0, false)
  609 +EVT_CFG(DM365, EVT2_VC_TX, 0, 1, 1, false)
  610 +EVT_CFG(DM365, EVT3_VC_RX, 1, 1, 1, false)
609 611 #endif
610 612 };
611 613  
... ... @@ -835,6 +837,31 @@
835 837 .resource = dm365_asp_resources,
836 838 };
837 839  
  840 +static struct resource dm365_vc_resources[] = {
  841 + {
  842 + .start = DAVINCI_DM365_VC_BASE,
  843 + .end = DAVINCI_DM365_VC_BASE + SZ_1K - 1,
  844 + .flags = IORESOURCE_MEM,
  845 + },
  846 + {
  847 + .start = DAVINCI_DMA_VC_TX,
  848 + .end = DAVINCI_DMA_VC_TX,
  849 + .flags = IORESOURCE_DMA,
  850 + },
  851 + {
  852 + .start = DAVINCI_DMA_VC_RX,
  853 + .end = DAVINCI_DMA_VC_RX,
  854 + .flags = IORESOURCE_DMA,
  855 + },
  856 +};
  857 +
  858 +static struct platform_device dm365_vc_device = {
  859 + .name = "davinci_voicecodec",
  860 + .id = -1,
  861 + .num_resources = ARRAY_SIZE(dm365_vc_resources),
  862 + .resource = dm365_vc_resources,
  863 +};
  864 +
838 865 static struct resource dm365_rtc_resources[] = {
839 866 {
840 867 .start = DM365_RTC_BASE,
... ... @@ -989,6 +1016,14 @@
989 1016 davinci_cfg_reg(DM365_EVT3_ASP_RX);
990 1017 dm365_asp_device.dev.platform_data = pdata;
991 1018 platform_device_register(&dm365_asp_device);
  1019 +}
  1020 +
  1021 +void __init dm365_init_vc(struct snd_platform_data *pdata)
  1022 +{
  1023 + davinci_cfg_reg(DM365_EVT2_VC_TX);
  1024 + davinci_cfg_reg(DM365_EVT3_VC_RX);
  1025 + dm365_vc_device.dev.platform_data = pdata;
  1026 + platform_device_register(&dm365_vc_device);
992 1027 }
993 1028  
994 1029 void __init dm365_init_ks(struct davinci_ks_platform_data *pdata)
arch/arm/mach-davinci/include/mach/dm365.h
... ... @@ -32,8 +32,13 @@
32 32  
33 33 #define DM365_RTC_BASE (0x01C69000)
34 34  
  35 +#define DAVINCI_DM365_VC_BASE (0x01D0C000)
  36 +#define DAVINCI_DMA_VC_TX 2
  37 +#define DAVINCI_DMA_VC_RX 3
  38 +
35 39 void __init dm365_init(void);
36 40 void __init dm365_init_asp(struct snd_platform_data *pdata);
  41 +void __init dm365_init_vc(struct snd_platform_data *pdata);
37 42 void __init dm365_init_ks(struct davinci_ks_platform_data *pdata);
38 43 void __init dm365_init_rtc(void);
39 44  
arch/arm/mach-davinci/include/mach/mux.h
... ... @@ -327,6 +327,8 @@
327 327 /* EDMA event muxing */
328 328 DM365_EVT2_ASP_TX,
329 329 DM365_EVT3_ASP_RX,
  330 + DM365_EVT2_VC_TX,
  331 + DM365_EVT3_VC_RX,
330 332 DM365_EVT26_MMC0_RX,
331 333 };
332 334