diff options
author | Harald Welte <laforge@gnumonks.org> | 2017-05-11 16:51:57 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2017-05-20 14:46:57 +0100 |
commit | c47fc5febf54347e7696b9c512ceb1a6f30fe331 (patch) | |
tree | e1c9070a90246f3e6995eb5b695c70cd11df2510 | |
parent | 02d0ec6e08d9abb0fbdce0b44d865130aa963cb2 (diff) |
set local slot LED according to remote/local state.
The LED is illuminated as long as the slot is in local (physical SIM
card) mode.
-rw-r--r-- | firmware/libboard/common/source/sim_switch.c | 6 | ||||
-rw-r--r-- | firmware/libboard/qmod/include/board.h | 3 | ||||
-rw-r--r-- | firmware/libcommon/source/mode_cardemu.c | 3 |
3 files changed, 12 insertions, 0 deletions
diff --git a/firmware/libboard/common/source/sim_switch.c b/firmware/libboard/common/source/sim_switch.c index 8ed16ac..5e5c9cc 100644 --- a/firmware/libboard/common/source/sim_switch.c +++ b/firmware/libboard/common/source/sim_switch.c @@ -2,6 +2,7 @@ #include "board.h" #include "trace.h" +#include "led.h" #include "sim_switch.h" #ifdef PIN_SIM_SWITCH1 @@ -16,6 +17,7 @@ static int initialized = 0; int sim_switch_use_physical(unsigned int nr, int physical) { const Pin *pin; + enum led led; if (!initialized) { TRACE_ERROR("Somebody forgot to call sim_switch_init()\r\n"); @@ -29,11 +31,13 @@ int sim_switch_use_physical(unsigned int nr, int physical) #ifdef PIN_SIM_SWITCH1 case 0: pin = &pin_conn_usim1; + led = LED_USIM1; break; #endif #ifdef PIN_SIM_SWITCH2 case 1: pin = &pin_conn_usim2; + led = LED_USIM2; break; #endif default: @@ -44,9 +48,11 @@ int sim_switch_use_physical(unsigned int nr, int physical) if (physical) { TRACE_INFO("%u: Use local/physical SIM\r\n", nr); PIO_Clear(pin); + led_blink(led, BLINK_ALWAYS_ON); } else { TRACE_INFO("%u: Use remote/emulated SIM\r\n", nr); PIO_Set(pin); + led_blink(led, BLINK_ALWAYS_OFF); } return 0; diff --git a/firmware/libboard/qmod/include/board.h b/firmware/libboard/qmod/include/board.h index d49ff9d..b8af8d8 100644 --- a/firmware/libboard/qmod/include/board.h +++ b/firmware/libboard/qmod/include/board.h @@ -1,6 +1,9 @@ #pragma once #include "board_common.h" +#define LED_USIM1 LED_GREEN +#define LED_USIM2 LED_RED + /** Name of the board */ #define BOARD_NAME "QMOD" /** Board definition */ diff --git a/firmware/libcommon/source/mode_cardemu.c b/firmware/libcommon/source/mode_cardemu.c index 16fd224..17039e1 100644 --- a/firmware/libcommon/source/mode_cardemu.c +++ b/firmware/libcommon/source/mode_cardemu.c @@ -399,6 +399,7 @@ void mode_cardemu_init(void) PIO_EnableIt(&pin_usim1_vcc); #endif /* DETECT_VCC_BY_ADC */ cardem_inst[0].ch = card_emu_init(0, 2, 0, PHONE_DATAIN, PHONE_INT); + sim_switch_use_physical(0, 1); #ifdef CARDEMU_SECOND_UART INIT_LLIST_HEAD(&cardem_inst[1].usb_out_queue); @@ -413,7 +414,9 @@ void mode_cardemu_init(void) PIO_EnableIt(&pin_usim2_vcc); #endif /* DETECT_VCC_BY_ADC */ cardem_inst[1].ch = card_emu_init(1, 0, 1, CARDEM_USIM2_DATAIN, CARDEM_USIM2_INT); + sim_switch_use_physical(1, 1); #endif /* CARDEMU_SECOND_UART */ + } /* called if config is deactivated */ |