blob: c181ce4c8fca8221e1a1153d411491426c180b75 [file] [log] [blame]
Dave Gerlachcdd17372017-01-12 14:52:18 -06001/*
2 * Defines for the SRAM driver
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 */
8#ifndef __SRAM_H
9#define __SRAM_H
10
11struct sram_partition {
12 void __iomem *base;
13
14 struct gen_pool *pool;
15 struct bin_attribute battr;
16 struct mutex lock;
17 struct list_head list;
18};
19
20struct sram_dev {
21 struct device *dev;
22 void __iomem *virt_base;
23
24 struct gen_pool *pool;
25 struct clk *clk;
26
27 struct sram_partition *partition;
28 u32 partitions;
29};
30
31struct sram_reserve {
32 struct list_head list;
33 u32 start;
34 u32 size;
35 bool export;
36 bool pool;
Dave Gerlach37afff02017-01-12 14:52:20 -060037 bool protect_exec;
Dave Gerlachcdd17372017-01-12 14:52:18 -060038 const char *label;
39};
Dave Gerlach728bbe72017-01-12 14:52:19 -060040
41#ifdef CONFIG_SRAM_EXEC
42int sram_check_protect_exec(struct sram_dev *sram, struct sram_reserve *block,
43 struct sram_partition *part);
44int sram_add_protect_exec(struct sram_partition *part);
45#else
46static inline int sram_check_protect_exec(struct sram_dev *sram,
47 struct sram_reserve *block,
48 struct sram_partition *part)
49{
50 return -ENODEV;
51}
52
53static inline int sram_add_protect_exec(struct sram_partition *part)
54{
55 return -ENODEV;
56}
57#endif /* CONFIG_SRAM_EXEC */
Dave Gerlachcdd17372017-01-12 14:52:18 -060058#endif /* __SRAM_H */