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_config { 9 int (*init)(void); 10 bool map_only_reserved; 11}; 12 13struct sram_partition { 14 void __iomem *base; 15 16 struct gen_pool *pool; 17 struct bin_attribute battr; 18 struct mutex lock; 19 struct list_head list; 20}; 21 22struct sram_dev { 23 const struct sram_config *config; 24 25 struct device *dev; 26 void __iomem *virt_base; 27 bool no_memory_wc; 28 29 struct gen_pool *pool; 30 31 struct sram_partition *partition; 32 u32 partitions; 33}; 34 35struct sram_reserve { 36 struct list_head list; 37 u32 start; 38 u32 size; 39 struct resource res; 40 bool export; 41 bool pool; 42 bool protect_exec; 43 const char *label; 44}; 45 46#ifdef CONFIG_SRAM_EXEC 47int sram_check_protect_exec(struct sram_dev *sram, struct sram_reserve *block, 48 struct sram_partition *part); 49int sram_add_protect_exec(struct sram_partition *part); 50#else 51static inline int sram_check_protect_exec(struct sram_dev *sram, 52 struct sram_reserve *block, 53 struct sram_partition *part) 54{ 55 return -ENODEV; 56} 57 58static inline int sram_add_protect_exec(struct sram_partition *part) 59{ 60 return -ENODEV; 61} 62#endif /* CONFIG_SRAM_EXEC */ 63#endif /* __SRAM_H */ 64