I've build a codec cape based around the Analog Devices ADAU1372.
At this point, I can communicate with the device over I2C using i2cset/get and I can see audio data on the wire using my oscilloscope when I manually configure it. i2cdetect happily sees both my (as yet unconfigured) EEPROM at 0x50 and my codec at 0x3d.
Analog Devices helpfully provides a Linux driver which I'm struggling to get built, but I suspect that's merely a matter of me banging my head off of it over enough time as it's sort of a relatively generic Linux task.
What I don't have a clear idea about is how to tell Linux what pins are connected to what and how/when to connect to the driver module. I have dug through some of the device tree stuff, but a lot of it is for the 3.X series Angstrom kernels and doesn't seem to work correctly for the 4.X Debian kernels.
Can someone point me to some up-to-date documentation or resources that I can dig through about this?
Thanks.
(Reposted and deleted original to fix horrific formatting ... sorry)
root@beaglebone:~# uname -a
Linux beaglebone 4.4.54-ti-r93 #1 SMP Fri Mar 17 13:08:22 UTC 2017 armv7l GNU/Linux
Linux driver:
Chip datasheet:
root@beaglebone:~# i2cdetect -y -r 2
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- 3d -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: 50 -- -- -- UU UU UU UU 58 -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root@beaglebone:~#