112 lines
3.5 KiB
C
Executable File
112 lines
3.5 KiB
C
Executable File
/****************************************************************************
|
|
|
|
Copyright(c) 2019 by Aerospace C.Power (Chongqing) Microelectronics. ALL RIGHTS RESERVED.
|
|
|
|
This Information is proprietary to Aerospace C.Power (Chongqing) Microelectronics and MAY NOT
|
|
be copied by any method or incorporated into another program without
|
|
the express written consent of Aerospace C.Power. This Information or any portion
|
|
thereof remains the property of Aerospace C.Power. The Information contained herein
|
|
is believed to be accurate and Aerospace C.Power assumes no responsibility or
|
|
liability for its use in any way and conveys no license or title under
|
|
any patent or copyright and makes no representation or warranty that this
|
|
Information is free from patent or copyright infringement.
|
|
|
|
****************************************************************************/
|
|
|
|
#ifndef MAC_CMN_HW_H
|
|
#define MAC_CMN_HW_H
|
|
|
|
/* os shim includes */
|
|
#include "os_types.h"
|
|
|
|
/* mac module internal includes */
|
|
#include "mac_vdev.h"
|
|
#include "phy_bb.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* mac_config_nid() - config network ID to HW
|
|
* @vdev: pointer to mac vdev
|
|
* @nid: the network ID to be set
|
|
*/
|
|
void mac_config_nid(mac_vdev_t *vdev, uint32_t nid);
|
|
|
|
/* mac_get_hw_nid() get network nid from hw
|
|
* @return return nid
|
|
*/
|
|
uint32_t mac_get_hw_nid();
|
|
|
|
/* mac_config_role() - config device role to HW
|
|
* @vdev: pointer to mac vdev
|
|
* @role: the role to be set. see PLC_DEV_ROLE_XXX
|
|
*/
|
|
void mac_config_role(mac_vdev_t *vdev, uint8_t role);
|
|
|
|
/* mac_get_hw_role() get network role from hw
|
|
* @return return hw reg value of role config
|
|
*/
|
|
uint32_t mac_get_hw_role();
|
|
|
|
/* mac_config_tei() - config tei to HW
|
|
* @vdev: pointer to mac vdev
|
|
* @role: the tei to be set
|
|
*/
|
|
void mac_config_tei(mac_vdev_t *vdev, uint16_t tei);
|
|
|
|
/* mac_get_hw_tei() get network tei from hw
|
|
* @return return hw reg value of tei config
|
|
*/
|
|
uint32_t mac_get_hw_tei();
|
|
|
|
/* mac_config_ntb_delta_from_isr() - config ntb diff to HW
|
|
* @is_positive: 1: the delta is positive; 0: the delta is negative
|
|
* @delta_ntb: the value of delta, unsigned value
|
|
* @
|
|
* @return need sw compensate ntb count
|
|
*/
|
|
int32_t mac_config_ntb_delta_from_isr(uint8_t is_positive, uint32_t delta_ntb);
|
|
|
|
/* mac_enable_hw_ntb_adjust() - enable/disable hw sync ppm.
|
|
* @para enable - enable/disable.
|
|
* @return 0
|
|
*/
|
|
uint32_t mac_enable_hw_ntb_adjust(uint32_t enable);
|
|
|
|
/* mac_ena_hw_ntb_wrap_fix() - enable/disable hw fix ntb high 32bit.
|
|
* @para enable - enable/disable.
|
|
* @return 0
|
|
*/
|
|
void mac_ena_hw_ntb_wrap_fix(uint8_t enable);
|
|
|
|
/* mac ppm calibration */
|
|
/*
|
|
* @brief mac ppm calibration and set reg
|
|
*
|
|
* @param cal_unit: calibration unit, see PHY_CAL_UNIT_ID
|
|
* @param ppm_err: mac ppm error, unit see PLC_NTB_PPM_SHIFT
|
|
* @param rate_mode: communication rate mode.
|
|
*
|
|
* @return 0 - success, others - fail.
|
|
*/
|
|
uint32_t mac_ppm_cal_set(PHY_CAL_UNIT_ID cal_unit, \
|
|
int16_t ppm_err, uint32_t rate_mode);
|
|
|
|
/* mac_dump_buf_from_cvg() - dump data based on CVG request */
|
|
void mac_dump_buf_from_cvg(void);
|
|
|
|
/**
|
|
*@brief mac_hw_sync_ppm_clr rst rx ppm
|
|
*@param pdev_id indicate pdev id
|
|
*@exception none
|
|
*@return none
|
|
*/
|
|
void mac_hw_sync_ppm_clr(uint8_t pdev_id);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* MAC_CMN_HW_H */
|