1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2 /* 3 * Copyright (C) 2018 Rockchip Electronics Co., Ltd. 4 */ 5 #ifndef _UAPI__PCIE_DMA_TRX_H__ 6 #define _UAPI__PCIE_DMA_TRX_H__ 7 8 enum transfer_type { 9 PCIE_DMA_DATA_SND, 10 PCIE_DMA_DATA_RCV_ACK, 11 PCIE_DMA_DATA_FREE_ACK, 12 PCIE_DMA_READ_REMOTE, 13 }; 14 15 union pcie_dma_ioctl_param { 16 struct { 17 u32 idx; 18 u32 l_widx; 19 u32 r_widx; 20 u32 size; 21 u32 type; 22 u32 chn; 23 } in; 24 struct { 25 u32 lwa; 26 u32 rwa; 27 } out; 28 u32 lra; 29 u32 count; 30 u32 total_buffer_size; 31 phys_addr_t local_addr; 32 u32 buffer_size; 33 }; 34 35 #define PCIE_BASE 'P' 36 #define PCIE_DMA_START \ 37 _IOW(PCIE_BASE, 0, union pcie_dma_ioctl_param) 38 #define PCIE_DMA_GET_LOCAL_READ_BUFFER_INDEX \ 39 _IOR(PCIE_BASE, 1, union pcie_dma_ioctl_param) 40 #define PCIE_DMA_GET_LOCAL_REMOTE_WRITE_BUFFER_INDEX \ 41 _IOR(PCIE_BASE, 2, union pcie_dma_ioctl_param) 42 #define PCIE_DMA_SET_LOCAL_READ_BUFFER_INDEX \ 43 _IOW(PCIE_BASE, 3, union pcie_dma_ioctl_param) 44 #define PCIE_DMA_SYNC_BUFFER_FOR_CPU \ 45 _IOW(PCIE_BASE, 4, union pcie_dma_ioctl_param) 46 #define PCIE_DMA_SYNC_BUFFER_TO_DEVICE \ 47 _IOW(PCIE_BASE, 5, union pcie_dma_ioctl_param) 48 #define PCIE_DMA_WAIT_TRANSFER_COMPLETE \ 49 _IO(PCIE_BASE, 6) 50 #define PCIE_DMA_SET_LOOP_COUNT \ 51 _IOW(PCIE_BASE, 7, union pcie_dma_ioctl_param) 52 #define PCIE_DMA_GET_TOTAL_BUFFER_SIZE \ 53 _IOW(PCIE_BASE, 8, union pcie_dma_ioctl_param) 54 #define PCIE_DMA_SET_BUFFER_SIZE \ 55 _IOW(PCIE_BASE, 9, union pcie_dma_ioctl_param) 56 #define PCIE_DMA_READ_FROM_REMOTE \ 57 _IOW(PCIE_BASE, 0xa, union pcie_dma_ioctl_param) 58 #define PCIE_DMA_USER_SET_BUF_ADDR \ 59 _IOW(PCIE_BASE, 0xb, union pcie_dma_ioctl_param) 60 61 #endif 62