1*c942fddfSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */ 29a0bf528SMauro Carvalho Chehab /* 39a0bf528SMauro Carvalho Chehab * Afatech AF9033 demodulator driver 49a0bf528SMauro Carvalho Chehab * 59a0bf528SMauro Carvalho Chehab * Copyright (C) 2009 Antti Palosaari <crope@iki.fi> 69a0bf528SMauro Carvalho Chehab * Copyright (C) 2012 Antti Palosaari <crope@iki.fi> 79a0bf528SMauro Carvalho Chehab */ 89a0bf528SMauro Carvalho Chehab 99a0bf528SMauro Carvalho Chehab #ifndef AF9033_H 109a0bf528SMauro Carvalho Chehab #define AF9033_H 119a0bf528SMauro Carvalho Chehab 129a0bf528SMauro Carvalho Chehab /* 1381e19912SAntti Palosaari * I2C address: 0x1c, 0x1d, 0x1e, 0x1f 149a0bf528SMauro Carvalho Chehab */ 15a781edd1SAntti Palosaari struct af9033_config { 169a0bf528SMauro Carvalho Chehab /* 179a0bf528SMauro Carvalho Chehab * clock Hz 189a0bf528SMauro Carvalho Chehab * 12000000, 22000000, 24000000, 34000000, 32000000, 28000000, 26000000, 199a0bf528SMauro Carvalho Chehab * 30000000, 36000000, 20480000, 16384000 209a0bf528SMauro Carvalho Chehab */ 219a0bf528SMauro Carvalho Chehab u32 clock; 229a0bf528SMauro Carvalho Chehab 239a0bf528SMauro Carvalho Chehab /* 244902bb39SAntti Palosaari * ADC multiplier 254902bb39SAntti Palosaari */ 264902bb39SAntti Palosaari #define AF9033_ADC_MULTIPLIER_1X 0 274902bb39SAntti Palosaari #define AF9033_ADC_MULTIPLIER_2X 1 284902bb39SAntti Palosaari u8 adc_multiplier; 294902bb39SAntti Palosaari 304902bb39SAntti Palosaari /* 319a0bf528SMauro Carvalho Chehab * tuner 329a0bf528SMauro Carvalho Chehab */ 339a0bf528SMauro Carvalho Chehab #define AF9033_TUNER_TUA9001 0x27 /* Infineon TUA 9001 */ 349a0bf528SMauro Carvalho Chehab #define AF9033_TUNER_FC0011 0x28 /* Fitipower FC0011 */ 35e713ad15SAntti Palosaari #define AF9033_TUNER_FC0012 0x2e /* Fitipower FC0012 */ 369a0bf528SMauro Carvalho Chehab #define AF9033_TUNER_MXL5007T 0xa0 /* MaxLinear MxL5007T */ 379a0bf528SMauro Carvalho Chehab #define AF9033_TUNER_TDA18218 0xa1 /* NXP TDA 18218HN */ 38d67ceb33SOliver Schinagl #define AF9033_TUNER_FC2580 0x32 /* FCI FC2580 */ 394902bb39SAntti Palosaari /* 50-5f Omega */ 404902bb39SAntti Palosaari #define AF9033_TUNER_IT9135_38 0x38 /* Omega */ 414902bb39SAntti Palosaari #define AF9033_TUNER_IT9135_51 0x51 /* Omega LNA config 1 */ 424902bb39SAntti Palosaari #define AF9033_TUNER_IT9135_52 0x52 /* Omega LNA config 2 */ 434902bb39SAntti Palosaari /* 60-6f Omega v2 */ 444902bb39SAntti Palosaari #define AF9033_TUNER_IT9135_60 0x60 /* Omega v2 */ 454902bb39SAntti Palosaari #define AF9033_TUNER_IT9135_61 0x61 /* Omega v2 LNA config 1 */ 464902bb39SAntti Palosaari #define AF9033_TUNER_IT9135_62 0x62 /* Omega v2 LNA config 2 */ 479a0bf528SMauro Carvalho Chehab u8 tuner; 489a0bf528SMauro Carvalho Chehab 499a0bf528SMauro Carvalho Chehab /* 509a0bf528SMauro Carvalho Chehab * TS settings 519a0bf528SMauro Carvalho Chehab */ 529a0bf528SMauro Carvalho Chehab #define AF9033_TS_MODE_USB 0 539a0bf528SMauro Carvalho Chehab #define AF9033_TS_MODE_PARALLEL 1 549a0bf528SMauro Carvalho Chehab #define AF9033_TS_MODE_SERIAL 2 559a0bf528SMauro Carvalho Chehab u8 ts_mode:2; 569a0bf528SMauro Carvalho Chehab 579a0bf528SMauro Carvalho Chehab /* 589a0bf528SMauro Carvalho Chehab * input spectrum inversion 599a0bf528SMauro Carvalho Chehab */ 609a0bf528SMauro Carvalho Chehab bool spec_inv; 61ca681fe0SAntti Palosaari 62ca681fe0SAntti Palosaari /* 63ca681fe0SAntti Palosaari * 64ca681fe0SAntti Palosaari */ 65ca681fe0SAntti Palosaari bool dyn0_clk; 669a0bf528SMauro Carvalho Chehab 67f5b00a76SAntti Palosaari /* 68f5b00a76SAntti Palosaari * PID filter ops 69f5b00a76SAntti Palosaari */ 70f5b00a76SAntti Palosaari struct af9033_ops *ops; 71f5b00a76SAntti Palosaari 72f5b00a76SAntti Palosaari /* 73f5b00a76SAntti Palosaari * frontend 74f5b00a76SAntti Palosaari * returned by that driver 75f5b00a76SAntti Palosaari */ 76f5b00a76SAntti Palosaari struct dvb_frontend **fe; 773461831aSAntti Palosaari 783461831aSAntti Palosaari /* 793461831aSAntti Palosaari * regmap for IT913x integrated tuner driver 803461831aSAntti Palosaari * returned by that driver 813461831aSAntti Palosaari */ 823461831aSAntti Palosaari struct regmap *regmap; 83f5b00a76SAntti Palosaari }; 849a0bf528SMauro Carvalho Chehab 85ed97a6feSMauro Carvalho Chehab struct af9033_ops { 86ed97a6feSMauro Carvalho Chehab int (*pid_filter_ctrl)(struct dvb_frontend *fe, int onoff); 87ed97a6feSMauro Carvalho Chehab int (*pid_filter)(struct dvb_frontend *fe, int index, u16 pid, 88040cf86cSAntti Palosaari int onoff); 89ed97a6feSMauro Carvalho Chehab }; 90ed97a6feSMauro Carvalho Chehab 919a0bf528SMauro Carvalho Chehab #endif /* AF9033_H */ 92