aboutsummaryrefslogtreecommitdiff
path: root/extmod
diff options
context:
space:
mode:
authorDamien George2019-11-01 12:41:37 +1100
committerDamien George2019-11-01 12:41:37 +1100
commit40ea1915fc06b7abc4fac6649c70f9b89dc51e2b (patch)
tree30adedc7500bf608a083f1ec06f99cccb2943017 /extmod
parent78145b98ef6c755c5cf7745ea643766bec6f9045 (diff)
extmod/nimble: Factor out stm32-specific HCI UART RX/TX code.
Diffstat (limited to 'extmod')
-rw-r--r--extmod/nimble/nimble/hci_uart.c36
-rw-r--r--extmod/nimble/nimble/hci_uart.h5
2 files changed, 4 insertions, 37 deletions
diff --git a/extmod/nimble/nimble/hci_uart.c b/extmod/nimble/nimble/hci_uart.c
index 801291def..b4ac4e738 100644
--- a/extmod/nimble/nimble/hci_uart.c
+++ b/extmod/nimble/nimble/hci_uart.c
@@ -42,8 +42,6 @@ static void *hal_uart_tx_arg;
static hal_uart_rx_cb_t hal_uart_rx_cb;
static void *hal_uart_rx_arg;
-static uint32_t bt_sleep_ticks;
-
int hal_uart_init_cbs(uint32_t port, hal_uart_tx_cb_t tx_cb, void *tx_arg, hal_uart_rx_cb_t rx_cb, void *rx_arg) {
hal_uart_tx_cb = tx_cb;
hal_uart_tx_arg = tx_arg;
@@ -76,16 +74,6 @@ void hal_uart_start_tx(uint32_t port) {
printf("\n");
#endif
- bt_sleep_ticks = mp_hal_ticks_ms();
-
- #ifdef pyb_pin_BT_DEV_WAKE
- if (mp_hal_pin_read(pyb_pin_BT_DEV_WAKE) == 1) {
- //printf("BT WAKE for TX\n");
- mp_hal_pin_low(pyb_pin_BT_DEV_WAKE); // wake up
- mp_hal_delay_ms(5); // can't go lower than this
- }
- #endif
-
nimble_hci_uart_tx_strn((void*)bt_hci_cmd_buf, len);
}
@@ -94,29 +82,7 @@ int hal_uart_close(uint32_t port) {
}
void nimble_uart_process(void) {
- int host_wake = 0;
- #ifdef pyb_pin_BT_HOST_WAKE
- host_wake = mp_hal_pin_read(pyb_pin_BT_HOST_WAKE);
- #endif
- /*
- // this is just for info/tracing purposes
- static int last_host_wake = 0;
- if (host_wake != last_host_wake) {
- printf("HOST_WAKE change %d -> %d\n", last_host_wake, host_wake);
- last_host_wake = host_wake;
- }
- */
- while (nimble_hci_uart_rx_any()) {
- uint8_t data = nimble_hci_uart_rx_char();
- //printf("UART RX: %02x\n", data);
- hal_uart_rx_cb(hal_uart_rx_arg, data);
- }
- if (host_wake == 1 && mp_hal_pin_read(pyb_pin_BT_DEV_WAKE) == 0) {
- if (mp_hal_ticks_ms() - bt_sleep_ticks > 500) {
- //printf("BT SLEEP\n");
- mp_hal_pin_high(pyb_pin_BT_DEV_WAKE); // let sleep
- }
- }
+ nimble_hci_uart_rx(hal_uart_rx_cb, hal_uart_rx_arg);
}
#endif // MICROPY_BLUETOOTH_NIMBLE
diff --git a/extmod/nimble/nimble/hci_uart.h b/extmod/nimble/nimble/hci_uart.h
index e18421083..3d4a2a983 100644
--- a/extmod/nimble/nimble/hci_uart.h
+++ b/extmod/nimble/nimble/hci_uart.h
@@ -26,6 +26,8 @@
#ifndef MICROPY_INCLUDED_EXTMOD_NIMBLE_NIMBLE_HCI_UART_H
#define MICROPY_INCLUDED_EXTMOD_NIMBLE_NIMBLE_HCI_UART_H
+#include "extmod/nimble/hal/hal_uart.h"
+
// To be implemented by the port.
int nimble_hci_uart_configure(uint32_t port);
@@ -35,8 +37,7 @@ int nimble_hci_uart_set_baudrate(uint32_t baudrate);
int nimble_hci_uart_activate(void);
-mp_uint_t nimble_hci_uart_rx_any();
-int nimble_hci_uart_rx_char();
+void nimble_hci_uart_rx(hal_uart_rx_cb_t rx_cb, void *rx_arg);
void nimble_hci_uart_tx_strn(const char *str, uint len);
#endif // MICROPY_INCLUDED_EXTMOD_NIMBLE_NIMBLE_HCI_UART_H