summaryrefslogtreecommitdiff
path: root/drivers/staging/westbridge/astoria/include/linux/westbridge/cyasdma.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/staging/westbridge/astoria/include/linux/westbridge/cyasdma.h')
-rw-r--r--drivers/staging/westbridge/astoria/include/linux/westbridge/cyasdma.h375
1 files changed, 0 insertions, 375 deletions
diff --git a/drivers/staging/westbridge/astoria/include/linux/westbridge/cyasdma.h b/drivers/staging/westbridge/astoria/include/linux/westbridge/cyasdma.h
deleted file mode 100644
index 16dc9f96018c..000000000000
--- a/drivers/staging/westbridge/astoria/include/linux/westbridge/cyasdma.h
+++ /dev/null
@@ -1,375 +0,0 @@
-/* Cypress West Bridge API header file (cyasdma.h)
-## ===========================
-## Copyright (C) 2010 Cypress Semiconductor
-##
-## This program is free software; you can redistribute it and/or
-## modify it under the terms of the GNU General Public License
-## as published by the Free Software Foundation; either version 2
-## of the License, or (at your option) any later version.
-##
-## 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., 51 Franklin Street
-## Fifth Floor, Boston, MA 02110-1301, USA.
-## ===========================
-*/
-
-#ifndef _INCLUDED_CYASDMA_H_
-#define _INCLUDED_CYASDMA_H_
-
-#include "cyashal.h"
-#include "cyasdevice.h"
-
-#include "cyas_cplus_start.h"
-
-
-/*@@DMA Overview
- This module manages the DMA operations to/from the West Bridge
- device. The DMA module maintains a DMA queue for each endpoint
- so multiple DMA requests may be queued and they will complete
- at some future time.
-
- The DMA module must be started before it can be used. It is
- started by calling CyAsDmaStart(). This function initializes
- all of the endpoint data structures.
-
- In order to perform DMA on a particular endpoint, the endpoint
- must be enabled by calling CyAsDmaEnableEndPoint(). In addition
- to enabling or disabling the endpoint, this function also sets
- the direction for a given endpoint. Direction is given in USB
- terms. For P port to West Bridge traffic, the endpoint is a
- CyAsDirectionIn endpoint. For West Bridge to P port traffic,
- the endpoint is a CyAsDirectionOut endpoint.
-
- Once DMA is started and an endpoint is enabled, DMA requests
- are issued by calling CyAsDmaQueueRequest(). This function
- queue either a DMA read or DMA write request. The callback
- associated with the request is called once the request has been
- fulfilled.
-
- See Also
- * CyAsDmaStart
- * CyAsDmaEnableEndPoint
- * CyAsDmaDirection
- * CyAsDmaQueueRequest
- */
-
-/************************
- * West Bridge Constants
- ************************/
-#define CY_AS_DMA_MAX_SIZE_HW_SIZE (0xffffffff)
-
-/************************
- * West Bridge Data Structures
- ************************/
-
-/* Summary
- This type specifies the direction of an endpoint to the
- CyAsDmaEnableEndPoint function.
-
- Description
- When an endpoint is enabled, the direction of the endpoint
- can also be set. This type is used to specify the endpoint
- type. Note that the direction is specified in USB terms.
- Therefore, if the DMA is from the P port to West Bridge,
- the direction is IN.
-
- See Also
- * CyAsDmaEnableEndPoint
-*/
-typedef enum cy_as_dma_direction {
- /* Set the endpoint to type IN (P -> West Bridge) */
- cy_as_direction_in = 0,
- /* Set the endpoint to type OUT (West Bridge -> P) */
- cy_as_direction_out = 1,
- /* Only valid for EP 0 */
- cy_as_direction_in_out = 2,
- /* Do no change the endpoint type */
- cy_as_direction_dont_change = 3
-} cy_as_dma_direction;
-
-/*********************************
- * West Bridge Functions
- *********************************/
-
-/* Summary
- Initialize the DMA module and ready the module for receiving data
-
- Description
- This function initializes the DMA module by initializing all of
- the endpoint data structures associated with the device given.
- This function also register a DMA complete callback with the HAL
- DMA code. This callback is called whenever the HAL DMA subsystem
- completes a requested DMA operation.
-
- Returns
- CY_AS_ERROR_SUCCESS - the module initialized successfully
- CY_AS_ERROR_OUT_OF_MEMORY - memory allocation failed during
- initialization
- CY_AS_ERROR_ALREADY_RUNNING - the DMA module was already running
-
- See Also
- * CyAsDmaStop
-*/
-extern cy_as_return_status_t
-cy_as_dma_start(
- /* The device to start */
- cy_as_device *dev_p
- );
-
-/* Summary
- Shutdown the DMA module
-
- Description
- This function shuts down the DMA module for this device by
- canceling any DMA requests associated with each endpoint and
- then freeing the resources associated with each DMA endpoint.
-
- Returns
- CY_AS_ERROR_SUCCESS - the module shutdown successfully
- CY_AS_ERROR_NOT_RUNNING - the DMA module was not running
-
- See Also
- * CyAsDmaStart
- * CyAsDmaCancel
-*/
-extern cy_as_return_status_t
-cy_as_dma_stop(
- /* The device to stop */
- cy_as_device *dev_p
- );
-
-/* Summary
- This function cancels all outstanding DMA requests on a given endpoint
-
- Description
- This function cancels any DMA requests outstanding on a given endpoint
- by disabling the transfer of DMA requests from the queue to the HAL
- layer and then removing any pending DMA requests from the queue. The
- callback associated with any DMA requests that are being removed is
- called with an error code of CY_AS_ERROR_CANCELED.
-
- Notes
- If a request has already been sent to the HAL layer it will be
- completed and not canceled. Only requests that have not been sent to
- the HAL layer will be cancelled.
-
- Returns
- CY_AS_ERROR_SUCCESS - the traffic on the endpoint is canceled
- successfully
-
- See Also
-*/
-extern cy_as_return_status_t
-cy_as_dma_cancel(
- /* The device of interest */
- cy_as_device *dev_p,
- /* The endpoint to cancel */
- cy_as_end_point_number_t ep,
- cy_as_return_status_t err
- );
-
-/* Summary
- This function enables a single endpoint for DMA operations
-
- Description
- In order to enable the queuing of DMA requests on a given
- endpoint, the endpoint must be enabled for DMA. This function
- enables a given endpoint. In addition, this function sets the
- direction of the DMA operation.
-
- Returns
- * CY_AS_ERROR_INVALID_ENDPOINT - invalid endpoint number
- * CY_AS_ERROR_SUCCESS - endpoint was enabled or disabled
- * successfully
-
- See Also
- * CyAsDmaQueueRequest
-*/
-extern cy_as_return_status_t
-cy_as_dma_enable_end_point(
- /* The device of interest */
- cy_as_device *dev_p,
- /* The endpoint to enable or disable */
- cy_as_end_point_number_t ep,
- /* CyTrue to enable, CyFalse to disable */
- cy_bool enable,
- /* The direction of the endpoint */
- cy_as_dma_direction dir
-);
-
-/* Summary
- This function queue a DMA request for a given endpoint
-
- Description
- When an West Bridge API module wishes to do a DMA operation,
- this function is called on the associated endpoint to queue
- a DMA request. When the DMA request has been fulfilled, the
- callback associated with the DMA operation is called.
-
- Notes
- The buffer associated with the DMA request, must remain valid
- until after the callback function is calld.
-
- Returns
- * CY_AS_ERROR_SUCCESS - the DMA operation was queued successfully
- * CY_AS_ERROR_INVALID_ENDPOINT - the endpoint number was invalid
- * CY_AS_ERROR_ENDPOINT_DISABLED - the endpoint was disabled
- * CY_AS_ERROR_OUT_OF_MEMORY - out of memory processing the request
-
- See Also
- * CyAsDmaEnableEndPoint
- * CyAsDmaCancel
-*/
-extern cy_as_return_status_t
-cy_as_dma_queue_request(
- /* The device of interest */
- cy_as_device *dev_p,
- /* The endpoint to receive a new request */
- cy_as_end_point_number_t ep,
- /* The memory buffer for the DMA request -
- * must be valid until after the callback has been called */
- void *mem_p,
- /* The size of the DMA request in bytes */
- uint32_t size,
- /* If true and a DMA read request, return the next packet
- * regardless of size */
- cy_bool packet,
- /* If true, this is a read request,
- * otherwise it is a write request */
- cy_bool readreq,
- /* The callback to call when the DMA request is complete,
- * either successfully or via an error */
- cy_as_dma_callback cb
- );
-
-/* Summary
- This function waits until all DMA requests on a given endpoint
- have been processed and then return
-
- Description
- There are times when a module in the West Bridge API needs to
- wait until the DMA operations have been queued. This function
- sleeps until all DMA requests have been fulfilled and only then
- returns to the caller.
-
- Notes
- I don't think we will need a list of sleeping clients to support
- multiple parallel client modules sleeping on a single endpoint,
- but if we do instead of having a single sleep channel in the
- endpoint, each client will have to supply a sleep channel and we
- will have to maintain a list of sleep channels to wake.
-
- Returns
- * CY_AS_ERROR_SUCCESS - the queue has drained successfully
- * CY_AS_ERROR_INVALID_ENDPOINT - the endpoint given is not valid
- * CY_AS_ERROR_NESTED_SLEEP - CyAsDmaQueueRequest() was requested
- * on an endpoint where CyAsDmaQueueRequest was already called
-*/
-extern cy_as_return_status_t
-cy_as_dma_drain_queue(
- /* The device of interest */
- cy_as_device *dev_p,
- /* The endpoint to drain */
- cy_as_end_point_number_t ep,
- /* If CyTrue, call kickstart to start the DMA process,
- if cy_false, west bridge will start the DMA process */
- cy_bool kickstart
- );
-
-/* Summary
- Sets the maximum amount of data West Bridge can accept in a single
- DMA Operation for the given endpoint
-
- Description
- Depending on the configuration of the West Bridge device endpoint,
- the amount of data that can be accepted varies. This function
- sets the maximum amount of data West Bridge can accept in a single
- DMA operation. The value is stored with the endpoint and passed
- to the HAL layer in the CyAsHalDmaSetupWrite() and
- CyAsHalDmaSetupRead() functoins.
-
- Returns
- * CY_AS_ERROR_SUCCESS - the value was set successfully
- * CY_AS_ERROR_INVALID_SIZE - the size value was not valid
-*/
-extern cy_as_return_status_t
-cy_as_dma_set_max_dma_size(
- /* The device of interest */
- cy_as_device *dev_p,
- /* The endpoint to change */
- cy_as_end_point_number_t ep,
- /* The max size of this endpoint in bytes */
- uint32_t size
- );
-
-/* Summary
- This function starts the DMA process on a given channel.
-
- Description
- When transferring data from the P port processor to West
- Bridge, the DMA operation must be initiated P Port software
- for the first transfer. Subsequent transferrs will be
- handled at the interrupt level.
-
- Returns
- * CY_AS_ERROR_SUCCESS
-*/
-extern cy_as_return_status_t
-cy_as_dma_kick_start(
- /* The device of interest */
- cy_as_device *dev_p,
- /* The endpoint to change */
- cy_as_end_point_number_t ep
- );
-
-/* Summary
- This function receives endpoint data from a request.
-
- Description
- For endpoint 0 and 1 the endpoint data is transferred from
- the West Bridge device to the DMA via a lowlevel
- requests (via the mailbox registers).
-
- Returns
- * CY_AS_ERROR_SUCCESS
-*/
-extern cy_as_return_status_t
-cy_as_dma_received_data(
- /* The device of interest */
- cy_as_device *dev_p,
- /* The endpoint that received data */
- cy_as_end_point_number_t ep,
- /* The data size */
- uint32_t dsize,
- /* The data buffer */
- void *data
- );
-
-/* Summary
- This function is called when the DMA operation on
- an endpoint has been completed.
-
- Returns
- * void
- */
-extern void
-cy_as_dma_completed_callback(
- /* Tag to HAL completing the DMA operation. */
- cy_as_hal_device_tag tag,
- /* Endpoint on which DMA has been completed. */
- cy_as_end_point_number_t ep,
- /* Length of data received. */
- uint32_t length,
- /* Status of DMA operation. */
- cy_as_return_status_t status
- );
-
-#include "cyas_cplus_end.h"
-
-#endif /* _INCLUDED_CYASDMA_H_ */