@@ -300,11 +300,13 @@ __STATIC_FORCEINLINE uint32_t PIN_SWDIO_IN(void)
300300*/
301301__STATIC_FORCEINLINE void PIN_SWDIO_OUT (uint32_t bit )
302302{
303+ #ifndef SWDP_SGPIO
303304 if (bit & 0x1 ) {
304305 X_SET (SWDIO );
305306 } else {
306307 X_CLR (SWDIO );
307308 }
309+ #endif
308310}
309311
310312/** SWDIO I/O pin: Switch to Output mode (used in SWD mode only).
@@ -313,8 +315,10 @@ called prior \ref PIN_SWDIO_OUT function calls.
313315*/
314316__STATIC_FORCEINLINE void PIN_SWDIO_OUT_ENABLE (void )
315317{
318+ #ifndef SWDP_SGPIO
316319 X_SET (SWDIO_TXE );
317320 X_DIR_OUT (SWDIO );
321+ #endif
318322}
319323
320324/** SWDIO I/O pin: Switch to Input mode (used in SWD mode only).
@@ -323,8 +327,10 @@ called prior \ref PIN_SWDIO_IN function calls.
323327*/
324328__STATIC_FORCEINLINE void PIN_SWDIO_OUT_DISABLE (void )
325329{
330+ #ifndef SWDP_SGPIO
326331 X_DIR_IN (SWDIO );
327332 X_CLR (SWDIO_TXE );
333+ #endif
328334}
329335
330336
@@ -506,11 +512,21 @@ __STATIC_INLINE void DAP_SETUP(void)
506512
507513 while (!(LPC_CCU1 -> CLK_M4_GPIO_STAT & CCU_CLK_STAT_RUN ));
508514
515+ #ifdef SWDP_SGPIO
516+ /* Table 186. Pin multiplexing. */
517+ /* SWCLK/TCK: PIN(P1_17) FUNC6(SGPIO11). TCK_SWCLK. Table 189. */
518+ scu_pinmux (1 , 17 , CLK_OUT , FUNC6 );
519+ /* SWDIO/TMS: PIN(P1_6) FUNC6(SGPIO14). TMS_SWDIO. Table 188. */
520+ scu_pinmux (1 , 6 , INBUF_ENABLE | PUP_DISABLE | SLEWRATE_FAST , FUNC6 );
521+ /* SWDIO/TXEN: PIN(P1_5) FUNC6(SGPIO15). TMS_SWDIO_TXEN. */
522+ scu_pinmux (1 , 5 , PUP_DISABLE | SLEWRATE_FAST , FUNC6 );
523+ #else
509524 /* Configure I/O pins: function number, input buffer enabled, */
510525 /* no pull-up/down */
511526 scu_pinmux (1 , 17 , GPIO_NOPULL , FUNC0 ); /* SWCLK/TCK: GPIO0[12] */
512527 scu_pinmux (1 , 6 , GPIO_NOPULL , FUNC0 ); /* SWDIO/TMS: GPIO1[9] */
513528 scu_pinmux (1 , 5 , GPIO_NOPULL , FUNC0 ); /* SWDIO_OE: GPIO1[8] */
529+ #endif
514530}
515531
516532/** Reset Target Device with custom specific I/O pin or command sequence.
0 commit comments