Browse Source

Add ek-ra8d1 rw007 support.

Rbb666 1 year ago
parent
commit
ace782387d

+ 37 - 0
bsp/renesas/ra8d1-ek/board/Kconfig

@@ -607,4 +607,41 @@ menu "Hardware Drivers Config"
             select RT_USING_NETDEV
             default n
     endmenu
+    menu "Board extended module Drivers"
+        menuconfig BSP_USING_RW007
+            bool "Enable RW007"
+            default n
+            select PKG_USING_RW007
+            select BSP_USING_SCI
+            select BSP_USING_SCI2
+            select BSP_USING_SCI2_SPI
+            select RT_USING_MEMPOOL
+            select RW007_NOT_USE_EXAMPLE_DRIVERS
+
+        if BSP_USING_RW007
+            config RA_RW007_SPI_BUS_NAME
+                string "RW007 BUS NAME"
+                default "scpi2"
+
+            config RA_RW007_CS_PIN
+                hex "(HEX)CS pin index"
+                default 0x0A05
+
+            config RA_RW007_BOOT0_PIN
+                hex "(HEX)BOOT0 pin index (same as spi clk pin)"
+                default 0x0A04
+
+            config RA_RW007_BOOT1_PIN
+                hex "(HEX)BOOT1 pin index (same as spi cs pin)"
+                default 0x0A05
+
+            config RA_RW007_INT_BUSY_PIN
+                hex "(HEX)INT/BUSY pin index"
+                default 0x0508
+
+            config RA_RW007_RST_PIN
+                hex "(HEX)RESET pin index"
+                default 0x0809
+        endif
+    endmenu
 endmenu

+ 21 - 8
bsp/renesas/ra8d1-ek/board/ports/gpio_cfg.h

@@ -19,50 +19,62 @@
     case BSP_IO_PORT_04_PIN_00:             \
     case BSP_IO_PORT_02_PIN_06:             \
     case BSP_IO_PORT_01_PIN_05:             \
+    case BSP_IO_PORT_08_PIN_06:             \
         return 0;                           \
-    case BSP_IO_PORT_02_PIN_05:             \
+    case BSP_IO_PORT_05_PIN_08:             \
     case BSP_IO_PORT_01_PIN_01:             \
     case BSP_IO_PORT_01_PIN_04:             \
         return 1;                           \
-    case BSP_IO_PORT_02_PIN_03:             \
+    case BSP_IO_PORT_05_PIN_09:             \
     case BSP_IO_PORT_01_PIN_00:             \
     case BSP_IO_PORT_02_PIN_13:             \
         return 2;                           \
-    case BSP_IO_PORT_02_PIN_02:             \
-    case BSP_IO_PORT_01_PIN_10:             \
+    case BSP_IO_PORT_02_PIN_08:             \
+    case BSP_IO_PORT_05_PIN_10:             \
     case BSP_IO_PORT_02_PIN_12:             \
         return 3;                           \
     case BSP_IO_PORT_04_PIN_02:             \
-    case BSP_IO_PORT_01_PIN_11:             \
+    case BSP_IO_PORT_03_PIN_00:             \
     case BSP_IO_PORT_04_PIN_11:             \
+    case BSP_IO_PORT_10_PIN_10:             \
         return 4;                           \
     case BSP_IO_PORT_04_PIN_01:             \
     case BSP_IO_PORT_03_PIN_02:             \
     case BSP_IO_PORT_04_PIN_10:             \
+    case BSP_IO_PORT_10_PIN_09:             \
         return 5;                           \
     case BSP_IO_PORT_03_PIN_01:             \
     case BSP_IO_PORT_00_PIN_00:             \
     case BSP_IO_PORT_04_PIN_09:             \
+    case BSP_IO_PORT_10_PIN_08:             \
         return 6;                           \
     case BSP_IO_PORT_00_PIN_01:             \
     case BSP_IO_PORT_04_PIN_08:             \
+    case BSP_IO_PORT_06_PIN_15:             \
+    case BSP_IO_PORT_07_PIN_06:             \
         return 7;                           \
     case BSP_IO_PORT_00_PIN_02:             \
     case BSP_IO_PORT_03_PIN_05:             \
     case BSP_IO_PORT_04_PIN_15:             \
+    case BSP_IO_PORT_07_PIN_07:             \
+    case BSP_IO_PORT_09_PIN_05:             \
         return 8;                           \
     case BSP_IO_PORT_00_PIN_04:             \
     case BSP_IO_PORT_03_PIN_04:             \
     case BSP_IO_PORT_04_PIN_14:             \
+    case BSP_IO_PORT_09_PIN_06:             \
         return 9;                           \
     case BSP_IO_PORT_00_PIN_05:             \
     case BSP_IO_PORT_07_PIN_09:             \
+    case BSP_IO_PORT_09_PIN_07:             \
         return 10;                          \
     case BSP_IO_PORT_05_PIN_01:             \
     case BSP_IO_PORT_00_PIN_06:             \
     case BSP_IO_PORT_07_PIN_08:             \
+    case BSP_IO_PORT_08_PIN_00:             \
+    case BSP_IO_PORT_09_PIN_08:             \
         return 11;                          \
-    case BSP_IO_PORT_05_PIN_02:             \
+    case BSP_IO_PORT_08_PIN_01:             \
     case BSP_IO_PORT_00_PIN_08:             \
         return 12;                          \
     case BSP_IO_PORT_00_PIN_15:             \
@@ -70,11 +82,12 @@
         return 13;                          \
     case BSP_IO_PORT_04_PIN_03:             \
     case BSP_IO_PORT_05_PIN_12:             \
-    case BSP_IO_PORT_05_PIN_05:             \
+    case BSP_IO_PORT_08_PIN_04:             \
+    case BSP_IO_PORT_00_PIN_10:             \
         return 14;                          \
     case BSP_IO_PORT_04_PIN_04:             \
     case BSP_IO_PORT_05_PIN_11:             \
-    case BSP_IO_PORT_05_PIN_06:             \
+    case BSP_IO_PORT_08_PIN_08:             \
         return 15;                          \
     default  :                              \
         return -1;                          \

+ 0 - 49
bsp/renesas/ra8d1-ek/board/ports/omv_fs/ff.h

@@ -1,49 +0,0 @@
-#ifndef __OMV_FF_H__
-#define __OMV_FF_H__
-
-#include "dfs_file.h"
-
-typedef struct dfs_file FIL;
-typedef char TCHAR;
-typedef unsigned int UINT;
-typedef unsigned char BYTE;
-
-typedef int FF_DIR;
-typedef struct stat FILINFO;
-
-typedef enum {
-    FR_OK = 0,              /* (0) Succeeded */
-    FR_DISK_ERR,            /* (1) A hard error occurred in the low level disk I/O layer */
-    FR_INT_ERR,             /* (2) Assertion failed */
-    FR_NOT_READY,           /* (3) The physical drive cannot work */
-    FR_NO_FILE,             /* (4) Could not find the file */
-    FR_NO_PATH,             /* (5) Could not find the path */
-    FR_INVALID_NAME,        /* (6) The path name format is invalid */
-    FR_DENIED,              /* (7) Access denied due to prohibited access or directory full */
-    FR_EXIST,               /* (8) Access denied due to prohibited access */
-    FR_INVALID_OBJECT,      /* (9) The file/directory object is invalid */
-    FR_WRITE_PROTECTED,     /* (10) The physical drive is write protected */
-    FR_INVALID_DRIVE,       /* (11) The logical drive number is invalid */
-    FR_NOT_ENABLED,         /* (12) The volume has no work area */
-    FR_NO_FILESYSTEM,       /* (13) There is no valid FAT volume */
-    FR_MKFS_ABORTED,        /* (14) The f_mkfs() aborted due to any problem */
-    FR_TIMEOUT,             /* (15) Could not get a grant to access the volume within defined period */
-    FR_LOCKED,              /* (16) The operation is rejected according to the file sharing policy */
-    FR_NOT_ENOUGH_CORE,     /* (17) LFN working buffer could not be allocated */
-    FR_TOO_MANY_OPEN_FILES, /* (18) Number of open files > _FS_LOCK */
-    FR_INVALID_PARAMETER    /* (19) Given parameter is invalid */
-} FRESULT;
-
-/* File access mode and open method flags (3rd argument of f_open) */
-#define FA_READ             0x01
-#define FA_WRITE            0x02
-#define FA_OPEN_EXISTING    0x00
-#define FA_CREATE_NEW       0x04
-#define FA_CREATE_ALWAYS    0x08
-#define FA_OPEN_ALWAYS      0x10
-#define FA_OPEN_APPEND      0x30
-
-#define f_eof(fp) ((int)((fp)->pos == (fp)->vnode->size))
-#define f_tell(fp) ((fp)->pos)
-#define f_size(fp) ((fp)->vnode->size)
-#endif

+ 22 - 0
bsp/renesas/ra8d1-ek/board/ports/wifi/SConscript

@@ -0,0 +1,22 @@
+
+from building import *
+import rtconfig
+
+cwd = GetCurrentDir()
+
+src = []
+
+if GetDepend(['BSP_USING_RW007']):
+    src += Glob('drv_rw007.c')
+
+CPPPATH = [cwd]
+LOCAL_CFLAGS = ''
+
+if rtconfig.PLATFORM in ['gcc', 'armclang']:
+    LOCAL_CFLAGS += ' -std=c99'
+elif rtconfig.PLATFORM in ['armcc']:
+    LOCAL_CFLAGS += ' --c99'
+
+group = DefineGroup('Drivers', src, depend = [], CPPPATH = CPPPATH, LOCAL_CFLAGS = LOCAL_CFLAGS)
+
+Return('group')

+ 65 - 0
bsp/renesas/ra8d1-ek/board/ports/wifi/drv_rw007.c

@@ -0,0 +1,65 @@
+#include <rtthread.h>
+#include <rtdbg.h>
+#ifdef BSP_USING_RW007
+#include <rtdevice.h>
+#include <drv_sci_spi.h>
+#include <board.h>
+#include <spi_wifi_rw007.h>
+
+extern void spi_wifi_isr(int vector);
+
+static void rw007_gpio_init(void)
+{
+    /* Configure IO */
+    rt_pin_mode(RA_RW007_RST_PIN, PIN_MODE_OUTPUT);
+    rt_pin_mode(RA_RW007_INT_BUSY_PIN, PIN_MODE_INPUT_PULLDOWN);
+
+    /* Reset rw007 and config mode */
+    rt_pin_write(RA_RW007_RST_PIN, PIN_LOW);
+    rt_thread_delay(rt_tick_from_millisecond(100));
+    rt_pin_write(RA_RW007_RST_PIN, PIN_HIGH);
+
+    /* Wait rw007 ready(exit busy stat) */
+    while (!rt_pin_read(RA_RW007_INT_BUSY_PIN))
+    {
+        rt_thread_delay(5);
+    }
+
+    rt_thread_delay(rt_tick_from_millisecond(200));
+    rt_pin_mode(RA_RW007_INT_BUSY_PIN, PIN_MODE_INPUT_PULLUP);
+}
+
+int wifi_spi_device_init(void)
+{
+    char sn_version[32];
+    uint32_t cs_pin = RA_RW007_CS_PIN;
+
+    rw007_gpio_init();
+    rt_hw_sci_spi_device_attach(RA_RW007_SPI_BUS_NAME, "wspi", cs_pin);
+    rt_hw_wifi_init("wspi");
+
+    rt_wlan_set_mode(RT_WLAN_DEVICE_STA_NAME, RT_WLAN_STATION);
+    rt_wlan_set_mode(RT_WLAN_DEVICE_AP_NAME, RT_WLAN_AP);
+
+    rw007_sn_get(sn_version);
+    rt_kprintf("\nrw007  sn: [%s]\n", sn_version);
+    rw007_version_get(sn_version);
+    rt_kprintf("rw007 ver: [%s]\n\n", sn_version);
+
+    return 0;
+}
+INIT_APP_EXPORT(wifi_spi_device_init);
+
+static void int_wifi_irq(void *p)
+{
+    ((void)p);
+    spi_wifi_isr(0);
+}
+
+void spi_wifi_hw_init(void)
+{
+    rt_pin_attach_irq(RA_RW007_INT_BUSY_PIN, PIN_IRQ_MODE_FALLING, int_wifi_irq, 0);
+    rt_pin_irq_enable(RA_RW007_INT_BUSY_PIN, RT_TRUE);
+}
+
+#endif /* BSP_USING_RW007 */

+ 22 - 9
bsp/renesas/ra8d1-vision-board/board/ports/gpio_cfg.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006-2024, RT-Thread Development Team
+ * Copyright (c) 2006-2023, RT-Thread Development Team
  *
  * SPDX-License-Identifier: Apache-2.0
  *
@@ -19,50 +19,62 @@
     case BSP_IO_PORT_04_PIN_00:             \
     case BSP_IO_PORT_02_PIN_06:             \
     case BSP_IO_PORT_01_PIN_05:             \
+    case BSP_IO_PORT_08_PIN_06:             \
         return 0;                           \
-    case BSP_IO_PORT_02_PIN_05:             \
+    case BSP_IO_PORT_05_PIN_08:             \
     case BSP_IO_PORT_01_PIN_01:             \
     case BSP_IO_PORT_01_PIN_04:             \
         return 1;                           \
-    case BSP_IO_PORT_02_PIN_03:             \
+    case BSP_IO_PORT_05_PIN_09:             \
     case BSP_IO_PORT_01_PIN_00:             \
     case BSP_IO_PORT_02_PIN_13:             \
         return 2;                           \
-    case BSP_IO_PORT_02_PIN_02:             \
-    case BSP_IO_PORT_01_PIN_10:             \
+    case BSP_IO_PORT_02_PIN_08:             \
+    case BSP_IO_PORT_05_PIN_10:             \
     case BSP_IO_PORT_02_PIN_12:             \
         return 3;                           \
     case BSP_IO_PORT_04_PIN_02:             \
-    case BSP_IO_PORT_01_PIN_11:             \
+    case BSP_IO_PORT_03_PIN_00:             \
     case BSP_IO_PORT_04_PIN_11:             \
+    case BSP_IO_PORT_10_PIN_10:             \
         return 4;                           \
     case BSP_IO_PORT_04_PIN_01:             \
     case BSP_IO_PORT_03_PIN_02:             \
     case BSP_IO_PORT_04_PIN_10:             \
+    case BSP_IO_PORT_10_PIN_09:             \
         return 5;                           \
     case BSP_IO_PORT_03_PIN_01:             \
     case BSP_IO_PORT_00_PIN_00:             \
     case BSP_IO_PORT_04_PIN_09:             \
+    case BSP_IO_PORT_10_PIN_08:             \
         return 6;                           \
     case BSP_IO_PORT_00_PIN_01:             \
     case BSP_IO_PORT_04_PIN_08:             \
+    case BSP_IO_PORT_06_PIN_15:             \
+    case BSP_IO_PORT_07_PIN_06:             \
         return 7;                           \
     case BSP_IO_PORT_00_PIN_02:             \
     case BSP_IO_PORT_03_PIN_05:             \
     case BSP_IO_PORT_04_PIN_15:             \
+    case BSP_IO_PORT_07_PIN_07:             \
+    case BSP_IO_PORT_09_PIN_05:             \
         return 8;                           \
     case BSP_IO_PORT_00_PIN_04:             \
     case BSP_IO_PORT_03_PIN_04:             \
     case BSP_IO_PORT_04_PIN_14:             \
+    case BSP_IO_PORT_09_PIN_06:             \
         return 9;                           \
     case BSP_IO_PORT_00_PIN_05:             \
     case BSP_IO_PORT_07_PIN_09:             \
+    case BSP_IO_PORT_09_PIN_07:             \
         return 10;                          \
     case BSP_IO_PORT_05_PIN_01:             \
     case BSP_IO_PORT_00_PIN_06:             \
     case BSP_IO_PORT_07_PIN_08:             \
+    case BSP_IO_PORT_08_PIN_00:             \
+    case BSP_IO_PORT_09_PIN_08:             \
         return 11;                          \
-    case BSP_IO_PORT_05_PIN_02:             \
+    case BSP_IO_PORT_08_PIN_01:             \
     case BSP_IO_PORT_00_PIN_08:             \
         return 12;                          \
     case BSP_IO_PORT_00_PIN_15:             \
@@ -70,11 +82,12 @@
         return 13;                          \
     case BSP_IO_PORT_04_PIN_03:             \
     case BSP_IO_PORT_05_PIN_12:             \
-    case BSP_IO_PORT_05_PIN_05:             \
+    case BSP_IO_PORT_08_PIN_04:             \
+    case BSP_IO_PORT_00_PIN_10:             \
         return 14;                          \
     case BSP_IO_PORT_04_PIN_04:             \
     case BSP_IO_PORT_05_PIN_11:             \
-    case BSP_IO_PORT_05_PIN_06:             \
+    case BSP_IO_PORT_08_PIN_08:             \
         return 15;                          \
     default  :                              \
         return -1;                          \

+ 21 - 8
bsp/renesas/ra8m1-ek/board/ports/gpio_cfg.h

@@ -19,50 +19,62 @@
     case BSP_IO_PORT_04_PIN_00:             \
     case BSP_IO_PORT_02_PIN_06:             \
     case BSP_IO_PORT_01_PIN_05:             \
+    case BSP_IO_PORT_08_PIN_06:             \
         return 0;                           \
-    case BSP_IO_PORT_02_PIN_05:             \
+    case BSP_IO_PORT_05_PIN_08:             \
     case BSP_IO_PORT_01_PIN_01:             \
     case BSP_IO_PORT_01_PIN_04:             \
         return 1;                           \
-    case BSP_IO_PORT_02_PIN_03:             \
+    case BSP_IO_PORT_05_PIN_09:             \
     case BSP_IO_PORT_01_PIN_00:             \
     case BSP_IO_PORT_02_PIN_13:             \
         return 2;                           \
-    case BSP_IO_PORT_02_PIN_02:             \
-    case BSP_IO_PORT_01_PIN_10:             \
+    case BSP_IO_PORT_02_PIN_08:             \
+    case BSP_IO_PORT_05_PIN_10:             \
     case BSP_IO_PORT_02_PIN_12:             \
         return 3;                           \
     case BSP_IO_PORT_04_PIN_02:             \
-    case BSP_IO_PORT_01_PIN_11:             \
+    case BSP_IO_PORT_03_PIN_00:             \
     case BSP_IO_PORT_04_PIN_11:             \
+    case BSP_IO_PORT_10_PIN_10:             \
         return 4;                           \
     case BSP_IO_PORT_04_PIN_01:             \
     case BSP_IO_PORT_03_PIN_02:             \
     case BSP_IO_PORT_04_PIN_10:             \
+    case BSP_IO_PORT_10_PIN_09:             \
         return 5;                           \
     case BSP_IO_PORT_03_PIN_01:             \
     case BSP_IO_PORT_00_PIN_00:             \
     case BSP_IO_PORT_04_PIN_09:             \
+    case BSP_IO_PORT_10_PIN_08:             \
         return 6;                           \
     case BSP_IO_PORT_00_PIN_01:             \
     case BSP_IO_PORT_04_PIN_08:             \
+    case BSP_IO_PORT_06_PIN_15:             \
+    case BSP_IO_PORT_07_PIN_06:             \
         return 7;                           \
     case BSP_IO_PORT_00_PIN_02:             \
     case BSP_IO_PORT_03_PIN_05:             \
     case BSP_IO_PORT_04_PIN_15:             \
+    case BSP_IO_PORT_07_PIN_07:             \
+    case BSP_IO_PORT_09_PIN_05:             \
         return 8;                           \
     case BSP_IO_PORT_00_PIN_04:             \
     case BSP_IO_PORT_03_PIN_04:             \
     case BSP_IO_PORT_04_PIN_14:             \
+    case BSP_IO_PORT_09_PIN_06:             \
         return 9;                           \
     case BSP_IO_PORT_00_PIN_05:             \
     case BSP_IO_PORT_07_PIN_09:             \
+    case BSP_IO_PORT_09_PIN_07:             \
         return 10;                          \
     case BSP_IO_PORT_05_PIN_01:             \
     case BSP_IO_PORT_00_PIN_06:             \
     case BSP_IO_PORT_07_PIN_08:             \
+    case BSP_IO_PORT_08_PIN_00:             \
+    case BSP_IO_PORT_09_PIN_08:             \
         return 11;                          \
-    case BSP_IO_PORT_05_PIN_02:             \
+    case BSP_IO_PORT_08_PIN_01:             \
     case BSP_IO_PORT_00_PIN_08:             \
         return 12;                          \
     case BSP_IO_PORT_00_PIN_15:             \
@@ -70,11 +82,12 @@
         return 13;                          \
     case BSP_IO_PORT_04_PIN_03:             \
     case BSP_IO_PORT_05_PIN_12:             \
-    case BSP_IO_PORT_05_PIN_05:             \
+    case BSP_IO_PORT_08_PIN_04:             \
+    case BSP_IO_PORT_00_PIN_10:             \
         return 14;                          \
     case BSP_IO_PORT_04_PIN_04:             \
     case BSP_IO_PORT_05_PIN_11:             \
-    case BSP_IO_PORT_05_PIN_06:             \
+    case BSP_IO_PORT_08_PIN_08:             \
         return 15;                          \
     default  :                              \
         return -1;                          \