Commit 33d55070 authored by Hans de Goede's avatar Hans de Goede Committed by Lee Jones
Browse files

mfd: arizona: Allow building arizona MFD-core as module



There is no reason why the arizona core,irq and codec model specific
regmap bits cannot be build as a module. All they do is export symbols
which are used by the arizona-spi/i2c and arizona-codec modules, which
themselves can be built as module.

Change the Kconfig and Makefile arizona bits so that the arizona MFD-core
can be built as a module.

This is especially useful on x86 platforms with a WM5102 codec, this
allows the arizona MFD driver necessary for the WM5102 codec to be
enabled in generic distro-kernels without growing the base kernel-image
size.

Note this also adds an explicit "depends on MFD_ARIZONA" to all the
arizona codec Kconfig options. The codec drivers use functions from mfd
arizona-core. These new depends are necessary to disallow the codec
drivers being builtin when the arizona-core is build as a module,
otherwise we end up with missing symbol errors when building vmlinuz.

Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
Acked-by: default avatarCharles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
parent f94c7801
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1800,7 +1800,7 @@ config MFD_ARIZONA
	select REGMAP
	select REGMAP_IRQ
	select MFD_CORE
	bool
	tristate

config MFD_ARIZONA_I2C
	tristate "Cirrus Logic/Wolfson Microelectronics Arizona platform with I2C"
+7 −7
Original line number Diff line number Diff line
@@ -41,24 +41,24 @@ obj-$(CONFIG_MFD_TQMX86) += tqmx86.o

obj-$(CONFIG_MFD_LOCHNAGAR)	+= lochnagar-i2c.o

obj-$(CONFIG_MFD_ARIZONA)	+= arizona-core.o
obj-$(CONFIG_MFD_ARIZONA)	+= arizona-irq.o
arizona-objs			:= arizona-core.o arizona-irq.o
obj-$(CONFIG_MFD_ARIZONA)	+= arizona.o
obj-$(CONFIG_MFD_ARIZONA_I2C)	+= arizona-i2c.o
obj-$(CONFIG_MFD_ARIZONA_SPI)	+= arizona-spi.o
ifeq ($(CONFIG_MFD_WM5102),y)
obj-$(CONFIG_MFD_ARIZONA)	+= wm5102-tables.o
arizona-objs			+= wm5102-tables.o
endif
ifeq ($(CONFIG_MFD_WM5110),y)
obj-$(CONFIG_MFD_ARIZONA)	+= wm5110-tables.o
arizona-objs			+= wm5110-tables.o
endif
ifeq ($(CONFIG_MFD_WM8997),y)
obj-$(CONFIG_MFD_ARIZONA)	+= wm8997-tables.o
arizona-objs			+= wm8997-tables.o
endif
ifeq ($(CONFIG_MFD_WM8998),y)
obj-$(CONFIG_MFD_ARIZONA)	+= wm8998-tables.o
arizona-objs			+= wm8998-tables.o
endif
ifeq ($(CONFIG_MFD_CS47L24),y)
obj-$(CONFIG_MFD_ARIZONA)	+= cs47l24-tables.o
arizona-objs			+= cs47l24-tables.o
endif
obj-$(CONFIG_MFD_WCD934X)	+= wcd934x.o
obj-$(CONFIG_MFD_WM8400)	+= wm8400-core.o
+2 −0
Original line number Diff line number Diff line
@@ -1447,3 +1447,5 @@ int arizona_dev_exit(struct arizona *arizona)
	return 0;
}
EXPORT_SYMBOL_GPL(arizona_dev_exit);

MODULE_LICENSE("GPL v2");
+5 −5
Original line number Diff line number Diff line
@@ -690,7 +690,7 @@ config SND_SOC_CS47L15

config SND_SOC_CS47L24
	tristate
	depends on MFD_CS47L24
	depends on MFD_CS47L24 && MFD_ARIZONA

config SND_SOC_CS47L35
	tristate
@@ -1564,11 +1564,11 @@ config SND_SOC_WM5100

config SND_SOC_WM5102
	tristate
	depends on MFD_WM5102
	depends on MFD_WM5102 && MFD_ARIZONA

config SND_SOC_WM5110
	tristate
	depends on MFD_WM5110
	depends on MFD_WM5110 && MFD_ARIZONA

config SND_SOC_WM8350
	tristate
@@ -1733,11 +1733,11 @@ config SND_SOC_WM8996

config SND_SOC_WM8997
	tristate
	depends on MFD_WM8997
	depends on MFD_WM8997 && MFD_ARIZONA

config SND_SOC_WM8998
	tristate
	depends on MFD_WM8998
	depends on MFD_WM8998 && MFD_ARIZONA

config SND_SOC_WM9081
	tristate