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

📄 boardcontrol.c

📁 pxa270触摸屏驱动程序
💻 C
📖 第 1 页 / 共 3 页
字号:
}

//===hzh
static UINT lcd_panel_id = LCDID_TOSHIBA_VGA_16;
static UINT pre_lcd_panel_id;
VOID ChangeLcdPanelID (VOID)
{
	if(lcd_panel_id!=LCDID_CRT_VGA_16)
	{
		pre_lcd_panel_id = lcd_panel_id;
		lcd_panel_id = LCDID_CRT_VGA_16;
	}
	else
		lcd_panel_id = pre_lcd_panel_id;
}
//===

UINT GetLcdPanelID (VOID)
{
    return lcd_panel_id;//PSPR_LCDID(GetSCR());	hzh
}

PCHAR DisplayLcdPanelID (VOID)
{
    PCHAR panelNameP;
    UINT panelID = PSPR_LCDID(GetSCR());
    switch (panelID)
    {
        case LCDID_TOSHIBA_VGA_16:
            panelNameP = "Toshiba LTM04C380K VGA 16 bit";
            break;
        case LCDID_TOSHIBA_VGA_18:
            panelNameP = "Toshiba LTM04C380K VGA 18 bit";
            break;
        case LCDID_SHARP_QVGA:
            panelNameP = "Toshiba LTM035A776C QVGA";
            break;
        default:
            panelNameP = "Unsupported LCD Panel"; 
    }    
    return panelNameP;
}

PCHAR DisplayDaughterCardID (VOID)
{
    PCHAR cardNameP;
    UINT CpuVersion = 0;
    UINT cardID = PSPR_DCID(GetSCR());

    // Retrieve the CPU version information
    CpuVersion = GetCpuVersion();

    if (CPU_PRODUCT_NUM(CpuVersion) == 0x10)
    {
        cardNameP = "Unsupported Card ID";
    }
    else
    {
        switch (cardID)
        {
            case 0:
                cardNameP = "HCDDBVA0 Daughter Card";
                break;
            case 1:
                cardNameP = "Reserved";
                break;
            case 2:
                cardNameP = "PXA27x Daughter Card";
                break;
            default:
                cardNameP = "Unsupported Card ID"; 
        }
    }    
    return cardNameP;
}

/*
*******************************************************************************
*
* FUNCTION:
*    IsMainBoardPresent
*
* DESCRIPTION:
*    This routine is used to determine whether the Main Board is connected.
*
* INPUT PARAMETERS:
*    None.
*
* RETURNS:
*    UINT   0 - Main board is present
*           1 - Main board is not present
*
* GLOBAL EFFECTS:
*    None.
*
* ASSUMPTIONS:
*    None.
*
* CALLS:
*    None.
*
* CALLED BY:
*    Test code or DM infrastructure.
*
* PROTOTYPE:
*    UINT IsMainBoardPresent(VOID);
*
*******************************************************************************
*/
PCHAR DisplayDaughterCardRevision (VOID)
{
    PCHAR revP;
    UINT cardRev = PSPR_DCREV(GetSCR());
    switch (cardRev)
    {
        case 0:
            revP = "Rev. 1.0";
            break;
        case 1:
            revP = "Rev. 1.1";
            break;
        case 2:
            revP = "Rev. 1.2";
            break;
        default:
            revP = "Reserved"; 
    }    
    return revP;
}

/*
*******************************************************************************
*
* FUNCTION:
*    IsMainBoardPresent
*
* DESCRIPTION:
*    This routine is used to determine whether the Main Board is connected.
*
* INPUT PARAMETERS:
*    None.
*
* RETURNS:
*    UINT   0 - Main board is present
*           1 - Main board is not present
*
* GLOBAL EFFECTS:
*    None.
*
* ASSUMPTIONS:
*    None.
*
* CALLS:
*    None.
*
* CALLED BY:
*    Test code or DM infrastructure.
*
* PROTOTYPE:
*    UINT IsMainBoardPresent(VOID);
*
*******************************************************************************
*/
UINT IsMainBoardPresent(VOID)
{
static UINT x = 3;
    if (x==3) x = PSPR_nMB_PRES(GetSCR());
    // 0 - Main Board is present, 1 - Main Board is absent
    return x;
}

/*
*******************************************************************************
*
* FUNCTION:
*    DisplayMainBoardRevision
*
* DESCRIPTION:
*    This routine is used to display Main Board Revision.
*
* INPUT PARAMETERS:
*    None.
*
* RETURNS:
*    PCHAR - pointer to the string, indicating revision number
*
* GLOBAL EFFECTS:
*    None.
*
* ASSUMPTIONS:
*    None.
*
* CALLS:
*    None.
*
* CALLED BY:
*    Test code or DM infrastructure.
*
* PROTOTYPE:
*    PCHAR DisplayMainBoardRevision (VOID);
*
*******************************************************************************
*/
PCHAR DisplayMainBoardRevision (VOID)
{
    PCHAR revP;
    UINT boardRev = PSPR_SCR_MBREV(GetSCR());
    switch (boardRev)
    {
        case 0:
            revP = "Revision 1";
            break;
        case 1:
            revP = "Revision 1.1";
            break;
        case 2:
            revP = "Revision 2.0";
            break;
        case 3:
            revP = "Revision 2.1";
            break;
        default:
            revP = "Unknown Revision"; 
    }    
    return revP;
}

/*
*******************************************************************************
*
* FUNCTION:
*    IsExpansionBoardPresent
*
* DESCRIPTION:
*    This routine is used to determine whether the explansion board is connected.
*
* INPUT PARAMETERS:
*    None.
*
* RETURNS:
*    UINT   0 - Expansion board is present
*           1 - Expansion board is not present
*
* GLOBAL EFFECTS:
*    None.
*
* ASSUMPTIONS:
*    None.
*
* CALLS:
*    None.
*
* CALLED BY:
*    Test code or DM infrastructure.
*
* PROTOTYPE:
*    UINT IsExpansionBoardPresent(VOID);
*
*******************************************************************************
*/
UINT IsExpansionBoardPresent(VOID)
{
    return PSPR_nEXB_PRES(GetSCR());
}

/*
*******************************************************************************
*
* FUNCTION:
*    GetFlashSelectSwitchStatus
*
* DESCRIPTION:
*    This routine is used to determine the status of the swap flash switch SW2
*
* INPUT PARAMETERS:
*    None.
*
* RETURNS:
*    UINT  0 - Boot ROM chip select is nCS[0], Flash ROM chip select is nCS[1]
*          1 - Boot ROM chip select is nCS[1], Flash ROM chip select is nCS[0]
*
* GLOBAL EFFECTS:
*    None.
*
* ASSUMPTIONS:
*    None.
*
* CALLS:
*    None.
*
* CALLED BY:
*    Test code or DM infrastructure.
*
* PROTOTYPE:
*    UINT GetFlashSelectSwitchStatus(VOID);
*
*******************************************************************************
*/
UINT GetFlashSelectSwitchStatus(VOID)
{
    // 0 - Boot ROM chip select is nCS[0], Flash ROM chip select is nCS[1]
    // 1 - Boot ROM chip select is nCS[1], Flash ROM chip select is nCS[0]
    return PSPR_SWAP_FLASH(GetSCR());
}

/*
*******************************************************************************
*
* FUNCTION:         IRDAEnableOperationMode
*
* DESCRIPTION:      Selects FIR or SIR mode of operation
*
* INPUT PARAMETERS: param - it expects two parameters:
*                       first is used to select IRDA operation: 
*                   	    selects FIR mode if set to one and
*                   	    selects SIR mode if set to zero
*
*                       second - is used to select the power range:
*                           IrMaxPower      = 0,
*                           IrShutdownPower = 1,
*                           IrTwoThirdRange = 2,
*                           IrOneThirdRange = 3,
*
* RETURNS:          none.
*
* GLOBAL EFFECTS:   none.
*
* ASSUMPTIONS:      none.
*
* CALLS:			BoardMiscWriteRegister
*
* CALLED BY:
*
* PROTOTYPE:        VOID IRDAEnableOperationMode (PVOID arg, PCHAR param);
*
*******************************************************************************
*/
VOID IRDAEnableOperationMode (PVOID arg, PCHAR param)
{
    UINT32 paramArray[4];
    UINT32 modeIRDA;
    UINT32 powerLevel;
    UINT32 temp;

    GetMultipleParamFromString (param, 2, (PUINT32)paramArray);
    modeIRDA = paramArray[0];
    temp = paramArray[1];
    powerLevel = (temp << MISC_WR1_IRDA_SHIFT) & 0x60;

	// Enable SIR/FIR mode and the power level in IRDA transiver
	SelectIrOperationMode (modeIRDA, powerLevel);
}


/*
*******************************************************************************
*
* FUNCTION:
*    EnableTrvBTUART
*
* DESCRIPTION:
*    This routine Enables/Disables RS232 Tranceiver for BTUART.
*
* INPUT PARAMETERS:
*    param - 0 disables RS232 Tranceiver of BTUART
*            1 enables RS232 Tranceiver of BTUART
*
* RETURNS:
*    None.
*
* GLOBAL EFFECTS:
*    None.
*
* ASSUMPTIONS:
*    None.
*
* CALLS:
*    None.
*
* CALLED BY:
*    Test code or DM infrastructure.
*
* PROTOTYPE:
*   VOID EnableTrvBTUART (PVOID arg, PCHAR param);
*
*******************************************************************************
*/
VOID EnableTrvBTUART (PVOID arg, PCHAR param)
{
  	INT enableTrv;
  	
	sscanf(param, "%d", &enableTrv);
  	
  	// Enable/Disable RS232 Tranceiver for BTUART
    ModifyMiscWr1Register(enableTrv, nBt_OFF);
}

/*
*******************************************************************************
*
* FUNCTION:
*    SetPOSTRunState
*
* DESCRIPTION:
*    This routine reads and  returns the desired run state of POST.
*
* INPUT PARAMETERS:
*    None
*            
*
* RETURNS:
*    UINT32 a value of the current state.
*
* GLOBAL EFFECTS:
*    None.
*
* ASSUMPTIONS:
*    None.
*
* CALLS:
*    None.
*
* CALLED BY:
*    
*
* PROTOTYPE:
*   UNINT32 SetPOSTRunState (void);
*
*******************************************************************************/


UINT32 POSTRunState()
{
	static UINT32 POSTRunStateWord = 0;
	UINT32 currentUserSwitches;
	PUINT32 VsDataP = (PUINT32) VIRTUAL_SWITCH_DATA;
	P_XLLP_GPIO_T gpioReg = (P_XLLP_GPIO_T ) XS_GPIO_REGISTER_BASE;

	//===hzh
	static UINT32 first = 0;
	if(!first)
	{
		POSTRunStateWord = VS_LCD_TEXT_ON | VS_COMMAND_MODE | VS_TEST_LEVEL_HI;// | VS_RUN_MFG_TESTS;
		if(gpioReg->GPLR0 & (1UL<<0))
			POSTRunStateWord |= VS_RUN_INT_TESTS;//VS_BT_AS_SYSIO;
		if(gpioReg->GPLR2 & (1UL<<29))
			POSTRunStateWord |= VS_DEBUG_ON;
		if(gpioReg->GPLR2 & (1UL<<30))
			POSTRunStateWord |= VS_LOOP_ON;
		if(gpioReg->GPLR2 & (1UL<<31))
			POSTRunStateWord &= ~VS_COMMAND_MODE;
		first = 1;
	}
	return POSTRunStateWord;
	//===
	// read all of the switches or copy down the virtual switches
	currentUserSwitches = ReadUserSwitches();

	// check to see if the use virtual switches are to be used. They are used
	// if the debug switch is set and there is valid virtual switch data.
	if ((currentUserSwitches & AltErrorSwitch) && (*VsDataP == VIRTUAL_SWITCH_KEY))
		{
			POSTRunStateWord = (UINT32) *(VsDataP + 4);

		}
	// check for a cable in the FFUART and the switch is set for FFUART usage
	else if	((gpioReg->GPLR1 & XLLP_GPIO_BIT_FFDSR) && 	 // DTR not set
	         (AltIOSwitch & ~currentUserSwitches) && 	 // asking for FFUART
	         ((currentUserSwitches & AltRunMode0) != AltRunMode0) &&
			 ((currentUserSwitches & AltRunMode1) != AltRunMode1)
	        ) 
		{
			// No cable in FFUART and set for FFUART. Run with LCD text and looping
			POSTRunStateWord |= VS_LCD_TEXT_ON | VS_LOOP_ON;
		}
	else 
		{
			// use the actual physical switches to set up the data
			if ((currentUserSwitches & AltErrorSwitch) == AltErrorSwitch)
				POSTRunStateWord |= VS_DEBUG_ON; // use debug mode

			if ((currentUserSwitches & AltIOSwitch) == AltIOSwitch)
				POSTRunStateWord |= VS_BT_AS_SYSIO;	 // set BTUART as SYSIO

			if (((currentUserSwitches & AltRunMode0) == AltRunMode0) && 
			    ((currentUserSwitches & AltRunMode1) != AltRunMode1))
				POSTRunStateWord |= VS_RUN_INT_TESTS;	 // Run Interactive Tests

			if (((currentUserSwitches & AltRunMode0) != AltRunMode0) && 
			    ((currentUserSwitches & AltRunMode1) == AltRunMode1))
				{
					POSTRunStateWord |= VS_RUN_INT_TESTS;	 // Run Interactive Tests
					POSTRunStateWord |= VS_RUN_MFG_TESTS;	 // Run MFG Tests
				}

			if (((currentUserSwitches & AltRunMode0) == AltRunMode0) && 
			    ((currentUserSwitches & AltRunMode1) == AltRunMode1))
				POSTRunStateWord |= VS_COMMAND_MODE;	 // Run Interactive Tests	 
			
		}

	return POSTRunStateWord;

}

⌨️ 快捷键说明

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