From c1e213e547e2055881a5d162be7cbcb92acdffbc Mon Sep 17 00:00:00 2001 From: Ulf Hansson Date: Fri, 30 Jun 2023 15:26:26 +0200 Subject: [PATCH 01/30] genpd: Create a new subsystem directory to host genpd providers There are currently ~60 users of the genpd provider interface, which implementations are sprinkled across various subsystems. To simplify with maintenance let's create a new subsystem (drivers/genpd) and start moving the providers in there. My intention is also to host a git tree to collect and to get the patches tested/integrated through the linux-next tree. Ideally this should release some of the burden on the soc maintainers. Note that, I will of course require acks/reviews from the current platform maintainers, hence the MAINTAINERS file needs to be updated accordingly for each genpd provider that is moved into the new genpd subsystem. Signed-off-by: Ulf Hansson --- MAINTAINERS | 7 +++++++ drivers/Makefile | 1 + drivers/genpd/Makefile | 1 + 3 files changed, 9 insertions(+) create mode 100644 drivers/genpd/Makefile diff --git a/MAINTAINERS b/MAINTAINERS index 3be1bdfe8ecc..38eebcc97aa2 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -8665,6 +8665,13 @@ F: Documentation/devicetree/bindings/power/power?domain* F: drivers/base/power/domain*.c F: include/linux/pm_domain.h +GENERIC PM DOMAIN PROVIDERS +M: Ulf Hansson +L: linux-pm@vger.kernel.org +S: Supported +T: git git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/linux-pm.git +F: drivers/genpd/ + GENERIC RESISTIVE TOUCHSCREEN ADC DRIVER M: Eugen Hristev L: linux-input@vger.kernel.org diff --git a/drivers/Makefile b/drivers/Makefile index 7241d80a7b29..cffac5b8c092 100644 --- a/drivers/Makefile +++ b/drivers/Makefile @@ -45,6 +45,7 @@ obj-$(CONFIG_DMADEVICES) += dma/ # SOC specific infrastructure drivers. obj-y += soc/ +obj-$(CONFIG_PM_GENERIC_DOMAINS) += genpd/ obj-y += virtio/ obj-$(CONFIG_VDPA) += vdpa/ diff --git a/drivers/genpd/Makefile b/drivers/genpd/Makefile new file mode 100644 index 000000000000..a4e40e534e6a --- /dev/null +++ b/drivers/genpd/Makefile @@ -0,0 +1 @@ +# SPDX-License-Identifier: GPL-2.0-only From 930c9005ed9f6640cb67bbc5c62cd11db3c02a34 Mon Sep 17 00:00:00 2001 From: Ulf Hansson Date: Mon, 3 Jul 2023 17:10:56 +0200 Subject: [PATCH 02/30] soc: actions: Move power-domain driver to the genpd dir MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit To simplify with maintenance let's move the action 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: "Andreas Färber" Cc: Manivannan Sadhasivam Cc: Acked-by: Manivannan Sadhasivam Signed-off-by: Ulf Hansson --- drivers/genpd/Makefile | 1 + drivers/genpd/actions/Makefile | 2 ++ drivers/{soc => genpd}/actions/owl-sps.c | 0 drivers/soc/actions/Makefile | 1 - 4 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 drivers/genpd/actions/Makefile rename drivers/{soc => genpd}/actions/owl-sps.c (100%) diff --git a/drivers/genpd/Makefile b/drivers/genpd/Makefile index a4e40e534e6a..a2d5b2095915 100644 --- a/drivers/genpd/Makefile +++ b/drivers/genpd/Makefile @@ -1 +1,2 @@ # SPDX-License-Identifier: GPL-2.0-only +obj-y += actions/ diff --git a/drivers/genpd/actions/Makefile b/drivers/genpd/actions/Makefile new file mode 100644 index 000000000000..e78c420a2454 --- /dev/null +++ b/drivers/genpd/actions/Makefile @@ -0,0 +1,2 @@ +# SPDX-License-Identifier: GPL-2.0+ +obj-$(CONFIG_OWL_PM_DOMAINS) += owl-sps.o diff --git a/drivers/soc/actions/owl-sps.c b/drivers/genpd/actions/owl-sps.c similarity index 100% rename from drivers/soc/actions/owl-sps.c rename to drivers/genpd/actions/owl-sps.c diff --git a/drivers/soc/actions/Makefile b/drivers/soc/actions/Makefile index 4db9e7b050e5..4ac88fec2050 100644 --- a/drivers/soc/actions/Makefile +++ b/drivers/soc/actions/Makefile @@ -1,4 +1,3 @@ # SPDX-License-Identifier: GPL-2.0+ obj-$(CONFIG_OWL_PM_DOMAINS_HELPER) += owl-sps-helper.o -obj-$(CONFIG_OWL_PM_DOMAINS) += owl-sps.o From 22f86fab644b0c35421a728e4e30286d6f5e5a20 Mon Sep 17 00:00:00 2001 From: Ulf Hansson Date: Mon, 3 Jul 2023 16:09:41 +0200 Subject: [PATCH 03/30] soc: amlogic: Move power-domain drivers to the genpd dir To simplify with maintenance let's move the amlogic power-domain drivers to the new genpd directory. Going forward, patches are intended to be managed through a separate git tree, according to MAINTAINERS. Cc: Neil Armstrong Cc: Kevin Hilman Cc: Jerome Brunet Cc: Martin Blumenstingl Cc: Acked-by: Neil Armstrong Signed-off-by: Ulf Hansson --- MAINTAINERS | 1 + drivers/genpd/Makefile | 1 + drivers/genpd/amlogic/Makefile | 4 ++++ drivers/{soc => genpd}/amlogic/meson-ee-pwrc.c | 0 drivers/{soc => genpd}/amlogic/meson-gx-pwrc-vpu.c | 0 drivers/{soc => genpd}/amlogic/meson-secure-pwrc.c | 0 drivers/soc/amlogic/Makefile | 3 --- 7 files changed, 6 insertions(+), 3 deletions(-) create mode 100644 drivers/genpd/amlogic/Makefile rename drivers/{soc => genpd}/amlogic/meson-ee-pwrc.c (100%) rename drivers/{soc => genpd}/amlogic/meson-gx-pwrc-vpu.c (100%) rename drivers/{soc => genpd}/amlogic/meson-secure-pwrc.c (100%) diff --git a/MAINTAINERS b/MAINTAINERS index 38eebcc97aa2..ab583b8c5b97 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1843,6 +1843,7 @@ F: Documentation/devicetree/bindings/phy/amlogic* F: arch/arm/boot/dts/amlogic/ F: arch/arm/mach-meson/ F: arch/arm64/boot/dts/amlogic/ +F: drivers/genpd/amlogic/ F: drivers/mmc/host/meson* F: drivers/phy/amlogic/ F: drivers/pinctrl/meson/ diff --git a/drivers/genpd/Makefile b/drivers/genpd/Makefile index a2d5b2095915..cdba3b9f0c75 100644 --- a/drivers/genpd/Makefile +++ b/drivers/genpd/Makefile @@ -1,2 +1,3 @@ # SPDX-License-Identifier: GPL-2.0-only obj-y += actions/ +obj-y += amlogic/ diff --git a/drivers/genpd/amlogic/Makefile b/drivers/genpd/amlogic/Makefile new file mode 100644 index 000000000000..3d58abd574f9 --- /dev/null +++ b/drivers/genpd/amlogic/Makefile @@ -0,0 +1,4 @@ +# SPDX-License-Identifier: GPL-2.0-only +obj-$(CONFIG_MESON_GX_PM_DOMAINS) += meson-gx-pwrc-vpu.o +obj-$(CONFIG_MESON_EE_PM_DOMAINS) += meson-ee-pwrc.o +obj-$(CONFIG_MESON_SECURE_PM_DOMAINS) += meson-secure-pwrc.o diff --git a/drivers/soc/amlogic/meson-ee-pwrc.c b/drivers/genpd/amlogic/meson-ee-pwrc.c similarity index 100% rename from drivers/soc/amlogic/meson-ee-pwrc.c rename to drivers/genpd/amlogic/meson-ee-pwrc.c diff --git a/drivers/soc/amlogic/meson-gx-pwrc-vpu.c b/drivers/genpd/amlogic/meson-gx-pwrc-vpu.c similarity index 100% rename from drivers/soc/amlogic/meson-gx-pwrc-vpu.c rename to drivers/genpd/amlogic/meson-gx-pwrc-vpu.c diff --git a/drivers/soc/amlogic/meson-secure-pwrc.c b/drivers/genpd/amlogic/meson-secure-pwrc.c similarity index 100% rename from drivers/soc/amlogic/meson-secure-pwrc.c rename to drivers/genpd/amlogic/meson-secure-pwrc.c diff --git a/drivers/soc/amlogic/Makefile b/drivers/soc/amlogic/Makefile index 7b8c5d323f5c..c25f835e6a26 100644 --- a/drivers/soc/amlogic/Makefile +++ b/drivers/soc/amlogic/Makefile @@ -2,7 +2,4 @@ obj-$(CONFIG_MESON_CANVAS) += meson-canvas.o obj-$(CONFIG_MESON_CLK_MEASURE) += meson-clk-measure.o obj-$(CONFIG_MESON_GX_SOCINFO) += meson-gx-socinfo.o -obj-$(CONFIG_MESON_GX_PM_DOMAINS) += meson-gx-pwrc-vpu.o obj-$(CONFIG_MESON_MX_SOCINFO) += meson-mx-socinfo.o -obj-$(CONFIG_MESON_EE_PM_DOMAINS) += meson-ee-pwrc.o -obj-$(CONFIG_MESON_SECURE_PM_DOMAINS) += meson-secure-pwrc.o From 869b9dd3339a719d41c10870f9aaec39953edd86 Mon Sep 17 00:00:00 2001 From: Ulf Hansson Date: Wed, 5 Jul 2023 00:06:27 +0200 Subject: [PATCH 04/30] soc: apple: Move power-domain driver to the genpd dir To simplify with maintenance let's move the apple 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: Hector Martin Cc: Sven Peter Cc: Alyssa Rosenzweig Cc: Signed-off-by: Ulf Hansson --- MAINTAINERS | 1 + drivers/genpd/Makefile | 1 + drivers/genpd/apple/Makefile | 2 ++ .../apple/apple-pmgr-pwrstate.c => genpd/apple/pmgr-pwrstate.c} | 0 drivers/soc/apple/Makefile | 2 -- 5 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 drivers/genpd/apple/Makefile rename drivers/{soc/apple/apple-pmgr-pwrstate.c => genpd/apple/pmgr-pwrstate.c} (100%) diff --git a/MAINTAINERS b/MAINTAINERS index ab583b8c5b97..caa221fd0c11 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1904,6 +1904,7 @@ F: drivers/bluetooth/hci_bcm4377.c F: drivers/clk/clk-apple-nco.c F: drivers/cpufreq/apple-soc-cpufreq.c F: drivers/dma/apple-admac.c +F: drivers/genpd/apple/ F: drivers/i2c/busses/i2c-pasemi-core.c F: drivers/i2c/busses/i2c-pasemi-platform.c F: drivers/iommu/apple-dart.c diff --git a/drivers/genpd/Makefile b/drivers/genpd/Makefile index cdba3b9f0c75..91d4a3808981 100644 --- a/drivers/genpd/Makefile +++ b/drivers/genpd/Makefile @@ -1,3 +1,4 @@ # SPDX-License-Identifier: GPL-2.0-only obj-y += actions/ obj-y += amlogic/ +obj-y += apple/ diff --git a/drivers/genpd/apple/Makefile b/drivers/genpd/apple/Makefile new file mode 100644 index 000000000000..53665af630be --- /dev/null +++ b/drivers/genpd/apple/Makefile @@ -0,0 +1,2 @@ +# SPDX-License-Identifier: GPL-2.0-only +obj-$(CONFIG_APPLE_PMGR_PWRSTATE) += pmgr-pwrstate.o diff --git a/drivers/soc/apple/apple-pmgr-pwrstate.c b/drivers/genpd/apple/pmgr-pwrstate.c similarity index 100% rename from drivers/soc/apple/apple-pmgr-pwrstate.c rename to drivers/genpd/apple/pmgr-pwrstate.c diff --git a/drivers/soc/apple/Makefile b/drivers/soc/apple/Makefile index e293770cf66d..b241e6a65e5b 100644 --- a/drivers/soc/apple/Makefile +++ b/drivers/soc/apple/Makefile @@ -1,6 +1,4 @@ # SPDX-License-Identifier: GPL-2.0-only -obj-$(CONFIG_APPLE_PMGR_PWRSTATE) += apple-pmgr-pwrstate.o - obj-$(CONFIG_APPLE_RTKIT) += apple-rtkit.o apple-rtkit-y = rtkit.o rtkit-crashlog.o From aded002384c13a473af7d519e38ff59bf6056289 Mon Sep 17 00:00:00 2001 From: Ulf Hansson Date: Wed, 5 Jul 2023 00:36:24 +0200 Subject: [PATCH 05/30] soc: bcm: Move power-domain drivers to the genpd dir To simplify with maintenance let's move the bcm power-domain drivers to the new genpd directory. Going forward, patches are intended to be managed through a separate git tree, according to MAINTAINERS. While moving the drivers, we end up with a directory for bcm63xx that only contains a Kconfig file, which seems a bit silly. Let's therefore also move the Kconfig options into the Kconfig file a directory above, as it allows us to drop the directory too. Cc: Florian Fainelli Cc: Ray Jui Cc: Scott Branden Cc: Cc: Signed-off-by: Ulf Hansson --- MAINTAINERS | 4 ++-- drivers/genpd/Makefile | 1 + drivers/genpd/bcm/Makefile | 5 +++++ .../{soc/bcm/bcm63xx => genpd/bcm}/bcm-pmb.c | 0 drivers/{soc => genpd}/bcm/bcm2835-power.c | 0 .../bcm/bcm63xx => genpd/bcm}/bcm63xx-power.c | 0 .../{soc => genpd}/bcm/raspberrypi-power.c | 0 drivers/soc/bcm/Kconfig | 22 ++++++++++++++++++- drivers/soc/bcm/Makefile | 3 --- drivers/soc/bcm/bcm63xx/Kconfig | 21 ------------------ drivers/soc/bcm/bcm63xx/Makefile | 3 --- 11 files changed, 29 insertions(+), 30 deletions(-) create mode 100644 drivers/genpd/bcm/Makefile rename drivers/{soc/bcm/bcm63xx => genpd/bcm}/bcm-pmb.c (100%) rename drivers/{soc => genpd}/bcm/bcm2835-power.c (100%) rename drivers/{soc/bcm/bcm63xx => genpd/bcm}/bcm63xx-power.c (100%) rename drivers/{soc => genpd}/bcm/raspberrypi-power.c (100%) delete mode 100644 drivers/soc/bcm/bcm63xx/Kconfig delete mode 100644 drivers/soc/bcm/bcm63xx/Makefile diff --git a/MAINTAINERS b/MAINTAINERS index caa221fd0c11..77629ab4a5f0 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -4009,7 +4009,7 @@ F: arch/mips/kernel/*bmips* F: drivers/irqchip/irq-bcm63* F: drivers/irqchip/irq-bcm7* F: drivers/irqchip/irq-brcmstb* -F: drivers/soc/bcm/bcm63xx +F: drivers/genpd/bcm/bcm63xx-power.c F: include/linux/bcm963xx_nvram.h F: include/linux/bcm963xx_tag.h @@ -4224,7 +4224,7 @@ R: Broadcom internal kernel review list L: linux-pm@vger.kernel.org S: Maintained T: git https://github.com/broadcom/stblinux.git -F: drivers/soc/bcm/bcm63xx/bcm-pmb.c +F: drivers/genpd/bcm/bcm-pmb.c F: include/dt-bindings/soc/bcm-pmb.h BROADCOM SPECIFIC AMBA DRIVER (BCMA) diff --git a/drivers/genpd/Makefile b/drivers/genpd/Makefile index 91d4a3808981..6b9e9fe907f3 100644 --- a/drivers/genpd/Makefile +++ b/drivers/genpd/Makefile @@ -2,3 +2,4 @@ obj-y += actions/ obj-y += amlogic/ obj-y += apple/ +obj-y += bcm/ diff --git a/drivers/genpd/bcm/Makefile b/drivers/genpd/bcm/Makefile new file mode 100644 index 000000000000..6bfbe4e4db13 --- /dev/null +++ b/drivers/genpd/bcm/Makefile @@ -0,0 +1,5 @@ +# SPDX-License-Identifier: GPL-2.0-only +obj-$(CONFIG_BCM_PMB) += bcm-pmb.o +obj-$(CONFIG_BCM2835_POWER) += bcm2835-power.o +obj-$(CONFIG_BCM63XX_POWER) += bcm63xx-power.o +obj-$(CONFIG_RASPBERRYPI_POWER) += raspberrypi-power.o diff --git a/drivers/soc/bcm/bcm63xx/bcm-pmb.c b/drivers/genpd/bcm/bcm-pmb.c similarity index 100% rename from drivers/soc/bcm/bcm63xx/bcm-pmb.c rename to drivers/genpd/bcm/bcm-pmb.c diff --git a/drivers/soc/bcm/bcm2835-power.c b/drivers/genpd/bcm/bcm2835-power.c similarity index 100% rename from drivers/soc/bcm/bcm2835-power.c rename to drivers/genpd/bcm/bcm2835-power.c diff --git a/drivers/soc/bcm/bcm63xx/bcm63xx-power.c b/drivers/genpd/bcm/bcm63xx-power.c similarity index 100% rename from drivers/soc/bcm/bcm63xx/bcm63xx-power.c rename to drivers/genpd/bcm/bcm63xx-power.c diff --git a/drivers/soc/bcm/raspberrypi-power.c b/drivers/genpd/bcm/raspberrypi-power.c similarity index 100% rename from drivers/soc/bcm/raspberrypi-power.c rename to drivers/genpd/bcm/raspberrypi-power.c diff --git a/drivers/soc/bcm/Kconfig b/drivers/soc/bcm/Kconfig index 24f92a6e882a..f96906795fa6 100644 --- a/drivers/soc/bcm/Kconfig +++ b/drivers/soc/bcm/Kconfig @@ -42,7 +42,27 @@ config SOC_BRCMSTB If unsure, say N. -source "drivers/soc/bcm/bcm63xx/Kconfig" +config BCM_PMB + bool "Broadcom PMB (Power Management Bus) driver" + depends on ARCH_BCMBCA || (COMPILE_TEST && OF) + default ARCH_BCMBCA + select PM_GENERIC_DOMAINS if PM + help + This enables support for the Broadcom's PMB (Power Management Bus) that + is used for disabling and enabling SoC devices. + +if SOC_BCM63XX + +config BCM63XX_POWER + bool "BCM63xx power domain driver" + depends on BMIPS_GENERIC || (COMPILE_TEST && OF) + select PM_GENERIC_DOMAINS if PM + help + This enables support for the BCM63xx power domains controller on + BCM6318, BCM6328, BCM6362 and BCM63268 SoCs. + +endif # SOC_BCM63XX + source "drivers/soc/bcm/brcmstb/Kconfig" endmenu diff --git a/drivers/soc/bcm/Makefile b/drivers/soc/bcm/Makefile index 0f0efa28d92b..32424b1032c7 100644 --- a/drivers/soc/bcm/Makefile +++ b/drivers/soc/bcm/Makefile @@ -1,5 +1,2 @@ # SPDX-License-Identifier: GPL-2.0-only -obj-$(CONFIG_BCM2835_POWER) += bcm2835-power.o -obj-$(CONFIG_RASPBERRYPI_POWER) += raspberrypi-power.o -obj-y += bcm63xx/ obj-$(CONFIG_SOC_BRCMSTB) += brcmstb/ diff --git a/drivers/soc/bcm/bcm63xx/Kconfig b/drivers/soc/bcm/bcm63xx/Kconfig deleted file mode 100644 index 355c34482076..000000000000 --- a/drivers/soc/bcm/bcm63xx/Kconfig +++ /dev/null @@ -1,21 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only -if SOC_BCM63XX - -config BCM63XX_POWER - bool "BCM63xx power domain driver" - depends on BMIPS_GENERIC || (COMPILE_TEST && OF) - select PM_GENERIC_DOMAINS if PM - help - This enables support for the BCM63xx power domains controller on - BCM6318, BCM6328, BCM6362 and BCM63268 SoCs. - -endif # SOC_BCM63XX - -config BCM_PMB - bool "Broadcom PMB (Power Management Bus) driver" - depends on ARCH_BCMBCA || (COMPILE_TEST && OF) - default ARCH_BCMBCA - select PM_GENERIC_DOMAINS if PM - help - This enables support for the Broadcom's PMB (Power Management Bus) that - is used for disabling and enabling SoC devices. diff --git a/drivers/soc/bcm/bcm63xx/Makefile b/drivers/soc/bcm/bcm63xx/Makefile deleted file mode 100644 index 557eed3d67bd..000000000000 --- a/drivers/soc/bcm/bcm63xx/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only -obj-$(CONFIG_BCM63XX_POWER) += bcm63xx-power.o -obj-$(CONFIG_BCM_PMB) += bcm-pmb.o From e5300b2c3fe0c02ef3bf2cf3fc3c16f021344043 Mon Sep 17 00:00:00 2001 From: Ulf Hansson Date: Wed, 5 Jul 2023 14:17:29 +0200 Subject: [PATCH 06/30] soc: imx: Move power-domain drivers to the genpd dir To simplify with maintenance let's move the imx power-domain drivers to the new genpd directory. Going forward, patches are intended to be managed through a separate git tree, according to MAINTAINERS. Cc: Shawn Guo Cc: Sascha Hauer Cc: Fabio Estevam Cc: Cc: Reviewed-by: Fabio Estevam Signed-off-by: Ulf Hansson --- drivers/genpd/imx/Makefile | 7 +++++++ drivers/{soc => genpd}/imx/gpc.c | 0 drivers/{soc => genpd}/imx/gpcv2.c | 0 drivers/{soc => genpd}/imx/imx8m-blk-ctrl.c | 0 drivers/{soc => genpd}/imx/imx8mp-blk-ctrl.c | 0 drivers/{soc => genpd}/imx/imx93-blk-ctrl.c | 0 drivers/{soc => genpd}/imx/imx93-pd.c | 0 drivers/soc/imx/Makefile | 7 +------ 8 files changed, 8 insertions(+), 6 deletions(-) create mode 100644 drivers/genpd/imx/Makefile rename drivers/{soc => genpd}/imx/gpc.c (100%) rename drivers/{soc => genpd}/imx/gpcv2.c (100%) rename drivers/{soc => genpd}/imx/imx8m-blk-ctrl.c (100%) rename drivers/{soc => genpd}/imx/imx8mp-blk-ctrl.c (100%) rename drivers/{soc => genpd}/imx/imx93-blk-ctrl.c (100%) rename drivers/{soc => genpd}/imx/imx93-pd.c (100%) diff --git a/drivers/genpd/imx/Makefile b/drivers/genpd/imx/Makefile new file mode 100644 index 000000000000..5f012717a666 --- /dev/null +++ b/drivers/genpd/imx/Makefile @@ -0,0 +1,7 @@ +# SPDX-License-Identifier: GPL-2.0-only +obj-$(CONFIG_HAVE_IMX_GPC) += gpc.o +obj-$(CONFIG_IMX_GPCV2_PM_DOMAINS) += gpcv2.o +obj-$(CONFIG_IMX8M_BLK_CTRL) += imx8m-blk-ctrl.o +obj-$(CONFIG_IMX8M_BLK_CTRL) += imx8mp-blk-ctrl.o +obj-$(CONFIG_SOC_IMX9) += imx93-pd.o +obj-$(CONFIG_IMX9_BLK_CTRL) += imx93-blk-ctrl.o diff --git a/drivers/soc/imx/gpc.c b/drivers/genpd/imx/gpc.c similarity index 100% rename from drivers/soc/imx/gpc.c rename to drivers/genpd/imx/gpc.c diff --git a/drivers/soc/imx/gpcv2.c b/drivers/genpd/imx/gpcv2.c similarity index 100% rename from drivers/soc/imx/gpcv2.c rename to drivers/genpd/imx/gpcv2.c diff --git a/drivers/soc/imx/imx8m-blk-ctrl.c b/drivers/genpd/imx/imx8m-blk-ctrl.c similarity index 100% rename from drivers/soc/imx/imx8m-blk-ctrl.c rename to drivers/genpd/imx/imx8m-blk-ctrl.c diff --git a/drivers/soc/imx/imx8mp-blk-ctrl.c b/drivers/genpd/imx/imx8mp-blk-ctrl.c similarity index 100% rename from drivers/soc/imx/imx8mp-blk-ctrl.c rename to drivers/genpd/imx/imx8mp-blk-ctrl.c diff --git a/drivers/soc/imx/imx93-blk-ctrl.c b/drivers/genpd/imx/imx93-blk-ctrl.c similarity index 100% rename from drivers/soc/imx/imx93-blk-ctrl.c rename to drivers/genpd/imx/imx93-blk-ctrl.c diff --git a/drivers/soc/imx/imx93-pd.c b/drivers/genpd/imx/imx93-pd.c similarity index 100% rename from drivers/soc/imx/imx93-pd.c rename to drivers/genpd/imx/imx93-pd.c diff --git a/drivers/soc/imx/Makefile b/drivers/soc/imx/Makefile index a28c44a1f16a..3ad321ca608a 100644 --- a/drivers/soc/imx/Makefile +++ b/drivers/soc/imx/Makefile @@ -2,10 +2,5 @@ ifeq ($(CONFIG_ARM),y) obj-$(CONFIG_ARCH_MXC) += soc-imx.o endif -obj-$(CONFIG_HAVE_IMX_GPC) += gpc.o -obj-$(CONFIG_IMX_GPCV2_PM_DOMAINS) += gpcv2.o obj-$(CONFIG_SOC_IMX8M) += soc-imx8m.o -obj-$(CONFIG_IMX8M_BLK_CTRL) += imx8m-blk-ctrl.o -obj-$(CONFIG_IMX8M_BLK_CTRL) += imx8mp-blk-ctrl.o -obj-$(CONFIG_SOC_IMX9) += imx93-src.o imx93-pd.o -obj-$(CONFIG_IMX9_BLK_CTRL) += imx93-blk-ctrl.o +obj-$(CONFIG_SOC_IMX9) += imx93-src.o From fcd9632122d713fe30cd9829188d52d6a175c33a Mon Sep 17 00:00:00 2001 From: Ulf Hansson Date: Wed, 5 Jul 2023 17:04:34 +0200 Subject: [PATCH 07/30] soc: mediatek: Move power-domain drivers to the genpd dir To simplify with maintenance let's move the mediatek power-domain drivers to the new genpd directory. Going forward, patches are intended to be managed through a separate git tree, according to MAINTAINERS. Cc: Matthias Brugger Cc: AngeloGioacchino Del Regno Cc: Signed-off-by: Ulf Hansson --- drivers/genpd/Makefile | 1 + drivers/genpd/mediatek/Makefile | 3 +++ drivers/{soc => genpd}/mediatek/mt6795-pm-domains.h | 0 drivers/{soc => genpd}/mediatek/mt8167-pm-domains.h | 0 drivers/{soc => genpd}/mediatek/mt8173-pm-domains.h | 0 drivers/{soc => genpd}/mediatek/mt8183-pm-domains.h | 0 drivers/{soc => genpd}/mediatek/mt8186-pm-domains.h | 0 drivers/{soc => genpd}/mediatek/mt8188-pm-domains.h | 0 drivers/{soc => genpd}/mediatek/mt8192-pm-domains.h | 0 drivers/{soc => genpd}/mediatek/mt8195-pm-domains.h | 0 drivers/{soc => genpd}/mediatek/mtk-pm-domains.c | 0 drivers/{soc => genpd}/mediatek/mtk-pm-domains.h | 0 drivers/{soc => genpd}/mediatek/mtk-scpsys.c | 0 drivers/soc/mediatek/Makefile | 2 -- 14 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 drivers/genpd/mediatek/Makefile rename drivers/{soc => genpd}/mediatek/mt6795-pm-domains.h (100%) rename drivers/{soc => genpd}/mediatek/mt8167-pm-domains.h (100%) rename drivers/{soc => genpd}/mediatek/mt8173-pm-domains.h (100%) rename drivers/{soc => genpd}/mediatek/mt8183-pm-domains.h (100%) rename drivers/{soc => genpd}/mediatek/mt8186-pm-domains.h (100%) rename drivers/{soc => genpd}/mediatek/mt8188-pm-domains.h (100%) rename drivers/{soc => genpd}/mediatek/mt8192-pm-domains.h (100%) rename drivers/{soc => genpd}/mediatek/mt8195-pm-domains.h (100%) rename drivers/{soc => genpd}/mediatek/mtk-pm-domains.c (100%) rename drivers/{soc => genpd}/mediatek/mtk-pm-domains.h (100%) rename drivers/{soc => genpd}/mediatek/mtk-scpsys.c (100%) diff --git a/drivers/genpd/Makefile b/drivers/genpd/Makefile index 6b9e9fe907f3..1a0a56925756 100644 --- a/drivers/genpd/Makefile +++ b/drivers/genpd/Makefile @@ -3,3 +3,4 @@ obj-y += actions/ obj-y += amlogic/ obj-y += apple/ obj-y += bcm/ +obj-y += mediatek/ diff --git a/drivers/genpd/mediatek/Makefile b/drivers/genpd/mediatek/Makefile new file mode 100644 index 000000000000..8cde09e654b3 --- /dev/null +++ b/drivers/genpd/mediatek/Makefile @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: GPL-2.0-only +obj-$(CONFIG_MTK_SCPSYS) += mtk-scpsys.o +obj-$(CONFIG_MTK_SCPSYS_PM_DOMAINS) += mtk-pm-domains.o diff --git a/drivers/soc/mediatek/mt6795-pm-domains.h b/drivers/genpd/mediatek/mt6795-pm-domains.h similarity index 100% rename from drivers/soc/mediatek/mt6795-pm-domains.h rename to drivers/genpd/mediatek/mt6795-pm-domains.h diff --git a/drivers/soc/mediatek/mt8167-pm-domains.h b/drivers/genpd/mediatek/mt8167-pm-domains.h similarity index 100% rename from drivers/soc/mediatek/mt8167-pm-domains.h rename to drivers/genpd/mediatek/mt8167-pm-domains.h diff --git a/drivers/soc/mediatek/mt8173-pm-domains.h b/drivers/genpd/mediatek/mt8173-pm-domains.h similarity index 100% rename from drivers/soc/mediatek/mt8173-pm-domains.h rename to drivers/genpd/mediatek/mt8173-pm-domains.h diff --git a/drivers/soc/mediatek/mt8183-pm-domains.h b/drivers/genpd/mediatek/mt8183-pm-domains.h similarity index 100% rename from drivers/soc/mediatek/mt8183-pm-domains.h rename to drivers/genpd/mediatek/mt8183-pm-domains.h diff --git a/drivers/soc/mediatek/mt8186-pm-domains.h b/drivers/genpd/mediatek/mt8186-pm-domains.h similarity index 100% rename from drivers/soc/mediatek/mt8186-pm-domains.h rename to drivers/genpd/mediatek/mt8186-pm-domains.h diff --git a/drivers/soc/mediatek/mt8188-pm-domains.h b/drivers/genpd/mediatek/mt8188-pm-domains.h similarity index 100% rename from drivers/soc/mediatek/mt8188-pm-domains.h rename to drivers/genpd/mediatek/mt8188-pm-domains.h diff --git a/drivers/soc/mediatek/mt8192-pm-domains.h b/drivers/genpd/mediatek/mt8192-pm-domains.h similarity index 100% rename from drivers/soc/mediatek/mt8192-pm-domains.h rename to drivers/genpd/mediatek/mt8192-pm-domains.h diff --git a/drivers/soc/mediatek/mt8195-pm-domains.h b/drivers/genpd/mediatek/mt8195-pm-domains.h similarity index 100% rename from drivers/soc/mediatek/mt8195-pm-domains.h rename to drivers/genpd/mediatek/mt8195-pm-domains.h diff --git a/drivers/soc/mediatek/mtk-pm-domains.c b/drivers/genpd/mediatek/mtk-pm-domains.c similarity index 100% rename from drivers/soc/mediatek/mtk-pm-domains.c rename to drivers/genpd/mediatek/mtk-pm-domains.c diff --git a/drivers/soc/mediatek/mtk-pm-domains.h b/drivers/genpd/mediatek/mtk-pm-domains.h similarity index 100% rename from drivers/soc/mediatek/mtk-pm-domains.h rename to drivers/genpd/mediatek/mtk-pm-domains.h diff --git a/drivers/soc/mediatek/mtk-scpsys.c b/drivers/genpd/mediatek/mtk-scpsys.c similarity index 100% rename from drivers/soc/mediatek/mtk-scpsys.c rename to drivers/genpd/mediatek/mtk-scpsys.c diff --git a/drivers/soc/mediatek/Makefile b/drivers/soc/mediatek/Makefile index 8c0ddacbcde8..9d3ce7878c5c 100644 --- a/drivers/soc/mediatek/Makefile +++ b/drivers/soc/mediatek/Makefile @@ -4,8 +4,6 @@ obj-$(CONFIG_MTK_DEVAPC) += mtk-devapc.o obj-$(CONFIG_MTK_INFRACFG) += mtk-infracfg.o obj-$(CONFIG_MTK_PMIC_WRAP) += mtk-pmic-wrap.o obj-$(CONFIG_MTK_REGULATOR_COUPLER) += mtk-regulator-coupler.o -obj-$(CONFIG_MTK_SCPSYS) += mtk-scpsys.o -obj-$(CONFIG_MTK_SCPSYS_PM_DOMAINS) += mtk-pm-domains.o obj-$(CONFIG_MTK_MMSYS) += mtk-mmsys.o obj-$(CONFIG_MTK_MMSYS) += mtk-mutex.o obj-$(CONFIG_MTK_SVS) += mtk-svs.o From 84e9c58c21663b4008ddec3c431aef191c993ffd Mon Sep 17 00:00:00 2001 From: Ulf Hansson Date: Wed, 5 Jul 2023 17:23:33 +0200 Subject: [PATCH 08/30] soc: qcom: Move power-domain drivers to the genpd dir To simplify with maintenance let's move the qcom power-domain drivers to the new genpd directory. Going forward, patches are intended to be managed through a separate git tree, according to MAINTAINERS. Cc: Bjorn Andersson Cc: Konrad Dybcio Cc: Andy Gross Cc: Acked-by: Bjorn Andersson Signed-off-by: Ulf Hansson --- MAINTAINERS | 2 +- drivers/genpd/Makefile | 1 + drivers/genpd/qcom/Makefile | 4 ++++ drivers/{soc => genpd}/qcom/cpr.c | 0 drivers/{soc => genpd}/qcom/rpmhpd.c | 0 drivers/{soc => genpd}/qcom/rpmpd.c | 0 drivers/soc/qcom/Makefile | 3 --- 7 files changed, 6 insertions(+), 4 deletions(-) create mode 100644 drivers/genpd/qcom/Makefile rename drivers/{soc => genpd}/qcom/cpr.c (100%) rename drivers/{soc => genpd}/qcom/rpmhpd.c (100%) rename drivers/{soc => genpd}/qcom/rpmpd.c (100%) diff --git a/MAINTAINERS b/MAINTAINERS index 77629ab4a5f0..9abd868abfc8 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -17524,7 +17524,7 @@ L: linux-pm@vger.kernel.org L: linux-arm-msm@vger.kernel.org S: Maintained F: Documentation/devicetree/bindings/power/avs/qcom,cpr.yaml -F: drivers/soc/qcom/cpr.c +F: drivers/genpd/qcom/cpr.c QUALCOMM CPUFREQ DRIVER MSM8996/APQ8096 M: Ilia Lin diff --git a/drivers/genpd/Makefile b/drivers/genpd/Makefile index 1a0a56925756..dfdea14e2a8a 100644 --- a/drivers/genpd/Makefile +++ b/drivers/genpd/Makefile @@ -4,3 +4,4 @@ obj-y += amlogic/ obj-y += apple/ obj-y += bcm/ obj-y += mediatek/ +obj-y += qcom/ diff --git a/drivers/genpd/qcom/Makefile b/drivers/genpd/qcom/Makefile new file mode 100644 index 000000000000..403dfc5af095 --- /dev/null +++ b/drivers/genpd/qcom/Makefile @@ -0,0 +1,4 @@ +# SPDX-License-Identifier: GPL-2.0 +obj-$(CONFIG_QCOM_CPR) += cpr.o +obj-$(CONFIG_QCOM_RPMPD) += rpmpd.o +obj-$(CONFIG_QCOM_RPMHPD) += rpmhpd.o diff --git a/drivers/soc/qcom/cpr.c b/drivers/genpd/qcom/cpr.c similarity index 100% rename from drivers/soc/qcom/cpr.c rename to drivers/genpd/qcom/cpr.c diff --git a/drivers/soc/qcom/rpmhpd.c b/drivers/genpd/qcom/rpmhpd.c similarity index 100% rename from drivers/soc/qcom/rpmhpd.c rename to drivers/genpd/qcom/rpmhpd.c diff --git a/drivers/soc/qcom/rpmpd.c b/drivers/genpd/qcom/rpmpd.c similarity index 100% rename from drivers/soc/qcom/rpmpd.c rename to drivers/genpd/qcom/rpmpd.c diff --git a/drivers/soc/qcom/Makefile b/drivers/soc/qcom/Makefile index 99114c71092b..f548a7150bb2 100644 --- a/drivers/soc/qcom/Makefile +++ b/drivers/soc/qcom/Makefile @@ -3,7 +3,6 @@ CFLAGS_rpmh-rsc.o := -I$(src) obj-$(CONFIG_QCOM_AOSS_QMP) += qcom_aoss.o obj-$(CONFIG_QCOM_GENI_SE) += qcom-geni-se.o obj-$(CONFIG_QCOM_COMMAND_DB) += cmd-db.o -obj-$(CONFIG_QCOM_CPR) += cpr.o obj-$(CONFIG_QCOM_GSBI) += qcom_gsbi.o obj-$(CONFIG_QCOM_MDT_LOADER) += mdt_loader.o obj-$(CONFIG_QCOM_OCMEM) += ocmem.o @@ -29,8 +28,6 @@ obj-$(CONFIG_QCOM_STATS) += qcom_stats.o obj-$(CONFIG_QCOM_WCNSS_CTRL) += wcnss_ctrl.o obj-$(CONFIG_QCOM_APR) += apr.o obj-$(CONFIG_QCOM_LLCC) += llcc-qcom.o -obj-$(CONFIG_QCOM_RPMHPD) += rpmhpd.o -obj-$(CONFIG_QCOM_RPMPD) += rpmpd.o obj-$(CONFIG_QCOM_KRYO_L2_ACCESSORS) += kryo-l2-accessors.o obj-$(CONFIG_QCOM_ICC_BWMON) += icc-bwmon.o qcom_ice-objs += ice.o From 86341a84495cb4201948053fecb71f6bda2baaa6 Mon Sep 17 00:00:00 2001 From: Ulf Hansson Date: Wed, 5 Jul 2023 17:51:37 +0200 Subject: [PATCH 09/30] soc: renesas: Move power-domain drivers to the genpd dir To simplify with maintenance let's move the renesas power-domain drivers to the new genpd directory. Going forward, patches are intended to be managed through a separate git tree, according to MAINTAINERS. Cc: Geert Uytterhoeven Cc: Magnus Damm Cc: Signed-off-by: Ulf Hansson --- MAINTAINERS | 1 + drivers/genpd/Makefile | 1 + drivers/genpd/renesas/Makefile | 30 +++++++++++++++++++ drivers/{soc => genpd}/renesas/r8a7742-sysc.c | 0 drivers/{soc => genpd}/renesas/r8a7743-sysc.c | 0 drivers/{soc => genpd}/renesas/r8a7745-sysc.c | 0 .../{soc => genpd}/renesas/r8a77470-sysc.c | 0 .../{soc => genpd}/renesas/r8a774a1-sysc.c | 0 .../{soc => genpd}/renesas/r8a774b1-sysc.c | 0 .../{soc => genpd}/renesas/r8a774c0-sysc.c | 0 .../{soc => genpd}/renesas/r8a774e1-sysc.c | 0 drivers/{soc => genpd}/renesas/r8a7779-sysc.c | 0 drivers/{soc => genpd}/renesas/r8a7790-sysc.c | 0 drivers/{soc => genpd}/renesas/r8a7791-sysc.c | 0 drivers/{soc => genpd}/renesas/r8a7792-sysc.c | 0 drivers/{soc => genpd}/renesas/r8a7794-sysc.c | 0 drivers/{soc => genpd}/renesas/r8a7795-sysc.c | 0 drivers/{soc => genpd}/renesas/r8a7796-sysc.c | 0 .../{soc => genpd}/renesas/r8a77965-sysc.c | 0 .../{soc => genpd}/renesas/r8a77970-sysc.c | 0 .../{soc => genpd}/renesas/r8a77980-sysc.c | 0 .../{soc => genpd}/renesas/r8a77990-sysc.c | 0 .../{soc => genpd}/renesas/r8a77995-sysc.c | 0 .../{soc => genpd}/renesas/r8a779a0-sysc.c | 0 .../{soc => genpd}/renesas/r8a779f0-sysc.c | 0 .../{soc => genpd}/renesas/r8a779g0-sysc.c | 0 .../{soc => genpd}/renesas/rcar-gen4-sysc.c | 0 .../{soc => genpd}/renesas/rcar-gen4-sysc.h | 0 drivers/{soc => genpd}/renesas/rcar-sysc.c | 0 drivers/{soc => genpd}/renesas/rcar-sysc.h | 0 drivers/{soc => genpd}/renesas/rmobile-sysc.c | 0 drivers/soc/renesas/Makefile | 27 ----------------- 32 files changed, 32 insertions(+), 27 deletions(-) create mode 100644 drivers/genpd/renesas/Makefile rename drivers/{soc => genpd}/renesas/r8a7742-sysc.c (100%) rename drivers/{soc => genpd}/renesas/r8a7743-sysc.c (100%) rename drivers/{soc => genpd}/renesas/r8a7745-sysc.c (100%) rename drivers/{soc => genpd}/renesas/r8a77470-sysc.c (100%) rename drivers/{soc => genpd}/renesas/r8a774a1-sysc.c (100%) rename drivers/{soc => genpd}/renesas/r8a774b1-sysc.c (100%) rename drivers/{soc => genpd}/renesas/r8a774c0-sysc.c (100%) rename drivers/{soc => genpd}/renesas/r8a774e1-sysc.c (100%) rename drivers/{soc => genpd}/renesas/r8a7779-sysc.c (100%) rename drivers/{soc => genpd}/renesas/r8a7790-sysc.c (100%) rename drivers/{soc => genpd}/renesas/r8a7791-sysc.c (100%) rename drivers/{soc => genpd}/renesas/r8a7792-sysc.c (100%) rename drivers/{soc => genpd}/renesas/r8a7794-sysc.c (100%) rename drivers/{soc => genpd}/renesas/r8a7795-sysc.c (100%) rename drivers/{soc => genpd}/renesas/r8a7796-sysc.c (100%) rename drivers/{soc => genpd}/renesas/r8a77965-sysc.c (100%) rename drivers/{soc => genpd}/renesas/r8a77970-sysc.c (100%) rename drivers/{soc => genpd}/renesas/r8a77980-sysc.c (100%) rename drivers/{soc => genpd}/renesas/r8a77990-sysc.c (100%) rename drivers/{soc => genpd}/renesas/r8a77995-sysc.c (100%) rename drivers/{soc => genpd}/renesas/r8a779a0-sysc.c (100%) rename drivers/{soc => genpd}/renesas/r8a779f0-sysc.c (100%) rename drivers/{soc => genpd}/renesas/r8a779g0-sysc.c (100%) rename drivers/{soc => genpd}/renesas/rcar-gen4-sysc.c (100%) rename drivers/{soc => genpd}/renesas/rcar-gen4-sysc.h (100%) rename drivers/{soc => genpd}/renesas/rcar-sysc.c (100%) rename drivers/{soc => genpd}/renesas/rcar-sysc.h (100%) rename drivers/{soc => genpd}/renesas/rmobile-sysc.c (100%) diff --git a/MAINTAINERS b/MAINTAINERS index 9abd868abfc8..f444285f1792 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2593,6 +2593,7 @@ F: arch/arm/include/debug/renesas-scif.S F: arch/arm/mach-shmobile/ F: arch/arm64/boot/dts/renesas/ F: arch/riscv/boot/dts/renesas/ +F: drivers/genpd/renesas/ F: drivers/soc/renesas/ F: include/linux/soc/renesas/ K: \brenesas, diff --git a/drivers/genpd/Makefile b/drivers/genpd/Makefile index dfdea14e2a8a..286598ce7620 100644 --- a/drivers/genpd/Makefile +++ b/drivers/genpd/Makefile @@ -5,3 +5,4 @@ obj-y += apple/ obj-y += bcm/ obj-y += mediatek/ obj-y += qcom/ +obj-y += renesas/ diff --git a/drivers/genpd/renesas/Makefile b/drivers/genpd/renesas/Makefile new file mode 100644 index 000000000000..e306e396fc8c --- /dev/null +++ b/drivers/genpd/renesas/Makefile @@ -0,0 +1,30 @@ +# SPDX-License-Identifier: GPL-2.0 +# SoC +obj-$(CONFIG_SYSC_R8A7742) += r8a7742-sysc.o +obj-$(CONFIG_SYSC_R8A7743) += r8a7743-sysc.o +obj-$(CONFIG_SYSC_R8A7745) += r8a7745-sysc.o +obj-$(CONFIG_SYSC_R8A77470) += r8a77470-sysc.o +obj-$(CONFIG_SYSC_R8A774A1) += r8a774a1-sysc.o +obj-$(CONFIG_SYSC_R8A774B1) += r8a774b1-sysc.o +obj-$(CONFIG_SYSC_R8A774C0) += r8a774c0-sysc.o +obj-$(CONFIG_SYSC_R8A774E1) += r8a774e1-sysc.o +obj-$(CONFIG_SYSC_R8A7779) += r8a7779-sysc.o +obj-$(CONFIG_SYSC_R8A7790) += r8a7790-sysc.o +obj-$(CONFIG_SYSC_R8A7791) += r8a7791-sysc.o +obj-$(CONFIG_SYSC_R8A7792) += r8a7792-sysc.o +obj-$(CONFIG_SYSC_R8A7794) += r8a7794-sysc.o +obj-$(CONFIG_SYSC_R8A7795) += r8a7795-sysc.o +obj-$(CONFIG_SYSC_R8A77960) += r8a7796-sysc.o +obj-$(CONFIG_SYSC_R8A77961) += r8a7796-sysc.o +obj-$(CONFIG_SYSC_R8A77965) += r8a77965-sysc.o +obj-$(CONFIG_SYSC_R8A77970) += r8a77970-sysc.o +obj-$(CONFIG_SYSC_R8A77980) += r8a77980-sysc.o +obj-$(CONFIG_SYSC_R8A77990) += r8a77990-sysc.o +obj-$(CONFIG_SYSC_R8A77995) += r8a77995-sysc.o +obj-$(CONFIG_SYSC_R8A779A0) += r8a779a0-sysc.o +obj-$(CONFIG_SYSC_R8A779F0) += r8a779f0-sysc.o +obj-$(CONFIG_SYSC_R8A779G0) += r8a779g0-sysc.o +# Family +obj-$(CONFIG_SYSC_RCAR) += rcar-sysc.o +obj-$(CONFIG_SYSC_RCAR_GEN4) += rcar-gen4-sysc.o +obj-$(CONFIG_SYSC_RMOBILE) += rmobile-sysc.o diff --git a/drivers/soc/renesas/r8a7742-sysc.c b/drivers/genpd/renesas/r8a7742-sysc.c similarity index 100% rename from drivers/soc/renesas/r8a7742-sysc.c rename to drivers/genpd/renesas/r8a7742-sysc.c diff --git a/drivers/soc/renesas/r8a7743-sysc.c b/drivers/genpd/renesas/r8a7743-sysc.c similarity index 100% rename from drivers/soc/renesas/r8a7743-sysc.c rename to drivers/genpd/renesas/r8a7743-sysc.c diff --git a/drivers/soc/renesas/r8a7745-sysc.c b/drivers/genpd/renesas/r8a7745-sysc.c similarity index 100% rename from drivers/soc/renesas/r8a7745-sysc.c rename to drivers/genpd/renesas/r8a7745-sysc.c diff --git a/drivers/soc/renesas/r8a77470-sysc.c b/drivers/genpd/renesas/r8a77470-sysc.c similarity index 100% rename from drivers/soc/renesas/r8a77470-sysc.c rename to drivers/genpd/renesas/r8a77470-sysc.c diff --git a/drivers/soc/renesas/r8a774a1-sysc.c b/drivers/genpd/renesas/r8a774a1-sysc.c similarity index 100% rename from drivers/soc/renesas/r8a774a1-sysc.c rename to drivers/genpd/renesas/r8a774a1-sysc.c diff --git a/drivers/soc/renesas/r8a774b1-sysc.c b/drivers/genpd/renesas/r8a774b1-sysc.c similarity index 100% rename from drivers/soc/renesas/r8a774b1-sysc.c rename to drivers/genpd/renesas/r8a774b1-sysc.c diff --git a/drivers/soc/renesas/r8a774c0-sysc.c b/drivers/genpd/renesas/r8a774c0-sysc.c similarity index 100% rename from drivers/soc/renesas/r8a774c0-sysc.c rename to drivers/genpd/renesas/r8a774c0-sysc.c diff --git a/drivers/soc/renesas/r8a774e1-sysc.c b/drivers/genpd/renesas/r8a774e1-sysc.c similarity index 100% rename from drivers/soc/renesas/r8a774e1-sysc.c rename to drivers/genpd/renesas/r8a774e1-sysc.c diff --git a/drivers/soc/renesas/r8a7779-sysc.c b/drivers/genpd/renesas/r8a7779-sysc.c similarity index 100% rename from drivers/soc/renesas/r8a7779-sysc.c rename to drivers/genpd/renesas/r8a7779-sysc.c diff --git a/drivers/soc/renesas/r8a7790-sysc.c b/drivers/genpd/renesas/r8a7790-sysc.c similarity index 100% rename from drivers/soc/renesas/r8a7790-sysc.c rename to drivers/genpd/renesas/r8a7790-sysc.c diff --git a/drivers/soc/renesas/r8a7791-sysc.c b/drivers/genpd/renesas/r8a7791-sysc.c similarity index 100% rename from drivers/soc/renesas/r8a7791-sysc.c rename to drivers/genpd/renesas/r8a7791-sysc.c diff --git a/drivers/soc/renesas/r8a7792-sysc.c b/drivers/genpd/renesas/r8a7792-sysc.c similarity index 100% rename from drivers/soc/renesas/r8a7792-sysc.c rename to drivers/genpd/renesas/r8a7792-sysc.c diff --git a/drivers/soc/renesas/r8a7794-sysc.c b/drivers/genpd/renesas/r8a7794-sysc.c similarity index 100% rename from drivers/soc/renesas/r8a7794-sysc.c rename to drivers/genpd/renesas/r8a7794-sysc.c diff --git a/drivers/soc/renesas/r8a7795-sysc.c b/drivers/genpd/renesas/r8a7795-sysc.c similarity index 100% rename from drivers/soc/renesas/r8a7795-sysc.c rename to drivers/genpd/renesas/r8a7795-sysc.c diff --git a/drivers/soc/renesas/r8a7796-sysc.c b/drivers/genpd/renesas/r8a7796-sysc.c similarity index 100% rename from drivers/soc/renesas/r8a7796-sysc.c rename to drivers/genpd/renesas/r8a7796-sysc.c diff --git a/drivers/soc/renesas/r8a77965-sysc.c b/drivers/genpd/renesas/r8a77965-sysc.c similarity index 100% rename from drivers/soc/renesas/r8a77965-sysc.c rename to drivers/genpd/renesas/r8a77965-sysc.c diff --git a/drivers/soc/renesas/r8a77970-sysc.c b/drivers/genpd/renesas/r8a77970-sysc.c similarity index 100% rename from drivers/soc/renesas/r8a77970-sysc.c rename to drivers/genpd/renesas/r8a77970-sysc.c diff --git a/drivers/soc/renesas/r8a77980-sysc.c b/drivers/genpd/renesas/r8a77980-sysc.c similarity index 100% rename from drivers/soc/renesas/r8a77980-sysc.c rename to drivers/genpd/renesas/r8a77980-sysc.c diff --git a/drivers/soc/renesas/r8a77990-sysc.c b/drivers/genpd/renesas/r8a77990-sysc.c similarity index 100% rename from drivers/soc/renesas/r8a77990-sysc.c rename to drivers/genpd/renesas/r8a77990-sysc.c diff --git a/drivers/soc/renesas/r8a77995-sysc.c b/drivers/genpd/renesas/r8a77995-sysc.c similarity index 100% rename from drivers/soc/renesas/r8a77995-sysc.c rename to drivers/genpd/renesas/r8a77995-sysc.c diff --git a/drivers/soc/renesas/r8a779a0-sysc.c b/drivers/genpd/renesas/r8a779a0-sysc.c similarity index 100% rename from drivers/soc/renesas/r8a779a0-sysc.c rename to drivers/genpd/renesas/r8a779a0-sysc.c diff --git a/drivers/soc/renesas/r8a779f0-sysc.c b/drivers/genpd/renesas/r8a779f0-sysc.c similarity index 100% rename from drivers/soc/renesas/r8a779f0-sysc.c rename to drivers/genpd/renesas/r8a779f0-sysc.c diff --git a/drivers/soc/renesas/r8a779g0-sysc.c b/drivers/genpd/renesas/r8a779g0-sysc.c similarity index 100% rename from drivers/soc/renesas/r8a779g0-sysc.c rename to drivers/genpd/renesas/r8a779g0-sysc.c diff --git a/drivers/soc/renesas/rcar-gen4-sysc.c b/drivers/genpd/renesas/rcar-gen4-sysc.c similarity index 100% rename from drivers/soc/renesas/rcar-gen4-sysc.c rename to drivers/genpd/renesas/rcar-gen4-sysc.c diff --git a/drivers/soc/renesas/rcar-gen4-sysc.h b/drivers/genpd/renesas/rcar-gen4-sysc.h similarity index 100% rename from drivers/soc/renesas/rcar-gen4-sysc.h rename to drivers/genpd/renesas/rcar-gen4-sysc.h diff --git a/drivers/soc/renesas/rcar-sysc.c b/drivers/genpd/renesas/rcar-sysc.c similarity index 100% rename from drivers/soc/renesas/rcar-sysc.c rename to drivers/genpd/renesas/rcar-sysc.c diff --git a/drivers/soc/renesas/rcar-sysc.h b/drivers/genpd/renesas/rcar-sysc.h similarity index 100% rename from drivers/soc/renesas/rcar-sysc.h rename to drivers/genpd/renesas/rcar-sysc.h diff --git a/drivers/soc/renesas/rmobile-sysc.c b/drivers/genpd/renesas/rmobile-sysc.c similarity index 100% rename from drivers/soc/renesas/rmobile-sysc.c rename to drivers/genpd/renesas/rmobile-sysc.c diff --git a/drivers/soc/renesas/Makefile b/drivers/soc/renesas/Makefile index 6e4e77b0afff..734f8f8cefa4 100644 --- a/drivers/soc/renesas/Makefile +++ b/drivers/soc/renesas/Makefile @@ -3,30 +3,6 @@ obj-$(CONFIG_SOC_RENESAS) += renesas-soc.o # SoC -obj-$(CONFIG_SYSC_R8A7742) += r8a7742-sysc.o -obj-$(CONFIG_SYSC_R8A7743) += r8a7743-sysc.o -obj-$(CONFIG_SYSC_R8A7745) += r8a7745-sysc.o -obj-$(CONFIG_SYSC_R8A77470) += r8a77470-sysc.o -obj-$(CONFIG_SYSC_R8A774A1) += r8a774a1-sysc.o -obj-$(CONFIG_SYSC_R8A774B1) += r8a774b1-sysc.o -obj-$(CONFIG_SYSC_R8A774C0) += r8a774c0-sysc.o -obj-$(CONFIG_SYSC_R8A774E1) += r8a774e1-sysc.o -obj-$(CONFIG_SYSC_R8A7779) += r8a7779-sysc.o -obj-$(CONFIG_SYSC_R8A7790) += r8a7790-sysc.o -obj-$(CONFIG_SYSC_R8A7791) += r8a7791-sysc.o -obj-$(CONFIG_SYSC_R8A7792) += r8a7792-sysc.o -obj-$(CONFIG_SYSC_R8A7794) += r8a7794-sysc.o -obj-$(CONFIG_SYSC_R8A7795) += r8a7795-sysc.o -obj-$(CONFIG_SYSC_R8A77960) += r8a7796-sysc.o -obj-$(CONFIG_SYSC_R8A77961) += r8a7796-sysc.o -obj-$(CONFIG_SYSC_R8A77965) += r8a77965-sysc.o -obj-$(CONFIG_SYSC_R8A77970) += r8a77970-sysc.o -obj-$(CONFIG_SYSC_R8A77980) += r8a77980-sysc.o -obj-$(CONFIG_SYSC_R8A77990) += r8a77990-sysc.o -obj-$(CONFIG_SYSC_R8A77995) += r8a77995-sysc.o -obj-$(CONFIG_SYSC_R8A779A0) += r8a779a0-sysc.o -obj-$(CONFIG_SYSC_R8A779F0) += r8a779f0-sysc.o -obj-$(CONFIG_SYSC_R8A779G0) += r8a779g0-sysc.o ifdef CONFIG_SMP obj-$(CONFIG_ARCH_R9A06G032) += r9a06g032-smp.o endif @@ -34,6 +10,3 @@ endif # Family obj-$(CONFIG_PWC_RZV2M) += pwc-rzv2m.o obj-$(CONFIG_RST_RCAR) += rcar-rst.o -obj-$(CONFIG_SYSC_RCAR) += rcar-sysc.o -obj-$(CONFIG_SYSC_RCAR_GEN4) += rcar-gen4-sysc.o -obj-$(CONFIG_SYSC_RMOBILE) += rmobile-sysc.o From a8fcd3da73decacc8155c954a850c37777f75623 Mon Sep 17 00:00:00 2001 From: Ulf Hansson Date: Wed, 5 Jul 2023 18:01:43 +0200 Subject: [PATCH 10/30] soc: rockchip: Mover power-domain driver to the genpd dir To simplify with maintenance let's move the rockchip 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: Heiko Stuebner Cc: Acked-by: Heiko Stuebner Signed-off-by: Ulf Hansson --- drivers/genpd/Makefile | 1 + drivers/genpd/rockchip/Makefile | 2 ++ .../{soc/rockchip/pm_domains.c => genpd/rockchip/pm-domains.c} | 0 drivers/soc/rockchip/Makefile | 1 - 4 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 drivers/genpd/rockchip/Makefile rename drivers/{soc/rockchip/pm_domains.c => genpd/rockchip/pm-domains.c} (100%) diff --git a/drivers/genpd/Makefile b/drivers/genpd/Makefile index 286598ce7620..c178421e0cbc 100644 --- a/drivers/genpd/Makefile +++ b/drivers/genpd/Makefile @@ -6,3 +6,4 @@ obj-y += bcm/ obj-y += mediatek/ obj-y += qcom/ obj-y += renesas/ +obj-y += rockchip/ diff --git a/drivers/genpd/rockchip/Makefile b/drivers/genpd/rockchip/Makefile new file mode 100644 index 000000000000..8fb9d88a3492 --- /dev/null +++ b/drivers/genpd/rockchip/Makefile @@ -0,0 +1,2 @@ +# SPDX-License-Identifier: GPL-2.0-only +obj-$(CONFIG_ROCKCHIP_PM_DOMAINS) += pm-domains.o diff --git a/drivers/soc/rockchip/pm_domains.c b/drivers/genpd/rockchip/pm-domains.c similarity index 100% rename from drivers/soc/rockchip/pm_domains.c rename to drivers/genpd/rockchip/pm-domains.c diff --git a/drivers/soc/rockchip/Makefile b/drivers/soc/rockchip/Makefile index 05f31a4e743c..23d414433c8c 100644 --- a/drivers/soc/rockchip/Makefile +++ b/drivers/soc/rockchip/Makefile @@ -4,5 +4,4 @@ # obj-$(CONFIG_ROCKCHIP_GRF) += grf.o obj-$(CONFIG_ROCKCHIP_IODOMAIN) += io-domain.o -obj-$(CONFIG_ROCKCHIP_PM_DOMAINS) += pm_domains.o obj-$(CONFIG_ROCKCHIP_DTPM) += dtpm.o From 4419644bfc7f2ef86708758060d263500af9f88a Mon Sep 17 00:00:00 2001 From: Ulf Hansson Date: Wed, 5 Jul 2023 18:08:50 +0200 Subject: [PATCH 11/30] soc: samsung: Move power-domain driver to the genpd dir To simplify with maintenance let's move the samsung 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: Krzysztof Kozlowski Cc: Alim Akhtar Cc: Reviewed-by: Krzysztof Kozlowski Acked-by: Marek Szyprowski Signed-off-by: Ulf Hansson --- drivers/genpd/Makefile | 1 + drivers/genpd/samsung/Makefile | 2 ++ .../samsung/pm_domains.c => genpd/samsung/exynos-pm-domains.c} | 0 drivers/soc/samsung/Makefile | 1 - 4 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 drivers/genpd/samsung/Makefile rename drivers/{soc/samsung/pm_domains.c => genpd/samsung/exynos-pm-domains.c} (100%) diff --git a/drivers/genpd/Makefile b/drivers/genpd/Makefile index c178421e0cbc..1cf0ff26a44f 100644 --- a/drivers/genpd/Makefile +++ b/drivers/genpd/Makefile @@ -7,3 +7,4 @@ obj-y += mediatek/ obj-y += qcom/ obj-y += renesas/ obj-y += rockchip/ +obj-y += samsung/ diff --git a/drivers/genpd/samsung/Makefile b/drivers/genpd/samsung/Makefile new file mode 100644 index 000000000000..397aa5908c1d --- /dev/null +++ b/drivers/genpd/samsung/Makefile @@ -0,0 +1,2 @@ +# SPDX-License-Identifier: GPL-2.0-only +obj-$(CONFIG_EXYNOS_PM_DOMAINS) += exynos-pm-domains.o diff --git a/drivers/soc/samsung/pm_domains.c b/drivers/genpd/samsung/exynos-pm-domains.c similarity index 100% rename from drivers/soc/samsung/pm_domains.c rename to drivers/genpd/samsung/exynos-pm-domains.c diff --git a/drivers/soc/samsung/Makefile b/drivers/soc/samsung/Makefile index d35270fc6b2b..248a33d7754a 100644 --- a/drivers/soc/samsung/Makefile +++ b/drivers/soc/samsung/Makefile @@ -10,7 +10,6 @@ obj-$(CONFIG_EXYNOS_PMU) += exynos-pmu.o obj-$(CONFIG_EXYNOS_PMU_ARM_DRIVERS) += exynos3250-pmu.o exynos4-pmu.o \ exynos5250-pmu.o exynos5420-pmu.o -obj-$(CONFIG_EXYNOS_PM_DOMAINS) += pm_domains.o obj-$(CONFIG_EXYNOS_REGULATOR_COUPLER) += exynos-regulator-coupler.o obj-$(CONFIG_SAMSUNG_PM_CHECK) += s3c-pm-check.o From f3fb16291f48638e9eda4f249970d34061906ba3 Mon Sep 17 00:00:00 2001 From: Ulf Hansson Date: Wed, 5 Jul 2023 18:16:22 +0200 Subject: [PATCH 12/30] soc: starfive: Move the power-domain driver to the genpd dir To simplify with maintenance let's move the starfive 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: Walker Chen Cc: Conor Dooley Acked-by: Conor Dooley Signed-off-by: Ulf Hansson --- MAINTAINERS | 2 +- drivers/genpd/Makefile | 1 + drivers/genpd/starfive/Makefile | 2 ++ .../{soc/starfive/jh71xx_pmu.c => genpd/starfive/jh71xx-pmu.c} | 0 drivers/soc/starfive/Makefile | 3 --- 5 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 drivers/genpd/starfive/Makefile rename drivers/{soc/starfive/jh71xx_pmu.c => genpd/starfive/jh71xx-pmu.c} (100%) delete mode 100644 drivers/soc/starfive/Makefile diff --git a/MAINTAINERS b/MAINTAINERS index f444285f1792..4be5dc3fd6dd 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -20323,7 +20323,7 @@ STARFIVE JH71XX PMU CONTROLLER DRIVER M: Walker Chen S: Supported F: Documentation/devicetree/bindings/power/starfive* -F: drivers/soc/starfive/jh71xx_pmu.c +F: drivers/genpd/starfive/jh71xx_pmu.c F: include/dt-bindings/power/starfive,jh7110-pmu.h STARFIVE SOC DRIVERS diff --git a/drivers/genpd/Makefile b/drivers/genpd/Makefile index 1cf0ff26a44f..baf2021235a7 100644 --- a/drivers/genpd/Makefile +++ b/drivers/genpd/Makefile @@ -8,3 +8,4 @@ obj-y += qcom/ obj-y += renesas/ obj-y += rockchip/ obj-y += samsung/ +obj-y += starfive/ diff --git a/drivers/genpd/starfive/Makefile b/drivers/genpd/starfive/Makefile new file mode 100644 index 000000000000..975bba2a29a9 --- /dev/null +++ b/drivers/genpd/starfive/Makefile @@ -0,0 +1,2 @@ +# SPDX-License-Identifier: GPL-2.0 +obj-$(CONFIG_JH71XX_PMU) += jh71xx-pmu.o diff --git a/drivers/soc/starfive/jh71xx_pmu.c b/drivers/genpd/starfive/jh71xx-pmu.c similarity index 100% rename from drivers/soc/starfive/jh71xx_pmu.c rename to drivers/genpd/starfive/jh71xx-pmu.c diff --git a/drivers/soc/starfive/Makefile b/drivers/soc/starfive/Makefile deleted file mode 100644 index 13b589d6b5f3..000000000000 --- a/drivers/soc/starfive/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0 - -obj-$(CONFIG_JH71XX_PMU) += jh71xx_pmu.o From fd697e2160401530dfe43074bbdcbb7d63b87b60 Mon Sep 17 00:00:00 2001 From: Ulf Hansson Date: Wed, 5 Jul 2023 18:26:45 +0200 Subject: [PATCH 13/30] soc: sunxi: Move power-domain driver to the genpd dir To simplify with maintenance let's move the sunxi 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: Chen-Yu Tsai Cc: Jernej Skrabec Cc: Samuel Holland Cc: Acked-by: Jernej Skrabec Signed-off-by: Ulf Hansson --- drivers/genpd/Makefile | 1 + drivers/genpd/sunxi/Makefile | 2 ++ drivers/{soc => genpd}/sunxi/sun20i-ppu.c | 0 drivers/soc/sunxi/Makefile | 1 - 4 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 drivers/genpd/sunxi/Makefile rename drivers/{soc => genpd}/sunxi/sun20i-ppu.c (100%) diff --git a/drivers/genpd/Makefile b/drivers/genpd/Makefile index baf2021235a7..76f2a411e6bc 100644 --- a/drivers/genpd/Makefile +++ b/drivers/genpd/Makefile @@ -9,3 +9,4 @@ obj-y += renesas/ obj-y += rockchip/ obj-y += samsung/ obj-y += starfive/ +obj-y += sunxi/ diff --git a/drivers/genpd/sunxi/Makefile b/drivers/genpd/sunxi/Makefile new file mode 100644 index 000000000000..ec1d7a2fb21d --- /dev/null +++ b/drivers/genpd/sunxi/Makefile @@ -0,0 +1,2 @@ +# SPDX-License-Identifier: GPL-2.0-only +obj-$(CONFIG_SUN20I_PPU) += sun20i-ppu.o diff --git a/drivers/soc/sunxi/sun20i-ppu.c b/drivers/genpd/sunxi/sun20i-ppu.c similarity index 100% rename from drivers/soc/sunxi/sun20i-ppu.c rename to drivers/genpd/sunxi/sun20i-ppu.c diff --git a/drivers/soc/sunxi/Makefile b/drivers/soc/sunxi/Makefile index 90ff2ebe7655..549159571d4f 100644 --- a/drivers/soc/sunxi/Makefile +++ b/drivers/soc/sunxi/Makefile @@ -1,4 +1,3 @@ # SPDX-License-Identifier: GPL-2.0-only obj-$(CONFIG_SUNXI_MBUS) += sunxi_mbus.o obj-$(CONFIG_SUNXI_SRAM) += sunxi_sram.o -obj-$(CONFIG_SUN20I_PPU) += sun20i-ppu.o From 27e0fef61ffd86306a768f086118c1139ef42b2e Mon Sep 17 00:00:00 2001 From: Ulf Hansson Date: Thu, 6 Jul 2023 00:18:03 +0200 Subject: [PATCH 14/30] soc: tegra: Move powergate-bpmp driver to the genpd dir To simplify with maintenance let's move the powergate-bpmp driver to the new genpd directory. Going forward, patches are intended to be managed through a separate git tree, according to MAINTAINERS. Note that, we leave the pmc driver in the soc directory for now, as it looks like it may need some re-structuring before it's ready to be moved. Cc: Thierry Reding Cc: Jonathan Hunter Cc: Mikko Perttunen Cc: Acked-by: Thierry Reding Signed-off-by: Ulf Hansson --- drivers/genpd/Makefile | 1 + drivers/genpd/tegra/Makefile | 2 ++ drivers/{soc => genpd}/tegra/powergate-bpmp.c | 0 drivers/soc/tegra/Makefile | 1 - 4 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 drivers/genpd/tegra/Makefile rename drivers/{soc => genpd}/tegra/powergate-bpmp.c (100%) diff --git a/drivers/genpd/Makefile b/drivers/genpd/Makefile index 76f2a411e6bc..e6f34d82e6a8 100644 --- a/drivers/genpd/Makefile +++ b/drivers/genpd/Makefile @@ -10,3 +10,4 @@ obj-y += rockchip/ obj-y += samsung/ obj-y += starfive/ obj-y += sunxi/ +obj-y += tegra/ diff --git a/drivers/genpd/tegra/Makefile b/drivers/genpd/tegra/Makefile new file mode 100644 index 000000000000..ec8acfd2c77c --- /dev/null +++ b/drivers/genpd/tegra/Makefile @@ -0,0 +1,2 @@ +# SPDX-License-Identifier: GPL-2.0 +obj-$(CONFIG_SOC_TEGRA_POWERGATE_BPMP) += powergate-bpmp.o diff --git a/drivers/soc/tegra/powergate-bpmp.c b/drivers/genpd/tegra/powergate-bpmp.c similarity index 100% rename from drivers/soc/tegra/powergate-bpmp.c rename to drivers/genpd/tegra/powergate-bpmp.c diff --git a/drivers/soc/tegra/Makefile b/drivers/soc/tegra/Makefile index d722f512dc9d..01059619e764 100644 --- a/drivers/soc/tegra/Makefile +++ b/drivers/soc/tegra/Makefile @@ -5,7 +5,6 @@ obj-y += cbb/ obj-y += common.o obj-$(CONFIG_SOC_TEGRA_FLOWCTRL) += flowctrl.o obj-$(CONFIG_SOC_TEGRA_PMC) += pmc.o -obj-$(CONFIG_SOC_TEGRA_POWERGATE_BPMP) += powergate-bpmp.o obj-$(CONFIG_SOC_TEGRA20_VOLTAGE_COUPLER) += regulators-tegra20.o obj-$(CONFIG_SOC_TEGRA30_VOLTAGE_COUPLER) += regulators-tegra30.o obj-$(CONFIG_ARCH_TEGRA_186_SOC) += ari-tegra186.o From 2449efaaf9139e3928c8228deecd5b736e27a221 Mon Sep 17 00:00:00 2001 From: Ulf Hansson Date: Thu, 6 Jul 2023 00:57:21 +0200 Subject: [PATCH 15/30] soc: ti: Mover power-domain drivers to the genpd dir To simplify with maintenance let's move the ti power-domain drivers to the new genpd directory. Going forward, patches are intended to be managed through a separate git tree, according to MAINTAINERS. Cc: Nishanth Menon Cc: Santosh Shilimkar Cc: Tero Kristo Cc: Tony Lindgren Reviewed-by: Nishanth Menon Reviewed-by: Tony Lindgren Signed-off-by: Ulf Hansson --- MAINTAINERS | 3 ++- drivers/genpd/Makefile | 1 + drivers/genpd/ti/Makefile | 3 +++ drivers/{soc => genpd}/ti/omap_prm.c | 0 drivers/{soc => genpd}/ti/ti_sci_pm_domains.c | 0 drivers/soc/ti/Makefile | 2 -- 6 files changed, 6 insertions(+), 3 deletions(-) create mode 100644 drivers/genpd/ti/Makefile rename drivers/{soc => genpd}/ti/omap_prm.c (100%) rename drivers/{soc => genpd}/ti/ti_sci_pm_domains.c (100%) diff --git a/MAINTAINERS b/MAINTAINERS index 4be5dc3fd6dd..633bc6767cd5 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -21107,7 +21107,7 @@ F: drivers/irqchip/irq-ti-sci-inta.c F: drivers/irqchip/irq-ti-sci-intr.c F: drivers/reset/reset-ti-sci.c F: drivers/soc/ti/ti_sci_inta_msi.c -F: drivers/soc/ti/ti_sci_pm_domains.c +F: drivers/genpd/ti/ti_sci_pm_domains.c F: include/dt-bindings/soc/ti,sci_pm_domain.h F: include/linux/soc/ti/ti_sci_inta_msi.h F: include/linux/soc/ti/ti_sci_protocol.h @@ -21341,6 +21341,7 @@ L: linux-kernel@vger.kernel.org L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) S: Maintained T: git git://git.kernel.org/pub/scm/linux/kernel/git/ti/linux.git +F: drivers/genpd/ti/omap_prm.c F: drivers/soc/ti/* TI LM49xxx FAMILY ASoC CODEC DRIVERS diff --git a/drivers/genpd/Makefile b/drivers/genpd/Makefile index e6f34d82e6a8..193892189f0d 100644 --- a/drivers/genpd/Makefile +++ b/drivers/genpd/Makefile @@ -11,3 +11,4 @@ obj-y += samsung/ obj-y += starfive/ obj-y += sunxi/ obj-y += tegra/ +obj-y += ti/ diff --git a/drivers/genpd/ti/Makefile b/drivers/genpd/ti/Makefile new file mode 100644 index 000000000000..69580afbb436 --- /dev/null +++ b/drivers/genpd/ti/Makefile @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: GPL-2.0 +obj-$(CONFIG_ARCH_OMAP2PLUS) += omap_prm.o +obj-$(CONFIG_TI_SCI_PM_DOMAINS) += ti_sci_pm_domains.o diff --git a/drivers/soc/ti/omap_prm.c b/drivers/genpd/ti/omap_prm.c similarity index 100% rename from drivers/soc/ti/omap_prm.c rename to drivers/genpd/ti/omap_prm.c diff --git a/drivers/soc/ti/ti_sci_pm_domains.c b/drivers/genpd/ti/ti_sci_pm_domains.c similarity index 100% rename from drivers/soc/ti/ti_sci_pm_domains.c rename to drivers/genpd/ti/ti_sci_pm_domains.c diff --git a/drivers/soc/ti/Makefile b/drivers/soc/ti/Makefile index cc3c972fad2e..cb800a745e66 100644 --- a/drivers/soc/ti/Makefile +++ b/drivers/soc/ti/Makefile @@ -6,9 +6,7 @@ obj-$(CONFIG_KEYSTONE_NAVIGATOR_QMSS) += knav_qmss.o knav_qmss-y := knav_qmss_queue.o knav_qmss_acc.o obj-$(CONFIG_KEYSTONE_NAVIGATOR_DMA) += knav_dma.o obj-$(CONFIG_AMX3_PM) += pm33xx.o -obj-$(CONFIG_ARCH_OMAP2PLUS) += omap_prm.o obj-$(CONFIG_WKUP_M3_IPC) += wkup_m3_ipc.o -obj-$(CONFIG_TI_SCI_PM_DOMAINS) += ti_sci_pm_domains.o obj-$(CONFIG_TI_SCI_INTA_MSI_DOMAIN) += ti_sci_inta_msi.o obj-$(CONFIG_TI_K3_RINGACC) += k3-ringacc.o obj-$(CONFIG_TI_K3_SOCINFO) += k3-socinfo.o From 444ffc820d9066910754c67d3bf55d1dd5f26208 Mon Sep 17 00:00:00 2001 From: Ulf Hansson Date: Thu, 6 Jul 2023 01:09:38 +0200 Subject: [PATCH 16/30] soc: xilinx: Move power-domain driver to the genpd dir To simplify with maintenance let's move the xilinx 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: Michal Simek Signed-off-by: Ulf Hansson --- drivers/genpd/Makefile | 1 + drivers/genpd/xilinx/Makefile | 2 ++ .../zynqmp_pm_domains.c => genpd/xilinx/zynqmp-pm-domains.c} | 0 drivers/soc/xilinx/Makefile | 1 - 4 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 drivers/genpd/xilinx/Makefile rename drivers/{soc/xilinx/zynqmp_pm_domains.c => genpd/xilinx/zynqmp-pm-domains.c} (100%) diff --git a/drivers/genpd/Makefile b/drivers/genpd/Makefile index 193892189f0d..efd955f586e9 100644 --- a/drivers/genpd/Makefile +++ b/drivers/genpd/Makefile @@ -12,3 +12,4 @@ obj-y += starfive/ obj-y += sunxi/ obj-y += tegra/ obj-y += ti/ +obj-y += xilinx/ diff --git a/drivers/genpd/xilinx/Makefile b/drivers/genpd/xilinx/Makefile new file mode 100644 index 000000000000..a706ab699cfa --- /dev/null +++ b/drivers/genpd/xilinx/Makefile @@ -0,0 +1,2 @@ +# SPDX-License-Identifier: GPL-2.0 +obj-$(CONFIG_ZYNQMP_PM_DOMAINS) += zynqmp-pm-domains.o diff --git a/drivers/soc/xilinx/zynqmp_pm_domains.c b/drivers/genpd/xilinx/zynqmp-pm-domains.c similarity index 100% rename from drivers/soc/xilinx/zynqmp_pm_domains.c rename to drivers/genpd/xilinx/zynqmp-pm-domains.c diff --git a/drivers/soc/xilinx/Makefile b/drivers/soc/xilinx/Makefile index 41e585bc9c67..33d94395fd87 100644 --- a/drivers/soc/xilinx/Makefile +++ b/drivers/soc/xilinx/Makefile @@ -1,4 +1,3 @@ # SPDX-License-Identifier: GPL-2.0 obj-$(CONFIG_ZYNQMP_POWER) += zynqmp_power.o -obj-$(CONFIG_ZYNQMP_PM_DOMAINS) += zynqmp_pm_domains.o obj-$(CONFIG_XLNX_EVENT_MANAGER) += xlnx_event_manager.o From bd4ce2d7f988c9becd711973e2b751c6cb5f391a Mon Sep 17 00:00:00 2001 From: Ulf Hansson Date: Fri, 30 Jun 2023 16:11:57 +0200 Subject: [PATCH 17/30] ARM: ux500: Convert power-domain code into a regular platform driver To make the code more standalone and moveable, let's convert it into a platform driver. Cc: Linus Walleij Signed-off-by: Ulf Hansson --- arch/arm/mach-ux500/cpu-db8500.c | 5 ----- arch/arm/mach-ux500/pm_domains.c | 25 ++++++++++++++++++++----- arch/arm/mach-ux500/pm_domains.h | 17 ----------------- 3 files changed, 20 insertions(+), 27 deletions(-) delete mode 100644 arch/arm/mach-ux500/pm_domains.h diff --git a/arch/arm/mach-ux500/cpu-db8500.c b/arch/arm/mach-ux500/cpu-db8500.c index 7cc0dd8ed991..b1a70f203372 100644 --- a/arch/arm/mach-ux500/cpu-db8500.c +++ b/arch/arm/mach-ux500/cpu-db8500.c @@ -26,8 +26,6 @@ #include #include -#include "pm_domains.h" - static int __init ux500_l2x0_unlock(void) { int i; @@ -115,9 +113,6 @@ static const struct of_device_id u8500_local_bus_nodes[] = { static void __init u8500_init_machine(void) { - /* Initialize ux500 power domains */ - ux500_pm_domains_init(); - of_platform_populate(NULL, u8500_local_bus_nodes, NULL, NULL); } diff --git a/arch/arm/mach-ux500/pm_domains.c b/arch/arm/mach-ux500/pm_domains.c index 427b9ac4af6c..3d4f111ed156 100644 --- a/arch/arm/mach-ux500/pm_domains.c +++ b/arch/arm/mach-ux500/pm_domains.c @@ -6,6 +6,9 @@ * * Implements PM domains using the generic PM domain for ux500. */ +#include +#include +#include #include #include #include @@ -13,7 +16,6 @@ #include #include -#include "pm_domains.h" static int pd_power_off(struct generic_pm_domain *domain) { @@ -49,18 +51,17 @@ 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[] __initconst = { +static const struct of_device_id ux500_pm_domain_matches[] = { { .compatible = "stericsson,ux500-pm-domains", }, { }, }; -int __init ux500_pm_domains_init(void) +static int ux500_pm_domains_probe(struct platform_device *pdev) { - struct device_node *np; + struct device_node *np = pdev->dev.of_node; struct genpd_onecell_data *genpd_data; int i; - np = of_find_matching_node(NULL, ux500_pm_domain_matches); if (!np) return -ENODEV; @@ -77,3 +78,17 @@ int __init ux500_pm_domains_init(void) 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); diff --git a/arch/arm/mach-ux500/pm_domains.h b/arch/arm/mach-ux500/pm_domains.h deleted file mode 100644 index 33c55f2c6b3c..000000000000 --- a/arch/arm/mach-ux500/pm_domains.h +++ /dev/null @@ -1,17 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-only */ -/* - * Copyright (C) 2014 Linaro Ltd. - * - * Author: Ulf Hansson - */ - -#ifndef __MACH_UX500_PM_DOMAINS_H -#define __MACH_UX500_PM_DOMAINS_H - -#ifdef CONFIG_PM_GENERIC_DOMAINS -extern int __init ux500_pm_domains_init(void); -#else -static inline int ux500_pm_domains_init(void) { return 0; } -#endif - -#endif From b43f11e5b453a9c48159d7121c88d79d81901276 Mon Sep 17 00:00:00 2001 From: Ulf Hansson Date: Fri, 30 Jun 2023 16:28:16 +0200 Subject: [PATCH 18/30] ARM: ux500: Move power-domain driver to the genpd dir 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 Signed-off-by: Ulf Hansson --- MAINTAINERS | 1 + arch/arm/mach-ux500/Makefile | 1 - drivers/genpd/Makefile | 1 + drivers/genpd/st/Makefile | 2 ++ .../pm_domains.c => drivers/genpd/st/ste-ux500-pm-domain.c | 0 5 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 drivers/genpd/st/Makefile rename arch/arm/mach-ux500/pm_domains.c => drivers/genpd/st/ste-ux500-pm-domain.c (100%) diff --git a/MAINTAINERS b/MAINTAINERS index 633bc6767cd5..377f68e66fb4 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -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 diff --git a/arch/arm/mach-ux500/Makefile b/arch/arm/mach-ux500/Makefile index 5e903241bded..270e5676fa02 100644 --- a/arch/arm/mach-ux500/Makefile +++ b/arch/arm/mach-ux500/Makefile @@ -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/drivers/genpd/Makefile b/drivers/genpd/Makefile index efd955f586e9..c429485c13f6 100644 --- a/drivers/genpd/Makefile +++ b/drivers/genpd/Makefile @@ -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 index 000000000000..8fa5f9855460 --- /dev/null +++ b/drivers/genpd/st/Makefile @@ -0,0 +1,2 @@ +# SPDX-License-Identifier: GPL-2.0-only +obj-$(CONFIG_ARCH_U8500) += ste-ux500-pm-domain.o diff --git a/arch/arm/mach-ux500/pm_domains.c b/drivers/genpd/st/ste-ux500-pm-domain.c similarity index 100% rename from arch/arm/mach-ux500/pm_domains.c rename to drivers/genpd/st/ste-ux500-pm-domain.c From 00eb53b08cf5f4d8919a49c10ffd122647478aae Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 23 Jul 2023 10:46:36 +0200 Subject: [PATCH 19/30] soc: starfive: remove stale Makefile entry After the only starfive driver was moved out to the genpd subsystem, we get a build failure: scripts/Makefile.build:41: drivers/soc/starfive/Makefile: No such file or directory Fixes: f3fb16291f486 ("soc: starfive: Move the power-domain driver to the genpd dir") Reported=by: kernel test robot Acked-by: Conor Dooley Signed-off-by: Arnd Bergmann --- drivers/soc/Makefile | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/soc/Makefile b/drivers/soc/Makefile index 3b0f9fb3b5c8..efdcd42f68cb 100644 --- a/drivers/soc/Makefile +++ b/drivers/soc/Makefile @@ -29,7 +29,6 @@ obj-y += renesas/ obj-y += rockchip/ obj-$(CONFIG_SOC_SAMSUNG) += samsung/ obj-y += sifive/ -obj-$(CONFIG_SOC_STARFIVE) += starfive/ obj-y += sunxi/ obj-$(CONFIG_ARCH_TEGRA) += tegra/ obj-y += ti/ From 7ed363cd8d0a3e4fbe3c37b7458420f82ef9a106 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Wed, 26 Jul 2023 13:49:36 +0200 Subject: [PATCH 20/30] genpd: move owl-sps-helper.c from drivers/soc Moving only one of the two files in drivers/soc/actions to drivers/genpd caused a link failure in allmodconfig, as drivers/genpd is entered for compile testing, but drivers/soc/actions accidentally got skipped: x86_64-linux-gnu-ld: vmlinux.o: in function `owl_sps_set_power': owl-sps.c:(.text+0x16e259d): undefined reference to `owl_sps_set_pg' Move the other one as well to allow build testing to work correctly. Reported-by: Stephen Rothwell Signed-off-by: Arnd Bergmann --- drivers/genpd/actions/Makefile | 1 + drivers/{soc => genpd}/actions/owl-sps-helper.c | 0 drivers/soc/Makefile | 1 - drivers/soc/actions/Makefile | 3 --- 4 files changed, 1 insertion(+), 4 deletions(-) rename drivers/{soc => genpd}/actions/owl-sps-helper.c (100%) delete mode 100644 drivers/soc/actions/Makefile diff --git a/drivers/genpd/actions/Makefile b/drivers/genpd/actions/Makefile index e78c420a2454..7e8aa473d12d 100644 --- a/drivers/genpd/actions/Makefile +++ b/drivers/genpd/actions/Makefile @@ -1,2 +1,3 @@ # SPDX-License-Identifier: GPL-2.0+ +obj-$(CONFIG_OWL_PM_DOMAINS_HELPER) += owl-sps-helper.o obj-$(CONFIG_OWL_PM_DOMAINS) += owl-sps.o diff --git a/drivers/soc/actions/owl-sps-helper.c b/drivers/genpd/actions/owl-sps-helper.c similarity index 100% rename from drivers/soc/actions/owl-sps-helper.c rename to drivers/genpd/actions/owl-sps-helper.c diff --git a/drivers/soc/Makefile b/drivers/soc/Makefile index efdcd42f68cb..708eaad8f590 100644 --- a/drivers/soc/Makefile +++ b/drivers/soc/Makefile @@ -3,7 +3,6 @@ # Makefile for the Linux Kernel SOC specific device drivers. # -obj-$(CONFIG_ARCH_ACTIONS) += actions/ obj-y += apple/ obj-y += aspeed/ obj-$(CONFIG_ARCH_AT91) += atmel/ diff --git a/drivers/soc/actions/Makefile b/drivers/soc/actions/Makefile deleted file mode 100644 index 4ac88fec2050..000000000000 --- a/drivers/soc/actions/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0+ - -obj-$(CONFIG_OWL_PM_DOMAINS_HELPER) += owl-sps-helper.o From a6a67e5a13f6974913a38d5bd1c595c3fd73b204 Mon Sep 17 00:00:00 2001 From: Peng Fan Date: Thu, 20 Jul 2023 17:04:43 +0800 Subject: [PATCH 21/30] genpd: Makefile: build imx The imx genpd was missed to be built out, add it in Makefile Signed-off-by: Peng Fan Signed-off-by: Ulf Hansson --- drivers/genpd/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/genpd/Makefile b/drivers/genpd/Makefile index c429485c13f6..666753676e5c 100644 --- a/drivers/genpd/Makefile +++ b/drivers/genpd/Makefile @@ -3,6 +3,7 @@ obj-y += actions/ obj-y += amlogic/ obj-y += apple/ obj-y += bcm/ +obj-y += imx/ obj-y += mediatek/ obj-y += qcom/ obj-y += renesas/ From fe38a2d570df3ed868c255fdad16652886997a08 Mon Sep 17 00:00:00 2001 From: Lukas Bulwahn Date: Mon, 31 Jul 2023 14:26:11 +0200 Subject: [PATCH 22/30] MAINTAINERS: adjust file entry in STARFIVE JH71XX PMU CONTROLLER DRIVER Commit f3fb16291f48 ("soc: starfive: Move the power-domain driver to the genpd dir") moves: drivers/{soc/starfive/jh71xx_pmu.c => genpd/starfive/jh71xx-pmu.c} However, the update to the file entry in MAINTAINERS only addresses the move in directories, but misses the renaming from jh71xx_pmu.c to jh71xx-pmu.c. Hence, ./scripts/get_maintainer.pl --self-test=patterns complains about a broken reference. Adjust the file entry in STARFIVE JH71XX PMU CONTROLLER DRIVER. Signed-off-by: Lukas Bulwahn Signed-off-by: Ulf Hansson --- MAINTAINERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MAINTAINERS b/MAINTAINERS index 377f68e66fb4..dff5d812f3ff 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -20324,7 +20324,7 @@ STARFIVE JH71XX PMU CONTROLLER DRIVER M: Walker Chen S: Supported F: Documentation/devicetree/bindings/power/starfive* -F: drivers/genpd/starfive/jh71xx_pmu.c +F: drivers/genpd/starfive/jh71xx-pmu.c F: include/dt-bindings/power/starfive,jh7110-pmu.h STARFIVE SOC DRIVERS From b683a3620748c0d058408d997f234293538b563a Mon Sep 17 00:00:00 2001 From: Peng Fan Date: Mon, 14 Aug 2023 18:41:20 +0800 Subject: [PATCH 23/30] genpd: imx: relocate scu-pd under genpd Move scu-pd driver under genpd directory where the driver should be. Signed-off-by: Peng Fan Signed-off-by: Ulf Hansson --- drivers/firmware/imx/Makefile | 1 - drivers/genpd/imx/Makefile | 1 + drivers/{firmware => genpd}/imx/scu-pd.c | 0 3 files changed, 1 insertion(+), 1 deletion(-) rename drivers/{firmware => genpd}/imx/scu-pd.c (100%) diff --git a/drivers/firmware/imx/Makefile b/drivers/firmware/imx/Makefile index b76acbade2a0..8f9f04a513a8 100644 --- a/drivers/firmware/imx/Makefile +++ b/drivers/firmware/imx/Makefile @@ -1,4 +1,3 @@ # SPDX-License-Identifier: GPL-2.0 obj-$(CONFIG_IMX_DSP) += imx-dsp.o obj-$(CONFIG_IMX_SCU) += imx-scu.o misc.o imx-scu-irq.o rm.o imx-scu-soc.o -obj-$(CONFIG_IMX_SCU_PD) += scu-pd.o diff --git a/drivers/genpd/imx/Makefile b/drivers/genpd/imx/Makefile index 5f012717a666..52d2629014a7 100644 --- a/drivers/genpd/imx/Makefile +++ b/drivers/genpd/imx/Makefile @@ -1,6 +1,7 @@ # SPDX-License-Identifier: GPL-2.0-only obj-$(CONFIG_HAVE_IMX_GPC) += gpc.o obj-$(CONFIG_IMX_GPCV2_PM_DOMAINS) += gpcv2.o +obj-$(CONFIG_IMX_SCU_PD) += scu-pd.o obj-$(CONFIG_IMX8M_BLK_CTRL) += imx8m-blk-ctrl.o obj-$(CONFIG_IMX8M_BLK_CTRL) += imx8mp-blk-ctrl.o obj-$(CONFIG_SOC_IMX9) += imx93-pd.o diff --git a/drivers/firmware/imx/scu-pd.c b/drivers/genpd/imx/scu-pd.c similarity index 100% rename from drivers/firmware/imx/scu-pd.c rename to drivers/genpd/imx/scu-pd.c From 927b7d15dcf205cb3554cebf9acd255c432dd02f Mon Sep 17 00:00:00 2001 From: Peng Fan Date: Mon, 14 Aug 2023 18:41:21 +0800 Subject: [PATCH 24/30] genpd: imx: scu-pd: enlarge PD range There are 5 LPI2C, 5 LPUART and 32 DMA0 Channel resources per imx_rsrc.h, and they are in i.MX8QM, so enlarge the PD range for them. Signed-off-by: Peng Fan Signed-off-by: Ulf Hansson --- drivers/genpd/imx/scu-pd.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/genpd/imx/scu-pd.c b/drivers/genpd/imx/scu-pd.c index 84b673427073..5a28f5af592a 100644 --- a/drivers/genpd/imx/scu-pd.c +++ b/drivers/genpd/imx/scu-pd.c @@ -121,9 +121,9 @@ static const struct imx_sc_pd_range imx8qxp_scu_pd_ranges[] = { { "audio-pll1", IMX_SC_R_AUDIO_PLL_1, 1, false, 0 }, { "audio-clk-0", IMX_SC_R_AUDIO_CLK_0, 1, false, 0 }, { "audio-clk-1", IMX_SC_R_AUDIO_CLK_1, 1, false, 0 }, - { "dma0-ch", IMX_SC_R_DMA_0_CH0, 16, true, 0 }, + { "dma0-ch", IMX_SC_R_DMA_0_CH0, 32, true, 0 }, { "dma1-ch", IMX_SC_R_DMA_1_CH0, 16, true, 0 }, - { "dma2-ch", IMX_SC_R_DMA_2_CH0, 5, true, 0 }, + { "dma2-ch", IMX_SC_R_DMA_2_CH0, 32, true, 0 }, { "asrc0", IMX_SC_R_ASRC_0, 1, false, 0 }, { "asrc1", IMX_SC_R_ASRC_1, 1, false, 0 }, { "esai0", IMX_SC_R_ESAI_0, 1, false, 0 }, @@ -143,11 +143,11 @@ static const struct imx_sc_pd_range imx8qxp_scu_pd_ranges[] = { /* DMA SS */ { "can", IMX_SC_R_CAN_0, 3, true, 0 }, { "ftm", IMX_SC_R_FTM_0, 2, true, 0 }, - { "lpi2c", IMX_SC_R_I2C_0, 4, true, 0 }, + { "lpi2c", IMX_SC_R_I2C_0, 5, true, 0 }, { "adc", IMX_SC_R_ADC_0, 2, true, 0 }, { "lcd", IMX_SC_R_LCD_0, 1, true, 0 }, { "lcd0-pwm", IMX_SC_R_LCD_0_PWM_0, 1, true, 0 }, - { "lpuart", IMX_SC_R_UART_0, 4, true, 0 }, + { "lpuart", IMX_SC_R_UART_0, 5, true, 0 }, { "lpspi", IMX_SC_R_SPI_0, 4, true, 0 }, { "irqstr_dsp", IMX_SC_R_IRQSTR_DSP, 1, false, 0 }, From a67d780720ff406943d56286bc06aa60c2b59d3a Mon Sep 17 00:00:00 2001 From: Peng Fan Date: Mon, 14 Aug 2023 18:41:22 +0800 Subject: [PATCH 25/30] genpd: imx: scu-pd: add more PDs Add more PDs for i.MX8QM and i.MX8DXL, including dma-ch, esai, gpu1, v2x-mu, seco-mu, hdmi, img and etc. Signed-off-by: Peng Fan Signed-off-by: Ulf Hansson --- drivers/genpd/imx/scu-pd.c | 65 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/drivers/genpd/imx/scu-pd.c b/drivers/genpd/imx/scu-pd.c index 5a28f5af592a..08583a10ac62 100644 --- a/drivers/genpd/imx/scu-pd.c +++ b/drivers/genpd/imx/scu-pd.c @@ -121,12 +121,16 @@ static const struct imx_sc_pd_range imx8qxp_scu_pd_ranges[] = { { "audio-pll1", IMX_SC_R_AUDIO_PLL_1, 1, false, 0 }, { "audio-clk-0", IMX_SC_R_AUDIO_CLK_0, 1, false, 0 }, { "audio-clk-1", IMX_SC_R_AUDIO_CLK_1, 1, false, 0 }, + { "mclk-out-0", IMX_SC_R_MCLK_OUT_0, 1, false, 0 }, + { "mclk-out-1", IMX_SC_R_MCLK_OUT_1, 1, false, 0 }, { "dma0-ch", IMX_SC_R_DMA_0_CH0, 32, true, 0 }, { "dma1-ch", IMX_SC_R_DMA_1_CH0, 16, true, 0 }, { "dma2-ch", IMX_SC_R_DMA_2_CH0, 32, true, 0 }, + { "dma3-ch", IMX_SC_R_DMA_3_CH0, 32, true, 0 }, { "asrc0", IMX_SC_R_ASRC_0, 1, false, 0 }, { "asrc1", IMX_SC_R_ASRC_1, 1, false, 0 }, { "esai0", IMX_SC_R_ESAI_0, 1, false, 0 }, + { "esai1", IMX_SC_R_ESAI_1, 1, false, 0 }, { "spdif0", IMX_SC_R_SPDIF_0, 1, false, 0 }, { "spdif1", IMX_SC_R_SPDIF_1, 1, false, 0 }, { "sai", IMX_SC_R_SAI_0, 3, true, 0 }, @@ -146,8 +150,10 @@ static const struct imx_sc_pd_range imx8qxp_scu_pd_ranges[] = { { "lpi2c", IMX_SC_R_I2C_0, 5, true, 0 }, { "adc", IMX_SC_R_ADC_0, 2, true, 0 }, { "lcd", IMX_SC_R_LCD_0, 1, true, 0 }, + { "lcd-pll", IMX_SC_R_ELCDIF_PLL, 1, true, 0 }, { "lcd0-pwm", IMX_SC_R_LCD_0_PWM_0, 1, true, 0 }, { "lpuart", IMX_SC_R_UART_0, 5, true, 0 }, + { "sim", IMX_SC_R_EMVSIM_0, 2, true, 0 }, { "lpspi", IMX_SC_R_SPI_0, 4, true, 0 }, { "irqstr_dsp", IMX_SC_R_IRQSTR_DSP, 1, false, 0 }, @@ -163,10 +169,15 @@ static const struct imx_sc_pd_range imx8qxp_scu_pd_ranges[] = { /* GPU SS */ { "gpu0-pid", IMX_SC_R_GPU_0_PID0, 4, true, 0 }, + { "gpu1-pid", IMX_SC_R_GPU_1_PID0, 4, true, 0 }, + /* HSIO SS */ + { "pcie-a", IMX_SC_R_PCIE_A, 1, false, 0 }, + { "serdes-0", IMX_SC_R_SERDES_0, 1, false, 0 }, { "pcie-b", IMX_SC_R_PCIE_B, 1, false, 0 }, { "serdes-1", IMX_SC_R_SERDES_1, 1, false, 0 }, + { "sata-0", IMX_SC_R_SATA_0, 1, false, 0 }, { "hsio-gpio", IMX_SC_R_HSIO_GPIO, 1, false, 0 }, /* MIPI SS */ @@ -186,11 +197,20 @@ static const struct imx_sc_pd_range imx8qxp_scu_pd_ranges[] = { { "lvds1-pwm", IMX_SC_R_LVDS_1_PWM_0, 1, false, 0 }, { "lvds1-lpi2c", IMX_SC_R_LVDS_1_I2C_0, 2, true, 0 }, + { "mipi1", IMX_SC_R_MIPI_1, 1, 0 }, + { "mipi1-pwm0", IMX_SC_R_MIPI_1_PWM_0, 1, 0 }, + { "mipi1-i2c", IMX_SC_R_MIPI_1_I2C_0, 2, 1 }, + { "lvds1", IMX_SC_R_LVDS_1, 1, 0 }, + /* DC SS */ { "dc0", IMX_SC_R_DC_0, 1, false, 0 }, { "dc0-pll", IMX_SC_R_DC_0_PLL_0, 2, true, 0 }, { "dc0-video", IMX_SC_R_DC_0_VIDEO0, 2, true, 0 }, + { "dc1", IMX_SC_R_DC_1, 1, false, 0 }, + { "dc1-pll", IMX_SC_R_DC_1_PLL_0, 2, true, 0 }, + { "dc1-video", IMX_SC_R_DC_1_VIDEO0, 2, true, 0 }, + /* CM40 SS */ { "cm40-i2c", IMX_SC_R_M4_0_I2C, 1, false, 0 }, { "cm40-intmux", IMX_SC_R_M4_0_INTMUX, 1, false, 0 }, @@ -205,11 +225,56 @@ static const struct imx_sc_pd_range imx8qxp_scu_pd_ranges[] = { { "cm41-mu-a1", IMX_SC_R_M4_1_MU_1A, 1, false, 0}, { "cm41-lpuart", IMX_SC_R_M4_1_UART, 1, false, 0}, + /* CM41 SS */ + { "cm41_i2c", IMX_SC_R_M4_1_I2C, 1, false, 0 }, + { "cm41_intmux", IMX_SC_R_M4_1_INTMUX, 1, false, 0 }, + + /* DB SS */ + { "perf", IMX_SC_R_PERF, 1, false, 0}, + /* IMAGE SS */ { "img-jpegdec-mp", IMX_SC_R_MJPEG_DEC_MP, 1, false, 0 }, { "img-jpegdec-s0", IMX_SC_R_MJPEG_DEC_S0, 4, true, 0 }, { "img-jpegenc-mp", IMX_SC_R_MJPEG_ENC_MP, 1, false, 0 }, { "img-jpegenc-s0", IMX_SC_R_MJPEG_ENC_S0, 4, true, 0 }, + + /* SECO SS */ + { "seco_mu", IMX_SC_R_SECO_MU_2, 3, true, 2}, + + /* V2X SS */ + { "v2x_mu", IMX_SC_R_V2X_MU_0, 2, true, 0}, + { "v2x_mu", IMX_SC_R_V2X_MU_2, 1, true, 2}, + { "v2x_mu", IMX_SC_R_V2X_MU_3, 2, true, 3}, + { "img-pdma", IMX_SC_R_ISI_CH0, 8, true, 0 }, + { "img-csi0", IMX_SC_R_CSI_0, 1, false, 0 }, + { "img-csi0-i2c0", IMX_SC_R_CSI_0_I2C_0, 1, false, 0 }, + { "img-csi0-pwm0", IMX_SC_R_CSI_0_PWM_0, 1, false, 0 }, + { "img-csi1", IMX_SC_R_CSI_1, 1, false, 0 }, + { "img-csi1-i2c0", IMX_SC_R_CSI_1_I2C_0, 1, false, 0 }, + { "img-csi1-pwm0", IMX_SC_R_CSI_1_PWM_0, 1, false, 0 }, + { "img-parallel", IMX_SC_R_PI_0, 1, false, 0 }, + { "img-parallel-i2c0", IMX_SC_R_PI_0_I2C_0, 1, false, 0 }, + { "img-parallel-pwm0", IMX_SC_R_PI_0_PWM_0, 2, true, 0 }, + { "img-parallel-pll", IMX_SC_R_PI_0_PLL, 1, false, 0 }, + + /* HDMI TX SS */ + { "hdmi-tx", IMX_SC_R_HDMI, 1, false, 0}, + { "hdmi-tx-i2s", IMX_SC_R_HDMI_I2S, 1, false, 0}, + { "hdmi-tx-i2c0", IMX_SC_R_HDMI_I2C_0, 1, false, 0}, + { "hdmi-tx-pll0", IMX_SC_R_HDMI_PLL_0, 1, false, 0}, + { "hdmi-tx-pll1", IMX_SC_R_HDMI_PLL_1, 1, false, 0}, + + /* HDMI RX SS */ + { "hdmi-rx", IMX_SC_R_HDMI_RX, 1, false, 0}, + { "hdmi-rx-pwm", IMX_SC_R_HDMI_RX_PWM_0, 1, false, 0}, + { "hdmi-rx-i2c0", IMX_SC_R_HDMI_RX_I2C_0, 1, false, 0}, + { "hdmi-rx-bypass", IMX_SC_R_HDMI_RX_BYPASS, 1, false, 0}, + + /* SECURITY SS */ + { "sec-jr", IMX_SC_R_CAAM_JR2, 2, true, 2}, + + /* BOARD SS */ + { "board", IMX_SC_R_BOARD_R0, 8, true, 0}, }; static const struct imx_sc_pd_soc imx8qxp_scu_pd = { From 309864dcf92b76fc601a579adf9eb389e4ca4c5c Mon Sep 17 00:00:00 2001 From: Peng Fan Date: Mon, 14 Aug 2023 18:41:23 +0800 Subject: [PATCH 26/30] genpd: imx: scu-pd: do not power off console if no_console_suspend Do not power off console if no_console_suspend, this will leave the serial device's corresponding PM domain on during system suspend, which is useful for debug system suspend. Signed-off-by: Peng Fan Signed-off-by: Ulf Hansson --- drivers/genpd/imx/scu-pd.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/genpd/imx/scu-pd.c b/drivers/genpd/imx/scu-pd.c index 08583a10ac62..d69da79d3130 100644 --- a/drivers/genpd/imx/scu-pd.c +++ b/drivers/genpd/imx/scu-pd.c @@ -52,6 +52,7 @@ */ #include +#include #include #include #include @@ -324,6 +325,10 @@ static int imx_sc_pd_power(struct generic_pm_domain *domain, bool power_on) msg.resource = pd->rsrc; msg.mode = power_on ? IMX_SC_PM_PW_MODE_ON : IMX_SC_PM_PW_MODE_LP; + /* keep uart console power on for no_console_suspend */ + if (imx_con_rsrc == pd->rsrc && !console_suspend_enabled && !power_on) + return -EBUSY; + ret = imx_scu_call_rpc(pm_ipc_handle, &msg, true); if (ret) dev_err(&domain->dev, "failed to power %s resource %d ret %d\n", From ec8b5619750eaced14bfe38ec53f760d7cead19f Mon Sep 17 00:00:00 2001 From: Peng Fan Date: Mon, 14 Aug 2023 18:41:24 +0800 Subject: [PATCH 27/30] genpd: imx: scu-pd: Suppress bind attrs This driver is registered as platform driver, but removing and binding again would cause system not workable. So suppress bind attrs. Signed-off-by: Peng Fan Signed-off-by: Ulf Hansson --- drivers/genpd/imx/scu-pd.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/genpd/imx/scu-pd.c b/drivers/genpd/imx/scu-pd.c index d69da79d3130..fa840ebe38c5 100644 --- a/drivers/genpd/imx/scu-pd.c +++ b/drivers/genpd/imx/scu-pd.c @@ -488,6 +488,7 @@ static struct platform_driver imx_sc_pd_driver = { .driver = { .name = "imx-scu-pd", .of_match_table = imx_sc_pd_match, + .suppress_bind_attrs = true, }, .probe = imx_sc_pd_probe, }; From 4f6c9832613b421e56bad2f9e4e2767e43e1f97c Mon Sep 17 00:00:00 2001 From: Peng Fan Date: Mon, 14 Aug 2023 18:41:25 +0800 Subject: [PATCH 28/30] genpd: imx: scu-pd: initialize is_off according to HW state The current code default set is_off to true except console resource, this implies bootloader should power off all the resources it uses. But this is not always true, let's check the HW state and set is_off. Signed-off-by: Peng Fan Signed-off-by: Ulf Hansson --- drivers/genpd/imx/scu-pd.c | 59 +++++++++++++++++++++++++++++++++++--- 1 file changed, 55 insertions(+), 4 deletions(-) diff --git a/drivers/genpd/imx/scu-pd.c b/drivers/genpd/imx/scu-pd.c index fa840ebe38c5..2f693b67ddb4 100644 --- a/drivers/genpd/imx/scu-pd.c +++ b/drivers/genpd/imx/scu-pd.c @@ -72,6 +72,22 @@ struct imx_sc_msg_req_set_resource_power_mode { u8 mode; } __packed __aligned(4); +struct req_get_resource_mode { + u16 resource; +}; + +struct resp_get_resource_mode { + u8 mode; +}; + +struct imx_sc_msg_req_get_resource_power_mode { + struct imx_sc_rpc_msg hdr; + union { + struct req_get_resource_mode req; + struct resp_get_resource_mode resp; + } data; +} __packed __aligned(4); + #define IMX_SCU_PD_NAME_SIZE 20 struct imx_sc_pm_domain { struct generic_pm_domain pd; @@ -96,6 +112,14 @@ struct imx_sc_pd_soc { static int imx_con_rsrc; +/* Align with the IMX_SC_PM_PW_MODE_[OFF,STBY,LP,ON] macros */ +static const char * const imx_sc_pm_mode[] = { + "IMX_SC_PM_PW_MODE_OFF", + "IMX_SC_PM_PW_MODE_STBY", + "IMX_SC_PM_PW_MODE_LP", + "IMX_SC_PM_PW_MODE_ON" +}; + static const struct imx_sc_pd_range imx8qxp_scu_pd_ranges[] = { /* LSIO SS */ { "pwm", IMX_SC_R_PWM_0, 8, true, 0 }, @@ -308,6 +332,27 @@ static void imx_sc_pd_get_console_rsrc(void) imx_con_rsrc = specs.args[0]; } +static int imx_sc_get_pd_power(struct device *dev, u32 rsrc) +{ + struct imx_sc_msg_req_get_resource_power_mode msg; + struct imx_sc_rpc_msg *hdr = &msg.hdr; + int ret; + + hdr->ver = IMX_SC_RPC_VERSION; + hdr->svc = IMX_SC_RPC_SVC_PM; + hdr->func = IMX_SC_PM_FUNC_GET_RESOURCE_POWER_MODE; + hdr->size = 2; + + msg.data.req.resource = rsrc; + + ret = imx_scu_call_rpc(pm_ipc_handle, &msg, true); + if (ret) + dev_err(dev, "failed to get power resource %d mode, ret %d\n", + rsrc, ret); + + return msg.data.resp.mode; +} + static int imx_sc_pd_power(struct generic_pm_domain *domain, bool power_on) { struct imx_sc_msg_req_set_resource_power_mode msg; @@ -372,8 +417,8 @@ imx_scu_add_pm_domain(struct device *dev, int idx, const struct imx_sc_pd_range *pd_ranges) { struct imx_sc_pm_domain *sc_pd; - bool is_off = true; - int ret; + bool is_off; + int mode, ret; if (!imx_sc_rm_is_resource_owned(pm_ipc_handle, pd_ranges->rsrc + idx)) return NULL; @@ -394,10 +439,16 @@ imx_scu_add_pm_domain(struct device *dev, int idx, "%s", pd_ranges->name); sc_pd->pd.name = sc_pd->name; - if (imx_con_rsrc == sc_pd->rsrc) { + if (imx_con_rsrc == sc_pd->rsrc) sc_pd->pd.flags = GENPD_FLAG_RPM_ALWAYS_ON; + + mode = imx_sc_get_pd_power(dev, pd_ranges->rsrc + idx); + if (mode == IMX_SC_PM_PW_MODE_ON) is_off = false; - } + else + is_off = true; + + dev_dbg(dev, "%s : %s\n", sc_pd->name, imx_sc_pm_mode[mode]); if (sc_pd->rsrc >= IMX_SC_R_LAST) { dev_warn(dev, "invalid pd %s rsrc id %d found", From f6e35a67c174e3776c51c88470f4061e786511ec Mon Sep 17 00:00:00 2001 From: Rob Herring Date: Wed, 23 Aug 2023 12:04:37 -0500 Subject: [PATCH 29/30] genpd: Explicitly include correct DT includes The DT of_device.h and of_platform.h date back to the separate of_platform_bus_type before it was merged into the regular platform bus. As part of that merge prepping Arm DT support 13 years ago, they "temporarily" include each other. They also include platform_device.h and of.h. As a result, there's a pretty much random mix of those include files used throughout the tree. In order to detangle these headers and replace the implicit includes with struct declarations, users need to explicitly include the correct includes. Signed-off-by: Rob Herring Acked-by: Jernej Skrabec Signed-off-by: Ulf Hansson --- drivers/genpd/mediatek/mtk-pm-domains.c | 2 +- drivers/genpd/mediatek/mtk-scpsys.c | 2 +- drivers/genpd/sunxi/sun20i-ppu.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/genpd/mediatek/mtk-pm-domains.c b/drivers/genpd/mediatek/mtk-pm-domains.c index 354249cc1b12..ee962804b830 100644 --- a/drivers/genpd/mediatek/mtk-pm-domains.c +++ b/drivers/genpd/mediatek/mtk-pm-domains.c @@ -8,8 +8,8 @@ #include #include #include +#include #include -#include #include #include #include diff --git a/drivers/genpd/mediatek/mtk-scpsys.c b/drivers/genpd/mediatek/mtk-scpsys.c index 7a668888111c..b374d01fdac7 100644 --- a/drivers/genpd/mediatek/mtk-scpsys.c +++ b/drivers/genpd/mediatek/mtk-scpsys.c @@ -7,7 +7,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/genpd/sunxi/sun20i-ppu.c b/drivers/genpd/sunxi/sun20i-ppu.c index 98cb41d36560..8700f9dd5f75 100644 --- a/drivers/genpd/sunxi/sun20i-ppu.c +++ b/drivers/genpd/sunxi/sun20i-ppu.c @@ -5,7 +5,7 @@ #include #include #include -#include +#include #include #include #include From 5e536362f6ab97f709c07bfda962a7bb036c2563 Mon Sep 17 00:00:00 2001 From: Zhang Zekun Date: Fri, 18 Aug 2023 15:01:49 +0800 Subject: [PATCH 30/30] genpd: ti: Use for_each_node_with_property() simplify code logic Let's convert to use for_each_node_with_property() to iterate through the DT nodes, as to simplify the code logic a bit. No intended functional change. Signed-off-by: Zhang Zekun Acked-by: Nishanth Menon Signed-off-by: Ulf Hansson --- drivers/genpd/ti/ti_sci_pm_domains.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/drivers/genpd/ti/ti_sci_pm_domains.c b/drivers/genpd/ti/ti_sci_pm_domains.c index a33ec7eaf23d..34645104fe45 100644 --- a/drivers/genpd/ti/ti_sci_pm_domains.c +++ b/drivers/genpd/ti/ti_sci_pm_domains.c @@ -119,7 +119,7 @@ static int ti_sci_pm_domain_probe(struct platform_device *pdev) struct device *dev = &pdev->dev; struct ti_sci_genpd_provider *pd_provider; struct ti_sci_pm_domain *pd; - struct device_node *np = NULL; + struct device_node *np; struct of_phandle_args args; int ret; u32 max_id = 0; @@ -138,11 +138,7 @@ static int ti_sci_pm_domain_probe(struct platform_device *pdev) INIT_LIST_HEAD(&pd_provider->pd_list); /* Find highest device ID used for power domains */ - while (1) { - np = of_find_node_with_property(np, "power-domains"); - if (!np) - break; - + for_each_node_with_property(np, "power-domains") { index = 0; while (1) {