Lines Matching refs:priv

39 static int atbm8830_write_reg(struct atbm_state *priv, u16 reg, u8 data)  in atbm8830_write_reg()  argument
48 dev_addr = priv->config->demod_address; in atbm8830_write_reg()
55 ret = i2c_transfer(priv->i2c, &msg1, 1); in atbm8830_write_reg()
59 ret = i2c_transfer(priv->i2c, &msg2, 1); in atbm8830_write_reg()
63 static int atbm8830_read_reg(struct atbm_state *priv, u16 reg, u8 *p_data) in atbm8830_read_reg() argument
73 dev_addr = priv->config->demod_address; in atbm8830_read_reg()
77 ret = i2c_transfer(priv->i2c, &msg1, 1); in atbm8830_read_reg()
83 ret = i2c_transfer(priv->i2c, &msg2, 1); in atbm8830_read_reg()
96 static inline int atbm8830_reglatch_lock(struct atbm_state *priv, int lock) in atbm8830_reglatch_lock() argument
98 return atbm8830_write_reg(priv, REG_READ_LATCH, lock ? 1 : 0); in atbm8830_reglatch_lock()
101 static int set_osc_freq(struct atbm_state *priv, u32 freq /*in kHz*/) in set_osc_freq() argument
111 atbm8830_write_reg(priv, REG_OSC_CLK, val); in set_osc_freq()
112 atbm8830_write_reg(priv, REG_OSC_CLK + 1, val >> 8); in set_osc_freq()
113 atbm8830_write_reg(priv, REG_OSC_CLK + 2, val >> 16); in set_osc_freq()
118 static int set_if_freq(struct atbm_state *priv, u32 freq /*in kHz*/) in set_if_freq() argument
121 u32 fs = priv->config->osc_clk_freq; in set_if_freq()
134 atbm8830_write_reg(priv, REG_TUNER_BASEBAND, 1); in set_if_freq()
135 atbm8830_write_reg(priv, REG_IF_FREQ, val); in set_if_freq()
136 atbm8830_write_reg(priv, REG_IF_FREQ+1, val >> 8); in set_if_freq()
137 atbm8830_write_reg(priv, REG_IF_FREQ+2, val >> 16); in set_if_freq()
139 atbm8830_read_reg(priv, REG_ADC_CONFIG, &dat); in set_if_freq()
141 atbm8830_write_reg(priv, REG_ADC_CONFIG, dat); in set_if_freq()
144 atbm8830_write_reg(priv, REG_TUNER_BASEBAND, 0); in set_if_freq()
146 atbm8830_read_reg(priv, REG_ADC_CONFIG, &dat); in set_if_freq()
149 atbm8830_write_reg(priv, REG_ADC_CONFIG, dat); in set_if_freq()
151 if (priv->config->zif_swap_iq) in set_if_freq()
152 atbm8830_write_reg(priv, REG_SWAP_I_Q, 0x03); in set_if_freq()
154 atbm8830_write_reg(priv, REG_SWAP_I_Q, 0x01); in set_if_freq()
160 static int is_locked(struct atbm_state *priv, u8 *locked) in is_locked() argument
164 atbm8830_read_reg(priv, REG_LOCK_STATUS, &status); in is_locked()
171 static int set_agc_config(struct atbm_state *priv, in set_agc_config() argument
178 atbm8830_write_reg(priv, REG_AGC_MIN, min); in set_agc_config()
179 atbm8830_write_reg(priv, REG_AGC_MAX, max); in set_agc_config()
180 atbm8830_write_reg(priv, REG_AGC_HOLD_LOOP, hold_loop); in set_agc_config()
185 static int set_static_channel_mode(struct atbm_state *priv) in set_static_channel_mode() argument
190 atbm8830_write_reg(priv, 0x099B + i, 0x08); in set_static_channel_mode()
192 atbm8830_write_reg(priv, 0x095B, 0x7F); in set_static_channel_mode()
193 atbm8830_write_reg(priv, 0x09CB, 0x01); in set_static_channel_mode()
194 atbm8830_write_reg(priv, 0x09CC, 0x7F); in set_static_channel_mode()
195 atbm8830_write_reg(priv, 0x09CD, 0x7F); in set_static_channel_mode()
196 atbm8830_write_reg(priv, 0x0E01, 0x20); in set_static_channel_mode()
199 atbm8830_write_reg(priv, 0x0B03, 0x0A); in set_static_channel_mode()
200 atbm8830_write_reg(priv, 0x0935, 0x10); in set_static_channel_mode()
201 atbm8830_write_reg(priv, 0x0936, 0x08); in set_static_channel_mode()
202 atbm8830_write_reg(priv, 0x093E, 0x08); in set_static_channel_mode()
203 atbm8830_write_reg(priv, 0x096E, 0x06); in set_static_channel_mode()
206 atbm8830_write_reg(priv, 0x0B09, 0x00); in set_static_channel_mode()
208 atbm8830_write_reg(priv, 0x0B0A, 0x08); in set_static_channel_mode()
213 static int set_ts_config(struct atbm_state *priv) in set_ts_config() argument
215 const struct atbm8830_config *cfg = priv->config; in set_ts_config()
218 atbm8830_write_reg(priv, REG_TS_SERIAL, cfg->serial_ts ? 1 : 0); in set_ts_config()
219 atbm8830_write_reg(priv, REG_TS_CLK_MODE, cfg->serial_ts ? 1 : 0); in set_ts_config()
221 atbm8830_write_reg(priv, REG_TS_SAMPLE_EDGE, in set_ts_config()
224 atbm8830_write_reg(priv, REG_TS_CLK_FREERUN, in set_ts_config()
232 struct atbm_state *priv = fe->demodulator_priv; in atbm8830_init() local
233 const struct atbm8830_config *cfg = priv->config; in atbm8830_init()
236 set_osc_freq(priv, cfg->osc_clk_freq); in atbm8830_init()
239 set_if_freq(priv, cfg->if_freq); in atbm8830_init()
242 set_agc_config(priv, cfg->agc_min, cfg->agc_max, in atbm8830_init()
246 set_static_channel_mode(priv); in atbm8830_init()
248 set_ts_config(priv); in atbm8830_init()
250 atbm8830_write_reg(priv, 0x000A, 0); in atbm8830_init()
253 atbm8830_write_reg(priv, 0x020C, 11); in atbm8830_init()
256 atbm8830_write_reg(priv, REG_DEMOD_RUN, 1); in atbm8830_init()
272 struct atbm_state *priv = fe->demodulator_priv; in atbm8830_set_fe() local
290 is_locked(priv, &locked); in atbm8830_set_fe()
341 struct atbm_state *priv = fe->demodulator_priv; in atbm8830_read_status() local
348 is_locked(priv, &locked); in atbm8830_read_status()
355 atbm8830_read_reg(priv, REG_AGC_LOCK, &agc_locked); in atbm8830_read_status()
363 struct atbm_state *priv = fe->demodulator_priv; in atbm8830_read_ber() local
369 atbm8830_reglatch_lock(priv, 1); in atbm8830_read_ber()
371 atbm8830_read_reg(priv, REG_FRAME_ERR_CNT + 1, &t); in atbm8830_read_ber()
374 atbm8830_read_reg(priv, REG_FRAME_ERR_CNT, &t); in atbm8830_read_ber()
377 atbm8830_reglatch_lock(priv, 0); in atbm8830_read_ber()
387 struct atbm_state *priv = fe->demodulator_priv; in atbm8830_read_signal_strength() local
392 atbm8830_reglatch_lock(priv, 1); in atbm8830_read_signal_strength()
394 atbm8830_read_reg(priv, REG_AGC_PWM_VAL + 1, &t); in atbm8830_read_signal_strength()
397 atbm8830_read_reg(priv, REG_AGC_PWM_VAL, &t); in atbm8830_read_signal_strength()
400 atbm8830_reglatch_lock(priv, 0); in atbm8830_read_signal_strength()
426 struct atbm_state *priv = fe->demodulator_priv; in atbm8830_i2c_gate_ctrl() local
428 return atbm8830_write_reg(priv, REG_I2C_GATE, enable ? 1 : 0); in atbm8830_i2c_gate_ctrl()
466 struct atbm_state *priv = NULL; in atbm8830_attach() local
474 priv = kzalloc(sizeof(struct atbm_state), GFP_KERNEL); in atbm8830_attach()
475 if (priv == NULL) in atbm8830_attach()
478 priv->config = config; in atbm8830_attach()
479 priv->i2c = i2c; in atbm8830_attach()
482 if (atbm8830_read_reg(priv, REG_CHIP_ID, &data) != 0) { in atbm8830_attach()
484 __func__, priv->config->demod_address); in atbm8830_attach()
489 memcpy(&priv->frontend.ops, &atbm8830_ops, in atbm8830_attach()
491 priv->frontend.demodulator_priv = priv; in atbm8830_attach()
493 atbm8830_init(&priv->frontend); in atbm8830_attach()
495 atbm8830_i2c_gate_ctrl(&priv->frontend, 1); in atbm8830_attach()
497 return &priv->frontend; in atbm8830_attach()
501 kfree(priv); in atbm8830_attach()