AnsweredAssumed Answered

No Audio Capture on SSI3, IMX6Q

Question asked by Peter Samuel on Dec 20, 2017
Latest reply on Jan 3, 2018 by Peter Samuel

On a IMX6Q-based platform, we are switching from Android Jelly Bean to Marshmallow. The board has a toshiba mipi chip (tc35874) for HDMI video and audio capture. After porting to Marshmallow, the video works fine but the audio capture does not. It's not a hardware issue as the audio capture was working on Jelly Bean. We also probed the audio data, bit and work clock lines from the Toshiba chip and verified that it's sending data/clock signals. The SSI3 and AUDMUX registers seems to be configured  similar to what it was on Jelly Bean. The audio driver properly registers with the kernel and ALSA enumerates the sound card ( Card 2).


SSI -> codec mapping is also successful:


imx-tc358749 sound-hdmi-input: tc358749-hifi <-> 2030000.ssi mapping ok


However, when attempting to capture audio data using tinycap utility, no audio data is captured :

tinycap /sdcard/Music/hdmi_test.wav -D 2 -d 0 -r 48000 -c 2
Capturing sample: 2 ch, 48000 hz, 16 bit
Captured 0 frames


Below is a snippet of the device tree config


        sound-hdmi-input {
                compatible = "fsl,imx-var-som-tc358749", "fsl,tc358749-audio";
                cpu-dai = <&ssi3>;
                model = "tc358749-audio";
                mux-int-port = <7>;
                mux-ext-port = <4>;
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_audmux_tc358749>;
                status = "okay";


               pinctrl_audmux_tc358749: audmux_tc358749 {
                        fsl,pins = <
                                 MX6QDL_PAD_DISP0_DAT19__AUD4_RXC  0x130b0
                                 MX6QDL_PAD_DISP0_DAT23__AUD4_RXD  0x130b0
                                 MX6QDL_PAD_DISP0_DAT18__AUD4_RXFS 0x130b0


&ssi3 {
       fsl,mode = "i2s-slave";
       status = "okay";


Registers 0x203_0008, 0x203_000C ( SSI Receive Data Register (SSI3_SRX0/SRX1)) read 0, showing that no data is received.


Is there some thing else that needs to be configured for data capture?


The one oddity that is different from Jelly Bean is register 0x203_0018 ( SSI3_SIER). On JB, the value is 0x0040_0000 but on MM, the value is 0x140,3457 which doesn't seem to make sense but it may or may not be relevant to the problem.


Any help diagnosing the problem is appreciated.