summaryrefslogtreecommitdiff
path: root/aic/ipu3_isp_pipe.h
diff options
context:
space:
mode:
Diffstat (limited to 'aic/ipu3_isp_pipe.h')
-rw-r--r--aic/ipu3_isp_pipe.h51
1 files changed, 51 insertions, 0 deletions
diff --git a/aic/ipu3_isp_pipe.h b/aic/ipu3_isp_pipe.h
new file mode 100644
index 0000000..95540ab
--- /dev/null
+++ b/aic/ipu3_isp_pipe.h
@@ -0,0 +1,51 @@
+/* SPDX-License-Identifier: Apache-2.0 */
+/*
+ * IPU3ISPPipe: Derived class from ISPPipe storing the AIC config
+ */
+
+#ifndef IPU3ISPPIPE_H
+#define IPU3ISPPIPE_H
+
+/* Included first to bring in our type wrapper */
+#include "kbl_aic.h"
+
+#include "IPU3AICCommon.h"
+#include "Pipe.h"
+
+namespace libcamera::ipa::ipu3::aic {
+
+#define NUM_ISP_PIPES 1
+
+typedef enum AicMode {
+ AIC_MODE_STILL = 0,
+ AIC_MODE_VIDEO,
+ AIC_MODE_MAX,
+} AicMode;
+
+class IPU3ISPPipe : public ISPPipe
+{
+public:
+ IPU3ISPPipe();
+
+public:
+ // This function configures the HW/FW pipe via CSS interface
+ virtual void SetPipeConfig(const aic_output_t pipe_config);
+
+ virtual pipe_ver GetPipeVer() { return Czero; }
+
+ virtual const ia_aiq_rgbs_grid *GetAWBStats();
+ virtual const ia_aiq_af_grid *GetAFStats();
+ virtual const ia_aiq_histogram *GetAEStats();
+ virtual aic_config *GetAicConfig();
+
+ virtual void dump();
+
+private:
+ aic_output_t AicOutput;
+
+ aic_config AicConfig; /* Config to driver */
+};
+
+} /* namespace libcamera::ipa::ipu3::aic */
+
+#endif /* IPU3ISPPIPE_H */