We have moved from breadboard to protoboard, and with many orders booked, I daresay that we have moved from experimenting to committed. Our application samples mostly channels of scientific data, but one of audio. Ergo we will have an ongoing interest in the wm5102 and its DSP capabilities. The more processing that we can do on the codec, the better.
We are pursuing Master mode at the moment, where the McAsp on the BBB supplies 24.576 MHz to wm5102 on MCLK1, and then BCLK and WCLK are generated by wm5102. We sample at 8x48k, and are driving AIF1 with dspB format. Also, we have need to send out a calibration signal ~daily, via SPKOUTL.
So far we have simply added our stuff at the end of the arizona-core.c probe, but would like to do it in a more up-streamable way. In looking at the samsung/bells.c driver (thank you again Charles), we realized that anything past basic configurations will be difficult with the device tree alone. The regmap stuff is a nice form of API, easy to deal with.
We had to simply disinvite extcon-arizona from the party though. On both the WM5102-6271-CS137-M-SCH-REV2.03 and our protoboard, JACKDET is an IRQ gone wild. On the Wolfson board, inserting my headphones into the jack shut it up. But on our protoboard, where we left that pin unconnected, we found that the probe of extcon-arizona hard enables JACKDET.
So that's the update, and thanks again for all the help so far.
Clark
On May 22, 2016, at 6:18 AM, Charles Keepax ckeepax@opensource.wolfsonmicro.com wrote:
On Tue, May 17, 2016 at 08:12:32AM -0700, Clark Dunson wrote:
Thanks guys,
Cannot thank you enough. We’ll probably go at it from both angles, schedule is very tight. We’ve worked with both the 3.18 cirrus branch, and 4.4 main line, would be so awesome if we could figure a way to write to the wm5102 regmap from user land. (Busybox i2cset is from the stone ages).
You could use debugfs, if you looking in drivers/base/regmap/regmap-debugfs.c and change the undef to a define for REGMAP_ALLOW_WRITE_DEBUGFS. Then you can write registers by echoing register value pairs to the the registers file in debugfs. Be careful though this is only intended for testing and as the define makes all regmaps writable from user-space depending on your system that may let you do things that damage hardware.
Thanks, Charles