📄 lcd_plat.cod
字号:
; Function compile flags: /Odtp
00250 AREA |.text|, CODE, ARM
00250 |LCDPanelSelect| PROC
; 135 : {
00250 |$LN10@LCDPanelSe|
00250 e1a0c00d mov r12, sp
00254 e92d0001 stmdb sp!, {r0}
00258 e92d5000 stmdb sp!, {r12, lr}
0025c e24dd0d8 sub sp, sp, #0xD8
00260 |$M42631|
; 136 : active_panel_t *p;
; 137 :
; 138 : DWORD out_size;
; 139 : DWORD in_buf[2];
; 140 : XLLP_LCD_T outbuf;
; 141 : DWORD cfg;
; 142 :
; 143 :
; 144 : cfg = get_panel_type();
00260 eb000000 bl get_panel_type
00264 e58d00b8 str r0, [sp, #0xB8]
00268 e59d30b8 ldr r3, [sp, #0xB8]
0026c e58d30a8 str r3, [sp, #0xA8]
; 145 : cfg =4;
00270 e3a03004 mov r3, #4
00274 e58d30a8 str r3, [sp, #0xA8]
; 146 : switch (cfg)
00278 e59d30a8 ldr r3, [sp, #0xA8]
0027c e58d30bc str r3, [sp, #0xBC]
00280 e59d30bc ldr r3, [sp, #0xBC]
00284 e3530004 cmp r3, #4
00288 0a00000c beq |$LN2@LCDPanelSe|
0028c e59d30bc ldr r3, [sp, #0xBC]
00290 e3530020 cmp r3, #0x20
00294 0a000000 beq |$LN3@LCDPanelSe|
00298 ea000013 b |$LN1@LCDPanelSe|
0029c |$LN3@LCDPanelSe|
; 147 : {
; 148 : case LCD_PANEL_ID_VGA_QVGA_OLED_LEAD:
; 149 : p = (void*)vga_qvga_panel_init(is_vga(),1);
0029c eb000000 bl is_vga
002a0 e58d00c0 str r0, [sp, #0xC0]
002a4 e3a01001 mov r1, #1
002a8 e59d00c0 ldr r0, [sp, #0xC0]
002ac eb000000 bl vga_qvga_panel_init
002b0 e58d00c4 str r0, [sp, #0xC4]
002b4 e59d30c4 ldr r3, [sp, #0xC4]
002b8 e58d3098 str r3, [sp, #0x98]
; 150 : break;
002bc ea000012 b |$LN4@LCDPanelSe|
002c0 |$LN2@LCDPanelSe|
; 151 :
; 152 : case XLLP_LCD_PANEL_ID_0283:
; 153 : NKDbgPrintfW(TEXT("using lcd panel 0283(QVGA).\r\n"));
002c0 e59f00b4 ldr r0, [pc, #0xB4]
002c4 eb000000 bl NKDbgPrintfW
; 154 : p = (void*)vga_qvga_panel_init(is_vga(), 1);
002c8 eb000000 bl is_vga
002cc e58d00c8 str r0, [sp, #0xC8]
002d0 e3a01001 mov r1, #1
002d4 e59d00c8 ldr r0, [sp, #0xC8]
002d8 eb000000 bl vga_qvga_panel_init
002dc e58d00cc str r0, [sp, #0xCC]
002e0 e59d30cc ldr r3, [sp, #0xCC]
002e4 e58d3098 str r3, [sp, #0x98]
; 155 : break;
002e8 ea000007 b |$LN4@LCDPanelSe|
002ec |$LN1@LCDPanelSe|
; 156 :
; 157 :
; 158 : case LCD_PANEL_ID_VGA_QVGA_OLED_LEAD_FREE:
; 159 : case LCD_PANEL_ID_VGA_QVGA_OLED_LEAD_FREE_LANDSCAPE:
; 160 :
; 161 : default:
; 162 : p = (void*)vga_qvga_panel_init( is_vga(),0);
002ec eb000000 bl is_vga
002f0 e58d00d0 str r0, [sp, #0xD0]
002f4 e3a01000 mov r1, #0
002f8 e59d00d0 ldr r0, [sp, #0xD0]
002fc eb000000 bl vga_qvga_panel_init
00300 e58d00d4 str r0, [sp, #0xD4]
00304 e59d30d4 ldr r3, [sp, #0xD4]
00308 e58d3098 str r3, [sp, #0x98]
0030c |$LN4@LCDPanelSe|
; 163 :
; 164 : break;
; 165 : }
; 166 :
; 167 : *panel = (void*)p;
0030c e59d2098 ldr r2, [sp, #0x98]
00310 e59d30e0 ldr r3, [sp, #0xE0]
00314 e5832000 str r2, [r3]
; 168 : in_buf[0] = cfg;
00318 e59d30a8 ldr r3, [sp, #0xA8]
0031c e58d309c str r3, [sp, #0x9C]
; 169 : in_buf[1] = 0;
00320 e3a03000 mov r3, #0
00324 e58d30a0 str r3, [sp, #0xA0]
; 170 : KernelIoControl(IOCTL_LCD_INIT, in_buf, sizeof(in_buf), (void *)&outbuf, sizeof(XLLP_LCD_T), &out_size);
00328 e28d30a4 add r3, sp, #0xA4
0032c e58d3004 str r3, [sp, #4]
00330 e3a03090 mov r3, #0x90
00334 e58d3000 str r3, [sp]
00338 e28d3008 add r3, sp, #8
0033c e3a02008 mov r2, #8
00340 e28d109c add r1, sp, #0x9C
00344 e59f002c ldr r0, [pc, #0x2C]
00348 eb000000 bl KernelIoControl
; 171 : XllpLCD=outbuf;
0034c e59f0020 ldr r0, [pc, #0x20]
00350 e28d1008 add r1, sp, #8
00354 e3a02090 mov r2, #0x90
00358 eb000000 bl memcpy
; 172 : return TRUE;
0035c e3a03001 mov r3, #1
00360 e58d30b4 str r3, [sp, #0xB4]
; 173 : }
00364 e59d00b4 ldr r0, [sp, #0xB4]
00368 e28dd0d8 add sp, sp, #0xD8
0036c e89d6000 ldmia sp, {sp, lr}
00370 e12fff1e bx lr
00374 |$LN11@LCDPanelSe|
00374 |$LN12@LCDPanelSe|
00374 00000000 DCD |XllpLCD|
00378 |$LN13@LCDPanelSe|
00378 01013e88 DCD 0x1013e88
0037c |$LN14@LCDPanelSe|
0037c 00000000 DCD |??_C@_1DM@NGGLONBF@?$AAu?$AAs?$AAi?$AAn?$AAg?$AA?5?$AAl?$AAc?$AAd?$AA?5?$AAp?$AAa?$AAn?$AAe?$AAl?$AA?5?$AA0?$AA2?$AA8?$AA3?$AA?$CI?$AAQ?$AAV?$AAG?$AAA?$AA?$CJ?$AA?4?$AA?$AN?$AA?6?$AA?$AA@|
00380 |$M42632|
ENDP ; |LCDPanelSelect|
00028 AREA |.pdata|, PDATA
|$T42646| DCD |$LN7@is_vga|
DCD 0x40001502
; Function compile flags: /Odtp
00380 AREA |.text|, CODE, ARM
00380 |is_vga| PROC
; 128 : {
00380 |$LN7@is_vga|
00380 e52de004 str lr, [sp, #-4]!
00384 e24dd010 sub sp, sp, #0x10
00388 |$M42643|
; 129 : UINT32 width, height;
; 130 : get_screen_size(&width, &height);
00388 e28d1000 add r1, sp, #0
0038c e28d0004 add r0, sp, #4
00390 eb000000 bl get_screen_size
; 131 : return width * height == 640 * 480;
00394 e59d2004 ldr r2, [sp, #4]
00398 e59d3000 ldr r3, [sp]
0039c e0030392 mul r3, r2, r3
003a0 e3530a4b cmp r3, #0x4B, 20
003a4 1a000002 bne |$LN3@is_vga|
003a8 e3a03001 mov r3, #1
003ac e58d300c str r3, [sp, #0xC]
003b0 ea000001 b |$LN4@is_vga|
003b4 |$LN3@is_vga|
003b4 e3a03000 mov r3, #0
003b8 e58d300c str r3, [sp, #0xC]
003bc |$LN4@is_vga|
003bc e59d300c ldr r3, [sp, #0xC]
003c0 e58d3008 str r3, [sp, #8]
; 132 : }
003c4 e59d0008 ldr r0, [sp, #8]
003c8 e28dd010 add sp, sp, #0x10
003cc e49de004 ldr lr, [sp], #4
003d0 e12fff1e bx lr
003d4 |$M42644|
ENDP ; |is_vga|
EXPORT |??_C@_1IK@CGMIPIFC@?$AA?$FL?$AAL?$AAC?$AAD?$AA?$FN?$AA?5?$AAs?$AAe?$AAt?$AA_?$AAl?$AAc?$AAd?$AA_?$AAd?$AAo?$AAm?$AAa?$AAi?$AAn?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?5?$AAi?$AAn?$AA?5?$AAP@| [ DATA ] ; `string'
EXPORT |??_C@_1II@CLHFCBNE@?$AA?$FL?$AAL?$AAC?$AAD?$AA?$FN?$AA?5?$AAs?$AAe?$AAt?$AA_?$AAl?$AAc?$AAd?$AA_?$AAd?$AAo?$AAm?$AAa?$AAi?$AAn?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?5?$AAi?$AAn?$AA?5?$AAP@| [ DATA ] ; `string'
EXPORT |??_C@_1CI@OHCJFJPM@?$AAE?$AAR?$AAR?$AAO?$AAR?$AA?3?$AA?5?$AA?$CF?$AAs?$AA?5?$AAl?$AAi?$AAn?$AAe?$AA?5?$AA?$CF?$AAd?$AA?3?$AA?5?$AA?$AA@| [ DATA ] ; `string'
EXPORT |??_C@_1IK@CDIOALAF@?$AAD?$AA?3?$AA?2?$AAW?$AAI?$AAN?$AAC?$AAE?$AA6?$AA0?$AA0?$AA?2?$AAP?$AAL?$AAA?$AAT?$AAF?$AAO?$AAR?$AAM?$AA?2?$AAM?$AA?9?$AAs?$AAt?$AAo?$AAn?$AAe?$AA?2?$AAS?$AAR?$AAC@| [ DATA ] ; `string'
EXPORT |set_lcd_domain|
IMPORT |PMIC_DisablePower|
IMPORT |PMIC_EnablePower|
00030 AREA |.pdata|, PDATA
|$T42651| DCD |$LN9@set_lcd_do|
DCD 0x40003004
00000 AREA |.rdata|, DATA, READONLY
|??_C@_1IK@CGMIPIFC@?$AA?$FL?$AAL?$AAC?$AAD?$AA?$FN?$AA?5?$AAs?$AAe?$AAt?$AA_?$AAl?$AAc?$AAd?$AA_?$AAd?$AAo?$AAm?$AAa?$AAi?$AAn?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?5?$AAi?$AAn?$AA?5?$AAP@| DCB "["
DCB 0x0, "L", 0x0, "C", 0x0, "D", 0x0, "]", 0x0, " ", 0x0, "s"
DCB 0x0, "e", 0x0, "t", 0x0, "_", 0x0, "l", 0x0, "c", 0x0, "d"
DCB 0x0, "_", 0x0, "d", 0x0, "o", 0x0, "m", 0x0, "a", 0x0, "i"
DCB 0x0, "n", 0x0, " ", 0x0, "f", 0x0, "a", 0x0, "i", 0x0, "l"
DCB 0x0, "e", 0x0, "d", 0x0, " ", 0x0, "i", 0x0, "n", 0x0, " "
DCB 0x0, "P", 0x0, "M", 0x0, "I", 0x0, "C", 0x0, "_", 0x0, "D"
DCB 0x0, "i", 0x0, "s", 0x0, "a", 0x0, "b", 0x0, "l", 0x0, "e"
DCB 0x0, "P", 0x0, "o", 0x0, "w", 0x0, "e", 0x0, "r", 0x0, " "
DCB 0x0, "(", 0x0, "u", 0x0, "l", 0x0, "S", 0x0, "t", 0x0, "a"
DCB 0x0, "t", 0x0, "u", 0x0, "s", 0x0, " ", 0x0, "=", 0x0, " "
DCB 0x0, "%", 0x0, "d", 0x0, ")", 0x0, " ", 0x0, ".", 0x0, 0xd
DCB 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata|, DATA, READONLY
|??_C@_1II@CLHFCBNE@?$AA?$FL?$AAL?$AAC?$AAD?$AA?$FN?$AA?5?$AAs?$AAe?$AAt?$AA_?$AAl?$AAc?$AAd?$AA_?$AAd?$AAo?$AAm?$AAa?$AAi?$AAn?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?5?$AAi?$AAn?$AA?5?$AAP@| DCB "["
DCB 0x0, "L", 0x0, "C", 0x0, "D", 0x0, "]", 0x0, " ", 0x0, "s"
DCB 0x0, "e", 0x0, "t", 0x0, "_", 0x0, "l", 0x0, "c", 0x0, "d"
DCB 0x0, "_", 0x0, "d", 0x0, "o", 0x0, "m", 0x0, "a", 0x0, "i"
DCB 0x0, "n", 0x0, " ", 0x0, "f", 0x0, "a", 0x0, "i", 0x0, "l"
DCB 0x0, "e", 0x0, "d", 0x0, " ", 0x0, "i", 0x0, "n", 0x0, " "
DCB 0x0, "P", 0x0, "M", 0x0, "I", 0x0, "C", 0x0, "_", 0x0, "E"
DCB 0x0, "n", 0x0, "a", 0x0, "b", 0x0, "l", 0x0, "e", 0x0, "P"
DCB 0x0, "o", 0x0, "w", 0x0, "e", 0x0, "r", 0x0, " ", 0x0, "("
DCB 0x0, "u", 0x0, "l", 0x0, "S", 0x0, "t", 0x0, "a", 0x0, "t"
DCB 0x0, "u", 0x0, "s", 0x0, " ", 0x0, "=", 0x0, " ", 0x0, "%"
DCB 0x0, "d", 0x0, ")", 0x0, " ", 0x0, ".", 0x0, 0xd, 0x0, 0xa
DCB 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata|, DATA, READONLY
|??_C@_1CI@OHCJFJPM@?$AAE?$AAR?$AAR?$AAO?$AAR?$AA?3?$AA?5?$AA?$CF?$AAs?$AA?5?$AAl?$AAi?$AAn?$AAe?$AA?5?$AA?$CF?$AAd?$AA?3?$AA?5?$AA?$AA@| DCB "E"
DCB 0x0, "R", 0x0, "R", 0x0, "O", 0x0, "R", 0x0, ":", 0x0, " "
DCB 0x0, "%", 0x0, "s", 0x0, " ", 0x0, "l", 0x0, "i", 0x0, "n"
DCB 0x0, "e", 0x0, " ", 0x0, "%", 0x0, "d", 0x0, ":", 0x0, " "
DCB 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata|, DATA, READONLY
|??_C@_1IK@CDIOALAF@?$AAD?$AA?3?$AA?2?$AAW?$AAI?$AAN?$AAC?$AAE?$AA6?$AA0?$AA0?$AA?2?$AAP?$AAL?$AAA?$AAT?$AAF?$AAO?$AAR?$AAM?$AA?2?$AAM?$AA?9?$AAs?$AAt?$AAo?$AAn?$AAe?$AA?2?$AAS?$AAR?$AAC@| DCB "D"
DCB 0x0, ":", 0x0, "\\", 0x0, "W", 0x0, "I", 0x0, "N", 0x0, "C"
DCB 0x0, "E", 0x0, "6", 0x0, "0", 0x0, "0", 0x0, "\\", 0x0, "P"
DCB 0x0, "L", 0x0, "A", 0x0, "T", 0x0, "F", 0x0, "O", 0x0, "R"
DCB 0x0, "M", 0x0, "\\", 0x0, "M", 0x0, "-", 0x0, "s", 0x0, "t"
DCB 0x0, "o", 0x0, "n", 0x0, "e", 0x0, "\\", 0x0, "S", 0x0, "R"
DCB 0x0, "C", 0x0, "\\", 0x0, "D", 0x0, "R", 0x0, "I", 0x0, "V"
DCB 0x0, "E", 0x0, "R", 0x0, "S", 0x0, "\\", 0x0, "D", 0x0, "i"
DCB 0x0, "s", 0x0, "p", 0x0, "l", 0x0, "a", 0x0, "y", 0x0, "\\"
DCB 0x0, "p", 0x0, "a", 0x0, "n", 0x0, "e", 0x0, "l", 0x0, "s"
DCB 0x0, "\\", 0x0, ".", 0x0, "\\", 0x0, "l", 0x0, "c", 0x0, "d"
DCB 0x0, "_", 0x0, "p", 0x0, "l", 0x0, "a", 0x0, "t", 0x0, "."
DCB 0x0, "c", 0x0, 0x0, 0x0 ; `string'
; Function compile flags: /Odtp
003d4 AREA |.text|, CODE, ARM
003d4 |set_lcd_domain| PROC
; 176 : {
003d4 |$LN9@set_lcd_do|
003d4 e1a0c00d mov r12, sp
003d8 e92d0001 stmdb sp!, {r0}
003dc e92d5000 stmdb sp!, {r12, lr}
003e0 e24dd00c sub sp, sp, #0xC
003e4 |$M42648|
; 177 : /* PMIC Upgrade */
; 178 : /*
; 179 : HANDLE pic_drv;
; 180 : DWORD domain=PIC_DOMAIN_DEBUG_3V;
; 181 :
; 182 : pic_drv = CreateFile(PIC_FILE_NAME, 0, 0, NULL, 0, 0, NULL);
; 183 :
; 184 : if (!pic_drv)
; 185 : ERRORMSG(1, (TEXT("open pic file failed!\r\n")));
; 186 :
; 187 : if(!DeviceIoControl(pic_drv, enable?(PIC_ENABLE_DOMAIN):(PIC_DISABLE_DOMAIN), &domain, sizeof(domain),
; 188 : 0,0,0,0))
; 189 : {
; 190 : ERRORMSG(1,(_T("Error %s domain for LCD.\r\n"), enable? _T("enabling"):_T("disabling")));
; 191 : return;
; 192 : }
; 193 :
; 194 : CloseHandle(pic_drv);
; 195 : */
; 196 :
; 197 : PXA_STATUS_T ulStatus = PXA_STATUS_SUCCESS;
003e4 e3a03000 mov r3, #0
003e8 e58d3000 str r3, [sp]
; 198 :
; 199 : if (enable)
003ec e59d3014 ldr r3, [sp, #0x14]
003f0 e3530000 cmp r3, #0
003f4 0a000010 beq |$LN4@set_lcd_do|
; 200 : {
; 201 : /* Enable */
; 202 : ulStatus = PMIC_EnablePower(PMIC_LCD_CLIENT_ID);
003f8 e3a00002 mov r0, #2
003fc eb000000 bl PMIC_EnablePower
00400 e58d0004 str r0, [sp, #4]
00404 e59d3004 ldr r3, [sp, #4]
00408 e58d3000 str r3, [sp]
; 203 :
; 204 : if (PXA_STATUS_SUCCESS != ulStatus)
0040c e59d3000 ldr r3, [sp]
00410 e3530000 cmp r3, #0
00414 0a000007 beq |$LN3@set_lcd_do|
; 205 : {
; 206 : ERRORMSG(1,(_T("[LCD] set_lcd_domain failed in PMIC_EnablePower (ulStatus = %d) .\r\n"), ulStatus));
00418 e3a020ce mov r2, #0xCE
0041c e59f1068 ldr r1, [pc, #0x68]
00420 e59f0060 ldr r0, [pc, #0x60]
00424 eb000000 bl NKDbgPrintfW
00428 e59d1000 ldr r1, [sp]
0042c e59f005c ldr r0, [pc, #0x5C]
00430 eb000000 bl NKDbgPrintfW
; 207 : return;
00434 ea00000f b |$LN5@set_lcd_do|
00438 |$LN3@set_lcd_do|
; 208 : }
; 209 : }
; 210 : else
00438 ea00000e b |$LN2@set_lcd_do|
0043c |$LN4@set_lcd_do|
; 211 : {
; 212 : /* Disable */
; 213 : ulStatus = PMIC_DisablePower(PMIC_LCD_CLIENT_ID);
0043c e3a00002 mov r0, #2
00440 eb000000 bl PMIC_DisablePower
00444 e58d0008 str r0, [sp, #8]
00448 e59d3008 ldr r3, [sp, #8]
0044c e58d3000 str r3, [sp]
; 214 :
; 215 : if (PXA_STATUS_SUCCESS != ulStatus)
00450 e59d3000 ldr r3, [sp]
00454 e3530000 cmp r3, #0
00458 0a000006 beq |$LN1@set_lcd_do|
; 216 : {
; 217 : ERRORMSG(1,(_T("[LCD] set_lcd_domain failed in PMIC_DisablePower (ulStatus = %d) .\r\n"), ulStatus));
0045c e3a020d9 mov r2, #0xD9
00460 e59f1024 ldr r1, [pc, #0x24]
00464 e59f001c ldr r0, [pc, #0x1C]
00468 eb000000 bl NKDbgPrintfW
0046c e59d1000 ldr r1, [sp]
00470 e59f000c ldr r0, [pc, #0xC]
00474 eb000000 bl NKDbgPrintfW
00478 |$LN1@set_lcd_do|
00478 |$LN2@set_lcd_do|
00478 |$LN5@set_lcd_do|
; 218 : return;
; 219 : }
; 220 : }
; 221 :
; 222 :
; 223 : }
00478 e28dd00c add sp, sp, #0xC
0047c e89d6000 ldmia sp, {sp, lr}
00480 e12fff1e bx lr
00484 |$LN10@set_lcd_do|
00484 |$LN11@set_lcd_do|
00484 00000000 DCD |??_C@_1IK@CGMIPIFC@?$AA?$FL?$AAL?$AAC?$AAD?$AA?$FN?$AA?5?$AAs?$AAe?$AAt?$AA_?$AAl?$AAc?$AAd?$AA_?$AAd?$AAo?$AAm?$AAa?$AAi?$AAn?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?5?$AAi?$AAn?$AA?5?$AAP@|
00488 |$LN12@set_lcd_do|
00488 00000000 DCD |??_C@_1CI@OHCJFJPM@?$AAE?$AAR?$AAR?$AAO?$AAR?$AA?3?$AA?5?$AA?$CF?$AAs?$AA?5?$AAl?$AAi?$AAn?$AAe?$AA?5?$AA?$CF?$AAd?$AA?3?$AA?5?$AA?$AA@|
0048c |$LN13@set_lcd_do|
0048c 00000000 DCD |??_C@_1IK@CDIOALAF@?$AAD?$AA?3?$AA?2?$AAW?$AAI?$AAN?$AAC?$AAE?$AA6?$AA0?$AA0?$AA?2?$AAP?$AAL?$AAA?$AAT?$AAF?$AAO?$AAR?$AAM?$AA?2?$AAM?$AA?9?$AAs?$AAt?$AAo?$AAn?$AAe?$AA?2?$AAS?$AAR?$AAC@|
00490 |$LN14@set_lcd_do|
00490 00000000 DCD |??_C@_1II@CLHFCBNE@?$AA?$FL?$AAL?$AAC?$AAD?$AA?$FN?$AA?5?$AAs?$AAe?$AAt?$AA_?$AAl?$AAc?$AAd?$AA_?$AAd?$AAo?$AAm?$AAa?$AAi?$AAn?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?5?$AAi?$AAn?$AA?5?$AAP@|
00494 |$M42649|
ENDP ; |set_lcd_domain|
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -