2011-01-31 15 views
1

OMAP ARM(OMAP-L138)で組み込みLinuxを実行しています。これのイーサネットコントローラは外部PHYチップに接続されています。いくつかの状況を除いて、すべてがうまくいきます。私は電源を節約し、PHYをパワーダウンしたいですが(システム全体を中断しないでください)。イーサネットの電源を切るPHY

LinuxがPHYを簡単に中断できることはわかっています。システム全体をRAMからサスペンド状態にすると、PHYは本当に電源を落とします。

しかし、私がしたいことは、ユーザー空間アプリケーションを使ってPHYをオン/オフにして、私が望むようにオンとオフにすることです。

どうすればよいですか?私はかなりLinuxで新しく、Cでユーザスペースアプリケーションを作成して、デバイスドライバを開いてアクセスすることができます。

PHYはMIIインターフェイスで接続されていますが、/ dev /にmiiが表示されません。 (つまり、i2cドライバにアクセスするために、fd = open( "/ dev/i2c-0"、O_RDWR);)miiドライバはどこに保管されていますか?どうすればそれにアクセスできますか?私がmiiドライバを介してPHYチップにいくつかのレジスタを読み書きできるのであれば、それは容易に達成できると思います。

ありがとうございました。

+0

具体的な回答はありませんが、ethtoolが必要なことをする可能性があります(ただし、適切なオプションは見つけられません)。私が知っている限り、デバイスドライバは、サスペンド-to-RAM。あなたは幸運にも、ioctlがあなたの望むことをすることができるかもしれませんが、デバイスドライバまでは同じです。 –

答えて

2

(実行中のカーネルコンフィグレーションを見て、カーネルメッセージを見たり、推測したり、greppingしたりして)ドライバがPHYを実行しているものであればソースコードを見つけ、それを読んでください。

これがサポートされているかどうかを確認してください。それがそれを伝える方法をサポートしているかどうかを確認してください。そうなら、それを使用する方法を学んでください。

ハードウェアがサポートしていることをデータシートから知っている場合は、既存の電源制御方式の一部として、または単独で自由に機構を追加します。 sysfsのノードは、カーネルに単純なオン/オフオプションの設定を伝えるための、現在の流行の汎用インターフェースであるように思われます。これは/ procでやや古い方法です。

これは、あなたのコードを上流に送るために受け入れられる1つ(または少数)の「正しい」解決策があり、おそらくあなた自身のために働くことができる多くの論争の多い解決策がある分野の1つですあなたがすでに慣れ親しんでいるメカニズムを使用している場合は、非常に迅速に目的を達成できます。それは、あなたの仕事の目的と未来に基づく判断の呼び出しです。

関連する問題