2 Cirrus Logic 5430 Controller Driver
4 Copyright (c) 2006, Intel Corporation
5 All rights reserved. This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
16 // Cirrus Logic 5430 Controller Driver
19 #ifndef _CIRRUS_LOGIC_5430_H_
20 #define _CIRRUS_LOGIC_5430_H_
23 #include <IndustryStandard/pci22.h>
25 // Cirrus Logic 5430 PCI Configuration Header values
27 #define CIRRUS_LOGIC_VENDOR_ID 0x1013
28 #define CIRRUS_LOGIC_5430_DEVICE_ID 0x00a8
29 #define CIRRUS_LOGIC_5430_ALTERNATE_DEVICE_ID 0x00a0
30 #define CIRRUS_LOGIC_5446_DEVICE_ID 0x00b8
33 // Cirrus Logic Graphical Mode Data
35 #define CIRRUS_LOGIC_5430_UGA_DRAW_MODE_COUNT 3
38 UINT32 HorizontalResolution
;
39 UINT32 VerticalResolution
;
42 } CIRRUS_LOGIC_5430_UGA_DRAW_MODE_DATA
;
45 // Cirrus Logic 5440 Private Data Structure
47 #define CIRRUS_LOGIC_5430_PRIVATE_DATA_SIGNATURE EFI_SIGNATURE_32 ('C', 'L', '5', '4')
52 EFI_PCI_IO_PROTOCOL
*PciIo
;
53 EFI_UGA_DRAW_PROTOCOL UgaDraw
;
56 // UGA Draw Private Data
58 BOOLEAN HardwareNeedsStarting
;
61 CIRRUS_LOGIC_5430_UGA_DRAW_MODE_DATA ModeData
[CIRRUS_LOGIC_5430_UGA_DRAW_MODE_COUNT
];
63 } CIRRUS_LOGIC_5430_PRIVATE_DATA
;
65 #define CIRRUS_LOGIC_5430_PRIVATE_DATA_FROM_UGA_DRAW_THIS(a) \
66 CR(a, CIRRUS_LOGIC_5430_PRIVATE_DATA, UgaDraw, CIRRUS_LOGIC_5430_PRIVATE_DATA_SIGNATURE)
71 extern EFI_DRIVER_BINDING_PROTOCOL gCirrusLogic5430DriverBinding
;
72 extern EFI_COMPONENT_NAME_PROTOCOL gCirrusLogic5430ComponentName
;
75 // Io Registers defined by VGA
77 #define CRTC_ADDRESS_REGISTER 0x3d4
78 #define CRTC_DATA_REGISTER 0x3d5
79 #define SEQ_ADDRESS_REGISTER 0x3c4
80 #define SEQ_DATA_REGISTER 0x3c5
81 #define GRAPH_ADDRESS_REGISTER 0x3ce
82 #define GRAPH_DATA_REGISTER 0x3cf
83 #define ATT_ADDRESS_REGISTER 0x3c0
84 #define MISC_OUTPUT_REGISTER 0x3c2
85 #define INPUT_STATUS_1_REGISTER 0x3da
86 #define DAC_PIXEL_MASK_REGISTER 0x3c6
87 #define PALETTE_INDEX_REGISTER 0x3c8
88 #define PALETTE_DATA_REGISTER 0x3c9
91 // UGA Draw Hardware abstraction internal worker functions
94 TODO: Add function description
96 @param Private TODO: add argument description
98 TODO: add return values
102 CirrusLogic5430UgaDrawConstructor (
103 CIRRUS_LOGIC_5430_PRIVATE_DATA
*Private
108 TODO: Add function description
110 @param Private TODO: add argument description
112 TODO: add return values
116 CirrusLogic5430UgaDrawDestructor (
117 CIRRUS_LOGIC_5430_PRIVATE_DATA
*Private
122 // EFI 1.1 driver model prototypes for Cirrus Logic 5430 UGA Draw
125 TODO: Add function description
127 @param ImageHandle TODO: add argument description
128 @param SystemTable TODO: add argument description
130 TODO: add return values
135 CirrusLogic5430DriverEntryPoint (
136 IN EFI_HANDLE ImageHandle
,
137 IN EFI_SYSTEM_TABLE
*SystemTable
142 // EFI_DRIVER_BINDING_PROTOCOL Protocol Interface
145 TODO: Add function description
147 @param This TODO: add argument description
148 @param Controller TODO: add argument description
149 @param RemainingDevicePath TODO: add argument description
151 TODO: add return values
156 CirrusLogic5430ControllerDriverSupported (
157 IN EFI_DRIVER_BINDING_PROTOCOL
*This
,
158 IN EFI_HANDLE Controller
,
159 IN EFI_DEVICE_PATH_PROTOCOL
*RemainingDevicePath
164 TODO: Add function description
166 @param This TODO: add argument description
167 @param Controller TODO: add argument description
168 @param RemainingDevicePath TODO: add argument description
170 TODO: add return values
175 CirrusLogic5430ControllerDriverStart (
176 IN EFI_DRIVER_BINDING_PROTOCOL
*This
,
177 IN EFI_HANDLE Controller
,
178 IN EFI_DEVICE_PATH_PROTOCOL
*RemainingDevicePath
183 TODO: Add function description
185 @param This TODO: add argument description
186 @param Controller TODO: add argument description
187 @param NumberOfChildren TODO: add argument description
188 @param ChildHandleBuffer TODO: add argument description
190 TODO: add return values
195 CirrusLogic5430ControllerDriverStop (
196 IN EFI_DRIVER_BINDING_PROTOCOL
*This
,
197 IN EFI_HANDLE Controller
,
198 IN UINTN NumberOfChildren
,
199 IN EFI_HANDLE
*ChildHandleBuffer