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/AM3358: McASP internal clock issue

Part Number: AM3358


Tool/software: Linux

Hello,

in our design we want to connect an I2C/I2S audio codec to the am335x.
I did some tests with the beaglebone black.
I was able to enable the alsa device, but if I play something using aplay, the process hangs and nothing is played.
When I start playing, the clock signals (BCLK, WCLK) are on low level instead of showing a signal.
What could be the reason for the problem?

System used:

  • Linux 5.0.7
  • Beaglebone Black
  • ssm2518 codec

Devicetree:

&am33xx_pinmux {

[...]

i2s_pins: i2s_pins {
		pinctrl-single,pins = <
			AM33XX_IOPAD(0x990, PIN_OUTPUT | MUX_MODE0) /* (A13) mcasp0_aclkx.mcasp0_aclkx - BCLK */
			AM33XX_IOPAD(0x994, PIN_OUTPUT | MUX_MODE0) /* (B13) mcasp0_fsx.mcasp0_fsx - WCLK */
			AM33XX_IOPAD(0x998, PIN_OUTPUT | MUX_MODE0) /* (D12) mcasp0_axr0.mcasp0_axr0 - Dout */
		>;
	};

[...]

};


/ {

[...]

	sound {
		compatible = "simple-audio-card";
		simple-audio-card,name = "fpc05-Audio";
		simple-audio-card,widgets = "Speaker", "Speaker";
		simple-audio-card,routing =
			"Speaker", "OUTL",
			"Speaker", "OUTR";
		simple-audio-card,format = "i2s";
		simple-audio-card,bitclock-master = <&dailink0_master>;
		simple-audio-card,frame-master = <&dailink0_master>;

		dailink0_master: simple-audio-card,cpu {
			sound-dai = <&mcasp0>;
			clocks = <&mcasp0_fck>; // from am33xx-clocks.dtsi

		};

		simple-audio-card,codec {
			sound-dai = <&ssm2518>;
			system-clock-frequency = <24576000>;
		};

  }; // sound

};

&i2c0 {

[...]

	ssm2518: ssm2518@34 {
		#sound-dai-cells = <0>;
		compatible = "adi,ssm2518";
		reg = <0x34>;
		status = "okay";
	}; 

};

&mcasp0 {
	#sound-dai-cells = <0>;
	pinctrl-names = "default";
	pinctrl-0 = <&i2s_pins>;

	status = "okay";

	fck_parent = <&mcasp0_fck>;

	op-mode = <0>;	/* MCASP_IIS_MODE */
	tdm-slots = <2>;
	serial-dir = <	/* 0: INACTIVE, 1: TX, 2: RX */
			1 0 0 0
		>;
	tx-num-evt = <32>;
	rx-num-evt = <32>;
};

  • Hi Sandro,

    Sandro Stiller said:
    Linux 5.0.7

    In this forum we support only Arago Linux distribution, which comes with TI PSDK Linux. The latest version of the PSDK is 5.03, it comes with kernel v4.14.79.

    For other linux distributions, you can contact BeagleBone Black Support Community:

    Sandro Stiller said:
    When I start playing, the clock signals (BCLK, WCLK) are on low level instead of showing a signal.
    What could be the reason for the problem?

    You can get some general guidance and debug hints from below pointers:

    Regards,
    Pavel