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

📄 phy.c

📁 华为 HI3510 BOOTLOADER HIBOOT 源码包
💻 C
字号:
#include <linux-adapter.h>#ifdef __U_BOOT_OSHAL_NET__#include <config.h>#else#include <linux/config.h>#include <linux/module.h>#include <linux/errno.h>#include <linux/netdevice.h>#include <linux/etherdevice.h>#include <linux/kernel.h>#include <linux/types.h>#include <linux/fcntl.h>#include <linux/interrupt.h>#include <linux/ioport.h>#include <linux/in.h>#include <linux/skbuff.h>#include <linux/slab.h>#include <linux/spinlock.h>#include <linux/string.h>#include <linux/init.h>#include <linux/bitops.h>#include <linux/vmalloc.h>#include <linux/dma-mapping.h>#include <linux/string.h>#endif /* __U_BOOT_OSHAL_NET__ */#include "phy.h"static int genphy_probe(int port){	return 0;}static int genphy_init(int port){	return 0;}static void genphy_exit(int port){}static int genphy_set_static_mod(int port, unsigned long stat){	return 0;}static int genphy_set_auto_mod(int port){	return 0;}static unsigned long genphy_get_states(int port){	return 0;}static struct hisilicon_phy_device hisilicon_gen_phydev = {	.name	= "hisilicon_gen_phydev",	.id	= 0,	.probe	= genphy_probe,	.init	= genphy_init,	.exit	= genphy_exit,	.set_static_mod = genphy_set_static_mod,	.set_auto_mod   = genphy_set_auto_mod,	.get_states	= genphy_get_states};/* begin: define your phychip device here */extern struct hisilicon_phy_device realtek_phydev;extern struct hisilicon_phy_device intel_phydev;extern struct hisilicon_phy_device micrel_phydev;/* end */static struct hisilicon_phy_device *phy_devs[] = {#ifdef CONFIG_HISILICON_SF_PHYCHIP_REALTEK	&realtek_phydev, #endif#ifdef CONFIG_HISILICON_SF_PHYCHIP_INTEL	&intel_phydev,#endif#ifdef CONFIG_HISILICON_SF_PHYCHIP_MICREL	&micrel_phydev,#endif	/* default */	&hisilicon_gen_phydev};#define CHK_PHY_OPS(p,name) do{ if((p)->name == NULL)(p)->name = genphy_##name ; }while(0)struct hisilicon_phy_device *hisilicon_phy_connect(const char *name, unsigned long id){	struct hisilicon_phy_device *dev = phy_devs[0];	for(; dev!=(&hisilicon_gen_phydev); dev++)	{		if(dev->id != id)			continue;		if(strcmp(dev->name, name)==0)			break;	}	CHK_PHY_OPS(dev,probe);	CHK_PHY_OPS(dev,init);	CHK_PHY_OPS(dev,exit);	CHK_PHY_OPS(dev,set_static_mod);	CHK_PHY_OPS(dev,set_auto_mod);	CHK_PHY_OPS(dev,get_states);	return dev;}int hisilicon_phy_disconnect(struct hisilicon_phy_device * phydev){	return 0;}unsigned long hisilicon_phychip_extaddr(int port){	unsigned long phy_addr=0;	const char *s = CONFIG_HISILICON_PHYCHIP_EXTADDR_S;	while(port>0 && *s!='\0') {		if(*s++ != ',')			continue;		port--;	}	s += sscanf(s,"%lX",&phy_addr);	return phy_addr;}

⌨️ 快捷键说明

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