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