| /* SPDX-License-Identifier: GPL-2.0-only */ | |
| /* | |
| * Defines for the SRAM driver | |
| */ | |
| #ifndef __SRAM_H | |
| #define __SRAM_H | |
| struct sram_config { | |
| int (*init)(void); | |
| bool map_only_reserved; | |
| }; | |
| struct sram_partition { | |
| void __iomem *base; | |
| struct gen_pool *pool; | |
| struct bin_attribute battr; | |
| struct mutex lock; | |
| struct list_head list; | |
| }; | |
| struct sram_dev { | |
| const struct sram_config *config; | |
| struct device *dev; | |
| void __iomem *virt_base; | |
| bool no_memory_wc; | |
| struct gen_pool *pool; | |
| struct sram_partition *partition; | |
| u32 partitions; | |
| }; | |
| struct sram_reserve { | |
| struct list_head list; | |
| u32 start; | |
| u32 size; | |
| struct resource res; | |
| bool export; | |
| bool pool; | |
| bool protect_exec; | |
| const char *label; | |
| }; | |
| #ifdef CONFIG_SRAM_EXEC | |
| int sram_check_protect_exec(struct sram_dev *sram, struct sram_reserve *block, | |
| struct sram_partition *part); | |
| int sram_add_protect_exec(struct sram_partition *part); | |
| #else | |
| static inline int sram_check_protect_exec(struct sram_dev *sram, | |
| struct sram_reserve *block, | |
| struct sram_partition *part) | |
| { | |
| return -ENODEV; | |
| } | |
| static inline int sram_add_protect_exec(struct sram_partition *part) | |
| { | |
| return -ENODEV; | |
| } | |
| #endif /* CONFIG_SRAM_EXEC */ | |
| #endif /* __SRAM_H */ |