diff --git a/src/ipa/simple/algorithms/ccm.cpp b/src/ipa/simple/algorithms/ccm.cpp
index 0a98406c1..e3da6adfc 100644
--- a/src/ipa/simple/algorithms/ccm.cpp
+++ b/src/ipa/simple/algorithms/ccm.cpp
@@ -42,6 +42,24 @@ int Ccm::init([[maybe_unused]] IPAContext &context, const YamlObject &tuningData
 	return 0;
 }
 
+int Ccm::init([[maybe_unused]] IPAContext &context)
+{
+	/* Initialize with identity CCM at standard D65 color temperature */
+	float identity[] = { 1, 0, 0,
+			     0, 1, 0,
+			     0, 0, 1 };
+	Matrix<float, 3, 3> identityMatrix(identity);
+
+	std::map<unsigned int, Matrix<float, 3, 3>> ccmData;
+	ccmData[6500] = identityMatrix;
+
+	ccm_ = Interpolator<Matrix<float, 3, 3>>(std::move(ccmData));
+
+	context.ccmEnabled = true;
+	context.ctrlMap[&controls::Saturation] = ControlInfo(0.0f, 2.0f, 1.0f);
+	return 0;
+}
+
 int Ccm::configure(IPAContext &context,
 		   [[maybe_unused]] const IPAConfigInfo &configInfo)
 {
diff --git a/src/ipa/simple/algorithms/ccm.h b/src/ipa/simple/algorithms/ccm.h
index 8279a3d59..b46f17726 100644
--- a/src/ipa/simple/algorithms/ccm.h
+++ b/src/ipa/simple/algorithms/ccm.h
@@ -26,6 +26,7 @@ public:
 	~Ccm() = default;
 
 	int init(IPAContext &context, const YamlObject &tuningData) override;
+	int init(IPAContext &context) override;
 	int configure(IPAContext &context,
 		      const IPAConfigInfo &configInfo) override;
 	void queueRequest(typename Module::Context &context,
