| /* |
| * Copyright (c) 2019, Nordic Semiconductor |
| * |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| #include <nrfx_ipc.h> |
| |
| #define NRFX_IPC_ID_MAX_VALUE IPC_CONF_NUM |
| |
| /* |
| * Group IPC signals, events and channels into message channels. |
| * Message channels are one-way connections between cores. |
| * |
| * For example Message Channel 0 is configured as TX on core 0 |
| * and as RX on core 1: |
| * |
| * [C0] [C1] |
| * SIGNAL0 -> CHANNEL0 -> EVENT0 |
| * |
| * Message Channel 1 is configured as RX on core 0 and as TX |
| * on core 1: |
| * [C0] [C1] |
| * EVENT1 <- CHANNEL1 <- SIGNAL1 |
| */ |
| |
| #define IPC_EVENT_BIT(idx) \ |
| ((IS_ENABLED(CONFIG_IPM_MSG_CH_##idx##_RX)) << idx) |
| |
| #define IPC_EVENT_BITS \ |
| ( \ |
| IPC_EVENT_BIT(0) | \ |
| IPC_EVENT_BIT(1) | \ |
| IPC_EVENT_BIT(2) | \ |
| IPC_EVENT_BIT(3) | \ |
| IPC_EVENT_BIT(4) | \ |
| IPC_EVENT_BIT(5) | \ |
| IPC_EVENT_BIT(6) | \ |
| IPC_EVENT_BIT(7) | \ |
| IPC_EVENT_BIT(8) | \ |
| IPC_EVENT_BIT(9) | \ |
| IPC_EVENT_BIT(10) | \ |
| IPC_EVENT_BIT(11) | \ |
| IPC_EVENT_BIT(12) | \ |
| IPC_EVENT_BIT(13) | \ |
| IPC_EVENT_BIT(14) | \ |
| IPC_EVENT_BIT(15) \ |
| ) |
| |
| static const nrfx_ipc_config_t ipc_cfg = { |
| .send_task_config = { |
| [0] = BIT(0), |
| [1] = BIT(1), |
| [2] = BIT(2), |
| [3] = BIT(3), |
| [4] = BIT(4), |
| [5] = BIT(5), |
| [6] = BIT(6), |
| [7] = BIT(7), |
| [8] = BIT(8), |
| [9] = BIT(9), |
| [10] = BIT(10), |
| [11] = BIT(11), |
| [12] = BIT(12), |
| [13] = BIT(13), |
| [14] = BIT(14), |
| [15] = BIT(15), |
| }, |
| .receive_event_config = { |
| [0] = BIT(0), |
| [1] = BIT(1), |
| [2] = BIT(2), |
| [3] = BIT(3), |
| [4] = BIT(4), |
| [5] = BIT(5), |
| [6] = BIT(6), |
| [7] = BIT(7), |
| [8] = BIT(8), |
| [9] = BIT(9), |
| [10] = BIT(10), |
| [11] = BIT(11), |
| [12] = BIT(12), |
| [13] = BIT(13), |
| [14] = BIT(14), |
| [15] = BIT(15), |
| }, |
| .receive_events_enabled = IPC_EVENT_BITS, |
| }; |