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