[alsa-devel] [RFC] Alsa mixer over serial port
![](https://secure.gravatar.com/avatar/76f692a58f1b377cdde5cbfe23090f81.jpg?s=120&d=mm&r=g)
Hi,
I'm currently working on ASoC driver for a voice modem codec chip (Conexant CX20442) available on ARM OMAP amsdelta board. The driver should provide some controls for switching audio path from handset to speakerphone and back, changing volume etc.
The only way of controlling some aspects of the codec that I know of is over an acompanying voice modem chip (CX81801) with AT voice commands. The modem can be accessed over a platform serial device.
I can see two ways of getting this working: 1) add a new line discipline that would take control over the serial line and convert it to an alsa mixer, 2) create a low level driver that would replace standard serial stuff completely (like snd-serial-u16550 does, for example).
Please advise which one is better.
Thanks, Janusz
![](https://secure.gravatar.com/avatar/d28dfe03ea754ea1153719f4ced12649.jpg?s=120&d=mm&r=g)
On Thu, Jul 02, 2009 at 03:27:43PM +0200, Janusz Krzysztofik wrote:
I can see two ways of getting this working:
- add a new line discipline that would take control over the serial
line and convert it to an alsa mixer, 2) create a low level driver that would replace standard serial stuff completely (like snd-serial-u16550 does, for example).
Please advise which one is better.
ASoC doesn't really care for itself - it just needs the upper layer interface, how exactly the driver ineteracts with the device is not important to ASoC.
![](https://secure.gravatar.com/avatar/76f692a58f1b377cdde5cbfe23090f81.jpg?s=120&d=mm&r=g)
Thursday 02 July 2009 15:32:21 Mark Brown napisaĆ(a):
On Thu, Jul 02, 2009 at 03:27:43PM +0200, Janusz Krzysztofik wrote:
I can see two ways of getting this working:
- add a new line discipline that would take control over the serial
line and convert it to an alsa mixer, 2) create a low level driver that would replace standard serial stuff completely (like snd-serial-u16550 does, for example).
Please advise which one is better.
ASoC doesn't really care for itself - it just needs the upper layer interface, how exactly the driver ineteracts with the device is not important to ASoC.
Mark, thanks.
As there are no other votes, I choose line discipline. Generic form of required userspace support is already provided with util-linux-ng and it seems much better to use established low level driver code than reinvent a new one ;).
I hope there will be no problem getting a new line discipline registered with include/linux/tty.h, even if it turns out that the code using it is dedicated to a specific device not found on any other board than my Amstrad E3.
Thanks, Janusz
participants (2)
-
Janusz Krzysztofik
-
Mark Brown