我在OMAP ARM (OMAP-L138)上运行嵌入式linux。其上的以太网控制器连接到外部PHY芯片。一切运行正常,除了在某些情况下,我希望节省电力和关闭PHY (但不是挂起整个系统)。
我知道Linux可以很容易地挂起PHY,因为当我将整个系统置于挂起到内存状态时,PHY确实会断电。
但是,我希望能够通过用户空间应用程序打开和关闭PHY,按照我的意愿打开和关闭它。
我该如何实现这一点?我对linux相当陌生,我可以用C语言编写用户空间应用程序来打开设备驱动程序并访问它们。
PHY通过MII接口连接,但我在/dev/下看不到mii。(例如,为了访问i2c驱动程序,我一直在执行fd = open( "/dev/i2c-0",O_RDWR );) mii驱动程序保存在哪里?我如何访问它?如果我能通过mii驱动程序读写几个寄存器到PHY芯片,那么我认为这是很容易实现的。
谢谢。
发布于 2011-02-04 05:19:46
找到运行PHY的驱动程序中的源代码(通过查看活动内核配置、查看内核消息、猜测或grepping)并通读它。
看看它是否支持这一点。看看它是否支持一种告诉它的方式。如果是这样,那就学会使用它。
如果没有,并且您从数据表中了解到硬件支持它,则添加一种机制,作为现有电源控制方案的一部分,或仅凭其自身自由操作。sysfs中的节点似乎是当前流行的通用接口,用于告诉内核简单的开/关选项设置,在/proc中使用稍微老一点的方式。
这也是其中一个领域,其中有一个(或几个)“正确”的解决方案可以让你的代码上线,还有许多更有争议的解决方案,你可能很快就能达到自己的目的,特别是当它们使用你已经熟悉的机制时。这是一个基于你的工作目的和未来的判断。
https://stackoverflow.com/questions/4847651
复制相似问题