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

📄 cmtt1pos.h

📁 WinCE 3.0 BSP, 包含Inter SA1110, Intel_815E, Advantech_PCM9574 等
💻 H
📖 第 1 页 / 共 2 页
字号:
#define	kMModuleCardRegDirectionMask			kIOMfioOutputSelect11Mask	/* 11 */
#define	kMModuleCardIOWriteDirectionMask		kIOMfioOutputSelect10Mask	/* 10 */
#define	kMModuleCardIOReadDirectionMask			kIOMfioOutputSelect9Mask	/* 9 */
#define	kMModuleCardCSLDirectionMask			kIOMfioOutputSelect8Mask	/* 8 */
#define	kMModuleCardCSHDirectionMask			kIOMfioOutputSelect7Mask	/* 7 */
#define	kMModuleEnFlashRdDirectionMask			kIOMfioOutputSelect6Mask	/* 6 */
#define	kIrDAShutDownDirectionMask				kIOMfioOutputSelect5Mask	/* 5 */
#define	kMModuleCardWaitDirectionMask			kIOMfioOutputSelect4Mask	/* 4 */
#define	kKeyboardWakeDirectionMask				kIOMfioOutputSelect3Mask	/* 3 */
#define	kKeyboardResetDirectionMask				kIOMfioOutputSelect2Mask	/* 2 */
#define	kKeyboardAttentionDirectionMask			kIOMfioOutputSelect1Mask	/* 1 */
#define	kSIBRingDetectDirectionMask				kIOMfioOutputSelect0Mask	/* 0 */

						/***** Register Equates (PoseidonModule.mfioDataInput) *****/	
#define	kSerialRTSDataInMask					kIOMfioDataIn31Mask	/* 31 */
#define	kSerialCTSDataInMask					kIOMfioDataIn30Mask	/* 30 */
#define	kMiniCard2ResetDataInMask				kIOMfioDataIn29Mask	/* 29 */
#define	kMiniCard2BusyDataInMask				kIOMfioDataIn28Mask	/* 28 */
#define	kPowerVCC3DataInMask					kIOMfioDataIn27Mask	/* 27 */
#define	kPowerDRAMVCCOnDataInMask				kIOMfioDataIn26Mask	/* 26 */
#define	kDisplayVBacklightOnDataInMask			kIOMfioDataIn25Mask	/* 25 */
#define	kMagicBusTXDataDataInMask				kIOMfioDataIn24Mask	/* 24 */
#define	kMagicBusRXDataDataInMask				kIOMfioDataIn23Mask	/* 23 */
#define	kMiniCard2MCCSDataInMask				kIOMfioDataIn22Mask	/* 22 */
#define	kMModuleCS2DataInMask					kIOMfioDataIn21Mask	/* 21 */
#define	kMiniCard1SDADataInMask					kIOMfioDataIn20Mask	/* 20 */
#define	kMiniCard2SDADataInMask					kIOMfioDataIn19Mask	/* 19 */
#define	kMiniCardSCLDataInMask					kIOMfioDataIn18Mask	/* 18 */
#define	kDisplayVLCDOnDataInMask				kIOMfioDataIn17Mask	/* 17 */
#define	kMagicBusVCCOnDataInMask				kIOMfioDataIn16Mask	/* 16 */
#define	kKeyboardSPIClockDataInMask				kIOMfioDataIn15Mask	/* 15 */
#define	kKeyboardSPIOutDataInMask				kIOMfioDataIn14Mask	/* 14 */
#define	kKeyboardSPIInDataInMask				kIOMfioDataIn13Mask	/* 13 */
#define	kFlashOnBoardDataInMask					kIOMfioDataIn12Mask	/* 12 */
#define	kMModuleCardRegDataInMask				kIOMfioDataIn11Mask	/* 11 */
#define	kMModuleCardIOWriteDataInMask			kIOMfioDataIn10Mask	/* 10 */
#define	kMModuleCardIOReadDataInMask			kIOMfioDataIn9Mask	/* 9 */
#define	kMModuleCardCSLDataInMask				kIOMfioDataIn8Mask	/* 8 */
#define	kMModuleCardCSHDataInMask				kIOMfioDataIn7Mask	/* 7 */
#define	kMModuleEnFlashRdDataInMask				kIOMfioDataIn6Mask	/* 6 */
#define	kIrDAShutDownDataInMask					kIOMfioDataIn5Mask	/* 5 */
#define	kMModuleCardWaitDataInMask				kIOMfioDataIn4Mask	/* 4 */
#define	kKeyboardWakeDataInMask					kIOMfioDataIn3Mask	/* 3 */
#define	kKeyboardResetDataInMask				kIOMfioDataIn2Mask	/* 2 */
#define	kKeyboardAttentionDataInMask			kIOMfioDataIn1Mask	/* 1 */
#define	kSIBRingDetectDataInMask				kIOMfioDataIn0Mask	/* 0 */

						/***** Register Equates (PoseidonModule.mfioSelect) *****/	
#define	kSerialRTSSelectMask					kIOMfioSelect31Mask	/* 31 */
#define	kSerialCTSSelectMask					kIOMfioSelect30Mask	/* 30 */
#define	kMiniCard2ResetSelectMask				kIOMfioSelect29Mask	/* 29 */
#define	kMiniCard2BusySelectMask				kIOMfioSelect28Mask	/* 28 */
#define	kPowerVCC3SelectMask					kIOMfioSelect27Mask	/* 27 */
#define	kPowerDRAMVCCOnSelectMask				kIOMfioSelect26Mask	/* 26 */
#define	kDisplayVBacklightOnSelectMask			kIOMfioSelect25Mask	/* 25 */
#define	kMagicBusTXDataSelectMask				kIOMfioSelect24Mask	/* 24 */
#define	kMagicBusRXDataSelectMask				kIOMfioSelect23Mask	/* 23 */
#define	kMiniCard2MCCSSelectMask				kIOMfioSelect22Mask	/* 22 */
#define	kMModuleCS2SelectMask					kIOMfioSelect21Mask	/* 21 */
#define	kMiniCard1SDASelectMask					kIOMfioSelect20Mask	/* 20 */
#define	kMiniCard2SDASelectMask					kIOMfioSelect19Mask	/* 19 */
#define	kMiniCardSCLSelectMask					kIOMfioSelect18Mask	/* 18 */
#define	kDisplayVLCDOnSelectMask				kIOMfioSelect17Mask	/* 17 */
#define	kMagicBusVCCOnSelectMask				kIOMfioSelect16Mask	/* 16 */
#define	kKeyboardSPIClockSelectMask				kIOMfioSelect15Mask	/* 15 */
#define	kKeyboardSPIOutSelectMask				kIOMfioSelect14Mask	/* 14 */
#define	kKeyboardSPIInSelectMask				kIOMfioSelect13Mask	/* 13 */
#define	kFlashOnBoardSelectMask					kIOMfioSelect12Mask	/* 12 */
#define	kMModuleCardRegSelectMask				kIOMfioSelect11Mask	/* 11 */
#define	kMModuleCardIOWriteSelectMask			kIOMfioSelect10Mask	/* 10 */
#define	kMModuleCardIOReadSelectMask			kIOMfioSelect9Mask	/* 9 */
#define	kMModuleCardCSLSelectMask				kIOMfioSelect8Mask	/* 8 */
#define	kMModuleCardCSHSelectMask				kIOMfioSelect7Mask	/* 7 */
#define	kMModuleEnFlashRdSelectMask				kIOMfioSelect6Mask	/* 6 */
#define	kIrDAShutDownSelectMask					kIOMfioSelect5Mask	/* 5 */
#define	kMModuleCardWaitSelectMask				kIOMfioSelect4Mask	/* 4 */
#define	kKeyboardWakeSelectMask					kIOMfioSelect3Mask	/* 3 */
#define	kKeyboardResetSelectMask				kIOMfioSelect2Mask	/* 2 */
#define	kKeyboardAttentionSelectMask			kIOMfioSelect1Mask	/* 1 */
#define	kSIBRingDetectSelectMask				kIOMfioSelect0Mask	/* 0 */

						/***** Register Equates (PoseidonModule.mfioPowerDown) *****/	
#define	kSerialRTSPowerDownMask					kIOMfioPowerDown31Mask	/* 31 */
#define	kSerialCTSPowerDownMask					kIOMfioPowerDown30Mask	/* 30 */
#define	kMiniCard2ResetPowerDownMask			kIOMfioPowerDown29Mask	/* 29 */
#define	kMiniCard2BusyPowerDownMask				kIOMfioPowerDown28Mask	/* 28 */
#define	kPowerVCC3PowerDownMask					kIOMfioPowerDown27Mask	/* 27 */
#define	kPowerDRAMVCCOnPowerDownMask			kIOMfioPowerDown26Mask	/* 26 */
#define	kDisplayVBacklightOnPowerDownMask		kIOMfioPowerDown25Mask	/* 25 */
#define	kMagicBusTXDataPowerDownMask			kIOMfioPowerDown24Mask	/* 24 */
#define	kMagicBusRXDataPowerDownMask			kIOMfioPowerDown23Mask	/* 23 */
#define	kMiniCard2MCCSPowerDownMask				kIOMfioPowerDown22Mask	/* 22 */
#define	kMModuleCS2PowerDownMask				kIOMfioPowerDown21Mask	/* 21 */
#define	kMiniCard1SDAPowerDownMask				kIOMfioPowerDown20Mask	/* 20 */
#define	kMiniCard2SDAPowerDownMask				kIOMfioPowerDown19Mask	/* 19 */
#define	kMiniCardSCLPowerDownMask				kIOMfioPowerDown18Mask	/* 18 */
#define	kDisplayVLCDOnPowerDownMask				kIOMfioPowerDown17Mask	/* 17 */
#define	kMagicBusVCCOnPowerDownMask				kIOMfioPowerDown16Mask	/* 16 */
#define	kKeyboardSPIClockPowerDownMask			kIOMfioPowerDown15Mask	/* 15 */
#define	kKeyboardSPIOutPowerDownMask			kIOMfioPowerDown14Mask	/* 14 */
#define	kKeyboardSPIInPowerDownMask				kIOMfioPowerDown13Mask	/* 13 */
#define	kFlashOnBoardPowerDownMask				kIOMfioPowerDown12Mask	/* 12 */
#define	kMModuleCardRegPowerDownMask			kIOMfioPowerDown11Mask	/* 11 */
#define	kMModuleCardIOWritePowerDownMask		kIOMfioPowerDown10Mask	/* 10 */
#define	kMModuleCardIOReadPowerDownMask			kIOMfioPowerDown9Mask	/* 9 */
#define	kMModuleCardCSLPowerDownMask			kIOMfioPowerDown8Mask	/* 8 */
#define	kMModuleCardCSHPowerDownMask			kIOMfioPowerDown7Mask	/* 7 */
#define	kMModuleEnFlashRdPowerDownMask			kIOMfioPowerDown6Mask	/* 6 */
#define	kIrDAShutDownPowerDownMask				kIOMfioPowerDown5Mask	/* 5 */
#define	kMModuleCardWaitPowerDownMask			kIOMfioPowerDown4Mask	/* 4 */
#define	kKeyboardWakePowerDownMask				kIOMfioPowerDown3Mask	/* 3 */
#define	kKeyboardResetPowerDownMask				kIOMfioPowerDown2Mask	/* 2 */
#define	kKeyboardAttentionPowerDownMask			kIOMfioPowerDown1Mask	/* 1 */
#define	kSIBRingDetectPowerDownMask				kIOMfioPowerDown0Mask	/* 0 */

/* Cmtt1 Default IO and MFIO Masks */
#define	kCmtt1IOControlDefaultMask				(kSerialDTRDirectionMask | kMModuleWakeDirectionMask | kSerialDTRDataOutMask)

#define	kCmtt1IOPowerDownDefaultMask			(kMiniCard1DetectPowerDownMask | kMiniCard2DetectPowerDownMask | \
													kSerialDTRPowerDownMask | kMModuleInterruptPowerDownMask | \
													kMModuleWakePowerDownMask | kMModuleAttachedPowerDownMask)

#define	kCmtt1MFIODataOutputDefaultMask			(kMiniCard2ResetDataOutMask | kPowerDRAMVCCOnDataOutMask | \
													kKeyboardWakeDataOutMask | kKeyboardResetDataOutMask | \
													kDisplayVLCDOnDataOutMask | kSerialRTSDataOutMask)

#define	kCmtt1MFIODirectionDefaultMask			(kSerialRTSDirectionMask | \
													kMiniCard2ResetDirectionMask | kMiniCard2BusyDirectionMask | \
													kPowerDRAMVCCOnDirectionMask | kDisplayVBacklightOnDirectionMask | \
													kIrDAShutDownDirectionMask | kMiniCard1SDADirectionMask | \
													kMiniCard2SDADirectionMask | kMiniCardSCLDirectionMask | \
													kDisplayVLCDOnDirectionMask | kMagicBusVCCOnDirectionMask | \
													kKeyboardResetDirectionMask)

#define	kCmtt1MFIOSelectDefaultMask				(kSerialCTSSelectMask | kSerialRTSSelectMask | \
													kMiniCard2ResetSelectMask | kMiniCard2BusySelectMask | \
													kPowerDRAMVCCOnSelectMask | kDisplayVBacklightOnSelectMask | \
													kIrDAShutDownSelectMask | kMiniCard1SDASelectMask | \
													kMiniCard2SDASelectMask | kMiniCardSCLSelectMask | \
													kDisplayVLCDOnSelectMask | kMagicBusVCCOnSelectMask | \
													kFlashOnBoardSelectMask | kMModuleEnFlashRdSelectMask | \
													kMModuleCardWaitSelectMask	| kKeyboardWakeSelectMask | \
													kKeyboardResetSelectMask | kKeyboardAttentionSelectMask | \
													kSIBRingDetectSelectMask | kPowerVCC3SelectMask)

#define	kCmtt1MFIOPowerDownDefaultMask			(kSerialCTSPowerDownMask | kSerialRTSPowerDownMask | \
													kMiniCard2ResetPowerDownMask | kMiniCard2BusyPowerDownMask | \
													kDisplayVBacklightOnPowerDownMask | kMagicBusTXDataPowerDownMask | \
													kMagicBusRXDataPowerDownMask | kIrDAShutDownPowerDownMask | \
													kMModuleCS2PowerDownMask | kMiniCard1SDAPowerDownMask | \
													kMiniCard2SDAPowerDownMask | kMiniCardSCLPowerDownMask | \
													kDisplayVLCDOnPowerDownMask | kFlashOnBoardPowerDownMask | \
													kMModuleCardRegPowerDownMask | kMModuleCardIOWritePowerDownMask | \
													kMModuleCardIOReadPowerDownMask | kMModuleCardCSLPowerDownMask | \
													kMModuleCardCSHPowerDownMask | kMModuleEnFlashRdPowerDownMask | \
													kMiniCard2MCCSPowerDownMask | kMModuleCardWaitPowerDownMask)

#ifdef ASM_ONLY
// uses a0, a1, v0, v1; returns rtcLow in v0 and rtcHigh in v1
//		must be called with .set noreorder
//		label 19 = Ripple
#define ReadRTCNoRippleASM														\
	li		a0, kPoseidonModuleAddress;											\
	lw		a1, PoseidonModule_rtcLow(a0);										\
19:;																			\
	lw		v1, PoseidonModule_rtcHigh(a0);										\
	lw		v0, PoseidonModule_rtcLow(a0);										\
	and		v1, 0x000000ff;														\
	bne		a1, v0, 19b;														\
	lw		a1, PoseidonModule_rtcLow(a0);										\
																				\

// uses a0, a1, a2, a3, v0, v1; ticks passed in a0; returns final rtcLow in v0 and rtcHigh in v1
//		must be called with .set noreorder
//		label 31 = WaitHighRoll; label 23 = SkipHighRoll; label 35 = LowReadLoop
#define DelayRTCTicksNoRippleASM												\
	move	a2, a0;																\
	ReadRTCNoRippleASM;															\
	li		a3, 0xffffffff;														\
	subu	a3, v0;																\
	bleu	a2, a3, 23f;														\
	nop;																		\
																				\
	subu	a2, a3;																\
	move	a3, v1;																\
																				\
31:;																			\
	ReadRTCNoRippleASM;															\
	beq		v1, a3, 31b;														\
	nop;																		\
																				\
23:;																			\
	move	a3, v0;																\
	addu	a3, a2;																\
35:;																			\
	ReadRTCNoRippleASM;															\
	bltu	v0, a3, 35b;														\
	nop;																		\
																				\

#else
/*
 * Get the current RTC, avoiding ripple.  We know that if we
 * sandwich a read of rtcHigh between two consistent reads of
 * rtcLow, we have a non-rippling, consistent rtcHigh.
 */
#define ReadRTCNoRipple(poseidonModule, rtcLowVal, rtcHighVal)					\
{																				\
	do	{																		\
		rtcLowVal = poseidonModule->rtcLow;										\
		rtcHighVal = poseidonModule->rtcHigh & 0x000000ff;						\
	} while (rtcLowVal != poseidonModule->rtcLow);								\
}

#define DelayRTCTicksNoRipple(poseidonModule, ticks)							\
{																				\
	ULONG rtcLowVal, rtcHighVal, ticks2, temp;									\
																				\
	ReadRTCNoRipple(poseidonModule, rtcLowVal, rtcHighVal);						\
																				\
	temp = (ULONG)0xffffffff - rtcLowVal;										\
	ticks2 = ticks;																\
																				\
	if (temp < ticks2) {														\
		ticks2 -= temp;															\
		temp = rtcHighVal;														\
																				\
		do {																	\
			ReadRTCNoRipple(poseidonModule, rtcLowVal, rtcHighVal);				\
		} while (rtcHighVal == temp);											\
	}																			\
																				\
	temp = rtcLowVal + ticks2;													\
																				\
	do {																		\
		ReadRTCNoRipple(poseidonModule, rtcLowVal, rtcHighVal);					\
	} while (rtcLowVal  < temp);												\
}

#endif

/*
 * Miscellaneous I/O
 */

#define kIOResetBettyOffMask kIREnRXPwrMask		/* This mask is for PoseidonModule.irControl1 */

/* 
 * Macros
 */

#define AssertBettyResetSignal() \
	poseidonHw->irControl1 &= ~kIOResetBettyOffMask;	

#define DeAssertBettyResetSignal() \
	poseidonHw->irControl1 |= kIOResetBettyOffMask;	

#endif

⌨️ 快捷键说明

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