On Tue, Mar 17, 2015 at 3:07 PM, Peter Ujfalusi peter.ujfalusi@ti.com wrote:
On 03/13/2015 11:54 AM, Dr. H. Nikolaus Schaller wrote:
For GSM there is some special logic for tri-stating a DAI because the audio channel is wired to the twl4030 *and* a McBSP. This is for either routing the voice directly to the twl or through the CPU (and some filters, answering machine, sound scrambling etc.). This needs tri-state support of the McBSP DX line.
Or write a custom machine driver and get it done ;)
If you would find time (which is beyond what we can realistically expect) to look into the non-DT 3.12 kernel where everything works, it would be here:
http://git.goldelico.com/?p=gta04-kernel.git;a=tree;f=sound/soc/omap;hb=HEAD
Basically we want to rebuild this using DT and use as much standard pieces as possible. So that we only need to upstream what is missing for full gta04 support.
I see. You have had written dummy codecs for the GSM, BT, the FM had an actual working driver.
Hrm. There is one thing which would make sense for these audio devices: Since you do not have control over them in terms of formats, rates and protocol - they use fixed interfaces.
I think it would make sense to have binding for something like: compatible = "fixed-codec" or something like that, implying that it's configuration can not be changed.
fixed-codec sounds good.
In it's bindings you would have the supported properties of the interface, like rate, channels, sample width, protocol on the bus (I2S, DSP, etc) and to indicate if it is bus master or slave.
Instead of adding many properties to DT and parsing them cannot we just hard code them (rate, channels, width) in fixed-codec driver (similar as is done for dummy-codec in soc-utils). I'm not sure but how to use protocol on the bus and master/slave in codec driver(must be used in glue card driver). This fixed-codec driver could also cover e.g. spdif_receiver and spdif_transmitter codecs which are also only dummy.
You could use this 'fixed-codec' to describe the DAIs and use simple-card to connect them with the CPU.
I think this will fill in some gaps and it is actually going to describe the HW you have as well, so it is not Linux specific.
BR,
marek
Is my assumption correct? I would like to get some feedback before wasting my time with implementing something which cannot be pushed mainline. Thanks for all suggestions.
BR,
marek
-- as simple and primitive as possible
Marek Belisko - OPEN-NANDRA Freelance Developer
Ruska Nova Ves 219 | Presov, 08005 Slovak Republic Tel: +421 915 052 184 skype: marekwhite twitter: #opennandra web: http://open-nandra.com
-- Péter
BR, Nikolaus
-- Péter