📄 battif.cod
字号:
; 278 : return (FALSE);
00024 1a000007 bne |$L43673|
; 279 : }
; 280 :
; 281 : // EdbgOutputDebugString ("***********Before GPIO Configure\r\n");
; 282 :
; 283 : //assuming Init can never be called from a power handler, hence param 2 =0
; 284 : if (AC97GpioConfigure(v_pGPIOReg,inPowerHandler,DevId)!=SUCCESS)
00028 e1a02004 mov r2, r4
0002c e1a01005 mov r1, r5
00030 e1a00006 mov r0, r6
00034 eb000000 bl AC97GpioConfigure
00038 e1a03800 mov r3, r0, lsl #16
0003c e1a03823 mov r3, r3, lsr #16
00040 e3530001 cmp r3, #1
00044 0a000002 beq |$L43464|
00048 |$L43673|
; 285 : {
; 286 : return (FALSE);
00048 e3a00000 mov r0, #0
; 292 :
; 293 : }
0004c e8bd4070 ldmia sp!, {r4 - r6, lr}
00050 e12fff1e bx lr
00054 |$L43464|
; 287 : }
; 288 :
; 289 : // EdbgOutputDebugString ("***********After GPIO Configure\r\n");
; 290 :
; 291 : return (SUCCESS);
00054 e3a00001 mov r0, #1
; 292 :
; 293 : }
00058 e8bd4070 ldmia sp!, {r4 - r6, lr}
0005c e12fff1e bx lr
00060 |$M43675|
ENDP ; |InitAcLink|
EXPORT |WriteAC97|
00000 AREA |.text| { |WriteAC97| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$WriteAC97|, PDATA, SELECTION=5, ASSOC=|.text| { |WriteAC97| } ; comdat associative
|$T43690| DCD |$L43689|
DCD 0x40000e01
; Function compile flags: /Ogsy
00000 AREA |.text| { |WriteAC97| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |WriteAC97| PROC
; 296 : {
00000 |$L43689|
00000 e92d4070 stmdb sp!, {r4 - r6, lr}
00004 |$M43687|
00004 e1a04002 mov r4, r2
00008 e1a05001 mov r5, r1
0000c e1a06000 mov r6, r0
; 297 : short int retval;
; 298 :
; 299 : // DEBUGMSG(1, (TEXT("***********Entering WriteAC97\r\n")));
; 300 :
; 301 : Ac97Lock();
00010 eb000000 bl Ac97Lock
; 302 : retval = RawAC97Write(Offset, Data, DevId);
00014 e1a02004 mov r2, r4
00018 e1a01005 mov r1, r5
0001c e1a00006 mov r0, r6
00020 eb000000 bl RawAC97Write
00024 e1a04000 mov r4, r0
; 303 : Ac97Unlock();
00028 eb000000 bl Ac97Unlock
; 304 :
; 305 : // DEBUGMSG(1, (TEXT("***********Leaving WriteAC97 with Data %d\r\n"), Data));
; 306 : return(retval);
0002c e1a00004 mov r0, r4
; 307 : }
00030 e8bd4070 ldmia sp!, {r4 - r6, lr}
00034 e12fff1e bx lr
00038 |$M43688|
ENDP ; |WriteAC97|
EXPORT |ReadAC97|
00000 AREA |.text| { |ReadAC97| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$ReadAC97|, PDATA, SELECTION=5, ASSOC=|.text| { |ReadAC97| } ; comdat associative
|$T43703| DCD |$L43702|
DCD 0x40000e01
; Function compile flags: /Ogsy
00000 AREA |.text| { |ReadAC97| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |ReadAC97| PROC
; 310 : {
00000 |$L43702|
00000 e92d4070 stmdb sp!, {r4 - r6, lr}
00004 |$M43700|
00004 e1a04002 mov r4, r2
00008 e1a05001 mov r5, r1
0000c e1a06000 mov r6, r0
; 311 : short int retval;
; 312 :
; 313 : // DEBUGMSG(1, (TEXT("***********Entering ReadAC97\r\n")));
; 314 :
; 315 : Ac97Lock();
00010 eb000000 bl Ac97Lock
; 316 : retval = RawAC97Read(Offset, Data, DevId);
00014 e1a02004 mov r2, r4
00018 e1a01005 mov r1, r5
0001c e1a00006 mov r0, r6
00020 eb000000 bl RawAC97Read
00024 e1a04000 mov r4, r0
; 317 : Ac97Unlock();
00028 eb000000 bl Ac97Unlock
; 318 :
; 319 : // DEBUGMSG(1, (TEXT("***********Leaving ReadAC97 with Data %d\r\n"),Data));
; 320 :
; 321 : return(retval);
0002c e1a00004 mov r0, r4
; 322 : }
00030 e8bd4070 ldmia sp!, {r4 - r6, lr}
00034 e12fff1e bx lr
00038 |$M43701|
ENDP ; |ReadAC97|
EXPORT |InitBatteryDriver|
EXPORT |??_C@_0BF@OOFKOOMG@InitBatteryDriver?4?$AN?6?$AA@| [ DATA ] ; `string'
00000 AREA |.text| { |InitBatteryDriver| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$InitBatteryDriver|, PDATA, SELECTION=5, ASSOC=|.text| { |InitBatteryDriver| } ; comdat associative
|$T43716| DCD |$L43715|
DCD 0x40004502
00000 AREA |.rdata| { |??_C@_0BF@OOFKOOMG@InitBatteryDriver?4?$AN?6?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0BF@OOFKOOMG@InitBatteryDriver?4?$AN?6?$AA@| DCB "InitBatteryDrive"
DCB "r.", 0xd, 0xa, 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |InitBatteryDriver| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |InitBatteryDriver| PROC
; 325 : {
00000 |$L43715|
00000 e92d4010 stmdb sp!, {r4, lr}
00004 e24dd004 sub sp, sp, #4
00008 |$M43713|
; 326 : unsigned short value = 0;
; 327 : volatile XLLP_GPIO_T *v_pGPIOReg = NULL;
; 328 :
; 329 : EdbgOutputDebugString ("InitBatteryDriver.\r\n");
00008 e59f0100 ldr r0, [pc, #0x100]
0000c e3a03000 mov r3, #0
00010 e1cd30b0 strh r3, [sp]
00014 eb000000 bl EdbgOutputDebugString
; 330 : if (v_pGPIOReg == NULL)
; 331 : {
; 332 : v_pGPIOReg = (volatile XLLP_GPIO_T*)OALPAtoVA(BULVERDE_BASE_REG_PA_GPIO, FALSE);
00018 e3a00101 mov r0, #1, 2
0001c e380060e orr r0, r0, #0xE, 12
00020 e3a01000 mov r1, #0
00024 eb000000 bl OALPAtoVA
; 333 : }
; 334 :
; 335 : #ifdef EXTPWR
; 336 : GPIOSetController((GPIO_REGS *)v_pGPIOReg, EXTPWR | GPIO_AF0 | GPIO_IN);
00028 e3a01d41 mov r1, #0x41, 26
0002c e381101f orr r1, r1, #0x1F
00030 e1a04000 mov r4, r0
00034 eb000000 bl GPIOSetController
; 337 : #endif
; 338 : #ifdef CHARGING
; 339 : GPIOSetController((GPIO_REGS *)v_pGPIOReg, CHARGING | GPIO_AF0 | GPIO_IN);
00038 e3a01d41 mov r1, #0x41, 26
0003c e3811022 orr r1, r1, #0x22
00040 e1a00004 mov r0, r4
00044 eb000000 bl GPIOSetController
; 340 : #endif
; 341 : // 配置ac97的寄存器
; 342 : InitAcLink(v_pGPIOReg, 0, DEV_BATTERY);
00048 e3a02003 mov r2, #3
0004c e3a01000 mov r1, #0
00050 e1a00004 mov r0, r4
00054 eb000000 bl InitAcLink
; 343 :
; 344 : //ReadAC97(WFS_AUXDAC_INPUT_CONTROL, (unsigned short *)&value, DEV_BATTERY);
; 345 : //value |= 0xFFF;
; 346 : //WriteAC97(WFS_AUXDAC_INPUT_CONTROL, value, DEV_BATTERY);
; 347 :
; 348 : // Power on the CODEC.
; 349 : RawAC97Read(WFS_DIGITISER_REG2, (unsigned short *)&value, DEV_BATTERY);
00058 e3a02003 mov r2, #3
0005c e28d1000 add r1, sp, #0
00060 e3a00078 mov r0, #0x78
00064 eb000000 bl RawAC97Read
; 350 : value &= (~DIGITISER_REG2_RPU_MSK)
; 351 : & (~DIGITISER_REG2_PDEN_MASK)
; 352 : & (~DIGITISER_REG2_45W_MASK)
; 353 : & (~DIGITISER_REG2_PRP_MASK)
; 354 : & (~DIGITISER_REG2_RPR_MASK);
00068 e1dd30b0 ldrh r3, [sp]
; 355 : value |= (0x20) // Internal Pull-up resistor for Pen Detection (sensitivity).
; 356 : | DIGITISER_REG2_4W
; 357 : | DIGITISER_REG2_RPR
; 358 : | DIGITISER_REG2_PRP_STATE3;
0006c e3a01a0e mov r1, #0xE, 20
00070 e3811020 orr r1, r1, #0x20
; 359 : RawAC97Write(WFS_DIGITISER_REG2, value, DEV_BATTERY);
00074 e2033d1f and r3, r3, #0x1F, 26
00078 e1831001 orr r1, r3, r1
0007c e3a02003 mov r2, #3
00080 e3a00078 mov r0, #0x78
00084 e1cd10b0 strh r1, [sp]
00088 eb000000 bl RawAC97Write
; 360 :
; 361 : RawAC97Read(WFS_POWER_DOWN1, &value, DEV_BATTERY);
0008c e3a02003 mov r2, #3
00090 e28d1000 add r1, sp, #0
00094 e3a0003c mov r0, #0x3C
00098 eb000000 bl RawAC97Read
; 362 : value &= ~(POWER_DOWN1_PD15 | POWER_DOWN1_VREF);
0009c e1dd30b0 ldrh r3, [sp]
000a0 e3a01c7b mov r1, #0x7B, 24
000a4 e38110ff orr r1, r1, #0xFF
; 363 : RawAC97Write(WFS_POWER_DOWN1, value, DEV_BATTERY);
000a8 e0031001 and r1, r3, r1
000ac e3a02003 mov r2, #3
000b0 e3a0003c mov r0, #0x3C
000b4 e1cd10b0 strh r1, [sp]
000b8 eb000000 bl RawAC97Write
; 364 :
; 365 : RawAC97Read(WFS_POWER_CTRL, &value, DEV_BATTERY);
000bc e3a02003 mov r2, #3
000c0 e28d1000 add r1, sp, #0
000c4 e3a00026 mov r0, #0x26
000c8 eb000000 bl RawAC97Read
; 366 : value &= ~(POWER_CTRL_PR3);
000cc e1dd30b0 ldrh r3, [sp]
000d0 e3a01cf7 mov r1, #0xF7, 24
000d4 e38110ff orr r1, r1, #0xFF
; 367 : RawAC97Write(WFS_POWER_CTRL, value, DEV_BATTERY);
000d8 e0031001 and r1, r3, r1
000dc e3a02003 mov r2, #3
000e0 e3a00026 mov r0, #0x26
000e4 e1cd10b0 strh r1, [sp]
000e8 eb000000 bl RawAC97Write
; 368 :
; 369 : AC97GpioConfigure(vp_GPIORegs, 0, DEV_BATTERY);
000ec e59f3018 ldr r3, [pc, #0x18]
000f0 e3a02003 mov r2, #3
000f4 e3a01000 mov r1, #0
000f8 e5930000 ldr r0, [r3]
000fc eb000000 bl AC97GpioConfigure
; 370 : }
00100 e28dd004 add sp, sp, #4
00104 e8bd4010 ldmia sp!, {r4, lr}
00108 e12fff1e bx lr
0010c |$L43718|
0010c 00000000 DCD |vp_GPIORegs|
00110 00000000 DCD |??_C@_0BF@OOFKOOMG@InitBatteryDriver?4?$AN?6?$AA@|
00114 |$M43714|
ENDP ; |InitBatteryDriver|
EXPORT |sampleADC|
EXPORT |??_C@_0CM@IBNDAIBL@sampleADC?3?5Invalid?5channel?$CIchann@| [ DATA ] ; `string'
EXPORT |??_C@_0BM@MBMPIEFD@sampleADC?3?5False?5channel?$CB?$AN?6?$AA@| [ DATA ] ; `string'
00000 AREA |.text| { |sampleADC| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$sampleADC|, PDATA, SELECTION=5, ASSOC=|.text| { |sampleADC| } ; comdat associative
|$T43732| DCD |$L43731|
DCD 0x40006102
00000 AREA |.rdata| { |??_C@_0CM@IBNDAIBL@sampleADC?3?5Invalid?5channel?$CIchann@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0CM@IBNDAIBL@sampleADC?3?5Invalid?5channel?$CIchann@| DCB "sampleA"
DCB "DC: Invalid channel(channel = %d)!", 0xd, 0xa, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_0BM@MBMPIEFD@sampleADC?3?5False?5channel?$CB?$AN?6?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0BM@MBMPIEFD@sampleADC?3?5False?5channel?$CB?$AN?6?$AA@| DCB "samp"
DCB "leADC: False channel!", 0xd, 0xa, 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |sampleADC| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |sampleADC| PROC
; 373 : {
00000 |$L43731|
00000 e92d4030 stmdb sp!, {r4, r5, lr}
00004 e24dd004 sub sp, sp, #4
00008 |$M43729|
00008 e1a04001 mov r4, r1
0000c e1a05000 mov r5, r0
; 374 : USHORT value = 0;
00010 e3a02000 mov r2, #0
; 375 :
; 376 : if( (channel < 1)||(channel > 7) )
00014 e2443001 sub r3, r4, #1
00018 e1cd20b0 strh r2, [sp]
0001c e3530006 cmp r3, #6
00020 8a00004e bhi |$L43501|
; 380 : }
; 381 :
; 382 : ReadAC97(WFS_DIGITISER_REG0, (unsigned short *)&value, DEV_BATTERY);
00024 e3a02003 mov r2, #3
00028 e28d1000 add r1, sp, #0
0002c e3a00074 mov r0, #0x74
00030 eb000000 bl ReadAC97
; 383 : value &= ~(DIGITISER_REG0_CTC_MASK | DIGITISER_REG0_COO_MASK | DIGITISER_REG0_ADCSEL_MASK);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -