Re: [PATCH 0/3] clk: rockchip: rk3588: add I2S MCLK output gate clocks
From: Ricardo Pardini
Date: Tue Mar 17 2026 - 20:44:21 EST
On 16/03/2026 10:06, Daniele Briguglio wrote:
On RK3588, the four I2S master clock (MCLK) outputs to external IO
pins are gated by bits in SYS_GRF SOC_CON6 (offset 0x0318). These
are set-to-disable gates with hiword mask semantics.
The TRM documents the reset value of these bits as 0 (gate open),
but in practice the Rockchip firmware (BL31) may set them during
early boot, preventing the MCLK signal from reaching external audio
codecs. The kernel should manage these gates explicitly so that
audio functionality does not depend on bootloader register state.
Hi Daniele,
This series fixes ES8388 audio on a board (Mekotronics R58X-Pro) which I've not "yet" sent to the list due to lack of time but also because analog audio was not working.
Without these patches, the i2s0_8ch_mclkout_to_io gate remains closed
(enable_count=0 in the clk_summary), and the codec receives no master
clock. DAPM reports all widgets as powered on and playback streams run
without errors, but the hardware produces no sound — a rather
frustrating failure mode to debug.
With the series applied and the board DTS updated to reference
I2S0_8CH_MCLKOUT_TO_IO from the codec node:
es8388: audio-codec@10 {
compatible = "everest,es8388", "everest,es8328";
reg = <0x10>;
clocks = <&cru I2S0_8CH_MCLKOUT_TO_IO>;
assigned-clocks = <&cru I2S0_8CH_MCLKOUT>;
assigned-clock-rates = <12288000>;
...
};
audio playback then works correctly, tested on headphone output; thus:
Tested-by: Ricardo Pardini <ricardo@xxxxxxxxxxx>
Thanks a lot!
--
Regards,
Ricardo