Commit | Line | Data |
---|---|---|
dc112956 SA |
1 | /* SPDX-License-Identifier: GPL-2.0-only */ |
2 | /* | |
3 | * PRU-ICSS sub-system specific definitions | |
4 | * | |
5 | * Copyright (C) 2014-2020 Texas Instruments Incorporated - http://www.ti.com/ | |
6 | * Suman Anna <s-anna@ti.com> | |
7 | */ | |
8 | ||
9 | #ifndef _PRUSS_DRIVER_H_ | |
10 | #define _PRUSS_DRIVER_H_ | |
11 | ||
12 | #include <linux/types.h> | |
13 | ||
14 | /* | |
15 | * enum pruss_mem - PRUSS memory range identifiers | |
16 | */ | |
17 | enum pruss_mem { | |
18 | PRUSS_MEM_DRAM0 = 0, | |
19 | PRUSS_MEM_DRAM1, | |
20 | PRUSS_MEM_SHRD_RAM2, | |
21 | PRUSS_MEM_MAX, | |
22 | }; | |
23 | ||
24 | /** | |
25 | * struct pruss_mem_region - PRUSS memory region structure | |
26 | * @va: kernel virtual address of the PRUSS memory region | |
27 | * @pa: physical (bus) address of the PRUSS memory region | |
28 | * @size: size of the PRUSS memory region | |
29 | */ | |
30 | struct pruss_mem_region { | |
31 | void __iomem *va; | |
32 | phys_addr_t pa; | |
33 | size_t size; | |
34 | }; | |
35 | ||
36 | /** | |
37 | * struct pruss - PRUSS parent structure | |
38 | * @dev: pruss device pointer | |
ba59c9b4 | 39 | * @cfg_base: base iomap for CFG region |
dc112956 SA |
40 | * @cfg_regmap: regmap for config region |
41 | * @mem_regions: data for each of the PRUSS memory regions | |
ba59c9b4 GJ |
42 | * @core_clk_mux: clk handle for PRUSS CORE_CLK_MUX |
43 | * @iep_clk_mux: clk handle for PRUSS IEP_CLK_MUX | |
dc112956 SA |
44 | */ |
45 | struct pruss { | |
46 | struct device *dev; | |
ba59c9b4 | 47 | void __iomem *cfg_base; |
dc112956 SA |
48 | struct regmap *cfg_regmap; |
49 | struct pruss_mem_region mem_regions[PRUSS_MEM_MAX]; | |
ba59c9b4 GJ |
50 | struct clk *core_clk_mux; |
51 | struct clk *iep_clk_mux; | |
dc112956 SA |
52 | }; |
53 | ||
54 | #endif /* _PRUSS_DRIVER_H_ */ |