Lines Matching full:sd
38 struct v4l2_subdev sd; member
43 static inline struct adv7175 *to_adv7175(struct v4l2_subdev *sd) in to_adv7175() argument
45 return container_of(sd, struct adv7175, sd); in to_adv7175()
57 static inline int adv7175_write(struct v4l2_subdev *sd, u8 reg, u8 value) in adv7175_write() argument
59 struct i2c_client *client = v4l2_get_subdevdata(sd); in adv7175_write()
64 static inline int adv7175_read(struct v4l2_subdev *sd, u8 reg) in adv7175_read() argument
66 struct i2c_client *client = v4l2_get_subdevdata(sd); in adv7175_read()
71 static int adv7175_write_block(struct v4l2_subdev *sd, in adv7175_write_block() argument
74 struct i2c_client *client = v4l2_get_subdevdata(sd); in adv7175_write_block()
102 ret = adv7175_write(sd, reg, *data++); in adv7175_write_block()
112 static void set_subcarrier_freq(struct v4l2_subdev *sd, int pass_through) in set_subcarrier_freq() argument
117 adv7175_write(sd, 0x02, 0x00); in set_subcarrier_freq()
119 adv7175_write(sd, 0x02, 0x55); in set_subcarrier_freq()
121 adv7175_write(sd, 0x03, 0x55); in set_subcarrier_freq()
122 adv7175_write(sd, 0x04, 0x55); in set_subcarrier_freq()
123 adv7175_write(sd, 0x05, 0x25); in set_subcarrier_freq()
183 static int adv7175_init(struct v4l2_subdev *sd, u32 val) in adv7175_init() argument
186 adv7175_write_block(sd, init_common, sizeof(init_common)); in adv7175_init()
187 adv7175_write(sd, 0x07, TR0MODE | TR0RST); in adv7175_init()
188 adv7175_write(sd, 0x07, TR0MODE); in adv7175_init()
192 static int adv7175_s_std_output(struct v4l2_subdev *sd, v4l2_std_id std) in adv7175_s_std_output() argument
194 struct adv7175 *encoder = to_adv7175(sd); in adv7175_s_std_output()
197 adv7175_write_block(sd, init_ntsc, sizeof(init_ntsc)); in adv7175_s_std_output()
199 adv7175_write(sd, 0x0d, 0x4f); /* Enable genlock */ in adv7175_s_std_output()
200 adv7175_write(sd, 0x07, TR0MODE | TR0RST); in adv7175_s_std_output()
201 adv7175_write(sd, 0x07, TR0MODE); in adv7175_s_std_output()
203 adv7175_write_block(sd, init_pal, sizeof(init_pal)); in adv7175_s_std_output()
205 adv7175_write(sd, 0x0d, 0x4f); /* Enable genlock */ in adv7175_s_std_output()
206 adv7175_write(sd, 0x07, TR0MODE | TR0RST); in adv7175_s_std_output()
207 adv7175_write(sd, 0x07, TR0MODE); in adv7175_s_std_output()
215 adv7175_write_block(sd, init_pal, sizeof(init_pal)); in adv7175_s_std_output()
217 adv7175_write(sd, 0x0d, 0x49); /* Disable genlock */ in adv7175_s_std_output()
218 adv7175_write(sd, 0x07, TR0MODE | TR0RST); in adv7175_s_std_output()
219 adv7175_write(sd, 0x07, TR0MODE); in adv7175_s_std_output()
221 v4l2_dbg(1, debug, sd, "illegal norm: %llx\n", in adv7175_s_std_output()
225 v4l2_dbg(1, debug, sd, "switched to %llx\n", (unsigned long long)std); in adv7175_s_std_output()
230 static int adv7175_s_routing(struct v4l2_subdev *sd, in adv7175_s_routing() argument
233 struct adv7175 *encoder = to_adv7175(sd); in adv7175_s_routing()
241 adv7175_write(sd, 0x01, 0x00); in adv7175_s_routing()
244 set_subcarrier_freq(sd, 1); in adv7175_s_routing()
246 adv7175_write(sd, 0x0c, TR1CAPT); /* TR1 */ in adv7175_s_routing()
248 adv7175_write(sd, 0x0d, 0x49); /* Disable genlock */ in adv7175_s_routing()
250 adv7175_write(sd, 0x0d, 0x4f); /* Enable genlock */ in adv7175_s_routing()
251 adv7175_write(sd, 0x07, TR0MODE | TR0RST); in adv7175_s_routing()
252 adv7175_write(sd, 0x07, TR0MODE); in adv7175_s_routing()
257 adv7175_write(sd, 0x01, 0x00); in adv7175_s_routing()
260 set_subcarrier_freq(sd, 0); in adv7175_s_routing()
262 adv7175_write(sd, 0x0c, TR1PLAY); /* TR1 */ in adv7175_s_routing()
263 adv7175_write(sd, 0x0d, 0x49); in adv7175_s_routing()
264 adv7175_write(sd, 0x07, TR0MODE | TR0RST); in adv7175_s_routing()
265 adv7175_write(sd, 0x07, TR0MODE); in adv7175_s_routing()
270 adv7175_write(sd, 0x01, 0x80); in adv7175_s_routing()
273 set_subcarrier_freq(sd, 0); in adv7175_s_routing()
275 adv7175_write(sd, 0x0d, 0x49); in adv7175_s_routing()
276 adv7175_write(sd, 0x07, TR0MODE | TR0RST); in adv7175_s_routing()
277 adv7175_write(sd, 0x07, TR0MODE); in adv7175_s_routing()
282 v4l2_dbg(1, debug, sd, "illegal input: %d\n", input); in adv7175_s_routing()
285 v4l2_dbg(1, debug, sd, "switched to %s\n", inputs[input]); in adv7175_s_routing()
290 static int adv7175_enum_mbus_code(struct v4l2_subdev *sd, in adv7175_enum_mbus_code() argument
301 static int adv7175_get_fmt(struct v4l2_subdev *sd, in adv7175_get_fmt() argument
306 u8 val = adv7175_read(sd, 0x7); in adv7175_get_fmt()
324 static int adv7175_set_fmt(struct v4l2_subdev *sd, in adv7175_set_fmt() argument
329 u8 val = adv7175_read(sd, 0x7); in adv7175_set_fmt()
345 v4l2_dbg(1, debug, sd, in adv7175_set_fmt()
351 ret = adv7175_write(sd, 0x7, val); in adv7175_set_fmt()
356 static int adv7175_s_power(struct v4l2_subdev *sd, int on) in adv7175_s_power() argument
359 adv7175_write(sd, 0x01, 0x00); in adv7175_s_power()
361 adv7175_write(sd, 0x01, 0x78); in adv7175_s_power()
396 struct v4l2_subdev *sd; in adv7175_probe() local
408 sd = &encoder->sd; in adv7175_probe()
409 v4l2_i2c_subdev_init(sd, client, &adv7175_ops); in adv7175_probe()
413 i = adv7175_write_block(sd, init_common, sizeof(init_common)); in adv7175_probe()
415 i = adv7175_write(sd, 0x07, TR0MODE | TR0RST); in adv7175_probe()
416 i = adv7175_write(sd, 0x07, TR0MODE); in adv7175_probe()
417 i = adv7175_read(sd, 0x12); in adv7175_probe()
418 v4l2_dbg(1, debug, sd, "revision %d\n", i & 1); in adv7175_probe()
421 v4l2_dbg(1, debug, sd, "init error 0x%x\n", i); in adv7175_probe()
427 struct v4l2_subdev *sd = i2c_get_clientdata(client); in adv7175_remove() local
429 v4l2_device_unregister_subdev(sd); in adv7175_remove()