| # SPDX-License-Identifier: GPL-2.0-only | 
 | menuconfig MAILBOX | 
 | 	bool "Mailbox Hardware Support" | 
 | 	help | 
 | 	  Mailbox is a framework to control hardware communication between | 
 | 	  on-chip processors through queued messages and interrupt driven | 
 | 	  signals. Say Y if your platform supports hardware mailboxes. | 
 |  | 
 | if MAILBOX | 
 |  | 
 | config ARM_MHU | 
 | 	tristate "ARM MHU Mailbox" | 
 | 	depends on ARM_AMBA | 
 | 	help | 
 | 	  Say Y here if you want to build the ARM MHU controller driver. | 
 | 	  The controller has 3 mailbox channels, the last of which can be | 
 | 	  used in Secure mode only. | 
 |  | 
 | config ARM_MHU_V2 | 
 | 	tristate "ARM MHUv2 Mailbox" | 
 | 	depends on ARM_AMBA | 
 | 	help | 
 | 	  Say Y here if you want to build the ARM MHUv2 controller driver, | 
 | 	  which provides unidirectional mailboxes between processing elements. | 
 |  | 
 | config ARM_MHU_V3 | 
 | 	tristate "ARM MHUv3 Mailbox" | 
 | 	depends on ARM64 || COMPILE_TEST | 
 | 	depends on HAS_IOMEM || COMPILE_TEST | 
 | 	depends on OF | 
 | 	help | 
 | 	  Say Y here if you want to build the ARM MHUv3 controller driver, | 
 | 	  which provides unidirectional mailboxes between processing elements. | 
 |  | 
 | 	  ARM MHUv3 controllers can implement a varying number of extensions | 
 | 	  that provides different means of transports: supported extensions | 
 | 	  will be discovered and possibly managed at probe-time. | 
 |  | 
 | config IMX_MBOX | 
 | 	tristate "i.MX Mailbox" | 
 | 	depends on ARCH_MXC || COMPILE_TEST | 
 | 	help | 
 | 	  Mailbox implementation for i.MX Messaging Unit (MU). | 
 |  | 
 | config PLATFORM_MHU | 
 | 	tristate "Platform MHU Mailbox" | 
 | 	depends on OF | 
 | 	depends on HAS_IOMEM | 
 | 	help | 
 | 	  Say Y here if you want to build a platform specific variant MHU | 
 | 	  controller driver. | 
 | 	  The controller has a maximum of 3 mailbox channels, the last of | 
 | 	  which can be used in Secure mode only. | 
 |  | 
 | config PL320_MBOX | 
 | 	bool "ARM PL320 Mailbox" | 
 | 	depends on ARM_AMBA | 
 | 	help | 
 | 	  An implementation of the ARM PL320 Interprocessor Communication | 
 | 	  Mailbox (IPCM), tailored for the Calxeda Highbank. It is used to | 
 | 	  send short messages between Highbank's A9 cores and the EnergyCore | 
 | 	  Management Engine, primarily for cpufreq. Say Y here if you want | 
 | 	  to use the PL320 IPCM support. | 
 |  | 
 | config ARMADA_37XX_RWTM_MBOX | 
 | 	tristate "Armada 37xx rWTM BIU Mailbox" | 
 | 	depends on ARCH_MVEBU || COMPILE_TEST | 
 | 	depends on OF | 
 | 	help | 
 | 	  Mailbox implementation for communication with the the firmware | 
 | 	  running on the Cortex-M3 rWTM secure processor of the Armada 37xx | 
 | 	  SOC. Say Y here if you are building for such a device (for example | 
 | 	  the Turris Mox router). | 
 |  | 
 | config OMAP2PLUS_MBOX | 
 | 	tristate "OMAP2+ Mailbox framework support" | 
 | 	depends on ARCH_OMAP2PLUS || ARCH_K3 || COMPILE_TEST | 
 | 	help | 
 | 	  Mailbox implementation for OMAP family chips with hardware for | 
 | 	  interprocessor communication involving DSP, IVA1.0 and IVA2 in | 
 | 	  OMAP2/3; or IPU, IVA HD and DSP in OMAP4/5. Say Y here if you | 
 | 	  want to use OMAP2+ Mailbox framework support. | 
 |  | 
 | config ROCKCHIP_MBOX | 
 | 	bool "Rockchip Soc Integrated Mailbox Support" | 
 | 	depends on ARCH_ROCKCHIP || COMPILE_TEST | 
 | 	help | 
 | 	  This driver provides support for inter-processor communication | 
 | 	  between CPU cores and MCU processor on Some Rockchip SOCs. | 
 | 	  Please check it that the Soc you use have Mailbox hardware. | 
 | 	  Say Y here if you want to use the Rockchip Mailbox support. | 
 |  | 
 | config PCC | 
 | 	bool "Platform Communication Channel Driver" | 
 | 	depends on ACPI | 
 | 	default n | 
 | 	help | 
 | 	  ACPI 5.0+ spec defines a generic mode of communication | 
 | 	  between the OS and a platform such as the BMC. This medium | 
 | 	  (PCC) is typically used by CPPC (ACPI CPU Performance management), | 
 | 	  RAS (ACPI reliability protocol) and MPST (ACPI Memory power | 
 | 	  states). Select this driver if your platform implements the | 
 | 	  PCC clients mentioned above. | 
 |  | 
 | config ALTERA_MBOX | 
 | 	tristate "Altera Mailbox" | 
 | 	depends on HAS_IOMEM | 
 | 	help | 
 | 	  An implementation of the Altera Mailbox soft core. It is used | 
 | 	  to send message between processors. Say Y here if you want to use the | 
 | 	  Altera mailbox support. | 
 |  | 
 | config BCM2835_MBOX | 
 | 	tristate "BCM2835 Mailbox" | 
 | 	depends on ARCH_BCM2835 | 
 | 	help | 
 | 	  An implementation of the BCM2385 Mailbox.  It is used to invoke | 
 | 	  the services of the Videocore. Say Y here if you want to use the | 
 | 	  BCM2835 Mailbox. | 
 |  | 
 | config STI_MBOX | 
 | 	tristate "STI Mailbox framework support" | 
 | 	depends on ARCH_STI && OF | 
 | 	help | 
 | 	  Mailbox implementation for STMicroelectonics family chips with | 
 | 	  hardware for interprocessor communication. | 
 |  | 
 | config TI_MESSAGE_MANAGER | 
 | 	tristate "Texas Instruments Message Manager Driver" | 
 | 	depends on ARCH_KEYSTONE || ARCH_K3 || COMPILE_TEST | 
 | 	default ARCH_K3 | 
 | 	help | 
 | 	  An implementation of Message Manager slave driver for Keystone | 
 | 	  and K3 architecture SoCs from Texas Instruments. Message Manager | 
 | 	  is a communication entity found on few of Texas Instrument's keystone | 
 | 	  and K3 architecture SoCs. These may be used for communication between | 
 | 	  multiple processors within the SoC. Select this driver if your | 
 | 	  platform has support for the hardware block. | 
 |  | 
 | config HI3660_MBOX | 
 | 	tristate "Hi3660 Mailbox" if EXPERT | 
 | 	depends on (ARCH_HISI || COMPILE_TEST) | 
 | 	depends on OF | 
 | 	default ARCH_HISI | 
 | 	help | 
 | 	  An implementation of the hi3660 mailbox. It is used to send message | 
 | 	  between application processors and other processors/MCU/DSP. Select | 
 | 	  Y here if you want to use Hi3660 mailbox controller. | 
 |  | 
 | config HI6220_MBOX | 
 | 	tristate "Hi6220 Mailbox" if EXPERT | 
 | 	depends on (ARCH_HISI || COMPILE_TEST) | 
 | 	depends on OF | 
 | 	default ARCH_HISI | 
 | 	help | 
 | 	  An implementation of the hi6220 mailbox. It is used to send message | 
 | 	  between application processors and MCU. Say Y here if you want to | 
 | 	  build Hi6220 mailbox controller driver. | 
 |  | 
 | config MAILBOX_TEST | 
 | 	tristate "Mailbox Test Client" | 
 | 	depends on OF | 
 | 	depends on HAS_IOMEM | 
 | 	help | 
 | 	  Test client to help with testing new Controller driver | 
 | 	  implementations. | 
 |  | 
 | config POLARFIRE_SOC_MAILBOX | 
 | 	tristate "PolarFire SoC (MPFS) Mailbox" | 
 | 	depends on HAS_IOMEM | 
 | 	depends on MFD_SYSCON | 
 | 	depends on ARCH_MICROCHIP_POLARFIRE || COMPILE_TEST | 
 | 	help | 
 | 	  This driver adds support for the PolarFire SoC (MPFS) mailbox controller. | 
 |  | 
 | 	  To compile this driver as a module, choose M here. the | 
 | 	  module will be called mailbox-mpfs. | 
 |  | 
 | 	  If unsure, say N. | 
 |  | 
 | config QCOM_APCS_IPC | 
 | 	tristate "Qualcomm APCS IPC driver" | 
 | 	depends on ARCH_QCOM || COMPILE_TEST | 
 | 	help | 
 | 	  Say y here to enable support for the APCS IPC mailbox driver, | 
 | 	  providing an interface for invoking the inter-process communication | 
 | 	  signals from the application processor to other masters. | 
 |  | 
 | config TEGRA_HSP_MBOX | 
 | 	bool "Tegra HSP (Hardware Synchronization Primitives) Driver" | 
 | 	depends on ARCH_TEGRA | 
 | 	help | 
 | 	  The Tegra HSP driver is used for the interprocessor communication | 
 | 	  between different remote processors and host processors on Tegra186 | 
 | 	  and later SoCs. Say Y here if you want to have this support. | 
 | 	  If unsure say N. | 
 |  | 
 | config XGENE_SLIMPRO_MBOX | 
 | 	tristate "APM SoC X-Gene SLIMpro Mailbox Controller" | 
 | 	depends on ARCH_XGENE | 
 | 	help | 
 | 	  An implementation of the APM X-Gene Interprocessor Communication | 
 | 	  Mailbox (IPCM) between the ARM 64-bit cores and SLIMpro controller. | 
 | 	  It is used to send short messages between ARM64-bit cores and | 
 | 	  the SLIMpro Management Engine, primarily for PM. Say Y here if you | 
 | 	  want to use the APM X-Gene SLIMpro IPCM support. | 
 |  | 
 | config BCM_PDC_MBOX | 
 | 	tristate "Broadcom FlexSparx DMA Mailbox" | 
 | 	depends on ARCH_BCM_IPROC || COMPILE_TEST | 
 | 	help | 
 | 	  Mailbox implementation for the Broadcom FlexSparx DMA ring manager, | 
 | 	  which provides access to various offload engines on Broadcom | 
 | 	  SoCs, including FA2/FA+ on Northstar Plus and PDC on Northstar 2. | 
 |  | 
 | config BCM_FLEXRM_MBOX | 
 | 	tristate "Broadcom FlexRM Mailbox" | 
 | 	depends on ARM64 | 
 | 	depends on ARCH_BCM_IPROC || COMPILE_TEST | 
 | 	select GENERIC_MSI_IRQ | 
 | 	default m if ARCH_BCM_IPROC | 
 | 	help | 
 | 	  Mailbox implementation of the Broadcom FlexRM ring manager, | 
 | 	  which provides access to various offload engines on Broadcom | 
 | 	  SoCs. Say Y here if you want to use the Broadcom FlexRM. | 
 |  | 
 | config STM32_IPCC | 
 | 	tristate "STM32 IPCC Mailbox" | 
 | 	depends on MACH_STM32MP157 || COMPILE_TEST | 
 | 	help | 
 | 	  Mailbox implementation for STMicroelectonics STM32 family chips | 
 | 	  with hardware for Inter-Processor Communication Controller (IPCC) | 
 | 	  between processors. Say Y here if you want to have this support. | 
 |  | 
 | config MTK_ADSP_MBOX | 
 | 	tristate "MediaTek ADSP Mailbox Controller" | 
 | 	depends on ARCH_MEDIATEK || COMPILE_TEST | 
 | 	help | 
 |           Say yes here to add support for "MediaTek ADSP Mailbox Controller. | 
 |           This mailbox driver is used to send notification or short message | 
 |           between processors with ADSP. It will place the message to share | 
 | 	  buffer and will access the ipc control. | 
 |  | 
 | config MTK_CMDQ_MBOX | 
 | 	tristate "MediaTek CMDQ Mailbox Support" | 
 | 	depends on ARCH_MEDIATEK || COMPILE_TEST | 
 | 	select MTK_INFRACFG | 
 | 	help | 
 | 	  Say yes here to add support for the MediaTek Command Queue (CMDQ) | 
 | 	  mailbox driver. The CMDQ is used to help read/write registers with | 
 | 	  critical time limitation, such as updating display configuration | 
 | 	  during the vblank. | 
 |  | 
 | config ZYNQMP_IPI_MBOX | 
 | 	tristate "Xilinx ZynqMP IPI Mailbox" | 
 | 	depends on ARCH_ZYNQMP && OF | 
 | 	help | 
 | 	  Say yes here to add support for Xilinx IPI mailbox driver. | 
 | 	  This mailbox driver is used to send notification or short message | 
 | 	  between processors with Xilinx ZynqMP IPI. It will place the | 
 | 	  message to the IPI buffer and will access the IPI control | 
 | 	  registers to kick the other processor or enquire status. | 
 |  | 
 | config SUN6I_MSGBOX | 
 | 	tristate "Allwinner sun6i/sun8i/sun9i/sun50i Message Box" | 
 | 	depends on ARCH_SUNXI || COMPILE_TEST | 
 | 	default ARCH_SUNXI | 
 | 	help | 
 | 	  Mailbox implementation for the hardware message box present in | 
 | 	  various Allwinner SoCs. This mailbox is used for communication | 
 | 	  between the application CPUs and the power management coprocessor. | 
 |  | 
 | config SPRD_MBOX | 
 | 	tristate "Spreadtrum Mailbox" | 
 | 	depends on ARCH_SPRD || COMPILE_TEST | 
 | 	help | 
 | 	  Mailbox driver implementation for the Spreadtrum platform. It is used | 
 | 	  to send message between application processors and MCU. Say Y here if | 
 | 	  you want to build the Spreatrum mailbox controller driver. | 
 |  | 
 | config QCOM_CPUCP_MBOX | 
 | 	tristate "Qualcomm Technologies, Inc. CPUCP mailbox driver" | 
 | 	depends on (ARCH_QCOM || COMPILE_TEST) && 64BIT | 
 | 	help | 
 | 	  Qualcomm Technologies, Inc. CPUSS Control Processor (CPUCP) mailbox | 
 | 	  controller driver enables communication between AP and CPUCP. Say | 
 | 	  Y here if you want to build this driver. | 
 |  | 
 | config QCOM_IPCC | 
 | 	tristate "Qualcomm Technologies, Inc. IPCC driver" | 
 | 	depends on ARCH_QCOM || COMPILE_TEST | 
 | 	help | 
 | 	  Qualcomm Technologies, Inc. Inter-Processor Communication Controller | 
 | 	  (IPCC) driver for MSM devices. The driver provides mailbox support for | 
 | 	  sending interrupts to the clients. On the other hand, the driver also | 
 | 	  acts as an interrupt controller for receiving interrupts from clients. | 
 | 	  Say Y here if you want to build this driver. | 
 |  | 
 | config THEAD_TH1520_MBOX | 
 | 	tristate "T-head TH1520 Mailbox" | 
 | 	depends on ARCH_THEAD || COMPILE_TEST | 
 | 	help | 
 | 	  Mailbox driver implementation for the Thead TH-1520 platform. Enables | 
 | 	  two cores within the SoC to communicate and coordinate by passing | 
 | 	  messages. Could be used to communicate between E910 core, on which the | 
 | 	  kernel is running, and E902 core used for power management among other | 
 | 	  things. | 
 |  | 
 | endif |