zephyr/drivers/ipm/Kconfig
Chris Trowbridge 52bee41bba drivers: ipm: Add support for NXP i.MX rev2 MU
With a number of the i.MX SoCs (e.g., the i.MX8M Plus), NXP has moved to
supporting the integrated Cortex-M cores with the MCUXpresso SDK (MCUX).
As a result, certain Zephyr drivers (such as the IPM driver) need to be
updated to utlize this new MCUX-based SDK.

This change adds support for the MCUX Messaging Unit driver pulled in by
this PR:
https://github.com/zephyrproject-rtos/hal_nxp/pull/130

Additionally, this change enables the new IPM_IMX_REV2 config for the
mimx8ml8_m7 SoC target which utilizes this new revision of the driver.

Signed-off-by: Chris Trowbridge <chris.trowbridge@lairdconnect.com>
2022-02-22 16:34:06 -06:00

137 lines
2.9 KiB
Plaintext

# SPDX-License-Identifier: Apache-2.0
menuconfig IPM
bool "IPM drivers"
help
Include interrupt-based inter-processor mailboxes
drivers in system configuration
if IPM
config IPM_MCUX
bool "MCUX IPM driver"
depends on HAS_MCUX
help
Driver for MCUX mailbox
config IPM_IMX
bool "IMX IPM driver"
depends on HAS_IMX_HAL
help
Driver for NXP i.MX messaging unit
config IPM_IMX_REV2
bool "IMX IPM driver (rev 2)"
depends on HAS_MCUX
depends on !IPM_IMX
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
config IPM_MHU
bool "IPM MHU driver"
help
Driver for SSE 200 MHU (Message Handling Unit)
config IPM_NRFX
bool "IPM NRF driver"
depends on HAS_HW_NRF_IPC
select NRFX_IPC
help
Driver for Nordic nRF messaging unit, based
on nRF IPC peripheral HW.
config IPM_NRF_SINGLE_INSTANCE
bool "Single instance of IPM device"
help
Enable this option if the IPM device should have
a single instance, instead of one per IPC
message channel.
source "drivers/ipm/Kconfig.nrfx"
config IPM_STM32_IPCC
bool "STM32 IPCC controller"
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
config IPM_CAVS_IDC
bool "CAVS DSP Intra-DSP Communication (IDC) driver"
depends on IPM && CAVS_ICTL
default y if MP_NUM_CPUS > 1 && SMP
help
Driver for the Intra-DSP Communication (IDC) channel for
cross SoC communications.
config IPM_STM32_HSEM
bool "STM32 HSEM controller"
depends on STM32H7_DUAL_CORE
help
Driver for stm32 HSEM mailbox
config IPM_STM32_HSEM_CPU
int "HSEM CPU ID"
default 1 if "$(dt_nodelabel_enabled,cpu0)"
default 2 if "$(dt_nodelabel_enabled,cpu1)"
range 1 2
depends on IPM_STM32_HSEM
help
use to define the CPU ID used by HSEM
module = IPM
module-str = ipm
source "subsys/logging/Kconfig.template.log_config"
endif #IPM