1*777da538SJorge Ramirez-Ortiz /* SPDX-License-Identifier: BSD-2-Clause */ 2*777da538SJorge Ramirez-Ortiz /* 3*777da538SJorge Ramirez-Ortiz * Copyright (C) Foundries Ltd. 2021 4*777da538SJorge Ramirez-Ortiz * Author: Jorge Ramirez <jorge@foundries.io> 5*777da538SJorge Ramirez-Ortiz */ 6*777da538SJorge Ramirez-Ortiz 7*777da538SJorge Ramirez-Ortiz #ifndef __DRIVERS_ZYNQMP_CSUDMA_H_ 8*777da538SJorge Ramirez-Ortiz #define __DRIVERS_ZYNQMP_CSUDMA_H_ 9*777da538SJorge Ramirez-Ortiz 10*777da538SJorge Ramirez-Ortiz #include <drivers/zynqmp_csu.h> 11*777da538SJorge Ramirez-Ortiz #include <tee_api_types.h> 12*777da538SJorge Ramirez-Ortiz #include <types_ext.h> 13*777da538SJorge Ramirez-Ortiz 14*777da538SJorge Ramirez-Ortiz #define ZYNQMP_CSUDMA_ALIGN 64 15*777da538SJorge Ramirez-Ortiz #define __aligned_csudma __aligned(ZYNQMP_CSUDMA_ALIGN) 16*777da538SJorge Ramirez-Ortiz 17*777da538SJorge Ramirez-Ortiz #define ZYNQMP_CSUDMA_MIN_SIZE 16 18*777da538SJorge Ramirez-Ortiz #define ZYNQMP_CSUDMA_DONE BIT(0) 19*777da538SJorge Ramirez-Ortiz 20*777da538SJorge Ramirez-Ortiz enum zynqmp_csudma_channel { 21*777da538SJorge Ramirez-Ortiz ZYNQMP_CSUDMA_SRC_CHANNEL = 0, 22*777da538SJorge Ramirez-Ortiz ZYNQMP_CSUDMA_DST_CHANNEL 23*777da538SJorge Ramirez-Ortiz }; 24*777da538SJorge Ramirez-Ortiz 25*777da538SJorge Ramirez-Ortiz TEE_Result zynqmp_csudma_transfer(enum zynqmp_csudma_channel channel, 26*777da538SJorge Ramirez-Ortiz void *address, size_t len, uint8_t notify); 27*777da538SJorge Ramirez-Ortiz TEE_Result zynqmp_csudma_sync(enum zynqmp_csudma_channel channel); 28*777da538SJorge Ramirez-Ortiz TEE_Result zynqmp_csudma_prepare(void); 29*777da538SJorge Ramirez-Ortiz void zynqmp_csudma_unprepare(void); 30*777da538SJorge Ramirez-Ortiz 31*777da538SJorge Ramirez-Ortiz #endif 32