123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- /** @file
- Abstractions for simple OMAP DMA.
- OMAP_DMA4 structure elements are described in the OMAP35xx TRM.
- Copyright (c) 2008 - 2010, Apple Inc. All rights reserved.<BR>
- SPDX-License-Identifier: BSD-2-Clause-Patent
- **/
- #ifndef __OMAP_DMA_LIB_H__
- #define __OMAP_DMA_LIB_H__
- // Example from DMA chapter of the OMAP35xx spec
- typedef struct {
- UINT8 DataType; // DMA4_CSDPi[1:0]
- UINT8 ReadPortAccessType; // DMA4_CSDPi[8:7]
- UINT8 WritePortAccessType; // DMA4_CSDPi[15:14]
- UINT8 SourceEndiansim; // DMA4_CSDPi[21]
- UINT8 DestinationEndianism; // DMA4_CSDPi[19]
- UINT8 WriteMode; // DMA4_CSDPi[17:16]
- UINT8 SourcePacked; // DMA4_CSDPi[6]
- UINT8 DestinationPacked; // DMA4_CSDPi[13]
- UINT32 NumberOfElementPerFrame; // DMA4_CENi
- UINT32 NumberOfFramePerTransferBlock; // DMA4_CFNi
- UINT32 SourceStartAddress; // DMA4_CSSAi
- UINT32 DestinationStartAddress; // DMA4_CDSAi
- UINT32 SourceElementIndex; // DMA4_CSEi
- UINT32 SourceFrameIndex; // DMA4_CSFi
- UINT32 DestinationElementIndex; // DMA4_CDEi
- UINT32 DestinationFrameIndex; // DMA4_CDFi
- UINT8 ReadPortAccessMode; // DMA4_CCRi[13:12]
- UINT8 WritePortAccessMode; // DMA4_CCRi[15:14]
- UINT8 ReadPriority; // DMA4_CCRi[6]
- UINT8 WritePriority; // DMA4_CCRi[23]
- UINT8 ReadRequestNumber; // DMA4_CCRi[4:0]
- UINT8 WriteRequestNumber; // DMA4_CCRi[20:19]
- } OMAP_DMA4;
- /**
- Configure OMAP DMA Channel
- @param Channel DMA Channel to configure
- @param Dma4 Pointer to structure used to initialize DMA registers for the Channel
- @retval EFI_SUCCESS The range was mapped for the returned NumberOfBytes.
- @retval EFI_INVALID_PARAMETER Channel is not valid
- @retval EFI_DEVICE_ERROR The system hardware could not map the requested information.
- **/
- EFI_STATUS
- EFIAPI
- EnableDmaChannel (
- IN UINTN Channel,
- IN OMAP_DMA4 *Dma4
- );
- /**
- Turn of DMA channel configured by EnableDma().
- @param Channel DMA Channel to configure
- @param SuccesMask Bits in DMA4_CSR register indicate EFI_SUCCESS
- @param ErrorMask Bits in DMA4_CSR register indicate EFI_DEVICE_ERROR
- @retval EFI_SUCCESS DMA hardware disabled
- @retval EFI_INVALID_PARAMETER Channel is not valid
- @retval EFI_DEVICE_ERROR The system hardware could not map the requested information.
- **/
- EFI_STATUS
- EFIAPI
- DisableDmaChannel (
- IN UINTN Channel,
- IN UINT32 SuccessMask,
- IN UINT32 ErrorMask
- );
- #endif
|