From ae079c1fc5d990ba55714d4b3a51b19f96edaec4 Mon Sep 17 00:00:00 2001
From: WXK <287788329@qq.com>
Date: 星期四, 24 四月 2025 16:01:43 +0800
Subject: [PATCH] 改为中断来低电平触发发送当前扫描数据,3s内扫描不到的会退出,串口来55 AA 75 70 64 61 74 65,进入升级模式

---
 01_SDK/modules/hal/panchip/panplat/pan1070/bsp/radio/src/pan_prf_glue.c |  281 ++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 232 insertions(+), 49 deletions(-)

diff --git a/01_SDK/modules/hal/panchip/panplat/pan1070/bsp/radio/src/pan_prf_glue.c b/01_SDK/modules/hal/panchip/panplat/pan1070/bsp/radio/src/pan_prf_glue.c
index 577070c..8d72e68 100644
--- a/01_SDK/modules/hal/panchip/panplat/pan1070/bsp/radio/src/pan_prf_glue.c
+++ b/01_SDK/modules/hal/panchip/panplat/pan1070/bsp/radio/src/pan_prf_glue.c
@@ -55,6 +55,12 @@
 #define NRF_RX_TO_TX_TIME		(110)
 #define NRF_TX_TO_RX_TIME		(110)
 
+#define PHY_MODED_DEFAULT 			(0)
+#define PHY_MODED_AGC_0X0F			(1)
+#define PHY_MODED_FORCE_GAIN_0X0F	(2)
+
+#define PHY_CFG_MODE				PHY_MODED_DEFAULT
+
 #define REG_WRITE_BITS(reg, mask, value)    (reg) = (((reg) & ~(mask)) | (value))
 
 #define __nop()     __asm("nop")
@@ -71,6 +77,7 @@
 uint8_t prf_init_flag = 0;
 int8_t prf_rssi = 0;
 static uint8_t buck_vout_trim = 0xff;
+static uint32_t raw_phy_config_data[7] = {0xffffffff, };
 
 __ramfunc void panchip_prf_isr_proc(void)
 {
@@ -86,20 +93,8 @@
 	normal_m1 = (uint8_t)((PRI_RF->R04_RX_CTL & R04_RX_CTL_NORMAL_M1_Msk) >> R04_RX_CTL_NORMAL_M1_Pos);
 	noack = PRI_RF_IsTxNoAckEn(PRI_RF);
 
-	if (PRI_RF_IntFlag(PRI_RF, R01_INT_TX_IRQ_Msk)) {
-		if (((((enhc == 0) && (normal_m1 == 0)) || ((enhc == 1) && noack)) && !ptxprx) || ptxprx) {
-			while (!(PRI_RF->R01_INT & R01_INT_TX_DONE_IRQ_FLAG_Msk)) {
-			}			/* wait rx done */
-			PHY_strt_stp(LLHWC_PHY_STOP);
-			PRI_RF_SetTrxRamReady(PRI_RF, PRI_RF_MODE_SEL_TRX, 0);
-		}
-
-		if (isr_cb.tx_cb != NULL) {
-			(*isr_cb.tx_cb)();
-		}
-	}
-
-	if (PRI_RF_IntFlag(PRI_RF, R01_INT_TX_TIMEOUT_IRQ_Msk)) {
+	if ((PRI_RF_IntFlag(PRI_RF, R01_INT_TX_TIMEOUT_IRQ_Msk)) &&
+		((PRI_RF->R01_INT & R01_INT_TX_TIMEOUT_IRQ_MASK_Msk)?(false):(true))) {
 		while (!(PRI_RF->R01_INT & R01_INT_RX_DONE_IRQ_FLAG_Msk)) {
 		}			/* wait rx done */
 		PHY_strt_stp(LLHWC_PHY_STOP);
@@ -110,7 +105,8 @@
 		}
 	}
 
-	if (PRI_RF_IntFlag(PRI_RF, R01_INT_RX_IRQ_Msk)) {
+	if ((PRI_RF_IntFlag(PRI_RF, R01_INT_RX_IRQ_Msk)) &&
+		((PRI_RF->R01_INT & R01_INT_RX_IRQ_MASK_Msk)?(false):(true))) {
 		if (((enhc == 0) && (normal_m1 == 0) && ptxprx) || !ptxprx) {
 			while (!(PRI_RF->R01_INT & R01_INT_RX_DONE_IRQ_FLAG_Msk)) {
 			}			/* wait rx done */
@@ -124,7 +120,8 @@
 		}
 	}
 
-	if (PRI_RF_IntFlag(PRI_RF, R01_INT_RX_CRC_ERR_Msk)) {
+	if ((PRI_RF_IntFlag(PRI_RF, R01_INT_RX_CRC_ERR_Msk)) &&
+		((PRI_RF->R01_INT & R01_INT_RX_CRC_ERR_MASK_Msk)?(false):(true))) {
 		while (!(PRI_RF->R01_INT & R01_INT_RX_DONE_IRQ_FLAG_Msk)) {
 		}			/* wait rx done */
 		PHY_strt_stp(LLHWC_PHY_STOP);
@@ -136,8 +133,8 @@
 		}
 	}
 
-	if (PRI_RF_IntFlag(PRI_RF, R01_INT_RX_LENGTH_ERR_Msk))
-    {
+	if ((PRI_RF_IntFlag(PRI_RF, R01_INT_RX_LENGTH_ERR_Msk)) &&
+		((PRI_RF->R01_INT & R01_INT_RX_LENGTH_ERR_MASK_Msk)?(false):(true))) {
         while (!(PRI_RF->R01_INT & R01_INT_RX_DONE_IRQ_FLAG_Msk)) {
 		}			/* wait rx done */
 		PHY_strt_stp(LLHWC_PHY_STOP);
@@ -148,8 +145,8 @@
 		}
     }
 	
-	if (PRI_RF_IntFlag(PRI_RF, R01_INT_RX_ACCADDR_ERR_Msk))
-    {
+	if ((PRI_RF_IntFlag(PRI_RF, R01_INT_RX_ACCADDR_ERR_Msk)) &&
+		((PRI_RF->R01_INT & R01_INT_RX_ACCADDR_ERR_MASK_Msk)?(false):(true))) {
         while (!(PRI_RF->R01_INT & R01_INT_RX_DONE_IRQ_FLAG_Msk)) {
 		}			/* wait rx done */
 		PHY_strt_stp(LLHWC_PHY_STOP);
@@ -160,7 +157,8 @@
 		}
     }
 
-	if (PRI_RF->R01_INT & R01_INT_RX_PID_ERR_IRQ_FLAG_Msk) {
+	if ((PRI_RF->R01_INT & R01_INT_RX_PID_ERR_IRQ_FLAG_Msk) &&
+		((PRI_RF->R01_INT & R01_INT_PID_ERR_MASK_Msk)?(false):(true))) {
 		while (!(PRI_RF->R01_INT & R01_INT_RX_DONE_IRQ_FLAG_Msk)) {
 		}			/* wait rx done */
 		if (ptxprx == 0) {
@@ -169,6 +167,20 @@
 
 		if (isr_cb.rx_pid_err_cb != NULL) {
 			(*isr_cb.rx_pid_err_cb)();
+		}
+	}
+	
+	if ((PRI_RF_IntFlag(PRI_RF, R01_INT_TX_IRQ_Msk)) &&
+		((PRI_RF->R01_INT & R01_INT_TX_IRQ_MASK_Msk)?(false):(true))) {
+		if (((((enhc == 0) && (normal_m1 == 0)) || ((enhc == 1) && noack)) && !ptxprx) || ptxprx) {
+			while (!(PRI_RF->R01_INT & R01_INT_TX_DONE_IRQ_FLAG_Msk)) {
+			}			/* wait tx done */
+			PHY_strt_stp(LLHWC_PHY_STOP);
+			PRI_RF_SetTrxRamReady(PRI_RF, PRI_RF_MODE_SEL_TRX, 0);
+		}
+
+		if (isr_cb.tx_cb != NULL) {
+			(*isr_cb.tx_cb)();
 		}
 	}
 
@@ -188,22 +200,8 @@
 	normal_m1 = (uint8_t)((PRI_RF->R04_RX_CTL & R04_RX_CTL_NORMAL_M1_Msk) >> R04_RX_CTL_NORMAL_M1_Pos);
 	noack = PRI_RF_IsTxNoAckEn(PRI_RF);
 
-	if (PRI_RF_IntFlag(PRI_RF, R01_INT_TX_IRQ_Msk)) {
-		if (((((enhc == 0) && (normal_m1 == 0)) || ((enhc == 1) && noack)) && !ptxprx) || ptxprx) {
-			while (!(PRI_RF->R01_INT & R01_INT_TX_DONE_IRQ_FLAG_Msk));	/* wait tx done */
-			PHY_strt_stp(LLHWC_PHY_STOP);
-			PRI_RF_SetTrxRamReady(PRI_RF, PRI_RF_MODE_SEL_TRX, 0);
-			panchip_prf_ble_resume();
-		}
-
-		if (isr_cb.tx_cb != NULL) {
-			(*isr_cb.tx_cb)();
-		}
-		PRI_RF_ClearAllIrqEn(PRI_RF, ENABLE);
-		return 1;
-	}
-
-	if (PRI_RF_IntFlag(PRI_RF, R01_INT_TX_TIMEOUT_IRQ_Msk)) {
+	if ((PRI_RF_IntFlag(PRI_RF, R01_INT_TX_TIMEOUT_IRQ_Msk)) &&
+		((PRI_RF->R01_INT & R01_INT_TX_TIMEOUT_IRQ_MASK_Msk)?(false):(true))) {
 		while (!(PRI_RF->R01_INT & R01_INT_RX_DONE_IRQ_FLAG_Msk)); 		/* wait rx timeout */
 		PHY_strt_stp(LLHWC_PHY_STOP);
 		PRI_RF_SetTrxRamReady(PRI_RF, PRI_RF_MODE_SEL_TRX, 0);
@@ -216,7 +214,8 @@
 		return 1;
 	}
 
-	if (PRI_RF_IntFlag(PRI_RF, R01_INT_RX_IRQ_Msk)) {
+	if ((PRI_RF_IntFlag(PRI_RF, R01_INT_RX_IRQ_Msk)) &&
+		((PRI_RF->R01_INT & R01_INT_RX_IRQ_MASK_Msk)?(false):(true))) {
 		if (((enhc == 0) && (normal_m1 == 0) && ptxprx) || !ptxprx) {
 			while (!(PRI_RF->R01_INT & R01_INT_RX_DONE_IRQ_FLAG_Msk));	/* wait rx done */
 			PHY_strt_stp(LLHWC_PHY_STOP);
@@ -232,7 +231,8 @@
 		return 1;
 	}
 
-	if (PRI_RF_IntFlag(PRI_RF, R01_INT_RX_CRC_ERR_Msk)) {
+	if ((PRI_RF_IntFlag(PRI_RF, R01_INT_RX_CRC_ERR_Msk)) &&
+		((PRI_RF->R01_INT & R01_INT_RX_CRC_ERR_MASK_Msk)?(false):(true))) {
 		while (!(PRI_RF->R01_INT & R01_INT_RX_DONE_IRQ_FLAG_Msk));		/* wait rx crc err */
 		PHY_strt_stp(LLHWC_PHY_STOP);
 		PRI_RF_SetTrxRamReady(PRI_RF, PRI_RF_MODE_SEL_TRX, 0);
@@ -246,8 +246,8 @@
 		return 1;
 	}
 	
-	if (PRI_RF_IntFlag(PRI_RF, R01_INT_RX_LENGTH_ERR_Msk))
-    {
+	if ((PRI_RF_IntFlag(PRI_RF, R01_INT_RX_LENGTH_ERR_Msk)) &&
+		((PRI_RF->R01_INT & R01_INT_RX_LENGTH_ERR_MASK_Msk)?(false):(true))) {
         while (!(PRI_RF->R01_INT & R01_INT_RX_DONE_IRQ_FLAG_Msk));  //wait rx done
 		PHY_strt_stp(LLHWC_PHY_STOP);
         PRI_RF_SetTrxRamReady(PRI_RF, PRI_RF_MODE_SEL_TRX, 0);
@@ -260,8 +260,8 @@
 		return 1;
     }
 	
-	if (PRI_RF_IntFlag(PRI_RF, R01_INT_RX_ACCADDR_ERR_Msk))
-    {
+	if ((PRI_RF_IntFlag(PRI_RF, R01_INT_RX_ACCADDR_ERR_Msk)) &&
+		((PRI_RF->R01_INT & R01_INT_RX_ACCADDR_ERR_MASK_Msk)?(false):(true))) {
         while (!(PRI_RF->R01_INT & R01_INT_RX_DONE_IRQ_FLAG_Msk));  //wait rx done
 		PHY_strt_stp(LLHWC_PHY_STOP);
         PRI_RF_SetTrxRamReady(PRI_RF, PRI_RF_MODE_SEL_TRX, 0);
@@ -273,11 +273,27 @@
 		PRI_RF_ClearAllIrqEn(PRI_RF, ENABLE);
 		return 1;
     }
+	
+	if ((PRI_RF_IntFlag(PRI_RF, R01_INT_TX_IRQ_Msk)) &&
+		((PRI_RF->R01_INT & R01_INT_TX_IRQ_MASK_Msk)?(false):(true))) {
+		if (((((enhc == 0) && (normal_m1 == 0)) || ((enhc == 1) && noack)) && !ptxprx) || ptxprx) {
+			while (!(PRI_RF->R01_INT & R01_INT_TX_DONE_IRQ_FLAG_Msk));	/* wait tx done */
+			PHY_strt_stp(LLHWC_PHY_STOP);
+			PRI_RF_SetTrxRamReady(PRI_RF, PRI_RF_MODE_SEL_TRX, 0);
+			panchip_prf_ble_resume();
+		}
+
+		if (isr_cb.tx_cb != NULL) {
+			(*isr_cb.tx_cb)();
+		}
+		PRI_RF_ClearAllIrqEn(PRI_RF, ENABLE);
+		return 1;
+	}
 
 	return 0;
 }
 
-__ramfunc uint8_t panchip_prf_ble_handler(void)
+__weak uint8_t panchip_prf_ble_handler(void)
 {
 	if (panchip_prf_isr_resume_ble_cb() == 1) {
 		return 1;
@@ -757,7 +773,7 @@
     return status;
 }
 
-void panchip_prf_set_phy(prf_phy_t phy)
+__weak void panchip_prf_set_phy(prf_phy_t phy)
 {
 	rf_config.phy = phy;
 
@@ -794,14 +810,18 @@
 
 	ANA->LP_BUCK_3V = (ANA->LP_BUCK_3V & ~(0xFu << 2)) | ((buck_vout_trim_val & 0x0f) << 2);
 
-	rf_config.tx_power = tx_pwr;
-
 	if(rf_config.chip_mode != PRF_CHIP_MODE_SEL_BLE)
 	{
 		//	panchip_prf_reset();
 		__disable_irq();
 	}
 
+	if(tx_pwr <= 0)
+	{
+		tx_pwr = tx_pwr - 1;
+	}
+	
+	rf_config.tx_power = tx_pwr;
 	PHY_set_tx_pwr(tx_pwr);
 
 	if(rf_config.chip_mode != PRF_CHIP_MODE_SEL_BLE)
@@ -846,7 +866,7 @@
 		
 		if(trans_wait_time == 0)
 		{
-			panchip_prf_reduce_trx_time(true);			//trx 25us,rtx 26us
+			panchip_prf_reduce_trx_pre_post_delay_time(p_config, false);			//trx 25us,rtx 26us
 		}
 	}
 }
@@ -875,7 +895,7 @@
 	prf_delay_nop(30);
 }
 
-__ramfunc void ana_prf_ldo_dis(void)
+__ramfunc __weak void ana_prf_ldo_dis(void)
 {
 	#ifndef CONFIG_PRF_REDUCE_TRX_TRANS_TIME
     REG_WRITE_BITS(ANA->ANA_ADC_LDO, 0x01, 0x00);
@@ -885,3 +905,166 @@
 	prf_delay_nop(200);
 	#endif
 }
+
+__ramfunc void panchip_prf_reduce_trx_pre_post_delay_time(pan_prf_config_t *p_config, bool restore)
+{
+	extern uint32_t* g_phy_post_tx_ptr_prf;
+	extern uint32_t* g_phy_pre_tx_1M_ptr_prf;
+	extern uint32_t* g_phy_pre_rx_1M_ptr_prf;
+	extern uint32_t* g_phy_pre_tx_2M_ptr_prf;
+	extern uint32_t* g_phy_pre_rx_2M_ptr_prf;
+
+	if (0xffffffff == raw_phy_config_data[0]) {
+		raw_phy_config_data[0] = g_phy_post_tx_ptr_prf[2];
+		raw_phy_config_data[1] = g_phy_pre_tx_1M_ptr_prf[3];
+		raw_phy_config_data[2] = g_phy_pre_tx_1M_ptr_prf[6];
+		raw_phy_config_data[3] = g_phy_pre_rx_1M_ptr_prf[6];
+		raw_phy_config_data[4] = g_phy_pre_tx_2M_ptr_prf[3];
+		raw_phy_config_data[5] = g_phy_pre_tx_2M_ptr_prf[6];
+		raw_phy_config_data[6] = g_phy_pre_rx_2M_ptr_prf[6];
+	}
+
+	if (p_config->phy == PRF_PHY_1M) {
+		if (restore) {
+			g_phy_pre_tx_1M_ptr_prf[3] = raw_phy_config_data[1];
+			g_phy_pre_tx_1M_ptr_prf[6] = raw_phy_config_data[2];
+			g_phy_post_tx_ptr_prf[2] = raw_phy_config_data[0];
+			/* 21us */
+			g_phy_pre_rx_1M_ptr_prf[6] = raw_phy_config_data[3];
+		} else {
+			/* 24us */
+			g_phy_pre_tx_1M_ptr_prf[3] = (g_phy_pre_tx_1M_ptr_prf[3] & 0x00ffffff);
+			g_phy_pre_tx_1M_ptr_prf[6] = (g_phy_pre_tx_1M_ptr_prf[6] & 0x00ffffff) | (0x8 << 24);
+			g_phy_post_tx_ptr_prf[2] = g_phy_post_tx_ptr_prf[2] & 0x00ffffff;
+			/* 21us */
+			g_phy_pre_rx_1M_ptr_prf[6] = (g_phy_pre_rx_1M_ptr_prf[6] & 0x00ffffff) | (0x0 << 24);
+		}
+	} else if (p_config->phy == PRF_PHY_2M) {
+
+		if (restore) {
+			g_phy_pre_tx_2M_ptr_prf[3] = raw_phy_config_data[4];
+			g_phy_pre_tx_2M_ptr_prf[6] = raw_phy_config_data[5];
+			g_phy_post_tx_ptr_prf[2] = raw_phy_config_data[0];
+			/* 21us */
+			g_phy_pre_rx_2M_ptr_prf[6] = raw_phy_config_data[6];
+		} else {
+			/* 24us */
+			g_phy_pre_tx_2M_ptr_prf[3] = (g_phy_pre_tx_2M_ptr_prf[3] & 0x00ffffff);
+			g_phy_pre_tx_2M_ptr_prf[6] = (g_phy_pre_tx_2M_ptr_prf[6] & 0x00ffffff) | (0x8 << 24);
+			g_phy_post_tx_ptr_prf[2] = g_phy_post_tx_ptr_prf[2] & 0x00ffffff;
+			/* 21us */
+			g_phy_pre_rx_2M_ptr_prf[6] = (g_phy_pre_rx_2M_ptr_prf[6] & 0x00ffffff) | (0x0 << 24);
+		}
+	}
+	
+	extern uint32_t PHY_SeqRamInit(void);
+	PHY_SeqRamInit();
+}
+
+__ramfunc int16_t panchip_prf_set_trx_trans_time(pan_prf_config_t *p_config,
+					      prf_speed_sel_t speed,
+					      uint16_t transfer_time)
+{
+	int16_t trans_wait_time = 0;
+	uint32_t prescale_clk;
+	uint32_t write_phy_time = 0, write_phy_delay_time = 0;
+	uint32_t legency_time = 0;
+
+	if ((speed == PRF_TRANSFER_SPEED_4K) || (speed == PRF_TRANSFER_SPEED_8K)) {
+		panchip_prf_reduce_trx_pre_post_delay_time(p_config, false);
+	}
+
+	prescale_clk = PRI_RF_READ_REG_VALUE(PRI_RF, PHY1, IF_CLK_PRESCALE);
+	/* calculate phy write time */
+	if (p_config->trx_mode == PRF_TX_MODE) {
+		if (p_config->phy == PRF_PHY_1M) {
+			write_phy_time = (24 * prescale_clk + 8) * ((post_tx_interpacket_size >> 2));
+			if (p_config->work_mode == PRF_MODE_ENHANCE) {
+				write_phy_time += (24 * prescale_clk + 8) * ((pre_rx_interpacket_size >> 2) + 1) + 10;
+				/* calculate phy write delay time */
+				write_phy_delay_time = phy_time_cfg(p_config->phy - 1, 1);
+			}
+		} else if (p_config->phy == PRF_PHY_2M) {
+			write_phy_time = (24 * prescale_clk + 8) * ((post_tx_interpacket_size >> 2));
+			if (p_config->work_mode == PRF_MODE_ENHANCE) {
+				write_phy_time += (24 * prescale_clk + 8) * ((pre_rx_interpacket_2M_size >> 2) + 1) + 10;
+				/* calculate phy write delay time */
+				write_phy_delay_time = phy_time_cfg(p_config->phy - 1, 1);
+			}
+		}
+	}
+	if (p_config->trx_mode == PRF_RX_MODE) {
+		if (p_config->phy == PRF_PHY_1M) {
+			legency_time = RX_LEGENCY_1M;
+			write_phy_time = (24 * prescale_clk + 8) * ((post_rx_interpacket_size >> 2));
+			if (p_config->work_mode == PRF_MODE_ENHANCE) {
+				write_phy_time += (24 * prescale_clk + 8) * ((pre_tx_interpacket_size >> 2) + 1) + 10;
+				/* calculate phy write delay time */
+				write_phy_delay_time = phy_time_cfg(p_config->phy - 1, 0);
+			}
+		} else if (p_config->phy == PRF_PHY_2M) {
+			legency_time = RX_LEGENCY_2M;
+			write_phy_time = (24 * prescale_clk + 8) * ((post_rx_interpacket_size >> 2));
+			if (p_config->work_mode == PRF_MODE_ENHANCE) {
+				write_phy_time += (24 * prescale_clk + 8) * ((pre_tx_interpacket_2M_size >> 2) + 1) + 10;
+				/* calculate phy write delay time */
+				write_phy_delay_time = phy_time_cfg(p_config->phy - 1, 0);
+			}
+		}
+	}
+	/* phy clk is 32M, here right shift 5 bit means the time is microsecond */
+	write_phy_time >>= 5;
+	if (p_config->trx_mode == PRF_RX_MODE) {
+		trans_wait_time = transfer_time - write_phy_time - write_phy_delay_time
+				  - legency_time - RX_WINDOW;
+	} else {
+		trans_wait_time = transfer_time - write_phy_time - write_phy_delay_time - TX_WINDOW;
+	}
+
+	if (trans_wait_time < 0) {
+		return trans_wait_time;
+	}
+
+	if (p_config->work_mode == PRF_MODE_ENHANCE) {
+		PRI_RF_SetTrxTransWaitTime(PRI_RF, trans_wait_time);
+	}
+
+	return trans_wait_time;
+}
+
+void panchip_prf_phy_cfg_mode_set(uint32_t *phy_data, uint16_t len)
+{
+	#if(PHY_CFG_MODE == PHY_MODED_AGC_0X0F)
+	for(int i = 0; i < len; i++) {
+		if(phy_data[i] == 0x00d4a202) {
+			phy_data[i] = 0x00dea202;
+		} else if(phy_data[i] == 0x002fa202) {
+			phy_data[i] = 0x000fa202;
+			
+			break;
+		}
+	}
+	#elif(PHY_CFG_MODE == PHY_MODED_FORCE_GAIN_0X0F)
+	for(int i = 0; i < len; i++) {
+		if(phy_data[i] == 0x00d6a202) {
+			phy_data[i] = 0x00c2a202;
+		} else if(phy_data[i] == 0x00b7a202) {
+			phy_data[i] = 0x00c2a202;
+		} else if((phy_data[i] == 0x0006a202) && (phy_data[i + 1] == 0x000ca302)) {
+			phy_data[i] = 0x00dea202;
+		} else if(phy_data[i] == 0x00f2a202) {
+			phy_data[i] = 0x00dea202;
+		} else if(phy_data[i] == 0x00d4a202) {
+			phy_data[i] = 0x00dea202;
+		} else if(phy_data[i] == 0x0003a202) {
+			phy_data[i] = 0x000fa202;
+		}  else if(phy_data[i] == 0x0007a202) {
+			phy_data[i] = 0x000fa202;
+		}  else if(phy_data[i] == 0x002fa202) {
+			phy_data[i] = 0x000fa202;
+			
+			break;
+		}
+	}
+	#endif
+}

--
Gitblit v1.9.3