Home | History | Annotate | Download | only in Wpce791
      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