18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
28c2ecf20Sopenharmony_cimenuconfig MAILBOX
38c2ecf20Sopenharmony_ci	bool "Mailbox Hardware Support"
48c2ecf20Sopenharmony_ci	help
58c2ecf20Sopenharmony_ci	  Mailbox is a framework to control hardware communication between
68c2ecf20Sopenharmony_ci	  on-chip processors through queued messages and interrupt driven
78c2ecf20Sopenharmony_ci	  signals. Say Y if your platform supports hardware mailboxes.
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ciif MAILBOX
108c2ecf20Sopenharmony_ci
118c2ecf20Sopenharmony_ciconfig ARM_MHU
128c2ecf20Sopenharmony_ci	tristate "ARM MHU Mailbox"
138c2ecf20Sopenharmony_ci	depends on ARM_AMBA
148c2ecf20Sopenharmony_ci	help
158c2ecf20Sopenharmony_ci	  Say Y here if you want to build the ARM MHU controller driver.
168c2ecf20Sopenharmony_ci	  The controller has 3 mailbox channels, the last of which can be
178c2ecf20Sopenharmony_ci	  used in Secure mode only.
188c2ecf20Sopenharmony_ci
198c2ecf20Sopenharmony_ciconfig IMX_MBOX
208c2ecf20Sopenharmony_ci	tristate "i.MX Mailbox"
218c2ecf20Sopenharmony_ci	depends on ARCH_MXC || COMPILE_TEST
228c2ecf20Sopenharmony_ci	help
238c2ecf20Sopenharmony_ci	  Mailbox implementation for i.MX Messaging Unit (MU).
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_ciconfig PLATFORM_MHU
268c2ecf20Sopenharmony_ci	tristate "Platform MHU Mailbox"
278c2ecf20Sopenharmony_ci	depends on OF
288c2ecf20Sopenharmony_ci	depends on HAS_IOMEM
298c2ecf20Sopenharmony_ci	help
308c2ecf20Sopenharmony_ci	  Say Y here if you want to build a platform specific variant MHU
318c2ecf20Sopenharmony_ci	  controller driver.
328c2ecf20Sopenharmony_ci	  The controller has a maximum of 3 mailbox channels, the last of
338c2ecf20Sopenharmony_ci	  which can be used in Secure mode only.
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_ciconfig PL320_MBOX
368c2ecf20Sopenharmony_ci	bool "ARM PL320 Mailbox"
378c2ecf20Sopenharmony_ci	depends on ARM_AMBA
388c2ecf20Sopenharmony_ci	help
398c2ecf20Sopenharmony_ci	  An implementation of the ARM PL320 Interprocessor Communication
408c2ecf20Sopenharmony_ci	  Mailbox (IPCM), tailored for the Calxeda Highbank. It is used to
418c2ecf20Sopenharmony_ci	  send short messages between Highbank's A9 cores and the EnergyCore
428c2ecf20Sopenharmony_ci	  Management Engine, primarily for cpufreq. Say Y here if you want
438c2ecf20Sopenharmony_ci	  to use the PL320 IPCM support.
448c2ecf20Sopenharmony_ci
458c2ecf20Sopenharmony_ciconfig ARMADA_37XX_RWTM_MBOX
468c2ecf20Sopenharmony_ci	tristate "Armada 37xx rWTM BIU Mailbox"
478c2ecf20Sopenharmony_ci	depends on ARCH_MVEBU || COMPILE_TEST
488c2ecf20Sopenharmony_ci	depends on OF
498c2ecf20Sopenharmony_ci	help
508c2ecf20Sopenharmony_ci	  Mailbox implementation for communication with the the firmware
518c2ecf20Sopenharmony_ci	  running on the Cortex-M3 rWTM secure processor of the Armada 37xx
528c2ecf20Sopenharmony_ci	  SOC. Say Y here if you are building for such a device (for example
538c2ecf20Sopenharmony_ci	  the Turris Mox router).
548c2ecf20Sopenharmony_ci
558c2ecf20Sopenharmony_ciconfig OMAP2PLUS_MBOX
568c2ecf20Sopenharmony_ci	tristate "OMAP2+ Mailbox framework support"
578c2ecf20Sopenharmony_ci	depends on ARCH_OMAP2PLUS || ARCH_K3
588c2ecf20Sopenharmony_ci	help
598c2ecf20Sopenharmony_ci	  Mailbox implementation for OMAP family chips with hardware for
608c2ecf20Sopenharmony_ci	  interprocessor communication involving DSP, IVA1.0 and IVA2 in
618c2ecf20Sopenharmony_ci	  OMAP2/3; or IPU, IVA HD and DSP in OMAP4/5. Say Y here if you
628c2ecf20Sopenharmony_ci	  want to use OMAP2+ Mailbox framework support.
638c2ecf20Sopenharmony_ci
648c2ecf20Sopenharmony_ciconfig OMAP_MBOX_KFIFO_SIZE
658c2ecf20Sopenharmony_ci	int "Mailbox kfifo default buffer size (bytes)"
668c2ecf20Sopenharmony_ci	depends on OMAP2PLUS_MBOX
678c2ecf20Sopenharmony_ci	default 256
688c2ecf20Sopenharmony_ci	help
698c2ecf20Sopenharmony_ci	  Specify the default size of mailbox's kfifo buffers (bytes).
708c2ecf20Sopenharmony_ci	  This can also be changed at runtime (via the mbox_kfifo_size
718c2ecf20Sopenharmony_ci	  module parameter).
728c2ecf20Sopenharmony_ci
738c2ecf20Sopenharmony_ciconfig ROCKCHIP_MBOX
748c2ecf20Sopenharmony_ci	bool "Rockchip Soc Intergrated Mailbox Support"
758c2ecf20Sopenharmony_ci	depends on ARCH_ROCKCHIP || COMPILE_TEST
768c2ecf20Sopenharmony_ci	help
778c2ecf20Sopenharmony_ci	  This driver provides support for inter-processor communication
788c2ecf20Sopenharmony_ci	  between CPU cores and MCU processor on Some Rockchip SOCs.
798c2ecf20Sopenharmony_ci	  Please check it that the Soc you use have Mailbox hardware.
808c2ecf20Sopenharmony_ci	  Say Y here if you want to use the Rockchip Mailbox support.
818c2ecf20Sopenharmony_ci
828c2ecf20Sopenharmony_ciconfig PCC
838c2ecf20Sopenharmony_ci	bool "Platform Communication Channel Driver"
848c2ecf20Sopenharmony_ci	depends on ACPI
858c2ecf20Sopenharmony_ci	default n
868c2ecf20Sopenharmony_ci	help
878c2ecf20Sopenharmony_ci	  ACPI 5.0+ spec defines a generic mode of communication
888c2ecf20Sopenharmony_ci	  between the OS and a platform such as the BMC. This medium
898c2ecf20Sopenharmony_ci	  (PCC) is typically used by CPPC (ACPI CPU Performance management),
908c2ecf20Sopenharmony_ci	  RAS (ACPI reliability protocol) and MPST (ACPI Memory power
918c2ecf20Sopenharmony_ci	  states). Select this driver if your platform implements the
928c2ecf20Sopenharmony_ci	  PCC clients mentioned above.
938c2ecf20Sopenharmony_ci
948c2ecf20Sopenharmony_ciconfig ALTERA_MBOX
958c2ecf20Sopenharmony_ci	tristate "Altera Mailbox"
968c2ecf20Sopenharmony_ci	depends on HAS_IOMEM
978c2ecf20Sopenharmony_ci	help
988c2ecf20Sopenharmony_ci	  An implementation of the Altera Mailbox soft core. It is used
998c2ecf20Sopenharmony_ci	  to send message between processors. Say Y here if you want to use the
1008c2ecf20Sopenharmony_ci	  Altera mailbox support.
1018c2ecf20Sopenharmony_ci
1028c2ecf20Sopenharmony_ciconfig BCM2835_MBOX
1038c2ecf20Sopenharmony_ci	tristate "BCM2835 Mailbox"
1048c2ecf20Sopenharmony_ci	depends on ARCH_BCM2835
1058c2ecf20Sopenharmony_ci	help
1068c2ecf20Sopenharmony_ci	  An implementation of the BCM2385 Mailbox.  It is used to invoke
1078c2ecf20Sopenharmony_ci	  the services of the Videocore. Say Y here if you want to use the
1088c2ecf20Sopenharmony_ci	  BCM2835 Mailbox.
1098c2ecf20Sopenharmony_ci
1108c2ecf20Sopenharmony_ciconfig STI_MBOX
1118c2ecf20Sopenharmony_ci	tristate "STI Mailbox framework support"
1128c2ecf20Sopenharmony_ci	depends on ARCH_STI && OF
1138c2ecf20Sopenharmony_ci	help
1148c2ecf20Sopenharmony_ci	  Mailbox implementation for STMicroelectonics family chips with
1158c2ecf20Sopenharmony_ci	  hardware for interprocessor communication.
1168c2ecf20Sopenharmony_ci
1178c2ecf20Sopenharmony_ciconfig TI_MESSAGE_MANAGER
1188c2ecf20Sopenharmony_ci	tristate "Texas Instruments Message Manager Driver"
1198c2ecf20Sopenharmony_ci	depends on ARCH_KEYSTONE || ARCH_K3
1208c2ecf20Sopenharmony_ci	help
1218c2ecf20Sopenharmony_ci	  An implementation of Message Manager slave driver for Keystone
1228c2ecf20Sopenharmony_ci	  and K3 architecture SoCs from Texas Instruments. Message Manager
1238c2ecf20Sopenharmony_ci	  is a communication entity found on few of Texas Instrument's keystone
1248c2ecf20Sopenharmony_ci	  and K3 architecture SoCs. These may be used for communication between
1258c2ecf20Sopenharmony_ci	  multiple processors within the SoC. Select this driver if your
1268c2ecf20Sopenharmony_ci	  platform has support for the hardware block.
1278c2ecf20Sopenharmony_ci
1288c2ecf20Sopenharmony_ciconfig HI3660_MBOX
1298c2ecf20Sopenharmony_ci	tristate "Hi3660 Mailbox" if EXPERT
1308c2ecf20Sopenharmony_ci	depends on (ARCH_HISI || COMPILE_TEST)
1318c2ecf20Sopenharmony_ci	depends on OF
1328c2ecf20Sopenharmony_ci	default ARCH_HISI
1338c2ecf20Sopenharmony_ci	help
1348c2ecf20Sopenharmony_ci	  An implementation of the hi3660 mailbox. It is used to send message
1358c2ecf20Sopenharmony_ci	  between application processors and other processors/MCU/DSP. Select
1368c2ecf20Sopenharmony_ci	  Y here if you want to use Hi3660 mailbox controller.
1378c2ecf20Sopenharmony_ci
1388c2ecf20Sopenharmony_ciconfig HI6220_MBOX
1398c2ecf20Sopenharmony_ci	tristate "Hi6220 Mailbox" if EXPERT
1408c2ecf20Sopenharmony_ci	depends on (ARCH_HISI || COMPILE_TEST)
1418c2ecf20Sopenharmony_ci	depends on OF
1428c2ecf20Sopenharmony_ci	default ARCH_HISI
1438c2ecf20Sopenharmony_ci	help
1448c2ecf20Sopenharmony_ci	  An implementation of the hi6220 mailbox. It is used to send message
1458c2ecf20Sopenharmony_ci	  between application processors and MCU. Say Y here if you want to
1468c2ecf20Sopenharmony_ci	  build Hi6220 mailbox controller driver.
1478c2ecf20Sopenharmony_ci
1488c2ecf20Sopenharmony_ciconfig MAILBOX_TEST
1498c2ecf20Sopenharmony_ci	tristate "Mailbox Test Client"
1508c2ecf20Sopenharmony_ci	depends on OF
1518c2ecf20Sopenharmony_ci	depends on HAS_IOMEM
1528c2ecf20Sopenharmony_ci	help
1538c2ecf20Sopenharmony_ci	  Test client to help with testing new Controller driver
1548c2ecf20Sopenharmony_ci	  implementations.
1558c2ecf20Sopenharmony_ci
1568c2ecf20Sopenharmony_ciconfig QCOM_APCS_IPC
1578c2ecf20Sopenharmony_ci	tristate "Qualcomm APCS IPC driver"
1588c2ecf20Sopenharmony_ci	depends on ARCH_QCOM || COMPILE_TEST
1598c2ecf20Sopenharmony_ci	help
1608c2ecf20Sopenharmony_ci	  Say y here to enable support for the APCS IPC mailbox driver,
1618c2ecf20Sopenharmony_ci	  providing an interface for invoking the inter-process communication
1628c2ecf20Sopenharmony_ci	  signals from the application processor to other masters.
1638c2ecf20Sopenharmony_ci
1648c2ecf20Sopenharmony_ciconfig TEGRA_HSP_MBOX
1658c2ecf20Sopenharmony_ci	bool "Tegra HSP (Hardware Synchronization Primitives) Driver"
1668c2ecf20Sopenharmony_ci	depends on ARCH_TEGRA
1678c2ecf20Sopenharmony_ci	help
1688c2ecf20Sopenharmony_ci	  The Tegra HSP driver is used for the interprocessor communication
1698c2ecf20Sopenharmony_ci	  between different remote processors and host processors on Tegra186
1708c2ecf20Sopenharmony_ci	  and later SoCs. Say Y here if you want to have this support.
1718c2ecf20Sopenharmony_ci	  If unsure say N.
1728c2ecf20Sopenharmony_ci
1738c2ecf20Sopenharmony_ciconfig XGENE_SLIMPRO_MBOX
1748c2ecf20Sopenharmony_ci	tristate "APM SoC X-Gene SLIMpro Mailbox Controller"
1758c2ecf20Sopenharmony_ci	depends on ARCH_XGENE
1768c2ecf20Sopenharmony_ci	help
1778c2ecf20Sopenharmony_ci	  An implementation of the APM X-Gene Interprocessor Communication
1788c2ecf20Sopenharmony_ci	  Mailbox (IPCM) between the ARM 64-bit cores and SLIMpro controller.
1798c2ecf20Sopenharmony_ci	  It is used to send short messages between ARM64-bit cores and
1808c2ecf20Sopenharmony_ci	  the SLIMpro Management Engine, primarily for PM. Say Y here if you
1818c2ecf20Sopenharmony_ci	  want to use the APM X-Gene SLIMpro IPCM support.
1828c2ecf20Sopenharmony_ci
1838c2ecf20Sopenharmony_ciconfig BCM_PDC_MBOX
1848c2ecf20Sopenharmony_ci	tristate "Broadcom FlexSparx DMA Mailbox"
1858c2ecf20Sopenharmony_ci	depends on ARCH_BCM_IPROC || COMPILE_TEST
1868c2ecf20Sopenharmony_ci	help
1878c2ecf20Sopenharmony_ci	  Mailbox implementation for the Broadcom FlexSparx DMA ring manager,
1888c2ecf20Sopenharmony_ci	  which provides access to various offload engines on Broadcom
1898c2ecf20Sopenharmony_ci	  SoCs, including FA2/FA+ on Northstar Plus and PDC on Northstar 2.
1908c2ecf20Sopenharmony_ci
1918c2ecf20Sopenharmony_ciconfig BCM_FLEXRM_MBOX
1928c2ecf20Sopenharmony_ci	tristate "Broadcom FlexRM Mailbox"
1938c2ecf20Sopenharmony_ci	depends on ARM64
1948c2ecf20Sopenharmony_ci	depends on ARCH_BCM_IPROC || COMPILE_TEST
1958c2ecf20Sopenharmony_ci	select GENERIC_MSI_IRQ_DOMAIN
1968c2ecf20Sopenharmony_ci	default m if ARCH_BCM_IPROC
1978c2ecf20Sopenharmony_ci	help
1988c2ecf20Sopenharmony_ci	  Mailbox implementation of the Broadcom FlexRM ring manager,
1998c2ecf20Sopenharmony_ci	  which provides access to various offload engines on Broadcom
2008c2ecf20Sopenharmony_ci	  SoCs. Say Y here if you want to use the Broadcom FlexRM.
2018c2ecf20Sopenharmony_ci
2028c2ecf20Sopenharmony_ciconfig STM32_IPCC
2038c2ecf20Sopenharmony_ci	tristate "STM32 IPCC Mailbox"
2048c2ecf20Sopenharmony_ci	depends on MACH_STM32MP157
2058c2ecf20Sopenharmony_ci	help
2068c2ecf20Sopenharmony_ci	  Mailbox implementation for STMicroelectonics STM32 family chips
2078c2ecf20Sopenharmony_ci	  with hardware for Inter-Processor Communication Controller (IPCC)
2088c2ecf20Sopenharmony_ci	  between processors. Say Y here if you want to have this support.
2098c2ecf20Sopenharmony_ci
2108c2ecf20Sopenharmony_ciconfig MTK_CMDQ_MBOX
2118c2ecf20Sopenharmony_ci	tristate "MediaTek CMDQ Mailbox Support"
2128c2ecf20Sopenharmony_ci	depends on ARCH_MEDIATEK || COMPILE_TEST
2138c2ecf20Sopenharmony_ci	select MTK_INFRACFG
2148c2ecf20Sopenharmony_ci	help
2158c2ecf20Sopenharmony_ci	  Say yes here to add support for the MediaTek Command Queue (CMDQ)
2168c2ecf20Sopenharmony_ci	  mailbox driver. The CMDQ is used to help read/write registers with
2178c2ecf20Sopenharmony_ci	  critical time limitation, such as updating display configuration
2188c2ecf20Sopenharmony_ci	  during the vblank.
2198c2ecf20Sopenharmony_ci
2208c2ecf20Sopenharmony_ciconfig ZYNQMP_IPI_MBOX
2218c2ecf20Sopenharmony_ci	bool "Xilinx ZynqMP IPI Mailbox"
2228c2ecf20Sopenharmony_ci	depends on ARCH_ZYNQMP && OF
2238c2ecf20Sopenharmony_ci	help
2248c2ecf20Sopenharmony_ci	  Say yes here to add support for Xilinx IPI mailbox driver.
2258c2ecf20Sopenharmony_ci	  This mailbox driver is used to send notification or short message
2268c2ecf20Sopenharmony_ci	  between processors with Xilinx ZynqMP IPI. It will place the
2278c2ecf20Sopenharmony_ci	  message to the IPI buffer and will access the IPI control
2288c2ecf20Sopenharmony_ci	  registers to kick the other processor or enquire status.
2298c2ecf20Sopenharmony_ci
2308c2ecf20Sopenharmony_ciconfig SUN6I_MSGBOX
2318c2ecf20Sopenharmony_ci	tristate "Allwinner sun6i/sun8i/sun9i/sun50i Message Box"
2328c2ecf20Sopenharmony_ci	depends on ARCH_SUNXI || COMPILE_TEST
2338c2ecf20Sopenharmony_ci	default ARCH_SUNXI
2348c2ecf20Sopenharmony_ci	help
2358c2ecf20Sopenharmony_ci	  Mailbox implementation for the hardware message box present in
2368c2ecf20Sopenharmony_ci	  various Allwinner SoCs. This mailbox is used for communication
2378c2ecf20Sopenharmony_ci	  between the application CPUs and the power management coprocessor.
2388c2ecf20Sopenharmony_ci
2398c2ecf20Sopenharmony_ciconfig SPRD_MBOX
2408c2ecf20Sopenharmony_ci	tristate "Spreadtrum Mailbox"
2418c2ecf20Sopenharmony_ci	depends on ARCH_SPRD || COMPILE_TEST
2428c2ecf20Sopenharmony_ci	help
2438c2ecf20Sopenharmony_ci	  Mailbox driver implementation for the Spreadtrum platform. It is used
2448c2ecf20Sopenharmony_ci	  to send message between application processors and MCU. Say Y here if
2458c2ecf20Sopenharmony_ci	  you want to build the Spreatrum mailbox controller driver.
2468c2ecf20Sopenharmony_ci
2478c2ecf20Sopenharmony_ciconfig QCOM_IPCC
2488c2ecf20Sopenharmony_ci	bool "Qualcomm Technologies, Inc. IPCC driver"
2498c2ecf20Sopenharmony_ci	depends on ARCH_QCOM || COMPILE_TEST
2508c2ecf20Sopenharmony_ci	help
2518c2ecf20Sopenharmony_ci	  Qualcomm Technologies, Inc. Inter-Processor Communication Controller
2528c2ecf20Sopenharmony_ci	  (IPCC) driver for MSM devices. The driver provides mailbox support for
2538c2ecf20Sopenharmony_ci	  sending interrupts to the clients. On the other hand, the driver also
2548c2ecf20Sopenharmony_ci	  acts as an interrupt controller for receiving interrupts from clients.
2558c2ecf20Sopenharmony_ci	  Say Y here if you want to build this driver.
2568c2ecf20Sopenharmony_ci
2578c2ecf20Sopenharmony_ciendif
258