Lista de verificação de requisitos do controlador GPIO
Este tópico resume os requisitos de hardware, firmware e software para Uso Geral dispositivos controladores de E/S (GPIO) expostos ao Windows.
Requisitos de hardware do controlador GPIO
O controlador GPIO é integrado ao SoC (não conectado por um barramento SPB).
Aumenta a confiabilidade do ActiveBoth emulado.
Há suporte para interrupções no modo de nível.
Necessário para os recursos ActiveBoth e Debounce Emulation emulados.
Há suporte para polaridades de interrupção alta e baixa.
Necessário para os recursos ActiveBoth e Debounce Emulation emulados.
A polaridade de interrupção pode ser re-programada em tempo de execução.
Necessário para os recursos ActiveBoth e Debounce Emulation emulados.
Requisitos de firmware do controlador GPIO
O controlador gpio _CRS inclui todos os recursos para todos os bancos de pinos no controlador.
O controlador gpio _CRS ordenação de recursos fornece mapeamento de interrupção de banco para sistema.
_AEI método e métodos de evento (_Exx, _Lxx ou _EVT) existem para qualquer evento ACPI sinalizado por GPIO.
O controlador gpio _DSM incluído se qualquer interrupção activeboth conectada ao controlador for declarada como alta lógica em vez de lógica baixa.
Implemente _REG métodos para cada controlador GPIO e impeça o uso de GeneralPurposeIO OpRegions se _REG indicar que o manipulador de região não está disponível.
O tempo limite de debounce está incluído no descritor de recursos GPIOInt para qualquer interrupção que exija debouncing.
Requisitos do driver do controlador GPIO
Suporte à versão 2 da interface entre GpioClx e o driver do controlador GPIO:
Implemente a função de retorno de chamada CLIENT_QueryEnabledInterrupts. Isso ajuda muito no diagnóstico de tempestades de interrupção.
Se o sinalizador BankIdlePowerMgmtSupported estiver definido na estrutura CONTROLLER_BASIC_INFORMATION , o driver do controlador GPIO deverá implementar as funções de retorno de chamada CLIENT_SaveBankHardwareContext e CLIENT_RestoreBankHardwareContext e essas funções deverão salvar/restaurar o contexto bancário adequadamente, incluindo o estado mascarado/desmascarado das interrupções. Observe que as interrupções não têm garantia de serem desconectadas no momento em que essa função é chamada, mas, se ainda estiverem conectadas, elas terão a garantia de serem mascaradas.
Se o sinalizador DeviceIdlePowerMgmtSupported estiver definido na estrutura CONTROLLER_BASIC_INFORMATION , as funções de retorno de chamada CLIENT_StartController e CLIENT_StopController deverão salvar/restaurar o contexto para todos os bancos adequadamente, incluindo o estado mascarado/desmascarado das interrupções. Observe que as interrupções não têm garantia de serem desconectadas no momento em que essa função é chamada, mas, se ainda estiverem conectadas, elas terão a garantia de serem mascaradas.
Defina o sinalizador EmulateDebouncing na estrutura CONTROLLER_BASIC_INFORMATION . Isso aumenta significativamente a imunidade de ruído para dispositivos cujas interrupções estão sujeitas à descarga eletrostática (como botões, plugs e assim por diante).
Defina o sinalizador EmulateActiveBoth na estrutura CONTROLLER_BASIC_INFORMATION e implemente a função de retorno de chamada CLIENT_ReconfigureInterrupt . Isso garante a detecção de borda confiável para interrupções do ActiveBoth.