picoprobe: add a USB Connected LED and signal it appropriately

Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
diff --git a/src/led.c b/src/led.c
index 95a2836..fb73532 100644
--- a/src/led.c
+++ b/src/led.c
@@ -38,6 +38,10 @@
     gpio_init(PICOPROBE_LED);
     gpio_set_dir(PICOPROBE_LED, GPIO_OUT);
     gpio_put(PICOPROBE_LED, 1);
+#ifdef PICOPROBE_USB_CONNECTED_LED
+    gpio_init(PICOPROBE_USB_CONNECTED_LED);
+    gpio_set_dir(PICOPROBE_USB_CONNECTED_LED, GPIO_OUT);
+#endif
 #ifdef PICOPROBE_DAP_CONNECTED_LED
     gpio_init(PICOPROBE_DAP_CONNECTED_LED);
     gpio_set_dir(PICOPROBE_DAP_CONNECTED_LED, GPIO_OUT);
diff --git a/src/main.c b/src/main.c
index 620899a..9f6d83a 100644
--- a/src/main.c
+++ b/src/main.c
@@ -59,6 +59,12 @@
 {
     do {
         tud_task();
+#ifdef PICOPROBE_USB_CONNECTED_LED
+        if (!gpio_get(PICOPROBE_USB_CONNECTED_LED) && tud_ready())
+            gpio_put(PICOPROBE_USB_CONNECTED_LED, 1);
+        else
+            gpio_put(PICOPROBE_USB_CONNECTED_LED, 0);
+#endif
         // Trivial delay to save power
         vTaskDelay(1);
     } while (1);
diff --git a/src/picoprobe_config.h b/src/picoprobe_config.h
index 4744d26..3ecef02 100644
--- a/src/picoprobe_config.h
+++ b/src/picoprobe_config.h
@@ -61,6 +61,7 @@
 #define PICOPROBE_UART_INTERFACE uart1
 #define PICOPROBE_UART_BAUDRATE 115200
 
+#define PICOPROBE_USB_CONNECTED_LED 2
 #define PICOPROBE_DAP_CONNECTED_LED 15
 #define PICOPROBE_DAP_RUNNING_LED 16
 #define PICOPROBE_UART_RX_LED 7