0001 # SPDX-License-Identifier: GPL-2.0
0002 #
0003 # Samsung SoC drivers
0004 #
0005 menuconfig SOC_SAMSUNG
0006 bool "Samsung SoC driver support" if COMPILE_TEST
0007
0008 if SOC_SAMSUNG
0009
0010 # There is no need to enable these drivers for ARMv8
0011 config EXYNOS_ASV_ARM
0012 bool "Exynos ASV ARMv7-specific driver extensions" if COMPILE_TEST
0013 depends on EXYNOS_CHIPID
0014
0015 config EXYNOS_CHIPID
0016 tristate "Exynos ChipID controller and ASV driver"
0017 depends on ARCH_EXYNOS || COMPILE_TEST
0018 default ARCH_EXYNOS
0019 select EXYNOS_ASV_ARM if ARM && ARCH_EXYNOS
0020 select MFD_SYSCON
0021 select SOC_BUS
0022 help
0023 Support for Samsung Exynos SoC ChipID and Adaptive Supply Voltage.
0024 This driver can also be built as module (exynos_chipid).
0025
0026 config EXYNOS_USI
0027 tristate "Exynos USI (Universal Serial Interface) driver"
0028 default ARCH_EXYNOS && ARM64
0029 depends on ARCH_EXYNOS || COMPILE_TEST
0030 select MFD_SYSCON
0031 help
0032 Enable support for USI block. USI (Universal Serial Interface) is an
0033 IP-core found in modern Samsung Exynos SoCs, like Exynos850 and
0034 ExynosAutoV9. USI block can be configured to provide one of the
0035 following serial protocols: UART, SPI or High Speed I2C.
0036
0037 This driver allows one to configure USI for desired protocol, which
0038 is usually done in USI node in Device Tree.
0039
0040 config EXYNOS_PMU
0041 bool "Exynos PMU controller driver" if COMPILE_TEST
0042 depends on ARCH_EXYNOS || ((ARM || ARM64) && COMPILE_TEST)
0043 select EXYNOS_PMU_ARM_DRIVERS if ARM && ARCH_EXYNOS
0044 select MFD_CORE
0045
0046 # There is no need to enable these drivers for ARMv8
0047 config EXYNOS_PMU_ARM_DRIVERS
0048 bool "Exynos PMU ARMv7-specific driver extensions" if COMPILE_TEST
0049 depends on EXYNOS_PMU
0050
0051 config EXYNOS_PM_DOMAINS
0052 bool "Exynos PM domains" if COMPILE_TEST
0053 depends on (ARCH_EXYNOS && PM_GENERIC_DOMAINS) || COMPILE_TEST
0054
0055 config SAMSUNG_PM_DEBUG
0056 bool "Samsung PM Suspend debug"
0057 depends on PM && DEBUG_KERNEL
0058 depends on PLAT_S3C24XX || ARCH_S3C64XX || ARCH_S5PV210
0059 depends on DEBUG_S3C24XX_UART || DEBUG_S3C2410_UART
0060 depends on DEBUG_LL && MMU
0061 help
0062 Say Y here if you want verbose debugging from the PM Suspend and
0063 Resume code. See <file:Documentation/arm/samsung-s3c24xx/suspend.rst>
0064 for more information.
0065
0066 config S3C_PM_DEBUG_LED_SMDK
0067 bool "SMDK LED suspend/resume debugging"
0068 depends on PM && (MACH_SMDK6410)
0069 help
0070 Say Y here to enable the use of the SMDK LEDs on the baseboard
0071 for debugging of the state of the suspend and resume process.
0072
0073 Note, this currently only works for S3C64XX based SMDK boards.
0074
0075 config SAMSUNG_PM_CHECK
0076 bool "S3C2410 PM Suspend Memory CRC"
0077 depends on PM && (PLAT_S3C24XX || ARCH_S3C64XX || ARCH_S5PV210)
0078 select CRC32
0079 help
0080 Enable the PM code's memory area checksum over sleep. This option
0081 will generate CRCs of all blocks of memory, and store them before
0082 going to sleep. The blocks are then checked on resume for any
0083 errors.
0084
0085 Note, this can take several seconds depending on memory size
0086 and CPU speed.
0087
0088 See <file:Documentation/arm/samsung-s3c24xx/suspend.rst>
0089
0090 config SAMSUNG_PM_CHECK_CHUNKSIZE
0091 int "S3C2410 PM Suspend CRC Chunksize (KiB)"
0092 depends on PM && SAMSUNG_PM_CHECK
0093 default 64
0094 help
0095 Set the chunksize in Kilobytes of the CRC for checking memory
0096 corruption over suspend and resume. A smaller value will mean that
0097 the CRC data block will take more memory, but will identify any
0098 faults with better precision.
0099
0100 See <file:Documentation/arm/samsung-s3c24xx/suspend.rst>
0101
0102 config EXYNOS_REGULATOR_COUPLER
0103 bool "Exynos SoC Regulator Coupler" if COMPILE_TEST
0104 depends on ARCH_EXYNOS || COMPILE_TEST
0105 endif