3 Copyright (c) 2006, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
18 Cirrus Logic 5430 Controller Driver
25 // Cirrus Logic 5430 Controller Driver
28 #ifndef _CIRRUS_LOGIC_5430_H_
29 #define _CIRRUS_LOGIC_5430_H_
32 #include <IndustryStandard/pci22.h>
34 // Cirrus Logic 5430 PCI Configuration Header values
36 #define CIRRUS_LOGIC_VENDOR_ID 0x1013
37 #define CIRRUS_LOGIC_5430_DEVICE_ID 0x00a8
38 #define CIRRUS_LOGIC_5430_ALTERNATE_DEVICE_ID 0x00a0
39 #define CIRRUS_LOGIC_5446_DEVICE_ID 0x00b8
42 // Cirrus Logic Graphical Mode Data
44 #define CIRRUS_LOGIC_5430_UGA_DRAW_MODE_COUNT 3
47 UINT32 HorizontalResolution
;
48 UINT32 VerticalResolution
;
51 } CIRRUS_LOGIC_5430_UGA_DRAW_MODE_DATA
;
54 // Cirrus Logic 5440 Private Data Structure
56 #define CIRRUS_LOGIC_5430_PRIVATE_DATA_SIGNATURE EFI_SIGNATURE_32 ('C', 'L', '5', '4')
61 EFI_PCI_IO_PROTOCOL
*PciIo
;
62 EFI_UGA_DRAW_PROTOCOL UgaDraw
;
65 // UGA Draw Private Data
67 BOOLEAN HardwareNeedsStarting
;
70 CIRRUS_LOGIC_5430_UGA_DRAW_MODE_DATA ModeData
[CIRRUS_LOGIC_5430_UGA_DRAW_MODE_COUNT
];
72 } CIRRUS_LOGIC_5430_PRIVATE_DATA
;
74 #define CIRRUS_LOGIC_5430_PRIVATE_DATA_FROM_UGA_DRAW_THIS(a) \
75 CR(a, CIRRUS_LOGIC_5430_PRIVATE_DATA, UgaDraw, CIRRUS_LOGIC_5430_PRIVATE_DATA_SIGNATURE)
80 extern EFI_DRIVER_BINDING_PROTOCOL gCirrusLogic5430DriverBinding
;
81 extern EFI_COMPONENT_NAME_PROTOCOL gCirrusLogic5430ComponentName
;
84 // Io Registers defined by VGA
86 #define CRTC_ADDRESS_REGISTER 0x3d4
87 #define CRTC_DATA_REGISTER 0x3d5
88 #define SEQ_ADDRESS_REGISTER 0x3c4
89 #define SEQ_DATA_REGISTER 0x3c5
90 #define GRAPH_ADDRESS_REGISTER 0x3ce
91 #define GRAPH_DATA_REGISTER 0x3cf
92 #define ATT_ADDRESS_REGISTER 0x3c0
93 #define MISC_OUTPUT_REGISTER 0x3c2
94 #define INPUT_STATUS_1_REGISTER 0x3da
95 #define DAC_PIXEL_MASK_REGISTER 0x3c6
96 #define PALETTE_INDEX_REGISTER 0x3c8
97 #define PALETTE_DATA_REGISTER 0x3c9
100 // UGA Draw Hardware abstraction internal worker functions
103 CirrusLogic5430UgaDrawConstructor (
104 CIRRUS_LOGIC_5430_PRIVATE_DATA
*Private
110 TODO: Add function description
114 Private - TODO: add argument description
118 TODO: add return values
124 CirrusLogic5430UgaDrawDestructor (
125 CIRRUS_LOGIC_5430_PRIVATE_DATA
*Private
131 TODO: Add function description
135 Private - TODO: add argument description
139 TODO: add return values
145 // EFI 1.1 driver model prototypes for Cirrus Logic 5430 UGA Draw
149 CirrusLogic5430DriverEntryPoint (
150 IN EFI_HANDLE ImageHandle
,
151 IN EFI_SYSTEM_TABLE
*SystemTable
157 TODO: Add function description
161 ImageHandle - TODO: add argument description
162 SystemTable - TODO: add argument description
166 TODO: add return values
172 // EFI_DRIVER_BINDING_PROTOCOL Protocol Interface
176 CirrusLogic5430ControllerDriverSupported (
177 IN EFI_DRIVER_BINDING_PROTOCOL
*This
,
178 IN EFI_HANDLE Controller
,
179 IN EFI_DEVICE_PATH_PROTOCOL
*RemainingDevicePath
185 TODO: Add function description
189 This - TODO: add argument description
190 Controller - TODO: add argument description
191 RemainingDevicePath - TODO: add argument description
195 TODO: add return values
202 CirrusLogic5430ControllerDriverStart (
203 IN EFI_DRIVER_BINDING_PROTOCOL
*This
,
204 IN EFI_HANDLE Controller
,
205 IN EFI_DEVICE_PATH_PROTOCOL
*RemainingDevicePath
211 TODO: Add function description
215 This - TODO: add argument description
216 Controller - TODO: add argument description
217 RemainingDevicePath - TODO: add argument description
221 TODO: add return values
228 CirrusLogic5430ControllerDriverStop (
229 IN EFI_DRIVER_BINDING_PROTOCOL
*This
,
230 IN EFI_HANDLE Controller
,
231 IN UINTN NumberOfChildren
,
232 IN EFI_HANDLE
*ChildHandleBuffer
238 TODO: Add function description
242 This - TODO: add argument description
243 Controller - TODO: add argument description
244 NumberOfChildren - TODO: add argument description
245 ChildHandleBuffer - TODO: add argument description
249 TODO: add return values