shared/tinyusb: Allow ports to use 1200bps-touch without other CDC code.

This fixes the build for some esp32 and nrf boards (for example
`ARDUINO_NANO_33_BLE_SENSE` and `ARDUINO_NANO_ESP32`) due to commit
c98789a6d8.  Changes are:

- Allow the CDC TX/RX functions in `mp_usbd_cdc.c` to be enabled
  separately to those needed for `MICROPY_HW_USB_CDC_1200BPS_TOUCH`.

- Add `MICROPY_EXCLUDE_SHARED_TINYUSB_USBD_CDC` option as a temporary
  workaround for the nrf port to use.

- Declare `mp_usbd_line_state_cb()` in a header as a public function.

- Fix warning with type cast of `.callback_line_state_changed`.

Signed-off-by: Damien George <damien@micropython.org>
This commit is contained in:
Damien George
2024-06-02 22:16:29 +10:00
parent c1a6b95bf2
commit 84a8f7ea6d
5 changed files with 11 additions and 9 deletions

View File

@@ -26,16 +26,13 @@
#include "py/runtime.h"
#include "py/mphal.h"
#include "py/mpconfig.h"
#include "py/stream.h"
#include "extmod/modmachine.h"
#if MICROPY_HW_USB_CDC && MICROPY_HW_ENABLE_USBDEV
#include "tusb.h"
#include "device/usbd.h"
#include "mp_usbd_cdc.h"
#include "mp_usbd.h"
#include "mp_usbd_cdc.h"
#if MICROPY_HW_USB_CDC && MICROPY_HW_ENABLE_USBDEV && !MICROPY_EXCLUDE_SHARED_TINYUSB_USBD_CDC
static uint8_t cdc_itf_pending; // keep track of cdc interfaces which need attention to poll
@@ -122,6 +119,8 @@ mp_uint_t mp_usbd_cdc_tx_strn(const char *str, mp_uint_t len) {
return i;
}
#endif
#if MICROPY_HW_USB_CDC_1200BPS_TOUCH && MICROPY_HW_ENABLE_USBDEV
static mp_sched_node_t mp_bootloader_sched_node;
@@ -150,4 +149,3 @@ tud_cdc_line_state_cb
}
#endif
#endif

View File

@@ -35,5 +35,8 @@ uintptr_t mp_usbd_cdc_poll_interfaces(uintptr_t poll_flags);
void tud_cdc_rx_cb(uint8_t itf);
mp_uint_t mp_usbd_cdc_tx_strn(const char *str, mp_uint_t len);
#if MICROPY_HW_USB_EXTERNAL_TINYUSB
void mp_usbd_line_state_cb(uint8_t itf, bool dtr, bool rts);
#endif
#endif // MICROPY_INCLUDED_SHARED_TINYUSB_MP_USBD_CDC_H