1 /*++
2 
3   Copyright (c) 2004  - 2014, Intel Corporation. All rights reserved.<BR>
4 
5 
6   This program and the accompanying materials are licensed and made available under
7 
8   the terms and conditions of the BSD License that accompanies this distribution.
9 
10   The full text of the license may be found at
11 
12   http://opensource.org/licenses/bsd-license.php.
13 
14 
15 
16   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
17 
18   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
19 
20 
21 
22 
23 Module Name:
24 
25     LpcSio.h
26 
27 Abstract:
28 
29     Lpc driver's sio interface
30 
31 
32 
33 --*/
34 
35 #ifndef _LPC_SIO_H
36 #define _LPC_SIO_H
37 
38 #include "Protocol/PciRootBridgeIo.h"
39 
40 #define VARSIOINSTALLED L"VarSIOProcotolInstalled"
41 
42 //
43 // Port address
44 //
45 #define CONFIG_PORT               0x04E
46 #define INDEX_PORT                0x04E
47 #define DATA_PORT                 INDEX_PORT + 1
48 
49 //
50 // Logical Device
51 //
52 #define SIO_COM                   0x3
53 #define SIO_MSWC                  0x4
54 #define SIO_MOUSE                 0x5
55 #define SIO_KEYBOARD              0x6
56 #define SIO_SHM                   0xF
57 #define SIO_PM1                   0x11
58 #define SIO_PM2                   0x12
59 #define SIO_PM3                   0x17
60 #define SIO_ESHM                  0x1D
61 
62 //
63 // Global register
64 //
65 #define REG_LOGICAL_DEVICE        0x07
66 #define REG_DEVICE_ID             0x20
67 #define SIO_CONFIG_1              0x21
68 #define REG_CHIP_REV              0x24
69 #define SIO_CONFIG_5              0x25
70 #define SIO_CONFIG_6              0x26
71 #define REG_DEVICE_REV            0x27
72 #define SIO_CONFIG_9              0x29
73 #define SIO_CONFIG_D              0x2D
74 
75 #define ACTIVATE                  0x30
76 #define BASE_ADDRESS_HIGH         0x60
77 #define BASE_ADDRESS_LOW          0x61
78 #define BASE_ADDRESS_HIGH2        0x62
79 #define BASE_ADDRESS_LOW2         0x63
80 #define PRIMARY_INTERRUPT_SELECT  0x70
81 #define DMA_CHANNEL_SELECT        0x74
82 
83 EFI_STATUS
84 InitializeLpcSio (
85   IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL  *RootBridgeIo
86   );
87 
88 //
89 // Prototypes for the sio internal function
90 //
91 //
92 // Internal function
93 //
94 VOID
95 LPCWPCE791SetDefault (
96   VOID
97   );
98 
99 VOID
100 WriteRegisterAndSaveToScript (
101   IN  UINT8   Index,
102   IN  UINT8   Data
103   );
104 
105 VOID
106 FloppyWriteProtect (
107   VOID
108   );
109 
110 VOID
111 DisableLogicalDevice (
112   UINT8       DeviceId
113   );
114 
115 #endif
116