The gnu C++ compiler wont do non trivial assignments designated initialisers, but by simply reordering this will work, Its a bit annoying,
nrfx_qspi.h line 73 replace with the following...
/** * @brief QSPI instance default configuration. */ #define NRFX_QSPI_DEFAULT_CONFIG \ { \ .xip_offset = NRFX_QSPI_CONFIG_XIP_OFFSET, \ .pins = { \ .sck_pin = NRFX_QSPI_PIN_SCK, \ .csn_pin = NRFX_QSPI_PIN_CSN, \ .io0_pin = NRFX_QSPI_PIN_IO0, \ .io1_pin = NRFX_QSPI_PIN_IO1, \ .io2_pin = NRFX_QSPI_PIN_IO2, \ .io3_pin = NRFX_QSPI_PIN_IO3, \ }, \ .prot_if = { \ .readoc = (nrf_qspi_readoc_t)NRFX_QSPI_CONFIG_READOC, \ .writeoc = (nrf_qspi_writeoc_t)NRFX_QSPI_CONFIG_WRITEOC, \ .addrmode = (nrf_qspi_addrmode_t)NRFX_QSPI_CONFIG_ADDRMODE, \ .dpmconfig = false, \ }, \ .phy_if = { \ .sck_delay = (uint8_t)NRFX_QSPI_CONFIG_SCK_DELAY, \ .dpmen = false, \ .spi_mode = (nrf_qspi_spi_mode_t)NRFX_QSPI_CONFIG_MODE, \ .sck_freq = (nrf_qspi_frequency_t)NRFX_QSPI_CONFIG_FREQUENCY, \ }, \ .irq_priority = (uint8_t)NRFX_QSPI_CONFIG_IRQ_PRIORITY, \ }