// /** @file
// USB Keyboard Driver that manages USB keyboard and produces Simple Text Input(Ex) Protocol.
//
// USB Keyboard Driver consumes USB I/O Protocol and Device Path Protocol, and produces
// Simple Text Input Protocol and Simple Text Input Ex Protocol on USB keyboard devices.
// It initializes the keyboard layout according to info retrieved from HII database.
// If HII cannot provide the info, this module uses its carried default one if PCD allows.
// It manages the USB keyboard device via Asynchronous Interrupt Transfer of USB I/O Protocol,
// and parses the data according to USB HID documents.
// This module refers to following specifications:
// 1. Universal Serial Bus HID Firmware Specification, ver 1.11
// 2. Universal Serial Bus HID Usage Tables, ver 1.12
// 3. UEFI Specification, v2.1
//
// Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
//
// SPDX-License-Identifier: BSD-2-Clause-Patent
//
// **/


#string STR_MODULE_ABSTRACT             #language en-US "Manages USB keyboard and produces Simple Text Input(Ex) Protocol"

#string STR_MODULE_DESCRIPTION          #language en-US "USB Keyboard Driver consumes USB I/O Protocol and Device Path Protocol, and produces Simple Text Input Protocol and Simple Text Input Ex Protocol on USB keyboard devices. It initializes the keyboard layout according to information retrieved from the HII database. If HII cannot provide the information, this module uses its carried default one if PCD allows. It manages the USB keyboard device via Asynchronous Interrupt Transfer of USB I/O Protocol, and parses the data according to USB HID documents.<BR><BR>\n"
                                                        "This module refers to following specifications:<BR>\n"
                                                        "1. Universal Serial Bus HID Firmware Specification, ver 1.11<BR>\n"
                                                        "2. Universal Serial Bus HID Usage Tables, ver 1.12<BR>\n"
                                                        "3. UEFI Specification, v2.1<BR>"

