Compartilhar via


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.