public inbox for linux-pm@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] cpufreq: omap: remove driver
@ 2026-01-08  8:26 Andreas Kemnade
  2026-01-08  8:26 ` [PATCH 1/2] " Andreas Kemnade
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Andreas Kemnade @ 2026-01-08  8:26 UTC (permalink / raw)
  To: Rafael J. Wysocki, Viresh Kumar
  Cc: linux-kernel, linux-pm, Aaro Koskinen, Andreas Kemnade,
	Kevin Hilman, Roger Quadros, Tony Lindgren, linux-omap

The driver is not useable since 10 years, and the affected
platforms have alternative drivers, so remove it.

To: Rafael J. Wysocki <rafael@kernel.org>
To: Viresh Kumar <viresh.kumar@linaro.org>
Cc: linux-kernel@vger.kernel.org
Cc: linux-pm@vger.kernel.org
Cc: Aaro Koskinen <aaro.koskinen@iki.fi>
Cc: Andreas Kemnade <andreas@kemnade.info>
Cc: Kevin Hilman <khilman@baylibre.com>
Cc: Roger Quadros <rogerq@kernel.org>
Cc: Tony Lindgren <tony@atomide.com>
Cc: linux-omap@vger.kernel.org

Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
---
Andreas Kemnade (2):
      cpufreq: omap: remove driver
      MAINTAINERS: remove omap-cpufreq

 MAINTAINERS                    |   1 -
 drivers/cpufreq/Kconfig.arm    |   5 --
 drivers/cpufreq/Makefile       |   1 -
 drivers/cpufreq/omap-cpufreq.c | 195 -----------------------------------------
 4 files changed, 202 deletions(-)
---
base-commit: 9ace4753a5202b02191d54e9fdf7f9e3d02b85eb
change-id: 20260108-omap-cpufreq-removal-5615f40eec96

Best regards,
--  
Andreas Kemnade <andreas@kemnade.info>


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 1/2] cpufreq: omap: remove driver
  2026-01-08  8:26 [PATCH 0/2] cpufreq: omap: remove driver Andreas Kemnade
@ 2026-01-08  8:26 ` Andreas Kemnade
  2026-01-08  8:26 ` [PATCH 2/2] MAINTAINERS: remove omap-cpufreq Andreas Kemnade
  2026-01-08 20:15 ` [PATCH 0/2] cpufreq: omap: remove driver Kevin Hilman
  2 siblings, 0 replies; 6+ messages in thread
From: Andreas Kemnade @ 2026-01-08  8:26 UTC (permalink / raw)
  To: Rafael J. Wysocki, Viresh Kumar
  Cc: linux-kernel, linux-pm, Aaro Koskinen, Andreas Kemnade,
	Kevin Hilman, Roger Quadros, Tony Lindgren, linux-omap

The omap-cpufreq driver is not used in the corresponding defconfigs.
The pseudo platform device to use it was removed by
commit cb6675d6a868 ("ARM: OMAP2+: Remove legacy PM init")
10 years ago.

Checking if there is any need to reactivate it:
For omap3, dra7 there is ti-cpufreq to create cpufreq-dt device
For omap2/4/5 there is cpufreq-dt-plat to create cpufreq-dt device.
For omap1 this driver cannot be selected at all.

So no users, no need to reactivate the driver somehow. So remove it.

Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
---
 drivers/cpufreq/Kconfig.arm    |   5 --
 drivers/cpufreq/Makefile       |   1 -
 drivers/cpufreq/omap-cpufreq.c | 195 -----------------------------------------
 3 files changed, 201 deletions(-)

diff --git a/drivers/cpufreq/Kconfig.arm b/drivers/cpufreq/Kconfig.arm
index 9be0503df55a0..4014bc9dd73a2 100644
--- a/drivers/cpufreq/Kconfig.arm
+++ b/drivers/cpufreq/Kconfig.arm
@@ -141,11 +141,6 @@ config ARM_MEDIATEK_CPUFREQ_HW
 	  The driver implements the cpufreq interface for this HW engine.
 	  Say Y if you want to support CPUFreq HW.
 
-config ARM_OMAP2PLUS_CPUFREQ
-	bool "TI OMAP2+"
-	depends on ARCH_OMAP2PLUS || COMPILE_TEST
-	default ARCH_OMAP2PLUS
-
 config ARM_QCOM_CPUFREQ_NVMEM
 	tristate "Qualcomm nvmem based CPUFreq"
 	depends on ARCH_QCOM || COMPILE_TEST
diff --git a/drivers/cpufreq/Makefile b/drivers/cpufreq/Makefile
index 681d687b5a18e..385c9fcc65c62 100644
--- a/drivers/cpufreq/Makefile
+++ b/drivers/cpufreq/Makefile
@@ -69,7 +69,6 @@ obj-$(CONFIG_ARM_KIRKWOOD_CPUFREQ)	+= kirkwood-cpufreq.o
 obj-$(CONFIG_ARM_MEDIATEK_CPUFREQ)	+= mediatek-cpufreq.o
 obj-$(CONFIG_ARM_MEDIATEK_CPUFREQ_HW)	+= mediatek-cpufreq-hw.o
 obj-$(CONFIG_MACH_MVEBU_V7)		+= mvebu-cpufreq.o
-obj-$(CONFIG_ARM_OMAP2PLUS_CPUFREQ)	+= omap-cpufreq.o
 obj-$(CONFIG_ARM_PXA2xx_CPUFREQ)	+= pxa2xx-cpufreq.o
 obj-$(CONFIG_PXA3xx)			+= pxa3xx-cpufreq.o
 obj-$(CONFIG_ARM_QCOM_CPUFREQ_HW)	+= qcom-cpufreq-hw.o
diff --git a/drivers/cpufreq/omap-cpufreq.c b/drivers/cpufreq/omap-cpufreq.c
deleted file mode 100644
index bbb01d93b54b1..0000000000000
--- a/drivers/cpufreq/omap-cpufreq.c
+++ /dev/null
@@ -1,195 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-only
-/*
- *  CPU frequency scaling for OMAP using OPP information
- *
- *  Copyright (C) 2005 Nokia Corporation
- *  Written by Tony Lindgren <tony@atomide.com>
- *
- *  Based on cpu-sa1110.c, Copyright (C) 2001 Russell King
- *
- * Copyright (C) 2007-2011 Texas Instruments, Inc.
- * - OMAP3/4 support by Rajendra Nayak, Santosh Shilimkar
- */
-
-#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
-
-#include <linux/types.h>
-#include <linux/kernel.h>
-#include <linux/sched.h>
-#include <linux/cpufreq.h>
-#include <linux/delay.h>
-#include <linux/init.h>
-#include <linux/err.h>
-#include <linux/clk.h>
-#include <linux/io.h>
-#include <linux/pm_opp.h>
-#include <linux/cpu.h>
-#include <linux/module.h>
-#include <linux/platform_device.h>
-#include <linux/regulator/consumer.h>
-
-/* OPP tolerance in percentage */
-#define	OPP_TOLERANCE	4
-
-static struct cpufreq_frequency_table *freq_table;
-static atomic_t freq_table_users = ATOMIC_INIT(0);
-static struct device *mpu_dev;
-static struct regulator *mpu_reg;
-
-static int omap_target(struct cpufreq_policy *policy, unsigned int index)
-{
-	int r, ret;
-	struct dev_pm_opp *opp;
-	unsigned long freq, volt = 0, volt_old = 0, tol = 0;
-	unsigned int old_freq, new_freq;
-
-	old_freq = policy->cur;
-	new_freq = freq_table[index].frequency;
-
-	freq = new_freq * 1000;
-	ret = clk_round_rate(policy->clk, freq);
-	if (ret < 0) {
-		dev_warn(mpu_dev,
-			 "CPUfreq: Cannot find matching frequency for %lu\n",
-			 freq);
-		return ret;
-	}
-	freq = ret;
-
-	if (mpu_reg) {
-		opp = dev_pm_opp_find_freq_ceil(mpu_dev, &freq);
-		if (IS_ERR(opp)) {
-			dev_err(mpu_dev, "%s: unable to find MPU OPP for %d\n",
-				__func__, new_freq);
-			return -EINVAL;
-		}
-		volt = dev_pm_opp_get_voltage(opp);
-		dev_pm_opp_put(opp);
-		tol = volt * OPP_TOLERANCE / 100;
-		volt_old = regulator_get_voltage(mpu_reg);
-	}
-
-	dev_dbg(mpu_dev, "cpufreq-omap: %u MHz, %ld mV --> %u MHz, %ld mV\n", 
-		old_freq / 1000, volt_old ? volt_old / 1000 : -1,
-		new_freq / 1000, volt ? volt / 1000 : -1);
-
-	/* scaling up?  scale voltage before frequency */
-	if (mpu_reg && (new_freq > old_freq)) {
-		r = regulator_set_voltage(mpu_reg, volt - tol, volt + tol);
-		if (r < 0) {
-			dev_warn(mpu_dev, "%s: unable to scale voltage up.\n",
-				 __func__);
-			return r;
-		}
-	}
-
-	ret = clk_set_rate(policy->clk, new_freq * 1000);
-
-	/* scaling down?  scale voltage after frequency */
-	if (mpu_reg && (new_freq < old_freq)) {
-		r = regulator_set_voltage(mpu_reg, volt - tol, volt + tol);
-		if (r < 0) {
-			dev_warn(mpu_dev, "%s: unable to scale voltage down.\n",
-				 __func__);
-			clk_set_rate(policy->clk, old_freq * 1000);
-			return r;
-		}
-	}
-
-	return ret;
-}
-
-static inline void freq_table_free(void)
-{
-	if (atomic_dec_and_test(&freq_table_users))
-		dev_pm_opp_free_cpufreq_table(mpu_dev, &freq_table);
-}
-
-static int omap_cpu_init(struct cpufreq_policy *policy)
-{
-	int result;
-
-	policy->clk = clk_get(NULL, "cpufreq_ck");
-	if (IS_ERR(policy->clk))
-		return PTR_ERR(policy->clk);
-
-	if (!freq_table) {
-		result = dev_pm_opp_init_cpufreq_table(mpu_dev, &freq_table);
-		if (result) {
-			dev_err(mpu_dev,
-				"%s: cpu%d: failed creating freq table[%d]\n",
-				__func__, policy->cpu, result);
-			clk_put(policy->clk);
-			return result;
-		}
-	}
-
-	atomic_inc_return(&freq_table_users);
-
-	/* FIXME: what's the actual transition time? */
-	cpufreq_generic_init(policy, freq_table, 300 * 1000);
-
-	return 0;
-}
-
-static void omap_cpu_exit(struct cpufreq_policy *policy)
-{
-	freq_table_free();
-	clk_put(policy->clk);
-}
-
-static struct cpufreq_driver omap_driver = {
-	.flags		= CPUFREQ_NEED_INITIAL_FREQ_CHECK,
-	.verify		= cpufreq_generic_frequency_table_verify,
-	.target_index	= omap_target,
-	.get		= cpufreq_generic_get,
-	.init		= omap_cpu_init,
-	.exit		= omap_cpu_exit,
-	.register_em	= cpufreq_register_em_with_opp,
-	.name		= "omap",
-};
-
-static int omap_cpufreq_probe(struct platform_device *pdev)
-{
-	mpu_dev = get_cpu_device(0);
-	if (!mpu_dev) {
-		pr_warn("%s: unable to get the MPU device\n", __func__);
-		return -EINVAL;
-	}
-
-	mpu_reg = regulator_get(mpu_dev, "vcc");
-	if (IS_ERR(mpu_reg)) {
-		pr_warn("%s: unable to get MPU regulator\n", __func__);
-		mpu_reg = NULL;
-	} else {
-		/* 
-		 * Ensure physical regulator is present.
-		 * (e.g. could be dummy regulator.)
-		 */
-		if (regulator_get_voltage(mpu_reg) < 0) {
-			pr_warn("%s: physical regulator not present for MPU\n",
-				__func__);
-			regulator_put(mpu_reg);
-			mpu_reg = NULL;
-		}
-	}
-
-	return cpufreq_register_driver(&omap_driver);
-}
-
-static void omap_cpufreq_remove(struct platform_device *pdev)
-{
-	cpufreq_unregister_driver(&omap_driver);
-}
-
-static struct platform_driver omap_cpufreq_platdrv = {
-	.driver = {
-		.name	= "omap-cpufreq",
-	},
-	.probe		= omap_cpufreq_probe,
-	.remove		= omap_cpufreq_remove,
-};
-module_platform_driver(omap_cpufreq_platdrv);
-
-MODULE_DESCRIPTION("cpufreq driver for OMAP SoCs");
-MODULE_LICENSE("GPL");

-- 
2.47.3


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/2] MAINTAINERS: remove omap-cpufreq
  2026-01-08  8:26 [PATCH 0/2] cpufreq: omap: remove driver Andreas Kemnade
  2026-01-08  8:26 ` [PATCH 1/2] " Andreas Kemnade
@ 2026-01-08  8:26 ` Andreas Kemnade
  2026-01-08 20:15 ` [PATCH 0/2] cpufreq: omap: remove driver Kevin Hilman
  2 siblings, 0 replies; 6+ messages in thread
From: Andreas Kemnade @ 2026-01-08  8:26 UTC (permalink / raw)
  To: Rafael J. Wysocki, Viresh Kumar
  Cc: linux-kernel, linux-pm, Aaro Koskinen, Andreas Kemnade,
	Kevin Hilman, Roger Quadros, Tony Lindgren, linux-omap

Remove entry for omap-cpufreq, since it is removed.

Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
---
 MAINTAINERS | 1 -
 1 file changed, 1 deletion(-)

diff --git a/MAINTAINERS b/MAINTAINERS
index 765ad2daa2183..1065195a22ce2 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -19132,7 +19132,6 @@ M:	Kevin Hilman <khilman@kernel.org>
 L:	linux-omap@vger.kernel.org
 S:	Maintained
 F:	arch/arm/*omap*/*pm*
-F:	drivers/cpufreq/omap-cpufreq.c
 
 OMAP POWERDOMAIN SOC ADAPTATION LAYER SUPPORT
 M:	Paul Walmsley <paul@pwsan.com>

-- 
2.47.3


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH 0/2] cpufreq: omap: remove driver
  2026-01-08  8:26 [PATCH 0/2] cpufreq: omap: remove driver Andreas Kemnade
  2026-01-08  8:26 ` [PATCH 1/2] " Andreas Kemnade
  2026-01-08  8:26 ` [PATCH 2/2] MAINTAINERS: remove omap-cpufreq Andreas Kemnade
@ 2026-01-08 20:15 ` Kevin Hilman
  2026-01-08 20:28   ` Rafael J. Wysocki
  2 siblings, 1 reply; 6+ messages in thread
From: Kevin Hilman @ 2026-01-08 20:15 UTC (permalink / raw)
  To: Andreas Kemnade, Rafael J. Wysocki, Viresh Kumar
  Cc: linux-kernel, linux-pm, Aaro Koskinen, Andreas Kemnade,
	Roger Quadros, Tony Lindgren, linux-omap

Andreas Kemnade <andreas@kemnade.info> writes:

> The driver is not useable since 10 years, and the affected
> platforms have alternative drivers, so remove it.
>
> To: Rafael J. Wysocki <rafael@kernel.org>
> To: Viresh Kumar <viresh.kumar@linaro.org>
> Cc: linux-kernel@vger.kernel.org
> Cc: linux-pm@vger.kernel.org
> Cc: Aaro Koskinen <aaro.koskinen@iki.fi>
> Cc: Andreas Kemnade <andreas@kemnade.info>
> Cc: Kevin Hilman <khilman@baylibre.com>
> Cc: Roger Quadros <rogerq@kernel.org>
> Cc: Tony Lindgren <tony@atomide.com>
> Cc: linux-omap@vger.kernel.org
>
> Signed-off-by: Andreas Kemnade <andreas@kemnade.info>

Acked-by: Kevin Hilman <khilman@baylibre.com>

Viresh, this is/was technically maintained by me, but feel free to take
this via your tree, or let me know if you want me to queue it up.

Kevin

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 0/2] cpufreq: omap: remove driver
  2026-01-08 20:15 ` [PATCH 0/2] cpufreq: omap: remove driver Kevin Hilman
@ 2026-01-08 20:28   ` Rafael J. Wysocki
  2026-01-09  6:17     ` Viresh Kumar
  0 siblings, 1 reply; 6+ messages in thread
From: Rafael J. Wysocki @ 2026-01-08 20:28 UTC (permalink / raw)
  To: Kevin Hilman, Andreas Kemnade
  Cc: Viresh Kumar, linux-kernel, linux-pm, Aaro Koskinen,
	Roger Quadros, Tony Lindgren, linux-omap

On Thu, Jan 8, 2026 at 9:16 PM Kevin Hilman <khilman@baylibre.com> wrote:
>
> Andreas Kemnade <andreas@kemnade.info> writes:
>
> > The driver is not useable since 10 years, and the affected
> > platforms have alternative drivers, so remove it.
> >
> > To: Rafael J. Wysocki <rafael@kernel.org>
> > To: Viresh Kumar <viresh.kumar@linaro.org>
> > Cc: linux-kernel@vger.kernel.org
> > Cc: linux-pm@vger.kernel.org
> > Cc: Aaro Koskinen <aaro.koskinen@iki.fi>
> > Cc: Andreas Kemnade <andreas@kemnade.info>
> > Cc: Kevin Hilman <khilman@baylibre.com>
> > Cc: Roger Quadros <rogerq@kernel.org>
> > Cc: Tony Lindgren <tony@atomide.com>
> > Cc: linux-omap@vger.kernel.org
> >
> > Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
>
> Acked-by: Kevin Hilman <khilman@baylibre.com>
>
> Viresh, this is/was technically maintained by me, but feel free to take
> this via your tree, or let me know if you want me to queue it up.

No need to bother Viresh with this, I've just applied it as 6.20 material.

Thanks!

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 0/2] cpufreq: omap: remove driver
  2026-01-08 20:28   ` Rafael J. Wysocki
@ 2026-01-09  6:17     ` Viresh Kumar
  0 siblings, 0 replies; 6+ messages in thread
From: Viresh Kumar @ 2026-01-09  6:17 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: Kevin Hilman, Andreas Kemnade, linux-kernel, linux-pm,
	Aaro Koskinen, Roger Quadros, Tony Lindgren, linux-omap

On 08-01-26, 21:28, Rafael J. Wysocki wrote:
> On Thu, Jan 8, 2026 at 9:16 PM Kevin Hilman <khilman@baylibre.com> wrote:
> >
> > Andreas Kemnade <andreas@kemnade.info> writes:
> >
> > > The driver is not useable since 10 years, and the affected
> > > platforms have alternative drivers, so remove it.
> > >
> > > To: Rafael J. Wysocki <rafael@kernel.org>
> > > To: Viresh Kumar <viresh.kumar@linaro.org>
> > > Cc: linux-kernel@vger.kernel.org
> > > Cc: linux-pm@vger.kernel.org
> > > Cc: Aaro Koskinen <aaro.koskinen@iki.fi>
> > > Cc: Andreas Kemnade <andreas@kemnade.info>
> > > Cc: Kevin Hilman <khilman@baylibre.com>
> > > Cc: Roger Quadros <rogerq@kernel.org>
> > > Cc: Tony Lindgren <tony@atomide.com>
> > > Cc: linux-omap@vger.kernel.org
> > >
> > > Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
> >
> > Acked-by: Kevin Hilman <khilman@baylibre.com>
> >
> > Viresh, this is/was technically maintained by me, but feel free to take
> > this via your tree, or let me know if you want me to queue it up.
> 
> No need to bother Viresh with this, I've just applied it as 6.20 material.

Thanks Rafael.

-- 
viresh

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2026-01-09  6:17 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-08  8:26 [PATCH 0/2] cpufreq: omap: remove driver Andreas Kemnade
2026-01-08  8:26 ` [PATCH 1/2] " Andreas Kemnade
2026-01-08  8:26 ` [PATCH 2/2] MAINTAINERS: remove omap-cpufreq Andreas Kemnade
2026-01-08 20:15 ` [PATCH 0/2] cpufreq: omap: remove driver Kevin Hilman
2026-01-08 20:28   ` Rafael J. Wysocki
2026-01-09  6:17     ` Viresh Kumar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox