diff --git a/libraries/AP_HAL_Empty/AP_HAL_Empty_Namespace.h b/libraries/AP_HAL_Empty/AP_HAL_Empty_Namespace.h
index f264973b44..a66a5156ac 100644
--- a/libraries/AP_HAL_Empty/AP_HAL_Empty_Namespace.h
+++ b/libraries/AP_HAL_Empty/AP_HAL_Empty_Namespace.h
@@ -16,6 +16,8 @@ namespace Empty {
class SPIDevice;
class SPIDeviceDriver;
class SPIDeviceManager;
+ class QSPIDevice;
+ class QSPIDeviceManager;
class Storage;
class UARTDriver;
class Util;
diff --git a/libraries/AP_HAL_Empty/AP_HAL_Empty_Private.h b/libraries/AP_HAL_Empty/AP_HAL_Empty_Private.h
index 097aa30926..602bdc0dee 100644
--- a/libraries/AP_HAL_Empty/AP_HAL_Empty_Private.h
+++ b/libraries/AP_HAL_Empty/AP_HAL_Empty_Private.h
@@ -13,6 +13,7 @@
#include "Scheduler.h"
#include "Semaphores.h"
#include "SPIDevice.h"
+#include "QSPIDevice.h"
#include "Storage.h"
#include "UARTDriver.h"
#include "Util.h"
diff --git a/libraries/AP_HAL_Empty/QSPIDevice.h b/libraries/AP_HAL_Empty/QSPIDevice.h
new file mode 100644
index 0000000000..18be33c1e9
--- /dev/null
+++ b/libraries/AP_HAL_Empty/QSPIDevice.h
@@ -0,0 +1,59 @@
+/*
+ * This file is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This file is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see .
+ *
+ * Code by Andy Piper and Siddharth Bharat Purohit
+ */
+#pragma once
+
+#include
+#include
+#include
+
+#ifndef HAL_USE_QSPI_DEFAULT_CFG
+#define HAL_USE_QSPI_DEFAULT_CFG 1
+#endif
+
+namespace Empty
+{
+
+class QSPIDevice : public AP_HAL::QSPIDevice
+{
+public:
+
+ QSPIDevice() { }
+
+ /* See AP_HAL::Device::transfer() */
+ bool transfer(const uint8_t *send, uint32_t send_len,
+ uint8_t *recv, uint32_t recv_len) override
+ {
+ return false;
+ }
+
+ // Set command header for upcomming transfer call(s)
+ void set_cmd_header(const CommandHeader& cmd_hdr) override
+ {
+ return;
+ }
+
+ AP_HAL::Semaphore* get_semaphore() override
+ {
+ return nullptr;
+ }
+};
+
+class QSPIDeviceManager : public AP_HAL::QSPIDeviceManager
+{
+};
+
+}