diff options
author | Sylvain Munaut <tnt@246tNt.com> | 2012-04-01 21:35:32 +0200 |
---|---|---|
committer | Sylvain Munaut <tnt@246tNt.com> | 2012-04-01 21:35:32 +0200 |
commit | 1ba8c169ee504d963893bb166a4f6d5559be9fb0 (patch) | |
tree | 131d832a5501c1ebe7c71ac9cc8af2dbaf243d84 | |
parent | 16202796ae0c182883e04fc2761264df1e2a1cfd (diff) |
fw/tuner_e4k: Add function to enable/disable the IF channel filter
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
-rw-r--r-- | firmware/include/tuner_e4k.h | 1 | ||||
-rw-r--r-- | firmware/src/tuner_e4k.c | 11 |
2 files changed, 12 insertions, 0 deletions
diff --git a/firmware/include/tuner_e4k.h b/firmware/include/tuner_e4k.h index 3e5e498..7449fc3 100644 --- a/firmware/include/tuner_e4k.h +++ b/firmware/include/tuner_e4k.h @@ -198,6 +198,7 @@ int e4k_compute_pll_params(struct e4k_pll_params *oscp, uint32_t fosc, uint32_t int e4k_if_filter_bw_get(struct e4k_state *e4k, enum e4k_if_filter filter); int e4k_if_filter_bw_set(struct e4k_state *e4k, enum e4k_if_filter filter, uint32_t bandwidth); +int e4k_if_filter_chan_enable(struct e4k_state *e4k, int on); int e4k_rf_filter_set(struct e4k_state *e4k); int e4k_reg_write(struct e4k_state *e4k, uint8_t reg, uint8_t val); diff --git a/firmware/src/tuner_e4k.c b/firmware/src/tuner_e4k.c index 644efd6..fd7ce1a 100644 --- a/firmware/src/tuner_e4k.c +++ b/firmware/src/tuner_e4k.c @@ -300,6 +300,17 @@ int e4k_if_filter_bw_set(struct e4k_state *e4k, enum e4k_if_filter filter, return e4k_field_write(e4k, field, bw_idx); } +/*! \brief Enables / Disables the channel filter + * \param[in] e4k reference to the tuner chip + * \param[in] on 1=filter enabled, 0=filter disabled + * \returns 0 success, negative errors + */ +int e4k_if_filter_chan_enable(struct e4k_state *e4k, int on) +{ + return e4k_reg_set_mask(e4k, E4K_REG_FILT3, E4K_FILT3_DISABLE, + on ? 0 : E4K_FILT3_DISABLE); +} + int e4k_if_filter_bw_get(struct e4k_state *e4k, enum e4k_if_filter filter) { const uint32_t *arr; |