/**
 * @file hv_cal_EdpTx.c
 * @brief EdpTx module driver
 * @details This module provide interfaces for Hiview-Madia-Ware.
 * @author HiView SoC Software Team
 * @version 0.0.1
 * @date 20221013
 * @copyright Copyright(c),2022-9, Hiview Software. All rights reserved.
 * @par History:
 * <table>
 * <tr><th>Author                         <th>Date             <th>Details
 * <tr><td>HiView SoC Software Team   <td>20221013       <td>Create and first Version.
 * </table>
 **/

#include "hv_cal_EdpTx.h"
#include "hv_vos_Comm.h"
#include "HV_REGS_HT7315.h"
#include "PanelConfig.h"
#include "hv_comm_Assert.h"

VOID Hv_Cal_EdpTx_FixSettings(VOID)
{
    /* E4 - edptx_top_reg_00 */
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_84, reg_00_edptx_en, 0);
    //HV_W32_FIELD(TX_EDPTX_TOP_REG_00_00, reg_00_edptx_param_auto_cal_en, PANEL_LANE_NUM == 8 ? 0 : 1);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_00, reg_00_edptx_param_auto_cal_en, 0);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_20, reg_00_edptx_misc1, 0);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_2C, reg_00_edptx_tu_total_size, 64);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_5C, reg_00_edptx_lane0_skew_num, 0);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_5C, reg_00_edptx_lane1_skew_num, 2);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_5C, reg_00_edptx_lane2_skew_num, 4);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_5C, reg_00_edptx_lane3_skew_num, 6);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_54, reg_00_edptx_lane_swap, 228);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_30, reg_00_edptx_irq_width, 15);
    

    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_84, reg_01_edptx_en, 0);
    //HV_W32_FIELD(TX_EDPTX_TOP_REG_01_00, reg_01_edptx_param_auto_cal_en, PANEL_LANE_NUM == 8 ? 0 : 1);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_00, reg_01_edptx_param_auto_cal_en, 0);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_20, reg_01_edptx_misc1, 0);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_2C, reg_01_edptx_tu_total_size, 64);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_5C, reg_01_edptx_lane0_skew_num, 0);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_5C, reg_01_edptx_lane1_skew_num, 2);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_5C, reg_01_edptx_lane2_skew_num, 4);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_5C, reg_01_edptx_lane3_skew_num, 6);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_54, reg_01_edptx_lane_swap, 228);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_30, reg_01_edptx_irq_width, 15);

    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_00, reg_00_edptx_datapack_sel, 0);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_00, reg_01_edptx_datapack_sel, 0);

    /* 14 - tcon_top */
    /* add 1009 Input video from 1:BLK1, 0:LDG*/
    //HV_W32_FIELD(TX_DISP_CTRL_TOP_04, reg_disp_ctrl_src_sel, 0);
    //HV_W32_FIELD(TX_DISP_CTRL_TOP_68, reg_disp_ctrl_prede_sel, 1);
    HV_W32_FIELD(TX_COMBOTX_PHY_0_04, reg_txpll_0_ckref_sel, 0);

    return;
}

VOID Hv_Cal_EdpTx_Tps1Done(BOOL bDone)
{
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_84, reg_00_edptx_tps1_done, bDone);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_84, reg_01_edptx_tps1_done, bDone);
    return;
}

VOID Hv_Cal_EdpTx_EqDone(BOOL bDone)
{
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_38, reg_00_edptx_eq_done, bDone);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_38, reg_01_edptx_eq_done, bDone);
    return;
}

UINT32 Hv_Cal_EdpTx_GetApbClock(VOID)
{
    UCHAR8      ucSysPllPreDiv = 0;
    USHORT16    usSysPllFbDivInt = 0;
    USHORT16    usSysPllPostDiv0 = 0;
    UCHAR8      ucSysPllPostDiv00 = 0;
    UINT32      uiSysVoc = 0;
    UINT32      uiSysPg0 = 0;
    UINT32      uiSysPg00 = 0;

    HV_R32_DECL_VAR();
    ucSysPllPreDiv = HV_R32_FIELD(SYS_SH06_TOP_2C, reg_syspll_prediv);
    usSysPllFbDivInt = HV_R32_FIELD(SYS_SH06_TOP_30, reg_syspll_fbdiv_int);
    usSysPllPostDiv0 = HV_R32_FIELD(SYS_SH06_TOP_34, reg_syspll_postdiv0);
    ucSysPllPostDiv00 = HV_R32_FIELD(SYS_SH06_TOP_38, reg_syspll_postdiv0_0);

    HV_ASSERT_TRUE(ucSysPllPreDiv > 0);
    uiSysVoc = round_div(27 * usSysPllFbDivInt, ucSysPllPreDiv);
    HV_ASSERT_TRUE(usSysPllPostDiv0 > 0);
    uiSysPg0 = round_div(uiSysVoc, usSysPllPostDiv0);
    HV_ASSERT_TRUE(ucSysPllPostDiv00 > 0);
    uiSysPg00 = round_div(uiSysPg0, ucSysPllPostDiv00);

    return uiSysPg00;
}

VOID Hv_Cal_EdpTx_SetAuxAnaCfg(VOID)
{
    HV_W32_FIELD(TX_HSTX_TOP_10, reg_edptx_ana_aux_0_pwd, 0);
    HV_W32_FIELD(TX_HSTX_TOP_14, reg_edptx_ana_aux_1_pwd, 0);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_A8, reg_00_aux_chan_timeout, 80000);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_A8, reg_01_aux_chan_timeout, 80000);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_38, reg_00_edptx_aux_from_pin, 0);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_38, reg_01_edptx_aux_from_pin, 0);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_A4, reg_00_aux_train_times, 16);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_A4, reg_01_aux_train_times, 16);
    return;
}



VOID Hv_Cal_EdpTx_SetTopCfg(HvEdpTxTopCfgParam stEdpTxCfgParam)
{
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_38, reg_00_edptx_bit_mode, stEdpTxCfgParam.ucEdpTxBitMode);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_00, reg_00_edptx_data_symbol_num, stEdpTxCfgParam.uiEdpTxDataSymbolNum);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_08, reg_00_edptx_mvid, stEdpTxCfgParam.uiEdpTxMvid);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_88, reg_00_edptx_nvid, stEdpTxCfgParam.uiEdpTxNvid);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_0C, reg_00_edptx_msa_htotal, stEdpTxCfgParam.uiEdpTxMsaHTotal);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_0C, reg_00_edptx_msa_vtotal, stEdpTxCfgParam.uiEdpTxMsaVTotal);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_10, reg_00_edptx_msa_hact, stEdpTxCfgParam.usEdpTxMasHact);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_10, reg_00_edptx_msa_vact, stEdpTxCfgParam.usEdpTxMasVact);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_14, reg_00_edptx_msa_hbporch, stEdpTxCfgParam.usEdpTxMasHbPorch);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_14, reg_00_edptx_msa_vbporch, stEdpTxCfgParam.usEdpTxMasVbPorch);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_18, reg_00_edptx_msa_hs_width, stEdpTxCfgParam.usEdpTxMasHsWidth);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_18, reg_00_edptx_msa_vs_width, stEdpTxCfgParam.usEdpTxMasVsWidth);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_18, reg_00_edptx_msa_hs_polarity, stEdpTxCfgParam.bEdpTxMasHsPolarity);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_18, reg_00_edptx_msa_vs_polarity, stEdpTxCfgParam.bEdpTxMasVsPolarity);

    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_1C, reg_00_edptx_lane_num, stEdpTxCfgParam.ucEdpTxLaneNum >= 4 ? 4 : stEdpTxCfgParam.ucEdpTxLaneNum);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_20, reg_00_edptx_misc0, stEdpTxCfgParam.ucEdpTxMisc0);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_2C, reg_00_edptx_tu_data_size, stEdpTxCfgParam.uiEdpTxTuDataSize);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_8C, reg_00_edptx_dh_den_sta, stEdpTxCfgParam.usEdpTxDhDenSta);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_90, reg_00_edptx_dv_den_sta, stEdpTxCfgParam.usEdpTxDvDenSta);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_90, reg_00_edptx_dv_den_end, stEdpTxCfgParam.usEdpTxDvDenEnd);

    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_60, reg_00_edptx_msa_line_idx, stEdpTxCfgParam.usEdpTxMsaLineIdx);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_64, reg_00_edptx_pix_symbol_num, stEdpTxCfgParam.usEdpTxPixSymbolNum);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_A0, reg_00_aux_s2pclk_ratio, stEdpTxCfgParam.usAuxS2PClkRatio);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_A4, reg_00_aux_glitch_th, stEdpTxCfgParam.ucAuxGlitchTh);
    //HV_W32_FIELD(TX_EDPTX_TOP_REG_00_84, reg_00_edptx_mvid_mode, (PANEL_PORT_NUM == 2) ? 0 : stEdpTxCfgParam.ucEdpTxMvidMode);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_84, reg_00_edptx_mvid_mode, 0);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_38, reg_01_edptx_bit_mode, stEdpTxCfgParam.ucEdpTxBitMode);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_00, reg_01_edptx_data_symbol_num, stEdpTxCfgParam.uiEdpTxDataSymbolNum);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_08, reg_01_edptx_mvid, stEdpTxCfgParam.uiEdpTxMvid);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_88, reg_01_edptx_nvid, stEdpTxCfgParam.uiEdpTxNvid);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_0C, reg_01_edptx_msa_htotal, stEdpTxCfgParam.uiEdpTxMsaHTotal);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_0C, reg_01_edptx_msa_vtotal, stEdpTxCfgParam.uiEdpTxMsaVTotal);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_10, reg_01_edptx_msa_hact, stEdpTxCfgParam.usEdpTxMasHact);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_10, reg_01_edptx_msa_vact, stEdpTxCfgParam.usEdpTxMasVact);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_14, reg_01_edptx_msa_hbporch, stEdpTxCfgParam.usEdpTxMasHbPorch);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_14, reg_01_edptx_msa_vbporch, stEdpTxCfgParam.usEdpTxMasVbPorch);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_18, reg_01_edptx_msa_hs_width, stEdpTxCfgParam.usEdpTxMasHsWidth);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_18, reg_01_edptx_msa_vs_width, stEdpTxCfgParam.usEdpTxMasVsWidth);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_18, reg_01_edptx_msa_hs_polarity, stEdpTxCfgParam.bEdpTxMasHsPolarity);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_18, reg_01_edptx_msa_vs_polarity, stEdpTxCfgParam.bEdpTxMasVsPolarity);

    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_1C, reg_01_edptx_lane_num, stEdpTxCfgParam.ucEdpTxLaneNum >= 4 ? 4 : stEdpTxCfgParam.ucEdpTxLaneNum);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_20, reg_01_edptx_misc0, stEdpTxCfgParam.ucEdpTxMisc0);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_2C, reg_01_edptx_tu_data_size, stEdpTxCfgParam.uiEdpTxTuDataSize);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_8C, reg_01_edptx_dh_den_sta, stEdpTxCfgParam.usEdpTxDhDenSta);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_90, reg_01_edptx_dv_den_sta, stEdpTxCfgParam.usEdpTxDvDenSta);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_90, reg_01_edptx_dv_den_end, stEdpTxCfgParam.usEdpTxDvDenEnd);

    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_60, reg_01_edptx_msa_line_idx, stEdpTxCfgParam.usEdpTxMsaLineIdx);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_64, reg_01_edptx_pix_symbol_num, stEdpTxCfgParam.usEdpTxPixSymbolNum);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_A0, reg_01_aux_s2pclk_ratio, stEdpTxCfgParam.usAuxS2PClkRatio);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_A4, reg_01_aux_glitch_th, stEdpTxCfgParam.ucAuxGlitchTh);
    //HV_W32_FIELD(TX_EDPTX_TOP_REG_01_84, reg_01_edptx_mvid_mode, (PANEL_PORT_NUM == 2) ? 0 : stEdpTxCfgParam.ucEdpTxMvidMode);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_84, reg_01_edptx_mvid_mode, 0);
    return;
}

VOID Hv_Cal_EdpTx_MainLinkEn(BOOL bEn)
{
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_84, reg_00_edptx_en, bEn ? 1 : 0);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_84, reg_01_edptx_en, bEn ? 1 : 0);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_58, reg_00_edptx_lane_en, bEn ? 15 : 0);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_58, reg_01_edptx_lane_en, bEn ? 15 : 0);
    return;
}

VOID Hv_Cal_EdpTx_PifRst(BOOL bEn)
{
    HV_W32_FIELD(SYS_SH06_TOP_08, reg_pif_edp_rst_n, bEn ? 3 : 0);
    return;
}

VOID Hv_Cal_EdpTx_PifEn(BOOL bEn)
{
    HV_W32_FIELD(TX_PIF_TX_TOP_PIF_TX_CLKGEN0, reg_pif_edp_clk_en, bEn ? 3 : 0);
    return;
}

EdpTxInterruptDefine Hv_Cal_EdpTx_GetHpdInt(VOID)
{
    UINT32 uiValue = 0;
    HV_R32_DECL_VAR();
    EdpTxInterruptDefine stEdpTxInterruptDefine;
    HV_MEMSET(&stEdpTxInterruptDefine, 0, sizeof(stEdpTxInterruptDefine));

    uiValue = HV_R32_FIELD(TX_EDPTX_TOP_REG_01_34, regr_01_edptx_irq);
    uiValue = (uiValue | HV_R32_FIELD(TX_EDPTX_TOP_REG_00_34, regr_00_edptx_irq));
    /*EDPTX00 int*/
    stEdpTxInterruptDefine.uiHpdEvt             = (uiValue & BIT_0) > 0 ? 1 : 0;
    stEdpTxInterruptDefine.uiHpdIrq             = (uiValue & BIT_1) > 0 ? 1 : 0;
    stEdpTxInterruptDefine.uiAuxTransDone       = (uiValue & BIT_2) > 0 ? 1 : 0;
    stEdpTxInterruptDefine.uiRegEdptxSwIrq      = (uiValue & BIT_3) > 0 ? 1 : 0;
    stEdpTxInterruptDefine.uiHpdPlug            = (uiValue & BIT_4) > 0 ? 1 : 0;

    return stEdpTxInterruptDefine;
}

VOID Hv_Cal_EdpTx_ClearHpdInt(VOID)
{
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_30, reg_01_edptx_irq_wclr, 0x13);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_30, reg_01_edptx_irq_wclr, 0);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_30, reg_01_edptx_irq_width, BIT_0|BIT_1|BIT_2|BIT_3|BIT_4);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_30, reg_01_edptx_irq_width, 0);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_30, reg_01_edptx_irq_width, 15);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_30, reg_01_edptx_irq_wclr, 0x13);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_30, reg_01_edptx_irq_wclr, 0);

    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_30, reg_00_edptx_irq_wclr, 0x13);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_30, reg_00_edptx_irq_wclr, 0);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_30, reg_00_edptx_irq_width, BIT_0|BIT_1|BIT_2|BIT_3|BIT_4);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_30, reg_00_edptx_irq_width, 0);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_30, reg_00_edptx_irq_width, 15);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_30, reg_00_edptx_irq_wclr, 0x13);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_30, reg_00_edptx_irq_wclr, 0);
    return;
}

VOID Hv_Cal_EdpTx_SetEdpTxMvid(UINT32 uiMvid)
{
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_08, reg_00_edptx_mvid, uiMvid);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_08, reg_01_edptx_mvid, uiMvid);
    return;
}

VOID Hv_Cal_EdpTx_SetEdpTxTuSize(UINT32 uiTuSize)
{
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_2C, reg_00_edptx_tu_data_size, uiTuSize);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_2C, reg_01_edptx_tu_data_size, uiTuSize);
    return;
}

VOID Hv_Cal_EdpTx_SetEdpAutoCalc(BOOL bEn)
{
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_00, reg_00_edptx_param_auto_cal_en, bEn);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_00, reg_01_edptx_param_auto_cal_en, bEn);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_00_84, reg_00_edptx_mvid_mode, bEn == 0 ? 0 : 5);
    HV_W32_FIELD(TX_EDPTX_TOP_REG_01_84, reg_01_edptx_mvid_mode, bEn == 0 ? 0 : 5);
    return;
}

VOID Hv_Cal_EdpTx_SetEdpHpqIrqEn(BOOL bEn, UCHAR8 ucPort)
{
    HV_R32_DECL_VAR();
    UCHAR8 ucIrq = 0;
    if (EDP_TX_PROT_INDEX0 == ucPort)
    {
        ucIrq = HV_R32_FIELD(TX_EDPTX_TOP_REG_00_30, reg_00_edptx_irq_en);
    }
    else
    {
        ucIrq = HV_R32_FIELD(TX_EDPTX_TOP_REG_01_30, reg_01_edptx_irq_en);
    }

    if (bEn)
    {
        ucIrq |= 0x13;
    }
    else
    {
        ucIrq &= 0xEC;
    }

    if (EDP_TX_PROT_INDEX0 == ucPort)
    {
        HV_W32_FIELD(TX_EDPTX_TOP_REG_00_30, reg_00_edptx_irq_en, ucIrq);
    }
    else
    {
        HV_W32_FIELD(TX_EDPTX_TOP_REG_01_30, reg_01_edptx_irq_en, ucIrq);
    }
    return;
}


VOID Hv_Cal_EdpTx_SetAuxPnSwap(EdpTxPortIndex enPort, BOOL bEn)
{
    if (EDP_TX_PROT_INDEX0 == enPort)
    {
        HV_W32_FIELD(TX_HSTX_TOP_10, reg_edptx_ana_aux_0_pn_swap, bEn);
    }
    else
    {
        HV_W32_FIELD(TX_HSTX_TOP_14, reg_edptx_ana_aux_1_pn_swap, bEn);
    }
    return;
}

