char HorseRace_PowerIsOpen(void) { char flags = 0 ; flags= GPO_ReturnDout(gpio_horserace_power_en_pin); if( flags == 1) return 1; else return 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; }