cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

pruss_driver.h (1297B)


      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
     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 */
     45struct 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_ */