From 100fcfacd895c451023dad6dc418abaffd464aed Mon Sep 17 00:00:00 2001 From: gitee Date: Fri, 14 Jan 2022 21:51:17 +0800 Subject: [PATCH] =?UTF-8?q?=E9=81=BF=E5=85=8D=E7=A1=AC=E4=BB=B6=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E5=BD=B1=E5=93=8D=E7=A8=8B=E5=BA=8F=E8=BF=90=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../drivers/drv_rw007_port.c | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/kernel/bsp/imx6ull-artpi-smart/drivers/drv_rw007_port.c b/kernel/bsp/imx6ull-artpi-smart/drivers/drv_rw007_port.c index 848bd88..c87d0f7 100644 --- a/kernel/bsp/imx6ull-artpi-smart/drivers/drv_rw007_port.c +++ b/kernel/bsp/imx6ull-artpi-smart/drivers/drv_rw007_port.c @@ -22,8 +22,10 @@ extern void spi_wifi_isr(int vector); -static void rw007_gpio_init(void) +static int rw007_gpio_init(void) { + int ret = 0; + uint8_t errorCnt = 10; /* Configure IO */ rt_pin_mode(RW007_RST_PIN, PIN_MODE_OUTPUT); rt_pin_mode(RW007_INT_BUSY_PIN, PIN_MODE_INPUT_PULLDOWN); @@ -36,19 +38,32 @@ static void rw007_gpio_init(void) /* Wait rw007 ready(exit busy stat) */ while(!rt_pin_read(RW007_INT_BUSY_PIN)) { - rt_thread_delay(5); + rt_thread_delay(rt_tick_from_millisecond(100)); + if (errorCnt) + { + errorCnt--; + } + else + { + ret = -1; + break; + } } rt_thread_delay(rt_tick_from_millisecond(200)); rt_pin_mode(RW007_INT_BUSY_PIN, PIN_MODE_INPUT_PULLUP); + return ret; } int wifi_spi_device_init(void) { char sn_version[32]; - rw007_gpio_init(); - + if (rw007_gpio_init() == -1) + { + rt_hw_wifi_init("rw007 gpio init fault!\n"); + return -1; + } rt_hw_spi_device_attach(RW007_SPI_BUS_NAME, "rw007", RW007_CS_PIN); rt_hw_wifi_init("rw007"); -- Gitee