GPIO 控制器要求清单

本主题总结了向 Windows 公开的常规用途 IO (GPIO) 控制器设备的硬件、固件和软件要求。

GPIO 控制器硬件要求

  • GPIO 控制器集成到 SoC(未通过 SPB 总线连接)。

    提高模拟 ActiveBoth 的可靠性。

  • 支持级别模式中断。

    对于模拟 ActiveBoth 和 Debounce 仿真功能是必需的。

  • 支持高中断和低中断极性。

    对于模拟 ActiveBoth 和 Debounce 仿真功能是必需的。

  • 中断极性可以在运行时重新编程。

    对于模拟 ActiveBoth 和 Debounce 仿真功能是必需的。

GPIO 控制器固件要求

  • GPIO 控制器 _CRS 包括控制器中所有固定库的所有资源。

  • GPIO 控制器 _CRS 资源排序提供库到系统中断映射。

  • 对于任何发出 GPIO 信号的 ACPI 事件,存在 _AEI 方法和事件方法(_Exx、_Lxx 或 _EVT)。

  • 如果连接到控制器的任何 ActiveBoth 中断断言为逻辑高而不是逻辑低,则包含 GPIO 控制器 _DSM。

  • 为每个 GPIO 控制器实现 _REG 方法,如果 _REG 指示区域处理程序不可用,则防止使用 GeneralPurposeIO OpRegions。

  • 对于需要解除的任何中断,GPIOInt 资源描述符中包含解除超时。

GPIO 控制器驱动程序要求

  • 支持 GpioClx 和 GPIO 控制器驱动程序之间的接口版本 2:

    • 实现 CLIENT_QueryEnabledInterrupts 回调函数。 这可有效地帮助诊断中断风暴。

    • 如果在 CONTROLLER_BASIC_INFORMATION 结构中设置 BankIdlePowerMgmtSupported 标志,GPIO 控制器驱动程序必须实现 CLIENT_SaveBankHardwareContextCLIENT_RestoreBankHardwareContext 回调函数,并且这些函数必须适当保存/还原库上下文,包括中断的掩码/未掩码状态。 请注意,在调用此函数时,不保证中断断开连接,但如果中断仍连接,则保证掩码。

    • 如果在 CONTROLLER_BASIC_INFORMATION 结构中设置 DeviceIdlePowerMgmtSupported 标志,则 CLIENT_StartControllerCLIENT_StopController 回调函数必须适当保存/还原所有库的上下文,包括中断的掩码/未掩码状态。 请注意,在调用此函数时,不保证中断断开连接,但如果中断仍连接,则保证掩码。

  • CONTROLLER_BASIC_INFORMATION 结构中设置 EmulateDebouncing 标志。 这将显著提高对干扰受静电放电影响的设备(如按钮、插头等)的噪音免疫力。

  • CONTROLLER_BASIC_INFORMATION 结构中设置 EmulateActiveBoth 标志,并实现 CLIENT_ReconfigureInterrupt 回调函数。 这可确保为 ActiveBoth 中断提供可靠的边缘检测。