static int SetMacReg(int Reg, ulong Value) { int RetVal = FALSE; if (*MAC_CSR_CMD & MAC_CSR_CMD_CSR_BUSY) { LAN9118_WARN("SetMacReg: previous command not complete\n"); goto done; } *MAC_CSR_DATA = Value; DELAY(1); *MAC_CSR_CMD = MAC_WR_CMD(Reg); DELAY(1); if (MacBusy(MAC_TIMEOUT) == TRUE) { LAN9118_WARN("SetMacReg: timeout waiting for response " "from MAC\n"); goto done; } RetVal = TRUE; done: return (RetVal); }
//-------------------------------------------------------------------------- // smsc911x_mac_write() // // Writes a register mapped through the MAC_CSR register //-------------------------------------------------------------------------- static void smsc911x_mac_write(int reg, ulong val) { while(MAC_CSR_CMD & MAC_CSR_CMD_CSR_BUSY) { continue; } MAC_CSR_DATA = val; MAC_CSR_CMD = MAC_WR_CMD(reg); while(MAC_CSR_CMD & MAC_CSR_CMD_CSR_BUSY) { continue; } }