On Fri, 17 Sept 2021 at 20:51, Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxxxxx> wrote: > > Exynos ChipID and ASV (Adaptive Supply Voltage) driver is not essential > to system boot and it can successfully be built and loaded as module. > > This makes core kernel image smaller and reduces the memory footprint > when multi-platform kernel is booted on non-Exynos board. Usually it is > also distro-friendly. > > Add multiple authors of the driver since its conversion from > mach-exynos, ordered alphabetically by first name. > > Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxxxxx> > --- Reviewed-by: Sam Protsenko <semen.protsenko@xxxxxxxxxx> > drivers/soc/samsung/Kconfig | 3 ++- > drivers/soc/samsung/Makefile | 3 ++- > drivers/soc/samsung/exynos-chipid.c | 11 ++++++++++- > drivers/soc/samsung/exynos5422-asv.c | 1 + > 4 files changed, 15 insertions(+), 3 deletions(-) > > diff --git a/drivers/soc/samsung/Kconfig b/drivers/soc/samsung/Kconfig > index 1f643c0f5c93..fe139f26d093 100644 > --- a/drivers/soc/samsung/Kconfig > +++ b/drivers/soc/samsung/Kconfig > @@ -13,13 +13,14 @@ config EXYNOS_ASV_ARM > depends on EXYNOS_CHIPID > > config EXYNOS_CHIPID > - bool "Exynos ChipID controller and ASV driver" if COMPILE_TEST > + tristate "Exynos ChipID controller and ASV driver" if COMPILE_TEST > depends on ARCH_EXYNOS || COMPILE_TEST > select EXYNOS_ASV_ARM if ARM && ARCH_EXYNOS > select MFD_SYSCON > select SOC_BUS > help > Support for Samsung Exynos SoC ChipID and Adaptive Supply Voltage. > + This driver can also be built as module (exynos_chipid). > > config EXYNOS_PMU > bool "Exynos PMU controller driver" if COMPILE_TEST > diff --git a/drivers/soc/samsung/Makefile b/drivers/soc/samsung/Makefile > index 0c523a8de4eb..2ae4bea804cf 100644 > --- a/drivers/soc/samsung/Makefile > +++ b/drivers/soc/samsung/Makefile > @@ -1,8 +1,9 @@ > # SPDX-License-Identifier: GPL-2.0 > > obj-$(CONFIG_EXYNOS_ASV_ARM) += exynos5422-asv.o > +obj-$(CONFIG_EXYNOS_CHIPID) += exynos_chipid.o > +exynos_chipid-y += exynos-chipid.o exynos-asv.o > > -obj-$(CONFIG_EXYNOS_CHIPID) += exynos-chipid.o exynos-asv.o > obj-$(CONFIG_EXYNOS_PMU) += exynos-pmu.o > > obj-$(CONFIG_EXYNOS_PMU_ARM_DRIVERS) += exynos3250-pmu.o exynos4-pmu.o \ > diff --git a/drivers/soc/samsung/exynos-chipid.c b/drivers/soc/samsung/exynos-chipid.c > index 5c1d0f97f766..5e8c957231ff 100644 > --- a/drivers/soc/samsung/exynos-chipid.c > +++ b/drivers/soc/samsung/exynos-chipid.c > @@ -15,6 +15,7 @@ > #include <linux/device.h> > #include <linux/errno.h> > #include <linux/mfd/syscon.h> > +#include <linux/module.h> > #include <linux/of.h> > #include <linux/platform_device.h> > #include <linux/regmap.h> > @@ -129,6 +130,7 @@ static const struct of_device_id exynos_chipid_of_device_ids[] = { > { .compatible = "samsung,exynos4210-chipid" }, > {} > }; > +MODULE_DEVICE_TABLE(of, exynos_chipid_of_device_ids); > > static struct platform_driver exynos_chipid_driver = { > .driver = { > @@ -138,4 +140,11 @@ static struct platform_driver exynos_chipid_driver = { > .probe = exynos_chipid_probe, > .remove = exynos_chipid_remove, > }; > -builtin_platform_driver(exynos_chipid_driver); > +module_platform_driver(exynos_chipid_driver); > + > +MODULE_DESCRIPTION("Samsung Exynos ChipID controller and ASV driver"); Just curious, how exactly ASV is related to chip-id driver? > +MODULE_AUTHOR("Bartlomiej Zolnierkiewicz <b.zolnierkie@xxxxxxxxxxx>"); > +MODULE_AUTHOR("Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxxxxx>"); > +MODULE_AUTHOR("Pankaj Dubey <pankaj.dubey@xxxxxxxxxxx>"); > +MODULE_AUTHOR("Sylwester Nawrocki <s.nawrocki@xxxxxxxxxxx>"); > +MODULE_LICENSE("GPL"); > diff --git a/drivers/soc/samsung/exynos5422-asv.c b/drivers/soc/samsung/exynos5422-asv.c > index ca409a976e34..475ae5276529 100644 > --- a/drivers/soc/samsung/exynos5422-asv.c > +++ b/drivers/soc/samsung/exynos5422-asv.c > @@ -503,3 +503,4 @@ int exynos5422_asv_init(struct exynos_asv *asv) > > return 0; > } > +EXPORT_SYMBOL_GPL(exynos5422_asv_init); > -- > 2.30.2 >