1c942fddfSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */ 2ba92ae0fSAntti Palosaari /* 317ad09f1SCrazyCat * Silicon Labs Si2146/2147/2148/2157/2158 silicon tuner driver 4ba92ae0fSAntti Palosaari * 5ba92ae0fSAntti Palosaari * Copyright (C) 2014 Antti Palosaari <crope@iki.fi> 6ba92ae0fSAntti Palosaari */ 7ba92ae0fSAntti Palosaari 8930a8730SAntti Palosaari #ifndef SI2157_PRIV_H 9930a8730SAntti Palosaari #define SI2157_PRIV_H 10930a8730SAntti Palosaari 111b92373fSOlli Salonen #include <linux/firmware.h> 128b0a81c7SMauro Carvalho Chehab #include <media/v4l2-mc.h> 13930a8730SAntti Palosaari #include "si2157.h" 14930a8730SAntti Palosaari 15552b926fSMauro Carvalho Chehab enum si2157_pads { 16552b926fSMauro Carvalho Chehab SI2157_PAD_RF_INPUT, 17552b926fSMauro Carvalho Chehab SI2157_PAD_VID_OUT, 18552b926fSMauro Carvalho Chehab SI2157_PAD_AUD_OUT, 19552b926fSMauro Carvalho Chehab SI2157_NUM_PADS 20552b926fSMauro Carvalho Chehab }; 21552b926fSMauro Carvalho Chehab 22930a8730SAntti Palosaari /* state struct */ 2370f13ff0SAntti Palosaari struct si2157_dev { 24930a8730SAntti Palosaari struct mutex i2c_mutex; 25930a8730SAntti Palosaari struct dvb_frontend *fe; 2657df5373SGon Solo unsigned int active:1; 2757df5373SGon Solo unsigned int inversion:1; 2857df5373SGon Solo unsigned int dont_load_firmware:1; 29073f3849SOlli Salonen u8 chiptype; 30ee3c3e46SOlli Salonen u8 if_port; 31c28aebe1SOlli Salonen u32 if_frequency; 32*7e80a8d1SBrad Love u32 bandwidth; 33*7e80a8d1SBrad Love u32 frequency; 342f1ea29fSAntti Palosaari struct delayed_work stat_work; 358b0a81c7SMauro Carvalho Chehab 368b0a81c7SMauro Carvalho Chehab #if defined(CONFIG_MEDIA_CONTROLLER) 378b0a81c7SMauro Carvalho Chehab struct media_device *mdev; 388b0a81c7SMauro Carvalho Chehab struct media_entity ent; 39552b926fSMauro Carvalho Chehab struct media_pad pad[SI2157_NUM_PADS]; 408b0a81c7SMauro Carvalho Chehab #endif 418b0a81c7SMauro Carvalho Chehab 42930a8730SAntti Palosaari }; 43930a8730SAntti Palosaari 44073f3849SOlli Salonen #define SI2157_CHIPTYPE_SI2157 0 45073f3849SOlli Salonen #define SI2157_CHIPTYPE_SI2146 1 463a2824c7SStefan Brüns #define SI2157_CHIPTYPE_SI2141 2 47d5cb82b0SBrad Love #define SI2157_CHIPTYPE_SI2177 3 48073f3849SOlli Salonen 49073f3849SOlli Salonen /* firmware command struct */ 50930a8730SAntti Palosaari #define SI2157_ARGLEN 30 51930a8730SAntti Palosaari struct si2157_cmd { 52930a8730SAntti Palosaari u8 args[SI2157_ARGLEN]; 53e6b4380fSAntti Palosaari unsigned wlen; 54e6b4380fSAntti Palosaari unsigned rlen; 55930a8730SAntti Palosaari }; 56930a8730SAntti Palosaari 571b92373fSOlli Salonen #define SI2158_A20_FIRMWARE "dvb-tuner-si2158-a20-01.fw" 583a2824c7SStefan Brüns #define SI2141_A10_FIRMWARE "dvb-tuner-si2141-a10-01.fw" 59d5cb82b0SBrad Love #define SI2157_A30_FIRMWARE "dvb-tuner-si2157-a30-01.fw" 60930a8730SAntti Palosaari #endif 61