diff options
Diffstat (limited to 'include/linux/soc/qcom/llcc-qcom.h')
| -rw-r--r-- | include/linux/soc/qcom/llcc-qcom.h | 44 | 
1 files changed, 42 insertions, 2 deletions
diff --git a/include/linux/soc/qcom/llcc-qcom.h b/include/linux/soc/qcom/llcc-qcom.h index 437c9df13229..bc2fb8343a94 100644 --- a/include/linux/soc/qcom/llcc-qcom.h +++ b/include/linux/soc/qcom/llcc-qcom.h @@ -29,10 +29,20 @@  #define LLCC_AUDHW       22  #define LLCC_NPU         23  #define LLCC_WLHW        24 +#define LLCC_PIMEM       25 +#define LLCC_DRE         26  #define LLCC_CVP         28  #define LLCC_MODPE       29  #define LLCC_APTCM       30  #define LLCC_WRCACHE     31 +#define LLCC_CVPFW       32 +#define LLCC_CPUSS1      33 +#define LLCC_CAMEXP0     34 +#define LLCC_CPUMTE      35 +#define LLCC_CPUHWT      36 +#define LLCC_MDMCLAD2    37 +#define LLCC_CAMEXP1     38 +#define LLCC_AENPU       45  /**   * struct llcc_slice_desc - Cache slice descriptor @@ -68,11 +78,40 @@ struct llcc_edac_reg_data {  	u8  ways_shift;  }; +struct llcc_edac_reg_offset { +	/* LLCC TRP registers */ +	u32 trp_ecc_error_status0; +	u32 trp_ecc_error_status1; +	u32 trp_ecc_sb_err_syn0; +	u32 trp_ecc_db_err_syn0; +	u32 trp_ecc_error_cntr_clear; +	u32 trp_interrupt_0_status; +	u32 trp_interrupt_0_clear; +	u32 trp_interrupt_0_enable; + +	/* LLCC Common registers */ +	u32 cmn_status0; +	u32 cmn_interrupt_0_enable; +	u32 cmn_interrupt_2_enable; + +	/* LLCC DRP registers */ +	u32 drp_ecc_error_cfg; +	u32 drp_ecc_error_cntr_clear; +	u32 drp_interrupt_status; +	u32 drp_interrupt_clear; +	u32 drp_interrupt_enable; +	u32 drp_ecc_error_status0; +	u32 drp_ecc_error_status1; +	u32 drp_ecc_sb_err_syn0; +	u32 drp_ecc_db_err_syn0; +}; +  /**   * struct llcc_drv_data - Data associated with the llcc driver   * @regmap: regmap associated with the llcc device   * @bcast_regmap: regmap associated with llcc broadcast offset   * @cfg: pointer to the data structure for slice configuration + * @edac_reg_offset: Offset of the LLCC EDAC registers   * @lock: mutex associated with each slice   * @cfg_size: size of the config data table   * @max_slices: max slices as read from device tree @@ -80,12 +119,13 @@ struct llcc_edac_reg_data {   * @bitmap: Bit map to track the active slice ids   * @offsets: Pointer to the bank offsets array   * @ecc_irq: interrupt for llcc cache error detection and reporting - * @major_version: Indicates the LLCC major version + * @version: Indicates the LLCC version   */  struct llcc_drv_data {  	struct regmap *regmap;  	struct regmap *bcast_regmap;  	const struct llcc_slice_config *cfg; +	const struct llcc_edac_reg_offset *edac_reg_offset;  	struct mutex lock;  	u32 cfg_size;  	u32 max_slices; @@ -93,7 +133,7 @@ struct llcc_drv_data {  	unsigned long *bitmap;  	u32 *offsets;  	int ecc_irq; -	u32 major_version; +	u32 version;  };  #if IS_ENABLED(CONFIG_QCOM_LLCC)  | 
