diff --git a/include/libcamera/internal/bayer_format.h b/include/libcamera/internal/bayer_format.h
index 5c14bb5f..9b6b5b58 100644
--- a/include/libcamera/internal/bayer_format.h
+++ b/include/libcamera/internal/bayer_format.h
@@ -27,7 +27,8 @@ public:
 		GBRG = 1,
 		GRBG = 2,
 		RGGB = 3,
-		MONO = 4
+		MONO = 4,
+		NONE = 5
 	};
 
 	enum class Packing : uint16_t {
diff --git a/src/libcamera/bayer_format.cpp b/src/libcamera/bayer_format.cpp
index 3dab91fc..89fe10ed 100644
--- a/src/libcamera/bayer_format.cpp
+++ b/src/libcamera/bayer_format.cpp
@@ -49,6 +49,9 @@ namespace libcamera {
  * \brief R then G on the first row, G then B on the second row.
  * \var BayerFormat::MONO
  * \brief Monochrome image data, there is no colour filter array.
+ * \var BayerFormat::NONE
+ * \brief Bayer-formatted data but without a specific order, which will have to
+ * be discerned through other means.
  */
 
 /**
diff --git a/src/libcamera/sensor/camera_sensor_legacy.cpp b/src/libcamera/sensor/camera_sensor_legacy.cpp
index 32989c19..232a8525 100644
--- a/src/libcamera/sensor/camera_sensor_legacy.cpp
+++ b/src/libcamera/sensor/camera_sensor_legacy.cpp
@@ -641,6 +641,12 @@ int CameraSensorLegacy::initProperties()
 		case BayerFormat::MONO:
 			cfa = properties::draft::MONO;
 			break;
+		case BayerFormat::NONE:
+			LOG(CameraSensor, Warning)
+				<< "Sensor declares no CFA pattern. This is extremely unlikely "
+				<< "and should be investigated as a likely error.";
+			cfa = properties::draft::MONO;
+			break;
 		}
 
 		properties_.set(properties::draft::ColorFilterArrangement, cfa);
