 +	v4l2_i2c_subdev_init(&priv->sd, client, &ov490_subdev_ops);
 +	priv->sd.flags = V4L2_SUBDEV_FL_HAS_DEVNODE;
 +
++	priv->exposure = 0x100;
++	priv->gain = 0x100;
++	priv->autogain = 1;
 +	v4l2_ctrl_handler_init(&priv->hdl, 4);
 +	v4l2_ctrl_new_std(&priv->hdl, &ov490_ctrl_ops,
-+			  V4L2_CID_BRIGHTNESS, 0, 255, 1, 0);
++			  V4L2_CID_BRIGHTNESS, 0, 16, 1, 7);
 +	v4l2_ctrl_new_std(&priv->hdl, &ov490_ctrl_ops,
-+			  V4L2_CID_CONTRAST, 0, 255, 1, 0);
++			  V4L2_CID_CONTRAST, 0, 16, 1, 7);
 +	v4l2_ctrl_new_std(&priv->hdl, &ov490_ctrl_ops,
-+			  V4L2_CID_SATURATION, 0, 255, 1, 0);
++			  V4L2_CID_SATURATION, 0, 7, 1, 2);
 +	v4l2_ctrl_new_std(&priv->hdl, &ov490_ctrl_ops,
-+			  V4L2_CID_HUE, 0, 255, 1, 0);
++			  V4L2_CID_HUE, 0, 23, 1, 12);
++	v4l2_ctrl_new_std(&priv->hdl, &ov490_ctrl_ops,
++			  V4L2_CID_GAMMA, -128, 128, 1, 0);
++	v4l2_ctrl_new_std(&priv->hdl, &ov490_ctrl_ops,
++			  V4L2_CID_SHARPNESS, 0, 10, 1, 3);
++	v4l2_ctrl_new_std(&priv->hdl, &ov490_ctrl_ops,
++			  V4L2_CID_AUTOGAIN, 0, 1, 1, priv->autogain);
++	v4l2_ctrl_new_std(&priv->hdl, &ov490_ctrl_ops,
++			  V4L2_CID_GAIN, 0, 0xffff, 1, priv->gain);
++	v4l2_ctrl_new_std(&priv->hdl, &ov490_ctrl_ops,
++			  V4L2_CID_EXPOSURE, 0, 0xffff, 1, priv->exposure);
++	v4l2_ctrl_new_std(&priv->hdl, &ov490_ctrl_ops,
++			  V4L2_CID_HFLIP, 0, 1, 1, 1);
++	v4l2_ctrl_new_std(&priv->hdl, &ov490_ctrl_ops,
++			  V4L2_CID_VFLIP, 0, 1, 1, 0);
 +	priv->sd.ctrl_handler = &priv->hdl;
 +
 +	ret = priv->hdl.error;

+MODULE_LICENSE("GPL");
diff --git a/drivers/media/i2c/soc_camera/max9286_max9271_ov10635.h b/drivers/media/i2c/soc_camera/max9286_max9271_ov10635.h
new file mode 100644
index 0000000..74f9ef9
--- /dev/null
+++ b/drivers/media/i2c/soc_camera/max9286_max9271_ov10635.h
@@ -0,0 +1,1149 @@

+		goto cleanup;
+	}
+
+	priv->init_complete = 1;
+
+	return 0;
+
+cleanup:
