diff options
Diffstat (limited to 'arduino/variants/metro_nrf52840_express/variant.cpp')
-rwxr-xr-x | arduino/variants/metro_nrf52840_express/variant.cpp | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/arduino/variants/metro_nrf52840_express/variant.cpp b/arduino/variants/metro_nrf52840_express/variant.cpp new file mode 100755 index 0000000..0a55a27 --- /dev/null +++ b/arduino/variants/metro_nrf52840_express/variant.cpp @@ -0,0 +1,103 @@ +/* + Copyright (c) 2014-2015 Arduino LLC. All right reserved. + Copyright (c) 2016 Sandeep Mistry All right reserved. + Copyright (c) 2018, Adafruit Industries (adafruit.com) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include "variant.h" +#include "wiring_constants.h" +#include "wiring_digital.h" +#include "nrf.h" + +#include "usb.h" +#include "flash/flash_qspi.h" + +#define _PINNUM(port, pin) ((port)*32 + (pin)) + +const uint32_t g_ADigitalPinMap[] = +{ + _PINNUM(0, 25), // D0 is UART TX on P0.25 + _PINNUM(0, 24), // D1 is UART RX on P0.24 + _PINNUM(1, 10), // D2 is on P1.10 + _PINNUM(1, 4 ), // D3 on P1.04 + _PINNUM(1, 11), // D4 on P1.11 + _PINNUM(1, 12), // D5 on P1.12 + _PINNUM(1, 14), // D6 on P1.14 + _PINNUM(0, 26), // D7 on P0.26 + _PINNUM(0, 27), // D8 on P0.27 + _PINNUM(0, 12), // D9 on P0.12 + _PINNUM(0, 6 ), // D10 on P0.06 + _PINNUM(0, 8 ), // D11 on P0.08 + _PINNUM(1, 9 ), // D12 on P1.09 + _PINNUM(0, 14), // D13 on P0.14 + + _PINNUM(0, 4 ), // D14 is A0 on P0.04 + _PINNUM(0, 5 ), // D15 is A1 on P0.05 + _PINNUM(0, 28), // D16 is A2 on P0.28 + _PINNUM(0, 30), // D17 is A3 on P0.30 + _PINNUM(0, 2 ), // D18 is A4 on P0.02 + _PINNUM(0, 3 ), // D19 is A5 on P0.03 + _PINNUM(0, 29), // D20 is A6 (Battery) on P0.29 + _PINNUM(0, 31), // D21 is A7 (ARef) on P0.31 + + _PINNUM(0, 15), // D22 is SDA on P0.15 + _PINNUM(0, 16), // D23 is SCL on P0.16 + + _PINNUM(0, 11), // D24 is SPI MISO on P0.11 + _PINNUM(1, 8 ), // D25 is SPI MOSI on P1.08 + _PINNUM(0, 7 ), // D26 is SPI SCK on P0.07 + + _PINNUM(0, 19), // D27 is QSPI CLK on P0.19 + _PINNUM(0, 20), // D28 is QSPI CS on P0.20 + _PINNUM(0, 17), // D29 is QSPI Data 0 on P0.17 + _PINNUM(0, 23), // D30 is QSPI Data 1 on P0.23 + _PINNUM(0, 22), // D31 is QSPI Data 2 on P0.22 + _PINNUM(0, 21), // D32 is QSPI Data 3 on P0.21 + + _PINNUM(1, 13), // D33 is LED1 on P1.13 + _PINNUM(1, 15), // D34 is LED2 on P1.15 + _PINNUM(0, 13), // D35 is NeoPixel on P0.13 + _PINNUM(1, 2 ), // D36 is Switch on P1.02 + _PINNUM(1, 0 ), // D37 is SWO/DFU on P1.00 + _PINNUM(0, 9 ), // D38 is NFC1 on P0.09 + _PINNUM(0, 10), // D39 is NFC2 on P0.10 + + // Unused pin + 40, 41, 42, 43, 44, 45, 46, 47 +}; + + + +void initVariant() +{ + // LED1 & LED2 + pinMode(PIN_LED1, OUTPUT); + ledOff(PIN_LED1); + + pinMode(PIN_LED2, OUTPUT); + ledOff(PIN_LED2); + +#if 0 // disable QSPI flash for now + // Init External Flash + flash_qspi_init(); +#endif + + + // USB init + usb_init(); +} + |