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
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.
14 #ifndef __OMAP3_DSS_GRAPHICS__
15 #define __OMAP3_DSS_GRAPHICS__
17 #include <Library/UefiBootServicesTableLib.h>
18 #include <Library/UefiLib.h>
19 #include <Library/DebugLib.h>
20 #include <Library/MemoryAllocationLib.h>
21 #include <Library/IoLib.h>
23 #include <Protocol/DevicePathToText.h>
24 #include <Protocol/EmbeddedExternalDevice.h>
25 #include <Protocol/Cpu.h>
27 #include <Guid/GlobalVariable.h>
29 #include <Omap3530/Omap3530.h>
33 VENDOR_DEVICE_PATH Guid
;
34 EFI_DEVICE_PATH_PROTOCOL End
;
35 } LCD_GRAPHICS_DEVICE_PATH
;
40 EFI_GRAPHICS_OUTPUT_MODE_INFORMATION ModeInfo
;
41 EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE Mode
;
42 EFI_GRAPHICS_OUTPUT_PROTOCOL Gop
;
43 LCD_GRAPHICS_DEVICE_PATH DevicePath
;
44 // EFI_EVENT ExitBootServicesEvent;
47 #define LCD_INSTANCE_SIGNATURE SIGNATURE_32('l', 'c', 'd', '0')
48 #define LCD_INSTANCE_FROM_GOP_THIS(a) CR (a, LCD_INSTANCE, Gop, LCD_INSTANCE_SIGNATURE)
52 UINTN HorizontalResolution
;
53 UINTN VerticalResolution
;
69 IN LCD_INSTANCE
* Instance
74 LcdGraphicsQueryMode (
75 IN EFI_GRAPHICS_OUTPUT_PROTOCOL
*This
,
77 OUT UINTN
*SizeOfInfo
,
78 OUT EFI_GRAPHICS_OUTPUT_MODE_INFORMATION
**Info
84 IN EFI_GRAPHICS_OUTPUT_PROTOCOL
*This
,
91 IN EFI_GRAPHICS_OUTPUT_PROTOCOL
*This
,
92 IN OUT EFI_GRAPHICS_OUTPUT_BLT_PIXEL
*BltBuffer
, OPTIONAL
93 IN EFI_GRAPHICS_OUTPUT_BLT_OPERATION BltOperation
,
96 IN UINTN DestinationX
,
97 IN UINTN DestinationY
,
100 IN UINTN Delta OPTIONAL
// Number of BYTES in a row of the BltBuffer
104 #define CM_FCLKEN_DSS 0x48004E00
105 #define CM_ICLKEN_DSS 0x48004E10
107 #define DSS_CONTROL 0x48050040
108 #define DSS_SYSCONFIG 0x48050010
109 #define DSS_SYSSTATUS 0x48050014
111 #define DISPC_CONTROL 0x48050440
112 #define DISPC_CONFIG 0x48050444
113 #define DISPC_SIZE_LCD 0x4805047C
114 #define DISPC_TIMING_H 0x48050464
115 #define DISPC_TIMING_V 0x48050468
117 #define CM_CLKSEL_DSS 0x48004E40
118 #define DISPC_DIVISOR 0x48050470
119 #define DISPC_POL_FREQ 0x4805046C
121 #define DISPC_GFX_TABLE_BA 0x480504B8
122 #define DISPC_GFX_BA0 0x48050480
123 #define DISPC_GFX_BA1 0x48050484
124 #define DISPC_GFX_POS 0x48050488
125 #define DISPC_GFX_SIZE 0x4805048C
126 #define DISPC_GFX_ATTR 0x480504A0
127 #define DISPC_GFX_PRELD 0x4805062C
129 #define DISPC_DEFAULT_COLOR_0 0x4805044C
131 //#define DISPC_IRQSTATUS
139 #define DSS_SOFTRESET 0x2
140 #define DSS_RESETDONE 0x1
142 #define BYPASS_MODE (BIT15 | BIT16)
144 #define LCDENABLE BIT0
145 #define ACTIVEMATRIX BIT3
147 #define DATALINES24 (BIT8 | BIT9)
148 #define LCDENABLESIGNAL BIT28
150 #define GFXENABLE BIT0
151 #define RGB16 (0x6 << 1)
152 #define BURSTSIZE16 (0x2 << 6)
154 #define CLEARLOADMODE ~(BIT2 | BIT1)
155 #define LOAD_FRAME_ONLY BIT2