diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
index 358e2c8..fc04cf8 100644
--- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp
+++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
@@ -279,13 +279,23 @@ int PipelineHandlerRkISP1::configure(Camera *camera, CameraConfiguration *c)
 
 	LOG(RkISP1, Debug) << "Sensor configured with " << format.toString();
 
-	LOG(RkISP1, Debug) << "Configuring ISP with " << format.toString();
+	LOG(RkISP1, Debug) << "Configuring ISP input pad with " << format.toString();
 
 	ret = isp_->setFormat(0, &format);
 	if (ret < 0)
 		return ret;
 
-	LOG(RkISP1, Debug) << "ISP configured with " << format.toString();
+	LOG(RkISP1, Debug) << "ISP input pad configured with " << format.toString();
+
+	/* YUYV8_2X8 is required in ISP pad 1 for non-bayer output */
+	format.mbus_code = MEDIA_BUS_FMT_YUYV8_2X8;
+	LOG(RkISP1, Debug) << "Configuring ISP output pad with " << format.toString();
+
+	ret = isp_->setFormat(2, &format);
+	if (ret < 0)
+		return ret;
+
+	LOG(RkISP1, Debug) << "ISP output pad configured with " << format.toString();
 
 	V4L2DeviceFormat outputFormat = {};
 	outputFormat.fourcc = cfg.pixelFormat;
