drm_WARN_ON(&dev_priv->drm, !IS_ALDERLAKE_S(dev_priv) &&
                            !IS_ALDERLAKE_P(dev_priv));
                return PCH_ADP;
+       case INTEL_PCH_MTP_DEVICE_ID_TYPE:
+       case INTEL_PCH_MTP2_DEVICE_ID_TYPE:
+               drm_dbg_kms(&dev_priv->drm, "Found Meteor Lake PCH\n");
+               drm_WARN_ON(&dev_priv->drm, !IS_METEORLAKE(dev_priv));
+               return PCH_MTP;
        default:
                return PCH_NONE;
        }
         * make an educated guess as to which PCH is really there.
         */
 
-       if (IS_ALDERLAKE_S(dev_priv) || IS_ALDERLAKE_P(dev_priv))
+       if (IS_METEORLAKE(dev_priv))
+               id = INTEL_PCH_MTP_DEVICE_ID_TYPE;
+       else if (IS_ALDERLAKE_S(dev_priv) || IS_ALDERLAKE_P(dev_priv))
                id = INTEL_PCH_ADP_DEVICE_ID_TYPE;
        else if (IS_TIGERLAKE(dev_priv) || IS_ROCKETLAKE(dev_priv))
                id = INTEL_PCH_TGP_DEVICE_ID_TYPE;
 
        PCH_ICP,        /* Ice Lake/Jasper Lake PCH */
        PCH_TGP,        /* Tiger Lake/Mule Creek Canyon PCH */
        PCH_ADP,        /* Alder Lake PCH */
+       PCH_MTP,        /* Meteor Lake PCH */
 
        /* Fake PCHs, functionality handled on the same PCI dev */
        PCH_DG1 = 1024,
 #define INTEL_PCH_ADP2_DEVICE_ID_TYPE          0x5180
 #define INTEL_PCH_ADP3_DEVICE_ID_TYPE          0x7A00
 #define INTEL_PCH_ADP4_DEVICE_ID_TYPE          0x5480
+#define INTEL_PCH_MTP_DEVICE_ID_TYPE           0x7E00
+#define INTEL_PCH_MTP2_DEVICE_ID_TYPE          0xAE00
 #define INTEL_PCH_P2X_DEVICE_ID_TYPE           0x7100
 #define INTEL_PCH_P3X_DEVICE_ID_TYPE           0x7000
 #define INTEL_PCH_QEMU_DEVICE_ID_TYPE          0x2900 /* qemu q35 has 2918 */
 
 #define INTEL_PCH_TYPE(dev_priv)               ((dev_priv)->pch_type)
 #define INTEL_PCH_ID(dev_priv)                 ((dev_priv)->pch_id)
+#define HAS_PCH_MTP(dev_priv)                  (INTEL_PCH_TYPE(dev_priv) == PCH_MTP)
 #define HAS_PCH_DG2(dev_priv)                  (INTEL_PCH_TYPE(dev_priv) == PCH_DG2)
 #define HAS_PCH_ADP(dev_priv)                  (INTEL_PCH_TYPE(dev_priv) == PCH_ADP)
 #define HAS_PCH_DG1(dev_priv)                  (INTEL_PCH_TYPE(dev_priv) == PCH_DG1)