The problem solves the problem encountered by the RK3288 adjusting the ALC5640 chip.

The direct phenomenon of the RK3288 board plays the audio without sound,

found in the boot information

[    1.785951] ALSA device list:
[    1.785960]   No soundcards found.

At this time, there is no sound to open the mp3 file with Mplayer, and the progress bar of the playback is not moving.

From the information on the Internet, I learned that "RT5640 and RT3224 are fully compatible in hardware and software, and RK uses RT3261 driver when configuring RT3224,"

Configure the 3261 driver according to the method, and you can see that the driver is loaded successfully in the startup information.

[    2.207254] ALSA device list:
[    2.207262]   #0: RK_RT3224

At this time, there is no sound when playing MP3 files with Mpaly in the system, but the playback progress bar is walking.

The power supply of the 5640 on the hardware is normal.

Several clock signals MCLK is 11.2M, BCLK1 is 2.8M, LRCK1 is 44.1k

 The differences between the two generations of RK3288 boards we have made are explained here. No sound is played on the second-generation board. The above content is the phenomenon of the second-generation board. The table below lists the differences between the first and second generation boards.

Version CPU model codec model Phenomenal result clock signal difference Remark
first generation board RK3288 ALC5631 there's noise MCLK 11.2M square wave The rest of the clocks are the same for the two generations of boards
first generation board RK3288w ALC5631 there's noise MCLK 11.2M square wave and the system is the same
second generation board RK3288w ALC5640 no sound MCLK 11.2M triangle wave  

It can be judged that the MCLK is generated by the CPU (rk3288), and the MCLK waveforms generated by the two generations of boards using rk3288w are different

Square Waveform of MCLK

Triangular waveform of MCLK

The amplitude is very different. In addition, I took down the 33Ω resistor from MCLK ALC5640 to RK3288 and found that the triangular wave can measure the frequency of 11.2M.

Now I don't know how to deal with this problem, please help me to solve this problem, thank you. 

The above MCLK problem is solved, and the second-generation board can generate a normal 1.8V square wave. Something needs to be added here.

The second-generation board uses the 5631 chip. The main clock MCLK generated by the CPU is 1.8V because the voltage used to power the CPU to generate the main clock MCLK is 1.8V at the Y12 (APIO4_VDD) pin of RK3288.

The first generation of this voltage used 3.3V, so the MCLK generated is also 3.3V.

The reason why the second-generation board cannot generate MCLK normally is that the first-generation system software is used. When compiling, change the APIO4_VDD in firefly-rk3288-linux.dts from the original 3.3V voltage to 1.8V

After the modification, recompile the system to generate boot.img and burn it into the board. Since then, the input of the 5640codec chip is normal, and the output of the codec is abnormal. Next, the output of the codec is being adjusted.