Lines Matching refs:radio

3  * driver/media/radio/radio-tea5764.c
5 * Driver for TEA5764 radio chip for linux 2.6.
9 * Based in radio-tea5761.c Copyright (C) 2005 Nokia Corporation
25 #include <linux/videodev2.h> /* kernel radio structs */
36 #define DRIVER_DESC "A driver for the TEA5764 radio chip for EZX Phones."
140 static int tea5764_i2c_read(struct tea5764_device *radio)
143 u16 *p = (u16 *) &radio->regs;
146 { .addr = radio->i2c_client->addr,
148 .len = sizeof(radio->regs),
149 .buf = (void *)&radio->regs
152 if (i2c_transfer(radio->i2c_client->adapter, msgs, 1) != 1)
160 static int tea5764_i2c_write(struct tea5764_device *radio)
163 struct tea5764_regs *r = &radio->regs;
166 .addr = radio->i2c_client->addr,
177 if (i2c_transfer(radio->i2c_client->adapter, msgs, 1) != 1)
182 static void tea5764_power_up(struct tea5764_device *radio)
184 struct tea5764_regs *r = &radio->regs;
195 tea5764_i2c_write(radio);
199 static void tea5764_power_down(struct tea5764_device *radio)
201 struct tea5764_regs *r = &radio->regs;
205 tea5764_i2c_write(radio);
209 static void tea5764_set_freq(struct tea5764_device *radio, int freq)
211 struct tea5764_regs *r = &radio->regs;
220 static int tea5764_get_freq(struct tea5764_device *radio)
222 struct tea5764_regs *r = &radio->regs;
231 static void tea5764_tune(struct tea5764_device *radio, int freq)
233 tea5764_set_freq(radio, freq);
234 if (tea5764_i2c_write(radio))
238 static void tea5764_set_audout_mode(struct tea5764_device *radio, int audmode)
240 struct tea5764_regs *r = &radio->regs;
248 tea5764_i2c_write(radio);
251 static int tea5764_get_audout_mode(struct tea5764_device *radio)
253 struct tea5764_regs *r = &radio->regs;
261 static void tea5764_mute(struct tea5764_device *radio, int on)
263 struct tea5764_regs *r = &radio->regs;
271 tea5764_i2c_write(radio);
278 struct tea5764_device *radio = video_drvdata(file);
279 struct video_device *dev = &radio->vdev;
291 struct tea5764_device *radio = video_drvdata(file);
292 struct tea5764_regs *r = &radio->regs;
299 tea5764_i2c_read(radio);
307 v->audmode = tea5764_get_audout_mode(radio);
317 struct tea5764_device *radio = video_drvdata(file);
322 tea5764_set_audout_mode(radio, v->audmode);
329 struct tea5764_device *radio = video_drvdata(file);
336 tea5764_power_down(radio);
345 tea5764_power_up(radio);
346 tea5764_tune(radio, (freq * 125) / 2);
353 struct tea5764_device *radio = video_drvdata(file);
354 struct tea5764_regs *r = &radio->regs;
358 tea5764_i2c_read(radio);
361 f->frequency = (tea5764_get_freq(radio) * 2) / 125;
370 struct tea5764_device *radio =
375 tea5764_mute(radio, ctrl->val);
417 struct tea5764_device *radio;
424 radio = kzalloc(sizeof(struct tea5764_device), GFP_KERNEL);
425 if (!radio)
428 v4l2_dev = &radio->v4l2_dev;
435 hdl = &radio->ctrl_handler;
446 mutex_init(&radio->mutex);
447 radio->i2c_client = client;
448 ret = tea5764_i2c_read(radio);
451 r = &radio->regs;
460 radio->vdev = tea5764_radio_template;
462 i2c_set_clientdata(client, radio);
463 video_set_drvdata(&radio->vdev, radio);
464 radio->vdev.lock = &radio->mutex;
465 radio->vdev.v4l2_dev = v4l2_dev;
466 radio->vdev.device_caps = V4L2_CAP_TUNER | V4L2_CAP_RADIO;
469 tea5764_i2c_read(radio);
470 tea5764_set_audout_mode(radio, V4L2_TUNER_MODE_STEREO);
471 tea5764_mute(radio, 1);
472 tea5764_power_down(radio);
474 ret = video_register_device(&radio->vdev, VFL_TYPE_RADIO, radio_nr);
486 kfree(radio);
492 struct tea5764_device *radio = i2c_get_clientdata(client);
495 if (radio) {
496 tea5764_power_down(radio);
497 video_unregister_device(&radio->vdev);
498 v4l2_ctrl_handler_free(&radio->ctrl_handler);
499 v4l2_device_unregister(&radio->v4l2_dev);
500 kfree(radio);
507 { "radio-tea5764", 0 },
514 .name = "radio-tea5764",