# SPDX-License-Identifier: Apache-2.0

menuconfig IPM
	bool "IPM drivers"
	help
	  Include interrupt-based inter-processor mailboxes
	  drivers in system configuration

config IPM_MCUX
	bool "MCUX IPM driver"
	depends on IPM && HAS_MCUX
	help
	  Driver for MCUX mailbox

config IPM_IMX
	bool "IMX IPM driver"
	depends on IPM && HAS_IMX_HAL
	help
	  Driver for NXP i.MX messaging unit

choice
	prompt "IMX IPM max data size"
	default IPM_IMX_MAX_DATA_SIZE_16
	depends on IPM_IMX
	help
	  Select maximum message size for NXP i.MX messaging unit.

config IPM_IMX_MAX_DATA_SIZE_4
	bool "4 bytes"
	help
	  There will be four message types with ids 0, 1, 2 or 3
	  and a maximum size of 4 bytes each.

config IPM_IMX_MAX_DATA_SIZE_8
	bool "8 bytes"
	help
	  There will be two message types with ids 0 or 1
	  and a maximum size of 8 bytes each.

config IPM_IMX_MAX_DATA_SIZE_16
	bool "16 bytes"
	help
	  There will be a single message type with id 0
	  and a maximum size of 16 bytes.

endchoice

config IPM_IMX_MAX_DATA_SIZE
	int
	range 4 16
	default 4 if IPM_IMX_MAX_DATA_SIZE_4
	default 8 if IPM_IMX_MAX_DATA_SIZE_8
	default 16 if IPM_IMX_MAX_DATA_SIZE_16
	depends on IPM_IMX

config IPM_IMX_MAX_ID_VAL
	int
	range 0 3
	default 3 if IPM_IMX_MAX_DATA_SIZE_4
	default 1 if IPM_IMX_MAX_DATA_SIZE_8
	default 0 if IPM_IMX_MAX_DATA_SIZE_16
	depends on IPM_IMX

config IPM_MHU
	bool "IPM MHU driver"
	depends on IPM
	help
	  Driver for SSE 200 MHU (Message Handling Unit)

config IPM_STM32_IPCC
	bool "STM32 IPCC controller"
	depends on IPM
	select USE_STM32_LL_IPCC
	help
	  Driver for stm32 IPCC mailboxes

config IPM_STM32_IPCC_PROCID
	int "STM32 IPCC Processor ID"
	default 2
	range 1 2
	depends on IPM_STM32_IPCC
	help
	  use to define the Processor ID for IPCC access

module = IPM
module-str = ipm
source "subsys/logging/Kconfig.template.log_config"
