Commit 4ab0620b authored by Ondrej Zary's avatar Ondrej Zary Committed by Mauro Carvalho Chehab

[media] introduce gspca-stk1135: Syntek STK1135 driver

Hello,
this is a new gspca driver for Syntek STK1135 webcams. The code is completely
new, but register values are based on Syntekdriver (stk11xx) by Nicolas VIVIEN
(http://syntekdriver.sourceforge.net).
Only one webcam type is supported now - vendor 0x174f, device 0x6a31.
It's Asus F5RL laptop flippable webcam with MT9M112.
The camera works better than in Windows - initializes much faster and
provides more resolutions (the sensor can do almost any resolution - just
add it to the stk1135_modes[] - could this feature be somehow used by
applications to avoid SW scaling?).
Autoflip works too - when the camera is flipped around, the image is flipped
automatically.
Signed-off-by: default avatarOndrej Zary <linux@rainbow-software.org>
Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
Signed-off-by: default avatarMauro Carvalho Chehab <m.chehab@samsung.com>
parent d48de1c7
...@@ -338,6 +338,15 @@ config USB_GSPCA_STK014 ...@@ -338,6 +338,15 @@ config USB_GSPCA_STK014
To compile this driver as a module, choose M here: the To compile this driver as a module, choose M here: the
module will be called gspca_stk014. module will be called gspca_stk014.
config USB_GSPCA_STK1135
tristate "Syntek STK1135 USB Camera Driver"
depends on VIDEO_V4L2 && USB_GSPCA
help
Say Y here if you want support for cameras based on the STK1135 chip.
To compile this driver as a module, choose M here: the
module will be called gspca_stk1135.
config USB_GSPCA_STV0680 config USB_GSPCA_STV0680
tristate "STV0680 USB Camera Driver" tristate "STV0680 USB Camera Driver"
depends on VIDEO_V4L2 && USB_GSPCA depends on VIDEO_V4L2 && USB_GSPCA
......
...@@ -34,6 +34,7 @@ obj-$(CONFIG_USB_GSPCA_SQ905C) += gspca_sq905c.o ...@@ -34,6 +34,7 @@ obj-$(CONFIG_USB_GSPCA_SQ905C) += gspca_sq905c.o
obj-$(CONFIG_USB_GSPCA_SQ930X) += gspca_sq930x.o obj-$(CONFIG_USB_GSPCA_SQ930X) += gspca_sq930x.o
obj-$(CONFIG_USB_GSPCA_SUNPLUS) += gspca_sunplus.o obj-$(CONFIG_USB_GSPCA_SUNPLUS) += gspca_sunplus.o
obj-$(CONFIG_USB_GSPCA_STK014) += gspca_stk014.o obj-$(CONFIG_USB_GSPCA_STK014) += gspca_stk014.o
obj-$(CONFIG_USB_GSPCA_STK1135) += gspca_stk1135.o
obj-$(CONFIG_USB_GSPCA_STV0680) += gspca_stv0680.o obj-$(CONFIG_USB_GSPCA_STV0680) += gspca_stv0680.o
obj-$(CONFIG_USB_GSPCA_T613) += gspca_t613.o obj-$(CONFIG_USB_GSPCA_T613) += gspca_t613.o
obj-$(CONFIG_USB_GSPCA_TOPRO) += gspca_topro.o obj-$(CONFIG_USB_GSPCA_TOPRO) += gspca_topro.o
...@@ -78,6 +79,7 @@ gspca_sq905-objs := sq905.o ...@@ -78,6 +79,7 @@ gspca_sq905-objs := sq905.o
gspca_sq905c-objs := sq905c.o gspca_sq905c-objs := sq905c.o
gspca_sq930x-objs := sq930x.o gspca_sq930x-objs := sq930x.o
gspca_stk014-objs := stk014.o gspca_stk014-objs := stk014.o
gspca_stk1135-objs := stk1135.o
gspca_stv0680-objs := stv0680.o gspca_stv0680-objs := stv0680.o
gspca_sunplus-objs := sunplus.o gspca_sunplus-objs := sunplus.o
gspca_t613-objs := t613.o gspca_t613-objs := t613.o
......
This diff is collapsed.
/*
* STK1135 registers
*
* Copyright (c) 2013 Ondrej Zary
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* any later version.
*
* 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.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#define STK1135_REG_GCTRL 0x000 /* GPIO control */
#define STK1135_REG_ICTRL 0x004 /* Interrupt control */
#define STK1135_REG_IDATA 0x008 /* Interrupt data */
#define STK1135_REG_RMCTL 0x00c /* Remote wakeup control */
#define STK1135_REG_POSVA 0x010 /* Power-on strapping data */
#define STK1135_REG_SENSO 0x018 /* Sensor select options */
#define STK1135_REG_PLLFD 0x01c /* PLL frequency divider */
#define STK1135_REG_SCTRL 0x100 /* Sensor control register */
#define STK1135_REG_DCTRL 0x104 /* Decimation control register */
#define STK1135_REG_CISPO 0x110 /* Capture image starting position */
#define STK1135_REG_CIEPO 0x114 /* Capture image ending position */
#define STK1135_REG_TCTRL 0x120 /* Test data control */
#define STK1135_REG_SICTL 0x200 /* Serial interface control register */
#define STK1135_REG_SBUSW 0x204 /* Serial bus write */
#define STK1135_REG_SBUSR 0x208 /* Serial bus read */
#define STK1135_REG_SCSI 0x20c /* Software control serial interface */
#define STK1135_REG_GSBWP 0x210 /* General serial bus write port */
#define STK1135_REG_GSBRP 0x214 /* General serial bus read port */
#define STK1135_REG_ASIC 0x2fc /* Alternate serial interface control */
#define STK1135_REG_TMGEN 0x300 /* Timing generator */
#define STK1135_REG_TCP1 0x350 /* Timing control parameter 1 */
struct stk1135_pkt_header {
u8 flags;
u8 seq;
__le16 gpio;
} __packed;
#define STK1135_HDR_FRAME_START (1 << 7)
#define STK1135_HDR_ODD (1 << 6)
#define STK1135_HDR_I2C_VBLANK (1 << 5)
#define STK1135_HDR_SEQ_MASK 0x3f
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment