ARM: ux500: Move power-domain driver to the genpd dir
authorUlf Hansson <ulf.hansson@linaro.org>
Fri, 30 Jun 2023 14:28:16 +0000 (16:28 +0200)
committerUlf Hansson <ulf.hansson@linaro.org>
Fri, 14 Jul 2023 08:41:59 +0000 (10:41 +0200)
To simplify with maintenance let's move the ux500 power-domain driver to
the new genpd directory. Going forward, patches are intended to be managed
through a separate git tree, according to MAINTAINERS.

Cc: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
MAINTAINERS
arch/arm/mach-ux500/Makefile
arch/arm/mach-ux500/pm_domains.c [deleted file]
drivers/genpd/Makefile
drivers/genpd/st/Makefile [new file with mode: 0644]
drivers/genpd/st/ste-ux500-pm-domain.c [new file with mode: 0644]

index 633bc6767cd5186dab371bff39ac62cff43481fa..377f68e66fb4766eec3f0f5ad526e884d5c588f1 100644 (file)
@@ -2421,6 +2421,7 @@ F:        arch/arm/mach-ux500/
 F:     drivers/clk/clk-nomadik.c
 F:     drivers/clocksource/clksrc-dbx500-prcmu.c
 F:     drivers/dma/ste_dma40*
+F:     drivers/genpd/st/ste-ux500-pm-domain.c
 F:     drivers/hwspinlock/u8500_hsem.c
 F:     drivers/i2c/busses/i2c-nomadik.c
 F:     drivers/iio/adc/ab8500-gpadc.c
index 5e903241bded6e51b9b5491e02e3f66dd5aa6496..270e5676fa02a9b9bc218afdd22af6dbbc7a1c1a 100644 (file)
@@ -6,4 +6,3 @@
 obj-y                          := pm.o
 obj-$(CONFIG_UX500_SOC_DB8500) += cpu-db8500.o
 obj-$(CONFIG_SMP)              += platsmp.o
-obj-$(CONFIG_PM_GENERIC_DOMAINS) += pm_domains.o
diff --git a/arch/arm/mach-ux500/pm_domains.c b/arch/arm/mach-ux500/pm_domains.c
deleted file mode 100644 (file)
index 3d4f111..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-only
-/*
- * Copyright (C) 2014 Linaro Ltd.
- *
- * Author: Ulf Hansson <ulf.hansson@linaro.org>
- *
- * Implements PM domains using the generic PM domain for ux500.
- */
-#include <linux/device.h>
-#include <linux/kernel.h>
-#include <linux/platform_device.h>
-#include <linux/printk.h>
-#include <linux/slab.h>
-#include <linux/err.h>
-#include <linux/of.h>
-#include <linux/pm_domain.h>
-
-#include <dt-bindings/arm/ux500_pm_domains.h>
-
-static int pd_power_off(struct generic_pm_domain *domain)
-{
-       /*
-        * Handle the gating of the PM domain regulator here.
-        *
-        * Drivers/subsystems handling devices in the PM domain needs to perform
-        * register context save/restore from their respective runtime PM
-        * callbacks, to be able to enable PM domain gating/ungating.
-        */
-       return 0;
-}
-
-static int pd_power_on(struct generic_pm_domain *domain)
-{
-       /*
-        * Handle the ungating of the PM domain regulator here.
-        *
-        * Drivers/subsystems handling devices in the PM domain needs to perform
-        * register context save/restore from their respective runtime PM
-        * callbacks, to be able to enable PM domain gating/ungating.
-        */
-       return 0;
-}
-
-static struct generic_pm_domain ux500_pm_domain_vape = {
-       .name = "VAPE",
-       .power_off = pd_power_off,
-       .power_on = pd_power_on,
-};
-
-static struct generic_pm_domain *ux500_pm_domains[NR_DOMAINS] = {
-       [DOMAIN_VAPE] = &ux500_pm_domain_vape,
-};
-
-static const struct of_device_id ux500_pm_domain_matches[] = {
-       { .compatible = "stericsson,ux500-pm-domains", },
-       { },
-};
-
-static int ux500_pm_domains_probe(struct platform_device *pdev)
-{
-       struct device_node *np = pdev->dev.of_node;
-       struct genpd_onecell_data *genpd_data;
-       int i;
-
-       if (!np)
-               return -ENODEV;
-
-       genpd_data = kzalloc(sizeof(*genpd_data), GFP_KERNEL);
-       if (!genpd_data)
-               return -ENOMEM;
-
-       genpd_data->domains = ux500_pm_domains;
-       genpd_data->num_domains = ARRAY_SIZE(ux500_pm_domains);
-
-       for (i = 0; i < ARRAY_SIZE(ux500_pm_domains); ++i)
-               pm_genpd_init(ux500_pm_domains[i], NULL, false);
-
-       of_genpd_add_provider_onecell(np, genpd_data);
-       return 0;
-}
-
-static struct platform_driver ux500_pm_domains_driver = {
-       .probe  = ux500_pm_domains_probe,
-       .driver = {
-               .name = "ux500_pm_domains",
-               .of_match_table = ux500_pm_domain_matches,
-       },
-};
-
-static int __init ux500_pm_domains_init(void)
-{
-       return platform_driver_register(&ux500_pm_domains_driver);
-}
-arch_initcall(ux500_pm_domains_init);
index efd955f586e960e0125cac7abc106616b5881c98..c429485c13f69acd8a8939d662f8b131dcea6978 100644 (file)
@@ -8,6 +8,7 @@ obj-y                                   += qcom/
 obj-y                                  += renesas/
 obj-y                                  += rockchip/
 obj-y                                  += samsung/
+obj-y                                  += st/
 obj-y                                  += starfive/
 obj-y                                  += sunxi/
 obj-y                                  += tegra/
diff --git a/drivers/genpd/st/Makefile b/drivers/genpd/st/Makefile
new file mode 100644 (file)
index 0000000..8fa5f98
--- /dev/null
@@ -0,0 +1,2 @@
+# SPDX-License-Identifier: GPL-2.0-only
+obj-$(CONFIG_ARCH_U8500)               += ste-ux500-pm-domain.o
diff --git a/drivers/genpd/st/ste-ux500-pm-domain.c b/drivers/genpd/st/ste-ux500-pm-domain.c
new file mode 100644 (file)
index 0000000..3d4f111
--- /dev/null
@@ -0,0 +1,94 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright (C) 2014 Linaro Ltd.
+ *
+ * Author: Ulf Hansson <ulf.hansson@linaro.org>
+ *
+ * Implements PM domains using the generic PM domain for ux500.
+ */
+#include <linux/device.h>
+#include <linux/kernel.h>
+#include <linux/platform_device.h>
+#include <linux/printk.h>
+#include <linux/slab.h>
+#include <linux/err.h>
+#include <linux/of.h>
+#include <linux/pm_domain.h>
+
+#include <dt-bindings/arm/ux500_pm_domains.h>
+
+static int pd_power_off(struct generic_pm_domain *domain)
+{
+       /*
+        * Handle the gating of the PM domain regulator here.
+        *
+        * Drivers/subsystems handling devices in the PM domain needs to perform
+        * register context save/restore from their respective runtime PM
+        * callbacks, to be able to enable PM domain gating/ungating.
+        */
+       return 0;
+}
+
+static int pd_power_on(struct generic_pm_domain *domain)
+{
+       /*
+        * Handle the ungating of the PM domain regulator here.
+        *
+        * Drivers/subsystems handling devices in the PM domain needs to perform
+        * register context save/restore from their respective runtime PM
+        * callbacks, to be able to enable PM domain gating/ungating.
+        */
+       return 0;
+}
+
+static struct generic_pm_domain ux500_pm_domain_vape = {
+       .name = "VAPE",
+       .power_off = pd_power_off,
+       .power_on = pd_power_on,
+};
+
+static struct generic_pm_domain *ux500_pm_domains[NR_DOMAINS] = {
+       [DOMAIN_VAPE] = &ux500_pm_domain_vape,
+};
+
+static const struct of_device_id ux500_pm_domain_matches[] = {
+       { .compatible = "stericsson,ux500-pm-domains", },
+       { },
+};
+
+static int ux500_pm_domains_probe(struct platform_device *pdev)
+{
+       struct device_node *np = pdev->dev.of_node;
+       struct genpd_onecell_data *genpd_data;
+       int i;
+
+       if (!np)
+               return -ENODEV;
+
+       genpd_data = kzalloc(sizeof(*genpd_data), GFP_KERNEL);
+       if (!genpd_data)
+               return -ENOMEM;
+
+       genpd_data->domains = ux500_pm_domains;
+       genpd_data->num_domains = ARRAY_SIZE(ux500_pm_domains);
+
+       for (i = 0; i < ARRAY_SIZE(ux500_pm_domains); ++i)
+               pm_genpd_init(ux500_pm_domains[i], NULL, false);
+
+       of_genpd_add_provider_onecell(np, genpd_data);
+       return 0;
+}
+
+static struct platform_driver ux500_pm_domains_driver = {
+       .probe  = ux500_pm_domains_probe,
+       .driver = {
+               .name = "ux500_pm_domains",
+               .of_match_table = ux500_pm_domain_matches,
+       },
+};
+
+static int __init ux500_pm_domains_init(void)
+{
+       return platform_driver_register(&ux500_pm_domains_driver);
+}
+arch_initcall(ux500_pm_domains_init);