1 /* SPDX-License-Identifier: MIT */ 2 /* 3 * Copyright 2025 Intel Corporation. 4 */ 5 6 #ifndef __INTEL_PCH__ 7 #define __INTEL_PCH__ 8 9 #include "intel_display_conversion.h" 10 11 struct intel_display; 12 13 /* 14 * Sorted by south display engine compatibility. 15 * If the new PCH comes with a south display engine that is not 16 * inherited from the latest item, please do not add it to the 17 * end. Instead, add it right after its "parent" PCH. 18 */ 19 enum intel_pch { 20 PCH_NOP = -1, /* PCH without south display */ 21 PCH_NONE = 0, /* No PCH present */ 22 PCH_IBX, /* Ibexpeak PCH */ 23 PCH_CPT, /* Cougarpoint/Pantherpoint PCH */ 24 PCH_LPT_H, /* Lynxpoint/Wildcatpoint H PCH */ 25 PCH_LPT_LP, /* Lynxpoint/Wildcatpoint LP PCH */ 26 PCH_SPT, /* Sunrisepoint/Kaby Lake PCH */ 27 PCH_CNP, /* Cannon/Comet Lake PCH */ 28 PCH_ICP, /* Ice Lake/Jasper Lake PCH */ 29 PCH_TGP, /* Tiger Lake/Mule Creek Canyon PCH */ 30 PCH_ADP, /* Alder Lake PCH */ 31 32 /* Fake PCHs, functionality handled on the same PCI dev */ 33 PCH_DG1 = 1024, 34 PCH_DG2, 35 PCH_MTL, 36 PCH_LNL, 37 }; 38 39 #define INTEL_PCH_TYPE(_display) (__to_intel_display(_display)->pch_type) 40 #define HAS_PCH_DG2(display) (INTEL_PCH_TYPE(display) == PCH_DG2) 41 #define HAS_PCH_ADP(display) (INTEL_PCH_TYPE(display) == PCH_ADP) 42 #define HAS_PCH_DG1(display) (INTEL_PCH_TYPE(display) == PCH_DG1) 43 #define HAS_PCH_TGP(display) (INTEL_PCH_TYPE(display) == PCH_TGP) 44 #define HAS_PCH_ICP(display) (INTEL_PCH_TYPE(display) == PCH_ICP) 45 #define HAS_PCH_CNP(display) (INTEL_PCH_TYPE(display) == PCH_CNP) 46 #define HAS_PCH_SPT(display) (INTEL_PCH_TYPE(display) == PCH_SPT) 47 #define HAS_PCH_LPT_H(display) (INTEL_PCH_TYPE(display) == PCH_LPT_H) 48 #define HAS_PCH_LPT_LP(display) (INTEL_PCH_TYPE(display) == PCH_LPT_LP) 49 #define HAS_PCH_LPT(display) (INTEL_PCH_TYPE(display) == PCH_LPT_H || \ 50 INTEL_PCH_TYPE(display) == PCH_LPT_LP) 51 #define HAS_PCH_CPT(display) (INTEL_PCH_TYPE(display) == PCH_CPT) 52 #define HAS_PCH_IBX(display) (INTEL_PCH_TYPE(display) == PCH_IBX) 53 #define HAS_PCH_NOP(display) (INTEL_PCH_TYPE(display) == PCH_NOP) 54 #define HAS_PCH_SPLIT(display) (INTEL_PCH_TYPE(display) != PCH_NONE) 55 56 void intel_pch_detect(struct intel_display *display); 57 58 #endif /* __INTEL_PCH__ */ 59