On Wednesday, January 13, 2016 at 6:49:03 AM UTC+1, Andrea Venturi wrote:
> hello,
> 
> 
> i've tested the experimental github branch for I2S DAI mainline linux driver 
> on:
>  https://github.com/mripard/linux/tree/sunxi/wip/a20-i2s
> 
> 
> 
> my HW setup actually is:
> an Olimex A20-SOM with EValuation Board: 
> https://www.olimex.com/Products/SOM/A20/A20-SOM-EVB/the Audio DAC is a 
> PCM5102x based low cost device: 
> http://www.aliexpress.com/item/PCM5102-DAC-Decoder-I2S-Player-Assembled-Board-32Bit-384K-Beyond-ES9023-PCM1794/32579339671.html
> let me state in advance i've no economic interest at all in these specific 
> vendors or products! :-)
> 
> 
> BTW the PCM510x DAC is a pretty simple device with no cfg at all on the 
> software side (there's no I2C or SPI bus [*]) and it does need only three 
> wires on the I2S side (BITCLK, LRCLK and DATAIN) as the local system clock is 
> "generated" internally with some kind of PLL.
> 
> 
> so, as technically speaking, the "simple sound card" need two entries for the 
> two "legs" (DAI+CODEC) of an audio connection, i had to put in place a pretty 
> simple "stub" driver of the PCM codec (patch 0001); this PCM510x codec driver 
> needs to be enabled in kernel config for module creation. (also the I2S sunxi 
> DAI has to be enabled there)
> 
> 
> then in patch 0004 there are the DTS entries for the A20-OLIMEX-SOM EVB 
> entries enabling the I2S DAI based audio card (the patched DTS enables also 
> the analog audio codec here)
> 
> 
> at this point, as per my tests,we could alreay have a bitstream when doing a 
> playback with aplay but with wrong clocks (slower) on BITCLK and LRCLK pins. 
> 
> 
> AFAICS this is happening for two reasons:
> the 4 clock (PLL2x1 .. PLL2x8) entries in DTSI about i2s0 on the clk 
> compatible = "allwinner,sun4i-a10-mod1-clk" are reversed , look at others clk 
> entries for spdif/ac97 to see they do not match (patch 0002)
> the mod1_clk clock composite driver was not able to set parent rate for a 
> missing flag (patch 0003), thanx to mripard for the hint on IRC. 
> after these four patches applied, the playback is working "flawlessly" (a 
> part of some "scratching frames" in the playback start.. some kind of audio 
> muting would be useful at start).
> 
> 
> a (not so subtle) issue come to mind if both analog audio codec and I2S DAI 
> try to playback two streams with incompatible sample rate (44100 and 48000 
> for example), i suppose the latest starting would reprogram the PLL2 in a way 
> not compatible with the first one. some kind of locking preventing this issue 
> would be needed in the long run.. 
> 
> 
> i post this mail for further consideration and tests from the linux-sunxi 
> community; as i've been told by Maxime Ripard, we are still far from having a 
> mainlining of this driver because it would need a proper submission to 
> relevant linux group of interests and maintainers (Alsa and ARM i suppose), 
> and that's something i'm actually not really ready to properly tackle! :-)
> 
> 
> me, i'm actually considering to test and implement also the "I2S slave mode" 
> where clocks come from "codec" (with a different HW codec, of course and 
> report if something useful comes out..)
> 
> 
> hope this is useful for someone, anyway. that's all, bye
> 
> 
> Andrea
> 
> 
> [*] technically speaking there's a "jumper" on the DAC board (selecting from 
> "I2S" formatted to LEFT justified I2S data) that is "statically" forced to 
> one level (actually i tested I2S only) and i suppose it could be configured 
> with an additional GPIO line between SOC and DAC board as selectable on the 
> fly at startup or maybe runtime too, but i don't see it a compelling or 
> missing feature at all. who carez! :-)

What would be the best way tot test this for me ?

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to