Hi. I've built a Beaglebone Black Cape that has, among other things, a TI Audio CODEC on it (TLV320AIC3104). This is the same CODEC as the BBB Audio Cape (http://elinux.org/CircuitCo:Audio_Cape_RevB), and it's connected in almost the exact same way.
The last few days I've been figuring out the Device Tree overlay needed to get Linux (4.1.4) to recognize it. It's finding the device and instantiating the low-level driver (tlv320aic3x-codec), although I'm not sure at this point if it's actually talking to it (I have verified that low-level i2c commands do work).
But when it comes to the sound card setup, I'm having trouble getting the Device Tree right. I'm hoping someone on this list can offer some insight. The DT is here:
https://github.com/JetForMe/podtique/blob/master/bbb/cape/Podtique1/BB-ENABL...
And this is dmesg when I try to load that (note the name of my overlay is BB-ENABLE-PRU, which is an artifact of the experimentation I've been doing; it'll change to something more appropriate):
[ 65.859275] bone_capemgr bone_capemgr: part_number 'BB-ENABLE-PRU', version 'N/A' [ 65.859318] bone_capemgr bone_capemgr: slot #4: override [ 65.859336] bone_capemgr bone_capemgr: Using override eeprom data at slot 4 [ 65.859355] bone_capemgr bone_capemgr: slot #4: 'Override Board Name,00A0,Override Manuf,BB-ENABLE-PRU' [ 65.859488] bone_capemgr: bone_capemgr bone_capemgr: slot #4: Requesting part number/version based 'BB-ENABLE-PRU-00A0.dtbo [ 65.859506] bone_capemgr: bone_capemgr bone_capemgr: slot #4: Requesting firmware 'BB-ENABLE-PRU-00A0.dtbo' for board-name 'Override Board Name', version '00A0' [ 65.861105] bone_capemgr: bone_capemgr bone_capemgr: slot #4: dtbo 'BB-ENABLE-PRU-00A0.dtbo' loaded; converting to live tree [ 65.875618] gpio-of-helper ocp:gpio_helper: ready [ 65.876327] gpiolib_of: of_get_named_gpiod_flags: parsed 'gpio' property of node '//fixedregulator@1[0]' - status (0) [ 65.876619] core: lz-codec-reg: no parameters [ 65.876713] fixed: reg-fixed-voltage fixedregulator@1: lz-codec-reg supplying 0uV [ 65.883284] pruss_uio 4a300000.pruss: pins are not configured from the driver [ 65.900080] bone_capemgr bone_capemgr: slot #4: dtbo 'BB-ENABLE-PRU-00A0.dtbo' loaded; overlay id #0 [ 65.946254] gpiolib_of: of_get_named_gpiod_flags: parsed 'gpio-reset' property of node '/ocp/i2c@4819c000/tlv320aic3104@0[0]' - status (0) [ 65.946317] core: tlv320aic3x-codec 2-0018: Looking up IOVDD-supply from device tree [ 65.946405] core: tlv320aic3x-codec 2-0018: Looking up DVDD-supply from device tree [ 65.946468] core: tlv320aic3x-codec 2-0018: Looking up AVDD-supply from device tree [ 65.946544] core: tlv320aic3x-codec 2-0018: Looking up DRVDD-supply from device tree [ 65.946606] snd_soc_core: tlv320aic3x-codec 2-0018: codec register 2-0018 [ 65.946640] snd_soc_core: tlv320aic3x-codec 2-0018: ASoC: dai register 2-0018 #1 [ 65.946655] snd_soc_core: tlv320aic3x-codec 2-0018: ASoC: Registered DAI 'tlv320aic3x-hifi' [ 65.946671] snd_soc_core: tlv320aic3x-codec 2-0018: ASoC: Registered codec 'tlv320aic3x-codec.2-0018' [ 65.956491] //sound/simple-audio-card,cpu: could not get #sound-dai-cells for /ocp/mcasp@48038000 [ 65.978759] snd_soc_core: davinci-mcasp 48038000.mcasp: ASoC: dai register 48038000.mcasp #1 [ 65.978795] snd_soc_core: davinci-mcasp 48038000.mcasp: ASoC: Registered DAI '48038000.mcasp' [ 65.978954] snd_soc_core: davinci-mcasp 48038000.mcasp: ASoC: Registered platform '48038000.mcasp' [ 66.012427] asoc-simple-card sound: parse error -22 [ 66.042609] asoc-simple-card: probe of sound failed with error -22
Note the bit about "#sound-dai-cells". I'm not sure what's wrong here, and it seems like it might be something in the distro-provided DTB, not my own.
aplay lists nothing (I think in part because I have yet to put in a proper asound.conf file):
# aplay -l aplay: device_list:268: no soundcards found...
Can someone suggest some diagnostics I can do to see what the state of things is? I'm just not sure what to look for. Thanks!