[posix] use enumerations for RCP bus (#4871)

This commit changes the way to define RCP bus type. It now defines two
enumerations for UART and SPI. This ensures only a single bus type is
enabled, and helps keep compatible with projects using UART bus.
This commit is contained in:
Yakun Xu
2020-04-21 23:23:12 -07:00
committed by GitHub
parent 25b29a1ade
commit 5632c271b8
11 changed files with 49 additions and 53 deletions
+2 -2
View File
@@ -74,9 +74,9 @@ OPENTHREAD_PUBLIC_CFLAGS += -DOPENTHREAD_CONFIG_UDP_FORWARD_ENABLE=1
endif
ifeq ($(USE_OT_RCP_BUS), spi)
OPENTHREAD_PUBLIC_CFLAGS += -DOPENTHREAD_POSIX_CONFIG_RCP_SPI_ENABLE=1
OPENTHREAD_PUBLIC_CFLAGS += -DOPENTHREAD_POSIX_CONFIG_RCP_BUS=OT_POSIX_RCP_BUS_SPI
else
OPENTHREAD_PUBLIC_CFLAGS += -DOPENTHREAD_POSIX_CONFIG_RCP_UART_ENABLE=1
OPENTHREAD_PUBLIC_CFLAGS += -DOPENTHREAD_POSIX_CONFIG_RCP_BUS=OT_POSIX_RCP_BUS_UART
endif
# Enable all optional features for CI tests.
+3 -3
View File
@@ -103,10 +103,10 @@ ifneq ($(READLINE),)
configure_OPTIONS += --with-readline=$(READLINE)
endif
ifeq ($(RCP_SPI),1)
COMMONCFLAGS += -DOPENTHREAD_POSIX_CONFIG_RCP_SPI_ENABLE=1
ifeq ($(RCP_BUS),spi)
COMMONCFLAGS += -DOPENTHREAD_POSIX_CONFIG_RCP_BUS=OT_POSIX_RCP_BUS_SPI
else
COMMONCFLAGS += -DOPENTHREAD_POSIX_CONFIG_RCP_UART_ENABLE=1
COMMONCFLAGS += -DOPENTHREAD_POSIX_CONFIG_RCP_BUS=OT_POSIX_RCP_BUS_UART
endif
ifeq ($(VIRTUAL_TIME),1)
+3 -3
View File
@@ -124,7 +124,7 @@ static const struct option kOptions[] = {{"debug-level", required_argument, NULL
{"ncp-dataset", no_argument, NULL, ARG_RESTORE_NCP_DATASET},
{"time-speed", required_argument, NULL, 's'},
{"verbose", no_argument, NULL, 'v'},
#if OPENTHREAD_POSIX_CONFIG_RCP_SPI_ENABLE
#if OPENTHREAD_POSIX_CONFIG_RCP_BUS == OT_POSIX_RCP_BUS_SPI
{"gpio-int-dev", required_argument, NULL, ARG_SPI_GPIO_INT_DEV},
{"gpio-int-line", required_argument, NULL, ARG_SPI_GPIO_INT_LINE},
{"gpio-reset-dev", required_argument, NULL, ARG_SPI_GPIO_RESET_DEV},
@@ -135,7 +135,7 @@ static const struct option kOptions[] = {{"debug-level", required_argument, NULL
{"spi-reset-delay", required_argument, NULL, ARG_SPI_RESET_DELAY},
{"spi-align-allowance", required_argument, NULL, ARG_SPI_ALIGN_ALLOWANCE},
{"spi-small-packet", required_argument, NULL, ARG_SPI_SMALL_PACKET},
#endif
#endif // OPENTHREAD_POSIX_CONFIG_RCP_BUS == OT_POSIX_RCP_BUS_SPI
{0, 0, 0, 0}};
static void PrintUsage(const char *aProgramName, FILE *aStream, int aExitCode)
@@ -154,7 +154,7 @@ static void PrintUsage(const char *aProgramName, FILE *aStream, int aExitCode)
" -s --time-speed factor Time speed up factor.\n"
" -v --verbose Also log to stderr.\n",
aProgramName);
#if OPENTHREAD_POSIX_CONFIG_RCP_SPI_ENABLE
#if OPENTHREAD_POSIX_CONFIG_RCP_BUS == OT_POSIX_RCP_BUS_SPI
fprintf(aStream,
" --gpio-int-dev[=gpio-device-path]\n"
" Specify a path to the Linux sysfs-exported GPIO device for the\n"
+1 -1
View File
@@ -45,7 +45,7 @@ endif()
list(APPEND OT_PLATFORM_DEFINES
"OPENTHREAD_POSIX=1"
"OPENTHREAD_POSIX_CONFIG_RCP_UART_ENABLE=1"
"OPENTHREAD_POSIX_CONFIG_RCP_BUS=OT_POSIX_RCP_BUS_UART"
)
set(OT_PLATFORM_DEFINES ${OT_PLATFORM_DEFINES} PARENT_SCOPE)
+2 -2
View File
@@ -118,7 +118,7 @@
#endif // __APPLE__
#if OPENTHREAD_POSIX_CONFIG_RCP_UART_ENABLE
#if OPENTHREAD_POSIX_CONFIG_RCP_BUS == OT_POSIX_RCP_BUS_UART
using ot::Spinel::SpinelInterface;
@@ -644,4 +644,4 @@ void HdlcInterface::HandleHdlcFrame(otError aError)
} // namespace Posix
} // namespace ot
#endif // OPENTHREAD_POSIX_CONFIG_RCP_UART_ENABLE
#endif // OPENTHREAD_POSIX_CONFIG_RCP_BUS == OT_POSIX_RCP_BUS_UART
+2 -2
View File
@@ -39,7 +39,7 @@
#include "lib/hdlc/hdlc.hpp"
#include "lib/spinel/spinel_interface.hpp"
#if OPENTHREAD_POSIX_CONFIG_RCP_UART_ENABLE
#if OPENTHREAD_POSIX_CONFIG_RCP_BUS == OT_POSIX_RCP_BUS_UART
namespace ot {
namespace Posix {
@@ -224,5 +224,5 @@ private:
} // namespace Posix
} // namespace ot
#endif // OPENTHREAD_POSIX_CONFIG_RCP_UART_ENABLE
#endif // OPENTHREAD_POSIX_CONFIG_RCP_BUS == OT_POSIX_RCP_BUS_UART
#endif // POSIX_APP_HDLC_INTERFACE_HPP_
+24 -20
View File
@@ -57,26 +57,6 @@
#define OPENTHREAD_POSIX_CONFIG_DAEMON_SOCKET_BASENAME "/tmp/openthread"
#endif
/**
* @def OPENTHREAD_POSIX_CONFIG_RCP_UART_ENABLE
*
* Define as 1 to enable UART interface to RCP.
*
*/
#ifndef OPENTHREAD_POSIX_CONFIG_RCP_UART_ENABLE
#define OPENTHREAD_POSIX_CONFIG_RCP_UART_ENABLE 0
#endif
/**
* @def OPENTHREAD_POSIX_CONFIG_RCP_SPI_ENABLE
*
* Define as 1 to enable SPI interface to RCP.
*
*/
#ifndef OPENTHREAD_POSIX_CONFIG_RCP_SPI_ENABLE
#define OPENTHREAD_POSIX_CONFIG_RCP_SPI_ENABLE 0
#endif
/**
* @def OPENTHREAD_POSIX_CONFIG_DAEMON_ENABLE
*
@@ -87,4 +67,28 @@
#define OPENTHREAD_POSIX_CONFIG_DAEMON_ENABLE 0
#endif
/**
* RCP bus UART.
*
* @note This value is also for simulated UART bus.
*
*/
#define OT_POSIX_RCP_BUS_UART 1
/**
* RCP bus SPI.
*
*/
#define OT_POSIX_RCP_BUS_SPI 2
/**
* @def OPENTHREAD_POSIX_CONFIG_RCP_BUS
*
* This setting configures what type of RCP bus to use.
*
*/
#ifndef OPENTHREAD_POSIX_CONFIG_RCP_BUS
#define OPENTHREAD_POSIX_CONFIG_RCP_BUS OT_POSIX_RCP_BUS_UART
#endif
#endif // OPENTHREAD_PLATFORM_CONFIG_H_
+7 -9
View File
@@ -34,23 +34,21 @@
#include "platform-posix.h"
#include "lib/spinel/radio_spinel.hpp"
#if OPENTHREAD_POSIX_CONFIG_RCP_UART_ENABLE
#if OPENTHREAD_POSIX_CONFIG_RCP_BUS == OT_POSIX_RCP_BUS_UART
#include "hdlc_interface.hpp"
#elif OPENTHREAD_POSIX_CONFIG_RCP_SPI_ENABLE
#include "spi_interface.hpp"
#else
#error "Please enable either OPENTHREAD_POSIX_CONFIG_RCP_UART_ENABLE or OPENTHREAD_POSIX_CONFIG_RCP_SPI_ENABLE."
#endif
#if OPENTHREAD_POSIX_CONFIG_RCP_UART_ENABLE
#if OPENTHREAD_POSIX_VIRTUAL_TIME
static ot::Spinel::RadioSpinel<ot::Posix::HdlcInterface, Event> sRadioSpinel;
#else
static ot::Spinel::RadioSpinel<ot::Posix::HdlcInterface, RadioProcessContext> sRadioSpinel;
#endif // OPENTHREAD_POSIX_VIRTUAL_TIME
#elif OPENTHREAD_POSIX_CONFIG_RCP_SPI_ENABLE
#elif OPENTHREAD_POSIX_CONFIG_RCP_BUS == OT_POSIX_RCP_BUS_SPI
#include "spi_interface.hpp"
static ot::Spinel::RadioSpinel<ot::Posix::SpiInterface, RadioProcessContext> sRadioSpinel;
#endif // OPENTHREAD_POSIX_CONFIG_RCP_SPI_ENABLE
#else
#error "OPENTHREAD_POSIX_CONFIG_RCP_BUS only allows OT_POSIX_RCP_BUS_UART and OT_POSIX_RCP_BUS_SPI!"
#endif
void otPlatRadioGetIeeeEui64(otInstance *aInstance, uint8_t *aIeeeEui64)
{
+2 -2
View File
@@ -54,7 +54,7 @@
#include <sys/types.h>
#include <sys/ucontext.h>
#if OPENTHREAD_POSIX_CONFIG_RCP_SPI_ENABLE
#if OPENTHREAD_POSIX_CONFIG_RCP_BUS == OT_POSIX_RCP_BUS_SPI
#include <linux/gpio.h>
#include <linux/ioctl.h>
#include <linux/spi/spidev.h>
@@ -792,4 +792,4 @@ void SpiInterface::LogStats(void)
} // namespace Posix
} // namespace ot
#endif // OPENTHREAD_POSIX_CONFIG_RCP_SPI_ENABLE
#endif // OPENTHREAD_POSIX_CONFIG_RCP_BUS == OT_POSIX_RCP_BUS_SPI
+2 -2
View File
@@ -42,7 +42,7 @@
#include <openthread/openthread-system.h>
#if OPENTHREAD_POSIX_CONFIG_RCP_SPI_ENABLE
#if OPENTHREAD_POSIX_CONFIG_RCP_BUS == OT_POSIX_RCP_BUS_SPI
#include "ncp/ncp_spi.hpp"
@@ -231,5 +231,5 @@ private:
} // namespace Posix
} // namespace ot
#endif // OPENTHREAD_POSIX_CONFIG_RCP_SPI_ENABLE
#endif // OPENTHREAD_POSIX_CONFIG_RCP_BUS == OT_POSIX_RCP_BUS_SPI
#endif // POSIX_APP_SPI_INTERFACE_HPP_
@@ -61,12 +61,6 @@
*/
#define OPENTHREAD_POSIX_CONFIG_RCP_PTY_ENABLE 1
/**
* @def OPENTHREAD_POSIX_CONFIG_RCP_UART_ENABLE
*
* Define as 1 to enable UART interface to RCP.
*
*/
#define OPENTHREAD_POSIX_CONFIG_RCP_UART_ENABLE 1
#define OPENTHREAD_POSIX_CONFIG_RCP_BUS OT_POSIX_RCP_BUS_UART
#endif /* OPENTHREAD_CORE_TORANJ_CONFIG_POSIX_H_ */