This is what I was trying with earlier - it is the same simple_card
overlay from you, but don’t seem to be able to reproduce your results! Could you share your dts/dtbo again to compare?
rock@rockpis:~$ cat simple_card_dummy.dts
// Definitions for DummyDAC
/dts-v1/;
/plugin/;
/ {
compatible = "radxa,rockpis", "rockchip,rk3308";
fragment@0 {
target = <&i2s_8ch_0>;
__overlay__ {
#sound-dai-cells = <0>;
status = "okay";
};
};
fragment@1 {
target-path = "/";
__overlay__ {
i2s0_out: i2s0-out {
#sound-dai-cells = <0>;
compatible = "linux,snd-soc-dummy";
status = "okay";
};
sound_i2s {
simple-audio-card,name = "DummyDAC";
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 = <256>;
status = "okay";
cpu_dai: simple-audio-card,cpu {
sound-dai = <&i2s_8ch_0>;
};
codec_dai: simple-audio-card,codec {
sound-dai = <&i2s0_out>;
};
};
};
};
};
From dmesg
I see the the module is being loaded, but it fails to bind.
[ 1.572621] dummy_codec dummy-codec: Unable to get mclk
[ 1.573575] rk3308-acodec ff560000.acodec: GPIO lookup for consumer hp-ctl
[ 1.573595] rk3308-acodec ff560000.acodec: using device tree for GPIO lookup
[ 1.573612] of_get_named_gpiod_flags: can't parse 'hp-ctl-gpios' property of node '/acodec@ff560000[0]'
[ 1.573626] of_get_named_gpiod_flags: can't parse 'hp-ctl-gpio' property of node '/acodec@ff560000[0]'
[ 1.573640] rk3308-acodec ff560000.acodec: using lookup tables for GPIO lookup
[ 1.573656] rk3308-acodec ff560000.acodec: lookup for GPIO hp-ctl failed
[ 1.573670] rk3308-acodec ff560000.acodec: Don't need hp-ctl gpio
[ 1.574252] rk3308-acodec ff560000.acodec: GPIO lookup for consumer spk-ctl
[ 1.574265] rk3308-acodec ff560000.acodec: using device tree for GPIO lookup
[ 1.574280] of_get_named_gpiod_flags: can't parse 'spk-ctl-gpios' property of node '/acodec@ff560000[0]'
[ 1.574295] of_get_named_gpiod_flags: can't parse 'spk-ctl-gpio' property of node '/acodec@ff560000[0]'
[ 1.574308] rk3308-acodec ff560000.acodec: using lookup tables for GPIO lookup
[ 1.574323] rk3308-acodec ff560000.acodec: lookup for GPIO spk-ctl failed
[ 1.574337] rk3308-acodec ff560000.acodec: Don't need spk-ctl gpio
[ 1.574981] rk3308-acodec ff560000.acodec: GPIO lookup for consumer pa-drv
[ 1.574996] rk3308-acodec ff560000.acodec: using device tree for GPIO lookup
[ 1.575011] of_get_named_gpiod_flags: can't parse 'pa-drv-gpios' property of node '/acodec@ff560000[0]'
[ 1.575025] of_get_named_gpiod_flags: can't parse 'pa-drv-gpio' property of node '/acodec@ff560000[0]'
[ 1.575039] mmc_host mmc2: Bus speed (slot 0) = 50000000Hz (slot req 50000000Hz, actual 50000000HZ div = 0)
[ 1.575960] rk3308-acodec ff560000.acodec: using lookup tables for GPIO lookup
[ 1.575975] rk3308-acodec ff560000.acodec: lookup for GPIO pa-drv failed
[ 1.575988] rk3308-acodec ff560000.acodec: Don't need pa-drv gpio
[ 1.576314] mmc2: new high speed SDIO card at address 0001
[ 1.577080] rk3308-acodec ff560000.acodec: De-pop as much as possible
[ 1.577821] The acodec version is: a
[ 1.636386] rk-multicodecs acodec-sound: rk3308-hifi <-> ff320000.i2s mapping ok
[ 1.638606] input: rockchip,rk3308-acodec Headphones as /devices/platform/acodec-sound/sound/card1/input0
Any ideas?