On Mon, Sep 28, 2015 at 5:08 PM, Rick Mann rmann@latencyzero.com wrote:
On Sep 28, 2015, at 16:46 , Caleb Crome caleb@crome.org wrote:
Hmm, the pinmux looks right, except that you have your TX set as an
input. You should have this:
mymcasp1_pins_default: mymcasp1_pins_default { pinctrl-single,pins = < 0x1ac ( PIN_OUTPUT | MUX_MODE0 ) /* (A14)
mcasp0_ahclkx.mcasp0_ahclkx */
0x190 ( PIN_INPUT | MUX_MODE0 ) /* (A13)
mcasp0_aclkx.mcasp0_aclkx */
0x194 ( PIN_INPUT | MUX_MODE0 ) /* (B13)
mcasp0_fsx.mcasp0_fsx */
0x198 ( PIN_INPUT | MUX_MODE0 ) /* (D12)
mcasp0_axr0.mcasp0_axr0 */
0x19c ( PIN_OUTPUT | MUX_MODE2 ) /* (C12)
mcasp0_ahclkr.mcasp0_axr2 */
>;
};
The DTBO for the Audio Cape didn't mark the TX as an output, but I surely can try that.
That's because you didn't tell it to :-) There's checkbox you need to uncheck to make it Tx. It's an uncelar UI. You uncheck Rx to make it a Tx.
That won't get your clocking going unfortunately.
Also, the DTBO I found for the audio cape is for the BeagleBone, not the BeagleBoneBlack, so that threw me for a while.
also, I got things running using the audio cape and the davinci-evm.c device tree entry, not the simple-audio-card. I ended up putting a lot of printk's into the kernel so I could trace out how the whole thing worked.
Your fundamental problem seems to be in getting the McASP's output clock going. Once that's going, then you can worry about getting the codec's PLL to output BCLK and WCLK.
Look through the davinci-evm.c and see what it does that simple-audio-card doesn't. It's something to do with the MCLK for sure.
Once your MCLK is going, you can use i2cdump to look at the codec registers:
sudo i2cdump -f -y 1 0x18
or similar.
-caleb