kernel/rv1106: audio codec VERIFIED — sound card + PCM registers

Ported rv1106_codec.c (acodec) + rk_dsm.c (built, dsm disabled — panel uses
acodec) into 6.18 (6 ASoC API-delta fixes: gpiod, volsw unify, DAIFMT CBC/CBP
rename, remove->void, header swaps). simple-audio-card 'rv1106-acodec'.

Fixed the subagent's gap: cpu DAI SND_SOC_ROCKCHIP_I2S_TDM was left =m (module,
never loaded on bare _b boot) so the card stuck in 'asoc-simple-card: parse
error' deferred probe. Set it + SND_SOC_ROCKCHIP =y.

 VERIFIED on c8a3: /proc/asound/cards shows rv1106-acodec; aplay -l shows
card 0 device 0 ffae0000.i2s-rv1106-hifi; /dev/snd has pcmC0D0p + pcmC0D0c.
Audible speaker test deferred to the bench (with display).

Six drivers verified this run: wifi, TRNG, OTP, GMAC, SARADC, audio.
audio/PORT-PROGRESS.md; DRIVER-PARITY updated; dts snapshot refreshed.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017wB8KB3MMQztRDXCMCkPrf
This commit is contained in:
BFE Engineering
2026-08-25 01:22:35 -06:00
co-authored by Claude Opus 4.8
parent 168b51d47e
commit cdbfd7bb72
3 changed files with 262 additions and 1 deletions
@@ -215,3 +215,33 @@
&gmac {
status = "okay";
};
/* --- audio: i2s0_8ch (DAI) -> acodec (analog codec) -> speaker/headphone,
* tied together by a simple-audio-card. Matches the vendor 86-Panel wiring
* in rv1106-luckfox-pico-86panel-ipc.dtsi. The digital speaker modulator
* (dsm) driver is ported and builds, but is left disabled here: the panel
* uses the acodec path only, and the vendor board itself ships dsm
* disabled. --- */
&acodec {
#sound-dai-cells = <0>;
status = "okay";
};
&dsm {
status = "disabled";
};
/ {
acodec_sound: acodec-sound {
compatible = "simple-audio-card";
simple-audio-card,name = "rv1106-acodec";
simple-audio-card,format = "i2s";
simple-audio-card,mclk-fs = <256>;
simple-audio-card,cpu {
sound-dai = <&i2s0_8ch>;
};
simple-audio-card,codec {
sound-dai = <&acodec>;
};
};
};