[alsa-devel] DSD native format on SoC
Hi
DSD is a continuous stream of bits that flows over two separate channels, left and right, synchronized by a clock, while I2S is a single data wire and an additional wire that states if the incoming sample refers to the left channel or the right channel. There is no way to get DSD data other than a circuit which decode DSD streams coming directly from a conventional source, like, for examples, a SACD.
The Volta dac has an internal decoding circuitry that still employs the I2S standard as a usual 44100Hz/16 bits, but sourcing the shift clock at twice the DSD standard frequency of 2.8224MHz, since it has to split two the16 bits words received on a single wire into the two DSD channels, as the standard wants.
When DSD is enabled, the control signal PCD/DSD must be high, CK3..CK0 must be all low. The I2S interface works as a standard 44100Hz/16 bit and the DSD streaming must be packed into 16 bits lenght words left/right as per LRCK logic. The BCLK frequency supplied from the interface is 5644800Hz in case of DSD and 11289600 for DSD2.
Can you explain how now DSD can be pass to audio card? The idea is to declare it on the audio card and then configure it as a PCM card but I don't know how data are suppose to arrive from alsa userspace.
Michael
participants (1)
-
Michael Nazzareno Trimarchi