xref: /linux/drivers/media/dvb-frontends/tda8261_cfg.h (revision 58e16d792a6a8c6b750f637a4649967fcac853dc)
1*74ba9207SThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */
28be969b3SManu Abraham /*
38be969b3SManu Abraham 	TDA8261 8PSK/QPSK tuner driver
48be969b3SManu Abraham 	Copyright (C) Manu Abraham (abraham.manu@gmail.com)
58be969b3SManu Abraham 
68be969b3SManu Abraham */
78be969b3SManu Abraham 
88be969b3SManu Abraham static int tda8261_get_frequency(struct dvb_frontend *fe, u32 *frequency)
98be969b3SManu Abraham {
1020721185SEmil Goode 	struct dvb_frontend_ops	*frontend_ops = &fe->ops;
1120721185SEmil Goode 	struct dvb_tuner_ops	*tuner_ops = &frontend_ops->tuner_ops;
128be969b3SManu Abraham 	int err = 0;
138be969b3SManu Abraham 
14e417668dSMauro Carvalho Chehab 	if (tuner_ops->get_frequency) {
15e417668dSMauro Carvalho Chehab 		err = tuner_ops->get_frequency(fe, frequency);
168f73b481SEmil Goode 		if (err < 0) {
17e417668dSMauro Carvalho Chehab 			pr_err("%s: Invalid parameter\n", __func__);
188be969b3SManu Abraham 			return err;
198be969b3SManu Abraham 		}
20e417668dSMauro Carvalho Chehab 		pr_debug("%s: Frequency=%d\n", __func__, *frequency);
218be969b3SManu Abraham 	}
228be969b3SManu Abraham 	return 0;
238be969b3SManu Abraham }
248be969b3SManu Abraham 
258be969b3SManu Abraham static int tda8261_set_frequency(struct dvb_frontend *fe, u32 frequency)
268be969b3SManu Abraham {
2720721185SEmil Goode 	struct dvb_frontend_ops	*frontend_ops = &fe->ops;
2820721185SEmil Goode 	struct dvb_tuner_ops	*tuner_ops = &frontend_ops->tuner_ops;
29e417668dSMauro Carvalho Chehab 	struct dtv_frontend_properties *c = &fe->dtv_property_cache;
308be969b3SManu Abraham 	int err = 0;
318be969b3SManu Abraham 
32e417668dSMauro Carvalho Chehab 	if (tuner_ops->set_params) {
33e417668dSMauro Carvalho Chehab 		err = tuner_ops->set_params(fe);
348f73b481SEmil Goode 		if (err < 0) {
35e417668dSMauro Carvalho Chehab 			pr_err("%s: Invalid parameter\n", __func__);
368be969b3SManu Abraham 			return err;
378be969b3SManu Abraham 		}
388be969b3SManu Abraham 	}
39e417668dSMauro Carvalho Chehab 	pr_debug("%s: Frequency=%d\n", __func__, c->frequency);
408be969b3SManu Abraham 	return 0;
418be969b3SManu Abraham }
428be969b3SManu Abraham 
438be969b3SManu Abraham static int tda8261_get_bandwidth(struct dvb_frontend *fe, u32 *bandwidth)
448be969b3SManu Abraham {
45e417668dSMauro Carvalho Chehab 	/* FIXME! need to calculate Bandwidth */
46e417668dSMauro Carvalho Chehab 	*bandwidth = 40000000;
478be969b3SManu Abraham 
488be969b3SManu Abraham 	return 0;
498be969b3SManu Abraham }
50