# Private config options for openamp sample app

# Copyright (c) 2021 Carlo Caione <ccaione@baylibre.com>
# SPDX-License-Identifier: Apache-2.0

# Workaround for not being able to have commas in macro arguments
DT_CHOSEN_Z_IPC_TX := zephyr,ipc_tx
DT_CHOSEN_Z_IPC_RX := zephyr,ipc_rx

config OPENAMP_IPC_DEV_TX_NAME
	string
	default "$(dt_chosen_label,$(DT_CHOSEN_Z_IPC_TX))" if !IPM_NRFX
	default "IPM_1" if (IPM_NRFX && OPENAMP_MASTER)
	default "IPM_0" if (IPM_NRFX && OPENAMP_SLAVE)
	help
	  This option specifies the device name for the IPC device to be used (TX)

config OPENAMP_IPC_DEV_RX_NAME
	string
	default "$(dt_chosen_label,$(DT_CHOSEN_Z_IPC_RX))" if !IPM_NRFX
	default "IPM_0" if (IPM_NRFX && OPENAMP_MASTER)
	default "IPM_1" if (IPM_NRFX && OPENAMP_SLAVE)
	help
	  This option specifies the device name for the IPC device to be used (RX)

source "Kconfig.zephyr"
