2017-06-30 17 views
0

私はUSB電源管理が初めてで、USBランタイムサスペンドとレジュームを実装する必要があります。 私の開発ボードにはDWC3 USBコントローラがあります。この仕様によると、このDWC3コントローラは3.5msecの間、強制サスペンドを生成します。DWC3 USBコントローラでUSBランタイムのサスペンドと再開の実装

SUSPEND/RESUME割り込みを生成できるようにこのコントローラを構成する方法を知りたいと思います。私はLinuxのUSBドライバを参照しましたが、私は適切な情報を見つけることができませんでした。

できるだけ詳細情報をお知らせください。

答えて

0

あなたが使用した用語を修正しましょう。

これは、サスペンドシグナリングとレジュームシグナリングと呼ばれます。

このDWC3コントローラは3.5ミリ秒の割り込みをSUSPEND生成スペックによります。

これは一般的な要件です。ホストに接続されているすべてのUSBデバイスまたはハブは、バス上で3ミリ秒のアイドル状態のシグナリング/ステートを検出すると、サスペンド状態に移行し始めます。

私はそれがサスペンド/レジューム割り込みを発生できるように、私はこのコントローラを設定する方法を知りたいです。

再び、その割り込み、シグナリング。これらの信号は生成できません。それらはコントローラによって生成されます。サスペンド信号を開始するようにコントローラに指示する必要があります。
これは、リンクステートU3のPORTSCレジスタを書き込むことで実行できます。

私はLinuxのUSBドライバを参照しましたが、適切な情報が見つかりませんでした。

私はあなたがシグナリングをサスペンド起動するリンク状態U3を記述する必要があること言ったように、一時停止や信号の再開有効にする方法についてはドライバー/ USB /コア/ hub.cにおけるAPIの下に確認してください。

usb_port_suspend() 
usb_port_resume() 

EDIT 1-サスペンドおよびシグナリング再開し、USB 3.0仕様を参照してくださいについての詳細を知るために。

EDIT 2 - ハブの場合、USB 3.0はグローバルサスペンドがもうサポートされないことを覚えています。したがって、常にその特定のポートがハブ上でサ​​スペンドします。

EDIT 3 - サスペンドに移行するための3 msの要件は、USB 2.0に固有であり、USB 3.0ポートでは無効です。

+0

ありがとうございます。私はあなたが示唆したようにそれを行います。 – user3267021

+0

@ user3267021もう1つの編集を追加しました – Shaibal

+0

こんにちはShaibal、 SUSPENDシグナル用コントローラを設定しても、どのようにSUSPENDシグナルが来たのかわかりますか?任意のコールバックメソッド? 私はこのコンセプトには本当に新しいです。 – user3267021

関連する問題