--- /dev/null
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * camss-csid-gen1.h
+ *
+ * Qualcomm MSM Camera Subsystem - CSID (CSI Decoder) Module Generation 1
+ *
+ * Copyright (C) 2021 Linaro Ltd.
+ */
+#ifndef QC_MSM_CAMSS_CSID_GEN1_H
+#define QC_MSM_CAMSS_CSID_GEN1_H
+
+#define DECODE_FORMAT_UNCOMPRESSED_6_BIT       0x0
+#define DECODE_FORMAT_UNCOMPRESSED_8_BIT       0x1
+#define DECODE_FORMAT_UNCOMPRESSED_10_BIT      0x2
+#define DECODE_FORMAT_UNCOMPRESSED_12_BIT      0x3
+#define DECODE_FORMAT_DPCM_10_6_10             0x4
+#define DECODE_FORMAT_DPCM_10_8_10             0x5
+#define DECODE_FORMAT_DPCM_12_6_12             0x6
+#define DECODE_FORMAT_DPCM_12_8_12             0x7
+#define DECODE_FORMAT_UNCOMPRESSED_14_BIT      0x8
+#define DECODE_FORMAT_DPCM_14_8_14             0x9
+#define DECODE_FORMAT_DPCM_14_10_14            0xa
+
+#define PLAIN_FORMAT_PLAIN8    0x0 /* supports DPCM, UNCOMPRESSED_6/8_BIT */
+#define PLAIN_FORMAT_PLAIN16   0x1 /* supports DPCM, UNCOMPRESSED_10/16_BIT */
+
+#endif /* QC_MSM_CAMSS_CSID_GEN1_H */
 
--- /dev/null
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * camss-csid-gen1.h
+ *
+ * Qualcomm MSM Camera Subsystem - CSID (CSI Decoder) Module Generation 1
+ *
+ * Copyright (C) 2021 Linaro Ltd.
+ */
+#ifndef QC_MSM_CAMSS_CSID_GEN2_H
+#define QC_MSM_CAMSS_CSID_GEN2_H
+
+#define DECODE_FORMAT_UNCOMPRESSED_6_BIT       0x0
+#define DECODE_FORMAT_UNCOMPRESSED_8_BIT       0x1
+#define DECODE_FORMAT_UNCOMPRESSED_10_BIT      0x2
+#define DECODE_FORMAT_UNCOMPRESSED_12_BIT      0x3
+#define DECODE_FORMAT_UNCOMPRESSED_14_BIT      0x4
+#define DECODE_FORMAT_UNCOMPRESSED_16_BIT      0x5
+#define DECODE_FORMAT_UNCOMPRESSED_20_BIT      0x6
+#define DECODE_FORMAT_DPCM_10_6_10             0x7
+#define DECODE_FORMAT_DPCM_10_8_10             0x8
+#define DECODE_FORMAT_DPCM_12_6_12             0x9
+#define DECODE_FORMAT_DPCM_12_8_12             0xa
+#define DECODE_FORMAT_DPCM_14_8_14             0xb
+#define DECODE_FORMAT_DPCM_14_10_14            0xc
+#define DECODE_FORMAT_DPCM_12_10_12            0xd
+#define DECODE_FORMAT_USER_DEFINED             0xe
+#define DECODE_FORMAT_PAYLOAD_ONLY             0xf
+
+#define ENCODE_FORMAT_RAW_8_BIT                0x1
+#define ENCODE_FORMAT_RAW_10_BIT       0x2
+#define ENCODE_FORMAT_RAW_12_BIT       0x3
+#define ENCODE_FORMAT_RAW_14_BIT       0x4
+#define ENCODE_FORMAT_RAW_16_BIT       0x5
+
+#define PLAIN_FORMAT_PLAIN8    0x0 /* supports DPCM, UNCOMPRESSED_6/8_BIT */
+#define PLAIN_FORMAT_PLAIN16   0x1 /* supports DPCM, UNCOMPRESSED_10/16_BIT */
+#define PLAIN_FORMAT_PLAIN32   0x2 /* supports UNCOMPRESSED_20_BIT */
+
+#endif /* QC_MSM_CAMSS_CSID_GEN2_H */
 
 #include <media/v4l2-subdev.h>
 
 #include "camss-csid.h"
+#include "camss-csid-gen1.h"
 #include "camss.h"
 
 #define MSM_CSID_NAME "msm_csid"
 #define CAMSS_CSID_CID_n_CFG_ISPIF_EN  BIT(0)
 #define CAMSS_CSID_CID_n_CFG_RDI_EN    BIT(1)
 #define CAMSS_CSID_CID_n_CFG_DECODE_FORMAT_SHIFT       4
-#define CAMSS_CSID_CID_n_CFG_PLAIN_FORMAT_8            (0 << 8)
-#define CAMSS_CSID_CID_n_CFG_PLAIN_FORMAT_16           (1 << 8)
+#define CAMSS_CSID_CID_n_CFG_PLAIN_FORMAT_8            (PLAIN_FORMAT_PLAIN8 << 8)
+#define CAMSS_CSID_CID_n_CFG_PLAIN_FORMAT_16           (PLAIN_FORMAT_PLAIN16 << 8)
 #define CAMSS_CSID_CID_n_CFG_PLAIN_ALIGNMENT_LSB       (0 << 9)
 #define CAMSS_CSID_CID_n_CFG_PLAIN_ALIGNMENT_MSB       (1 << 9)
 #define CAMSS_CSID_CID_n_CFG_RDI_MODE_RAW_DUMP         (0 << 10)
 #define CAMSS_CSID_TG_DT_n_CGG_2(v, n) \
                        (((v) == CAMSS_8x16 ? 0x0b4 : 0x0bc) + 0xc * (n))
 
-#define DATA_TYPE_EMBEDDED_DATA_8BIT   0x12
-#define DATA_TYPE_YUV422_8BIT          0x1e
-#define DATA_TYPE_RAW_6BIT             0x28
-#define DATA_TYPE_RAW_8BIT             0x2a
-#define DATA_TYPE_RAW_10BIT            0x2b
-#define DATA_TYPE_RAW_12BIT            0x2c
-#define DATA_TYPE_RAW_14BIT            0x2d
-
-#define DECODE_FORMAT_UNCOMPRESSED_6_BIT       0x0
-#define DECODE_FORMAT_UNCOMPRESSED_8_BIT       0x1
-#define DECODE_FORMAT_UNCOMPRESSED_10_BIT      0x2
-#define DECODE_FORMAT_UNCOMPRESSED_12_BIT      0x3
-#define DECODE_FORMAT_UNCOMPRESSED_14_BIT      0x8
-
 #define CSID_RESET_TIMEOUT_MS 500
 
 struct csid_format {
 
 #define MSM_CSID_PAD_SRC 1
 #define MSM_CSID_PADS_NUM 2
 
+#define DATA_TYPE_EMBEDDED_DATA_8BIT   0x12
+#define DATA_TYPE_YUV420_8BIT          0x18
+#define DATA_TYPE_YUV420_10BIT         0x19
+#define DATA_TYPE_YUV420_8BIT_LEGACY   0x1a
+#define DATA_TYPE_YUV420_8BIT_SHIFTED  0x1c /* Chroma Shifted Pixel Sampling */
+#define DATA_TYPE_YUV420_10BIT_SHIFTED 0x1d /* Chroma Shifted Pixel Sampling */
+#define DATA_TYPE_YUV422_8BIT          0x1e
+#define DATA_TYPE_YUV422_10BIT         0x1f
+#define DATA_TYPE_RGB444               0x20
+#define DATA_TYPE_RGB555               0x21
+#define DATA_TYPE_RGB565               0x22
+#define DATA_TYPE_RGB666               0x23
+#define DATA_TYPE_RGB888               0x24
+#define DATA_TYPE_RAW_24BIT            0x27
+#define DATA_TYPE_RAW_6BIT             0x28
+#define DATA_TYPE_RAW_7BIT             0x29
+#define DATA_TYPE_RAW_8BIT             0x2a
+#define DATA_TYPE_RAW_10BIT            0x2b
+#define DATA_TYPE_RAW_12BIT            0x2c
+#define DATA_TYPE_RAW_14BIT            0x2d
+#define DATA_TYPE_RAW_16BIT            0x2e
+#define DATA_TYPE_RAW_20BIT            0x2f
+
 enum csid_payload_mode {
        CSID_PAYLOAD_MODE_INCREMENTING = 0,
        CSID_PAYLOAD_MODE_ALTERNATING_55_AA = 1,