Other Parts Discussed in Thread: AM623
Tool/software:
Hi Team,
I am working with the TAS2563 codec on the AM623 platform with kernel version 6.6.15.
When I try to play a sample audio file using aplay
, I don't receive any error, but there is no audio output.
According to the register dump, B0P0R0x11=0x24
, indicating that SBCLK:FSYNC=64
and the sample rate is configured to 48 kHz, which aligns with my setup. However, register B0P0R0x24=0x04
, showing a TDM clock error.
Is there anything I could be missing?
while aplay:
$ sudo aplay -D hw:0,0 a1.wav -v
Playing WAVE 'a1.wav' : Signed 32 bit Little Endian, Rate 48000 Hz, Mono
Hardware PCM card 0 'AM623-GTC700C' device 0 subdevice 0
Its setup is:
stream : PLAYBACK
access : RW_INTERLEAVED
format : S32_LE
subformat : STD
channels : 1
rate : 48000
exact rate : 48000 (48000/1)
msbits : 32
buffer_size : 24000
period_size : 6000
period_time : 125000
tstamp_mode : NONE
tstamp_type : MONOTONIC
period_step : 1
avail_min : 6000
period_event : 0
start_threshold : 24000
stop_threshold : 24000
silence_threshold: 0
silence_size : 0
boundary : 6755399441055744000
appl_ptr : 0
hw_ptr : 0
$ amixer
Simple mixer control 'Speaker Digital',0
Capabilities: volume volume-joined
Playback channels: Mono
Capture channels: Mono
Limits: 0 - 255
Mono: 253 [99%] [5.00dB]
Simple mixer control 'Speaker Force Firmware Load',0
Capabilities: pswitch pswitch-joined
Playback channels: Mono
Mono: Playback [on]
Simple mixer control 'Speaker Profile Id',0
Capabilities: volume volume-joined
Playback channels: Mono
Capture channels: Mono
Limits: 0 - 7
Mono: 7 [100%]
$
reg dump while aplay:
$ i2cdump -f -y 3 0x4c
No size specified (using byte-data access)
0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
00: 00 00 00 20 c6 22 09 02 20 10 f1 02 00 04 05 06 ... ?"?? ???.???
10: 07 24 12 76 01 2e 60 0e 0c 00 fc a6 df ff ff 00 ?$?v?.`??.???...
20: 00 11 00 00 04 00 51 80 00 dc 34 c0 7c 8c c0 a7 .?..?.Q?.?4?|???
30: 99 40 81 34 4b 74 01 00 0d 0c be 58 68 08 10 00 ?@?4Kt?.???Xh??.
40: 76 41 d8 c0 10 21 00 4e ac 4d c0 00 00 00 00 00 vA???!.N?M?.....
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
70: 00 00 00 f0 00 0f 00 00 cc 00 00 00 00 10 98 00 ...?.?..?....??.
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
Device tree configuration:
codec_audio: sound {
compatible = "simple-audio-card";
simple-audio-card,name = "AM623-GTC700C";
simple-audio-card,widgets =
"Speaker", "Internal Speaker",
"Microphone", "Internal Mic";
simple-audio-card,routing =
"Internal Speaker", "OUT",
"DMIC", "Internal Mic";
simple-audio-card,format = "i2s";
simple-audio-card,bitclock-master = <&sound_master>;
simple-audio-card,frame-master = <&sound_master>;
simple-audio-card,mclk-fs = <256>;
simple-audio-card,bitclock-inversion;
sound_master: simple-audio-card,cpu {
sound-dai = <&mcasp2>;
dai-tdm-slot-num = <2>;
dai-tdm-slot-width = <32>;
};
simple-audio-card,codec {
sound-dai = <&tas2563>;
};
};
tas2563: tas2563@4c{
status = "okay";
reg = <0x4c>;
compatible = "ti,tas2563";
#sound-dai-cells = <0>;
ti,imon-slot-no = <0>;
ti,vmon-slot-no = <0>;
ti,asi-format = <0>;
ti,left-slot = <0>;
ti,right-slot = <1>;
};
&mcasp2 {
status = "okay";
#sound-dai-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&main_mcasp2_pins_default>;
op-mode = <0>; /* MCASP_IIS_MODE */
tdm-slots = <2>;
assigned-clock-rates = <12288000>;
serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
2 2 1 0
>;
tx-num-evt = <32>;
rx-num-evt = <32>;
};