forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.3 KiB
54 lines
1.3 KiB
/* 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_ */
|
|
|