{
                .fourcc         = V4L2_PIX_FMT_GREY,
        },
+       {
+               .fourcc         = V4L2_PIX_FMT_Y10,
+       },
 };
 
 /* This is a list of formats that the ISC can receive as *input* */
                .mbus_code      = MEDIA_BUS_FMT_RGB565_2X8_LE,
                .pfe_cfg0_bps   = ISC_PFE_CFG0_BPS_EIGHT,
        },
+       {
+               .fourcc         = V4L2_PIX_FMT_Y10,
+               .mbus_code      = MEDIA_BUS_FMT_Y10_1X10,
+               .pfe_cfg0_bps   = ISC_PFG_CFG0_BPS_TEN,
+       },
+
 };
 
 /* Gamma table with gamma 1/2.2 */
 #define ISC_IS_FORMAT_RAW(mbus_code) \
        (((mbus_code) & 0xf000) == 0x3000)
 
+#define ISC_IS_FORMAT_GREY(mbus_code) \
+       (((mbus_code) == MEDIA_BUS_FMT_Y10_1X10) | \
+       (((mbus_code) == MEDIA_BUS_FMT_Y8_1X8)))
+
 static inline void isc_update_awb_ctrls(struct isc_device *isc)
 {
        struct isc_ctrls *ctrls = &isc->ctrls;
                rgb = true;
                break;
        case V4L2_PIX_FMT_GREY:
+       case V4L2_PIX_FMT_Y10:
                ret = 0;
                grey = true;
                break;
        /* any other different formats are not supported */
                ret = -EINVAL;
        }
-
-       /* we cannot output RAW/Grey if we do not receive RAW */
-       if ((bayer || grey) &&
-           !ISC_IS_FORMAT_RAW(isc->try_config.sd_format->mbus_code))
-               return -EINVAL;
-
        v4l2_dbg(1, debug, &isc->v4l2_dev,
                 "Format validation, requested rgb=%u, yuv=%u, grey=%u, bayer=%u\n",
                 rgb, yuv, grey, bayer);
 
+       /* we cannot output RAW if we do not receive RAW */
+       if ((bayer) && !ISC_IS_FORMAT_RAW(isc->try_config.sd_format->mbus_code))
+               return -EINVAL;
+
+       /* we cannot output GREY if we do not receive RAW/GREY */
+       if (grey && !ISC_IS_FORMAT_RAW(isc->try_config.sd_format->mbus_code) &&
+           !ISC_IS_FORMAT_GREY(isc->try_config.sd_format->mbus_code))
+               return -EINVAL;
+
        return ret;
 }
 
                isc->try_config.dctrl_dview = ISC_DCTRL_DVIEW_PACKED;
                isc->try_config.bpp = 8;
                break;
+       case V4L2_PIX_FMT_Y10:
+               isc->try_config.rlp_cfg_mode = ISC_RLP_CFG_MODE_DATY10;
+               isc->try_config.dcfg_imode = ISC_DCFG_IMODE_PACKED16;
+               isc->try_config.dctrl_dview = ISC_DCTRL_DVIEW_PACKED;
+               isc->try_config.bpp = 16;
+               break;
        default:
                return -EINVAL;
        }