[alsa-devel] audio mcbsp1 broken for beagleboard-xm -OMAP
noman pouigt
variksla at gmail.com
Sat Feb 21 03:36:01 CET 2015
On Fri, Feb 20, 2015 at 8:27 AM, Peter Ujfalusi <peter.ujfalusi at ti.com> wrote:
> 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.
>>
>> 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",
>> + .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>;
>> + };
>> };
>
> You also need to change the dts file's sound node, enable mcbsp1, set the
> pinctrl entries, etc if you boot with DT.
Yes and it is done as below:
&omap3_pmx_core {
mcbsp1_pins: pinmux_mcbsp1_pins {
pinctrl-single,pins = <
OMAP3_CORE1_IOPAD(0x2198, PIN_INPUT | MUX_MODE0)
OMAP3_CORE1_IOPAD(0x2194, PIN_INPUT | MUX_MODE0)
OMAP3_CORE1_IOPAD(0x2190, PIN_INPUT | MUX_MODE0)
OMAP3_CORE1_IOPAD(0x2190, PIN_OUTPUT | MUX_MODE0)
>;
};
}
sound {
- ti,mcbsp = <&mcbsp2>;
- ti,codec = <&twl_audio>;
+ ti,mcbsp = <&mcbsp1>;
+ ti,codec = <&max98090>;
}
&mcbsp1 {
pinctrl-names = "default";
pinctrl-0 = <&mcbsp1_pins>;
status = "okay";
};
&i2c2 {
clock-frequency = <400000>;
max98090: max98090 at 10 {
compatible = "maxim,max98090";
reg = <0x10>;
};
};
all other changes remain the same. Have i done muxing wrong? I am
still stuck with mcbsp not getting interrupt.
please find the dts file here http://ideone.com/TPFkBv
I connected digital output of 98090 to mcbsp1_dr and digital receive
to mcbsp1_dx. I can see the bit clock and lrclk is coming fine from
98090. As already mentioned i have connected lrclk, bit clock, DR
and DX only.
Kernel logs here: http://ideone.com/hDHq2l
>
>>
>> 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.
>>
>> 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