Copyright (C) RivieraWaves 2014-2019. More...
#include "rwnx_config.h"#include "phy.h"#include "dbg.h"#include "hal_machw.h"#include "reg_mac_core.h"#include "reg_mdm_stat.h"#include "reg_mdmdsss_cfg.h"#include "reg_mdm_cfg.h"#include "reg_riu.h"#include "reg_rc.h"#include "reg_macbypass.h"#include "crm.h"#include "rd.h"#include "uf.h"Go to the source code of this file.
Data Structures | |
| struct | phy_custom_cfg_tag |
| Structure containing the parameters of the Custom RF configuration, coming from host or any other mean. More... | |
| struct | phy_env_tag |
| PHY driver context structure. More... | |
Defines | |
| #define | __RIU_RADARFIFO_ADDR 0x60C04000 |
| Radar fifo address. | |
Functions | |
| static void | custom_rf_set_channel (uint8_t band, uint16_t freq1, uint8_t chantype) |
| Configure new channel at RF level. | |
| static void | riu_pssel_set (uint16_t freq, uint16_t freq1, uint8_t chantype) |
| Configure Primary/Secondary at RIU level. | |
| static void | mdm_primary_set (uint16_t freq, uint16_t freq1, uint8_t chantype) |
| Configure Primary at Modem level. | |
| static void | mdm_set_channel (uint8_t band, uint16_t freq, uint16_t freq1, uint8_t chantype, uint8_t flags) |
| Configure new channel at modem level. | |
| static void | phy_hw_set_channel (uint8_t band, uint16_t freq, uint16_t freq1, uint8_t chantype, uint8_t flags, uint8_t index) |
| Configure a new channel. | |
| static void | custom_rf_init (const struct phy_custom_cfg_tag *cfg) |
| Initialize RF layer. | |
| static void | mdm_init (const struct phy_custom_cfg_tag *cfg) |
| Initialize Modem. | |
| static void | phy_hw_init (const struct phy_custom_cfg_tag *cfg) |
| Initialize PHY interface. | |
| void | phy_init (const struct phy_cfg_tag *config) |
| Modem and Radio initialization function. | |
| void | phy_mdm_isr (void) |
| Modem interrupt service routine. | |
| void | phy_rc_isr (void) |
| FIXME: This is for debug purpose only and does not call rd_event_ind. | |
| void | phy_get_version (uint32_t *version_1, uint32_t *version_2) |
| PHY version reading function. | |
| void | phy_set_channel (const struct mac_chan_op *chan, uint8_t index) |
| Set channel function. | |
| void | phy_get_channel (struct phy_channel_info *info, uint8_t index) |
| Get channel function. | |
| void | phy_stop (void) |
| PHY stop function. | |
| uint32_t | phy_get_channel_switch_dur (void) |
| Get maximum duration to set a new channel. | |
| bool | phy_has_radar_pulse (int rd_idx) |
| Indicates if the PHY has radar pulses available or not. | |
| bool | phy_get_radar_pulse (int rd_idx, struct phy_radar_pulse *pulse) |
| Read a radar pulse from the FIFO, and writes it to the buffer passed as parameter. | |
| bool | phy_vht_supported (void) |
| Return the VHT capability of the PHY. | |
| bool | phy_he_supported (void) |
| Return the HE capability of the PHY. | |
| bool | phy_uf_supported (void) |
| Return the unsupported HT frame handling capability of the PHY. | |
| void | phy_uf_enable (bool enable) |
| Configure the unsupported HT frame handling capability of the PHY. | |
| bool | phy_ldpc_tx_supported (void) |
| Return the LDPC TX capability of the PHY. | |
| bool | phy_ldpc_rx_supported (void) |
| Return the LDPC RX capability of the PHY. | |
| bool | phy_bfmee_supported (void) |
| Return the Beamformee capability of the PHY. | |
| bool | phy_bfmer_supported (void) |
| Return the Beamformer capability of the PHY. | |
| bool | phy_mu_mimo_rx_supported (void) |
| Return the MU-MIMO RX capability of the PHY. | |
| bool | phy_mu_mimo_tx_supported (void) |
| Return the MU-MIMO TX capability of the PHY. | |
| void | phy_set_aid (uint16_t aid) |
| Set the AID to the PHY, in order to allow correct operation of OFDMA-RX. | |
| uint8_t | phy_get_bw (void) |
| Return the supported BW of the PHY. | |
| uint8_t | phy_get_nss (void) |
| Return the NSS of the PHY. | |
| uint8_t | phy_get_ntx (void) |
| Return the NTX of the PHY. | |
| uint8_t | phy_get_nrx (void) |
| Return the NRX of the PHY. | |
| uint8_t | phy_get_bfr_mem_size (void) |
| Return the size of the BFMER memory in kBytes. | |
| void | phy_get_rf_gain_idx (int8_t *power, uint8_t *idx) |
| Get radio code to set a specific TX power Return the idx to use (set in policy table), to configure a specific TX power. | |
| void | phy_get_rf_gain_capab (int8_t *max, int8_t *min) |
| Get radio's transmission power capabilities. | |
| uint8_t | phy_switch_antenna_paths (void) |
| Switch paths connections. | |
Variables | |
| struct phy_env_tag | phy_env |
| PHY driver context. | |
Copyright (C) RivieraWaves 2014-2019.
When setting a channel, several procedures can be advantageously left-out depending on whether the band, bw, frequency remain unchanged (calibrations, old modem clk mmc toggles ..), e.g. for multi-channel. Although the changes are trivial they might get in the way of properly measuring the RF behavior.
Definition in file phy_custom_rf.c.
| static void custom_rf_init | ( | const struct phy_custom_cfg_tag * | cfg | ) | [static] |
Initialize RF layer.
| [in] | cfg | Custom RF configuration |
Definition at line 404 of file phy_custom_rf.c.
Referenced by phy_hw_init().
| static void custom_rf_set_channel | ( | uint8_t | band, | |
| uint16_t | freq1, | |||
| uint8_t | chantype | |||
| ) | [static] |
Configure new channel at RF level.
| [in] | band | Channel band |
| [in] | freq1 | Channel center frequency |
| [in] | chantype | Channel bandwidth |
Definition at line 70 of file phy_custom_rf.c.
Referenced by phy_hw_set_channel().
| static void mdm_init | ( | const struct phy_custom_cfg_tag * | cfg | ) | [static] |
Initialize Modem.
| [in] | cfg | Custom RF configuration |
Definition at line 416 of file phy_custom_rf.c.
References ASSERT_ERR, crm_mdm_reset(), phy_he_supported(), and phy_vht_supported().
Referenced by phy_hw_init().
| static void mdm_primary_set | ( | uint16_t | freq, | |
| uint16_t | freq1, | |||
| uint8_t | chantype | |||
| ) | [static] |
Configure Primary at Modem level.
| [in] | freq | Channel frequency of primary |
| [in] | freq1 | Channel center frequency |
| [in] | chantype | Channel bandwidth |
Definition at line 122 of file phy_custom_rf.c.
References PHY_CHNL_BW_40, and PHY_CHNL_BW_80.
Referenced by mdm_set_channel().
| static void mdm_set_channel | ( | uint8_t | band, | |
| uint16_t | freq, | |||
| uint16_t | freq1, | |||
| uint8_t | chantype, | |||
| uint8_t | flags | |||
| ) | [static] |
Configure new channel at modem level.
| [in] | band | Channel band |
| [in] | freq | Channel frequency of primary |
| [in] | freq1 | Channel center frequency |
| [in] | chantype | Channel bandwidth |
| [in] | flags | Channel flags |
Definition at line 155 of file phy_custom_rf.c.
References CHAN_RADAR, crm_mdm_reset(), mdm_primary_set(), MODE_802_11AC_5, MODE_802_11N_2_4, PHY_BAND_5G, PHY_CHNL_BW_20, PHY_CHNL_BW_40, and riu_pssel_set().
Referenced by phy_hw_set_channel().
| static void phy_hw_init | ( | const struct phy_custom_cfg_tag * | cfg | ) | [static] |
Initialize PHY interface.
| [in] | cfg | Custom RF configuration |
Definition at line 596 of file phy_custom_rf.c.
References custom_rf_init(), mdm_init(), PHY_BAND_5G, PHY_CHNL_BW_20, and phy_hw_set_channel().
Referenced by phy_init().
| static void phy_hw_set_channel | ( | uint8_t | band, | |
| uint16_t | freq, | |||
| uint16_t | freq1, | |||
| uint8_t | chantype, | |||
| uint8_t | flags, | |||
| uint8_t | index | |||
| ) | [static] |
Configure a new channel.
| [in] | band | Channel band |
| [in] | freq | Channel primary frequency |
| [in] | freq1 | Channel center frequency |
| [in] | chantype | Channel bandwidth |
| [in] | flags | Channel flags |
| [in] | index | RIU index to configure (ignored if only one RIU) |
Definition at line 370 of file phy_custom_rf.c.
References crm_clk_set(), custom_rf_set_channel(), D_INF, D_PHY, dbg, and mdm_set_channel().
Referenced by phy_hw_init(), and phy_set_channel().
| static void riu_pssel_set | ( | uint16_t | freq, | |
| uint16_t | freq1, | |||
| uint8_t | chantype | |||
| ) | [static] |
Configure Primary/Secondary at RIU level.
| [in] | freq | Channel frequency of primary |
| [in] | freq1 | Channel center frequency |
| [in] | chantype | Channel bandwidth |
PSSEL - use pssel of RW-WSDM-RIU-HW-REG.xls
Definition at line 84 of file phy_custom_rf.c.
References PHY_CHNL_BW_40, and PHY_CHNL_BW_80.
Referenced by mdm_set_channel().
1.6.1