1 /* SPDX-License-Identifier: GPL-2.0-or-later */
3 * Silicon Labs Si2146/2147/2148/2157/2158 silicon tuner driver
5 * Copyright (C) 2014 Antti Palosaari <crope@iki.fi>
11 #include <linux/firmware.h>
12 #include <media/v4l2-mc.h>
24 struct mutex i2c_mutex;
25 struct dvb_frontend *fe;
26 unsigned int active:1;
27 unsigned int inversion:1;
28 unsigned int dont_load_firmware:1;
34 struct delayed_work stat_work;
36 #if defined(CONFIG_MEDIA_CONTROLLER)
37 struct media_device *mdev;
38 struct media_entity ent;
39 struct media_pad pad[SI2157_NUM_PADS];
54 struct si2157_tuner_info {
55 enum si2157_part_id part_id;
58 const char *fw_name, *fw_alt_name;
61 /* firmware command struct */
62 #define SI2157_ARGLEN 30
64 u8 args[SI2157_ARGLEN];
69 #define SUPPORTS_1700KHz(dev) (((dev)->part_id == SI2141) || \
70 ((dev)->part_id == SI2147) || \
71 ((dev)->part_id == SI2157) || \
72 ((dev)->part_id == SI2177))
74 #define SUPPORTS_ATV_IF(dev) (((dev)->part_id == SI2157) || \
75 ((dev)->part_id == SI2158))
77 /* Old firmware namespace */
78 #define SI2158_A20_FIRMWARE "/*(DEBLOBBED)*/"
79 #define SI2141_A10_FIRMWARE "/*(DEBLOBBED)*/"
80 #define SI2157_A30_FIRMWARE "/*(DEBLOBBED)*/"
82 /* New firmware namespace */
83 #define SI2141_60_FIRMWARE "/*(DEBLOBBED)*/"
84 #define SI2141_61_FIRMWARE "/*(DEBLOBBED)*/"
85 #define SI2146_11_FIRMWARE "/*(DEBLOBBED)*/"
86 #define SI2147_50_FIRMWARE "/*(DEBLOBBED)*/"
87 #define SI2148_32_FIRMWARE "/*(DEBLOBBED)*/"
88 #define SI2148_33_FIRMWARE "/*(DEBLOBBED)*/"
89 #define SI2157_50_FIRMWARE "/*(DEBLOBBED)*/"
90 #define SI2158_50_FIRMWARE "/*(DEBLOBBED)*/"
91 #define SI2158_51_FIRMWARE "/*(DEBLOBBED)*/"
92 #define SI2177_50_FIRMWARE "/*(DEBLOBBED)*/"