 +
 +	pwen = of_get_gpio(np, 0);
 +	if (pwen > 0) {
-+		err = gpio_request(pwen, dev_name(&client->dev));
-+		if (err) {
++		err = gpio_request_one(pwen, GPIOF_OUT_INIT_HIGH, dev_name(&client->dev));
++		if (err)
 +			dev_err(&client->dev, "cannot request PWEN gpio %d: %d\n", pwen, err);
-+		} else {
-+			gpio_direction_output(pwen, 1);
++		else
 +			mdelay(250);
-+		}
 +		/*
 +		 * Powered MCU IMI cameras need delay between power-on and R-Car access to avoid
 +		 * i2c bus conflicts since linux kernel does not support i2c multi-mastering,

 obj-$(CONFIG_SOC_CAMERA_MT9T031)	+= mt9t031.o
diff --git a/drivers/media/i2c/soc_camera/max9286_max9271.c b/drivers/media/i2c/soc_camera/max9286_max9271.c
new file mode 100644
index 0000000..ad011ff
--- /dev/null
+++ b/drivers/media/i2c/soc_camera/max9286_max9271.c
@@ -0,0 +1,486 @@
+/*
+ * MAXIM R-Car H3 Demo board setup driver
+ *

---
 drivers/media/i2c/soc_camera/Kconfig               |   32 +
 drivers/media/i2c/soc_camera/Makefile              |    4 +
 drivers/media/i2c/soc_camera/max9286_max9271.c     |  487 +++++++++
 drivers/media/i2c/soc_camera/max9286_max9271.h     |  231 ++++
 .../media/i2c/soc_camera/max9286_max9271_ov10635.c |  603 ++++++++++
 .../media/i2c/soc_camera/max9286_max9271_ov10635.h | 1149 ++++++++++++++++++++
