summaryrefslogtreecommitdiff
path: root/cesar
diff options
context:
space:
mode:
authorYacine Belkadi2012-10-26 10:41:40 +0200
committerYacine Belkadi2012-11-07 08:47:43 +0100
commit0cc6d0dc71ce45a1d5a5078d0ae5aacaf17f0aba (patch)
treed07e7e38bfc7ec30283ba6d60ea542b035470a0c /cesar
parent7b7a6d50cc5105eea515bea6cf4587a06dbd194a (diff)
cesar/hal/phy: add param to bypass Rx Filter (MSE500-300), closes #3415
On MSE500, new bits are available in register "MAGIC parameters 3" to allow Rx Mem, MAGIC or MAFADESE to bypass the Rx filter. Add support for that. Get the parameters' values from http://stestephe/svn/spidcom_digital_svn/projects/DSP_350/DSP_chain/SW/ Phy_params_config, r19132
Diffstat (limited to 'cesar')
-rw-r--r--cesar/hal/phy/inc/phy_params.txt3
-rw-r--r--cesar/hal/phy/inc/regs.h6
-rw-r--r--cesar/hal/phy/src/phy.c5
3 files changed, 13 insertions, 1 deletions
diff --git a/cesar/hal/phy/inc/phy_params.txt b/cesar/hal/phy/inc/phy_params.txt
index a6f08ba341..430fdf1c0d 100644
--- a/cesar/hal/phy/inc/phy_params.txt
+++ b/cesar/hal/phy/inc/phy_params.txt
@@ -33,6 +33,9 @@ magic_param_3__max_gain = 60
magic_param_3__overflow_gain_reset = 40
magic_param_3__agc_manual = 0
magic_param_3__agc_manual_start = 1
+magic_param_3__bypass_rx_filter_for_rx_mem = 0
+magic_param_3__bypass_rx_filter_for_magic = 1
+magic_param_3__bypass_rx_filter_for_mafadese = 0
macacke_delta_used__internal = 1
mafadese_coef_filter_band0 = {
-61, -49, 33, 27, -11, 31, 7, -12, 164, 202, -36, -76, 38,
diff --git a/cesar/hal/phy/inc/regs.h b/cesar/hal/phy/inc/regs.h
index 6168a7bf91..042b300127 100644
--- a/cesar/hal/phy/inc/regs.h
+++ b/cesar/hal/phy/inc/regs.h
@@ -243,6 +243,12 @@ typedef u32 uint32_t;
#define PHY_DSPSS_MAGIC_PARAM_3__OVERFLOW_GAIN_RESET 23, 16
#define PHY_DSPSS_MAGIC_PARAM_3__AGC_MANUAL 24, 24
#define PHY_DSPSS_MAGIC_PARAM_3__AGC_MANUAL_START 25, 25
+/* The 3 following BYPASS_RX_FILTER bits are only considered for MSE500-300.
+ * They are ignored for SPC300 (The Rx filter can not be bypassed).
+ * They are ignored for MSE500-500 (The Rx filter is always bypassed). */
+#define PHY_DSPSS_MAGIC_PARAM_3__BYPASS_RX_FILTER_FOR_RX_MEM 26, 26
+#define PHY_DSPSS_MAGIC_PARAM_3__BYPASS_RX_FILTER_FOR_MAGIC 27, 27
+#define PHY_DSPSS_MAGIC_PARAM_3__BYPASS_RX_FILTER_FOR_MAFADESE 28, 28
/* MAGIC_PARAM_4 */
#define PHY_DSPSS_MAGIC_PARAM_4__LAST_AGC_GAIN_VALUE 5, 0
diff --git a/cesar/hal/phy/src/phy.c b/cesar/hal/phy/src/phy.c
index e06a41b7ff..dd47a0238e 100644
--- a/cesar/hal/phy/src/phy.c
+++ b/cesar/hal/phy/src/phy.c
@@ -653,7 +653,10 @@ phy_init (void *user_data, phy_rx_fc_cb_t rx_fc_cb, phy_access_cb_t access_cb,
DIVERGENCE_TOLERANCE);
PHY_DSPSS_MAGIC_PARAM_3 = PHY_PARAMS (PHY_DSPSS, MAGIC_PARAM_3,
MAX_GAIN, OVERFLOW_GAIN_RESET,
- AGC_MANUAL, AGC_MANUAL_START);
+ AGC_MANUAL, AGC_MANUAL_START,
+ BYPASS_RX_FILTER_FOR_RX_MEM,
+ BYPASS_RX_FILTER_FOR_MAGIC,
+ BYPASS_RX_FILTER_FOR_MAFADESE);
PHY_DSPSS_USED_CARRIERS = PHY_CARRIER_NB;
PHY_DSPSS_FIRST_CARRIER = PHY_CARRIER_OFFSET;
PHY_DSPSS_USED_CARRIERS_EXT10 = PHY_HP10_CARRIER_NB;