]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
platform/x86:intel/pmc: Enable SSRAM support for Lunar Lake
authorXi Pardee <xi.pardee@linux.intel.com>
Wed, 10 Sep 2025 21:06:21 +0000 (14:06 -0700)
committerIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Thu, 11 Sep 2025 08:23:50 +0000 (11:23 +0300)
Enable Lunar Lake platforms to achieve PMC information from
Intel PMC SSRAM Telemetry driver and substate requirements data
from telemetry region.

Signed-off-by: Xi Pardee <xi.pardee@linux.intel.com>
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Link: https://patch.msgid.link/20250910210629.11198-2-xi.pardee@linux.intel.com
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
drivers/platform/x86/intel/pmc/lnl.c

index da513c234714bf7bc4505f21f013c028fd6f9060..e08a77c778c2cedfabf79cf5d2ad76c1b99561c6 100644 (file)
 
 #include "core.h"
 
+#define SOCM_LPM_REQ_GUID      0x15099748
+
+static const u8 LNL_LPM_REG_INDEX[] = {0, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 20};
+
 static const struct pmc_bit_map lnl_ltr_show_map[] = {
        {"SOUTHPORT_A",         CNP_PMC_LTR_SPA},
        {"SOUTHPORT_B",         CNP_PMC_LTR_SPB},
@@ -528,6 +532,16 @@ static const struct pmc_reg_map lnl_socm_reg_map = {
        .lpm_live_status_offset = MTL_LPM_LIVE_STATUS_OFFSET,
        .s0ix_blocker_maps = lnl_blk_maps,
        .s0ix_blocker_offset = LNL_S0IX_BLOCKER_OFFSET,
+       .lpm_reg_index = LNL_LPM_REG_INDEX,
+};
+
+static struct pmc_info lnl_pmc_info_list[] = {
+       {
+               .guid   = SOCM_LPM_REQ_GUID,
+               .devid  = PMC_DEVID_LNL_SOCM,
+               .map    = &lnl_socm_reg_map,
+       },
+       {}
 };
 
 #define LNL_NPU_PCI_DEV                0x643e
@@ -557,6 +571,8 @@ static int lnl_core_init(struct pmc_dev *pmcdev, struct pmc_dev_info *pmc_dev_in
 }
 
 struct pmc_dev_info lnl_pmc_dev = {
+       .pci_func = 2,
+       .regmap_list = lnl_pmc_info_list,
        .map = &lnl_socm_reg_map,
        .suspend = cnl_suspend,
        .resume = lnl_resume,