diff --git a/README.md b/README.md
index fd4d11912..a165001be 100644
--- a/README.md
+++ b/README.md
@@ -19,8 +19,6 @@ TinyUSB is an open-source cross-platform USB Host/Device stack for embedded syst
 └── tools           # Files used internally
 ```
 
-
-
 ## Device Stack
 
 - Human Interface Device (HID): Keyboard, Mouse, Generic
diff --git a/examples/device/cdc_msc_hid/Makefile b/examples/device/cdc_msc_hid/Makefile
index 11c05ad26..50a57d448 100644
--- a/examples/device/cdc_msc_hid/Makefile
+++ b/examples/device/cdc_msc_hid/Makefile
@@ -84,8 +84,8 @@ LIB_SOURCE += \
 
 SRC_C += $(LIB_SOURCE)
 
-OBJ = $(addprefix $(BUILD)/obj/, $(SRC_C:.c=.o))
-OBJ += $(addprefix $(BUILD)/obj/, $(SRC_S:.s=.o))
+OBJ += $(addprefix $(BUILD)/obj/, $(SRC_C:.c=.o))
+OBJ += $(addprefix $(BUILD)/obj/, $(SRC_S:.S=.o))
 
 all: $(BUILD)/$(BOARD)-firmware.bin
 
@@ -107,7 +107,7 @@ $(BUILD)/$(BOARD)-firmware.bin: $(BUILD)/$(BOARD)-firmware.elf
 # to be used to compile all .c files.
 vpath %.c . $(TOP)
 $(BUILD)/obj/%.o: %.c
-	@echo CC $@
+	@echo CC $(notdir $@)
 	@$(CC) $(CFLAGS) -c -MD -o $@ $<
 	@# The following fixes the dependency file.
 	@# See http://make.paulandlesley.org/autodep.html for details.
@@ -117,5 +117,11 @@ $(BUILD)/obj/%.o: %.c
 	      -e '/^$$/ d' -e 's/$$/ :/' < $(@:.o=.d) >> $(@:.o=.P); \
 	  $(RM) $(@:.o=.d)
 
+# ASM sources
+vpath %.S . $(TOP)
+$(BUILD)/obj/%.o: %.S
+	@echo AS $(notdir $@)
+	@$(CC) -x assembler-with-cpp $(ASFLAGS) -c -o $@ $<
+
 clean:
 	rm -rf build-$(BOARD)
diff --git a/hw/bsp/pca10056/board.mk b/hw/bsp/pca10056/board.mk
new file mode 100644
index 000000000..709b0063f
--- /dev/null
+++ b/hw/bsp/pca10056/board.mk
@@ -0,0 +1,40 @@
+CFLAGS += \
+	-DCFG_TUSB_MCU=OPT_MCU_NRF5X \
+	-DNRF52840_XXAA \
+	-mthumb \
+	-Wno-error=undef \
+	-Wno-error=cast-align \
+	-mabi=aapcs \
+	-mcpu=cortex-m4 \
+	-mfloat-abi=hard \
+	-mfpu=fpv4-sp-d16
+
+# All source paths should be relative to the top level.
+LD_FILE = hw/mcu/nordic/nrfx/mdk/nrf52840_xxaa.ld
+
+LDFLAGS += -L$(TOP)/hw/mcu/nordic/nrfx/mdk
+
+SRC_C += \
+	hw/mcu/nordic/nrfx/drivers/src/nrfx_power.c \
+	hw/mcu/nordic/nrfx/mdk/system_nrf52840.c \
+
+INC += \
+	-I$(TOP)/hw/cmsis/Include \
+	-I$(TOP)/hw/mcu/nordic \
+	-I$(TOP)/hw/mcu/nordic/nrfx \
+	-I$(TOP)/hw/mcu/nordic/nrfx/mdk \
+	-I$(TOP)/hw/mcu/nordic/nrfx/hal \
+	-I$(TOP)/hw/mcu/nordic/nrfx/drivers/include \
+
+SRC_S += hw/mcu/nordic/nrfx/mdk/gcc_startup_nrf52840.S
+
+ASFLAGS += -D__HEAP_SIZE=0
+ASFLAGS += -DCONFIG_GPIO_AS_PINRESET
+ASFLAGS += -DBLE_STACK_SUPPORT_REQD
+ASFLAGS += -DSWI_DISABLE0
+ASFLAGS += -DFLOAT_ABI_HARD
+ASFLAGS += -DNRF52840_XXAA
+
+VENDOR = nordic
+CHIP_FAMILY = nrf5x
+
diff --git a/hw/bsp/pca10056/board_pca10056.c b/hw/bsp/pca10056/board_pca10056.c
index dc695deda..026af6d6e 100644
--- a/hw/bsp/pca10056/board_pca10056.c
+++ b/hw/bsp/pca10056/board_pca10056.c
@@ -105,7 +105,7 @@ void board_init(void)
 #endif
 
 // 64 Mbit qspi flash
-#ifdef BOARD_MSC_FLASH_QSPI
+#if 0 // def BOARD_MSC_FLASH_QSPI
   nrfx_qspi_config_t qspi_cfg = {
     .xip_offset = 0,
     .pins = {
diff --git a/hw/mcu/nordic/nrfx_config.h b/hw/mcu/nordic/nrfx_config.h
index f9e0a7ddb..7c8b90781 100644
--- a/hw/mcu/nordic/nrfx_config.h
+++ b/hw/mcu/nordic/nrfx_config.h
@@ -1,168 +1,8 @@
 #ifndef NRFX_CONFIG_H__
 #define NRFX_CONFIG_H__
 
-// <<< Use Configuration Wizard in Context Menu >>>\n
-
-// <h> nRF_Drivers
-
-// <e> NRFX_CLOCK_ENABLED - nrfx_clock - CLOCK peripheral driver
-//==========================================================
-#ifndef NRFX_CLOCK_ENABLED
+#define NRFX_PRS_ENABLED 0
 #define NRFX_CLOCK_ENABLED 0
-#endif
-// <o> NRFX_CLOCK_CONFIG_LF_SRC  - LF Clock Source
-
-// <0=> RC
-// <1=> XTAL
-// <2=> Synth
-// <131073=> External Low Swing
-// <196609=> External Full Swing
-
-#ifndef NRFX_CLOCK_CONFIG_LF_SRC
-#define NRFX_CLOCK_CONFIG_LF_SRC 1
-#endif
-
-// <o> NRFX_CLOCK_CONFIG_IRQ_PRIORITY  - Interrupt priority
-
-// <0=> 0 (highest)
-// <1=> 1
-// <2=> 2
-// <3=> 3
-// <4=> 4
-// <5=> 5
-// <6=> 6
-// <7=> 7
-
-#ifndef NRFX_CLOCK_CONFIG_IRQ_PRIORITY
-#define NRFX_CLOCK_CONFIG_IRQ_PRIORITY 7
-#endif
-
-// <e> NRFX_CLOCK_CONFIG_LOG_ENABLED - Enables logging in the module.
-//==========================================================
-#ifndef NRFX_CLOCK_CONFIG_LOG_ENABLED
-#define NRFX_CLOCK_CONFIG_LOG_ENABLED 0
-#endif
-// <o> NRFX_CLOCK_CONFIG_LOG_LEVEL  - Default Severity level
-
-// <0=> Off
-// <1=> Error
-// <2=> Warning
-// <3=> Info
-// <4=> Debug
-
-#ifndef NRFX_CLOCK_CONFIG_LOG_LEVEL
-#define NRFX_CLOCK_CONFIG_LOG_LEVEL 3
-#endif
-
-// <o> NRFX_CLOCK_CONFIG_INFO_COLOR  - ANSI escape code prefix.
-
-// <0=> Default
-// <1=> Black
-// <2=> Red
-// <3=> Green
-// <4=> Yellow
-// <5=> Blue
-// <6=> Magenta
-// <7=> Cyan
-// <8=> White
-
-#ifndef NRFX_CLOCK_CONFIG_INFO_COLOR
-#define NRFX_CLOCK_CONFIG_INFO_COLOR 0
-#endif
-
-// <o> NRFX_CLOCK_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
-
-// <0=> Default
-// <1=> Black
-// <2=> Red
-// <3=> Green
-// <4=> Yellow
-// <5=> Blue
-// <6=> Magenta
-// <7=> Cyan
-// <8=> White
-
-#ifndef NRFX_CLOCK_CONFIG_DEBUG_COLOR
-#define NRFX_CLOCK_CONFIG_DEBUG_COLOR 0
-#endif
-
-// <e> NRFX_GPIOTE_ENABLED - nrfx_gpiote - GPIOTE peripheral driver
-//==========================================================
-#ifndef NRFX_GPIOTE_ENABLED
-#define NRFX_GPIOTE_ENABLED 1
-#endif
-// <o> NRFX_GPIOTE_CONFIG_NUM_OF_LOW_POWER_EVENTS - Number of lower power input pins
-#ifndef NRFX_GPIOTE_CONFIG_NUM_OF_LOW_POWER_EVENTS
-#define NRFX_GPIOTE_CONFIG_NUM_OF_LOW_POWER_EVENTS 1
-#endif
-
-// <o> NRFX_GPIOTE_CONFIG_IRQ_PRIORITY  - Interrupt priority
-
-// <0=> 0 (highest)
-// <1=> 1
-// <2=> 2
-// <3=> 3
-// <4=> 4
-// <5=> 5
-// <6=> 6
-// <7=> 7
-
-#ifndef NRFX_GPIOTE_CONFIG_IRQ_PRIORITY
-#define NRFX_GPIOTE_CONFIG_IRQ_PRIORITY 7
-#endif
-
-// <e> NRFX_GPIOTE_CONFIG_LOG_ENABLED - Enables logging in the module.
-//==========================================================
-#ifndef NRFX_GPIOTE_CONFIG_LOG_ENABLED
-#define NRFX_GPIOTE_CONFIG_LOG_ENABLED 0
-#endif
-// <o> NRFX_GPIOTE_CONFIG_LOG_LEVEL  - Default Severity level
-
-// <0=> Off
-// <1=> Error
-// <2=> Warning
-// <3=> Info
-// <4=> Debug
-
-#ifndef NRFX_GPIOTE_CONFIG_LOG_LEVEL
-#define NRFX_GPIOTE_CONFIG_LOG_LEVEL 3
-#endif
-
-// <o> NRFX_GPIOTE_CONFIG_INFO_COLOR  - ANSI escape code prefix.
-
-// <0=> Default
-// <1=> Black
-// <2=> Red
-// <3=> Green
-// <4=> Yellow
-// <5=> Blue
-// <6=> Magenta
-// <7=> Cyan
-// <8=> White
-
-#ifndef NRFX_GPIOTE_CONFIG_INFO_COLOR
-#define NRFX_GPIOTE_CONFIG_INFO_COLOR 0
-#endif
-
-// <o> NRFX_GPIOTE_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
-
-// <0=> Default
-// <1=> Black
-// <2=> Red
-// <3=> Green
-// <4=> Yellow
-// <5=> Blue
-// <6=> Magenta
-// <7=> Cyan
-// <8=> White
-
-#ifndef NRFX_GPIOTE_CONFIG_DEBUG_COLOR
-#define NRFX_GPIOTE_CONFIG_DEBUG_COLOR 0
-#endif
-
-// </e>
-
-// </e>
 
 // <e> NRFX_POWER_ENABLED - nrfx_power - POWER peripheral driver
 //==========================================================