aboutsummaryrefslogtreecommitdiffstats
path: root/arduino/variants/metro_nrf52840_express/variant.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'arduino/variants/metro_nrf52840_express/variant.cpp')
-rwxr-xr-xarduino/variants/metro_nrf52840_express/variant.cpp103
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();
+}
+