GPIO コントローラーの要件チェック リスト
このトピックでは、Windows に公開されている General Purpose IO (GPIO) コントローラー デバイスのハードウェア、ファームウェア、およびソフトウェアの要件を概説します。
GPIO コントローラーのハードウェア要件
GPIO コントローラーは SoC に統合されます (SPB バスによって接続されません)。
エミュレートされた ActiveBoth の信頼性が向上します。
レベル モードの割り込みがサポートされています。
エミュレートされた ActiveBoth とデバウンス エミュレーションの両方の機能に必要です。
ハイおよびローの割り込みの極性はどちらともサポートされています。
エミュレートされた ActiveBoth とデバウンス エミュレーションの両方の機能に必要です。
割り込みの極性は実行時に再設定することができます。
エミュレートされた ActiveBoth とデバウンス エミュレーションの両方の機能に必要です。
GPIO コントローラーのファームウェア要件
GPIO コントローラー _CRS には、コントローラー内のすべてのピン バンクのすべてのリソースが含まれます。
GPIO コントローラー _CRS リソースの順序付けにより、バンク間の割り込みマッピングが提供されます。
_AEIメソッド、およびイベント メソッド (_Exx、_Lxx、または_EVT) は、GPIO 信号 ACPI イベントに対して存在します。
コントローラーに接続されている ActiveBoth 割り込みがロジックローではなく、ロジック ハイでアサートされている場合には、GPIO コントローラー _DSM が含まれます。
各 GPIO コントローラー_REGメソッドを実装し、_REG がリージョン ハンドラーを使用できないことを示している場合は、GeneralPurposeIO OpRegions を使用しません。
デバウンス タイムアウトは、デバウンスを必要とする割り込みの GPIOInt リソース記述子に含まれます。
GPIO コントローラー ドライバーの要件
GpioClx と GPIO コントローラー ドライバーの間のインターフェイスのバージョン 2 をサポートします。
CLIENT_QueryEnabledInterrupts コールバック関数を実装します。 これにより、割り込みストームの診断にとても役立ちます。
BankIdlePowerMgmtSupported フラグが CONTROLLER_BASIC_INFORMATION 構造体で設定されている場合、GPIO コントローラー ドライバーは、CLIENT_SaveBankHardwareContext および CLIENT_RestoreBankHardwareContext コールバック関数を実装する必要があります。これらの関数は、割り込みのマスクされた状態やマスクされていない状態を含め、バンク コンテキストを適切に保存 / 復元する必要があります。 割り込みは、この関数が呼び出された時点での切断を保証するものではありませんが、まだ接続されている場合は、マスクがかかることは保証されます。
DeviceIdlePowerMgmtSupported フラグが CONTROLLER_BASIC_INFORMATION 構造体で設定されている場合、CLIENT_StartController および CLIENT_StopController コールバック関数は、割り込みのマスクされた状態またはマスクされていない状態を含め、すべてのバンクのコンテキストを適切に保存 / 復元する必要があります。 割り込みは、この関数が呼び出された時点での切断を保証するものではありませんが、まだ接続されている場合は、マスクがかかることは保証されます。
EmulateDebouncing フラグを CONTROLLER_BASIC_INFORMATION 構造体に設定します。 これにより、割り込みが静電放電の影響を受けるデバイス (ボタン、プラグなど) のノイズ耐性が大幅に向上します。
EmulateActiveBoth フラグを CONTROLLER_BASIC_INFORMATION 構造体に設定し、CLIENT_ReconfigureInterrupt コールバック関数を実装します。 これにより、ActiveBoth 割り込みの信頼性の高いエッジ検出を確保できます。