drivers/media/usb/gspca/stv06xx/stv06xx_vv6410.h

Source file repositories/reference/linux-study-clean/drivers/media/usb/gspca/stv06xx/stv06xx_vv6410.h

File Facts

System
Linux kernel
Corpus path
drivers/media/usb/gspca/stv06xx/stv06xx_vv6410.h
Extension
.h
Size
6597 bytes
Lines
243
Domain
Driver Families
Bucket
drivers/media
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

struct stv_init {
	u16 addr;
	u8 data;
};

static const struct stv_init stv_bridge_init[] = {
	/* This reg is written twice. Some kind of reset? */
	{STV_RESET, 0x80},
	{STV_RESET, 0x00},
	{STV_SCAN_RATE, 0x00},
	{STV_I2C_FLUSH, 0x04},
	{STV_REG00, 0x0b},
	{STV_REG01, 0xa7},
	{STV_REG02, 0xb7},
	{STV_REG03, 0x00},
	{STV_REG04, 0x00},
	{0x1536, 0x02},
	{0x1537, 0x00},
	{0x1538, 0x60},
	{0x1539, 0x01},
	{0x153a, 0x20},
	{0x153b, 0x01},
};

static const u8 vv6410_sensor_init[][2] = {
	/* Setup registers */
	{VV6410_SETUP0,	VV6410_SOFT_RESET},
	{VV6410_SETUP0,	VV6410_LOW_POWER_MODE},
	/* Use shuffled read-out mode */
	{VV6410_SETUP1,	BIT(6)},
	/* All modes to 1, FST, Fast QCK, Free running QCK, Free running LST, FST will qualify visible pixels */
	{VV6410_FGMODES, BIT(6) | BIT(4) | BIT(2) | BIT(0)},
	{VV6410_PINMAPPING, 0x00},
	/* Pre-clock generator divide off */
	{VV6410_DATAFORMAT, BIT(7) | BIT(0)},

	{VV6410_CLKDIV,	VV6410_CLK_DIV_2},

	/* System registers */
	/* Enable voltage doubler */
	{VV6410_AS0, BIT(6) | BIT(4) | BIT(3) | BIT(2) | BIT(1)},
	{VV6410_AT0, 0x00},
	/* Power up audio, differential */
	{VV6410_AT1, BIT(4) | BIT(0)},
};

#endif

Annotation

Implementation Notes