📄 mst037k_d01_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"
//---------------------------------------------------------------------
#define IR_PORT_SEL (BIT2|BIT3) //IR_USE_PAD_IRIN2/INT_USE_PAD_INT2
#define IRIN2_INT2_IS_GPIO (BIT0|BIT1)
#define IRIN_INT_IS_GPIO (BIT6|BIT7)
///---------------------------------------------------------------------
/// Mstar Demo PCB: MST037K_D01A
/// initial gpio0 for RGB/YPbPr source switch
/// default set to "0" : RGB input
///---------------------------------------------------------------------
void Iniital_USB_OCD_N( void ) //gpio_0 set to output
{
XBYTE[REG_MUX_CONFIG_3] &= ~(SECOND_UART_MODE); //UART1 not enable
XBYTE[REG_MUX_FUNC_SEL1] &= (~CEC_MODE); //XBYTE[0x1ea1] &=0xe7; //disable CEC
#ifndef MOSES // kevin c
XBYTE[REG_P1_ENABLE] &=~(BIT0); // 8051 port 1
//XBYTE[REG_GPIO_OUT_LOW] = ~BIT0; //output 0
XBYTE[REG_GPIO_OE_0] |= BIT0; //ASSIGN AS OUTPUT
#endif
}
//---------------------------------------------------------------------
//---------------------------------------------------------------------
void InitialSaturn2_Pin134 (void ) //pin 134 RGB/YPbPr
{
XBYTE[REG_MUX_FUNC_SEL1] &= (~CEC_MODE);
#ifndef MOSES // kevin d
XBYTE[REG_MUX_CONFIG_4] &= (~FCIE_CONFIG) ; //commaon setting with FCIE_GPIO
XBYTE[REG_MUX_FUNC_SEL3]|=FLHWE_IS_GPIO;
#endif
Switch_YPbPr1(); //default connect to RGB
#ifndef MOSES // kevin d
XBYTE[REG_GPIO_OE_1] &=(~BIT7); //gpio15 is output
#endif
}
//---------------------------------------------------------------------
///In MST37K_D01A demo set(2166)
///Remote_control IR connect to IR2
//pin 178/179
//---------------------------------------------------------------------
static void Initial_IR_Port( void )
{
XBYTE[REG_MUX_CONFIG_2] |= IR_PORT_SEL;
//XBYTE[REG_MUX_FUNC_SEL2]=(XBYTE[REG_MUX_FUNC_SEL2] & 0x3f )|IRIN_INT_IS_GPIO;
#ifndef MOSES // kevin d
XBYTE[REG_MUX_FUNC_SEL3] &= (~IRIN2_INT2_IS_GPIO);
//XBYTE[REG_GPIO_OE_0] &= (~ (BIT4|BIT3) );
XBYTE[REG_GPIO_OE_0] |= (BIT4|BIT3) ;
#endif
}
//---------------------------------------------------------------------
///In MST37K_D01A demo set(2166)
///GPIO_2
//pin 207/208 PAD_LVSYNC2/GPIO_2 to MUTE_S
//---------------------------------------------------------------------
void InitialSaturn2_UART1_Port ( void )
{
//UART 1 assign as gpio
XBYTE[REG_MUX_CONFIG_3] &= ~(SECOND_UART_MODE); //UART1 not enable
#ifndef MOSES // kevin d
XBYTE[REG_MUX_CONFIG_3] &= ~(I2S_MUTE_MODE); //not I2S_mute_mode
#endif
XBYTE[REG_MUX_FUNC_SEL1] &= (~CEC_MODE); //XBYTE[0x1ea1] &=0xe7; //disable CEC
#ifndef MOSES // kevin d
XBYTE[REG_P1_ENABLE] &= (~BIT7 ); //XBYTE[0x1ea4] &=0x7f; //disable P1_7
XBYTE[REG_GPIO_OE_1] &= (~(BIT6|BIT5) );
#endif
// Adj_Volume_On(); control by PWM_GPIO
#ifndef MOSES // kevin 5
Audio_Amplifier_ON(); //MUTE_S=LOW
AU_OUT_MUTE( _ON );
#endif
#ifndef MOSES // kevin d
XBYTE[REG_GPIO_OUT_HIGH] &= ( ~(BIT6|BIT5) ); //output 0 //pin 208
#endif
}
//---------------------------------------------------------------------
//---------------------------------------------------------------------
//---------------------------------------------------------------------
//---------------------------------------------------------------------
//---------------------------------------------------------------------
//---------------------------------------------------------------------
#ifndef MOSES // kevin d
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 );
}
#endif
//---------------------------------------------------------------------
/*void InitialSaturn2_PCI_Port(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;
} //*/
//---------------------------------------------------------------------
//---------------------------------------------------------------------
#ifndef MOSES // kevin c
static void Initial_PCM_CI_Port(void)
{
XBYTE[REG_MUX_CONFIG_3] &= ~BIT0; //I2s_in_PCMPads
XBYTE[REG_MUX_CONFIG_3] &= ( ~(BIT6|BIT7) ); //I2s_MUTE_MODE
XBYTE[REG_MUX_PCI] &= 0xfc; //pci_is_GPIO 0~5 == 0
XBYTE[REG_MUX_CONFIG_0]= ( XBYTE[REG_MUX_CONFIG_0] & 0xfc ) | BIT0; //as PCM
//XBYTE[REG_MUX_CONFIG_0]= ( XBYTE[REG_MUX_CONFIG_0] & 0xfc ) | BIT1; //as CI
}
#endif // MOSES
//---------------------------------------------------------------------
//---------------------------------------------------------------------
void Initial_TconPort( void )
{
//inital pin 2~6 atcon 1~6
XBYTE[REG_MUX_FUNC_SEL0] &= ~BIT1; //PWM3_setting=0;
XBYTE[REG_MUX_FUNC_SEL0] &= (~ ( BIT5|BIT4 ) ); //DTCON=00b;
XBYTE[REG_MUX_FUNC_SEL0] &= (~ BIT6); //TCON_IS_GPIO=0;
XBYTE[REG_MUX_FUNC_SEL0] = (XBYTE[REG_MUX_FUNC_SEL0] & 0xf3 ) | BIT2; // ATCON mode=1;
#ifndef MOSES // kevin d
//pin 116/117 atcon 7/8
XBYTE[REG_MUX_FUNC_SEL2]=(XBYTE[REG_MUX_FUNC_SEL2] & 0x3f ); //it is set in IR initial
//pin 144/148 atcon 9~13
XBYTE[REG_MUX_CONFIG_4] &= (~(BIT7|BIT6)); //fcie_config=00b
XBYTE[REG_MUX_CONFIG_3] &= (~(BIT2)); //PCM2_config[0]=0
XBYTE[REG_MUX_FUNC_SEL3] &= ~BIT7; //FcieIs_Gpio=0;
XBYTE[REG_P1_ENABLE]=0x00;
#endif
}
//---------------------------------------------------------------------
//---------------------------------------------------------------------
//---------------------------------------------------------------------
//---------------------------------------------------------------------
//---------------------------------------------------------------------
void Mst_GPIO_Initial( void )
{
puts("\r\nGPIO Init...");// kevin test
Iniital_USB_OCD_N();
InitialSaturn2_Pin134();
Initial_IR_Port();
InitialSaturn2_UART1_Port();
#ifndef MOSES // kevin c
//TS0 port
IntialSaturn2_TS_Port();
//PCI port as PCM/CI port
Initial_PCM_CI_Port();
#endif
//initial Tcon
Initial_TconPort();
//
Power_On();
}
//---------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -