Commit e89861e9b44fcd606cdade6230eb0037ad5911bf
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 |