📄 cus03l_board_gpio.c
字号:
#include "mreg51.h"
#include "sysinfo.h"
#include "hwreg.h"
#include "drvuart.h"
#include "drvmiu.h"
#include "drvsys.h"
#include "Analog_Reg.h"
#include "drvGlobal.h"
#include "drvISR.h"
#include "drviic.h"
#include <stdio.h>
#include "DrvGpio.h"
//---------------------------------------------------------------------
//---------------------------------------------------------------------
//In MST demo set(2338)
//INT/IR is gpio, remote_control IR connect to IR2
//---------------------------------------------------------------------
void InitialSaturn2_IR_Port( void )
{
XBYTE[REG_MUX_CONFIG_2] |= IR_PORT_SEL;
}
//---------------------------------------------------------------------
void InitialSaturn2_UART1_Port(void ) //as UART1
{
#if (( MS_BOARD_TYPE_SEL == BD_CUS3_22LS4D ) || (MS_BOARD_TYPE_SEL == BD_CUS3_22LS4D_0305) )
//UART 1
//printf("initial UArt1 port\n");
XBYTE[REG_MUX_CONFIG_3] = (XBYTE[REG_MUX_CONFIG_3] & 0xfc) | SECOND_UART_MODE_1; //0xc2; //UART 1 to pad_lhs and pad_Lvs, and I2s_mute to pad_pci_ad8
XBYTE[REG_MUX_FUNC_SEL1] &= (~CEC_MODE); //XBYTE[0x1ea1] &=0xe7; //disable CEC
XBYTE[REG_P1_ENABLE] &= (~BIT7 ); //XBYTE[0x1ea4] &=0x7f; //disable P1_7
XBYTE[REG_MUX_UART_JTAG] |= UART1_SEL_51_UART1; //XBYTE[ 0x1eaa] |=0x20;
#else
//include Tx/Rx and GPIO0~3 to Port1
XBYTE[REG_MUX_CONFIG_3] &= ~(SECOND_UART_MODE);
XBYTE[REG_MUX_FUNC_SEL0] &= (~DTCON_SETTING);
XBYTE[REG_MUX_FUNC_SEL0] |= (TCON_IS_GPIO);
XBYTE[REG_MUX_FUNC_SEL1] &= (~CEC_MODE); //XBYTE[0x1ea1] &=0xe7; //disable CEC
XBYTE[REG_P1_ENABLE] &=~(BIT6|BIT5|BIT4|BIT3|BIT2|BIT1|BIT0);
XBYTE[REG_MUX_FUNC_SEL0] &=0xf3; //atcon_setting=00b
XBYTE[REG_GPIO_OE_0]=BIT1;
#endif
}
//---------------------------------------------------------------------
void InitialSaturn2_Pin134 (void ) //pin 134 as GPIO 15
{
XBYTE[REG_MUX_FUNC_SEL1] &= (~CEC_MODE);
XBYTE[REG_MUX_CONFIG_4] &= (~FCIE_CONFIG) ;
XBYTE[REG_MUX_FUNC_SEL3]|=FLHWE_IS_GPIO;
XBYTE[REG_GPIO_OE_1]|=0x80; //gpio15 is input
}
//---------------------------------------------------------------------
void InitialLVDS_B0_B1_IsGpio ( void )
{
XBYTE[REG_SEL_TTL_1] |= 0x08; //bit 3 =0;
XBYTE[ODD_IS_GPIO_3] |= 0x0c; //PAD_b_ODD0/PAD_b_ODD1 is GPIO
XBYTE[ODD_GPO_SEL_3] |= 0x0c; //
//define B0/b1 gpio is output port
XBYTE[ODD_GPO_OEZ_3] = (XBYTE[ODD_GPO_OEZ_3] & 0xf3)| SET_B0_B1_IO_MODE;
}
//---------------------------------------------------------------------
//---------------------------------------------------------------------
void InitialLVDS_G4_G5_IsGpio ( void )
{
XBYTE[REG_SEL_TTL_0 ] |= 0x20; //bit 5 =0;
XBYTE[ODD_IS_GPIO_1] |= 0xc0; //PAD_g_ODD4/PAD_g_ODD5 is GPIO
XBYTE[ODD_GPO_SEL_1] |= 0xc0; //
XBYTE[ODD_GPO_OEZ_2] = (XBYTE[ODD_GPO_OEZ_2] & 0xfc)| SET_G4_G5_IO_MODE;
}
//---------------------------------------------------------------------
void InitialLVDS_HS_VS_VE_DE_IsGpio( void ) // HS,VS,Clk,Ve is gpio
{
XBYTE[ODD_IS_GPIO_0] |= 0x0f;
XBYTE[ODD_GPO_SEL_0] |= 0x0f;
XBYTE[ODD_GPO_OEZ_0] =( XBYTE[ODD_GPO_OEZ_0] & 0xf0) | HS_VS_VD_DE_IO_SETTING;
}
//---------------------------------------------------------------------
void IntialSaturn2_TS_Port(void) //TS0 interface
{
XBYTE[REG_MUX_CONFIG_0] |= TS0_IS_TS0;
XBYTE[REG_MUX_CONFIG_0] &= ~( TS0_IS_DI );
XBYTE[REG_MUX_FUNC_SEL3]&= ~( TS0_IS_GPIO );
XBYTE[REG_MUX_FUNC_SEL6]&= ~( DHC_DFT_MODE);
XBYTE[REG_MUX_CONFIG_5] &= ~( DSPE_JTAG_MODE );
}
//---------------------------------------------------------------------
//---------------------------------------------------------------------
void InitialSaturn2_I2S_Port( void )
{
XBYTE[REG_MUX_FUNC_SEL3]&=( ~I2S_IS_GPIO );
XBYTE[REG_MUX_CONFIG_3] = ( XBYTE[REG_MUX_CONFIG_3] & 0x3f ) | I2S_MUTE_MODE_1; //I2sMUTE pin
}
//---------------------------------------------------------------------
void InitialSaturn2_PCI_Port_Is_GPIO(void) //PCI is GPIO
{
XBYTE[REG_MUX_FUNC_SEL0] &= (~ATCON_SETTING);
XBYTE[REG_MUX_PCI]=(XBYTE[REG_MUX_PCI] & 0xc0) | PCI_GPIO_ENABLE; // PCI_AD0~AD7 is GPIO
XBYTE[REG_MUX_CONFIG_2] &= (~PCI_CONFIG);
XBYTE[REG_PCI_GPIO_OE_0]=PCI_GPIO_SETTING;
}
//---------------------------------------------------------------------
//---------------------------------------------------------------------
//---------------------------------------------------------------------
//---------------------------------------------------------------------
//---------------------------------------------------------------------
//---------------------------------------------------------------------
void InitialSaturn2_DI_Port_Is_GPIO(void) //to BT656 interface
{
Power_On(); //default set to power On!!
Audio_Amplifier_OFF();
LED_RED_OFF();
LED_GREEN_OFF();
Panel_Backlight_VCC_OFF();
XBYTE[REG_MUX_FUNC_SEL3] |= DI_IS_GPIO;
XBYTE[REG_DI_GPIO_OE_HIGH] = HIBYTE(DI_PORT_IO_SET);
XBYTE[REG_DI_GPIO_OE_LOW] = LOBYTE(DI_PORT_IO_SET);
XBYTE[REG_MUX_CONFIG_0] &= 0xE1; //dihmode,dilMode=0
}
//---------------------------------------------------------------------
void Mst_GPIO_Initial( void )
{
//gpio port
InitialSaturn2_DI_Port_Is_GPIO();
InitialSaturn2_IR_Port();
InitialSaturn2_UART1_Port();
InitialSaturn2_Pin134();
//mod lvds gpio
InitialLVDS_B0_B1_IsGpio();
InitialLVDS_G4_G5_IsGpio();
InitialLVDS_HS_VS_VE_DE_IsGpio();
XBYTE[ODD_GPO_OEZ_3] &= (~BIT3); //i2cSCL_PIN_OUT();
XBYTE[ODD_GPO_OEZ_3] &= (~BIT2); //i2cSDA_PIN_OUT();
XBYTE[ODD_GPO_DATA_3] |= (BIT3); //SetPinI2cSCL();
XBYTE[ODD_GPO_DATA_3] |= (BIT2); //SetPinI2cSDA();
//TS0 port
IntialSaturn2_TS_Port();
//PCI port as GPIO
InitialSaturn2_PCI_Port_Is_GPIO();
//i2s interface
InitialSaturn2_I2S_Port();
}
//---------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -