1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /* 3 * mach/sram.h - DaVinci simple SRAM allocator 4 * 5 * Copyright (C) 2009 David Brownell 6 */ 7 #ifndef __MACH_SRAM_H 8 #define __MACH_SRAM_H 9 10 /* ARBITRARY: SRAM allocations are multiples of this 2^N size */ 11 #define SRAM_GRANULARITY 512 12 13 /* 14 * SRAM allocations return a CPU virtual address, or NULL on error. 15 * If a DMA address is requested and the SRAM supports DMA, its 16 * mapped address is also returned. 17 * 18 * Errors include SRAM memory not being available, and requesting 19 * DMA mapped SRAM on systems which don't allow that. 20 */ 21 extern void *sram_alloc(size_t len, dma_addr_t *dma); 22 extern void sram_free(void *addr, size_t len); 23 24 /* Get the struct gen_pool * for use in platform data */ 25 extern struct gen_pool *sram_get_gen_pool(void); 26 27 #endif /* __MACH_SRAM_H */