[PATCH v2 00/12] arm64: Kconfig: Update ARCH_EXYNOS select configs

From: Will McVicker
Date: Tue Sep 28 2021 - 19:56:55 EST


This is v2 of the series of patches that modularizes a number of core
ARCH_EXYNOS drivers. Based off of the feedback from the v1 series, I have
modularized all of the drivers that are removed from the ARCH_EXYNOS
series of "select XXX". This includes setting the following configs as
tristate:

* COMMON_CLK_SAMSUNG
* EXYNOS_ARM64_COMMON_CLK
* PINCTRL_SAMSUNG
* PINCTRL_EXYNOS
* EXYNOS_PMU_ARM64
* EXYNOS_PM_DOMAINS

Additionally, it introduces the config EXYNOS_PMU_ARM64 and EXYNOS_PMU_ARM
which was previously EXYNOS_PMU and EXYNOS_PMU_ARM_DRIVERS respectively.
The reason for these new configs is because we are not able to easily
modularize the ARMv7 PMU driver due to built-in arch dependencies on
pmu_base_addr under arch/arm/mach-exynos/*. So the new configs split up
the ARM and ARM64 portions into two separate configs.

Overall, these drivers didn't require much refactoring and converted to
modules relatively easily. However, due to my lack of exynos hardware, I
was not able to boot test these changes. I'm mostly concerned about the
CLK_OF_DECLARE() changes having dependencies on early timers. So I'm
requesting help for testing these changes on the respective hardware.

Lastly, this series is based off of [1] since there are dependencies on
EXYNOS_CHIPID from that series..

[1] https://lore.kernel.org/lkml/20210919093114.35987-1-krzysztof.kozlowski@xxxxxxxxxxxxx/

* From v1:
- Fixed modifying hidden configs
- Modularized all the drivers that were touched
- Removed HAVE_S3C_RTC
- Updated all Samsung ARCH_XXX configs as suggested from reviews
- Rebased on top of 5.15-rc3 and pulled in [1]

Will McVicker (12):
arm64: don't have ARCH_EXYNOS select EXYNOS_CHIPID
timekeeping: add API for getting timekeeping_suspended
clk: samsung: add support for CPU clocks
clk: samsung: exynos5433: update apollo and atlas clock probing
clk: export __clk_lookup
clk: samsung: modularize exynos arm64 clk drivers
clk: samsung: set exynos arm64 clk driver as tristate
pinctrl: samsung: modularize the ARM and ARM64 pinctrls
pinctrl: samsung: set PINCTRL_EXYNOS and PINCTRL_SAMSUNG as tristate
soc: samsung: pmu: modularize the Exynos ARMv8 PMU driver
soc: samsung: pm_domains: modularize EXYNOS_PM_DOMAINS
ARM: rtc: remove HAVE_S3C_RTC in favor of direct dependencies

arch/arm/Kconfig | 1 -
arch/arm/mach-exynos/Kconfig | 6 +-
arch/arm/mach-s3c/Kconfig.s3c64xx | 1 -
arch/arm/mach-s5pv210/Kconfig | 3 -
arch/arm64/Kconfig.platforms | 6 -
drivers/clk/clk.c | 1 +
drivers/clk/samsung/Kconfig | 5 +-
drivers/clk/samsung/Makefile | 3 +-
drivers/clk/samsung/clk-cpu.c | 28 +-
drivers/clk/samsung/clk-cpu.h | 2 +-
drivers/clk/samsung/clk-exynos5433.c | 465 ++++++++----------
drivers/clk/samsung/clk-exynos7.c | 177 +++----
drivers/clk/samsung/clk-pll.c | 6 +-
drivers/clk/samsung/clk.c | 35 +-
drivers/clk/samsung/clk.h | 50 +-
drivers/pinctrl/samsung/Kconfig | 5 +-
drivers/pinctrl/samsung/Makefile | 13 +-
drivers/pinctrl/samsung/pinctrl-exynos-arm.c | 102 ++--
.../pinctrl/samsung/pinctrl-exynos-arm64.c | 73 +--
drivers/pinctrl/samsung/pinctrl-exynos.c | 17 +-
drivers/pinctrl/samsung/pinctrl-samsung.c | 11 +-
drivers/rtc/Kconfig | 10 +-
drivers/soc/samsung/Kconfig | 18 +-
drivers/soc/samsung/Makefile | 8 +-
drivers/soc/samsung/exynos-pmu.c | 13 +-
drivers/soc/samsung/exynos-pmu.h | 2 +-
drivers/soc/samsung/pm_domains.c | 12 +-
include/linux/soc/samsung/exynos-pmu.h | 2 +-
include/linux/timekeeping.h | 1 +
kernel/time/timekeeping.c | 11 +
30 files changed, 553 insertions(+), 534 deletions(-)

--
2.33.0.685.g46640cef36-goog