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 8 struct 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 17 struct 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 28 struct 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 39 int sram_check_protect_exec(struct sram_dev *sram, struct sram_reserve *block, 40 struct sram_partition *part); 41 int sram_add_protect_exec(struct sram_partition *part); 42 #else 43 static 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 50 static 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