On Fri, Sep 10, 2010 at 05:43:14PM +0900, Jassi Brar wrote:
It's I2S that's PITA. I am thinking of leaving 24xx-i2s, i.e pre-64xx(shared with 2412), unchanged and letting them die of old age (obsoleted and dropped duly if no stakeholder keeps up).
This seems resonable; there is a reasonable degree of interest in them so probably the community support will keep them going.
I plan to categorize the newer I2S blocks into i2s_v2(s3c2412), i2s_v3(v2 with minor variation in reg field order), i2s_v4 (v3 plus 5.1 channel support) and v5 (v4 plus Secondary Stereo-Channel for h/w mixing support). A new flag 'version' in 'struct s3c_audio_pdata' passed via platform_data can be used to differentiate quirks and features run-time in a single CPU driver.
As I've said in the past the concern I have with all this stuff is that outside of Samsung there's no documentation of the IIS block versions or their relationships, the only references I've seen to versions have been for chips with multiple versions (like the 6410) and there it's just a mention that versions exist and the register documentation is completely cut'n'pasted. It would be good if you could make sure that any platform data for identifying the versions is sufficiently clear to allow someone to go from datasheet to knowing which IP version they have.