#ifndef __HEXIUM_GEMINI__ #define __HEXIUM_GEMINI__ #include "hexium.h" static struct saa7146_extension_ioctls ioctls[] = { { VIDIOC_G_INPUT, SAA7146_EXCLUSIVE }, { VIDIOC_S_INPUT, SAA7146_EXCLUSIVE }, { VIDIOC_QUERYCTRL, SAA7146_BEFORE }, { VIDIOC_ENUMINPUT, SAA7146_EXCLUSIVE }, { VIDIOC_S_STD, SAA7146_AFTER }, { VIDIOC_G_CTRL, SAA7146_BEFORE }, { VIDIOC_S_CTRL, SAA7146_BEFORE }, { 0, 0 } }; #define HEXIUM_CONTROLS 1 static struct v4l2_queryctrl hexium_controls[] = { { V4L2_CID_PRIVATE_BASE, V4L2_CTRL_TYPE_BOOLEAN, "B/W", 0, 1, 1, 0, 0 }, }; #define HEXIUM_GEMUINI_V_1_0 1 #define HEXIUM_GEMUINI_DUAL_V_1_0 2 struct hexium { int type; struct video_device video_dev; struct i2c_adapter i2c_adapter; int cur_input; /* current input */ v4l2_std_id cur_std; /* current standard */ int cur_bw; /* current black/white status */ }; /* Samsung KS0127B decoder default registers */ static u8 hexium_ks0127b[0x100]={ /*00*/ 0x00,0x52,0x30,0x40,0x01,0x0C,0x2A,0x10, /*08*/ 0x00,0x00,0x00,0x60,0x00,0x00,0x0F,0x06, /*10*/ 0x00,0x00,0xE4,0xC0,0x00,0x00,0x00,0x00, /*18*/ 0x14,0x9B,0xFE,0xFF,0xFC,0xFF,0x03,0x22, /*20*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*28*/ 0x00,0x00,0x00,0x00,0x00,0x2C,0x9B,0x00, /*30*/ 0x00,0x00,0x10,0x80,0x80,0x10,0x80,0x80, /*38*/ 0x01,0x04,0x00,0x00,0x00,0x29,0xC0,0x00, /*40*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*48*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*50*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*58*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*60*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*68*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*70*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*78*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*80*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*88*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*90*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*98*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*A0*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*A8*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*B0*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*B8*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*C0*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*C8*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*D0*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*D8*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*E0*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*E8*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*F0*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*F8*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }; static struct hexium_data hexium_pal[] = { { 0x01, 0x52 }, { 0x12, 0x64 }, { 0x2D, 0x2C }, { 0x2E, 0x9B }, { -1 , 0xFF } }; static struct hexium_data hexium_pal_bw[] = { { 0x01, 0x52 }, { 0x12, 0x64 }, { 0x2D, 0x2C }, { 0x2E, 0x9B }, { -1 , 0xFF } }; static struct hexium_data hexium_ntsc[] = { { 0x01, 0x53 }, { 0x12, 0x04 }, { 0x2D, 0x23 }, { 0x2E, 0x81 }, { -1 , 0xFF } }; static struct hexium_data hexium_ntsc_bw[] = { { 0x01, 0x53 }, { 0x12, 0x04 }, { 0x2D, 0x23 }, { 0x2E, 0x81 }, { -1 , 0xFF } }; static struct hexium_data hexium_secam[] = { { 0x01, 0x52 }, { 0x12, 0x64 }, { 0x2D, 0x2C }, { 0x2E, 0x9B }, { -1 , 0xFF } }; static struct hexium_data hexium_input_select[] = { { 0x02, 0x60 }, { 0x02, 0x64 }, { 0x02, 0x61 }, { 0x02, 0x65 }, { 0x02, 0x62 }, { 0x02, 0x66 }, { 0x02, 0x68 }, { 0x02, 0x69 }, { 0x02, 0x6A }, }; #endif