No sound card on Olimex A20 SOM EVB with FreeBSD 12.4

From: Jirka Novak <j.novak_at_netsystem.cz>
Date: Fri, 27 Oct 2023 16:19:00 UTC
Hello,

   We made custom device based on Olimex A20 SOM EVB board. I'm 
migrating our application from FreeBSD 11.2 to FreeBSD 12.4. Our 
application requires sound card and I found that if I install fresh OS, 
I'm missing sound card device (/dev/dsp).
   Sound card supported by the board has source in 
src/sys/arm/allwinner/a10_codec.c and code was not changed for ages and 
is part of 11.2, 12.x and 13.x branch.

   I spend hours by checking why I'm missing sound device and I learn 
that during boot is printed:

FreeBSD 11.2:
pcm0: <Allwinner Audio Codec> mem 0x1c22c00-0x1c22c3f irq 35 on simplebus0
pcm0: Mixer "vol":
pcm0: Mixer "line":
pcm0: Mixer "rec":

FreeBSD 12.4:
pcm0: <Allwinner Audio Codec> mem 0x1c22c00-0x1c22c3f irq 46 on simplebus0
pcm0: cannot find codec clock

   I searched source code of sound card driver and I found:

   if (clk_get_by_ofw_name(dev, 0, "codec", &clk_codec) != 0) {
     device_printf(dev, "cannot find codec clock\n");
     goto fail;
   }

   so it tries to find "codec" clock.
   I expect it should be found/configured based on dtb file and I expect 
that dtb was changed between releases. I hope I'm able to extend dtb for 
the board.
   The issue is that I don't know which codec clock it searches for. I 
analyzed boot -v from 11.2 and 12.4 and I'm not able to identify it. 
There are several "codec" word in boot log, but I don't know how the 
code decide which one is correct/missing just based on word "codec" from 
source code.
   I went thru dts sources, but I'm not able to identify "codec" neither.

   Can I ask for help to identify which clock shown in 11.2 boot log are 
missing in 12.4 boot log?

					Best regards,

						Jirka Novak