Exemple #1
0
void PowerOffForDevices(void)
{
	//noke_dbg_printf("\r Hongzhe.liu : PowerOffForDevices  \n");
	if( tv_fm_camera_is_power_on == KAL_FALSE )
	{
		GPO_ModeSetup(gpio_horserace_power_en_pin, 0);
		GPO_WriteIO(0, gpio_horserace_power_en_pin);  
	}
}
Exemple #2
0
void SerialCommCryClkOn(void)
{
#if !defined( MT6205B ) && !defined( MT6208 )
   GPIO_ModeSetup(CRYCLK,3); /* 32.768kHz reference frequency */
#else
   /// Config SRCLKENA as GPO2 and set the output to 1 to keep 26M clock alive.
   GPO_ModeSetup(2, 0);
   GPO_WriteIO(1, 2);
#endif
}
Exemple #3
0
DCL_STATUS DclGPIO_Control(DCL_HANDLE handle, DCL_CTRL_CMD cmd, DCL_CTRL_DATA_T *data)
{
	   kal_char port; 
	   port= 0x000000FF & handle;

	   if(DCL_HANDLE_INVALID==handle)
   return STATUS_FAIL;
	
	   if(DCL_GPIO_IS_HANDLE_MAGIC(handle))
	   {
		   switch(cmd)
		   {
			 case GPIO_CMD_READ:
			 {
				GPIO_CTRL_READ_T   *prRead;
				prRead = &(data->rRead);
				prRead->u1IOData = GPIO_ReadIO(port);
				break;
			 }
			 case GPIO_CMD_WRITE_LOW:
			 {
				GPIO_MD_WriteIO(GPIO_IO_LOW, port);
				break;
			 }
			 case GPIO_CMD_WRITE_HIGH:
			 {
				GPIO_MD_WriteIO(GPIO_IO_HIGH, port);
				break;
			 } 
			 case GPIO_CMD_SET_MODE_0:
			 {
				GPIO_MD_ModeSetup(port, GPIO_MODE_0);
				break;
			 }
			 case GPIO_CMD_SET_MODE_1:
			 {
				GPIO_MD_ModeSetup(port, GPIO_MODE_1);
				break;
			 }
			 case GPIO_CMD_SET_MODE_2:
			 {
				GPIO_MD_ModeSetup(port, GPIO_MODE_2);
				break;				
			 }
			 case GPIO_CMD_SET_MODE_3:
			 {
				GPIO_MD_ModeSetup(port, GPIO_MODE_3);
				break;					
			 }
			 case GPIO_CMD_SET_MODE_4: //mode4-7 only for chip support more than 3bit mode control.
			 {
				GPIO_MD_ModeSetup(port, GPIO_MODE_4);
				break;
			 }
			 case GPIO_CMD_SET_MODE_5:
			 {
				GPIO_MD_ModeSetup(port, GPIO_MODE_5);
				break;
			 }
			 case GPIO_CMD_SET_MODE_6:
			 {
				GPIO_MD_ModeSetup(port, GPIO_MODE_6);
				break;	
			 }
			 case GPIO_CMD_SET_MODE_7:
			 {
				GPIO_MD_ModeSetup(port, GPIO_MODE_7);
				break;	
			 } 
			case GPIO_CMD_SET_MODE_8:
			 {
				GPIO_MD_ModeSetup(port, GPIO_MODE_8);
				break;	
			 }		  
			 case GPIO_CMD_SET_DIR_OUT:
			 {
				GPIO_MD_InitIO(GPIO_DIR_OUT,port);
				break;
			 }
			 case GPIO_CMD_SET_DIR_IN:
			 {
				GPIO_MD_InitIO(GPIO_DIR_IN,port);
				break;					
			 }
			 case GPIO_CMD_ENABLE_PULL:
			 {
				GPIO_MD_PullenSetup(port, (kal_bool)GPIO_PULL_ENABLE);
				break;
			 }
			 case GPIO_CMD_DISABLE_PULL:
			 {
				GPIO_MD_PullenSetup(port, (kal_bool)GPIO_PULL_DISABLE);
				break;
			 }
			 case GPIO_CMD_SET_PULL_HIGH:
			 {
				GPIO_PullSelSetup(port,(kal_bool) GPIO_PULL_HIGH);
				break;
			 }
			 case GPIO_CMD_SET_PULL_LOW:
			 {
				GPIO_MD_PullSelSetup(port, (kal_bool)GPIO_PULL_LOW);
				break;
			 }	 
			 case GPIO_CMD_SET_DINV:
			 {
				GPIO_CTRL_SET_DINV_T   *prSetDinv;
				prSetDinv = &(data->rSetDinv);
				GPIO_MD_DinvSetup(port,(kal_bool)( prSetDinv->fgSetDinv));
				break;
			 }

			 case GPIO_CMD_GET_AP_PIN:
			 {
			 	GPIO_CTRL_RETURN_AP_T  *prGetApData;
				prGetApData=&(data->rReturnAp);
				prGetApData->u1RetApData=port;
				break;
			 }
				
         #ifdef __CUST_NEW__
			 case GPIO_CMD_SET_DIR_OUT_NO_IRQ_MASK: 
			 {
				GPIO_InitIO_FAST(GPIO_DIR_OUT,port);
				break;
			 }
			 case GPIO_CMD_SET_DIR_IN_NO_IRQ_MASK:
			 {
				GPIO_InitIO_FAST(GPIO_DIR_IN,port);
				break;
			 }
			 case GPIO_CMD_WRITE_HIGH_NO_IRQ_MASK:
			 {
				GPIO_WriteIO_FAST(GPIO_IO_HIGH,port);
				break;
			 }
			 case GPIO_CMD_WRITE_LOW_NO_IRQ_MASK:
			 {
				GPIO_WriteIO_FAST(GPIO_IO_LOW,port);
				break;
			 }
			  case GPIO_CMD_READ_NO_IRQ_MASK:
			 {
				GPIO_CTRL_READ_T   *prRead;
				prRead = &(data->rRead);
				prRead->u1IOData = GPIO_ReadIO_FAST(port);
				break;
			 }
         #endif
			 case GPIO_CMD_WRITE_FOR_SPI:
			 {
				GPIO_CTRL_WRITE_FOR_SPI_T *prWrite;
				prWrite = &(data->rWriteSpi);
				GPIO_WriteIO_FAST2(prWrite->data,prWrite->no,prWrite->remainder_shift);
				break;
			 }		
			 default:
				EXT_ASSERT(0,handle,cmd,0);
				return STATUS_INVALID_CMD;
		  }
	   }
	   else if(DCL_GPO_IS_HANDLE_MAGIC(handle))
	   {
		  switch(cmd)
		  {
			 case GPO_CMD_MODE_SET_0:
			 {
				GPO_ModeSetup(port,GPO_MODE_0);
				break;
			 }
			 case GPO_CMD_MODE_SET_1:
			 {
				GPO_ModeSetup(port,GPO_MODE_1);
				break;
			 }
			 case GPO_CMD_MODE_SET_2:
			 {
				GPO_ModeSetup(port,GPO_MODE_2);
				break;
			 }
			 case GPO_CMD_MODE_SET_3:
			 {
				GPO_ModeSetup(port,GPO_MODE_3);
				break;
			 }
			 case GPO_CMD_WRITE_LOW :
			 {
				GPO_WriteIO(port,GPO_IO_LOW);
				break;
			 }
			 case GPO_CMD_WRITE_HIGH:
			 {
				GPO_WriteIO(port,GPO_IO_HIGH);
				break;
			 }
			 case GPO_CMD_RETURN_OUT:
			 {
				GPO_CTRL_RETURN_OUT_T	*prReturnOut;
				prReturnOut = &(data->oReturnOut);
				prReturnOut->u1RetOutData = GPO_ReturnDout(port);
				break;
			 }
			 case GPO_CMD_RETURN_MODE:
			 {
				GPO_CTRL_RETURN_MODE_T	 *prReturnMode;
				prReturnMode = &(data->oReturnMode);
				prReturnMode->u1RetMode = GPO_ReturnMode(port);
				break;
			 }
			 default:
				EXT_ASSERT(0,handle,cmd,0);
				return STATUS_INVALID_CMD;
		  }
	   }
	   else if (DCL_GPIO_CLK_IS_HANDLE_MAGIC(handle))
	   {
		  switch(cmd)
		  {

			 case GPIO_CMD_SET_CLK_DIV:
			 {
				kal_uint8 clknum=0;
				GPIO_CTRL_SET_CLK_DIV_T *prSetClkDiv;
				prSetClkDiv= &(data->rSetClkDiv);
				clknum=get_clknum(prSetClkDiv->u2ClkNum);
				GPIO_SetClkDiv(clknum,prSetClkDiv->u2Div);
				break;
			 }
			 default:
				EXT_ASSERT(0,handle,cmd,0);
				return STATUS_INVALID_CMD;
		  }
	   }
	   else
	   {
		  EXT_ASSERT(0,handle,cmd,0);
		  return STATUS_INVALID_DCL_HANDLE;
	   }  
	   return STATUS_OK;
}