Em Sáb, 2009-08-15 às 10:51 +0100, Mark Brown escreveu:
On Fri, Aug 14, 2009 at 01:17:41PM -0300, Daniel Ribeiro wrote:
This should be able to deal with I2S when pxa is slave, on both pxa2xx and pxa3xx, with set_tdm_slot(5, 5, 4, 16).
Or when pxa is master, on pxa3xx only, with set_tdm_slot(3, 3, 2, 16). This still violates the "DMYSTOP must be clear on network mode" rule, but as all slots are active its not really network mode. And it seems to work for you, so... ;)
This seems really confusing from a usability point of view - the master and slave configurations should look the same. I'd expec the slave mode configuration you quote above to be looking for twice as many clocks as the master mode one. The driver should ideally encapsulate this.
Yes, this is really confusing. The hardware is weird and behaves different when it is driving SFRM.
On both (slave/master) modes it will use the same clk cycles, its just that on master half the clocks are skipped by DMYSTOP.
Maybe Daniel Mack can test a setup with PXA slave of SFRM, and if it works for him, we can drop the pxa3xx-only I2S/master mode for now. It is a mess and I don't see an easy way to solve this. :(