mirror of
https://github.com/Rockbox/rockbox.git
synced 2026-10-09 23:53:28 -04:00
The WM8750 frames its ADC on ADCLRC and its DAC on DACLRC. As the I2S slave both are inputs, and the rk27xx has a single LRCK, which on the YP-CP3 evidently does not reach ADCLRC: with the rk27xx as the master, the recording DMA got exact zeros on most visits to the recording screen and real samples only by chance, sometimes changing partway through a visit. That stays so with the codec PLL no longer glitching the I2S clocks (previous commit); with the codec as the master it does not happen. The codec now drives BCLK and both LRCKs itself, and the rk27xx I2S transmitter and receiver are slaves. The codec's MCLK still comes from the rk27xx codec PLL at 256 fs, so sample rates stay exact. The original firmware runs the codec as master too, but off a fixed 12 MHz in USB mode. RK27XX_I2S_MCLK says the rk27xx makes the codec's MCLK, apart from CODEC_SLAVE, which also makes it the I2S master. The YP-CP3 drops CODEC_SLAVE for RK27XX_I2S_MCLK, and the WM8750 driver sets its master bit as it does for any codec that is not a slave. Tested on a YP-CP3: playback, FM radio, the recording screen's peak meter on every visit, recording from the microphone and from FM. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Change-Id: I0dc93d3b2c45fddf61649702a931d11806e78cbf |
||
|---|---|---|
| .. | ||
| arm | ||
| coldfire | ||
| hosted | ||
| mips | ||