diff options
Diffstat (limited to 'sound/soc/davinci/davinci-i2s.c')
| -rw-r--r-- | sound/soc/davinci/davinci-i2s.c | 26 | 
1 files changed, 23 insertions, 3 deletions
diff --git a/sound/soc/davinci/davinci-i2s.c b/sound/soc/davinci/davinci-i2s.c index ffdb9439d3d..b1ea52fc83c 100644 --- a/sound/soc/davinci/davinci-i2s.c +++ b/sound/soc/davinci/davinci-i2s.c @@ -24,6 +24,26 @@  #include "davinci-pcm.h" + +/* + * NOTE:  terminology here is confusing. + * + *  - This driver supports the "Audio Serial Port" (ASP), + *    found on dm6446, dm355, and other DaVinci chips. + * + *  - But it labels it a "Multi-channel Buffered Serial Port" + *    (McBSP) as on older chips like the dm642 ... which was + *    backward-compatible, possibly explaining that confusion. + * + *  - OMAP chips have a controller called McBSP, which is + *    incompatible with the DaVinci flavor of McBSP. + * + *  - Newer DaVinci chips have a controller called McASP, + *    incompatible with ASP and with either McBSP. + * + * In short:  this uses ASP to implement I2S, not McBSP. + * And it won't be the only DaVinci implemention of I2S. + */  #define DAVINCI_MCBSP_DRR_REG	0x00  #define DAVINCI_MCBSP_DXR_REG	0x04  #define DAVINCI_MCBSP_SPCR_REG	0x08 @@ -421,7 +441,7 @@ static int davinci_i2s_probe(struct platform_device *pdev,  {  	struct snd_soc_device *socdev = platform_get_drvdata(pdev);  	struct snd_soc_card *card = socdev->card; -	struct snd_soc_dai *cpu_dai = card->dai_link[pdev->id].cpu_dai; +	struct snd_soc_dai *cpu_dai = card->dai_link->cpu_dai;  	struct davinci_mcbsp_dev *dev;  	struct resource *mem, *ioarea;  	struct evm_snd_platform_data *pdata; @@ -448,7 +468,7 @@ static int davinci_i2s_probe(struct platform_device *pdev,  	cpu_dai->private_data = dev; -	dev->clk = clk_get(&pdev->dev, "McBSPCLK"); +	dev->clk = clk_get(&pdev->dev, NULL);  	if (IS_ERR(dev->clk)) {  		ret = -ENODEV;  		goto err_free_mem; @@ -483,7 +503,7 @@ static void davinci_i2s_remove(struct platform_device *pdev,  {  	struct snd_soc_device *socdev = platform_get_drvdata(pdev);  	struct snd_soc_card *card = socdev->card; -	struct snd_soc_dai *cpu_dai = card->dai_link[pdev->id].cpu_dai; +	struct snd_soc_dai *cpu_dai = card->dai_link->cpu_dai;  	struct davinci_mcbsp_dev *dev = cpu_dai->private_data;  	struct resource *mem;  |