Linux v6.6.1 - samsung

# SPDX-License-Identifier: GPL-2.0
#
# Samsung SoC drivers
#
menuconfig SOC_SAMSUNG
	bool "Samsung SoC driver support" if COMPILE_TEST

if SOC_SAMSUNG

# There is no need to enable these drivers for ARMv8
config EXYNOS_ASV_ARM
	bool "Exynos ASV ARMv7-specific driver extensions" if COMPILE_TEST
	depends on EXYNOS_CHIPID

config EXYNOS_CHIPID
	tristate "Exynos ChipID controller and ASV driver"
	depends on ARCH_EXYNOS || COMPILE_TEST
	default ARCH_EXYNOS
	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_USI
	tristate "Exynos USI (Universal Serial Interface) driver"
	default ARCH_EXYNOS && ARM64
	depends on ARCH_EXYNOS || COMPILE_TEST
	select MFD_SYSCON
	help
	  Enable support for USI block. USI (Universal Serial Interface) is an
	  IP-core found in modern Samsung Exynos SoCs, like Exynos850 and
	  ExynosAutoV9. USI block can be configured to provide one of the
	  following serial protocols: UART, SPI or High Speed I2C.

	  This driver allows one to configure USI for desired protocol, which
	  is usually done in USI node in Device Tree.

config EXYNOS_PMU
	bool "Exynos PMU controller driver" if COMPILE_TEST
	depends on ARCH_EXYNOS || ((ARM || ARM64) && COMPILE_TEST)
	select EXYNOS_PMU_ARM_DRIVERS if ARM && ARCH_EXYNOS
	select MFD_CORE

# There is no need to enable these drivers for ARMv8
config EXYNOS_PMU_ARM_DRIVERS
	bool "Exynos PMU ARMv7-specific driver extensions" if COMPILE_TEST
	depends on EXYNOS_PMU

config EXYNOS_PM_DOMAINS
	bool "Exynos PM domains" if COMPILE_TEST
	depends on (ARCH_EXYNOS && PM_GENERIC_DOMAINS) || COMPILE_TEST

config SAMSUNG_PM_CHECK
	bool "S3C2410 PM Suspend Memory CRC"
	depends on PM && (ARCH_S3C64XX || ARCH_S5PV210)
	select CRC32
	help
	  Enable the PM code's memory area checksum over sleep. This option
	  will generate CRCs of all blocks of memory, and store them before
	  going to sleep. The blocks are then checked on resume for any
	  errors.

	  Note, this can take several seconds depending on memory size
	  and CPU speed.

config SAMSUNG_PM_CHECK_CHUNKSIZE
	int "S3C2410 PM Suspend CRC Chunksize (KiB)"
	depends on PM && SAMSUNG_PM_CHECK
	default 64
	help
	  Set the chunksize in Kilobytes of the CRC for checking memory
	  corruption over suspend and resume. A smaller value will mean that
	  the CRC data block will take more memory, but will identify any
	  faults with better precision.

config EXYNOS_REGULATOR_COUPLER
	bool "Exynos SoC Regulator Coupler" if COMPILE_TEST
	depends on ARCH_EXYNOS || COMPILE_TEST
endif