mirror of https://github.com/ARMmbed/mbed-os.git
Merge pull request #14888 from arduino/portenta_ble_support
Portenta: Add BLE support using CYW43XXX generic transport layerpull/14913/head
commit
0726db09fb
|
@ -0,0 +1,105 @@
|
||||||
|
/*******************************************************************************
|
||||||
|
* \file cy_bt_cordio_cfg.cpp
|
||||||
|
* \version 1.0
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* Low Power Assist BT Pin configuration implementation.
|
||||||
|
*
|
||||||
|
********************************************************************************
|
||||||
|
* \copyright
|
||||||
|
* Copyright 2019 Cypress Semiconductor Corporation
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*******************************************************************************/
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "ble/driver/CordioHCIDriver.h"
|
||||||
|
#include "hci_api.h"
|
||||||
|
#include "hci_cmd.h"
|
||||||
|
#include "hci_core.h"
|
||||||
|
#include "bstream.h"
|
||||||
|
#include "assert.h"
|
||||||
|
#include <stdbool.h>
|
||||||
|
#include "hci_mbed_os_adaptation.h"
|
||||||
|
#include "CyH4TransportDriver.h"
|
||||||
|
|
||||||
|
#define cyhal_gpio_to_rtos(x) (x)
|
||||||
|
#define CYCFG_BT_LP_ENABLED (1)
|
||||||
|
#define CYCFG_BT_HOST_WAKE_IRQ_EVENT WAKE_EVENT_ACTIVE_LOW
|
||||||
|
#define CYCFG_BT_DEV_WAKE_POLARITY WAKE_EVENT_ACTIVE_LOW
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
* Function Name: ble_cordio_get_h4_transport_driver
|
||||||
|
********************************************************************************
|
||||||
|
*
|
||||||
|
* Strong implementation of function which calls CyH4TransportDriver constructor and return it
|
||||||
|
*
|
||||||
|
* \param none
|
||||||
|
*
|
||||||
|
* \return
|
||||||
|
* Returns the transport driver object
|
||||||
|
*******************************************************************************/
|
||||||
|
ble::vendor::cypress_ble::CyH4TransportDriver& ble_cordio_get_h4_transport_driver()
|
||||||
|
{
|
||||||
|
#if (defined(MBED_TICKLESS) && DEVICE_SLEEP && DEVICE_LPTICKER)
|
||||||
|
|
||||||
|
#if (defined(CYCFG_BT_LP_ENABLED))
|
||||||
|
if (CYCFG_BT_LP_ENABLED) {
|
||||||
|
static ble::vendor::cypress_ble::CyH4TransportDriver s_transport_driver(
|
||||||
|
/* TX */ cyhal_gpio_to_rtos(CYBSP_BT_UART_TX),
|
||||||
|
/* RX */ cyhal_gpio_to_rtos(CYBSP_BT_UART_RX),
|
||||||
|
/* cts */ cyhal_gpio_to_rtos(CYBSP_BT_UART_CTS),
|
||||||
|
/* rts */ cyhal_gpio_to_rtos(CYBSP_BT_UART_RTS),
|
||||||
|
/* power */ cyhal_gpio_to_rtos(CYBSP_BT_POWER),
|
||||||
|
DEF_BT_BAUD_RATE,
|
||||||
|
cyhal_gpio_to_rtos(CYBSP_BT_HOST_WAKE),
|
||||||
|
cyhal_gpio_to_rtos(CYBSP_BT_DEVICE_WAKE),
|
||||||
|
CYCFG_BT_HOST_WAKE_IRQ_EVENT,
|
||||||
|
CYCFG_BT_DEV_WAKE_POLARITY
|
||||||
|
);
|
||||||
|
return s_transport_driver;
|
||||||
|
} else { /* CYCFG_BT_LP_ENABLED */
|
||||||
|
static ble::vendor::cypress_ble::CyH4TransportDriver s_transport_driver(
|
||||||
|
/* TX */ cyhal_gpio_to_rtos(CYBSP_BT_UART_TX),
|
||||||
|
/* RX */ cyhal_gpio_to_rtos(CYBSP_BT_UART_RX),
|
||||||
|
/* cts */ cyhal_gpio_to_rtos(CYBSP_BT_UART_CTS),
|
||||||
|
/* rts */ cyhal_gpio_to_rtos(CYBSP_BT_UART_RTS),
|
||||||
|
/* power */ cyhal_gpio_to_rtos(CYBSP_BT_POWER),
|
||||||
|
DEF_BT_BAUD_RATE);
|
||||||
|
return s_transport_driver;
|
||||||
|
}
|
||||||
|
#else /* (defined(CYCFG_BT_LP_ENABLED)) */
|
||||||
|
static ble::vendor::cypress_ble::CyH4TransportDriver s_transport_driver(
|
||||||
|
/* TX */ cyhal_gpio_to_rtos(CYBSP_BT_UART_TX),
|
||||||
|
/* RX */ cyhal_gpio_to_rtos(CYBSP_BT_UART_RX),
|
||||||
|
/* cts */ cyhal_gpio_to_rtos(CYBSP_BT_UART_CTS),
|
||||||
|
/* rts */ cyhal_gpio_to_rtos(CYBSP_BT_UART_RTS),
|
||||||
|
/* power */ cyhal_gpio_to_rtos(CYBSP_BT_POWER),
|
||||||
|
DEF_BT_BAUD_RATE),
|
||||||
|
cyhal_gpio_to_rtos(CYBSP_BT_HOST_WAKE), cyhal_gpio_to_rtos(CYBSP_BT_DEVICE_WAKE)
|
||||||
|
);
|
||||||
|
return s_transport_driver;
|
||||||
|
#endif /* (defined(CYCFG_BT_LP_ENABLED)) */
|
||||||
|
|
||||||
|
#else /* (defined(MBED_TICKLESS) && DEVICE_SLEEP && DEVICE_LPTICKER) */
|
||||||
|
static ble::vendor::cypress_ble::CyH4TransportDriver s_transport_driver(
|
||||||
|
/* TX */ cyhal_gpio_to_rtos(CYBSP_BT_UART_TX),
|
||||||
|
/* RX */ cyhal_gpio_to_rtos(CYBSP_BT_UART_RX),
|
||||||
|
/* cts */ cyhal_gpio_to_rtos(CYBSP_BT_UART_CTS),
|
||||||
|
/* rts */ cyhal_gpio_to_rtos(CYBSP_BT_UART_RTS),
|
||||||
|
/* power */ cyhal_gpio_to_rtos(CYBSP_BT_POWER),
|
||||||
|
DEF_BT_BAUD_RATE);
|
||||||
|
return s_transport_driver;
|
||||||
|
#endif /* (defined(MBED_TICKLESS) && DEVICE_SLEEP && DEVICE_LPTICKER) */
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
# Copyright (c) 2020 ARM Limited. All rights reserved.
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
add_subdirectory(firmware)
|
|
@ -0,0 +1,6 @@
|
||||||
|
# Copyright (c) 2020 ARM Limited. All rights reserved.
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
if("4343W_FS" IN_LIST MBED_TARGET_LABELS)
|
||||||
|
add_subdirectory(COMPONENT_4343W)
|
||||||
|
endif()
|
|
@ -0,0 +1,7 @@
|
||||||
|
# Copyright (c) 2020 ARM Limited. All rights reserved.
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
target_sources(mbed-ble
|
||||||
|
INTERFACE
|
||||||
|
w_bt_firmware_controller.c
|
||||||
|
)
|
File diff suppressed because it is too large
Load Diff
|
@ -3182,7 +3182,8 @@
|
||||||
},
|
},
|
||||||
"macros_add": [
|
"macros_add": [
|
||||||
"CM4_BOOT_BY_APPLICATION",
|
"CM4_BOOT_BY_APPLICATION",
|
||||||
"QSPI_NO_SAMPLE_SHIFT"
|
"QSPI_NO_SAMPLE_SHIFT",
|
||||||
|
"CYW43XXX_UNBUFFERED_UART"
|
||||||
],
|
],
|
||||||
"detect_code": ["0813"],
|
"detect_code": ["0813"],
|
||||||
"components_add": [
|
"components_add": [
|
||||||
|
@ -3191,6 +3192,12 @@
|
||||||
"4343W_FS",
|
"4343W_FS",
|
||||||
"CYW43XXX"
|
"CYW43XXX"
|
||||||
],
|
],
|
||||||
|
"extra_labels_add": [
|
||||||
|
"CORDIO"
|
||||||
|
],
|
||||||
|
"features": [
|
||||||
|
"BLE"
|
||||||
|
],
|
||||||
"device_has_add": [
|
"device_has_add": [
|
||||||
"USBDEVICE",
|
"USBDEVICE",
|
||||||
"EMAC",
|
"EMAC",
|
||||||
|
|
Loading…
Reference in New Issue