[alsa-devel] Wolfson 5102 on Beaglebone Black using ALSA

Clark Dunson cdunson at gmail.com
Sat May 28 03:58:39 CEST 2016


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 at 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



More information about the Alsa-devel mailing list