Skip to content

Commit caaf54d

Browse files
committed
use is_tx_active()
1 parent e64900b commit caaf54d

File tree

3 files changed

+19
-18
lines changed

3 files changed

+19
-18
lines changed

connectivity/drivers/ble/FEATURE_BLE/COMPONENT_CYW43XXX/CyH4TransportDriver.cpp

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
#include "CyH4TransportDriver.h"
2121
#include "mbed_power_mgmt.h"
2222
#include "drivers/InterruptIn.h"
23-
#if !defined(CYW43XXX_UNBUFFERED_UART)
23+
#if !(defined(CYW43XXX_UNBUFFERED_UART) && DEVICE_SERIAL_ASYNCH)
2424
#include "cybsp_types.h"
2525
#endif
2626
#include "Callback.h"
@@ -34,7 +34,7 @@ namespace cypress_ble {
3434
using namespace std::chrono_literals;
3535

3636
CyH4TransportDriver::CyH4TransportDriver(PinName tx, PinName rx, PinName cts, PinName rts, PinName bt_power_name, int baud, PinName bt_host_wake_name, PinName bt_device_wake_name, uint8_t host_wake_irq, uint8_t dev_wake_irq) :
37-
#if defined(CYW43XXX_UNBUFFERED_UART)
37+
#if (defined(CYW43XXX_UNBUFFERED_UART) && DEVICE_SERIAL_ASYNCH)
3838
uart(tx, rx),
3939
#else
4040
tx(tx), rx(rx),
@@ -54,7 +54,7 @@ CyH4TransportDriver::CyH4TransportDriver(PinName tx, PinName rx, PinName cts, Pi
5454
}
5555

5656
CyH4TransportDriver::CyH4TransportDriver(PinName tx, PinName rx, PinName cts, PinName rts, PinName bt_power_name, int baud) :
57-
#if defined(CYW43XXX_UNBUFFERED_UART)
57+
#if (defined(CYW43XXX_UNBUFFERED_UART) && DEVICE_SERIAL_ASYNCH)
5858
uart(tx, rx),
5959
#else
6060
tx(tx), rx(rx),
@@ -116,20 +116,20 @@ void CyH4TransportDriver::bt_host_wake_fall_irq_handler(void)
116116
}
117117
}
118118

119-
#if defined(CYW43XXX_UNBUFFERED_UART)
119+
#if (defined(CYW43XXX_UNBUFFERED_UART) && DEVICE_SERIAL_ASYNCH)
120120
void CyH4TransportDriver::on_controller_irq()
121121
#else
122122
static void on_controller_irq(void *callback_arg, cyhal_uart_event_t event)
123123
#endif
124124
{
125-
#if !defined(CYW43XXX_UNBUFFERED_UART)
125+
#if !(defined(CYW43XXX_UNBUFFERED_UART) && DEVICE_SERIAL_ASYNCH)
126126
(void)(event);
127127
cyhal_uart_t *uart_obj = (cyhal_uart_t *)callback_arg;
128128
#endif
129129

130130
sleep_manager_lock_deep_sleep();
131131

132-
#if defined(CYW43XXX_UNBUFFERED_UART)
132+
#if (defined(CYW43XXX_UNBUFFERED_UART) && DEVICE_SERIAL_ASYNCH)
133133
while (uart.readable()) {
134134
uint8_t char_received;
135135
if (uart.read(&char_received, 1)) {
@@ -153,7 +153,7 @@ void CyH4TransportDriver::initialize()
153153
bt_power = 0;
154154
rtos::ThisThread::sleep_for(1ms);
155155

156-
#if defined(CYW43XXX_UNBUFFERED_UART)
156+
#if (defined(CYW43XXX_UNBUFFERED_UART) && DEVICE_SERIAL_ASYNCH)
157157
uart.baud(DEF_BT_BAUD_RATE);
158158

159159
uart.format(
@@ -205,7 +205,7 @@ void CyH4TransportDriver::initialize()
205205

206206
void CyH4TransportDriver::terminate()
207207
{
208-
#if !defined(CYW43XXX_UNBUFFERED_UART)
208+
#if !(defined(CYW43XXX_UNBUFFERED_UART) && DEVICE_SERIAL_ASYNCH)
209209
cyhal_uart_event_t enable_irq_event = (cyhal_uart_event_t)(CYHAL_UART_IRQ_RX_DONE
210210
| CYHAL_UART_IRQ_TX_DONE
211211
| CYHAL_UART_IRQ_RX_NOT_EMPTY
@@ -229,7 +229,7 @@ void CyH4TransportDriver::terminate()
229229

230230
bt_power = 0; //BT_POWER is an output, should not be freed only set inactive
231231

232-
#if defined(CYW43XXX_UNBUFFERED_UART)
232+
#if (defined(CYW43XXX_UNBUFFERED_UART) && DEVICE_SERIAL_ASYNCH)
233233
uart.close();
234234
#else
235235
cyhal_uart_free(&uart);
@@ -245,7 +245,7 @@ uint16_t CyH4TransportDriver::write(uint8_t type, uint16_t len, uint8_t *pData)
245245

246246
while (i < len + 1) {
247247
uint8_t to_write = i == 0 ? type : pData[i - 1];
248-
#if defined(CYW43XXX_UNBUFFERED_UART)
248+
#if (defined(CYW43XXX_UNBUFFERED_UART) && DEVICE_SERIAL_ASYNCH)
249249
while (uart.writeable() == 0);
250250
uart.write(&to_write, 1);
251251
#else
@@ -254,8 +254,8 @@ uint16_t CyH4TransportDriver::write(uint8_t type, uint16_t len, uint8_t *pData)
254254
#endif
255255
++i;
256256
}
257-
#if defined(CYW43XXX_UNBUFFERED_UART)
258-
while (uart.writeable() == 0);
257+
#if (defined(CYW43XXX_UNBUFFERED_UART) && DEVICE_SERIAL_ASYNCH)
258+
while(uart.is_tx_active() != 0);
259259
#else
260260
while(cyhal_uart_is_tx_active(&uart));
261261
#endif
@@ -294,7 +294,7 @@ void CyH4TransportDriver::deassert_bt_dev_wake()
294294

295295
void CyH4TransportDriver::update_uart_baud_rate(int baud)
296296
{
297-
#if defined(CYW43XXX_UNBUFFERED_UART)
297+
#if (defined(CYW43XXX_UNBUFFERED_UART) && DEVICE_SERIAL_ASYNCH)
298298
uart.baud((uint32_t)baud);
299299
#else
300300
uint32_t ignore;

connectivity/drivers/ble/FEATURE_BLE/COMPONENT_CYW43XXX/CyH4TransportDriver.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
#include "drivers/DigitalInOut.h"
2626
#include "drivers/InterruptIn.h"
2727

28-
#if defined(CYW43XXX_UNBUFFERED_UART)
28+
#if (defined(CYW43XXX_UNBUFFERED_UART) && DEVICE_SERIAL_ASYNCH)
2929
#include "drivers/UnbufferedSerial.h"
3030
#else
3131
#include "cyhal_uart.h"
@@ -86,8 +86,8 @@ class CyH4TransportDriver : public CordioHCITransportDriver {
8686
private:
8787
void assert_bt_dev_wake();
8888
void deassert_bt_dev_wake();
89-
90-
#if defined(CYW43XXX_UNBUFFERED_UART)
89+
90+
#if (defined(CYW43XXX_UNBUFFERED_UART) && DEVICE_SERIAL_ASYNCH)
9191
void on_controller_irq();
9292
#endif
9393

@@ -98,7 +98,7 @@ class CyH4TransportDriver : public CordioHCITransportDriver {
9898
// However UART APIs does not prevent the BT radio from going to sleep.
9999
// Use the HAL APIs to prevent the radio from going to sleep until UART transmition is complete.
100100
// Mbed layer has no API that distinguish between data in HW buffer v.s. data already transmitted.
101-
#if defined(CYW43XXX_UNBUFFERED_UART)
101+
#if (defined(CYW43XXX_UNBUFFERED_UART) && DEVICE_SERIAL_ASYNCH)
102102
mbed::UnbufferedSerial uart;
103103
#else
104104
cyhal_uart_t uart;

targets/targets.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3154,7 +3154,8 @@
31543154
"device_has_add": [
31553155
"USBDEVICE",
31563156
"EMAC",
3157-
"QSPI"
3157+
"QSPI",
3158+
"SERIAL_ASYNCH"
31583159
],
31593160
"overrides": {
31603161
"system_power_supply": "PWR_SMPS_1V8_SUPPLIES_LDO",

0 commit comments

Comments
 (0)