다음을 통해 공유


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_StartControllerCLIENT_StopController 콜백 함수는 인터럽트의 마스킹/마스크되지 않은 상태를 포함하여 모든 은행에 대한 컨텍스트를 적절하게 저장/복원해야 합니다. 인터럽트는 이 함수가 호출될 때 연결이 끊어지는 것을 보장하지 않지만, 여전히 연결되어 있는 경우 마스킹되도록 보장됩니다.

  • CONTROLLER_BASIC_INFORMATION 구조체에서 EmulateDebouncing 플래그를 설정합니다. 이렇게 하면 인터럽트에서 정전기 방전(예: 단추, 플러그 등)이 적용되는 장치의 노이즈 면역력이 크게 향상됩니다.

  • CONTROLLER_BASIC_INFORMATION 구조에서 EmulateActiveBoth 플래그를 설정하고 CLIENT_ReconfigureInterrupt 콜백 함수를 구현합니다. 이렇게 하면 ActiveBoth 인터럽트에서 신뢰할 수 있는 에지 검색이 보장됩니다.