Commit d5cb82b0 authored by Brad Love's avatar Brad Love Committed by Mauro Carvalho Chehab

media: si2157: add detection of si2177 tuner

Works in ATSC and QAM as is, DVB is completely untested.

Firmware required.
Signed-off-by: default avatarBrad Love <brad@nextdimension.cc>
Reviewed-by: default avatarSean Young <sean@mess.org>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
parent 513dbd35
...@@ -129,6 +129,7 @@ static int si2157_init(struct dvb_frontend *fe) ...@@ -129,6 +129,7 @@ static int si2157_init(struct dvb_frontend *fe)
chip_id = cmd.args[1] << 24 | cmd.args[2] << 16 | cmd.args[3] << 8 | chip_id = cmd.args[1] << 24 | cmd.args[2] << 16 | cmd.args[3] << 8 |
cmd.args[4] << 0; cmd.args[4] << 0;
#define SI2177_A30 ('A' << 24 | 77 << 16 | '3' << 8 | '0' << 0)
#define SI2158_A20 ('A' << 24 | 58 << 16 | '2' << 8 | '0' << 0) #define SI2158_A20 ('A' << 24 | 58 << 16 | '2' << 8 | '0' << 0)
#define SI2148_A20 ('A' << 24 | 48 << 16 | '2' << 8 | '0' << 0) #define SI2148_A20 ('A' << 24 | 48 << 16 | '2' << 8 | '0' << 0)
#define SI2157_A30 ('A' << 24 | 57 << 16 | '3' << 8 | '0' << 0) #define SI2157_A30 ('A' << 24 | 57 << 16 | '3' << 8 | '0' << 0)
...@@ -144,6 +145,9 @@ static int si2157_init(struct dvb_frontend *fe) ...@@ -144,6 +145,9 @@ static int si2157_init(struct dvb_frontend *fe)
case SI2141_A10: case SI2141_A10:
fw_name = SI2141_A10_FIRMWARE; fw_name = SI2141_A10_FIRMWARE;
break; break;
case SI2177_A30:
fw_name = SI2157_A30_FIRMWARE;
break;
case SI2157_A30: case SI2157_A30:
case SI2147_A30: case SI2147_A30:
case SI2146_A10: case SI2146_A10:
...@@ -520,6 +524,7 @@ static const struct i2c_device_id si2157_id_table[] = { ...@@ -520,6 +524,7 @@ static const struct i2c_device_id si2157_id_table[] = {
{"si2157", SI2157_CHIPTYPE_SI2157}, {"si2157", SI2157_CHIPTYPE_SI2157},
{"si2146", SI2157_CHIPTYPE_SI2146}, {"si2146", SI2157_CHIPTYPE_SI2146},
{"si2141", SI2157_CHIPTYPE_SI2141}, {"si2141", SI2157_CHIPTYPE_SI2141},
{"si2177", SI2157_CHIPTYPE_SI2177},
{} {}
}; };
MODULE_DEVICE_TABLE(i2c, si2157_id_table); MODULE_DEVICE_TABLE(i2c, si2157_id_table);
...@@ -541,3 +546,4 @@ MODULE_AUTHOR("Antti Palosaari <crope@iki.fi>"); ...@@ -541,3 +546,4 @@ MODULE_AUTHOR("Antti Palosaari <crope@iki.fi>");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_FIRMWARE(SI2158_A20_FIRMWARE); MODULE_FIRMWARE(SI2158_A20_FIRMWARE);
MODULE_FIRMWARE(SI2141_A10_FIRMWARE); MODULE_FIRMWARE(SI2141_A10_FIRMWARE);
MODULE_FIRMWARE(SI2157_A30_FIRMWARE);
...@@ -41,6 +41,7 @@ struct si2157_dev { ...@@ -41,6 +41,7 @@ struct si2157_dev {
#define SI2157_CHIPTYPE_SI2157 0 #define SI2157_CHIPTYPE_SI2157 0
#define SI2157_CHIPTYPE_SI2146 1 #define SI2157_CHIPTYPE_SI2146 1
#define SI2157_CHIPTYPE_SI2141 2 #define SI2157_CHIPTYPE_SI2141 2
#define SI2157_CHIPTYPE_SI2177 3
/* firmware command struct */ /* firmware command struct */
#define SI2157_ARGLEN 30 #define SI2157_ARGLEN 30
...@@ -52,5 +53,5 @@ struct si2157_cmd { ...@@ -52,5 +53,5 @@ struct si2157_cmd {
#define SI2158_A20_FIRMWARE "dvb-tuner-si2158-a20-01.fw" #define SI2158_A20_FIRMWARE "dvb-tuner-si2158-a20-01.fw"
#define SI2141_A10_FIRMWARE "dvb-tuner-si2141-a10-01.fw" #define SI2141_A10_FIRMWARE "dvb-tuner-si2141-a10-01.fw"
#define SI2157_A30_FIRMWARE "dvb-tuner-si2157-a30-01.fw"
#endif #endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment