int32 smi_init(uint32 port, uint32 pinSCK, uint32 pinSDA) { gpioID gpioId; int32 res; /* change GPIO pin to Input only */ /* Initialize GPIO port C, pin 0 as SMI SDA0 */ gpioId = GPIO_ID(port, pinSDA); res = _rtl865x_initGpioPin(gpioId, GPIO_PERI_GPIO, GPIO_DIR_OUT, GPIO_INT_DISABLE); if (res != SUCCESS) return res; smi_SDA = gpioId; /* Initialize GPIO port C, pin 1 as SMI SCK0 */ gpioId = GPIO_ID(port, pinSCK); res = _rtl865x_initGpioPin(gpioId, GPIO_PERI_GPIO, GPIO_DIR_OUT, GPIO_INT_DISABLE); if (res != SUCCESS) return res; smi_SCK = gpioId; _rtl865x_setGpioDataBit(smi_SDA, 1); _rtl865x_setGpioDataBit(smi_SCK, 1); return SUCCESS; }
rtk_int32 smi_init(rtk_uint32 port, rtk_uint32 pinSCK, rtk_uint32 pinSDA) { #if defined(MDC_MDIO_OPERATION) || defined(SPI_OPERATION) #else gpioID gpioId; rtk_int32 res; /* change GPIO pin to Input only */ /* Initialize GPIO port C, pin 0 as SMI SDA0 */ gpioId = GPIO_ID(port, pinSDA); res = _rtl865x_initGpioPin(gpioId, GPIO_PERI_GPIO, GPIO_DIR_OUT, GPIO_INT_DISABLE); if (res != RT_ERR_OK) return res; smi_SDA = gpioId; /* Initialize GPIO port C, pin 1 as SMI SCK0 */ gpioId = GPIO_ID(port, pinSCK); res = _rtl865x_initGpioPin(gpioId, GPIO_PERI_GPIO, GPIO_DIR_OUT, GPIO_INT_DISABLE); if (res != RT_ERR_OK) return res; smi_SCK = gpioId; _rtl865x_setGpioDataBit(smi_SDA, 1); _rtl865x_setGpioDataBit(smi_SCK, 1); #endif return RT_ERR_OK; }
rtk_int32 smi_reset(rtk_uint32 port, rtk_uint32 pinRST) { #if defined(MDC_MDIO_OPERATION) || defined(SPI_OPERATION) #else gpioID gpioId; rtk_int32 res; /* Initialize GPIO port A, pin 7 as SMI RESET */ gpioId = GPIO_ID(port, pinRST); res = _rtl865x_initGpioPin(gpioId, GPIO_PERI_GPIO, GPIO_DIR_OUT, GPIO_INT_DISABLE); if (res != RT_ERR_OK) return res; smi_RST = gpioId; _rtl865x_setGpioDataBit(smi_RST, 1); CLK_DURATION(1000000); _rtl865x_setGpioDataBit(smi_RST, 0); CLK_DURATION(1000000); _rtl865x_setGpioDataBit(smi_RST, 1); CLK_DURATION(1000000); /* change GPIO pin to Input only */ _rtl865x_initGpioPin(smi_RST, GPIO_PERI_GPIO, GPIO_DIR_IN, GPIO_INT_DISABLE); #endif return RT_ERR_OK; }
int32 smi_reset(uint32 port, uint32 pinRST) { gpioID gpioId; int32 res; /* Initialize GPIO port A, pin 7 as SMI RESET */ gpioId = GPIO_ID(port, pinRST); res = _rtl865x_initGpioPin(gpioId, GPIO_PERI_GPIO, GPIO_DIR_OUT, GPIO_INT_DISABLE); if (res != SUCCESS) return res; smi_RST = gpioId; _rtl865x_setGpioDataBit(smi_RST, 1); CLK_DURATION(1000000); _rtl865x_setGpioDataBit(smi_RST, 0); CLK_DURATION(1000000); _rtl865x_setGpioDataBit(smi_RST, 1); CLK_DURATION(1000000); /* change GPIO pin to Input only */ _rtl865x_initGpioPin(smi_RST, GPIO_PERI_GPIO, GPIO_DIR_IN, GPIO_INT_DISABLE); return SUCCESS; }