diff --git a/src/libcamera/formats.cpp b/src/libcamera/formats.cpp
index d4781dfb3874..9b6ccdca0663 100644
--- a/src/libcamera/formats.cpp
+++ b/src/libcamera/formats.cpp
@@ -510,6 +510,19 @@ const std::map<PixelFormat, PixelFormatInfo> pixelFormatInfo{
 		.pixelsPerGroup = 1,
 		.planes = {{ { 2, 1 }, { 0, 0 }, { 0, 0 } }},
 	} },
+	{ formats::R10_CSI2P, {
+		.name = "R10_CSI2P",
+		.format = formats::R10,
+		.v4l2Formats = {
+			.single = V4L2PixelFormat(V4L2_PIX_FMT_Y10P),
+			.multi = V4L2PixelFormat(),
+		},
+		.bitsPerPixel = 10,
+		.colourEncoding = PixelFormatInfo::ColourEncodingYUV,
+		.packed = true,
+		.pixelsPerGroup = 1,
+		.planes = {{ { 2, 1 }, { 0, 0 }, { 0, 0 } }},
+	} },
 
 	/* Bayer formats. */
 	{ formats::SBGGR8, {
diff --git a/src/libcamera/formats.yaml b/src/libcamera/formats.yaml
index 22a8e473a183..1f3f043302c3 100644
--- a/src/libcamera/formats.yaml
+++ b/src/libcamera/formats.yaml
@@ -109,6 +109,10 @@ formats:
   - SBGGR16:
       fourcc: DRM_FORMAT_SBGGR16
 
+  - R10_CSI2P:
+      fourcc: DRM_FORMAT_R10
+      mod: MIPI_FORMAT_MOD_CSI2_PACKED
+
   - SRGGB10_CSI2P:
       fourcc: DRM_FORMAT_SRGGB10
       mod: MIPI_FORMAT_MOD_CSI2_PACKED
