162306a36Sopenharmony_ci/* SPDX-License-Identifier: MIT */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright © 2022 Intel Corporation 462306a36Sopenharmony_ci */ 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci#ifndef __INTEL_PCI_CONFIG_H__ 762306a36Sopenharmony_ci#define __INTEL_PCI_CONFIG_H__ 862306a36Sopenharmony_ci 962306a36Sopenharmony_ci/* PCI BARs */ 1062306a36Sopenharmony_ci#define GEN2_GMADR_BAR 0 1162306a36Sopenharmony_ci#define GEN2_MMADR_BAR 1 /* MMIO+GTT, despite the name */ 1262306a36Sopenharmony_ci#define GEN2_IO_BAR 2 /* 85x/865 */ 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ci#define GEN3_MMADR_BAR 0 /* MMIO only */ 1562306a36Sopenharmony_ci#define GEN3_IO_BAR 1 1662306a36Sopenharmony_ci#define GEN3_GMADR_BAR 2 1762306a36Sopenharmony_ci#define GEN3_GTTADR_BAR 3 /* GTT only */ 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci#define GEN4_GTTMMADR_BAR 0 /* MMIO+GTT */ 2062306a36Sopenharmony_ci#define GEN4_GMADR_BAR 2 2162306a36Sopenharmony_ci#define GEN4_IO_BAR 4 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ci#define GEN12_LMEM_BAR 2 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_cistatic inline int intel_mmio_bar(int graphics_ver) 2662306a36Sopenharmony_ci{ 2762306a36Sopenharmony_ci switch (graphics_ver) { 2862306a36Sopenharmony_ci case 2: return GEN2_MMADR_BAR; 2962306a36Sopenharmony_ci case 3: return GEN3_MMADR_BAR; 3062306a36Sopenharmony_ci default: return GEN4_GTTMMADR_BAR; 3162306a36Sopenharmony_ci } 3262306a36Sopenharmony_ci} 3362306a36Sopenharmony_ci 3462306a36Sopenharmony_ci/* BSM in include/drm/i915_drm.h */ 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ci#define MCHBAR_I915 0x44 3762306a36Sopenharmony_ci#define MCHBAR_I965 0x48 3862306a36Sopenharmony_ci#define MCHBAR_SIZE (4 * 4096) 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ci#define DEVEN 0x54 4162306a36Sopenharmony_ci#define DEVEN_MCHBAR_EN (1 << 28) 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ci#define HPLLCC 0xc0 /* 85x only */ 4462306a36Sopenharmony_ci#define GC_CLOCK_CONTROL_MASK (0x7 << 0) 4562306a36Sopenharmony_ci#define GC_CLOCK_133_200 (0 << 0) 4662306a36Sopenharmony_ci#define GC_CLOCK_100_200 (1 << 0) 4762306a36Sopenharmony_ci#define GC_CLOCK_100_133 (2 << 0) 4862306a36Sopenharmony_ci#define GC_CLOCK_133_266 (3 << 0) 4962306a36Sopenharmony_ci#define GC_CLOCK_133_200_2 (4 << 0) 5062306a36Sopenharmony_ci#define GC_CLOCK_133_266_2 (5 << 0) 5162306a36Sopenharmony_ci#define GC_CLOCK_166_266 (6 << 0) 5262306a36Sopenharmony_ci#define GC_CLOCK_166_250 (7 << 0) 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_ci#define I915_GDRST 0xc0 5562306a36Sopenharmony_ci#define GRDOM_FULL (0 << 2) 5662306a36Sopenharmony_ci#define GRDOM_RENDER (1 << 2) 5762306a36Sopenharmony_ci#define GRDOM_MEDIA (3 << 2) 5862306a36Sopenharmony_ci#define GRDOM_MASK (3 << 2) 5962306a36Sopenharmony_ci#define GRDOM_RESET_STATUS (1 << 1) 6062306a36Sopenharmony_ci#define GRDOM_RESET_ENABLE (1 << 0) 6162306a36Sopenharmony_ci 6262306a36Sopenharmony_ci/* BSpec only has register offset, PCI device and bit found empirically */ 6362306a36Sopenharmony_ci#define I830_CLOCK_GATE 0xc8 /* device 0 */ 6462306a36Sopenharmony_ci#define I830_L2_CACHE_CLOCK_GATE_DISABLE (1 << 2) 6562306a36Sopenharmony_ci 6662306a36Sopenharmony_ci#define GCDGMBUS 0xcc 6762306a36Sopenharmony_ci 6862306a36Sopenharmony_ci#define GCFGC2 0xda 6962306a36Sopenharmony_ci#define GCFGC 0xf0 /* 915+ only */ 7062306a36Sopenharmony_ci#define GC_LOW_FREQUENCY_ENABLE (1 << 7) 7162306a36Sopenharmony_ci#define GC_DISPLAY_CLOCK_190_200_MHZ (0 << 4) 7262306a36Sopenharmony_ci#define GC_DISPLAY_CLOCK_333_320_MHZ (4 << 4) 7362306a36Sopenharmony_ci#define GC_DISPLAY_CLOCK_267_MHZ_PNV (0 << 4) 7462306a36Sopenharmony_ci#define GC_DISPLAY_CLOCK_333_MHZ_PNV (1 << 4) 7562306a36Sopenharmony_ci#define GC_DISPLAY_CLOCK_444_MHZ_PNV (2 << 4) 7662306a36Sopenharmony_ci#define GC_DISPLAY_CLOCK_200_MHZ_PNV (5 << 4) 7762306a36Sopenharmony_ci#define GC_DISPLAY_CLOCK_133_MHZ_PNV (6 << 4) 7862306a36Sopenharmony_ci#define GC_DISPLAY_CLOCK_167_MHZ_PNV (7 << 4) 7962306a36Sopenharmony_ci#define GC_DISPLAY_CLOCK_MASK (7 << 4) 8062306a36Sopenharmony_ci#define GM45_GC_RENDER_CLOCK_MASK (0xf << 0) 8162306a36Sopenharmony_ci#define GM45_GC_RENDER_CLOCK_266_MHZ (8 << 0) 8262306a36Sopenharmony_ci#define GM45_GC_RENDER_CLOCK_320_MHZ (9 << 0) 8362306a36Sopenharmony_ci#define GM45_GC_RENDER_CLOCK_400_MHZ (0xb << 0) 8462306a36Sopenharmony_ci#define GM45_GC_RENDER_CLOCK_533_MHZ (0xc << 0) 8562306a36Sopenharmony_ci#define I965_GC_RENDER_CLOCK_MASK (0xf << 0) 8662306a36Sopenharmony_ci#define I965_GC_RENDER_CLOCK_267_MHZ (2 << 0) 8762306a36Sopenharmony_ci#define I965_GC_RENDER_CLOCK_333_MHZ (3 << 0) 8862306a36Sopenharmony_ci#define I965_GC_RENDER_CLOCK_444_MHZ (4 << 0) 8962306a36Sopenharmony_ci#define I965_GC_RENDER_CLOCK_533_MHZ (5 << 0) 9062306a36Sopenharmony_ci#define I945_GC_RENDER_CLOCK_MASK (7 << 0) 9162306a36Sopenharmony_ci#define I945_GC_RENDER_CLOCK_166_MHZ (0 << 0) 9262306a36Sopenharmony_ci#define I945_GC_RENDER_CLOCK_200_MHZ (1 << 0) 9362306a36Sopenharmony_ci#define I945_GC_RENDER_CLOCK_250_MHZ (3 << 0) 9462306a36Sopenharmony_ci#define I945_GC_RENDER_CLOCK_400_MHZ (5 << 0) 9562306a36Sopenharmony_ci#define I915_GC_RENDER_CLOCK_MASK (7 << 0) 9662306a36Sopenharmony_ci#define I915_GC_RENDER_CLOCK_166_MHZ (0 << 0) 9762306a36Sopenharmony_ci#define I915_GC_RENDER_CLOCK_200_MHZ (1 << 0) 9862306a36Sopenharmony_ci#define I915_GC_RENDER_CLOCK_333_MHZ (4 << 0) 9962306a36Sopenharmony_ci 10062306a36Sopenharmony_ci#define ASLE 0xe4 10162306a36Sopenharmony_ci#define ASLS 0xfc 10262306a36Sopenharmony_ci 10362306a36Sopenharmony_ci#define SWSCI 0xe8 10462306a36Sopenharmony_ci#define SWSCI_SCISEL (1 << 15) 10562306a36Sopenharmony_ci#define SWSCI_GSSCIE (1 << 0) 10662306a36Sopenharmony_ci 10762306a36Sopenharmony_ci/* legacy/combination backlight modes, also called LBB */ 10862306a36Sopenharmony_ci#define LBPC 0xf4 10962306a36Sopenharmony_ci 11062306a36Sopenharmony_ci#endif /* __INTEL_PCI_CONFIG_H__ */ 111