博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MDIO总线相关_1
阅读量:4285 次
发布时间:2019-05-27

本文共 1446 字,大约阅读时间需要 4 分钟。

##这里主要是driver端

在drivers/net/phy里面针对某一品牌的网络交换设备有一个文件 例如 smsc ,有一个smsc.c

该品牌有多个设备.每个设备对应一个结构体,因此组成了一个结构体数组

数组元素类型 : struct phy_driver

数组元素举例

{
.phy_id = 0x0007c0f0, /* OUI=0x00800f, Model#=0x0f */ .phy_id_mask = 0xfffffff0, .name = "SMSC LAN8710/LAN8720", .features = (PHY_BASIC_FEATURES | SUPPORTED_Pause | SUPPORTED_Asym_Pause), .flags = PHY_HAS_INTERRUPT | PHY_HAS_MAGICANEG, /* basic functions */ .config_aneg = genphy_config_aneg, .read_status = lan87xx_read_status, .config_init = smsc_phy_config_init, /* IRQ related */ .ack_interrupt = smsc_phy_ack_interrupt, .config_intr = smsc_phy_config_intr, .suspend = genphy_suspend, .resume = genphy_resume, .driver = {
.owner = THIS_MODULE, }}

针对数组中的每个元素都会注册一次

每个设备的注册流程

1/填充数组元素中的driver结构体(类型struct device_driver)

new_driver->driver.name = new_driver->name;	new_driver->driver.bus = &mdio_bus_type;	new_driver->driver.probe = phy_probe;	new_driver->driver.remove = phy_remove;

参数说明

1/

new_driver->name ="SMSC LAN911x Internal PHY";

2/

struct bus_type mdio_bus_type = {
.name = "mdio_bus", .match = mdio_bus_match, .pm = MDIO_BUS_PM_OPS, .dev_attrs = mdio_dev_attrs,};

3/

phy_probe 一品牌的设备共用一个
4/
phy_remove 一品牌的设备公用一个


2/注册

driver_register(&new_driver->driver);


配置内核

Device Drivers  --->	[*] Network device support  --->		<*>   PHY Device support and infrastructure  --->			< >   Drivers for SMSC PHYs

注意,最后匹配的并不是 phy_driver 和 phy_device

而是phy_driver中的driver和phy_device匹配

转载地址:http://nvigi.baihongyu.com/

你可能感兴趣的文章
linux同一台机器安装两台nginx
查看>>
让es进行后端进程的方式启动
查看>>
es2.4.5 离线安装head插件
查看>>
实战项目经验得到的常用linux命令(-)
查看>>
Mysql的设计规范和结构优化(-)
查看>>
查看是否安装mysql以及是否正在运行的mysql
查看>>
题目:在一个文件中有 10G 个整数,乱序排列,要求找出中位数。内存限制为 2G。只写出思路即可(内存限制为 2G的意思就是,可以使用2G的空间来运行程序,而不考虑这台机器上的其他软件的占用内存)。
查看>>
springboot注解中@controller和@restcontroller,以及@springbootApplication注解的区别和联系
查看>>
hbase 常用过滤器filter--------------------------有这篇文章就够了,舍我其谁!!!!
查看>>
【十问评估经营理念】
查看>>
Android调用天气预报的WebService简单例子
查看>>
出现An internal error occurred during: "Building workspace".的解决方法
查看>>
ext4.2入门简单小例子(button的事件--对话框的几种使用情况)
查看>>
nodejs:在windows系统中安装node.js 及第一个程序Hello World
查看>>
ExtJS 4.2心得和总结:布局系统详解(Ext.layout.container)
查看>>
数据结构几种排序算法详解和总结(java版)
查看>>
ExtJS4.2 登陆表单(Login)简单示例
查看>>
Node.js快速入门
查看>>
Node.js进行Web开发(一)--Express,路由控制,模板引擎
查看>>
阿里巴巴集团2014秋季校园招聘笔试题
查看>>