• David Cross's avatar
    Staging: add West Bridge Astoria Driver · 81eb669b
    David Cross authored
    This is a driver for the Cypress West Bridge companion chip. Its
    function is analogous to the North/South Bridges of PC environments
    applied to embedded devices, in that it expands I/O and storage
    capabilities of an embedded processor. The Astoria version, which this
    driver applies to, functions as a USB, embedded memory and SDIO
    controller. The kernel that this patch was applied to is linux-2.6.35,
    although it was tested using the android kernel 2.6.29 running on the
    Zoom 2 platform. In this system, it was used primarily as a sideloading
    accelerator enabling direct data transfers between a USB host PC and
    embedded memory without system overheads.  Minor modifications were also
    made to the kernel for this patch. These include changes such as
    EXPORTing of fat_get_block in the kernel code. Another function,
    mpage_cleardirty was also added to the memory management code. This
    function is used to clear the dirty pages from a specific inode. This
    allows for direct, file based DMA. None of these changes are believed to
    have any negative impact on the kernel and may provide additional
    benefit for other developers and drivers.
    
    The driver, as submitted, was placed into the drivers/staging/westbridge
    folder as the directory structure it will eventually reside in is not yet
    defined. The driver, as placed in staging is divided into four parts:
    1) gadget - this implements a gadget peripheral controller and includes IOCTLs
    for MTP transfers
    2) block -this implements a generic block device driver to enable access to
    embedded memory
    3) api -this is the Cypress SDK, and includes USB and Storage specific
    functions. In addition, it includes common code for low level routines such as
    message passing and common data transfer routines
    4) hal - this should likely be included in the arch directory as it needs to
    be modified for a given platform. The directory structure in the staging area
    is meant to reflect the eventual location of where this code likely should be.
    It is platform specific. In this case, the HAL included is for the Android
    Zoom 2 platform. Here, West Bridge is connected to the GPMC (general purpose
    memory controller) of the OMAP3. Specific timing needs to be enabled to ensure
    reliable communication.
    Many thanks to Greg KH for conducting initial reviews and providing pointers.
    Please contact david.cross@cypress.com for questions, concerns or feedback.
    Signed-off-by: default avatarDavid Cross <david.cross@cypress.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    81eb669b
Makefile 2.09 KB