162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci/* TI K3 CPPI5 descriptors pool 362306a36Sopenharmony_ci * 462306a36Sopenharmony_ci * Copyright (C) 2020 Texas Instruments Incorporated - http://www.ti.com 562306a36Sopenharmony_ci */ 662306a36Sopenharmony_ci 762306a36Sopenharmony_ci#ifndef K3_CPPI_DESC_POOL_H_ 862306a36Sopenharmony_ci#define K3_CPPI_DESC_POOL_H_ 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci#include <linux/device.h> 1162306a36Sopenharmony_ci#include <linux/types.h> 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_cistruct k3_cppi_desc_pool; 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_civoid k3_cppi_desc_pool_destroy(struct k3_cppi_desc_pool *pool); 1662306a36Sopenharmony_cistruct k3_cppi_desc_pool * 1762306a36Sopenharmony_cik3_cppi_desc_pool_create_name(struct device *dev, size_t size, 1862306a36Sopenharmony_ci size_t desc_size, 1962306a36Sopenharmony_ci const char *name); 2062306a36Sopenharmony_ci#define k3_cppi_desc_pool_create(dev, size, desc_size) \ 2162306a36Sopenharmony_ci k3_cppi_desc_pool_create_name(dev, size, desc_size, NULL) 2262306a36Sopenharmony_cidma_addr_t 2362306a36Sopenharmony_cik3_cppi_desc_pool_virt2dma(struct k3_cppi_desc_pool *pool, void *addr); 2462306a36Sopenharmony_civoid * 2562306a36Sopenharmony_cik3_cppi_desc_pool_dma2virt(struct k3_cppi_desc_pool *pool, dma_addr_t dma); 2662306a36Sopenharmony_civoid *k3_cppi_desc_pool_alloc(struct k3_cppi_desc_pool *pool); 2762306a36Sopenharmony_civoid k3_cppi_desc_pool_free(struct k3_cppi_desc_pool *pool, void *addr); 2862306a36Sopenharmony_cisize_t k3_cppi_desc_pool_avail(struct k3_cppi_desc_pool *pool); 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_ci#endif /* K3_CPPI_DESC_POOL_H_ */ 31