Re: [PATCH v6 2/2] media: i2c: Add the ov7740 image sensor driver
Hi Sakari, On 2017/12/5 18:45, Sakari Ailus wrote: Hi Wenyou, On Mon, Dec 04, 2017 at 02:58:58PM +0800, Wenyou Yang wrote: The ov7740 (color) image sensor is a high performance VGA CMOS image snesor, which supports for output formats: RAW RGB and YUV and image sizes: VGA, and QVGA, CIF and any size smaller. Signed-off-by: Songjun WuSigned-off-by: Wenyou Yang --- Changes in v6: - Remove unnecessary #include . - Remove unnecessary comments and extra newline. - Add const for some structures. - Add the check of the return value from regmap_write(). - Simplify the calling of __v4l2_ctrl_handler_setup(). - Add the default format initialization function. - Integrate the set_power() and enable/disable the clock into one function. Changes in v5: - Squash the driver and MAINTAINERS entry patches to one. - Precede the driver patch with the bindings patch. Changes in v4: - Assign 'val' a initial value to avoid warning: 'val' may be used uninitialized. - Rename REG_REG15 to avoid warning: "REG_REG15" redefined. Changes in v3: - Put the MAINTAINERS change to a separate patch. Changes in v2: - Split off the bindings into a separate patch. - Add a new entry to the MAINTAINERS file. MAINTAINERS|8 + drivers/media/i2c/Kconfig |8 + drivers/media/i2c/Makefile |1 + drivers/media/i2c/ov7740.c | 1226 4 files changed, 1243 insertions(+) create mode 100644 drivers/media/i2c/ov7740.c diff --git a/MAINTAINERS b/MAINTAINERS index 7a52a66aa991..1de965009b13 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -10053,6 +10053,14 @@ S: Maintained F:drivers/media/i2c/ov7670.c F:Documentation/devicetree/bindings/media/i2c/ov7670.txt +OMNIVISION OV7740 SENSOR DRIVER +M: Wenyou Yang +L: linux-me...@vger.kernel.org +T: git git://linuxtv.org/media_tree.git +S: Maintained +F: drivers/media/i2c/ov7740.c +F: Documentation/devicetree/bindings/media/i2c/ov7740.txt + ONENAND FLASH DRIVER M:Kyungmin Park L:linux-...@lists.infradead.org diff --git a/drivers/media/i2c/Kconfig b/drivers/media/i2c/Kconfig index cb5d7ff82915..00b1c4c031d4 100644 --- a/drivers/media/i2c/Kconfig +++ b/drivers/media/i2c/Kconfig @@ -665,6 +665,14 @@ config VIDEO_OV7670 OV7670 VGA camera. It currently only works with the M88ALP01 controller. +config VIDEO_OV7740 + tristate "OmniVision OV7740 sensor support" + depends on I2C && VIDEO_V4L2 + depends on MEDIA_CAMERA_SUPPORT + ---help--- + This is a Video4Linux2 sensor-level driver for the OmniVision + OV7740 VGA camera sensor. + config VIDEO_OV9650 tristate "OmniVision OV9650/OV9652 sensor support" depends on I2C && VIDEO_V4L2 && VIDEO_V4L2_SUBDEV_API diff --git a/drivers/media/i2c/Makefile b/drivers/media/i2c/Makefile index 548a9efce966..9b19ec7fcaf4 100644 --- a/drivers/media/i2c/Makefile +++ b/drivers/media/i2c/Makefile @@ -68,6 +68,7 @@ obj-$(CONFIG_VIDEO_OV5670) += ov5670.o obj-$(CONFIG_VIDEO_OV6650) += ov6650.o obj-$(CONFIG_VIDEO_OV7640) += ov7640.o obj-$(CONFIG_VIDEO_OV7670) += ov7670.o +obj-$(CONFIG_VIDEO_OV7740) += ov7740.o obj-$(CONFIG_VIDEO_OV9650) += ov9650.o obj-$(CONFIG_VIDEO_OV13858) += ov13858.o obj-$(CONFIG_VIDEO_MT9M032) += mt9m032.o diff --git a/drivers/media/i2c/ov7740.c b/drivers/media/i2c/ov7740.c new file mode 100644 index ..42c25277d005 --- /dev/null +++ b/drivers/media/i2c/ov7740.c @@ -0,0 +1,1226 @@ +/* + * Copyright (c) 2017 Microchip Corporation. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License version + * 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define REG_OUTSIZE_LSB 0x34 + +/* OV7740 register tables */ +#define REG_GAIN 0x00/* Gain lower 8 bits (rest in vref) */ +#define REG_BGAIN 0x01/* blue gain */ +#define REG_RGAIN 0x02/* red gain */ +#define REG_GGAIN 0x03/* green gain */ +#define REG_REG04 0x04/* analog setting, dont change*/ +#define REG_BAVG 0x05/* b channel average */ +#define REG_GAVG 0x06/* g channel average */ +#define REG_RAVG 0x07/* r channel average */ + +#define REG_REG0C 0x0C/* filp enable */ +#define REG0C_IMG_FLIP 0x80 +#define REG0C_IMG_MIRROR 0x40 + +#define REG_REG0E 0x0E/* blc line */ +#define REG_HAEC
Re: [PATCH v6 2/2] media: i2c: Add the ov7740 image sensor driver
Hi Sakari, On 2017/12/5 18:45, Sakari Ailus wrote: Hi Wenyou, On Mon, Dec 04, 2017 at 02:58:58PM +0800, Wenyou Yang wrote: The ov7740 (color) image sensor is a high performance VGA CMOS image snesor, which supports for output formats: RAW RGB and YUV and image sizes: VGA, and QVGA, CIF and any size smaller. Signed-off-by: Songjun Wu Signed-off-by: Wenyou Yang --- Changes in v6: - Remove unnecessary #include . - Remove unnecessary comments and extra newline. - Add const for some structures. - Add the check of the return value from regmap_write(). - Simplify the calling of __v4l2_ctrl_handler_setup(). - Add the default format initialization function. - Integrate the set_power() and enable/disable the clock into one function. Changes in v5: - Squash the driver and MAINTAINERS entry patches to one. - Precede the driver patch with the bindings patch. Changes in v4: - Assign 'val' a initial value to avoid warning: 'val' may be used uninitialized. - Rename REG_REG15 to avoid warning: "REG_REG15" redefined. Changes in v3: - Put the MAINTAINERS change to a separate patch. Changes in v2: - Split off the bindings into a separate patch. - Add a new entry to the MAINTAINERS file. MAINTAINERS|8 + drivers/media/i2c/Kconfig |8 + drivers/media/i2c/Makefile |1 + drivers/media/i2c/ov7740.c | 1226 4 files changed, 1243 insertions(+) create mode 100644 drivers/media/i2c/ov7740.c diff --git a/MAINTAINERS b/MAINTAINERS index 7a52a66aa991..1de965009b13 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -10053,6 +10053,14 @@ S: Maintained F:drivers/media/i2c/ov7670.c F:Documentation/devicetree/bindings/media/i2c/ov7670.txt +OMNIVISION OV7740 SENSOR DRIVER +M: Wenyou Yang +L: linux-me...@vger.kernel.org +T: git git://linuxtv.org/media_tree.git +S: Maintained +F: drivers/media/i2c/ov7740.c +F: Documentation/devicetree/bindings/media/i2c/ov7740.txt + ONENAND FLASH DRIVER M:Kyungmin Park L:linux-...@lists.infradead.org diff --git a/drivers/media/i2c/Kconfig b/drivers/media/i2c/Kconfig index cb5d7ff82915..00b1c4c031d4 100644 --- a/drivers/media/i2c/Kconfig +++ b/drivers/media/i2c/Kconfig @@ -665,6 +665,14 @@ config VIDEO_OV7670 OV7670 VGA camera. It currently only works with the M88ALP01 controller. +config VIDEO_OV7740 + tristate "OmniVision OV7740 sensor support" + depends on I2C && VIDEO_V4L2 + depends on MEDIA_CAMERA_SUPPORT + ---help--- + This is a Video4Linux2 sensor-level driver for the OmniVision + OV7740 VGA camera sensor. + config VIDEO_OV9650 tristate "OmniVision OV9650/OV9652 sensor support" depends on I2C && VIDEO_V4L2 && VIDEO_V4L2_SUBDEV_API diff --git a/drivers/media/i2c/Makefile b/drivers/media/i2c/Makefile index 548a9efce966..9b19ec7fcaf4 100644 --- a/drivers/media/i2c/Makefile +++ b/drivers/media/i2c/Makefile @@ -68,6 +68,7 @@ obj-$(CONFIG_VIDEO_OV5670) += ov5670.o obj-$(CONFIG_VIDEO_OV6650) += ov6650.o obj-$(CONFIG_VIDEO_OV7640) += ov7640.o obj-$(CONFIG_VIDEO_OV7670) += ov7670.o +obj-$(CONFIG_VIDEO_OV7740) += ov7740.o obj-$(CONFIG_VIDEO_OV9650) += ov9650.o obj-$(CONFIG_VIDEO_OV13858) += ov13858.o obj-$(CONFIG_VIDEO_MT9M032) += mt9m032.o diff --git a/drivers/media/i2c/ov7740.c b/drivers/media/i2c/ov7740.c new file mode 100644 index ..42c25277d005 --- /dev/null +++ b/drivers/media/i2c/ov7740.c @@ -0,0 +1,1226 @@ +/* + * Copyright (c) 2017 Microchip Corporation. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License version + * 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define REG_OUTSIZE_LSB 0x34 + +/* OV7740 register tables */ +#define REG_GAIN 0x00/* Gain lower 8 bits (rest in vref) */ +#define REG_BGAIN 0x01/* blue gain */ +#define REG_RGAIN 0x02/* red gain */ +#define REG_GGAIN 0x03/* green gain */ +#define REG_REG04 0x04/* analog setting, dont change*/ +#define REG_BAVG 0x05/* b channel average */ +#define REG_GAVG 0x06/* g channel average */ +#define REG_RAVG 0x07/* r channel average */ + +#define REG_REG0C 0x0C/* filp enable */ +#define REG0C_IMG_FLIP 0x80 +#define REG0C_IMG_MIRROR 0x40 + +#define REG_REG0E 0x0E/* blc line */ +#define REG_HAEC 0x0F/* auto exposure cntrl */ +#define REG_AEC0x10/* auto exposure cntrl */
Re: [PATCH v6 2/2] media: i2c: Add the ov7740 image sensor driver
Hi Wenyou, On Mon, Dec 04, 2017 at 02:58:58PM +0800, Wenyou Yang wrote: > The ov7740 (color) image sensor is a high performance VGA CMOS > image snesor, which supports for output formats: RAW RGB and YUV > and image sizes: VGA, and QVGA, CIF and any size smaller. > > Signed-off-by: Songjun Wu> Signed-off-by: Wenyou Yang > --- > > Changes in v6: > - Remove unnecessary #include . > - Remove unnecessary comments and extra newline. > - Add const for some structures. > - Add the check of the return value from regmap_write(). > - Simplify the calling of __v4l2_ctrl_handler_setup(). > - Add the default format initialization function. > - Integrate the set_power() and enable/disable the clock into >one function. > > Changes in v5: > - Squash the driver and MAINTAINERS entry patches to one. > - Precede the driver patch with the bindings patch. > > Changes in v4: > - Assign 'val' a initial value to avoid warning: 'val' may be >used uninitialized. > - Rename REG_REG15 to avoid warning: "REG_REG15" redefined. > > Changes in v3: > - Put the MAINTAINERS change to a separate patch. > > Changes in v2: > - Split off the bindings into a separate patch. > - Add a new entry to the MAINTAINERS file. > > MAINTAINERS|8 + > drivers/media/i2c/Kconfig |8 + > drivers/media/i2c/Makefile |1 + > drivers/media/i2c/ov7740.c | 1226 > > 4 files changed, 1243 insertions(+) > create mode 100644 drivers/media/i2c/ov7740.c > > diff --git a/MAINTAINERS b/MAINTAINERS > index 7a52a66aa991..1de965009b13 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -10053,6 +10053,14 @@ S: Maintained > F: drivers/media/i2c/ov7670.c > F: Documentation/devicetree/bindings/media/i2c/ov7670.txt > > +OMNIVISION OV7740 SENSOR DRIVER > +M: Wenyou Yang > +L: linux-me...@vger.kernel.org > +T: git git://linuxtv.org/media_tree.git > +S: Maintained > +F: drivers/media/i2c/ov7740.c > +F: Documentation/devicetree/bindings/media/i2c/ov7740.txt > + > ONENAND FLASH DRIVER > M: Kyungmin Park > L: linux-...@lists.infradead.org > diff --git a/drivers/media/i2c/Kconfig b/drivers/media/i2c/Kconfig > index cb5d7ff82915..00b1c4c031d4 100644 > --- a/drivers/media/i2c/Kconfig > +++ b/drivers/media/i2c/Kconfig > @@ -665,6 +665,14 @@ config VIDEO_OV7670 > OV7670 VGA camera. It currently only works with the M88ALP01 > controller. > > +config VIDEO_OV7740 > + tristate "OmniVision OV7740 sensor support" > + depends on I2C && VIDEO_V4L2 > + depends on MEDIA_CAMERA_SUPPORT > + ---help--- > + This is a Video4Linux2 sensor-level driver for the OmniVision > + OV7740 VGA camera sensor. > + > config VIDEO_OV9650 > tristate "OmniVision OV9650/OV9652 sensor support" > depends on I2C && VIDEO_V4L2 && VIDEO_V4L2_SUBDEV_API > diff --git a/drivers/media/i2c/Makefile b/drivers/media/i2c/Makefile > index 548a9efce966..9b19ec7fcaf4 100644 > --- a/drivers/media/i2c/Makefile > +++ b/drivers/media/i2c/Makefile > @@ -68,6 +68,7 @@ obj-$(CONFIG_VIDEO_OV5670) += ov5670.o > obj-$(CONFIG_VIDEO_OV6650) += ov6650.o > obj-$(CONFIG_VIDEO_OV7640) += ov7640.o > obj-$(CONFIG_VIDEO_OV7670) += ov7670.o > +obj-$(CONFIG_VIDEO_OV7740) += ov7740.o > obj-$(CONFIG_VIDEO_OV9650) += ov9650.o > obj-$(CONFIG_VIDEO_OV13858) += ov13858.o > obj-$(CONFIG_VIDEO_MT9M032) += mt9m032.o > diff --git a/drivers/media/i2c/ov7740.c b/drivers/media/i2c/ov7740.c > new file mode 100644 > index ..42c25277d005 > --- /dev/null > +++ b/drivers/media/i2c/ov7740.c > @@ -0,0 +1,1226 @@ > +/* > + * Copyright (c) 2017 Microchip Corporation. > + * > + * This program is free software; you can redistribute it and/or > + * modify it under the terms of the GNU General Public License version > + * 2 as published by the Free Software Foundation. > + * > + * This program is distributed in the hope that it will be useful, > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + * GNU General Public License for more details. > + * > + */ > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > + > +#define REG_OUTSIZE_LSB 0x34 > + > +/* OV7740 register tables */ > +#define REG_GAIN 0x00/* Gain lower 8 bits (rest in vref) */ > +#define REG_BGAIN0x01/* blue gain */ > +#define REG_RGAIN0x02/* red gain */ > +#define REG_GGAIN0x03/* green gain */ > +#define REG_REG040x04/* analog setting, dont change*/ > +#define REG_BAVG 0x05/* b channel average */ > +#define REG_GAVG 0x06/* g channel average */ > +#define REG_RAVG 0x07/* r channel average */ > + > +#define REG_REG0C0x0C/* filp enable */ > +#define
Re: [PATCH v6 2/2] media: i2c: Add the ov7740 image sensor driver
Hi Wenyou, On Mon, Dec 04, 2017 at 02:58:58PM +0800, Wenyou Yang wrote: > The ov7740 (color) image sensor is a high performance VGA CMOS > image snesor, which supports for output formats: RAW RGB and YUV > and image sizes: VGA, and QVGA, CIF and any size smaller. > > Signed-off-by: Songjun Wu > Signed-off-by: Wenyou Yang > --- > > Changes in v6: > - Remove unnecessary #include . > - Remove unnecessary comments and extra newline. > - Add const for some structures. > - Add the check of the return value from regmap_write(). > - Simplify the calling of __v4l2_ctrl_handler_setup(). > - Add the default format initialization function. > - Integrate the set_power() and enable/disable the clock into >one function. > > Changes in v5: > - Squash the driver and MAINTAINERS entry patches to one. > - Precede the driver patch with the bindings patch. > > Changes in v4: > - Assign 'val' a initial value to avoid warning: 'val' may be >used uninitialized. > - Rename REG_REG15 to avoid warning: "REG_REG15" redefined. > > Changes in v3: > - Put the MAINTAINERS change to a separate patch. > > Changes in v2: > - Split off the bindings into a separate patch. > - Add a new entry to the MAINTAINERS file. > > MAINTAINERS|8 + > drivers/media/i2c/Kconfig |8 + > drivers/media/i2c/Makefile |1 + > drivers/media/i2c/ov7740.c | 1226 > > 4 files changed, 1243 insertions(+) > create mode 100644 drivers/media/i2c/ov7740.c > > diff --git a/MAINTAINERS b/MAINTAINERS > index 7a52a66aa991..1de965009b13 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -10053,6 +10053,14 @@ S: Maintained > F: drivers/media/i2c/ov7670.c > F: Documentation/devicetree/bindings/media/i2c/ov7670.txt > > +OMNIVISION OV7740 SENSOR DRIVER > +M: Wenyou Yang > +L: linux-me...@vger.kernel.org > +T: git git://linuxtv.org/media_tree.git > +S: Maintained > +F: drivers/media/i2c/ov7740.c > +F: Documentation/devicetree/bindings/media/i2c/ov7740.txt > + > ONENAND FLASH DRIVER > M: Kyungmin Park > L: linux-...@lists.infradead.org > diff --git a/drivers/media/i2c/Kconfig b/drivers/media/i2c/Kconfig > index cb5d7ff82915..00b1c4c031d4 100644 > --- a/drivers/media/i2c/Kconfig > +++ b/drivers/media/i2c/Kconfig > @@ -665,6 +665,14 @@ config VIDEO_OV7670 > OV7670 VGA camera. It currently only works with the M88ALP01 > controller. > > +config VIDEO_OV7740 > + tristate "OmniVision OV7740 sensor support" > + depends on I2C && VIDEO_V4L2 > + depends on MEDIA_CAMERA_SUPPORT > + ---help--- > + This is a Video4Linux2 sensor-level driver for the OmniVision > + OV7740 VGA camera sensor. > + > config VIDEO_OV9650 > tristate "OmniVision OV9650/OV9652 sensor support" > depends on I2C && VIDEO_V4L2 && VIDEO_V4L2_SUBDEV_API > diff --git a/drivers/media/i2c/Makefile b/drivers/media/i2c/Makefile > index 548a9efce966..9b19ec7fcaf4 100644 > --- a/drivers/media/i2c/Makefile > +++ b/drivers/media/i2c/Makefile > @@ -68,6 +68,7 @@ obj-$(CONFIG_VIDEO_OV5670) += ov5670.o > obj-$(CONFIG_VIDEO_OV6650) += ov6650.o > obj-$(CONFIG_VIDEO_OV7640) += ov7640.o > obj-$(CONFIG_VIDEO_OV7670) += ov7670.o > +obj-$(CONFIG_VIDEO_OV7740) += ov7740.o > obj-$(CONFIG_VIDEO_OV9650) += ov9650.o > obj-$(CONFIG_VIDEO_OV13858) += ov13858.o > obj-$(CONFIG_VIDEO_MT9M032) += mt9m032.o > diff --git a/drivers/media/i2c/ov7740.c b/drivers/media/i2c/ov7740.c > new file mode 100644 > index ..42c25277d005 > --- /dev/null > +++ b/drivers/media/i2c/ov7740.c > @@ -0,0 +1,1226 @@ > +/* > + * Copyright (c) 2017 Microchip Corporation. > + * > + * This program is free software; you can redistribute it and/or > + * modify it under the terms of the GNU General Public License version > + * 2 as published by the Free Software Foundation. > + * > + * This program is distributed in the hope that it will be useful, > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + * GNU General Public License for more details. > + * > + */ > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > + > +#define REG_OUTSIZE_LSB 0x34 > + > +/* OV7740 register tables */ > +#define REG_GAIN 0x00/* Gain lower 8 bits (rest in vref) */ > +#define REG_BGAIN0x01/* blue gain */ > +#define REG_RGAIN0x02/* red gain */ > +#define REG_GGAIN0x03/* green gain */ > +#define REG_REG040x04/* analog setting, dont change*/ > +#define REG_BAVG 0x05/* b channel average */ > +#define REG_GAVG 0x06/* g channel average */ > +#define REG_RAVG 0x07/* r channel average */ > + > +#define REG_REG0C0x0C/* filp enable */ > +#define REG0C_IMG_FLIP 0x80 > +#define REG0C_IMG_MIRROR 0x40 > + > +#define REG_REG0E0x0E/* blc
[PATCH v6 2/2] media: i2c: Add the ov7740 image sensor driver
The ov7740 (color) image sensor is a high performance VGA CMOS image snesor, which supports for output formats: RAW RGB and YUV and image sizes: VGA, and QVGA, CIF and any size smaller. Signed-off-by: Songjun WuSigned-off-by: Wenyou Yang --- Changes in v6: - Remove unnecessary #include . - Remove unnecessary comments and extra newline. - Add const for some structures. - Add the check of the return value from regmap_write(). - Simplify the calling of __v4l2_ctrl_handler_setup(). - Add the default format initialization function. - Integrate the set_power() and enable/disable the clock into one function. Changes in v5: - Squash the driver and MAINTAINERS entry patches to one. - Precede the driver patch with the bindings patch. Changes in v4: - Assign 'val' a initial value to avoid warning: 'val' may be used uninitialized. - Rename REG_REG15 to avoid warning: "REG_REG15" redefined. Changes in v3: - Put the MAINTAINERS change to a separate patch. Changes in v2: - Split off the bindings into a separate patch. - Add a new entry to the MAINTAINERS file. MAINTAINERS|8 + drivers/media/i2c/Kconfig |8 + drivers/media/i2c/Makefile |1 + drivers/media/i2c/ov7740.c | 1226 4 files changed, 1243 insertions(+) create mode 100644 drivers/media/i2c/ov7740.c diff --git a/MAINTAINERS b/MAINTAINERS index 7a52a66aa991..1de965009b13 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -10053,6 +10053,14 @@ S: Maintained F: drivers/media/i2c/ov7670.c F: Documentation/devicetree/bindings/media/i2c/ov7670.txt +OMNIVISION OV7740 SENSOR DRIVER +M: Wenyou Yang +L: linux-me...@vger.kernel.org +T: git git://linuxtv.org/media_tree.git +S: Maintained +F: drivers/media/i2c/ov7740.c +F: Documentation/devicetree/bindings/media/i2c/ov7740.txt + ONENAND FLASH DRIVER M: Kyungmin Park L: linux-...@lists.infradead.org diff --git a/drivers/media/i2c/Kconfig b/drivers/media/i2c/Kconfig index cb5d7ff82915..00b1c4c031d4 100644 --- a/drivers/media/i2c/Kconfig +++ b/drivers/media/i2c/Kconfig @@ -665,6 +665,14 @@ config VIDEO_OV7670 OV7670 VGA camera. It currently only works with the M88ALP01 controller. +config VIDEO_OV7740 + tristate "OmniVision OV7740 sensor support" + depends on I2C && VIDEO_V4L2 + depends on MEDIA_CAMERA_SUPPORT + ---help--- + This is a Video4Linux2 sensor-level driver for the OmniVision + OV7740 VGA camera sensor. + config VIDEO_OV9650 tristate "OmniVision OV9650/OV9652 sensor support" depends on I2C && VIDEO_V4L2 && VIDEO_V4L2_SUBDEV_API diff --git a/drivers/media/i2c/Makefile b/drivers/media/i2c/Makefile index 548a9efce966..9b19ec7fcaf4 100644 --- a/drivers/media/i2c/Makefile +++ b/drivers/media/i2c/Makefile @@ -68,6 +68,7 @@ obj-$(CONFIG_VIDEO_OV5670) += ov5670.o obj-$(CONFIG_VIDEO_OV6650) += ov6650.o obj-$(CONFIG_VIDEO_OV7640) += ov7640.o obj-$(CONFIG_VIDEO_OV7670) += ov7670.o +obj-$(CONFIG_VIDEO_OV7740) += ov7740.o obj-$(CONFIG_VIDEO_OV9650) += ov9650.o obj-$(CONFIG_VIDEO_OV13858) += ov13858.o obj-$(CONFIG_VIDEO_MT9M032) += mt9m032.o diff --git a/drivers/media/i2c/ov7740.c b/drivers/media/i2c/ov7740.c new file mode 100644 index ..42c25277d005 --- /dev/null +++ b/drivers/media/i2c/ov7740.c @@ -0,0 +1,1226 @@ +/* + * Copyright (c) 2017 Microchip Corporation. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License version + * 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define REG_OUTSIZE_LSB 0x34 + +/* OV7740 register tables */ +#define REG_GAIN 0x00/* Gain lower 8 bits (rest in vref) */ +#define REG_BGAIN 0x01/* blue gain */ +#define REG_RGAIN 0x02/* red gain */ +#define REG_GGAIN 0x03/* green gain */ +#define REG_REG04 0x04/* analog setting, dont change*/ +#define REG_BAVG 0x05/* b channel average */ +#define REG_GAVG 0x06/* g channel average */ +#define REG_RAVG 0x07/* r channel average */ + +#define REG_REG0C 0x0C/* filp enable */ +#define REG0C_IMG_FLIP 0x80 +#define REG0C_IMG_MIRROR 0x40 + +#define REG_REG0E 0x0E/* blc line */ +#define REG_HAEC 0x0F/* auto exposure cntrl */ +#define REG_AEC0x10/* auto exposure cntrl */ + +#define REG_CLK0x11/* Clock
[PATCH v6 2/2] media: i2c: Add the ov7740 image sensor driver
The ov7740 (color) image sensor is a high performance VGA CMOS image snesor, which supports for output formats: RAW RGB and YUV and image sizes: VGA, and QVGA, CIF and any size smaller. Signed-off-by: Songjun Wu Signed-off-by: Wenyou Yang --- Changes in v6: - Remove unnecessary #include . - Remove unnecessary comments and extra newline. - Add const for some structures. - Add the check of the return value from regmap_write(). - Simplify the calling of __v4l2_ctrl_handler_setup(). - Add the default format initialization function. - Integrate the set_power() and enable/disable the clock into one function. Changes in v5: - Squash the driver and MAINTAINERS entry patches to one. - Precede the driver patch with the bindings patch. Changes in v4: - Assign 'val' a initial value to avoid warning: 'val' may be used uninitialized. - Rename REG_REG15 to avoid warning: "REG_REG15" redefined. Changes in v3: - Put the MAINTAINERS change to a separate patch. Changes in v2: - Split off the bindings into a separate patch. - Add a new entry to the MAINTAINERS file. MAINTAINERS|8 + drivers/media/i2c/Kconfig |8 + drivers/media/i2c/Makefile |1 + drivers/media/i2c/ov7740.c | 1226 4 files changed, 1243 insertions(+) create mode 100644 drivers/media/i2c/ov7740.c diff --git a/MAINTAINERS b/MAINTAINERS index 7a52a66aa991..1de965009b13 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -10053,6 +10053,14 @@ S: Maintained F: drivers/media/i2c/ov7670.c F: Documentation/devicetree/bindings/media/i2c/ov7670.txt +OMNIVISION OV7740 SENSOR DRIVER +M: Wenyou Yang +L: linux-me...@vger.kernel.org +T: git git://linuxtv.org/media_tree.git +S: Maintained +F: drivers/media/i2c/ov7740.c +F: Documentation/devicetree/bindings/media/i2c/ov7740.txt + ONENAND FLASH DRIVER M: Kyungmin Park L: linux-...@lists.infradead.org diff --git a/drivers/media/i2c/Kconfig b/drivers/media/i2c/Kconfig index cb5d7ff82915..00b1c4c031d4 100644 --- a/drivers/media/i2c/Kconfig +++ b/drivers/media/i2c/Kconfig @@ -665,6 +665,14 @@ config VIDEO_OV7670 OV7670 VGA camera. It currently only works with the M88ALP01 controller. +config VIDEO_OV7740 + tristate "OmniVision OV7740 sensor support" + depends on I2C && VIDEO_V4L2 + depends on MEDIA_CAMERA_SUPPORT + ---help--- + This is a Video4Linux2 sensor-level driver for the OmniVision + OV7740 VGA camera sensor. + config VIDEO_OV9650 tristate "OmniVision OV9650/OV9652 sensor support" depends on I2C && VIDEO_V4L2 && VIDEO_V4L2_SUBDEV_API diff --git a/drivers/media/i2c/Makefile b/drivers/media/i2c/Makefile index 548a9efce966..9b19ec7fcaf4 100644 --- a/drivers/media/i2c/Makefile +++ b/drivers/media/i2c/Makefile @@ -68,6 +68,7 @@ obj-$(CONFIG_VIDEO_OV5670) += ov5670.o obj-$(CONFIG_VIDEO_OV6650) += ov6650.o obj-$(CONFIG_VIDEO_OV7640) += ov7640.o obj-$(CONFIG_VIDEO_OV7670) += ov7670.o +obj-$(CONFIG_VIDEO_OV7740) += ov7740.o obj-$(CONFIG_VIDEO_OV9650) += ov9650.o obj-$(CONFIG_VIDEO_OV13858) += ov13858.o obj-$(CONFIG_VIDEO_MT9M032) += mt9m032.o diff --git a/drivers/media/i2c/ov7740.c b/drivers/media/i2c/ov7740.c new file mode 100644 index ..42c25277d005 --- /dev/null +++ b/drivers/media/i2c/ov7740.c @@ -0,0 +1,1226 @@ +/* + * Copyright (c) 2017 Microchip Corporation. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License version + * 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define REG_OUTSIZE_LSB 0x34 + +/* OV7740 register tables */ +#define REG_GAIN 0x00/* Gain lower 8 bits (rest in vref) */ +#define REG_BGAIN 0x01/* blue gain */ +#define REG_RGAIN 0x02/* red gain */ +#define REG_GGAIN 0x03/* green gain */ +#define REG_REG04 0x04/* analog setting, dont change*/ +#define REG_BAVG 0x05/* b channel average */ +#define REG_GAVG 0x06/* g channel average */ +#define REG_RAVG 0x07/* r channel average */ + +#define REG_REG0C 0x0C/* filp enable */ +#define REG0C_IMG_FLIP 0x80 +#define REG0C_IMG_MIRROR 0x40 + +#define REG_REG0E 0x0E/* blc line */ +#define REG_HAEC 0x0F/* auto exposure cntrl */ +#define REG_AEC0x10/* auto exposure cntrl */ + +#define REG_CLK0x11/* Clock control */ +#define REG_REG55 0x55/* Clock PLL DIV/PreDiv */ + +#define REG_REG12 0x12 + +#define