网卡指示灯做GPIO的修改方法


修改kernel驱动代码:drivers/sstar/emac/hal/infinity6b0/mhal_emac.c

找到_MHal_EMAC_albany_clk_on()函数,注释掉:

/*

    #ifdef CONFIG_MS_PADMUX  
    if (0== mdrv_padmux_active())  
    #endif  
    {  
        if (pHal->pad_led_reg)  
        {  
            u32 u32Val;

            u32Val = *((volatile u32*)pHal->pad_led_reg);  
            u32Val = (u32Val & ~pHal->pad_led_msk) | (pHal->pad_led_val &
pHal->pad_led_msk);  
            *((volatile u32*)pHal->pad_led_reg) = u32Val;  
        }  
    }  
 */

找到_MHal_EMAC_albany_clk_off()函数,注释掉:

/*

    #ifdef CONFIG_MS_PADMUX  
    if (0 == mdrv_padmux_active())  
    #endif  
    {  
        if (pHal->pad_led_reg)  
        {  
            u32 u32Val;

            u32Val = *((volatile u32*)pHal->pad_led_reg);  
            u32Val = (u32Val & ~pHal->pad_led_msk);  
            *((volatile u32*)pHal->pad_led_reg) = u32Val;  
        }  
    }

*/

之后就可以通过/sys/class/gpio操作GPIO_PM_LED0和GPIO_PM_LED1引脚。