/** @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.
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