[alsa-devel] audio mcbsp1 broken for beagleboard-xm -OMAP

noman pouigt variksla at gmail.com
Tue Feb 24 01:03:15 CET 2015


On Fri, Feb 20, 2015 at 8:24 AM, Peter Ujfalusi <peter.ujfalusi at ti.com> wrote:
> Hi,
>
> On 02/20/2015 08:45 AM, noman pouigt wrote:
>> Hello,
>>
>> I am trying to integrate max98090 codec with $subject board.  I am
>> running the mcBSP in slave mode as i have not changed the hw_parms for
>> omap-twl4030.c file. With below changes i see wait_for_avail is
>> getting stuck i.e. mcbsp is not getting any interrupt and nothing is
>> playing.
>
> I have tested the XM with twl4030 on linux-next and McBSP is working fine as
> slave and master (I have a patch to add the McBSP master support for testing)
> also.
>
>>
>> Kernel version:
>> VERSION = 3
>> PATCHLEVEL = 19
>> SUBLEVEL = 0
>> EXTRAVERSION =
>> NAME = Diseased Newt
>>
>> Setup information:
>> Using beagle board -xm and connected max98090 codec to mcbsp1 pins.
>> Connected only 4 pins.
>>
>> Changed the omap-twl4030.c machine file as below to disable the twl4030:
>> static struct snd_soc_dai_link omap_twl4030_dai_links[] = {
>>        {
>> +               .name = "max98090",
>> +               .stream_name = "max98090",
>>                .cpu_dai_name = "omap-mcbsp.1",
>
> Hrm, mcbsp.1 is not in use by default on the board, 2 and 3 are the one which
> is used by the omap-twl4030 driver.

I have used the mcbsp3 also as below where i am running codec in master and
mcbsp3 in slave mode. Configuration for that is below:

                compatible = "ti,omap-twl4030";
                ti,model = "omap3beagle";
 -               ti,mcbsp = <&mcbsp2>;
-               ti,codec = <&twl_audio>;
+               ti,mcbsp = <&mcbsp3>;
+               ti,codec = <&max98090>;


&omap3_pmx_core {

+       mcbsp3_pins: pinmux_mcbsp3_pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x216c, PIN_OUTPUT |
MUX_MODE1)       /* mcbsp3_dx.uart2_cts */
+                       OMAP3_CORE1_IOPAD(0x216e, PIN_INPUT |
MUX_MODE1)        /* mcbsp3_dr.uart2_rts */
+                       OMAP3_CORE1_IOPAD(0x2170, PIN_INPUT |
MUX_MODE1)        /* mcbsp3_clk.uart2_tx */
+                       OMAP3_CORE1_IOPAD(0x2172, PIN_INPUT |
MUX_MODE0)        /* mcbsp3_fsx.uart2_rx */
+               >;
+       };
}

&mcbsp3 {
        pinctrl-names = "default";
        pinctrl-0 = <&mcbsp3_pins>;

        status = "okay";
};

However still the interrupts doesn't get generated. Can you please
guide in right
direction? I have checked the mcbsp1_fsx and mcbsp1_clkx and
both the clocks generated are right i.e. one is 8k and other is
multiple of it.

On the data line i can see only zeroes. Probably dsp is filling it with
zeroes as generally done by Qualcomm dsp.

>
>> +               .codec_dai_name = "HiFi",
>>                .platform_name = "omap-mcbsp.1",
>> +               .codec_name = "max98090.1-0010",
>>                .ops = &omap_twl4030_ops,
>>        },
>>
>> DTSI file change:arch/arm/boot/dts/omap3-beagle-xm.dts
>>
>> &i2c2 {
>>        clock-frequency = <400000>;
>> +
>> +       max98090: max98090 at 10 {
>> +               compatible = "maxim,max98090";
>> +               reg = <0x10>;
>> +       };
>> };
>>
>> omap/omap-twl4030.c
>> added in hw_params below function to set internal oscillator for 98090
>> for generating PLL for master clock.
>> snd_soc_dai_set_sysclk(codec_dai, 26000000, 0, SND_SOC_CLOCK_IN);
>>
>> I am able to see that the cpu_dai is mapped with codec_dai and
>> configuration is ok. kernel logs at https://ideone.com/oezNSj
>>
>> I think i don't need to configure the mcbsp1 pins right as it uses default.
>
> I think you should check the pin mux for the McBSP1 pins. They might not set
> to correct mode.
>
>>
>> Please guide me.I have tried IRC channel also but not getting the right folks.
>>
>> https://github.com/CircuitCo/BeagleBoard-xM-RevC/blob/master/BeagleBoard-xM_revC_SCH.pdf?raw=true
>>
>> Thanks,
>>
>
>
> --
> Péter


More information about the Alsa-devel mailing list