Re: [PATCH v5 2/2] media: i2c: Add the ov7740 image sensor driver
Hi Sakari, Sorry for late answer. Thank you for your review. On 2017/11/28 20:06, Sakari Ailus wrote: Hi Wenyou, Thanks for the patch. Some comments below. On Tue, Nov 28, 2017 at 01:22:59PM +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 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 | 1220 4 files changed, 1237 insertions(+) create mode 100644 drivers/media/i2c/ov7740.c diff --git a/MAINTAINERS b/MAINTAINERS index aa71ab52fd76..19086a073ae9 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 3c6d6428f525..ac484bb82fae 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 ..b2ec015bf3f6 --- /dev/null +++ b/drivers/media/i2c/ov7740.c @@ -0,0 +1,1220 @@ +/* + * 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 Do you need init.h? No, will remove it. +#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 */ +
Re: [PATCH v5 2/2] media: i2c: Add the ov7740 image sensor driver
Hi Sakari, Sorry for late answer. Thank you for your review. On 2017/11/28 20:06, Sakari Ailus wrote: Hi Wenyou, Thanks for the patch. Some comments below. On Tue, Nov 28, 2017 at 01:22:59PM +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 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 | 1220 4 files changed, 1237 insertions(+) create mode 100644 drivers/media/i2c/ov7740.c diff --git a/MAINTAINERS b/MAINTAINERS index aa71ab52fd76..19086a073ae9 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 3c6d6428f525..ac484bb82fae 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 ..b2ec015bf3f6 --- /dev/null +++ b/drivers/media/i2c/ov7740.c @@ -0,0 +1,1220 @@ +/* + * 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 Do you need init.h? No, will remove it. +#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 REG_REG13 0x13/* auto/manual AGC, AEC, Write Balance*/
Re: [PATCH v5 2/2] media: i2c: Add the ov7740 image sensor driver
Hi Wenyou, Thanks for the patch. Some comments below. On Tue, Nov 28, 2017 at 01:22:59PM +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 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 | 1220 > > 4 files changed, 1237 insertions(+) > create mode 100644 drivers/media/i2c/ov7740.c > > diff --git a/MAINTAINERS b/MAINTAINERS > index aa71ab52fd76..19086a073ae9 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 3c6d6428f525..ac484bb82fae 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 ..b2ec015bf3f6 > --- /dev/null > +++ b/drivers/media/i2c/ov7740.c > @@ -0,0 +1,1220 @@ > +/* > + * 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 Do you need init.h? > +#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 line */ > +#define REG_HAEC 0x0F/* auto exposure cntrl */ > +#define REG_AEC 0x10/* auto exposure cntrl */ > + > +#define REG_CLK 0x11/* Clock control */ > +#define
Re: [PATCH v5 2/2] media: i2c: Add the ov7740 image sensor driver
Hi Wenyou, Thanks for the patch. Some comments below. On Tue, Nov 28, 2017 at 01:22:59PM +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 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 | 1220 > > 4 files changed, 1237 insertions(+) > create mode 100644 drivers/media/i2c/ov7740.c > > diff --git a/MAINTAINERS b/MAINTAINERS > index aa71ab52fd76..19086a073ae9 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 3c6d6428f525..ac484bb82fae 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 ..b2ec015bf3f6 > --- /dev/null > +++ b/drivers/media/i2c/ov7740.c > @@ -0,0 +1,1220 @@ > +/* > + * 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 Do you need init.h? > +#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 line */ > +#define REG_HAEC 0x0F/* auto exposure cntrl */ > +#define REG_AEC 0x10/* auto exposure cntrl */ > + > +#define REG_CLK 0x11/* Clock control */ > +#define REG_REG550x55/* Clock PLL DIV/PreDiv */ > + > +#define REG_REG120x12 > + > +#define REG_REG13
[PATCH v5 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 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 | 1220 4 files changed, 1237 insertions(+) create mode 100644 drivers/media/i2c/ov7740.c diff --git a/MAINTAINERS b/MAINTAINERS index aa71ab52fd76..19086a073ae9 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 3c6d6428f525..ac484bb82fae 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 ..b2ec015bf3f6 --- /dev/null +++ b/drivers/media/i2c/ov7740.c @@ -0,0 +1,1220 @@ +/* + * 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 +#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 REG_REG13 0x13/* auto/manual AGC, AEC, Write Balance*/ +#define REG13_AEC_EN 0x01 +#define REG13_AGC_EN 0x04 + +#define REG_REG14 0x14 +#define REG_CTRL15 0x15 +#define REG15_GAIN_MSB 0x03 + +#define REG_REG16 0x16 + +#define
[PATCH v5 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 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 | 1220 4 files changed, 1237 insertions(+) create mode 100644 drivers/media/i2c/ov7740.c diff --git a/MAINTAINERS b/MAINTAINERS index aa71ab52fd76..19086a073ae9 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 3c6d6428f525..ac484bb82fae 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 ..b2ec015bf3f6 --- /dev/null +++ b/drivers/media/i2c/ov7740.c @@ -0,0 +1,1220 @@ +/* + * 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 +#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 REG_REG13 0x13/* auto/manual AGC, AEC, Write Balance*/ +#define REG13_AEC_EN 0x01 +#define REG13_AGC_EN 0x04 + +#define REG_REG14 0x14 +#define REG_CTRL15 0x15 +#define REG15_GAIN_MSB 0x03 + +#define REG_REG16 0x16 + +#define REG_MIDH 0x1C/* manufacture id byte */ +#define REG_MIDL 0x1D/* manufacture id byre */