]> git.proxmox.com Git - mirror_edk2.git/blob - ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/LcdGraphicsOutputDxe.h
ArmPlatformPkg: Add support for PL111 Lcd driver
[mirror_edk2.git] / ArmPlatformPkg / Drivers / LcdGraphicsOutputDxe / LcdGraphicsOutputDxe.h
1 /** @file
2
3 Copyright (c) 2011, ARM Ltd. All rights reserved.<BR>
4 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
8
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.
11
12 **/
13
14 #ifndef __ARM_VE_GRAPHICS_DXE_H__
15 #define __ARM_VE_GRAPHICS_DXE_H__
16
17
18 #include <Base.h>
19 #include <Library/UefiLib.h>
20 #include <Protocol/DevicePath.h>
21
22 #include <Library/LcdPlatformLib.h>
23
24 //
25 // Device structures
26 //
27 typedef struct {
28 VENDOR_DEVICE_PATH Guid;
29 EFI_DEVICE_PATH_PROTOCOL End;
30 } LCD_GRAPHICS_DEVICE_PATH;
31
32 typedef struct {
33 UINTN Signature;
34 EFI_HANDLE Handle;
35 EFI_GRAPHICS_OUTPUT_MODE_INFORMATION ModeInfo;
36 EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE Mode;
37 EFI_GRAPHICS_OUTPUT_PROTOCOL Gop;
38 LCD_GRAPHICS_DEVICE_PATH DevicePath;
39 EFI_EVENT ExitBootServicesEvent;
40 } LCD_INSTANCE;
41
42 #define LCD_INSTANCE_SIGNATURE SIGNATURE_32('l', 'c', 'd', '0')
43
44 #define LCD_INSTANCE_FROM_GOP_THIS(a) CR (a, LCD_INSTANCE, Gop, LCD_INSTANCE_SIGNATURE)
45
46 //
47 // Function Prototypes
48 //
49
50 VOID
51 LcdGraphicsExitBootServicesEvent (
52 IN EFI_EVENT Event,
53 IN VOID *Context
54 );
55
56 EFI_STATUS
57 EFIAPI
58 LcdGraphicsQueryMode (
59 IN EFI_GRAPHICS_OUTPUT_PROTOCOL *This,
60 IN UINT32 ModeNumber,
61 OUT UINTN *SizeOfInfo,
62 OUT EFI_GRAPHICS_OUTPUT_MODE_INFORMATION **Info
63 );
64
65 EFI_STATUS
66 EFIAPI
67 LcdGraphicsSetMode (
68 IN EFI_GRAPHICS_OUTPUT_PROTOCOL *This,
69 IN UINT32 ModeNumber
70 );
71
72 EFI_STATUS
73 EFIAPI
74 LcdGraphicsBlt (
75 IN EFI_GRAPHICS_OUTPUT_PROTOCOL *This,
76 IN OUT EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BltBuffer, OPTIONAL
77 IN EFI_GRAPHICS_OUTPUT_BLT_OPERATION BltOperation,
78 IN UINTN SourceX,
79 IN UINTN SourceY,
80 IN UINTN DestinationX,
81 IN UINTN DestinationY,
82 IN UINTN Width,
83 IN UINTN Height,
84 IN UINTN Delta OPTIONAL
85 );
86
87 UINTN
88 GetBytesPerPixel (
89 IN LCD_BPP Bpp
90 );
91
92 EFI_STATUS
93 EFIAPI
94 GraphicsOutputDxeInitialize (
95 IN EFI_HANDLE ImageHandle,
96 IN EFI_SYSTEM_TABLE *SystemTable
97 );
98
99 EFI_STATUS
100 InitializeDisplay (
101 IN LCD_INSTANCE* Instance
102 );
103
104 EFI_STATUS
105 LcdIndentify (
106 VOID
107 );
108
109 EFI_STATUS
110 LcdInitialize (
111 EFI_PHYSICAL_ADDRESS VramBaseAddress
112 );
113
114 EFI_STATUS
115 LcdSetMode (
116 IN UINT32 ModeNumber
117 );
118
119 VOID
120 LcdShutdown (
121 VOID
122 );
123
124 #endif /* __ARM_VE_GRAPHICS_DXE_H__ */