probe: if we have a separate SWDIO input, use it

For boards with a level-shifter on SWDIO for compatibility with 1.8V VDDIO.

Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
diff --git a/src/picoprobe_config.h b/src/picoprobe_config.h
index 3ecef02..042fdff 100644
--- a/src/picoprobe_config.h
+++ b/src/picoprobe_config.h
@@ -51,6 +51,7 @@
 #define PROBE_PIN_OFFSET 12
 #define PROBE_PIN_SWCLK (PROBE_PIN_OFFSET + 0) // 2
 #define PROBE_PIN_SWDIO (PROBE_PIN_OFFSET + 2) // 3
+#define PROBE_PIN_SWDI (PROBE_PIN_OFFSET + 1) // 1 - for level-shifted input
 
 // Target reset config
 #define PROBE_PIN_RESET 0
diff --git a/src/probe.c b/src/probe.c
index 8827bff..2c46a5c 100644
--- a/src/probe.c
+++ b/src/probe.c
@@ -163,7 +163,11 @@
         // Set SWDIO offset
         sm_config_set_out_pins(&sm_config, PROBE_PIN_SWDIO, 1);
         sm_config_set_set_pins(&sm_config, PROBE_PIN_SWDIO, 1);
+#ifdef PROBE_PIN_SWDI
+        sm_config_set_in_pins(&sm_config, PROBE_PIN_SWDI);
+#else
         sm_config_set_in_pins(&sm_config, PROBE_PIN_SWDIO);
+#endif
 
         // Set SWD and SWDIO pins as output to start. This will be set in the sm
         pio_sm_set_consecutive_pindirs(pio0, PROBE_SM, PROBE_PIN_OFFSET, 2, true);