Lines Matching +full:25 +full:- +full:mhz
1 // SPDX-License-Identifier: GPL-2.0-or-later
15 { .addr = priv->cfg->i2c_address, in qt1010_readreg()
17 { .addr = priv->cfg->i2c_address, in qt1010_readreg()
21 if (i2c_transfer(priv->i2c, msg, 2) != 2) { in qt1010_readreg()
22 dev_warn(&priv->i2c->dev, "%s: i2c rd failed reg=%02x\n", in qt1010_readreg()
24 return -EREMOTEIO; in qt1010_readreg()
33 struct i2c_msg msg = { .addr = priv->cfg->i2c_address, in qt1010_writereg()
36 if (i2c_transfer(priv->i2c, &msg, 1) != 1) { in qt1010_writereg()
37 dev_warn(&priv->i2c->dev, "%s: i2c wr failed reg=%02x\n", in qt1010_writereg()
39 return -EREMOTEIO; in qt1010_writereg()
46 struct dtv_frontend_properties *c = &fe->dtv_property_cache; in qt1010_set_params()
77 { QT1010_RD, 0x23, 0xff }, /* 25 c read */ in qt1010_set_params()
102 #define FREQ1 32000000 /* 32 MHz */ in qt1010_set_params()
103 #define FREQ2 4000000 /* 4 MHz Quartz oscillator in the stick? */ in qt1010_set_params()
105 priv = fe->tuner_priv; in qt1010_set_params()
106 freq = c->frequency; in qt1010_set_params()
108 freq = (div * QT1010_STEP) - QT1010_OFFSET; in qt1010_set_params()
111 priv->frequency = freq; in qt1010_set_params()
113 if (fe->ops.i2c_gate_ctrl) in qt1010_set_params()
114 fe->ops.i2c_gate_ctrl(fe, 1); /* open i2c_gate */ in qt1010_set_params()
117 if (freq < 290000000) reg05 = 0x14; /* 290 MHz */ in qt1010_set_params()
118 else if (freq < 610000000) reg05 = 0x34; /* 610 MHz */ in qt1010_set_params()
119 else if (freq < 802000000) reg05 = 0x54; /* 802 MHz */ in qt1010_set_params()
125 /* 07 - set frequency: 32 MHz scale */ in qt1010_set_params()
128 /* 09 - changes every 8/24 MHz */ in qt1010_set_params()
132 /* 0a - set frequency: 4 MHz scale (max 28 MHz) */ in qt1010_set_params()
133 if (mod1 < 1*FREQ2) rd[7].val = 0x09; /* +0 MHz */ in qt1010_set_params()
134 else if (mod1 < 2*FREQ2) rd[7].val = 0x08; /* +4 MHz */ in qt1010_set_params()
135 else if (mod1 < 3*FREQ2) rd[7].val = 0x0f; /* +8 MHz */ in qt1010_set_params()
136 else if (mod1 < 4*FREQ2) rd[7].val = 0x0e; /* +12 MHz */ in qt1010_set_params()
137 else if (mod1 < 5*FREQ2) rd[7].val = 0x0d; /* +16 MHz */ in qt1010_set_params()
138 else if (mod1 < 6*FREQ2) rd[7].val = 0x0c; /* +20 MHz */ in qt1010_set_params()
139 else if (mod1 < 7*FREQ2) rd[7].val = 0x0b; /* +24 MHz */ in qt1010_set_params()
140 else rd[7].val = 0x0a; /* +28 MHz */ in qt1010_set_params()
142 /* 0b - changes every 2/2 MHz */ in qt1010_set_params()
146 /* 1a - set frequency: 125 kHz scale (max 3875 kHz)*/ in qt1010_set_params()
148 rd[10].val = tmpval-((mod2/QT1010_STEP)*0x08); in qt1010_set_params()
157 if (freq < 450000000) rd[15].val = 0xd0; /* 450 MHz */ in qt1010_set_params()
158 else if (freq < 482000000) rd[15].val = 0xd1; /* 482 MHz */ in qt1010_set_params()
159 else if (freq < 514000000) rd[15].val = 0xd4; /* 514 MHz */ in qt1010_set_params()
160 else if (freq < 546000000) rd[15].val = 0xd7; /* 546 MHz */ in qt1010_set_params()
161 else if (freq < 610000000) rd[15].val = 0xda; /* 610 MHz */ in qt1010_set_params()
174 rd[40].val = (priv->reg1f_init_val + 0x0e + tmpval); in qt1010_set_params()
183 rd[41].val = (priv->reg20_init_val + 0x0d + tmpval); in qt1010_set_params()
185 /* 25 */ in qt1010_set_params()
186 rd[43].val = priv->reg25_init_val; in qt1010_set_params()
191 dev_dbg(&priv->i2c->dev, in qt1010_set_params()
194 "20:%02x 25:%02x 00:%02x\n", __func__, \ in qt1010_set_params()
209 if (fe->ops.i2c_gate_ctrl) in qt1010_set_params()
210 fe->ops.i2c_gate_ctrl(fe, 0); /* close i2c_gate */ in qt1010_set_params()
243 dev_dbg(&priv->i2c->dev, "%s: compare reg:%02x %02x %02x\n", in qt1010_init_meas1()
282 struct qt1010_priv *priv = fe->tuner_priv; in qt1010_init()
283 struct dtv_frontend_properties *c = &fe->dtv_property_cache; in qt1010_init()
293 { QT1010_M1, 0x25, 0x40 }, /* get reg 25 init value */ in qt1010_init()
294 { QT1010_M1, 0x81, 0xff }, /* get reg 25 init value */ in qt1010_init()
324 if (fe->ops.i2c_gate_ctrl) in qt1010_init()
325 fe->ops.i2c_gate_ctrl(fe, 1); /* open i2c_gate */ in qt1010_init()
335 valptr = &priv->reg20_init_val; in qt1010_init()
342 valptr = &priv->reg25_init_val; in qt1010_init()
344 valptr = &priv->reg1f_init_val; in qt1010_init()
348 if (i >= ARRAY_SIZE(i2c_data) - 1) in qt1010_init()
349 err = -EIO; in qt1010_init()
361 for (i = 0x31; i < 0x3a; i++) /* 0x31 - 0x39 */ in qt1010_init()
365 if (!c->frequency) in qt1010_init()
366 c->frequency = 545000000; /* Sigmatek DVB-110 545000000 */ in qt1010_init()
373 kfree(fe->tuner_priv); in qt1010_release()
374 fe->tuner_priv = NULL; in qt1010_release()
379 struct qt1010_priv *priv = fe->tuner_priv; in qt1010_get_frequency()
380 *frequency = priv->frequency; in qt1010_get_frequency()
418 priv->cfg = cfg; in qt1010_attach()
419 priv->i2c = i2c; in qt1010_attach()
421 if (fe->ops.i2c_gate_ctrl) in qt1010_attach()
422 fe->ops.i2c_gate_ctrl(fe, 1); /* open i2c_gate */ in qt1010_attach()
431 if (fe->ops.i2c_gate_ctrl) in qt1010_attach()
432 fe->ops.i2c_gate_ctrl(fe, 0); /* close i2c_gate */ in qt1010_attach()
434 dev_info(&priv->i2c->dev, in qt1010_attach()
438 memcpy(&fe->ops.tuner_ops, &qt1010_tuner_ops, in qt1010_attach()
441 fe->tuner_priv = priv; in qt1010_attach()