#define SDA_IO_IDX HI_GPIO_IDX_10
#define SCL_IO_IDX HI_GPIO_IDX_14
#define IIC_SCL_OUT(x) hi_gpio_set_output_val(SCL_IO_IDX, !!(x))
#define IIC_SDA_OUT(x) hi_gpio_set_output_val(SDA_IO_IDX, !!(x))
#define IIC_SCL_IN ({hi_gpio_value value; hi_gpio_get_input_val(SCL_IO_IDX, &value); value;})
#define IIC_SDA_IN ({hi_gpio_value value; hi_gpio_get_input_val(SDA_IO_IDX, &value); value;})
#define SDA_OUT do{hi_gpio_set_dir(SDA_IO_IDX, HI_GPIO_DIR_OUT);}while(0)
#define SDA_IN do{hi_gpio_set_dir(SDA_IO_IDX, HI_GPIO_DIR_IN); hi_io_set_pull(SDA_IO_IDX, HI_IO_PULL_UP);}while(0)
#define SCL_OUT do{hi_gpio_set_dir(SCL_IO_IDX, HI_GPIO_DIR_OUT);}while(0)
#define SCL_IN do{hi_gpio_set_dir(SCL_IO_IDX, HI_GPIO_DIR_IN); hi_io_set_pull(SCL_IO_IDX, HI_IO_PULL_UP);}while(0)
static void DelayUs(unsigned char Time)
{
hi_udelay(Time * 2);
}
static void DelayMs(unsigned char Time)
{
hi_sleep(Time);
}
static void DelayS(unsigned char Time)
{
hi_sleep(Time * 1000);
}