Skip to content

Commit 3748dfd

Browse files
rjingarjwrdegoede
authored andcommitted
platform/x86/intel/pmc: Add Lunar Lake M support to intel_pmc_core driver
Add Lunar Lake M support in intel_pmc_core driver Signed-off-by: Rajvi Jingar <rajvi.jingar@linux.intel.com> Link: https://lore.kernel.org/r/20231219042216.2592029-8-rajvi.jingar@linux.intel.com Reviewed-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
1 parent 83f168a commit 3748dfd

File tree

4 files changed

+574
-1
lines changed

4 files changed

+574
-1
lines changed

drivers/platform/x86/intel/pmc/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
#
55

66
intel_pmc_core-y := core.o core_ssram.o spt.o cnp.o \
7-
icl.o tgl.o adl.o mtl.o arl.o
7+
icl.o tgl.o adl.o mtl.o arl.o lnl.o
88
obj-$(CONFIG_INTEL_PMC_CORE) += intel_pmc_core.o
99
intel_pmc_core_pltdrv-y := pltdrv.o
1010
obj-$(CONFIG_INTEL_PMC_CORE) += intel_pmc_core_pltdrv.o

drivers/platform/x86/intel/pmc/core.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1274,6 +1274,7 @@ static const struct x86_cpu_id intel_pmc_core_ids[] = {
12741274
X86_MATCH_INTEL_FAM6_MODEL(RAPTORLAKE_S, adl_core_init),
12751275
X86_MATCH_INTEL_FAM6_MODEL(METEORLAKE_L, mtl_core_init),
12761276
X86_MATCH_INTEL_FAM6_MODEL(ARROWLAKE, arl_core_init),
1277+
X86_MATCH_INTEL_FAM6_MODEL(LUNARLAKE_M, lnl_core_init),
12771278
{}
12781279
};
12791280

drivers/platform/x86/intel/pmc/core.h

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -278,6 +278,11 @@ enum ppfear_regs {
278278
#define MTL_PMT_DMU_GUID 0x1A067102
279279
#define ARL_PMT_DMU_GUID 0x1A06A000
280280

281+
#define LNL_PMC_MMIO_REG_LEN 0x2708
282+
#define LNL_PMC_LTR_OSSE 0x1B88
283+
#define LNL_NUM_IP_IGN_ALLOWED 27
284+
#define LNL_PPFEAR_NUM_ENTRIES 12
285+
281286
extern const char *pmc_lpm_modes[];
282287

283288
struct pmc_bit_map {
@@ -506,6 +511,26 @@ extern const struct pmc_bit_map mtl_ioem_power_gating_status_1_map[];
506511
extern const struct pmc_bit_map mtl_ioem_vnn_req_status_1_map[];
507512
extern const struct pmc_bit_map *mtl_ioem_lpm_maps[];
508513
extern const struct pmc_reg_map mtl_ioem_reg_map;
514+
extern const struct pmc_reg_map lnl_socm_reg_map;
515+
516+
/* LNL */
517+
extern const struct pmc_bit_map lnl_ltr_show_map[];
518+
extern const struct pmc_bit_map lnl_clocksource_status_map[];
519+
extern const struct pmc_bit_map lnl_power_gating_status_0_map[];
520+
extern const struct pmc_bit_map lnl_power_gating_status_1_map[];
521+
extern const struct pmc_bit_map lnl_power_gating_status_2_map[];
522+
extern const struct pmc_bit_map lnl_d3_status_0_map[];
523+
extern const struct pmc_bit_map lnl_d3_status_1_map[];
524+
extern const struct pmc_bit_map lnl_d3_status_2_map[];
525+
extern const struct pmc_bit_map lnl_d3_status_3_map[];
526+
extern const struct pmc_bit_map lnl_vnn_req_status_0_map[];
527+
extern const struct pmc_bit_map lnl_vnn_req_status_1_map[];
528+
extern const struct pmc_bit_map lnl_vnn_req_status_2_map[];
529+
extern const struct pmc_bit_map lnl_vnn_req_status_3_map[];
530+
extern const struct pmc_bit_map lnl_vnn_misc_status_map[];
531+
extern const struct pmc_bit_map *lnl_lpm_maps[];
532+
extern const struct pmc_bit_map lnl_pfear_map[];
533+
extern const struct pmc_bit_map *ext_lnl_pfear_map[];
509534

510535
/* ARL */
511536
extern const struct pmc_bit_map arl_socs_ltr_show_map[];
@@ -559,6 +584,7 @@ int tgl_core_generic_init(struct pmc_dev *pmcdev, int pch_tp);
559584
int adl_core_init(struct pmc_dev *pmcdev);
560585
int mtl_core_init(struct pmc_dev *pmcdev);
561586
int arl_core_init(struct pmc_dev *pmcdev);
587+
int lnl_core_init(struct pmc_dev *pmcdev);
562588

563589
#define pmc_for_each_mode(i, mode, pmcdev) \
564590
for (i = 0, mode = pmcdev->lpm_en_modes[i]; \

0 commit comments

Comments
 (0)