1 /*++ 2 3 Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR> 4 5 This program and the accompanying materials are licensed and made available under 7 the terms and conditions of the BSD License that accompanies this distribution. 9 The full text of the license may be found at 11 http://opensource.org/licenses/bsd-license.php. 13 15 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 17 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 19 21 23 Module Name: 24 25 LpcDriver.h 26 27 Abstract: 28 29 EFI Lpc Driver for a Generic PC Platform 30 31 32 33 --*/ 34 35 #ifndef _LPC_DRIVER_H 36 #define _LPC_DRIVER_H 37 38 #include "LpcSio.h" 39 #include "LpcIsaAcpi.h" 40 41 #include "Protocol/IsaAcpi.h" 42 #include "Protocol/PciIo.h" 43 #include "Protocol/DriverBinding.h" 44 #include "Library/UefiBootServicesTableLib.h" 45 #include "IsaAcpiDxe/PcatIsaAcpi.h" 46 #include "IndustryStandard/Pci22.h" 47 #include "Protocol/LpcWpce791Policy.h" 48 49 #include <Library/DebugLib.h> 50 51 #define ICH_LPC_BRIDGE_BUS_DEV_FUNC 0x1F0000 52 53 // 54 // LPC device private data structure 55 // 56 //#define LPC_DEV_SIGNATURE 'W87X' 57 #define LPC_DEV_SIGNATURE SIGNATURE_32('X', '7', '8', 'W') //'W87X' 58 #define EFI_WPCE791_PS2_KEYBOARD_ENABLE 0x01 59 #define EFI_WPCE791_PS2_KEYBOARD_DISABLE 0x00 60 61 #define EFI_WPCE791_PS2_MOUSE_ENABLE 0x01 62 #define EFI_WPCE791_PS2_MOUSE_DISABLE 0x00 63 64 65 66 typedef struct { 67 UINTN Signature; 68 EFI_HANDLE Handle; 69 EFI_ISA_ACPI_PROTOCOL IsaAcpi; 70 EFI_PCI_IO_PROTOCOL *PciIo; 71 72 } LPC_DEV; 73 74 #define LPC_ISA_ACPI_FROM_THIS(a) BASE_CR (a, LPC_DEV, IsaAcpi) 75 76 // 77 // Driver entry point 78 // 79 EFI_STATUS 80 EFIAPI 81 LpcDriverEntryPoint ( 82 IN EFI_HANDLE ImageHandle, 83 IN EFI_SYSTEM_TABLE *SystemTable 84 ); 85 86 // 87 // Prototypes for Driver model protocol interface 88 // 89 EFI_STATUS 90 EFIAPI 91 LpcDriverSupported ( 92 IN EFI_DRIVER_BINDING_PROTOCOL *This, 93 IN EFI_HANDLE Controller, 94 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath 95 ); 96 97 EFI_STATUS 98 EFIAPI 99 LpcDriverStart ( 100 IN EFI_DRIVER_BINDING_PROTOCOL *This, 101 IN EFI_HANDLE Controller, 102 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath 103 ); 104 105 EFI_STATUS 106 EFIAPI 107 LpcDriverStop ( 108 IN EFI_DRIVER_BINDING_PROTOCOL *This, 109 IN EFI_HANDLE Controller, 110 IN UINTN NumberOfChildren, 111 IN EFI_HANDLE *ChildHandleBuffer 112 ); 113 114 VOID 115 LpcIoRead8 ( 116 IN UINT16 Port, 117 OUT UINT8 *Data 118 ); 119 120 VOID 121 LpcIoWrite8 ( 122 IN UINT16 Port, 123 IN UINT8 Data 124 ); 125 126 #endif 127