diff --git a/src/libcamera/formats.cpp b/src/libcamera/formats.cpp
index bfcdfc08960d..2a79a3b6c7f8 100644
--- a/src/libcamera/formats.cpp
+++ b/src/libcamera/formats.cpp
@@ -568,330 +568,144 @@ const std::map<PixelFormat, PixelFormatInfo> pixelFormatInfo{
 	} },
 
 	/* Bayer formats. */
-	{ formats::SBGGR8, {
-		.name = "SBGGR8",
-		.format = formats::SBGGR8,
-		.v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SBGGR8), },
+	{ formats::RAW8, {
+		.name = "RAW8",
+		.format = formats::RAW8,
+		.v4l2Formats = {
+			V4L2PixelFormat(V4L2_PIX_FMT_RAW_8),
+			V4L2PixelFormat(V4L2_PIX_FMT_SBGGR8),
+			V4L2PixelFormat(V4L2_PIX_FMT_SGBRG8),
+			V4L2PixelFormat(V4L2_PIX_FMT_SGRBG8),
+			V4L2PixelFormat(V4L2_PIX_FMT_SRGGB8),
+		},
 		.bitsPerPixel = 8,
 		.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
 		.packed = false,
 		.pixelsPerGroup = 2,
 		.planes = {{ { 2, 1 }, { 0, 0 }, { 0, 0 } }},
 	} },
-	{ formats::SGBRG8, {
-		.name = "SGBRG8",
-		.format = formats::SGBRG8,
-		.v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SGBRG8), },
-		.bitsPerPixel = 8,
-		.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
-		.packed = false,
-		.pixelsPerGroup = 2,
-		.planes = {{ { 2, 1 }, { 0, 0 }, { 0, 0 } }},
-	} },
-	{ formats::SGRBG8, {
-		.name = "SGRBG8",
-		.format = formats::SGRBG8,
-		.v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SGRBG8), },
-		.bitsPerPixel = 8,
-		.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
-		.packed = false,
-		.pixelsPerGroup = 2,
-		.planes = {{ { 2, 1 }, { 0, 0 }, { 0, 0 } }},
-	} },
-	{ formats::SRGGB8, {
-		.name = "SRGGB8",
-		.format = formats::SRGGB8,
-		.v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SRGGB8), },
-		.bitsPerPixel = 8,
-		.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
-		.packed = false,
-		.pixelsPerGroup = 2,
-		.planes = {{ { 2, 1 }, { 0, 0 }, { 0, 0 } }},
-	} },
-	{ formats::SBGGR10, {
-		.name = "SBGGR10",
-		.format = formats::SBGGR10,
-		.v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SBGGR10), },
+	{ formats::RAW10, {
+		.name = "RAW10",
+		.format = formats::RAW10,
+		.v4l2Formats = {
+			V4L2PixelFormat(V4L2_PIX_FMT_RAW_10),
+			V4L2PixelFormat(V4L2_PIX_FMT_SBGGR10),
+			V4L2PixelFormat(V4L2_PIX_FMT_SGBRG10),
+			V4L2PixelFormat(V4L2_PIX_FMT_SGRBG10),
+			V4L2PixelFormat(V4L2_PIX_FMT_SRGGB10),
+		},
 		.bitsPerPixel = 10,
 		.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
 		.packed = false,
 		.pixelsPerGroup = 2,
 		.planes = {{ { 4, 1 }, { 0, 0 }, { 0, 0 } }},
 	} },
-	{ formats::SGBRG10, {
-		.name = "SGBRG10",
-		.format = formats::SGBRG10,
-		.v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SGBRG10), },
-		.bitsPerPixel = 10,
-		.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
-		.packed = false,
-		.pixelsPerGroup = 2,
-		.planes = {{ { 4, 1 }, { 0, 0 }, { 0, 0 } }},
-	} },
-	{ formats::SGRBG10, {
-		.name = "SGRBG10",
-		.format = formats::SGRBG10,
-		.v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SGRBG10), },
-		.bitsPerPixel = 10,
-		.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
-		.packed = false,
-		.pixelsPerGroup = 2,
-		.planes = {{ { 4, 1 }, { 0, 0 }, { 0, 0 } }},
-	} },
-	{ formats::SRGGB10, {
-		.name = "SRGGB10",
-		.format = formats::SRGGB10,
-		.v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SRGGB10), },
-		.bitsPerPixel = 10,
-		.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
-		.packed = false,
-		.pixelsPerGroup = 2,
-		.planes = {{ { 4, 1 }, { 0, 0 }, { 0, 0 } }},
-	} },
-	{ formats::SBGGR10_CSI2P, {
-		.name = "SBGGR10_CSI2P",
-		.format = formats::SBGGR10_CSI2P,
-		.v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SBGGR10P), },
+	{ formats::RAW10_CSI2P, {
+		.name = "RAW10_CSI2P",
+		.format = formats::RAW10_CSI2P,
+		.v4l2Formats = {
+			V4L2PixelFormat(V4L2_PIX_FMT_RAW_CSI2_10),
+			V4L2PixelFormat(V4L2_PIX_FMT_SBGGR10P),
+			V4L2PixelFormat(V4L2_PIX_FMT_SGBRG10P),
+			V4L2PixelFormat(V4L2_PIX_FMT_SGRBG10P),
+			V4L2PixelFormat(V4L2_PIX_FMT_SRGGB10P),
+		},
 		.bitsPerPixel = 10,
 		.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
 		.packed = true,
 		.pixelsPerGroup = 4,
 		.planes = {{ { 5, 1 }, { 0, 0 }, { 0, 0 } }},
 	} },
-	{ formats::SGBRG10_CSI2P, {
-		.name = "SGBRG10_CSI2P",
-		.format = formats::SGBRG10_CSI2P,
-		.v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SGBRG10P), },
-		.bitsPerPixel = 10,
-		.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
-		.packed = true,
-		.pixelsPerGroup = 4,
-		.planes = {{ { 5, 1 }, { 0, 0 }, { 0, 0 } }},
-	} },
-	{ formats::SGRBG10_CSI2P, {
-		.name = "SGRBG10_CSI2P",
-		.format = formats::SGRBG10_CSI2P,
-		.v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SGRBG10P), },
-		.bitsPerPixel = 10,
-		.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
-		.packed = true,
-		.pixelsPerGroup = 4,
-		.planes = {{ { 5, 1 }, { 0, 0 }, { 0, 0 } }},
-	} },
-	{ formats::SRGGB10_CSI2P, {
-		.name = "SRGGB10_CSI2P",
-		.format = formats::SRGGB10_CSI2P,
-		.v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SRGGB10P), },
-		.bitsPerPixel = 10,
-		.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
-		.packed = true,
-		.pixelsPerGroup = 4,
-		.planes = {{ { 5, 1 }, { 0, 0 }, { 0, 0 } }},
-	} },
-	{ formats::SBGGR12, {
-		.name = "SBGGR12",
-		.format = formats::SBGGR12,
-		.v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SBGGR12), },
+	{ formats::RAW12, {
+		.name = "RAW12",
+		.format = formats::RAW12,
+		.v4l2Formats = {
+			V4L2PixelFormat(V4L2_PIX_FMT_RAW_12),
+			V4L2PixelFormat(V4L2_PIX_FMT_SBGGR12),
+			V4L2PixelFormat(V4L2_PIX_FMT_SGBRG12),
+			V4L2PixelFormat(V4L2_PIX_FMT_SGRBG12),
+			V4L2PixelFormat(V4L2_PIX_FMT_SRGGB12),
+		},
 		.bitsPerPixel = 12,
 		.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
 		.packed = false,
 		.pixelsPerGroup = 2,
 		.planes = {{ { 4, 1 }, { 0, 0 }, { 0, 0 } }},
 	} },
-	{ formats::SGBRG12, {
-		.name = "SGBRG12",
-		.format = formats::SGBRG12,
-		.v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SGBRG12), },
-		.bitsPerPixel = 12,
-		.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
-		.packed = false,
-		.pixelsPerGroup = 2,
-		.planes = {{ { 4, 1 }, { 0, 0 }, { 0, 0 } }},
-	} },
-	{ formats::SGRBG12, {
-		.name = "SGRBG12",
-		.format = formats::SGRBG12,
-		.v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SGRBG12), },
-		.bitsPerPixel = 12,
-		.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
-		.packed = false,
-		.pixelsPerGroup = 2,
-		.planes = {{ { 4, 1 }, { 0, 0 }, { 0, 0 } }},
-	} },
-	{ formats::SRGGB12, {
-		.name = "SRGGB12",
-		.format = formats::SRGGB12,
-		.v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SRGGB12), },
-		.bitsPerPixel = 12,
-		.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
-		.packed = false,
-		.pixelsPerGroup = 2,
-		.planes = {{ { 4, 1 }, { 0, 0 }, { 0, 0 } }},
-	} },
-	{ formats::SBGGR12_CSI2P, {
-		.name = "SBGGR12_CSI2P",
-		.format = formats::SBGGR12_CSI2P,
-		.v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SBGGR12P), },
+	{ formats::RAW12_CSI2P, {
+		.name = "RAW12_CSI2P",
+		.format = formats::RAW12_CSI2P,
+		.v4l2Formats = {
+			V4L2PixelFormat(V4L2_PIX_FMT_RAW_CSI2_12),
+			V4L2PixelFormat(V4L2_PIX_FMT_SBGGR12P),
+			V4L2PixelFormat(V4L2_PIX_FMT_SGBRG12P),
+			V4L2PixelFormat(V4L2_PIX_FMT_SGRBG12P),
+			V4L2PixelFormat(V4L2_PIX_FMT_SRGGB12P),
+		},
 		.bitsPerPixel = 12,
 		.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
 		.packed = true,
 		.pixelsPerGroup = 2,
 		.planes = {{ { 3, 1 }, { 0, 0 }, { 0, 0 } }},
 	} },
-	{ formats::SGBRG12_CSI2P, {
-		.name = "SGBRG12_CSI2P",
-		.format = formats::SGBRG12_CSI2P,
-		.v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SGBRG12P), },
-		.bitsPerPixel = 12,
-		.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
-		.packed = true,
-		.pixelsPerGroup = 2,
-		.planes = {{ { 3, 1 }, { 0, 0 }, { 0, 0 } }},
-	} },
-	{ formats::SGRBG12_CSI2P, {
-		.name = "SGRBG12_CSI2P",
-		.format = formats::SGRBG12_CSI2P,
-		.v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SGRBG12P), },
-		.bitsPerPixel = 12,
-		.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
-		.packed = true,
-		.pixelsPerGroup = 2,
-		.planes = {{ { 3, 1 }, { 0, 0 }, { 0, 0 } }},
-	} },
-	{ formats::SRGGB12_CSI2P, {
-		.name = "SRGGB12_CSI2P",
-		.format = formats::SRGGB12_CSI2P,
-		.v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SRGGB12P), },
-		.bitsPerPixel = 12,
-		.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
-		.packed = true,
-		.pixelsPerGroup = 2,
-		.planes = {{ { 3, 1 }, { 0, 0 }, { 0, 0 } }},
-	} },
-	{ formats::SBGGR14, {
-		.name = "SBGGR14",
-		.format = formats::SBGGR14,
-		.v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SBGGR14), },
+	{ formats::RAW14, {
+		.name = "RAW14",
+		.format = formats::RAW14,
+		.v4l2Formats = {
+			V4L2PixelFormat(V4L2_PIX_FMT_RAW_14),
+			V4L2PixelFormat(V4L2_PIX_FMT_SBGGR14),
+			V4L2PixelFormat(V4L2_PIX_FMT_SGBRG14),
+			V4L2PixelFormat(V4L2_PIX_FMT_SGRBG14),
+			V4L2PixelFormat(V4L2_PIX_FMT_SRGGB14),
+		},
 		.bitsPerPixel = 14,
 		.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
 		.packed = false,
 		.pixelsPerGroup = 2,
 		.planes = {{ { 4, 1 }, { 0, 0 }, { 0, 0 } }},
 	} },
-	{ formats::SGBRG14, {
-		.name = "SGBRG14",
-		.format = formats::SGBRG14,
-		.v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SGBRG14), },
-		.bitsPerPixel = 14,
-		.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
-		.packed = false,
-		.pixelsPerGroup = 2,
-		.planes = {{ { 4, 1 }, { 0, 0 }, { 0, 0 } }},
-	} },
-	{ formats::SGRBG14, {
-		.name = "SGRBG14",
-		.format = formats::SGRBG14,
-		.v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SGRBG14), },
-		.bitsPerPixel = 14,
-		.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
-		.packed = false,
-		.pixelsPerGroup = 2,
-		.planes = {{ { 4, 1 }, { 0, 0 }, { 0, 0 } }},
-	} },
-	{ formats::SRGGB14, {
-		.name = "SRGGB14",
-		.format = formats::SRGGB14,
-		.v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SRGGB14), },
-		.bitsPerPixel = 14,
-		.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
-		.packed = false,
-		.pixelsPerGroup = 2,
-		.planes = {{ { 4, 1 }, { 0, 0 }, { 0, 0 } }},
-	} },
-	{ formats::SBGGR14_CSI2P, {
-		.name = "SBGGR14_CSI2P",
-		.format = formats::SBGGR14_CSI2P,
-		.v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SBGGR14P), },
+	{ formats::RAW14_CSI2P, {
+		.name = "RAW14_CSI2P",
+		.format = formats::RAW14_CSI2P,
+		.v4l2Formats = {
+			V4L2PixelFormat(V4L2_PIX_FMT_RAW_CSI2_14),
+			V4L2PixelFormat(V4L2_PIX_FMT_SBGGR14P),
+			V4L2PixelFormat(V4L2_PIX_FMT_SGBRG14P),
+			V4L2PixelFormat(V4L2_PIX_FMT_SGRBG14P),
+			V4L2PixelFormat(V4L2_PIX_FMT_SRGGB14P),
+		},
 		.bitsPerPixel = 14,
 		.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
 		.packed = true,
 		.pixelsPerGroup = 4,
 		.planes = {{ { 7, 1 }, { 0, 0 }, { 0, 0 } }},
 	} },
-	{ formats::SGBRG14_CSI2P, {
-		.name = "SGBRG14_CSI2P",
-		.format = formats::SGBRG14_CSI2P,
-		.v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SGBRG14P), },
-		.bitsPerPixel = 14,
-		.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
-		.packed = true,
-		.pixelsPerGroup = 4,
-		.planes = {{ { 7, 1 }, { 0, 0 }, { 0, 0 } }},
-	} },
-	{ formats::SGRBG14_CSI2P, {
-		.name = "SGRBG14_CSI2P",
-		.format = formats::SGRBG14_CSI2P,
-		.v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SGRBG14P), },
-		.bitsPerPixel = 14,
-		.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
-		.packed = true,
-		.pixelsPerGroup = 4,
-		.planes = {{ { 7, 1 }, { 0, 0 }, { 0, 0 } }},
-	} },
-	{ formats::SRGGB14_CSI2P, {
-		.name = "SRGGB14_CSI2P",
-		.format = formats::SRGGB14_CSI2P,
-		.v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SRGGB14P), },
-		.bitsPerPixel = 14,
-		.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
-		.packed = true,
-		.pixelsPerGroup = 4,
-		.planes = {{ { 7, 1 }, { 0, 0 }, { 0, 0 } }},
-	} },
-	{ formats::SBGGR16, {
-		.name = "SBGGR16",
-		.format = formats::SBGGR16,
-		.v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SBGGR16), },
+	{ formats::RAW16, {
+		.name = "RAW16",
+		.format = formats::RAW16,
+		.v4l2Formats = {
+			V4L2PixelFormat(V4L2_PIX_FMT_RAW_16),
+			V4L2PixelFormat(V4L2_PIX_FMT_SBGGR16),
+			V4L2PixelFormat(V4L2_PIX_FMT_SGBRG16),
+			V4L2PixelFormat(V4L2_PIX_FMT_SGRBG16),
+			V4L2PixelFormat(V4L2_PIX_FMT_SRGGB16),
+		},
 		.bitsPerPixel = 16,
 		.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
 		.packed = false,
 		.pixelsPerGroup = 2,
 		.planes = {{ { 4, 1 }, { 0, 0 }, { 0, 0 } }},
 	} },
-	{ formats::SGBRG16, {
-		.name = "SGBRG16",
-		.format = formats::SGBRG16,
-		.v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SGBRG16), },
-		.bitsPerPixel = 16,
-		.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
-		.packed = false,
-		.pixelsPerGroup = 2,
-		.planes = {{ { 4, 1 }, { 0, 0 }, { 0, 0 } }},
-	} },
-	{ formats::SGRBG16, {
-		.name = "SGRBG16",
-		.format = formats::SGRBG16,
-		.v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SGRBG16), },
-		.bitsPerPixel = 16,
-		.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
-		.packed = false,
-		.pixelsPerGroup = 2,
-		.planes = {{ { 4, 1 }, { 0, 0 }, { 0, 0 } }},
-	} },
-	{ formats::SRGGB16, {
-		.name = "SRGGB16",
-		.format = formats::SRGGB16,
-		.v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SRGGB16), },
-		.bitsPerPixel = 16,
-		.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
-		.packed = false,
-		.pixelsPerGroup = 2,
-		.planes = {{ { 4, 1 }, { 0, 0 }, { 0, 0 } }},
-	} },
-	{ formats::SBGGR10_IPU3, {
-		.name = "SBGGR10_IPU3",
-		.format = formats::SBGGR10_IPU3,
-		.v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_IPU3_SBGGR10), },
+	{ formats::RAW10_IPU3, {
+		.name = "RAW10_IPU3",
+		.format = formats::RAW10_IPU3,
+		.v4l2Formats = {
+			V4L2PixelFormat(V4L2_PIX_FMT_IPU3_RAW10),
+			V4L2PixelFormat(V4L2_PIX_FMT_IPU3_SBGGR10),
+			V4L2PixelFormat(V4L2_PIX_FMT_IPU3_SGBRG10),
+			V4L2PixelFormat(V4L2_PIX_FMT_IPU3_SGRBG10),
+			V4L2PixelFormat(V4L2_PIX_FMT_IPU3_SRGGB10),
+		},
 		.bitsPerPixel = 10,
 		.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
 		.packed = true,
@@ -899,70 +713,16 @@ const std::map<PixelFormat, PixelFormatInfo> pixelFormatInfo{
 		.pixelsPerGroup = 25,
 		.planes = {{ { 32, 1 }, { 0, 0 }, { 0, 0 } }},
 	} },
-	{ formats::SGBRG10_IPU3, {
-		.name = "SGBRG10_IPU3",
-		.format = formats::SGBRG10_IPU3,
-		.v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_IPU3_SGBRG10), },
-		.bitsPerPixel = 10,
-		.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
-		.packed = true,
-		.pixelsPerGroup = 25,
-		.planes = {{ { 32, 1 }, { 0, 0 }, { 0, 0 } }},
-	} },
-	{ formats::SGRBG10_IPU3, {
-		.name = "SGRBG10_IPU3",
-		.format = formats::SGRBG10_IPU3,
-		.v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_IPU3_SGRBG10), },
-		.bitsPerPixel = 10,
-		.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
-		.packed = true,
-		.pixelsPerGroup = 25,
-		.planes = {{ { 32, 1 }, { 0, 0 }, { 0, 0 } }},
-	} },
-	{ formats::SRGGB10_IPU3, {
-		.name = "SRGGB10_IPU3",
-		.format = formats::SRGGB10_IPU3,
-		.v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_IPU3_SRGGB10), },
-		.bitsPerPixel = 10,
-		.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
-		.packed = true,
-		.pixelsPerGroup = 25,
-		.planes = {{ { 32, 1 }, { 0, 0 }, { 0, 0 } }},
-	} },
-	{ formats::BGGR_PISP_COMP1, {
-		.name = "BGGR_PISP_COMP1",
-		.format = formats::BGGR_PISP_COMP1,
-		.v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_PISP_COMP1_BGGR), },
-		.bitsPerPixel = 8,
-		.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
-		.packed = true,
-		.pixelsPerGroup = 2,
-		.planes = {{ { 2, 1 }, { 0, 0 }, { 0, 0 } }},
-	} },
-	{ formats::GBRG_PISP_COMP1, {
-		.name = "GBRG_PISP_COMP1",
-		.format = formats::GBRG_PISP_COMP1,
-		.v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_PISP_COMP1_GBRG), },
-		.bitsPerPixel = 8,
-		.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
-		.packed = true,
-		.pixelsPerGroup = 2,
-		.planes = {{ { 2, 1 }, { 0, 0 }, { 0, 0 } }},
-	} },
-	{ formats::GRBG_PISP_COMP1, {
-		.name = "GRBG_PISP_COMP1",
-		.format = formats::GRBG_PISP_COMP1,
-		.v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_PISP_COMP1_GRBG), },
-		.bitsPerPixel = 8,
-		.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
-		.packed = true,
-		.pixelsPerGroup = 2,
-		.planes = {{ { 2, 1 }, { 0, 0 }, { 0, 0 } }},
-	} },
-	{ formats::RGGB_PISP_COMP1, {
-		.name = "RGGB_PISP_COMP1",
-		.format = formats::RGGB_PISP_COMP1,
-		.v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_PISP_COMP1_RGGB), },
+	{ formats::RAW_PISP_COMP1, {
+		.name = "RAW_PISP_COMP1",
+		.format = formats::RAW_PISP_COMP1,
+		.v4l2Formats = {
+			V4L2PixelFormat(V4L2_PIX_FMT_PISP_COMP1_RAW),
+			V4L2PixelFormat(V4L2_PIX_FMT_PISP_COMP1_BGGR),
+			V4L2PixelFormat(V4L2_PIX_FMT_PISP_COMP1_GBRG),
+			V4L2PixelFormat(V4L2_PIX_FMT_PISP_COMP1_GRBG),
+			V4L2PixelFormat(V4L2_PIX_FMT_PISP_COMP1_RGGB),
+		},
 		.bitsPerPixel = 8,
 		.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
 		.packed = true,
diff --git a/src/libcamera/formats.yaml b/src/libcamera/formats.yaml
index d256fd2c1bfe..d71c65078587 100644
--- a/src/libcamera/formats.yaml
+++ b/src/libcamera/formats.yaml
@@ -16,6 +16,16 @@ formats:
   - R16:
       fourcc: DRM_FORMAT_R16
 
+  - R10_CSI2P:
+      fourcc: DRM_FORMAT_R10
+      mod: MIPI_FORMAT_MOD_CSI2_PACKED
+  - R12_CSI2P:
+      fourcc: DRM_FORMAT_R12
+      mod: MIPI_FORMAT_MOD_CSI2_PACKED
+  - R14_CSI2P:
+      fourcc: DRM_FORMAT_R14
+      mod: MIPI_FORMAT_MOD_CSI2_PACKED
+
   - RGB565:
       fourcc: DRM_FORMAT_RGB565
   - RGB565_BE:
@@ -92,123 +102,35 @@ formats:
   - MJPEG:
       fourcc: DRM_FORMAT_MJPEG
 
-  - SRGGB8:
-      fourcc: DRM_FORMAT_SRGGB8
-  - SGRBG8:
-      fourcc: DRM_FORMAT_SGRBG8
-  - SGBRG8:
-      fourcc: DRM_FORMAT_SGBRG8
-  - SBGGR8:
-      fourcc: DRM_FORMAT_SBGGR8
+  - RAW8:
+      fourcc: DRM_FORMAT_R8
+  - RAW10:
+      fourcc: DRM_FORMAT_R10
+  - RAW12:
+      fourcc: DRM_FORMAT_R12
+  - RAW14:
+      fourcc: DRM_FORMAT_R14
+  - RAW16:
+      fourcc: DRM_FORMAT_R16
 
-  - SRGGB10:
-      fourcc: DRM_FORMAT_SRGGB10
-  - SGRBG10:
-      fourcc: DRM_FORMAT_SGRBG10
-  - SGBRG10:
-      fourcc: DRM_FORMAT_SGBRG10
-  - SBGGR10:
-      fourcc: DRM_FORMAT_SBGGR10
-
-  - SRGGB12:
-      fourcc: DRM_FORMAT_SRGGB12
-  - SGRBG12:
-      fourcc: DRM_FORMAT_SGRBG12
-  - SGBRG12:
-      fourcc: DRM_FORMAT_SGBRG12
-  - SBGGR12:
-      fourcc: DRM_FORMAT_SBGGR12
-
-  - SRGGB14:
-      fourcc: DRM_FORMAT_SRGGB14
-  - SGRBG14:
-      fourcc: DRM_FORMAT_SGRBG14
-  - SGBRG14:
-      fourcc: DRM_FORMAT_SGBRG14
-  - SBGGR14:
-      fourcc: DRM_FORMAT_SBGGR14
-
-  - SRGGB16:
-      fourcc: DRM_FORMAT_SRGGB16
-  - SGRBG16:
-      fourcc: DRM_FORMAT_SGRBG16
-  - SGBRG16:
-      fourcc: DRM_FORMAT_SGBRG16
-  - SBGGR16:
-      fourcc: DRM_FORMAT_SBGGR16
-
-  - R10_CSI2P:
+  - RAW10_CSI2P:
       fourcc: DRM_FORMAT_R10
       mod: MIPI_FORMAT_MOD_CSI2_PACKED
-  - R12_CSI2P:
+  - RAW12_CSI2P:
       fourcc: DRM_FORMAT_R12
       mod: MIPI_FORMAT_MOD_CSI2_PACKED
-
-  - SRGGB10_CSI2P:
-      fourcc: DRM_FORMAT_SRGGB10
-      mod: MIPI_FORMAT_MOD_CSI2_PACKED
-  - SGRBG10_CSI2P:
-      fourcc: DRM_FORMAT_SGRBG10
-      mod: MIPI_FORMAT_MOD_CSI2_PACKED
-  - SGBRG10_CSI2P:
-      fourcc: DRM_FORMAT_SGBRG10
-      mod: MIPI_FORMAT_MOD_CSI2_PACKED
-  - SBGGR10_CSI2P:
-      fourcc: DRM_FORMAT_SBGGR10
+  - RAW14_CSI2P:
+      fourcc: DRM_FORMAT_R14
       mod: MIPI_FORMAT_MOD_CSI2_PACKED
 
-  - SRGGB12_CSI2P:
-      fourcc: DRM_FORMAT_SRGGB12
-      mod: MIPI_FORMAT_MOD_CSI2_PACKED
-  - SGRBG12_CSI2P:
-      fourcc: DRM_FORMAT_SGRBG12
-      mod: MIPI_FORMAT_MOD_CSI2_PACKED
-  - SGBRG12_CSI2P:
-      fourcc: DRM_FORMAT_SGBRG12
-      mod: MIPI_FORMAT_MOD_CSI2_PACKED
-  - SBGGR12_CSI2P:
-      fourcc: DRM_FORMAT_SBGGR12
-      mod: MIPI_FORMAT_MOD_CSI2_PACKED
-
-  - SRGGB14_CSI2P:
-      fourcc: DRM_FORMAT_SRGGB14
-      mod: MIPI_FORMAT_MOD_CSI2_PACKED
-  - SGRBG14_CSI2P:
-      fourcc: DRM_FORMAT_SGRBG14
-      mod: MIPI_FORMAT_MOD_CSI2_PACKED
-  - SGBRG14_CSI2P:
-      fourcc: DRM_FORMAT_SGBRG14
-      mod: MIPI_FORMAT_MOD_CSI2_PACKED
-  - SBGGR14_CSI2P:
-      fourcc: DRM_FORMAT_SBGGR14
-      mod: MIPI_FORMAT_MOD_CSI2_PACKED
-
-  - SRGGB10_IPU3:
-      fourcc: DRM_FORMAT_SRGGB10
-      mod: IPU3_FORMAT_MOD_PACKED
-  - SGRBG10_IPU3:
-      fourcc: DRM_FORMAT_SGRBG10
-      mod: IPU3_FORMAT_MOD_PACKED
-  - SGBRG10_IPU3:
-      fourcc: DRM_FORMAT_SGBRG10
-      mod: IPU3_FORMAT_MOD_PACKED
-  - SBGGR10_IPU3:
-      fourcc: DRM_FORMAT_SBGGR10
+  - RAW10_IPU3:
+      fourcc: DRM_FORMAT_R10
       mod: IPU3_FORMAT_MOD_PACKED
 
-  - RGGB_PISP_COMP1:
-      fourcc: DRM_FORMAT_SRGGB16
-      mod: PISP_FORMAT_MOD_COMPRESS_MODE1
-  - GRBG_PISP_COMP1:
-      fourcc: DRM_FORMAT_SGRBG16
-      mod: PISP_FORMAT_MOD_COMPRESS_MODE1
-  - GBRG_PISP_COMP1:
-      fourcc: DRM_FORMAT_SGBRG16
-      mod: PISP_FORMAT_MOD_COMPRESS_MODE1
-  - BGGR_PISP_COMP1:
-      fourcc: DRM_FORMAT_SBGGR16
-      mod: PISP_FORMAT_MOD_COMPRESS_MODE1
   - MONO_PISP_COMP1:
       fourcc: DRM_FORMAT_R16
       mod: PISP_FORMAT_MOD_COMPRESS_MODE1
+  - RAW_PISP_COMP1:
+      fourcc: DRM_FORMAT_R16
+      mod: PISP_FORMAT_MOD_COMPRESS_MODE1
 ...
diff --git a/src/libcamera/v4l2_pixelformat.cpp b/src/libcamera/v4l2_pixelformat.cpp
index c3e01a10e72a..d51987c5ad8a 100644
--- a/src/libcamera/v4l2_pixelformat.cpp
+++ b/src/libcamera/v4l2_pixelformat.cpp
@@ -145,78 +145,96 @@ const std::map<V4L2PixelFormat, V4L2PixelFormat::Info> vpf2pf{
 		{ formats::R16, "16-bit Greyscale" } },
 
 	/* Bayer formats. */
+	{ V4L2PixelFormat(V4L2_PIX_FMT_RAW_8),
+		{ formats::RAW8, "8-bit Raw" } },
 	{ V4L2PixelFormat(V4L2_PIX_FMT_SBGGR8),
-		{ formats::SBGGR8, "8-bit Bayer BGBG/GRGR" } },
+		{ formats::RAW8, "8-bit Bayer BGBG/GRGR" } },
 	{ V4L2PixelFormat(V4L2_PIX_FMT_SGBRG8),
-		{ formats::SGBRG8, "8-bit Bayer GBGB/RGRG" } },
+		{ formats::RAW8, "8-bit Bayer GBGB/RGRG" } },
 	{ V4L2PixelFormat(V4L2_PIX_FMT_SGRBG8),
-		{ formats::SGRBG8, "8-bit Bayer GRGR/BGBG" } },
+		{ formats::RAW8, "8-bit Bayer GRGR/BGBG" } },
 	{ V4L2PixelFormat(V4L2_PIX_FMT_SRGGB8),
-		{ formats::SRGGB8, "8-bit Bayer RGRG/GBGB" } },
+		{ formats::RAW8, "8-bit Bayer RGRG/GBGB" } },
+	{ V4L2PixelFormat(V4L2_PIX_FMT_RAW_10),
+		{ formats::RAW10, "10-bit Raw" } },
 	{ V4L2PixelFormat(V4L2_PIX_FMT_SBGGR10),
-		{ formats::SBGGR10, "10-bit Bayer BGBG/GRGR" } },
+		{ formats::RAW10, "10-bit Bayer BGBG/GRGR" } },
 	{ V4L2PixelFormat(V4L2_PIX_FMT_SGBRG10),
-		{ formats::SGBRG10, "10-bit Bayer GBGB/RGRG" } },
+		{ formats::RAW10, "10-bit Bayer GBGB/RGRG" } },
 	{ V4L2PixelFormat(V4L2_PIX_FMT_SGRBG10),
-		{ formats::SGRBG10, "10-bit Bayer GRGR/BGBG" } },
+		{ formats::RAW10, "10-bit Bayer GRGR/BGBG" } },
 	{ V4L2PixelFormat(V4L2_PIX_FMT_SRGGB10),
-		{ formats::SRGGB10, "10-bit Bayer RGRG/GBGB" } },
+		{ formats::RAW10, "10-bit Bayer RGRG/GBGB" } },
+	{ V4L2PixelFormat(V4L2_PIX_FMT_RAW_CSI2_10),
+		{ formats::RAW10_CSI2P, "10-bit Raw Packed" } },
 	{ V4L2PixelFormat(V4L2_PIX_FMT_SBGGR10P),
-		{ formats::SBGGR10_CSI2P, "10-bit Bayer BGBG/GRGR Packed" } },
+		{ formats::RAW10_CSI2P, "10-bit Bayer BGBG/GRGR Packed" } },
 	{ V4L2PixelFormat(V4L2_PIX_FMT_SGBRG10P),
-		{ formats::SGBRG10_CSI2P, "10-bit Bayer GBGB/RGRG Packed" } },
+		{ formats::RAW10_CSI2P, "10-bit Bayer GBGB/RGRG Packed" } },
 	{ V4L2PixelFormat(V4L2_PIX_FMT_SGRBG10P),
-		{ formats::SGRBG10_CSI2P, "10-bit Bayer GRGR/BGBG Packed" } },
+		{ formats::RAW10_CSI2P, "10-bit Bayer GRGR/BGBG Packed" } },
 	{ V4L2PixelFormat(V4L2_PIX_FMT_SRGGB10P),
-		{ formats::SRGGB10_CSI2P, "10-bit Bayer RGRG/GBGB Packed" } },
+		{ formats::RAW10_CSI2P, "10-bit Bayer RGRG/GBGB Packed" } },
+	{ V4L2PixelFormat(V4L2_PIX_FMT_RAW_12),
+		{ formats::RAW12, "12-bit Raw" } },
 	{ V4L2PixelFormat(V4L2_PIX_FMT_SBGGR12),
-		{ formats::SBGGR12, "12-bit Bayer BGBG/GRGR" } },
+		{ formats::RAW12, "12-bit Bayer BGBG/GRGR" } },
 	{ V4L2PixelFormat(V4L2_PIX_FMT_SGBRG12),
-		{ formats::SGBRG12, "12-bit Bayer GBGB/RGRG" } },
+		{ formats::RAW12, "12-bit Bayer GBGB/RGRG" } },
 	{ V4L2PixelFormat(V4L2_PIX_FMT_SGRBG12),
-		{ formats::SGRBG12, "12-bit Bayer GRGR/BGBG" } },
+		{ formats::RAW12, "12-bit Bayer GRGR/BGBG" } },
 	{ V4L2PixelFormat(V4L2_PIX_FMT_SRGGB12),
-		{ formats::SRGGB12, "12-bit Bayer RGRG/GBGB" } },
+		{ formats::RAW12, "12-bit Bayer RGRG/GBGB" } },
+	{ V4L2PixelFormat(V4L2_PIX_FMT_RAW_CSI2_12),
+		{ formats::RAW12_CSI2P, "12-bit Raw Packed" } },
 	{ V4L2PixelFormat(V4L2_PIX_FMT_SBGGR12P),
-		{ formats::SBGGR12_CSI2P, "12-bit Bayer BGBG/GRGR Packed" } },
+		{ formats::RAW12_CSI2P, "12-bit Bayer BGBG/GRGR Packed" } },
 	{ V4L2PixelFormat(V4L2_PIX_FMT_SGBRG12P),
-		{ formats::SGBRG12_CSI2P, "12-bit Bayer GBGB/RGRG Packed" } },
+		{ formats::RAW12_CSI2P, "12-bit Bayer GBGB/RGRG Packed" } },
 	{ V4L2PixelFormat(V4L2_PIX_FMT_SGRBG12P),
-		{ formats::SGRBG12_CSI2P, "12-bit Bayer GRGR/BGBG Packed" } },
+		{ formats::RAW12_CSI2P, "12-bit Bayer GRGR/BGBG Packed" } },
 	{ V4L2PixelFormat(V4L2_PIX_FMT_SRGGB12P),
-		{ formats::SRGGB12_CSI2P, "12-bit Bayer RGRG/GBGB Packed" } },
+		{ formats::RAW12_CSI2P, "12-bit Bayer RGRG/GBGB Packed" } },
+	{ V4L2PixelFormat(V4L2_PIX_FMT_RAW_14),
+		{ formats::RAW14, "14-bit Raw" } },
 	{ V4L2PixelFormat(V4L2_PIX_FMT_SBGGR14),
-		{ formats::SBGGR14, "14-bit Bayer BGBG/GRGR" } },
+		{ formats::RAW14, "14-bit Bayer BGBG/GRGR" } },
 	{ V4L2PixelFormat(V4L2_PIX_FMT_SGBRG14),
-		{ formats::SGBRG14, "14-bit Bayer GBGB/RGRG" } },
+		{ formats::RAW14, "14-bit Bayer GBGB/RGRG" } },
 	{ V4L2PixelFormat(V4L2_PIX_FMT_SGRBG14),
-		{ formats::SGRBG14, "14-bit Bayer GRGR/BGBG" } },
+		{ formats::RAW14, "14-bit Bayer GRGR/BGBG" } },
 	{ V4L2PixelFormat(V4L2_PIX_FMT_SRGGB14),
-		{ formats::SRGGB14, "14-bit Bayer RGRG/GBGB" } },
+		{ formats::RAW14, "14-bit Bayer RGRG/GBGB" } },
+	{ V4L2PixelFormat(V4L2_PIX_FMT_RAW_CSI2_14),
+		{ formats::RAW14_CSI2P, "14-bit Raw Packed" } },
 	{ V4L2PixelFormat(V4L2_PIX_FMT_SBGGR14P),
-		{ formats::SBGGR14_CSI2P, "14-bit Bayer BGBG/GRGR Packed" } },
+		{ formats::RAW14_CSI2P, "14-bit Bayer BGBG/GRGR Packed" } },
 	{ V4L2PixelFormat(V4L2_PIX_FMT_SGBRG14P),
-		{ formats::SGBRG14_CSI2P, "14-bit Bayer GBGB/RGRG Packed" } },
+		{ formats::RAW14_CSI2P, "14-bit Bayer GBGB/RGRG Packed" } },
 	{ V4L2PixelFormat(V4L2_PIX_FMT_SGRBG14P),
-		{ formats::SGRBG14_CSI2P, "14-bit Bayer GRGR/BGBG Packed" } },
+		{ formats::RAW14_CSI2P, "14-bit Bayer GRGR/BGBG Packed" } },
 	{ V4L2PixelFormat(V4L2_PIX_FMT_SRGGB14P),
-		{ formats::SRGGB14_CSI2P, "14-bit Bayer RGRG/GBGB Packed" } },
+		{ formats::RAW14_CSI2P, "14-bit Bayer RGRG/GBGB Packed" } },
+	{ V4L2PixelFormat(V4L2_PIX_FMT_RAW_16),
+		{ formats::RAW16, "16-bit Raw" } },
 	{ V4L2PixelFormat(V4L2_PIX_FMT_SBGGR16),
-		{ formats::SBGGR16, "16-bit Bayer BGBG/GRGR" } },
+		{ formats::RAW16, "16-bit Bayer BGBG/GRGR" } },
 	{ V4L2PixelFormat(V4L2_PIX_FMT_SGBRG16),
-		{ formats::SGBRG16, "16-bit Bayer GBGB/RGRG" } },
+		{ formats::RAW16, "16-bit Bayer GBGB/RGRG" } },
 	{ V4L2PixelFormat(V4L2_PIX_FMT_SGRBG16),
-		{ formats::SGRBG16, "16-bit Bayer GRGR/BGBG" } },
+		{ formats::RAW16, "16-bit Bayer GRGR/BGBG" } },
 	{ V4L2PixelFormat(V4L2_PIX_FMT_SRGGB16),
-		{ formats::SRGGB16, "16-bit Bayer RGRG/GBGB" } },
+		{ formats::RAW16, "16-bit Bayer RGRG/GBGB" } },
+	{ V4L2PixelFormat(V4L2_PIX_FMT_PISP_COMP1_RAW),
+		{ formats::RAW_PISP_COMP1, "16-bit Raw PiSP Compress Mode 1" } },
 	{ V4L2PixelFormat(V4L2_PIX_FMT_PISP_COMP1_BGGR),
-		{ formats::BGGR_PISP_COMP1, "16-bit Bayer BGBG/GRGR PiSP Compress Mode 1" } },
+		{ formats::RAW_PISP_COMP1, "16-bit Bayer BGBG/GRGR PiSP Compress Mode 1" } },
 	{ V4L2PixelFormat(V4L2_PIX_FMT_PISP_COMP1_GBRG),
-		{ formats::GBRG_PISP_COMP1, "16-bit Bayer GBGB/RGRG PiSP Compress Mode 1" } },
+		{ formats::RAW_PISP_COMP1, "16-bit Bayer GBGB/RGRG PiSP Compress Mode 1" } },
 	{ V4L2PixelFormat(V4L2_PIX_FMT_PISP_COMP1_GRBG),
-		{ formats::GRBG_PISP_COMP1, "16-bit Bayer GRGR/BGBG PiSP Compress Mode 1" } },
+		{ formats::RAW_PISP_COMP1, "16-bit Bayer GRGR/BGBG PiSP Compress Mode 1" } },
 	{ V4L2PixelFormat(V4L2_PIX_FMT_PISP_COMP1_RGGB),
-		{ formats::RGGB_PISP_COMP1, "16-bit Bayer RGRG/GBGB PiSP Compress Mode 1" } },
+		{ formats::RAW_PISP_COMP1, "16-bit Bayer RGRG/GBGB PiSP Compress Mode 1" } },
 	{ V4L2PixelFormat(V4L2_PIX_FMT_PISP_COMP1_MONO),
 		{ formats::MONO_PISP_COMP1, "16-bit Mono PiSP Compress Mode 1" } },
 
