[alsa-devel] [PATCH 3/3] ASoC: add machine driver for i.mx27_visstrim_m10 board
Mark Brown
broonie at opensource.wolfsonmicro.com
Tue Aug 4 21:54:45 CEST 2009
On Tue, Aug 04, 2009 at 05:18:02PM +0200, javier Martin wrote:
> This adds support for i.mx27_visstrim_sm10 board machine driver which
> uses an i.mx27 processor plus a wm8974 codec.
> It has been tested on a visstrim_sm10 board.
> Signed-off-by: Javier Martin <javier.martin at vista-silicon.com>
Again, this all looks good with some relatively small nits.
> +/**
> + * This function connects SSI1 (HPCR1) as slave to
> + * SSI1 external signals (PPCR1)
> + * As slave, HPCR1 must set TFSDIR and TCLKDIR as inputs from
> + * port 4
> + */
> +void audmux_connect_1_4(void)
> +{
Obviously this ought to get pulled out, either into an arch AUXMUX thing
or a separate file in here. However, neither of those things exist
right now. I'll just go prod the last AUXMUX thread on linux-arm-kernel.
> + return;
> +}
No need for the return; here.
> + /*
> + * The WM8974 is better at generating accurate audio clocks than the
> + * MX27 SSI controller, so we will use it as master when we can.
> + */
> + switch (params_rate(params)) {
> + case 8000:
Unless I'm missing something the "when we can" is "in all cases" :)
> + /* set codec DAI configuration */
> + ret = codec_dai->ops->set_fmt(codec_dai,
> + SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_IF |
> + SND_SOC_DAIFMT_SYNC | fmt);
> + if (ret < 0) {
> + printk(KERN_ERR "Error from codec DAI configuration\n");
> + return ret;
> + }
Printing the value of ret would be nice.
> + /* Put DC field of STCCR to 1 (not zero) */
> + ret = cpu_dai->ops->set_tdm_slot(cpu_dai, 0, 2);
Rats, you are using the TDM slot configuration. Oh well. Should check
this error.
> +static int mx27vis_suspend(struct platform_device *pdev, pm_message_t state)
> +{
> + return 0;
> +}
> +
> +static int mx27vis_resume(struct platform_device *pdev)
> +{
> + return 0;
> +}
These can be omitted if empty.
> + unsigned int ssi1_pins[] = {
> + PC20_PF_SSI1_FS,
> + PC21_PF_SSI1_RXD,
> + PC22_PF_SSI1_TXD,
> + PC23_PF_SSI1_CLK,
> + };
> + unsigned int ssi2_pins[] = {
> + PC24_PF_SSI2_FS,
> + PC25_PF_SSI2_RXD,
> + PC26_PF_SSI2_TXD,
> + PC27_PF_SSI2_CLK,
> + };
> + if (ssi_num == 0)
> + ret = mxc_gpio_setup_multiple_pins(ssi1_pins,
> + ARRAY_SIZE(ssi1_pins), "USB OTG");
> + else
> + ret = mxc_gpio_setup_multiple_pins(ssi2_pins,
> + ARRAY_SIZE(ssi2_pins), "USB OTG");
This would normally be done under arch/arm in the board setup code.
More information about the Alsa-devel
mailing list