Lines Matching +full:0 +full:xb0

23 	{BRIDGE, M5602_XB_MCU_CLK_DIV, 0x02},
24 {BRIDGE, M5602_XB_MCU_CLK_CTRL, 0xb0},
25 {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00},
26 {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0},
27 {BRIDGE, M5602_XB_ADC_CTRL, 0xc0},
28 {BRIDGE, M5602_XB_SENSOR_TYPE, 0x0d},
29 {BRIDGE, M5602_XB_SENSOR_CTRL, 0x00},
30 {BRIDGE, M5602_XB_GPIO_DIR, 0x03},
31 {BRIDGE, M5602_XB_GPIO_DIR, 0x03},
32 {BRIDGE, M5602_XB_ADC_CTRL, 0xc0},
33 {BRIDGE, M5602_XB_SENSOR_TYPE, 0x0c},
35 {SENSOR, OV7660_OFON, 0x0c},
36 {SENSOR, OV7660_COM2, 0x11},
37 {SENSOR, OV7660_COM7, 0x05},
39 {BRIDGE, M5602_XB_GPIO_DIR, 0x01},
40 {BRIDGE, M5602_XB_GPIO_DAT, 0x04},
41 {BRIDGE, M5602_XB_GPIO_EN_H, 0x06},
42 {BRIDGE, M5602_XB_GPIO_DIR_H, 0x06},
43 {BRIDGE, M5602_XB_GPIO_DAT_H, 0x00},
44 {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x08},
45 {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0},
46 {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00},
47 {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0},
48 {BRIDGE, M5602_XB_ADC_CTRL, 0xc0},
49 {BRIDGE, M5602_XB_SENSOR_TYPE, 0x0c},
50 {BRIDGE, M5602_XB_GPIO_DIR, 0x05},
51 {BRIDGE, M5602_XB_GPIO_DAT, 0x00},
52 {BRIDGE, M5602_XB_GPIO_EN_H, 0x06},
53 {BRIDGE, M5602_XB_GPIO_EN_L, 0x00}
57 {BRIDGE, M5602_XB_MCU_CLK_DIV, 0x02},
58 {BRIDGE, M5602_XB_MCU_CLK_CTRL, 0xb0},
59 {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00},
60 {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0},
61 {BRIDGE, M5602_XB_ADC_CTRL, 0xc0},
62 {BRIDGE, M5602_XB_SENSOR_TYPE, 0x0d},
63 {BRIDGE, M5602_XB_SENSOR_CTRL, 0x00},
64 {BRIDGE, M5602_XB_GPIO_DIR, 0x01},
65 {BRIDGE, M5602_XB_GPIO_DIR, 0x01},
66 {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00},
67 {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0},
68 {BRIDGE, M5602_XB_ADC_CTRL, 0xc0},
69 {BRIDGE, M5602_XB_SENSOR_TYPE, 0x0c},
70 {BRIDGE, M5602_XB_GPIO_DIR, 0x05},
71 {BRIDGE, M5602_XB_GPIO_DAT, 0x00},
72 {BRIDGE, M5602_XB_GPIO_EN_H, 0x06},
73 {BRIDGE, M5602_XB_GPIO_EN_L, 0x00},
74 {SENSOR, OV7660_COM7, 0x80},
75 {SENSOR, OV7660_CLKRC, 0x80},
76 {SENSOR, OV7660_COM9, 0x4c},
77 {SENSOR, OV7660_OFON, 0x43},
78 {SENSOR, OV7660_COM12, 0x28},
79 {SENSOR, OV7660_COM8, 0x00},
80 {SENSOR, OV7660_COM10, 0x40},
81 {SENSOR, OV7660_HSTART, 0x0c},
82 {SENSOR, OV7660_HSTOP, 0x61},
83 {SENSOR, OV7660_HREF, 0xa4},
84 {SENSOR, OV7660_PSHFT, 0x0b},
85 {SENSOR, OV7660_VSTART, 0x01},
86 {SENSOR, OV7660_VSTOP, 0x7a},
87 {SENSOR, OV7660_VSTOP, 0x00},
88 {SENSOR, OV7660_COM7, 0x05},
89 {SENSOR, OV7660_COM6, 0x42},
90 {SENSOR, OV7660_BBIAS, 0x94},
91 {SENSOR, OV7660_GbBIAS, 0x94},
92 {SENSOR, OV7660_RSVD29, 0x94},
93 {SENSOR, OV7660_RBIAS, 0x94},
94 {SENSOR, OV7660_COM1, 0x00},
95 {SENSOR, OV7660_AECH, 0x00},
96 {SENSOR, OV7660_AECHH, 0x00},
97 {SENSOR, OV7660_ADC, 0x05},
98 {SENSOR, OV7660_COM13, 0x00},
99 {SENSOR, OV7660_RSVDA1, 0x23},
100 {SENSOR, OV7660_TSLB, 0x0d},
101 {SENSOR, OV7660_HV, 0x80},
102 {SENSOR, OV7660_LCC1, 0x00},
103 {SENSOR, OV7660_LCC2, 0x00},
104 {SENSOR, OV7660_LCC3, 0x10},
105 {SENSOR, OV7660_LCC4, 0x40},
106 {SENSOR, OV7660_LCC5, 0x01},
108 {SENSOR, OV7660_AECH, 0x20},
109 {SENSOR, OV7660_COM1, 0x00},
110 {SENSOR, OV7660_OFON, 0x0c},
111 {SENSOR, OV7660_COM2, 0x11},
112 {SENSOR, OV7660_COM7, 0x05},
113 {BRIDGE, M5602_XB_GPIO_DIR, 0x01},
114 {BRIDGE, M5602_XB_GPIO_DAT, 0x04},
115 {BRIDGE, M5602_XB_GPIO_EN_H, 0x06},
116 {BRIDGE, M5602_XB_GPIO_DIR_H, 0x06},
117 {BRIDGE, M5602_XB_GPIO_DAT_H, 0x00},
118 {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x08},
119 {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0},
120 {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00},
121 {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0},
122 {BRIDGE, M5602_XB_ADC_CTRL, 0xc0},
123 {BRIDGE, M5602_XB_SENSOR_TYPE, 0x0c},
124 {BRIDGE, M5602_XB_GPIO_DIR, 0x05},
125 {BRIDGE, M5602_XB_GPIO_DAT, 0x00},
126 {BRIDGE, M5602_XB_GPIO_EN_H, 0x06},
127 {BRIDGE, M5602_XB_GPIO_EN_L, 0x00},
128 {SENSOR, OV7660_AECH, 0x5f},
129 {SENSOR, OV7660_COM1, 0x03},
130 {SENSOR, OV7660_OFON, 0x0c},
131 {SENSOR, OV7660_COM2, 0x11},
132 {SENSOR, OV7660_COM7, 0x05},
133 {BRIDGE, M5602_XB_GPIO_DIR, 0x01},
134 {BRIDGE, M5602_XB_GPIO_DAT, 0x04},
135 {BRIDGE, M5602_XB_GPIO_EN_H, 0x06},
136 {BRIDGE, M5602_XB_GPIO_DIR_H, 0x06},
137 {BRIDGE, M5602_XB_GPIO_DAT_H, 0x00},
138 {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x08},
139 {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0},
140 {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00},
141 {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0},
142 {BRIDGE, M5602_XB_ADC_CTRL, 0xc0},
143 {BRIDGE, M5602_XB_SENSOR_TYPE, 0x0c},
144 {BRIDGE, M5602_XB_GPIO_DIR, 0x05},
145 {BRIDGE, M5602_XB_GPIO_DAT, 0x00},
146 {BRIDGE, M5602_XB_GPIO_EN_H, 0x06},
147 {BRIDGE, M5602_XB_GPIO_EN_L, 0x00},
149 {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x06},
150 {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0},
151 {BRIDGE, M5602_XB_ADC_CTRL, 0xc0},
152 {BRIDGE, M5602_XB_SENSOR_TYPE, 0x0c},
153 {BRIDGE, M5602_XB_LINE_OF_FRAME_H, 0x81},
154 {BRIDGE, M5602_XB_PIX_OF_LINE_H, 0x82},
155 {BRIDGE, M5602_XB_SIG_INI, 0x01},
156 {BRIDGE, M5602_XB_VSYNC_PARA, 0x00},
157 {BRIDGE, M5602_XB_VSYNC_PARA, 0x08},
158 {BRIDGE, M5602_XB_VSYNC_PARA, 0x00},
159 {BRIDGE, M5602_XB_VSYNC_PARA, 0x00},
160 {BRIDGE, M5602_XB_VSYNC_PARA, 0x01},
161 {BRIDGE, M5602_XB_VSYNC_PARA, 0xec},
162 {BRIDGE, M5602_XB_VSYNC_PARA, 0x00},
163 {BRIDGE, M5602_XB_VSYNC_PARA, 0x00},
164 {BRIDGE, M5602_XB_SIG_INI, 0x00},
165 {BRIDGE, M5602_XB_SIG_INI, 0x02},
166 {BRIDGE, M5602_XB_HSYNC_PARA, 0x00},
167 {BRIDGE, M5602_XB_HSYNC_PARA, 0x27},
168 {BRIDGE, M5602_XB_HSYNC_PARA, 0x02},
169 {BRIDGE, M5602_XB_HSYNC_PARA, 0xa7},
170 {BRIDGE, M5602_XB_SIG_INI, 0x00},
171 {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00},
172 {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0},
185 .priv = 0
195 int err = 0, i; in ov7660_probe()
196 u8 prod_id = 0, ver_id = 0; in ov7660_probe()
209 for (i = 0; i < ARRAY_SIZE(preinit_ov7660) && !err; i++) { in ov7660_probe()
212 if (preinit_ov7660[i][0] == BRIDGE) { in ov7660_probe()
217 data[0] = preinit_ov7660[i][2]; in ov7660_probe()
222 if (err < 0) in ov7660_probe()
231 pr_info("Sensor reported 0x%x%x\n", prod_id, ver_id); in ov7660_probe()
233 if ((prod_id == 0x76) && (ver_id == 0x60)) { in ov7660_probe()
243 return 0; in ov7660_probe()
251 for (i = 0; i < ARRAY_SIZE(init_ov7660); i++) { in ov7660_init()
254 if (init_ov7660[i][0] == BRIDGE) { in ov7660_init()
259 data[0] = init_ov7660[i][2]; in ov7660_init()
263 if (err < 0) in ov7660_init()
270 return 0; in ov7660_init()
281 0, 1, 1, 1); in ov7660_init_controls()
283 V4L2_CID_EXPOSURE_AUTO, 1, 0, V4L2_EXPOSURE_AUTO); in ov7660_init_controls()
286 V4L2_CID_AUTOGAIN, 0, 1, 1, 1); in ov7660_init_controls()
287 sd->gain = v4l2_ctrl_new_std(hdl, &ov7660_ctrl_ops, V4L2_CID_GAIN, 0, in ov7660_init_controls()
291 0, 1, 1, 0); in ov7660_init_controls()
293 0, 1, 1, 0); in ov7660_init_controls()
300 v4l2_ctrl_auto_cluster(2, &sd->autogain, 0, false); in ov7660_init_controls()
303 return 0; in ov7660_init_controls()
308 return 0; in ov7660_start()
313 return 0; in ov7660_stop()
345 if (err < 0) in ov7660_set_auto_white_balance()
348 i2c_data = ((i2c_data & 0xfd) | ((val & 0x01) << 1)); in ov7660_set_auto_white_balance()
363 if (err < 0) in ov7660_set_auto_gain()
366 i2c_data = ((i2c_data & 0xfb) | ((val & 0x01) << 2)); in ov7660_set_auto_gain()
381 if (err < 0) in ov7660_set_auto_exposure()
385 i2c_data = ((i2c_data & 0xfe) | ((val & 0x01) << 0)); in ov7660_set_auto_exposure()
414 return 0; in ov7660_s_ctrl()
443 for (address = 0; address < 0xa9; address++) { in ov7660_dump_registers()
446 pr_info("register 0x%x contains 0x%x\n", address, value); in ov7660_dump_registers()
452 for (address = 0; address < 0xff; address++) { in ov7660_dump_registers()
454 u8 test_value[2] = {0xff, 0xff}; in ov7660_dump_registers()
460 if (ctrl_value == test_value[0]) in ov7660_dump_registers()
461 pr_info("register 0x%x is writeable\n", address); in ov7660_dump_registers()
463 pr_info("register 0x%x is read only\n", address); in ov7660_dump_registers()