diff mbox series

[v3] drivers: clk: make gpio-gated clock support optional

Message ID 20201202123446.21902-1-info@metux.net (mailing list archive)
State Accepted, archived
Headers show
Series [v3] drivers: clk: make gpio-gated clock support optional | expand

Commit Message

Enrico Weigelt, metux IT consult Dec. 2, 2020, 12:34 p.m. UTC
The gpio-gate-clock / gpio-mux-clock driver isn't used much,
just by a few ARM SoCs, so there's no need to always include
it unconditionally.

Thus make it optional, but keep it enabled by default.

changes v3: default to y when gpiolib enabled
            fix depends on gpiolib to uppercase

changes v2: added missing dependency on gpiolib

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
---
 drivers/clk/Kconfig  | 8 ++++++++
 drivers/clk/Makefile | 2 +-
 2 files changed, 9 insertions(+), 1 deletion(-)

Comments

Stephen Boyd Dec. 20, 2020, 12:04 a.m. UTC | #1
Quoting Enrico Weigelt, metux IT consult (2020-12-02 04:34:46)
> The gpio-gate-clock / gpio-mux-clock driver isn't used much,
> just by a few ARM SoCs, so there's no need to always include
> it unconditionally.
> 
> Thus make it optional, but keep it enabled by default.
> 
> changes v3: default to y when gpiolib enabled
>             fix depends on gpiolib to uppercase
> 
> changes v2: added missing dependency on gpiolib
> 
> Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
> ---

Applied to clk-next
Stephen Boyd Dec. 20, 2020, 5:30 a.m. UTC | #2
Quoting Stephen Boyd (2020-12-19 16:04:21)
> Quoting Enrico Weigelt, metux IT consult (2020-12-02 04:34:46)
> > The gpio-gate-clock / gpio-mux-clock driver isn't used much,
> > just by a few ARM SoCs, so there's no need to always include
> > it unconditionally.
> > 
> > Thus make it optional, but keep it enabled by default.
> > 
> > changes v3: default to y when gpiolib enabled
> >             fix depends on gpiolib to uppercase
> > 
> > changes v2: added missing dependency on gpiolib
> > 
> > Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
> > ---
> 
> Applied to clk-next

And now reverted

In file included from include/linux/device.h:32:0,
                 from drivers/clk/clk-gpio.c:17:
include/linux/device/driver.h:290:1: warning: data definition has no type or storage class
 device_initcall(__driver##_init);
 ^
include/linux/platform_device.h:258:2: note: in expansion of macro 'builtin_driver'
  builtin_driver(__platform_driver, platform_driver_register)
  ^~~~~~~~~~~~~~
drivers/clk/clk-gpio.c:249:1: note: in expansion of macro 'builtin_platform_driver'
 builtin_platform_driver(gpio_clk_driver);
 ^~~~~~~~~~~~~~~~~~~~~~~
include/linux/device/driver.h:290:1: error: type defaults to 'int' in declaration of 'device_initcall' [-Werror=implicit-int]
 device_initcall(__driver##_init);
 ^
include/linux/platform_device.h:258:2: note: in expansion of macro 'builtin_driver'
  builtin_driver(__platform_driver, platform_driver_register)
  ^~~~~~~~~~~~~~
drivers/clk/clk-gpio.c:249:1: note: in expansion of macro 'builtin_platform_driver'
 builtin_platform_driver(gpio_clk_driver);
 ^~~~~~~~~~~~~~~~~~~~~~~
drivers/clk/clk-gpio.c:249:1: warning: parameter names (without types) in function declaration
In file included from include/linux/device.h:32:0,
                 from drivers/clk/clk-gpio.c:17:
drivers/clk/clk-gpio.c:249:25: warning: 'gpio_clk_driver_init' defined but not used [-Wunused-function]
 builtin_platform_driver(gpio_clk_driver);
                         ^
include/linux/device/driver.h:286:19: note: in definition of macro 'builtin_driver'
 static int __init __driver##_init(void) \
                   ^~~~~~~~
drivers/clk/clk-gpio.c:249:1: note: in expansion of macro 'builtin_platform_driver'
 builtin_platform_driver(gpio_clk_driver);
 ^~~~~~~~~~~~~~~~~~~~~~~

It looks like it needs to be a bool Kconfig to match how it used to be.
A module would be interesting, but would require more changes
presumably, like getting rid of builtin_platform_driver() and replacing
it with module_platform_driver().
Enrico Weigelt, metux IT consult Dec. 22, 2020, 7:51 p.m. UTC | #3
On 20.12.20 06:30, Stephen Boyd wrote:

> It looks like it needs to be a bool Kconfig to match how it used to be.
> A module would be interesting, but would require more changes
> presumably, like getting rid of builtin_platform_driver() and replacing
> it with module_platform_driver().

Okay, I'll rework it and post a v4.

thx.
--mtx
diff mbox series

Patch

diff --git a/drivers/clk/Kconfig b/drivers/clk/Kconfig
index c715d4681a0b..e4fe406c4e7d 100644
--- a/drivers/clk/Kconfig
+++ b/drivers/clk/Kconfig
@@ -38,6 +38,14 @@  menuconfig COMMON_CLK
 
 if COMMON_CLK
 
+config COMMON_CLK_GPIO
+	tristate "GPIO gated clock support"
+	default y if GPIOLIB
+	depends on GPIOLIB
+	help
+	  Supports gpio gated clocks, which can be enabled/disabled via
+	  gpio output.
+
 config COMMON_CLK_WM831X
 	tristate "Clock driver for WM831x/2x PMICs"
 	depends on MFD_WM831X
diff --git a/drivers/clk/Makefile b/drivers/clk/Makefile
index da8fcf147eb1..0692ab5abc6d 100644
--- a/drivers/clk/Makefile
+++ b/drivers/clk/Makefile
@@ -11,7 +11,7 @@  obj-$(CONFIG_COMMON_CLK)	+= clk-multiplier.o
 obj-$(CONFIG_COMMON_CLK)	+= clk-mux.o
 obj-$(CONFIG_COMMON_CLK)	+= clk-composite.o
 obj-$(CONFIG_COMMON_CLK)	+= clk-fractional-divider.o
-obj-$(CONFIG_COMMON_CLK)	+= clk-gpio.o
+obj-$(CONFIG_COMMON_CLK_GPIO)	+= clk-gpio.o
 ifeq ($(CONFIG_OF), y)
 obj-$(CONFIG_COMMON_CLK)	+= clk-conf.o
 endif