On Sat, May 14, 2016 at 03:16:18PM -0700, Clark Dunson wrote:
Hey everybody!
We have been working on integrating the Wolfson 5102 codec with the Beaglebone Black. We’ve made pretty decent progress, got the arizona code in kernel 4.4 registering the wm5102 as ALSA sound card (both player and recorder), have McAsp0 as 24.576 MHz clock source, and have 12 IRQs showing up in /proc/interrupts.
We have been working with sound{compatible = "simple-audio-card”}, but now have hit our first real question. sysclk is hard coded to ‘0’ under simple-audio-card, and we had to hack the kernel and change that to ‘1’ to achieve ALSA sound card registration. We’d all like for this work to proceed without having to hack the kernel, and wondered if one of you might recommend another approach or selection for device tree sound{compatible} that might work out better?
Yes unfortunately this part doesn't map that well onto simple card at the moment. Apart from the clock options you mention, simple card currently only calls dai_set_sysclk, which will tie audio interfaces to a clock domain on wm5102 but you also will need to call codec_set_sysclk to configure the clocking domains themselves. Possibly even set_pll as well if you need to configure the PLL.
There are basically two options here, you could improve simple card to add support needed for wm5102, although I am not entirely clear at what point one would consider a part too complex for simple card. Or write a machine driver for wm5102 on Beaglebone Black, a good example to start from for this would be sound/soc/samsung/bells.c.
Thanks, Charles