1# SPDX-License-Identifier: GPL-2.0
2#
3# Samsung SoC drivers
4#
5menuconfig SOC_SAMSUNG
6	bool "Samsung SoC driver support" if COMPILE_TEST
7
8if SOC_SAMSUNG
9
10# There is no need to enable these drivers for ARMv8
11config EXYNOS_ASV_ARM
12	bool "Exynos ASV ARMv7-specific driver extensions" if COMPILE_TEST
13	depends on EXYNOS_CHIPID
14
15config EXYNOS_CHIPID
16	tristate "Exynos ChipID controller and ASV driver"
17	depends on ARCH_EXYNOS || COMPILE_TEST
18	default ARCH_EXYNOS
19	select EXYNOS_ASV_ARM if ARM && ARCH_EXYNOS
20	select MFD_SYSCON
21	select SOC_BUS
22	help
23	  Support for Samsung Exynos SoC ChipID and Adaptive Supply Voltage.
24	  This driver can also be built as module (exynos_chipid).
25
26config EXYNOS_USI
27	tristate "Exynos USI (Universal Serial Interface) driver"
28	default ARCH_EXYNOS && ARM64
29	depends on ARCH_EXYNOS || COMPILE_TEST
30	select MFD_SYSCON
31	help
32	  Enable support for USI block. USI (Universal Serial Interface) is an
33	  IP-core found in modern Samsung Exynos SoCs, like Exynos850 and
34	  ExynosAutoV9. USI block can be configured to provide one of the
35	  following serial protocols: UART, SPI or High Speed I2C.
36
37	  This driver allows one to configure USI for desired protocol, which
38	  is usually done in USI node in Device Tree.
39
40config EXYNOS_PMU
41	bool "Exynos PMU controller driver" if COMPILE_TEST
42	depends on ARCH_EXYNOS || ((ARM || ARM64) && COMPILE_TEST)
43	select EXYNOS_PMU_ARM_DRIVERS if ARM && ARCH_EXYNOS
44	select MFD_CORE
45
46# There is no need to enable these drivers for ARMv8
47config EXYNOS_PMU_ARM_DRIVERS
48	bool "Exynos PMU ARMv7-specific driver extensions" if COMPILE_TEST
49	depends on EXYNOS_PMU
50
51config EXYNOS_PM_DOMAINS
52	bool "Exynos PM domains" if COMPILE_TEST
53	depends on (ARCH_EXYNOS && PM_GENERIC_DOMAINS) || COMPILE_TEST
54
55config SAMSUNG_PM_DEBUG
56	bool "Samsung PM Suspend debug"
57	depends on PM && DEBUG_KERNEL
58	depends on PLAT_S3C24XX || ARCH_S3C64XX || ARCH_S5PV210
59	depends on DEBUG_S3C24XX_UART || DEBUG_S3C2410_UART
60	depends on DEBUG_LL && MMU
61	help
62	  Say Y here if you want verbose debugging from the PM Suspend and
63	  Resume code. See <file:Documentation/arm/samsung-s3c24xx/suspend.rst>
64	  for more information.
65
66config S3C_PM_DEBUG_LED_SMDK
67       bool "SMDK LED suspend/resume debugging"
68       depends on PM && (MACH_SMDK6410)
69       help
70         Say Y here to enable the use of the SMDK LEDs on the baseboard
71	 for debugging of the state of the suspend and resume process.
72
73	 Note, this currently only works for S3C64XX based SMDK boards.
74
75config SAMSUNG_PM_CHECK
76	bool "S3C2410 PM Suspend Memory CRC"
77	depends on PM && (PLAT_S3C24XX || ARCH_S3C64XX || ARCH_S5PV210)
78	select CRC32
79	help
80	  Enable the PM code's memory area checksum over sleep. This option
81	  will generate CRCs of all blocks of memory, and store them before
82	  going to sleep. The blocks are then checked on resume for any
83	  errors.
84
85	  Note, this can take several seconds depending on memory size
86	  and CPU speed.
87
88	  See <file:Documentation/arm/samsung-s3c24xx/suspend.rst>
89
90config SAMSUNG_PM_CHECK_CHUNKSIZE
91	int "S3C2410 PM Suspend CRC Chunksize (KiB)"
92	depends on PM && SAMSUNG_PM_CHECK
93	default 64
94	help
95	  Set the chunksize in Kilobytes of the CRC for checking memory
96	  corruption over suspend and resume. A smaller value will mean that
97	  the CRC data block will take more memory, but will identify any
98	  faults with better precision.
99
100	  See <file:Documentation/arm/samsung-s3c24xx/suspend.rst>
101
102config EXYNOS_REGULATOR_COUPLER
103	bool "Exynos SoC Regulator Coupler" if COMPILE_TEST
104	depends on ARCH_EXYNOS || COMPILE_TEST
105endif
106