USB Type-C Windows システムにおけるデュアルロール コントローラーの起動

まとめ

  • OEM は、USB Type-C コネクタを備えたデュアル ロール コントローラーのタスクを起動します

適用対象

  • Windows 10 Mobile

重要な API

USB ロール スイッチ ドライバー (URS) は、WDF クラス拡張機能とそのクライアント ドライバーのセットであり、デュアル ロール コントローラーのロール切り替え機能を処理します。 システムにデュアル ロール コントローラーがある場合は、システムの USB Type-C コネクタのパートナー ポートに接続されているデバイスに応じて、システムのロールを切り替えることができます。 これにより、有線ドッキングなどの興味深いシナリオが可能になります。

Windows によってデュアル ロール USB コントローラーをホスト モードまたはファンクション モードに構成するように、システムを設計することもできます。 このような設計では、USB ロール スイッチ スタックが使用されます。 システムが Synopsys または ChipIdea デュアル ロール コントローラーを使用していない場合は、システムのデュアル ロール コントローラー用に USB ロール スイッチ クライアント ドライバーを作成する必要があります。

Note

Windows によってデュアル ロール USB ポートをホスト モードまたはファンクション モードに構成するように、システムを設計することもできます。 このような設計では、USB ロール スイッチ スタックが使用されます。 システムが Synopsys デュアル ロール コントローラーを使用していない場合は、システムのデュアル ロール コントローラー用に USB ロール スイッチ クライアント ドライバーを作成する必要があります。

クライアント ドライバーは、ハードウェア イベントを処理し、クラス拡張機能に報告します。 ロール切り替えハードウェア イベントの場合、URS はロールを決定し、その結果、そのロールのドライバーを読み込みます。 コントローラーがホスト ロールの場合は、USB ホスト側ドライバーが読み込まれます。ファンクション ロールの場合は、デバイス側ドライバーが読み込まれます。

USB micro-AB コネクタを備えたシステムでは、デュアル ロール コントローラーのクライアント ドライバーは、割り当てられた割り込みリソースを使用して、コネクタの ID ピンに基づいて決定を行います。 USB Type-C コネクタを備えたシステムでは、この決定は、コネクタのクライアント ドライバーによって行われます。 このドライバーは、CC ピンに基づいてロールを決定し、結果を USB コネクタ マネージャー (UCM) に報告します。USB コネクタ マネージャー (UCM) はその結果をロール スイッチ ドライバーに送信します。

usb role switch drivers.

1. システム ACPI で URS ドライバーを有効にする

URS を使用するには、ACPI を変更する必要があります。 USB デバイス側ドライバーが読み込まれるデバイスを、URS の読み込みを必要とするデバイスに置き換えます。 ACPI 定義を変更する方法の詳細については、「USB デュアル ロール ドライバー スタック アーキテクチャ」に示されている例を参照してください。 割り込みリソースは必ず削除してください。 USB Type-C では必要ありません。

2. デュアル ロール コントローラー ドライバーの USB ロール スイッチ ドライバーを読み込む

usb role switch stack.

  • システムで ChipIdea および Synopsys コントローラーを使用している場合は、Microsoft が提供する ChipIdea および Synopsys コントローラー用のインボックス クライアント ドライバーを読み込みます。

    ドライバーを読み込むには、ドライバーのインストール パッケージを作成する必要があります。 INF ファイルには、サポートされているコントローラーのインボックス INF を参照する Include-Needs ディレクティブが必要です。 インボックス INF には、他のコントローラーのハードウェア ID が既に含まれています。 デュアル ロール コントローラーのハードウェア ID がインボックス INF のハードウェア ID に含まれていない場合には、この手順が必要になります。 SoC ベンダーにご確認ください。

    詳細については、「ドライバーのインストール パッケージ」の「URS ドライバー パッケージ」を参照してください。

  • システムでカスタム コントローラーを使用している場合は、ロール スイッチ クライアント ドライバーを作成します。 詳細については、以下を参照してください:

    USB デュアルロール コントローラー ドライバーのプログラミング参照