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 
24 Module Name:
25 
26   LpcWpc83667Policy.h
27 
28 Abstract:
29 
30   Protocol used for WPC83627 Policy definition.
31 -------------------------------------------------------------------------------
32    Rev   Date<MM/DD/YYYY>    Name    Description
33   -------------------------------------------------------------------------------
34   R01   < 4/22/2011>         LB     Update driver for Sio83627UGH support.
35   -------------------------------------------------------------------------------
36 **/
37 
38 #ifndef _WPC83627_POLICY_PROTOCOL_H_
39 #define _WPC83627_POLICY_PROTOCOL_H_
40 
41 EFI_FORWARD_DECLARATION (EFI_WPC83627_POLICY_PROTOCOL);
42 
43 #define EFI_WPC83627_POLICY_PROTOCOL_GUID \
44   { \
45     0xd3ecc567, 0x9fd5, 0x44c1, 0x86, 0xcf, 0x5d, 0xa7, 0xa2, 0x4f, 0x4b, 0x5d \
46   }
47 
48 #define EFI_WPC83627_COM1_ENABLE          0x01
49 #define EFI_WPC83627_COM2_ENABLE          0x01
50 
51 #define EFI_WPC83627_COM3_ENABLE          0x01
52 #define EFI_WPC83627_COM4_ENABLE          0x01
53 
54 #define EFI_WPC83627_LPT1_ENABLE          0x01
55 #define EFI_WPC83627_LPT1_ENABLE          0x01
56 #define EFI_WPC83627_FDD_ENABLE           0x01
57 #define EFI_WPC83627_FDD_WRITE_ENABLE     0x01
58 #define EFI_WPC83627_PS2_KBC_ENABLE       0x01
59 #define EFI_WPC83627_ECIR_ENABLE	  0x01
60 
61 #define EFI_WPC83627_COM1_DISABLE         0x00
62 #define EFI_WPC83627_COM2_DISABLE         0x00
63 
64 #define EFI_WPC83627_COM3_DISABLE         0x00
65 #define EFI_WPC83627_COM4_DISABLE         0x00
66 
67 #define EFI_WPC83627_LPT1_DISABLE         0x00
68 #define EFI_WPC83627_FDD_DISABLE          0x00
69 #define EFI_WPC83627_FDD_WRITE_PROTECT    0x00
70 #define EFI_WPC83627_PS2_KBC_DISABLE      0x00
71 #define EFI_WPC83627_ECIR_DISABLE         0x00
72 #define EFI_WPC83627_RESERVED_DEFAULT     0x00
73 
74 typedef struct {
75   UINT16  Com1               :1;             // 0 = Disable, 1 = Enable
76   UINT16  Lpt1               :1;             // 0 = Disable, 1 = Enable
77   UINT16  Floppy             :1;             // 0 = Disable, 1 = Enable
78   UINT16  FloppyWriteProtect :1;             // 0 = Write Protect, 1 = Write Enable
79   UINT16  Port80             :1;             // 0 = Disable, 1 = Enable
80   UINT16  CIR                :1;             // CIR enable or disable
81   UINT16  Ps2Keyboard        :1;             // 0 = Disable, 1 = Enable
82   UINT16  Ps2Mouse           :1;             // 0 = Disable, 1 = Enable
83   UINT16  Com2               :1;             // 0 = Disable, 1 = Enable
84 
85   UINT16  Com3               :1;             // 0 = Disable, 1 = Enable
86   UINT16  Com4               :1;             // 0 = Disable, 1 = Enable
87 
88   UINT16  Dac                :1;             // 0 = Disable, 1 = Enable
89   UINT16  Rsvd               :6;
90 } EFI_WPC83627_DEVICE_ENABLES;
91 
92 typedef enum {
93   LptModeOutput,
94   LptModeBiDirectional,
95   LptModeEpp,
96   LptModeEcp
97 } EFI_LPT_MODE;
98 
99 typedef struct _EFI_WPC83627_POLICY_PROTOCOL {
100   EFI_WPC83627_DEVICE_ENABLES DeviceEnables;
101   EFI_LPT_MODE              LptMode;
102 } EFI_WPC83627_POLICY_PROTOCOL;
103 
104 extern EFI_GUID gEfiLpcWpc83627PolicyProtocolGuid;
105 
106 #endif
107