thermal: intel: int340x: Add DLVR support for RFIM control
authorSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Thu, 13 Apr 2023 21:37:53 +0000 (14:37 -0700)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 18 Apr 2023 13:24:40 +0000 (15:24 +0200)
commit5bc6b1df65c87f8dd7d0afe494a2c0b9d5c73140
treee138c77ecbe051a58bac37c4443a83a1bf59850b
parent51699e4c05d9d444d5e732dd3bac3ccb0c68bfec
thermal: intel: int340x: Add DLVR support for RFIM control

Add support for DLVR (Digital Linear Voltage Regulator) attributes,
which can be used to control RFIM.

Here instead of "fivr" another directory "dlvr" is created with DLVR
attributes:

/sys/bus/pci/devices/0000:00:04.0/dlvr
├── dlvr_freq_mhz
├── dlvr_freq_select
├── dlvr_hardware_rev
├── dlvr_pll_busy
├── dlvr_rfim_enable
└── dlvr_spread_spectrum_pct
└── dlvr_control_mode
└── dlvr_control_lock

Attributes
dlvr_freq_mhz (RO):
Current DLVR PLL frequency in MHz.

dlvr_freq_select (RW):
Sets DLVR PLL clock frequency.

dlvr_hardware_rev (RO):
DLVR hardware revision.

dlvr_pll_busy (RO):
PLL can't accept frequency change when set.

dlvr_rfim_enable (RW):
0: Disable RF frequency hopping, 1: Enable RF frequency hopping.

dlvr_control_mode (RW):
Specifies how frequencies are spread. 0: Down spread, 1: Spread in Center.

dlvr_control_lock (RW):
1: future writes are ignored.

dlvr_spread_spectrum_pct (RW)
A write to this register updates the DLVR spread spectrum percent value.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
[ rjw: Subject edits ]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Documentation/driver-api/thermal/intel_dptf.rst
drivers/thermal/intel/int340x_thermal/processor_thermal_device.c
drivers/thermal/intel/int340x_thermal/processor_thermal_device.h
drivers/thermal/intel/int340x_thermal/processor_thermal_device_pci.c
drivers/thermal/intel/int340x_thermal/processor_thermal_rfim.c