linux-sg2042/arch/arm/mach-exynos
Krzysztof Kozlowski 352bfbb3e0 soc: samsung: exynos-chipid: convert to driver and merge exynos-asv
The Exynos Chip ID driver on Exynos SoCs has so far only informational
purpose - to expose the SoC device in sysfs.  No other drivers depend on
it so there is really no benefit of initializing it early.

The code would be the most flexible if converted to a regular driver.
However there is already another driver - Exynos ASV (Adaptive Supply
Voltage) - which binds to the device node of Chip ID.

The solution is to convert the Exynos Chip ID to a built in driver and
merge the Exynos ASV into it.

This has several benefits:
1. Although the Exynos ASV driver binds to a device node present in all
   Exynos DTS (generic compatible), it fails to probe except on the
   supported ones (only Exynos5422).  This means that the regular boot
   process has a planned/normal device probe failure.

   Merging the ASV into Chip ID will remove this probe failure because
   the final driver will always bind, just with disabled ASV features.

2. Allows to use dev_info() as the SoC bus is present (since
   core_initcall).

3. Could speed things up because of execution of Chip ID code in a SMP
   environment (after bringing up secondary CPUs, unlike early_initcall),
   This reduces the amount of work to be done early, when the kernel has
   to bring up critical devices.

5. Makes the Chip ID code defer-probe friendly,

Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201207190517.262051-5-krzk@kernel.org
Reviewed-by: Pankaj Dubey <pankaj.dubey@samsung.com>
2021-01-03 17:08:45 +01:00
..
Kconfig soc: samsung: exynos-chipid: convert to driver and merge exynos-asv 2021-01-03 17:08:45 +01:00
Makefile ARM: exynos: stop selecting PLAT_SAMSUNG 2020-08-19 21:14:13 +02:00
common.h ARM: exynos: use private samsung_cpu_id copy 2020-08-19 21:10:50 +02:00
exynos-smc.S ARM: use arch_extension directive instead of arch argument 2019-06-19 09:44:25 -07:00
exynos.c ARM: exynos: extend cpuidle support to P4 Note boards 2020-11-16 17:31:01 +01:00
firmware.c ARM: exynos: Fix a leaked reference by adding missing of_node_put 2019-03-19 21:34:38 +01:00
headsmp.S ARM: smp: remove arch-provided "pen_release" 2019-02-01 22:05:23 +00:00
mcpm-exynos.c ARM: exynos: MCPM: Restore big.LITTLE cpuidle support 2020-06-29 20:27:33 +02:00
platsmp.c ARM: exynos: Simplify code in Exynos3250 CPU core restart path 2020-10-28 21:00:32 +01:00
pm.c ARM: exynos: use private samsung_cpu_id copy 2020-08-19 21:10:50 +02:00
sleep.S ARM: use arch_extension directive instead of arch argument 2019-06-19 09:44:25 -07:00
smc.h ARM: samsung: Rename Samsung and Exynos to lowercase 2020-01-07 20:44:22 +01:00
suspend.c ARM: samsung: Rename Samsung and Exynos to lowercase 2020-01-07 20:44:22 +01:00