forked from openthread/ot-qorvo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
The QPG6200L is the industry's most reliable and robust wireless multi-standard System-on-Chip. Featuring Qorvo's ConcurrentConnect™ technology, the QPG6200L supports the latest standards for Matter (over Thread), Zigbee and Bluetooth® Low Energy in a truly concurrent way. The low-power QPG6200L enables the adoption of Matter while supporting existing Zigbee networks without tradeoffs in latency and link performance. It features ConcurrentConnect™ Technologies: * Multi-Channel capability allows operating in up to 3 IEEE 802.15.4 PANs on different channels enabling Zigbee and Matter on separate channels ensuring RF performance. * Antenna Diversity for Bluetooth Low Energy and IEEE 802.15.4 enables increased effective range and interference robustness. * Multi-Radio capability allows continuously scanning for incoming packets across Bluetooth Low Energy® and IEEE 802.15.4 protocols with no observable blind spots. The [IoT Dev Kit for QPG6200L](https://www.qorvo.com/products/p/QPG6200LDK-01) provides a complete solution for building applications for connected devices with QPG6200L
- Loading branch information
Showing
30 changed files
with
2,995 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,137 @@ | ||
# | ||
# Copyright (c) 2024, The OpenThread Authors. | ||
# All rights reserved. | ||
# | ||
# Redistribution and use in source and binary forms, with or without | ||
# modification, are permitted provided that the following conditions are met: | ||
# 1. Redistributions of source code must retain the above copyright | ||
# notice, this list of conditions and the following disclaimer. | ||
# 2. Redistributions in binary form must reproduce the above copyright | ||
# notice, this list of conditions and the following disclaimer in the | ||
# documentation and/or other materials provided with the distribution. | ||
# 3. Neither the name of the copyright holder nor the | ||
# names of its contributors may be used to endorse or promote products | ||
# derived from this software without specific prior written permission. | ||
# | ||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | ||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE | ||
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | ||
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | ||
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | ||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | ||
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | ||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | ||
# POSSIBILITY OF SUCH DAMAGE. | ||
# | ||
|
||
target_compile_definitions(ot-config INTERFACE | ||
"MBEDTLS_CONFIG_FILE=\"${SDK_DIR}/${QORVO_PLATFORM}/inc/${QORVO_PLATFORM}-mbedtls-config.h\"" | ||
) | ||
|
||
list(APPEND OT_PUBLIC_INCLUDES | ||
"${CMAKE_CURRENT_SOURCE_DIR}/crypto" | ||
) | ||
|
||
set(OT_PLATFORM_DEFINES ${OT_PLATFORM_DEFINES} PARENT_SCOPE) | ||
|
||
set(OT_PUBLIC_INCLUDES ${OT_PUBLIC_INCLUDES} PARENT_SCOPE) | ||
|
||
set(PLATFORM_SOURCES | ||
alarm.c | ||
diag.c | ||
entropy.c | ||
logging.c | ||
misc.c | ||
platform.c | ||
radio.c | ||
settings.c | ||
syscalls_stubs.c | ||
uart.c | ||
) | ||
|
||
add_library(${PLATFORM_TARGET_FTD} | ||
STATIC | ||
${PLATFORM_SOURCES} | ||
) | ||
|
||
set_target_properties(${PLATFORM_TARGET_FTD} | ||
PROPERTIES | ||
C_STANDARD 99 | ||
CXX_STANDARD 20 | ||
) | ||
|
||
target_link_libraries(${PLATFORM_TARGET_FTD} | ||
PRIVATE | ||
-lc # Required to rearrange linking order to pick up syscalls stubs for libc | ||
-Wl,--start-group | ||
${PLATFORM_DRIVER_FTD} | ||
ot-config | ||
-Wl,--end-group | ||
PUBLIC | ||
-T${SDK_DIR}/${QORVO_PLATFORM}/ld/${QORVO_PLATFORM}.ld | ||
-nostdlib | ||
-Wl,--gc-sections | ||
-Wl,-Map=$<TARGET_PROPERTY:NAME>.map,--cref | ||
) | ||
|
||
target_compile_definitions(${PLATFORM_TARGET_FTD} | ||
PUBLIC | ||
${OT_PLATFORM_DEFINES} | ||
) | ||
|
||
target_compile_options(${PLATFORM_TARGET_FTD} | ||
PRIVATE | ||
${OT_CFLAGS} | ||
) | ||
|
||
target_include_directories(${PLATFORM_TARGET_FTD} | ||
PRIVATE | ||
${OT_PUBLIC_INCLUDES} | ||
${OPENTHREAD_DIR}/examples/platforms | ||
) | ||
|
||
add_library(${PLATFORM_TARGET_MTD} | ||
STATIC | ||
${PLATFORM_SOURCES} | ||
) | ||
|
||
set_target_properties(${PLATFORM_TARGET_MTD} | ||
PROPERTIES | ||
C_STANDARD 99 | ||
CXX_STANDARD 20 | ||
) | ||
|
||
target_link_libraries(${PLATFORM_TARGET_MTD} | ||
PRIVATE | ||
-lc # Required to rearrange linking order to pick up syscalls stubs for libc | ||
-Wl,--start-group | ||
${PLATFORM_DRIVER_MTD} | ||
ot-config | ||
-Wl,--end-group | ||
PUBLIC | ||
-T${SDK_DIR}/${QORVO_PLATFORM}/ld/${QORVO_PLATFORM}.ld | ||
-nostdlib | ||
-Wl,--gc-sections | ||
-Wl,-Map=$<TARGET_PROPERTY:NAME>.map,--cref | ||
) | ||
|
||
target_compile_definitions(${PLATFORM_TARGET_MTD} | ||
PUBLIC | ||
${OT_PLATFORM_DEFINES} | ||
) | ||
|
||
target_compile_options(${PLATFORM_TARGET_MTD} | ||
PRIVATE | ||
${OT_CFLAGS} | ||
) | ||
|
||
target_include_directories(${PLATFORM_TARGET_MTD} | ||
PRIVATE | ||
${OT_PUBLIC_INCLUDES} | ||
${OPENTHREAD_DIR}/examples/platforms | ||
) | ||
|
||
target_include_directories(ot-config INTERFACE ${OT_PUBLIC_INCLUDES}) | ||
target_compile_definitions(ot-config INTERFACE ${OT_PLATFORM_DEFINES}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,87 @@ | ||
/* | ||
* Copyright (c) 2024, The OpenThread Authors. | ||
* All rights reserved. | ||
* | ||
* Redistribution and use in source and binary forms, with or without | ||
* modification, are permitted provided that the following conditions are met: | ||
* 1. Redistributions of source code must retain the above copyright | ||
* notice, this list of conditions and the following disclaimer. | ||
* 2. Redistributions in binary form must reproduce the above copyright | ||
* notice, this list of conditions and the following disclaimer in the | ||
* documentation and/or other materials provided with the distribution. | ||
* 3. Neither the name of the copyright holder nor the | ||
* names of its contributors may be used to endorse or promote products | ||
* derived from this software without specific prior written permission. | ||
* | ||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | ||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE | ||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | ||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | ||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | ||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | ||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | ||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | ||
* POSSIBILITY OF SUCH DAMAGE. | ||
*/ | ||
|
||
/** | ||
* @file | ||
* This file implements the OpenThread platform abstraction for the alarm. | ||
* | ||
*/ | ||
|
||
#include <stdbool.h> | ||
#include <stdint.h> | ||
|
||
#include "alarm_qorvo.h" | ||
#include <openthread/platform/alarm-micro.h> | ||
#include <openthread/platform/alarm-milli.h> | ||
#include <openthread/platform/diag.h> | ||
|
||
uint32_t otPlatAlarmMilliGetNow(void) | ||
{ | ||
return qorvoAlarmGetTimeMs(); | ||
} | ||
|
||
static void qorvoAlarmMilliFired(void *aInstance) | ||
{ | ||
otPlatAlarmMilliFired((otInstance *)aInstance); | ||
} | ||
|
||
void otPlatAlarmMilliStartAt(otInstance *aInstance, uint32_t t0, uint32_t dt) | ||
{ | ||
OT_UNUSED_VARIABLE(t0); | ||
|
||
qorvoAlarmStop((qorvoAlarmCallback_t)qorvoAlarmMilliFired, aInstance); | ||
qorvoAlarmMilliStart(dt, qorvoAlarmMilliFired, aInstance); | ||
} | ||
|
||
void otPlatAlarmMilliStop(otInstance *aInstance) | ||
{ | ||
qorvoAlarmStop((qorvoAlarmCallback_t)qorvoAlarmMilliFired, aInstance); | ||
} | ||
|
||
uint32_t otPlatAlarmMicroGetNow(void) | ||
{ | ||
return qorvoAlarmGetTimeUs(); | ||
} | ||
|
||
static void qorvoAlarmMicroFired(void *aInstance) | ||
{ | ||
otPlatAlarmMicroFired((otInstance *)aInstance); | ||
} | ||
|
||
void otPlatAlarmMicroStartAt(otInstance *aInstance, uint32_t t0, uint32_t dt) | ||
{ | ||
OT_UNUSED_VARIABLE(t0); | ||
|
||
qorvoAlarmStop((qorvoAlarmCallback_t)qorvoAlarmMicroFired, aInstance); | ||
qorvoAlarmMicroStart(dt, qorvoAlarmMicroFired, aInstance); | ||
} | ||
|
||
void otPlatAlarmMicroStop(otInstance *aInstance) | ||
{ | ||
qorvoAlarmStop((qorvoAlarmCallback_t)qorvoAlarmMicroFired, aInstance); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,96 @@ | ||
/* | ||
* Copyright (c) 2024, The OpenThread Authors. | ||
* All rights reserved. | ||
* | ||
* Redistribution and use in source and binary forms, with or without | ||
* modification, are permitted provided that the following conditions are met: | ||
* 1. Redistributions of source code must retain the above copyright | ||
* notice, this list of conditions and the following disclaimer. | ||
* 2. Redistributions in binary form must reproduce the above copyright | ||
* notice, this list of conditions and the following disclaimer in the | ||
* documentation and/or other materials provided with the distribution. | ||
* 3. Neither the name of the copyright holder nor the | ||
* names of its contributors may be used to endorse or promote products | ||
* derived from this software without specific prior written permission. | ||
* | ||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | ||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE | ||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | ||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | ||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | ||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | ||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | ||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | ||
* POSSIBILITY OF SUCH DAMAGE. | ||
*/ | ||
|
||
/** | ||
* @file | ||
* This file includes the declarations of the Alarm functions from the Qorvo library. | ||
* | ||
*/ | ||
|
||
#ifndef ALARM_QORVO_H_ | ||
#define ALARM_QORVO_H_ | ||
|
||
#include <stdbool.h> | ||
#include <stdint.h> | ||
#include <sys/time.h> | ||
#include <unistd.h> | ||
|
||
typedef void (*qorvoAlarmCallback_t)(void *); | ||
|
||
/** | ||
* This function initializes the alarm service used by OpenThread. | ||
* | ||
*/ | ||
void qorvoAlarmInit(void); | ||
|
||
/** | ||
* This function retrieves the current host time in milliseconds. | ||
* | ||
* @param[out] The current time in ms. | ||
* | ||
*/ | ||
uint32_t qorvoAlarmGetTimeMs(void); | ||
|
||
/** | ||
* This function retrieves the current host time in microseconds. | ||
* | ||
* @param[out] The current time in us. | ||
* | ||
*/ | ||
uint32_t qorvoAlarmGetTimeUs(void); | ||
|
||
/** | ||
* This function schedules a callback after a relative amount of time. | ||
* | ||
* @param[in] rel_time The relative time in ms. | ||
* @param[in] callback A callback function which will be called. | ||
* @param[in] arg A context pointer which will be passed as an argument to the callback. | ||
* | ||
*/ | ||
void qorvoAlarmMilliStart(uint32_t rel_time, qorvoAlarmCallback_t callback, void *arg); | ||
|
||
/** | ||
* This function schedules a callback after a relative amount of time. | ||
* | ||
* @param[in] rel_time The relative time in us. | ||
* @param[in] callback A callback function which will be called. | ||
* @param[in] arg A context pointer which will be passed as an argument to the callback. | ||
* | ||
*/ | ||
void qorvoAlarmMicroStart(uint32_t rel_time, qorvoAlarmCallback_t callback, void *arg); | ||
|
||
/** | ||
* This function unschedules the callback. | ||
* | ||
* @param[in] callback A callback function which will be removed from the list. | ||
* @param[in] arg A context pointer which will be passed as an argument to the callback. | ||
* | ||
*/ | ||
bool qorvoAlarmStop(qorvoAlarmCallback_t callback, void *arg); | ||
|
||
#endif // ALARM_QORVO_H_ |
Oops, something went wrong.