# MI_SetNDmaArbitrament

## 構文

  `#include <twl/mi.h>`
  `void MI_SetNDmaArbitrament( u32 mode, u32 cycle );`

## 引数

mode | 新規DMA の調停方式です。
cycle | サイクル数(新規DMA の調停方法がラウンドロビン方式のときのみ有効)です。

## 返り値

なし。

## 説明

TWL の新規DMA の、DMA調停方式を指定します。

mode には、調停方式を指定します。

`MI_NDMA_ARBITRAMENT_FIX` | 固定方式
`MI_NDMA_ARBITRAMENT_ROUND` | ラウンドロビン(循環)形式

cycle は、mode でラウンドロビン形式を指定した場合に意味を持ちます。 固定方式の場合はどんな値でも意味はありません。

`MI_NDMA_RCYCLE_0` | 0 サイクル
`MI_NDMA_RCYCLE_1` | 1 サイクル
`MI_NDMA_RCYCLE_2` | 2 サイクル
`MI_NDMA_RCYCLE_4` | 4 サイクル
`MI_NDMA_RCYCLE_8` | 8 サイクル
`MI_NDMA_RCYCLE_16` | 16 サイクル
`MI_NDMA_RCYCLE_32` | 32 サイクル
`MI_NDMA_RCYCLE_64` | 64 サイクル
`MI_NDMA_RCYCLE_128` | 128 サイクル
`MI_NDMA_RCYCLE_256` | 256 サイクル
`MI_NDMA_RCYCLE_512` | 512 サイクル
`MI_NDMA_RCYCLE_1024` | 1024 サイクル
`MI_NDMA_RCYCLE_2048` | 2048 サイクル
`MI_NDMA_RCYCLE_4096` | 4096 サイクル
`MI_NDMA_RCYCLE_8192` | 8192 サイクル
`MI_NDMA_RCYCLE_16384` | 16384 サイクル

なお、cycle は、全てのDMAチャネルのDMA起動要求が存在しないタイミングに実際の設定に反映されます。

> (例)
> `//---- 固定方式
> MI_SetNDmaArbitrament(MI_NDMA_ARBITRAMENT_FIX, 0/*dummy*/);
> //---- ラウンドロビン方式
> MI_SetNDmaArbitrament(MI_NDMA_ARBITRAMENT_ROUND, MI_NDMA_RCYCLE_32);`

## 内部動作

DMA_GCNT レジスタにアクセスしています。

## 参照

`MI_GetNDmaArbitrament, MI_GetNDmaArbitramentRoundRobinCycle
`

## 履歴

2007/09/07 初版