]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/blob - include/linux/pruss_driver.h
Merge tag 'sched-urgent-2020-11-22' of git://git.kernel.org/pub/scm/linux/kernel...
[mirror_ubuntu-jammy-kernel.git] / include / linux / pruss_driver.h
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
39 * @cfg_base: base iomap for CFG region
40 * @cfg_regmap: regmap for config region
41 * @mem_regions: data for each of the PRUSS memory regions
42 * @core_clk_mux: clk handle for PRUSS CORE_CLK_MUX
43 * @iep_clk_mux: clk handle for PRUSS IEP_CLK_MUX
44 */
45 struct pruss {
46 struct device *dev;
47 void __iomem *cfg_base;
48 struct regmap *cfg_regmap;
49 struct pruss_mem_region mem_regions[PRUSS_MEM_MAX];
50 struct clk *core_clk_mux;
51 struct clk *iep_clk_mux;
52 };
53
54 #endif /* _PRUSS_DRIVER_H_ */