diff mbox series

[v7,1/5] platform/x86/intel: intel_pmc_core: Move intel_pmc_core* files to pmc subfolder

Message ID 81b6292e50af54fb7eeabfefde6f4a3d283b0b96.1629091915.git.gayatri.kammela@intel.com (mailing list archive)
State Changes Requested, archived
Headers show
Series Add Alder Lake PCH-S support to PMC core driver | expand

Commit Message

Kammela, Gayatri Aug. 16, 2021, 4:58 p.m. UTC
As part of collecting Intel x86 specific drivers in their own
folder, move intel_pmc_core* files to its own subfolder there.

Cc: Chao Qin <chao.qin@intel.com>
Cc: Srinivas Pandruvada <srinivas.pandruvada@intel.com>
Cc: David Box <david.e.box@intel.com>
Cc: You-Sheng Yang <vicamo.yang@canonical.com>
Cc: Hans de Goede <hdegoede@redhat.com>
Suggested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Rajneesh Bhardwaj <irenic.rajneesh@gmail.com>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: Gayatri Kammela <gayatri.kammela@intel.com>
---
 MAINTAINERS                                   |  2 +-
 drivers/platform/x86/Kconfig                  | 21 ------------------
 drivers/platform/x86/Makefile                 |  1 -
 drivers/platform/x86/intel/Kconfig            |  1 +
 drivers/platform/x86/intel/Makefile           |  1 +
 drivers/platform/x86/intel/pmc/Kconfig        | 22 +++++++++++++++++++
 drivers/platform/x86/intel/pmc/Makefile       |  6 +++++
 .../{intel_pmc_core.c => intel/pmc/core.c}    |  2 +-
 .../{intel_pmc_core.h => intel/pmc/core.h}    |  0
 .../pmc/core_platform.c}                      |  0
 10 files changed, 32 insertions(+), 24 deletions(-)
 create mode 100644 drivers/platform/x86/intel/pmc/Kconfig
 create mode 100644 drivers/platform/x86/intel/pmc/Makefile
 rename drivers/platform/x86/{intel_pmc_core.c => intel/pmc/core.c} (99%)
 rename drivers/platform/x86/{intel_pmc_core.h => intel/pmc/core.h} (100%)
 rename drivers/platform/x86/{intel_pmc_core_pltdrv.c => intel/pmc/core_platform.c} (100%)

Comments

Andy Shevchenko Aug. 16, 2021, 7:31 p.m. UTC | #1
On Mon, Aug 16, 2021 at 8:02 PM Gayatri Kammela
<gayatri.kammela@intel.com> wrote:
>
> As part of collecting Intel x86 specific drivers in their own
> folder, move intel_pmc_core* files to its own subfolder there.

>  .../pmc/core_platform.c}                      |  0

platform.c is enough.
Kammela, Gayatri Aug. 16, 2021, 8:51 p.m. UTC | #2
> -----Original Message-----
> From: Andy Shevchenko <andy.shevchenko@gmail.com>
> Sent: Monday, August 16, 2021 12:32 PM
> To: Kammela, Gayatri <gayatri.kammela@intel.com>
> Cc: Platform Driver <platform-driver-x86@vger.kernel.org>; Mark Gross
> <mgross@linux.intel.com>; Hans de Goede <hdegoede@redhat.com>;
> Rajneesh Bhardwaj <irenic.rajneesh@gmail.com>; Andy Shevchenko
> <andriy.shevchenko@linux.intel.com>; You-Sheng Yang
> <vicamo.yang@canonical.com>; Pandruvada, Srinivas
> <srinivas.pandruvada@intel.com>; Box, David E <david.e.box@intel.com>;
> Qin, Chao <chao.qin@intel.com>; Linux Kernel Mailing List <linux-
> kernel@vger.kernel.org>; Mashiah, Tamar <tamar.mashiah@intel.com>;
> Greg Kroah-Hartman <gregkh@linuxfoundation.org>; Rajat Jain
> <rajatja@google.com>; Shyam Sundar S K <Shyam-sundar.S-k@amd.com>;
> Alex Deucher <Alexander.Deucher@amd.com>; mlimonci@amd.com
> Subject: Re: [PATCH v7 1/5] platform/x86/intel: intel_pmc_core: Move
> intel_pmc_core* files to pmc subfolder
> 
> On Mon, Aug 16, 2021 at 8:02 PM Gayatri Kammela
> <gayatri.kammela@intel.com> wrote:
> >
> > As part of collecting Intel x86 specific drivers in their own folder,
> > move intel_pmc_core* files to its own subfolder there.
> 
> >  .../pmc/core_platform.c}                      |  0
> 
> platform.c is enough.
Sure, thanks Andy!
> 
> --
> With Best Regards,
> Andy Shevchenko
Hans de Goede Aug. 17, 2021, 6:47 p.m. UTC | #3
Hi,

On 8/16/21 6:58 PM, Gayatri Kammela wrote:
> As part of collecting Intel x86 specific drivers in their own
> folder, move intel_pmc_core* files to its own subfolder there.
> 
> Cc: Chao Qin <chao.qin@intel.com>
> Cc: Srinivas Pandruvada <srinivas.pandruvada@intel.com>
> Cc: David Box <david.e.box@intel.com>
> Cc: You-Sheng Yang <vicamo.yang@canonical.com>
> Cc: Hans de Goede <hdegoede@redhat.com>
> Suggested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> Acked-by: Rajneesh Bhardwaj <irenic.rajneesh@gmail.com>
> Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
> Signed-off-by: Gayatri Kammela <gayatri.kammela@intel.com>
> ---
>  MAINTAINERS                                   |  2 +-
>  drivers/platform/x86/Kconfig                  | 21 ------------------
>  drivers/platform/x86/Makefile                 |  1 -
>  drivers/platform/x86/intel/Kconfig            |  1 +
>  drivers/platform/x86/intel/Makefile           |  1 +
>  drivers/platform/x86/intel/pmc/Kconfig        | 22 +++++++++++++++++++
>  drivers/platform/x86/intel/pmc/Makefile       |  6 +++++
>  .../{intel_pmc_core.c => intel/pmc/core.c}    |  2 +-
>  .../{intel_pmc_core.h => intel/pmc/core.h}    |  0
>  .../pmc/core_platform.c}                      |  0
>  10 files changed, 32 insertions(+), 24 deletions(-)
>  create mode 100644 drivers/platform/x86/intel/pmc/Kconfig
>  create mode 100644 drivers/platform/x86/intel/pmc/Makefile
>  rename drivers/platform/x86/{intel_pmc_core.c => intel/pmc/core.c} (99%)
>  rename drivers/platform/x86/{intel_pmc_core.h => intel/pmc/core.h} (100%)
>  rename drivers/platform/x86/{intel_pmc_core_pltdrv.c => intel/pmc/core_platform.c} (100%)
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index fd25e4ecf0b9..5e118faf8018 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -9477,7 +9477,7 @@ M:	David E Box <david.e.box@intel.com>
>  L:	platform-driver-x86@vger.kernel.org
>  S:	Maintained
>  F:	Documentation/ABI/testing/sysfs-platform-intel-pmc
> -F:	drivers/platform/x86/intel_pmc_core*
> +F:	drivers/platform/x86/intel/pmc/core*
>  
>  INTEL PMIC GPIO DRIVERS
>  M:	Andy Shevchenko <andy@kernel.org>
> diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig
> index d12db6c316ea..c4ee38eba44b 100644
> --- a/drivers/platform/x86/Kconfig
> +++ b/drivers/platform/x86/Kconfig
> @@ -1187,27 +1187,6 @@ config INTEL_MRFLD_PWRBTN
>  	  To compile this driver as a module, choose M here: the module
>  	  will be called intel_mrfld_pwrbtn.
>  
> -config INTEL_PMC_CORE
> -	tristate "Intel PMC Core driver"
> -	depends on PCI
> -	depends on ACPI
> -	help
> -	  The Intel Platform Controller Hub for Intel Core SoCs provides access
> -	  to Power Management Controller registers via various interfaces. This
> -	  driver can utilize debugging capabilities and supported features as
> -	  exposed by the Power Management Controller. It also may perform some
> -	  tasks in the PMC in order to enable transition into the SLPS0 state.
> -	  It should be selected on all Intel platforms supported by the driver.
> -
> -	  Supported features:
> -		- SLP_S0_RESIDENCY counter
> -		- PCH IP Power Gating status
> -		- LTR Ignore / LTR Show
> -		- MPHY/PLL gating status (Sunrisepoint PCH only)
> -		- SLPS0 Debug registers (Cannonlake/Icelake PCH)
> -		- Low Power Mode registers (Tigerlake and beyond)
> -		- PMC quirks as needed to enable SLPS0/S0ix
> -
>  config INTEL_PMT_CLASS
>  	tristate
>  	help
> diff --git a/drivers/platform/x86/Makefile b/drivers/platform/x86/Makefile
> index 7ee369aab10d..43d36f8c36f1 100644
> --- a/drivers/platform/x86/Makefile
> +++ b/drivers/platform/x86/Makefile
> @@ -128,7 +128,6 @@ obj-$(CONFIG_INTEL_UNCORE_FREQ_CONTROL)		+= intel-uncore-frequency.o
>  obj-$(CONFIG_INTEL_BXTWC_PMIC_TMU)	+= intel_bxtwc_tmu.o
>  obj-$(CONFIG_INTEL_CHTDC_TI_PWRBTN)	+= intel_chtdc_ti_pwrbtn.o
>  obj-$(CONFIG_INTEL_MRFLD_PWRBTN)	+= intel_mrfld_pwrbtn.o
> -obj-$(CONFIG_INTEL_PMC_CORE)		+= intel_pmc_core.o intel_pmc_core_pltdrv.o

This Makefile line will build 2 separate .ko files: intel_pmc_core.ko and
intel_pmc_core_pltdrv.ko when CONFIG_INTEL_PMC_CORE=m

>  obj-$(CONFIG_INTEL_PMT_CLASS)		+= intel_pmt_class.o
>  obj-$(CONFIG_INTEL_PMT_TELEMETRY)	+= intel_pmt_telemetry.o
>  obj-$(CONFIG_INTEL_PMT_CRASHLOG)	+= intel_pmt_crashlog.o

<snip>

> diff --git a/drivers/platform/x86/intel/pmc/Makefile b/drivers/platform/x86/intel/pmc/Makefile
> new file mode 100644
> index 000000000000..c92e66846a4a
> --- /dev/null
> +++ b/drivers/platform/x86/intel/pmc/Makefile
> @@ -0,0 +1,6 @@
> +# SPDX-License-Identifier: GPL-2.0
> +#
> +
> +obj-$(CONFIG_INTEL_PMC_CORE)	+= intel_pmc_core.o
> +intel_pmc_core-objs		:= core.o \
> +				   core_platform.o

Whereas this will now build a single intel_pmc_core.ko containing both object files,
but the 2 .c files have:

module_platform_driver(pmc_core_driver);
(which is a macro expanding to a module_init + module_exit function)

resp.

module_init(pmc_core_platform_init);
module_exit(pmc_core_platform_exit);

So now we have 2 module_init (and _exit) functions in a single .ko
file and the build will fail, not good.

Also instead of "intel_pmc_core-objs :=" you should use "intel_pmc_core-y :="

And this series is based on 5.14-rc6, causing it to not apply
because the pmt driver has already been moved to
drivers/platform/x86 and this patch is using a base which
is missing that move.

pdx86 patches should be based on:

https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git/log/?h=review-hans

Please make sure the next version is based on my review-hans branch,
there are some other intel driver renames in flight (and e.g. the
pmt one has already landed) and I would like to be able to apply
this without needing to manually resolve conflicts.

Regards,

Hans



> diff --git a/drivers/platform/x86/intel_pmc_core.c b/drivers/platform/x86/intel/pmc/core.c
> similarity index 99%
> rename from drivers/platform/x86/intel_pmc_core.c
> rename to drivers/platform/x86/intel/pmc/core.c
> index b0e486a6bdfb..f9de78b08e5d 100644
> --- a/drivers/platform/x86/intel_pmc_core.c
> +++ b/drivers/platform/x86/intel/pmc/core.c
> @@ -31,7 +31,7 @@
>  #include <asm/msr.h>
>  #include <asm/tsc.h>
>  
> -#include "intel_pmc_core.h"
> +#include "core.h"
>  
>  #define ACPI_S0IX_DSM_UUID		"57a6512e-3979-4e9d-9708-ff13b2508972"
>  #define ACPI_GET_LOW_MODE_REGISTERS	1
> diff --git a/drivers/platform/x86/intel_pmc_core.h b/drivers/platform/x86/intel/pmc/core.h
> similarity index 100%
> rename from drivers/platform/x86/intel_pmc_core.h
> rename to drivers/platform/x86/intel/pmc/core.h
> diff --git a/drivers/platform/x86/intel_pmc_core_pltdrv.c b/drivers/platform/x86/intel/pmc/core_platform.c
> similarity index 100%
> rename from drivers/platform/x86/intel_pmc_core_pltdrv.c
> rename to drivers/platform/x86/intel/pmc/core_platform.c
>
Hans de Goede Aug. 19, 2021, 10:52 a.m. UTC | #4
Hi,

On 8/17/21 8:47 PM, Hans de Goede wrote:
> Hi,
> 
> On 8/16/21 6:58 PM, Gayatri Kammela wrote:
>> As part of collecting Intel x86 specific drivers in their own
>> folder, move intel_pmc_core* files to its own subfolder there.
>>
>> Cc: Chao Qin <chao.qin@intel.com>
>> Cc: Srinivas Pandruvada <srinivas.pandruvada@intel.com>
>> Cc: David Box <david.e.box@intel.com>
>> Cc: You-Sheng Yang <vicamo.yang@canonical.com>
>> Cc: Hans de Goede <hdegoede@redhat.com>
>> Suggested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
>> Acked-by: Rajneesh Bhardwaj <irenic.rajneesh@gmail.com>
>> Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
>> Signed-off-by: Gayatri Kammela <gayatri.kammela@intel.com>
>> ---
>>  MAINTAINERS                                   |  2 +-
>>  drivers/platform/x86/Kconfig                  | 21 ------------------
>>  drivers/platform/x86/Makefile                 |  1 -
>>  drivers/platform/x86/intel/Kconfig            |  1 +
>>  drivers/platform/x86/intel/Makefile           |  1 +
>>  drivers/platform/x86/intel/pmc/Kconfig        | 22 +++++++++++++++++++
>>  drivers/platform/x86/intel/pmc/Makefile       |  6 +++++
>>  .../{intel_pmc_core.c => intel/pmc/core.c}    |  2 +-
>>  .../{intel_pmc_core.h => intel/pmc/core.h}    |  0
>>  .../pmc/core_platform.c}                      |  0
>>  10 files changed, 32 insertions(+), 24 deletions(-)
>>  create mode 100644 drivers/platform/x86/intel/pmc/Kconfig
>>  create mode 100644 drivers/platform/x86/intel/pmc/Makefile
>>  rename drivers/platform/x86/{intel_pmc_core.c => intel/pmc/core.c} (99%)
>>  rename drivers/platform/x86/{intel_pmc_core.h => intel/pmc/core.h} (100%)
>>  rename drivers/platform/x86/{intel_pmc_core_pltdrv.c => intel/pmc/core_platform.c} (100%)
>>
>> diff --git a/MAINTAINERS b/MAINTAINERS
>> index fd25e4ecf0b9..5e118faf8018 100644
>> --- a/MAINTAINERS
>> +++ b/MAINTAINERS
>> @@ -9477,7 +9477,7 @@ M:	David E Box <david.e.box@intel.com>
>>  L:	platform-driver-x86@vger.kernel.org
>>  S:	Maintained
>>  F:	Documentation/ABI/testing/sysfs-platform-intel-pmc
>> -F:	drivers/platform/x86/intel_pmc_core*
>> +F:	drivers/platform/x86/intel/pmc/core*
>>  
>>  INTEL PMIC GPIO DRIVERS
>>  M:	Andy Shevchenko <andy@kernel.org>
>> diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig
>> index d12db6c316ea..c4ee38eba44b 100644
>> --- a/drivers/platform/x86/Kconfig
>> +++ b/drivers/platform/x86/Kconfig
>> @@ -1187,27 +1187,6 @@ config INTEL_MRFLD_PWRBTN
>>  	  To compile this driver as a module, choose M here: the module
>>  	  will be called intel_mrfld_pwrbtn.
>>  
>> -config INTEL_PMC_CORE
>> -	tristate "Intel PMC Core driver"
>> -	depends on PCI
>> -	depends on ACPI
>> -	help
>> -	  The Intel Platform Controller Hub for Intel Core SoCs provides access
>> -	  to Power Management Controller registers via various interfaces. This
>> -	  driver can utilize debugging capabilities and supported features as
>> -	  exposed by the Power Management Controller. It also may perform some
>> -	  tasks in the PMC in order to enable transition into the SLPS0 state.
>> -	  It should be selected on all Intel platforms supported by the driver.
>> -
>> -	  Supported features:
>> -		- SLP_S0_RESIDENCY counter
>> -		- PCH IP Power Gating status
>> -		- LTR Ignore / LTR Show
>> -		- MPHY/PLL gating status (Sunrisepoint PCH only)
>> -		- SLPS0 Debug registers (Cannonlake/Icelake PCH)
>> -		- Low Power Mode registers (Tigerlake and beyond)
>> -		- PMC quirks as needed to enable SLPS0/S0ix
>> -
>>  config INTEL_PMT_CLASS
>>  	tristate
>>  	help
>> diff --git a/drivers/platform/x86/Makefile b/drivers/platform/x86/Makefile
>> index 7ee369aab10d..43d36f8c36f1 100644
>> --- a/drivers/platform/x86/Makefile
>> +++ b/drivers/platform/x86/Makefile
>> @@ -128,7 +128,6 @@ obj-$(CONFIG_INTEL_UNCORE_FREQ_CONTROL)		+= intel-uncore-frequency.o
>>  obj-$(CONFIG_INTEL_BXTWC_PMIC_TMU)	+= intel_bxtwc_tmu.o
>>  obj-$(CONFIG_INTEL_CHTDC_TI_PWRBTN)	+= intel_chtdc_ti_pwrbtn.o
>>  obj-$(CONFIG_INTEL_MRFLD_PWRBTN)	+= intel_mrfld_pwrbtn.o
>> -obj-$(CONFIG_INTEL_PMC_CORE)		+= intel_pmc_core.o intel_pmc_core_pltdrv.o
> 
> This Makefile line will build 2 separate .ko files: intel_pmc_core.ko and
> intel_pmc_core_pltdrv.ko when CONFIG_INTEL_PMC_CORE=m
> 
>>  obj-$(CONFIG_INTEL_PMT_CLASS)		+= intel_pmt_class.o
>>  obj-$(CONFIG_INTEL_PMT_TELEMETRY)	+= intel_pmt_telemetry.o
>>  obj-$(CONFIG_INTEL_PMT_CRASHLOG)	+= intel_pmt_crashlog.o
> 
> <snip>
> 
>> diff --git a/drivers/platform/x86/intel/pmc/Makefile b/drivers/platform/x86/intel/pmc/Makefile
>> new file mode 100644
>> index 000000000000..c92e66846a4a
>> --- /dev/null
>> +++ b/drivers/platform/x86/intel/pmc/Makefile
>> @@ -0,0 +1,6 @@
>> +# SPDX-License-Identifier: GPL-2.0
>> +#
>> +
>> +obj-$(CONFIG_INTEL_PMC_CORE)	+= intel_pmc_core.o
>> +intel_pmc_core-objs		:= core.o \
>> +				   core_platform.o
> 
> Whereas this will now build a single intel_pmc_core.ko containing both object files,
> but the 2 .c files have:
> 
> module_platform_driver(pmc_core_driver);
> (which is a macro expanding to a module_init + module_exit function)
> 
> resp.
> 
> module_init(pmc_core_platform_init);
> module_exit(pmc_core_platform_exit);
> 
> So now we have 2 module_init (and _exit) functions in a single .ko
> file and the build will fail, not good.

Kate's big intel driver rename series also had a rename patch
for the pmc_core code in there. Since that did not have this
issue I've applied that one instead (otherwise I also would have
trouble applying the rest of Kate's patch-series).

With the rename issue resolved I can apply the rest of the series
on top of Kate's rename. I will go and do that right away, so
there is no need to send a new version.

###

Thank you for your patch-series, I've applied the series to my
review-hans branch:
https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git/log/?h=review-hans

Note it will show up in my review-hans branch once I've pushed my
local branch there, which might take a while.

Once I've run some tests on this branch the patches there will be
added to the platform-drivers-x86/for-next branch and eventually
will be included in the pdx86 pull-request to Linus for the next
merge-window.

Regards,

Hans
diff mbox series

Patch

diff --git a/MAINTAINERS b/MAINTAINERS
index fd25e4ecf0b9..5e118faf8018 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -9477,7 +9477,7 @@  M:	David E Box <david.e.box@intel.com>
 L:	platform-driver-x86@vger.kernel.org
 S:	Maintained
 F:	Documentation/ABI/testing/sysfs-platform-intel-pmc
-F:	drivers/platform/x86/intel_pmc_core*
+F:	drivers/platform/x86/intel/pmc/core*
 
 INTEL PMIC GPIO DRIVERS
 M:	Andy Shevchenko <andy@kernel.org>
diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig
index d12db6c316ea..c4ee38eba44b 100644
--- a/drivers/platform/x86/Kconfig
+++ b/drivers/platform/x86/Kconfig
@@ -1187,27 +1187,6 @@  config INTEL_MRFLD_PWRBTN
 	  To compile this driver as a module, choose M here: the module
 	  will be called intel_mrfld_pwrbtn.
 
-config INTEL_PMC_CORE
-	tristate "Intel PMC Core driver"
-	depends on PCI
-	depends on ACPI
-	help
-	  The Intel Platform Controller Hub for Intel Core SoCs provides access
-	  to Power Management Controller registers via various interfaces. This
-	  driver can utilize debugging capabilities and supported features as
-	  exposed by the Power Management Controller. It also may perform some
-	  tasks in the PMC in order to enable transition into the SLPS0 state.
-	  It should be selected on all Intel platforms supported by the driver.
-
-	  Supported features:
-		- SLP_S0_RESIDENCY counter
-		- PCH IP Power Gating status
-		- LTR Ignore / LTR Show
-		- MPHY/PLL gating status (Sunrisepoint PCH only)
-		- SLPS0 Debug registers (Cannonlake/Icelake PCH)
-		- Low Power Mode registers (Tigerlake and beyond)
-		- PMC quirks as needed to enable SLPS0/S0ix
-
 config INTEL_PMT_CLASS
 	tristate
 	help
diff --git a/drivers/platform/x86/Makefile b/drivers/platform/x86/Makefile
index 7ee369aab10d..43d36f8c36f1 100644
--- a/drivers/platform/x86/Makefile
+++ b/drivers/platform/x86/Makefile
@@ -128,7 +128,6 @@  obj-$(CONFIG_INTEL_UNCORE_FREQ_CONTROL)		+= intel-uncore-frequency.o
 obj-$(CONFIG_INTEL_BXTWC_PMIC_TMU)	+= intel_bxtwc_tmu.o
 obj-$(CONFIG_INTEL_CHTDC_TI_PWRBTN)	+= intel_chtdc_ti_pwrbtn.o
 obj-$(CONFIG_INTEL_MRFLD_PWRBTN)	+= intel_mrfld_pwrbtn.o
-obj-$(CONFIG_INTEL_PMC_CORE)		+= intel_pmc_core.o intel_pmc_core_pltdrv.o
 obj-$(CONFIG_INTEL_PMT_CLASS)		+= intel_pmt_class.o
 obj-$(CONFIG_INTEL_PMT_TELEMETRY)	+= intel_pmt_telemetry.o
 obj-$(CONFIG_INTEL_PMT_CRASHLOG)	+= intel_pmt_crashlog.o
diff --git a/drivers/platform/x86/intel/Kconfig b/drivers/platform/x86/intel/Kconfig
index f2eef337eb98..8ca021785f67 100644
--- a/drivers/platform/x86/intel/Kconfig
+++ b/drivers/platform/x86/intel/Kconfig
@@ -18,5 +18,6 @@  if X86_PLATFORM_DRIVERS_INTEL
 
 source "drivers/platform/x86/intel/int33fe/Kconfig"
 source "drivers/platform/x86/intel/int3472/Kconfig"
+source "drivers/platform/x86/intel/pmc/Kconfig"
 
 endif # X86_PLATFORM_DRIVERS_INTEL
diff --git a/drivers/platform/x86/intel/Makefile b/drivers/platform/x86/intel/Makefile
index 0653055942d5..49962f4dfdec 100644
--- a/drivers/platform/x86/intel/Makefile
+++ b/drivers/platform/x86/intel/Makefile
@@ -6,3 +6,4 @@ 
 
 obj-$(CONFIG_INTEL_CHT_INT33FE)		+= int33fe/
 obj-$(CONFIG_INTEL_SKL_INT3472)		+= int3472/
+obj-$(CONFIG_INTEL_PMC_CORE)		+= pmc/
diff --git a/drivers/platform/x86/intel/pmc/Kconfig b/drivers/platform/x86/intel/pmc/Kconfig
new file mode 100644
index 000000000000..c16fc9b2611c
--- /dev/null
+++ b/drivers/platform/x86/intel/pmc/Kconfig
@@ -0,0 +1,22 @@ 
+# SPDX-License-Identifier: GPL-2.0-only
+
+config INTEL_PMC_CORE
+	tristate "Intel PMC Core driver"
+	depends on PCI
+	depends on ACPI
+	help
+	  The Intel Platform Controller Hub for Intel Core SoCs provides access
+	  to Power Management Controller registers via various interfaces. This
+	  driver can utilize debugging capabilities and supported features as
+	  exposed by the Power Management Controller. It also may perform some
+	  tasks in the PMC in order to enable transition into the SLPS0 state.
+	  It should be selected on all Intel platforms supported by the driver.
+
+	  Supported features:
+		- SLP_S0_RESIDENCY counter
+		- PCH IP Power Gating status
+		- LTR Ignore / LTR Show
+		- MPHY/PLL gating status (Sunrise Point PCH only)
+		- SLPS0 Debug registers (Cannon Lake/Ice Lake PCH)
+		- Low Power Mode registers (Tiger Lake and beyond)
+		- PMC quirks as needed to enable SLPS0/S0ix
diff --git a/drivers/platform/x86/intel/pmc/Makefile b/drivers/platform/x86/intel/pmc/Makefile
new file mode 100644
index 000000000000..c92e66846a4a
--- /dev/null
+++ b/drivers/platform/x86/intel/pmc/Makefile
@@ -0,0 +1,6 @@ 
+# SPDX-License-Identifier: GPL-2.0
+#
+
+obj-$(CONFIG_INTEL_PMC_CORE)	+= intel_pmc_core.o
+intel_pmc_core-objs		:= core.o \
+				   core_platform.o
diff --git a/drivers/platform/x86/intel_pmc_core.c b/drivers/platform/x86/intel/pmc/core.c
similarity index 99%
rename from drivers/platform/x86/intel_pmc_core.c
rename to drivers/platform/x86/intel/pmc/core.c
index b0e486a6bdfb..f9de78b08e5d 100644
--- a/drivers/platform/x86/intel_pmc_core.c
+++ b/drivers/platform/x86/intel/pmc/core.c
@@ -31,7 +31,7 @@ 
 #include <asm/msr.h>
 #include <asm/tsc.h>
 
-#include "intel_pmc_core.h"
+#include "core.h"
 
 #define ACPI_S0IX_DSM_UUID		"57a6512e-3979-4e9d-9708-ff13b2508972"
 #define ACPI_GET_LOW_MODE_REGISTERS	1
diff --git a/drivers/platform/x86/intel_pmc_core.h b/drivers/platform/x86/intel/pmc/core.h
similarity index 100%
rename from drivers/platform/x86/intel_pmc_core.h
rename to drivers/platform/x86/intel/pmc/core.h
diff --git a/drivers/platform/x86/intel_pmc_core_pltdrv.c b/drivers/platform/x86/intel/pmc/core_platform.c
similarity index 100%
rename from drivers/platform/x86/intel_pmc_core_pltdrv.c
rename to drivers/platform/x86/intel/pmc/core_platform.c