Pārlūkot izejas kodu

[drivers] merge the software i2c driver

kurisaw 7 mēneši atpakaļ
vecāks
revīzija
1b76eccb37

+ 0 - 4
bsp/renesas/libraries/HAL_Drivers/SConscript

@@ -25,10 +25,6 @@ if GetDepend(['BSP_USING_WDT']):
 if GetDepend(['BSP_USING_ONCHIP_RTC']):
     src += ['drv_rtc.c']
 
-if GetDepend(['BSP_USING_SOFT_I2C']):
-    if GetDepend('BSP_USING_I2C0') or GetDepend('BSP_USING_I2C1') or GetDepend('BSP_USING_I2C2'):
-        src += ['drv_soft_i2c.c']
-
 if GetDepend(['BSP_USING_HW_I2C']):
         src += ['drv_i2c.c']
 

+ 0 - 232
bsp/renesas/libraries/HAL_Drivers/drv_soft_i2c.c

@@ -1,232 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date           Author            Notes
- * 2021-07-29     KyleChan          first version
- */
-
-#include "board.h"
-#include "drv_soft_i2c.h"
-#include "drv_config.h"
-
-#ifdef BSP_USING_SOFT_I2C
-
-#define DBG_TAG              "drv.i2c"
-#ifdef DRV_DEBUG
-    #define DBG_LVL               DBG_LOG
-#else
-    #define DBG_LVL               DBG_INFO
-#endif /* DRV_DEBUG */
-
-#if !defined(BSP_USING_I2C0) && !defined(BSP_USING_I2C1) && !defined(BSP_USING_I2C2)
-    #error "Please define at least one BSP_USING_I2Cx"
-    /* this driver can be disabled at menuconfig -> RT-Thread Components -> Device Drivers */
-#endif
-
-static const struct ra_soft_i2c_config soft_i2c_config[] =
-{
-#ifdef BSP_USING_I2C0
-    I2C0_BUS_CONFIG,
-#endif
-#ifdef BSP_USING_I2C1
-    I2C1_BUS_CONFIG,
-#endif
-#ifdef BSP_USING_I2C2
-    I2C2_BUS_CONFIG,
-#endif
-};
-
-static struct ra_i2c i2c_obj[sizeof(soft_i2c_config) / sizeof(soft_i2c_config[0])];
-
-/**
- * This function initializes the i2c pin.
- *
- * @param ra i2c dirver class.
- */
-static void ra_i2c_gpio_init(struct ra_i2c *i2c)
-{
-    struct ra_soft_i2c_config *cfg = (struct ra_soft_i2c_config *)i2c->ops.data;
-
-    rt_pin_mode(cfg->scl, PIN_MODE_OUTPUT_OD);
-    rt_pin_mode(cfg->sda, PIN_MODE_OUTPUT_OD);
-
-    rt_pin_write(cfg->scl, PIN_HIGH);
-    rt_pin_write(cfg->sda, PIN_HIGH);
-}
-
-static void ra_i2c_pin_init(void)
-{
-    rt_size_t obj_num = sizeof(i2c_obj) / sizeof(struct ra_i2c);
-
-    for(rt_size_t i = 0; i < obj_num; i++)
-    {
-        ra_i2c_gpio_init(&i2c_obj[i]);
-    }
-}
-
-/**
- * This function sets the sda pin.
- *
- * @param ra config class.
- * @param The sda pin state.
- */
-static void ra_set_sda(void *data, rt_int32_t state)
-{
-    struct ra_soft_i2c_config *cfg = (struct ra_soft_i2c_config *)data;
-    if (state)
-    {
-        rt_pin_write(cfg->sda, PIN_HIGH);
-    }
-    else
-    {
-        rt_pin_write(cfg->sda, PIN_LOW);
-    }
-}
-
-/**
- * This function sets the scl pin.
- *
- * @param ra config class.
- * @param The scl pin state.
- */
-static void ra_set_scl(void *data, rt_int32_t state)
-{
-    struct ra_soft_i2c_config *cfg = (struct ra_soft_i2c_config *)data;
-    if (state)
-    {
-        rt_pin_write(cfg->scl, PIN_HIGH);
-    }
-    else
-    {
-        rt_pin_write(cfg->scl, PIN_LOW);
-    }
-}
-
-/**
- * This function gets the sda pin state.
- *
- * @param The sda pin state.
- */
-static rt_int32_t ra_get_sda(void *data)
-{
-    struct ra_soft_i2c_config *cfg = (struct ra_soft_i2c_config *)data;
-    return rt_pin_read(cfg->sda);
-}
-
-/**
- * This function gets the scl pin state.
- *
- * @param The scl pin state.
- */
-static rt_int32_t ra_get_scl(void *data)
-{
-    struct ra_soft_i2c_config *cfg = (struct ra_soft_i2c_config *)data;
-    return rt_pin_read(cfg->scl);
-}
-/**
- * The time delay function.
- *
- * @param microseconds.
- */
-static void ra_udelay(rt_uint32_t us)
-{
-    rt_uint32_t ticks;
-    rt_uint32_t told, tnow, tcnt = 0;
-    rt_uint32_t reload = SysTick->LOAD;
-
-    ticks = us * reload / (1000000 / RT_TICK_PER_SECOND);
-    told = SysTick->VAL;
-    while (1)
-    {
-        tnow = SysTick->VAL;
-        if (tnow != told)
-        {
-            if (tnow < told)
-            {
-                tcnt += told - tnow;
-            }
-            else
-            {
-                tcnt += reload - tnow + told;
-            }
-            told = tnow;
-            if (tcnt >= ticks)
-            {
-                break;
-            }
-        }
-    }
-}
-
-static const struct rt_i2c_bit_ops ra_bit_ops_default =
-{
-    .data     = RT_NULL,
-    .pin_init = ra_i2c_pin_init,
-    .set_sda  = ra_set_sda,
-    .set_scl  = ra_set_scl,
-    .get_sda  = ra_get_sda,
-    .get_scl  = ra_get_scl,
-    .udelay   = ra_udelay,
-    .delay_us = 1,
-    .timeout  = 100,
-    .i2c_pin_init_flag = RT_FALSE
-};
-
-/**
- * if i2c is locked, this function will unlock it
- *
- * @param ra config class
- *
- * @return RT_EOK indicates successful unlock.
- */
-static rt_err_t ra_i2c_bus_unlock(const struct ra_soft_i2c_config *cfg)
-{
-    rt_int32_t i = 0;
-
-    if (PIN_LOW == rt_pin_read(cfg->sda))
-    {
-        while (i++ < 9)
-        {
-            rt_pin_write(cfg->scl, PIN_HIGH);
-            ra_udelay(100);
-            rt_pin_write(cfg->scl, PIN_LOW);
-            ra_udelay(100);
-        }
-    }
-    if (PIN_LOW == rt_pin_read(cfg->sda))
-    {
-        return -RT_ERROR;
-    }
-
-    return RT_EOK;
-}
-
-/* I2C initialization function */
-int rt_hw_i2c_init(void)
-{
-    rt_size_t obj_num = sizeof(i2c_obj) / sizeof(struct ra_i2c);
-    rt_err_t result;
-
-    for (rt_size_t i = 0; i < obj_num; i++)
-    {
-        i2c_obj[i].ops = ra_bit_ops_default;
-        i2c_obj[i].ops.data = (void *)&soft_i2c_config[i];
-        i2c_obj[i].i2c_bus.priv = &i2c_obj[i].ops;
-        result = rt_i2c_bit_add_bus(&i2c_obj[i].i2c_bus, soft_i2c_config[i].bus_name);
-        RT_ASSERT(result == RT_EOK);
-        ra_i2c_bus_unlock(&soft_i2c_config[i]);
-
-        LOG_D("software simulation %s init done, pin scl: %d, pin sda %d",
-              soft_i2c_config[i].bus_name,
-              soft_i2c_config[i].scl,
-              soft_i2c_config[i].sda);
-    }
-
-    return RT_EOK;
-}
-INIT_BOARD_EXPORT(rt_hw_i2c_init);
-
-#endif /* BSP_USING_SOFT_I2C */

+ 0 - 62
bsp/renesas/libraries/HAL_Drivers/drv_soft_i2c.h

@@ -1,62 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date           Author            Notes
- * 2021-07-29     KyleChan          first version
- */
-
-#ifndef __DRV_I2C__
-#define __DRV_I2C__
-
-#include <rtthread.h>
-#include <rthw.h>
-#include <rtdevice.h>
-#include <rtdbg.h>
-
-/* ra config class */
-struct ra_soft_i2c_config
-{
-    rt_uint32_t scl;
-    rt_uint32_t sda;
-    const char *bus_name;
-};
-/* ra i2c dirver class */
-struct ra_i2c
-{
-    struct rt_i2c_bit_ops ops;
-    struct rt_i2c_bus_device i2c_bus;
-};
-
-#ifdef BSP_USING_I2C0
-#define I2C0_BUS_CONFIG                                  \
-    {                                                    \
-        .scl = BSP_I2C0_SCL_PIN,                         \
-        .sda = BSP_I2C0_SDA_PIN,                         \
-        .bus_name = "i2c0",                              \
-    }
-#endif
-
-#ifdef BSP_USING_I2C1
-#define I2C1_BUS_CONFIG                                  \
-    {                                                    \
-        .scl = BSP_I2C1_SCL_PIN,                         \
-        .sda = BSP_I2C1_SDA_PIN,                         \
-        .bus_name = "i2c1",                              \
-    }
-#endif
-
-#ifdef BSP_USING_I2C2
-#define I2C2_BUS_CONFIG                                  \
-    {                                                    \
-        .scl = BSP_I2C2_SCL_PIN,                         \
-        .sda = BSP_I2C2_SDA_PIN,                         \
-        .bus_name = "i2c2",                              \
-    }
-#endif
-
-int rt_hw_i2c_init(void);
-
-#endif

+ 16 - 0
bsp/renesas/ra6m3-hmi-board/.ci/attachconfig/attachconfig.yml

@@ -0,0 +1,16 @@
+devices.strict:
+    depend_scons_arg:
+      - '--strict'
+devices.gpio:
+    depends:
+      - devices.strict
+    kconfig:
+      - CONFIG_BSP_USING_GPIO=y
+devices.uart:
+    kconfig:
+      - CONFIG_BSP_USING_UART=y
+devices.soft_i2c:
+    kconfig:
+      - CONFIG_RT_USING_I2C=y
+      - CONFIG_RT_USING_SOFT_I2C=y
+      - CONFIG_RT_USING_SOFT_I2C0=y

+ 274 - 52
bsp/renesas/ra6m3-hmi-board/.config

@@ -1,15 +1,117 @@
+
 #
-# Automatically generated file; DO NOT EDIT.
-# RT-Thread Configuration
+# RT-Thread Kernel
 #
 
 #
-# RT-Thread Kernel
+# klibc options
+#
+
+#
+# rt_vsnprintf options
+#
+# CONFIG_RT_KLIBC_USING_LIBC_VSNPRINTF is not set
+# CONFIG_RT_KLIBC_USING_VSNPRINTF_LONGLONG is not set
+# CONFIG_RT_KLIBC_USING_VSNPRINTF_STANDARD is not set
+# end of rt_vsnprintf options
+
+#
+# rt_vsscanf options
+#
+# CONFIG_RT_KLIBC_USING_LIBC_VSSCANF is not set
+# end of rt_vsscanf options
+
+#
+# rt_memset options
+#
+# CONFIG_RT_KLIBC_USING_USER_MEMSET is not set
+# CONFIG_RT_KLIBC_USING_LIBC_MEMSET is not set
+# CONFIG_RT_KLIBC_USING_TINY_MEMSET is not set
+# end of rt_memset options
+
+#
+# rt_memcpy options
+#
+# CONFIG_RT_KLIBC_USING_USER_MEMCPY is not set
+# CONFIG_RT_KLIBC_USING_LIBC_MEMCPY is not set
+# CONFIG_RT_KLIBC_USING_TINY_MEMCPY is not set
+# end of rt_memcpy options
+
+#
+# rt_memmove options
+#
+# CONFIG_RT_KLIBC_USING_USER_MEMMOVE is not set
+# CONFIG_RT_KLIBC_USING_LIBC_MEMMOVE is not set
+# end of rt_memmove options
+
+#
+# rt_memcmp options
+#
+# CONFIG_RT_KLIBC_USING_USER_MEMCMP is not set
+# CONFIG_RT_KLIBC_USING_LIBC_MEMCMP is not set
+# end of rt_memcmp options
+
+#
+# rt_strstr options
+#
+# CONFIG_RT_KLIBC_USING_USER_STRSTR is not set
+# CONFIG_RT_KLIBC_USING_LIBC_STRSTR is not set
+# end of rt_strstr options
+
+#
+# rt_strcasecmp options
+#
+# CONFIG_RT_KLIBC_USING_USER_STRCASECMP is not set
+# end of rt_strcasecmp options
+
+#
+# rt_strncpy options
+#
+# CONFIG_RT_KLIBC_USING_USER_STRNCPY is not set
+# CONFIG_RT_KLIBC_USING_LIBC_STRNCPY is not set
+# end of rt_strncpy options
+
+#
+# rt_strcpy options
+#
+# CONFIG_RT_KLIBC_USING_USER_STRCPY is not set
+# CONFIG_RT_KLIBC_USING_LIBC_STRCPY is not set
+# end of rt_strcpy options
+
+#
+# rt_strncmp options
+#
+# CONFIG_RT_KLIBC_USING_USER_STRNCMP is not set
+# CONFIG_RT_KLIBC_USING_LIBC_STRNCMP is not set
+# end of rt_strncmp options
+
+#
+# rt_strcmp options
 #
+# CONFIG_RT_KLIBC_USING_USER_STRCMP is not set
+# CONFIG_RT_KLIBC_USING_LIBC_STRCMP is not set
+# end of rt_strcmp options
+
+#
+# rt_strlen options
+#
+# CONFIG_RT_KLIBC_USING_USER_STRLEN is not set
+# CONFIG_RT_KLIBC_USING_LIBC_STRLEN is not set
+# end of rt_strlen options
+
+#
+# rt_strnlen options
+#
+# CONFIG_RT_KLIBC_USING_USER_STRNLEN is not set
+# end of rt_strnlen options
+
+# CONFIG_RT_UTEST_TC_USING_KLIBC is not set
+# end of klibc options
+
 CONFIG_RT_NAME_MAX=8
 # CONFIG_RT_USING_ARCH_DATA_TYPE is not set
-# CONFIG_RT_USING_SMART is not set
 # CONFIG_RT_USING_NANO is not set
+# CONFIG_RT_USING_SMART is not set
 # CONFIG_RT_USING_AMP is not set
 # CONFIG_RT_USING_SMP is not set
 CONFIG_RT_CPUS_NR=1
@@ -29,22 +131,21 @@ CONFIG_IDLE_THREAD_STACK_SIZE=256
 CONFIG_RT_USING_TIMER_SOFT=y
 CONFIG_RT_TIMER_THREAD_PRIO=4
 CONFIG_RT_TIMER_THREAD_STACK_SIZE=512
+# CONFIG_RT_USING_TIMER_ALL_SOFT is not set
+# CONFIG_RT_USING_CPU_USAGE_TRACER is not set
 
 #
-# kservice optimization
+# kservice options
 #
 # CONFIG_RT_USING_TINY_FFS is not set
+# end of kservice options
 
-#
-# klibc optimization
-#
-# CONFIG_RT_KLIBC_USING_STDLIB is not set
-# CONFIG_RT_KLIBC_USING_TINY_SIZE is not set
-# CONFIG_RT_KLIBC_USING_PRINTF_LONGLONG is not set
 CONFIG_RT_USING_DEBUG=y
+CONFIG_RT_DEBUGING_ASSERT=y
 CONFIG_RT_DEBUGING_COLOR=y
 CONFIG_RT_DEBUGING_CONTEXT=y
 # CONFIG_RT_DEBUGING_AUTO_INIT is not set
+# CONFIG_RT_USING_CI_ACTION is not set
 
 #
 # Inter-Thread communication
@@ -56,6 +157,7 @@ CONFIG_RT_USING_MAILBOX=y
 CONFIG_RT_USING_MESSAGEQUEUE=y
 # CONFIG_RT_USING_MESSAGEQUEUE_PRIORITY is not set
 # CONFIG_RT_USING_SIGNALS is not set
+# end of Inter-Thread communication
 
 #
 # Memory Management
@@ -72,21 +174,21 @@ CONFIG_RT_USING_SMALL_MEM_AS_HEAP=y
 # CONFIG_RT_USING_MEMTRACE is not set
 # CONFIG_RT_USING_HEAP_ISR is not set
 CONFIG_RT_USING_HEAP=y
+# end of Memory Management
+
 CONFIG_RT_USING_DEVICE=y
 # CONFIG_RT_USING_DEVICE_OPS is not set
 # CONFIG_RT_USING_INTERRUPT_INFO is not set
 # CONFIG_RT_USING_THREADSAFE_PRINTF is not set
-# CONFIG_RT_USING_SCHED_THREAD_CTX is not set
 CONFIG_RT_USING_CONSOLE=y
 CONFIG_RT_CONSOLEBUF_SIZE=128
 CONFIG_RT_CONSOLE_DEVICE_NAME="uart9"
 CONFIG_RT_VER_NUM=0x50200
 # CONFIG_RT_USING_STDC_ATOMIC is not set
 CONFIG_RT_BACKTRACE_LEVEL_MAX_NR=32
-# CONFIG_RT_USING_CACHE is not set
+# end of RT-Thread Kernel
+
 CONFIG_RT_USING_HW_ATOMIC=y
-# CONFIG_ARCH_ARM_BOOTWITH_FLUSH_CACHE is not set
-# CONFIG_ARCH_CPU_STACK_GROWS_UPWARD is not set
 CONFIG_RT_USING_CPU_FFS=y
 CONFIG_ARCH_ARM=y
 CONFIG_ARCH_ARM_CORTEX_M=y
@@ -121,12 +223,15 @@ CONFIG_FINSH_USING_OPTION_COMPLETION=y
 # DFS: device virtual file system
 #
 # CONFIG_RT_USING_DFS is not set
+# end of DFS: device virtual file system
+
 # CONFIG_RT_USING_FAL is not set
 
 #
 # Device Drivers
 #
 # CONFIG_RT_USING_DM is not set
+# CONFIG_RT_USING_DEV_BUS is not set
 CONFIG_RT_USING_DEVICE_IPC=y
 CONFIG_RT_UNAMED_PIPE_NUMBER=64
 # CONFIG_RT_USING_SYSTEM_WORKQUEUE is not set
@@ -134,16 +239,20 @@ CONFIG_RT_USING_SERIAL=y
 # CONFIG_RT_USING_SERIAL_V1 is not set
 CONFIG_RT_USING_SERIAL_V2=y
 CONFIG_RT_SERIAL_USING_DMA=y
+# CONFIG_RT_USING_SERIAL_BYPASS is not set
 # CONFIG_RT_USING_CAN is not set
 # CONFIG_RT_USING_CPUTIME is not set
 # CONFIG_RT_USING_I2C is not set
 # CONFIG_RT_USING_PHY is not set
+# CONFIG_RT_USING_PHY_V2 is not set
 # CONFIG_RT_USING_ADC is not set
 # CONFIG_RT_USING_DAC is not set
 # CONFIG_RT_USING_NULL is not set
 # CONFIG_RT_USING_ZERO is not set
 # CONFIG_RT_USING_RANDOM is not set
 # CONFIG_RT_USING_PWM is not set
+# CONFIG_RT_USING_PULSE_ENCODER is not set
+# CONFIG_RT_USING_INPUT_CAPTURE is not set
 # CONFIG_RT_USING_MTD_NOR is not set
 # CONFIG_RT_USING_MTD_NAND is not set
 # CONFIG_RT_USING_PM is not set
@@ -156,21 +265,14 @@ CONFIG_RT_SERIAL_USING_DMA=y
 # CONFIG_RT_USING_TOUCH is not set
 # CONFIG_RT_USING_LCD is not set
 # CONFIG_RT_USING_HWCRYPTO is not set
-# CONFIG_RT_USING_PULSE_ENCODER is not set
-# CONFIG_RT_USING_INPUT_CAPTURE is not set
-# CONFIG_RT_USING_DEV_BUS is not set
 # CONFIG_RT_USING_WIFI is not set
+# CONFIG_RT_USING_BLK is not set
 # CONFIG_RT_USING_VIRTIO is not set
 CONFIG_RT_USING_PIN=y
 # CONFIG_RT_USING_KTIME is not set
 # CONFIG_RT_USING_HWTIMER is not set
-
-#
-# Using USB
-#
-# CONFIG_RT_USING_USB is not set
-# CONFIG_RT_USING_USB_HOST is not set
-# CONFIG_RT_USING_USB_DEVICE is not set
+# CONFIG_RT_USING_CHERRYUSB is not set
+# end of Device Drivers
 
 #
 # C/C++ and POSIX layer
@@ -188,6 +290,8 @@ CONFIG_RT_LIBC_USING_LIGHT_TZ_DST=y
 CONFIG_RT_LIBC_TZ_DEFAULT_HOUR=8
 CONFIG_RT_LIBC_TZ_DEFAULT_MIN=0
 CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
+# end of Timezone and Daylight Saving Time
+# end of ISO-ANSI C layer
 
 #
 # POSIX (Portable Operating System Interface) layer
@@ -209,7 +313,11 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 #
 # Socket is in the 'Network' category
 #
+# end of Interprocess Communication (IPC)
+# end of POSIX (Portable Operating System Interface) layer
+
 # CONFIG_RT_USING_CPLUSPLUS is not set
+# end of C/C++ and POSIX layer
 
 #
 # Network
@@ -218,12 +326,14 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_RT_USING_NETDEV is not set
 # CONFIG_RT_USING_LWIP is not set
 # CONFIG_RT_USING_AT is not set
+# end of Network
 
 #
 # Memory protection
 #
 # CONFIG_RT_USING_MEM_PROTECTION is not set
 # CONFIG_RT_USING_HW_STACK_GUARD is not set
+# end of Memory protection
 
 #
 # Utilities
@@ -235,12 +345,25 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_RT_USING_RESOURCE_ID is not set
 # CONFIG_RT_USING_ADT is not set
 # CONFIG_RT_USING_RT_LINK is not set
+# end of Utilities
+
 # CONFIG_RT_USING_VBUS is not set
 
+#
+# Using USB legacy version
+#
+# CONFIG_RT_USING_USB_HOST is not set
+# CONFIG_RT_USING_USB_DEVICE is not set
+# end of Using USB legacy version
+
+# CONFIG_RT_USING_FDT is not set
+# end of RT-Thread Components
+
 #
 # RT-Thread Utestcases
 #
 # CONFIG_RT_USING_UTESTCASES is not set
+# end of RT-Thread Utestcases
 
 #
 # RT-Thread online packages
@@ -249,7 +372,6 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 #
 # IoT - internet of things
 #
-# CONFIG_PKG_USING_LWIP is not set
 # CONFIG_PKG_USING_LORAWAN_DRIVER is not set
 # CONFIG_PKG_USING_PAHOMQTT is not set
 # CONFIG_PKG_USING_UMQTT is not set
@@ -262,6 +384,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_WEBTERMINAL is not set
 # CONFIG_PKG_USING_FREEMODBUS is not set
 # CONFIG_PKG_USING_NANOPB is not set
+# CONFIG_PKG_USING_WIFI_HOST_DRIVER is not set
 
 #
 # Wi-Fi
@@ -271,27 +394,35 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # Marvell WiFi
 #
 # CONFIG_PKG_USING_WLANMARVELL is not set
+# end of Marvell WiFi
 
 #
 # Wiced WiFi
 #
 # CONFIG_PKG_USING_WLAN_WICED is not set
+# end of Wiced WiFi
+
 # CONFIG_PKG_USING_RW007 is not set
 
 #
 # CYW43012 WiFi
 #
 # CONFIG_PKG_USING_WLAN_CYW43012 is not set
+# end of CYW43012 WiFi
 
 #
 # BL808 WiFi
 #
 # CONFIG_PKG_USING_WLAN_BL808 is not set
+# end of BL808 WiFi
 
 #
 # CYW43439 WiFi
 #
 # CONFIG_PKG_USING_WLAN_CYW43439 is not set
+# end of CYW43439 WiFi
+# end of Wi-Fi
+
 # CONFIG_PKG_USING_COAP is not set
 # CONFIG_PKG_USING_NOPOLL is not set
 # CONFIG_PKG_USING_NETUTILS is not set
@@ -314,6 +445,8 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_UCLOUD_IOT_SDK is not set
 # CONFIG_PKG_USING_JOYLINK is not set
 # CONFIG_PKG_USING_IOTSHARP_SDK is not set
+# end of IoT Cloud
+
 # CONFIG_PKG_USING_NIMBLE is not set
 # CONFIG_PKG_USING_LLSYNC_SDK_ADAPTER is not set
 # CONFIG_PKG_USING_OTA_DOWNLOADER is not set
@@ -356,6 +489,10 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_ZEPHYR_POLLING is not set
 # CONFIG_PKG_USING_MATTER_ADAPTATION_LAYER is not set
 # CONFIG_PKG_USING_LHC_MODBUS is not set
+# CONFIG_PKG_USING_QMODBUS is not set
+# CONFIG_PKG_USING_PNET is not set
+# CONFIG_PKG_USING_OPENER is not set
+# end of IoT - internet of things
 
 #
 # security packages
@@ -366,6 +503,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_TINYCRYPT is not set
 # CONFIG_PKG_USING_TFM is not set
 # CONFIG_PKG_USING_YD_CRYPTO is not set
+# end of security packages
 
 #
 # language packages
@@ -381,18 +519,23 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_JSMN is not set
 # CONFIG_PKG_USING_AGILE_JSMN is not set
 # CONFIG_PKG_USING_PARSON is not set
+# CONFIG_PKG_USING_RYAN_JSON is not set
+# end of JSON: JavaScript Object Notation, a lightweight data-interchange format
 
 #
 # XML: Extensible Markup Language
 #
 # CONFIG_PKG_USING_SIMPLE_XML is not set
 # CONFIG_PKG_USING_EZXML is not set
+# end of XML: Extensible Markup Language
+
 # CONFIG_PKG_USING_LUATOS_SOC is not set
 # CONFIG_PKG_USING_LUA is not set
 # CONFIG_PKG_USING_JERRYSCRIPT is not set
 # CONFIG_PKG_USING_MICROPYTHON is not set
 # CONFIG_PKG_USING_PIKASCRIPT is not set
 # CONFIG_PKG_USING_RTT_RUST is not set
+# end of language packages
 
 #
 # multimedia packages
@@ -404,12 +547,15 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_LVGL is not set
 # CONFIG_PKG_USING_LV_MUSIC_DEMO is not set
 # CONFIG_PKG_USING_GUI_GUIDER_DEMO is not set
+# end of LVGL: powerful and easy-to-use embedded GUI library
 
 #
 # u8g2: a monochrome graphic library
 #
 # CONFIG_PKG_USING_U8G2_OFFICIAL is not set
 # CONFIG_PKG_USING_U8G2 is not set
+# end of u8g2: a monochrome graphic library
+
 # CONFIG_PKG_USING_OPENMV is not set
 # CONFIG_PKG_USING_MUPDF is not set
 # CONFIG_PKG_USING_STEMWIN is not set
@@ -430,6 +576,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_GUIENGINE is not set
 # CONFIG_PKG_USING_PERSIMMON is not set
 # CONFIG_PKG_USING_3GPP_AMRNB is not set
+# end of multimedia packages
 
 #
 # tools packages
@@ -479,6 +626,9 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_VOFA_PLUS is not set
 # CONFIG_PKG_USING_RT_TRACE is not set
 # CONFIG_PKG_USING_ZDEBUG is not set
+# CONFIG_PKG_USING_RVBACKTRACE is not set
+# CONFIG_PKG_USING_HPATCHLITE is not set
+# end of tools packages
 
 #
 # system packages
@@ -489,7 +639,9 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 #
 # CONFIG_PKG_USING_RT_MEMCPY_CM is not set
 # CONFIG_PKG_USING_RT_KPRINTF_THREADSAFE is not set
-# CONFIG_PKG_USING_RT_VSNPRINTF_FULL is not set
+# end of enhanced kernel services
+
+# CONFIG_PKG_USING_AUNITY is not set
 
 #
 # acceleration: Assembly language or algorithmic acceleration packages
@@ -497,13 +649,18 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_QFPLIB_M0_FULL is not set
 # CONFIG_PKG_USING_QFPLIB_M0_TINY is not set
 # CONFIG_PKG_USING_QFPLIB_M3 is not set
+# end of acceleration: Assembly language or algorithmic acceleration packages
 
 #
 # CMSIS: ARM Cortex-M Microcontroller Software Interface Standard
 #
 # CONFIG_PKG_USING_CMSIS_5 is not set
+# CONFIG_PKG_USING_CMSIS_CORE is not set
+# CONFIG_PKG_USING_CMSIS_DSP is not set
+# CONFIG_PKG_USING_CMSIS_NN is not set
 # CONFIG_PKG_USING_CMSIS_RTOS1 is not set
 # CONFIG_PKG_USING_CMSIS_RTOS2 is not set
+# end of CMSIS: ARM Cortex-M Microcontroller Software Interface Standard
 
 #
 # Micrium: Micrium software products porting for RT-Thread
@@ -514,6 +671,8 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_UC_CLK is not set
 # CONFIG_PKG_USING_UC_COMMON is not set
 # CONFIG_PKG_USING_UC_MODBUS is not set
+# end of Micrium: Micrium software products porting for RT-Thread
+
 # CONFIG_PKG_USING_FREERTOS_WRAPPER is not set
 # CONFIG_PKG_USING_LITEOS_SDK is not set
 # CONFIG_PKG_USING_TZ_DATABASE is not set
@@ -557,15 +716,65 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_FLASH_BLOB is not set
 # CONFIG_PKG_USING_MLIBC is not set
 # CONFIG_PKG_USING_TASK_MSG_BUS is not set
+# CONFIG_PKG_USING_UART_FRAMEWORK is not set
 # CONFIG_PKG_USING_SFDB is not set
 # CONFIG_PKG_USING_RTP is not set
 # CONFIG_PKG_USING_REB is not set
+# CONFIG_PKG_USING_RMP is not set
 # CONFIG_PKG_USING_R_RHEALSTONE is not set
+# CONFIG_PKG_USING_HEARTBEAT is not set
+# end of system packages
 
 #
 # peripheral libraries and drivers
 #
 
+#
+# HAL & SDK Drivers
+#
+
+#
+# STM32 HAL & SDK Drivers
+#
+# CONFIG_PKG_USING_STM32F4_HAL_DRIVER is not set
+# CONFIG_PKG_USING_STM32F4_CMSIS_DRIVER is not set
+# CONFIG_PKG_USING_STM32L4_HAL_DRIVER is not set
+# CONFIG_PKG_USING_STM32L4_CMSIS_DRIVER is not set
+# CONFIG_PKG_USING_STM32WB55_SDK is not set
+# CONFIG_PKG_USING_STM32_SDIO is not set
+# end of STM32 HAL & SDK Drivers
+
+#
+# Infineon HAL Packages
+#
+# CONFIG_PKG_USING_INFINEON_CAT1CM0P is not set
+# CONFIG_PKG_USING_INFINEON_CMSIS is not set
+# CONFIG_PKG_USING_INFINEON_CORE_LIB is not set
+# CONFIG_PKG_USING_INFINEON_MTB_HAL_CAT1 is not set
+# CONFIG_PKG_USING_INFINEON_MTB_PDL_CAT1 is not set
+# CONFIG_PKG_USING_INFINEON_RETARGET_IO is not set
+# CONFIG_PKG_USING_INFINEON_CAPSENSE is not set
+# CONFIG_PKG_USING_INFINEON_CSDIDAC is not set
+# CONFIG_PKG_USING_INFINEON_SERIAL_FLASH is not set
+# CONFIG_PKG_USING_INFINEON_USBDEV is not set
+# end of Infineon HAL Packages
+
+# CONFIG_PKG_USING_BLUETRUM_SDK is not set
+# CONFIG_PKG_USING_EMBARC_BSP is not set
+# CONFIG_PKG_USING_ESP_IDF is not set
+
+#
+# Kendryte SDK
+#
+# CONFIG_PKG_USING_K210_SDK is not set
+# CONFIG_PKG_USING_KENDRYTE_SDK is not set
+# end of Kendryte SDK
+
+# CONFIG_PKG_USING_NRF5X_SDK is not set
+# CONFIG_PKG_USING_NRFX is not set
+# CONFIG_PKG_USING_RASPBERRYPI_PICO_SDK is not set
+# end of HAL & SDK Drivers
+
 #
 # sensors drivers
 #
@@ -609,6 +818,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_MLX90632 is not set
 # CONFIG_PKG_USING_MLX90393 is not set
 # CONFIG_PKG_USING_MLX90392 is not set
+# CONFIG_PKG_USING_MLX90394 is not set
 # CONFIG_PKG_USING_MLX90397 is not set
 # CONFIG_PKG_USING_MS5611 is not set
 # CONFIG_PKG_USING_MAX31865 is not set
@@ -634,6 +844,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_ICM20608 is not set
 # CONFIG_PKG_USING_PAJ7620 is not set
 # CONFIG_PKG_USING_STHS34PF80 is not set
+# end of sensors drivers
 
 #
 # touch drivers
@@ -647,9 +858,10 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_FT6236 is not set
 # CONFIG_PKG_USING_XPT2046_TOUCH is not set
 # CONFIG_PKG_USING_CST816X is not set
+# CONFIG_PKG_USING_CST812T is not set
+# end of touch drivers
+
 # CONFIG_PKG_USING_REALTEK_AMEBA is not set
-# CONFIG_PKG_USING_STM32_SDIO is not set
-# CONFIG_PKG_USING_ESP_IDF is not set
 # CONFIG_PKG_USING_BUTTON is not set
 # CONFIG_PKG_USING_PCF8574 is not set
 # CONFIG_PKG_USING_SX12XX is not set
@@ -657,14 +869,6 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_LEDBLINK is not set
 # CONFIG_PKG_USING_LITTLED is not set
 # CONFIG_PKG_USING_LKDGUI is not set
-# CONFIG_PKG_USING_NRF5X_SDK is not set
-# CONFIG_PKG_USING_NRFX is not set
-
-#
-# Kendryte SDK
-#
-# CONFIG_PKG_USING_K210_SDK is not set
-# CONFIG_PKG_USING_KENDRYTE_SDK is not set
 # CONFIG_PKG_USING_INFRARED is not set
 # CONFIG_PKG_USING_MULTI_INFRARED is not set
 # CONFIG_PKG_USING_AGILE_BUTTON is not set
@@ -679,7 +883,6 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_AS608 is not set
 # CONFIG_PKG_USING_RC522 is not set
 # CONFIG_PKG_USING_WS2812B is not set
-# CONFIG_PKG_USING_EMBARC_BSP is not set
 # CONFIG_PKG_USING_EXTERN_RTC_DRIVERS is not set
 # CONFIG_PKG_USING_MULTI_RTIMER is not set
 # CONFIG_PKG_USING_MAX7219 is not set
@@ -702,7 +905,6 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_VIRTUAL_SENSOR is not set
 # CONFIG_PKG_USING_VDEVICE is not set
 # CONFIG_PKG_USING_SGM706 is not set
-# CONFIG_PKG_USING_STM32WB55_SDK is not set
 # CONFIG_PKG_USING_RDA58XX is not set
 # CONFIG_PKG_USING_LIBNFC is not set
 # CONFIG_PKG_USING_MFOC is not set
@@ -712,7 +914,6 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_ROSSERIAL is not set
 # CONFIG_PKG_USING_MICRO_ROS is not set
 # CONFIG_PKG_USING_MCP23008 is not set
-# CONFIG_PKG_USING_BLUETRUM_SDK is not set
 # CONFIG_PKG_USING_MISAKA_AT24CXX is not set
 # CONFIG_PKG_USING_MISAKA_RGB_BLING is not set
 # CONFIG_PKG_USING_LORA_MODEM_DRIVER is not set
@@ -720,7 +921,6 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_MB85RS16 is not set
 # CONFIG_PKG_USING_RFM300 is not set
 # CONFIG_PKG_USING_IO_INPUT_FILTER is not set
-# CONFIG_PKG_USING_RASPBERRYPI_PICO_SDK is not set
 # CONFIG_PKG_USING_LRF_NV7LIDAR is not set
 # CONFIG_PKG_USING_AIP650 is not set
 # CONFIG_PKG_USING_FINGERPRINT is not set
@@ -731,7 +931,12 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_X9555 is not set
 # CONFIG_PKG_USING_SYSTEM_RUN_LED is not set
 # CONFIG_PKG_USING_BT_MX01 is not set
+# CONFIG_PKG_USING_RGPOWER is not set
+# CONFIG_PKG_USING_BT_MX02 is not set
+# CONFIG_PKG_USING_GC9A01 is not set
+# CONFIG_PKG_USING_IK485 is not set
 # CONFIG_PKG_USING_SPI_TOOLS is not set
+# end of peripheral libraries and drivers
 
 #
 # AI packages
@@ -746,16 +951,18 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_QUEST is not set
 # CONFIG_PKG_USING_NAXOS is not set
 # CONFIG_PKG_USING_R_TINYMAIX is not set
+# end of AI packages
 
 #
 # Signal Processing and Control Algorithm Packages
 #
+# CONFIG_PKG_USING_APID is not set
 # CONFIG_PKG_USING_FIRE_PID_CURVE is not set
 # CONFIG_PKG_USING_QPID is not set
 # CONFIG_PKG_USING_UKAL is not set
 # CONFIG_PKG_USING_DIGITALCTRL is not set
 # CONFIG_PKG_USING_KISSFFT is not set
-# CONFIG_PKG_USING_CMSIS_DSP is not set
+# end of Signal Processing and Control Algorithm Packages
 
 #
 # miscellaneous packages
@@ -764,6 +971,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 #
 # project laboratory
 #
+# end of project laboratory
 
 #
 # samples: kernel and components samples
@@ -772,6 +980,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set
 # CONFIG_PKG_USING_NETWORK_SAMPLES is not set
 # CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set
+# end of samples: kernel and components samples
 
 #
 # entertainment: terminal games and other interesting software packages
@@ -788,6 +997,8 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_COWSAY is not set
 # CONFIG_PKG_USING_MORSE is not set
 # CONFIG_PKG_USING_TINYSQUARE is not set
+# end of entertainment: terminal games and other interesting software packages
+
 # CONFIG_PKG_USING_LIBCSV is not set
 # CONFIG_PKG_USING_OPTPARSE is not set
 # CONFIG_PKG_USING_FASTLZ is not set
@@ -821,6 +1032,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_SOEM is not set
 # CONFIG_PKG_USING_QPARAM is not set
 # CONFIG_PKG_USING_CorevMCU_CLI is not set
+# end of miscellaneous packages
 
 #
 # Arduino libraries
@@ -833,9 +1045,11 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_ARDUINO_MSGQ_C_CPP_DEMO is not set
 # CONFIG_PKG_USING_ARDUINO_SKETCH_LOADER_DEMO is not set
 # CONFIG_PKG_USING_ARDUINO_ULTRASOUND_RADAR is not set
+# CONFIG_PKG_USING_ARDUINO_RTDUINO_SENSORFUSION_SHIELD is not set
 # CONFIG_PKG_USING_ARDUINO_NINEINONE_SENSOR_SHIELD is not set
 # CONFIG_PKG_USING_ARDUINO_SENSOR_KIT is not set
 # CONFIG_PKG_USING_ARDUINO_MATLAB_SUPPORT is not set
+# end of Projects and Demos
 
 #
 # Sensors
@@ -975,6 +1189,8 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_ARDUINO_SEEED_LTC2941 is not set
 # CONFIG_PKG_USING_ARDUINO_SEEED_LDC1612 is not set
 # CONFIG_PKG_USING_ARDUINO_CAPACITIVESENSOR is not set
+# CONFIG_PKG_USING_ARDUINO_JARZEBSKI_MPU6050 is not set
+# end of Sensors
 
 #
 # Display
@@ -986,6 +1202,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SSD1306 is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ILI9341 is not set
 # CONFIG_PKG_USING_SEEED_TM1637 is not set
+# end of Display
 
 #
 # Timing
@@ -994,6 +1211,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_ARDUINO_MSTIMER2 is not set
 # CONFIG_PKG_USING_ARDUINO_TICKER is not set
 # CONFIG_PKG_USING_ARDUINO_TASKSCHEDULER is not set
+# end of Timing
 
 #
 # Data Processing
@@ -1001,6 +1219,8 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_ARDUINO_KALMANFILTER is not set
 # CONFIG_PKG_USING_ARDUINO_ARDUINOJSON is not set
 # CONFIG_PKG_USING_ARDUINO_TENSORFLOW_LITE_MICRO is not set
+# CONFIG_PKG_USING_ARDUINO_RUNNINGMEDIAN is not set
+# end of Data Processing
 
 #
 # Data Storage
@@ -1011,6 +1231,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 #
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PN532 is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI4713 is not set
+# end of Communication
 
 #
 # Device Control
@@ -1022,12 +1243,14 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS1841 is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS3502 is not set
 # CONFIG_PKG_USING_ARDUINO_SEEED_PCF85063TP is not set
+# end of Device Control
 
 #
 # Other
 #
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MFRC630 is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI5351 is not set
+# end of Other
 
 #
 # Signal IO
@@ -1040,18 +1263,16 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP3008 is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP4725 is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BD3491FS is not set
+# end of Signal IO
 
 #
 # Uncategorized
 #
+# end of Arduino libraries
+# end of RT-Thread online packages
+
 CONFIG_SOC_FAMILY_RENESAS=y
 CONFIG_SOC_SERIES_R7FA6M3=y
-# CONFIG_SOC_SERIES_R7FA6M4 is not set
-# CONFIG_SOC_SERIES_R7FA2L1 is not set
-# CONFIG_SOC_SERIES_R7FA6M5 is not set
-# CONFIG_SOC_SERIES_R7FA4M2 is not set
-# CONFIG_SOC_SERIES_R7FA8M85 is not set
-# CONFIG_SOC_SERIES_R9A07G0 is not set
 
 #
 # Hardware Drivers Config
@@ -1063,11 +1284,12 @@ CONFIG_SOC_R7FA6M4AF=y
 #
 # CONFIG_BSP_USING_ARDUINO is not set
 # CONFIG_BSP_USING_FS is not set
-# CONFIG_BSP_USING_SPI_LCD is not set
 # CONFIG_BSP_USING_LCD is not set
 # CONFIG_BSP_USING_LCD_PWM_BACKLIGHT is not set
 # CONFIG_BSP_USING_TOUCH is not set
 # CONFIG_BSP_USING_LVGL is not set
+# CONFIG_BSP_USING_LVGL_DEMO is not set
+# end of Onboard Peripheral Drivers
 
 #
 # On-chip Peripheral Drivers
@@ -1085,18 +1307,18 @@ CONFIG_BSP_UART9_RX_BUFSIZE=256
 CONFIG_BSP_UART9_TX_BUFSIZE=0
 # CONFIG_BSP_USING_SPI is not set
 # CONFIG_BSP_USING_SOFT_SPI is not set
-# CONFIG_BSP_USING_SOFT_I2C is not set
 # CONFIG_BSP_USING_ADC is not set
 # CONFIG_BSP_USING_DAC is not set
 # CONFIG_BSP_USING_PWM is not set
 # CONFIG_BSP_USING_SDHI is not set
 # CONFIG_BSP_USING_CAN is not set
-# CONFIG_BSP_USING_G2D is not set
-# CONFIG_BSP_USING_JPEG is not set
 # CONFIG_BSP_USING_ETH is not set
 # CONFIG_BSP_USING_SCI is not set
+# end of On-chip Peripheral Drivers
 
 #
 # Board extended module Drivers
 #
 # CONFIG_BSP_USING_RW007 is not set
+# end of Board extended module Drivers
+# end of Hardware Drivers Config

+ 67 - 42
bsp/renesas/ra6m3-hmi-board/board/Kconfig

@@ -20,8 +20,9 @@ menu "Hardware Drivers Config"
             select BSP_USING_PWM0
             select BSP_USING_PWM2
             select BSP_USING_PWM8
-            select BSP_USING_SOFT_I2C
-            select BSP_USING_I2C0
+            select RT_USING_I2C
+            select RT_USING_SOFT_I2C
+            select RT_USING_SOFT_I2C0
             select BSP_USING_SOFT_SPI
             select BSP_USING_SOFT_SPI1
             select RTDUINO_USING_WIRE
@@ -77,8 +78,9 @@ menu "Hardware Drivers Config"
             bool "Enable Touch GT911"
             select RT_USING_TOUCH
             select RT_TOUCH_PIN_IRQ
-            select BSP_USING_SOFT_I2C
-            select BSP_USING_I2C1
+            select RT_USING_I2C
+            select RT_USING_SOFT_I2C
+            select RT_USING_SOFT_I2C1
             default n
 
         menuconfig BSP_USING_LVGL
@@ -223,44 +225,67 @@ menu "Hardware Drivers Config"
                     endif
             endif
 
-        menuconfig BSP_USING_SOFT_I2C
-            bool "Enable software I2C bus"
-            select RT_USING_I2C
-            select RT_USING_I2C_BITOPS
-            select RT_USING_PIN
-            default n
-            if BSP_USING_SOFT_I2C
-                config BSP_USING_SOFT_I2C
-                menuconfig BSP_USING_I2C0
-                    bool "Enable I2C0 Bus (software simulation)"
-                    default n
-                    if BSP_USING_I2C0
-                        comment "Please refer to the 'bsp_io.h' file to configure the pins"
-                        config BSP_I2C0_SCL_PIN
-                            hex "i2c0 scl pin number (hex)"
-                            range 0x0000 0xFFFF
-                            default 0x202
-                        config BSP_I2C0_SDA_PIN
-                            hex "i2c0 sda pin number (hex)"
-                            range 0x0000 0xFFFF
-                            default 0x203
-                    endif
-
-                menuconfig BSP_USING_I2C1
-                    bool "Enable I2C1 Bus (software simulation)"
-                    default n
-                    if BSP_USING_I2C1
-                        comment "Please refer to the 'bsp_io.h' file to configure the pins"
-                        config BSP_I2C1_SCL_PIN
-                            hex "i2c1 scl pin number (hex)"
-                            range 0x0000 0xFFFF
-                            default 0x202
-                        config BSP_I2C1_SDA_PIN
-                            hex "i2c1 sda pin number (hex)"
-                            range 0x0000 0xFFFF
-                            default 0x203
-                    endif
-            endif
+        config RT_USING_I2C
+        bool 
+        default n
+        if RT_USING_I2C
+            config RT_USING_SOFT_I2C
+                bool "Enable soft I2C BUS"
+                default n
+                if RT_USING_SOFT_I2C
+                    menuconfig RT_USING_SOFT_I2C0
+                        bool "Enable I2C0 Bus (software simulation)"
+                        default n
+                        if RT_USING_SOFT_I2C0
+                            comment "Please refer to the 'bsp_io.h' file to configure the pins"
+                            config RT_SOFT_I2C0_SCL_PIN
+                                hex "i2c0 scl pin number (hex)"
+                                range 0x0000 0xFFFF
+                                default 0x202
+                            config RT_SOFT_I2C0_SDA_PIN
+                                hex "i2c0 sda pin number (hex)"
+                                range 0x0000 0xFFFF
+                                default 0x203
+                            config RT_SOFT_I2C0_BUS_NAME
+                                string "Bus name"
+                                default "i2c0"
+                            config RT_SOFT_I2C0_TIMING_DELAY
+                                int "Timing delay (us)"
+                                range 0 32767
+                                default 10
+                            config RT_SOFT_I2C0_TIMING_TIMEOUT
+                                int "Timing timeout (tick)"
+                                range 0 32767
+                                default 10
+                        endif
+                    
+                    menuconfig RT_USING_SOFT_I2C1
+                        bool "Enable I2C1 Bus (software simulation)"
+                        default n
+                        if RT_USING_SOFT_I2C1
+                            comment "Please refer to the 'bsp_io.h' file to configure the pins"
+                            config RT_SOFT_I2C1_SCL_PIN
+                                hex "i2c1 scl pin number (hex)"
+                                range 0x0000 0xFFFF
+                                default 0x202
+                            config RT_SOFT_I2C1_SDA_PIN
+                                hex "i2c1 sda pin number (hex)"
+                                range 0x0000 0xFFFF
+                                default 0x203
+                            config RT_SOFT_I2C1_BUS_NAME
+                                string "Bus name"
+                                default "i2c1"
+                            config RT_SOFT_I2C1_TIMING_DELAY
+                                int "Timing delay (us)"
+                                range 0 32767
+                                default 10
+                            config RT_SOFT_I2C1_TIMING_TIMEOUT
+                                int "Timing timeout (tick)"
+                                range 0 32767
+                                default 10
+                        endif
+                endif
+        endif
 
         menuconfig BSP_USING_ADC
             bool "Enable ADC"

+ 140 - 12
bsp/renesas/ra6m3-hmi-board/rtconfig.h

@@ -1,11 +1,66 @@
 #ifndef RT_CONFIG_H__
 #define RT_CONFIG_H__
 
-/* Automatically generated file; DO NOT EDIT. */
-/* RT-Thread Configuration */
-
 /* RT-Thread Kernel */
 
+/* klibc options */
+
+/* rt_vsnprintf options */
+
+/* end of rt_vsnprintf options */
+
+/* rt_vsscanf options */
+
+/* end of rt_vsscanf options */
+
+/* rt_memset options */
+
+/* end of rt_memset options */
+
+/* rt_memcpy options */
+
+/* end of rt_memcpy options */
+
+/* rt_memmove options */
+
+/* end of rt_memmove options */
+
+/* rt_memcmp options */
+
+/* end of rt_memcmp options */
+
+/* rt_strstr options */
+
+/* end of rt_strstr options */
+
+/* rt_strcasecmp options */
+
+/* end of rt_strcasecmp options */
+
+/* rt_strncpy options */
+
+/* end of rt_strncpy options */
+
+/* rt_strcpy options */
+
+/* end of rt_strcpy options */
+
+/* rt_strncmp options */
+
+/* end of rt_strncmp options */
+
+/* rt_strcmp options */
+
+/* end of rt_strcmp options */
+
+/* rt_strlen options */
+
+/* end of rt_strlen options */
+
+/* rt_strnlen options */
+
+/* end of rt_strnlen options */
+/* end of klibc options */
 #define RT_NAME_MAX 8
 #define RT_CPUS_NR 1
 #define RT_ALIGN_SIZE 8
@@ -22,12 +77,11 @@
 #define RT_TIMER_THREAD_PRIO 4
 #define RT_TIMER_THREAD_STACK_SIZE 512
 
-/* kservice optimization */
-
-
-/* klibc optimization */
+/* kservice options */
 
+/* end of kservice options */
 #define RT_USING_DEBUG
+#define RT_DEBUGING_ASSERT
 #define RT_DEBUGING_COLOR
 #define RT_DEBUGING_CONTEXT
 
@@ -38,18 +92,21 @@
 #define RT_USING_EVENT
 #define RT_USING_MAILBOX
 #define RT_USING_MESSAGEQUEUE
+/* end of Inter-Thread communication */
 
 /* Memory Management */
 
 #define RT_USING_SMALL_MEM
 #define RT_USING_SMALL_MEM_AS_HEAP
 #define RT_USING_HEAP
+/* end of Memory Management */
 #define RT_USING_DEVICE
 #define RT_USING_CONSOLE
 #define RT_CONSOLEBUF_SIZE 128
 #define RT_CONSOLE_DEVICE_NAME "uart9"
 #define RT_VER_NUM 0x50200
 #define RT_BACKTRACE_LEVEL_MAX_NR 32
+/* end of RT-Thread Kernel */
 #define RT_USING_HW_ATOMIC
 #define RT_USING_CPU_FFS
 #define ARCH_ARM
@@ -79,6 +136,7 @@
 
 /* DFS: device virtual file system */
 
+/* end of DFS: device virtual file system */
 
 /* Device Drivers */
 
@@ -88,9 +146,7 @@
 #define RT_USING_SERIAL_V2
 #define RT_SERIAL_USING_DMA
 #define RT_USING_PIN
-
-/* Using USB */
-
+/* end of Device Drivers */
 
 /* C/C++ and POSIX layer */
 
@@ -102,6 +158,8 @@
 #define RT_LIBC_TZ_DEFAULT_HOUR 8
 #define RT_LIBC_TZ_DEFAULT_MIN 0
 #define RT_LIBC_TZ_DEFAULT_SEC 0
+/* end of Timezone and Daylight Saving Time */
+/* end of ISO-ANSI C layer */
 
 /* POSIX (Portable Operating System Interface) layer */
 
@@ -111,18 +169,30 @@
 
 /* Socket is in the 'Network' category */
 
+/* end of Interprocess Communication (IPC) */
+/* end of POSIX (Portable Operating System Interface) layer */
+/* end of C/C++ and POSIX layer */
 
 /* Network */
 
+/* end of Network */
 
 /* Memory protection */
 
+/* end of Memory protection */
 
 /* Utilities */
 
+/* end of Utilities */
+
+/* Using USB legacy version */
+
+/* end of Using USB legacy version */
+/* end of RT-Thread Components */
 
 /* RT-Thread Utestcases */
 
+/* end of RT-Thread Utestcases */
 
 /* RT-Thread online packages */
 
@@ -133,119 +203,173 @@
 
 /* Marvell WiFi */
 
+/* end of Marvell WiFi */
 
 /* Wiced WiFi */
 
+/* end of Wiced WiFi */
 
 /* CYW43012 WiFi */
 
+/* end of CYW43012 WiFi */
 
 /* BL808 WiFi */
 
+/* end of BL808 WiFi */
 
 /* CYW43439 WiFi */
 
+/* end of CYW43439 WiFi */
+/* end of Wi-Fi */
 
 /* IoT Cloud */
 
+/* end of IoT Cloud */
+/* end of IoT - internet of things */
 
 /* security packages */
 
+/* end of security packages */
 
 /* language packages */
 
 /* JSON: JavaScript Object Notation, a lightweight data-interchange format */
 
+/* end of JSON: JavaScript Object Notation, a lightweight data-interchange format */
 
 /* XML: Extensible Markup Language */
 
+/* end of XML: Extensible Markup Language */
+/* end of language packages */
 
 /* multimedia packages */
 
 /* LVGL: powerful and easy-to-use embedded GUI library */
 
+/* end of LVGL: powerful and easy-to-use embedded GUI library */
 
 /* u8g2: a monochrome graphic library */
 
+/* end of u8g2: a monochrome graphic library */
+/* end of multimedia packages */
 
 /* tools packages */
 
+/* end of tools packages */
 
 /* system packages */
 
 /* enhanced kernel services */
 
+/* end of enhanced kernel services */
 
 /* acceleration: Assembly language or algorithmic acceleration packages */
 
+/* end of acceleration: Assembly language or algorithmic acceleration packages */
 
 /* CMSIS: ARM Cortex-M Microcontroller Software Interface Standard */
 
+/* end of CMSIS: ARM Cortex-M Microcontroller Software Interface Standard */
 
 /* Micrium: Micrium software products porting for RT-Thread */
 
+/* end of Micrium: Micrium software products porting for RT-Thread */
+/* end of system packages */
 
 /* peripheral libraries and drivers */
 
-/* sensors drivers */
+/* HAL & SDK Drivers */
 
+/* STM32 HAL & SDK Drivers */
 
-/* touch drivers */
+/* end of STM32 HAL & SDK Drivers */
 
+/* Infineon HAL Packages */
+
+/* end of Infineon HAL Packages */
 
 /* Kendryte SDK */
 
+/* end of Kendryte SDK */
+/* end of HAL & SDK Drivers */
+
+/* sensors drivers */
+
+/* end of sensors drivers */
+
+/* touch drivers */
+
+/* end of touch drivers */
+/* end of peripheral libraries and drivers */
 
 /* AI packages */
 
+/* end of AI packages */
 
 /* Signal Processing and Control Algorithm Packages */
 
+/* end of Signal Processing and Control Algorithm Packages */
 
 /* miscellaneous packages */
 
 /* project laboratory */
 
+/* end of project laboratory */
+
 /* samples: kernel and components samples */
 
+/* end of samples: kernel and components samples */
 
 /* entertainment: terminal games and other interesting software packages */
 
+/* end of entertainment: terminal games and other interesting software packages */
+/* end of miscellaneous packages */
 
 /* Arduino libraries */
 
 
 /* Projects and Demos */
 
+/* end of Projects and Demos */
 
 /* Sensors */
 
+/* end of Sensors */
 
 /* Display */
 
+/* end of Display */
 
 /* Timing */
 
+/* end of Timing */
 
 /* Data Processing */
 
+/* end of Data Processing */
 
 /* Data Storage */
 
 /* Communication */
 
+/* end of Communication */
 
 /* Device Control */
 
+/* end of Device Control */
 
 /* Other */
 
+/* end of Other */
 
 /* Signal IO */
 
+/* end of Signal IO */
 
 /* Uncategorized */
 
+/* end of Arduino libraries */
+/* end of RT-Thread online packages */
 #define SOC_FAMILY_RENESAS
 #define SOC_SERIES_R7FA6M3
 
@@ -255,6 +379,7 @@
 
 /* Onboard Peripheral Drivers */
 
+/* end of Onboard Peripheral Drivers */
 
 /* On-chip Peripheral Drivers */
 
@@ -263,8 +388,11 @@
 #define BSP_USING_UART9
 #define BSP_UART9_RX_BUFSIZE 256
 #define BSP_UART9_TX_BUFSIZE 0
+/* end of On-chip Peripheral Drivers */
 
 /* Board extended module Drivers */
 
+/* end of Board extended module Drivers */
+/* end of Hardware Drivers Config */
 
 #endif

+ 219 - 195
components/drivers/i2c/Kconfig

@@ -17,203 +17,227 @@ if RT_USING_I2C
             default n
     endif
 
-    config RT_USING_SOFT_I2C
+    menuconfig RT_USING_SOFT_I2C
         bool "Use GPIO to soft simulate I2C"
         default n
         select RT_USING_PIN
         select RT_USING_I2C_BITOPS
-    if RT_USING_SOFT_I2C
-        config RT_USING_SOFT_I2C1
-            bool "Enable I2C1 Bus (software simulation)"
-            default y
-            if RT_USING_SOFT_I2C1
-                config RT_SOFT_I2C1_SCL_PIN
-                    int "SCL pin number"
-                    range 0 32767
-                    default 1
-                config RT_SOFT_I2C1_SDA_PIN
-                    int "SDA pin number"
-                    range 0 32767
-                    default 2
-                config RT_SOFT_I2C1_BUS_NAME
-                    string "Bus name"
-                    default "i2c1"
-                config RT_SOFT_I2C1_TIMING_DELAY
-                    int "Timing delay (us)"
-                    range 0 32767
-                    default 10
-                config RT_SOFT_I2C1_TIMING_TIMEOUT
-                    int "Timing timeout (tick)"
-                    range 0 32767
-                    default 10
-            endif
-        config RT_USING_SOFT_I2C2
-            bool "Enable I2C2 Bus (software simulation)"
-            default n
-            if RT_USING_SOFT_I2C2
-                config RT_SOFT_I2C2_SCL_PIN
-                    int "SCL pin number"
-                    range 0 32767
-                    default 3
-                config RT_SOFT_I2C2_SDA_PIN
-                    int "SDA pin number"
-                    range 0 32767
-                    default 4
-                config RT_SOFT_I2C2_BUS_NAME
-                    string "Bus name"
-                    default "i2c2"
-                config RT_SOFT_I2C2_TIMING_DELAY
-                    int "Timing delay (us)"
-                    range 0 32767
-                    default 10
-                config RT_SOFT_I2C2_TIMING_TIMEOUT
-                    int "Timing timeout (tick)"
-                    range 0 32767
-                    default 10
-            endif
-        config RT_USING_SOFT_I2C3
-            bool "Enable I2C3 Bus (software simulation)"
-            default n
-            if RT_USING_SOFT_I2C3
-                config RT_SOFT_I2C3_SCL_PIN
-                    int "SCL pin number"
-                    range 0 32767
-                    default 5
-                config RT_SOFT_I2C3_SDA_PIN
-                    int "SDA pin number"
-                    range 0 32767
-                    default 6
-                config RT_SOFT_I2C3_BUS_NAME
-                    string "Bus name"
-                    default "i2c3"
-                config RT_SOFT_I2C3_TIMING_DELAY
-                    int "Timing delay (us)"
-                    range 0 32767
-                    default 10
-                config RT_SOFT_I2C3_TIMING_TIMEOUT
-                    int "Timing timeout (tick)"
-                    range 0 32767
-                    default 10
-            endif
-        config RT_USING_SOFT_I2C4
-            bool "Enable I2C4 Bus (software simulation)"
-            default n
-            if RT_USING_SOFT_I2C4
-                config RT_SOFT_I2C4_SCL_PIN
-                    int "SCL pin number"
-                    range 0 32767
-                    default 7
-                config RT_SOFT_I2C4_SDA_PIN
-                    int "SDA pin number"
-                    range 0 32767
-                    default 8
-                config RT_SOFT_I2C4_BUS_NAME
-                    string "Bus name"
-                    default "i2c4"
-                config RT_SOFT_I2C4_TIMING_DELAY
-                    int "Timing delay (us)"
-                    range 0 32767
-                    default 10
-                config RT_SOFT_I2C4_TIMING_TIMEOUT
-                    int "Timing timeout (tick)"
-                    range 0 32767
-                    default 10
-            endif
-        config RT_USING_SOFT_I2C5
-            bool "Enable I2C5 Bus (software simulation)"
-            default n
-            if RT_USING_SOFT_I2C5
-                config RT_SOFT_I2C5_SCL_PIN
-                    int "SCL pin number"
-                    range 0 32767
-                    default 9
-                config RT_SOFT_I2C5_SDA_PIN
-                    int "SDA pin number"
-                    range 0 32767
-                    default 10
-                config RT_SOFT_I2C5_BUS_NAME
-                    string "Bus name"
-                    default "i2c5"
-                config RT_SOFT_I2C5_TIMING_DELAY
-                    int "Timing delay (us)"
-                    range 0 32767
-                    default 10
-                config RT_SOFT_I2C5_TIMING_TIMEOUT
-                    int "Timing timeout (tick)"
-                    range 0 32767
-                    default 10
-            endif
-        config RT_USING_SOFT_I2C6
-            bool "Enable I2C6 Bus (software simulation)"
-            default n
-            if RT_USING_SOFT_I2C6
-                config RT_SOFT_I2C6_SCL_PIN
-                    int "SCL pin number"
-                    range 0 32767
-                    default 11
-                config RT_SOFT_I2C6_SDA_PIN
-                    int "SDA pin number"
-                    range 0 32767
-                    default 12
-                config RT_SOFT_I2C6_BUS_NAME
-                    string "Bus name"
-                    default "i2c6"
-                config RT_SOFT_I2C6_TIMING_DELAY
-                    int "Timing delay (us)"
-                    range 0 32767
-                    default 10
-                config RT_SOFT_I2C6_TIMING_TIMEOUT
-                    int "Timing timeout (tick)"
-                    range 0 32767
-                    default 10
-            endif
-        config RT_USING_SOFT_I2C7
-            bool "Enable I2C7 Bus (software simulation)"
-            default n
-            if RT_USING_SOFT_I2C7
-                config RT_SOFT_I2C7_SCL_PIN
-                    int "SCL pin number"
-                    range 0 32767
-                    default 13
-                config RT_SOFT_I2C7_SDA_PIN
-                    int "SDA pin number"
-                    range 0 32767
-                    default 14
-                config RT_SOFT_I2C7_BUS_NAME
-                    string "Bus name"
-                    default "i2c7"
-                config RT_SOFT_I2C7_TIMING_DELAY
-                    int "Timing delay (us)"
-                    range 0 32767
-                    default 10
-                config RT_SOFT_I2C7_TIMING_TIMEOUT
-                    int "Timing timeout (tick)"
-                    range 0 32767
-                    default 10
-            endif
-        config RT_USING_SOFT_I2C8
-            bool "Enable I2C8 Bus (software simulation)"
-            default n
-            if RT_USING_SOFT_I2C8
-                config RT_SOFT_I2C8_SCL_PIN
-                    int "SCL pin number"
-                    range 0 32767
-                    default 15
-                config RT_SOFT_I2C8_SDA_PIN
-                    int "SDA pin number"
-                    range 0 32767
-                    default 16
-                config RT_SOFT_I2C8_BUS_NAME
-                    string "Bus name"
-                    default "i2c8"
-                config RT_SOFT_I2C8_TIMING_DELAY
-                    int "Timing delay (us)"
-                    range 0 32767
-                    default 10
-                config RT_SOFT_I2C8_TIMING_TIMEOUT
-                    int "Timing timeout (tick)"
-                    range 0 32767
-                    default 10
-            endif
-    endif
+        if RT_USING_SOFT_I2C
+            menuconfig RT_USING_SOFT_I2C0
+                bool "Enable I2C0 Bus (software simulation)"
+                default y
+                if RT_USING_SOFT_I2C0
+                    config RT_SOFT_I2C0_SCL_PIN
+                        int "SCL pin number"
+                        range 0 32767
+                        default 1
+                    config RT_SOFT_I2C0_SDA_PIN
+                        int "SDA pin number"
+                        range 0 32767
+                        default 2
+                    config RT_SOFT_I2C0_BUS_NAME
+                        string "Bus name"
+                        default "i2c0"
+                    config RT_SOFT_I2C0_TIMING_DELAY
+                        int "Timing delay (us)"
+                        range 0 32767
+                        default 10
+                    config RT_SOFT_I2C0_TIMING_TIMEOUT
+                        int "Timing timeout (tick)"
+                        range 0 32767
+                        default 10
+                endif
+            menuconfig RT_USING_SOFT_I2C1
+                bool "Enable I2C1 Bus (software simulation)"
+                default y
+                if RT_USING_SOFT_I2C1
+                    config RT_SOFT_I2C1_SCL_PIN
+                        int "SCL pin number"
+                        range 0 32767
+                        default 3
+                    config RT_SOFT_I2C1_SDA_PIN
+                        int "SDA pin number"
+                        range 0 32767
+                        default 4
+                    config RT_SOFT_I2C1_BUS_NAME
+                        string "Bus name"
+                        default "i2c1"
+                    config RT_SOFT_I2C1_TIMING_DELAY
+                        int "Timing delay (us)"
+                        range 0 32767
+                        default 10
+                    config RT_SOFT_I2C1_TIMING_TIMEOUT
+                        int "Timing timeout (tick)"
+                        range 0 32767
+                        default 10
+                endif
+            menuconfig RT_USING_SOFT_I2C2
+                bool "Enable I2C2 Bus (software simulation)"
+                default n
+                if RT_USING_SOFT_I2C2
+                    config RT_SOFT_I2C2_SCL_PIN
+                        int "SCL pin number"
+                        range 0 32767
+                        default 5
+                    config RT_SOFT_I2C2_SDA_PIN
+                        int "SDA pin number"
+                        range 0 32767
+                        default 6
+                    config RT_SOFT_I2C2_BUS_NAME
+                        string "Bus name"
+                        default "i2c2"
+                    config RT_SOFT_I2C2_TIMING_DELAY
+                        int "Timing delay (us)"
+                        range 0 32767
+                        default 10
+                    config RT_SOFT_I2C2_TIMING_TIMEOUT
+                        int "Timing timeout (tick)"
+                        range 0 32767
+                        default 10
+                endif
+            menuconfig RT_USING_SOFT_I2C3
+                bool "Enable I2C3 Bus (software simulation)"
+                default n
+                if RT_USING_SOFT_I2C3
+                    config RT_SOFT_I2C3_SCL_PIN
+                        int "SCL pin number"
+                        range 0 32767
+                        default 7
+                    config RT_SOFT_I2C3_SDA_PIN
+                        int "SDA pin number"
+                        range 0 32767
+                        default 8
+                    config RT_SOFT_I2C3_BUS_NAME
+                        string "Bus name"
+                        default "i2c3"
+                    config RT_SOFT_I2C3_TIMING_DELAY
+                        int "Timing delay (us)"
+                        range 0 32767
+                        default 10
+                    config RT_SOFT_I2C3_TIMING_TIMEOUT
+                        int "Timing timeout (tick)"
+                        range 0 32767
+                        default 10
+                endif
+            menuconfig RT_USING_SOFT_I2C4
+                bool "Enable I2C4 Bus (software simulation)"
+                default n
+                if RT_USING_SOFT_I2C4
+                    config RT_SOFT_I2C4_SCL_PIN
+                        int "SCL pin number"
+                        range 0 32767
+                        default 9
+                    config RT_SOFT_I2C4_SDA_PIN
+                        int "SDA pin number"
+                        range 0 32767
+                        default 10
+                    config RT_SOFT_I2C4_BUS_NAME
+                        string "Bus name"
+                        default "i2c4"
+                    config RT_SOFT_I2C4_TIMING_DELAY
+                        int "Timing delay (us)"
+                        range 0 32767
+                        default 10
+                    config RT_SOFT_I2C4_TIMING_TIMEOUT
+                        int "Timing timeout (tick)"
+                        range 0 32767
+                        default 10
+                endif
+            menuconfig RT_USING_SOFT_I2C5
+                bool "Enable I2C5 Bus (software simulation)"
+                default n
+                if RT_USING_SOFT_I2C5
+                    config RT_SOFT_I2C5_SCL_PIN
+                        int "SCL pin number"
+                        range 0 32767
+                        default 11
+                    config RT_SOFT_I2C5_SDA_PIN
+                        int "SDA pin number"
+                        range 0 32767
+                        default 12
+                    config RT_SOFT_I2C5_BUS_NAME
+                        string "Bus name"
+                        default "i2c5"
+                    config RT_SOFT_I2C5_TIMING_DELAY
+                        int "Timing delay (us)"
+                        range 0 32767
+                        default 10
+                    config RT_SOFT_I2C5_TIMING_TIMEOUT
+                        int "Timing timeout (tick)"
+                        range 0 32767
+                        default 10
+                endif
+            menuconfig RT_USING_SOFT_I2C6
+                bool "Enable I2C6 Bus (software simulation)"
+                default n
+                if RT_USING_SOFT_I2C6
+                    config RT_SOFT_I2C6_SCL_PIN
+                        int "SCL pin number"
+                        range 0 32767
+                        default 13
+                    config RT_SOFT_I2C6_SDA_PIN
+                        int "SDA pin number"
+                        range 0 32767
+                        default 14
+                    config RT_SOFT_I2C6_BUS_NAME
+                        string "Bus name"
+                        default "i2c6"
+                    config RT_SOFT_I2C6_TIMING_DELAY
+                        int "Timing delay (us)"
+                        range 0 32767
+                        default 10
+                    config RT_SOFT_I2C6_TIMING_TIMEOUT
+                        int "Timing timeout (tick)"
+                        range 0 32767
+                        default 10
+                endif
+            menuconfig RT_USING_SOFT_I2C7
+                bool "Enable I2C7 Bus (software simulation)"
+                default n
+                if RT_USING_SOFT_I2C7
+                    config RT_SOFT_I2C7_SCL_PIN
+                        int "SCL pin number"
+                        range 0 32767
+                        default 15
+                    config RT_SOFT_I2C7_SDA_PIN
+                        int "SDA pin number"
+                        range 0 32767
+                        default 16
+                    config RT_SOFT_I2C7_BUS_NAME
+                        string "Bus name"
+                        default "i2c7"
+                    config RT_SOFT_I2C7_TIMING_DELAY
+                        int "Timing delay (us)"
+                        range 0 32767
+                        default 10
+                    config RT_SOFT_I2C7_TIMING_TIMEOUT
+                        int "Timing timeout (tick)"
+                        range 0 32767
+                        default 10
+                endif
+            menuconfig RT_USING_SOFT_I2C8
+                bool "Enable I2C8 Bus (software simulation)"
+                default n
+                if RT_USING_SOFT_I2C8
+                    config RT_SOFT_I2C8_SCL_PIN
+                        int "SCL pin number"
+                        range 0 32767
+                        default 17
+                    config RT_SOFT_I2C8_SDA_PIN
+                        int "SDA pin number"
+                        range 0 32767
+                        default 18
+                    config RT_SOFT_I2C8_BUS_NAME
+                        string "Bus name"
+                        default "i2c8"
+                    config RT_SOFT_I2C8_TIMING_DELAY
+                        int "Timing delay (us)"
+                        range 0 32767
+                        default 10
+                    config RT_SOFT_I2C8_TIMING_TIMEOUT
+                        int "Timing timeout (tick)"
+                        range 0 32767
+                        default 10
+                endif
+        endif
 endif

+ 11 - 1
components/drivers/i2c/dev_soft_i2c.c

@@ -11,7 +11,8 @@
 #include <rtdevice.h>
 
 #ifdef RT_USING_SOFT_I2C
-#if !defined(RT_USING_SOFT_I2C1) && !defined(RT_USING_SOFT_I2C2) &&\
+#if !defined(RT_USING_SOFT_I2C0) &&\
+    !defined(RT_USING_SOFT_I2C1) && !defined(RT_USING_SOFT_I2C2) &&\
     !defined(RT_USING_SOFT_I2C3) && !defined(RT_USING_SOFT_I2C4) &&\
     !defined(RT_USING_SOFT_I2C5) && !defined(RT_USING_SOFT_I2C6) &&\
     !defined(RT_USING_SOFT_I2C7) && !defined(RT_USING_SOFT_I2C8)
@@ -48,6 +49,15 @@ struct rt_soft_i2c
 
 struct soft_i2c_config i2c_cfg[] =
 {
+    #ifdef RT_USING_SOFT_I2C0
+    {
+        .scl_pin        = RT_SOFT_I2C0_SCL_PIN,
+        .sda_pin        = RT_SOFT_I2C0_SDA_PIN,
+        .bus_name       = RT_SOFT_I2C0_BUS_NAME,
+        .timing_delay   = RT_SOFT_I2C0_TIMING_DELAY,
+        .timing_timeout = RT_SOFT_I2C0_TIMING_TIMEOUT,
+    },
+    #endif  //RT_USING_SOFT_I2C0
     #ifdef RT_USING_SOFT_I2C1
     {
         .scl_pin        = RT_SOFT_I2C1_SCL_PIN,