sram.h (1218B)
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 struct clk *clk; 31 32 struct sram_partition *partition; 33 u32 partitions; 34}; 35 36struct sram_reserve { 37 struct list_head list; 38 u32 start; 39 u32 size; 40 struct resource res; 41 bool export; 42 bool pool; 43 bool protect_exec; 44 const char *label; 45}; 46 47#ifdef CONFIG_SRAM_EXEC 48int sram_check_protect_exec(struct sram_dev *sram, struct sram_reserve *block, 49 struct sram_partition *part); 50int sram_add_protect_exec(struct sram_partition *part); 51#else 52static inline int sram_check_protect_exec(struct sram_dev *sram, 53 struct sram_reserve *block, 54 struct sram_partition *part) 55{ 56 return -ENODEV; 57} 58 59static inline int sram_add_protect_exec(struct sram_partition *part) 60{ 61 return -ENODEV; 62} 63#endif /* CONFIG_SRAM_EXEC */ 64#endif /* __SRAM_H */