GPIO 컨트롤러 요구 사항 검사 목록
이 항목에서는 Windows에 노출되는 범용 IO(IO) 컨트롤러 디바이스에 대한 하드웨어, 펌웨어 및 소프트웨어 요구 사항을 요약합니다.
GPIO 컨트롤러 하드웨어 요구 사항
GPIO 컨트롤러는 SoC에 통합됩니다(SPB 버스로 연결되지 않음).
에뮬레이트된 ActiveBoth의 안정성을 높입니다.
수준 모드 인터럽트는 지원됩니다.
에뮬레이트된 ActiveBoth 및 Debounce 에뮬레이션 기능에 모두 필요합니다.
높음 및 낮은 인터럽트 극성이 모두 지원됩니다.
에뮬레이트된 ActiveBoth 및 Debounce 에뮬레이션 기능에 모두 필요합니다.
인터럽트 극성은 런타임에 다시 프로그래밍할 수 있습니다.
에뮬레이트된 ActiveBoth 및 Debounce 에뮬레이션 기능에 모두 필요합니다.
GPIO 컨트롤러 펌웨어 요구 사항
GPIO 컨트롤러 _CRS 컨트롤러의 모든 핀 뱅크에 대한 모든 리소스를 포함합니다.
GPIO 컨트롤러 _CRS 리소스 순서는 은행-시스템 인터럽트 매핑을 제공합니다.
GPIO 신호 ACPI 이벤트에 대해 _AEI 메서드 및 이벤트 메서드(_Exx, _Lxx 또는 _EVT)가 있습니다.
GPIO 컨트롤러 _DSM 컨트롤러에 연결된 ActiveBoth 인터럽트에서 논리 낮음이 아닌 높은 어설션된 논리인 경우 포함됩니다.
각 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 콜백 함수는 인터럽트의 마스킹/마스크되지 않은 상태를 포함하여 모든 은행에 대한 컨텍스트를 적절하게 저장/복원해야 합니다. 인터럽트는 이 함수가 호출될 때 연결이 끊어지는 것을 보장하지 않지만, 여전히 연결되어 있는 경우 마스킹되도록 보장됩니다.
CONTROLLER_BASIC_INFORMATION 구조체에서 EmulateDebouncing 플래그를 설정합니다. 이렇게 하면 인터럽트에서 정전기 방전(예: 단추, 플러그 등)이 적용되는 장치의 노이즈 면역력이 크게 향상됩니다.
CONTROLLER_BASIC_INFORMATION 구조에서 EmulateActiveBoth 플래그를 설정하고 CLIENT_ReconfigureInterrupt 콜백 함수를 구현합니다. 이렇게 하면 ActiveBoth 인터럽트에서 신뢰할 수 있는 에지 검색이 보장됩니다.