Home | History | Annotate | Download | only in Library
      1 /** @file
      2 
      3   Abstractions for simple OMAP DMA.
      4   OMAP_DMA4 structure elements are described in the OMAP35xx TRM.
      5 
      6   Copyright (c) 2008 - 2010, Apple Inc. All rights reserved.<BR>
      7 
      8   This program and the accompanying materials
      9   are licensed and made available under the terms and conditions of the BSD License
     10   which accompanies this distribution.  The full text of the license may be found at
     11   http://opensource.org/licenses/bsd-license.php
     12 
     13   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     14   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     15 
     16 **/
     17 
     18 #ifndef __OMAP_DMA_LIB_H__
     19 #define __OMAP_DMA_LIB_H__
     20 
     21 
     22 // Example from DMA chapter of the OMAP35xx spec
     23 typedef struct {
     24   UINT8     DataType;                      // DMA4_CSDPi[1:0]
     25   UINT8     ReadPortAccessType;            // DMA4_CSDPi[8:7]
     26   UINT8     WritePortAccessType;           // DMA4_CSDPi[15:14]
     27   UINT8     SourceEndiansim;               // DMA4_CSDPi[21]
     28   UINT8     DestinationEndianism;          // DMA4_CSDPi[19]
     29   UINT8     WriteMode;                     // DMA4_CSDPi[17:16]
     30   UINT8     SourcePacked;                  // DMA4_CSDPi[6]
     31   UINT8     DestinationPacked;             // DMA4_CSDPi[13]
     32   UINT32    NumberOfElementPerFrame;       // DMA4_CENi
     33   UINT32    NumberOfFramePerTransferBlock; // DMA4_CFNi
     34   UINT32    SourceStartAddress;            // DMA4_CSSAi
     35   UINT32    DestinationStartAddress;       // DMA4_CDSAi
     36   UINT32    SourceElementIndex;            // DMA4_CSEi
     37   UINT32    SourceFrameIndex;              // DMA4_CSFi
     38   UINT32    DestinationElementIndex;       // DMA4_CDEi
     39   UINT32    DestinationFrameIndex;         // DMA4_CDFi
     40   UINT8     ReadPortAccessMode;            // DMA4_CCRi[13:12]
     41   UINT8     WritePortAccessMode;           // DMA4_CCRi[15:14]
     42   UINT8     ReadPriority;                  // DMA4_CCRi[6]
     43   UINT8     WritePriority;                 // DMA4_CCRi[23]
     44   UINT8     ReadRequestNumber;             // DMA4_CCRi[4:0]
     45   UINT8     WriteRequestNumber;            // DMA4_CCRi[20:19]
     46 } OMAP_DMA4;
     47 
     48 
     49 /**
     50   Configure OMAP DMA Channel
     51 
     52   @param  Channel               DMA Channel to configure
     53   @param  Dma4                  Pointer to structure used to initialize DMA registers for the Channel
     54 
     55   @retval EFI_SUCCESS           The range was mapped for the returned NumberOfBytes.
     56   @retval EFI_INVALID_PARAMETER Channel is not valid
     57   @retval EFI_DEVICE_ERROR      The system hardware could not map the requested information.
     58 
     59 **/
     60 EFI_STATUS
     61 EFIAPI
     62 EnableDmaChannel (
     63   IN  UINTN       Channel,
     64   IN  OMAP_DMA4   *Dma4
     65   );
     66 
     67 /**
     68   Turn of DMA channel configured by EnableDma().
     69 
     70   @param  Channel               DMA Channel to configure
     71   @param  SuccesMask            Bits in DMA4_CSR register indicate EFI_SUCCESS
     72   @param  ErrorMask             Bits in DMA4_CSR register indicate EFI_DEVICE_ERROR
     73 
     74   @retval EFI_SUCCESS           DMA hardware disabled
     75   @retval EFI_INVALID_PARAMETER Channel is not valid
     76   @retval EFI_DEVICE_ERROR      The system hardware could not map the requested information.
     77 
     78 **/
     79 EFI_STATUS
     80 EFIAPI
     81 DisableDmaChannel (
     82   IN  UINTN       Channel,
     83   IN  UINT32      SuccessMask,
     84   IN  UINT32      ErrorMask
     85   );
     86 
     87 
     88 
     89 #endif
     90 
     91