clk: sunxi: Add Kconfig options
authorMaxime Ripard <maxime.ripard@bootlin.com>
Tue, 19 Mar 2019 14:37:59 +0000 (15:37 +0100)
committerMaxime Ripard <maxime.ripard@bootlin.com>
Thu, 21 Mar 2019 09:01:54 +0000 (10:01 +0100)
We used to have a clock framework that isn't really used these days, except
for a few clocks and/or SoCs. Most of the time, the new framework and
drivers (sunxi-ng) will provide everything needed for the customer devices
to operate properly.

Since we're not needing it that much, it might make sense to disable those
drivers, for example when we want to reduce the kernel size. Let's add
options in Kconfig that can be disabled if needed, but are still on by
default to keep the same features in the standard case.

Acked-by: Stephen Boyd <sboyd@kernel.org>
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
drivers/clk/Kconfig
drivers/clk/sunxi/Kconfig [new file with mode: 0644]
drivers/clk/sunxi/Makefile

index e705aab9e38ba8f6b82fc74ba74bbee5e3ec9843..f96c7f39ab7e4d68fef7b62aa9be6f638bcffc2f 100644 (file)
@@ -310,6 +310,7 @@ source "drivers/clk/qcom/Kconfig"
 source "drivers/clk/renesas/Kconfig"
 source "drivers/clk/samsung/Kconfig"
 source "drivers/clk/sprd/Kconfig"
+source "drivers/clk/sunxi/Kconfig"
 source "drivers/clk/sunxi-ng/Kconfig"
 source "drivers/clk/tegra/Kconfig"
 source "drivers/clk/ti/Kconfig"
diff --git a/drivers/clk/sunxi/Kconfig b/drivers/clk/sunxi/Kconfig
new file mode 100644 (file)
index 0000000..2b6207c
--- /dev/null
@@ -0,0 +1,43 @@
+menuconfig CLK_SUNXI
+       bool "Legacy clock support for Allwinner SoCs"
+       depends on ARCH_SUNXI || COMPILE_TEST
+       default y
+
+if CLK_SUNXI
+
+config CLK_SUNXI_CLOCKS
+       bool "Legacy clock drivers"
+       default y
+       help
+         Legacy clock drivers being used on older (A10, A13, A20,
+         A23, A31, A80) SoCs. These drivers are kept around for
+         Device Tree backward compatibility issues, in case one would
+         still use a Device Tree with one clock provider by
+         node. Newer Device Trees and newer SoCs use the drivers
+         controlled by CONFIG_SUNXI_CCU.
+
+config CLK_SUNXI_PRCM_SUN6I
+       bool "Legacy A31 PRCM driver"
+       select MFD_SUN6I_PRCM
+       default y
+       help
+         Legacy clock driver for the A31 PRCM clocks. Those are
+         usually needed for the PMIC communication, mostly.
+
+config CLK_SUNXI_PRCM_SUN8I
+       bool "Legacy sun8i PRCM driver"
+       select MFD_SUN6I_PRCM
+       default y
+       help
+         Legacy clock driver for the sun8i family PRCM clocks.
+         Those are usually needed for the PMIC communication,
+         mostly.
+
+config CLK_SUNXI_PRCM_SUN9I
+       bool "Legacy A80 PRCM driver"
+       default y
+       help
+         Legacy clock driver for the A80 PRCM clocks. Those are
+         usually needed for the PMIC communication, mostly.
+
+endif
index be88368b48a1c1046ee82b3a343eed9c059244ac..e10824c76ae92319e225ea0ff0e67e75dfcc62c2 100644 (file)
@@ -3,27 +3,32 @@
 # Makefile for sunxi specific clk
 #
 
-obj-y += clk-sunxi.o clk-factors.o
-obj-y += clk-a10-codec.o
-obj-y += clk-a10-hosc.o
-obj-y += clk-a10-mod1.o
-obj-y += clk-a10-pll2.o
-obj-y += clk-a10-ve.o
-obj-y += clk-a20-gmac.o
-obj-y += clk-mod0.o
-obj-y += clk-simple-gates.o
-obj-y += clk-sun4i-display.o
-obj-y += clk-sun4i-pll3.o
-obj-y += clk-sun4i-tcon-ch1.o
-obj-y += clk-sun8i-bus-gates.o
-obj-y += clk-sun8i-mbus.o
-obj-y += clk-sun9i-core.o
-obj-y += clk-sun9i-mmc.o
-obj-y += clk-usb.o
+obj-$(CONFIG_CLK_SUNXI) += clk-factors.o
 
-obj-$(CONFIG_MACH_SUN9I) += clk-sun8i-apb0.o
-obj-$(CONFIG_MACH_SUN9I) += clk-sun9i-cpus.o
+obj-$(CONFIG_CLK_SUNXI_CLOCKS) += clk-sunxi.o
+obj-$(CONFIG_CLK_SUNXI_CLOCKS) += clk-a10-codec.o
+obj-$(CONFIG_CLK_SUNXI_CLOCKS) += clk-a10-hosc.o
+obj-$(CONFIG_CLK_SUNXI_CLOCKS) += clk-a10-mod1.o
+obj-$(CONFIG_CLK_SUNXI_CLOCKS) += clk-a10-pll2.o
+obj-$(CONFIG_CLK_SUNXI_CLOCKS) += clk-a10-ve.o
+obj-$(CONFIG_CLK_SUNXI_CLOCKS) += clk-a20-gmac.o
+obj-$(CONFIG_CLK_SUNXI_CLOCKS) += clk-mod0.o
+obj-$(CONFIG_CLK_SUNXI_CLOCKS) += clk-simple-gates.o
+obj-$(CONFIG_CLK_SUNXI_CLOCKS) += clk-sun4i-display.o
+obj-$(CONFIG_CLK_SUNXI_CLOCKS) += clk-sun4i-pll3.o
+obj-$(CONFIG_CLK_SUNXI_CLOCKS) += clk-sun4i-tcon-ch1.o
+obj-$(CONFIG_CLK_SUNXI_CLOCKS) += clk-sun8i-bus-gates.o
+obj-$(CONFIG_CLK_SUNXI_CLOCKS) += clk-sun8i-mbus.o
+obj-$(CONFIG_CLK_SUNXI_CLOCKS) += clk-sun9i-core.o
+obj-$(CONFIG_CLK_SUNXI_CLOCKS) += clk-sun9i-mmc.o
+obj-$(CONFIG_CLK_SUNXI_CLOCKS) += clk-usb.o
 
-obj-$(CONFIG_MFD_SUN6I_PRCM) += \
-       clk-sun6i-ar100.o clk-sun6i-apb0.o clk-sun6i-apb0-gates.o \
-       clk-sun8i-apb0.o
+obj-$(CONFIG_CLK_SUNXI_CLOCKS) += clk-sun8i-apb0.o
+obj-$(CONFIG_CLK_SUNXI_CLOCKS) += clk-sun9i-cpus.o
+
+obj-$(CONFIG_CLK_SUNXI_PRCM_SUN6I)     += clk-sun6i-apb0.o
+obj-$(CONFIG_CLK_SUNXI_PRCM_SUN6I)     += clk-sun6i-apb0-gates.o
+obj-$(CONFIG_CLK_SUNXI_PRCM_SUN6I)     += clk-sun6i-ar100.o
+
+obj-$(CONFIG_CLK_SUNXI_PRCM_SUN8I)     += clk-sun8i-apb0.o
+obj-$(CONFIG_CLK_SUNXI_PRCM_SUN8I)     += clk-sun6i-apb0-gates.o