Partager via


Liste de vérification des exigences du contrôleur GPIO

Cette rubrique récapitule les configurations matérielles, microprogrammes et logicielles requises pour les appareils de contrôleur d’E/S usage général (GPIO) qui sont exposés à Windows.

Configuration matérielle requise pour le contrôleur GPIO

  • Le contrôleur GPIO est intégré au SoC (non connecté par un bus SPB).

    Augmente la fiabilité d’ActiveBoth émulé.

  • Les interruptions en mode niveau sont prises en charge.

    Obligatoire pour les fonctionnalités Émulées ActiveBoth et Émulation Debounce.

  • Les polarités d’interruption élevée et faible sont prises en charge.

    Obligatoire pour les fonctionnalités Émulées ActiveBoth et Émulation Debounce.

  • La polarité d’interruption peut être reprogrammée au moment de l’exécution.

    Obligatoire pour les fonctionnalités Émulées ActiveBoth et Émulation Debounce.

Configuration requise pour le microprogramme du contrôleur GPIO

  • Le contrôleur GPIO _CRS inclut toutes les ressources pour toutes les banques de broches dans le contrôleur.

  • Le contrôleur GPIO _CRS l’ordre des ressources fournit un mappage des interruptions de banque à système.

  • _AEI méthode et la ou les méthodes d’événement (_Exx, _Lxx ou _EVT) existent pour tous les événements ACPI signalés par GPIO.

  • Le contrôleur GPIO _DSM inclus si les interruptions ActiveBoth connectées au contrôleur sont déclarées logique haut au lieu de logique basse.

  • Implémentez _REG méthodes pour chaque contrôleur GPIO et empêchez l’utilisation de GeneralPurposeIO OpRegions si _REG indique que le gestionnaire de région n’est pas disponible.

  • Le délai d’expiration du délai d’expiration est inclus dans le descripteur de ressource GPIOInt pour toute interruption nécessitant un débouclage.

Configuration requise pour le pilote du contrôleur GPIO

  • Prise en charge de la version 2 de l’interface entre GpioClx et le pilote du contrôleur GPIO :

    • Implémentez la fonction de rappel CLIENT_QueryEnabledInterrupts . Cela aide grandement à diagnostiquer les tempêtes interrompues.

    • Si l’indicateur BankIdlePowerMgmtSupported est défini dans la structure CONTROLLER_BASIC_INFORMATION , le pilote du contrôleur GPIO doit implémenter les fonctions de rappel CLIENT_SaveBankHardwareContext et CLIENT_RestoreBankHardwareContext , et ces fonctions doivent enregistrer/restaurer le contexte bancaire de manière appropriée, y compris l’état masqué/masqué des interruptions. Notez que les interruptions ne sont pas garanties pour être déconnectées au moment de l’appel de cette fonction, mais, si elles sont toujours connectées, elles sont masquées.

    • Si l’indicateur DeviceIdlePowerMgmtSupported est défini dans la structure CONTROLLER_BASIC_INFORMATION , les fonctions de rappel CLIENT_StartController et CLIENT_StopController doivent enregistrer/restaurer le contexte pour toutes les banques de manière appropriée, y compris l’état masqué/masqué des interruptions. Notez que les interruptions ne sont pas garanties pour être déconnectées au moment de l’appel de cette fonction, mais, si elles sont toujours connectées, elles sont masquées.

  • Définissez l’indicateur ÉmulerDebouncing dans la structure CONTROLLER_BASIC_INFORMATION . Cela augmente considérablement l’immunité au bruit pour les appareils dont les interruptions sont sujettes à des décharges électrostatiques (tels que des boutons, des prises, etc.).

  • Définissez l’indicateur ÉmulationActiveBoth dans la structure CONTROLLER_BASIC_INFORMATION et implémentez la fonction de rappel CLIENT_ReconfigureInterrupt . Cela garantit une détection fiable des arêtes pour les interruptions ActiveBoth.