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.