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

📄 xllp_pccardsocket.cod

📁 pxa270为硬件平台的wince操作系统XLLP驱动源码
💻 COD
📖 第 1 页 / 共 4 页
字号:
; 804  : 			            //5 volt card detected in the socket
; 805  : 						//
; 806  : 			            *puiCardVoltage = XLLP_PCCARD_5_00VOLTS;

  00090	13a03002	 movne       r3, #2
  00094	1a000000	 bne         |$L1200|
  00098		 |$L1062|

; 807  : 			        }
; 808  : 			        else
; 809  : 			        {
; 810  : 						//
; 811  : 			            //3.3 volt card detected in the socket
; 812  : 						//
; 813  : 			            *puiCardVoltage = XLLP_PCCARD_3_30VOLTS;

  00098	e3a03001	 mov         r3, #1
  0009c		 |$L1200|
  0009c	e5823000	 str         r3, [r2]

; 856  : 
; 857  : 		} //end switch
; 858  : 	}
; 859  : 
; 860  : 	return ReturnValue;
; 861  : 
; 862  : } //end XllpPCCardGetVoltageSetting()

  000a0	e89d6000	 ldmia       sp, {sp, lr}
  000a4	e12fff1e	 bx          lr
  000a8		 |$M1203|

			 ENDP  ; |XllpPCCardGetVoltageSetting|

	EXPORT	|XllpPCCardSetExpMemTiming|

  00000			 AREA	 |.text| { |XllpPCCardSetExpMemTiming| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$XllpPCCardSetExpMemTiming|, PDATA, SELECTION=5, ASSOC=|.text| { |XllpPCCardSetExpMemTiming| } ; comdat associative
|$T1217| DCD	|$L1216|
	DCD	0x40001d00
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |XllpPCCardSetExpMemTiming| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |XllpPCCardSetExpMemTiming| PROC

; 883  : {

  00000		 |$L1216|
  00000		 |$M1214|
  00000	e1b01000	 movs        r1, r0

; 884  : 
; 885  :     XLLP_STATUS_T ReturnValue = XLLP_STATUS_SUCCESS;

  00004	e3a00000	 mov         r0, #0

; 886  : 
; 887  : 	//
; 888  :     //Check the validity of the input arguments to the function
; 889  : 	//
; 890  :     if(pstrSocketHandle == XLLP_NULL_PTR)
; 891  :     {
; 892  :         ReturnValue = XLLP_STATUS_PCCARD_FAILURE;  

  00008	03a0000f	 moveq       r0, #0xF

; 905  : 	}
; 906  : 
; 907  : 	return ReturnValue;
; 908  : 
; 909  : } //end XllpPCCardSetExpMemTiming()

  0000c	012fff1e	 bxeq        lr

; 893  :     }
; 894  : 
; 895  : 	if(ReturnValue != XLLP_STATUS_PCCARD_FAILURE)
; 896  : 	{
; 897  : 		pstrSocketHandle->pstrMemCtrlRegsHandle->MCATT0 = pstrSocketHandle->pstrCardTimingHandle->MCATT0;

  00010	e5913010	 ldr         r3, [r1, #0x10]
  00014	e5912014	 ldr         r2, [r1, #0x14]
  00018	e5933008	 ldr         r3, [r3, #8]
  0001c	e5823030	 str         r3, [r2, #0x30]

; 898  : 		pstrSocketHandle->pstrMemCtrlRegsHandle->MCATT1 = pstrSocketHandle->pstrCardTimingHandle->MCATT1;

  00020	e5913010	 ldr         r3, [r1, #0x10]
  00024	e5912014	 ldr         r2, [r1, #0x14]
  00028	e593300c	 ldr         r3, [r3, #0xC]
  0002c	e5823034	 str         r3, [r2, #0x34]

; 899  : 
; 900  : 		pstrSocketHandle->pstrMemCtrlRegsHandle->MCMEM0 = pstrSocketHandle->pstrCardTimingHandle->MCMEM0;

  00030	e5913010	 ldr         r3, [r1, #0x10]
  00034	e5912014	 ldr         r2, [r1, #0x14]
  00038	e5933000	 ldr         r3, [r3]
  0003c	e5823028	 str         r3, [r2, #0x28]

; 901  : 		pstrSocketHandle->pstrMemCtrlRegsHandle->MCMEM1 = pstrSocketHandle->pstrCardTimingHandle->MCMEM1;

  00040	e5913010	 ldr         r3, [r1, #0x10]
  00044	e5912014	 ldr         r2, [r1, #0x14]
  00048	e5933004	 ldr         r3, [r3, #4]
  0004c	e582302c	 str         r3, [r2, #0x2C]

; 902  : 
; 903  : 		pstrSocketHandle->pstrMemCtrlRegsHandle->MCIO0 = pstrSocketHandle->pstrCardTimingHandle->MCIO0;

  00050	e5913010	 ldr         r3, [r1, #0x10]
  00054	e5912014	 ldr         r2, [r1, #0x14]
  00058	e5933010	 ldr         r3, [r3, #0x10]
  0005c	e5823038	 str         r3, [r2, #0x38]

; 904  : 		pstrSocketHandle->pstrMemCtrlRegsHandle->MCIO1 = pstrSocketHandle->pstrCardTimingHandle->MCIO1;

  00060	e5913010	 ldr         r3, [r1, #0x10]
  00064	e5912014	 ldr         r2, [r1, #0x14]
  00068	e5933014	 ldr         r3, [r3, #0x14]
  0006c	e582303c	 str         r3, [r2, #0x3C]

; 905  : 	}
; 906  : 
; 907  : 	return ReturnValue;
; 908  : 
; 909  : } //end XllpPCCardSetExpMemTiming()

  00070	e12fff1e	 bx          lr
  00074		 |$M1215|

			 ENDP  ; |XllpPCCardSetExpMemTiming|

	EXPORT	|XllpPCCardGetExpMemTiming|

  00000			 AREA	 |.text| { |XllpPCCardGetExpMemTiming| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$XllpPCCardGetExpMemTiming|, PDATA, SELECTION=5, ASSOC=|.text| { |XllpPCCardGetExpMemTiming| } ; comdat associative
|$T1230| DCD	|$L1229|
	DCD	0x40001a00
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |XllpPCCardGetExpMemTiming| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |XllpPCCardGetExpMemTiming| PROC

; 931  : {

  00000		 |$L1229|
  00000		 |$M1227|
  00000	e1b02000	 movs        r2, r0

; 932  :     XLLP_STATUS_T ReturnValue = XLLP_STATUS_SUCCESS;

  00004	e3a00000	 mov         r0, #0

; 933  : 
; 934  : 	//
; 935  :     //Check the validity of the input arguments to the function
; 936  : 	//
; 937  :     if((pstrSocketHandle == XLLP_NULL_PTR) ||
; 938  :        (pstrCardTimingHandle == XLLP_NULL_PTR))

  00008	0a000001	 beq         |$L1086|
  0000c	e3510000	 cmp         r1, #0
  00010	1a000001	 bne         |$L1221|
  00014		 |$L1086|

; 939  :     {
; 940  :         ReturnValue = XLLP_STATUS_PCCARD_FAILURE;  

  00014	e3a0000f	 mov         r0, #0xF

; 953  : 	}
; 954  : 
; 955  : 	return ReturnValue;
; 956  : 
; 957  : } //end XllpPCCardGetExpMemTiming()

  00018	e12fff1e	 bx          lr
  0001c		 |$L1221|

; 941  :     }
; 942  : 
; 943  : 	if(ReturnValue != XLLP_STATUS_PCCARD_FAILURE)
; 944  : 	{
; 945  : 		pstrCardTimingHandle->MCATT0 = pstrSocketHandle->pstrMemCtrlRegsHandle->MCATT0;

  0001c	e5923014	 ldr         r3, [r2, #0x14]

; 946  : 		pstrCardTimingHandle->MCATT1 = pstrSocketHandle->pstrMemCtrlRegsHandle->MCATT1;

  00020	e5933030	 ldr         r3, [r3, #0x30]

; 947  : 
; 948  : 		pstrCardTimingHandle->MCMEM0 = pstrSocketHandle->pstrMemCtrlRegsHandle->MCMEM0;
; 949  : 		pstrCardTimingHandle->MCMEM1 = pstrSocketHandle->pstrMemCtrlRegsHandle->MCMEM1;
; 950  : 
; 951  : 		pstrCardTimingHandle->MCIO0 = pstrSocketHandle->pstrMemCtrlRegsHandle->MCIO0;
; 952  : 		pstrCardTimingHandle->MCIO1 = pstrSocketHandle->pstrMemCtrlRegsHandle->MCIO1;

  00024	e5813008	 str         r3, [r1, #8]
  00028	e5923014	 ldr         r3, [r2, #0x14]
  0002c	e5933034	 ldr         r3, [r3, #0x34]
  00030	e581300c	 str         r3, [r1, #0xC]
  00034	e5923014	 ldr         r3, [r2, #0x14]
  00038	e5933028	 ldr         r3, [r3, #0x28]
  0003c	e5813000	 str         r3, [r1]
  00040	e5923014	 ldr         r3, [r2, #0x14]
  00044	e593302c	 ldr         r3, [r3, #0x2C]
  00048	e5813004	 str         r3, [r1, #4]
  0004c	e5923014	 ldr         r3, [r2, #0x14]
  00050	e5933038	 ldr         r3, [r3, #0x38]
  00054	e5813010	 str         r3, [r1, #0x10]
  00058	e5923014	 ldr         r3, [r2, #0x14]
  0005c	e593303c	 ldr         r3, [r3, #0x3C]
  00060	e5813014	 str         r3, [r1, #0x14]

; 953  : 	}
; 954  : 
; 955  : 	return ReturnValue;
; 956  : 
; 957  : } //end XllpPCCardGetExpMemTiming()

  00064	e12fff1e	 bx          lr
  00068		 |$M1228|

			 ENDP  ; |XllpPCCardGetExpMemTiming|

	EXPORT	|XllpPCCardHWSetup|

  00000			 AREA	 |.text| { |XllpPCCardHWSetup| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$XllpPCCardHWSetup|, PDATA, SELECTION=5, ASSOC=|.text| { |XllpPCCardHWSetup| } ; comdat associative
|$T1243| DCD	|$L1242|
	DCD	0x40003f02
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |XllpPCCardHWSetup| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |XllpPCCardHWSetup| PROC

; 66   : {

  00000		 |$L1242|
  00000	e92d4070	 stmdb       sp!, {r4 - r6, lr}
  00004	e24dd004	 sub         sp, sp, #4
  00008		 |$M1240|
  00008	e1a05000	 mov         r5, r0

; 67   :     volatile XLLP_BCR_T *vpstrMainBLRegs = (volatile XLLP_BCR_T *)pstrSocketHandle->pstrBcrHandle;
; 68   : 	XLLP_STATUS_T ReturnValue = XLLP_STATUS_SUCCESS;
; 69   : 	XLLP_UINT32_T uiCardVoltage = 0;

  0000c	e3a03000	 mov         r3, #0

; 70   : 
; 71   : 	//
; 72   : 	//Check the validity of the input arguments to the function
; 73   : 	//
; 74   : 	if((pstrSocketHandle == XLLP_NULL_PTR))
; 75   : 	{
; 76   : 		ReturnValue = XLLP_STATUS_PCCARD_FAILURE;	
; 77   : 	}
; 78   : 	
; 79   : 	if(ReturnValue != XLLP_STATUS_PCCARD_FAILURE)
; 80   : 	{
; 81   : 		XllpPCCardConfigureGPIOs(pstrSocketHandle);	

  00010	e5954004	 ldr         r4, [r5, #4]
  00014	e58d3000	 str         r3, [sp]
  00018	eb000000	 bl          XllpPCCardConfigureGPIOs

; 82   : 
; 83   : 		//
; 84   : 		//*************************** SOCKET 0 **********************************
; 85   : 		//
; 86   : 		vpstrMainBLRegs->PCMCIAS0SCR &= ~(XLLP_BCR_PCMCIA_SCR_S0_PWR);

  0001c	e59430e0	 ldr         r3, [r4, #0xE0]

; 87   : 
; 88   : 		//
; 89   : 		//Deassert RESET for Socket 0: bit[4] of the Socket 0 Status Control Register
; 90   : 		//
; 91   : 		vpstrMainBLRegs->PCMCIAS0SCR &= ~(XLLP_BCR_PCMCIA_SCR_S0_RESET);
; 92   : 
; 93   : 		//
; 94   : 		//If a card is inserted, configure the MAX1602EE power IC for 
; 95   : 		//appropriate power supply to the socket, based on the voltage requirements 
; 96   : 		//of the card. If no card is present in the socket, then bypass powering
; 97   : 		//up the socket at this point
; 98   : 		//
; 99   : 		ReturnValue = XllpPCCardGetVoltageSetting(pstrSocketHandle, XLLP_PCCARD_SOCKET0, &uiCardVoltage);

  00020	e28d2000	 add         r2, sp, #0
  00024	e3a01000	 mov         r1, #0
  00028	e3c3300f	 bic         r3, r3, #0xF
  0002c	e58430e0	 str         r3, [r4, #0xE0]
  00030	e59430e0	 ldr         r3, [r4, #0xE0]
  00034	e1a00005	 mov         r0, r5
  00038	e3c33010	 bic         r3, r3, #0x10
  0003c	e58430e0	 str         r3, [r4, #0xE0]
  00040	eb000000	 bl          XllpPCCardGetVoltageSetting
  00044	e3500000	 cmp         r0, #0

; 100  : 
; 101  : 		if(ReturnValue == XLLP_STATUS_SUCCESS)

  00048	1a000009	 bne         |$L924|

; 102  : 		{
; 103  : 			XllpPCCardPowerOn(pstrSocketHandle, XLLP_PCCARD_SOCKET0, uiCardVoltage);

  0004c	e59d2000	 ldr         r2, [sp]
  00050	e3a01000	 mov         r1, #0
  00054	e1a00005	 mov         r0, r5
  00058	eb000000	 bl          XllpPCCardPowerOn

; 104  : 
; 105  : 			//
; 106  : 			//Assert RESET for Socket 0: bit[4] of the Socket 0 Status Control Register
; 107  : 			//
; 108  : 			vpstrMainBLRegs->PCMCIAS0SCR |= XLLP_BCR_PCMCIA_SCR_S0_RESET;

  0005c	e59430e0	 ldr         r3, [r4, #0xE0]

; 109  : 
; 110  : 			//
; 111  : 			//Deassert RESET for Socket 0: bit[4] of the Socket 0 Status Control Register
; 112  : 			//
; 113  : 			vpstrMainBLRegs->PCMCIAS0SCR &= ~(XLLP_BCR_PCMCIA_SCR_S0_RESET);

  00060	e3833010	 orr         r3, r3, #0x10
  00064	e58430e0	 str         r3, [r4, #0xE0]
  00068	e59430e0	 ldr         r3, [r4, #0xE0]
  0006c	e3c33010	 bic         r3, r3, #0x10
  00070	e58430e0	 str         r3, [r4, #0xE0]
  00074		 |$L924|

; 114  : 		}
; 115  : 
; 116  : 		//
; 117  : 		//*************************** SOCKET 1 **********************************
; 118  : 		//
; 119  : 		vpstrMainBLRegs->PCMCIAS1SCR &= ~(XLLP_BCR_PCMCIA_SCR_S1_PWR);

  00074	e59430e4	 ldr         r3, [r4, #0xE4]

; 120  : 
; 121  : 		//
; 122  : 		//Deassert RESET for Socket 1: bit[4] of the Socket 1 Status Control Register
; 123  : 		//
; 124  : 		vpstrMainBLRegs->PCMCIAS1SCR &= ~(XLLP_BCR_PCMCIA_SCR_S1_RESET);
; 125  : 
; 126  : 		//
; 127  : 		//If a card is inserted, configure the MAX1602EE power IC for 
; 128  : 		//appropriate power supply to the socket, based on the voltage requirements 
; 129  : 		//of the card. If no card is present in the socket, then bypass powering
; 130  : 		//up the socket at this point
; 131  : 		//
; 132  : 		uiCardVoltage = 0;   //reset the value

  00078	e3a0e000	 mov         lr, #0

; 133  : 		ReturnValue = XLLP_STATUS_SUCCESS;   //reset the value
; 134  : 
; 135  : 		ReturnValue = XllpPCCardGetVoltageSetting(pstrSocketHandle, XLLP_PCCARD_SOCKET1, &uiCardVoltage);

  0007c	e28d2000	 add         r2, sp, #0
  00080	e3c3300f	 bic         r3, r3, #0xF
  00084	e58430e4	 str         r3, [r4, #0xE4]
  00088	e59430e4	 ldr         r3, [r4, #0xE4]
  0008c	e3a01001	 mov         r1, #1
  00090	e1a00005	 mov         r0, r5
  00094	e3c33010	 bic         r3, r3, #0x10
  00098	e58430e4	 str         r3, [r4, #0xE4]
  0009c	e58de000	 str         lr, [sp]
  000a0	eb000000	 bl          XllpPCCardGetVoltageSetting
  000a4	e1b06000	 movs        r6, r0

; 136  : 
; 137  : 		if(ReturnValue == XLLP_STATUS_SUCCESS)

  000a8	1a000009	 bne         |$L925|

; 138  : 		{
; 139  : 			XllpPCCardPowerOn(pstrSocketHandle, XLLP_PCCARD_SOCKET1, uiCardVoltage);

  000ac	e59d2000	 ldr         r2, [sp]
  000b0	e3a01001	 mov         r1, #1
  000b4	e1a00005	 mov         r0, r5
  000b8	eb000000	 bl          XllpPCCardPowerOn

; 140  : 
; 141  : 			//
; 142  : 			//Assert RESET for Socket 1: bit[4] of the Socket 1 Status Control Register
; 143  : 			//
; 144  : 			vpstrMainBLRegs->PCMCIAS1SCR |= XLLP_BCR_PCMCIA_SCR_S0_RESET;

  000bc	e59430e4	 ldr         r3, [r4, #0xE4]

; 145  : 
; 146  : 			//
; 147  : 			//Deassert RESET for Socket 1: bit[4] of the Socket 1 Status Control Register
; 148  : 			//
; 149  : 			vpstrMainBLRegs->PCMCIAS1SCR &= ~(XLLP_BCR_PCMCIA_SCR_S0_RESET);

  000c0	e3833010	 orr         r3, r3, #0x10
  000c4	e58430e4	 str         r3, [r4, #0xE4]
  000c8	e59430e4	 ldr         r3, [r4, #0xE4]
  000cc	e3c33010	 bic         r3, r3, #0x10
  000d0	e58430e4	 str         r3, [r4, #0xE4]
  000d4		 |$L925|

; 150  : 		}
; 151  : 
; 152  : 		//
; 153  : 		//Route signals to the PC card interface, as opposed to the Baseband controller
; 154  : 		//
; 155  : 		vpstrMainBLRegs->MISCWR1 |= (XLLP_BCR_MISCWR1_BB_SEL);

  000d4	e5943080	 ldr         r3, [r4, #0x80]

; 156  : 		vpstrMainBLRegs->MISCWR1 &= ~(XLLP_BCR_MISCWR1_BB_SEL);
; 157  : 	}
; 158  : 
; 159  : 	return ReturnValue;

  000d8	e1a00006	 mov         r0, r6
  000dc	e3833c02	 orr         r3, r3, #2, 24
  000e0	e5843080	 str         r3, [r4, #0x80]
  000e4	e5943080	 ldr         r3, [r4, #0x80]
  000e8	e3c33c02	 bic         r3, r3, #2, 24
  000ec	e5843080	 str         r3, [r4, #0x80]

; 160  : 
; 161  : } //end XllpPCCardHWSetup()

  000f0	e28dd004	 add         sp, sp, #4
  000f4	e8bd4070	 ldmia       sp!, {r4 - r6, lr}
  000f8	e12fff1e	 bx          lr
  000fc		 |$M1241|

			 ENDP  ; |XllpPCCardHWSetup|

	END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -