Part Number:AM4378
Tool/software: Linux
I have a pcm1862 hooked up to mcasp0 on an am4378 processor. Here is the pin setup for mcasp0 in the dts file:
mcasp0_pcm1862_pins_default: mcasp0_pcm1862_pins_default {
pinctrl-single,pins = <
0x19c ( PIN_INPUT | MUX_MODE0 ) /* (M24) mcasp0_ahclkr.mcasp0_ahclkr */
0x1a0 ( PIN_INPUT | MUX_MODE0 ) /* (L23) mcasp0_aclkr.mcasp0_aclkr */
0x1a4 ( PIN_INPUT | MUX_MODE0 ) /* (K23) mcasp0_fsr.mcasp0_fsr */
0x1ac ( PIN_INPUT | MUX_MODE2 ) /* (L24) mcasp0_ahclkx.mcasp0_axr3 */
>;
};
Here is the mcasp0 setup:
&mcasp0 {
#sound-dai-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&mcasp0_pcm1862_pins_default>;
compatible = "ti,da830-mcasp-audio";
/*reg = <0x100000 0x3000>;
reg-names = "mpu";*/
interrupts = <82 83>;
status = "okay";
op-mode = <0>;
tdm-slots = <2>;
serial-dir = <
0 0 0 2
>;
tx-num-evt = <1>;
rx-num-evt = <1>;
};
I put printk statements in the davinci-mcasp.c code in the mcasp_start_rx(), mcasp_stop_rx() and davinci_mcasp_rx_irq_handler() functions. Here's a terminal capture when I run arecord:
The davinci_mcasp_rx_irq_handler() never gets called. I have an anlyzer on the i2s bus. Here is what it is showing while arecord is running:
It looks like the clocks and data are valid but the irq handler never gets called. I think there must be something wrong with my configuration of mcasp0 in the .dts file.
Any help or insight into this problem would be appreciated.