174ba9207SThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */ 29a0bf528SMauro Carvalho Chehab /* 39a0bf528SMauro Carvalho Chehab NXP TDA10048HN DVB OFDM demodulator driver 49a0bf528SMauro Carvalho Chehab 59a0bf528SMauro Carvalho Chehab Copyright (C) 2009 Steven Toth <stoth@kernellabs.com> 69a0bf528SMauro Carvalho Chehab 79a0bf528SMauro Carvalho Chehab 89a0bf528SMauro Carvalho Chehab */ 99a0bf528SMauro Carvalho Chehab 109a0bf528SMauro Carvalho Chehab #ifndef TDA10048_H 119a0bf528SMauro Carvalho Chehab #define TDA10048_H 129a0bf528SMauro Carvalho Chehab 139a0bf528SMauro Carvalho Chehab #include <linux/dvb/frontend.h> 149a0bf528SMauro Carvalho Chehab #include <linux/firmware.h> 159a0bf528SMauro Carvalho Chehab 169a0bf528SMauro Carvalho Chehab struct tda10048_config { 179a0bf528SMauro Carvalho Chehab 189a0bf528SMauro Carvalho Chehab /* the demodulator's i2c address */ 199a0bf528SMauro Carvalho Chehab u8 demod_address; 209a0bf528SMauro Carvalho Chehab 219a0bf528SMauro Carvalho Chehab /* serial/parallel output */ 229a0bf528SMauro Carvalho Chehab #define TDA10048_PARALLEL_OUTPUT 0 239a0bf528SMauro Carvalho Chehab #define TDA10048_SERIAL_OUTPUT 1 249a0bf528SMauro Carvalho Chehab u8 output_mode; 259a0bf528SMauro Carvalho Chehab 269a0bf528SMauro Carvalho Chehab #define TDA10048_BULKWRITE_200 200 279a0bf528SMauro Carvalho Chehab #define TDA10048_BULKWRITE_50 50 289a0bf528SMauro Carvalho Chehab u8 fwbulkwritelen; 299a0bf528SMauro Carvalho Chehab 309a0bf528SMauro Carvalho Chehab /* Spectral Inversion */ 319a0bf528SMauro Carvalho Chehab #define TDA10048_INVERSION_OFF 0 329a0bf528SMauro Carvalho Chehab #define TDA10048_INVERSION_ON 1 339a0bf528SMauro Carvalho Chehab u8 inversion; 349a0bf528SMauro Carvalho Chehab 359a0bf528SMauro Carvalho Chehab #define TDA10048_IF_3300 3300 369a0bf528SMauro Carvalho Chehab #define TDA10048_IF_3500 3500 379a0bf528SMauro Carvalho Chehab #define TDA10048_IF_3800 3800 389a0bf528SMauro Carvalho Chehab #define TDA10048_IF_4000 4000 399a0bf528SMauro Carvalho Chehab #define TDA10048_IF_4300 4300 409a0bf528SMauro Carvalho Chehab #define TDA10048_IF_4500 4500 419a0bf528SMauro Carvalho Chehab #define TDA10048_IF_4750 4750 429a0bf528SMauro Carvalho Chehab #define TDA10048_IF_5000 5000 439a0bf528SMauro Carvalho Chehab #define TDA10048_IF_36130 36130 449a0bf528SMauro Carvalho Chehab u16 dtv6_if_freq_khz; 459a0bf528SMauro Carvalho Chehab u16 dtv7_if_freq_khz; 469a0bf528SMauro Carvalho Chehab u16 dtv8_if_freq_khz; 479a0bf528SMauro Carvalho Chehab 489a0bf528SMauro Carvalho Chehab #define TDA10048_CLK_4000 4000 499a0bf528SMauro Carvalho Chehab #define TDA10048_CLK_16000 16000 509a0bf528SMauro Carvalho Chehab u16 clk_freq_khz; 519a0bf528SMauro Carvalho Chehab 529a0bf528SMauro Carvalho Chehab /* Disable I2C gate access */ 539a0bf528SMauro Carvalho Chehab u8 disable_gate_access; 549a0bf528SMauro Carvalho Chehab 559a0bf528SMauro Carvalho Chehab bool no_firmware; 569a0bf528SMauro Carvalho Chehab 579a0bf528SMauro Carvalho Chehab bool set_pll; 589a0bf528SMauro Carvalho Chehab u8 pll_m; 599a0bf528SMauro Carvalho Chehab u8 pll_p; 609a0bf528SMauro Carvalho Chehab u8 pll_n; 619a0bf528SMauro Carvalho Chehab }; 629a0bf528SMauro Carvalho Chehab 639b174527SArnd Bergmann #if IS_REACHABLE(CONFIG_DVB_TDA10048) 649a0bf528SMauro Carvalho Chehab extern struct dvb_frontend *tda10048_attach( 659a0bf528SMauro Carvalho Chehab const struct tda10048_config *config, 669a0bf528SMauro Carvalho Chehab struct i2c_adapter *i2c); 679a0bf528SMauro Carvalho Chehab #else tda10048_attach(const struct tda10048_config * config,struct i2c_adapter * i2c)689a0bf528SMauro Carvalho Chehabstatic inline struct dvb_frontend *tda10048_attach( 699a0bf528SMauro Carvalho Chehab const struct tda10048_config *config, 709a0bf528SMauro Carvalho Chehab struct i2c_adapter *i2c) 719a0bf528SMauro Carvalho Chehab { 729a0bf528SMauro Carvalho Chehab printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 739a0bf528SMauro Carvalho Chehab return NULL; 749a0bf528SMauro Carvalho Chehab } 759a0bf528SMauro Carvalho Chehab #endif /* CONFIG_DVB_TDA10048 */ 769a0bf528SMauro Carvalho Chehab 779a0bf528SMauro Carvalho Chehab #endif /* TDA10048_H */ 78