Esempio n. 1
0
static int imx_ssi_probe(struct device *dev)
{
	struct snd_soc_dai *dai = to_snd_soc_dai(dev);

	if (!strcmp(imx_ssi_1, dai->name))
		dai->id = IMX_DAI_SSI0;
	else if (!strcmp(imx_ssi_2, dai->name))
		dai->id = IMX_DAI_SSI1;
	else if (!strcmp(imx_ssi_3, dai->name))
		dai->id = IMX_DAI_SSI2;
	else if (!strcmp(imx_ssi_4, dai->name))
		dai->id = IMX_DAI_SSI3;
	else {
		printk(KERN_ERR "%s: invalid device %s\n", __func__, dai->name);
		return -ENODEV;
	}

	dai->type = SND_SOC_DAI_PCM;
	dai->ops = &imx_ssi_dai_ops;
	dai->audio_ops = &imx_ssi_audio_ops;
	dai->capture = &imx_ssi_capture;
	dai->playback = &imx_ssi_playback;
	snd_soc_register_cpu_dai(dai);

	if ((!strcmp(imx_ssi_1, dai->name)) || (!strcmp(imx_ssi_2, dai->name)))
		if (request_irq(MXC_INT_SSI1, ssi1_irq, 0, "ssi1", dai)) {
			printk(KERN_ERR "%s: failure requesting irq %s\n",
			       __func__, "ssi1");
			return -EBUSY;
		}

	return 0;
}
Esempio n. 2
0
static int imx_ssi_resume(struct device *dev)
{
	struct snd_soc_dai *dai = to_snd_soc_dai(dev);

	if (!dai->active)
		return 0;

	// do we need to enable any clocks
	return 0;
}
Esempio n. 3
0
static int imx_ssi_suspend(struct device *dev, pm_message_t state)
{
	struct snd_soc_dai *dai = to_snd_soc_dai(dev);

	if (!dai->active)
		return 0;

	// do we need to disable any clocks

	return 0;
}
Esempio n. 4
0
static int wm8350_hifi_dai_probe(struct device *dev)
{
	struct snd_soc_dai *dai = to_snd_soc_dai(dev);
		
	dai->ops = &wm8350_hifi_dai_ops;
	dai->audio_ops = &wm8350_hifi_dai_audio_ops;
	dai->capture = &wm8350_hifi_dai_capture;
	dai->playback = &wm8350_hifi_dai_playback;
	snd_soc_register_codec_dai(dai);
	return 0;
}
Esempio n. 5
0
static int imx_ssi_remove(struct device *dev)
{
	struct snd_soc_dai *dai = to_snd_soc_dai(dev);

	if ((!strcmp(imx_ssi_1, dai->name)) || (!strcmp(imx_ssi_2, dai->name)))
	{
		free_irq(MXC_INT_SSI1, dai);
	}
	if ((!strcmp(imx_ssi_3, dai->name)) || (!strcmp(imx_ssi_4, dai->name)))
	{
		free_irq(MXC_INT_SSI2, dai);
	}

	return 0;
}