# SPDX-License-Identifier: Apache-2.0
# Copyright (c) 2022, Intel Corporation

config IPM_MCUX
	bool "MCUX IPM driver"
	default y
	depends on DT_HAS_NXP_LPC_MAILBOX_ENABLED
	help
	  Driver for MCUX mailbox

config IPM_IMX
	bool "IMX IPM driver"
	default y
	depends on DT_HAS_NXP_IMX_MU_ENABLED
	help
	  Driver for NXP i.MX messaging unit

config IPM_IMX_REV2
	bool "IMX IPM driver (rev 2)"
	default y
	depends on DT_HAS_NXP_IMX_MU_REV2_ENABLED
	help
	  Rev 2 driver for NXP i.MX messaging unit (MCUX-based)

choice
	prompt "IMX IPM max data size"
	default IPM_IMX_MAX_DATA_SIZE_16
	depends on IPM_IMX || IPM_IMX_REV2
	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 || IPM_IMX_REV2

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 || IPM_IMX_REV2
