blob: d0f1d639e9a30ca42fbc925dcd088a47d5aa4da2 [file] [log] [blame]
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -07001Introduction
2============
3
4Gadget serial driver is divided into two parts.
51. f_serial.c : Interacts with USB Gadget Layer
62. u_serial.c : Interacts with TTY Layer
7
8Gadget sdio driver adds capability to interact with SDIO Layer in
9case modem device is inter-connected with sdio interface.
10
11S/W Description
12===============
13Gadget SDIO driver is a simple bridge driver between usb serial
14gadget and sdio abstraction layer. It registers with sdio
15abstraction layer with read/write call backs and provides
16USB connect/disconnect call backs usb gadget serial driver.
17
18
19S/W Control Flow:
20=================
21Driver maintains two sdio channels, one for data and one for control.
22Data pipe is dedicated sdio channel where as control is a muxed channel.
23Incase of sdio control pipe, driver registers for control information
24chagnes from modem side. Whenever new information is available, it
25would queue a interrupt endpoint w/ new info. Laptop can also send the
26DTR and RTS information as part of SET Encapsulated command.
27
28Data pipe of sdio channel also has notification mechanism to indicate
29the READ/WRITE availability. When READ is available on SDIO pipe,
30driver would read the data and hands it over to USB In ept and when
31it receives the data from USB driver would queue the same to SDIO
32channel(if write buffers are available).