ADAU1761
Production
The ADAU1761 is a low power, stereo audio codec with integrated digital audio processing that supports stereo 48 kHz record and playback at 14 mW from...
Datasheet
ADAU1761 on Analog.com
ADAU1361
Production
The ADAU1361 is a low power, stereo audio codec that supports stereo 48 kHz record and playback at 14 mW from a 1.8 V analog supply. The stereo audio ADCs...
Datasheet
ADAU1361 on Analog.com
MOONG - Moved from Linux Software Drivers to Audio. Post date updated from Tuesday, February 20, 2024 6:37 AM UTC to Wednesday, February 21, 2024 1:54 AM UTC to reflect the move.
MOONG - Moved from Audio to SigmaDSP Processors & SigmaStudio Dev. Tool. Post date updated from Wednesday, February 21, 2024 1:54 AM UTC to Wednesday, February 21, 2024 2:04 AM UTC to reflect the move.
Hi,
can you please tell us which Linux kernel version you use? Is it mainline or a specific tree?
The "Unable to sync register" error is raised from drivers/base/regmap/regcache.c and it represents a failed I2C transaction.
Can you please probe the I2C bus and check if you have acknowledge after 0x4002 register write?
Also is not clear for me why you state "sound-dai = <&i2s0>; i2s-controller = <&i2s0>;" in device tree but the label for I2S controller is just i2s. i2s: i2s@reg_addr {
- Bogdan
Dear Bogdan,
thank you very much for your response.
I use is 5.4.192 kernel version.
This is the device tree of the SOC that I currently use.
Do I need to check for approval separately?
I am trying to implement this using only the compatible without any additional coding,
using adau1761.c, adau17x1.c, and adau1761-i2c.c included in the Linux kernel.
added my kernel log
[ 10.345900] adau1761 6-0070: probe
[ 10.349542] i2c i2c-6: client [adau1761] registered with bus id 6-0070
[ 10.435316] debugfs: Directory '6228000.i2s' with parent '6228000.i2s-adau-hifi' already present!
[ 10.444439] asoc-simple-card systembus:sound: adau-hifi <-> 6228000.i2s mapping ok
[ 10.452069] asoc-simple-card systembus:sound: ASoC: no DMI vendor name!
[ 10.459695] adau1761 6-0070: Unable to sync registers 0x4002-0x4002. -121
I made a mistake in specifying I2S. It is i2s0:i2s@reg_addr
, which is why I wrote &i2s0
.
thank you.
Hello Moong,
Have you seen this driver we have available? Would this be helpful?
ADAU1361 Sound CODEC Linux Driver [Analog Devices Wiki]
I looked for some other threads. There is this one but it is really old.
There are some answers here but still not a lot.
This user realized that the controls in the DSP are all custom so we cannot produce a driver since we have no idea where a control will reside in parameter RAM until it is compiled. So you have to wrtie that into the driver once your DSP program is complete.
This page has information about interfacing with a microcontroller if you scroll down just a little you will see it.
Tutorials, Guides, Walkthroughs, and other Information [Analog Devices Wiki]
One other little detail,
You sent me a PM but I cannot respond because your account is set to not accept PMs from anybody. So you have to send me a friend request so I will be able to respond.
Dave T
Thank you for your kind response. I have resolved the I2C issue. The problem was solved by changing the I2C Device address from 0x70 to 0x38, after which it started working correctly.
However, I am facing another issue. I extracted the adau1761.bin
file from SigmaStudio and included it in the kernel for upload, but it seems to not perform any actions when executed. Interestingly, when I download the codec using a converter, it works fine, but it does not work properly when loaded by the kernel. Do I need to write a firmware download algorithm in the machine driver myself?
Below is my adau1761.bin
file / SigmaStudio.
The issue was due to the Slave Register address.
I thought addr1 / addr0 were connected, making it 0x70, but it was a bit questionable. However, it worked when I set it to 0x38.