Hi, for anyone looking at this post, I found the reply in a different post and I can't find it now, so I'll explain it here (this is the first post that pops out in google)
You need to setup i2s FIRST, make sure there is a clock working, even wait a couple milliseconds, and THEN you configure and initialize the module through L3 or i2c.
Configuration steps:
- Initialize I2S
- Start I2S. Make sure all clocks are working: sck and ws signals. mclk only if you use it (only if you use it!)
- Wait a couple milliseconds
- Send the I2C commands to configure and initialize the UDA1380
Sending the commands without the clocks will be rejected by UDA1380, and you will get values different from the expected when you read the registers.
Good luck.