123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- #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
|