# SPDX-License-Identifier: GPL-2.0-only

if ARCH_APPLE || COMPILE_TEST

menu "Apple SoC drivers"

config APPLE_PMGR_PWRSTATE
	bool "Apple SoC PMGR power state control"
	depends on PM
	select REGMAP
	select MFD_SYSCON
	select PM_GENERIC_DOMAINS
	select RESET_CONTROLLER
	default ARCH_APPLE
	help
	  The PMGR block in Apple SoCs provides high-level power state
	  controls for SoC devices. This driver manages them through the
	  generic power domain framework, and also provides reset support.

config APPLE_PMGR_MISC
	bool "Apple SoC PMGR miscellaneous support"
	depends on PM
	default ARCH_APPLE
	help
	  The PMGR block in Apple SoCs provides high-level power state
	  controls for SoC devices. This driver manages miscellaneous
	  power controls.

config APPLE_MBOX
	tristate "Apple SoC mailboxes"
	depends on PM
	depends on ARCH_APPLE || (64BIT && COMPILE_TEST)
	default ARCH_APPLE
	help
	  Apple SoCs have various co-processors required for certain
	  peripherals to work (NVMe, display controller, etc.). This
	  driver adds support for the mailbox controller used to
	  communicate with those.

	  Say Y here if you have a Apple SoC.

config APPLE_RTKIT
	tristate "Apple RTKit co-processor IPC protocol"
	depends on APPLE_MBOX
	depends on ARCH_APPLE || COMPILE_TEST
	default ARCH_APPLE
	help
	  Apple SoCs such as the M1 come with various co-processors running
	  their proprietary RTKit operating system. This option enables support
	  for the protocol library used to communicate with those. It is used
	  by various client drivers.

	  Say 'y' here if you have an Apple SoC.

config APPLE_RTKIT_HELPER
	tristate "Apple Generic RTKit helper co-processor"
	depends on APPLE_RTKIT
	depends on ARCH_APPLE || COMPILE_TEST
	default ARCH_APPLE
	help
	  Apple SoCs such as the M1 come with various co-processors running
	  their proprietary RTKit operating system. This option enables support
	  for a generic co-processor that does not implement any additional
	  in-band communications. It can be used for testing purposes, or for
	  coprocessors such as MTP that communicate over a different interface.

	  Say 'y' here if you have an Apple SoC.

config APPLE_SART
	tristate "Apple SART DMA address filter"
	depends on ARCH_APPLE || COMPILE_TEST
	default ARCH_APPLE
	help
	  Apple SART is a simple DMA address filter used on Apple SoCs such
	  as the M1. It is usually required for the NVMe coprocessor which does
	  not use a proper IOMMU.

	  Say 'y' here if you have an Apple SoC.

config APPLE_DOCKCHANNEL
	tristate "Apple DockChannel FIFO"
	depends on ARCH_APPLE || COMPILE_TEST
	default ARCH_APPLE
	help
	  DockChannel is a simple FIFO used on Apple SoCs for debug and inter-processor
	  communications.

	  Say 'y' here if you have an Apple SoC.

endmenu

endif
