# MI_NDmaClear*

## Syntax

  `#include <twl/mi.h>`
  `void MI_NDmaClear( u32 ndmaNo,`
`void* dest, u32 size );`

  `void MI_NDmaClear_SetUp( u32 ndmaNo,`
`void* dest, u32 size );`

  `void MI_NDmaClearAsync( u32 dmaNo,`
`void* dest, u32 size,`
`MINDmaCallback callback, void* arg );`

  `void MI_NDmaClearAsync_SetUp( u32 dmaNo,`
`void* dest, u32 size,`
`MINDmaCallback callback, void* arg );`

  `void MI_NDmaClearEx( u32 ndmaNo,`
`void* dest, u32 size,`
`MINDmaConfig *config );`

  `void MI_NDmaClearEx_SetUp( u32 ndmaNo,`
`void* dest, u32 size,`
`MINDmaConfig *config );`

  `void MI_NDmaClearExAsync( u32 ndmaNo,`
`void* dest, u32 size,`
`MINDmaCallback callback, void* arg,`
  `MINDmaConfig *config``);`

  `void MI_NDmaClearExAsync_SetUp( u32 ndmaNo,`
`void* dest, u32 size,`
`MINDmaCallback callback, void* arg,`
  `MINDmaConfig *config``);`

  `void MI_NDmaClear_Dev( u32 ndmaNo,`
`void* dest, u32 size,`
`MINDmaDevice dev );`

  `void MI_NDmaClear_Dev_SetUp( u32 ndmaNo,`
`void* dest, u32 size,`
`MINDmaDevice dev );`

  `void MI_NDmaClearAsync_Dev( u32 ndmaNo,`
`void* dest, u32 size,`
`MINDmaCallback callback, void* arg,`
`MINDmaDevice dev );`

  `void MI_NDmaClearAsync_Dev_SetUp( u32 ndmaNo,`
`void* dest, u32 size,`
`MINDmaCallback callback, void* arg,`
`MINDmaDevice dev );`

  `void MI_NDmaClearEx_Dev( u32 ndmaNo,`
`void* dest, u32 size,`
`MINDmaConfig *config,`
`MINDmaDevice dev );`

  `void MI_NDmaClearEx_Dev_SetUp( u32 ndmaNo,`
`void* dest, u32 size,`
`MINDmaConfig *config,`
`MINDmaDevice dev );`

  `void MI_NDmaClearExAsync_Dev( u32 ndmaNo,`
`void* dest, u32 size,`
`MINDmaCallback callback, void* arg,`
  `MINDmaConfig *config,`
`MINDmaDevice dev );`

  `void MI_NDmaClearExAsync_Dev_SetUp( u32 ndmaNo,`
`void* dest, u32 size,`
`MINDmaCallback callback, void* arg,`
  `MINDmaConfig *config,`
`MINDmaDevice dev );`

## Arguments

ndmaNo | DMA channel to use (0-3 within the new DMA)
dest | Transfer destination address
size | Transfer size
callback | Callback when DMA ends
arg | Callback argument when DMA ends
config | DMA configuration
dev | Device (if starting a device)

## Return Values

None.

## Description

Uses the new DMA to fill with zeroes (clear).
(The `*_SetUp` functions configure the DMA settings but do not transfer data.)

The `MI_NDmaClear*` functions use the TWL's new DMA to fill data in word (4-byte) units. The transfer destination address (dest) must be 4-byte aligned. The transfer size (size) needs to be a multiple of 4.

The `MI_NDmaClear*` functions are the same as as the corresponding `MI_NDmaFill*` functions except that the data argument is defined as 0. For details, see `MI_NDmaFill*`.

## Internal Operation

Uses the new I/O DMA registers.

## See Also

`MI_NDmaFill*`
`MI_NDmaCopy*`
`MI_DmaClear*`
`MI_CpuClear*`
`MI_NDmaRestart`
New NDMA: Overview

## Revision History

2008/11/19 Added the link for `MINDmaDevice`.
2007/10/31 Added `_SetUp`.
2007/09/06 Initial version.

CONFIDENTIAL