1 /* SPDX-License-Identifier: GPL-2.0-only 2 * 3 * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. 4 */ 5 6 #ifndef __PPE_H__ 7 #define __PPE_H__ 8 9 #include <linux/compiler.h> 10 #include <linux/interconnect.h> 11 12 struct device; 13 struct regmap; 14 struct dentry; 15 16 /** 17 * struct ppe_device - PPE device private data. 18 * @dev: PPE device structure. 19 * @regmap: PPE register map. 20 * @clk_rate: PPE clock rate. 21 * @num_ports: Number of PPE ports. 22 * @debugfs_root: Debugfs root entry. 23 * @num_icc_paths: Number of interconnect paths. 24 * @icc_paths: Interconnect path array. 25 * 26 * PPE device is the instance of PPE hardware, which is used to 27 * configure PPE packet process modules such as BM (buffer management), 28 * QM (queue management), and scheduler. 29 */ 30 struct ppe_device { 31 struct device *dev; 32 struct regmap *regmap; 33 unsigned long clk_rate; 34 unsigned int num_ports; 35 struct dentry *debugfs_root; 36 unsigned int num_icc_paths; 37 struct icc_bulk_data icc_paths[] __counted_by(num_icc_paths); 38 }; 39 #endif 40