⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dm8606.h

📁 Davicom s DM9000A driver
💻 H
字号:
u16 dm8606_read(board_info_t *, int);
void dm8606_write(board_info_t *, int, u16);

u16 dm8606_read(board_info_t *db, int offset)
{
	int bval, i=0;
	bval = ( offset >> 5 ) | 0x80;
	iow(db, 0x33, bval);
	bval = offset;
	iow(db, 0x0c, bval);
	
	iow(db, 0xb, 0x8); 	/* Clear phyxcer read command */
	iow(db, 0xb, 0xc); 	/* Issue phyxcer read command */
	iow(db, 0xb, 0x8); 	/* Clear phyxcer read command */
	
	do {
		if ((!(ior(db,0xb) & 0x1)) || i>1000)
			break;
		i++;
	}while(1);
	iow(db, 0x33, 0);
	/* The read data keeps on REG_0D & REG_0E */
	return ( ior(db, DM9KS_EPDRH) << 8 ) | ior(db, DM9KS_EPDRL);
	
}

void dm8606_write(board_info_t *db, int offset, u16 value)
{
	int bval,i=0;
	bval = ( offset >> 5 ) | 0x80;
	iow(db, 0x33, bval);
	bval = offset;
	iow(db, 0x0c, bval);
	
	/* Fill the written data into REG_0D & REG_0E */
	iow(db, 0xd, (value & 0xff));
	iow(db, 0xe, ( (value >> 8) & 0xff));

	iow(db, 0xb, 0x8);	/* Clear phyxcer write command */
	iow(db, 0xb, 0xa);	/* Issue phyxcer write command */
	iow(db, 0xb, 0x8);	/* Clear phyxcer write command */
	do {
		if ((!(ior(db,0xb) & 0x1)) || i >1000)
			break;
		i++;
	}while(1);
	iow(db, 0x33, 0);
}

⌨️ 快捷键说明

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