123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- /* SPDX-License-Identifier: GPL-2.0-only */
- /*
- * PRU-ICSS sub-system specific definitions
- *
- * Copyright (C) 2014-2020 Texas Instruments Incorporated - http://www.ti.com/
- * Suman Anna <[email protected]>
- */
- #ifndef _PRUSS_DRIVER_H_
- #define _PRUSS_DRIVER_H_
- #include <linux/types.h>
- /*
- * enum pruss_mem - PRUSS memory range identifiers
- */
- enum pruss_mem {
- PRUSS_MEM_DRAM0 = 0,
- PRUSS_MEM_DRAM1,
- PRUSS_MEM_SHRD_RAM2,
- PRUSS_MEM_MAX,
- };
- /**
- * struct pruss_mem_region - PRUSS memory region structure
- * @va: kernel virtual address of the PRUSS memory region
- * @pa: physical (bus) address of the PRUSS memory region
- * @size: size of the PRUSS memory region
- */
- struct pruss_mem_region {
- void __iomem *va;
- phys_addr_t pa;
- size_t size;
- };
- /**
- * struct pruss - PRUSS parent structure
- * @dev: pruss device pointer
- * @cfg_base: base iomap for CFG region
- * @cfg_regmap: regmap for config region
- * @mem_regions: data for each of the PRUSS memory regions
- * @core_clk_mux: clk handle for PRUSS CORE_CLK_MUX
- * @iep_clk_mux: clk handle for PRUSS IEP_CLK_MUX
- */
- struct pruss {
- struct device *dev;
- void __iomem *cfg_base;
- struct regmap *cfg_regmap;
- struct pruss_mem_region mem_regions[PRUSS_MEM_MAX];
- struct clk *core_clk_mux;
- struct clk *iep_clk_mux;
- };
- #endif /* _PRUSS_DRIVER_H_ */
|