xref: /openbmc/linux/drivers/media/dvb-frontends/tda8261_cfg.h (revision e417668d402e07a0de40b996005324800e694633)
19a0bf528SMauro Carvalho Chehab /*
29a0bf528SMauro Carvalho Chehab 	TDA8261 8PSK/QPSK tuner driver
39a0bf528SMauro Carvalho Chehab 	Copyright (C) Manu Abraham (abraham.manu@gmail.com)
49a0bf528SMauro Carvalho Chehab 
59a0bf528SMauro Carvalho Chehab 	This program is free software; you can redistribute it and/or modify
69a0bf528SMauro Carvalho Chehab 	it under the terms of the GNU General Public License as published by
79a0bf528SMauro Carvalho Chehab 	the Free Software Foundation; either version 2 of the License, or
89a0bf528SMauro Carvalho Chehab 	(at your option) any later version.
99a0bf528SMauro Carvalho Chehab 
109a0bf528SMauro Carvalho Chehab 	This program is distributed in the hope that it will be useful,
119a0bf528SMauro Carvalho Chehab 	but WITHOUT ANY WARRANTY; without even the implied warranty of
129a0bf528SMauro Carvalho Chehab 	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
139a0bf528SMauro Carvalho Chehab 	GNU General Public License for more details.
149a0bf528SMauro Carvalho Chehab 
159a0bf528SMauro Carvalho Chehab 	You should have received a copy of the GNU General Public License
169a0bf528SMauro Carvalho Chehab 	along with this program; if not, write to the Free Software
179a0bf528SMauro Carvalho Chehab 	Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
189a0bf528SMauro Carvalho Chehab */
199a0bf528SMauro Carvalho Chehab 
209a0bf528SMauro Carvalho Chehab static int tda8261_get_frequency(struct dvb_frontend *fe, u32 *frequency)
219a0bf528SMauro Carvalho Chehab {
2220721185SEmil Goode 	struct dvb_frontend_ops	*frontend_ops = &fe->ops;
2320721185SEmil Goode 	struct dvb_tuner_ops	*tuner_ops = &frontend_ops->tuner_ops;
249a0bf528SMauro Carvalho Chehab 	int err = 0;
259a0bf528SMauro Carvalho Chehab 
26*e417668dSMauro Carvalho Chehab 	if (tuner_ops->get_frequency) {
27*e417668dSMauro Carvalho Chehab 		err = tuner_ops->get_frequency(fe, frequency);
288f73b481SEmil Goode 		if (err < 0) {
29*e417668dSMauro Carvalho Chehab 			pr_err("%s: Invalid parameter\n", __func__);
309a0bf528SMauro Carvalho Chehab 			return err;
319a0bf528SMauro Carvalho Chehab 		}
32*e417668dSMauro Carvalho Chehab 		pr_debug("%s: Frequency=%d\n", __func__, *frequency);
339a0bf528SMauro Carvalho Chehab 	}
349a0bf528SMauro Carvalho Chehab 	return 0;
359a0bf528SMauro Carvalho Chehab }
369a0bf528SMauro Carvalho Chehab 
379a0bf528SMauro Carvalho Chehab static int tda8261_set_frequency(struct dvb_frontend *fe, u32 frequency)
389a0bf528SMauro Carvalho Chehab {
3920721185SEmil Goode 	struct dvb_frontend_ops	*frontend_ops = &fe->ops;
4020721185SEmil Goode 	struct dvb_tuner_ops	*tuner_ops = &frontend_ops->tuner_ops;
41*e417668dSMauro Carvalho Chehab 	struct dtv_frontend_properties *c = &fe->dtv_property_cache;
429a0bf528SMauro Carvalho Chehab 	int err = 0;
439a0bf528SMauro Carvalho Chehab 
44*e417668dSMauro Carvalho Chehab 	if (tuner_ops->set_params) {
45*e417668dSMauro Carvalho Chehab 		err = tuner_ops->set_params(fe);
468f73b481SEmil Goode 		if (err < 0) {
47*e417668dSMauro Carvalho Chehab 			pr_err("%s: Invalid parameter\n", __func__);
489a0bf528SMauro Carvalho Chehab 			return err;
499a0bf528SMauro Carvalho Chehab 		}
509a0bf528SMauro Carvalho Chehab 	}
51*e417668dSMauro Carvalho Chehab 	pr_debug("%s: Frequency=%d\n", __func__, c->frequency);
529a0bf528SMauro Carvalho Chehab 	return 0;
539a0bf528SMauro Carvalho Chehab }
549a0bf528SMauro Carvalho Chehab 
559a0bf528SMauro Carvalho Chehab static int tda8261_get_bandwidth(struct dvb_frontend *fe, u32 *bandwidth)
569a0bf528SMauro Carvalho Chehab {
57*e417668dSMauro Carvalho Chehab 	/* FIXME! need to calculate Bandwidth */
58*e417668dSMauro Carvalho Chehab 	*bandwidth = 40000000;
599a0bf528SMauro Carvalho Chehab 
609a0bf528SMauro Carvalho Chehab 	return 0;
619a0bf528SMauro Carvalho Chehab }
62