On Fri, Feb 20, 2015 at 8:24 AM, Peter Ujfalusi peter.ujfalusi@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@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_...
Thanks,
-- Péter