blob: d0f1d639e9a30ca42fbc925dcd088a47d5aa4da2 [file] [log] [blame]
Introduction
============
Gadget serial driver is divided into two parts.
1. f_serial.c : Interacts with USB Gadget Layer
2. u_serial.c : Interacts with TTY Layer
Gadget sdio driver adds capability to interact with SDIO Layer in
case modem device is inter-connected with sdio interface.
S/W Description
===============
Gadget SDIO driver is a simple bridge driver between usb serial
gadget and sdio abstraction layer. It registers with sdio
abstraction layer with read/write call backs and provides
USB connect/disconnect call backs usb gadget serial driver.
S/W Control Flow:
=================
Driver maintains two sdio channels, one for data and one for control.
Data pipe is dedicated sdio channel where as control is a muxed channel.
Incase of sdio control pipe, driver registers for control information
chagnes from modem side. Whenever new information is available, it
would queue a interrupt endpoint w/ new info. Laptop can also send the
DTR and RTS information as part of SET Encapsulated command.
Data pipe of sdio channel also has notification mechanism to indicate
the READ/WRITE availability. When READ is available on SDIO pipe,
driver would read the data and hands it over to USB In ept and when
it receives the data from USB driver would queue the same to SDIO
channel(if write buffers are available).