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 #include <linux/types.h> 9 10 union pcie_dma_ioctl_param { 11 struct { 12 __u32 idx; 13 __u32 l_widx; 14 __u32 r_widx; 15 __u32 size; 16 __u32 chn; 17 } in; 18 struct { 19 __u32 lwa; 20 __u32 rwa; 21 } out; 22 __u32 lra; 23 __u32 count; 24 __u32 total_buffer_size; 25 __u64 local_addr; 26 __u32 buffer_size; 27 }; 28 29 #define PCIE_BASE 'P' 30 #define PCIE_DMA_START \ 31 _IOW(PCIE_BASE, 0, union pcie_dma_ioctl_param) 32 #define PCIE_DMA_GET_LOCAL_READ_BUFFER_INDEX \ 33 _IOR(PCIE_BASE, 1, union pcie_dma_ioctl_param) 34 #define PCIE_DMA_GET_LOCAL_REMOTE_WRITE_BUFFER_INDEX \ 35 _IOR(PCIE_BASE, 2, union pcie_dma_ioctl_param) 36 #define PCIE_DMA_FREE_LOCAL_READ_BUFFER_INDEX \ 37 _IOW(PCIE_BASE, 3, union pcie_dma_ioctl_param) 38 #define PCIE_DMA_SYNC_BUFFER_FOR_CPU \ 39 _IOW(PCIE_BASE, 4, union pcie_dma_ioctl_param) 40 #define PCIE_DMA_SYNC_BUFFER_TO_DEVICE \ 41 _IOW(PCIE_BASE, 5, union pcie_dma_ioctl_param) 42 #define PCIE_DMA_WAIT_TRANSFER_COMPLETE \ 43 _IO(PCIE_BASE, 6) 44 #define PCIE_DMA_SET_LOOP_COUNT \ 45 _IOW(PCIE_BASE, 7, union pcie_dma_ioctl_param) 46 #define PCIE_DMA_GET_TOTAL_BUFFER_SIZE \ 47 _IOR(PCIE_BASE, 8, union pcie_dma_ioctl_param) 48 #define PCIE_DMA_SET_BUFFER_SIZE \ 49 _IOW(PCIE_BASE, 9, union pcie_dma_ioctl_param) 50 #define PCIE_DMA_READ_FROM_REMOTE \ 51 _IOW(PCIE_BASE, 0xa, union pcie_dma_ioctl_param) 52 #define PCIE_DMA_USER_SET_BUF_ADDR \ 53 _IOW(PCIE_BASE, 0xb, union pcie_dma_ioctl_param) 54 #define PCIE_DMA_GET_BUFFER_SIZE \ 55 _IOR(PCIE_BASE, 0xc, union pcie_dma_ioctl_param) 56 57 #endif 58