1/* SPDX-License-Identifier: GPL-2.0-only */ 2/* 3 * Defines for the SRAM driver 4 */ 5#ifndef __SRAM_H 6#define __SRAM_H 7 8struct sram_partition { 9 void __iomem *base; 10 11 struct gen_pool *pool; 12 struct bin_attribute battr; 13 struct mutex lock; 14 struct list_head list; 15}; 16 17struct sram_dev { 18 struct device *dev; 19 void __iomem *virt_base; 20 21 struct gen_pool *pool; 22 struct clk *clk; 23 24 struct sram_partition *partition; 25 u32 partitions; 26}; 27 28struct sram_reserve { 29 struct list_head list; 30 u32 start; 31 u32 size; 32 bool export; 33 bool pool; 34 bool protect_exec; 35 const char *label; 36}; 37 38#ifdef CONFIG_SRAM_EXEC 39int sram_check_protect_exec(struct sram_dev *sram, struct sram_reserve *block, 40 struct sram_partition *part); 41int sram_add_protect_exec(struct sram_partition *part); 42#else 43static inline int sram_check_protect_exec(struct sram_dev *sram, 44 struct sram_reserve *block, 45 struct sram_partition *part) 46{ 47 return -ENODEV; 48} 49 50static inline int sram_add_protect_exec(struct sram_partition *part) 51{ 52 return -ENODEV; 53} 54#endif /* CONFIG_SRAM_EXEC */ 55#endif /* __SRAM_H */ 56