@@ -1401,6 +1401,7 @@ static int phy_power_on(struct rk_priv_data *bsp_priv, bool enable)
14011401 return 0 ;
14021402}
14031403
1404+ extern int get_board_id (void );
14041405static struct rk_priv_data * rk_gmac_setup (struct platform_device * pdev ,
14051406 struct plat_stmmacenet_data * plat ,
14061407 const struct rk_gmac_ops * ops )
@@ -1410,6 +1411,12 @@ static struct rk_priv_data *rk_gmac_setup(struct platform_device *pdev,
14101411 int ret ;
14111412 const char * strings = NULL ;
14121413 int value ;
1414+ int tx_delay_r201a = 0x21 , rx_delay_r201a = 0x15 ;
1415+ int tx_delay_r201b = 0x15 , rx_delay_r201b = 0x1c ;
1416+ bool is_r20 = get_board_id () == 3 ? true: false;
1417+ bool is_r201a = get_board_id () == 4 ? true: false;
1418+ bool is_r201b = get_board_id () == 5 ? true: false;
1419+ printk ("%s: #### boardid = %d\n" , __func__ , get_board_id ());
14131420
14141421 bsp_priv = devm_kzalloc (dev , sizeof (* bsp_priv ), GFP_KERNEL );
14151422 if (!bsp_priv )
@@ -1463,6 +1470,15 @@ static struct rk_priv_data *rk_gmac_setup(struct platform_device *pdev,
14631470 bsp_priv -> rx_delay = value ;
14641471 }
14651472
1473+ if (is_r201a || is_r20 ) {
1474+ bsp_priv -> tx_delay = tx_delay_r201a ;
1475+ bsp_priv -> rx_delay = rx_delay_r201a ;
1476+ } else if (is_r201b ) {
1477+ bsp_priv -> tx_delay = tx_delay_r201b ;
1478+ bsp_priv -> rx_delay = rx_delay_r201b ;
1479+ }
1480+ dev_info (dev , "Tune TX delay(0x%x) RX delay(0x%x).\n" , bsp_priv -> tx_delay , bsp_priv -> rx_delay );
1481+
14661482 bsp_priv -> grf = syscon_regmap_lookup_by_phandle (dev -> of_node ,
14671483 "rockchip,grf" );
14681484
0 commit comments