|
| 1 | +/* |
| 2 | + * Copyright (c) 2022 TOKITA Hiroshi <[email protected]> |
| 3 | + * |
| 4 | + * SPDX-License-Identifier: Apache-2.0 |
| 5 | + */ |
| 6 | + |
| 7 | +#ifndef ZEPHYR_INCLUDE_DT_BINDINGS_GD32_DMA_H_ |
| 8 | +#define ZEPHYR_INCLUDE_DT_BINDINGS_GD32_DMA_H_ |
| 9 | + |
| 10 | +/* macros for channel-cfg */ |
| 11 | + |
| 12 | +/* direction defined on bits 6-7 */ |
| 13 | +#define GD32_DMA_CH_CFG_DIRECTION(val) ((val & 0x3) << 6) |
| 14 | +#define GD32_DMA_MEMORY_TO_MEMORY GD32_DMA_CH_CFG_DIRECTION(0) |
| 15 | +#define GD32_DMA_MEMORY_TO_PERIPH GD32_DMA_CH_CFG_DIRECTION(1) |
| 16 | +#define GD32_DMA_PERIPH_TO_MEMORY GD32_DMA_CH_CFG_DIRECTION(2) |
| 17 | + |
| 18 | +/* periph increase defined on bit 9 as true/false */ |
| 19 | +#define GD32_DMA_CH_CFG_PERIPH_ADDR_INC(val) ((val & 0x1) << 9) |
| 20 | +#define GD32_DMA_NO_PERIPH_ADDR_INC GD32_DMA_CH_CFG_PERIPH_ADDR_INC(0) |
| 21 | +#define GD32_DMA_PERIPH_ADDR_INC GD32_DMA_CH_CFG_PERIPH_ADDR_INC(1) |
| 22 | + |
| 23 | +/* memory increase defined on bit 10 as true/false */ |
| 24 | +#define GD32_DMA_CH_CFG_MEMORY_ADDR_INC(val) ((val & 0x1) << 10) |
| 25 | +#define GD32_DMA_NO_MEMORY_ADDR_INC GD32_DMA_CH_CFG_MEMORY_ADDR_INC(0) |
| 26 | +#define GD32_DMA_MEMORY_ADDR_INC GD32_DMA_CH_CFG_MEMORY_ADDR_INC(1) |
| 27 | + |
| 28 | +/* periph data size defined on bits 11-12 */ |
| 29 | +#define GD32_DMA_CH_CFG_PERIPH_WIDTH(val) ((val & 0x3) << 11) |
| 30 | +#define GD32_DMA_PERIPH_WIDTH_8BIT GD32_DMA_CH_CFG_PERIPH_WIDTH(0) |
| 31 | +#define GD32_DMA_PERIPH_WIDTH_16BIT GD32_DMA_CH_CFG_PERIPH_WIDTH(1) |
| 32 | +#define GD32_DMA_PERIPH_WIDTH_32BIT GD32_DMA_CH_CFG_PERIPH_WIDTH(2) |
| 33 | + |
| 34 | +/* memory data size defined on bits 13-14 */ |
| 35 | +#define GD32_DMA_CH_CFG_MEMORY_WIDTH(val) ((val & 0x3) << 13) |
| 36 | +#define GD32_DMA_MEMORY_WIDTH_8BIT GD32_DMA_CH_CFG_PERIPH_WIDTH(0) |
| 37 | +#define GD32_DMA_MEMORY_WIDTH_16BIT GD32_DMA_CH_CFG_PERIPH_WIDTH(1) |
| 38 | +#define GD32_DMA_MEMORY_WIDTH_32BIT GD32_DMA_CH_CFG_PERIPH_WIDTH(2) |
| 39 | + |
| 40 | +/* priority increment offset defined on bit 15 */ |
| 41 | +#define GD32_DMA_CH_CFG_PERIPH_INC_FIXED(val) ((val & 0x1) << 15) |
| 42 | + |
| 43 | +/* priority defined on bits 16-17 as 0, 1, 2, 3 */ |
| 44 | +#define GD32_DMA_CH_CFG_PRIORITY(val) ((val & 0x3) << 16) |
| 45 | +#define GD32_DMA_PRIORITY_LOW GD32_DMA_CH_CFG_PRIORITY(0) |
| 46 | +#define GD32_DMA_PRIORITY_MEDIUM GD32_DMA_CH_CFG_PRIORITY(1) |
| 47 | +#define GD32_DMA_PRIORITY_HIGH GD32_DMA_CH_CFG_PRIORITY(2) |
| 48 | +#define GD32_DMA_PRIORITY_VERY_HIGH GD32_DMA_CH_CFG_PRIORITY(3) |
| 49 | + |
| 50 | +#endif /* ZEPHYR_INCLUDE_DT_BINDINGS_GD32_DMA_H_ */ |
0 commit comments