xref: /linux/drivers/gpu/drm/i915/soc/intel_dram.h (revision 68a052239fc4b351e961f698b824f7654a346091)
1 /* SPDX-License-Identifier: MIT */
2 /*
3  * Copyright © 2020 Intel Corporation
4  */
5 
6 #ifndef __INTEL_DRAM_H__
7 #define __INTEL_DRAM_H__
8 
9 #include <linux/types.h>
10 
11 struct drm_i915_private;
12 struct drm_device;
13 
14 struct dram_info {
15 	enum intel_dram_type {
16 		INTEL_DRAM_UNKNOWN,
17 		INTEL_DRAM_DDR2,
18 		INTEL_DRAM_DDR3,
19 		INTEL_DRAM_DDR4,
20 		INTEL_DRAM_LPDDR3,
21 		INTEL_DRAM_LPDDR4,
22 		INTEL_DRAM_DDR5,
23 		INTEL_DRAM_LPDDR5,
24 		INTEL_DRAM_GDDR,
25 		INTEL_DRAM_GDDR_ECC,
26 		__INTEL_DRAM_TYPE_MAX,
27 	} type;
28 	unsigned int fsb_freq;
29 	unsigned int mem_freq;
30 	u8 num_channels;
31 	u8 num_qgv_points;
32 	u8 num_psf_gv_points;
33 	bool symmetric_memory;
34 	bool has_16gb_dimms;
35 };
36 
37 void intel_dram_edram_detect(struct drm_i915_private *i915);
38 int intel_dram_detect(struct drm_i915_private *i915);
39 unsigned int intel_fsb_freq(struct drm_i915_private *i915);
40 unsigned int intel_mem_freq(struct drm_i915_private *i915);
41 const struct dram_info *intel_dram_info(struct drm_device *drm);
42 const char *intel_dram_type_str(enum intel_dram_type type);
43 
44 #endif /* __INTEL_DRAM_H__ */
45