Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

thermal: intel: int340x: Add DLVR support for Nova Lake

Add support for DLVR (Digital Linear Voltage Regulator) for Nova Lake.

There are no new sysfs attributes or difference in operations compared
to prior generations.

MMIO offset and bit positions are changed. Also no mapping is required
as units are already in MHz.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Link: https://patch.msgid.link/20251111004552.137984-2-srinivas.pandruvada@linux.intel.com
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

authored by

Srinivas Pandruvada and committed by
Rafael J. Wysocki
dbd911a0 af1b80b9

+15
+15
drivers/thermal/intel/int340x_thermal/processor_thermal_rfim.c
··· 87 87 {NULL, 0, NULL}, 88 88 }; 89 89 90 + static const struct mmio_reg nvl_dlvr_mmio_regs[] = { 91 + { 0, 0x19208, 5, 0x1F, 0}, /* dlvr_spread_spectrum_pct */ 92 + { 0, 0x19208, 1, 0x1, 5}, /* dlvr_control_mode */ 93 + { 0, 0x19208, 1, 0x1, 6}, /* dlvr_control_lock */ 94 + { 0, 0x19208, 1, 0x1, 7}, /* dlvr_rfim_enable */ 95 + { 0, 0x19208, 12, 0xFFF, 8}, /* dlvr_freq_select */ 96 + { 1, 0x19210, 2, 0x3, 30}, /* dlvr_hardware_rev */ 97 + { 1, 0x19210, 16, 0xFFFF, 0}, /* dlvr_freq_mhz */ 98 + { 1, 0x19210, 1, 0x1, 16}, /* dlvr_pll_busy */ 99 + }; 100 + 90 101 static int match_mapping_table(const struct mapping_table *table, const char *attr_name, 91 102 bool match_int_value, const u32 value, const char *value_str, 92 103 char **result_str, u32 *result_int) ··· 456 445 case PCI_DEVICE_ID_INTEL_WCL_THERMAL: 457 446 dlvr_mmio_regs_table = lnl_dlvr_mmio_regs; 458 447 dlvr_mapping = lnl_dlvr_mapping; 448 + break; 449 + case PCI_DEVICE_ID_INTEL_NVL_H_THERMAL: 450 + case PCI_DEVICE_ID_INTEL_NVL_S_THERMAL: 451 + dlvr_mmio_regs_table = nvl_dlvr_mmio_regs; 459 452 break; 460 453 default: 461 454 dlvr_mmio_regs_table = dlvr_mmio_regs;