# USB Driver Function guide

Praveena
Nadahally

          praveen.nadahally@stericsson.com

Rajaram
Ragupathy

          ragupathy.rajaram@stericsson.com

SakethRam
Bommisetti

           sakethram.bommisetti@stericsson.com

2011
ST-Ericsson
Connectivity

This documentation is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

For more details see the file COPYING in the source distribution of Linux.

## Introduction

This documentation describes ST-Ericsson's adaptation on USB external DMA and communication between Mentor USB IP controller and the USB transreceiver

## Concepts

In ST-Ericsson's USB driver, the open source linux gadget stack and Mentor IP USB 2.0 driver is used. Since the USB Transceiver and Mentor USB IP controller are on different hardware, API's are defined for the communication between them. These API's are available in ux500.c file. The ST-Ericsson's USB driver doesn't have the internal DMA dedicated for USB. So, the external system DMA is used. The integration of external DMA with the mentor chip is available in ux500_dma.c file. Changes have been made in the musb_core.c file where endpoints are configured as per the platform and also integrated DMA specific chnages in the musb_gadget.c file.

## Known Bugs And Assumptions

None.

## Public Functions Provided

The musb driver doesn't export any functions.

## Internal Functions Provided

List of internal functions

### ux500_dma.c

!Idrivers/usb/musb/ux500_dma.c

### ux500.c

!Idrivers/usb/musb/ux500.c