Lines Matching refs:core
89 struct wl1273_core *core; member
107 static int wl1273_fm_write_fw(struct wl1273_core *core, in wl1273_fm_write_fw() argument
110 struct i2c_client *client = core->client; in wl1273_fm_write_fw()
145 struct wl1273_core *core = radio->core; in wl1273_fm_rds() local
146 struct i2c_client *client = core->client; in wl1273_fm_rds()
166 if (core->mode != WL1273_MODE_RX) in wl1273_fm_rds()
169 r = core->read(core, WL1273_RDS_SYNC_GET, &val); in wl1273_fm_rds()
233 struct wl1273_core *core = radio->core; in wl1273_fm_irq_thread_handler() local
237 r = core->read(core, WL1273_FLAG_GET, &flags); in wl1273_fm_irq_thread_handler()
261 r = core->read(core, WL1273_RSSI_LVL_GET, &level); in wl1273_fm_irq_thread_handler()
301 if (core->mode == WL1273_MODE_RX) { in wl1273_fm_irq_thread_handler()
302 r = core->write(core, WL1273_TUNER_MODE_SET, in wl1273_fm_irq_thread_handler()
311 r = core->read(core, WL1273_FREQ_SET, &freq); in wl1273_fm_irq_thread_handler()
330 r = core->read(core, WL1273_CHANL_SET, &freq); in wl1273_fm_irq_thread_handler()
340 core->write(core, WL1273_INT_MASK_SET, radio->irq_flags); in wl1273_fm_irq_thread_handler()
348 struct wl1273_core *core = radio->core; in wl1273_fm_set_tx_freq() local
375 r = core->write(core, WL1273_CHANL_SET, freq / 10); in wl1273_fm_set_tx_freq()
389 r = core->write(core, WL1273_POWER_ENB_SET, 1); in wl1273_fm_set_tx_freq()
408 struct wl1273_core *core = radio->core; in wl1273_fm_set_rx_freq() local
430 core->write(core, WL1273_INT_MASK_SET, radio->irq_flags); in wl1273_fm_set_rx_freq()
437 r = core->write(core, WL1273_FREQ_SET, f); in wl1273_fm_set_rx_freq()
443 r = core->write(core, WL1273_TUNER_MODE_SET, TUNER_MODE_PRESET); in wl1273_fm_set_rx_freq()
467 struct wl1273_core *core = radio->core; in wl1273_fm_get_freq() local
472 if (core->mode == WL1273_MODE_RX) { in wl1273_fm_get_freq()
473 r = core->read(core, WL1273_FREQ_SET, &f); in wl1273_fm_get_freq()
483 r = core->read(core, WL1273_CHANL_SET, &f); in wl1273_fm_get_freq()
503 struct wl1273_core *core = radio->core; in wl1273_fm_upload_firmware_patch() local
527 r = wl1273_fm_write_fw(core, ptr + 1, packet_num); in wl1273_fm_upload_firmware_patch()
534 core->write(core, WL1273_RESET, 0); in wl1273_fm_upload_firmware_patch()
544 struct wl1273_core *core = radio->core; in wl1273_fm_stop() local
546 if (core->mode == WL1273_MODE_RX) { in wl1273_fm_stop()
547 int r = core->write(core, WL1273_POWER_SET, in wl1273_fm_stop()
552 } else if (core->mode == WL1273_MODE_TX) { in wl1273_fm_stop()
553 int r = core->write(core, WL1273_PUPD_SET, in wl1273_fm_stop()
560 if (core->pdata->disable) { in wl1273_fm_stop()
561 core->pdata->disable(); in wl1273_fm_stop()
570 struct wl1273_core *core = radio->core; in wl1273_fm_start() local
571 struct wl1273_fm_platform_data *pdata = core->pdata; in wl1273_fm_start()
575 if (pdata->enable && core->mode == WL1273_MODE_OFF) { in wl1273_fm_start()
589 r = core->write(core, WL1273_POWER_SET, val); in wl1273_fm_start()
593 r = core->write(core, WL1273_POWER_SET, val); in wl1273_fm_start()
606 r = core->write(core, WL1273_PUPD_SET, WL1273_PUPD_SET_ON); in wl1273_fm_start()
609 r = core->write(core, WL1273_PUPD_SET, in wl1273_fm_start()
618 r = core->write(core, WL1273_RDS_DATA_ENB, 1); in wl1273_fm_start()
620 r = core->write(core, WL1273_RDS_DATA_ENB, 0); in wl1273_fm_start()
625 if (core->mode == WL1273_MODE_OFF) { in wl1273_fm_start()
640 r = core->write(core, WL1273_POWER_SET, val); in wl1273_fm_start()
646 r = core->write(core, WL1273_PUPD_SET, in wl1273_fm_start()
666 struct wl1273_core *core = radio->core; in wl1273_fm_suspend() local
670 if (core->mode == WL1273_MODE_RX) in wl1273_fm_suspend()
671 r = core->write(core, WL1273_POWER_SET, in wl1273_fm_suspend()
673 else if (core->mode == WL1273_MODE_TX) in wl1273_fm_suspend()
674 r = core->write(core, WL1273_PUPD_SET, in wl1273_fm_suspend()
690 struct wl1273_core *core = radio->core; in wl1273_fm_set_mode() local
698 old_mode = core->mode; in wl1273_fm_set_mode()
714 core->mode = mode; in wl1273_fm_set_mode()
715 r = core->write(core, WL1273_INT_MASK_SET, radio->irq_flags); in wl1273_fm_set_mode()
729 r = core->set_volume(core, core->volume); in wl1273_fm_set_mode()
736 core->volume); in wl1273_fm_set_mode()
747 r = core->set_audio(core, core->audio_mode); in wl1273_fm_set_mode()
757 core->mode = WL1273_MODE_OFF; in wl1273_fm_set_mode()
766 core->mode = WL1273_MODE_SUSPENDED; in wl1273_fm_set_mode()
777 core->mode = old_mode; in wl1273_fm_set_mode()
787 struct wl1273_core *core = radio->core; in wl1273_fm_set_seek() local
813 r = core->write(core, WL1273_INT_MASK_SET, radio->irq_flags); in wl1273_fm_set_seek()
819 r = core->write(core, WL1273_SEARCH_LVL_SET, level); in wl1273_fm_set_seek()
823 r = core->write(core, WL1273_SEARCH_DIR_SET, dir); in wl1273_fm_set_seek()
827 r = core->write(core, WL1273_TUNER_MODE_SET, TUNER_MODE_AUTO_SEEK); in wl1273_fm_set_seek()
858 r = core->write(core, WL1273_TUNER_MODE_SET, TUNER_MODE_AUTO_SEEK); in wl1273_fm_set_seek()
876 struct wl1273_core *core = radio->core; in wl1273_fm_get_tx_ctune() local
881 if (core->mode == WL1273_MODE_OFF || in wl1273_fm_get_tx_ctune()
882 core->mode == WL1273_MODE_SUSPENDED) in wl1273_fm_get_tx_ctune()
885 r = core->read(core, WL1273_READ_FMANT_TUNE_VALUE, &val); in wl1273_fm_get_tx_ctune()
906 struct wl1273_core *core = radio->core; in wl1273_fm_set_preemphasis() local
910 if (core->mode == WL1273_MODE_OFF || in wl1273_fm_set_preemphasis()
911 core->mode == WL1273_MODE_SUSPENDED) in wl1273_fm_set_preemphasis()
914 mutex_lock(&core->lock); in wl1273_fm_set_preemphasis()
931 r = core->write(core, WL1273_PREMPH_SET, em); in wl1273_fm_set_preemphasis()
938 mutex_unlock(&core->lock); in wl1273_fm_set_preemphasis()
944 struct wl1273_core *core = radio->core; in wl1273_fm_rds_on() local
951 r = core->write(core, WL1273_POWER_SET, in wl1273_fm_rds_on()
965 struct wl1273_core *core = radio->core; in wl1273_fm_rds_off() local
973 r = core->write(core, WL1273_INT_MASK_SET, radio->irq_flags); in wl1273_fm_rds_off()
982 r = core->write(core, WL1273_POWER_SET, WL1273_POWER_SET_FM); in wl1273_fm_rds_off()
998 struct wl1273_core *core = radio->core; in wl1273_fm_set_rds() local
1000 if (core->mode == WL1273_MODE_OFF || in wl1273_fm_set_rds()
1001 core->mode == WL1273_MODE_SUSPENDED) in wl1273_fm_set_rds()
1005 r = core->write(core, WL1273_RDS_CNTRL_SET, 1); in wl1273_fm_set_rds()
1009 if (core->mode == WL1273_MODE_TX && new_mode == WL1273_RDS_OFF) { in wl1273_fm_set_rds()
1010 r = core->write(core, WL1273_RDS_DATA_ENB, 0); in wl1273_fm_set_rds()
1011 } else if (core->mode == WL1273_MODE_TX && new_mode == WL1273_RDS_ON) { in wl1273_fm_set_rds()
1012 r = core->write(core, WL1273_RDS_DATA_ENB, 1); in wl1273_fm_set_rds()
1013 } else if (core->mode == WL1273_MODE_RX && new_mode == WL1273_RDS_OFF) { in wl1273_fm_set_rds()
1015 } else if (core->mode == WL1273_MODE_RX && new_mode == WL1273_RDS_ON) { in wl1273_fm_set_rds()
1033 struct wl1273_core *core = radio->core; in wl1273_fm_fops_write() local
1039 if (core->mode != WL1273_MODE_TX) in wl1273_fm_fops_write()
1047 if (mutex_lock_interruptible(&core->lock)) in wl1273_fm_fops_write()
1065 core->write(core, WL1273_RDS_CONFIG_DATA_SET, val); in wl1273_fm_fops_write()
1076 core->write_data(core, radio->write_buf, val + 1); in wl1273_fm_fops_write()
1080 mutex_unlock(&core->lock); in wl1273_fm_fops_write()
1089 struct wl1273_core *core = radio->core; in wl1273_fm_fops_poll() local
1096 if (core->mode == WL1273_MODE_RX) { in wl1273_fm_fops_poll()
1102 } else if (core->mode == WL1273_MODE_TX) { in wl1273_fm_fops_poll()
1112 struct wl1273_core *core = radio->core; in wl1273_fm_fops_open() local
1117 if (core->mode == WL1273_MODE_RX && radio->rds_on && in wl1273_fm_fops_open()
1119 dev_dbg(radio->dev, "%s: Mode: %d\n", __func__, core->mode); in wl1273_fm_fops_open()
1121 if (mutex_lock_interruptible(&core->lock)) in wl1273_fm_fops_open()
1126 r = core->write(core, WL1273_INT_MASK_SET, in wl1273_fm_fops_open()
1129 mutex_unlock(&core->lock); in wl1273_fm_fops_open()
1135 mutex_unlock(&core->lock); in wl1273_fm_fops_open()
1144 struct wl1273_core *core = radio->core; in wl1273_fm_fops_release() local
1152 if (mutex_lock_interruptible(&core->lock)) in wl1273_fm_fops_release()
1157 if (core->mode == WL1273_MODE_RX) { in wl1273_fm_fops_release()
1158 r = core->write(core, in wl1273_fm_fops_release()
1162 mutex_unlock(&core->lock); in wl1273_fm_fops_release()
1166 mutex_unlock(&core->lock); in wl1273_fm_fops_release()
1181 struct wl1273_core *core = radio->core; in wl1273_fm_fops_read() local
1187 if (core->mode != WL1273_MODE_RX) in wl1273_fm_fops_read()
1195 if (mutex_lock_interruptible(&core->lock)) in wl1273_fm_fops_read()
1208 r = core->read(core, WL1273_RDS_SYNC_GET, &val); in wl1273_fm_fops_read()
1260 mutex_unlock(&core->lock); in wl1273_fm_fops_read()
1331 struct wl1273_core *core = radio->core; in wl1273_fm_set_tx_power() local
1334 if (core->mode == WL1273_MODE_OFF || in wl1273_fm_set_tx_power()
1335 core->mode == WL1273_MODE_SUSPENDED) in wl1273_fm_set_tx_power()
1338 mutex_lock(&core->lock); in wl1273_fm_set_tx_power()
1341 r = core->write(core, WL1273_POWER_LEV_SET, 122 - power); in wl1273_fm_set_tx_power()
1348 mutex_unlock(&core->lock); in wl1273_fm_set_tx_power()
1359 struct wl1273_core *core = radio->core; in wl1273_fm_tx_set_spacing() local
1363 r = core->write(core, WL1273_SCAN_SPACING_SET, in wl1273_fm_tx_set_spacing()
1367 r = core->write(core, WL1273_SCAN_SPACING_SET, in wl1273_fm_tx_set_spacing()
1371 r = core->write(core, WL1273_SCAN_SPACING_SET, in wl1273_fm_tx_set_spacing()
1375 r = core->write(core, WL1273_SCAN_SPACING_SET, in wl1273_fm_tx_set_spacing()
1386 struct wl1273_core *core = radio->core; in wl1273_fm_g_volatile_ctrl() local
1390 if (mutex_lock_interruptible(&core->lock)) in wl1273_fm_g_volatile_ctrl()
1404 mutex_unlock(&core->lock); in wl1273_fm_g_volatile_ctrl()
1423 struct wl1273_core *core = radio->core; in wl1273_fm_vidioc_s_ctrl() local
1430 if (mutex_lock_interruptible(&core->lock)) in wl1273_fm_vidioc_s_ctrl()
1433 if (core->mode == WL1273_MODE_RX && ctrl->val) in wl1273_fm_vidioc_s_ctrl()
1434 r = core->write(core, in wl1273_fm_vidioc_s_ctrl()
1438 else if (core->mode == WL1273_MODE_RX) in wl1273_fm_vidioc_s_ctrl()
1439 r = core->write(core, in wl1273_fm_vidioc_s_ctrl()
1441 else if (core->mode == WL1273_MODE_TX && ctrl->val) in wl1273_fm_vidioc_s_ctrl()
1442 r = core->write(core, WL1273_MUTE, 1); in wl1273_fm_vidioc_s_ctrl()
1443 else if (core->mode == WL1273_MODE_TX) in wl1273_fm_vidioc_s_ctrl()
1444 r = core->write(core, WL1273_MUTE, 0); in wl1273_fm_vidioc_s_ctrl()
1446 mutex_unlock(&core->lock); in wl1273_fm_vidioc_s_ctrl()
1453 r = core->set_volume(core, core->volume); in wl1273_fm_vidioc_s_ctrl()
1510 struct wl1273_core *core = radio->core; in wl1273_fm_vidioc_g_tuner() local
1534 if (core->mode != WL1273_MODE_RX) in wl1273_fm_vidioc_g_tuner()
1537 if (mutex_lock_interruptible(&core->lock)) in wl1273_fm_vidioc_g_tuner()
1540 r = core->read(core, WL1273_STEREO_GET, &val); in wl1273_fm_vidioc_g_tuner()
1549 r = core->read(core, WL1273_RSSI_LVL_GET, &val); in wl1273_fm_vidioc_g_tuner()
1558 r = core->read(core, WL1273_RDS_SYNC_GET, &val); in wl1273_fm_vidioc_g_tuner()
1565 mutex_unlock(&core->lock); in wl1273_fm_vidioc_g_tuner()
1574 struct wl1273_core *core = radio->core; in wl1273_fm_vidioc_s_tuner() local
1588 if (mutex_lock_interruptible(&core->lock)) in wl1273_fm_vidioc_s_tuner()
1604 r = core->write(core, WL1273_MOST_MODE_SET, WL1273_RX_MONO); in wl1273_fm_vidioc_s_tuner()
1612 r = core->write(core, WL1273_MOST_MODE_SET, WL1273_RX_STEREO); in wl1273_fm_vidioc_s_tuner()
1627 mutex_unlock(&core->lock); in wl1273_fm_vidioc_s_tuner()
1636 struct wl1273_core *core = radio->core; in wl1273_fm_vidioc_g_frequency() local
1640 if (mutex_lock_interruptible(&core->lock)) in wl1273_fm_vidioc_g_frequency()
1646 mutex_unlock(&core->lock); in wl1273_fm_vidioc_g_frequency()
1655 struct wl1273_core *core = radio->core; in wl1273_fm_vidioc_s_frequency() local
1666 if (mutex_lock_interruptible(&core->lock)) in wl1273_fm_vidioc_s_frequency()
1669 if (core->mode == WL1273_MODE_RX) { in wl1273_fm_vidioc_s_frequency()
1685 mutex_unlock(&core->lock); in wl1273_fm_vidioc_s_frequency()
1697 struct wl1273_core *core = radio->core; in wl1273_fm_vidioc_s_hw_freq_seek() local
1708 if (mutex_lock_interruptible(&core->lock)) in wl1273_fm_vidioc_s_hw_freq_seek()
1725 mutex_unlock(&core->lock); in wl1273_fm_vidioc_s_hw_freq_seek()
1733 struct wl1273_core *core = radio->core; in wl1273_fm_vidioc_s_modulator() local
1741 if (mutex_lock_interruptible(&core->lock)) in wl1273_fm_vidioc_s_modulator()
1754 r = core->write(core, WL1273_MONO_SET, WL1273_TX_MONO); in wl1273_fm_vidioc_s_modulator()
1756 r = core->write(core, WL1273_MONO_SET, in wl1273_fm_vidioc_s_modulator()
1762 mutex_unlock(&core->lock); in wl1273_fm_vidioc_s_modulator()
1771 struct wl1273_core *core = radio->core; in wl1273_fm_vidioc_g_modulator() local
1786 if (core->mode != WL1273_MODE_TX) in wl1273_fm_vidioc_g_modulator()
1789 if (mutex_lock_interruptible(&core->lock)) in wl1273_fm_vidioc_g_modulator()
1792 r = core->read(core, WL1273_MONO_SET, &val); in wl1273_fm_vidioc_g_modulator()
1804 mutex_unlock(&core->lock); in wl1273_fm_vidioc_g_modulator()
1812 struct wl1273_core *core = radio->core; in wl1273_fm_vidioc_log_status() local
1819 if (core->mode == WL1273_MODE_OFF) { in wl1273_fm_vidioc_log_status()
1824 if (core->mode == WL1273_MODE_SUSPENDED) { in wl1273_fm_vidioc_log_status()
1829 r = core->read(core, WL1273_ASIC_ID_GET, &val); in wl1273_fm_vidioc_log_status()
1835 r = core->read(core, WL1273_ASIC_VER_GET, &val); in wl1273_fm_vidioc_log_status()
1841 r = core->read(core, WL1273_FIRM_VER_GET, &val); in wl1273_fm_vidioc_log_status()
1847 r = core->read(core, WL1273_BAND_SET, &val); in wl1273_fm_vidioc_log_status()
1853 if (core->mode == WL1273_MODE_TX) { in wl1273_fm_vidioc_log_status()
1854 r = core->read(core, WL1273_PUPD_SET, &val); in wl1273_fm_vidioc_log_status()
1860 r = core->read(core, WL1273_CHANL_SET, &val); in wl1273_fm_vidioc_log_status()
1865 } else if (core->mode == WL1273_MODE_RX) { in wl1273_fm_vidioc_log_status()
1868 r = core->read(core, WL1273_FREQ_SET, &val); in wl1273_fm_vidioc_log_status()
1874 r = core->read(core, WL1273_MOST_MODE_SET, &val); in wl1273_fm_vidioc_log_status()
1885 r = core->read(core, WL1273_MOST_BLEND_SET, &val); in wl1273_fm_vidioc_log_status()
1896 r = core->read(core, WL1273_STEREO_GET, &val); in wl1273_fm_vidioc_log_status()
1906 r = core->read(core, WL1273_RSSI_LVL_GET, &val); in wl1273_fm_vidioc_log_status()
1912 r = core->read(core, WL1273_POWER_SET, &val); in wl1273_fm_vidioc_log_status()
1918 r = core->read(core, WL1273_INT_MASK_SET, &val); in wl1273_fm_vidioc_log_status()
1924 r = core->read(core, WL1273_RDS_SYNC_GET, &val); in wl1273_fm_vidioc_log_status()
1936 r = core->read(core, WL1273_I2S_MODE_CONFIG_SET, &val); in wl1273_fm_vidioc_log_status()
1943 r = core->read(core, WL1273_VOLUME_SET, &val); in wl1273_fm_vidioc_log_status()
1989 struct wl1273_core *core = radio->core; in wl1273_fm_radio_remove() local
1993 free_irq(core->client->irq, radio); in wl1273_fm_radio_remove()
1994 core->pdata->free_resources(); in wl1273_fm_radio_remove()
2005 struct wl1273_core **core = pdev->dev.platform_data; in wl1273_fm_radio_probe() local
2012 if (!core) { in wl1273_fm_radio_probe()
2033 radio->core = *core; in wl1273_fm_radio_probe()
2035 radio->dev = &radio->core->client->dev; in wl1273_fm_radio_probe()
2037 radio->core->mode = WL1273_MODE_OFF; in wl1273_fm_radio_probe()
2039 radio->core->audio_mode = WL1273_AUDIO_ANALOG; in wl1273_fm_radio_probe()
2041 radio->core->i2s_mode = WL1273_I2S_DEF_MODE; in wl1273_fm_radio_probe()
2042 radio->core->channel_number = 2; in wl1273_fm_radio_probe()
2043 radio->core->volume = WL1273_DEFAULT_VOLUME; in wl1273_fm_radio_probe()
2051 if (radio->core->pdata->request_resources) { in wl1273_fm_radio_probe()
2052 r = radio->core->pdata->request_resources(radio->core->client); in wl1273_fm_radio_probe()
2059 dev_dbg(radio->dev, "irq: %d\n", radio->core->client->irq); in wl1273_fm_radio_probe()
2061 r = request_threaded_irq(radio->core->client->irq, NULL, in wl1273_fm_radio_probe()
2148 free_irq(radio->core->client->irq, radio); in wl1273_fm_radio_probe()
2150 radio->core->pdata->free_resources(); in wl1273_fm_radio_probe()