2021-10-20 04:48:09 -04:00
|
|
|
/*
|
2023-08-21 04:34:17 -04:00
|
|
|
* SPDX-FileCopyrightText: 2021-2023 Espressif Systems (Shanghai) CO LTD
|
2021-10-20 04:48:09 -04:00
|
|
|
*
|
2022-04-29 00:10:05 -04:00
|
|
|
* SPDX-License-Identifier: CC0-1.0
|
2021-10-20 04:48:09 -04:00
|
|
|
*
|
|
|
|
* OpenThread Radio Co-Processor (RCP) Example
|
|
|
|
*
|
|
|
|
* This example code is in the Public Domain (or CC0 licensed, at your option.)
|
|
|
|
*
|
|
|
|
* Unless required by applicable law or agreed to in writing, this
|
|
|
|
* software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
|
|
|
|
* CONDITIONS OF ANY KIND, either express or implied.
|
2022-04-29 00:10:05 -04:00
|
|
|
*/
|
2021-07-28 03:32:59 -04:00
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
2023-08-21 04:34:17 -04:00
|
|
|
#if CONFIG_EXTERNAL_COEX_ENABLE
|
|
|
|
#include "esp_coexist.h"
|
|
|
|
#endif
|
|
|
|
|
2021-07-28 03:32:59 -04:00
|
|
|
#include "esp_openthread_types.h"
|
|
|
|
#define ESP_OPENTHREAD_DEFAULT_RADIO_CONFIG() \
|
|
|
|
{ \
|
|
|
|
.radio_mode = RADIO_MODE_NATIVE, \
|
|
|
|
}
|
|
|
|
|
2022-11-16 03:59:57 -05:00
|
|
|
#if CONFIG_OPENTHREAD_RCP_UART
|
2022-08-22 04:09:40 -04:00
|
|
|
#if CONFIG_OPENTHREAD_UART_PIN_MANUAL
|
|
|
|
#define OPENTHREAD_RCP_UART_RX_PIN CONFIG_OPENTHREAD_UART_RX_PIN
|
|
|
|
#define OPENTHREAD_RCP_UART_TX_PIN CONFIG_OPENTHREAD_UART_TX_PIN
|
|
|
|
#else
|
|
|
|
#define OPENTHREAD_RCP_UART_RX_PIN UART_PIN_NO_CHANGE
|
|
|
|
#define OPENTHREAD_RCP_UART_TX_PIN UART_PIN_NO_CHANGE
|
|
|
|
#endif
|
|
|
|
|
2021-07-28 03:32:59 -04:00
|
|
|
#define ESP_OPENTHREAD_DEFAULT_HOST_CONFIG() \
|
|
|
|
{ \
|
|
|
|
.host_connection_mode = HOST_CONNECTION_MODE_RCP_UART, \
|
|
|
|
.host_uart_config = { \
|
|
|
|
.port = 0, \
|
|
|
|
.uart_config = \
|
|
|
|
{ \
|
2023-02-21 01:43:50 -05:00
|
|
|
.baud_rate = 460800, \
|
2021-07-28 03:32:59 -04:00
|
|
|
.data_bits = UART_DATA_8_BITS, \
|
|
|
|
.parity = UART_PARITY_DISABLE, \
|
|
|
|
.stop_bits = UART_STOP_BITS_1, \
|
|
|
|
.flow_ctrl = UART_HW_FLOWCTRL_DISABLE, \
|
|
|
|
.rx_flow_ctrl_thresh = 0, \
|
2022-04-29 00:10:05 -04:00
|
|
|
.source_clk = UART_SCLK_DEFAULT, \
|
2021-07-28 03:32:59 -04:00
|
|
|
}, \
|
2022-08-22 04:09:40 -04:00
|
|
|
.rx_pin = OPENTHREAD_RCP_UART_RX_PIN, \
|
|
|
|
.tx_pin = OPENTHREAD_RCP_UART_TX_PIN, \
|
2021-07-28 03:32:59 -04:00
|
|
|
}, \
|
|
|
|
}
|
2022-11-16 03:59:57 -05:00
|
|
|
#else // CONFIG_OPENTHREAD_RCP_SPI
|
|
|
|
#define ESP_OPENTHREAD_DEFAULT_HOST_CONFIG() \
|
|
|
|
{ \
|
|
|
|
.host_connection_mode = HOST_CONNECTION_MODE_RCP_SPI, \
|
|
|
|
.spi_slave_config = { \
|
|
|
|
.host_device = SPI2_HOST, \
|
|
|
|
.bus_config = { \
|
|
|
|
.mosi_io_num = 3, \
|
|
|
|
.miso_io_num = 1, \
|
|
|
|
.sclk_io_num = 0, \
|
|
|
|
.quadhd_io_num = -1, \
|
|
|
|
.quadwp_io_num = -1, \
|
|
|
|
.isr_cpu_id = INTR_CPU_ID_0, \
|
|
|
|
}, \
|
|
|
|
.slave_config = { \
|
|
|
|
.mode = 0, \
|
|
|
|
.spics_io_num = 2, \
|
|
|
|
.queue_size = 3, \
|
|
|
|
.flags = 0, \
|
|
|
|
}, \
|
|
|
|
.intr_pin = 9, \
|
|
|
|
}, \
|
|
|
|
}
|
|
|
|
#endif
|
2021-07-28 03:32:59 -04:00
|
|
|
|
|
|
|
#define ESP_OPENTHREAD_DEFAULT_PORT_CONFIG() \
|
|
|
|
{ \
|
2023-05-17 08:35:17 -04:00
|
|
|
.storage_partition_name = "nvs", \
|
2021-07-28 03:32:59 -04:00
|
|
|
.netif_queue_size = 10, \
|
|
|
|
.task_queue_size = 10, \
|
|
|
|
}
|
2023-08-21 04:34:17 -04:00
|
|
|
|
|
|
|
#if CONFIG_EXTERNAL_COEX_ENABLE
|
|
|
|
#if CONFIG_EXTERNAL_COEX_WIRE_TYPE == EXTERNAL_COEXIST_WIRE_1
|
|
|
|
#define ESP_OPENTHREAD_DEFAULT_EXTERNAL_COEX_CONFIG() \
|
|
|
|
{ \
|
|
|
|
.request = CONFIG_EXTERNAL_COEX_REQUEST_PIN, \
|
|
|
|
}
|
|
|
|
#elif CONFIG_EXTERNAL_COEX_WIRE_TYPE == EXTERNAL_COEXIST_WIRE_2
|
|
|
|
#define ESP_OPENTHREAD_DEFAULT_EXTERNAL_COEX_CONFIG() \
|
|
|
|
{ \
|
|
|
|
.request = CONFIG_EXTERNAL_COEX_REQUEST_PIN, \
|
|
|
|
.grant = CONFIG_EXTERNAL_COEX_GRANT_PIN, \
|
|
|
|
}
|
|
|
|
#elif CONFIG_EXTERNAL_COEX_WIRE_TYPE == EXTERNAL_COEXIST_WIRE_3
|
|
|
|
#define ESP_OPENTHREAD_DEFAULT_EXTERNAL_COEX_CONFIG() \
|
|
|
|
{ \
|
|
|
|
.request = CONFIG_EXTERNAL_COEX_REQUEST_PIN, \
|
|
|
|
.priority = CONFIG_EXTERNAL_COEX_PRIORITY_PIN, \
|
|
|
|
.grant = CONFIG_EXTERNAL_COEX_GRANT_PIN, \
|
|
|
|
}
|
|
|
|
#elif CONFIG_EXTERNAL_COEX_WIRE_TYPE == EXTERNAL_COEXIST_WIRE_4
|
|
|
|
#define ESP_OPENTHREAD_DEFAULT_EXTERNAL_COEX_CONFIG() \
|
|
|
|
{ \
|
|
|
|
.request = CONFIG_EXTERNAL_COEX_REQUEST_PIN, \
|
|
|
|
.priority = CONFIG_EXTERNAL_COEX_PRIORITY_PIN, \
|
|
|
|
.grant = CONFIG_EXTERNAL_COEX_GRANT_PIN, \
|
|
|
|
.tx_line = CONFIG_EXTERNAL_COEX_TX_LINE_PIN, \
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
#endif // CONFIG_EXTERNAL_COEX_ENABLE
|