104 #define E4K_MASTER1_RESET (1 << 0) 105 #define E4K_MASTER1_NORM_STBY (1 << 1) 106 #define E4K_MASTER1_POR_DET (1 << 2) 108 #define E4K_SYNTH1_PLL_LOCK (1 << 0) 109 #define E4K_SYNTH1_BAND_SHIF 1 111 #define E4K_SYNTH7_3PHASE_EN (1 << 3) 113 #define E4K_SYNTH8_VCOCAL_UPD (1 << 2) 115 #define E4K_FILT3_DISABLE (1 << 5) 117 #define E4K_AGC1_LIN_MODE (1 << 4) 118 #define E4K_AGC1_LNA_UPDATE (1 << 5) 119 #define E4K_AGC1_LNA_G_LOW (1 << 6) 120 #define E4K_AGC1_LNA_G_HIGH (1 << 7) 122 #define E4K_AGC6_LNA_CAL_REQ (1 << 4) 124 #define E4K_AGC7_MIX_GAIN_AUTO (1 << 0) 125 #define E4K_AGC7_GAIN_STEP_5dB (1 << 5) 127 #define E4K_AGC8_SENS_LIN_AUTO (1 << 0) 129 #define E4K_AGC11_LNA_GAIN_ENH (1 << 0) 131 #define E4K_DC1_CAL_REQ (1 << 0) 133 #define E4K_DC5_I_LUT_EN (1 << 0) 134 #define E4K_DC5_Q_LUT_EN (1 << 1) 135 #define E4K_DC5_RANGE_DET_EN (1 << 2) 136 #define E4K_DC5_RANGE_EN (1 << 3) 137 #define E4K_DC5_TIMEVAR_EN (1 << 4) 139 #define E4K_CLKOUT_DISABLE 0x96 141 #define E4K_CHFCALIB_CMD (1 << 0) 143 #define E4K_AGC1_MOD_MASK 0xF 228 const char *cmd,
int argc,
char **argv,
233 int e4k_init(
struct e4k_state *e4k,
bool enable_dc_offset_loop =
true,
bool set_manual_gain =
false);
268 inline virtual const char*
name()
const 269 {
return "Elonics E4K"; }
279 int update_gain_mode();
288 #define RTL2832_E4000_ADDITIONAL_INIT_REG_TABLE_LEN 34 290 #define RTL2832_E4000_LNA_GAIN_TABLE_LEN 16 291 #define RTL2832_E4000_LNA_GAIN_ADD_TABLE_LEN 8 292 #define RTL2832_E4000_MIXER_GAIN_TABLE_LEN 2 293 #define RTL2832_E4000_IF_STAGE_1_GAIN_TABLE_LEN 2 294 #define RTL2832_E4000_IF_STAGE_2_GAIN_TABLE_LEN 4 295 #define RTL2832_E4000_IF_STAGE_3_GAIN_TABLE_LEN 4 296 #define RTL2832_E4000_IF_STAGE_4_GAIN_TABLE_LEN 4 297 #define RTL2832_E4000_IF_STAGE_5_GAIN_TABLE_LEN 8 298 #define RTL2832_E4000_IF_STAGE_6_GAIN_TABLE_LEN 8 300 #define RTL2832_E4000_LNA_GAIN_BAND_NUM 2 301 #define RTL2832_E4000_MIXER_GAIN_BAND_NUM 2 303 #define RTL2832_E4000_RF_BAND_BOUNDARY_HZ 300000000 305 #define RTL2832_E4000_LNA_GAIN_ADDR 0x14 306 #define RTL2832_E4000_LNA_GAIN_MASK 0xf 307 #define RTL2832_E4000_LNA_GAIN_SHIFT 0 309 #define RTL2832_E4000_LNA_GAIN_ADD_ADDR 0x24 310 #define RTL2832_E4000_LNA_GAIN_ADD_MASK 0x7 311 #define RTL2832_E4000_LNA_GAIN_ADD_SHIFT 0 313 #define RTL2832_E4000_MIXER_GAIN_ADDR 0x15 314 #define RTL2832_E4000_MIXER_GAIN_MASK 0x1 315 #define RTL2832_E4000_MIXER_GAIN_SHIFT 0 317 #define RTL2832_E4000_IF_STAGE_1_GAIN_ADDR 0x16 318 #define RTL2832_E4000_IF_STAGE_1_GAIN_MASK 0x1 319 #define RTL2832_E4000_IF_STAGE_1_GAIN_SHIFT 0 321 #define RTL2832_E4000_IF_STAGE_2_GAIN_ADDR 0x16 322 #define RTL2832_E4000_IF_STAGE_2_GAIN_MASK 0x6 323 #define RTL2832_E4000_IF_STAGE_2_GAIN_SHIFT 1 325 #define RTL2832_E4000_IF_STAGE_3_GAIN_ADDR 0x16 326 #define RTL2832_E4000_IF_STAGE_3_GAIN_MASK 0x18 327 #define RTL2832_E4000_IF_STAGE_3_GAIN_SHIFT 3 329 #define RTL2832_E4000_IF_STAGE_4_GAIN_ADDR 0x16 330 #define RTL2832_E4000_IF_STAGE_4_GAIN_MASK 0x60 331 #define RTL2832_E4000_IF_STAGE_4_GAIN_SHIFT 5 333 #define RTL2832_E4000_IF_STAGE_5_GAIN_ADDR 0x17 334 #define RTL2832_E4000_IF_STAGE_5_GAIN_MASK 0x7 335 #define RTL2832_E4000_IF_STAGE_5_GAIN_SHIFT 0 337 #define RTL2832_E4000_IF_STAGE_6_GAIN_ADDR 0x17 338 #define RTL2832_E4000_IF_STAGE_6_GAIN_MASK 0x38 339 #define RTL2832_E4000_IF_STAGE_6_GAIN_SHIFT 3 341 #define RTL2832_E4000_TUNER_OUTPUT_POWER_UNIT_0P1_DBM -100 343 #define RTL2832_E4000_TUNER_MODE_UPDATE_WAIT_TIME_MS 1000 int e4k_if_gain_set(struct e4k_state *e4k, uint8_t stage, int8_t value)
Definition: rtl2832-tuner_e4k.h:91
uint8_t z
Definition: rtl2832-tuner_e4k.h:188
Definition: rtl2832-tuner_e4k.h:162
Definition: rtl2832-tuner_e4k.h:97
Definition: rtl2832-tuner_e4k.h:148
Definition: rtl2832-tuner_e4k.h:43
int e4k_if_filter_bw_set(struct e4k_state *e4k, enum e4k_if_filter filter, uint32_t bandwidth)
uint32_t fosc
Definition: rtl2832-tuner_e4k.h:184
Definition: rtl2832-tuner_e4k.h:100
Definition: rtl2832-tuner_e4k.h:48
Definition: rtl2832-tuner_e4k.h:175
Definition: rtl2832-tuner_e4k.h:67
Definition: rtl2832-tuner_e4k.h:89
e4k_reg
Definition: rtl2832-tuner_e4k.h:32
uint16_t x
Definition: rtl2832-tuner_e4k.h:187
Definition: rtl2832-tuner_e4k.h:222
int e4k_tune_params(struct e4k_state *e4k, struct e4k_pll_params *p)
Definition: rtl2832-tuner_e4k.h:35
Definition: rtl2832-tuner_e4k.h:34
e4k_agc_mode
Definition: rtl2832-tuner_e4k.h:145
bool calc_appropriate_gain_mode(int &mode)
Definition: rtl2832-tuner_e4k.h:147
const tuner::PARAMS & params() const
Definition: rtl2832.h:253
Definition: rtl2832-tuner_e4k.h:42
int e4k_tune_freq(struct e4k_state *e4k, uint32_t freq)
int e4k_if_filter_chan_enable(struct e4k_state *e4k, int on)
Definition: rtl2832-tuner_e4k.h:79
Definition: rtl2832-tuner_e4k.h:99
Definition: rtl2832-tuner_e4k.h:37
Definition: rtl2832-tuner_e4k.h:155
Definition: rtl2832.h:144
Definition: rtl2832-tuner_e4k.h:70
Definition: rtl2832-tuner_e4k.h:82
int e4k_mixer_gain_set(struct e4k_state *e4k, int8_t value)
Definition: rtl2832-tuner_e4k.h:38
Definition: rtl2832-tuner_e4k.h:58
Definition: rtl2832-tuner_e4k.h:53
uint8_t r
Definition: rtl2832-tuner_e4k.h:189
Definition: rtl2832-tuner_e4k.h:90
Definition: rtl2832-tuner_e4k.h:39
int sam3u_e4k_init(struct e4k_state *e4k, void *i2c, uint8_t slave_addr)
Definition: rtl2832-tuner_e4k.h:167
Definition: rtl2832-tuner_e4k.h:85
int e4k_dc_offset_gen_table(struct e4k_state *e4k)
Definition: rtl2832-tuner_e4k.h:33
cmd_op
Definition: rtl2832-tuner_e4k.h:219
#define IMPLEMENT_INLINE_TUNER_FACTORY(class_name)
Definition: rtl2832.h:77
int e4k_if_filter_bw_get(struct e4k_state *e4k, enum e4k_if_filter filter)
uint32_t num_fields
Definition: rtl2832-tuner_e4k.h:213
Definition: rtl2832-tuner_e4k.h:171
uint32_t flo
Definition: rtl2832-tuner_e4k.h:186
Definition: rtl2832-tuner_e4k.h:220
Definition: rtl2832-tuner_e4k.h:86
struct e4k_pll_params vco
Definition: rtl2832-tuner_e4k.h:198
Definition: rtl2832-tuner_e4k.h:160
Definition: rtl2832-tuner_e4k.h:64
Definition: rtl2832-tuner_e4k.h:156
Definition: rtl2832-tuner_e4k.h:152
int initialise(tuner::PPARAMS params=NULL)
e4k_mixer_filter_bw
Definition: rtl2832-tuner_e4k.h:166
int e4k_commonmode_set(struct e4k_state *e4k, int8_t value)
uint32_t(* read_cb)(void *data, uint32_t reg)
Definition: rtl2832-tuner_e4k.h:216
Definition: rtl2832-tuner_e4k.h:60
Definition: rtl2832.h:309
void sam3u_e4k_power(struct e4k_state *e4k, int on)
Definition: rtl2832-tuner_e4k.h:47
Definition: rtl2832.h:186
Definition: rtl2832-tuner_e4k.h:204
Definition: rtl2832-tuner_e4k.h:50
Definition: rtl2832-tuner_e4k.h:56
Definition: rtl2832-tuner_e4k.h:98
Definition: rtl2832-tuner_e4k.h:71
int e4k_dc_offset_calibrate(struct e4k_state *e4k)
enum e4k_band band
Definition: rtl2832-tuner_e4k.h:197
Definition: rtl2832-tuner_e4k.h:194
Definition: rtl2832-tuner_e4k.h:168
const struct reg_field * fields
Definition: rtl2832-tuner_e4k.h:211
Definition: rtl2832-tuner_e4k.h:87
Definition: rtl2832-tuner_e4k.h:92
Definition: rtl2832-tuner_e4k.h:149
Definition: rtl2832-tuner_e4k.h:221
Definition: rtl2832-tuner_e4k.h:174
#define TUNERS_NAMESPACE
Definition: rtl2832.h:66
Definition: rtl2832-tuner_e4k.h:51
int e4k_rf_filter_set(struct e4k_state *e4k)
Definition: rtl2832-tuner_e4k.h:151
void * data
Definition: rtl2832-tuner_e4k.h:214
Definition: rtl2832-tuner_e4k.h:41
Definition: rtl2832-tuner_e4k.h:61
Definition: rtl2832-tuner_e4k.h:68
Definition: rtl2832-tuner_e4k.h:96
uint8_t threephase
Definition: rtl2832-tuner_e4k.h:191
int e4k_compute_pll_params(struct e4k_pll_params *oscp, uint32_t fosc, uint32_t intended_flo)
void sam3u_e4k_stby(struct e4k_state *e4k, int on)
Definition: rtl2832-tuner_e4k.h:94
Definition: rtl2832-tuner_e4k.h:169
Definition: rtl2832-tuner_e4k.h:84
int set_gain(double gain)
Definition: rtl2832-tuner_e4k.h:163
Definition: rtl2832-tuner_e4k.h:74
int(* write_cb)(void *data, uint32_t reg, uint32_t val)
Definition: rtl2832-tuner_e4k.h:215
virtual double gain() const
Definition: rtl2832.h:228
Definition: rtl2832-tuner_e4k.h:63
Definition: rtl2832-tuner_e4k.h:80
Definition: rtl2832-tuner_e4k.h:172
Definition: rtl2832-tuner_e4k.h:150
Definition: rtl2832-tuner_e4k.h:72
Definition: rtl2832-tuner_e4k.h:59
Definition: rtl2832-tuner_e4k.h:62
Definition: rtl2832-tuner_e4k.h:40
Definition: rtl2832-tuner_e4k.h:95
Definition: rtl2832-tuner_e4k.h:45
Definition: rtl2832-tuner_e4k.h:54
int set_frequency(double freq)
e4k_band
Definition: rtl2832-tuner_e4k.h:159
int reg_field_cmd(struct cmd_state *cs, enum cmd_op op, const char *cmd, int argc, char **argv, struct reg_field_ops *ops)
Definition: rtl2832-tuner_e4k.h:262
Definition: rtl2832-tuner_e4k.h:76
Definition: rtl2832-tuner_e4k.h:44
RTL2832_NAMESPACE::TUNERS_NAMESPACE::e4k * pTuner
Definition: rtl2832-tuner_e4k.h:195
Definition: rtl2832-tuner_e4k.h:183
uint8_t shift
Definition: rtl2832-tuner_e4k.h:206
int e4k_manual_dc_offset(struct e4k_state *e4k, int8_t iofs, int8_t irange, int8_t qofs, int8_t qrange)
e4k_if_filter
Definition: rtl2832-tuner_e4k.h:178
Definition: rtl2832-tuner_e4k.h:146
struct e4k_state m_stateE4K
Definition: rtl2832-tuner_e4k.h:281
Definition: rtl2832-tuner_e4k.h:46
Definition: rtl2832-tuner_e4k.h:210
Definition: rtl2832-tuner_e4k.h:75
Definition: rtl2832-tuner_e4k.h:173
uint8_t width
Definition: rtl2832-tuner_e4k.h:207
Definition: rtl2832-tuner_e4k.h:181
int reg_field_write(struct reg_field_ops *ops, struct reg_field *field, uint32_t val)
Definition: rtl2832-tuner_e4k.h:179
const char ** field_names
Definition: rtl2832-tuner_e4k.h:212
Definition: rtl2832-tuner_e4k.h:49
int e4k_init(struct e4k_state *e4k, bool enable_dc_offset_loop=true, bool set_manual_gain=false)
Definition: rtl2832-tuner_e4k.h:55
Definition: rtl2832-tuner_e4k.h:154
Definition: rtl2832-tuner_e4k.h:170
Definition: rtl2832-tuner_e4k.h:93
int set_auto_gain_mode(bool on=true)
Definition: rtl2832-tuner_e4000.h:6
virtual const char * name() const
Definition: rtl2832-tuner_e4k.h:268
Definition: rtl2832-tuner_e4k.h:161
uint8_t reg
Definition: rtl2832-tuner_e4k.h:205
Definition: rtl2832-tuner_e4k.h:65
Definition: rtl2832-tuner_e4k.h:81
Definition: rtl2832-tuner_e4k.h:77
Definition: rtl2832-tuner_e4k.h:73
int set_bandwidth(double bw)
Definition: rtl2832-tuner_e4k.h:36
int set_gain_mode(int mode)
uint8_t r_idx
Definition: rtl2832-tuner_e4k.h:190
Definition: rtl2832-tuner_e4k.h:153
uint32_t reg_field_read(struct reg_field_ops *ops, struct reg_field *field)
uint8_t i2c_addr
Definition: rtl2832-tuner_e4k.h:196
Definition: rtl2832-tuner_e4k.h:180
uint32_t intended_flo
Definition: rtl2832-tuner_e4k.h:185