kernel/sound
soc/imx/imx-wm8962.c
soc/imx/imx-wm8958.c
static struct snd_soc_dai_link imx_dai[] = {
{
.name = "HiFi",
.stream_name = "HiFi",
.codec_dai_name = "wm8962",
.codec_name = "wm8962.0-001a",
.cpu_dai_name = "imx-ssi.1",
.platform_name = "imx-pcm-audio.1",
.init = imx_wm8962_init,
.ops = &imx_hifi_ops,
},
};
static struct snd_soc_card snd_soc_card_imx = {
.name = "wm8962-audio",
.dai_link = imx_dai,
.num_links = ARRAY_SIZE(imx_dai),
};
wm8962.0-001a
static int __init imx_asoc_init(void)
{
int ret;
ret = platform_driver_register(&imx_wm8962_driver);
if (ret < 0)
goto exit;
if (machine_is_mx6q_sabresd())
imx_dai[0].codec_name = "wm8962.0-001a";
else if (machine_is_mx6sl_arm2() | machine_is_mx6sl_evk())
imx_dai[0].codec_name = "wm8962.1-001a";
imx_snd_device = platform_device_alloc("soc-audio", 5);
if (!imx_snd_device)
goto err_device_alloc;
platform_set_drvdata(imx_snd_device, &snd_soc_card_imx);
ret = platform_device_add(imx_snd_device);
if (0 == ret)
goto exit;
platform_device_put(imx_snd_device);
err_device_alloc:
platform_driver_unregister(&imx_wm8962_driver);
exit:
return ret;
}
soc/imx/imx-pcm-dma-mx2.c (imx-pcm-audio)
static struct platform_driver imx_pcm_driver = {
.driver = {
.name = "imx-pcm-audio",
.owner = THIS_MODULE,
},
.probe = imx_soc_platform_probe,
.remove = __devexit_p(imx_soc_platform_remove),
};
soc/imx/imx-ssi.c (imx-ssi)
static struct platform_driver imx_ssi_driver = {
.probe = imx_ssi_probe,
.remove = __devexit_p(imx_ssi_remove),
.driver = {
.name = "imx-ssi",
.owner = THIS_MODULE,
},
};
drivers/mmc/host/sdhci-pltfm.c
drivers/mmc/host/sdhci-esdhc-imx.c
DMA SD
module_init(wm8962_modinit);
static int __init wm8962_modinit(void) (wm8962_i2c_driver)
static struct i2c_driver wm8962_i2c_driver (.probe = wm8962_i2c_probe)
static __devinit int wm8962_i2c_probe(struct i2c_client *i2c,
const struct i2c_device_id *id) (soc_codec_dev_wm8962)
freescale mx6q_sabresd kernel之sound分析
最新推荐文章于 2022-07-08 14:56:31 发布