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_SaveBankHardwareContext 和 CLIENT_RestoreBankHardwareContext 回调函数,并且这些函数必须适当保存/还原库上下文,包括中断的掩码/未掩码状态。 请注意,在调用此函数时,不保证中断断开连接,但如果中断仍连接,则保证掩码。
如果在 CONTROLLER_BASIC_INFORMATION 结构中设置 DeviceIdlePowerMgmtSupported 标志,则 CLIENT_StartController 和 CLIENT_StopController 回调函数必须适当保存/还原所有库的上下文,包括中断的掩码/未掩码状态。 请注意,在调用此函数时,不保证中断断开连接,但如果中断仍连接,则保证掩码。
在 CONTROLLER_BASIC_INFORMATION 结构中设置 EmulateDebouncing 标志。 这将显著提高对干扰受静电放电影响的设备(如按钮、插头等)的噪音免疫力。
在 CONTROLLER_BASIC_INFORMATION 结构中设置 EmulateActiveBoth 标志,并实现 CLIENT_ReconfigureInterrupt 回调函数。 这可确保为 ActiveBoth 中断提供可靠的边缘检测。