我在OMAP ARM(OMAP-L138)上运行嵌入式Linux。其上的以太网控制器连接到外部PHY芯片。一切都运行正常,除了在某些情况下,我想节省电源和电源(但不要暂停整个系统)。
我知道Linux可以轻松暂停PHY,因为当我将整个系统置于暂停状态时,PHY确实会断电。
但是,我希望能够通过用户空间应用程序打开和关闭PHY,并根据需要打开和关闭它。
我如何实现这一目标?我对linux很新,我可以在C中编写用户空间应用程序来打开设备驱动程序并访问它们。
PHY通过MII接口连接,但我没有在/ dev /下看到mii? (即,为了访问i2c驱动程序,我一直在做fd = open(“/ dev / i2c-0”,O_RDWR);)mii驱动程序保存在哪里?我该如何访问它?如果我只能通过mii驱动程序读取和写入一些寄存器到PHY芯片,那么我认为这很容易实现。
感谢。
答案 0 :(得分:2)
在运行PHY的任何驱动程序中查找源代码(通过查看活动内核配置,查看内核消息,猜测或grepping)并通读它。
看看它是否支持这一点。看看它是否支持告诉它的方法。如果是这样,请学会使用它。
如果没有,并且您从数据表中了解硬件支持它,请添加一种机制,作为现有电源控制方案的一部分,或者单独自由编译。 sysfs中的一个节点似乎是当前流行的通用接口,用于告诉内核简单的开/关选项设置,以/稍稍旧的方式执行它。
这也是有一个(或几个)“正确”解决方案可以接受上游代码的领域之一,以及许多更有争议的解决方案,你可能可以为自己的目的而工作很快,特别是如果他们使用你已经熟悉的机制。这是基于你工作的目的和未来的判断。