aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKévin Redon <kredon@sysmocom.de>2020-03-26 01:47:43 +0100
committerEric Wild <ewild@sysmocom.de>2020-04-10 02:09:33 +0200
commit2d0d1e8cb3d1acff864fcdcb289be680945c045f (patch)
treea294eb64bd92efbc86a5282cb4e8e2921793a493
parentb0d789e09dccbc1122ed6d5d00a14eba591c72f0 (diff)
cardemu: different init for simtrace board which uses uart timers
-rw-r--r--firmware/libcommon/source/mode_cardemu.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/firmware/libcommon/source/mode_cardemu.c b/firmware/libcommon/source/mode_cardemu.c
index 1dbd2d3..c6c129d 100644
--- a/firmware/libcommon/source/mode_cardemu.c
+++ b/firmware/libcommon/source/mode_cardemu.c
@@ -429,7 +429,20 @@ void mode_cardemu_init(void)
/* configure USART as ISO-7816 slave (e.g. card) */
ISO7816_Init(&cardem_inst[0].usart_info, CLK_SLAVE);
+#ifdef BOARD_simtrace
+ /* simtrace board uses uart timeouts */
+
+ /* don't use receive timeout timer for now */
+ cardem_inst[0].usart_info.base->US_RTOR = 0;
+ /* enable interrupts to indicate when data has been received or timeout occurred */
+ USART_EnableIt(cardem_inst[0].usart_info.base, US_IER_RXRDY | US_IER_TIMEOUT);
+#else
+ /* enable interrupts to indicate when data has been received */
+ USART_EnableIt(cardem_inst[0].usart_info.base, US_IER_RXRDY );
+#endif
+ /* enable interrupt requests for the USART peripheral */
NVIC_EnableIRQ(USART1_IRQn);
+
PIO_ConfigureIt(&pin_usim1_rst, usim1_rst_irqhandler);
PIO_EnableIt(&pin_usim1_rst);