This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Linux/AM4378: McASP IRQ handler not called

Part Number: AM4378
Other Parts Discussed in Thread: PCM1862,

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.