3bd303f204a59ed950934f5da4c299a8be33b363

Author
Joel Challis <git@zvecr.com>
Committer
GitHub <noreply@github.com>
Date

Message

Remove `arm_atsam` platform (#24337)

Diff

This diff is truncated to protect this page.

   1diff --git a/Doxyfile b/Doxyfile
   2index 42f2e70c0ec4f7399ca224d6dd1037112ce8e2a9..f8c60f5f84d6b8da5c8f2f05a7c8656d205ad641 100644
   3--- a/Doxyfile
   4+++ b/Doxyfile
   5@@ -145,7 +145,7 @@ FILE_PATTERNS          = *.c \
   6 RECURSIVE              = YES
   7 EXCLUDE                =
   8 EXCLUDE_SYMLINKS       = NO
   9-EXCLUDE_PATTERNS       = */protocol/arm_atsam/*
  10+EXCLUDE_PATTERNS       =
  11 EXCLUDE_SYMBOLS        =
  12 EXAMPLE_PATH           =
  13 EXAMPLE_PATTERNS       = *
  14diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk
  15index c1cdd5d8865fe7dccaf854c22d277b1f9d7a8bfd..2b1293088772ede35eadb7f8cf0b5dd38588e1e1 100644
  16--- a/builddefs/common_features.mk
  17+++ b/builddefs/common_features.mk
  18@@ -238,10 +238,6 @@ else
  19         OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_TRANSIENT
  20         SRC += eeprom_driver.c eeprom_transient.c
  21       endif
  22-    else ifeq ($(PLATFORM),ARM_ATSAM)
  23-      # arm_atsam EEPROM
  24-      OPT_DEFS += -DEEPROM_SAMD
  25-      SRC += eeprom_samd.c
  26     else ifeq ($(PLATFORM),TEST)
  27       # Test harness "EEPROM"
  28       OPT_DEFS += -DEEPROM_TEST_HARNESS
  29diff --git a/builddefs/common_rules.mk b/builddefs/common_rules.mk
  30index cc7d5a76d3ff6166d69a25e85a615d326244f447..e45063cfaf5a1a83055b62b919ebfefde5f5211d 100644
  31--- a/builddefs/common_rules.mk
  32+++ b/builddefs/common_rules.mk
  33@@ -58,10 +58,6 @@ endif
  34 #---------------- C Compiler Options ----------------
  35 
  36 ifeq ($(strip $(LTO_ENABLE)), yes)
  37-    ifeq ($(PLATFORM),ARM_ATSAM)
  38-        $(info Enabling LTO on arm_atsam-targeting boards is known to have a high likelihood of failure.)
  39-        $(info If unsure, set LTO_ENABLE = no.)
  40-    endif
  41     CDEFS += -flto
  42     CDEFS += -DLTO_ENABLE
  43 endif
  44diff --git a/docs/compatible_microcontrollers.md b/docs/compatible_microcontrollers.md
  45index 785aee30d5cce1cdc4bd42eadea62d7269bd5a7e..e2d27e06f2f1de281fd38a72ff1b15063f498f4b 100644
  46--- a/docs/compatible_microcontrollers.md
  47+++ b/docs/compatible_microcontrollers.md
  48@@ -75,10 +75,6 @@ You can also use any ARM chip with USB that [ChibiOS](https://www.chibios.org) s
  49 
  50 For a detailed overview about the RP2040 support by QMK see the [dedicated RP2040 page](platformdev_rp2040).
  51 
  52-## Atmel ATSAM
  53-
  54diff --git a/docs/drivers/gpio.md b/docs/drivers/gpio.md
  55index 9ce4f2aa20c1a2ed502fbae96286e8f72b600c62..b21a17bc39aa1619a8494463e4342fd5adb61a4c 100644
  56--- a/docs/drivers/gpio.md
  57+++ b/docs/drivers/gpio.md
  58@@ -13,7 +13,7 @@ The following macros provide basic control of GPIOs and are found in `platforms/
  59 |`gpio_set_pin_input_low(pin)`        |Set pin as input with builtin pull-down resistor (unavailable on AVR)|
  60 |`gpio_set_pin_output(pin)`           |Set pin as output (alias of `gpio_set_pin_output_push_pull`)         |
  61 |`gpio_set_pin_output_push_pull(pin)` |Set pin as output, push/pull mode                                    |
  62-|`gpio_set_pin_output_open_drain(pin)`|Set pin as output, open-drain mode (unavailable on AVR and ATSAM)    |
  63+|`gpio_set_pin_output_open_drain(pin)`|Set pin as output, open-drain mode (unavailable on AVR)              |
  64 |`gpio_write_pin_high(pin)`           |Set pin level as high, assuming it is an output                      |
  65 |`gpio_write_pin_low(pin)`            |Set pin level as low, assuming it is an output                       |
  66 |`gpio_write_pin(pin, level)`         |Set pin level, assuming it is an output                              |
  67diff --git a/keyboards/massdrop/alt/alt.c b/keyboards/massdrop/alt/alt.c
  68deleted file mode 100644
  69index c3ed246a4fbd69941c2e19cd97d3847942502c4e..0000000000000000000000000000000000000000
  70--- a/keyboards/massdrop/alt/alt.c
  71+++ /dev/null
  72@@ -1,21 +0,0 @@
  73-/*
  74-Copyright 2021 Massdrop Inc.
  75-
  76-This program is free software: you can redistribute it and/or modify
  77-it under the terms of the GNU General Public License as published by
  78-the Free Software Foundation, either version 2 of the License, or
  79-(at your option) any later version.
  80-
  81-This program is distributed in the hope that it will be useful,
  82-but WITHOUT ANY WARRANTY; without even the implied warranty of
  83-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  84-GNU General Public License for more details.
  85-
  86-You should have received a copy of the GNU General Public License
  87-along with this program.  If not, see <http://www.gnu.org/licenses/>.
  88-*/
  89-#include "alt.h"
  90-
  91-/* Temporary solution for matrix delay */
  92-void matrix_output_select_delay(void) { matrix_io_delay(); }
  93-void matrix_output_unselect_delay(uint8_t line, bool key_pressed) {}
  94diff --git a/keyboards/massdrop/alt/alt.h b/keyboards/massdrop/alt/alt.h
  95deleted file mode 100644
  96index 9fc6eac15eda6dbf4149ff6234fcba733dff5708..0000000000000000000000000000000000000000
  97--- a/keyboards/massdrop/alt/alt.h
  98+++ /dev/null
  99@@ -1,20 +0,0 @@
 100-#pragma once
 101-
 102-#include "quantum.h"
 103-#include "config_led.h"
 104-#include "matrix.h"
 105-
 106-#include "i2c_master.h"
 107-#include "md_rgb_matrix.h" //For led keycodes
 108-#include "usb/udi_cdc.h"
 109-#include "usb/usb_hub.h"
 110-
 111-#define TOGGLE_FLAG_AND_PRINT(var, name) { \
 112-        if (var) { \
 113-            dprintf(name " disabled\r\n"); \
 114-            var = !var; \
 115-        } else { \
 116-            var = !var; \
 117-            dprintf(name " enabled\r\n"); \
 118-        } \
 119-    }
 120diff --git a/keyboards/massdrop/alt/config.h b/keyboards/massdrop/alt/config.h
 121deleted file mode 100644
 122index 33991d4c8fa1f66cb5f6a579a88632a1696b7f8c..0000000000000000000000000000000000000000
 123--- a/keyboards/massdrop/alt/config.h
 124+++ /dev/null
 125@@ -1,154 +0,0 @@
 126-/*
 127-Copyright 2015 Jun Wako <wakojun@gmail.com>
 128-
 129-This program is free software: you can redistribute it and/or modify
 130-it under the terms of the GNU General Public License as published by
 131-the Free Software Foundation, either version 2 of the License, or
 132-(at your option) any later version.
 133-
 134-This program is distributed in the hope that it will be useful,
 135-but WITHOUT ANY WARRANTY; without even the implied warranty of
 136-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 137-GNU General Public License for more details.
 138-
 139-You should have received a copy of the GNU General Public License
 140-along with this program.  If not, see <http://www.gnu.org/licenses/>.
 141-*/
 142-
 143-#pragma once
 144-
 145-
 146-/* USB Device descriptor parameter */
 147-#define SERIAL_NUM          "Unavailable"
 148-
 149-/* Temporary solution for matrix delay */
 150-#define IGNORE_ATOMIC_BLOCK
 151-
 152-/* Avoid out-of-bounds errors when SmartEEPROM is not enabled */
 153-#define EEPROM_SIZE 1024
 154-
 155-/* MCU Port name definitions */
 156-#define PA 0
 157-#define PB 1
 158-
 159-/* This Shift Register expands available hardware output lines to control additional peripherals */
 160-/* It uses four lines from the MCU to provide 16 output lines */
 161-/* Shift Register Clock configuration (MCU to ShiftRegister.RCLK) */
 162-#define SR_EXP_RCLK_PIN          B14
 163-/* Shift Register Output Enable configuration (MCU to ShiftRegister.OE_N) */
 164-#define SR_EXP_OE_PIN            B15
 165-/* SERCOM port to use for Shift Register SPI */
 166-/* DATAOUT and SCLK must be configured to use hardware pins of this port */
 167-#define SPI_SERCOM               SERCOM2
 168-/* Shift Register SPI Data Out configuration (MCU.SERCOMx.PAD[0] to ShiftRegister.SER) */
 169-#define SPI_DATAOUT_PIN          A12
 170-#define SPI_DATAOUT_MUX          2
 171-/* Shift Register SPI Serial Clock configuration (MCU.SERCOMx.PAD[1] to ShiftRegister.SRCLK) */
 172-#define SPI_SCLK_PIN             A13
 173-#define SPI_SCLK_MUX             2
 174-
 175-/* Debug LED (Small LED Located near MCU) */
 176-#define DEBUG_LED_ENABLE            1
 177-#define DEBUG_LED_PORT              PA
 178-#define DEBUG_LED_PIN               27
 179-
 180-/* Additional debugging ports */
 181-/* PCB M21 */
 182-#define DEBUG_PORT1_ENABLE          1
 183-#define DEBUG_PORT1_PORT            PB
 184-#define DEBUG_PORT1_PIN             3
 185-/* PCB M23 */
 186-#define DEBUG_PORT2_ENABLE          1
 187-#define DEBUG_PORT2_PORT            PB
 188-#define DEBUG_PORT2_PIN             17
 189-/* PCB M25 */
 190-#define DEBUG_PORT3_ENABLE          1
 191-#define DEBUG_PORT3_PORT            PA
 192-#define DEBUG_PORT3_PIN             20
 193-
 194-/* Debug Boot Tracing - During boot sequence, ground this pin to halt and display debug code using Debug LED */
 195-/* This is useful in determining which hardware device may have malfunctioned or is improperly configured */
 196-/* Feature is automatically disabled after successful boot */
 197-/* PCB M27 */
 198-#define DEBUG_BOOT_TRACING_ENABLE   1
 199-#define DEBUG_BOOT_TRACING_PORT     PB
 200-#define DEBUG_BOOT_TRACING_PIN      23
 201-
 202-/* USB2422 config */
 203-#define USB2422_ADDRESS 0x58
 204-#define USB2422_VENDOR_ID 0x04D8
 205-#define USB2422_PRODUCT_ID 0xEEC5
 206-#define USB2422_DEVICE_VER 0x0101
 207-#define USB2422_MANUFACTURER "Massdrop Inc."
 208-#define USB2422_PRODUCT "Massdrop Hub"
 209-#define USB2422_ACTIVE_PIN A18
 210-
 211-/*
 212- * Feature disable options
 213- *  These options are also useful to firmware size reduction.
 214- */
 215-
 216-/* disable debug print */
 217-//#define NO_DEBUG
 218-
 219-/* disable print */
 220-//#define NO_PRINT
 221-
 222-/* disable action features */
 223-//#define NO_ACTION_LAYER
 224-//#define NO_ACTION_TAPPING
 225diff --git a/keyboards/massdrop/alt/config_led.c b/keyboards/massdrop/alt/config_led.c
 226deleted file mode 100644
 227index 963282db1eed812cffea6f90b1a0533b66595dde..0000000000000000000000000000000000000000
 228--- a/keyboards/massdrop/alt/config_led.c
 229+++ /dev/null
 230@@ -1,62 +0,0 @@
 231-#ifdef RGB_MATRIX_ENABLE
 232-#include "alt.h"
 233-
 234-#include "md_rgb_matrix.h"
 235-#include "rgb_matrix.h"
 236-#include "config_led.h"
 237-
 238-// This table can be almost-automatically derived from ISSI3733_LED_MAP that is
 239-// defined in config_led.h
 240-
 241-// You can calculate the (0-244, 0-64) x/y values from the x/y values defined in
 242-// ISSI3733_LED_MAP with the following formula:
 243-//   uint8_t rgb_x = ((ISSI3733_LED_MAP[i].x - MIN_X) / (MAX_X - MIN_X)) * 224;
 244-//   uint8_t rgb_y = ((ISSI3733_LED_MAP[i].y - MIN_Y) / (MAX_Y - MIN_Y)) * 64;
 245-// Where the min/max vars are the minimum and maximum "bounds" of x/y values
 246-// present in ISSI3733_LED_MAP
 247-//
 248-// The row/col values need to be manually tweaked though, compensating for the
 249-// "empty" cells that are a product of larger keys
 250-//
 251-// There is a quick-and-dirty implementation of this under ledvis.html
 252-
 253-led_config_t g_led_config = { {
 254-    {   0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14 },
 255-    {  15,  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29 },
 256-    {  30,  31,  32,  33,  34,  35,  36,  37,  38,  39,  40,  41, NO_LED,  42,  43 },
 257-    {  44, NO_LED,  45,  46,  47,  48,  49,  50,  51,  52,  53,  54,  55,  56,  57 },
 258-    {  58,  59,  60, NO_LED, NO_LED, NO_LED,  61, NO_LED, NO_LED, NO_LED,  62,  63,  64,  65,  66 }
 259-}, {
 260-    {   8,  56 }, {  22,  56 }, {  35,  56 }, {  49,  56 }, {  63,  56 }, {  77,  56 }, {  91,  56 }, { 105,  56 }, { 118,  56 }, { 132,  56 }, { 146,  56 }, { 160,  56 }, { 174,  56 }, { 195,  56 }, { 215,  56 },
 261-    {  11,  44 }, {  28,  44 }, {  42,  44 }, {  56,  44 }, {  70,  44 }, {  84,  44 }, {  98,  44 }, { 112,  44 }, { 125,  44 }, { 139,  44 }, { 153,  44 }, { 167,  44 }, { 181,  44 }, { 198,  44 }, { 215,  44 },
 262-    {  13,  32 }, {  32,  32 }, {  46,  32 }, {  60,  32 }, {  73,  32 }, {  87,  32 }, { 101,  32 }, { 115,  32 }, { 129,  32 }, { 143,  32 }, { 156,  32 }, { 170,  32 }, { 193,  32 }, { 215,  32 }, {  16,  19 },
 263-    {  39,  19 }, {  53,  19 }, {  67,  19 }, {  80,  19 }, {  94,  19 }, { 108,  19 }, { 122,  19 }, { 136,  19 }, { 150,  19 }, { 163,  19 }, { 182,  19 }, { 201,  19 }, { 215,  19 }, {   9,   7 }, {  27,   7 },
 264-    {  44,   7 }, {  96,   7 }, { 148,   7 }, { 165,   7 }, { 188,   7 }, { 201,   7 }, { 215,   7 },
 265-  // Underglow LEDs
 266-    {   1,   1 }, {  15,   0 }, {  31,   0 }, {  47,   0 }, {  63,   0 }, {  79,   0 }, {  95,   0 }, { 112,   0 }, { 128,   0 }, { 144,   0 }, { 160,   0 }, { 176,   0 }, { 192,   0 }, { 208,   0 }, { 222,   1 },
 267-    { 224,  13 }, { 224,  25 }, { 224,  38 }, { 224,  50 }, { 222,  62 }, { 191,  64 }, { 179,  64 }, { 167,  64 }, { 153,  64 }, { 139,  64 }, { 125,  64 }, { 112,  64 }, {  98,  64 }, {  84,  64 }, {  70,  64 },
 268-    {  56,  64 }, {  42,  64 }, {  28,  64 }, {   1,  62 }, {   0,  50 }, {   0,  38 }, {   0,  25 }, {   0,  13 }
 269-}, {
 270-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
 271-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
 272-    9, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
 273-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
 274-    1, 1, 1, 4, 1, 1, 1, 1, 1,
 275-  // Underglow LEDs
 276-    2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
 277-    2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
 278-    2, 2, 2, 2, 2, 2, 2, 2
 279-} };
 280-
 281-
 282-#ifdef USB_LED_INDICATOR_ENABLE
 283-bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) {
 284-    if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) {
 285-        return false;
 286-    }
 287-    md_rgb_matrix_indicators_advanced(led_min, led_max);
 288-    return true;
 289-}
 290-#endif // USB_LED_INDICATOR_ENABLE
 291-
 292-#endif
 293diff --git a/keyboards/massdrop/alt/config_led.h b/keyboards/massdrop/alt/config_led.h
 294deleted file mode 100644
 295index 770a430d3c8fa795270cc0712f0d4bf54baa55d6..0000000000000000000000000000000000000000
 296--- a/keyboards/massdrop/alt/config_led.h
 297+++ /dev/null
 298@@ -1,178 +0,0 @@
 299-/*
 300-Copyright 2018 Massdrop Inc.
 301-
 302-This program is free software: you can redistribute it and/or modify
 303-it under the terms of the GNU General Public License as published by
 304-the Free Software Foundation, either version 2 of the License, or
 305-(at your option) any later version.
 306-
 307-This program is distributed in the hope that it will be useful,
 308-but WITHOUT ANY WARRANTY; without even the implied warranty of
 309-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 310-GNU General Public License for more details.
 311-
 312-You should have received a copy of the GNU General Public License
 313-along with this program.  If not, see <http://www.gnu.org/licenses/>.
 314-*/
 315-
 316-#pragma once
 317-
 318-//Define number of ISSI3733 drivers being used (1...16)
 319-#define ISSI3733_DRIVER_COUNT 2
 320-#define RGB_MATRIX_LED_COUNT ISSI3733_LED_COUNT
 321-
 322-//Hardware address of each driver (Refer to ISSI3733 pdf "Table 1 Slave Address" and keyboard schematic)
 323-#define ISSI3773_DRIVER_ADDRESSES { 0xA0, 0xBE }
 324-
 325-//LED I2C bus speed
 326-#define I2C_HZ 580000
 327-
 328-//Count of LED bodies
 329-#define ISSI3733_LED_COUNT 105
 330-
 331-#define LED_GCR_MAX                 165         //Max GCR value (0 - 255) WARNING: Raising this value may overload the LED drivers and USB bus
 332-#define LED_GCR_STEP                10          //GCR increment/decrement value
 333-
 334-#ifdef USE_MASSDROP_CONFIGURATOR
 335-#define ANIMATION_SPEED_STEP        1
 336-
 337-#define BREATHE_STEP                1
 338-#define BREATHE_MIN_STEP            0
 339-#define BREATHE_MAX_STEP            255
 340-#endif
 341-
 342-//Default Global Current Register value (Default brightness 0 - 255)
 343-#define ISSI3733_GCR_DEFAULT LED_GCR_MAX
 344-
 345-//Automatic power rollback and recovery
 346-#define V5_HIGH                     2540        //5V high level (After low power detect, point at which LEDs are allowed to use more power )
 347-#define V5_LOW                      2480        //5V low level (LED power rolled back to stay above this limit)
 348-#define V5_CAT                      2200        //5V catastrophic level (Host USB port potential to shut down)
 349-
 350-//LED Mapping - More practically generated from a spreadsheet program
 351-//id: ID of the LED (Sync with PCB callouts)
 352-//x: Physical X coordinate of LED (units do not matter)
 353-//y: Physical Y coordinate of LED (units do not matter)
 354-//drv: 1-Based index of ISSI3773_DRIVER_ADDRESSES
 355-//cs: Matrix wiring CS col (1-16)
 356-//swr: Matrix wiring SW Red row (1-12)
 357-//swg: Matrix wiring SW Green row (1-12)
 358-//swb: Matrix wiring SW Blue row (1-12)
 359-//scan: Associated key matrix scancode (set 255 if none or 254 for LED to turn off in alternating mode)
 360-//Note: Origin 0,0 may be located anywhere as the software will do the final layout
 361-#define ISSI3733_LED_MAP { \
 362- { .id = 1, .x = 0, .y = 0, .adr = { .drv = 2, .cs = 2, .swr = 2, .swg = 1, .swb = 3 }, .scan = 0 }, \
 363- { .id = 2, .x = 0.75, .y = 0, .adr = { .drv = 2, .cs = 3, .swr = 5, .swg = 4, .swb = 6 }, .scan = 1 }, \
 364- { .id = 3, .x = 1.5, .y = 0, .adr = { .drv = 2, .cs = 4, .swr = 5, .swg = 4, .swb = 6 }, .scan = 2 }, \
 365- { .id = 4, .x = 2.25, .y = 0, .adr = { .drv = 2, .cs = 5, .swr = 5, .swg = 4, .swb = 6 }, .scan = 3 }, \
 366- { .id = 5, .x = 3, .y = 0, .adr = { .drv = 2, .cs = 6, .swr = 5, .swg = 4, .swb = 6 }, .scan = 4 }, \
 367- { .id = 6, .x = 3.75, .y = 0, .adr = { .drv = 2, .cs = 7, .swr = 5, .swg = 4, .swb = 6 }, .scan = 5 }, \
 368- { .id = 7, .x = 4.5, .y = 0, .adr = { .drv = 2, .cs = 8, .swr = 5, .swg = 4, .swb = 6 }, .scan = 6 }, \
 369- { .id = 8, .x = 5.25, .y = 0, .adr = { .drv = 2, .cs = 13, .swr = 2, .swg = 1, .swb = 3 }, .scan = 7 }, \
 370- { .id = 9, .x = 6, .y = 0, .adr = { .drv = 1, .cs = 1, .swr = 5, .swg = 4, .swb = 6 }, .scan = 8 }, \
 371- { .id = 10, .x = 6.75, .y = 0, .adr = { .drv = 1, .cs = 2, .swr = 5, .swg = 4, .swb = 6 }, .scan = 9 }, \
 372- { .id = 11, .x = 7.5, .y = 0, .adr = { .drv = 1, .cs = 3, .swr = 5, .swg = 4, .swb = 6 }, .scan = 10 }, \
 373- { .id = 12, .x = 8.25, .y = 0, .adr = { .drv = 1, .cs = 4, .swr = 5, .swg = 4, .swb = 6 }, .scan = 11 }, \
 374- { .id = 13, .x = 9, .y = 0, .adr = { .drv = 1, .cs = 5, .swr = 5, .swg = 4, .swb = 6 }, .scan = 12 }, \
 375- { .id = 14, .x = 10.125, .y = 0, .adr = { .drv = 1, .cs = 6, .swr = 5, .swg = 4, .swb = 6 }, .scan = 13 }, \
 376- { .id = 15, .x = 11.25, .y = 0, .adr = { .drv = 1, .cs = 7, .swr = 2, .swg = 1, .swb = 3 }, .scan = 14 }, \
 377- { .id = 16, .x = 0.188, .y = -0.75, .adr = { .drv = 2, .cs = 2, .swr = 5, .swg = 4, .swb = 6 }, .scan = 15 }, \
 378- { .id = 17, .x = 1.125, .y = -0.75, .adr = { .drv = 2, .cs = 3, .swr = 8, .swg = 7, .swb = 9 }, .scan = 16 }, \
 379- { .id = 18, .x = 1.875, .y = -0.75, .adr = { .drv = 2, .cs = 4, .swr = 8, .swg = 7, .swb = 9 }, .scan = 17 }, \
 380- { .id = 19, .x = 2.625, .y = -0.75, .adr = { .drv = 2, .cs = 5, .swr = 8, .swg = 7, .swb = 9 }, .scan = 18 }, \
 381- { .id = 20, .x = 3.375, .y = -0.75, .adr = { .drv = 2, .cs = 6, .swr = 8, .swg = 7, .swb = 9 }, .scan = 19 }, \
 382- { .id = 21, .x = 4.125, .y = -0.75, .adr = { .drv = 2, .cs = 7, .swr = 8, .swg = 7, .swb = 9 }, .scan = 20 }, \
 383- { .id = 22, .x = 4.875, .y = -0.75, .adr = { .drv = 2, .cs = 8, .swr = 8, .swg = 7, .swb = 9 }, .scan = 21 }, \
 384- { .id = 23, .x = 5.625, .y = -0.75, .adr = { .drv = 1, .cs = 1, .swr = 8, .swg = 7, .swb = 9 }, .scan = 22 }, \
 385- { .id = 24, .x = 6.375, .y = -0.75, .adr = { .drv = 1, .cs = 2, .swr = 8, .swg = 7, .swb = 9 }, .scan = 23 }, \
 386- { .id = 25, .x = 7.125, .y = -0.75, .adr = { .drv = 1, .cs = 3, .swr = 8, .swg = 7, .swb = 9 }, .scan = 24 }, \
 387- { .id = 26, .x = 7.875, .y = -0.75, .adr = { .drv = 1, .cs = 4, .swr = 8, .swg = 7, .swb = 9 }, .scan = 25 }, \
 388- { .id = 27, .x = 8.625, .y = -0.75, .adr = { .drv = 1, .cs = 5, .swr = 8, .swg = 7, .swb = 9 }, .scan = 26 }, \
 389- { .id = 28, .x = 9.375, .y = -0.75, .adr = { .drv = 1, .cs = 11, .swr = 11, .swg = 10, .swb = 12 }, .scan = 27 }, \
 390- { .id = 29, .x = 10.313, .y = -0.75, .adr = { .drv = 1, .cs = 6, .swr = 8, .swg = 7, .swb = 9 }, .scan = 28 }, \
 391- { .id = 30, .x = 11.25, .y = -0.75, .adr = { .drv = 1, .cs = 7, .swr = 5, .swg = 4, .swb = 6 }, .scan = 29 }, \
 392- { .id = 31, .x = 0.281, .y = -1.5, .adr = { .drv = 2, .cs = 2, .swr = 8, .swg = 7, .swb = 9 }, .scan = 30 }, \
 393- { .id = 32, .x = 1.313, .y = -1.5, .adr = { .drv = 2, .cs = 3, .swr = 11, .swg = 10, .swb = 12 }, .scan = 31 }, \
 394- { .id = 33, .x = 2.063, .y = -1.5, .adr = { .drv = 2, .cs = 4, .swr = 11, .swg = 10, .swb = 12 }, .scan = 32 }, \
 395- { .id = 34, .x = 2.813, .y = -1.5, .adr = { .drv = 2, .cs = 5, .swr = 11, .swg = 10, .swb = 12 }, .scan = 33 }, \
 396- { .id = 35, .x = 3.563, .y = -1.5, .adr = { .drv = 2, .cs = 6, .swr = 11, .swg = 10, .swb = 12 }, .scan = 34 }, \
 397- { .id = 36, .x = 4.313, .y = -1.5, .adr = { .drv = 2, .cs = 7, .swr = 11, .swg = 10, .swb = 12 }, .scan = 35 }, \
 398diff --git a/keyboards/massdrop/alt/keyboard.json b/keyboards/massdrop/alt/keyboard.json
 399deleted file mode 100644
 400index 7598a43b7dd5acd419c0e4fee6ced1c3d3f55458..0000000000000000000000000000000000000000
 401--- a/keyboards/massdrop/alt/keyboard.json
 402+++ /dev/null
 403@@ -1,107 +0,0 @@
 404-{
 405-    "keyboard_name": "ALT Keyboard",
 406-    "manufacturer": "Massdrop Inc.",
 407-    "url": "https://www.massdrop.com/buy/massdrop-alt-mechanical-keyboard",
 408-    "maintainer": "Massdrop",
 409-    "usb": {
 410-        "vid": "0x04D8",
 411-        "pid": "0xEED3",
 412-        "device_version": "1.0.1"
 413-    },
 414-    "rgb_matrix": {
 415-        "driver": "custom"
 416-    },
 417-    "matrix_pins": {
 418-        "cols": ["B04", "B05", "B06", "B07", "B08", "B09", "B10", "B11", "B12", "B13", "A05", "A06", "A07", "A10", "A11"],
 419-        "rows": ["A00", "A01", "A02", "A03", "A04"]
 420-    },
 421-    "diode_direction": "COL2ROW",
 422-    "community_layouts": ["65_ansi_blocker"],
 423-    "features": {
 424-        "bootmagic": false,
 425-        "mousekey": false,
 426-        "extrakey": true,
 427-        "nkro": true,
 428-        "rgb_matrix": true
 429-    },
 430-    "layout_aliases": {
 431-        "LAYOUT": "LAYOUT_65_ansi_blocker"
 432-    },
 433-    "layouts": {
 434-        "LAYOUT_65_ansi_blocker": {
 435-            "layout": [
 436-                {"matrix": [0, 0], "x": 0, "y": 0},
 437-                {"matrix": [0, 1], "x": 1, "y": 0},
 438-                {"matrix": [0, 2], "x": 2, "y": 0},
 439-                {"matrix": [0, 3], "x": 3, "y": 0},
 440-                {"matrix": [0, 4], "x": 4, "y": 0},
 441-                {"matrix": [0, 5], "x": 5, "y": 0},
 442-                {"matrix": [0, 6], "x": 6, "y": 0},
 443-                {"matrix": [0, 7], "x": 7, "y": 0},
 444-                {"matrix": [0, 8], "x": 8, "y": 0},
 445-                {"matrix": [0, 9], "x": 9, "y": 0},
 446-                {"matrix": [0, 10], "x": 10, "y": 0},
 447-                {"matrix": [0, 11], "x": 11, "y": 0},
 448-                {"matrix": [0, 12], "x": 12, "y": 0},
 449-                {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
 450-                {"matrix": [0, 14], "x": 15, "y": 0},
 451-
 452-                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
 453-                {"matrix": [1, 1], "x": 1.5, "y": 1},
 454-                {"matrix": [1, 2], "x": 2.5, "y": 1},
 455-                {"matrix": [1, 3], "x": 3.5, "y": 1},
 456-                {"matrix": [1, 4], "x": 4.5, "y": 1},
 457-                {"matrix": [1, 5], "x": 5.5, "y": 1},
 458-                {"matrix": [1, 6], "x": 6.5, "y": 1},
 459-                {"matrix": [1, 7], "x": 7.5, "y": 1},
 460-                {"matrix": [1, 8], "x": 8.5, "y": 1},
 461-                {"matrix": [1, 9], "x": 9.5, "y": 1},
 462-                {"matrix": [1, 10], "x": 10.5, "y": 1},
 463-                {"matrix": [1, 11], "x": 11.5, "y": 1},
 464-                {"matrix": [1, 12], "x": 12.5, "y": 1},
 465-                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
 466-                {"matrix": [1, 14], "x": 15, "y": 1},
 467-
 468-                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
 469-                {"matrix": [2, 1], "x": 1.75, "y": 2},
 470-                {"matrix": [2, 2], "x": 2.75, "y": 2},
 471-                {"matrix": [2, 3], "x": 3.75, "y": 2},
 472-                {"matrix": [2, 4], "x": 4.75, "y": 2},
 473-                {"matrix": [2, 5], "x": 5.75, "y": 2},
 474-                {"matrix": [2, 6], "x": 6.75, "y": 2},
 475-                {"matrix": [2, 7], "x": 7.75, "y": 2},
 476-                {"matrix": [2, 8], "x": 8.75, "y": 2},
 477-                {"matrix": [2, 9], "x": 9.75, "y": 2},
 478-                {"matrix": [2, 10], "x": 10.75, "y": 2},
 479-                {"matrix": [2, 11], "x": 11.75, "y": 2},
 480-                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
 481-                {"matrix": [2, 14], "x": 15, "y": 2},
 482-
 483-                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
 484-                {"matrix": [3, 2], "x": 2.25, "y": 3},
 485-                {"matrix": [3, 3], "x": 3.25, "y": 3},
 486-                {"matrix": [3, 4], "x": 4.25, "y": 3},
 487-                {"matrix": [3, 5], "x": 5.25, "y": 3},
 488-                {"matrix": [3, 6], "x": 6.25, "y": 3},
 489-                {"matrix": [3, 7], "x": 7.25, "y": 3},
 490-                {"matrix": [3, 8], "x": 8.25, "y": 3},
 491-                {"matrix": [3, 9], "x": 9.25, "y": 3},
 492-                {"matrix": [3, 10], "x": 10.25, "y": 3},
 493-                {"matrix": [3, 11], "x": 11.25, "y": 3},
 494-                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
 495-                {"matrix": [3, 13], "x": 14, "y": 3},
 496-                {"matrix": [3, 14], "x": 15, "y": 3},
 497-
 498-                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
 499-                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
 500-                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
 501-                {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
 502-                {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
 503diff --git a/keyboards/massdrop/alt/keymaps/default/keymap.c b/keyboards/massdrop/alt/keymaps/default/keymap.c
 504deleted file mode 100644
 505index 91882e04da02ddb58dfda0e570e4620d43fcaf23..0000000000000000000000000000000000000000
 506--- a/keyboards/massdrop/alt/keymaps/default/keymap.c
 507+++ /dev/null
 508@@ -1,115 +0,0 @@
 509-#include QMK_KEYBOARD_H
 510-
 511-enum alt_keycodes {
 512-    U_T_AUTO = SAFE_RANGE, //USB Extra Port Toggle Auto Detect / Always Active
 513-    U_T_AGCR,              //USB Toggle Automatic GCR control
 514-    DBG_TOG,               //DEBUG Toggle On / Off
 515-    DBG_MTRX,              //DEBUG Toggle Matrix Prints
 516-    DBG_KBD,               //DEBUG Toggle Keyboard Prints
 517-    DBG_MOU,               //DEBUG Toggle Mouse Prints
 518-    MD_BOOT,               //Restart into bootloader after hold timeout
 519-};
 520-
 521-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 522-    [0] = LAYOUT_65_ansi_blocker(
 523-        KC_ESC,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS, KC_EQL,  KC_BSPC, KC_DEL,
 524-        KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_LBRC, KC_RBRC, KC_BSLS, KC_HOME,
 525-        KC_CAPS, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT,          KC_ENT,  KC_PGUP,
 526-        KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT,          KC_UP,   KC_PGDN,
 527-        KC_LCTL, KC_LGUI, KC_LALT,                            KC_SPC,                             KC_RALT, MO(1),   KC_LEFT, KC_DOWN, KC_RGHT
 528-    ),
 529-    [1] = LAYOUT_65_ansi_blocker(
 530-        KC_GRV,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  _______, KC_MUTE,
 531-        _______, RGB_SPD, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, U_T_AUTO,U_T_AGCR,_______, KC_PSCR, KC_SCRL, KC_PAUS, _______, KC_END,
 532-        _______, RGB_RMOD,RGB_VAD, RGB_MOD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______,          _______, KC_VOLU,
 533-        _______, RGB_TOG, _______, _______, _______, MD_BOOT, NK_TOGG, DBG_TOG, _______, _______, _______, _______,          KC_PGUP, KC_VOLD,
 534-        _______, _______, _______,                            _______,                            _______, _______, KC_HOME, KC_PGDN, KC_END
 535-    ),
 536-    /*
 537-    [X] = LAYOUT(
 538-        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 539-        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 540-        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______, _______,
 541-        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______, _______,
 542-        _______, _______, _______,                            _______,                            _______, _______, _______, _______, _______
 543-    ),
 544-    */
 545-};
 546-
 547-#define MODS_SHIFT  (get_mods() & MOD_BIT(KC_LSFT) || get_mods() & MOD_BIT(KC_RSFT))
 548-#define MODS_CTRL  (get_mods() & MOD_BIT(KC_LCTL) || get_mods() & MOD_BIT(KC_RCTL))
 549-#define MODS_ALT  (get_mods() & MOD_BIT(KC_LALT) || get_mods() & MOD_BIT(KC_RALT))
 550-
 551-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 552-    static uint32_t key_timer;
 553-
 554-    switch (keycode) {
 555-        case U_T_AUTO:
 556-            if (record->event.pressed && MODS_SHIFT && MODS_CTRL) {
 557-                TOGGLE_FLAG_AND_PRINT(usb_extra_manual, "USB extra port manual mode");
 558-            }
 559-            return false;
 560-        case U_T_AGCR:
 561-            if (record->event.pressed && MODS_SHIFT && MODS_CTRL) {
 562-                TOGGLE_FLAG_AND_PRINT(usb_gcr_auto, "USB GCR auto mode");
 563-            }
 564-            return false;
 565-        case DBG_TOG:
 566-            if (record->event.pressed) {
 567-                TOGGLE_FLAG_AND_PRINT(debug_enable, "Debug mode");
 568-            }
 569-            return false;
 570-        case DBG_MTRX:
 571-            if (record->event.pressed) {
 572-                TOGGLE_FLAG_AND_PRINT(debug_matrix, "Debug matrix");
 573-            }
 574-            return false;
 575-        case DBG_KBD:
 576-            if (record->event.pressed) {
 577-                TOGGLE_FLAG_AND_PRINT(debug_keyboard, "Debug keyboard");
 578-            }
 579-            return false;
 580-        case DBG_MOU:
 581-            if (record->event.pressed) {
 582-                TOGGLE_FLAG_AND_PRINT(debug_mouse, "Debug mouse");
 583-            }
 584-            return false;
 585-        case MD_BOOT:
 586-            if (record->event.pressed) {
 587-                key_timer = timer_read32();
 588-            } else {
 589-                if (timer_elapsed32(key_timer) >= 500) {
 590-                    reset_keyboard();
 591-                }
 592-            }
 593-            return false;
 594-        case RGB_TOG:
 595-            if (record->event.pressed) {
 596-              switch (rgb_matrix_get_flags()) {
 597-                case LED_FLAG_ALL: {
 598-                    rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR);
 599-                    rgb_matrix_set_color_all(0, 0, 0);
 600-                  }
 601-                  break;
 602-                case (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR): {
 603-                    rgb_matrix_set_flags(LED_FLAG_UNDERGLOW);
 604-                    rgb_matrix_set_color_all(0, 0, 0);
 605-                  }
 606-                  break;
 607-                case LED_FLAG_UNDERGLOW: {
 608diff --git a/keyboards/massdrop/alt/keymaps/default_md/keymap.c b/keyboards/massdrop/alt/keymaps/default_md/keymap.c
 609deleted file mode 100644
 610index 2c468ff9186d47ea03ad60d872d1e0ba7cfb0515..0000000000000000000000000000000000000000
 611--- a/keyboards/massdrop/alt/keymaps/default_md/keymap.c
 612+++ /dev/null
 613@@ -1,296 +0,0 @@
 614-#include QMK_KEYBOARD_H
 615-
 616-enum alt_keycodes {
 617-    L_BRI = SAFE_RANGE, //LED Brightness Increase                                   //Working
 618-    L_BRD,              //LED Brightness Decrease                                   //Working
 619-    L_EDG_I,            //LED Edge Brightness Increase
 620-    L_EDG_D,            //LED Edge Brightness Decrease
 621-    L_EDG_M,            //LED Edge lighting mode
 622-    L_PTN,              //LED Pattern Select Next                                   //Working
 623-    L_PTP,              //LED Pattern Select Previous                               //Working
 624-    L_PSI,              //LED Pattern Speed Increase                                //Working
 625-    L_PSD,              //LED Pattern Speed Decrease                                //Working
 626-    L_RATIOD,
 627-    L_RATIOI,
 628-    L_T_MD,             //LED Toggle Mode                                           //Working
 629-    L_T_ONF,            //LED Toggle On / Off                                       //Broken
 630-    L_ON,               //LED On                                                    //Broken
 631-    L_OFF,              //LED Off                                                   //Broken
 632-    L_T_BR,             //LED Toggle Breath Effect                                  //Working
 633-    L_T_PTD,            //LED Toggle Scrolling Pattern Direction                    //Working
 634-    U_T_AGCR,           //USB Toggle Automatic GCR control                          //Working
 635-    DBG_TOG,            //DEBUG Toggle On / Off                                     //
 636-    DBG_MTRX,           //DEBUG Toggle Matrix Prints                                //
 637-    DBG_KBD,            //DEBUG Toggle Keyboard Prints                              //
 638-    DBG_MOU,            //DEBUG Toggle Mouse Prints                                 //
 639-    DBG_FAC,            //DEBUG Factory light testing (All on white)
 640-    MD_BOOT             //Restart into bootloader after hold timeout                //Working
 641-};
 642-
 643-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 644-    [0] = LAYOUT(
 645-        KC_ESC,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS, KC_EQL,  KC_BSPC, KC_DEL,
 646-        KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_LBRC, KC_RBRC, KC_BSLS, KC_HOME,
 647-        KC_CAPS, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT,          KC_ENT,  KC_PGUP,
 648-        KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT,          KC_UP,   KC_PGDN,
 649-        KC_LCTL, KC_LGUI, KC_LALT,                            KC_SPC,                             KC_RALT, MO(1),   KC_LEFT, KC_DOWN, KC_RGHT
 650-    ),
 651-    [1] = LAYOUT(
 652-        KC_GRV,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  _______, KC_MUTE,
 653-        L_T_BR,  L_PSD,   L_BRI,   L_PSI,   L_EDG_I, _______, _______, _______, U_T_AGCR,_______, KC_PSCR, KC_SCRL, KC_PAUS, _______, KC_END,
 654-        L_T_PTD, L_PTP,   L_BRD,   L_PTN,   L_EDG_D, _______, _______, _______, _______, _______, _______, _______,          _______, KC_VOLU,
 655-        _______, L_T_MD,  L_T_ONF, _______, L_EDG_M, MD_BOOT, NK_TOGG, _______, _______, _______, _______, _______,          KC_PGUP, KC_VOLD,
 656-        _______, _______, _______,                            DBG_FAC,                            _______, _______, KC_HOME, KC_PGDN, KC_END
 657-    ),
 658-    /*
 659-    [X] = LAYOUT(
 660-        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 661-        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 662-        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______, _______,
 663-        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______, _______,
 664-        _______, _______, _______,                            _______,                            _______, _______, _______, _______, _______
 665-    ),
 666-    */
 667-};
 668-
 669-#define MODS_SHIFT  (get_mods() & MOD_BIT(KC_LSFT) || get_mods() & MOD_BIT(KC_RSFT))
 670-#define MODS_CTRL  (get_mods() & MOD_BIT(KC_LCTL) || get_mods() & MOD_BIT(KC_RCTL))
 671-#define MODS_ALT  (get_mods() & MOD_BIT(KC_LALT) || get_mods() & MOD_BIT(KC_RALT))
 672-
 673-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 674-    static uint32_t key_timer;
 675-    static uint8_t scroll_effect = 0;
 676-
 677-    switch (keycode) {
 678-        case L_BRI ... U_T_AGCR:
 679-            if (record->event.pressed) {
 680-                md_led_changed();
 681-            }
 682-            break;
 683-    }
 684-
 685-    switch (keycode) {
 686-        case L_BRI:
 687-            if (record->event.pressed) {
 688-                if (LED_GCR_STEP > LED_GCR_MAX - gcr_desired) gcr_desired = LED_GCR_MAX;
 689-                else gcr_desired += LED_GCR_STEP;
 690-                if (led_animation_breathing) gcr_breathe = gcr_desired;
 691-            }
 692-            return false;
 693-        case L_BRD:
 694-            if (record->event.pressed) {
 695-                if (LED_GCR_STEP > gcr_desired) gcr_desired = 0;
 696-                else gcr_desired -= LED_GCR_STEP;
 697-                if (led_animation_breathing) gcr_breathe = gcr_desired;
 698-            }
 699-            return false;
 700-        case L_EDG_M:
 701-            if (record->event.pressed) {
 702-                led_edge_mode++;
 703-                if (led_edge_mode > LED_EDGE_MODE_MAX) {
 704-                    led_edge_mode = LED_EDGE_MODE_ALL;
 705-                }
 706-            }
 707-            return false;
 708-        case L_EDG_I:
 709-            if (record->event.pressed) {
 710-                led_edge_brightness += 0.1;
 711-                if (led_edge_brightness > 1) { led_edge_brightness = 1; }
 712-            }
 713diff --git a/keyboards/massdrop/alt/keymaps/default_md/rules.mk b/keyboards/massdrop/alt/keymaps/default_md/rules.mk
 714deleted file mode 100644
 715index 064a6f54c1faef1f4a89fb564df6fbc0396b6f4f..0000000000000000000000000000000000000000
 716--- a/keyboards/massdrop/alt/keymaps/default_md/rules.mk
 717+++ /dev/null
 718@@ -1,2 +0,0 @@
 719-# This keymap requires Massdrop Configurator support
 720-OPT_DEFS += -DUSE_MASSDROP_CONFIGURATOR
 721diff --git a/keyboards/massdrop/alt/readme.md b/keyboards/massdrop/alt/readme.md
 722deleted file mode 100644
 723index bf33b2048f33712ea5b9a7d110b9fddfa1413e28..0000000000000000000000000000000000000000
 724--- a/keyboards/massdrop/alt/readme.md
 725+++ /dev/null
 726@@ -1,20 +0,0 @@
 727-# ALT
 728-
 729-![ALT](https://massdrop-s3.imgix.net/product-images/alt-keyboard/FP/WNxwR19gTua3nxiiQWP3_AI7B3311%20copy%20page.jpg?auto=format&fm=jpg&fit=max&w=700&h=467&dpr=1&q=80)
 730-
 731-The Massdrop ALT is a 65% mechanical keyboard featuring dual USB-C connectors, an integrated Hi-Speed USB 2.0 hub, and fully customizable RGB backlighting and underlighting.
 732-
 733-Keyboard Maintainer: [Massdrop](https://github.com/massdrop)  
 734-Hardware Supported: Massdrop, Inc. ALT PCBs utilizing Microchip's ATSAMD51J18A MCU and USB2422 2-Port USB 2.0 Hi-Speed Hub Controller, and ISSI's IS31FL3733 LED Drivers.  
 735-Hardware Availability: [Massdrop ALT Mechanical Keyboard](https://www.massdrop.com/buy/massdrop-alt-mechanical-keyboard)
 736-
 737-Make example for this keyboard (after setting up your build environment):
 738-
 739-    make massdrop/alt:default
 740-
 741-For information on flashing this keyboard, visit the following links:
 742-
 743-[Massdrop Loader Releases](https://github.com/Massdrop/mdloader/releases)  
 744-[Massdrop Loader Repository and Instructions](https://github.com/Massdrop/mdloader)
 745-
 746diff --git a/keyboards/massdrop/alt/rules.mk b/keyboards/massdrop/alt/rules.mk
 747deleted file mode 100644
 748index 869853e858ebcecb54cfb3e43fa7907db58d98f4..0000000000000000000000000000000000000000
 749--- a/keyboards/massdrop/alt/rules.mk
 750+++ /dev/null
 751@@ -1,9 +0,0 @@
 752-# project specific files
 753-SRC += config_led.c
 754-
 755-#For platform and packs
 756-ARM_ATSAM = SAMD51J18A
 757-MCU = cortex-m4
 758-
 759-# Bootloader selection
 760-BOOTLOADER = md-boot
 761diff --git a/keyboards/massdrop/ctrl/DOCUMENTATION.md b/keyboards/massdrop/ctrl/DOCUMENTATION.md
 762deleted file mode 100644
 763index 6b3206ab91d5ae181603bbf44ebef51790179323..0000000000000000000000000000000000000000
 764--- a/keyboards/massdrop/ctrl/DOCUMENTATION.md
 765+++ /dev/null
 766@@ -1,29 +0,0 @@
 767-# Massdrop CTRL Documentation
 768-
 769-This is a WIP and will contine to be updated for some time in the future.
 770-
 771diff --git a/keyboards/massdrop/ctrl/config.h b/keyboards/massdrop/ctrl/config.h
 772deleted file mode 100644
 773index 33991d4c8fa1f66cb5f6a579a88632a1696b7f8c..0000000000000000000000000000000000000000
 774--- a/keyboards/massdrop/ctrl/config.h
 775+++ /dev/null
 776@@ -1,154 +0,0 @@
 777-/*
 778-Copyright 2015 Jun Wako <wakojun@gmail.com>
 779-
 780-This program is free software: you can redistribute it and/or modify
 781-it under the terms of the GNU General Public License as published by
 782-the Free Software Foundation, either version 2 of the License, or
 783-(at your option) any later version.
 784-
 785-This program is distributed in the hope that it will be useful,
 786-but WITHOUT ANY WARRANTY; without even the implied warranty of
 787-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 788-GNU General Public License for more details.
 789-
 790-You should have received a copy of the GNU General Public License
 791-along with this program.  If not, see <http://www.gnu.org/licenses/>.
 792-*/
 793-
 794-#pragma once
 795-
 796-
 797-/* USB Device descriptor parameter */
 798-#define SERIAL_NUM          "Unavailable"
 799-
 800-/* Temporary solution for matrix delay */
 801-#define IGNORE_ATOMIC_BLOCK
 802-
 803-/* Avoid out-of-bounds errors when SmartEEPROM is not enabled */
 804-#define EEPROM_SIZE 1024
 805-
 806-/* MCU Port name definitions */
 807-#define PA 0
 808-#define PB 1
 809-
 810-/* This Shift Register expands available hardware output lines to control additional peripherals */
 811-/* It uses four lines from the MCU to provide 16 output lines */
 812-/* Shift Register Clock configuration (MCU to ShiftRegister.RCLK) */
 813-#define SR_EXP_RCLK_PIN          B14
 814-/* Shift Register Output Enable configuration (MCU to ShiftRegister.OE_N) */
 815-#define SR_EXP_OE_PIN            B15
 816-/* SERCOM port to use for Shift Register SPI */
 817-/* DATAOUT and SCLK must be configured to use hardware pins of this port */
 818-#define SPI_SERCOM               SERCOM2
 819-/* Shift Register SPI Data Out configuration (MCU.SERCOMx.PAD[0] to ShiftRegister.SER) */
 820-#define SPI_DATAOUT_PIN          A12
 821-#define SPI_DATAOUT_MUX          2
 822-/* Shift Register SPI Serial Clock configuration (MCU.SERCOMx.PAD[1] to ShiftRegister.SRCLK) */
 823-#define SPI_SCLK_PIN             A13
 824-#define SPI_SCLK_MUX             2
 825-
 826-/* Debug LED (Small LED Located near MCU) */
 827-#define DEBUG_LED_ENABLE            1
 828-#define DEBUG_LED_PORT              PA
 829-#define DEBUG_LED_PIN               27
 830-
 831-/* Additional debugging ports */
 832-/* PCB M21 */
 833-#define DEBUG_PORT1_ENABLE          1
 834-#define DEBUG_PORT1_PORT            PB
 835-#define DEBUG_PORT1_PIN             3
 836-/* PCB M23 */
 837-#define DEBUG_PORT2_ENABLE          1
 838-#define DEBUG_PORT2_PORT            PB
 839-#define DEBUG_PORT2_PIN             17
 840-/* PCB M25 */
 841-#define DEBUG_PORT3_ENABLE          1
 842-#define DEBUG_PORT3_PORT            PA
 843-#define DEBUG_PORT3_PIN             20
 844-
 845-/* Debug Boot Tracing - During boot sequence, ground this pin to halt and display debug code using Debug LED */
 846-/* This is useful in determining which hardware device may have malfunctioned or is improperly configured */
 847-/* Feature is automatically disabled after successful boot */
 848-/* PCB M27 */
 849-#define DEBUG_BOOT_TRACING_ENABLE   1
 850-#define DEBUG_BOOT_TRACING_PORT     PB
 851-#define DEBUG_BOOT_TRACING_PIN      23
 852-
 853-/* USB2422 config */
 854-#define USB2422_ADDRESS 0x58
 855-#define USB2422_VENDOR_ID 0x04D8
 856-#define USB2422_PRODUCT_ID 0xEEC5
 857-#define USB2422_DEVICE_VER 0x0101
 858-#define USB2422_MANUFACTURER "Massdrop Inc."
 859-#define USB2422_PRODUCT "Massdrop Hub"
 860-#define USB2422_ACTIVE_PIN A18
 861-
 862-/*
 863- * Feature disable options
 864- *  These options are also useful to firmware size reduction.
 865- */
 866-
 867-/* disable debug print */
 868-//#define NO_DEBUG
 869-
 870-/* disable print */
 871-//#define NO_PRINT
 872-
 873-/* disable action features */
 874-//#define NO_ACTION_LAYER
 875-//#define NO_ACTION_TAPPING
 876diff --git a/keyboards/massdrop/ctrl/config_led.c b/keyboards/massdrop/ctrl/config_led.c
 877deleted file mode 100644
 878index 6cc8601bb5b2ee2bb5d08a47bd9a22ed0f26542d..0000000000000000000000000000000000000000
 879--- a/keyboards/massdrop/ctrl/config_led.c
 880+++ /dev/null
 881@@ -1,85 +0,0 @@
 882-#ifdef RGB_MATRIX_ENABLE
 883-#include "ctrl.h"
 884-
 885-#include "md_rgb_matrix.h"
 886-#include "rgb_matrix.h"
 887-#include "config_led.h"
 888-
 889-led_config_t g_led_config = { {
 890-    {   0,   1,   2,   3,   4,   5,   6,   7 },
 891-    {  16,  17,  18,  19,  20,  21,  22,  23 },
 892-    {  33,  34,  35,  36,  37,  38,  39,  40 },
 893-    {  50,  51,  52,  53,  54,  55,  56,  57 },
 894-    {  63,  64,  65,  66,  67,  68,  69,  70 },
 895-    {  76,  77,  78,  79,  80,  81,  82,  83 },
 896-    {   8,   9,  10,  11,  12,  13,  14,  15 },
 897-    {  24,  25,  26,  27,  28,  29,  30,  31 },
 898-    {  41,  42,  43,  44,  45,  46,  47,  48 },
 899-    {  58,  59,  60,  61,  62,  75,  49,  32 },
 900-    {  71,  72,  73,  74,  84,  85,  86, NO_LED }
 901-}, {
 902-  // KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS
 903-    {   7,   5 }, {  31,   5 }, {  43,   5 }, {  55,   5 }, {  67,   5 }, {  85,   5 }, {  97,   5 }, { 109,   5 },
 904-    { 121,   5 }, { 139,   5 }, { 151,   5 }, { 163,   5 }, { 175,   5 }, { 193,   5 }, { 205,   5 }, { 217,   5 },
 905-  // KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP
 906-    {   7,  20 }, {  19,  20 }, {  31,  20 }, {  43,  20 }, {  55,  20 }, {  67,  20 }, {  79,  20 }, {  91,  20 },
 907-    { 103,  20 }, { 115,  20 }, { 127,  20 }, { 139,  20 }, { 151,  20 }, { 169,  20 }, { 193,  20 }, { 205,  20 },
 908-    { 217,  20 },
 909-  // KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN
 910-    {  10,  30 }, {  25,  30 }, {  37,  30 }, {  49,  30 }, {  61,  30 }, {  73,  30 }, {  85,  30 }, {  97,  30 },
 911-    { 109,  30 }, { 121,  30 }, { 133,  30 }, { 145,  30 }, { 157,  30 }, { 172,  30 }, { 193,  30 }, { 205,  30 },
 912-    { 217,  30 },
 913-  // KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT
 914-    {  11,  39 }, {  28,  39 }, {  40,  39 }, {  52,  39 }, {  64,  39 }, {  76,  39 }, {  88,  39 }, { 100,  39 },
 915-    { 112,  39 }, { 124,  39 }, { 136,  39 }, { 148,  39 }, { 168,  39 },
 916-  // KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP
 917-    {  14,  49 }, {  34,  49 }, {  46,  49 }, {  58,  49 }, {  70,  49 }, {  82,  49 }, {  94,  49 }, { 106,  49 },
 918-    { 118,  49 }, { 130,  49 }, { 142,  49 }, { 165,  49 }, { 205,  49 },
 919-  // KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
 920-    {   8,  59 }, {  23,  59 }, {  38,  59 }, {  83,  59 }, { 129,  59 }, { 144,  59 }, { 159,  59 }, { 174,  59 },
 921-    { 193,  59 }, { 205,  59 }, { 217,  59 },
 922-  // Underglow / Border
 923-    { 224,  64 }, { 204,  64 }, { 186,  64 }, { 167,  64 }, { 149,  64 }, { 130,  64 }, { 112,  64 }, {  94,  64 },
 924-    {  75,  64 }, {  57,  64 }, {  38,  64 }, {  20,  64 }, {   0,  64 }, {   0,  47 }, {   0,  32 }, {   0,  17 },
 925-    {   0,   0 }, {  20,   0 }, {  38,   0 }, {  57,   0 }, {  75,   0 }, {  94,   0 }, { 112,   0 }, { 130,   0 },
 926-    { 149,   0 }, { 167,   0 }, { 186,   0 }, { 204,   0 }, { 224,   0 }, { 224,  17 }, { 224,  32 }, { 224,  47 }
 927-}, {
 928-  // KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS
 929-    1, 4, 4, 4, 4, 1, 1, 1,
 930-    1, 4, 4, 4, 4, 1, 9, 1,
 931-  // KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP
 932-    4, 4, 4, 4, 4, 4, 4, 4,
 933-    4, 4, 4, 4, 4, 1, 1, 1,
 934-    1,
 935-  // KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN
 936-    1, 4, 4, 4, 4, 4, 4, 4,
 937-    4, 4, 4, 4, 4, 4, 1, 1,
 938-    1,
 939-  // KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT
 940-    9, 4, 4, 4, 4, 4, 4, 4,
 941-    4, 4, 4, 4, 1,
 942-  // KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP
 943-    1, 4, 4, 4, 4, 4, 4, 4,
 944-    4, 4, 4, 1, 1,
 945-  // KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
 946-    1, 1, 1, 4, 1, 1, 1, 1,
 947-    1, 1, 1,
 948-  // Underglow / Border
 949-    2, 2, 2, 2, 2, 2, 2, 2,
 950-    2, 2, 2, 2, 2, 2, 2, 2,
 951-    2, 2, 2, 2, 2, 2, 2, 2,
 952-    2, 2, 2, 2, 2, 2, 2, 2
 953-} };
 954-
 955-
 956-#ifdef USB_LED_INDICATOR_ENABLE
 957-bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) {
 958-    if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) {
 959-        return false;
 960-    }
 961-    md_rgb_matrix_indicators_advanced(led_min, led_max);
 962-    return true;
 963-}
 964-#endif // USB_LED_INDICATOR_ENABLE
 965-
 966-#endif // RGB_MATRIX_ENABLE
 967diff --git a/keyboards/massdrop/ctrl/config_led.h b/keyboards/massdrop/ctrl/config_led.h
 968deleted file mode 100644
 969index f582035e9e2dabd5aa0e42a5dfe8cc1229444d4e..0000000000000000000000000000000000000000
 970--- a/keyboards/massdrop/ctrl/config_led.h
 971+++ /dev/null
 972@@ -1,192 +0,0 @@
 973-/*
 974-Copyright 2018 Massdrop Inc.
 975-
 976-This program is free software: you can redistribute it and/or modify
 977-it under the terms of the GNU General Public License as published by
 978-the Free Software Foundation, either version 2 of the License, or
 979-(at your option) any later version.
 980-
 981-This program is distributed in the hope that it will be useful,
 982-but WITHOUT ANY WARRANTY; without even the implied warranty of
 983-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 984-GNU General Public License for more details.
 985-
 986-You should have received a copy of the GNU General Public License
 987-along with this program.  If not, see <http://www.gnu.org/licenses/>.
 988-*/
 989-
 990-#pragma once
 991-
 992-//Define number of ISSI3733 drivers being used (1...16)
 993-#define ISSI3733_DRIVER_COUNT 2
 994-#define RGB_MATRIX_LED_COUNT ISSI3733_LED_COUNT
 995-
 996-//Hardware address of each driver (Refer to ISSI3733 pdf "Table 1 Slave Address" and keyboard schematic)
 997-#define ISSI3773_DRIVER_ADDRESSES { 0xA0, 0xBE }
 998-
 999-//LED I2C bus speed
1000-#define I2C_HZ 580000
1001-
1002-//Count of LED bodies
1003-#define ISSI3733_LED_COUNT 119
1004-
1005-#define LED_GCR_MAX                 165         //Max GCR value (0 - 255) WARNING: Raising this value may overload the LED drivers and USB bus
1006-#define LED_GCR_STEP                10          //GCR increment/decrement value
1007-
1008-#ifdef USE_MASSDROP_CONFIGURATOR
1009-#define ANIMATION_SPEED_STEP        1
1010-
1011-#define BREATHE_STEP                1
1012-#define BREATHE_MIN_STEP            0
1013-#define BREATHE_MAX_STEP            255
1014-#endif
1015-
1016-//Default Global Current Register value (Default brightness 0 - 255)
1017-#define ISSI3733_GCR_DEFAULT LED_GCR_MAX
1018-
1019-//Automatic power rollback and recovery
1020-#define V5_HIGH                     2540        //5V high level (After low power detect, point at which LEDs are allowed to use more power )
1021-#define V5_LOW                      2480        //5V low level (LED power rolled back to stay above this limit)
1022-#define V5_CAT                      2200        //5V catastrophic level (Host USB port potential to shut down)
1023-
1024-//LED Mapping - More practically generated from a spreadsheet program
1025-//id: ID of the LED (Sync with PCB callouts)
1026-//x: Physical X coordinate of LED (units do not matter)
1027-//y: Physical Y coordinate of LED (units do not matter)
1028-//drv: 1-Based index of ISSI3773_DRIVER_ADDRESSES
1029-//cs: Matrix wiring CS col (1-16)
1030-//swr: Matrix wiring SW Red row (1-12)
1031-//swg: Matrix wiring SW Green row (1-12)
1032-//swb: Matrix wiring SW Blue row (1-12)
1033-//scan: Associated key matrix scancode (set 255 if none or 254 for LED to turn off in alternating mode)
1034-//Note: Origin 0,0 may be located anywhere as the software will do the final layout
1035-#define ISSI3733_LED_MAP { \
1036- { .id = 1, .x = 0, .y = 0, .adr = { .drv = 2, .cs = 2, .swr = 2, .swg = 1, .swb = 3 }, .scan = 0 }, \
1037- { .id = 2, .x = 1.5, .y = 0, .adr = { .drv = 2, .cs = 3, .swr = 5, .swg = 4, .swb = 6 }, .scan = 1 }, \
1038- { .id = 3, .x = 2.25, .y = 0, .adr = { .drv = 2, .cs = 4, .swr = 5, .swg = 4, .swb = 6 }, .scan = 2 }, \
1039- { .id = 4, .x = 3, .y = 0, .adr = { .drv = 2, .cs = 5, .swr = 5, .swg = 4, .swb = 6 }, .scan = 3 }, \
1040- { .id = 5, .x = 3.75, .y = 0, .adr = { .drv = 2, .cs = 6, .swr = 2, .swg = 1, .swb = 3 }, .scan = 4 }, \
1041- { .id = 6, .x = 4.875, .y = 0, .adr = { .drv = 2, .cs = 7, .swr = 5, .swg = 4, .swb = 6 }, .scan = 5 }, \
1042- { .id = 7, .x = 5.625, .y = 0, .adr = { .drv = 2, .cs = 8, .swr = 5, .swg = 4, .swb = 6 }, .scan = 6 }, \
1043- { .id = 8, .x = 6.375, .y = 0, .adr = { .drv = 1, .cs = 1, .swr = 5, .swg = 4, .swb = 6 }, .scan = 7 }, \
1044- { .id = 9, .x = 7.125, .y = 0, .adr = { .drv = 1, .cs = 2, .swr = 5, .swg = 4, .swb = 6 }, .scan = 48 }, \
1045- { .id = 10, .x = 8.25, .y = 0, .adr = { .drv = 1, .cs = 3, .swr = 5, .swg = 4, .swb = 6 }, .scan = 49 }, \
1046- { .id = 11, .x = 9, .y = 0, .adr = { .drv = 1, .cs = 4, .swr = 5, .swg = 4, .swb = 6 }, .scan = 50 }, \
1047- { .id = 12, .x = 9.75, .y = 0, .adr = { .drv = 1, .cs = 5, .swr = 5, .swg = 4, .swb = 6 }, .scan = 51 }, \
1048- { .id = 13, .x = 10.5, .y = 0, .adr = { .drv = 1, .cs = 6, .swr = 5, .swg = 4, .swb = 6 }, .scan = 52 }, \
1049- { .id = 14, .x = 11.625, .y = 0, .adr = { .drv = 1, .cs = 7, .swr = 5, .swg = 4, .swb = 6 }, .scan = 53 }, \
1050- { .id = 15, .x = 12.375, .y = 0, .adr = { .drv = 1, .cs = 8, .swr = 5, .swg = 4, .swb = 6 }, .scan = 54 }, \
1051- { .id = 16, .x = 13.125, .y = 0, .adr = { .drv = 1, .cs = 9, .swr = 5, .swg = 4, .swb = 6 }, .scan = 55 }, \
1052- { .id = 17, .x = 0, .y = -1.125, .adr = { .drv = 2, .cs = 1, .swr = 8, .swg = 7, .swb = 9 }, .scan = 8 }, \
1053- { .id = 18, .x = 0.75, .y = -1.125, .adr = { .drv = 2, .cs = 2, .swr = 8, .swg = 7, .swb = 9 }, .scan = 9 }, \
1054- { .id = 19, .x = 1.5, .y = -1.125, .adr = { .drv = 2, .cs = 3, .swr = 8, .swg = 7, .swb = 9 }, .scan = 10 }, \
1055- { .id = 20, .x = 2.25, .y = -1.125, .adr = { .drv = 2, .cs = 4, .swr = 8, .swg = 7, .swb = 9 }, .scan = 11 }, \
1056- { .id = 21, .x = 3, .y = -1.125, .adr = { .drv = 2, .cs = 5, .swr = 8, .swg = 7, .swb = 9 }, .scan = 12 }, \
1057- { .id = 22, .x = 3.75, .y = -1.125, .adr = { .drv = 2, .cs = 6, .swr = 8, .swg = 7, .swb = 9 }, .scan = 13 }, \
1058- { .id = 23, .x = 4.5, .y = -1.125, .adr = { .drv = 2, .cs = 7, .swr = 8, .swg = 7, .swb = 9 }, .scan = 14 }, \
1059- { .id = 24, .x = 5.25, .y = -1.125, .adr = { .drv = 2, .cs = 8, .swr = 8, .swg = 7, .swb = 9 }, .scan = 15 }, \
1060- { .id = 25, .x = 6, .y = -1.125, .adr = { .drv = 1, .cs = 1, .swr = 8, .swg = 7, .swb = 9 }, .scan = 56 }, \
1061- { .id = 26, .x = 6.75, .y = -1.125, .adr = { .drv = 1, .cs = 2, .swr = 8, .swg = 7, .swb = 9 }, .scan = 57 }, \
1062- { .id = 27, .x = 7.5, .y = -1.125, .adr = { .drv = 1, .cs = 3, .swr = 8, .swg = 7, .swb = 9 }, .scan = 58 }, \
1063- { .id = 28, .x = 8.25, .y = -1.125, .adr = { .drv = 1, .cs = 4, .swr = 8, .swg = 7, .swb = 9 }, .scan = 59 }, \
1064- { .id = 29, .x = 9, .y = -1.125, .adr = { .drv = 1, .cs = 5, .swr = 8, .swg = 7, .swb = 9 }, .scan = 60 }, \
1065- { .id = 30, .x = 10.125, .y = -1.125, .adr = { .drv = 1, .cs = 6, .swr = 8, .swg = 7, .swb = 9 }, .scan = 61 }, \
1066- { .id = 31, .x = 11.625, .y = -1.125, .adr = { .drv = 1, .cs = 7, .swr = 8, .swg = 7, .swb = 9 }, .scan = 62 }, \
1067- { .id = 32, .x = 12.375, .y = -1.125, .adr = { .drv = 1, .cs = 8, .swr = 8, .swg = 7, .swb = 9 }, .scan = 63 }, \
1068- { .id = 33, .x = 13.125, .y = -1.125, .adr = { .drv = 1, .cs = 9, .swr = 8, .swg = 7, .swb = 9 }, .scan = 79 }, \
1069- { .id = 34, .x = 0.188, .y = -1.875, .adr = { .drv = 2, .cs = 1, .swr = 11, .swg = 10, .swb = 12 }, .scan = 16 }, \
1070- { .id = 35, .x = 1.125, .y = -1.875, .adr = { .drv = 2, .cs = 2, .swr = 11, .swg = 10, .swb = 12 }, .scan = 17 }, \
1071- { .id = 36, .x = 1.875, .y = -1.875, .adr = { .drv = 2, .cs = 3, .swr = 11, .swg = 10, .swb = 12 }, .scan = 18 }, \
1072diff --git a/keyboards/massdrop/ctrl/ctrl.c b/keyboards/massdrop/ctrl/ctrl.c
1073deleted file mode 100644
1074index c688d330a5260ff0017b4e32a66182a2c2e905a9..0000000000000000000000000000000000000000
1075--- a/keyboards/massdrop/ctrl/ctrl.c
1076+++ /dev/null
1077@@ -1,21 +0,0 @@
1078-/*
1079-Copyright 2021 Massdrop Inc.
1080-
1081-This program is free software: you can redistribute it and/or modify
1082-it under the terms of the GNU General Public License as published by
1083-the Free Software Foundation, either version 2 of the License, or
1084-(at your option) any later version.
1085-
1086-This program is distributed in the hope that it will be useful,
1087-but WITHOUT ANY WARRANTY; without even the implied warranty of
1088-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1089-GNU General Public License for more details.
1090-
1091-You should have received a copy of the GNU General Public License
1092-along with this program.  If not, see <http://www.gnu.org/licenses/>.
1093-*/
1094-#include "ctrl.h"
1095-
1096-/* Temporary solution for matrix delay */
1097-void matrix_output_select_delay(void) { matrix_io_delay(); }
1098-void matrix_output_unselect_delay(uint8_t line, bool key_pressed) {}
1099diff --git a/keyboards/massdrop/ctrl/ctrl.h b/keyboards/massdrop/ctrl/ctrl.h
1100deleted file mode 100644
1101index 9fc6eac15eda6dbf4149ff6234fcba733dff5708..0000000000000000000000000000000000000000
1102--- a/keyboards/massdrop/ctrl/ctrl.h
1103+++ /dev/null
1104@@ -1,20 +0,0 @@
1105-#pragma once
1106-
1107-#include "quantum.h"
1108-#include "config_led.h"
1109-#include "matrix.h"
1110-
1111-#include "i2c_master.h"
1112-#include "md_rgb_matrix.h" //For led keycodes
1113-#include "usb/udi_cdc.h"
1114-#include "usb/usb_hub.h"
1115-
1116-#define TOGGLE_FLAG_AND_PRINT(var, name) { \
1117-        if (var) { \
1118-            dprintf(name " disabled\r\n"); \
1119-            var = !var; \
1120-        } else { \
1121-            var = !var; \
1122-            dprintf(name " enabled\r\n"); \
1123-        } \
1124-    }
1125diff --git a/keyboards/massdrop/ctrl/keyboard.json b/keyboards/massdrop/ctrl/keyboard.json
1126deleted file mode 100644
1127index d3488ebd6bb52113f91c131656555ea80ab864bf..0000000000000000000000000000000000000000
1128--- a/keyboards/massdrop/ctrl/keyboard.json
1129+++ /dev/null
1130@@ -1,132 +0,0 @@
1131-{
1132-    "keyboard_name": "CTRL Keyboard",
1133-    "manufacturer": "Massdrop Inc.",
1134-    "url": "https://www.massdrop.com/buy/massdrop-ctrl-mechanical-keyboard",
1135-    "maintainer": "Massdrop",
1136-    "usb": {
1137-        "vid": "0x04D8",
1138-        "pid": "0xEED2",
1139-        "device_version": "1.0.1"
1140-    },
1141-    "rgb_matrix": {
1142-        "driver": "custom"
1143-    },
1144-    "matrix_pins": {
1145-        "cols": ["A00", "A01", "A02", "A03", "A04", "A05", "A06", "A07"],
1146-        "rows": ["B04", "B05", "B06", "B07", "B08", "B09", "A10", "A11", "B10", "B11", "B12"]
1147-    },
1148-    "diode_direction": "COL2ROW",
1149-    "features": {
1150-        "bootmagic": false,
1151-        "mousekey": false,
1152-        "extrakey": true,
1153-        "nkro": true,
1154-        "rgb_matrix": true
1155-    },
1156-    "layouts": {
1157-        "LAYOUT": {
1158-            "layout": [
1159-                {"matrix": [0, 0], "x": 0, "y": 0},
1160-
1161-                {"matrix": [0, 1], "x": 2, "y": 0},
1162-                {"matrix": [0, 2], "x": 3, "y": 0},
1163-                {"matrix": [0, 3], "x": 4, "y": 0},
1164-                {"matrix": [0, 4], "x": 5, "y": 0},
1165-
1166-                {"matrix": [0, 5], "x": 6.5, "y": 0},
1167-                {"matrix": [0, 6], "x": 7.5, "y": 0},
1168-                {"matrix": [0, 7], "x": 8.5, "y": 0},
1169-                {"matrix": [6, 0], "x": 9.5, "y": 0},
1170-
1171-                {"matrix": [6, 1], "x": 11, "y": 0},
1172-                {"matrix": [6, 2], "x": 12, "y": 0},
1173-                {"matrix": [6, 3], "x": 13, "y": 0},
1174-                {"matrix": [6, 4], "x": 14, "y": 0},
1175-
1176-                {"matrix": [6, 5], "x": 15.5, "y": 0},
1177-                {"matrix": [6, 6], "x": 16.5, "y": 0},
1178-                {"matrix": [6, 7], "x": 17.5, "y": 0},
1179-
1180-                {"matrix": [1, 0], "x": 0, "y": 1.5},
1181-                {"matrix": [1, 1], "x": 1, "y": 1.5},
1182-                {"matrix": [1, 2], "x": 2, "y": 1.5},
1183-                {"matrix": [1, 3], "x": 3, "y": 1.5},
1184-                {"matrix": [1, 4], "x": 4, "y": 1.5},
1185-                {"matrix": [1, 5], "x": 5, "y": 1.5},
1186-                {"matrix": [1, 6], "x": 6, "y": 1.5},
1187-                {"matrix": [1, 7], "x": 7, "y": 1.5},
1188-                {"matrix": [7, 0], "x": 8, "y": 1.5},
1189-                {"matrix": [7, 1], "x": 9, "y": 1.5},
1190-                {"matrix": [7, 2], "x": 10, "y": 1.5},
1191-                {"matrix": [7, 3], "x": 11, "y": 1.5},
1192-                {"matrix": [7, 4], "x": 12, "y": 1.5},
1193-                {"matrix": [7, 5], "x": 13, "y": 1.5, "w": 2},
1194-
1195-                {"matrix": [7, 6], "x": 15.5, "y": 1.5},
1196-                {"matrix": [7, 7], "x": 16.5, "y": 1.5},
1197-                {"matrix": [9, 7], "x": 17.5, "y": 1.5},
1198-
1199-                {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5},
1200-                {"matrix": [2, 1], "x": 1.5, "y": 2.5},
1201-                {"matrix": [2, 2], "x": 2.5, "y": 2.5},
1202-                {"matrix": [2, 3], "x": 3.5, "y": 2.5},
1203-                {"matrix": [2, 4], "x": 4.5, "y": 2.5},
1204-                {"matrix": [2, 5], "x": 5.5, "y": 2.5},
1205-                {"matrix": [2, 6], "x": 6.5, "y": 2.5},
1206-                {"matrix": [2, 7], "x": 7.5, "y": 2.5},
1207-                {"matrix": [8, 0], "x": 8.5, "y": 2.5},
1208-                {"matrix": [8, 1], "x": 9.5, "y": 2.5},
1209-                {"matrix": [8, 2], "x": 10.5, "y": 2.5},
1210-                {"matrix": [8, 3], "x": 11.5, "y": 2.5},
1211-                {"matrix": [8, 4], "x": 12.5, "y": 2.5},
1212-                {"matrix": [8, 5], "x": 13.5, "y": 2.5, "w": 1.5},
1213-
1214-                {"matrix": [8, 6], "x": 15.5, "y": 2.5},
1215-                {"matrix": [8, 7], "x": 16.5, "y": 2.5},
1216-                {"matrix": [9, 6], "x": 17.5, "y": 2.5},
1217-
1218-                {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75},
1219-                {"matrix": [3, 1], "x": 1.75, "y": 3.5},
1220-                {"matrix": [3, 2], "x": 2.75, "y": 3.5},
1221-                {"matrix": [3, 3], "x": 3.75, "y": 3.5},
1222-                {"matrix": [3, 4], "x": 4.75, "y": 3.5},
1223-                {"matrix": [3, 5], "x": 5.75, "y": 3.5},
1224-                {"matrix": [3, 6], "x": 6.75, "y": 3.5},
1225-                {"matrix": [3, 7], "x": 7.75, "y": 3.5},
1226-                {"matrix": [9, 0], "x": 8.75, "y": 3.5},
1227-                {"matrix": [9, 1], "x": 9.75, "y": 3.5},
1228-                {"matrix": [9, 2], "x": 10.75, "y": 3.5},
1229-                {"matrix": [9, 3], "x": 11.75, "y": 3.5},
1230diff --git a/keyboards/massdrop/ctrl/keymaps/default/keymap.c b/keyboards/massdrop/ctrl/keymaps/default/keymap.c
1231deleted file mode 100644
1232index 37fc1b85d81fc62e56af47fc499e6de50c82f2bb..0000000000000000000000000000000000000000
1233--- a/keyboards/massdrop/ctrl/keymaps/default/keymap.c
1234+++ /dev/null
1235@@ -1,118 +0,0 @@
1236-#include QMK_KEYBOARD_H
1237-
1238-enum ctrl_keycodes {
1239-    U_T_AUTO = SAFE_RANGE, //USB Extra Port Toggle Auto Detect / Always Active
1240-    U_T_AGCR,              //USB Toggle Automatic GCR control
1241-    DBG_TOG,               //DEBUG Toggle On / Off
1242-    DBG_MTRX,              //DEBUG Toggle Matrix Prints
1243-    DBG_KBD,               //DEBUG Toggle Keyboard Prints
1244-    DBG_MOU,               //DEBUG Toggle Mouse Prints
1245-    MD_BOOT,               //Restart into bootloader after hold timeout
1246-};
1247-
1248-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
1249-    [0] = LAYOUT(
1250-        KC_ESC,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,             KC_PSCR, KC_SCRL, KC_PAUS,
1251-        KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS, KC_EQL,  KC_BSPC,   KC_INS,  KC_HOME, KC_PGUP,
1252-        KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_LBRC, KC_RBRC, KC_BSLS,   KC_DEL,  KC_END,  KC_PGDN,
1253-        KC_CAPS, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT, KC_ENT,
1254-        KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT,                              KC_UP,
1255-        KC_LCTL, KC_LGUI, KC_LALT,                   KC_SPC,                             KC_RALT, MO(1),   KC_APP,  KC_RCTL,            KC_LEFT, KC_DOWN, KC_RGHT
1256-    ),
1257-    [1] = LAYOUT(
1258-        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,            KC_MUTE, _______, _______,
1259-        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,   KC_MPLY, KC_MSTP, KC_VOLU,
1260-        _______, RGB_SPD, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, U_T_AUTO,U_T_AGCR,_______, _______, _______, _______, _______,   KC_MPRV, KC_MNXT, KC_VOLD,
1261-        _______, RGB_RMOD,RGB_VAD, RGB_MOD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______,
1262-        _______, RGB_TOG, _______, _______, _______, MD_BOOT, NK_TOGG, _______, _______, _______, _______, _______,                              _______,
1263-        _______, _______, _______,                   _______,                            _______, _______, _______, _______,            _______, _______, _______
1264-    ),
1265-    /*
1266-    [X] = LAYOUT(
1267-        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,            _______, _______, _______,
1268-        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,   _______, _______, _______,
1269-        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,   _______, _______, _______,
1270-        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
1271-        _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______,                              _______,
1272-        _______, _______, _______,                   _______,                            _______, _______, _______, _______,            _______, _______, _______
1273-    ),
1274-    */
1275-};
1276-
1277-#define MODS_SHIFT  (get_mods() & MOD_MASK_SHIFT)
1278-#define MODS_CTRL   (get_mods() & MOD_MASK_CTRL)
1279-#define MODS_ALT    (get_mods() & MOD_MASK_ALT)
1280-
1281-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
1282-    static uint32_t key_timer;
1283-
1284-    switch (keycode) {
1285-        case U_T_AUTO:
1286-            if (record->event.pressed && MODS_SHIFT && MODS_CTRL) {
1287-                TOGGLE_FLAG_AND_PRINT(usb_extra_manual, "USB extra port manual mode");
1288-            }
1289-            return false;
1290-        case U_T_AGCR:
1291-            if (record->event.pressed && MODS_SHIFT && MODS_CTRL) {
1292-                TOGGLE_FLAG_AND_PRINT(usb_gcr_auto, "USB GCR auto mode");
1293-            }
1294-            return false;
1295-        case DBG_TOG:
1296-            if (record->event.pressed) {
1297-                TOGGLE_FLAG_AND_PRINT(debug_enable, "Debug mode");
1298-            }
1299-            return false;
1300-        case DBG_MTRX:
1301-            if (record->event.pressed) {
1302-                TOGGLE_FLAG_AND_PRINT(debug_matrix, "Debug matrix");
1303-            }
1304-            return false;
1305-        case DBG_KBD:
1306-            if (record->event.pressed) {
1307-                TOGGLE_FLAG_AND_PRINT(debug_keyboard, "Debug keyboard");
1308-            }
1309-            return false;
1310-        case DBG_MOU:
1311-            if (record->event.pressed) {
1312-                TOGGLE_FLAG_AND_PRINT(debug_mouse, "Debug mouse");
1313-            }
1314-            return false;
1315-        case MD_BOOT:
1316-            if (record->event.pressed) {
1317-                key_timer = timer_read32();
1318-            } else {
1319-                if (timer_elapsed32(key_timer) >= 500) {
1320-                    reset_keyboard();
1321-                }
1322-            }
1323-            return false;
1324-        case RGB_TOG:
1325-            if (record->event.pressed) {
1326-              switch (rgb_matrix_get_flags()) {
1327-                case LED_FLAG_ALL: {
1328-                    rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR);
1329-                    rgb_matrix_set_color_all(0, 0, 0);
1330-                  }
1331-                  break;
1332-                case (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR): {
1333-                    rgb_matrix_set_flags(LED_FLAG_UNDERGLOW);
1334-                    rgb_matrix_set_color_all(0, 0, 0);
1335diff --git a/keyboards/massdrop/ctrl/keymaps/default_md/keymap.c b/keyboards/massdrop/ctrl/keymaps/default_md/keymap.c
1336deleted file mode 100644
1337index 5fcfd71589fd13441e0841892f67c12693174a7e..0000000000000000000000000000000000000000
1338--- a/keyboards/massdrop/ctrl/keymaps/default_md/keymap.c
1339+++ /dev/null
1340@@ -1,299 +0,0 @@
1341-#include QMK_KEYBOARD_H
1342-
1343-enum ctrl_keycodes {
1344-    L_BRI = SAFE_RANGE, //LED Brightness Increase                                   //Working
1345-    L_BRD,              //LED Brightness Decrease                                   //Working
1346-    L_EDG_I,            //LED Edge Brightness Increase
1347-    L_EDG_D,            //LED Edge Brightness Decrease
1348-    L_EDG_M,            //LED Edge lighting mode
1349-    L_PTN,              //LED Pattern Select Next                                   //Working
1350-    L_PTP,              //LED Pattern Select Previous                               //Working
1351-    L_PSI,              //LED Pattern Speed Increase                                //Working
1352-    L_PSD,              //LED Pattern Speed Decrease                                //Working
1353-    L_RATIOD,
1354-    L_RATIOI,
1355-    L_T_MD,             //LED Toggle Mode                                           //Working
1356-    L_T_ONF,            //LED Toggle On / Off                                       //Broken
1357-    L_ON,               //LED On                                                    //Broken
1358-    L_OFF,              //LED Off                                                   //Broken
1359-    L_T_BR,             //LED Toggle Breath Effect                                  //Working
1360-    L_T_PTD,            //LED Toggle Scrolling Pattern Direction                    //Working
1361-    U_T_AGCR,           //USB Toggle Automatic GCR control                          //Working
1362-    DBG_TOG,            //DEBUG Toggle On / Off                                     //
1363-    DBG_MTRX,           //DEBUG Toggle Matrix Prints                                //
1364-    DBG_KBD,            //DEBUG Toggle Keyboard Prints                              //
1365-    DBG_MOU,            //DEBUG Toggle Mouse Prints                                 //
1366-    DBG_FAC,            //DEBUG Factory light testing (All on white)
1367-    MD_BOOT             //Restart into bootloader after hold timeout                //Working
1368-};
1369-
1370-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
1371-    [0] = LAYOUT(
1372-        KC_ESC,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,             KC_PSCR, KC_SCRL, KC_PAUS,
1373-        KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS, KC_EQL,  KC_BSPC,   KC_INS,  KC_HOME, KC_PGUP,
1374-        KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_LBRC, KC_RBRC, KC_BSLS,   KC_DEL,  KC_END,  KC_PGDN,
1375-        KC_CAPS, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT, KC_ENT,
1376-        KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT,                              KC_UP,
1377-        KC_LCTL, KC_LGUI, KC_LALT,                   KC_SPC,                             KC_RALT, MO(1),   KC_APP,  KC_RCTL,            KC_LEFT, KC_DOWN, KC_RGHT
1378-    ),
1379-    [1] = LAYOUT(
1380-        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,            KC_MUTE, _______, _______,
1381-        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,   KC_MPLY, KC_MSTP, KC_VOLU,
1382-        L_T_BR,  L_PSD,   L_BRI,   L_PSI,   L_EDG_I, _______, _______, _______, U_T_AGCR,_______, _______, _______, _______, _______,   KC_MPRV, KC_MNXT, KC_VOLD,
1383-        L_T_PTD, L_PTP,   L_BRD,   L_PTN,   L_EDG_D, _______, _______, _______, _______, _______, _______, _______, _______,
1384-        _______, L_T_MD,  L_T_ONF, _______, L_EDG_M, MD_BOOT, NK_TOGG, _______, _______, _______, _______, _______,                              _______,
1385-        _______, _______, _______,                   DBG_FAC,                            _______, _______, _______, _______,            _______, _______, _______
1386-    ),
1387-    /*
1388-    [X] = LAYOUT(
1389-        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,            _______, _______, _______,
1390-        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,   _______, _______, _______,
1391-        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,   _______, _______, _______,
1392-        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
1393-        _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______,                              _______,
1394-        _______, _______, _______,                   _______,                            _______, _______, _______, _______,            _______, _______, _______
1395-    ),
1396-    */
1397-};
1398-
1399-#define MODS_SHIFT  (get_mods() & MOD_BIT(KC_LSFT) || get_mods() & MOD_BIT(KC_RSFT))
1400-#define MODS_CTRL  (get_mods() & MOD_BIT(KC_LCTL) || get_mods() & MOD_BIT(KC_RCTL))
1401-#define MODS_ALT  (get_mods() & MOD_BIT(KC_LALT) || get_mods() & MOD_BIT(KC_RALT))
1402-
1403-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
1404-    static uint32_t key_timer;
1405-    static uint8_t scroll_effect = 0;
1406-
1407-    switch (keycode) {
1408-        case L_BRI ... U_T_AGCR:
1409-            if (record->event.pressed) {
1410-                md_led_changed();
1411-            }
1412-            break;
1413-    }
1414-
1415-    switch (keycode) {
1416-        case L_BRI:
1417-            if (record->event.pressed) {
1418-                if (LED_GCR_STEP > LED_GCR_MAX - gcr_desired) gcr_desired = LED_GCR_MAX;
1419-                else gcr_desired += LED_GCR_STEP;
1420-                if (led_animation_breathing) gcr_breathe = gcr_desired;
1421-            }
1422-            return false;
1423-        case L_BRD:
1424-            if (record->event.pressed) {
1425-                if (LED_GCR_STEP > gcr_desired) gcr_desired = 0;
1426-                else gcr_desired -= LED_GCR_STEP;
1427-                if (led_animation_breathing) gcr_breathe = gcr_desired;
1428-            }
1429-            return false;
1430-        case L_EDG_M:
1431-            if (record->event.pressed) {
1432-                led_edge_mode++;
1433-                if (led_edge_mode > LED_EDGE_MODE_MAX) {
1434-                    led_edge_mode = LED_EDGE_MODE_ALL;
1435-                }
1436-            }
1437-            return false;
1438-        case L_EDG_I:
1439-            if (record->event.pressed) {
1440diff --git a/keyboards/massdrop/ctrl/keymaps/default_md/rules.mk b/keyboards/massdrop/ctrl/keymaps/default_md/rules.mk
1441deleted file mode 100644
1442index 064a6f54c1faef1f4a89fb564df6fbc0396b6f4f..0000000000000000000000000000000000000000
1443--- a/keyboards/massdrop/ctrl/keymaps/default_md/rules.mk
1444+++ /dev/null
1445@@ -1,2 +0,0 @@
1446-# This keymap requires Massdrop Configurator support
1447-OPT_DEFS += -DUSE_MASSDROP_CONFIGURATOR
1448diff --git a/keyboards/massdrop/ctrl/readme.md b/keyboards/massdrop/ctrl/readme.md
1449deleted file mode 100644
1450index be1e39328b54622170689c69a48ec512c2bb4965..0000000000000000000000000000000000000000
1451--- a/keyboards/massdrop/ctrl/readme.md
1452+++ /dev/null
1453@@ -1,20 +0,0 @@
1454-# CTRL
1455-
1456-![CTRL](https://massdrop-s3.imgix.net/product-images/massdrop-ntkl-mechanical-keyboard/FP/W6zvr0cTR4KVDY5z8rwp_AI7B6588%20copy%20page.jpg?auto=format&fm=jpg&fit=max&w=700&h=467&dpr=1&q=80)
1457-
1458-The Massdrop CTRL is a TKL mechanical keyboard featuring dual USB-C connectors, an integrated Hi-Speed USB 2.0 hub, and fully customizable RGB backlighting and underlighting.
1459-
1460-Keyboard Maintainer: [Massdrop](https://github.com/massdrop)  
1461-Hardware Supported: Massdrop, Inc. CTRL PCBs utilizing Microchip's ATSAMD51J18A MCU and USB2422 2-Port USB 2.0 Hi-Speed Hub Controller, and ISSI's IS31FL3733 LED Drivers.  
1462-Hardware Availability: [Massdrop CTRL Mechanical Keyboard](https://www.massdrop.com/buy/massdrop-ctrl-mechanical-keyboard)
1463-
1464-Make example for this keyboard (after setting up your build environment):
1465-
1466-    make massdrop/ctrl:default
1467-
1468-For information on flashing this keyboard, visit the following links:
1469-
1470-[Massdrop Loader Releases](https://github.com/Massdrop/mdloader/releases)  
1471-[Massdrop Loader Repository and Instructions](https://github.com/Massdrop/mdloader)
1472-
1473diff --git a/keyboards/massdrop/ctrl/rules.mk b/keyboards/massdrop/ctrl/rules.mk
1474deleted file mode 100644
1475index 869853e858ebcecb54cfb3e43fa7907db58d98f4..0000000000000000000000000000000000000000
1476--- a/keyboards/massdrop/ctrl/rules.mk
1477+++ /dev/null
1478@@ -1,9 +0,0 @@
1479-# project specific files
1480-SRC += config_led.c
1481-
1482-#For platform and packs
1483-ARM_ATSAM = SAMD51J18A
1484-MCU = cortex-m4
1485-
1486-# Bootloader selection
1487-BOOTLOADER = md-boot
1488diff --git a/lib/arm_atsam/packs/arm/cmsis/5.0.1/CMSIS/Include/arm_math.h b/lib/arm_atsam/packs/arm/cmsis/5.0.1/CMSIS/Include/arm_math.h
1489deleted file mode 100644
1490index 4be7e8c8488918711e56fa67406c30d8e0fcd9e1..0000000000000000000000000000000000000000
1491--- a/lib/arm_atsam/packs/arm/cmsis/5.0.1/CMSIS/Include/arm_math.h
1492+++ /dev/null
1493@@ -1,7226 +0,0 @@
1494-/* ----------------------------------------------------------------------
1495- * Project:      CMSIS DSP Library
1496- * Title:        arm_math.h
1497- * Description:  Public header file for CMSIS DSP Library
1498- *
1499- * $Date:        27. January 2017
1500- * $Revision:    V.1.5.1
1501- *
1502- * Target Processor: Cortex-M cores
1503- * -------------------------------------------------------------------- */
1504-/*
1505- * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved.
1506- *
1507- * SPDX-License-Identifier: Apache-2.0
1508- *
1509- * Licensed under the Apache License, Version 2.0 (the License); you may
1510- * not use this file except in compliance with the License.
1511- * You may obtain a copy of the License at
1512- *
1513- * www.apache.org/licenses/LICENSE-2.0
1514- *
1515- * Unless required by applicable law or agreed to in writing, software
1516- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
1517- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1518- * See the License for the specific language governing permissions and
1519- * limitations under the License.
1520- */
1521-
1522-/**
1523-   \mainpage CMSIS DSP Software Library
1524-   *
1525-   * Introduction
1526-   * ------------
1527-   *
1528-   * This user manual describes the CMSIS DSP software library,
1529-   * a suite of common signal processing functions for use on Cortex-M processor based devices.
1530-   *
1531-   * The library is divided into a number of functions each covering a specific category:
1532-   * - Basic math functions
1533-   * - Fast math functions
1534-   * - Complex math functions
1535-   * - Filters
1536-   * - Matrix functions
1537-   * - Transforms
1538-   * - Motor control functions
1539-   * - Statistical functions
1540-   * - Support functions
1541-   * - Interpolation functions
1542-   *
1543-   * The library has separate functions for operating on 8-bit integers, 16-bit integers,
1544-   * 32-bit integer and 32-bit floating-point values.
1545-   *
1546-   * Using the Library
1547-   * ------------
1548-   *
1549-   * The library installer contains prebuilt versions of the libraries in the <code>Lib</code> folder.
1550-   * - arm_cortexM7lfdp_math.lib (Cortex-M7, Little endian, Double Precision Floating Point Unit)
1551-   * - arm_cortexM7bfdp_math.lib (Cortex-M7, Big endian, Double Precision Floating Point Unit)
1552-   * - arm_cortexM7lfsp_math.lib (Cortex-M7, Little endian, Single Precision Floating Point Unit)
1553-   * - arm_cortexM7bfsp_math.lib (Cortex-M7, Big endian and Single Precision Floating Point Unit on)
1554-   * - arm_cortexM7l_math.lib (Cortex-M7, Little endian)
1555-   * - arm_cortexM7b_math.lib (Cortex-M7, Big endian)
1556-   * - arm_cortexM4lf_math.lib (Cortex-M4, Little endian, Floating Point Unit)
1557-   * - arm_cortexM4bf_math.lib (Cortex-M4, Big endian, Floating Point Unit)
1558-   * - arm_cortexM4l_math.lib (Cortex-M4, Little endian)
1559-   * - arm_cortexM4b_math.lib (Cortex-M4, Big endian)
1560-   * - arm_cortexM3l_math.lib (Cortex-M3, Little endian)
1561-   * - arm_cortexM3b_math.lib (Cortex-M3, Big endian)
1562-   * - arm_cortexM0l_math.lib (Cortex-M0 / Cortex-M0+, Little endian)
1563-   * - arm_cortexM0b_math.lib (Cortex-M0 / Cortex-M0+, Big endian)
1564-   * - arm_ARMv8MBLl_math.lib (ARMv8M Baseline, Little endian)
1565-   * - arm_ARMv8MMLl_math.lib (ARMv8M Mainline, Little endian)
1566-   * - arm_ARMv8MMLlfsp_math.lib (ARMv8M Mainline, Little endian, Single Precision Floating Point Unit)
1567-   * - arm_ARMv8MMLld_math.lib (ARMv8M Mainline, Little endian, DSP instructions)
1568-   * - arm_ARMv8MMLldfsp_math.lib (ARMv8M Mainline, Little endian, DSP instructions, Single Precision Floating Point Unit)
1569-   *
1570-   * The library functions are declared in the public file <code>arm_math.h</code> which is placed in the <code>Include</code> folder.
1571-   * Simply include this file and link the appropriate library in the application and begin calling the library functions. The Library supports single
1572-   * public header file <code> arm_math.h</code> for Cortex-M cores with little endian and big endian. Same header file will be used for floating point unit(FPU) variants.
1573-   * Define the appropriate pre processor MACRO ARM_MATH_CM7 or ARM_MATH_CM4 or  ARM_MATH_CM3 or
1574-   * ARM_MATH_CM0 or ARM_MATH_CM0PLUS depending on the target processor in the application.
1575-   * For ARMv8M cores define pre processor MACRO ARM_MATH_ARMV8MBL or ARM_MATH_ARMV8MML.
1576-   * Set Pre processor MACRO __DSP_PRESENT if ARMv8M Mainline core supports DSP instructions.
1577-   * 
1578-   *
1579-   * Examples
1580-   * --------
1581-   *
1582-   * The library ships with a number of examples which demonstrate how to use the library functions.
1583-   *
1584-   * Toolchain Support
1585-   * ------------
1586-   *
1587-   * The library has been developed and tested with MDK-ARM version 5.14.0.0
1588-   * The library is being tested in GCC and IAR toolchains and updates on this activity will be made available shortly.
1589-   *
1590-   * Building the Library
1591-   * ------------
1592-   *
1593diff --git a/lib/arm_atsam/packs/arm/cmsis/5.0.1/CMSIS/Include/cmsis_compiler.h b/lib/arm_atsam/packs/arm/cmsis/5.0.1/CMSIS/Include/cmsis_compiler.h
1594deleted file mode 100644
1595index 8b989f851ae7e8aa9b28053c942ffb8d453eeb1a..0000000000000000000000000000000000000000
1596--- a/lib/arm_atsam/packs/arm/cmsis/5.0.1/CMSIS/Include/cmsis_compiler.h
1597+++ /dev/null
1598@@ -1,223 +0,0 @@
1599-/**************************************************************************//**
1600- * @file     cmsis_compiler.h
1601- * @brief    CMSIS compiler generic header file
1602- * @version  V5.0.1
1603- * @date     30. January 2017
1604- ******************************************************************************/
1605-/*
1606- * Copyright (c) 2009-2017 ARM Limited. All rights reserved.
1607- *
1608- * SPDX-License-Identifier: Apache-2.0
1609- *
1610- * Licensed under the Apache License, Version 2.0 (the License); you may
1611- * not use this file except in compliance with the License.
1612- * You may obtain a copy of the License at
1613- *
1614- * www.apache.org/licenses/LICENSE-2.0
1615- *
1616- * Unless required by applicable law or agreed to in writing, software
1617- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
1618- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1619- * See the License for the specific language governing permissions and
1620- * limitations under the License.
1621- */
1622-
1623-#ifndef __CMSIS_COMPILER_H
1624-#define __CMSIS_COMPILER_H
1625-
1626-#include <stdint.h>
1627-
1628-/*
1629- * ARM Compiler 4/5
1630- */
1631-#if   defined ( __CC_ARM )
1632-  #include "cmsis_armcc.h"
1633-
1634-
1635-/*
1636- * ARM Compiler 6 (armclang)
1637- */
1638-#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
1639-  #include "cmsis_armclang.h"
1640-
1641-
1642-/*
1643- * GNU Compiler
1644- */
1645-#elif defined ( __GNUC__ )
1646-  #include "cmsis_gcc.h"
1647-
1648-
1649-/*
1650- * IAR Compiler
1651- */
1652-#elif defined ( __ICCARM__ )
1653-
1654-  #ifndef   __ASM
1655-    #define __ASM                     __asm
1656-  #endif
1657-  #ifndef   __INLINE
1658-    #define __INLINE                  inline
1659-  #endif
1660-  #ifndef   __STATIC_INLINE
1661-    #define __STATIC_INLINE           static inline
1662-  #endif
1663-
1664-  #include <cmsis_iar.h>
1665-
1666-  #ifndef   __NO_RETURN
1667-    #define __NO_RETURN               __noreturn
1668-  #endif
1669-  #ifndef   __USED
1670-    #define __USED                    __root
1671-  #endif
1672-  #ifndef   __WEAK
1673-    #define __WEAK                    __weak
1674-  #endif
1675-  #ifndef   __UNALIGNED_UINT32
1676-    __packed struct T_UINT32 { uint32_t v; };
1677-      #define __UNALIGNED_UINT32(x)     (((struct T_UINT32 *)(x))->v)
1678-  #endif
1679-  #ifndef   __ALIGNED
1680-    #warning No compiler specific solution for __ALIGNED. __ALIGNED is ignored.
1681-    #define __ALIGNED(x)
1682-  #endif
1683-  #ifndef   __PACKED
1684-    #define __PACKED                  __packed
1685-  #endif
1686-  #ifndef   __PACKED_STRUCT
1687-    #define __PACKED_STRUCT           __packed struct
1688-  #endif
1689-
1690-
1691-/*
1692- * TI ARM Compiler
1693- */
1694-#elif defined ( __TI_ARM__ )
1695-  #include <cmsis_ccs.h>
1696-
1697-  #ifndef   __ASM
1698diff --git a/lib/arm_atsam/packs/arm/cmsis/5.0.1/CMSIS/Include/cmsis_gcc.h b/lib/arm_atsam/packs/arm/cmsis/5.0.1/CMSIS/Include/cmsis_gcc.h
1699deleted file mode 100644
1700index 074cd7ab32790a692c7486af02e5ce4b02a5617a..0000000000000000000000000000000000000000
1701--- a/lib/arm_atsam/packs/arm/cmsis/5.0.1/CMSIS/Include/cmsis_gcc.h
1702+++ /dev/null
1703@@ -1,1899 +0,0 @@
1704-/**************************************************************************//**
1705- * @file     cmsis_gcc.h
1706- * @brief    CMSIS compiler GCC header file
1707- * @version  V5.0.1
1708- * @date     02. February 2017
1709- ******************************************************************************/
1710-/*
1711- * Copyright (c) 2009-2017 ARM Limited. All rights reserved.
1712- *
1713- * SPDX-License-Identifier: Apache-2.0
1714- *
1715- * Licensed under the Apache License, Version 2.0 (the License); you may
1716- * not use this file except in compliance with the License.
1717- * You may obtain a copy of the License at
1718- *
1719- * www.apache.org/licenses/LICENSE-2.0
1720- *
1721- * Unless required by applicable law or agreed to in writing, software
1722- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
1723- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1724- * See the License for the specific language governing permissions and
1725- * limitations under the License.
1726- */
1727-
1728-#ifndef __CMSIS_GCC_H
1729-#define __CMSIS_GCC_H
1730-
1731-/* ignore some GCC warnings */
1732-#pragma GCC diagnostic push
1733-#pragma GCC diagnostic ignored "-Wsign-conversion"
1734-#pragma GCC diagnostic ignored "-Wconversion"
1735-#pragma GCC diagnostic ignored "-Wunused-parameter"
1736-
1737-/* CMSIS compiler specific defines */
1738-#ifndef   __ASM
1739-  #define __ASM                     __asm
1740-#endif
1741-#ifndef   __INLINE
1742-  #define __INLINE                  inline
1743-#endif
1744-#ifndef   __STATIC_INLINE
1745-  #define __STATIC_INLINE           static inline
1746-#endif
1747-#ifndef   __NO_RETURN
1748-  #define __NO_RETURN               __attribute__((noreturn))
1749-#endif
1750-#ifndef   __USED
1751-  #define __USED                    __attribute__((used))
1752-#endif
1753-#ifndef   __WEAK
1754-  #define __WEAK                    __attribute__((weak))
1755-#endif
1756-#ifndef   __UNALIGNED_UINT32
1757-#pragma GCC diagnostic push
1758-#pragma GCC diagnostic ignored "-Wpacked"
1759-#pragma GCC diagnostic ignored "-Wattributes"
1760-  struct __attribute__((packed)) T_UINT32 { uint32_t v; };
1761-#pragma GCC diagnostic pop
1762-  #define __UNALIGNED_UINT32(x)     (((struct T_UINT32 *)(x))->v)
1763-#endif
1764-#ifndef   __ALIGNED
1765-  #define __ALIGNED(x)              __attribute__((aligned(x)))
1766-#endif
1767-#ifndef   __PACKED
1768-  #define __PACKED                  __attribute__((packed, aligned(1)))
1769-#endif
1770-#ifndef   __PACKED_STRUCT
1771-  #define __PACKED_STRUCT           struct __attribute__((packed, aligned(1)))
1772-#endif
1773-
1774-
1775-/* ###########################  Core Function Access  ########################### */
1776-/** \ingroup  CMSIS_Core_FunctionInterface
1777-    \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions
1778-  @{
1779- */
1780-
1781-/**
1782-  \brief   Enable IRQ Interrupts
1783-  \details Enables IRQ interrupts by clearing the I-bit in the CPSR.
1784-           Can only be executed in Privileged modes.
1785- */
1786-__attribute__((always_inline)) __STATIC_INLINE void __enable_irq(void)
1787-{
1788-  __ASM volatile ("cpsie i" : : : "memory");
1789-}
1790-
1791-
1792-/**
1793-  \brief   Disable IRQ Interrupts
1794-  \details Disables IRQ interrupts by setting the I-bit in the CPSR.
1795-           Can only be executed in Privileged modes.
1796- */
1797-__attribute__((always_inline)) __STATIC_INLINE void __disable_irq(void)
1798-{
1799-  __ASM volatile ("cpsid i" : : : "memory");
1800-}
1801-
1802-
1803diff --git a/lib/arm_atsam/packs/arm/cmsis/5.0.1/CMSIS/Include/core_cm4.h b/lib/arm_atsam/packs/arm/cmsis/5.0.1/CMSIS/Include/core_cm4.h
1804deleted file mode 100644
1805index 2da78d3983e85180abbe53a478079f26b0bf81d7..0000000000000000000000000000000000000000
1806--- a/lib/arm_atsam/packs/arm/cmsis/5.0.1/CMSIS/Include/core_cm4.h
1807+++ /dev/null
1808@@ -1,2103 +0,0 @@
1809-/**************************************************************************//**
1810- * @file     core_cm4.h
1811- * @brief    CMSIS Cortex-M4 Core Peripheral Access Layer Header File
1812- * @version  V5.0.1
1813- * @date     30. January 2017
1814- ******************************************************************************/
1815-/*
1816- * Copyright (c) 2009-2016 ARM Limited. All rights reserved.
1817- *
1818- * SPDX-License-Identifier: Apache-2.0
1819- *
1820- * Licensed under the Apache License, Version 2.0 (the License); you may
1821- * not use this file except in compliance with the License.
1822- * You may obtain a copy of the License at
1823- *
1824- * www.apache.org/licenses/LICENSE-2.0
1825- *
1826- * Unless required by applicable law or agreed to in writing, software
1827- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
1828- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1829- * See the License for the specific language governing permissions and
1830- * limitations under the License.
1831- */
1832-
1833-#if   defined ( __ICCARM__ )
1834- #pragma system_include         /* treat file as system include file for MISRA check */
1835-#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
1836-  #pragma clang system_header   /* treat file as system include file */
1837-#endif
1838-
1839-#ifndef __CORE_CM4_H_GENERIC
1840-#define __CORE_CM4_H_GENERIC
1841-
1842-#include <stdint.h>
1843-
1844-#ifdef __cplusplus
1845- extern "C" {
1846-#endif
1847-
1848-/**
1849-  \page CMSIS_MISRA_Exceptions  MISRA-C:2004 Compliance Exceptions
1850-  CMSIS violates the following MISRA-C:2004 rules:
1851-
1852-   \li Required Rule 8.5, object/function definition in header file.<br>
1853-     Function definitions in header files are used to allow 'inlining'.
1854-
1855-   \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.<br>
1856-     Unions are used for effective representation of core registers.
1857-
1858-   \li Advisory Rule 19.7, Function-like macro defined.<br>
1859-     Function-like macros are used to allow more efficient code.
1860- */
1861-
1862-
1863-/*******************************************************************************
1864- *                 CMSIS definitions
1865- ******************************************************************************/
1866-/**
1867-  \ingroup Cortex_M4
1868-  @{
1869- */
1870-
1871-/*  CMSIS CM4 definitions */
1872-#define __CM4_CMSIS_VERSION_MAIN  ( 5U)                                  /*!< [31:16] CMSIS HAL main version */
1873-#define __CM4_CMSIS_VERSION_SUB   ( 0U)                                  /*!< [15:0]  CMSIS HAL sub version */
1874-#define __CM4_CMSIS_VERSION       ((__CM4_CMSIS_VERSION_MAIN << 16U) | \
1875-                                    __CM4_CMSIS_VERSION_SUB           )  /*!< CMSIS HAL version number */
1876-
1877-#define __CORTEX_M                (4U)                                   /*!< Cortex-M Core */
1878-
1879-/** __FPU_USED indicates whether an FPU is used or not.
1880-    For this, __FPU_PRESENT has to be checked prior to making use of FPU specific registers and functions.
1881-*/
1882-#if defined ( __CC_ARM )
1883-  #if defined __TARGET_FPU_VFP
1884-    #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)
1885-      #define __FPU_USED       1U
1886-    #else
1887-      #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
1888-      #define __FPU_USED       0U
1889-    #endif
1890-  #else
1891-    #define __FPU_USED         0U
1892-  #endif
1893-
1894-#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
1895-  #if defined __ARM_PCS_VFP
1896-    #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)
1897-      #define __FPU_USED       1U
1898-    #else
1899-      #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
1900-      #define __FPU_USED       0U
1901-    #endif
1902-  #else
1903-    #define __FPU_USED         0U
1904-  #endif
1905-
1906-#elif defined ( __GNUC__ )
1907-  #if defined (__VFP_FP__) && !defined(__SOFTFP__)
1908diff --git a/lib/arm_atsam/packs/arm/cmsis/5.0.1/LICENSE.txt b/lib/arm_atsam/packs/arm/cmsis/5.0.1/LICENSE.txt
1909deleted file mode 100644
1910index 8dada3edaf50dbc082c9a125058f25def75e625a..0000000000000000000000000000000000000000
1911--- a/lib/arm_atsam/packs/arm/cmsis/5.0.1/LICENSE.txt
1912+++ /dev/null
1913@@ -1,201 +0,0 @@
1914-                                 Apache License
1915-                           Version 2.0, January 2004
1916-                        http://www.apache.org/licenses/
1917-
1918-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1919-
1920-   1. Definitions.
1921-
1922-      "License" shall mean the terms and conditions for use, reproduction,
1923-      and distribution as defined by Sections 1 through 9 of this document.
1924-
1925-      "Licensor" shall mean the copyright owner or entity authorized by
1926-      the copyright owner that is granting the License.
1927-
1928-      "Legal Entity" shall mean the union of the acting entity and all
1929-      other entities that control, are controlled by, or are under common
1930-      control with that entity. For the purposes of this definition,
1931-      "control" means (i) the power, direct or indirect, to cause the
1932-      direction or management of such entity, whether by contract or
1933-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
1934-      outstanding shares, or (iii) beneficial ownership of such entity.
1935-
1936-      "You" (or "Your") shall mean an individual or Legal Entity
1937-      exercising permissions granted by this License.
1938-
1939-      "Source" form shall mean the preferred form for making modifications,
1940-      including but not limited to software source code, documentation
1941-      source, and configuration files.
1942-
1943-      "Object" form shall mean any form resulting from mechanical
1944-      transformation or translation of a Source form, including but
1945-      not limited to compiled object code, generated documentation,
1946-      and conversions to other media types.
1947-
1948-      "Work" shall mean the work of authorship, whether in Source or
1949-      Object form, made available under the License, as indicated by a
1950-      copyright notice that is included in or attached to the work
1951-      (an example is provided in the Appendix below).
1952-
1953-      "Derivative Works" shall mean any work, whether in Source or Object
1954-      form, that is based on (or derived from) the Work and for which the
1955-      editorial revisions, annotations, elaborations, or other modifications
1956-      represent, as a whole, an original work of authorship. For the purposes
1957-      of this License, Derivative Works shall not include works that remain
1958-      separable from, or merely link (or bind by name) to the interfaces of,
1959-      the Work and Derivative Works thereof.
1960-
1961-      "Contribution" shall mean any work of authorship, including
1962-      the original version of the Work and any modifications or additions
1963-      to that Work or Derivative Works thereof, that is intentionally
1964-      submitted to Licensor for inclusion in the Work by the copyright owner
1965-      or by an individual or Legal Entity authorized to submit on behalf of
1966-      the copyright owner. For the purposes of this definition, "submitted"
1967-      means any form of electronic, verbal, or written communication sent
1968-      to the Licensor or its representatives, including but not limited to
1969-      communication on electronic mailing lists, source code control systems,
1970-      and issue tracking systems that are managed by, or on behalf of, the
1971-      Licensor for the purpose of discussing and improving the Work, but
1972-      excluding communication that is conspicuously marked or otherwise
1973-      designated in writing by the copyright owner as "Not a Contribution."
1974-
1975-      "Contributor" shall mean Licensor and any individual or Legal Entity
1976-      on behalf of whom a Contribution has been received by Licensor and
1977-      subsequently incorporated within the Work.
1978-
1979-   2. Grant of Copyright License. Subject to the terms and conditions of
1980-      this License, each Contributor hereby grants to You a perpetual,
1981-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
1982-      copyright license to reproduce, prepare Derivative Works of,
1983-      publicly display, publicly perform, sublicense, and distribute the
1984-      Work and such Derivative Works in Source or Object form.
1985-
1986-   3. Grant of Patent License. Subject to the terms and conditions of
1987-      this License, each Contributor hereby grants to You a perpetual,
1988-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
1989-      (except as stated in this section) patent license to make, have made,
1990-      use, offer to sell, sell, import, and otherwise transfer the Work,
1991-      where such license applies only to those patent claims licensable
1992-      by such Contributor that are necessarily infringed by their
1993-      Contribution(s) alone or by combination of their Contribution(s)
1994-      with the Work to which such Contribution(s) was submitted. If You
1995-      institute patent litigation against any entity (including a
1996-      cross-claim or counterclaim in a lawsuit) alleging that the Work
1997-      or a Contribution incorporated within the Work constitutes direct
1998-      or contributory patent infringement, then any patent licenses
1999-      granted to You under this License for that Work shall terminate
2000-      as of the date such litigation is filed.
2001-
2002-   4. Redistribution. You may reproduce and distribute copies of the
2003-      Work or Derivative Works thereof in any medium, with or without
2004-      modifications, and in Source or Object form, provided that You
2005-      meet the following conditions:
2006-
2007-      (a) You must give any other recipients of the Work or
2008-          Derivative Works a copy of this License; and
2009-
2010-      (b) You must cause any modified files to carry prominent notices
2011-          stating that You changed the files; and
2012-
2013diff --git a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/gcc/gcc/samd51j18a_flash.ld b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/gcc/gcc/samd51j18a_flash.ld
2014deleted file mode 100644
2015index 1c635478633e1c0afafdaae8207ae299b73d261a..0000000000000000000000000000000000000000
2016--- a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/gcc/gcc/samd51j18a_flash.ld
2017+++ /dev/null
2018@@ -1,185 +0,0 @@
2019-/**
2020- * \file
2021- *
2022- * \brief Linker script for running in internal FLASH on the SAMD51J18A
2023- *
2024- * Copyright (c) 2017 Microchip Technology Inc.
2025- *
2026- * \asf_license_start
2027- *
2028- * \page License
2029- *
2030- * SPDX-License-Identifier: Apache-2.0
2031- *
2032- * Licensed under the Apache License, Version 2.0 (the "License"); you may
2033- * not use this file except in compliance with the License.
2034- * You may obtain a copy of the Licence at
2035- * 
2036- * http://www.apache.org/licenses/LICENSE-2.0
2037- * 
2038- * Unless required by applicable law or agreed to in writing, software
2039- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
2040- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2041- * See the License for the specific language governing permissions and
2042- * limitations under the License.
2043- *
2044- * \asf_license_stop
2045- *
2046- */
2047-
2048-
2049-OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
2050-OUTPUT_ARCH(arm)
2051-SEARCH_DIR(.)
2052-
2053-/* Memory Spaces Definitions */
2054-MEMORY
2055-{
2056-/*rom      (rx)  : ORIGIN = 0x00000000, LENGTH = 0x00040000*/
2057-  rom      (rx)  : ORIGIN = 0x00004000, LENGTH = 0x0003C000
2058-  ram      (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00020000
2059-  bkupram  (rwx) : ORIGIN = 0x47000000, LENGTH = 0x00002000
2060-  qspi     (rwx) : ORIGIN = 0x04000000, LENGTH = 0x01000000
2061-}
2062-
2063-/* The stack size used by the application. NOTE: you need to adjust according to your application. */
2064-STACK_SIZE = DEFINED(STACK_SIZE) ? STACK_SIZE : DEFINED(__stack_size__) ? __stack_size__ : 0x8000;
2065-
2066-/* The heap size used by the application. */
2067-HEAP_SIZE = DEFINED(HEAP_SIZE) ? HEAP_SIZE : DEFINED(__heap_size__) ? __heap_size__ : 0x800;
2068-
2069-_srom = ORIGIN(rom);
2070-_lrom = LENGTH(rom);
2071-_erom = ORIGIN(rom) + LENGTH(rom);
2072-_sram = ORIGIN(ram);
2073-_lram = LENGTH(ram);
2074-_eram = ORIGIN(ram) + LENGTH(ram);
2075-
2076-/* Section Definitions */
2077-SECTIONS
2078-{
2079-    .text :
2080-    {
2081-        . = ALIGN(4);
2082-        _sfixed = .;
2083-        KEEP(*(.vectors .vectors.*))
2084-        *(.text .text.* .gnu.linkonce.t.*)
2085-        *(.glue_7t) *(.glue_7)
2086-        *(.rodata .rodata* .gnu.linkonce.r.*)
2087-        *(.ARM.extab* .gnu.linkonce.armextab.*)
2088-
2089-        /* Support C constructors, and C destructors in both user code
2090-           and the C library. This also provides support for C++ code. */
2091-        . = ALIGN(4);
2092-        KEEP(*(.init))
2093-        . = ALIGN(4);
2094-        __preinit_array_start = .;
2095-        KEEP (*(.preinit_array))
2096-        __preinit_array_end = .;
2097-
2098-        . = ALIGN(4);
2099-        __init_array_start = .;
2100-        KEEP (*(SORT(.init_array.*)))
2101-        KEEP (*(.init_array))
2102-        __init_array_end = .;
2103-
2104-        . = ALIGN(4);
2105-        KEEP (*crtbegin.o(.ctors))
2106-        KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
2107-        KEEP (*(SORT(.ctors.*)))
2108-        KEEP (*crtend.o(.ctors))
2109-
2110-        . = ALIGN(4);
2111-        KEEP(*(.fini))
2112-
2113-        . = ALIGN(4);
2114-        __fini_array_start = .;
2115-        KEEP (*(.fini_array))
2116-        KEEP (*(SORT(.fini_array.*)))
2117-        __fini_array_end = .;
2118diff --git a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component-version.h b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component-version.h
2119deleted file mode 100644
2120index 80801fc12878932ee6694c12cc2bef6397b46223..0000000000000000000000000000000000000000
2121--- a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component-version.h
2122+++ /dev/null
2123@@ -1,65 +0,0 @@
2124-/**
2125- * \file
2126- *
2127- * \brief Component version header file
2128- *
2129- * Copyright (c) 2017 Atmel Corporation, a wholly owned subsidiary of Microchip Technology Inc.
2130- *
2131- * \license_start
2132- *
2133- * \page License
2134- *
2135- * Licensed under the Apache License, Version 2.0 (the "License");
2136- * you may not use this file except in compliance with the License.
2137- * You may obtain a copy of the License at
2138- *
2139- *   http://www.apache.org/licenses/LICENSE-2.0
2140- *
2141- * Unless required by applicable law or agreed to in writing, software
2142- * distributed under the License is distributed on an "AS IS" BASIS,
2143- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2144- * See the License for the specific language governing permissions and
2145- * limitations under the License.
2146- *
2147- * \license_stop
2148- *
2149- */
2150-
2151-#ifndef _COMPONENT_VERSION_H_INCLUDED
2152-#define _COMPONENT_VERSION_H_INCLUDED
2153-
2154-#define COMPONENT_VERSION_MAJOR 1
2155-#define COMPONENT_VERSION_MINOR 0
2156-
2157-//
2158-// The COMPONENT_VERSION define is composed of the major and the minor version number.
2159-//
2160-// The last four digits of the COMPONENT_VERSION is the minor version with leading zeros.
2161-// The rest of the COMPONENT_VERSION is the major version, with leading zeros. The COMPONENT_VERSION
2162-// is at least 8 digits long.
2163-//
2164-#define COMPONENT_VERSION 00010000
2165-
2166-//
2167-// The build number does not refer to the component, but to the build number
2168-// of the device pack that provides the component.
2169-//
2170-#define BUILD_NUMBER 70
2171-
2172-//
2173-// The COMPONENT_VERSION_STRING is a string (enclosed in ") that can be used for logging or embedding.
2174-//
2175-#define COMPONENT_VERSION_STRING "1.0"
2176-
2177-//
2178-// The COMPONENT_DATE_STRING contains a timestamp of when the pack was generated.
2179-//
2180-// The COMPONENT_DATE_STRING is written out using the following strftime pattern.
2181-//
2182-//     "%Y-%m-%d %H:%M:%S"
2183-//
2184-//
2185-#define COMPONENT_DATE_STRING "2017-08-09 09:59:41"
2186-
2187-#endif/* #ifndef _COMPONENT_VERSION_H_INCLUDED */
2188-
2189diff --git a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/ac.h b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/ac.h
2190deleted file mode 100644
2191index 24623d00acb1696c7e0faa0e131228f4f55ab0ad..0000000000000000000000000000000000000000
2192--- a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/ac.h
2193+++ /dev/null
2194@@ -1,598 +0,0 @@
2195-/**
2196- * \file
2197- *
2198- * \brief Component description for AC
2199- *
2200- * Copyright (c) 2017 Microchip Technology Inc.
2201- *
2202- * \asf_license_start
2203- *
2204- * \page License
2205- *
2206- * SPDX-License-Identifier: Apache-2.0
2207- *
2208- * Licensed under the Apache License, Version 2.0 (the "License"); you may
2209- * not use this file except in compliance with the License.
2210- * You may obtain a copy of the Licence at
2211- * 
2212- * http://www.apache.org/licenses/LICENSE-2.0
2213- * 
2214- * Unless required by applicable law or agreed to in writing, software
2215- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
2216- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2217- * See the License for the specific language governing permissions and
2218- * limitations under the License.
2219- *
2220- * \asf_license_stop
2221- *
2222- */
2223-
2224-#ifndef _SAMD51_AC_COMPONENT_
2225-#define _SAMD51_AC_COMPONENT_
2226-
2227-/* ========================================================================== */
2228-/**  SOFTWARE API DEFINITION FOR AC */
2229-/* ========================================================================== */
2230-/** \addtogroup SAMD51_AC Analog Comparators */
2231-/*@{*/
2232-
2233-#define AC_U2501
2234-#define REV_AC                      0x100
2235-
2236-/* -------- AC_CTRLA : (AC Offset: 0x00) (R/W  8) Control A -------- */
2237-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
2238-typedef union {
2239-  struct {
2240-    uint8_t  SWRST:1;          /*!< bit:      0  Software Reset                     */
2241-    uint8_t  ENABLE:1;         /*!< bit:      1  Enable                             */
2242-    uint8_t  :6;               /*!< bit:  2.. 7  Reserved                           */
2243-  } bit;                       /*!< Structure used for bit  access                  */
2244-  uint8_t reg;                 /*!< Type      used for register access              */
2245-} AC_CTRLA_Type;
2246-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
2247-
2248-#define AC_CTRLA_OFFSET             0x00         /**< \brief (AC_CTRLA offset) Control A */
2249-#define AC_CTRLA_RESETVALUE         _U_(0x00)    /**< \brief (AC_CTRLA reset_value) Control A */
2250-
2251-#define AC_CTRLA_SWRST_Pos          0            /**< \brief (AC_CTRLA) Software Reset */
2252-#define AC_CTRLA_SWRST              (_U_(0x1) << AC_CTRLA_SWRST_Pos)
2253-#define AC_CTRLA_ENABLE_Pos         1            /**< \brief (AC_CTRLA) Enable */
2254-#define AC_CTRLA_ENABLE             (_U_(0x1) << AC_CTRLA_ENABLE_Pos)
2255-#define AC_CTRLA_MASK               _U_(0x03)    /**< \brief (AC_CTRLA) MASK Register */
2256-
2257-/* -------- AC_CTRLB : (AC Offset: 0x01) ( /W  8) Control B -------- */
2258-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
2259-typedef union {
2260-  struct {
2261-    uint8_t  START0:1;         /*!< bit:      0  Comparator 0 Start Comparison      */
2262-    uint8_t  START1:1;         /*!< bit:      1  Comparator 1 Start Comparison      */
2263-    uint8_t  :6;               /*!< bit:  2.. 7  Reserved                           */
2264-  } bit;                       /*!< Structure used for bit  access                  */
2265-  struct {
2266-    uint8_t  START:2;          /*!< bit:  0.. 1  Comparator x Start Comparison      */
2267-    uint8_t  :6;               /*!< bit:  2.. 7  Reserved                           */
2268-  } vec;                       /*!< Structure used for vec  access                  */
2269-  uint8_t reg;                 /*!< Type      used for register access              */
2270-} AC_CTRLB_Type;
2271-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
2272-
2273-#define AC_CTRLB_OFFSET             0x01         /**< \brief (AC_CTRLB offset) Control B */
2274-#define AC_CTRLB_RESETVALUE         _U_(0x00)    /**< \brief (AC_CTRLB reset_value) Control B */
2275-
2276-#define AC_CTRLB_START0_Pos         0            /**< \brief (AC_CTRLB) Comparator 0 Start Comparison */
2277-#define AC_CTRLB_START0             (_U_(1) << AC_CTRLB_START0_Pos)
2278-#define AC_CTRLB_START1_Pos         1            /**< \brief (AC_CTRLB) Comparator 1 Start Comparison */
2279-#define AC_CTRLB_START1             (_U_(1) << AC_CTRLB_START1_Pos)
2280-#define AC_CTRLB_START_Pos          0            /**< \brief (AC_CTRLB) Comparator x Start Comparison */
2281-#define AC_CTRLB_START_Msk          (_U_(0x3) << AC_CTRLB_START_Pos)
2282-#define AC_CTRLB_START(value)       (AC_CTRLB_START_Msk & ((value) << AC_CTRLB_START_Pos))
2283-#define AC_CTRLB_MASK               _U_(0x03)    /**< \brief (AC_CTRLB) MASK Register */
2284-
2285-/* -------- AC_EVCTRL : (AC Offset: 0x02) (R/W 16) Event Control -------- */
2286-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
2287-typedef union {
2288-  struct {
2289-    uint16_t COMPEO0:1;        /*!< bit:      0  Comparator 0 Event Output Enable   */
2290-    uint16_t COMPEO1:1;        /*!< bit:      1  Comparator 1 Event Output Enable   */
2291-    uint16_t :2;               /*!< bit:  2.. 3  Reserved                           */
2292-    uint16_t WINEO0:1;         /*!< bit:      4  Window 0 Event Output Enable       */
2293-    uint16_t :3;               /*!< bit:  5.. 7  Reserved                           */
2294diff --git a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/adc.h b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/adc.h
2295deleted file mode 100644
2296index 33c38ae3f8fac8ca1de84379548f839605f4ff07..0000000000000000000000000000000000000000
2297--- a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/adc.h
2298+++ /dev/null
2299@@ -1,871 +0,0 @@
2300-/**
2301- * \file
2302- *
2303- * \brief Component description for ADC
2304- *
2305- * Copyright (c) 2017 Microchip Technology Inc.
2306- *
2307- * \asf_license_start
2308- *
2309- * \page License
2310- *
2311- * SPDX-License-Identifier: Apache-2.0
2312- *
2313- * Licensed under the Apache License, Version 2.0 (the "License"); you may
2314- * not use this file except in compliance with the License.
2315- * You may obtain a copy of the Licence at
2316- * 
2317- * http://www.apache.org/licenses/LICENSE-2.0
2318- * 
2319- * Unless required by applicable law or agreed to in writing, software
2320- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
2321- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2322- * See the License for the specific language governing permissions and
2323- * limitations under the License.
2324- *
2325- * \asf_license_stop
2326- *
2327- */
2328-
2329-#ifndef _SAMD51_ADC_COMPONENT_
2330-#define _SAMD51_ADC_COMPONENT_
2331-
2332-/* ========================================================================== */
2333-/**  SOFTWARE API DEFINITION FOR ADC */
2334-/* ========================================================================== */
2335-/** \addtogroup SAMD51_ADC Analog Digital Converter */
2336-/*@{*/
2337-
2338-#define ADC_U2500
2339-#define REV_ADC                     0x100
2340-
2341-/* -------- ADC_CTRLA : (ADC Offset: 0x00) (R/W 16) Control A -------- */
2342-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
2343-typedef union {
2344-  struct {
2345-    uint16_t SWRST:1;          /*!< bit:      0  Software Reset                     */
2346-    uint16_t ENABLE:1;         /*!< bit:      1  Enable                             */
2347-    uint16_t :1;               /*!< bit:      2  Reserved                           */
2348-    uint16_t DUALSEL:2;        /*!< bit:  3.. 4  Dual Mode Trigger Selection        */
2349-    uint16_t SLAVEEN:1;        /*!< bit:      5  Slave Enable                       */
2350-    uint16_t RUNSTDBY:1;       /*!< bit:      6  Run in Standby                     */
2351-    uint16_t ONDEMAND:1;       /*!< bit:      7  On Demand Control                  */
2352-    uint16_t PRESCALER:3;      /*!< bit:  8..10  Prescaler Configuration            */
2353-    uint16_t :4;               /*!< bit: 11..14  Reserved                           */
2354-    uint16_t R2R:1;            /*!< bit:     15  Rail to Rail Operation Enable      */
2355-  } bit;                       /*!< Structure used for bit  access                  */
2356-  uint16_t reg;                /*!< Type      used for register access              */
2357-} ADC_CTRLA_Type;
2358-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
2359-
2360-#define ADC_CTRLA_OFFSET            0x00         /**< \brief (ADC_CTRLA offset) Control A */
2361-#define ADC_CTRLA_RESETVALUE        _U_(0x0000)  /**< \brief (ADC_CTRLA reset_value) Control A */
2362-
2363-#define ADC_CTRLA_SWRST_Pos         0            /**< \brief (ADC_CTRLA) Software Reset */
2364-#define ADC_CTRLA_SWRST             (_U_(0x1) << ADC_CTRLA_SWRST_Pos)
2365-#define ADC_CTRLA_ENABLE_Pos        1            /**< \brief (ADC_CTRLA) Enable */
2366-#define ADC_CTRLA_ENABLE            (_U_(0x1) << ADC_CTRLA_ENABLE_Pos)
2367-#define ADC_CTRLA_DUALSEL_Pos       3            /**< \brief (ADC_CTRLA) Dual Mode Trigger Selection */
2368-#define ADC_CTRLA_DUALSEL_Msk       (_U_(0x3) << ADC_CTRLA_DUALSEL_Pos)
2369-#define ADC_CTRLA_DUALSEL(value)    (ADC_CTRLA_DUALSEL_Msk & ((value) << ADC_CTRLA_DUALSEL_Pos))
2370-#define   ADC_CTRLA_DUALSEL_BOTH_Val      _U_(0x0)   /**< \brief (ADC_CTRLA) Start event or software trigger will start a conversion on both ADCs */
2371-#define   ADC_CTRLA_DUALSEL_INTERLEAVE_Val _U_(0x1)   /**< \brief (ADC_CTRLA) START event or software trigger will alternatingly start a conversion on ADC0 and ADC1 */
2372-#define ADC_CTRLA_DUALSEL_BOTH      (ADC_CTRLA_DUALSEL_BOTH_Val    << ADC_CTRLA_DUALSEL_Pos)
2373-#define ADC_CTRLA_DUALSEL_INTERLEAVE (ADC_CTRLA_DUALSEL_INTERLEAVE_Val << ADC_CTRLA_DUALSEL_Pos)
2374-#define ADC_CTRLA_SLAVEEN_Pos       5            /**< \brief (ADC_CTRLA) Slave Enable */
2375-#define ADC_CTRLA_SLAVEEN           (_U_(0x1) << ADC_CTRLA_SLAVEEN_Pos)
2376-#define ADC_CTRLA_RUNSTDBY_Pos      6            /**< \brief (ADC_CTRLA) Run in Standby */
2377-#define ADC_CTRLA_RUNSTDBY          (_U_(0x1) << ADC_CTRLA_RUNSTDBY_Pos)
2378-#define ADC_CTRLA_ONDEMAND_Pos      7            /**< \brief (ADC_CTRLA) On Demand Control */
2379-#define ADC_CTRLA_ONDEMAND          (_U_(0x1) << ADC_CTRLA_ONDEMAND_Pos)
2380-#define ADC_CTRLA_PRESCALER_Pos     8            /**< \brief (ADC_CTRLA) Prescaler Configuration */
2381-#define ADC_CTRLA_PRESCALER_Msk     (_U_(0x7) << ADC_CTRLA_PRESCALER_Pos)
2382-#define ADC_CTRLA_PRESCALER(value)  (ADC_CTRLA_PRESCALER_Msk & ((value) << ADC_CTRLA_PRESCALER_Pos))
2383-#define   ADC_CTRLA_PRESCALER_DIV2_Val    _U_(0x0)   /**< \brief (ADC_CTRLA) Peripheral clock divided by 2 */
2384-#define   ADC_CTRLA_PRESCALER_DIV4_Val    _U_(0x1)   /**< \brief (ADC_CTRLA) Peripheral clock divided by 4 */
2385-#define   ADC_CTRLA_PRESCALER_DIV8_Val    _U_(0x2)   /**< \brief (ADC_CTRLA) Peripheral clock divided by 8 */
2386-#define   ADC_CTRLA_PRESCALER_DIV16_Val   _U_(0x3)   /**< \brief (ADC_CTRLA) Peripheral clock divided by 16 */
2387-#define   ADC_CTRLA_PRESCALER_DIV32_Val   _U_(0x4)   /**< \brief (ADC_CTRLA) Peripheral clock divided by 32 */
2388-#define   ADC_CTRLA_PRESCALER_DIV64_Val   _U_(0x5)   /**< \brief (ADC_CTRLA) Peripheral clock divided by 64 */
2389-#define   ADC_CTRLA_PRESCALER_DIV128_Val  _U_(0x6)   /**< \brief (ADC_CTRLA) Peripheral clock divided by 128 */
2390-#define   ADC_CTRLA_PRESCALER_DIV256_Val  _U_(0x7)   /**< \brief (ADC_CTRLA) Peripheral clock divided by 256 */
2391-#define ADC_CTRLA_PRESCALER_DIV2    (ADC_CTRLA_PRESCALER_DIV2_Val  << ADC_CTRLA_PRESCALER_Pos)
2392-#define ADC_CTRLA_PRESCALER_DIV4    (ADC_CTRLA_PRESCALER_DIV4_Val  << ADC_CTRLA_PRESCALER_Pos)
2393-#define ADC_CTRLA_PRESCALER_DIV8    (ADC_CTRLA_PRESCALER_DIV8_Val  << ADC_CTRLA_PRESCALER_Pos)
2394-#define ADC_CTRLA_PRESCALER_DIV16   (ADC_CTRLA_PRESCALER_DIV16_Val << ADC_CTRLA_PRESCALER_Pos)
2395-#define ADC_CTRLA_PRESCALER_DIV32   (ADC_CTRLA_PRESCALER_DIV32_Val << ADC_CTRLA_PRESCALER_Pos)
2396-#define ADC_CTRLA_PRESCALER_DIV64   (ADC_CTRLA_PRESCALER_DIV64_Val << ADC_CTRLA_PRESCALER_Pos)
2397-#define ADC_CTRLA_PRESCALER_DIV128  (ADC_CTRLA_PRESCALER_DIV128_Val << ADC_CTRLA_PRESCALER_Pos)
2398-#define ADC_CTRLA_PRESCALER_DIV256  (ADC_CTRLA_PRESCALER_DIV256_Val << ADC_CTRLA_PRESCALER_Pos)
2399diff --git a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/aes.h b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/aes.h
2400deleted file mode 100644
2401index 5a74eac28b5012fecb80f60662f2f5c2352aae9e..0000000000000000000000000000000000000000
2402--- a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/aes.h
2403+++ /dev/null
2404@@ -1,375 +0,0 @@
2405-/**
2406- * \file
2407- *
2408- * \brief Component description for AES
2409- *
2410- * Copyright (c) 2017 Microchip Technology Inc.
2411- *
2412- * \asf_license_start
2413- *
2414- * \page License
2415- *
2416- * SPDX-License-Identifier: Apache-2.0
2417- *
2418- * Licensed under the Apache License, Version 2.0 (the "License"); you may
2419- * not use this file except in compliance with the License.
2420- * You may obtain a copy of the Licence at
2421- * 
2422- * http://www.apache.org/licenses/LICENSE-2.0
2423- * 
2424- * Unless required by applicable law or agreed to in writing, software
2425- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
2426- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2427- * See the License for the specific language governing permissions and
2428- * limitations under the License.
2429- *
2430- * \asf_license_stop
2431- *
2432- */
2433-
2434-#ifndef _SAMD51_AES_COMPONENT_
2435-#define _SAMD51_AES_COMPONENT_
2436-
2437-/* ========================================================================== */
2438-/**  SOFTWARE API DEFINITION FOR AES */
2439-/* ========================================================================== */
2440-/** \addtogroup SAMD51_AES Advanced Encryption Standard */
2441-/*@{*/
2442-
2443-#define AES_U2238
2444-#define REV_AES                     0x220
2445-
2446-/* -------- AES_CTRLA : (AES Offset: 0x00) (R/W 32) Control A -------- */
2447-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
2448-typedef union {
2449-  struct {
2450-    uint32_t SWRST:1;          /*!< bit:      0  Software Reset                     */
2451-    uint32_t ENABLE:1;         /*!< bit:      1  Enable                             */
2452-    uint32_t AESMODE:3;        /*!< bit:  2.. 4  AES Modes of operation             */
2453-    uint32_t CFBS:3;           /*!< bit:  5.. 7  Cipher Feedback Block Size         */
2454-    uint32_t KEYSIZE:2;        /*!< bit:  8.. 9  Encryption Key Size                */
2455-    uint32_t CIPHER:1;         /*!< bit:     10  Cipher Mode                        */
2456-    uint32_t STARTMODE:1;      /*!< bit:     11  Start Mode Select                  */
2457-    uint32_t LOD:1;            /*!< bit:     12  Last Output Data Mode              */
2458-    uint32_t KEYGEN:1;         /*!< bit:     13  Last Key Generation                */
2459-    uint32_t XORKEY:1;         /*!< bit:     14  XOR Key Operation                  */
2460-    uint32_t :1;               /*!< bit:     15  Reserved                           */
2461-    uint32_t CTYPE:4;          /*!< bit: 16..19  Counter Measure Type               */
2462-    uint32_t :12;              /*!< bit: 20..31  Reserved                           */
2463-  } bit;                       /*!< Structure used for bit  access                  */
2464-  uint32_t reg;                /*!< Type      used for register access              */
2465-} AES_CTRLA_Type;
2466-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
2467-
2468-#define AES_CTRLA_OFFSET            0x00         /**< \brief (AES_CTRLA offset) Control A */
2469-#define AES_CTRLA_RESETVALUE        _U_(0x00000000) /**< \brief (AES_CTRLA reset_value) Control A */
2470-
2471-#define AES_CTRLA_SWRST_Pos         0            /**< \brief (AES_CTRLA) Software Reset */
2472-#define AES_CTRLA_SWRST             (_U_(0x1) << AES_CTRLA_SWRST_Pos)
2473-#define AES_CTRLA_ENABLE_Pos        1            /**< \brief (AES_CTRLA) Enable */
2474-#define AES_CTRLA_ENABLE            (_U_(0x1) << AES_CTRLA_ENABLE_Pos)
2475-#define AES_CTRLA_AESMODE_Pos       2            /**< \brief (AES_CTRLA) AES Modes of operation */
2476-#define AES_CTRLA_AESMODE_Msk       (_U_(0x7) << AES_CTRLA_AESMODE_Pos)
2477-#define AES_CTRLA_AESMODE(value)    (AES_CTRLA_AESMODE_Msk & ((value) << AES_CTRLA_AESMODE_Pos))
2478-#define   AES_CTRLA_AESMODE_ECB_Val       _U_(0x0)   /**< \brief (AES_CTRLA) Electronic code book mode */
2479-#define   AES_CTRLA_AESMODE_CBC_Val       _U_(0x1)   /**< \brief (AES_CTRLA) Cipher block chaining mode */
2480-#define   AES_CTRLA_AESMODE_OFB_Val       _U_(0x2)   /**< \brief (AES_CTRLA) Output feedback mode */
2481-#define   AES_CTRLA_AESMODE_CFB_Val       _U_(0x3)   /**< \brief (AES_CTRLA) Cipher feedback mode */
2482-#define   AES_CTRLA_AESMODE_COUNTER_Val   _U_(0x4)   /**< \brief (AES_CTRLA) Counter mode */
2483-#define   AES_CTRLA_AESMODE_CCM_Val       _U_(0x5)   /**< \brief (AES_CTRLA) CCM mode */
2484-#define   AES_CTRLA_AESMODE_GCM_Val       _U_(0x6)   /**< \brief (AES_CTRLA) Galois counter mode */
2485-#define AES_CTRLA_AESMODE_ECB       (AES_CTRLA_AESMODE_ECB_Val     << AES_CTRLA_AESMODE_Pos)
2486-#define AES_CTRLA_AESMODE_CBC       (AES_CTRLA_AESMODE_CBC_Val     << AES_CTRLA_AESMODE_Pos)
2487-#define AES_CTRLA_AESMODE_OFB       (AES_CTRLA_AESMODE_OFB_Val     << AES_CTRLA_AESMODE_Pos)
2488-#define AES_CTRLA_AESMODE_CFB       (AES_CTRLA_AESMODE_CFB_Val     << AES_CTRLA_AESMODE_Pos)
2489-#define AES_CTRLA_AESMODE_COUNTER   (AES_CTRLA_AESMODE_COUNTER_Val << AES_CTRLA_AESMODE_Pos)
2490-#define AES_CTRLA_AESMODE_CCM       (AES_CTRLA_AESMODE_CCM_Val     << AES_CTRLA_AESMODE_Pos)
2491-#define AES_CTRLA_AESMODE_GCM       (AES_CTRLA_AESMODE_GCM_Val     << AES_CTRLA_AESMODE_Pos)
2492-#define AES_CTRLA_CFBS_Pos          5            /**< \brief (AES_CTRLA) Cipher Feedback Block Size */
2493-#define AES_CTRLA_CFBS_Msk          (_U_(0x7) << AES_CTRLA_CFBS_Pos)
2494-#define AES_CTRLA_CFBS(value)       (AES_CTRLA_CFBS_Msk & ((value) << AES_CTRLA_CFBS_Pos))
2495-#define   AES_CTRLA_CFBS_128BIT_Val       _U_(0x0)   /**< \brief (AES_CTRLA) 128-bit Input data block for Encryption/Decryption in Cipher Feedback mode */
2496-#define   AES_CTRLA_CFBS_64BIT_Val        _U_(0x1)   /**< \brief (AES_CTRLA) 64-bit Input data block for Encryption/Decryption in Cipher Feedback mode */
2497-#define   AES_CTRLA_CFBS_32BIT_Val        _U_(0x2)   /**< \brief (AES_CTRLA) 32-bit Input data block for Encryption/Decryption in Cipher Feedback mode */
2498-#define   AES_CTRLA_CFBS_16BIT_Val        _U_(0x3)   /**< \brief (AES_CTRLA) 16-bit Input data block for Encryption/Decryption in Cipher Feedback mode */
2499-#define   AES_CTRLA_CFBS_8BIT_Val         _U_(0x4)   /**< \brief (AES_CTRLA) 8-bit Input data block for Encryption/Decryption in Cipher Feedback mode */
2500-#define AES_CTRLA_CFBS_128BIT       (AES_CTRLA_CFBS_128BIT_Val     << AES_CTRLA_CFBS_Pos)
2501-#define AES_CTRLA_CFBS_64BIT        (AES_CTRLA_CFBS_64BIT_Val      << AES_CTRLA_CFBS_Pos)
2502-#define AES_CTRLA_CFBS_32BIT        (AES_CTRLA_CFBS_32BIT_Val      << AES_CTRLA_CFBS_Pos)
2503-#define AES_CTRLA_CFBS_16BIT        (AES_CTRLA_CFBS_16BIT_Val      << AES_CTRLA_CFBS_Pos)
2504diff --git a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/can.h b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/can.h
2505deleted file mode 100644
2506index 9d6754998c61a774d9d5753fa5ab959d55bf0458..0000000000000000000000000000000000000000
2507--- a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/can.h
2508+++ /dev/null
2509@@ -1,3207 +0,0 @@
2510-/**
2511- * \file
2512- *
2513- * \brief Component description for CAN
2514- *
2515- * Copyright (c) 2016 Atmel Corporation. All rights reserved.
2516- *
2517- * \asf_license_start
2518- *
2519- * \page License
2520- *
2521- * Redistribution and use in source and binary forms, with or without
2522- * modification, are permitted provided that the following conditions are met:
2523- *
2524- * 1. Redistributions of source code must retain the above copyright notice,
2525- *    this list of conditions and the following disclaimer.
2526- *
2527- * 2. Redistributions in binary form must reproduce the above copyright notice,
2528- *    this list of conditions and the following disclaimer in the documentation
2529- *    and/or other materials provided with the distribution.
2530- *
2531- * 3. The name of Atmel may not be used to endorse or promote products derived
2532- *    from this software without specific prior written permission.
2533- *
2534- * 4. This software may only be redistributed and used in connection with an
2535- *    Atmel microcontroller product.
2536- *
2537- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
2538- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
2539- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
2540- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
2541- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
2542- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
2543- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2544- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
2545- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
2546- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
2547- * POSSIBILITY OF SUCH DAMAGE.
2548- *
2549- * \asf_license_stop
2550- *
2551- */
2552-
2553-#ifndef _SAMD51_CAN_COMPONENT_
2554-#define _SAMD51_CAN_COMPONENT_
2555-
2556-/* ========================================================================== */
2557-/**  SOFTWARE API DEFINITION FOR CAN */
2558-/* ========================================================================== */
2559-/** \addtogroup SAMD51_CAN Control Area Network */
2560-/*@{*/
2561-
2562-#define CAN_U2003
2563-#define REV_CAN                     0x321
2564-
2565-/* -------- CAN_CREL : (CAN Offset: 0x00) (R/  32) Core Release -------- */
2566-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
2567-typedef union {
2568-  struct {
2569-    uint32_t :20;              /*!< bit:  0..19  Reserved                           */
2570-    uint32_t SUBSTEP:4;        /*!< bit: 20..23  Sub-step of Core Release           */
2571-    uint32_t STEP:4;           /*!< bit: 24..27  Step of Core Release               */
2572-    uint32_t REL:4;            /*!< bit: 28..31  Core Release                       */
2573-  } bit;                       /*!< Structure used for bit  access                  */
2574-  uint32_t reg;                /*!< Type      used for register access              */
2575-} CAN_CREL_Type;
2576-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
2577-
2578-#define CAN_CREL_OFFSET             0x00         /**< \brief (CAN_CREL offset) Core Release */
2579-#define CAN_CREL_RESETVALUE         0x32100000u  /**< \brief (CAN_CREL reset_value) Core Release */
2580-
2581-#define CAN_CREL_SUBSTEP_Pos        20           /**< \brief (CAN_CREL) Sub-step of Core Release */
2582-#define CAN_CREL_SUBSTEP_Msk        (0xFu << CAN_CREL_SUBSTEP_Pos)
2583-#define CAN_CREL_SUBSTEP(value)     (CAN_CREL_SUBSTEP_Msk & ((value) << CAN_CREL_SUBSTEP_Pos))
2584-#define CAN_CREL_STEP_Pos           24           /**< \brief (CAN_CREL) Step of Core Release */
2585-#define CAN_CREL_STEP_Msk           (0xFu << CAN_CREL_STEP_Pos)
2586-#define CAN_CREL_STEP(value)        (CAN_CREL_STEP_Msk & ((value) << CAN_CREL_STEP_Pos))
2587-#define CAN_CREL_REL_Pos            28           /**< \brief (CAN_CREL) Core Release */
2588-#define CAN_CREL_REL_Msk            (0xFu << CAN_CREL_REL_Pos)
2589-#define CAN_CREL_REL(value)         (CAN_CREL_REL_Msk & ((value) << CAN_CREL_REL_Pos))
2590-#define CAN_CREL_MASK               0xFFF00000u  /**< \brief (CAN_CREL) MASK Register */
2591-
2592-/* -------- CAN_ENDN : (CAN Offset: 0x04) (R/  32) Endian -------- */
2593-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
2594-typedef union {
2595-  struct {
2596-    uint32_t ETV:32;           /*!< bit:  0..31  Endianness Test Value              */
2597-  } bit;                       /*!< Structure used for bit  access                  */
2598-  uint32_t reg;                /*!< Type      used for register access              */
2599-} CAN_ENDN_Type;
2600-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
2601-
2602-#define CAN_ENDN_OFFSET             0x04         /**< \brief (CAN_ENDN offset) Endian */
2603-#define CAN_ENDN_RESETVALUE         0x87654321u  /**< \brief (CAN_ENDN reset_value) Endian */
2604-
2605-#define CAN_ENDN_ETV_Pos            0            /**< \brief (CAN_ENDN) Endianness Test Value */
2606-#define CAN_ENDN_ETV_Msk            (0xFFFFFFFFu << CAN_ENDN_ETV_Pos)
2607-#define CAN_ENDN_ETV(value)         (CAN_ENDN_ETV_Msk & ((value) << CAN_ENDN_ETV_Pos))
2608-#define CAN_ENDN_MASK               0xFFFFFFFFu  /**< \brief (CAN_ENDN) MASK Register */
2609diff --git a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/ccl.h b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/ccl.h
2610deleted file mode 100644
2611index 890e81edf631d4400a0cec302f4edfc99e24c567..0000000000000000000000000000000000000000
2612--- a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/ccl.h
2613+++ /dev/null
2614@@ -1,228 +0,0 @@
2615-/**
2616- * \file
2617- *
2618- * \brief Component description for CCL
2619- *
2620- * Copyright (c) 2017 Microchip Technology Inc.
2621- *
2622- * \asf_license_start
2623- *
2624- * \page License
2625- *
2626- * SPDX-License-Identifier: Apache-2.0
2627- *
2628- * Licensed under the Apache License, Version 2.0 (the "License"); you may
2629- * not use this file except in compliance with the License.
2630- * You may obtain a copy of the Licence at
2631- * 
2632- * http://www.apache.org/licenses/LICENSE-2.0
2633- * 
2634- * Unless required by applicable law or agreed to in writing, software
2635- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
2636- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2637- * See the License for the specific language governing permissions and
2638- * limitations under the License.
2639- *
2640- * \asf_license_stop
2641- *
2642- */
2643-
2644-#ifndef _SAMD51_CCL_COMPONENT_
2645-#define _SAMD51_CCL_COMPONENT_
2646-
2647-/* ========================================================================== */
2648-/**  SOFTWARE API DEFINITION FOR CCL */
2649-/* ========================================================================== */
2650-/** \addtogroup SAMD51_CCL Configurable Custom Logic */
2651-/*@{*/
2652-
2653-#define CCL_U2225
2654-#define REV_CCL                     0x110
2655-
2656-/* -------- CCL_CTRL : (CCL Offset: 0x0) (R/W  8) Control -------- */
2657-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
2658-typedef union {
2659-  struct {
2660-    uint8_t  SWRST:1;          /*!< bit:      0  Software Reset                     */
2661-    uint8_t  ENABLE:1;         /*!< bit:      1  Enable                             */
2662-    uint8_t  :4;               /*!< bit:  2.. 5  Reserved                           */
2663-    uint8_t  RUNSTDBY:1;       /*!< bit:      6  Run in Standby                     */
2664-    uint8_t  :1;               /*!< bit:      7  Reserved                           */
2665-  } bit;                       /*!< Structure used for bit  access                  */
2666-  uint8_t reg;                 /*!< Type      used for register access              */
2667-} CCL_CTRL_Type;
2668-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
2669-
2670-#define CCL_CTRL_OFFSET             0x0          /**< \brief (CCL_CTRL offset) Control */
2671-#define CCL_CTRL_RESETVALUE         _U_(0x00)    /**< \brief (CCL_CTRL reset_value) Control */
2672-
2673-#define CCL_CTRL_SWRST_Pos          0            /**< \brief (CCL_CTRL) Software Reset */
2674-#define CCL_CTRL_SWRST              (_U_(0x1) << CCL_CTRL_SWRST_Pos)
2675-#define CCL_CTRL_ENABLE_Pos         1            /**< \brief (CCL_CTRL) Enable */
2676-#define CCL_CTRL_ENABLE             (_U_(0x1) << CCL_CTRL_ENABLE_Pos)
2677-#define CCL_CTRL_RUNSTDBY_Pos       6            /**< \brief (CCL_CTRL) Run in Standby */
2678-#define CCL_CTRL_RUNSTDBY           (_U_(0x1) << CCL_CTRL_RUNSTDBY_Pos)
2679-#define CCL_CTRL_MASK               _U_(0x43)    /**< \brief (CCL_CTRL) MASK Register */
2680-
2681-/* -------- CCL_SEQCTRL : (CCL Offset: 0x4) (R/W  8) SEQ Control x -------- */
2682-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
2683-typedef union {
2684-  struct {
2685-    uint8_t  SEQSEL:4;         /*!< bit:  0.. 3  Sequential Selection               */
2686-    uint8_t  :4;               /*!< bit:  4.. 7  Reserved                           */
2687-  } bit;                       /*!< Structure used for bit  access                  */
2688-  uint8_t reg;                 /*!< Type      used for register access              */
2689-} CCL_SEQCTRL_Type;
2690-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
2691-
2692-#define CCL_SEQCTRL_OFFSET          0x4          /**< \brief (CCL_SEQCTRL offset) SEQ Control x */
2693-#define CCL_SEQCTRL_RESETVALUE      _U_(0x00)    /**< \brief (CCL_SEQCTRL reset_value) SEQ Control x */
2694-
2695-#define CCL_SEQCTRL_SEQSEL_Pos      0            /**< \brief (CCL_SEQCTRL) Sequential Selection */
2696-#define CCL_SEQCTRL_SEQSEL_Msk      (_U_(0xF) << CCL_SEQCTRL_SEQSEL_Pos)
2697-#define CCL_SEQCTRL_SEQSEL(value)   (CCL_SEQCTRL_SEQSEL_Msk & ((value) << CCL_SEQCTRL_SEQSEL_Pos))
2698-#define   CCL_SEQCTRL_SEQSEL_DISABLE_Val  _U_(0x0)   /**< \brief (CCL_SEQCTRL) Sequential logic is disabled */
2699-#define   CCL_SEQCTRL_SEQSEL_DFF_Val      _U_(0x1)   /**< \brief (CCL_SEQCTRL) D flip flop */
2700-#define   CCL_SEQCTRL_SEQSEL_JK_Val       _U_(0x2)   /**< \brief (CCL_SEQCTRL) JK flip flop */
2701-#define   CCL_SEQCTRL_SEQSEL_LATCH_Val    _U_(0x3)   /**< \brief (CCL_SEQCTRL) D latch */
2702-#define   CCL_SEQCTRL_SEQSEL_RS_Val       _U_(0x4)   /**< \brief (CCL_SEQCTRL) RS latch */
2703-#define CCL_SEQCTRL_SEQSEL_DISABLE  (CCL_SEQCTRL_SEQSEL_DISABLE_Val << CCL_SEQCTRL_SEQSEL_Pos)
2704-#define CCL_SEQCTRL_SEQSEL_DFF      (CCL_SEQCTRL_SEQSEL_DFF_Val    << CCL_SEQCTRL_SEQSEL_Pos)
2705-#define CCL_SEQCTRL_SEQSEL_JK       (CCL_SEQCTRL_SEQSEL_JK_Val     << CCL_SEQCTRL_SEQSEL_Pos)
2706-#define CCL_SEQCTRL_SEQSEL_LATCH    (CCL_SEQCTRL_SEQSEL_LATCH_Val  << CCL_SEQCTRL_SEQSEL_Pos)
2707-#define CCL_SEQCTRL_SEQSEL_RS       (CCL_SEQCTRL_SEQSEL_RS_Val     << CCL_SEQCTRL_SEQSEL_Pos)
2708-#define CCL_SEQCTRL_MASK            _U_(0x0F)    /**< \brief (CCL_SEQCTRL) MASK Register */
2709-
2710-/* -------- CCL_LUTCTRL : (CCL Offset: 0x8) (R/W 32) LUT Control x -------- */
2711-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
2712-typedef union {
2713-  struct {
2714diff --git a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/cmcc.h b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/cmcc.h
2715deleted file mode 100644
2716index 92fa6813ef838a0105f1b242e509594462c358e8..0000000000000000000000000000000000000000
2717--- a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/cmcc.h
2718+++ /dev/null
2719@@ -1,357 +0,0 @@
2720-/**
2721- * \file
2722- *
2723- * \brief Component description for CMCC
2724- *
2725- * Copyright (c) 2017 Microchip Technology Inc.
2726- *
2727- * \asf_license_start
2728- *
2729- * \page License
2730- *
2731- * SPDX-License-Identifier: Apache-2.0
2732- *
2733- * Licensed under the Apache License, Version 2.0 (the "License"); you may
2734- * not use this file except in compliance with the License.
2735- * You may obtain a copy of the Licence at
2736- * 
2737- * http://www.apache.org/licenses/LICENSE-2.0
2738- * 
2739- * Unless required by applicable law or agreed to in writing, software
2740- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
2741- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2742- * See the License for the specific language governing permissions and
2743- * limitations under the License.
2744- *
2745- * \asf_license_stop
2746- *
2747- */
2748-
2749-#ifndef _SAMD51_CMCC_COMPONENT_
2750-#define _SAMD51_CMCC_COMPONENT_
2751-
2752-/* ========================================================================== */
2753-/**  SOFTWARE API DEFINITION FOR CMCC */
2754-/* ========================================================================== */
2755-/** \addtogroup SAMD51_CMCC Cortex M Cache Controller */
2756-/*@{*/
2757-
2758-#define CMCC_U2015
2759-#define REV_CMCC                    0x600
2760-
2761-/* -------- CMCC_TYPE : (CMCC Offset: 0x00) (R/  32) Cache Type Register -------- */
2762-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
2763-typedef union {
2764-  struct {
2765-    uint32_t :1;               /*!< bit:      0  Reserved                           */
2766-    uint32_t GCLK:1;           /*!< bit:      1  dynamic Clock Gating supported     */
2767-    uint32_t :2;               /*!< bit:  2.. 3  Reserved                           */
2768-    uint32_t RRP:1;            /*!< bit:      4  Round Robin Policy supported       */
2769-    uint32_t WAYNUM:2;         /*!< bit:  5.. 6  Number of Way                      */
2770-    uint32_t LCKDOWN:1;        /*!< bit:      7  Lock Down supported                */
2771-    uint32_t CSIZE:3;          /*!< bit:  8..10  Cache Size                         */
2772-    uint32_t CLSIZE:3;         /*!< bit: 11..13  Cache Line Size                    */
2773-    uint32_t :18;              /*!< bit: 14..31  Reserved                           */
2774-  } bit;                       /*!< Structure used for bit  access                  */
2775-  uint32_t reg;                /*!< Type      used for register access              */
2776-} CMCC_TYPE_Type;
2777-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
2778-
2779-#define CMCC_TYPE_OFFSET            0x00         /**< \brief (CMCC_TYPE offset) Cache Type Register */
2780-#define CMCC_TYPE_RESETVALUE        _U_(0x000012D2) /**< \brief (CMCC_TYPE reset_value) Cache Type Register */
2781-
2782-#define CMCC_TYPE_GCLK_Pos          1            /**< \brief (CMCC_TYPE) dynamic Clock Gating supported */
2783-#define CMCC_TYPE_GCLK              (_U_(0x1) << CMCC_TYPE_GCLK_Pos)
2784-#define CMCC_TYPE_RRP_Pos           4            /**< \brief (CMCC_TYPE) Round Robin Policy supported */
2785-#define CMCC_TYPE_RRP               (_U_(0x1) << CMCC_TYPE_RRP_Pos)
2786-#define CMCC_TYPE_WAYNUM_Pos        5            /**< \brief (CMCC_TYPE) Number of Way */
2787-#define CMCC_TYPE_WAYNUM_Msk        (_U_(0x3) << CMCC_TYPE_WAYNUM_Pos)
2788-#define CMCC_TYPE_WAYNUM(value)     (CMCC_TYPE_WAYNUM_Msk & ((value) << CMCC_TYPE_WAYNUM_Pos))
2789-#define   CMCC_TYPE_WAYNUM_DMAPPED_Val    _U_(0x0)   /**< \brief (CMCC_TYPE) Direct Mapped Cache */
2790-#define   CMCC_TYPE_WAYNUM_ARCH2WAY_Val   _U_(0x1)   /**< \brief (CMCC_TYPE) 2-WAY set associative */
2791-#define   CMCC_TYPE_WAYNUM_ARCH4WAY_Val   _U_(0x2)   /**< \brief (CMCC_TYPE) 4-WAY set associative */
2792-#define CMCC_TYPE_WAYNUM_DMAPPED    (CMCC_TYPE_WAYNUM_DMAPPED_Val  << CMCC_TYPE_WAYNUM_Pos)
2793-#define CMCC_TYPE_WAYNUM_ARCH2WAY   (CMCC_TYPE_WAYNUM_ARCH2WAY_Val << CMCC_TYPE_WAYNUM_Pos)
2794-#define CMCC_TYPE_WAYNUM_ARCH4WAY   (CMCC_TYPE_WAYNUM_ARCH4WAY_Val << CMCC_TYPE_WAYNUM_Pos)
2795-#define CMCC_TYPE_LCKDOWN_Pos       7            /**< \brief (CMCC_TYPE) Lock Down supported */
2796-#define CMCC_TYPE_LCKDOWN           (_U_(0x1) << CMCC_TYPE_LCKDOWN_Pos)
2797-#define CMCC_TYPE_CSIZE_Pos         8            /**< \brief (CMCC_TYPE) Cache Size */
2798-#define CMCC_TYPE_CSIZE_Msk         (_U_(0x7) << CMCC_TYPE_CSIZE_Pos)
2799-#define CMCC_TYPE_CSIZE(value)      (CMCC_TYPE_CSIZE_Msk & ((value) << CMCC_TYPE_CSIZE_Pos))
2800-#define   CMCC_TYPE_CSIZE_CSIZE_1KB_Val   _U_(0x0)   /**< \brief (CMCC_TYPE) Cache Size is 1 KB */
2801-#define   CMCC_TYPE_CSIZE_CSIZE_2KB_Val   _U_(0x1)   /**< \brief (CMCC_TYPE) Cache Size is 2 KB */
2802-#define   CMCC_TYPE_CSIZE_CSIZE_4KB_Val   _U_(0x2)   /**< \brief (CMCC_TYPE) Cache Size is 4 KB */
2803-#define   CMCC_TYPE_CSIZE_CSIZE_8KB_Val   _U_(0x3)   /**< \brief (CMCC_TYPE) Cache Size is 8 KB */
2804-#define   CMCC_TYPE_CSIZE_CSIZE_16KB_Val  _U_(0x4)   /**< \brief (CMCC_TYPE) Cache Size is 16 KB */
2805-#define   CMCC_TYPE_CSIZE_CSIZE_32KB_Val  _U_(0x5)   /**< \brief (CMCC_TYPE) Cache Size is 32 KB */
2806-#define   CMCC_TYPE_CSIZE_CSIZE_64KB_Val  _U_(0x6)   /**< \brief (CMCC_TYPE) Cache Size is 64 KB */
2807-#define CMCC_TYPE_CSIZE_CSIZE_1KB   (CMCC_TYPE_CSIZE_CSIZE_1KB_Val << CMCC_TYPE_CSIZE_Pos)
2808-#define CMCC_TYPE_CSIZE_CSIZE_2KB   (CMCC_TYPE_CSIZE_CSIZE_2KB_Val << CMCC_TYPE_CSIZE_Pos)
2809-#define CMCC_TYPE_CSIZE_CSIZE_4KB   (CMCC_TYPE_CSIZE_CSIZE_4KB_Val << CMCC_TYPE_CSIZE_Pos)
2810-#define CMCC_TYPE_CSIZE_CSIZE_8KB   (CMCC_TYPE_CSIZE_CSIZE_8KB_Val << CMCC_TYPE_CSIZE_Pos)
2811-#define CMCC_TYPE_CSIZE_CSIZE_16KB  (CMCC_TYPE_CSIZE_CSIZE_16KB_Val << CMCC_TYPE_CSIZE_Pos)
2812-#define CMCC_TYPE_CSIZE_CSIZE_32KB  (CMCC_TYPE_CSIZE_CSIZE_32KB_Val << CMCC_TYPE_CSIZE_Pos)
2813-#define CMCC_TYPE_CSIZE_CSIZE_64KB  (CMCC_TYPE_CSIZE_CSIZE_64KB_Val << CMCC_TYPE_CSIZE_Pos)
2814-#define CMCC_TYPE_CLSIZE_Pos        11           /**< \brief (CMCC_TYPE) Cache Line Size */
2815-#define CMCC_TYPE_CLSIZE_Msk        (_U_(0x7) << CMCC_TYPE_CLSIZE_Pos)
2816-#define CMCC_TYPE_CLSIZE(value)     (CMCC_TYPE_CLSIZE_Msk & ((value) << CMCC_TYPE_CLSIZE_Pos))
2817-#define   CMCC_TYPE_CLSIZE_CLSIZE_4B_Val  _U_(0x0)   /**< \brief (CMCC_TYPE) Cache Line Size is 4 bytes */
2818-#define   CMCC_TYPE_CLSIZE_CLSIZE_8B_Val  _U_(0x1)   /**< \brief (CMCC_TYPE) Cache Line Size is 8 bytes */
2819diff --git a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/dac.h b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/dac.h
2820deleted file mode 100644
2821index c67efda303e2336199a61d83b97bdd44016e6935..0000000000000000000000000000000000000000
2822--- a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/dac.h
2823+++ /dev/null
2824@@ -1,544 +0,0 @@
2825-/**
2826- * \file
2827- *
2828- * \brief Component description for DAC
2829- *
2830- * Copyright (c) 2017 Microchip Technology Inc.
2831- *
2832- * \asf_license_start
2833- *
2834- * \page License
2835- *
2836- * SPDX-License-Identifier: Apache-2.0
2837- *
2838- * Licensed under the Apache License, Version 2.0 (the "License"); you may
2839- * not use this file except in compliance with the License.
2840- * You may obtain a copy of the Licence at
2841- * 
2842- * http://www.apache.org/licenses/LICENSE-2.0
2843- * 
2844- * Unless required by applicable law or agreed to in writing, software
2845- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
2846- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2847- * See the License for the specific language governing permissions and
2848- * limitations under the License.
2849- *
2850- * \asf_license_stop
2851- *
2852- */
2853-
2854-#ifndef _SAMD51_DAC_COMPONENT_
2855-#define _SAMD51_DAC_COMPONENT_
2856-
2857-/* ========================================================================== */
2858-/**  SOFTWARE API DEFINITION FOR DAC */
2859-/* ========================================================================== */
2860-/** \addtogroup SAMD51_DAC Digital-to-Analog Converter */
2861-/*@{*/
2862-
2863-#define DAC_U2502
2864-#define REV_DAC                     0x100
2865-
2866-/* -------- DAC_CTRLA : (DAC Offset: 0x00) (R/W  8) Control A -------- */
2867-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
2868-typedef union {
2869-  struct {
2870-    uint8_t  SWRST:1;          /*!< bit:      0  Software Reset                     */
2871-    uint8_t  ENABLE:1;         /*!< bit:      1  Enable DAC Controller              */
2872-    uint8_t  :6;               /*!< bit:  2.. 7  Reserved                           */
2873-  } bit;                       /*!< Structure used for bit  access                  */
2874-  uint8_t reg;                 /*!< Type      used for register access              */
2875-} DAC_CTRLA_Type;
2876-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
2877-
2878-#define DAC_CTRLA_OFFSET            0x00         /**< \brief (DAC_CTRLA offset) Control A */
2879-#define DAC_CTRLA_RESETVALUE        _U_(0x00)    /**< \brief (DAC_CTRLA reset_value) Control A */
2880-
2881-#define DAC_CTRLA_SWRST_Pos         0            /**< \brief (DAC_CTRLA) Software Reset */
2882-#define DAC_CTRLA_SWRST             (_U_(0x1) << DAC_CTRLA_SWRST_Pos)
2883-#define DAC_CTRLA_ENABLE_Pos        1            /**< \brief (DAC_CTRLA) Enable DAC Controller */
2884-#define DAC_CTRLA_ENABLE            (_U_(0x1) << DAC_CTRLA_ENABLE_Pos)
2885-#define DAC_CTRLA_MASK              _U_(0x03)    /**< \brief (DAC_CTRLA) MASK Register */
2886-
2887-/* -------- DAC_CTRLB : (DAC Offset: 0x01) (R/W  8) Control B -------- */
2888-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
2889-typedef union {
2890-  struct {
2891-    uint8_t  DIFF:1;           /*!< bit:      0  Differential mode enable           */
2892-    uint8_t  REFSEL:2;         /*!< bit:  1.. 2  Reference Selection for DAC0/1     */
2893-    uint8_t  :5;               /*!< bit:  3.. 7  Reserved                           */
2894-  } bit;                       /*!< Structure used for bit  access                  */
2895-  uint8_t reg;                 /*!< Type      used for register access              */
2896-} DAC_CTRLB_Type;
2897-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
2898-
2899-#define DAC_CTRLB_OFFSET            0x01         /**< \brief (DAC_CTRLB offset) Control B */
2900-#define DAC_CTRLB_RESETVALUE        _U_(0x02)    /**< \brief (DAC_CTRLB reset_value) Control B */
2901-
2902-#define DAC_CTRLB_DIFF_Pos          0            /**< \brief (DAC_CTRLB) Differential mode enable */
2903-#define DAC_CTRLB_DIFF              (_U_(0x1) << DAC_CTRLB_DIFF_Pos)
2904-#define DAC_CTRLB_REFSEL_Pos        1            /**< \brief (DAC_CTRLB) Reference Selection for DAC0/1 */
2905-#define DAC_CTRLB_REFSEL_Msk        (_U_(0x3) << DAC_CTRLB_REFSEL_Pos)
2906-#define DAC_CTRLB_REFSEL(value)     (DAC_CTRLB_REFSEL_Msk & ((value) << DAC_CTRLB_REFSEL_Pos))
2907-#define   DAC_CTRLB_REFSEL_VREFPU_Val     _U_(0x0)   /**< \brief (DAC_CTRLB) External reference unbuffered */
2908-#define   DAC_CTRLB_REFSEL_VDDANA_Val     _U_(0x1)   /**< \brief (DAC_CTRLB) Analog supply */
2909-#define   DAC_CTRLB_REFSEL_VREFPB_Val     _U_(0x2)   /**< \brief (DAC_CTRLB) External reference buffered */
2910-#define   DAC_CTRLB_REFSEL_INTREF_Val     _U_(0x3)   /**< \brief (DAC_CTRLB) Internal bandgap reference */
2911-#define DAC_CTRLB_REFSEL_VREFPU     (DAC_CTRLB_REFSEL_VREFPU_Val   << DAC_CTRLB_REFSEL_Pos)
2912-#define DAC_CTRLB_REFSEL_VDDANA     (DAC_CTRLB_REFSEL_VDDANA_Val   << DAC_CTRLB_REFSEL_Pos)
2913-#define DAC_CTRLB_REFSEL_VREFPB     (DAC_CTRLB_REFSEL_VREFPB_Val   << DAC_CTRLB_REFSEL_Pos)
2914-#define DAC_CTRLB_REFSEL_INTREF     (DAC_CTRLB_REFSEL_INTREF_Val   << DAC_CTRLB_REFSEL_Pos)
2915-#define DAC_CTRLB_MASK              _U_(0x07)    /**< \brief (DAC_CTRLB) MASK Register */
2916-
2917-/* -------- DAC_EVCTRL : (DAC Offset: 0x02) (R/W  8) Event Control -------- */
2918-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
2919-typedef union {
2920-  struct {
2921-    uint8_t  STARTEI0:1;       /*!< bit:      0  Start Conversion Event Input DAC 0 */
2922-    uint8_t  STARTEI1:1;       /*!< bit:      1  Start Conversion Event Input DAC 1 */
2923-    uint8_t  EMPTYEO0:1;       /*!< bit:      2  Data Buffer Empty Event Output DAC 0 */
2924diff --git a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/dmac.h b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/dmac.h
2925deleted file mode 100644
2926index 295b31fe488a48ddf941e1f46b1c99497872e657..0000000000000000000000000000000000000000
2927--- a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/dmac.h
2928+++ /dev/null
2929@@ -1,1416 +0,0 @@
2930-/**
2931- * \file
2932- *
2933- * \brief Component description for DMAC
2934- *
2935- * Copyright (c) 2017 Microchip Technology Inc.
2936- *
2937- * \asf_license_start
2938- *
2939- * \page License
2940- *
2941- * SPDX-License-Identifier: Apache-2.0
2942- *
2943- * Licensed under the Apache License, Version 2.0 (the "License"); you may
2944- * not use this file except in compliance with the License.
2945- * You may obtain a copy of the Licence at
2946- * 
2947- * http://www.apache.org/licenses/LICENSE-2.0
2948- * 
2949- * Unless required by applicable law or agreed to in writing, software
2950- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
2951- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2952- * See the License for the specific language governing permissions and
2953- * limitations under the License.
2954- *
2955- * \asf_license_stop
2956- *
2957- */
2958-
2959-#ifndef _SAMD51_DMAC_COMPONENT_
2960-#define _SAMD51_DMAC_COMPONENT_
2961-
2962-/* ========================================================================== */
2963-/**  SOFTWARE API DEFINITION FOR DMAC */
2964-/* ========================================================================== */
2965-/** \addtogroup SAMD51_DMAC Direct Memory Access Controller */
2966-/*@{*/
2967-
2968-#define DMAC_U2503
2969-#define REV_DMAC                    0x100
2970-
2971-/* -------- DMAC_CTRL : (DMAC Offset: 0x00) (R/W 16) Control -------- */
2972-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
2973-typedef union {
2974-  struct {
2975-    uint16_t SWRST:1;          /*!< bit:      0  Software Reset                     */
2976-    uint16_t DMAENABLE:1;      /*!< bit:      1  DMA Enable                         */
2977-    uint16_t :6;               /*!< bit:  2.. 7  Reserved                           */
2978-    uint16_t LVLEN0:1;         /*!< bit:      8  Priority Level 0 Enable            */
2979-    uint16_t LVLEN1:1;         /*!< bit:      9  Priority Level 1 Enable            */
2980-    uint16_t LVLEN2:1;         /*!< bit:     10  Priority Level 2 Enable            */
2981-    uint16_t LVLEN3:1;         /*!< bit:     11  Priority Level 3 Enable            */
2982-    uint16_t :4;               /*!< bit: 12..15  Reserved                           */
2983-  } bit;                       /*!< Structure used for bit  access                  */
2984-  struct {
2985-    uint16_t :8;               /*!< bit:  0.. 7  Reserved                           */
2986-    uint16_t LVLEN:4;          /*!< bit:  8..11  Priority Level x Enable            */
2987-    uint16_t :4;               /*!< bit: 12..15  Reserved                           */
2988-  } vec;                       /*!< Structure used for vec  access                  */
2989-  uint16_t reg;                /*!< Type      used for register access              */
2990-} DMAC_CTRL_Type;
2991-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
2992-
2993-#define DMAC_CTRL_OFFSET            0x00         /**< \brief (DMAC_CTRL offset) Control */
2994-#define DMAC_CTRL_RESETVALUE        _U_(0x0000)  /**< \brief (DMAC_CTRL reset_value) Control */
2995-
2996-#define DMAC_CTRL_SWRST_Pos         0            /**< \brief (DMAC_CTRL) Software Reset */
2997-#define DMAC_CTRL_SWRST             (_U_(0x1) << DMAC_CTRL_SWRST_Pos)
2998-#define DMAC_CTRL_DMAENABLE_Pos     1            /**< \brief (DMAC_CTRL) DMA Enable */
2999-#define DMAC_CTRL_DMAENABLE         (_U_(0x1) << DMAC_CTRL_DMAENABLE_Pos)
3000-#define DMAC_CTRL_LVLEN0_Pos        8            /**< \brief (DMAC_CTRL) Priority Level 0 Enable */
3001-#define DMAC_CTRL_LVLEN0            (_U_(1) << DMAC_CTRL_LVLEN0_Pos)
3002-#define DMAC_CTRL_LVLEN1_Pos        9            /**< \brief (DMAC_CTRL) Priority Level 1 Enable */
3003-#define DMAC_CTRL_LVLEN1            (_U_(1) << DMAC_CTRL_LVLEN1_Pos)
3004-#define DMAC_CTRL_LVLEN2_Pos        10           /**< \brief (DMAC_CTRL) Priority Level 2 Enable */
3005-#define DMAC_CTRL_LVLEN2            (_U_(1) << DMAC_CTRL_LVLEN2_Pos)
3006-#define DMAC_CTRL_LVLEN3_Pos        11           /**< \brief (DMAC_CTRL) Priority Level 3 Enable */
3007-#define DMAC_CTRL_LVLEN3            (_U_(1) << DMAC_CTRL_LVLEN3_Pos)
3008-#define DMAC_CTRL_LVLEN_Pos         8            /**< \brief (DMAC_CTRL) Priority Level x Enable */
3009-#define DMAC_CTRL_LVLEN_Msk         (_U_(0xF) << DMAC_CTRL_LVLEN_Pos)
3010-#define DMAC_CTRL_LVLEN(value)      (DMAC_CTRL_LVLEN_Msk & ((value) << DMAC_CTRL_LVLEN_Pos))
3011-#define DMAC_CTRL_MASK              _U_(0x0F03)  /**< \brief (DMAC_CTRL) MASK Register */
3012-
3013-/* -------- DMAC_CRCCTRL : (DMAC Offset: 0x02) (R/W 16) CRC Control -------- */
3014-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
3015-typedef union {
3016-  struct {
3017-    uint16_t CRCBEATSIZE:2;    /*!< bit:  0.. 1  CRC Beat Size                      */
3018-    uint16_t CRCPOLY:2;        /*!< bit:  2.. 3  CRC Polynomial Type                */
3019-    uint16_t :4;               /*!< bit:  4.. 7  Reserved                           */
3020-    uint16_t CRCSRC:6;         /*!< bit:  8..13  CRC Input Source                   */
3021-    uint16_t CRCMODE:2;        /*!< bit: 14..15  CRC Operating Mode                 */
3022-  } bit;                       /*!< Structure used for bit  access                  */
3023-  uint16_t reg;                /*!< Type      used for register access              */
3024-} DMAC_CRCCTRL_Type;
3025-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
3026-
3027-#define DMAC_CRCCTRL_OFFSET         0x02         /**< \brief (DMAC_CRCCTRL offset) CRC Control */
3028-#define DMAC_CRCCTRL_RESETVALUE     _U_(0x0000)  /**< \brief (DMAC_CRCCTRL reset_value) CRC Control */
3029diff --git a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/dsu.h b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/dsu.h
3030deleted file mode 100644
3031index 43ae26d2089d4d1da5493c2f3722ef366cc09f19..0000000000000000000000000000000000000000
3032--- a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/dsu.h
3033+++ /dev/null
3034@@ -1,1244 +0,0 @@
3035-/**
3036- * \file
3037- *
3038- * \brief Component description for DSU
3039- *
3040- * Copyright (c) 2017 Microchip Technology Inc.
3041- *
3042- * \asf_license_start
3043- *
3044- * \page License
3045- *
3046- * SPDX-License-Identifier: Apache-2.0
3047- *
3048- * Licensed under the Apache License, Version 2.0 (the "License"); you may
3049- * not use this file except in compliance with the License.
3050- * You may obtain a copy of the Licence at
3051- * 
3052- * http://www.apache.org/licenses/LICENSE-2.0
3053- * 
3054- * Unless required by applicable law or agreed to in writing, software
3055- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
3056- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3057- * See the License for the specific language governing permissions and
3058- * limitations under the License.
3059- *
3060- * \asf_license_stop
3061- *
3062- */
3063-
3064-#ifndef _SAMD51_DSU_COMPONENT_
3065-#define _SAMD51_DSU_COMPONENT_
3066-
3067-/* ========================================================================== */
3068-/**  SOFTWARE API DEFINITION FOR DSU */
3069-/* ========================================================================== */
3070-/** \addtogroup SAMD51_DSU Device Service Unit */
3071-/*@{*/
3072-
3073-#define DSU_U2410
3074-#define REV_DSU                     0x100
3075-
3076-/* -------- DSU_CTRL : (DSU Offset: 0x0000) ( /W  8) Control -------- */
3077-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
3078-typedef union {
3079-  struct {
3080-    uint8_t  SWRST:1;          /*!< bit:      0  Software Reset                     */
3081-    uint8_t  :1;               /*!< bit:      1  Reserved                           */
3082-    uint8_t  CRC:1;            /*!< bit:      2  32-bit Cyclic Redundancy Code      */
3083-    uint8_t  MBIST:1;          /*!< bit:      3  Memory built-in self-test          */
3084-    uint8_t  CE:1;             /*!< bit:      4  Chip-Erase                         */
3085-    uint8_t  :1;               /*!< bit:      5  Reserved                           */
3086-    uint8_t  ARR:1;            /*!< bit:      6  Auxiliary Row Read                 */
3087-    uint8_t  SMSA:1;           /*!< bit:      7  Start Memory Stream Access         */
3088-  } bit;                       /*!< Structure used for bit  access                  */
3089-  uint8_t reg;                 /*!< Type      used for register access              */
3090-} DSU_CTRL_Type;
3091-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
3092-
3093-#define DSU_CTRL_OFFSET             0x0000       /**< \brief (DSU_CTRL offset) Control */
3094-#define DSU_CTRL_RESETVALUE         _U_(0x00)    /**< \brief (DSU_CTRL reset_value) Control */
3095-
3096-#define DSU_CTRL_SWRST_Pos          0            /**< \brief (DSU_CTRL) Software Reset */
3097-#define DSU_CTRL_SWRST              (_U_(0x1) << DSU_CTRL_SWRST_Pos)
3098-#define DSU_CTRL_CRC_Pos            2            /**< \brief (DSU_CTRL) 32-bit Cyclic Redundancy Code */
3099-#define DSU_CTRL_CRC                (_U_(0x1) << DSU_CTRL_CRC_Pos)
3100-#define DSU_CTRL_MBIST_Pos          3            /**< \brief (DSU_CTRL) Memory built-in self-test */
3101-#define DSU_CTRL_MBIST              (_U_(0x1) << DSU_CTRL_MBIST_Pos)
3102-#define DSU_CTRL_CE_Pos             4            /**< \brief (DSU_CTRL) Chip-Erase */
3103-#define DSU_CTRL_CE                 (_U_(0x1) << DSU_CTRL_CE_Pos)
3104-#define DSU_CTRL_ARR_Pos            6            /**< \brief (DSU_CTRL) Auxiliary Row Read */
3105-#define DSU_CTRL_ARR                (_U_(0x1) << DSU_CTRL_ARR_Pos)
3106-#define DSU_CTRL_SMSA_Pos           7            /**< \brief (DSU_CTRL) Start Memory Stream Access */
3107-#define DSU_CTRL_SMSA               (_U_(0x1) << DSU_CTRL_SMSA_Pos)
3108-#define DSU_CTRL_MASK               _U_(0xDD)    /**< \brief (DSU_CTRL) MASK Register */
3109-
3110-/* -------- DSU_STATUSA : (DSU Offset: 0x0001) (R/W  8) Status A -------- */
3111-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
3112-typedef union {
3113-  struct {
3114-    uint8_t  DONE:1;           /*!< bit:      0  Done                               */
3115-    uint8_t  CRSTEXT:1;        /*!< bit:      1  CPU Reset Phase Extension          */
3116-    uint8_t  BERR:1;           /*!< bit:      2  Bus Error                          */
3117-    uint8_t  FAIL:1;           /*!< bit:      3  Failure                            */
3118-    uint8_t  PERR:1;           /*!< bit:      4  Protection Error                   */
3119-    uint8_t  :3;               /*!< bit:  5.. 7  Reserved                           */
3120-  } bit;                       /*!< Structure used for bit  access                  */
3121-  uint8_t reg;                 /*!< Type      used for register access              */
3122-} DSU_STATUSA_Type;
3123-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
3124-
3125-#define DSU_STATUSA_OFFSET          0x0001       /**< \brief (DSU_STATUSA offset) Status A */
3126-#define DSU_STATUSA_RESETVALUE      _U_(0x00)    /**< \brief (DSU_STATUSA reset_value) Status A */
3127-
3128-#define DSU_STATUSA_DONE_Pos        0            /**< \brief (DSU_STATUSA) Done */
3129-#define DSU_STATUSA_DONE            (_U_(0x1) << DSU_STATUSA_DONE_Pos)
3130-#define DSU_STATUSA_CRSTEXT_Pos     1            /**< \brief (DSU_STATUSA) CPU Reset Phase Extension */
3131-#define DSU_STATUSA_CRSTEXT         (_U_(0x1) << DSU_STATUSA_CRSTEXT_Pos)
3132-#define DSU_STATUSA_BERR_Pos        2            /**< \brief (DSU_STATUSA) Bus Error */
3133-#define DSU_STATUSA_BERR            (_U_(0x1) << DSU_STATUSA_BERR_Pos)
3134diff --git a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/eic.h b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/eic.h
3135deleted file mode 100644
3136index 53d9e1c080aa3506fc8c0137b6a8fe5128a27695..0000000000000000000000000000000000000000
3137--- a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/eic.h
3138+++ /dev/null
3139@@ -1,497 +0,0 @@
3140-/**
3141- * \file
3142- *
3143- * \brief Component description for EIC
3144- *
3145- * Copyright (c) 2017 Microchip Technology Inc.
3146- *
3147- * \asf_license_start
3148- *
3149- * \page License
3150- *
3151- * SPDX-License-Identifier: Apache-2.0
3152- *
3153- * Licensed under the Apache License, Version 2.0 (the "License"); you may
3154- * not use this file except in compliance with the License.
3155- * You may obtain a copy of the Licence at
3156- * 
3157- * http://www.apache.org/licenses/LICENSE-2.0
3158- * 
3159- * Unless required by applicable law or agreed to in writing, software
3160- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
3161- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3162- * See the License for the specific language governing permissions and
3163- * limitations under the License.
3164- *
3165- * \asf_license_stop
3166- *
3167- */
3168-
3169-#ifndef _SAMD51_EIC_COMPONENT_
3170-#define _SAMD51_EIC_COMPONENT_
3171-
3172-/* ========================================================================== */
3173-/**  SOFTWARE API DEFINITION FOR EIC */
3174-/* ========================================================================== */
3175-/** \addtogroup SAMD51_EIC External Interrupt Controller */
3176-/*@{*/
3177-
3178-#define EIC_U2254
3179-#define REV_EIC                     0x300
3180-
3181-/* -------- EIC_CTRLA : (EIC Offset: 0x00) (R/W  8) Control A -------- */
3182-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
3183-typedef union {
3184-  struct {
3185-    uint8_t  SWRST:1;          /*!< bit:      0  Software Reset                     */
3186-    uint8_t  ENABLE:1;         /*!< bit:      1  Enable                             */
3187-    uint8_t  :2;               /*!< bit:  2.. 3  Reserved                           */
3188-    uint8_t  CKSEL:1;          /*!< bit:      4  Clock Selection                    */
3189-    uint8_t  :3;               /*!< bit:  5.. 7  Reserved                           */
3190-  } bit;                       /*!< Structure used for bit  access                  */
3191-  uint8_t reg;                 /*!< Type      used for register access              */
3192-} EIC_CTRLA_Type;
3193-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
3194-
3195-#define EIC_CTRLA_OFFSET            0x00         /**< \brief (EIC_CTRLA offset) Control A */
3196-#define EIC_CTRLA_RESETVALUE        _U_(0x00)    /**< \brief (EIC_CTRLA reset_value) Control A */
3197-
3198-#define EIC_CTRLA_SWRST_Pos         0            /**< \brief (EIC_CTRLA) Software Reset */
3199-#define EIC_CTRLA_SWRST             (_U_(0x1) << EIC_CTRLA_SWRST_Pos)
3200-#define EIC_CTRLA_ENABLE_Pos        1            /**< \brief (EIC_CTRLA) Enable */
3201-#define EIC_CTRLA_ENABLE            (_U_(0x1) << EIC_CTRLA_ENABLE_Pos)
3202-#define EIC_CTRLA_CKSEL_Pos         4            /**< \brief (EIC_CTRLA) Clock Selection */
3203-#define EIC_CTRLA_CKSEL             (_U_(0x1) << EIC_CTRLA_CKSEL_Pos)
3204-#define EIC_CTRLA_MASK              _U_(0x13)    /**< \brief (EIC_CTRLA) MASK Register */
3205-
3206-/* -------- EIC_NMICTRL : (EIC Offset: 0x01) (R/W  8) Non-Maskable Interrupt Control -------- */
3207-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
3208-typedef union {
3209-  struct {
3210-    uint8_t  NMISENSE:3;       /*!< bit:  0.. 2  Non-Maskable Interrupt Sense Configuration */
3211-    uint8_t  NMIFILTEN:1;      /*!< bit:      3  Non-Maskable Interrupt Filter Enable */
3212-    uint8_t  NMIASYNCH:1;      /*!< bit:      4  Asynchronous Edge Detection Mode   */
3213-    uint8_t  :3;               /*!< bit:  5.. 7  Reserved                           */
3214-  } bit;                       /*!< Structure used for bit  access                  */
3215-  uint8_t reg;                 /*!< Type      used for register access              */
3216-} EIC_NMICTRL_Type;
3217-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
3218-
3219-#define EIC_NMICTRL_OFFSET          0x01         /**< \brief (EIC_NMICTRL offset) Non-Maskable Interrupt Control */
3220-#define EIC_NMICTRL_RESETVALUE      _U_(0x00)    /**< \brief (EIC_NMICTRL reset_value) Non-Maskable Interrupt Control */
3221-
3222-#define EIC_NMICTRL_NMISENSE_Pos    0            /**< \brief (EIC_NMICTRL) Non-Maskable Interrupt Sense Configuration */
3223-#define EIC_NMICTRL_NMISENSE_Msk    (_U_(0x7) << EIC_NMICTRL_NMISENSE_Pos)
3224-#define EIC_NMICTRL_NMISENSE(value) (EIC_NMICTRL_NMISENSE_Msk & ((value) << EIC_NMICTRL_NMISENSE_Pos))
3225-#define   EIC_NMICTRL_NMISENSE_NONE_Val   _U_(0x0)   /**< \brief (EIC_NMICTRL) No detection */
3226-#define   EIC_NMICTRL_NMISENSE_RISE_Val   _U_(0x1)   /**< \brief (EIC_NMICTRL) Rising-edge detection */
3227-#define   EIC_NMICTRL_NMISENSE_FALL_Val   _U_(0x2)   /**< \brief (EIC_NMICTRL) Falling-edge detection */
3228-#define   EIC_NMICTRL_NMISENSE_BOTH_Val   _U_(0x3)   /**< \brief (EIC_NMICTRL) Both-edges detection */
3229-#define   EIC_NMICTRL_NMISENSE_HIGH_Val   _U_(0x4)   /**< \brief (EIC_NMICTRL) High-level detection */
3230-#define   EIC_NMICTRL_NMISENSE_LOW_Val    _U_(0x5)   /**< \brief (EIC_NMICTRL) Low-level detection */
3231-#define EIC_NMICTRL_NMISENSE_NONE   (EIC_NMICTRL_NMISENSE_NONE_Val << EIC_NMICTRL_NMISENSE_Pos)
3232-#define EIC_NMICTRL_NMISENSE_RISE   (EIC_NMICTRL_NMISENSE_RISE_Val << EIC_NMICTRL_NMISENSE_Pos)
3233-#define EIC_NMICTRL_NMISENSE_FALL   (EIC_NMICTRL_NMISENSE_FALL_Val << EIC_NMICTRL_NMISENSE_Pos)
3234-#define EIC_NMICTRL_NMISENSE_BOTH   (EIC_NMICTRL_NMISENSE_BOTH_Val << EIC_NMICTRL_NMISENSE_Pos)
3235-#define EIC_NMICTRL_NMISENSE_HIGH   (EIC_NMICTRL_NMISENSE_HIGH_Val << EIC_NMICTRL_NMISENSE_Pos)
3236-#define EIC_NMICTRL_NMISENSE_LOW    (EIC_NMICTRL_NMISENSE_LOW_Val  << EIC_NMICTRL_NMISENSE_Pos)
3237-#define EIC_NMICTRL_NMIFILTEN_Pos   3            /**< \brief (EIC_NMICTRL) Non-Maskable Interrupt Filter Enable */
3238-#define EIC_NMICTRL_NMIFILTEN       (_U_(0x1) << EIC_NMICTRL_NMIFILTEN_Pos)
3239diff --git a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/evsys.h b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/evsys.h
3240deleted file mode 100644
3241index c5fdcf53e39ac7b23cd627ec5adfd74dd50d78a7..0000000000000000000000000000000000000000
3242--- a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/evsys.h
3243+++ /dev/null
3244@@ -1,587 +0,0 @@
3245-/**
3246- * \file
3247- *
3248- * \brief Component description for EVSYS
3249- *
3250- * Copyright (c) 2017 Microchip Technology Inc.
3251- *
3252- * \asf_license_start
3253- *
3254- * \page License
3255- *
3256- * SPDX-License-Identifier: Apache-2.0
3257- *
3258- * Licensed under the Apache License, Version 2.0 (the "License"); you may
3259- * not use this file except in compliance with the License.
3260- * You may obtain a copy of the Licence at
3261- * 
3262- * http://www.apache.org/licenses/LICENSE-2.0
3263- * 
3264- * Unless required by applicable law or agreed to in writing, software
3265- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
3266- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3267- * See the License for the specific language governing permissions and
3268- * limitations under the License.
3269- *
3270- * \asf_license_stop
3271- *
3272- */
3273-
3274-#ifndef _SAMD51_EVSYS_COMPONENT_
3275-#define _SAMD51_EVSYS_COMPONENT_
3276-
3277-/* ========================================================================== */
3278-/**  SOFTWARE API DEFINITION FOR EVSYS */
3279-/* ========================================================================== */
3280-/** \addtogroup SAMD51_EVSYS Event System Interface */
3281-/*@{*/
3282-
3283-#define EVSYS_U2504
3284-#define REV_EVSYS                   0x100
3285-
3286-/* -------- EVSYS_CTRLA : (EVSYS Offset: 0x000) (R/W  8) Control -------- */
3287-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
3288-typedef union {
3289-  struct {
3290-    uint8_t  SWRST:1;          /*!< bit:      0  Software Reset                     */
3291-    uint8_t  :7;               /*!< bit:  1.. 7  Reserved                           */
3292-  } bit;                       /*!< Structure used for bit  access                  */
3293-  uint8_t reg;                 /*!< Type      used for register access              */
3294-} EVSYS_CTRLA_Type;
3295-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
3296-
3297-#define EVSYS_CTRLA_OFFSET          0x000        /**< \brief (EVSYS_CTRLA offset) Control */
3298-#define EVSYS_CTRLA_RESETVALUE      _U_(0x00)    /**< \brief (EVSYS_CTRLA reset_value) Control */
3299-
3300-#define EVSYS_CTRLA_SWRST_Pos       0            /**< \brief (EVSYS_CTRLA) Software Reset */
3301-#define EVSYS_CTRLA_SWRST           (_U_(0x1) << EVSYS_CTRLA_SWRST_Pos)
3302-#define EVSYS_CTRLA_MASK            _U_(0x01)    /**< \brief (EVSYS_CTRLA) MASK Register */
3303-
3304-/* -------- EVSYS_SWEVT : (EVSYS Offset: 0x004) ( /W 32) Software Event -------- */
3305-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
3306-typedef union {
3307-  struct {
3308-    uint32_t CHANNEL0:1;       /*!< bit:      0  Channel 0 Software Selection       */
3309-    uint32_t CHANNEL1:1;       /*!< bit:      1  Channel 1 Software Selection       */
3310-    uint32_t CHANNEL2:1;       /*!< bit:      2  Channel 2 Software Selection       */
3311-    uint32_t CHANNEL3:1;       /*!< bit:      3  Channel 3 Software Selection       */
3312-    uint32_t CHANNEL4:1;       /*!< bit:      4  Channel 4 Software Selection       */
3313-    uint32_t CHANNEL5:1;       /*!< bit:      5  Channel 5 Software Selection       */
3314-    uint32_t CHANNEL6:1;       /*!< bit:      6  Channel 6 Software Selection       */
3315-    uint32_t CHANNEL7:1;       /*!< bit:      7  Channel 7 Software Selection       */
3316-    uint32_t CHANNEL8:1;       /*!< bit:      8  Channel 8 Software Selection       */
3317-    uint32_t CHANNEL9:1;       /*!< bit:      9  Channel 9 Software Selection       */
3318-    uint32_t CHANNEL10:1;      /*!< bit:     10  Channel 10 Software Selection      */
3319-    uint32_t CHANNEL11:1;      /*!< bit:     11  Channel 11 Software Selection      */
3320-    uint32_t CHANNEL12:1;      /*!< bit:     12  Channel 12 Software Selection      */
3321-    uint32_t CHANNEL13:1;      /*!< bit:     13  Channel 13 Software Selection      */
3322-    uint32_t CHANNEL14:1;      /*!< bit:     14  Channel 14 Software Selection      */
3323-    uint32_t CHANNEL15:1;      /*!< bit:     15  Channel 15 Software Selection      */
3324-    uint32_t CHANNEL16:1;      /*!< bit:     16  Channel 16 Software Selection      */
3325-    uint32_t CHANNEL17:1;      /*!< bit:     17  Channel 17 Software Selection      */
3326-    uint32_t CHANNEL18:1;      /*!< bit:     18  Channel 18 Software Selection      */
3327-    uint32_t CHANNEL19:1;      /*!< bit:     19  Channel 19 Software Selection      */
3328-    uint32_t CHANNEL20:1;      /*!< bit:     20  Channel 20 Software Selection      */
3329-    uint32_t CHANNEL21:1;      /*!< bit:     21  Channel 21 Software Selection      */
3330-    uint32_t CHANNEL22:1;      /*!< bit:     22  Channel 22 Software Selection      */
3331-    uint32_t CHANNEL23:1;      /*!< bit:     23  Channel 23 Software Selection      */
3332-    uint32_t CHANNEL24:1;      /*!< bit:     24  Channel 24 Software Selection      */
3333-    uint32_t CHANNEL25:1;      /*!< bit:     25  Channel 25 Software Selection      */
3334-    uint32_t CHANNEL26:1;      /*!< bit:     26  Channel 26 Software Selection      */
3335-    uint32_t CHANNEL27:1;      /*!< bit:     27  Channel 27 Software Selection      */
3336-    uint32_t CHANNEL28:1;      /*!< bit:     28  Channel 28 Software Selection      */
3337-    uint32_t CHANNEL29:1;      /*!< bit:     29  Channel 29 Software Selection      */
3338-    uint32_t CHANNEL30:1;      /*!< bit:     30  Channel 30 Software Selection      */
3339-    uint32_t CHANNEL31:1;      /*!< bit:     31  Channel 31 Software Selection      */
3340-  } bit;                       /*!< Structure used for bit  access                  */
3341-  struct {
3342-    uint32_t CHANNEL:32;       /*!< bit:  0..31  Channel x Software Selection       */
3343-  } vec;                       /*!< Structure used for vec  access                  */
3344diff --git a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/freqm.h b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/freqm.h
3345deleted file mode 100644
3346index 3eca2144e05334e19bad40f15460b642dd121933..0000000000000000000000000000000000000000
3347--- a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/freqm.h
3348+++ /dev/null
3349@@ -1,233 +0,0 @@
3350-/**
3351- * \file
3352- *
3353- * \brief Component description for FREQM
3354- *
3355- * Copyright (c) 2017 Microchip Technology Inc.
3356- *
3357- * \asf_license_start
3358- *
3359- * \page License
3360- *
3361- * SPDX-License-Identifier: Apache-2.0
3362- *
3363- * Licensed under the Apache License, Version 2.0 (the "License"); you may
3364- * not use this file except in compliance with the License.
3365- * You may obtain a copy of the Licence at
3366- * 
3367- * http://www.apache.org/licenses/LICENSE-2.0
3368- * 
3369- * Unless required by applicable law or agreed to in writing, software
3370- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
3371- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3372- * See the License for the specific language governing permissions and
3373- * limitations under the License.
3374- *
3375- * \asf_license_stop
3376- *
3377- */
3378-
3379-#ifndef _SAMD51_FREQM_COMPONENT_
3380-#define _SAMD51_FREQM_COMPONENT_
3381-
3382-/* ========================================================================== */
3383-/**  SOFTWARE API DEFINITION FOR FREQM */
3384-/* ========================================================================== */
3385-/** \addtogroup SAMD51_FREQM Frequency Meter */
3386-/*@{*/
3387-
3388-#define FREQM_U2257
3389-#define REV_FREQM                   0x110
3390-
3391-/* -------- FREQM_CTRLA : (FREQM Offset: 0x00) (R/W  8) Control A Register -------- */
3392-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
3393-typedef union {
3394-  struct {
3395-    uint8_t  SWRST:1;          /*!< bit:      0  Software Reset                     */
3396-    uint8_t  ENABLE:1;         /*!< bit:      1  Enable                             */
3397-    uint8_t  :6;               /*!< bit:  2.. 7  Reserved                           */
3398-  } bit;                       /*!< Structure used for bit  access                  */
3399-  uint8_t reg;                 /*!< Type      used for register access              */
3400-} FREQM_CTRLA_Type;
3401-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
3402-
3403-#define FREQM_CTRLA_OFFSET          0x00         /**< \brief (FREQM_CTRLA offset) Control A Register */
3404-#define FREQM_CTRLA_RESETVALUE      _U_(0x00)    /**< \brief (FREQM_CTRLA reset_value) Control A Register */
3405-
3406-#define FREQM_CTRLA_SWRST_Pos       0            /**< \brief (FREQM_CTRLA) Software Reset */
3407-#define FREQM_CTRLA_SWRST           (_U_(0x1) << FREQM_CTRLA_SWRST_Pos)
3408-#define FREQM_CTRLA_ENABLE_Pos      1            /**< \brief (FREQM_CTRLA) Enable */
3409-#define FREQM_CTRLA_ENABLE          (_U_(0x1) << FREQM_CTRLA_ENABLE_Pos)
3410-#define FREQM_CTRLA_MASK            _U_(0x03)    /**< \brief (FREQM_CTRLA) MASK Register */
3411-
3412-/* -------- FREQM_CTRLB : (FREQM Offset: 0x01) ( /W  8) Control B Register -------- */
3413-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
3414-typedef union {
3415-  struct {
3416-    uint8_t  START:1;          /*!< bit:      0  Start Measurement                  */
3417-    uint8_t  :7;               /*!< bit:  1.. 7  Reserved                           */
3418-  } bit;                       /*!< Structure used for bit  access                  */
3419-  uint8_t reg;                 /*!< Type      used for register access              */
3420-} FREQM_CTRLB_Type;
3421-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
3422-
3423-#define FREQM_CTRLB_OFFSET          0x01         /**< \brief (FREQM_CTRLB offset) Control B Register */
3424-#define FREQM_CTRLB_RESETVALUE      _U_(0x00)    /**< \brief (FREQM_CTRLB reset_value) Control B Register */
3425-
3426-#define FREQM_CTRLB_START_Pos       0            /**< \brief (FREQM_CTRLB) Start Measurement */
3427-#define FREQM_CTRLB_START           (_U_(0x1) << FREQM_CTRLB_START_Pos)
3428-#define FREQM_CTRLB_MASK            _U_(0x01)    /**< \brief (FREQM_CTRLB) MASK Register */
3429-
3430-/* -------- FREQM_CFGA : (FREQM Offset: 0x02) (R/W 16) Config A register -------- */
3431-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
3432-typedef union {
3433-  struct {
3434-    uint16_t REFNUM:8;         /*!< bit:  0.. 7  Number of Reference Clock Cycles   */
3435-    uint16_t :8;               /*!< bit:  8..15  Reserved                           */
3436-  } bit;                       /*!< Structure used for bit  access                  */
3437-  uint16_t reg;                /*!< Type      used for register access              */
3438-} FREQM_CFGA_Type;
3439-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
3440-
3441-#define FREQM_CFGA_OFFSET           0x02         /**< \brief (FREQM_CFGA offset) Config A register */
3442-#define FREQM_CFGA_RESETVALUE       _U_(0x0000)  /**< \brief (FREQM_CFGA reset_value) Config A register */
3443-
3444-#define FREQM_CFGA_REFNUM_Pos       0            /**< \brief (FREQM_CFGA) Number of Reference Clock Cycles */
3445-#define FREQM_CFGA_REFNUM_Msk       (_U_(0xFF) << FREQM_CFGA_REFNUM_Pos)
3446-#define FREQM_CFGA_REFNUM(value)    (FREQM_CFGA_REFNUM_Msk & ((value) << FREQM_CFGA_REFNUM_Pos))
3447-#define FREQM_CFGA_MASK             _U_(0x00FF)  /**< \brief (FREQM_CFGA) MASK Register */
3448-
3449diff --git a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/gclk.h b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/gclk.h
3450deleted file mode 100644
3451index 6de7d5cdb38ae759c4b2ff421a3c5b9684f61d7a..0000000000000000000000000000000000000000
3452--- a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/gclk.h
3453+++ /dev/null
3454@@ -1,272 +0,0 @@
3455-/**
3456- * \file
3457- *
3458- * \brief Component description for GCLK
3459- *
3460- * Copyright (c) 2017 Microchip Technology Inc.
3461- *
3462- * \asf_license_start
3463- *
3464- * \page License
3465- *
3466- * SPDX-License-Identifier: Apache-2.0
3467- *
3468- * Licensed under the Apache License, Version 2.0 (the "License"); you may
3469- * not use this file except in compliance with the License.
3470- * You may obtain a copy of the Licence at
3471- * 
3472- * http://www.apache.org/licenses/LICENSE-2.0
3473- * 
3474- * Unless required by applicable law or agreed to in writing, software
3475- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
3476- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3477- * See the License for the specific language governing permissions and
3478- * limitations under the License.
3479- *
3480- * \asf_license_stop
3481- *
3482- */
3483-
3484-#ifndef _SAMD51_GCLK_COMPONENT_
3485-#define _SAMD51_GCLK_COMPONENT_
3486-
3487-/* ========================================================================== */
3488-/**  SOFTWARE API DEFINITION FOR GCLK */
3489-/* ========================================================================== */
3490-/** \addtogroup SAMD51_GCLK Generic Clock Generator */
3491-/*@{*/
3492-
3493-#define GCLK_U2122
3494-#define REV_GCLK                    0x120
3495-
3496-/* -------- GCLK_CTRLA : (GCLK Offset: 0x00) (R/W  8) Control -------- */
3497-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
3498-typedef union {
3499-  struct {
3500-    uint8_t  SWRST:1;          /*!< bit:      0  Software Reset                     */
3501-    uint8_t  :7;               /*!< bit:  1.. 7  Reserved                           */
3502-  } bit;                       /*!< Structure used for bit  access                  */
3503-  uint8_t reg;                 /*!< Type      used for register access              */
3504-} GCLK_CTRLA_Type;
3505-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
3506-
3507-#define GCLK_CTRLA_OFFSET           0x00         /**< \brief (GCLK_CTRLA offset) Control */
3508-#define GCLK_CTRLA_RESETVALUE       _U_(0x00)    /**< \brief (GCLK_CTRLA reset_value) Control */
3509-
3510-#define GCLK_CTRLA_SWRST_Pos        0            /**< \brief (GCLK_CTRLA) Software Reset */
3511-#define GCLK_CTRLA_SWRST            (_U_(0x1) << GCLK_CTRLA_SWRST_Pos)
3512-#define GCLK_CTRLA_MASK             _U_(0x01)    /**< \brief (GCLK_CTRLA) MASK Register */
3513-
3514-/* -------- GCLK_SYNCBUSY : (GCLK Offset: 0x04) (R/  32) Synchronization Busy -------- */
3515-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
3516-typedef union {
3517-  struct {
3518-    uint32_t SWRST:1;          /*!< bit:      0  Software Reset Synchroniation Busy bit */
3519-    uint32_t :1;               /*!< bit:      1  Reserved                           */
3520-    uint32_t GENCTRL0:1;       /*!< bit:      2  Generic Clock Generator Control 0 Synchronization Busy bits */
3521-    uint32_t GENCTRL1:1;       /*!< bit:      3  Generic Clock Generator Control 1 Synchronization Busy bits */
3522-    uint32_t GENCTRL2:1;       /*!< bit:      4  Generic Clock Generator Control 2 Synchronization Busy bits */
3523-    uint32_t GENCTRL3:1;       /*!< bit:      5  Generic Clock Generator Control 3 Synchronization Busy bits */
3524-    uint32_t GENCTRL4:1;       /*!< bit:      6  Generic Clock Generator Control 4 Synchronization Busy bits */
3525-    uint32_t GENCTRL5:1;       /*!< bit:      7  Generic Clock Generator Control 5 Synchronization Busy bits */
3526-    uint32_t GENCTRL6:1;       /*!< bit:      8  Generic Clock Generator Control 6 Synchronization Busy bits */
3527-    uint32_t GENCTRL7:1;       /*!< bit:      9  Generic Clock Generator Control 7 Synchronization Busy bits */
3528-    uint32_t GENCTRL8:1;       /*!< bit:     10  Generic Clock Generator Control 8 Synchronization Busy bits */
3529-    uint32_t GENCTRL9:1;       /*!< bit:     11  Generic Clock Generator Control 9 Synchronization Busy bits */
3530-    uint32_t GENCTRL10:1;      /*!< bit:     12  Generic Clock Generator Control 10 Synchronization Busy bits */
3531-    uint32_t GENCTRL11:1;      /*!< bit:     13  Generic Clock Generator Control 11 Synchronization Busy bits */
3532-    uint32_t :18;              /*!< bit: 14..31  Reserved                           */
3533-  } bit;                       /*!< Structure used for bit  access                  */
3534-  struct {
3535-    uint32_t :2;               /*!< bit:  0.. 1  Reserved                           */
3536-    uint32_t GENCTRL:12;       /*!< bit:  2..13  Generic Clock Generator Control x Synchronization Busy bits */
3537-    uint32_t :18;              /*!< bit: 14..31  Reserved                           */
3538-  } vec;                       /*!< Structure used for vec  access                  */
3539-  uint32_t reg;                /*!< Type      used for register access              */
3540-} GCLK_SYNCBUSY_Type;
3541-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
3542-
3543-#define GCLK_SYNCBUSY_OFFSET        0x04         /**< \brief (GCLK_SYNCBUSY offset) Synchronization Busy */
3544-#define GCLK_SYNCBUSY_RESETVALUE    _U_(0x00000000) /**< \brief (GCLK_SYNCBUSY reset_value) Synchronization Busy */
3545-
3546-#define GCLK_SYNCBUSY_SWRST_Pos     0            /**< \brief (GCLK_SYNCBUSY) Software Reset Synchroniation Busy bit */
3547-#define GCLK_SYNCBUSY_SWRST         (_U_(0x1) << GCLK_SYNCBUSY_SWRST_Pos)
3548-#define GCLK_SYNCBUSY_GENCTRL0_Pos  2            /**< \brief (GCLK_SYNCBUSY) Generic Clock Generator Control 0 Synchronization Busy bits */
3549-#define GCLK_SYNCBUSY_GENCTRL0      (_U_(1) << GCLK_SYNCBUSY_GENCTRL0_Pos)
3550-#define GCLK_SYNCBUSY_GENCTRL1_Pos  3            /**< \brief (GCLK_SYNCBUSY) Generic Clock Generator Control 1 Synchronization Busy bits */
3551-#define GCLK_SYNCBUSY_GENCTRL1      (_U_(1) << GCLK_SYNCBUSY_GENCTRL1_Pos)
3552-#define GCLK_SYNCBUSY_GENCTRL2_Pos  4            /**< \brief (GCLK_SYNCBUSY) Generic Clock Generator Control 2 Synchronization Busy bits */
3553-#define GCLK_SYNCBUSY_GENCTRL2      (_U_(1) << GCLK_SYNCBUSY_GENCTRL2_Pos)
3554diff --git a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/hmatrixb.h b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/hmatrixb.h
3555deleted file mode 100644
3556index e0526c0d8a73c14c0e6b8ca1aeb4defdc9fe4af6..0000000000000000000000000000000000000000
3557--- a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/hmatrixb.h
3558+++ /dev/null
3559@@ -1,84 +0,0 @@
3560-/**
3561- * \file
3562- *
3563- * \brief Component description for HMATRIXB
3564- *
3565- * Copyright (c) 2017 Microchip Technology Inc.
3566- *
3567- * \asf_license_start
3568- *
3569- * \page License
3570- *
3571- * SPDX-License-Identifier: Apache-2.0
3572- *
3573- * Licensed under the Apache License, Version 2.0 (the "License"); you may
3574- * not use this file except in compliance with the License.
3575- * You may obtain a copy of the Licence at
3576- * 
3577- * http://www.apache.org/licenses/LICENSE-2.0
3578- * 
3579- * Unless required by applicable law or agreed to in writing, software
3580- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
3581- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3582- * See the License for the specific language governing permissions and
3583- * limitations under the License.
3584- *
3585- * \asf_license_stop
3586- *
3587- */
3588-
3589-#ifndef _SAMD51_HMATRIXB_COMPONENT_
3590-#define _SAMD51_HMATRIXB_COMPONENT_
3591-
3592-/* ========================================================================== */
3593-/**  SOFTWARE API DEFINITION FOR HMATRIXB */
3594-/* ========================================================================== */
3595-/** \addtogroup SAMD51_HMATRIXB HSB Matrix */
3596-/*@{*/
3597-
3598-#define HMATRIXB_I7638
3599-#define REV_HMATRIXB                0x214
3600-
3601-/* -------- HMATRIXB_PRAS : (HMATRIXB Offset: 0x080) (R/W 32) PRS Priority A for Slave -------- */
3602-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
3603-typedef union {
3604-  uint32_t reg;                /*!< Type      used for register access              */
3605-} HMATRIXB_PRAS_Type;
3606-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
3607-
3608-#define HMATRIXB_PRAS_OFFSET        0x080        /**< \brief (HMATRIXB_PRAS offset) Priority A for Slave */
3609-#define HMATRIXB_PRAS_RESETVALUE    _U_(0x00000000) /**< \brief (HMATRIXB_PRAS reset_value) Priority A for Slave */
3610-
3611-#define HMATRIXB_PRAS_MASK          _U_(0x00000000) /**< \brief (HMATRIXB_PRAS) MASK Register */
3612-
3613-/* -------- HMATRIXB_PRBS : (HMATRIXB Offset: 0x084) (R/W 32) PRS Priority B for Slave -------- */
3614-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
3615-typedef union {
3616-  uint32_t reg;                /*!< Type      used for register access              */
3617-} HMATRIXB_PRBS_Type;
3618-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
3619-
3620-#define HMATRIXB_PRBS_OFFSET        0x084        /**< \brief (HMATRIXB_PRBS offset) Priority B for Slave */
3621-#define HMATRIXB_PRBS_RESETVALUE    _U_(0x00000000) /**< \brief (HMATRIXB_PRBS reset_value) Priority B for Slave */
3622-
3623-#define HMATRIXB_PRBS_MASK          _U_(0x00000000) /**< \brief (HMATRIXB_PRBS) MASK Register */
3624-
3625-/** \brief HmatrixbPrs hardware registers */
3626-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
3627-typedef struct {
3628-  __IO HMATRIXB_PRAS_Type        PRAS;        /**< \brief Offset: 0x000 (R/W 32) Priority A for Slave */
3629-  __IO HMATRIXB_PRBS_Type        PRBS;        /**< \brief Offset: 0x004 (R/W 32) Priority B for Slave */
3630-} HmatrixbPrs;
3631-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
3632-
3633-/** \brief HMATRIXB hardware registers */
3634-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
3635-typedef struct {
3636-       RoReg8                    Reserved1[0x80];
3637-       HmatrixbPrs               Prs[16];     /**< \brief Offset: 0x080 HmatrixbPrs groups */
3638-} Hmatrixb;
3639-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
3640-
3641-/*@}*/
3642-
3643-#endif /* _SAMD51_HMATRIXB_COMPONENT_ */
3644diff --git a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/i2s.h b/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/i2s.h
3645deleted file mode 100644
3646index 5583c69f6050fb323056426c82a2efe7d6f432d7..0000000000000000000000000000000000000000
3647--- a/lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/i2s.h
3648+++ /dev/null
3649@@ -1,747 +0,0 @@
3650-/**
3651- * \file
3652- *
3653- * \brief Component description for I2S
3654- *
3655- * Copyright (c) 2017 Microchip Technology Inc.
3656- *
3657- * \asf_license_start
3658- *
3659- * \page License
3660- *
3661- * SPDX-License-Identifier: Apache-2.0
3662- *
3663- * Licensed under the Apache License, Version 2.0 (the "License"); you may
3664- * not use this file except in compliance with the License.
3665- * You may obtain a copy of the Licence at
3666- * 
3667- * http://www.apache.org/licenses/LICENSE-2.0
3668- * 
3669- * Unless required by applicable law or agreed to in writing, software
3670- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
3671- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3672- * See the License for the specific language governing permissions and
3673- * limitations under the License.
3674- *
3675- * \asf_license_stop
3676- *
3677- */
3678-
3679-#ifndef _SAMD51_I2S_COMPONENT_
3680-#define _SAMD51_I2S_COMPONENT_
3681-
3682-/* ========================================================================== */
3683-/**  SOFTWARE API DEFINITION FOR I2S */
3684-/* ========================================================================== */
3685-/** \addtogroup SAMD51_I2S Inter-IC Sound Interface */
3686-/*@{*/
3687-
3688-#define I2S_U2224
3689-#define REV_I2S                     0x200
3690-
3691-/* -------- I2S_CTRLA : (I2S Offset: 0x00) (R/W  8) Control A -------- */
3692-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
3693-typedef union {
3694-  struct {
3695-    uint8_t  SWRST:1;          /*!< bit:      0  Software Reset                     */
3696-    uint8_t  ENABLE:1;         /*!< bit:      1  Enable                             */
3697-    uint8_t  CKEN0:1;          /*!< bit:      2  Clock Unit 0 Enable                */
3698-    uint8_t  CKEN1:1;          /*!< bit:      3  Clock Unit 1 Enable                */
3699-    uint8_t  TXEN:1;           /*!< bit:      4  Tx Serializer Enable               */
3700-    uint8_t  RXEN:1;           /*!< bit:      5  Rx Serializer Enable               */
3701-    uint8_t  :2;               /*!< bit:  6.. 7  Reserved                           */
3702-  } bit;                       /*!< Structure used for bit  access                  */
3703-  struct {
3704-    uint8_t  :2;               /*!< bit:  0.. 1  Reserved                           */
3705-    uint8_t  CKEN:2;           /*!< bit:  2.. 3  Clock Unit x Enable                */
3706-    uint8_t  :4;               /*!< bit:  4.. 7  Reserved                           */
3707-  } vec;                       /*!< Structure used for vec  access                  */
3708-  uint8_t reg;                 /*!< Type      used for register access              */
3709-} I2S_CTRLA_Type;
3710-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
3711-
3712-#define I2S_CTRLA_OFFSET            0x00         /**< \brief (I2S_CTRLA offset) Control A */
3713-#define I2S_CTRLA_RESETVALUE        _U_(0x00)    /**< \brief (I2S_CTRLA reset_value) Control A */
3714-
3715-#define I2S_CTRLA_SWRST_Pos         0            /**< \brief (I2S_CTRLA) Software Reset */
3716-#define I2S_CTRLA_SWRST             (_U_(0x1) << I2S_CTRLA_SWRST_Pos)
3717-#define I2S_CTRLA_ENABLE_Pos        1            /**< \brief (I2S_CTRLA) Enable */
3718-#define I2S_CTRLA_ENABLE            (_U_(0x1) << I2S_CTRLA_ENABLE_Pos)
3719-#define I2S_CTRLA_CKEN0_Pos         2            /**< \brief (I2S_CTRLA) Clock Unit 0 Enable */
3720-#define I2S_CTRLA_CKEN0             (_U_(1) << I2S_CTRLA_CKEN0_Pos)
3721-#define I2S_CTRLA_CKEN1_Pos         3            /**< \brief (I2S_CTRLA) Clock Unit 1 Enable */
3722-#define I2S_CTRLA_CKEN1             (_U_(1) << I2S_CTRLA_CKEN1_Pos)
3723-#define I2S_CTRLA_CKEN_Pos          2            /**< \brief (I2S_CTRLA) Clock Unit x Enable */
3724-#define I2S_CTRLA_CKEN_Msk          (_U_(0x3) << I2S_CTRLA_CKEN_Pos)
3725-#define I2S_CTRLA_CKEN(value)       (I2S_CTRLA_CKEN_Msk & ((value) << I2S_CTRLA_CKEN_Pos))
3726-#define I2S_CTRLA_TXEN_Pos          4            /**< \brief (I2S_CTRLA) Tx Serializer Enable */
3727-#define I2S_CTRLA_TXEN              (_U_(0x1) << I2S_CTRLA_TXEN_Pos)
3728-#define I2S_CTRLA_RXEN_Pos          5            /**< \brief (I2S_CTRLA) Rx Serializer Enable */
3729-#define I2S_CTRLA_RXEN              (_U_(0x1) << I2S_CTRLA_RXEN_Pos)
3730-#define I2S_CTRLA_MASK              _U_(0x3F)    /**< \brief (I2S_CTRLA) MASK Register */
3731-
3732-/* -------- I2S_CLKCTRL : (I2S Offset: 0x04) (R/W 32) Clock Unit n Control -------- */
3733-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
3734-typedef union {
3735-  struct {
3736-    uint32_t SLOTSIZE:2;       /*!< bit:  0.. 1  Slot Size                          */
3737-    uint32_t NBSLOTS:3;        /*!< bit:  2.. 4  Number of Slots in Frame           */
3738-    uint32_t FSWIDTH:2;        /*!< bit:  5.. 6  Frame Sync Width                   */
3739-    uint32_t BITDELAY:1;       /*!< bit:      7  Data Delay from Frame Sync         */
3740-    uint32_t FSSEL:1;          /*!< bit:      8  Frame Sync Select                  */
3741-    uint32_t FSINV:1;          /*!< bit:      9  Frame Sync Invert                  */
3742-    uint32_t FSOUTINV:1;       /*!< bit:     10  Frame Sync Output Invert           */
3743-    uint32_t SCKSEL:1;         /*!< bit:     11  Serial Clock Select                */
3744-    uint32_t SCKOUTINV:1;      /*!< bit:     12  Serial Clock Output Invert         */
3745-    uint32_t MCKSEL:1;         /*!< bit:     13  Master Clock Select                */
3746-    uint32_t MCKEN:1;          /*!< bit:     14  Master Clock Enable                */
3747-    uint32_t MCKOUTINV:1;      /*!< bit:     15  Master Clock Output Invert         */
3748-    uint32_t MCKDIV:6;         /*!< bit: 16..21  Master Clock Division Factor       */