I am having a similar issue with DMA playback but somewhat different. The saturation problem happens when I playback 2's complement numbers.
I managed to set the DAC in 2's complement in 2 places/registers in the HDL registers.
ADI_REG_CNTRL_2 :common' register for DAC control
and ADI_REG_USR_CNTRL_3(c) for each DACchannel
Still , I have the saturation problem.
I will dig in but was wondering if someone saw that before and was fixed.
Are there other registers somewhere in the Tx chain to define to playback numbers in 2's complement ?
Thanks for the feedback,