#include "t_define.h" #if 0 #include "t_bk3231sf.h" #include "t_icu.h" //#include "useruart.h" //#include "userpower.h" #include "t_gpio.h" // #include "useradc.h" static GPIO_INT_HANDLE_CB_PFN gpioIntHandleCbPfn = NULL; void GpioGenCfg(uint8 port, uint8 bitoffset, uint32 mode, uint32 io, uint32 pull) { uint32 *preg, regbitmask, temp; preg = (uint32 *)(REG_GPIO_BASE+(port<<3)); regbitmask = (BM_GPIO_MODE<<bitoffset)| (BM_GPIO_IO_OUT_NOR<<bitoffset)| (BM_GPIO_PULL_UP<<bitoffset)| (BM_GPIO_PULL_DOWN<<bitoffset); temp = (mode<<bitoffset)| ((io&BM_GPIO_IO_OUT_NOR)<<bitoffset)| (pull<<bitoffset); *preg = SET_VALUE(*preg, regbitmask, temp); preg = (uint32 *)(REG_GPIO_BASE+((port<<3)+4)); regbitmask = (BM_GPIO_IO_IN<<bitoffset); temp = ((io&BM_GPIO_IO_IN)<<bitoffset); *preg = SET_VALUE(*preg, regbitmask, temp); } void GpioModeCfg(uint8 port, uint8 bitoffset, uint32 mode) { uint32 *preg, regbitmask, temp; preg = (uint32 *)(REG_GPIO_BASE+(port<<3)); regbitmask = (BM_GPIO_MODE<<bitoffset); temp = (mode<<bitoffset); *preg = SET_VALUE(*preg, regbitmask, temp); } void GpioIoCfg(uint8 port, uint8 bitoffset, uint32 io) { uint32 *preg, regbitmask, temp; preg = (uint32 *)(REG_GPIO_BASE+(port<<3)); regbitmask = (BM_GPIO_IO_OUT_NOR<<bitoffset); temp = ((io&BM_GPIO_IO_OUT_NOR)<<bitoffset); *preg = SET_VALUE(*preg, regbitmask, temp); preg = (uint32 *)(REG_GPIO_BASE+((port<<3)+4)); regbitmask = (BM_GPIO_IO_IN<<bitoffset); temp = ((io&BM_GPIO_IO_IN)<<bitoffset); *preg = SET_VALUE(*preg, regbitmask, temp); } void GpioPullCfg(uint8 port, uint8 bitoffset, uint32 pull) { uint32 *preg, regbitmask, temp; preg = (uint32 *)(REG_GPIO_BASE+(port<<3)); regbitmask = (BM_GPIO_PULL_UP<<bitoffset)| (BM_GPIO_PULL_DOWN<<bitoffset); temp = (pull<<bitoffset); *preg = SET_VALUE(*preg, regbitmask, temp); } void GpioSetOutNegate(uint8 port, uint8 bitoffset) { uint32 *preg; preg = (uint32 *)(REG_GPIO_BASE+((port<<3)+4)); *preg = NEGATE(*preg,BM_GPIO_OUT_DATA<<bitoffset); } void GpioSetOut(uint8 port, uint8 bitoffset, uint32 out) { uint32 *preg; preg = (uint32 *)(REG_GPIO_BASE+((port<<3)+4)); *preg = SET_VALUE(*preg, BM_GPIO_OUT_DATA<<bitoffset, (out<<BO_GPIO_OUT_DATA)<<bitoffset); } bool8 GpioGetIn(uint8 port, uint8 bitoffset) { uint32 *preg; uint32 temp; preg = (uint32 *)(REG_GPIO_BASE+((port<<3)+4)); temp = ((*preg) & (BM_GPIO_IN_DATA<<bitoffset)) >> bitoffset >> BO_GPIO_IN_DATA; return (bool8)temp; } void GpioIntCfg(uint8 port, uint8 bitoffset, uint32 interruptenable, uint32 trigedge) { REG_GPIO0T3_INT_EN = SET_VALUE(REG_GPIO0T3_INT_EN, 1ul<<((port<<3)+bitoffset), interruptenable<<((port<<3)+bitoffset)); REG_GPIO0T3_INT_EDGE = SET_VALUE(REG_GPIO0T3_INT_EDGE, 1ul<<((port<<3)+bitoffset), trigedge<<((port<<3)+bitoffset)); } void GpioIntEnCfg(uint8 port, uint8 bitoffset, uint32 interruptenable) { REG_GPIO0T3_INT_EN = SET_VALUE(REG_GPIO0T3_INT_EN, 1ul<<((port<<3)+bitoffset), interruptenable<<((port<<3)+bitoffset)); } void GpioInTrigedgeCfg(uint8 port, uint8 bitoffset, uint32 trigedge) { REG_GPIO0T3_INT_EDGE = SET_VALUE(REG_GPIO0T3_INT_EDGE, 1ul<<((port<<3)+bitoffset), trigedge<<((port<<3)+bitoffset)); } void GpioDeepWakeupCfg(uint8 port, uint8 bitoffset, uint32 wakeupenable) { REG_ICU_GPIO0T3_DEEP_WAKEUP_EN = SET_VALUE(REG_ICU_GPIO0T3_DEEP_WAKEUP_EN, (1ul<<((port<<3))<<bitoffset), ((wakeupenable<<(port<<3))<<bitoffset)); } uint32 GpioGetInitSta(void) { return REG_GPIO0T3_INT_STA; } void GpioClearInitSta(uint32 gpiointstate) { REG_GPIO0T3_INT_STA = gpiointstate; } void GpioIntHandleCbCfg(GPIO_INT_HANDLE_CB_PFN cbpfn) { gpioIntHandleCbPfn = cbpfn; } void GpioIntHandle(void) { // uint32 gpiointstate = REG_GPIO0T3_INT_STA; // REG_GPIO0T3_INT_STA = gpiointstate; // ir_callback(); // if(gpioIntHandleCbPfn != NULL) // { // (*gpioIntHandleCbPfn)(gpiointstate); // } } #endif