md_cfg.c

来自「基于SIIGX的PCIe的Kit」· C语言 代码 · 共 51 行

C
51
字号

#include "md_cfg.h"



/*
 * read_reg()
 *  md control interface register read
 * returns 0 on success, 1 for fail.
 */
alt_u8 read_reg(md_t *phy, alt_u8 reg, alt_u16 *buf)
{
  alt_u32 tmr;
  
  phy->ctl.rw=0;
  phy->addr.reg_addr=reg;
  phy->ctl.enable=1;
  while(phy->ctl.ready == 0)
  {
    if(tmr++ == 0xffffffff)
     return(1);
  }
  phy->ctl.enable=0;
  *buf = phy->read;
  return(0);
}


/*
 * write_reg()
 *  md control interface register write
 * returns 0 on success, 1 for fail.
 */
alt_u8 write_reg(md_t *phy, alt_u8 reg, alt_u16 data)
{
  alt_u32 tmr;

  phy->ctl.rw=1;
  phy->addr.reg_addr=reg;
  phy->write = data;
  phy->ctl.enable=1;
  while(phy->ctl.ready == 0)
  {
    if(tmr++ == 0xffffffff)
     return(1);
  }
  phy->ctl.enable=0;
  return(0);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?