1 /* 2 * Copyright (c) 2024 Renesas Electronics Corporation 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 #ifndef ZEPHYR_INCLUDE_DT_BINDINGS_DMA_RENESAS_RZ_DMA_H_ 7 #define ZEPHYR_INCLUDE_DT_BINDINGS_DMA_RENESAS_RZ_DMA_H_ 8 9 /* mode: bit 0 (0: Normal, 1: Block) */ 10 /* source data size: bit 1, 2, 3 (0b000 -> 0b111) */ 11 /* dest data size: bit 4, 5, 6 (0b000 -> 0b111) */ 12 /* source addr mode: bit 7 (0: incremented, 1: fixed) */ 13 /* dest addr mode: bit 8 (0: incremented, 1: fixed) */ 14 15 #define RZ_DMA_MODE_NORMAL (0U) 16 #define RZ_DMA_MODE_BLOCK (1U) 17 18 /* DMA source data size config on bits 1, 2, 3 */ 19 #define RZ_DMA_CFG_SRC_DATA_SIZE(val) ((val & 0x7) << 1) 20 #define RZ_DMA_SRC_1_BYTE RZ_DMA_CFG_SRC_DATA_SIZE(0) 21 #define RZ_DMA_SRC_2_BYTE RZ_DMA_CFG_SRC_DATA_SIZE(1) 22 #define RZ_DMA_SRC_4_BYTE RZ_DMA_CFG_SRC_DATA_SIZE(2) 23 #define RZ_DMA_SRC_8_BYTE RZ_DMA_CFG_SRC_DATA_SIZE(3) 24 #define RZ_DMA_SRC_16_BYTE RZ_DMA_CFG_SRC_DATA_SIZE(4) 25 #define RZ_DMA_SRC_32_BYTE RZ_DMA_CFG_SRC_DATA_SIZE(5) 26 #define RZ_DMA_SRC_64_BYTE RZ_DMA_CFG_SRC_DATA_SIZE(6) 27 #define RZ_DMA_SRC_128_BYTE RZ_DMA_CFG_SRC_DATA_SIZE(7) 28 29 /* DMA destination data size config on bits 4, 5, 6 */ 30 #define RZ_DMA_CFG_DEST_DATA_SIZE(val) ((val & 0x7) << 4) 31 #define RZ_DMA_DEST_1_BYTE RZ_DMA_CFG_DEST_DATA_SIZE(0) 32 #define RZ_DMA_DEST_2_BYTE RZ_DMA_CFG_DEST_DATA_SIZE(1) 33 #define RZ_DMA_DEST_4_BYTE RZ_DMA_CFG_DEST_DATA_SIZE(2) 34 #define RZ_DMA_DEST_8_BYTE RZ_DMA_CFG_DEST_DATA_SIZE(3) 35 #define RZ_DMA_DEST_16_BYTE RZ_DMA_CFG_DEST_DATA_SIZE(4) 36 #define RZ_DMA_DEST_32_BYTE RZ_DMA_CFG_DEST_DATA_SIZE(5) 37 #define RZ_DMA_DEST_64_BYTE RZ_DMA_CFG_DEST_DATA_SIZE(6) 38 #define RZ_DMA_DEST_128_BYTE RZ_DMA_CFG_DEST_DATA_SIZE(7) 39 40 /* DMA source address mode config on bit 7 */ 41 #define RZ_DMA_CFG_SRC_ADDR_MODE(val) ((val & 0x1) << 7) 42 #define RZ_DMA_SRC_INCREMENTED RZ_DMA_CFG_SRC_ADDR_MODE(0) 43 #define RZ_DMA_SRC_FIXED RZ_DMA_CFG_SRC_ADDR_MODE(1) 44 45 /* DMA source address mode config on bit 8 */ 46 #define RZ_DMA_CFG_DEST_ADDR_MODE(val) ((val & 0x1) << 8) 47 #define RZ_DMA_DEST_INCREMENTED RZ_DMA_CFG_DEST_ADDR_MODE(0) 48 #define RZ_DMA_DEST_FIXED RZ_DMA_CFG_DEST_ADDR_MODE(1) 49 50 /* DMA usual combination for peripheral transfer */ 51 #define RZ_DMA_MEM_TO_PERIPH \ 52 (RZ_DMA_MODE_NORMAL | RZ_DMA_SRC_INCREMENTED | RZ_DMA_DEST_FIXED | RZ_DMA_SRC_1_BYTE | \ 53 RZ_DMA_DEST_1_BYTE) 54 #define RZ_DMA_PERIPH_TO_MEM \ 55 (RZ_DMA_MODE_NORMAL | RZ_DMA_SRC_FIXED | RZ_DMA_DEST_INCREMENTED | RZ_DMA_SRC_1_BYTE | \ 56 RZ_DMA_DEST_1_BYTE) 57 58 #endif /* ZEPHYR_INCLUDE_DT_BINDINGS_DMA_RENESAS_RZ_DMA_H_ */ 59