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>;
};


