⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 battif.cod

📁 平台PXA270, Mobile6.0 这是270的mobile6.0的bootloader
💻 COD
📖 第 1 页 / 共 4 页
字号:
; 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 + -