# SPDX-License-Identifier: GPL-2.0-only
#
# AMD PMC Driver
#

config AMD_PMC
	tristate "AMD SoC PMC driver"
	depends on ACPI && PCI && RTC_CLASS && AMD_NODE
	depends on SUSPEND
	select SERIO
	help
	  The driver provides support for AMD Power Management Controller
	  primarily responsible for S2Idle transactions that are driven from
	  a platform firmware running on SMU. This driver also provides a debug
	  mechanism to investigate the S2Idle transactions and failures.

	  Say Y or M here if you have a notebook powered by AMD RYZEN CPU/APU.

	  If you choose to compile this driver as a module the module will be
	  called amd-pmc.

config AMD_MP2_STB
	bool "AMD SoC MP2 STB function"
	depends on AMD_PMC
	default AMD_PMC
	help
	  AMD MP2 STB function provides a data buffer used to log debug
	  information about the system execution during S2Idle suspend/resume.
	  A data buffer known as the STB (Smart Trace Buffer) is a circular
	  buffer which is a low-level log for the SoC which is used to debug
	  any hangs/stalls during S2Idle suspend/resume.

	  Creates debugfs to get STB, a userspace daemon can access STB log of
	  last S2Idle suspend/resume which can help to debug if hangs/stalls
	  during S2Idle suspend/resume.
