[PATCH 2/2] soc: samsung: exynos-chipid: convert to a module

Sam Protsenko semen.protsenko at linaro.org
Tue Oct 5 05:03:35 PDT 2021


On Fri, 17 Sept 2021 at 20:51, Krzysztof Kozlowski
<krzysztof.kozlowski at canonical.com> 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 at canonical.com>
> ---

Reviewed-by: Sam Protsenko <semen.protsenko at linaro.org>

>  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 at samsung.com>");
> +MODULE_AUTHOR("Krzysztof Kozlowski <krzysztof.kozlowski at canonical.com>");
> +MODULE_AUTHOR("Pankaj Dubey <pankaj.dubey at samsung.com>");
> +MODULE_AUTHOR("Sylwester Nawrocki <s.nawrocki at samsung.com>");
> +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
>



More information about the linux-arm-kernel mailing list