diff options
author | Sylwester Nawrocki <s.nawrocki@samsung.com> | 2016-07-08 10:15:00 -0400 |
---|---|---|
committer | Michael Turquette <mturquette@baylibre.com> | 2016-07-13 17:59:53 -0400 |
commit | 4d252fd5719bd047a178668aa09ee8bc9de85c7c (patch) | |
tree | cc6cd7c7c3da7baf952a109725e3982327570dd0 | |
parent | 4c7c28ffe9658ebfb43e638d9d267e1be2ffb71c (diff) |
clk: samsung: Allow modular build of the Audio Subsystem CLKCON driver
Any clock dependencies can be properly handled with deferred probing
so we can remove core_initcall and switch to a proper loadable platform
driver module.
This change has been tested on Exynos4412 Odroid U3 based board.
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Signed-off-by: Michael Turquette <mturquette@baylibre.com>
Link: lkml.kernel.org/r/1467987300-31450-1-git-send-email-s.nawrocki@samsung.com
-rw-r--r-- | drivers/clk/samsung/Kconfig | 9 | ||||
-rw-r--r-- | drivers/clk/samsung/Makefile | 2 | ||||
-rw-r--r-- | drivers/clk/samsung/clk-exynos-audss.c | 12 |
3 files changed, 11 insertions, 12 deletions
diff --git a/drivers/clk/samsung/Kconfig b/drivers/clk/samsung/Kconfig index 20c5fe92ab4a..addc65270e43 100644 --- a/drivers/clk/samsung/Kconfig +++ b/drivers/clk/samsung/Kconfig | |||
@@ -9,6 +9,15 @@ config EXYNOS_ARM64_COMMON_CLK | |||
9 | bool "Samsung Exynos ARMv8-family clock controller support" if COMPILE_TEST | 9 | bool "Samsung Exynos ARMv8-family clock controller support" if COMPILE_TEST |
10 | depends on COMMON_CLK_SAMSUNG | 10 | depends on COMMON_CLK_SAMSUNG |
11 | 11 | ||
12 | config EXYNOS_AUDSS_CLK_CON | ||
13 | tristate "Samsung Exynos AUDSS clock controller support" | ||
14 | depends on COMMON_CLK_SAMSUNG | ||
15 | default y if ARCH_EXYNOS | ||
16 | help | ||
17 | Support for the Audio Subsystem CLKCON clock controller present | ||
18 | on some Exynos SoC variants. Choose M or Y here if you want to | ||
19 | use audio devices such as I2S, PCM, etc. | ||
20 | |||
12 | # For S3C24XX platforms, select following symbols: | 21 | # For S3C24XX platforms, select following symbols: |
13 | config S3C2410_COMMON_CLK | 22 | config S3C2410_COMMON_CLK |
14 | bool "Samsung S3C2410 clock controller support" if COMPILE_TEST | 23 | bool "Samsung S3C2410 clock controller support" if COMPILE_TEST |
diff --git a/drivers/clk/samsung/Makefile b/drivers/clk/samsung/Makefile index fc367d4b2902..57f4dc6dc447 100644 --- a/drivers/clk/samsung/Makefile +++ b/drivers/clk/samsung/Makefile | |||
@@ -12,7 +12,7 @@ obj-$(CONFIG_SOC_EXYNOS5410) += clk-exynos5410.o | |||
12 | obj-$(CONFIG_SOC_EXYNOS5420) += clk-exynos5420.o | 12 | obj-$(CONFIG_SOC_EXYNOS5420) += clk-exynos5420.o |
13 | obj-$(CONFIG_EXYNOS_ARM64_COMMON_CLK) += clk-exynos5433.o | 13 | obj-$(CONFIG_EXYNOS_ARM64_COMMON_CLK) += clk-exynos5433.o |
14 | obj-$(CONFIG_SOC_EXYNOS5440) += clk-exynos5440.o | 14 | obj-$(CONFIG_SOC_EXYNOS5440) += clk-exynos5440.o |
15 | obj-$(CONFIG_ARCH_EXYNOS) += clk-exynos-audss.o | 15 | obj-$(CONFIG_EXYNOS_AUDSS_CLK_CON) += clk-exynos-audss.o |
16 | obj-$(CONFIG_ARCH_EXYNOS) += clk-exynos-clkout.o | 16 | obj-$(CONFIG_ARCH_EXYNOS) += clk-exynos-clkout.o |
17 | obj-$(CONFIG_EXYNOS_ARM64_COMMON_CLK) += clk-exynos7.o | 17 | obj-$(CONFIG_EXYNOS_ARM64_COMMON_CLK) += clk-exynos7.o |
18 | obj-$(CONFIG_S3C2410_COMMON_CLK)+= clk-s3c2410.o | 18 | obj-$(CONFIG_S3C2410_COMMON_CLK)+= clk-s3c2410.o |
diff --git a/drivers/clk/samsung/clk-exynos-audss.c b/drivers/clk/samsung/clk-exynos-audss.c index 4e9584d79089..bdf8b971f332 100644 --- a/drivers/clk/samsung/clk-exynos-audss.c +++ b/drivers/clk/samsung/clk-exynos-audss.c | |||
@@ -273,17 +273,7 @@ static struct platform_driver exynos_audss_clk_driver = { | |||
273 | .remove = exynos_audss_clk_remove, | 273 | .remove = exynos_audss_clk_remove, |
274 | }; | 274 | }; |
275 | 275 | ||
276 | static int __init exynos_audss_clk_init(void) | 276 | module_platform_driver(exynos_audss_clk_driver); |
277 | { | ||
278 | return platform_driver_register(&exynos_audss_clk_driver); | ||
279 | } | ||
280 | core_initcall(exynos_audss_clk_init); | ||
281 | |||
282 | static void __exit exynos_audss_clk_exit(void) | ||
283 | { | ||
284 | platform_driver_unregister(&exynos_audss_clk_driver); | ||
285 | } | ||
286 | module_exit(exynos_audss_clk_exit); | ||
287 | 277 | ||
288 | MODULE_AUTHOR("Padmavathi Venna <padma.v@samsung.com>"); | 278 | MODULE_AUTHOR("Padmavathi Venna <padma.v@samsung.com>"); |
289 | MODULE_DESCRIPTION("Exynos Audio Subsystem Clock Controller"); | 279 | MODULE_DESCRIPTION("Exynos Audio Subsystem Clock Controller"); |