REG_FIELD(ISC_GAM_CTRL, 3, 3),
                REG_FIELD(ISC_CSC_CTRL + isc->offsets.csc, 0, 0),
                REG_FIELD(ISC_CBC_CTRL + isc->offsets.cbc, 0, 0),
-               REG_FIELD(ISC_SUB422_CTRL, 0, 0),
-               REG_FIELD(ISC_SUB420_CTRL, 0, 0),
+               REG_FIELD(ISC_SUB422_CTRL + isc->offsets.sub422, 0, 0),
+               REG_FIELD(ISC_SUB420_CTRL + isc->offsets.sub420, 0, 0),
        };
 
        for (i = 0; i < ISC_PIPE_LINE_NODE_NUM; i++) {
 
 #define ISC_CBC_CONTRAST       0x000003c0
 #define ISC_CBC_CONTRAST_MASK  GENMASK(11, 0)
 
+/* Offset for SUB422 register specific to sama5d2 product */
+#define ISC_SAMA5D2_SUB422_OFFSET      0
 /* Subsampling 4:4:4 to 4:2:2 Control Register */
 #define ISC_SUB422_CTRL 0x000003c4
 
+/* Offset for SUB420 register specific to sama5d2 product */
+#define ISC_SAMA5D2_SUB420_OFFSET      0
 /* Subsampling 4:2:2 to 4:2:0 Control Register */
 #define ISC_SUB420_CTRL 0x000003cc
 
 
  * struct isc_reg_offsets - ISC device register offsets
  * @csc:               Offset for the CSC register
  * @cbc:               Offset for the CBC register
+ * @sub422:            Offset for the SUB422 register
+ * @sub420:            Offset for the SUB420 register
  */
 struct isc_reg_offsets {
        u32 csc;
        u32 cbc;
+       u32 sub422;
+       u32 sub420;
 };
 
 /*
 
 
        isc->offsets.csc = ISC_SAMA5D2_CSC_OFFSET;
        isc->offsets.cbc = ISC_SAMA5D2_CBC_OFFSET;
+       isc->offsets.sub422 = ISC_SAMA5D2_SUB422_OFFSET;
+       isc->offsets.sub420 = ISC_SAMA5D2_SUB420_OFFSET;
 
        /* sama5d2-isc - 8 bits per beat */
        isc->dcfg = ISC_DCFG_YMBSIZE_BEATS8 | ISC_DCFG_CMBSIZE_BEATS8;