Allow NFC pins to be used for other purposes.

This commit is contained in:
Dan Halbert 2019-03-21 11:22:58 -04:00
parent 26262cd477
commit fe555a4098
3 changed files with 15 additions and 4 deletions

View File

@ -40,7 +40,3 @@
#define BOARD_FLASH_SIZE (FLASH_SIZE - 0x4000 - CIRCUITPY_INTERNAL_NVM_SIZE)
#define BOARD_HAS_CRYSTAL 1 // according to the schematic we do
// See https://github.com/adafruit/circuitpython/issues/1300, circuitpython
// doesn't yet support NFC so just force those pins to be GPIO.
#define CONFIG_NFCT_PINS_AS_GPIOS

View File

@ -168,5 +168,15 @@ bool common_hal_mcu_pin_is_free(const mcu_pin_obj_t *pin) {
}
#endif
#ifdef NRF52840
// If NFC pins are enabled for NFC, don't allow them to be used for GPIO.
if (((NRF_UICR->NFCPINS & UICR_NFCPINS_PROTECT_Msk) ==
(UICR_NFCPINS_PROTECT_NFC << UICR_NFCPINS_PROTECT_Pos)) &&
(pin->number == 9 || pin->number == 10)) {
return false;
}
#endif
return pin_number_is_free(pin->number);
}

View File

@ -27,3 +27,8 @@ CIRCUITPY_RTC = 0
# frequencyio not yet implemented
CIRCUITPY_FREQUENCYIO = 0
# CircuitPython doesn't yet support NFC so force the NFC antenna pins to be GPIO.
# See https://github.com/adafruit/circuitpython/issues/1300
# Defined here because system_nrf52840.c doesn't #include any of our own include files.
CFLAGS += -DCONFIG_NFCT_PINS_AS_GPIOS