Lines Matching refs:sd
54 struct v4l2_subdev sd; member
65 static inline struct wm8739_state *to_state(struct v4l2_subdev *sd) in to_state() argument
67 return container_of(sd, struct wm8739_state, sd); in to_state()
72 return &container_of(ctrl->handler, struct wm8739_state, hdl)->sd; in to_sd()
77 static int wm8739_write(struct v4l2_subdev *sd, int reg, u16 val) in wm8739_write() argument
79 struct i2c_client *client = v4l2_get_subdevdata(sd); in wm8739_write()
83 v4l2_err(sd, "Invalid register R%d\n", reg); in wm8739_write()
87 v4l2_dbg(1, debug, sd, "write: %02x %02x\n", reg, val); in wm8739_write()
93 v4l2_err(sd, "I2C: cannot write %03x to register R%d\n", val, reg); in wm8739_write()
99 struct v4l2_subdev *sd = to_sd(ctrl); in wm8739_s_ctrl() local
100 struct wm8739_state *state = to_state(sd); in wm8739_s_ctrl()
127 wm8739_write(sd, R0, (vol_l & 0x1f) | mute); in wm8739_s_ctrl()
128 wm8739_write(sd, R1, (vol_r & 0x1f) | mute); in wm8739_s_ctrl()
134 static int wm8739_s_clock_freq(struct v4l2_subdev *sd, u32 audiofreq) in wm8739_s_clock_freq() argument
136 struct wm8739_state *state = to_state(sd); in wm8739_s_clock_freq()
140 wm8739_write(sd, R9, 0x000); in wm8739_s_clock_freq()
144 wm8739_write(sd, R8, 0x020); in wm8739_s_clock_freq()
148 wm8739_write(sd, R8, 0x000); in wm8739_s_clock_freq()
152 wm8739_write(sd, R8, 0x018); in wm8739_s_clock_freq()
158 wm8739_write(sd, R9, 0x001); in wm8739_s_clock_freq()
162 static int wm8739_log_status(struct v4l2_subdev *sd) in wm8739_log_status() argument
164 struct wm8739_state *state = to_state(sd); in wm8739_log_status()
166 v4l2_info(sd, "Frequency: %u Hz\n", state->clock_freq); in wm8739_log_status()
167 v4l2_ctrl_handler_log_status(&state->hdl, sd->name); in wm8739_log_status()
198 struct v4l2_subdev *sd; in wm8739_probe() local
210 sd = &state->sd; in wm8739_probe()
211 v4l2_i2c_subdev_init(sd, client, &wm8739_ops); in wm8739_probe()
219 sd->ctrl_handler = &state->hdl; in wm8739_probe()
233 wm8739_write(sd, R15, 0x00); in wm8739_probe()
235 wm8739_write(sd, R5, 0x000); in wm8739_probe()
237 wm8739_write(sd, R6, 0x000); in wm8739_probe()
240 wm8739_write(sd, R7, 0x049); in wm8739_probe()
242 wm8739_write(sd, R8, 0x000); in wm8739_probe()
244 wm8739_write(sd, R9, 0x001); in wm8739_probe()
252 struct v4l2_subdev *sd = i2c_get_clientdata(client); in wm8739_remove() local
253 struct wm8739_state *state = to_state(sd); in wm8739_remove()
255 v4l2_device_unregister_subdev(sd); in wm8739_remove()