Condividi tramite


Elenco di controllo dei requisiti del controller GPIO

In questo argomento vengono riepilogati i requisiti hardware, firmware e software per per utilizzo generico i dispositivi controller IO (GPIO) esposti a Windows.

Requisiti hardware del controller GPIO

  • Il controller GPIO è integrato nel soC (non connesso da un bus SPB).

    Aumenta l'affidabilità di Emulate ActiveBoth.

  • Sono supportati gli interruzioni in modalità livello.

    Obbligatorio per le funzionalità di emulazione di ActiveBoth e Debounce Emulation.

  • Le polarità di interruzione elevate e basse sono supportate.

    Obbligatorio per le funzionalità di emulazione di ActiveBoth e Debounce Emulation.

  • La polarità di interruzione può essere programmata nuovamente in fase di esecuzione.

    Obbligatorio per le funzionalità di emulazione di ActiveBoth e Debounce Emulation.

Requisiti del firmware del controller GPIO

  • Il controller GPIO _CRS include tutte le risorse per tutte le banche pin nel controller.

  • Il controller GPIO _CRS l'ordinamento delle risorse fornisce il mapping degli interruzioni da banca a sistema.

  • _AEI metodo e metodi di evento (_Exx, _Lxx o _EVT) esistono per eventuali eventi ACPI con segnale GPIO.

  • Il controller GPIO _DSM incluso se qualsiasi interruzione di ActiveBoth connessa al controller è elevata la logica anziché la logica bassa.

  • Implementare metodi _REG per ogni controller GPIO e impedire l'uso di GeneralPurposeIO OpRegions se _REG indica che il gestore dell'area non è disponibile.

  • Il timeout di debounce è incluso nel descrittore di risorse GPIOInt per qualsiasi interruzione che richiede il debouncing.

Requisiti del driver del controller GPIO

  • Supporto della versione 2 dell'interfaccia tra GpioClx e il driver del controller GPIO:

    • Implementare la funzione di callback CLIENT_QueryEnabledInterrupts . Questo aiuta notevolmente a diagnosticare le tempeste di interruzione.

    • Se il flag BankIdlePowerMgmtSupported è impostato nella struttura CONTROLLER_BASIC_INFORMATION , il driver del controller GPIO deve implementare le funzioni di CLIENT_SaveBankHardwareContext e CLIENT_RestoreBankHardwareContext callback e queste funzioni devono salvare/ripristinare il contesto bancario in modo appropriato, incluso lo stato mascherato/non mascherato degli interruzioni. Si noti che gli interruzioni non sono garantiti di essere disconnessi al momento della chiamata a questa funzione, ma, se sono ancora connessi, sono garantiti mascherati.

    • Se il flag DeviceIdlePowerMgmtSupported è impostato nella struttura CONTROLLER_BASIC_INFORMATION , le funzioni di callback CLIENT_StartController e CLIENT_StopController devono salvare/ripristinare il contesto per tutte le banche in modo appropriato, incluso lo stato mascherato/non mascherato degli interruzioni. Si noti che gli interruzioni non sono garantiti di essere disconnessi al momento della chiamata a questa funzione, ma, se sono ancora connessi, sono garantiti mascherati.

  • Impostare il flag EmulateDebouncing nella struttura CONTROLLER_BASIC_INFORMATION . Questo aumenta significativamente l'immunità del rumore per i dispositivi i cui interruzioni sono soggetti a scarica elettrostatica (ad esempio pulsanti, plug e così via).

  • Impostare il flag EmulateActiveBoth nella struttura CONTROLLER_BASIC_INFORMATION e implementare la funzione di callback CLIENT_ReconfigureInterrupt . Ciò garantisce il rilevamento affidabile dei bordi per gli interruzioni di ActiveBoth.