Merge tag 'sound-5.16-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai...
[linux-block.git] / include / linux / pruss_driver.h
CommitLineData
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 */
17enum 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 */
30struct 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 */
45struct 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_ */