So I did the following config: SDOx connected with SDIx by wires, DT definition below:
/dts-v1/;
/plugin/;
/ {
compatible = "radxa,rockpis", "rockchip,rk3308";
fragment@0 {
target = <&i2s_8ch_0>;
__overlay__ {
#sound-dai-cells = <0>;
//rockchip,clk-trm = <1>;
status = "okay";
};
};
fragment@1 {
target = <&i2s_8ch_2>;
__overlay__ {
#sound-dai-cells = <0>;
status = "disabled";
};
};
fragment@2 {
target-path = "/";
__overlay__ {
codec: dummy-out {
#sound-dai-cells = <0>;
compatible = "rockchip,dummy-codec";
status = "okay";
};
sound_i2s {
simple-audio-card,name = "multi-ch-card";
compatible = "simple-audio-card";
simple-audio-card,format = "i2s";
simple-audio-card,bitclock-master = <&cpu_dai>;
simple-audio-card,frame-master = <&cpu_dai>;
simple-audio-card,mclk-fs = <128>;
status = "okay";
cpu_dai: simple-audio-card,cpu {
sound-dai = <&i2s_8ch_0>;
};
codec_dai: simple-audio-card,codec {
sound-dai = <&codec>;
};
};
};
};
};
With simple-audio-card,format = "i2s"
it’s expected that only 2Ch output will be in place:
# aplay -l
card 1: rockchiprk3308a [rockchip,rk3308-acodec], device 0: dailink-multicodecs rk3308-hifi-0 [dailink-multicodecs rk3308-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
# tinypcminfo -D 1
Info for card 1, device 0:
PCM out:
Access: 0x000009
Format[0]: 0x000444
Format[1]: 00000000
Format Name: S16_LE, S24_LE, S32_LE
Subformat: 0x000001
Rate: min=8000Hz max=192000Hz
Channels: min=2 max=2
Sample bits: min=16 max=32
Period size: min=32 max=65536
Period count: min=2 max=4096
PCM in:
Access: 0x000009
Format[0]: 0x000444
Format[1]: 00000000
Format Name: S16_LE, S24_LE, S32_LE
Subformat: 0x000001
Rate: min=8000Hz max=192000Hz
Channels: min=2 max=8
Sample bits: min=16 max=32
Period size: min=8 max=65536
Period count: min=2 max=16384
I don’t quite understand yet how to get single device 8 channel output in i2s mode?
With the configuration above I get the following spectro:
But it looks like there’s no input signal (signal level bars are also empty while recording in terminal)