The upstream version of meson-g12b-bananapi-cm4-mnt-reform2.dts does not have the section about the spi-gpio (and the lpc11u24) at all.
Without this section, communication with the system controller (and therefore stuff like poweroff on shutdown) does not work.
The upstream version of meson-g12b-bananapi-cm4-mnt-reform2.dts lists the sound chip (wm8960) and the real-time-clock (pcf8523) as connected via i2c2, while the version from the debian repo lists them connected to i2c3.
The correct value is, afaict, i2c3.
Burst mode for the eDP bridge is not enabled upstream.
But I suspect that the wrong value (i2c3 vs i2c2) would make the entire sound chip non-functional?
Sound in general works for me, so I could verify the correct value on my system. How do I get this from the current device tree? I am not really sure how to read what dtc dumps at me..
With the upstream device tree, the sound card is not detected at all, so ther also is no audio output.
I have never really tried to actually read the output of a decompiled binary device tree or of the /proc/device-tree folder. It sounds pretty difficult to do, given that it will not use any alias names… However, looking at my working setup (dtc -I fs /proc/device-tree), I see the devices in question (rtc, audio codec) hooked up to i2c@1c000, which I assume is what uses the i2c3 alias in the dts file.
Regarding the microphone: I too never managed to get audio-in working, but since I am not on the official Debian image, I “just” blamed my ALSA configuration. Furthermore, I figured out that what I really wanted, namely the line-in port, is not wired up to any external connector, so I would have to solder a plug to the mainboard to get it working… So, I just gave up on this and bought a USB sound card.