Hi Takashi,
I am finishing changes to prodigy192.c to make the card functional. I modified eeprom values (e.g. 49MHz crystal), fixed digital output of the card (requires GPIO), added support for MI/ODI/O and added input switch mic/line. So far I have not done any MIDI tests. Before posting corresponding patches I would like to resolve a few remaining issues.
The ak4114 based miodio card is a separately sold add-on and provides SPDIF out (directly connected to SPDIFOUT pin of ice1724), SPDIF IN (TOSLINK to input 0, coax to input 1 of ak4114) + MIDI IN/OUT. SPDIF OUT required no code, SPDIF IN is fully working with my last patches, switching between toslink/coax works in my prodigy192.c. Windows drivers detect miodio automatically, offering corresponding controls when connected. What would be a proper way in the driver to activate the miodio support?
There is one Xilinx FPGA chip onboard, perhaps it is used for MIDI (although ice1724 has a built-in support, right?), perhaps it informs original windows drivers about version and capabilities of the addon card.
Another option would be to test communication with ak4114, whether we can read contents of a particular register. Perhaps a proper place to do so would be in snd_ak4114_create of ak4114.c which could return error when no communication could be established with ak4114 (I do not think this is the case now). What solution would you suggest?
Another question concerns capture input switches, both analog and digital. For now I have used a single switch SNDRV_CTL_ELEM_TYPE_BOOLEAN for each. On the capture tab of alsamixer that is not intuitive (capture off = mice, capture on = line etc.). I would prefer standard "capture input radio buttons" like e.g. in ac97 codec (ich5 + AD1985). I would need two independent groups of two "radio buttons". Please could you point me to some self-explaining code implementing similar feature in another driver which a newbie could understand?
Thanks a lot.
Pavel.