[LEDE-DEV] telephony: adding telephony functionality

Giuseppe Lippolis giu.lippolis at gmail.com
Tue Jan 31 22:58:01 PST 2017

Dear All,
after some investigation on my DWR-512 board I discovered the hw
architecture of the telephone voice channel embedded in the router.
The board embeds one 3g modem plugged on the mini pcie slot and one proslic
device (si3210 - subscriber line interface circuit).
The hw architecture is shown below. 

        T                   V
        |                   |
      +-------+           +-------+
IRQ   |       |  PCM bus  |       | events
  +---|  si   |<=========>|   3g  |---------+
  |   | 3210  |           | modem |         |
  |   +-------+           +-------+         |
  |     ^                     ^             |
  |     |                     |             |
  |     | spidev1.0           |             |
  |     |                     | ttyUSB0/1   |
  |   +-------+               |             |
  |   |       |---------------+             |
  +-->|  uP   |                             |
gpio1 |       |<----------------------------+
      +-------+     ttyUSB1

The si3210 is controlled by the uP through the second channel of the spi bus
(currently I'm using the spidev driver).
The si3210 is able to report several events through one IRQ line connected
to the gpio1.
The audio channel (tx,rx) are transferred using the PCM interface.
The si3210 is slave on the PCM bus, the master is the 3g modem.
The rt5350 have a pcm interface, but it seems not connected (I need to
investigate further with more dedicated test).
The 3g modem is connected through the USB bus, there are several interface
among which 2 cdc-ether and 4 ttyUSB.
The device can be controlled using the AT cmd using the ttyUSB0 and ttyUSB1.
The telephone events are reported only on the ttyUSB1 channel.

Currently I developed some userspace tools to initialize the si3210 and
control its operations (including setup a working call).

My next plan is to develop a driver for the si3210 and then one userspace
daemon to enable the telephone voice (and sms) channel functions.

The si3210 driver shall be platform independent, because it will be plugged
on the top of the spi driver and shall provide system call to the userspace
(it could also be used to implement a Asterisk dahdi driver if someone find
it useful).

Have someone some comments about this plan?
Are any similar project known, where I can look?

More information about the Lede-dev mailing list