Hello,
We are working with a custom board based in a imx8m Nano which uses a TAS2563 connected to SAI3.
The kernel version used is 5.10.9 built using Yocto. This kernel version has a driver for TAS2563 but the board doesn't play any sound. The device tree configuration used is the following based in the configuration shown in e2e.ti.com/.../tas2110-tas2110-tas2562-device-tree-for-imx8m-mini
sound {
compatible = "simple-audio-card";
simple-audio-card,name = "mx8-tas2563";
simple-audio-card,format = "i2s";
simple-audio-card,bitclock-inversion;
simple-audio-card,bitclock-master = <&tas2563cpu>;
simple-audio-card,frame-master = <&tas2563cpu>;
tas2563cpu: simple-audio-card,cpu {
sound-dai = <&sai3>;
dai-tdm-slot-num = <2>;
dai-tdm-slot-width = <16>;
};
simple-audio-card,codec {
sound-dai = <&tas2563>;
};
};
&i2c3 {
clock-frequency = <400000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c3>;
status = "okay";
tas2563: codec@4c {
compatible = "ti,tas2563";
reg = <0x4c>;
#sound-dai-cells = <0>;
interrupt-parent = <&gpio2>;
interrupts = <20>;
shutdown-gpios = <&gpio5 3 GPIO_ACTIVE_HIGH>;
ti,imon-slot-no = <0>;
};
};
pinctrl_sai3: sai3grp {
fsl,pins = <
MX8MN_IOMUXC_SAI3_TXFS_SAI3_TX_SYNC 0xd6
MX8MN_IOMUXC_SAI3_TXC_SAI3_TX_BCLK 0xd6
MX8MN_IOMUXC_SAI3_MCLK_SAI3_MCLK 0xd6
MX8MN_IOMUXC_SAI3_TXD_SAI3_TX_DATA0 0xd6
MX8MN_IOMUXC_SAI3_RXD_SAI3_RX_DATA0 0xd6
>;
};
&sai3 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_sai3>;
assigned-clocks = <&clk IMX8MN_CLK_SAI3>;
assigned-clock-parents = <&clk IMX8MN_AUDIO_PLL1_OUT>;
assigned-clock-rates = <24576000>;
status = "okay";
};
Our board has the following connections:
imx8mn pin | TAS2563 pin
--------------------------------------|--------------------
MX8MN_IOMUXC_SAI3_TXFS_SAI3_TX_SYNC | FSYNC
MX8MN_IOMUXC_SAI3_TXC_SAI3_TX_BCLK | SBCLK1
MX8MN_IOMUXC_SAI3_MCLK_SAI3_MCLK | GPIO
MX8MN_IOMUXC_SAI3_TXD_SAI3_TX_DATA0 | SDIN1
MX8MN_IOMUXC_SAI3_RXD_SAI3_RX_DATA0 | SDOUT1
Are these connections correct?
We don't know if the configuration for sai3 and sound card is correct. Could you tell us if this configuration is correct?. How TAS2563 configuration and speaker tuning is loaded when we use this driver?
After that we have tried to use the Android driver (git.ti.com/.../) adapted to our Linux. The device tree configuration is the following:
sound {
compatible = "simple-audio-card";
simple-audio-card,name = "mx8-tas2563";
simple-audio-card,format = "i2s";
simple-audio-card,bitclock-inversion;
simple-audio-card,bitclock-master = <&tas2563cpu>;
simple-audio-card,frame-master = <&tas2563cpu>;
status = "okay";
simple-audio-card,widgets =
"Speaker", "Speaker";
simple-audio-card,routing =
"Speaker", "OUT";
tas2563cpu: simple-audio-card,cpu {
sound-dai = <&sai3>;
dai-tdm-slot-num = <2>;
dai-tdm-slot-width = <16>;
};
simple-audio-card,codec {
sound-dai = <&tas2563>;
clocks = <&clk IMX8MN_CLK_SAI3>;
};
};
&i2c3 {
clock-frequency = <400000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c3>;
status = "okay";
tas2563: tas2563@4c {
#sound-dai-cells = <0>;
compatible = "ti,tas2563";
reg = <0x4c>;
ti,left-channel = <0x4c>;
ti,channels = <1>; /* channel number */
ti,reset-gpio = <&gpio5 3 GPIO_ACTIVE_HIGH>;
ti,irq-gpio = <&gpio2 20 GPIO_ACTIVE_HIGH>;
ti,asi-format = <0>; /* 0, i2S; 1, DSP; */
ti,left-slot = <0>; /* <left slot number> */
ti,right-slot = <1>; /* <right slot number> */
ti,imon-slot-no = <0>; /* <current sense slot number> */
ti,vmon-slot-no = <2>; /* <current voltage slot number> */
ti,echo-ref = <2>;
ti,bypass-tmax = <1>; /* 0, not bypass; 1, bypass */
ti,i2s-bits = <32>;
status = "ok";
};
};
&sai3 {
#sound-dai-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_sai3>;
assigned-clocks = <&clk IMX8MN_CLK_SAI3>;
assigned-clock-parents = <&clk IMX8MN_AUDIO_PLL1_OUT>;
assigned-clock-rates = <24576000>;
clocks = <&clk IMX8MN_CLK_SAI3_IPG>, <&clk IMX8MN_CLK_DUMMY>,
<&clk IMX8MN_CLK_SAI3_ROOT>, <&clk IMX8MN_CLK_DUMMY>,
<&clk IMX8MN_CLK_DUMMY>,
<&clk IMX8MN_AUDIO_PLL1_OUT>,
<&clk IMX8MN_AUDIO_PLL2_OUT>;
clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3", "pll8k", "pll11k";
status = "okay";
};
pinctrl_sai3: sai3grp {
fsl,pins = <
MX8MN_IOMUXC_SAI3_TXFS_SAI3_TX_SYNC 0xd6
MX8MN_IOMUXC_SAI3_TXC_SAI3_TX_BCLK 0xd6
MX8MN_IOMUXC_SAI3_RXD_SAI3_RX_DATA0 0xd6
MX8MN_IOMUXC_SAI3_TXD_SAI3_TX_DATA0 0xd6
MX8MN_IOMUXC_SAI3_MCLK_SAI3_MCLK 0xd6
>;
};
When we load the Android driver we get the logs shown in the attached file (driver_load.txt):
root@tv100:~# insmod /lib/modules/5.10.9-1.0.0+gf001713/kernel/sound/soc/codecs/tas2563-a/snd-soc-tas2563.ko [ 56.426244] tas2563 2-004c: Driver ID: 1.0.0 [ 56.430691] tas2563 2-004c: tas2563_i2c_probe enter [ 56.475949] tas2563 2-004c: PGID: 16 [ 56.479631] tas2563 2-004c: tas2563_register_codec, enter [ 56.485278] tas2563 2-004c: tas2563_register_misc, leave [ 56.490783] tas2563 2-004c: tiload_driver_init [ 56.495374] tas2563 2-004c: allocated Major Number: 509 [ 56.500968] tas2563 2-004c: Registered TiLoad driver, Major number: 509 [ 56.509430] tas2563 2-004c: tas2563_codec_probe root@tv100:~# [ 56.514206] tas2563 2-004c: tas2563_fw_ready: [ 56.519779] tas2563 2-004c: firmware size: 28943 [ 56.524492] debugfs: Directory '30030000.sai' with parent 'mx8-tas2563' already present! [ 56.532643] tas2563 2-004c: tas2563_set_dai_fmt, format=0x4301 [ 56.538506] tas2563 2-004c: FW timestamp: 1551323635 [ 56.543505] tas2563 2-004c: FW Size = 28943 [ 56.548245] tas2563 2-004c: Checksum = 0xF5AE7FEB [ 56.553424] tas2563 2-004c: PPC Version = 0x8400 [ 56.558244] tas2563 2-004c: FW Version = 0x1010000 [ 56.563416] tas2563 2-004c: Driver Version= 0x0202 [ 56.568228] tas2563 2-004c: Timestamp = 1551323635 [ 56.573387] tas2563 2-004c: DDC Name = F7B_20190228 [ 56.578719] tas2563 2-004c: Description = TI SmartAmp [ 56.583970] tas2563 2-004c: header size: 112, line: 1068 [ 56.589307] tas2563 2-004c: FW i2sMode: 0 [ 56.593350] tas2563 2-004c: fw_parse_data, 882 [ 56.597842] tas2563 2-004c: fw_parse_block_data, 842 [ 56.602828] tas2563 2-004c: fw_parse_block_data, 846 [ 56.607840] tas2563 2-004c: fw_parse_block_data, 871 [ 56.612835] tas2563 2-004c: program data number: 12600 [ 56.618007] tas2563 2-004c: FW i2sMode: 0 [ 56.622056] tas2563 2-004c: fw_parse_data, 882 [ 56.626526] tas2563 2-004c: fw_parse_block_data, 842 [ 56.631521] tas2563 2-004c: fw_parse_block_data, 846 [ 56.636507] tas2563 2-004c: fw_parse_block_data, 871 [ 56.641496] tas2563 2-004c: program data number: 909 [ 56.646483] tas2563 2-004c: program size: 13686, line: 1084 [ 56.652087] tas2563 2-004c: configuration, mnProgram: 0 [ 56.657330] tas2563 2-004c: configuration samplerate: 48000 [ 56.662935] tas2563 2-004c: Fs rate: 32 [ 56.666789] tas2563 2-004c: fw_parse_data, 882 [ 56.671265] tas2563 2-004c: fw_parse_block_data, 842 [ 56.676250] tas2563 2-004c: fw_parse_block_data, 846 [ 56.681260] tas2563 2-004c: fw_parse_block_data, 871 [ 56.686245] tas2563 2-004c: fw_parse_block_data, 842 [ 56.691238] tas2563 2-004c: fw_parse_block_data, 846 [ 56.696238] tas2563 2-004c: fw_parse_block_data, 871 [ 56.701235] tas2563 2-004c: configuration, mnProgram: 0 [ 56.706480] tas2563 2-004c: configuration samplerate: 48000 [ 56.712078] tas2563 2-004c: Fs rate: 32 [ 56.715935] tas2563 2-004c: fw_parse_data, 882 [ 56.720437] tas2563 2-004c: fw_parse_block_data, 842 [ 56.725432] tas2563 2-004c: fw_parse_block_data, 846 [ 56.730427] tas2563 2-004c: fw_parse_block_data, 871 [ 56.735412] tas2563 2-004c: fw_parse_block_data, 842 [ 56.740403] tas2563 2-004c: fw_parse_block_data, 846 [ 56.745383] tas2563 2-004c: fw_parse_block_data, 871 [ 56.750374] tas2563 2-004c: configuration, mnProgram: 0 [ 56.755619] tas2563 2-004c: configuration samplerate: 48000 [ 56.761220] tas2563 2-004c: Fs rate: 32 [ 56.765075] tas2563 2-004c: fw_parse_data, 882 [ 56.769544] tas2563 2-004c: fw_parse_block_data, 842 [ 56.774529] tas2563 2-004c: fw_parse_block_data, 846 [ 56.779528] tas2563 2-004c: fw_parse_block_data, 871 [ 56.784514] tas2563 2-004c: fw_parse_block_data, 842 [ 56.789505] tas2563 2-004c: fw_parse_block_data, 846 [ 56.794488] tas2563 2-004c: fw_parse_block_data, 871 [ 56.799479] tas2563 2-004c: configuration, mnProgram: 0 [ 56.804759] tas2563 2-004c: configuration samplerate: 48000 [ 56.810370] tas2563 2-004c: Fs rate: 32 [ 56.814229] tas2563 2-004c: fw_parse_data, 882 [ 56.818698] tas2563 2-004c: fw_parse_block_data, 842 [ 56.823698] tas2563 2-004c: fw_parse_block_data, 846 [ 56.828708] tas2563 2-004c: fw_parse_block_data, 871 [ 56.833695] tas2563 2-004c: fw_parse_block_data, 842 [ 56.838685] tas2563 2-004c: fw_parse_block_data, 846 [ 56.843684] tas2563 2-004c: fw_parse_block_data, 871 [ 56.848673] tas2563 2-004c: configuration, mnProgram: 0 [ 56.853915] tas2563 2-004c: configuration samplerate: 48000 [ 56.859519] tas2563 2-004c: Fs rate: 32 [ 56.863373] tas2563 2-004c: fw_parse_data, 882 [ 56.867849] tas2563 2-004c: fw_parse_block_data, 842 [ 56.872834] tas2563 2-004c: fw_parse_block_data, 846 [ 56.877829] tas2563 2-004c: fw_parse_block_data, 871 [ 56.882814] tas2563 2-004c: fw_parse_block_data, 842 [ 56.887805] tas2563 2-004c: fw_parse_block_data, 846 [ 56.892803] tas2563 2-004c: fw_parse_block_data, 871 [ 56.897788] tas2563 2-004c: configuration, mnProgram: 0 [ 56.903040] tas2563 2-004c: configuration samplerate: 48000 [ 56.908643] tas2563 2-004c: Fs rate: 32 [ 56.912515] tas2563 2-004c: fw_parse_data, 882 [ 56.916988] tas2563 2-004c: fw_parse_block_data, 842 [ 56.921987] tas2563 2-004c: fw_parse_block_data, 846 [ 56.926972] tas2563 2-004c: fw_parse_block_data, 871 [ 56.932004] tas2563 2-004c: fw_parse_block_data, 842 [ 56.937007] tas2563 2-004c: fw_parse_block_data, 846 [ 56.941996] tas2563 2-004c: fw_parse_block_data, 871 [ 56.946980] tas2563 2-004c: configuration, mnProgram: 1 [ 56.952233] tas2563 2-004c: configuration samplerate: 48000 [ 56.957832] tas2563 2-004c: Fs rate: 0 [ 56.961599] tas2563 2-004c: fw_parse_data, 882 [ 56.966078] tas2563 2-004c: fw_parse_block_data, 842 [ 56.971071] tas2563 2-004c: fw_parse_block_data, 846 [ 56.976060] tas2563 2-004c: fw_parse_block_data, 871 [ 56.981046] tas2563 2-004c: config size: 15145, line: 1091 [ 56.986560] tas2563 2-004c: calib size: 0, line: 1099 [ 56.991648] tas2563 2-004c: find default configuration 0 [ 57.035580] tas2563 2-004c: load program 0 (Tuning Mode) [ 57.040926] tas2563 2-004c: TAS2563 load data: TuningMode Program, Blocks = 1, Block Type = 1 [ 57.049476] tas2563 2-004c: TAS2563 load block: Type = 1, commands = 3117 [ 57.498264] tas2563 2-004c: Block PChkSum: FW = 0x49, Reg = 0x49 [ 57.504304] tas2563 2-004c: Block[0x1] PChkSum match [ 57.509308] tas2563 2-004c: load configuration configuration_Tuning Mode_48 KHz_s1_0 conefficient pre block [ 57.519074] tas2563 2-004c: TAS2563 load data: music, Blocks = 2, Block Type = 4 [ 57.526500] tas2563 2-004c: TAS2563 load block: Type = 4, commands = 8 [ 57.538677] tas2563 2-004c: Block PChkSum: FW = 0xc9, Reg = 0xc9 [ 57.544720] tas2563 2-004c: Block[0x4] PChkSum match [ 57.549723] tas2563 2-004c: load new configuration: configuration_Tuning Mode_48 KHz_s1_0, coeff block data [ 57.559507] tas2563 2-004c: TAS2563 load data: music, Blocks = 2, Block Type = 3 [ 57.566945] tas2563 2-004c: TAS2563 load block: Type = 3, commands = 558 [ 57.653923] tas2563 2-004c: Block PChkSum: FW = 0x70, Reg = 0x70 [ 57.659972] tas2563 2-004c: Block[0x3] PChkSum match [ 57.664972] tas2563 2-004c: tas2563_load_default, 1500, ret = 0 [ 57.670928] tas2563 2-004c: tas2563_set_slot, slot_width:0 [ 57.676437] tas2563 2-004c: tas2563_load_default, 1505, ret = 0 [ 57.682786] tas2563 2-004c: INV format: IBNF [ 57.687996] tas2563 2-004c: tas2563_load_default, 1521, ret = 0 [ 57.693958] tas2563 2-004c: tas2563_set_bitwidth 1379 [ 57.699034] tas2563 2-004c: Not supported params format [ 57.704291] tas2563 2-004c: tas2563_set_slot, slot_width:0 [ 57.709800] tas2563 2-004c: mnCh_size: 0 [ 57.713760] tas2563 2-004c: tas2563_load_default, 1526, ret = 0 [ 57.719703] tas2563 2-004c: tas2563_set_samplerate, unsupported sample rate, 0 [ 57.729394] tas2563 2-004c: tas2563_load_default, 1547, ret = 0 [ 57.735981] tas2563 2-004c: INV format: IBNF [ 57.740977] asoc-simple-card sound: ASoC: no DMI vendor name! [ 57.801320] tas2563 2-004c: tas2563_codec_read, reg: 0x3, value: 0x20 [ 57.847580] tas2563 2-004c: load program 0 (Tuning Mode) [ 57.852923] tas2563 2-004c: TAS2563 load data: TuningMode Program, Blocks = 1, Block Type = 1 [ 57.861549] tas2563 2-004c: TAS2563 load block: Type = 1, commands = 3117 [ 58.305235] tas2563 2-004c: Block PChkSum: FW = 0x49, Reg = 0x49 [ 58.311295] tas2563 2-004c: Block[0x1] PChkSum match [ 58.316366] tas2563 2-004c: load configuration configuration_Tuning Mode_48 KHz_s1_0 conefficient pre block [ 58.326167] tas2563 2-004c: TAS2563 load data: music, Blocks = 2, Block Type = 4 [ 58.333605] tas2563 2-004c: TAS2563 load block: Type = 4, commands = 8 [ 58.343929] tas2563 2-004c: Block PChkSum: FW = 0xc9, Reg = 0xc9 [ 58.349973] tas2563 2-004c: Block[0x4] PChkSum match [ 58.354972] tas2563 2-004c: load new configuration: configuration_Tuning Mode_48 KHz_s1_0, coeff block data [ 58.364735] tas2563 2-004c: TAS2563 load data: music, Blocks = 2, Block Type = 3 [ 58.372155] tas2563 2-004c: TAS2563 load block: Type = 3, commands = 558 [ 58.457490] tas2563 2-004c: Block PChkSum: FW = 0x70, Reg = 0x70 [ 58.463528] tas2563 2-004c: Block[0x3] PChkSum match [ 58.468523] tas2563 2-004c: tas2563_load_default, 1500, ret = 0 [ 58.474473] tas2563 2-004c: tas2563_set_slot, slot_width:0 [ 58.479985] tas2563 2-004c: tas2563_load_default, 1505, ret = 0 [ 58.486226] tas2563 2-004c: INV format: IBNF [ 58.491455] tas2563 2-004c: tas2563_load_default, 1521, ret = 0 [ 58.497397] tas2563 2-004c: tas2563_set_bitwidth 1379 [ 58.502497] tas2563 2-004c: Not supported params format [ 58.507776] tas2563 2-004c: tas2563_set_slot, slot_width:0 [ 58.513303] tas2563 2-004c: mnCh_size: 0 [ 58.517246] tas2563 2-004c: tas2563_load_default, 1526, ret = 0 [ 58.523194] tas2563 2-004c: tas2563_set_samplerate, unsupported sample rate, 0 [ 58.532784] tas2563 2-004c: tas2563_load_default, 1547, ret = 0 [ 58.539404] tas2563 2-004c: tas2563_configuration_put = 0 [ 58.544835] tas2563 2-004c: tas2563_load_configuration: 0 [ 58.550270] tas2563 2-004c: Configuration 0 is already loaded [ 58.556091] tas2563 2-004c: Calibration 0 doesn't exist [ 58.619991] tas2563 2-004c: tas2563_codec_read, reg: 0x3, value: 0x20 [ 58.663580] tas2563 2-004c: load program 0 (Tuning Mode) [ 58.668923] tas2563 2-004c: TAS2563 load data: TuningMode Program, Blocks = 1, Block Type = 1 [ 58.677589] tas2563 2-004c: TAS2563 load block: Type = 1, commands = 3117 [ 59.129435] tas2563 2-004c: Block PChkSum: FW = 0x49, Reg = 0x49 [ 59.135470] tas2563 2-004c: Block[0x1] PChkSum match [ 59.140480] tas2563 2-004c: load configuration configuration_Tuning Mode_48 KHz_s1_0 conefficient pre block [ 59.150264] tas2563 2-004c: TAS2563 load data: music, Blocks = 2, Block Type = 4 [ 59.157711] tas2563 2-004c: TAS2563 load block: Type = 4, commands = 8 [ 59.167896] tas2563 2-004c: Block PChkSum: FW = 0xc9, Reg = 0xc9 [ 59.173946] tas2563 2-004c: Block[0x4] PChkSum match [ 59.178941] tas2563 2-004c: load new configuration: configuration_Tuning Mode_48 KHz_s1_0, coeff block data [ 59.188701] tas2563 2-004c: TAS2563 load data: music, Blocks = 2, Block Type = 3 [ 59.196118] tas2563 2-004c: TAS2563 load block: Type = 3, commands = 558 [ 59.285247] tas2563 2-004c: Block PChkSum: FW = 0x70, Reg = 0x70 [ 59.291322] tas2563 2-004c: Block[0x3] PChkSum match [ 59.296333] tas2563 2-004c: tas2563_load_default, 1500, ret = 0 [ 59.302307] tas2563 2-004c: tas2563_set_slot, slot_width:0 [ 59.307844] tas2563 2-004c: tas2563_load_default, 1505, ret = 0 [ 59.314111] tas2563 2-004c: INV format: IBNF [ 59.319349] tas2563 2-004c: tas2563_load_default, 1521, ret = 0 [ 59.325321] tas2563 2-004c: tas2563_set_bitwidth 1379 [ 59.330426] tas2563 2-004c: Not supported params format [ 59.335677] tas2563 2-004c: tas2563_set_slot, slot_width:0 [ 59.341199] tas2563 2-004c: mnCh_size: 0 [ 59.345146] tas2563 2-004c: tas2563_load_default, 1526, ret = 0 [ 59.351097] tas2563 2-004c: tas2563_set_samplerate, unsupported sample rate, 0 [ 59.360731] tas2563 2-004c: tas2563_load_default, 1547, ret = 0 [ 59.367354] tas2563 2-004c: tas2563_configuration_put = 0 [ 59.372813] tas2563 2-004c: tas2563_load_configuration: 0 [ 59.378244] tas2563 2-004c: Configuration 0 is already loaded [ 59.384092] tas2563 2-004c: Calibration 0 doesn't exist
And the output when we try to play a sound is shown in the attached file (aplay_output.txt):
root@tv100:~# aplay -Dplughw:0,0 /usr/share/sounds/alsa/Front_Center.wav -c1 -fS24_LE -r48000 -v Warning: format is changed to S16[ 152.970621] tas2563 2-004c: tas2563_hw_params, format: 2 [ 152.978257] tas2563 2-004c: tas2563_set_bitwidth 1379 _LE Playing WAVE '/usr/share/sou[ 152.984964] tas2563 2-004c: mnCh_size: 16 [ 152.990536] tas2563 2-004c: blr_clk_ratio: 32 nds/alsa/Front_Center.wav' : Sign[ 152.997438] tas2563 2-004c: tas2563_hw_params, sample rate: 48000 ed 16 bit Little Endian, Rate 480[ 153.005318] tas2563 2-004c: SND_SOC_DAPM_POST_PMU 00 Hz, Mono [ 153.012377] tas2563 2-004c: tas2563_mute [ 153.016871] tas2563 2-004c: unmute: tas2563_mute [ 153.021528] tas2563 2-004c: set power state: 0 [ 153.026060] tas2563 2-004c: tas2563_set_power_state, state: 0, mbPowerup 0 [ 153.033984] tas2563 2-004c: IRQ reg is: 0, 1219 Plug PCM: Route conversion PCM (sformat=S16_LE) Transformation table: 0 <- 0 1 <- 0 Its setup is: stream : PLAYBACK access : RW_INTERLEAVED format : S16_LE subformat : STD channels : 1 rate : 48000 exact rate : 48000 (48000/1) msbits : 16 buffer_size : 16384 period_size : 4096 period_time : 85333 tstamp_mode : NONE tstamp_type : MONOTONIC period_step : 1 avail_min : 4096 period_event : 0 start_threshold : 16384 stop_threshold : 16384 silence_threshold: 0 silence_size : 0 boundary : 4611686018427387904 Slave: Hardware PCM card 0 'mx8-tas2563' device 0 subdevice 0 Its setup is: stream : PLAYBACK access : MMAP_INTERLEAVED format : S16_LE subformat : STD channels : 2 rate : 48000 exact rate : 48000 (48000/1) msbits : 16 buffer_size : 16384 period_size : 4096 period_time : 85333 tstamp_mode : NONE tstamp_type : MONOTONIC period_step : 1 avail_min : 4096 period_event : 0 start_threshold : 16384 [ 153.139931] tas2563 2-004c: irq_work_routine stop_threshold : 16384 silence_threshold: 0 silence_size[ 153.149952] tas2563 2-004c: IRQ status : 0x0, 0x0 : 0 boundary : 4611686018[ 153.157794] tas2563 2-004c: IRQ reg is: irq_work_routine 0, 414 427387904 appl_ptr : 0 [ 153.166782] tas2563 2-004c: IRQ reg is: irq_work_routine, 0, 427 hw_ptr : 0 [ 153.174995] tas2563 2-004c: set ICN to -90dB [ 153.182042] tas2563 2-004c: IRQ reg is: 2, 435 [ 153.186532] tas2563 2-004c: set ICN delay [ 153.192194] tas2563 2-004c: IRQ reg is: 2, 441 [ 153.228232] tas2563 2-004c: IRQ reg is: irq_work_routine 2, 414 [ 153.237536] tas2563 2-004c: IRQ reg is: irq_work_routine, 2, 427 [ 153.243589] tas2563 2-004c: set ICN to -90dB [ 153.249382] tas2563 2-004c: IRQ reg is: 2, 435 [ 153.253864] tas2563 2-004c: set ICN delay [ 153.259407] tas2563 2-004c: IRQ reg is: 2, 441 [ 153.263892] tas2563 2-004c: irq_work_routine, Critical ERROR REG[0x2] = 0x2 [ 153.270969] tas2563 2-004c: device powered up, power down to load program 0 (Tuning Mode) [ 153.279236] tas2563 2-004c: set power state: 2 [ 153.283776] tas2563 2-004c: tas2563_set_power_state, state: 2, mbPowerup 1 [ 153.335590] tas2563 2-004c: load program 0 (Tuning Mode) [ 153.340924] tas2563 2-004c: TAS2563 load data: TuningMode Program, Blocks = 1, Block Type = 1 [ 153.349474] tas2563 2-004c: TAS2563 load block: Type = 1, commands = 3117 [ 153.817415] tas2563 2-004c: Block PChkSum: FW = 0x49, Reg = 0x49 [ 153.823628] tas2563 2-004c: Block[0x1] PChkSum match [ 153.828669] tas2563 2-004c: load configuration configuration_Tuning Mode_48 KHz_s1_0 conefficient pre block [ 153.838508] tas2563 2-004c: TAS2563 load data: music, Blocks = 2, Block Type = 4 [ 153.846015] tas2563 2-004c: TAS2563 load block: Type = 4, commands = 8 [ 153.856711] tas2563 2-004c: Block PChkSum: FW = 0xc9, Reg = 0xc9 [ 153.862879] tas2563 2-004c: Block[0x4] PChkSum match [ 153.867875] tas2563 2-004c: load new configuration: configuration_Tuning Mode_48 KHz_s1_0, coeff block data [ 153.877656] tas2563 2-004c: TAS2563 load data: music, Blocks = 2, Block Type = 3 [ 153.885099] tas2563 2-004c: TAS2563 load block: Type = 3, commands = 558 [ 153.972733] tas2563 2-004c: Block PChkSum: FW = 0x70, Reg = 0x70 [ 153.978793] tas2563 2-004c: Block[0x3] PChkSum match [ 153.983789] tas2563 2-004c: tas2563_load_default, 1500, ret = 0 [ 153.989770] tas2563 2-004c: tas2563_set_slot, slot_width:16 [ 153.996004] tas2563 2-004c: tas2563_load_default, 1505, ret = 0 [ 154.002273] tas2563 2-004c: INV format: IBNF [ 154.007516] tas2563 2-004c: tas2563_load_default, 1521, ret = 0 [ 154.013458] tas2563 2-004c: tas2563_set_bitwidth 1379 [ 154.019160] tas2563 2-004c: mnCh_size: 16 [ 154.023213] tas2563 2-004c: tas2563_load_default, 1526, ret = 0 [ 154.032781] tas2563 2-004c: tas2563_load_default, 1547, ret = 0 [ 154.489682] tas2563 2-004c: tas2563_mute [ 154.493644] tas2563 2-004c: mute: tas2563_mute [ 154.498115] tas2563 2-004c: set power state: 2 [ 154.502646] tas2563 2-004c: tas2563_set_power_state, state: 2, mbPowerup 0 [ 154.510215] tas2563 2-004c: SND_SOC_DAPM_PRE_PMD
We can hear a very small "beep" when we start playing the sound but we can't hear the sound we are playing.
Our questions are:
- Which driver should we use?
- Is SAI3 configuration correct for TAS2563?
Thank you very much.
Regards.