summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad Love <brad@nextdimension.cc>2018-12-20 12:09:31 -0500
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>2019-06-13 14:26:59 -0400
commitd5cb82b01a5ae6cf9a36a24be02ef28b84df28cc (patch)
treee30be3fe6ee341dd16d0f85b454ab94b006b3fc0
parent513dbd35b5d93c45fa7291147f21fc0227a9f999 (diff)
media: si2157: add detection of si2177 tuner
Works in ATSC and QAM as is, DVB is completely untested. Firmware required. Signed-off-by: Brad Love <brad@nextdimension.cc> Reviewed-by: Sean Young <sean@mess.org> Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
-rw-r--r--drivers/media/tuners/si2157.c6
-rw-r--r--drivers/media/tuners/si2157_priv.h3
2 files changed, 8 insertions, 1 deletions
diff --git a/drivers/media/tuners/si2157.c b/drivers/media/tuners/si2157.c
index 7be893def190..e87040d6eca7 100644
--- a/drivers/media/tuners/si2157.c
+++ b/drivers/media/tuners/si2157.c
@@ -129,6 +129,7 @@ static int si2157_init(struct dvb_frontend *fe)
129 chip_id = cmd.args[1] << 24 | cmd.args[2] << 16 | cmd.args[3] << 8 | 129 chip_id = cmd.args[1] << 24 | cmd.args[2] << 16 | cmd.args[3] << 8 |
130 cmd.args[4] << 0; 130 cmd.args[4] << 0;
131 131
132 #define SI2177_A30 ('A' << 24 | 77 << 16 | '3' << 8 | '0' << 0)
132 #define SI2158_A20 ('A' << 24 | 58 << 16 | '2' << 8 | '0' << 0) 133 #define SI2158_A20 ('A' << 24 | 58 << 16 | '2' << 8 | '0' << 0)
133 #define SI2148_A20 ('A' << 24 | 48 << 16 | '2' << 8 | '0' << 0) 134 #define SI2148_A20 ('A' << 24 | 48 << 16 | '2' << 8 | '0' << 0)
134 #define SI2157_A30 ('A' << 24 | 57 << 16 | '3' << 8 | '0' << 0) 135 #define SI2157_A30 ('A' << 24 | 57 << 16 | '3' << 8 | '0' << 0)
@@ -144,6 +145,9 @@ static int si2157_init(struct dvb_frontend *fe)
144 case SI2141_A10: 145 case SI2141_A10:
145 fw_name = SI2141_A10_FIRMWARE; 146 fw_name = SI2141_A10_FIRMWARE;
146 break; 147 break;
148 case SI2177_A30:
149 fw_name = SI2157_A30_FIRMWARE;
150 break;
147 case SI2157_A30: 151 case SI2157_A30:
148 case SI2147_A30: 152 case SI2147_A30:
149 case SI2146_A10: 153 case SI2146_A10:
@@ -520,6 +524,7 @@ static const struct i2c_device_id si2157_id_table[] = {
520 {"si2157", SI2157_CHIPTYPE_SI2157}, 524 {"si2157", SI2157_CHIPTYPE_SI2157},
521 {"si2146", SI2157_CHIPTYPE_SI2146}, 525 {"si2146", SI2157_CHIPTYPE_SI2146},
522 {"si2141", SI2157_CHIPTYPE_SI2141}, 526 {"si2141", SI2157_CHIPTYPE_SI2141},
527 {"si2177", SI2157_CHIPTYPE_SI2177},
523 {} 528 {}
524}; 529};
525MODULE_DEVICE_TABLE(i2c, si2157_id_table); 530MODULE_DEVICE_TABLE(i2c, si2157_id_table);
@@ -541,3 +546,4 @@ MODULE_AUTHOR("Antti Palosaari <crope@iki.fi>");
541MODULE_LICENSE("GPL"); 546MODULE_LICENSE("GPL");
542MODULE_FIRMWARE(SI2158_A20_FIRMWARE); 547MODULE_FIRMWARE(SI2158_A20_FIRMWARE);
543MODULE_FIRMWARE(SI2141_A10_FIRMWARE); 548MODULE_FIRMWARE(SI2141_A10_FIRMWARE);
549MODULE_FIRMWARE(SI2157_A30_FIRMWARE);
diff --git a/drivers/media/tuners/si2157_priv.h b/drivers/media/tuners/si2157_priv.h
index 7d16934c7708..2bda903358da 100644
--- a/drivers/media/tuners/si2157_priv.h
+++ b/drivers/media/tuners/si2157_priv.h
@@ -41,6 +41,7 @@ struct si2157_dev {
41#define SI2157_CHIPTYPE_SI2157 0 41#define SI2157_CHIPTYPE_SI2157 0
42#define SI2157_CHIPTYPE_SI2146 1 42#define SI2157_CHIPTYPE_SI2146 1
43#define SI2157_CHIPTYPE_SI2141 2 43#define SI2157_CHIPTYPE_SI2141 2
44#define SI2157_CHIPTYPE_SI2177 3
44 45
45/* firmware command struct */ 46/* firmware command struct */
46#define SI2157_ARGLEN 30 47#define SI2157_ARGLEN 30
@@ -52,5 +53,5 @@ struct si2157_cmd {
52 53
53#define SI2158_A20_FIRMWARE "dvb-tuner-si2158-a20-01.fw" 54#define SI2158_A20_FIRMWARE "dvb-tuner-si2158-a20-01.fw"
54#define SI2141_A10_FIRMWARE "dvb-tuner-si2141-a10-01.fw" 55#define SI2141_A10_FIRMWARE "dvb-tuner-si2141-a10-01.fw"
55 56#define SI2157_A30_FIRMWARE "dvb-tuner-si2157-a30-01.fw"
56#endif 57#endif