blob: b268cd3f55bb132292570f8333597a283fb6fec5 [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;
37 const char *label;
38};
Dave Gerlach728bbe72017-01-12 14:52:19 -060039
40#ifdef CONFIG_SRAM_EXEC
41int sram_check_protect_exec(struct sram_dev *sram, struct sram_reserve *block,
42 struct sram_partition *part);
43int sram_add_protect_exec(struct sram_partition *part);
44#else
45static inline int sram_check_protect_exec(struct sram_dev *sram,
46 struct sram_reserve *block,
47 struct sram_partition *part)
48{
49 return -ENODEV;
50}
51
52static inline int sram_add_protect_exec(struct sram_partition *part)
53{
54 return -ENODEV;
55}
56#endif /* CONFIG_SRAM_EXEC */
Dave Gerlachcdd17372017-01-12 14:52:18 -060057#endif /* __SRAM_H */