18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * horus3a.h 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Sony Horus3A DVB-S/S2 tuner driver 68c2ecf20Sopenharmony_ci * 78c2ecf20Sopenharmony_ci * Copyright 2012 Sony Corporation 88c2ecf20Sopenharmony_ci * Copyright (C) 2014 NetUP Inc. 98c2ecf20Sopenharmony_ci * Copyright (C) 2014 Sergey Kozlov <serjk@netup.ru> 108c2ecf20Sopenharmony_ci * Copyright (C) 2014 Abylay Ospan <aospan@netup.ru> 118c2ecf20Sopenharmony_ci */ 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_ci#ifndef __DVB_HORUS3A_H__ 148c2ecf20Sopenharmony_ci#define __DVB_HORUS3A_H__ 158c2ecf20Sopenharmony_ci 168c2ecf20Sopenharmony_ci#include <linux/dvb/frontend.h> 178c2ecf20Sopenharmony_ci#include <linux/i2c.h> 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_ci/** 208c2ecf20Sopenharmony_ci * struct horus3a_config - the configuration of Horus3A tuner driver 218c2ecf20Sopenharmony_ci * @i2c_address: I2C address of the tuner 228c2ecf20Sopenharmony_ci * @xtal_freq_mhz: Oscillator frequency, MHz 238c2ecf20Sopenharmony_ci * @set_tuner_priv: Callback function private context 248c2ecf20Sopenharmony_ci * @set_tuner_callback: Callback function that notifies the parent driver 258c2ecf20Sopenharmony_ci * which tuner is active now 268c2ecf20Sopenharmony_ci */ 278c2ecf20Sopenharmony_cistruct horus3a_config { 288c2ecf20Sopenharmony_ci u8 i2c_address; 298c2ecf20Sopenharmony_ci u8 xtal_freq_mhz; 308c2ecf20Sopenharmony_ci void *set_tuner_priv; 318c2ecf20Sopenharmony_ci int (*set_tuner_callback)(void *, int); 328c2ecf20Sopenharmony_ci}; 338c2ecf20Sopenharmony_ci 348c2ecf20Sopenharmony_ci#if IS_REACHABLE(CONFIG_DVB_HORUS3A) 358c2ecf20Sopenharmony_ci/** 368c2ecf20Sopenharmony_ci * Attach a horus3a tuner 378c2ecf20Sopenharmony_ci * 388c2ecf20Sopenharmony_ci * @fe: frontend to be attached 398c2ecf20Sopenharmony_ci * @config: pointer to &struct helene_config with tuner configuration. 408c2ecf20Sopenharmony_ci * @i2c: i2c adapter to use. 418c2ecf20Sopenharmony_ci * 428c2ecf20Sopenharmony_ci * return: FE pointer on success, NULL on failure. 438c2ecf20Sopenharmony_ci */ 448c2ecf20Sopenharmony_ciextern struct dvb_frontend *horus3a_attach(struct dvb_frontend *fe, 458c2ecf20Sopenharmony_ci const struct horus3a_config *config, 468c2ecf20Sopenharmony_ci struct i2c_adapter *i2c); 478c2ecf20Sopenharmony_ci#else 488c2ecf20Sopenharmony_cistatic inline struct dvb_frontend *horus3a_attach(struct dvb_frontend *fe, 498c2ecf20Sopenharmony_ci const struct horus3a_config *config, 508c2ecf20Sopenharmony_ci struct i2c_adapter *i2c) 518c2ecf20Sopenharmony_ci{ 528c2ecf20Sopenharmony_ci printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 538c2ecf20Sopenharmony_ci return NULL; 548c2ecf20Sopenharmony_ci} 558c2ecf20Sopenharmony_ci#endif 568c2ecf20Sopenharmony_ci 578c2ecf20Sopenharmony_ci#endif 58