From 317dcd07933552b993c8c97c4ab777ef1c794a08 Mon Sep 17 00:00:00 2001 From: CYFS <2805686936@qq.com> Date: Sun, 17 May 2026 22:14:19 +0800 Subject: [PATCH] [bsp][drivers][soft_i2c]:merge the software i2c driver --- .../.ci/attachconfig/ci.attachconfig.yml | 9 +- bsp/ESP32_C3/drivers/Kconfig | 20 +- bsp/ESP32_C3/drivers/SConscript | 3 - bsp/ESP32_C3/drivers/drv_sw_i2c.c | 199 ------------ bsp/ESP32_C3/drivers/drv_sw_i2c.h | 34 -- bsp/Infineon/libraries/HAL_Drivers/SConscript | 4 - .../libraries/HAL_Drivers/drv_soft_i2c.c | 192 ------------ .../libraries/HAL_Drivers/drv_soft_i2c.h | 43 --- .../.ci/attachconfig/ci.attachconfig.yml | 8 + .../libraries/templates/PSOC62/board/Kconfig | 23 -- .../.ci/attachconfig/ci.attachconfig.yml | 8 + .../psoc6-cy8ckit-062-BLE/board/Kconfig | 23 -- .../.ci/attachconfig/ci.attachconfig.yml | 8 + .../psoc6-cy8ckit-062-WIFI-BT/board/Kconfig | 23 -- .../.ci/attachconfig/ci.attachconfig.yml | 8 + .../psoc6-cy8ckit-062S2-43012/board/Kconfig | 23 -- .../.ci/attachconfig/ci.attachconfig.yml | 8 + .../psoc6-cy8ckit-062s4/board/Kconfig | 23 -- .../.ci/attachconfig/ci.attachconfig.yml | 8 + .../psoc6-cy8cproto-062S3-4343W/board/Kconfig | 23 -- .../.ci/attachconfig/ci.attachconfig.yml | 8 + .../psoc6-evaluationkit-062S2/board/Kconfig | 25 +- .../.ci/attachconfig/ci.attachconfig.yml | 8 + bsp/acm32/acm32f0x0-nucleo/drivers/Kconfig | 23 -- .../acm32f0x0-nucleo/drivers/drv_soft_i2c.c | 163 ---------- .../acm32f0x0-nucleo/drivers/drv_soft_i2c.h | 44 --- .../.ci/attachconfig/ci.attachconfig.yml | 8 + bsp/airm2m/air32f103/board/Kconfig | 22 -- bsp/airm2m/air32f103/libraries/SConscript | 3 - .../libraries/rt_drivers/drv_soft_i2c.c | 231 -------------- .../libraries/rt_drivers/drv_soft_i2c.h | 69 ----- .../.ci/attachconfig/ci.attachconfig.yml | 16 + bsp/apm32/apm32e103ze-evalboard/board/Kconfig | 53 +--- .../.ci/attachconfig/ci.attachconfig.yml | 16 + bsp/apm32/apm32e103ze-tinyboard/board/Kconfig | 48 --- .../.ci/attachconfig/ci.attachconfig.yml | 12 + bsp/apm32/apm32f030r8-miniboard/board/Kconfig | 35 --- .../.ci/attachconfig/ci.attachconfig.yml | 12 + bsp/apm32/apm32f051r8-evalboard/board/Kconfig | 40 +-- .../.ci/attachconfig/ci.attachconfig.yml | 16 + bsp/apm32/apm32f072vb-miniboard/board/Kconfig | 48 --- .../.ci/attachconfig/ci.attachconfig.yml | 16 + bsp/apm32/apm32f091vc-miniboard/board/Kconfig | 48 --- .../.ci/attachconfig/ci.attachconfig.yml | 12 + bsp/apm32/apm32f103vb-miniboard/board/Kconfig | 35 --- .../.ci/attachconfig/ci.attachconfig.yml | 8 + .../apm32f103xe-minibroard/board/Kconfig | 17 - .../.ci/attachconfig/ci.attachconfig.yml | 12 + bsp/apm32/apm32f107vc-evalboard/board/Kconfig | 40 +-- .../.ci/attachconfig/ci.attachconfig.yml | 8 + .../apm32f407ig-minibroard/board/Kconfig | 17 - .../.ci/attachconfig/ci.attachconfig.yml | 12 + bsp/apm32/apm32f407zg-evalboard/board/Kconfig | 35 --- .../.ci/attachconfig/ci.attachconfig.yml | 16 + bsp/apm32/apm32s103vb-miniboard/board/Kconfig | 48 --- bsp/apm32/libraries/Drivers/SConscript | 4 - bsp/apm32/libraries/Drivers/drv_soft_i2c.c | 255 --------------- .../.ci/attachconfig/ci.attachconfig.yml | 16 + bsp/at32/at32a403a-start/board/Kconfig | 45 --- .../.ci/attachconfig/ci.attachconfig.yml | 12 + bsp/at32/at32a423-start/board/Kconfig | 33 -- .../.ci/attachconfig/ci.attachconfig.yml | 16 + bsp/at32/at32f402-start/board/Kconfig | 45 --- .../.ci/attachconfig/ci.attachconfig.yml | 16 + bsp/at32/at32f403a-start/board/Kconfig | 45 --- .../.ci/attachconfig/ci.attachconfig.yml | 16 + bsp/at32/at32f405-start/board/Kconfig | 45 --- .../.ci/attachconfig/ci.attachconfig.yml | 16 + bsp/at32/at32f407-start/board/Kconfig | 45 --- .../.ci/attachconfig/ci.attachconfig.yml | 12 + bsp/at32/at32f413-start/board/Kconfig | 33 -- .../.ci/attachconfig/ci.attachconfig.yml | 12 + bsp/at32/at32f415-start/board/Kconfig | 33 -- .../.ci/attachconfig/ci.attachconfig.yml | 12 + bsp/at32/at32f421-start/board/Kconfig | 34 +- .../.ci/attachconfig/ci.attachconfig.yml | 12 + bsp/at32/at32f423-start/board/Kconfig | 33 -- .../.ci/attachconfig/ci.attachconfig.yml | 12 + bsp/at32/at32f425-start/board/Kconfig | 33 -- .../.ci/attachconfig/ci.attachconfig.yml | 16 + bsp/at32/at32f435-start/board/Kconfig | 45 --- .../.ci/attachconfig/ci.attachconfig.yml | 16 + bsp/at32/at32f437-start/board/Kconfig | 45 --- .../.ci/attachconfig/ci.attachconfig.yml | 16 + bsp/at32/at32f455-start/board/Kconfig | 45 --- .../.ci/attachconfig/ci.attachconfig.yml | 16 + bsp/at32/at32f456-start/board/Kconfig | 45 --- .../.ci/attachconfig/ci.attachconfig.yml | 16 + bsp/at32/at32f457-start/board/Kconfig | 45 --- .../.ci/attachconfig/ci.attachconfig.yml | 12 + bsp/at32/at32m412-start/board/Kconfig | 34 +- .../.ci/attachconfig/ci.attachconfig.yml | 12 + bsp/at32/at32m416-start/board/Kconfig | 34 +- bsp/at32/libraries/rt_drivers/SConscript | 4 - bsp/at32/libraries/rt_drivers/drv_soft_i2c.c | 231 -------------- bsp/at32/libraries/rt_drivers/drv_soft_i2c.h | 61 ---- bsp/at91/at91sam9260/drivers/SConscript | 3 - bsp/at91/at91sam9260/drivers/at91_i2c_gpio.c | 114 ------- bsp/at91/at91sam9g45/drivers/SConscript | 4 - bsp/at91/at91sam9g45/drivers/at91_i2c_gpio.c | 114 ------- .../.ci/attachconfig/ci.attachconfig.yml | 8 + bsp/avr32/at32uc3a0256/Kconfig | 19 -- bsp/avr32/at32uc3a0256/board.c | 6 - bsp/avr32/drivers/SConscript | 3 - bsp/avr32/drivers/drv_soft_i2c.c | 180 ----------- bsp/avr32/drivers/drv_soft_i2c.h | 46 --- .../.ci/attachconfig/ci.attachconfig.yml | 8 + bsp/bluetrum/ab32vg1-ab-prougen/board/Kconfig | 18 -- bsp/bluetrum/libraries/hal_drivers/SConscript | 3 - .../libraries/hal_drivers/drv_soft_i2c.c | 224 -------------- .../libraries/hal_drivers/drv_soft_i2c.h | 72 ----- .../.ci/attachconfig/ci.attachconfig.yml | 8 + .../.ci/attachconfig/ci.attachconfig.yml | 8 + .../.ci/attachconfig/ci.attachconfig.yml | 8 + bsp/bouffalo_lab/libraries/Kconfig | 123 -------- .../libraries/rt_drivers/SConscript | 3 - .../libraries/rt_drivers/drv_soft_i2c.c | 291 ------------------ .../libraries/rt_drivers/drv_soft_i2c.h | 44 --- bsp/cvitek/c906_little/board/Kconfig | 1 - bsp/cvitek/cv18xx_risc-v/board/Kconfig | 1 - .../libraries/HAL_Drivers/SConscript | 4 - .../.ci/attachconfig/ci.attachconfig.yml | 8 + .../risc-v/gd32vf103r-start/board/Kconfig | 17 - .../.ci/attachconfig/ci.attachconfig.yml | 8 + bsp/gd32/risc-v/gd32vf103v-eval/board/Kconfig | 17 - .../risc-v/libraries/gd32_drivers/SConscript | 3 - .../libraries/gd32_drivers/drv_soft_i2c.c | 212 ------------- .../libraries/gd32_drivers/drv_soft_i2c.h | 78 ----- .../.ci/attachconfig/ci.attachconfig.yml | 13 +- bsp/hc32/ev_hc32f334_lqfp64/board/Kconfig | 18 -- .../.ci/attachconfig/ci.attachconfig.yml | 13 +- bsp/hc32/ev_hc32f448_lqfp80/board/Kconfig | 18 -- .../.ci/attachconfig/ci.attachconfig.yml | 13 +- bsp/hc32/ev_hc32f460_lqfp100_v2/board/Kconfig | 18 -- .../.ci/attachconfig/ci.attachconfig.yml | 13 +- bsp/hc32/ev_hc32f472_lqfp100/board/Kconfig | 18 -- .../.ci/attachconfig/ci.attachconfig.yml | 13 +- bsp/hc32/ev_hc32f4a0_lqfp176/board/Kconfig | 18 -- .../.ci/attachconfig/ci.attachconfig.yml | 13 +- bsp/hc32/ev_hc32f4a8_lqfp176/board/Kconfig | 18 -- .../.ci/attachconfig/ci.attachconfig.yml | 8 + bsp/hc32/lckfb-hc32f4a0-lqfp100/board/Kconfig | 18 -- bsp/hc32/libraries/hc32_drivers/SConscript | 3 - .../libraries/hc32_drivers/drv_soft_i2c.c | 264 ---------------- .../libraries/hc32_drivers/drv_soft_i2c.h | 103 ------- bsp/hc32/tests/SConscript | 2 +- bsp/hc32/tests/test_soft_i2c.c | 6 +- .../.ci/attachconfig/ci.attachconfig.yml | 8 + bsp/hc32l136/board/Kconfig | 17 - bsp/hc32l136/drivers/SConscript | 3 - .../.ci/attachconfig/ci.attachconfig.yml | 12 + bsp/hk32/hk32f030c8-mini/board/Kconfig | 36 --- bsp/hk32/libraries/rt_drivers/SConscript | 4 - bsp/hk32/libraries/rt_drivers/drv_soft_i2c.c | 232 -------------- bsp/hk32/libraries/rt_drivers/drv_soft_i2c.h | 69 ----- .../.ci/attachconfig/ci.attachconfig.yml | 16 + bsp/ht32/ht32f12366/board/Kconfig | 64 ---- .../.ci/attachconfig/ci.attachconfig.yml | 16 + bsp/ht32/ht32f52352/board/Kconfig | 64 ---- .../.ci/attachconfig/ci.attachconfig.yml | 20 +- bsp/ht32/ht32f53252/board/Kconfig | 64 ---- bsp/ht32/libraries/ht32_drivers/SConscript | 3 - .../libraries/ht32_drivers/drv_soft_i2c.c | 228 -------------- .../libraries/ht32_drivers/drv_soft_i2c.h | 30 -- bsp/k210/drivers/drv_i2c.c | 163 ---------- bsp/loongson/ls1cdev/drivers/drv_i2c.c | 114 ------- bsp/loongson/ls1cdev/drivers/drv_i2c.h | 17 - bsp/mm32f526x/.config | 4 +- bsp/mm32f526x/rtconfig.h | 4 +- .../libraries/n32_drivers/SConscript | 4 - .../libraries/n32_drivers/drv_i2c.c | 221 ------------- .../libraries/n32_drivers/drv_i2c.h | 51 --- .../.ci/attachconfig/ci.attachconfig.yml | 8 + .../n32gxx_lxx/n32g43xcl-stb/board/Kconfig | 18 -- .../.ci/attachconfig/ci.attachconfig.yml | 8 + .../n32gxx_lxx/n32g457qel-stb/board/Kconfig | 17 - .../.ci/attachconfig/ci.attachconfig.yml | 8 + .../n32gxx_lxx/n32g45xcl-stb/board/Kconfig | 17 - .../.ci/attachconfig/ci.attachconfig.yml | 8 + .../n32gxx_lxx/n32g45xml-stb/board/Kconfig | 17 - .../.ci/attachconfig/ci.attachconfig.yml | 8 + .../n32gxx_lxx/n32g45xrl-stb/board/Kconfig | 17 - .../.ci/attachconfig/ci.attachconfig.yml | 10 +- .../n32gxx_lxx/n32g45xvl-stb/board/Kconfig | 17 - .../.ci/attachconfig/ci.attachconfig.yml | 8 + .../n32gxx_lxx/n32g4frml-stb/board/Kconfig | 17 - .../.ci/attachconfig/ci.attachconfig.yml | 8 + .../n32gxx_lxx/n32l40xcl-stb/board/Kconfig | 18 -- .../.ci/attachconfig/ci.attachconfig.yml | 8 + bsp/n32/n32gxx_lxx/n32l436-evb/board/Kconfig | 18 -- .../.ci/attachconfig/ci.attachconfig.yml | 8 + .../n32gxx_lxx/n32l43xml-stb/board/Kconfig | 18 -- .../.ci/attachconfig/ci.attachconfig.yml | 8 + .../n32gxx_lxx/n32l43xrl-stb/board/Kconfig | 18 -- .../.ci/attachconfig/ci.attachconfig.yml | 8 + .../n32gxx_lxx/n32wb45xl-evb/board/Kconfig | 17 - .../libraries/N32_Drivers/drivers/SConscript | 4 - .../N32_Drivers/drivers/drv_soft_i2c.c | 187 ----------- .../N32_Drivers/drivers/drv_soft_i2c.h | 77 ----- .../.ci/attachconfig/ci.attachconfig.yml | 9 + bsp/n32/n32hxxx/n32h760zil7-stb/board/Kconfig | 18 -- bsp/n32g452xx/Libraries/rt_drivers/SConscript | 4 - .../Libraries/rt_drivers/drv_soft_i2c.c | 231 -------------- .../Libraries/rt_drivers/drv_soft_i2c.h | 69 ----- .../.ci/attachconfig/ci.attachconfig.yml | 8 + .../n32g452xx-mini-system/board/Kconfig | 17 - bsp/nuvoton/libraries/m031/rtt_port/Kconfig | 42 --- .../libraries/m031/rtt_port/drv_softi2c.c | 217 ------------- bsp/nuvoton/libraries/m2354/rtt_port/Kconfig | 41 --- .../libraries/m2354/rtt_port/drv_softi2c.c | 217 ------------- bsp/nuvoton/libraries/m460/rtt_port/Kconfig | 41 --- .../libraries/m460/rtt_port/drv_softi2c.c | 232 -------------- bsp/nuvoton/libraries/m480/rtt_port/Kconfig | 41 --- .../libraries/m480/rtt_port/drv_softi2c.c | 217 ------------- bsp/nuvoton/libraries/ma35/rtt_port/Kconfig | 41 --- .../libraries/ma35/rtt_port/drv_softi2c.c | 232 -------------- bsp/nuvoton/libraries/n9h30/rtt_port/Kconfig | 41 --- .../libraries/n9h30/rtt_port/drv_softi2c.c | 238 -------------- bsp/nuvoton/libraries/nuc980/rtt_port/Kconfig | 41 --- .../libraries/nuc980/rtt_port/drv_softi2c.c | 229 -------------- .../.ci/attachconfig/ci.attachconfig.yml | 12 + .../.ci/attachconfig/ci.attachconfig.yml | 12 + .../.ci/attachconfig/ci.attachconfig.yml | 12 + .../.ci/attachconfig/ci.attachconfig.yml | 12 + .../.ci/attachconfig/ci.attachconfig.yml | 12 + .../.ci/attachconfig/ci.attachconfig.yml | 12 + .../.ci/attachconfig/ci.attachconfig.yml | 12 + .../.ci/attachconfig/ci.attachconfig.yml | 12 + .../.ci/attachconfig/ci.attachconfig.yml | 12 + .../.ci/attachconfig/ci.attachconfig.yml | 12 + .../.ci/attachconfig/ci.attachconfig.yml | 12 + .../.ci/attachconfig/ci.attachconfig.yml | 12 + .../lpc/lpc54608-LPCXpresso/drivers/drv_i2c.c | 117 ------- .../lpc/lpc55sxx/Libraries/drivers/SConscript | 3 - .../lpc55sxx/Libraries/drivers/drv_soft_i2c.c | 213 ------------- .../lpc55sxx/Libraries/drivers/drv_soft_i2c.h | 50 --- .../.ci/attachconfig/ci.attachconfig.yml | 12 + .../lpc55sxx/lpc55s69_nxp_evk/board/Kconfig | 37 --- bsp/nxp/mcx/mcxc/Libraries/drivers/SConscript | 3 - bsp/nxp/mcx/mcxn/Libraries/drivers/SConscript | 3 - .../mcx/mcxn/Libraries/drivers/drv_soft_i2c.c | 228 -------------- .../.ci/attachconfig/ci.attachconfig.yml | 8 + bsp/nxp/mcx/mcxn/frdm-mcxn236/board/Kconfig | 22 -- bsp/raspberry-pico/Drivers/SConscript | 3 - bsp/raspberry-pico/Drivers/drv_soft_i2c.c | 189 ------------ bsp/raspberry-pico/Drivers/drv_soft_i2c.h | 46 --- .../.ci/attachconfig/ci.attachconfig.yml | 13 +- bsp/raspberry-pico/RP2040/board/Kconfig | 23 -- .../.ci/attachconfig/ci.attachconfig.yml | 8 + bsp/raspberry-pico/RP2350/board/Kconfig | 23 -- .../.ci/attachconfig/attachconfig.yml | 16 +- bsp/renesas/ra6m3-hmi-board/board/Kconfig | 62 ---- .../.ci/attachconfig/attachconfig.yml | 9 + bsp/renesas/ra8p1-titan-board/board/Kconfig | 27 +- .../.ci/attachconfig/ci.attachconfig.yml | 8 + bsp/renesas/rzn2l_etherkit/board/Kconfig | 17 - .../.ci/attachconfig/ci.attachconfig.yml | 8 + bsp/renesas/rzn2l_rsk/board/Kconfig | 17 - .../libraries/HAL_Drivers/drivers/SConscript | 4 - .../HAL_Drivers/drivers/drv_soft_i2c.c | 196 ------------ .../HAL_Drivers/drivers/drv_soft_i2c.h | 78 ----- .../.ci/attachconfig/ci.attachconfig.yml | 8 + .../templates/stm32l1xx/board/Kconfig | 21 +- .../.ci/attachconfig/ci.attachconfig.yml | 12 + .../templates/stm32wbxx/board/Kconfig | 38 --- .../.ci/attachconfig/ci.attachconfig.yml | 12 +- bsp/stm32/stm32f072-st-nucleo/board/Kconfig | 29 +- .../.ci/attachconfig/ci.attachconfig.yml | 9 + bsp/stm32/stm32f091-st-nucleo/board/Kconfig | 17 - .../.ci/attachconfig/ci.attachconfig.yml | 9 + bsp/stm32/stm32f103-100ask-pro/board/Kconfig | 21 +- .../.ci/attachconfig/ci.attachconfig.yml | 9 + bsp/stm32/stm32f103-atk-nano/board/Kconfig | 21 +- .../.ci/attachconfig/ci.attachconfig.yml | 9 + .../stm32f103-atk-warshipv3/board/Kconfig | 21 +- .../.ci/attachconfig/ci.attachconfig.yml | 9 +- bsp/stm32/stm32f103-blue-pill/board/Kconfig | 22 +- .../.ci/attachconfig/ci.attachconfig.yml | 9 + bsp/stm32/stm32f103-dofly-M3S/board/Kconfig | 22 +- .../.ci/attachconfig/ci.attachconfig.yml | 9 + .../stm32f103-fire-arbitrary/board/Kconfig | 21 +- .../.ci/attachconfig/ci.attachconfig.yml | 9 + .../stm32f103-gizwits-gokitv21/board/Kconfig | 16 - .../.ci/attachconfig/ci.attachconfig.yml | 9 + bsp/stm32/stm32f103-hw100k-ibox/board/Kconfig | 16 - .../.ci/attachconfig/ci.attachconfig.yml | 7 +- .../stm32f103-keysking-learning/board/Kconfig | 18 -- .../.ci/attachconfig/ci.attachconfig.yml | 9 + bsp/stm32/stm32f103-yf-ufun/board/Kconfig | 17 - .../.ci/attachconfig/ci.attachconfig.yml | 12 +- bsp/stm32/stm32f401-st-nucleo/board/Kconfig | 29 +- .../.ci/attachconfig/ci.attachconfig.yml | 12 +- .../stm32f401-weact-blackpill/board/Kconfig | 20 +- .../.ci/attachconfig/ci.attachconfig.yml | 9 + bsp/stm32/stm32f407-armfly-v5/board/Kconfig | 22 +- .../.ci/attachconfig/ci.attachconfig.yml | 12 + .../stm32f407-atk-explorer/board/Kconfig | 46 +-- .../.ci/attachconfig/ci.attachconfig.yml | 12 + .../stm32f407-fk407m2-zgt6/board/Kconfig | 36 --- .../.ci/attachconfig/ci.attachconfig.yml | 9 + .../stm32f407-lckfb-skystar/board/Kconfig | 22 -- .../.ci/attachconfig/ci.attachconfig.yml | 12 + bsp/stm32/stm32f407-micu/board/Kconfig | 56 +--- .../.ci/attachconfig/ci.attachconfig.yml | 12 +- .../stm32f407-robomaster-c/board/Kconfig | 22 +- .../.ci/attachconfig/ci.attachconfig.yml | 26 ++ bsp/stm32/stm32f407-rt-spark/board/Kconfig | 121 ++------ .../.ci/attachconfig/ci.attachconfig.yml | 9 + .../stm32f407-st-discovery/board/Kconfig | 16 - .../.ci/attachconfig/ci.attachconfig.yml | 12 +- bsp/stm32/stm32f410-st-nucleo/board/Kconfig | 23 +- .../.ci/attachconfig/ci.attachconfig.yml | 9 + bsp/stm32/stm32f411-atk-nano/board/Kconfig | 21 +- .../.ci/attachconfig/ci.attachconfig.yml | 12 +- bsp/stm32/stm32f411-st-nucleo/board/Kconfig | 23 +- .../.ci/attachconfig/ci.attachconfig.yml | 12 +- .../stm32f411-weact-blackpill/board/Kconfig | 67 +--- .../.ci/attachconfig/ci.attachconfig.yml | 9 + bsp/stm32/stm32f412-st-nucleo/board/Kconfig | 29 +- .../.ci/attachconfig/ci.attachconfig.yml | 11 +- bsp/stm32/stm32f413-st-nucleo/board/Kconfig | 18 -- .../.ci/attachconfig/ci.attachconfig.yml | 12 +- .../stm32f427-robomaster-a/board/Kconfig | 29 +- .../.ci/attachconfig/ci.attachconfig.yml | 10 +- bsp/stm32/stm32f429-armfly-v6/board/Kconfig | 21 +- .../.ci/attachconfig/ci.attachconfig.yml | 11 +- bsp/stm32/stm32f429-atk-apollo/board/Kconfig | 30 +- .../.ci/attachconfig/ci.attachconfig.yml | 11 +- .../stm32f429-fire-challenger/board/Kconfig | 22 +- .../.ci/attachconfig/ci.attachconfig.yml | 11 +- bsp/stm32/stm32f429-st-disco/board/Kconfig | 17 - .../.ci/attachconfig/ci.attachconfig.yml | 10 + bsp/stm32/stm32f469-st-disco/board/Kconfig | 27 +- .../.ci/attachconfig/ci.attachconfig.yml | 8 + bsp/stm32/stm32f746-st-nucleo/board/Kconfig | 17 - .../.ci/attachconfig/ci.attachconfig.yml | 12 + bsp/stm32/stm32f767-atk-apollo/board/Kconfig | 44 +-- .../.ci/attachconfig/ci.attachconfig.yml | 8 + .../board/Kconfig | 22 +- .../.ci/attachconfig/ci.attachconfig.yml | 9 + bsp/stm32/stm32g070-st-nucleo/board/Kconfig | 17 - .../.ci/attachconfig/ci.attachconfig.yml | 9 + bsp/stm32/stm32g071-st-nucleo/board/Kconfig | 17 - .../.ci/attachconfig/ci.attachconfig.yml | 12 +- bsp/stm32/stm32g474-st-nucleo/board/Kconfig | 20 +- .../.ci/attachconfig/ci.attachconfig.yml | 17 + bsp/stm32/stm32g491-st-nucleo/board/Kconfig | 51 --- .../.ci/attachconfig/ci.attachconfig.yml | 8 + bsp/stm32/stm32h503-st-nucleo/board/Kconfig | 20 +- .../.ci/attachconfig/ci.attachconfig.yml | 8 + bsp/stm32/stm32h563-st-nucleo/board/Kconfig | 20 +- .../.ci/attachconfig/ci.attachconfig.yml | 12 + bsp/stm32/stm32h743-atk-apollo/board/Kconfig | 47 +-- .../.ci/attachconfig/ci.attachconfig.yml | 12 + .../stm32h743-openmv-h7plus/board/Kconfig | 43 +-- .../.ci/attachconfig/ci.attachconfig.yml | 8 + .../stm32h750-armfly-h7-tool/board/Kconfig | 17 - .../.ci/attachconfig/ci.attachconfig.yml | 20 +- bsp/stm32/stm32h750-artpi/board/Kconfig | 63 +--- .../.ci/attachconfig/ci.attachconfig.yml | 12 + .../stm32h750-fk750m1-vbt6/board/Kconfig | 43 +-- .../.ci/attachconfig/ci.attachconfig.yml | 8 + .../board/Kconfig | 17 - .../.ci/attachconfig/ci.attachconfig.yml | 16 + bsp/stm32/stm32h7r7-artpi2/board/Kconfig | 54 ---- .../.ci/attachconfig/ci.attachconfig.yml | 16 + bsp/stm32/stm32h7s7-st-disco/board/Kconfig | 54 ---- .../.ci/attachconfig/ci.attachconfig.yml | 12 +- bsp/stm32/stm32l431-BearPi/board/Kconfig | 27 +- .../.ci/attachconfig/ci.attachconfig.yml | 8 + .../board/Kconfig | 17 - .../.ci/attachconfig/ci.attachconfig.yml | 17 + .../stm32l433-ali-startkit/board/Kconfig | 50 --- .../.ci/attachconfig/ci.attachconfig.yml | 9 + bsp/stm32/stm32l452-st-nucleo/board/Kconfig | 16 - .../.ci/attachconfig/ci.attachconfig.yml | 16 + bsp/stm32/stm32l475-atk-pandora/board/Kconfig | 88 ++---- .../.ci/attachconfig/ci.attachconfig.yml | 20 +- bsp/stm32/stm32l476-st-nucleo/board/Kconfig | 62 +--- .../.ci/attachconfig/ci.attachconfig.yml | 17 + .../stm32l496-ali-developer/board/Kconfig | 50 --- .../.ci/attachconfig/ci.attachconfig.yml | 13 + bsp/stm32/stm32l496-st-nucleo/board/Kconfig | 38 --- .../.ci/attachconfig/ci.attachconfig.yml | 13 + bsp/stm32/stm32l4r5-st-nucleo/board/Kconfig | 35 --- .../.ci/attachconfig/ci.attachconfig.yml | 9 + bsp/stm32/stm32l4r9-st-eval/board/Kconfig | 21 +- .../.ci/attachconfig/ci.attachconfig.yml | 20 ++ .../stm32mp157a-st-discovery/board/Kconfig | 76 +---- .../.ci/attachconfig/ci.attachconfig.yml | 16 + bsp/stm32/stm32mp157a-st-ev1/board/Kconfig | 66 +--- .../.ci/attachconfig/ci.attachconfig.yml | 8 + bsp/stm32/stm32u575-st-nucleo/board/Kconfig | 33 +- .../.ci/attachconfig/ci.attachconfig.yml | 12 + bsp/stm32/stm32wb55-st-nucleo/board/Kconfig | 38 --- .../libraries/SWM320_drivers/SConscript | 3 - .../libraries/SWM320_drivers/drv_soft_i2c.c | 241 --------------- .../libraries/SWM320_drivers/drv_soft_i2c.h | 19 -- .../libraries/SWM341_drivers/SConscript | 3 - .../libraries/SWM341_drivers/drv_soft_i2c.c | 219 ------------- .../libraries/SWM341_drivers/drv_soft_i2c.h | 18 -- .../.ci/attachconfig/ci.attachconfig.yml | 12 + bsp/synwit/swm320-mini/board/Kconfig | 37 --- .../.ci/attachconfig/ci.attachconfig.yml | 12 + bsp/synwit/swm341-mini/board/Kconfig | 40 +-- .../.ci/attachconfig/ci.attachconfig.yml | 8 + bsp/tae32f5300/drivers/Kconfig | 17 - .../.ci/attachconfig/ci.attachconfig.yml | 8 + bsp/tkm32F499/drivers/Kconfig | 17 - bsp/w60x/drivers/Kconfig | 18 -- bsp/w60x/drivers/SConscript | 3 - bsp/w60x/drivers/drv_soft_i2c.c | 222 ------------- bsp/w60x/drivers/drv_soft_i2c.h | 61 ---- .../risc-v/Libraries/ch32_drivers/SConscript | 3 - .../Libraries/ch32_drivers/drv_soft_i2c.c | 226 -------------- .../Libraries/ch32_drivers/drv_soft_i2c.h | 53 ---- .../.ci/attachconfig/ci.attachconfig.yml | 12 + bsp/wch/risc-v/ch32v208w-r0/board/Kconfig | 44 --- .../.ci/attachconfig/ci.attachconfig.yml | 13 +- bsp/wch/risc-v/ch32v307v-r1/board/Kconfig | 45 --- .../.ci/attachconfig/ci.attachconfig.yml | 13 +- bsp/wch/risc-v/yd-ch32v307vct6/board/Kconfig | 43 --- 422 files changed, 2063 insertions(+), 13856 deletions(-) delete mode 100644 bsp/ESP32_C3/drivers/drv_sw_i2c.c delete mode 100644 bsp/ESP32_C3/drivers/drv_sw_i2c.h delete mode 100644 bsp/Infineon/libraries/HAL_Drivers/drv_soft_i2c.c delete mode 100644 bsp/Infineon/libraries/HAL_Drivers/drv_soft_i2c.h create mode 100644 bsp/Infineon/libraries/templates/PSOC62/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/Infineon/psoc6-cy8ckit-062-BLE/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/Infineon/psoc6-cy8ckit-062-WIFI-BT/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/Infineon/psoc6-cy8ckit-062S2-43012/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/Infineon/psoc6-cy8ckit-062s4/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/Infineon/psoc6-cy8cproto-062S3-4343W/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/Infineon/psoc6-evaluationkit-062S2/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/acm32/acm32f0x0-nucleo/.ci/attachconfig/ci.attachconfig.yml delete mode 100644 bsp/acm32/acm32f0x0-nucleo/drivers/drv_soft_i2c.c delete mode 100644 bsp/acm32/acm32f0x0-nucleo/drivers/drv_soft_i2c.h create mode 100644 bsp/airm2m/air32f103/.ci/attachconfig/ci.attachconfig.yml delete mode 100644 bsp/airm2m/air32f103/libraries/rt_drivers/drv_soft_i2c.c delete mode 100644 bsp/airm2m/air32f103/libraries/rt_drivers/drv_soft_i2c.h create mode 100644 bsp/apm32/apm32e103ze-evalboard/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/apm32/apm32e103ze-tinyboard/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/apm32/apm32f030r8-miniboard/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/apm32/apm32f051r8-evalboard/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/apm32/apm32f072vb-miniboard/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/apm32/apm32f091vc-miniboard/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/apm32/apm32f103vb-miniboard/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/apm32/apm32f103xe-minibroard/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/apm32/apm32f107vc-evalboard/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/apm32/apm32f407ig-minibroard/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/apm32/apm32f407zg-evalboard/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/apm32/apm32s103vb-miniboard/.ci/attachconfig/ci.attachconfig.yml delete mode 100644 bsp/apm32/libraries/Drivers/drv_soft_i2c.c create mode 100644 bsp/at32/at32a403a-start/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/at32/at32a423-start/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/at32/at32f402-start/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/at32/at32f403a-start/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/at32/at32f405-start/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/at32/at32f407-start/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/at32/at32f413-start/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/at32/at32f415-start/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/at32/at32f421-start/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/at32/at32f423-start/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/at32/at32f425-start/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/at32/at32f435-start/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/at32/at32f437-start/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/at32/at32f455-start/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/at32/at32f456-start/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/at32/at32f457-start/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/at32/at32m412-start/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/at32/at32m416-start/.ci/attachconfig/ci.attachconfig.yml delete mode 100644 bsp/at32/libraries/rt_drivers/drv_soft_i2c.c delete mode 100644 bsp/at32/libraries/rt_drivers/drv_soft_i2c.h delete mode 100644 bsp/at91/at91sam9260/drivers/at91_i2c_gpio.c delete mode 100644 bsp/at91/at91sam9g45/drivers/at91_i2c_gpio.c create mode 100644 bsp/avr32/at32uc3a0256/.ci/attachconfig/ci.attachconfig.yml delete mode 100644 bsp/avr32/drivers/drv_soft_i2c.c delete mode 100644 bsp/avr32/drivers/drv_soft_i2c.h create mode 100644 bsp/bluetrum/ab32vg1-ab-prougen/.ci/attachconfig/ci.attachconfig.yml delete mode 100644 bsp/bluetrum/libraries/hal_drivers/drv_soft_i2c.c delete mode 100644 bsp/bluetrum/libraries/hal_drivers/drv_soft_i2c.h create mode 100644 bsp/bouffalo_lab/bl60x/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/bouffalo_lab/bl61x/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/bouffalo_lab/bl70x/.ci/attachconfig/ci.attachconfig.yml delete mode 100644 bsp/bouffalo_lab/libraries/rt_drivers/drv_soft_i2c.c delete mode 100644 bsp/bouffalo_lab/libraries/rt_drivers/drv_soft_i2c.h create mode 100644 bsp/gd32/risc-v/gd32vf103r-start/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/gd32/risc-v/gd32vf103v-eval/.ci/attachconfig/ci.attachconfig.yml delete mode 100644 bsp/gd32/risc-v/libraries/gd32_drivers/drv_soft_i2c.c delete mode 100644 bsp/gd32/risc-v/libraries/gd32_drivers/drv_soft_i2c.h create mode 100644 bsp/hc32/lckfb-hc32f4a0-lqfp100/.ci/attachconfig/ci.attachconfig.yml delete mode 100644 bsp/hc32/libraries/hc32_drivers/drv_soft_i2c.c delete mode 100644 bsp/hc32/libraries/hc32_drivers/drv_soft_i2c.h create mode 100644 bsp/hc32l136/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/hk32/hk32f030c8-mini/.ci/attachconfig/ci.attachconfig.yml delete mode 100644 bsp/hk32/libraries/rt_drivers/drv_soft_i2c.c delete mode 100644 bsp/hk32/libraries/rt_drivers/drv_soft_i2c.h create mode 100644 bsp/ht32/ht32f12366/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/ht32/ht32f52352/.ci/attachconfig/ci.attachconfig.yml delete mode 100644 bsp/ht32/libraries/ht32_drivers/drv_soft_i2c.c delete mode 100644 bsp/ht32/libraries/ht32_drivers/drv_soft_i2c.h delete mode 100644 bsp/loongson/ls1cdev/drivers/drv_i2c.c delete mode 100644 bsp/loongson/ls1cdev/drivers/drv_i2c.h create mode 100644 bsp/n32/n32gxx_lxx/n32g43xcl-stb/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/n32/n32gxx_lxx/n32g457qel-stb/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/n32/n32gxx_lxx/n32g45xcl-stb/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/n32/n32gxx_lxx/n32g45xml-stb/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/n32/n32gxx_lxx/n32g45xrl-stb/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/n32/n32gxx_lxx/n32g4frml-stb/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/n32/n32gxx_lxx/n32l40xcl-stb/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/n32/n32gxx_lxx/n32l436-evb/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/n32/n32gxx_lxx/n32l43xml-stb/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/n32/n32gxx_lxx/n32l43xrl-stb/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/n32/n32gxx_lxx/n32wb45xl-evb/.ci/attachconfig/ci.attachconfig.yml delete mode 100644 bsp/n32/n32hxxx/libraries/N32_Drivers/drivers/drv_soft_i2c.c delete mode 100644 bsp/n32/n32hxxx/libraries/N32_Drivers/drivers/drv_soft_i2c.h delete mode 100644 bsp/n32g452xx/Libraries/rt_drivers/drv_soft_i2c.c delete mode 100644 bsp/n32g452xx/Libraries/rt_drivers/drv_soft_i2c.h create mode 100644 bsp/n32g452xx/n32g452xx-mini-system/.ci/attachconfig/ci.attachconfig.yml delete mode 100644 bsp/nuvoton/libraries/m031/rtt_port/drv_softi2c.c delete mode 100644 bsp/nuvoton/libraries/m2354/rtt_port/drv_softi2c.c delete mode 100644 bsp/nuvoton/libraries/m460/rtt_port/drv_softi2c.c delete mode 100644 bsp/nuvoton/libraries/m480/rtt_port/drv_softi2c.c delete mode 100644 bsp/nuvoton/libraries/ma35/rtt_port/drv_softi2c.c delete mode 100644 bsp/nuvoton/libraries/n9h30/rtt_port/drv_softi2c.c delete mode 100644 bsp/nuvoton/libraries/nuc980/rtt_port/drv_softi2c.c create mode 100644 bsp/nuvoton/ma35-rtp/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/nuvoton/nk-980iot/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/nuvoton/nk-n9h30/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/nuvoton/nk-rtu980/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/nuvoton/numaker-hmi-ma35d1/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/nuvoton/numaker-iot-m467/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/nuvoton/numaker-iot-m487/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/nuvoton/numaker-iot-ma35d1/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/nuvoton/numaker-m032ki/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/nuvoton/numaker-m2354/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/nuvoton/numaker-m467hj/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/nuvoton/numaker-pfm-m487/.ci/attachconfig/ci.attachconfig.yml delete mode 100644 bsp/nxp/lpc/lpc55sxx/Libraries/drivers/drv_soft_i2c.c delete mode 100644 bsp/nxp/lpc/lpc55sxx/Libraries/drivers/drv_soft_i2c.h create mode 100644 bsp/nxp/lpc/lpc55sxx/lpc55s69_nxp_evk/.ci/attachconfig/ci.attachconfig.yml delete mode 100644 bsp/nxp/mcx/mcxn/Libraries/drivers/drv_soft_i2c.c create mode 100644 bsp/nxp/mcx/mcxn/frdm-mcxn236/.ci/attachconfig/ci.attachconfig.yml delete mode 100644 bsp/raspberry-pico/Drivers/drv_soft_i2c.c delete mode 100644 bsp/raspberry-pico/Drivers/drv_soft_i2c.h create mode 100644 bsp/raspberry-pico/RP2350/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/renesas/rzn2l_etherkit/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/renesas/rzn2l_rsk/.ci/attachconfig/ci.attachconfig.yml delete mode 100644 bsp/stm32/libraries/HAL_Drivers/drivers/drv_soft_i2c.c delete mode 100644 bsp/stm32/libraries/HAL_Drivers/drivers/drv_soft_i2c.h create mode 100644 bsp/stm32/libraries/templates/stm32l1xx/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/stm32/libraries/templates/stm32wbxx/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/stm32/stm32f407-atk-explorer/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/stm32/stm32f407-fk407m2-zgt6/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/stm32/stm32f407-micu/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/stm32/stm32f746-st-nucleo/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/stm32/stm32f767-atk-apollo/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/stm32/stm32f767-fire-challenger-v1/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/stm32/stm32h503-st-nucleo/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/stm32/stm32h563-st-nucleo/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/stm32/stm32h743-atk-apollo/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/stm32/stm32h743-openmv-h7plus/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/stm32/stm32h750-armfly-h7-tool/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/stm32/stm32h750-fk750m1-vbt6/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/stm32/stm32h750-weact-ministm32h7xx/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/stm32/stm32h7r7-artpi2/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/stm32/stm32h7s7-st-disco/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/stm32/stm32l431-tencentos-tiny-EVB_MX+/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/stm32/stm32l475-atk-pandora/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/stm32/stm32mp157a-st-discovery/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/stm32/stm32mp157a-st-ev1/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/stm32/stm32u575-st-nucleo/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/stm32/stm32wb55-st-nucleo/.ci/attachconfig/ci.attachconfig.yml delete mode 100644 bsp/synwit/libraries/SWM320_drivers/drv_soft_i2c.c delete mode 100644 bsp/synwit/libraries/SWM320_drivers/drv_soft_i2c.h delete mode 100644 bsp/synwit/libraries/SWM341_drivers/drv_soft_i2c.c delete mode 100644 bsp/synwit/libraries/SWM341_drivers/drv_soft_i2c.h create mode 100644 bsp/synwit/swm320-mini/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/synwit/swm341-mini/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/tae32f5300/.ci/attachconfig/ci.attachconfig.yml create mode 100644 bsp/tkm32F499/.ci/attachconfig/ci.attachconfig.yml delete mode 100644 bsp/w60x/drivers/drv_soft_i2c.c delete mode 100644 bsp/w60x/drivers/drv_soft_i2c.h delete mode 100644 bsp/wch/risc-v/Libraries/ch32_drivers/drv_soft_i2c.c delete mode 100644 bsp/wch/risc-v/Libraries/ch32_drivers/drv_soft_i2c.h create mode 100644 bsp/wch/risc-v/ch32v208w-r0/.ci/attachconfig/ci.attachconfig.yml diff --git a/bsp/ESP32_C3/.ci/attachconfig/ci.attachconfig.yml b/bsp/ESP32_C3/.ci/attachconfig/ci.attachconfig.yml index a2a990be1c5..ca2eddb6ad6 100644 --- a/bsp/ESP32_C3/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/ESP32_C3/.ci/attachconfig/ci.attachconfig.yml @@ -24,8 +24,11 @@ devices.swi2c: depends: - devices.i2c kconfig: - - CONFIG_BSP_USING_SW_I2C=y - - CONFIG_BSP_USING_SW_I2C0=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C0=y + - CONFIG_RT_SOFT_I2C0_SCL_PIN=19 + - CONFIG_RT_SOFT_I2C0_SDA_PIN=18 + - CONFIG_RT_SOFT_I2C0_BUS_NAME="swi2c0" devices.spi: kconfig: - CONFIG_RT_USING_SPI=y @@ -60,4 +63,4 @@ devices.at: - CONFIG_RT_USING_AT=y - CONFIG_AT_USING_CLIENT=y - CONFIG_RT_USING_SAL=y - - CONFIG_RT_USING_NETDEV=y \ No newline at end of file + - CONFIG_RT_USING_NETDEV=y diff --git a/bsp/ESP32_C3/drivers/Kconfig b/bsp/ESP32_C3/drivers/Kconfig index b7cb8f1275d..f56972c7214 100644 --- a/bsp/ESP32_C3/drivers/Kconfig +++ b/bsp/ESP32_C3/drivers/Kconfig @@ -76,24 +76,6 @@ menu "On-chip Peripheral Drivers" bool "Enable HardWare I2C" default n - menuconfig BSP_USING_SW_I2C - bool "Enable SoftWare I2C" - default n - if BSP_USING_SW_I2C - config BSP_USING_SW_I2C0 - bool "Enable SoftWare I2C0" - default n - if BSP_USING_SW_I2C0 - config BSP_SW_I2C0_SDA_PIN - int "SWI2C0 sda pin number" - range 0 21 - default 18 - config BSP_SW_I2C0_SCL_PIN - int "SWI2C0 scl pin number" - range 0 21 - default 19 - endif - endif endif menuconfig BSP_USING_SPI @@ -171,4 +153,4 @@ config BSP_ENABLE_GDBSTUB bool "Enable ESP_GDBSTUB compontent" default n -endmenu \ No newline at end of file +endmenu diff --git a/bsp/ESP32_C3/drivers/SConscript b/bsp/ESP32_C3/drivers/SConscript index 74d91cca657..c8d534e1646 100644 --- a/bsp/ESP32_C3/drivers/SConscript +++ b/bsp/ESP32_C3/drivers/SConscript @@ -18,9 +18,6 @@ if GetDepend('BSP_USING_ADC'): if GetDepend('BSP_USING_I2C'): src += ['drv_hw_i2c.c'] -if GetDepend('BSP_USING_SW_I2C'): - src += ['drv_sw_i2c.c'] - if GetDepend('BSP_USING_PWM'): src += ['drv_pwm.c'] diff --git a/bsp/ESP32_C3/drivers/drv_sw_i2c.c b/bsp/ESP32_C3/drivers/drv_sw_i2c.c deleted file mode 100644 index fbfed4d71db..00000000000 --- a/bsp/ESP32_C3/drivers/drv_sw_i2c.c +++ /dev/null @@ -1,199 +0,0 @@ -/* - * Copyright (c) 2006-2024 RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2024-12-07 wumingzi first version - */ -#include -#include -#define LOG_TAG "drv.i2c" -#ifdef RT_USING_I2C -#ifdef BSP_USING_SW_I2C -#include "rthw.h" -#include "rttypes.h" -#include -#include "driver/gpio.h" -#include "drv_sw_i2c.h" - -#if defined(BSP_USING_SW_I2C0) -#define SW_I2C0_BUS_CONFIG \ - { \ - .scl = BSP_SW_I2C0_SCL_PIN, \ - .sda = BSP_SW_I2C0_SDA_PIN, \ - .bus_name = "i2c0", \ - } -#endif - -static const struct esp32c3_soft_i2c_config soft_i2c_config[] = -{ -#if defined(BSP_USING_SW_I2C0) - SW_I2C0_BUS_CONFIG, -#endif -}; - -static struct esp32c3_i2c i2c_obj[sizeof(soft_i2c_config) / sizeof(soft_i2c_config[0])]; - -/** - * @brief This function initializes the i2c pin. - * @param i2c - * @retval None - */ -static void esp32c3_i2c_gpio_init(struct esp32c3_i2c *i2c) -{ - struct esp32c3_soft_i2c_config* cfg = (struct esp32c3_soft_i2c_config*)i2c->ops.data; - rt_pin_mode(cfg->scl, PIN_MODE_OUTPUT_OD); - rt_pin_mode(cfg->sda, PIN_MODE_OUTPUT_OD); - - gpio_set_pull_mode(cfg->sda, GPIO_FLOATING); - gpio_set_pull_mode(cfg->scl, GPIO_FLOATING); - - gpio_set_level(cfg->scl, PIN_HIGH); - gpio_set_level(cfg->sda, PIN_HIGH); -} - -/** - * @brief This function sets the sda pin. - * @param data, state - * @retval None - */ -static void esp32c3_set_sda(void *data, rt_int32_t state) -{ - struct esp32c3_soft_i2c_config* cfg = (struct esp32c3_soft_i2c_config*)data; - /*rt_pin_mode(cfg->sda, PIN_MODE_OUTPUT_OD);*/ - if (state) - { - gpio_set_level(cfg->sda, PIN_HIGH); - } - else - { - gpio_set_level(cfg->sda, PIN_LOW); - } -} - -/** - * @brief This function sets the scl pin. - * @param data, state - * @retval None - */ -static void esp32c3_set_scl(void *data, rt_int32_t state) -{ - struct esp32c3_soft_i2c_config* cfg = (struct esp32c3_soft_i2c_config*)data; - if (state) - { - gpio_set_level(cfg->scl, PIN_HIGH); - } - else - { - gpio_set_level(cfg->scl, PIN_LOW); - } -} - -/** - * @brief This function gets the sda pin state. - * @param data - * @retval None - */ -static rt_int32_t esp32c3_get_sda(void *data) -{ - struct esp32c3_soft_i2c_config* cfg = (struct esp32c3_soft_i2c_config*)data; - return gpio_get_level(cfg->sda); -} - -/** - * @brief This function gets the scl pin state. - * @param data - * @retval None - */ -static rt_int32_t esp32c3_get_scl(void *data) -{ - struct esp32c3_soft_i2c_config* cfg = (struct esp32c3_soft_i2c_config*)data; - return gpio_get_level(cfg->scl); -} - -/** - * @brief The time delay function. - * @param us - * @retval None - */ -static void esp32c3_udelay(rt_uint32_t us) -{ - rt_hw_us_delay(us); -} - -/* - * if i2c is locked, this function will unlock it - * - * @param esp32 config class - * - * @return RT_EOK indicates successful unlock. - */ -/* */ -static rt_err_t esp32c3_i2c_bus_unlock(const struct esp32c3_soft_i2c_config *cfg) -{ - rt_int32_t i = 0; - - if (PIN_LOW == rt_pin_read(cfg->sda)) - { - /* 输出9个时钟 解锁IIC死锁 */ - while (i++ < 9) - { - gpio_set_level(cfg->scl, PIN_HIGH); - esp32c3_udelay(100); - gpio_set_level(cfg->scl, PIN_LOW); - esp32c3_udelay(100); - } - } - if (PIN_LOW == gpio_get_level(cfg->sda)) - { - return -RT_ERROR; - } - return RT_EOK; -} - -static const struct rt_i2c_bit_ops esp32c3_bit_ops_default = -{ - .data = RT_NULL, - .set_sda = esp32c3_set_sda, - .set_scl = esp32c3_set_scl, - .get_sda = esp32c3_get_sda, - .get_scl = esp32c3_get_scl, - .udelay = esp32c3_udelay, - .delay_us = 1, - .timeout = 100 -}; - -int rt_sw_i2c_init(void) -{ - /* I2C设备数量 */ - rt_size_t obj_num = sizeof(i2c_obj) / sizeof(struct esp32c3_i2c); - rt_err_t result; - /* 循环初始化 */ - for (int i = 0; i < obj_num; i++) - { - /* 注册方法 */ - i2c_obj[i].ops = esp32c3_bit_ops_default; - /* 设备硬件数据 */ - i2c_obj[i].ops.data = (void*)&soft_i2c_config[i]; - /* 保存设备方法 */ - i2c_obj[i].i2c_bus.priv = &i2c_obj[i].ops; - - esp32c3_i2c_gpio_init(&i2c_obj[i]); - result = rt_i2c_bit_add_bus(&i2c_obj[i].i2c_bus, soft_i2c_config[i].bus_name); - RT_ASSERT(result == RT_EOK); - - esp32c3_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_APP_EXPORT(rt_sw_i2c_init); - -#endif /* BSP_USING_SW_I2C */ -#endif /* RT_USING_I2C */ \ No newline at end of file diff --git a/bsp/ESP32_C3/drivers/drv_sw_i2c.h b/bsp/ESP32_C3/drivers/drv_sw_i2c.h deleted file mode 100644 index ab353e473fa..00000000000 --- a/bsp/ESP32_C3/drivers/drv_sw_i2c.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (c) 2006-2024 RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2024-12-07 wumingzi first version - */ -#ifndef __DRV_HW_I2C_H__ -#define __DRV_HW_I2C_H__ - -#include -#include -#include "sdkconfig.h" - -/* esp32c3 config class */ -struct esp32c3_soft_i2c_config -{ - rt_uint8_t scl; - rt_uint8_t sda; - const char *bus_name; -}; - -/* esp32c3 i2c dirver class */ -struct esp32c3_i2c -{ - struct rt_i2c_bit_ops ops; - struct rt_i2c_bus_device i2c_bus; -}; - -int rt_hw_i2c_init(void); - -#endif /* __DRV_HW_I2C_H__ */ \ No newline at end of file diff --git a/bsp/Infineon/libraries/HAL_Drivers/SConscript b/bsp/Infineon/libraries/HAL_Drivers/SConscript index 017b3cb4d77..280ee05b70f 100644 --- a/bsp/Infineon/libraries/HAL_Drivers/SConscript +++ b/bsp/Infineon/libraries/HAL_Drivers/SConscript @@ -18,10 +18,6 @@ if GetDepend(['RT_USING_SERIAL']): else: src += ['drv_uart.c'] -if GetDepend(['RT_USING_I2C', 'RT_USING_I2C_BITOPS']): - if GetDepend('BSP_USING_I2C1'): - src += ['drv_soft_i2c.c'] - if GetDepend(['RT_USING_I2C']): if GetDepend('BSP_USING_HW_I2C1') or GetDepend('BSP_USING_HW_I2C3') or GetDepend('BSP_USING_HW_I2C4') or GetDepend('BSP_USING_HW_I2C6'): src += ['drv_i2c.c'] diff --git a/bsp/Infineon/libraries/HAL_Drivers/drv_soft_i2c.c b/bsp/Infineon/libraries/HAL_Drivers/drv_soft_i2c.c deleted file mode 100644 index 9c20a54ca1b..00000000000 --- a/bsp/Infineon/libraries/HAL_Drivers/drv_soft_i2c.c +++ /dev/null @@ -1,192 +0,0 @@ -/* - * Copyright (c) 2006-2024 RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2022-07-20 Rbb666 first version - */ - -#include -#include "drv_soft_i2c.h" - -#ifdef RT_USING_I2C - -/*#define DRV_DEBUG*/ -#define LOG_TAG "drv.i2c" -#include - -#if !defined(BSP_USING_I2C1) - #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 ifx_soft_i2c_config soft_i2c_config[] = -{ - #ifdef BSP_USING_I2C1 - I2C1_BUS_CONFIG, - #endif -}; - -static struct ifx_i2c i2c_obj[sizeof(soft_i2c_config) / sizeof(soft_i2c_config[0])]; - -/** - * This function initializes the i2c pin. - * - * @param ifx i2c dirver class. - */ -static void ifx_i2c_gpio_init(struct ifx_i2c *i2c) -{ - struct ifx_soft_i2c_config *cfg = (struct ifx_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 ifx_i2c_pin_init(void) -{ - rt_size_t obj_num = sizeof(i2c_obj) / sizeof(struct ifx_i2c); - - for(rt_size_t i = 0; i < obj_num; i++) - { - ifx_i2c_gpio_init(&i2c_obj[i]); - } -} - -/** - * This function sets the sda pin. - * - * @param ifx config class. - * @param The sda pin state. - */ -static void ifx_set_sda(void *data, rt_int32_t state) -{ - struct ifx_soft_i2c_config *cfg = (struct ifx_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 ifx config class. - * @param The scl pin state. - */ -static void ifx_set_scl(void *data, rt_int32_t state) -{ - struct ifx_soft_i2c_config *cfg = (struct ifx_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 ifx_get_sda(void *data) -{ - struct ifx_soft_i2c_config *cfg = (struct ifx_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 ifx_get_scl(void *data) -{ - struct ifx_soft_i2c_config *cfg = (struct ifx_soft_i2c_config *)data; - return rt_pin_read(cfg->scl); -} - -static const struct rt_i2c_bit_ops ifx_bit_ops_default = -{ - .data = RT_NULL, - .pin_init = ifx_i2c_pin_init, - .set_sda = ifx_set_sda, - .set_scl = ifx_set_scl, - .get_sda = ifx_get_sda, - .get_scl = ifx_get_scl, - .udelay = rt_hw_us_delay, - .delay_us = 1, - .timeout = 100, - .i2c_pin_init_flag = RT_FALSE -}; - -/** - * if i2c is locked, this function will unlock it - * - * @param ifx config class - * - * @return RT_EOK indicates successful unlock. - */ -static rt_err_t ifx_i2c_bus_unlock(const struct ifx_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); - rt_hw_us_delay(100); - rt_pin_write(cfg->scl, PIN_LOW); - rt_hw_us_delay(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 ifx_i2c); - rt_err_t result; - - for (int i = 0; i < obj_num; i++) - { - i2c_obj[i].ops = ifx_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); - ifx_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 /* RT_USING_I2C */ diff --git a/bsp/Infineon/libraries/HAL_Drivers/drv_soft_i2c.h b/bsp/Infineon/libraries/HAL_Drivers/drv_soft_i2c.h deleted file mode 100644 index 2e49a62c2f8..00000000000 --- a/bsp/Infineon/libraries/HAL_Drivers/drv_soft_i2c.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (c) 2006-2024 RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2022-07-20 Rbb666 first version - */ - -#ifndef __DRV_I2C__ -#define __DRV_I2C__ - -#include -#include -#include - -/* ifx config class */ -struct ifx_soft_i2c_config -{ - rt_uint8_t scl; - rt_uint8_t sda; - const char *bus_name; -}; -/* ifx i2c dirver class */ -struct ifx_i2c -{ - struct rt_i2c_bit_ops ops; - struct rt_i2c_bus_device i2c_bus; -}; - -#ifdef BSP_USING_I2C1 -#define I2C1_BUS_CONFIG \ - { \ - .scl = BSP_I2C1_SCL_PIN, \ - .sda = BSP_I2C1_SDA_PIN, \ - .bus_name = "i2c1", \ - } -#endif - -int rt_hw_i2c_init(void); - -#endif diff --git a/bsp/Infineon/libraries/templates/PSOC62/.ci/attachconfig/ci.attachconfig.yml b/bsp/Infineon/libraries/templates/PSOC62/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..6cbc2bc3c36 --- /dev/null +++ b/bsp/Infineon/libraries/templates/PSOC62/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,8 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=105 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=106 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/Infineon/libraries/templates/PSOC62/board/Kconfig b/bsp/Infineon/libraries/templates/PSOC62/board/Kconfig index 07a230d7969..c827db3436b 100644 --- a/bsp/Infineon/libraries/templates/PSOC62/board/Kconfig +++ b/bsp/Infineon/libraries/templates/PSOC62/board/Kconfig @@ -174,29 +174,6 @@ menu "On-chip Peripheral Drivers" endif endif - menuconfig BSP_USING_I2C - bool "Enable Software I2C Bus" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C - config BSP_USING_I2C1 - bool "Enable I2C1 Bus (User I2C)" - default n - if BSP_USING_I2C1 - comment "Notice: P13_1 --> 105; P13_2 --> 106" - config BSP_I2C1_SCL_PIN - int "i2c1 SCL pin number" - range 1 113 - default 105 - config BSP_I2C1_SDA_PIN - int "i2c1 SDA pin number" - range 1 113 - default 106 - endif - endif - menuconfig BSP_USING_RTC bool "Enable RTC" select RT_USING_RTC diff --git a/bsp/Infineon/psoc6-cy8ckit-062-BLE/.ci/attachconfig/ci.attachconfig.yml b/bsp/Infineon/psoc6-cy8ckit-062-BLE/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..6cbc2bc3c36 --- /dev/null +++ b/bsp/Infineon/psoc6-cy8ckit-062-BLE/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,8 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=105 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=106 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/Infineon/psoc6-cy8ckit-062-BLE/board/Kconfig b/bsp/Infineon/psoc6-cy8ckit-062-BLE/board/Kconfig index 77a4380e4a9..6ff47950f00 100644 --- a/bsp/Infineon/psoc6-cy8ckit-062-BLE/board/Kconfig +++ b/bsp/Infineon/psoc6-cy8ckit-062-BLE/board/Kconfig @@ -174,29 +174,6 @@ menu "On-chip Peripheral Drivers" endif endif - menuconfig BSP_USING_I2C - bool "Enable Software I2C Bus" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C - config BSP_USING_I2C1 - bool "Enable I2C1 Bus (User I2C)" - default n - if BSP_USING_I2C1 - comment "Notice: P13_1 --> 105; P13_2 --> 106" - config BSP_I2C1_SCL_PIN - int "i2c1 SCL pin number" - range 1 113 - default 105 - config BSP_I2C1_SDA_PIN - int "i2c1 SDA pin number" - range 1 113 - default 106 - endif - endif - menuconfig BSP_USING_RTC bool "Enable RTC" select RT_USING_RTC diff --git a/bsp/Infineon/psoc6-cy8ckit-062-WIFI-BT/.ci/attachconfig/ci.attachconfig.yml b/bsp/Infineon/psoc6-cy8ckit-062-WIFI-BT/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..6cbc2bc3c36 --- /dev/null +++ b/bsp/Infineon/psoc6-cy8ckit-062-WIFI-BT/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,8 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=105 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=106 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/Infineon/psoc6-cy8ckit-062-WIFI-BT/board/Kconfig b/bsp/Infineon/psoc6-cy8ckit-062-WIFI-BT/board/Kconfig index 6b199514566..3b35bc48d75 100644 --- a/bsp/Infineon/psoc6-cy8ckit-062-WIFI-BT/board/Kconfig +++ b/bsp/Infineon/psoc6-cy8ckit-062-WIFI-BT/board/Kconfig @@ -182,29 +182,6 @@ menu "On-chip Peripheral Drivers" endif endif - menuconfig BSP_USING_I2C - bool "Enable Software I2C Bus" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C - config BSP_USING_I2C1 - bool "Enable I2C1 Bus (User I2C)" - default n - if BSP_USING_I2C1 - comment "Notice: P13_1 --> 105; P13_2 --> 106" - config BSP_I2C1_SCL_PIN - int "i2c1 SCL pin number" - range 1 113 - default 105 - config BSP_I2C1_SDA_PIN - int "i2c1 SDA pin number" - range 1 113 - default 106 - endif - endif - menuconfig BSP_USING_RTC bool "Enable RTC" select RT_USING_RTC diff --git a/bsp/Infineon/psoc6-cy8ckit-062S2-43012/.ci/attachconfig/ci.attachconfig.yml b/bsp/Infineon/psoc6-cy8ckit-062S2-43012/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..6cbc2bc3c36 --- /dev/null +++ b/bsp/Infineon/psoc6-cy8ckit-062S2-43012/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,8 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=105 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=106 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/Infineon/psoc6-cy8ckit-062S2-43012/board/Kconfig b/bsp/Infineon/psoc6-cy8ckit-062S2-43012/board/Kconfig index 0a5cec3667d..1acfffa48e6 100644 --- a/bsp/Infineon/psoc6-cy8ckit-062S2-43012/board/Kconfig +++ b/bsp/Infineon/psoc6-cy8ckit-062S2-43012/board/Kconfig @@ -181,29 +181,6 @@ menu "On-chip Peripheral Drivers" endif endif - menuconfig BSP_USING_I2C - bool "Enable Software I2C Bus" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C - config BSP_USING_I2C1 - bool "Enable I2C1 Bus (User I2C)" - default n - if BSP_USING_I2C1 - comment "Notice: P13_1 --> 105; P13_2 --> 106" - config BSP_I2C1_SCL_PIN - int "i2c1 SCL pin number" - range 1 113 - default 105 - config BSP_I2C1_SDA_PIN - int "i2c1 SDA pin number" - range 1 113 - default 106 - endif - endif - config BSP_USING_USBD bool "Enable USB Device" select RT_USING_USB_DEVICE diff --git a/bsp/Infineon/psoc6-cy8ckit-062s4/.ci/attachconfig/ci.attachconfig.yml b/bsp/Infineon/psoc6-cy8ckit-062s4/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..6cbc2bc3c36 --- /dev/null +++ b/bsp/Infineon/psoc6-cy8ckit-062s4/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,8 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=105 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=106 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/Infineon/psoc6-cy8ckit-062s4/board/Kconfig b/bsp/Infineon/psoc6-cy8ckit-062s4/board/Kconfig index bfe1fd8b864..bf197415114 100644 --- a/bsp/Infineon/psoc6-cy8ckit-062s4/board/Kconfig +++ b/bsp/Infineon/psoc6-cy8ckit-062s4/board/Kconfig @@ -174,29 +174,6 @@ menu "On-chip Peripheral Drivers" endif endif - menuconfig BSP_USING_I2C - bool "Enable Software I2C Bus" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C - config BSP_USING_I2C1 - bool "Enable I2C1 Bus (User I2C)" - default n - if BSP_USING_I2C1 - comment "Notice: P13_1 --> 105; P13_2 --> 106" - config BSP_I2C1_SCL_PIN - int "i2c1 SCL pin number" - range 1 113 - default 105 - config BSP_I2C1_SDA_PIN - int "i2c1 SDA pin number" - range 1 113 - default 106 - endif - endif - menuconfig BSP_USING_RTC bool "Enable RTC" select RT_USING_RTC diff --git a/bsp/Infineon/psoc6-cy8cproto-062S3-4343W/.ci/attachconfig/ci.attachconfig.yml b/bsp/Infineon/psoc6-cy8cproto-062S3-4343W/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..6cbc2bc3c36 --- /dev/null +++ b/bsp/Infineon/psoc6-cy8cproto-062S3-4343W/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,8 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=105 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=106 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/Infineon/psoc6-cy8cproto-062S3-4343W/board/Kconfig b/bsp/Infineon/psoc6-cy8cproto-062S3-4343W/board/Kconfig index 6006e7e97d5..61dc2edb3ac 100644 --- a/bsp/Infineon/psoc6-cy8cproto-062S3-4343W/board/Kconfig +++ b/bsp/Infineon/psoc6-cy8cproto-062S3-4343W/board/Kconfig @@ -181,29 +181,6 @@ menu "On-chip Peripheral Drivers" endif endif - menuconfig BSP_USING_I2C - bool "Enable Software I2C Bus" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C - config BSP_USING_I2C1 - bool "Enable I2C1 Bus (User I2C)" - default n - if BSP_USING_I2C1 - comment "Notice: P13_1 --> 105; P13_2 --> 106" - config BSP_I2C1_SCL_PIN - int "i2c1 SCL pin number" - range 1 113 - default 105 - config BSP_I2C1_SDA_PIN - int "i2c1 SDA pin number" - range 1 113 - default 106 - endif - endif - config BSP_USING_USBD bool "Enable USB Device" select RT_USING_USB_DEVICE diff --git a/bsp/Infineon/psoc6-evaluationkit-062S2/.ci/attachconfig/ci.attachconfig.yml b/bsp/Infineon/psoc6-evaluationkit-062S2/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..6cbc2bc3c36 --- /dev/null +++ b/bsp/Infineon/psoc6-evaluationkit-062S2/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,8 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=105 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=106 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/Infineon/psoc6-evaluationkit-062S2/board/Kconfig b/bsp/Infineon/psoc6-evaluationkit-062S2/board/Kconfig index ef00b67eba1..8fab4651d8f 100644 --- a/bsp/Infineon/psoc6-evaluationkit-062S2/board/Kconfig +++ b/bsp/Infineon/psoc6-evaluationkit-062S2/board/Kconfig @@ -230,29 +230,6 @@ menu "On-chip Peripheral Drivers" endif endif - menuconfig BSP_USING_I2C - bool "Enable Software I2C Bus" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C - config BSP_USING_I2C1 - bool "Enable I2C1 Bus (User I2C)" - default n - if BSP_USING_I2C1 - comment "Notice: P13_1 --> 105; P13_2 --> 106" - config BSP_I2C1_SCL_PIN - int "i2c1 SCL pin number" - range 1 113 - default 105 - config BSP_I2C1_SDA_PIN - int "i2c1 SDA pin number" - range 1 113 - default 106 - endif - endif - menuconfig BSP_USING_RTC bool "Enable RTC" select RT_USING_RTC @@ -487,4 +464,4 @@ menu "Board extended module Drivers" default n endmenu -endmenu \ No newline at end of file +endmenu diff --git a/bsp/acm32/acm32f0x0-nucleo/.ci/attachconfig/ci.attachconfig.yml b/bsp/acm32/acm32f0x0-nucleo/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..872296ed471 --- /dev/null +++ b/bsp/acm32/acm32f0x0-nucleo/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,8 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C0=y + - CONFIG_RT_SOFT_I2C0_SCL_PIN=54 + - CONFIG_RT_SOFT_I2C0_SDA_PIN=55 + - CONFIG_RT_SOFT_I2C0_BUS_NAME="swi2c0" diff --git a/bsp/acm32/acm32f0x0-nucleo/drivers/Kconfig b/bsp/acm32/acm32f0x0-nucleo/drivers/Kconfig index e112183e2b4..219733af247 100644 --- a/bsp/acm32/acm32f0x0-nucleo/drivers/Kconfig +++ b/bsp/acm32/acm32f0x0-nucleo/drivers/Kconfig @@ -106,28 +106,6 @@ menu "On-chip Peripheral Drivers" select RT_USING_I2C endmenu - menuconfig BSP_USING_SOFT_I2C - bool "Enable Soft I2C" - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - default n - if BSP_USING_SOFT_I2C - menuconfig BSP_USING_I2C0 - bool "Enable I2C1 BUS (software simulation)" - default n - if BSP_USING_I2C0 - config BSP_I2C0_SCL_PIN - int "i2c0 scl pin number (PD, 6)" - range 0 63 - default 54 - config BSP_I2C0_SDA_PIN - int "I2C0 sda pin number (PD, 7)" - range 0 63 - default 55 - endif - endif - menu "Hardware CAN" config BSP_USING_CAN1 bool "Enable CAN1" @@ -257,4 +235,3 @@ menu "Board extended module Drivers" endmenu endmenu - diff --git a/bsp/acm32/acm32f0x0-nucleo/drivers/drv_soft_i2c.c b/bsp/acm32/acm32f0x0-nucleo/drivers/drv_soft_i2c.c deleted file mode 100644 index 47b8e9fb067..00000000000 --- a/bsp/acm32/acm32f0x0-nucleo/drivers/drv_soft_i2c.c +++ /dev/null @@ -1,163 +0,0 @@ -/* - * Copyright (c) 2006-2024, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2021-09-13 AisinoChip first implementation. - * 2024-04-23 LZero Modify the I2C framework. - */ - -#ifdef BSP_USING_SOFT_I2C - -#include "drv_soft_i2c.h" - -#define DBG_TAG "drv.i2c" -#ifdef DRV_DEBUG - #define DBG_LVL DBG_LOG -#else - #define DBG_LVL DBG_INFO -#endif /* DRV_DEBUG */ - -static struct acm32_soft_i2c_config soft_i2c_config[] = -{ -#ifdef BSP_USING_I2C0 - I2C0_BUS_CONFIG, -#endif -}; - -static struct acm32_i2c i2c_obj[sizeof(soft_i2c_config) / sizeof(soft_i2c_config[0])]; - -static void drv_i2c_gpio_init(struct acm32_i2c* i2c) -{ - struct acm32_soft_i2c_config* cfg = (struct acm32_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 acm32_i2c_pin_init(void) -{ - rt_size_t obj_num = sizeof(i2c_obj) / sizeof(struct acm32_i2c); - - for(rt_size_t i = 0; i < obj_num; i++) - { - drv_i2c_gpio_init(&i2c_obj[i]); - } -} - -static void _set_sda(void *data, rt_int32_t state) -{ - struct acm32_soft_i2c_config* cfg = (struct acm32_soft_i2c_config*)data; - - if (state) - { - rt_pin_write(cfg->sda, PIN_HIGH); - } - else - { - rt_pin_write(cfg->sda, PIN_LOW); - } -} - -static void _set_scl(void *data, rt_int32_t state) -{ - struct acm32_soft_i2c_config* cfg = (struct acm32_soft_i2c_config*)data; - - if (state) - { - rt_pin_write(cfg->scl, PIN_HIGH); - } - else - { - rt_pin_write(cfg->scl, PIN_LOW); - } -} - -static rt_int32_t _get_sda(void *data) -{ - struct acm32_soft_i2c_config* cfg = (struct acm32_soft_i2c_config*)data; - - return rt_pin_read(cfg->sda); -} - -static rt_int32_t _get_scl(void *data) -{ - struct acm32_soft_i2c_config* cfg = (struct acm32_soft_i2c_config*)data; - - return rt_pin_read(cfg->scl); -} - -static void acm32_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 acm32_bit_ops_default = -{ - .data = RT_NULL, - .pin_init = acm32_i2c_pin_init, - .set_sda = _set_sda, - .set_scl = _set_scl, - .get_sda = _get_sda, - .get_scl = _get_scl, - .udelay = acm32_udelay, - .delay_us = 1, - .timeout = 100, - .i2c_pin_init_flag = RT_FALSE -}; - -int rt_soft_i2c_init(void) -{ - rt_err_t result; - - for (rt_size_t i = 0; i < sizeof(i2c_obj) / sizeof(struct acm32_i2c); i++) - { - i2c_obj[i].ops = acm32_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); - - 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_DEVICE_EXPORT(rt_soft_i2c_init); - -#endif /* RT_USING_I2C_BITOPS */ - diff --git a/bsp/acm32/acm32f0x0-nucleo/drivers/drv_soft_i2c.h b/bsp/acm32/acm32f0x0-nucleo/drivers/drv_soft_i2c.h deleted file mode 100644 index e66083b0d9e..00000000000 --- a/bsp/acm32/acm32f0x0-nucleo/drivers/drv_soft_i2c.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 2006-2024, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2024-04-23 LZero Modify the I2C framework. - */ - -#ifndef __DRV_I2C__ -#define __DRV_I2C__ - -#include -#include -#include -#include -#include - -/* acm32 config class */ -struct acm32_soft_i2c_config -{ - rt_uint8_t scl; - rt_uint8_t sda; - const char *bus_name; -}; -/* acm32 i2c dirver class */ - -struct acm32_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 - -#endif //__DRV_I2C__ diff --git a/bsp/airm2m/air32f103/.ci/attachconfig/ci.attachconfig.yml b/bsp/airm2m/air32f103/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..08f15d590b4 --- /dev/null +++ b/bsp/airm2m/air32f103/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,8 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=24 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=25 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/airm2m/air32f103/board/Kconfig b/bsp/airm2m/air32f103/board/Kconfig index 65f1c9b152c..2fe02c86910 100644 --- a/bsp/airm2m/air32f103/board/Kconfig +++ b/bsp/airm2m/air32f103/board/Kconfig @@ -49,28 +49,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_SOFTI2C - bool "Enable SOFT I2C" - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - default n - if BSP_USING_SOFTI2C - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 63 - default 24 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 63 - default 25 - endif - endif - menuconfig BSP_USING_SPI bool "Enable SPI BUS" default n diff --git a/bsp/airm2m/air32f103/libraries/SConscript b/bsp/airm2m/air32f103/libraries/SConscript index 8848f19239a..575a0af08b3 100644 --- a/bsp/airm2m/air32f103/libraries/SConscript +++ b/bsp/airm2m/air32f103/libraries/SConscript @@ -45,9 +45,6 @@ if GetDepend(['RT_USING_SERIAL']): else: src += ['rt_drivers/drv_usart.c'] -if GetDepend(['RT_USING_I2C','RT_USING_I2C_BITOPS']): - src += ['rt_drivers/drv_soft_i2c.c'] - if GetDepend(['RT_USING_SPI', 'BSP_USING_SPI']): src += ['rt_drivers/drv_spi.c'] diff --git a/bsp/airm2m/air32f103/libraries/rt_drivers/drv_soft_i2c.c b/bsp/airm2m/air32f103/libraries/rt_drivers/drv_soft_i2c.c deleted file mode 100644 index 5ca9a4e55bb..00000000000 --- a/bsp/airm2m/air32f103/libraries/rt_drivers/drv_soft_i2c.c +++ /dev/null @@ -1,231 +0,0 @@ -/* - * Copyright (c) 2006-2022, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2022-02-22 airm2m first version - */ - -#include -#include "drv_soft_i2c.h" - -#ifdef RT_USING_I2C - -//#define DRV_DEBUG -#define LOG_TAG "drv.i2c" -#include - -#if !defined(BSP_USING_I2C1) && !defined(BSP_USING_I2C2) && !defined(BSP_USING_I2C3) && !defined(BSP_USING_I2C4) -#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 air32_soft_i2c_config soft_i2c_config[] = -{ -#ifdef BSP_USING_I2C1 - I2C1_BUS_CONFIG, -#endif -#ifdef BSP_USING_I2C2 - I2C2_BUS_CONFIG, -#endif -#ifdef BSP_USING_I2C3 - I2C3_BUS_CONFIG, -#endif -#ifdef BSP_USING_I2C4 - I2C4_BUS_CONFIG, -#endif -}; - -static struct air32_i2c i2c_obj[sizeof(soft_i2c_config) / sizeof(soft_i2c_config[0])]; - -/** - * This function initializes the i2c pin. - * - * @param air32 i2c dirver class. - */ -static void air32_i2c_gpio_init(struct air32_i2c *i2c) -{ - struct air32_soft_i2c_config* cfg = (struct air32_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 air32_i2c_pin_init(void) -{ - rt_size_t obj_num = sizeof(i2c_obj) / sizeof(struct air32_i2c); - - for(rt_size_t i = 0; i < obj_num; i++) - { - air32_i2c_gpio_init(&i2c_obj[i]); - } -} - -/** - * This function sets the sda pin. - * - * @param air32 config class. - * @param The sda pin state. - */ -static void air32_set_sda(void *data, rt_int32_t state) -{ - struct air32_soft_i2c_config* cfg = (struct air32_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 air32 config class. - * @param The scl pin state. - */ -static void air32_set_scl(void *data, rt_int32_t state) -{ - struct air32_soft_i2c_config* cfg = (struct air32_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 air32_get_sda(void *data) -{ - struct air32_soft_i2c_config* cfg = (struct air32_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 air32_get_scl(void *data) -{ - struct air32_soft_i2c_config* cfg = (struct air32_soft_i2c_config*)data; - return rt_pin_read(cfg->scl); -} -/** - * The time delay function. - * - * @param microseconds. - */ -static void air32_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 air32_bit_ops_default = -{ - .data = RT_NULL, - .pin_init = air32_i2c_pin_init, - .set_sda = air32_set_sda, - .set_scl = air32_set_scl, - .get_sda = air32_get_sda, - .get_scl = air32_get_scl, - .udelay = air32_udelay, - .delay_us = 1, - .timeout = 100, - .i2c_pin_init_flag = RT_FALSE -}; - -/** - * if i2c is locked, this function will unlock it - * - * @param air32 config class - * - * @return RT_EOK indicates successful unlock. - */ -static rt_err_t air32_i2c_bus_unlock(const struct air32_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); - air32_udelay(100); - rt_pin_write(cfg->scl, PIN_LOW); - air32_udelay(100); - } - } - if (PIN_LOW == rt_pin_read(cfg->sda)) - { - return -RT_ERROR; - } - - return RT_EOK; -} - -/* I2C initialization function */ -int rt_sw_i2c_init(void) -{ - rt_err_t result; - - for (rt_size_t i = 0; i < sizeof(i2c_obj) / sizeof(struct air32_i2c); i++) - { - i2c_obj[i].ops = air32_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); - air32_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_sw_i2c_init); - -#endif /* RT_USING_I2C */ diff --git a/bsp/airm2m/air32f103/libraries/rt_drivers/drv_soft_i2c.h b/bsp/airm2m/air32f103/libraries/rt_drivers/drv_soft_i2c.h deleted file mode 100644 index 2d7c723dc69..00000000000 --- a/bsp/airm2m/air32f103/libraries/rt_drivers/drv_soft_i2c.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright (c) 2006-2022, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2022-02-22 airm2m first version - */ - -#ifndef __DRV_I2C__ -#define __DRV_I2C__ - -#include -#include -#include - -/* air32 config class */ -struct air32_soft_i2c_config -{ - rt_uint8_t scl; - rt_uint8_t sda; - const char *bus_name; -}; -/* air32 i2c dirver class */ -struct air32_i2c -{ - struct rt_i2c_bit_ops ops; - struct rt_i2c_bus_device i2c_bus; -}; - -#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 - -#ifdef BSP_USING_I2C3 -#define I2C3_BUS_CONFIG \ - { \ - .scl = BSP_I2C3_SCL_PIN, \ - .sda = BSP_I2C3_SDA_PIN, \ - .bus_name = "i2c3", \ - } -#endif - -#ifdef BSP_USING_I2C4 -#define I2C4_BUS_CONFIG \ - { \ - .scl = BSP_I2C4_SCL_PIN, \ - .sda = BSP_I2C4_SDA_PIN, \ - .bus_name = "i2c4", \ - } -#endif -int rt_sw_i2c_init(void); - -#endif diff --git a/bsp/apm32/apm32e103ze-evalboard/.ci/attachconfig/ci.attachconfig.yml b/bsp/apm32/apm32e103ze-evalboard/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..7cd4362ffce --- /dev/null +++ b/bsp/apm32/apm32e103ze-evalboard/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,16 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" + - CONFIG_RT_USING_SOFT_I2C3=y + - CONFIG_RT_SOFT_I2C3_SCL_PIN=8 + - CONFIG_RT_SOFT_I2C3_SDA_PIN=41 + - CONFIG_RT_SOFT_I2C3_BUS_NAME="swi2c3" diff --git a/bsp/apm32/apm32e103ze-evalboard/board/Kconfig b/bsp/apm32/apm32e103ze-evalboard/board/Kconfig index c8c59dee476..c842498df29 100644 --- a/bsp/apm32/apm32e103ze-evalboard/board/Kconfig +++ b/bsp/apm32/apm32e103ze-evalboard/board/Kconfig @@ -25,8 +25,9 @@ menu "Onboard Peripheral Drivers" config BSP_USING_EEPROM bool "Enable I2C EEPROM (i2c1)" - select BSP_USING_I2C - select BSP_USING_I2C1 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C1 default n config BSP_USING_SDCARD @@ -106,54 +107,6 @@ menu "On-chip Peripheral Drivers" endchoice endif - menuconfig BSP_USING_I2C - bool "Enable I2C BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C - config BSP_USING_I2C1 - bool "Enable I2C1 BUS" - if BSP_USING_I2C1 - comment "Notice: PB6 --> 22; PB7 --> 23" - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 63 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 63 - default 23 - endif - config BSP_USING_I2C2 - bool "Enable I2C2 BUS" - if BSP_USING_I2C2 - comment "Notice: PA0 --> 0; PA1 --> 1" - config BSP_I2C2_SCL_PIN - int "i2c2 scl pin number" - range 0 63 - default 22 - config BSP_I2C2_SDA_PIN - int "I2C2 sda pin number" - range 0 63 - default 23 - endif - config BSP_USING_I2C3 - bool "Enable I2C3 BUS" - if BSP_USING_I2C3 - comment "Notice: PB0 --> 16; PB1 --> 17" - config BSP_I2C3_SCL_PIN - int "i2c3 scl pin number" - range 0 63 - default 8 - config BSP_I2C3_SDA_PIN - int "I2C3 sda pin number" - range 0 63 - default 41 - endif - endif - menuconfig BSP_USING_SPI bool "Enable SPI" default n diff --git a/bsp/apm32/apm32e103ze-tinyboard/.ci/attachconfig/ci.attachconfig.yml b/bsp/apm32/apm32e103ze-tinyboard/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..7cd4362ffce --- /dev/null +++ b/bsp/apm32/apm32e103ze-tinyboard/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,16 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" + - CONFIG_RT_USING_SOFT_I2C3=y + - CONFIG_RT_SOFT_I2C3_SCL_PIN=8 + - CONFIG_RT_SOFT_I2C3_SDA_PIN=41 + - CONFIG_RT_SOFT_I2C3_BUS_NAME="swi2c3" diff --git a/bsp/apm32/apm32e103ze-tinyboard/board/Kconfig b/bsp/apm32/apm32e103ze-tinyboard/board/Kconfig index 4ff30f548e6..779f1eb6b12 100644 --- a/bsp/apm32/apm32e103ze-tinyboard/board/Kconfig +++ b/bsp/apm32/apm32e103ze-tinyboard/board/Kconfig @@ -87,54 +87,6 @@ menu "On-chip Peripheral Drivers" endchoice endif - menuconfig BSP_USING_I2C - bool "Enable I2C BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C - config BSP_USING_I2C1 - bool "Enable I2C1 BUS" - if BSP_USING_I2C1 - comment "Notice: PB6 --> 22; PB7 --> 23" - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 63 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 63 - default 23 - endif - config BSP_USING_I2C2 - bool "Enable I2C2 BUS" - if BSP_USING_I2C2 - comment "Notice: PA0 --> 0; PA1 --> 1" - config BSP_I2C2_SCL_PIN - int "i2c2 scl pin number" - range 0 63 - default 22 - config BSP_I2C2_SDA_PIN - int "I2C2 sda pin number" - range 0 63 - default 23 - endif - config BSP_USING_I2C3 - bool "Enable I2C3 BUS" - if BSP_USING_I2C3 - comment "Notice: PB0 --> 16; PB1 --> 17" - config BSP_I2C3_SCL_PIN - int "i2c3 scl pin number" - range 0 63 - default 8 - config BSP_I2C3_SDA_PIN - int "I2C3 sda pin number" - range 0 63 - default 41 - endif - endif - menuconfig BSP_USING_SPI bool "Enable SPI" default n diff --git a/bsp/apm32/apm32f030r8-miniboard/.ci/attachconfig/ci.attachconfig.yml b/bsp/apm32/apm32f030r8-miniboard/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..d88fbcccd5a --- /dev/null +++ b/bsp/apm32/apm32f030r8-miniboard/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,12 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=26 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=27 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" diff --git a/bsp/apm32/apm32f030r8-miniboard/board/Kconfig b/bsp/apm32/apm32f030r8-miniboard/board/Kconfig index c583254b835..a604c678991 100644 --- a/bsp/apm32/apm32f030r8-miniboard/board/Kconfig +++ b/bsp/apm32/apm32f030r8-miniboard/board/Kconfig @@ -68,41 +68,6 @@ menu "On-chip Peripheral Drivers" endchoice endif - menuconfig BSP_USING_I2C - bool "Enable I2C BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C - config BSP_USING_I2C1 - bool "Enable I2C1 BUS" - if BSP_USING_I2C1 - comment "Notice: PB10 --> 26; PB11 --> 27" - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 63 - default 26 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 63 - default 27 - endif - config BSP_USING_I2C2 - bool "Enable I2C2 BUS" - if BSP_USING_I2C2 - comment "Notice: PA0 --> 0; PA1 --> 1" - config BSP_I2C2_SCL_PIN - int "i2c2 scl pin number" - range 0 63 - default 22 - config BSP_I2C2_SDA_PIN - int "I2C2 sda pin number" - range 0 63 - default 23 - endif - endif - menuconfig BSP_USING_SPI bool "Enable SPI" default n diff --git a/bsp/apm32/apm32f051r8-evalboard/.ci/attachconfig/ci.attachconfig.yml b/bsp/apm32/apm32f051r8-evalboard/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..d88fbcccd5a --- /dev/null +++ b/bsp/apm32/apm32f051r8-evalboard/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,12 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=26 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=27 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" diff --git a/bsp/apm32/apm32f051r8-evalboard/board/Kconfig b/bsp/apm32/apm32f051r8-evalboard/board/Kconfig index aef90aa40b3..43e932315cd 100644 --- a/bsp/apm32/apm32f051r8-evalboard/board/Kconfig +++ b/bsp/apm32/apm32f051r8-evalboard/board/Kconfig @@ -17,8 +17,9 @@ menu "Onboard Peripheral Drivers" config BSP_USING_EEPROM bool "Enable I2C EEPROM (i2c1 software simulation)" - select BSP_USING_I2C - select BSP_USING_I2C1 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C1 default n endmenu @@ -80,41 +81,6 @@ menu "On-chip Peripheral Drivers" endchoice endif - menuconfig BSP_USING_I2C - bool "Enable I2C BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C - config BSP_USING_I2C1 - bool "Enable I2C1 BUS" - if BSP_USING_I2C1 - comment "Notice: PB10 --> 26; PB11 --> 27" - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 63 - default 26 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 63 - default 27 - endif - config BSP_USING_I2C2 - bool "Enable I2C2 BUS" - if BSP_USING_I2C2 - comment "Notice: PA0 --> 0; PA1 --> 1" - config BSP_I2C2_SCL_PIN - int "i2c2 scl pin number" - range 0 63 - default 22 - config BSP_I2C2_SDA_PIN - int "I2C2 sda pin number" - range 0 63 - default 23 - endif - endif - menuconfig BSP_USING_SPI bool "Enable SPI" default n diff --git a/bsp/apm32/apm32f072vb-miniboard/.ci/attachconfig/ci.attachconfig.yml b/bsp/apm32/apm32f072vb-miniboard/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..f08ad08d180 --- /dev/null +++ b/bsp/apm32/apm32f072vb-miniboard/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,16 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=26 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=27 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" + - CONFIG_RT_USING_SOFT_I2C3=y + - CONFIG_RT_SOFT_I2C3_SCL_PIN=8 + - CONFIG_RT_SOFT_I2C3_SDA_PIN=41 + - CONFIG_RT_SOFT_I2C3_BUS_NAME="swi2c3" diff --git a/bsp/apm32/apm32f072vb-miniboard/board/Kconfig b/bsp/apm32/apm32f072vb-miniboard/board/Kconfig index cae05eae10e..62bff968faa 100644 --- a/bsp/apm32/apm32f072vb-miniboard/board/Kconfig +++ b/bsp/apm32/apm32f072vb-miniboard/board/Kconfig @@ -68,54 +68,6 @@ menu "On-chip Peripheral Drivers" endchoice endif - menuconfig BSP_USING_I2C - bool "Enable I2C BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C - config BSP_USING_I2C1 - bool "Enable I2C1 BUS" - if BSP_USING_I2C1 - comment "Notice: PB10 --> 26; PB11 --> 27" - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 63 - default 26 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 63 - default 27 - endif - config BSP_USING_I2C2 - bool "Enable I2C2 BUS" - if BSP_USING_I2C2 - comment "Notice: PA0 --> 0; PA1 --> 1" - config BSP_I2C2_SCL_PIN - int "i2c2 scl pin number" - range 0 63 - default 22 - config BSP_I2C2_SDA_PIN - int "I2C2 sda pin number" - range 0 63 - default 23 - endif - config BSP_USING_I2C3 - bool "Enable I2C3 BUS" - if BSP_USING_I2C3 - comment "Notice: PB0 --> 16; PB1 --> 17" - config BSP_I2C3_SCL_PIN - int "i2c3 scl pin number" - range 0 63 - default 8 - config BSP_I2C3_SDA_PIN - int "I2C3 sda pin number" - range 0 63 - default 41 - endif - endif - menuconfig BSP_USING_SPI bool "Enable SPI" default n diff --git a/bsp/apm32/apm32f091vc-miniboard/.ci/attachconfig/ci.attachconfig.yml b/bsp/apm32/apm32f091vc-miniboard/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..f08ad08d180 --- /dev/null +++ b/bsp/apm32/apm32f091vc-miniboard/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,16 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=26 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=27 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" + - CONFIG_RT_USING_SOFT_I2C3=y + - CONFIG_RT_SOFT_I2C3_SCL_PIN=8 + - CONFIG_RT_SOFT_I2C3_SDA_PIN=41 + - CONFIG_RT_SOFT_I2C3_BUS_NAME="swi2c3" diff --git a/bsp/apm32/apm32f091vc-miniboard/board/Kconfig b/bsp/apm32/apm32f091vc-miniboard/board/Kconfig index 757ecc8b85e..5efbbdc7624 100644 --- a/bsp/apm32/apm32f091vc-miniboard/board/Kconfig +++ b/bsp/apm32/apm32f091vc-miniboard/board/Kconfig @@ -68,54 +68,6 @@ menu "On-chip Peripheral Drivers" endchoice endif - menuconfig BSP_USING_I2C - bool "Enable I2C BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C - config BSP_USING_I2C1 - bool "Enable I2C1 BUS" - if BSP_USING_I2C1 - comment "Notice: PB10 --> 26; PB11 --> 27" - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 63 - default 26 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 63 - default 27 - endif - config BSP_USING_I2C2 - bool "Enable I2C2 BUS" - if BSP_USING_I2C2 - comment "Notice: PA0 --> 0; PA1 --> 1" - config BSP_I2C2_SCL_PIN - int "i2c2 scl pin number" - range 0 63 - default 22 - config BSP_I2C2_SDA_PIN - int "I2C2 sda pin number" - range 0 63 - default 23 - endif - config BSP_USING_I2C3 - bool "Enable I2C3 BUS" - if BSP_USING_I2C3 - comment "Notice: PB0 --> 16; PB1 --> 17" - config BSP_I2C3_SCL_PIN - int "i2c3 scl pin number" - range 0 63 - default 8 - config BSP_I2C3_SDA_PIN - int "I2C3 sda pin number" - range 0 63 - default 41 - endif - endif - menuconfig BSP_USING_SPI bool "Enable SPI" default n diff --git a/bsp/apm32/apm32f103vb-miniboard/.ci/attachconfig/ci.attachconfig.yml b/bsp/apm32/apm32f103vb-miniboard/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..840e3e8093c --- /dev/null +++ b/bsp/apm32/apm32f103vb-miniboard/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,12 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=0 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=1 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" diff --git a/bsp/apm32/apm32f103vb-miniboard/board/Kconfig b/bsp/apm32/apm32f103vb-miniboard/board/Kconfig index 6abbc344154..ffd05dd6347 100644 --- a/bsp/apm32/apm32f103vb-miniboard/board/Kconfig +++ b/bsp/apm32/apm32f103vb-miniboard/board/Kconfig @@ -70,41 +70,6 @@ menu "On-chip Peripheral Drivers" endchoice endif - menuconfig BSP_USING_I2C - bool "Enable I2C BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C - config BSP_USING_I2C1 - bool "Enable I2C1 BUS" - if BSP_USING_I2C1 - comment "Notice: PB6 --> 22; PB7 --> 23" - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 63 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 63 - default 23 - endif - config BSP_USING_I2C2 - bool "Enable I2C2 BUS" - if BSP_USING_I2C2 - comment "Notice: PA0 --> 0; PA1 --> 1" - config BSP_I2C2_SCL_PIN - int "i2c2 scl pin number" - range 0 63 - default 0 - config BSP_I2C2_SDA_PIN - int "I2C2 sda pin number" - range 0 63 - default 1 - endif - endif - menuconfig BSP_USING_SPI bool "Enable SPI" default n diff --git a/bsp/apm32/apm32f103xe-minibroard/.ci/attachconfig/ci.attachconfig.yml b/bsp/apm32/apm32f103xe-minibroard/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..d626be14a57 --- /dev/null +++ b/bsp/apm32/apm32f103xe-minibroard/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,8 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/apm32/apm32f103xe-minibroard/board/Kconfig b/bsp/apm32/apm32f103xe-minibroard/board/Kconfig index 12182a2c48c..8db2c1aeb43 100644 --- a/bsp/apm32/apm32f103xe-minibroard/board/Kconfig +++ b/bsp/apm32/apm32f103xe-minibroard/board/Kconfig @@ -81,23 +81,6 @@ menu "On-chip Peripheral Drivers" endchoice endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 63 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 63 - default 23 - endif - menuconfig BSP_USING_SPI bool "Enable SPI" default n diff --git a/bsp/apm32/apm32f107vc-evalboard/.ci/attachconfig/ci.attachconfig.yml b/bsp/apm32/apm32f107vc-evalboard/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..840e3e8093c --- /dev/null +++ b/bsp/apm32/apm32f107vc-evalboard/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,12 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=0 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=1 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" diff --git a/bsp/apm32/apm32f107vc-evalboard/board/Kconfig b/bsp/apm32/apm32f107vc-evalboard/board/Kconfig index 31d7d7113a8..f7e097d48b6 100644 --- a/bsp/apm32/apm32f107vc-evalboard/board/Kconfig +++ b/bsp/apm32/apm32f107vc-evalboard/board/Kconfig @@ -25,8 +25,9 @@ menu "Onboard Peripheral Drivers" config BSP_USING_EEPROM bool "Enable I2C EEPROM (i2c1 software simulation)" - select BSP_USING_I2C - select BSP_USING_I2C1 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C1 default n config BSP_USING_ETH @@ -100,41 +101,6 @@ menu "On-chip Peripheral Drivers" endchoice endif - menuconfig BSP_USING_I2C - bool "Enable I2C BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C - config BSP_USING_I2C1 - bool "Enable I2C1 BUS" - if BSP_USING_I2C1 - comment "Notice: PB6 --> 22; PB7 --> 23" - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 63 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 63 - default 23 - endif - config BSP_USING_I2C2 - bool "Enable I2C2 BUS" - if BSP_USING_I2C2 - comment "Notice: PA0 --> 0; PA1 --> 1" - config BSP_I2C2_SCL_PIN - int "i2c2 scl pin number" - range 0 63 - default 0 - config BSP_I2C2_SDA_PIN - int "I2C2 sda pin number" - range 0 63 - default 1 - endif - endif - menuconfig BSP_USING_SPI bool "Enable SPI" default n diff --git a/bsp/apm32/apm32f407ig-minibroard/.ci/attachconfig/ci.attachconfig.yml b/bsp/apm32/apm32f407ig-minibroard/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..d626be14a57 --- /dev/null +++ b/bsp/apm32/apm32f407ig-minibroard/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,8 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/apm32/apm32f407ig-minibroard/board/Kconfig b/bsp/apm32/apm32f407ig-minibroard/board/Kconfig index d14dafe814c..e456f5fbf65 100644 --- a/bsp/apm32/apm32f407ig-minibroard/board/Kconfig +++ b/bsp/apm32/apm32f407ig-minibroard/board/Kconfig @@ -70,23 +70,6 @@ menu "On-chip Peripheral Drivers" endchoice endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 63 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 63 - default 23 - endif - menuconfig BSP_USING_SPI bool "Enable SPI" default n diff --git a/bsp/apm32/apm32f407zg-evalboard/.ci/attachconfig/ci.attachconfig.yml b/bsp/apm32/apm32f407zg-evalboard/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..840e3e8093c --- /dev/null +++ b/bsp/apm32/apm32f407zg-evalboard/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,12 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=0 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=1 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" diff --git a/bsp/apm32/apm32f407zg-evalboard/board/Kconfig b/bsp/apm32/apm32f407zg-evalboard/board/Kconfig index 3d933499a04..52c127e7d65 100644 --- a/bsp/apm32/apm32f407zg-evalboard/board/Kconfig +++ b/bsp/apm32/apm32f407zg-evalboard/board/Kconfig @@ -112,41 +112,6 @@ menu "On-chip Peripheral Drivers" endchoice endif - menuconfig BSP_USING_I2C - bool "Enable I2C BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C - config BSP_USING_I2C1 - bool "Enable I2C1 BUS" - if BSP_USING_I2C1 - comment "Notice: PB6 --> 22; PB7 --> 23" - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 63 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 63 - default 23 - endif - config BSP_USING_I2C2 - bool "Enable I2C2 BUS" - if BSP_USING_I2C2 - comment "Notice: PA0 --> 0; PA1 --> 1" - config BSP_I2C2_SCL_PIN - int "i2c2 scl pin number" - range 0 63 - default 0 - config BSP_I2C2_SDA_PIN - int "I2C2 sda pin number" - range 0 63 - default 1 - endif - endif - menuconfig BSP_USING_SPI bool "Enable SPI" default n diff --git a/bsp/apm32/apm32s103vb-miniboard/.ci/attachconfig/ci.attachconfig.yml b/bsp/apm32/apm32s103vb-miniboard/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..7cd4362ffce --- /dev/null +++ b/bsp/apm32/apm32s103vb-miniboard/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,16 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" + - CONFIG_RT_USING_SOFT_I2C3=y + - CONFIG_RT_SOFT_I2C3_SCL_PIN=8 + - CONFIG_RT_SOFT_I2C3_SDA_PIN=41 + - CONFIG_RT_SOFT_I2C3_BUS_NAME="swi2c3" diff --git a/bsp/apm32/apm32s103vb-miniboard/board/Kconfig b/bsp/apm32/apm32s103vb-miniboard/board/Kconfig index af6d754f8dd..5f0ad0a72e8 100644 --- a/bsp/apm32/apm32s103vb-miniboard/board/Kconfig +++ b/bsp/apm32/apm32s103vb-miniboard/board/Kconfig @@ -75,54 +75,6 @@ menu "On-chip Peripheral Drivers" endchoice endif - menuconfig BSP_USING_I2C - bool "Enable I2C BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C - config BSP_USING_I2C1 - bool "Enable I2C1 BUS" - if BSP_USING_I2C1 - comment "Notice: PB6 --> 22; PB7 --> 23" - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 63 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 63 - default 23 - endif - config BSP_USING_I2C2 - bool "Enable I2C2 BUS" - if BSP_USING_I2C2 - comment "Notice: PA0 --> 0; PA1 --> 1" - config BSP_I2C2_SCL_PIN - int "i2c2 scl pin number" - range 0 63 - default 22 - config BSP_I2C2_SDA_PIN - int "I2C2 sda pin number" - range 0 63 - default 23 - endif - config BSP_USING_I2C3 - bool "Enable I2C3 BUS" - if BSP_USING_I2C3 - comment "Notice: PB0 --> 16; PB1 --> 17" - config BSP_I2C3_SCL_PIN - int "i2c3 scl pin number" - range 0 63 - default 8 - config BSP_I2C3_SDA_PIN - int "I2C3 sda pin number" - range 0 63 - default 41 - endif - endif - menuconfig BSP_USING_SPI bool "Enable SPI" default n diff --git a/bsp/apm32/libraries/Drivers/SConscript b/bsp/apm32/libraries/Drivers/SConscript index a5d05ad8151..03b78577da1 100644 --- a/bsp/apm32/libraries/Drivers/SConscript +++ b/bsp/apm32/libraries/Drivers/SConscript @@ -26,10 +26,6 @@ if GetDepend(['RT_USING_DAC']): if GetDepend('BSP_USING_ONCHIP_RTC'): src += ['drv_rtc.c'] -if GetDepend(['RT_USING_I2C']): - if GetDepend('BSP_USING_I2C1') or GetDepend('BSP_USING_I2C2') or GetDepend('BSP_USING_I2C3') or GetDepend('BSP_USING_I2C4'): - src += ['drv_soft_i2c.c'] - if GetDepend(['RT_USING_SPI']): src += ['drv_spi.c'] diff --git a/bsp/apm32/libraries/Drivers/drv_soft_i2c.c b/bsp/apm32/libraries/Drivers/drv_soft_i2c.c deleted file mode 100644 index bb488c75b48..00000000000 --- a/bsp/apm32/libraries/Drivers/drv_soft_i2c.c +++ /dev/null @@ -1,255 +0,0 @@ -/* - * Copyright (c) 2006-2023, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2022-03-04 stevetong459 first version - */ - -#include "board.h" -#include - -#ifdef RT_USING_I2C - -#define DBG_TAG "drv.i2c" -#define DBG_LVL DBG_INFO -#include - -#if !defined(BSP_USING_I2C1) && !defined(BSP_USING_I2C2) && !defined(BSP_USING_I2C3) && !defined(BSP_USING_I2C4) - #error "Please define at least one BSP_USING_I2Cx" -#endif - -/* apm32 i2c config class */ -struct apm32_soft_i2c_config -{ - rt_uint8_t scl_pin; - rt_uint8_t sda_pin; - const char *bus_name; -}; - -/* apm32 i2c dirver class */ -struct apm32_soft_i2c -{ - struct rt_i2c_bit_ops ops; - struct rt_i2c_bus_device i2c_bus; -}; - -static const struct apm32_soft_i2c_config soft_i2c_config[] = -{ -#ifdef BSP_USING_I2C1 - { - BSP_I2C1_SCL_PIN, - BSP_I2C1_SDA_PIN, - "i2c1" - }, -#endif -#ifdef BSP_USING_I2C2 - { - BSP_I2C2_SCL_PIN, - BSP_I2C2_SDA_PIN, - "i2c2" - }, -#endif -#ifdef BSP_USING_I2C3 - { - BSP_I2C3_SCL_PIN, - BSP_I2C3_SDA_PIN, - "i2c3" - }, -#endif -#ifdef BSP_USING_I2C4 - { - BSP_I2C4_SCL_PIN, - BSP_I2C4_SDA_PIN, - "i2c4" - }, -#endif -}; - -static struct apm32_soft_i2c i2c_obj[sizeof(soft_i2c_config) / sizeof(soft_i2c_config[0])]; - -/** - * @brief This function will config gpio of soft i2c. - * - * @param i2c is a pointer to the object of soft i2c. - */ -static void apm32_soft_i2c_gpio_init(struct apm32_soft_i2c *i2c) -{ - struct apm32_soft_i2c_config *cfg = (struct apm32_soft_i2c_config *)i2c->ops.data; - - rt_pin_mode(cfg->scl_pin, PIN_MODE_OUTPUT_OD); - rt_pin_mode(cfg->sda_pin, PIN_MODE_OUTPUT_OD); - - rt_pin_write(cfg->scl_pin, PIN_HIGH); - rt_pin_write(cfg->sda_pin, PIN_HIGH); -} - -static void apm32_i2c_pin_init(void) -{ - rt_size_t obj_num = sizeof(i2c_obj) / sizeof(struct apm32_soft_i2c); - - for(rt_size_t i = 0; i < obj_num; i++) - { - apm32_soft_i2c_gpio_init(&i2c_obj[i]); - } -} - -/** - * @brief This function sets the sda pin. - * - * @param data is a pointer to the i2c config class. - * - * @param state is the level of sda pin. - */ -static void apm32_soft_i2c_set_sda(void *data, rt_int32_t state) -{ - struct apm32_soft_i2c_config *cfg = (struct apm32_soft_i2c_config *)data; - - rt_pin_write(cfg->sda_pin, state ? PIN_HIGH : PIN_LOW); -} - -/** - * @brief This function sets the scl pin. - * - * @param data is a pointer to the i2c config class. - * - * @param state is the level of scl pin. - */ -static void apm32_soft_i2c_set_scl(void *data, rt_int32_t state) -{ - struct apm32_soft_i2c_config *cfg = (struct apm32_soft_i2c_config *)data; - - rt_pin_write(cfg->scl_pin, state ? PIN_HIGH : PIN_LOW); -} - -/** - * @brief This function gets the sda pin state. - * - * @param data is a pointer to the i2c config class. - */ -static rt_int32_t apm32_soft_i2c_get_sda(void *data) -{ - struct apm32_soft_i2c_config *cfg = (struct apm32_soft_i2c_config *)data; - return rt_pin_read(cfg->sda_pin); -} - -/** - * @brief This function gets the scl pin state. - * - * @param data is a pointer to the i2c config class. - */ -static rt_int32_t apm32_soft_i2c_get_scl(void *data) -{ - struct apm32_soft_i2c_config *cfg = (struct apm32_soft_i2c_config *)data; - return rt_pin_read(cfg->scl_pin); -} - -/** - * @brief The time delay function in microseconds. - * - * @param us is the microseconds to delay. - */ -static void apm32_soft_i2c_udelay(rt_uint32_t us) -{ - rt_uint32_t count_old = SysTick->VAL; - rt_uint32_t count_now; - rt_uint32_t count = 0; - rt_uint32_t reload = SysTick->LOAD; - rt_uint32_t count_pre_us = (reload * RT_TICK_PER_SECOND) / 1000000; - - while (count_pre_us * us > count) - { - count_now = SysTick->VAL; - if (count_now != count_old) - { - if (count_now < count_old) - { - count += count_old - count_now; - } - else - { - count += reload - count_now + count_old; - } - count_old = count_now; - } - } -} - -/** - * @brief This function will unlock i2c, if it is locked. - * - * @param cfg is a pointer to i2c config class. - * - * @return RT_EOK indicates successful unlock, other value indicates failed. - */ -static rt_err_t apm32_i2c_bus_unlock(const struct apm32_soft_i2c_config *cfg) -{ - rt_int32_t i = 0; - - if (PIN_LOW == rt_pin_read(cfg->sda_pin)) - { - while (i++ < 9) - { - rt_pin_write(cfg->scl_pin, PIN_HIGH); - apm32_soft_i2c_udelay(100); - rt_pin_write(cfg->scl_pin, PIN_LOW); - apm32_soft_i2c_udelay(100); - } - } - if (PIN_LOW == rt_pin_read(cfg->sda_pin)) - { - return -RT_ERROR; - } - - return RT_EOK; -} - -static const struct rt_i2c_bit_ops apm32_bit_ops_default = -{ - .data = RT_NULL, - .pin_init = apm32_i2c_pin_init, - .set_sda = apm32_soft_i2c_set_sda, - .set_scl = apm32_soft_i2c_set_scl, - .get_sda = apm32_soft_i2c_get_sda, - .get_scl = apm32_soft_i2c_get_scl, - .udelay = apm32_soft_i2c_udelay, - .delay_us = 1, - .timeout = 100, - .i2c_pin_init_flag = RT_FALSE -}; - -/** - * @brief I2C initialization function. - * - * @return RT_EOK indicates successful initialization, other value indicates failed; - */ -int rt_hw_i2c_init(void) -{ - rt_size_t obj_num = sizeof(i2c_obj) / sizeof(struct apm32_soft_i2c); - rt_err_t result; - - for (rt_size_t i = 0; i < obj_num; i++) - { - i2c_obj[i].ops = apm32_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); - - apm32_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_pin, - soft_i2c_config[i].sda_pin); - } - - return RT_EOK; -} -INIT_BOARD_EXPORT(rt_hw_i2c_init); - -#endif /* RT_USING_I2C */ diff --git a/bsp/at32/at32a403a-start/.ci/attachconfig/ci.attachconfig.yml b/bsp/at32/at32a403a-start/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..f726ac26135 --- /dev/null +++ b/bsp/at32/at32a403a-start/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,16 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=26 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=27 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" + - CONFIG_RT_USING_SOFT_I2C3=y + - CONFIG_RT_SOFT_I2C3_SCL_PIN=8 + - CONFIG_RT_SOFT_I2C3_SDA_PIN=41 + - CONFIG_RT_SOFT_I2C3_BUS_NAME="swi2c3" diff --git a/bsp/at32/at32a403a-start/board/Kconfig b/bsp/at32/at32a403a-start/board/Kconfig index b7d8486d273..1d8a9f8fb6d 100644 --- a/bsp/at32/at32a403a-start/board/Kconfig +++ b/bsp/at32/at32a403a-start/board/Kconfig @@ -238,51 +238,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C - bool "Enable I2C BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C - config BSP_USING_I2C1 - bool "Enable I2C1 BUS" - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 63 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 63 - default 23 - endif - config BSP_USING_I2C2 - bool "Enable I2C2 BUS" - if BSP_USING_I2C2 - config BSP_I2C2_SCL_PIN - int "i2c2 scl pin number" - range 0 63 - default 26 - config BSP_I2C2_SDA_PIN - int "I2C2 sda pin number" - range 0 63 - default 27 - endif - config BSP_USING_I2C3 - bool "Enable I2C3 BUS" - if BSP_USING_I2C3 - config BSP_I2C3_SCL_PIN - int "i2c3 scl pin number" - range 0 63 - default 8 - config BSP_I2C3_SDA_PIN - int "I2C3 sda pin number" - range 0 63 - default 41 - endif - endif - menuconfig BSP_USING_HARD_I2C bool "Enable I2C BUS (hardware driver)" default n diff --git a/bsp/at32/at32a423-start/.ci/attachconfig/ci.attachconfig.yml b/bsp/at32/at32a423-start/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..8b33403ed07 --- /dev/null +++ b/bsp/at32/at32a423-start/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,12 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=26 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=27 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" diff --git a/bsp/at32/at32a423-start/board/Kconfig b/bsp/at32/at32a423-start/board/Kconfig index 6da7a57f63e..346aceac2da 100644 --- a/bsp/at32/at32a423-start/board/Kconfig +++ b/bsp/at32/at32a423-start/board/Kconfig @@ -262,39 +262,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C - bool "Enable I2C BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C - config BSP_USING_I2C1 - bool "Enable I2C1 BUS" - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 63 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 63 - default 23 - endif - config BSP_USING_I2C2 - bool "Enable I2C2 BUS" - if BSP_USING_I2C2 - config BSP_I2C2_SCL_PIN - int "i2c2 scl pin number" - range 0 63 - default 26 - config BSP_I2C2_SDA_PIN - int "I2C2 sda pin number" - range 0 63 - default 27 - endif - endif - menuconfig BSP_USING_HARD_I2C bool "Enable I2C BUS (hardware driver)" default n diff --git a/bsp/at32/at32f402-start/.ci/attachconfig/ci.attachconfig.yml b/bsp/at32/at32f402-start/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..f726ac26135 --- /dev/null +++ b/bsp/at32/at32f402-start/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,16 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=26 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=27 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" + - CONFIG_RT_USING_SOFT_I2C3=y + - CONFIG_RT_SOFT_I2C3_SCL_PIN=8 + - CONFIG_RT_SOFT_I2C3_SDA_PIN=41 + - CONFIG_RT_SOFT_I2C3_BUS_NAME="swi2c3" diff --git a/bsp/at32/at32f402-start/board/Kconfig b/bsp/at32/at32f402-start/board/Kconfig index 58d9aa1a640..4f1ef1db88b 100644 --- a/bsp/at32/at32f402-start/board/Kconfig +++ b/bsp/at32/at32f402-start/board/Kconfig @@ -261,51 +261,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C - bool "Enable I2C BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C - config BSP_USING_I2C1 - bool "Enable I2C1 BUS" - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 63 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 63 - default 23 - endif - config BSP_USING_I2C2 - bool "Enable I2C2 BUS" - if BSP_USING_I2C2 - config BSP_I2C2_SCL_PIN - int "i2c2 scl pin number" - range 0 63 - default 26 - config BSP_I2C2_SDA_PIN - int "I2C2 sda pin number" - range 0 63 - default 27 - endif - config BSP_USING_I2C3 - bool "Enable I2C3 BUS" - if BSP_USING_I2C3 - config BSP_I2C3_SCL_PIN - int "i2c3 scl pin number" - range 0 63 - default 8 - config BSP_I2C3_SDA_PIN - int "I2C3 sda pin number" - range 0 63 - default 41 - endif - endif - menuconfig BSP_USING_HARD_I2C bool "Enable I2C BUS (hardware driver)" default n diff --git a/bsp/at32/at32f403a-start/.ci/attachconfig/ci.attachconfig.yml b/bsp/at32/at32f403a-start/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..f726ac26135 --- /dev/null +++ b/bsp/at32/at32f403a-start/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,16 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=26 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=27 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" + - CONFIG_RT_USING_SOFT_I2C3=y + - CONFIG_RT_SOFT_I2C3_SCL_PIN=8 + - CONFIG_RT_SOFT_I2C3_SDA_PIN=41 + - CONFIG_RT_SOFT_I2C3_BUS_NAME="swi2c3" diff --git a/bsp/at32/at32f403a-start/board/Kconfig b/bsp/at32/at32f403a-start/board/Kconfig index a12ff97a970..56148713cce 100644 --- a/bsp/at32/at32f403a-start/board/Kconfig +++ b/bsp/at32/at32f403a-start/board/Kconfig @@ -238,51 +238,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C - bool "Enable I2C BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C - config BSP_USING_I2C1 - bool "Enable I2C1 BUS" - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 63 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 63 - default 23 - endif - config BSP_USING_I2C2 - bool "Enable I2C2 BUS" - if BSP_USING_I2C2 - config BSP_I2C2_SCL_PIN - int "i2c2 scl pin number" - range 0 63 - default 26 - config BSP_I2C2_SDA_PIN - int "I2C2 sda pin number" - range 0 63 - default 27 - endif - config BSP_USING_I2C3 - bool "Enable I2C3 BUS" - if BSP_USING_I2C3 - config BSP_I2C3_SCL_PIN - int "i2c3 scl pin number" - range 0 63 - default 8 - config BSP_I2C3_SDA_PIN - int "I2C3 sda pin number" - range 0 63 - default 41 - endif - endif - menuconfig BSP_USING_HARD_I2C bool "Enable I2C BUS (hardware driver)" default n diff --git a/bsp/at32/at32f405-start/.ci/attachconfig/ci.attachconfig.yml b/bsp/at32/at32f405-start/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..f726ac26135 --- /dev/null +++ b/bsp/at32/at32f405-start/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,16 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=26 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=27 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" + - CONFIG_RT_USING_SOFT_I2C3=y + - CONFIG_RT_SOFT_I2C3_SCL_PIN=8 + - CONFIG_RT_SOFT_I2C3_SDA_PIN=41 + - CONFIG_RT_SOFT_I2C3_BUS_NAME="swi2c3" diff --git a/bsp/at32/at32f405-start/board/Kconfig b/bsp/at32/at32f405-start/board/Kconfig index 50f523cd4cf..23f8a457573 100644 --- a/bsp/at32/at32f405-start/board/Kconfig +++ b/bsp/at32/at32f405-start/board/Kconfig @@ -280,51 +280,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C - bool "Enable I2C BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C - config BSP_USING_I2C1 - bool "Enable I2C1 BUS" - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 63 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 63 - default 23 - endif - config BSP_USING_I2C2 - bool "Enable I2C2 BUS" - if BSP_USING_I2C2 - config BSP_I2C2_SCL_PIN - int "i2c2 scl pin number" - range 0 63 - default 26 - config BSP_I2C2_SDA_PIN - int "I2C2 sda pin number" - range 0 63 - default 27 - endif - config BSP_USING_I2C3 - bool "Enable I2C3 BUS" - if BSP_USING_I2C3 - config BSP_I2C3_SCL_PIN - int "i2c3 scl pin number" - range 0 63 - default 8 - config BSP_I2C3_SDA_PIN - int "I2C3 sda pin number" - range 0 63 - default 41 - endif - endif - menuconfig BSP_USING_HARD_I2C bool "Enable I2C BUS (hardware driver)" default n diff --git a/bsp/at32/at32f407-start/.ci/attachconfig/ci.attachconfig.yml b/bsp/at32/at32f407-start/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..f726ac26135 --- /dev/null +++ b/bsp/at32/at32f407-start/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,16 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=26 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=27 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" + - CONFIG_RT_USING_SOFT_I2C3=y + - CONFIG_RT_SOFT_I2C3_SCL_PIN=8 + - CONFIG_RT_SOFT_I2C3_SDA_PIN=41 + - CONFIG_RT_SOFT_I2C3_BUS_NAME="swi2c3" diff --git a/bsp/at32/at32f407-start/board/Kconfig b/bsp/at32/at32f407-start/board/Kconfig index c4c7e650488..a5d6e133455 100644 --- a/bsp/at32/at32f407-start/board/Kconfig +++ b/bsp/at32/at32f407-start/board/Kconfig @@ -261,51 +261,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C - bool "Enable I2C BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C - config BSP_USING_I2C1 - bool "Enable I2C1 BUS" - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 63 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 63 - default 23 - endif - config BSP_USING_I2C2 - bool "Enable I2C2 BUS" - if BSP_USING_I2C2 - config BSP_I2C2_SCL_PIN - int "i2c2 scl pin number" - range 0 63 - default 26 - config BSP_I2C2_SDA_PIN - int "I2C2 sda pin number" - range 0 63 - default 27 - endif - config BSP_USING_I2C3 - bool "Enable I2C3 BUS" - if BSP_USING_I2C3 - config BSP_I2C3_SCL_PIN - int "i2c3 scl pin number" - range 0 63 - default 8 - config BSP_I2C3_SDA_PIN - int "I2C3 sda pin number" - range 0 63 - default 41 - endif - endif - menuconfig BSP_USING_HARD_I2C bool "Enable I2C BUS (hardware driver)" default n diff --git a/bsp/at32/at32f413-start/.ci/attachconfig/ci.attachconfig.yml b/bsp/at32/at32f413-start/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..8b33403ed07 --- /dev/null +++ b/bsp/at32/at32f413-start/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,12 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=26 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=27 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" diff --git a/bsp/at32/at32f413-start/board/Kconfig b/bsp/at32/at32f413-start/board/Kconfig index b809dd5702e..07a999027eb 100644 --- a/bsp/at32/at32f413-start/board/Kconfig +++ b/bsp/at32/at32f413-start/board/Kconfig @@ -238,39 +238,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C - bool "Enable I2C BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C - config BSP_USING_I2C1 - bool "Enable I2C1 BUS" - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 63 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 63 - default 23 - endif - config BSP_USING_I2C2 - bool "Enable I2C2 BUS" - if BSP_USING_I2C2 - config BSP_I2C2_SCL_PIN - int "i2c2 scl pin number" - range 0 63 - default 26 - config BSP_I2C2_SDA_PIN - int "I2C2 sda pin number" - range 0 63 - default 27 - endif - endif - menuconfig BSP_USING_HARD_I2C bool "Enable I2C BUS (hardware driver)" default n diff --git a/bsp/at32/at32f415-start/.ci/attachconfig/ci.attachconfig.yml b/bsp/at32/at32f415-start/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..8b33403ed07 --- /dev/null +++ b/bsp/at32/at32f415-start/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,12 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=26 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=27 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" diff --git a/bsp/at32/at32f415-start/board/Kconfig b/bsp/at32/at32f415-start/board/Kconfig index fd29cc332e7..08ad343d4dd 100644 --- a/bsp/at32/at32f415-start/board/Kconfig +++ b/bsp/at32/at32f415-start/board/Kconfig @@ -253,39 +253,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C - bool "Enable I2C BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C - config BSP_USING_I2C1 - bool "Enable I2C1 BUS" - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 63 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 63 - default 23 - endif - config BSP_USING_I2C2 - bool "Enable I2C2 BUS" - if BSP_USING_I2C2 - config BSP_I2C2_SCL_PIN - int "i2c2 scl pin number" - range 0 63 - default 26 - config BSP_I2C2_SDA_PIN - int "I2C2 sda pin number" - range 0 63 - default 27 - endif - endif - menuconfig BSP_USING_HARD_I2C bool "Enable I2C BUS (hardware driver)" default n diff --git a/bsp/at32/at32f421-start/.ci/attachconfig/ci.attachconfig.yml b/bsp/at32/at32f421-start/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..8b33403ed07 --- /dev/null +++ b/bsp/at32/at32f421-start/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,12 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=26 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=27 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" diff --git a/bsp/at32/at32f421-start/board/Kconfig b/bsp/at32/at32f421-start/board/Kconfig index a3e4f931c21..f7824beb6bd 100644 --- a/bsp/at32/at32f421-start/board/Kconfig +++ b/bsp/at32/at32f421-start/board/Kconfig @@ -115,6 +115,7 @@ menu "On-chip Peripheral Drivers" depends on RT_USING_SERIAL_V2 && BSP_UART2_RX_USING_DMA default 64 endif + endif menuconfig BSP_USING_PWM bool "Enable PWM" @@ -181,39 +182,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C - bool "Enable I2C BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C - config BSP_USING_I2C1 - bool "Enable I2C1 BUS" - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 63 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 63 - default 23 - endif - config BSP_USING_I2C2 - bool "Enable I2C2 BUS" - if BSP_USING_I2C2 - config BSP_I2C2_SCL_PIN - int "i2c2 scl pin number" - range 0 63 - default 26 - config BSP_I2C2_SDA_PIN - int "I2C2 sda pin number" - range 0 63 - default 27 - endif - endif - menuconfig BSP_USING_HARD_I2C bool "Enable I2C BUS (hardware driver)" default n diff --git a/bsp/at32/at32f423-start/.ci/attachconfig/ci.attachconfig.yml b/bsp/at32/at32f423-start/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..8b33403ed07 --- /dev/null +++ b/bsp/at32/at32f423-start/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,12 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=26 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=27 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" diff --git a/bsp/at32/at32f423-start/board/Kconfig b/bsp/at32/at32f423-start/board/Kconfig index 51da2462ab5..61b4c555c24 100644 --- a/bsp/at32/at32f423-start/board/Kconfig +++ b/bsp/at32/at32f423-start/board/Kconfig @@ -262,39 +262,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C - bool "Enable I2C BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C - config BSP_USING_I2C1 - bool "Enable I2C1 BUS" - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 63 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 63 - default 23 - endif - config BSP_USING_I2C2 - bool "Enable I2C2 BUS" - if BSP_USING_I2C2 - config BSP_I2C2_SCL_PIN - int "i2c2 scl pin number" - range 0 63 - default 26 - config BSP_I2C2_SDA_PIN - int "I2C2 sda pin number" - range 0 63 - default 27 - endif - endif - menuconfig BSP_USING_HARD_I2C bool "Enable I2C BUS (hardware driver)" default n diff --git a/bsp/at32/at32f425-start/.ci/attachconfig/ci.attachconfig.yml b/bsp/at32/at32f425-start/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..8b33403ed07 --- /dev/null +++ b/bsp/at32/at32f425-start/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,12 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=26 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=27 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" diff --git a/bsp/at32/at32f425-start/board/Kconfig b/bsp/at32/at32f425-start/board/Kconfig index cc47c543293..9fcc1dcab82 100644 --- a/bsp/at32/at32f425-start/board/Kconfig +++ b/bsp/at32/at32f425-start/board/Kconfig @@ -262,39 +262,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C - bool "Enable I2C BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C - config BSP_USING_I2C1 - bool "Enable I2C1 BUS" - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 63 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 63 - default 23 - endif - config BSP_USING_I2C2 - bool "Enable I2C2 BUS" - if BSP_USING_I2C2 - config BSP_I2C2_SCL_PIN - int "i2c2 scl pin number" - range 0 63 - default 26 - config BSP_I2C2_SDA_PIN - int "I2C2 sda pin number" - range 0 63 - default 27 - endif - endif - menuconfig BSP_USING_HARD_I2C bool "Enable I2C BUS (hardware driver)" default n diff --git a/bsp/at32/at32f435-start/.ci/attachconfig/ci.attachconfig.yml b/bsp/at32/at32f435-start/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..f726ac26135 --- /dev/null +++ b/bsp/at32/at32f435-start/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,16 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=26 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=27 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" + - CONFIG_RT_USING_SOFT_I2C3=y + - CONFIG_RT_SOFT_I2C3_SCL_PIN=8 + - CONFIG_RT_SOFT_I2C3_SDA_PIN=41 + - CONFIG_RT_SOFT_I2C3_BUS_NAME="swi2c3" diff --git a/bsp/at32/at32f435-start/board/Kconfig b/bsp/at32/at32f435-start/board/Kconfig index f00c2718f45..5b1d4808bce 100644 --- a/bsp/at32/at32f435-start/board/Kconfig +++ b/bsp/at32/at32f435-start/board/Kconfig @@ -287,51 +287,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C - bool "Enable I2C BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C - config BSP_USING_I2C1 - bool "Enable I2C1 BUS" - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 63 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 63 - default 23 - endif - config BSP_USING_I2C2 - bool "Enable I2C2 BUS" - if BSP_USING_I2C2 - config BSP_I2C2_SCL_PIN - int "i2c2 scl pin number" - range 0 63 - default 26 - config BSP_I2C2_SDA_PIN - int "I2C2 sda pin number" - range 0 63 - default 27 - endif - config BSP_USING_I2C3 - bool "Enable I2C3 BUS" - if BSP_USING_I2C3 - config BSP_I2C3_SCL_PIN - int "i2c3 scl pin number" - range 0 63 - default 8 - config BSP_I2C3_SDA_PIN - int "I2C3 sda pin number" - range 0 63 - default 41 - endif - endif - menuconfig BSP_USING_HARD_I2C bool "Enable I2C BUS (hardware driver)" default n diff --git a/bsp/at32/at32f437-start/.ci/attachconfig/ci.attachconfig.yml b/bsp/at32/at32f437-start/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..f726ac26135 --- /dev/null +++ b/bsp/at32/at32f437-start/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,16 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=26 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=27 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" + - CONFIG_RT_USING_SOFT_I2C3=y + - CONFIG_RT_SOFT_I2C3_SCL_PIN=8 + - CONFIG_RT_SOFT_I2C3_SDA_PIN=41 + - CONFIG_RT_SOFT_I2C3_BUS_NAME="swi2c3" diff --git a/bsp/at32/at32f437-start/board/Kconfig b/bsp/at32/at32f437-start/board/Kconfig index da90f3c231e..28e7610fc99 100644 --- a/bsp/at32/at32f437-start/board/Kconfig +++ b/bsp/at32/at32f437-start/board/Kconfig @@ -310,51 +310,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C - bool "Enable I2C BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C - config BSP_USING_I2C1 - bool "Enable I2C1 BUS" - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 63 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 63 - default 23 - endif - config BSP_USING_I2C2 - bool "Enable I2C2 BUS" - if BSP_USING_I2C2 - config BSP_I2C2_SCL_PIN - int "i2c2 scl pin number" - range 0 63 - default 26 - config BSP_I2C2_SDA_PIN - int "I2C2 sda pin number" - range 0 63 - default 27 - endif - config BSP_USING_I2C3 - bool "Enable I2C3 BUS" - if BSP_USING_I2C3 - config BSP_I2C3_SCL_PIN - int "i2c3 scl pin number" - range 0 63 - default 8 - config BSP_I2C3_SDA_PIN - int "I2C3 sda pin number" - range 0 63 - default 41 - endif - endif - menuconfig BSP_USING_HARD_I2C bool "Enable I2C BUS (hardware driver)" default n diff --git a/bsp/at32/at32f455-start/.ci/attachconfig/ci.attachconfig.yml b/bsp/at32/at32f455-start/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..f726ac26135 --- /dev/null +++ b/bsp/at32/at32f455-start/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,16 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=26 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=27 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" + - CONFIG_RT_USING_SOFT_I2C3=y + - CONFIG_RT_SOFT_I2C3_SCL_PIN=8 + - CONFIG_RT_SOFT_I2C3_SDA_PIN=41 + - CONFIG_RT_SOFT_I2C3_BUS_NAME="swi2c3" diff --git a/bsp/at32/at32f455-start/board/Kconfig b/bsp/at32/at32f455-start/board/Kconfig index c8f39b0b807..9349a0ecc15 100644 --- a/bsp/at32/at32f455-start/board/Kconfig +++ b/bsp/at32/at32f455-start/board/Kconfig @@ -273,51 +273,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C - bool "Enable I2C BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C - config BSP_USING_I2C1 - bool "Enable I2C1 BUS" - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 63 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 63 - default 23 - endif - config BSP_USING_I2C2 - bool "Enable I2C2 BUS" - if BSP_USING_I2C2 - config BSP_I2C2_SCL_PIN - int "i2c2 scl pin number" - range 0 63 - default 26 - config BSP_I2C2_SDA_PIN - int "I2C2 sda pin number" - range 0 63 - default 27 - endif - config BSP_USING_I2C3 - bool "Enable I2C3 BUS" - if BSP_USING_I2C3 - config BSP_I2C3_SCL_PIN - int "i2c3 scl pin number" - range 0 63 - default 8 - config BSP_I2C3_SDA_PIN - int "I2C3 sda pin number" - range 0 63 - default 41 - endif - endif - menuconfig BSP_USING_HARD_I2C bool "Enable I2C BUS (hardware driver)" default n diff --git a/bsp/at32/at32f456-start/.ci/attachconfig/ci.attachconfig.yml b/bsp/at32/at32f456-start/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..f726ac26135 --- /dev/null +++ b/bsp/at32/at32f456-start/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,16 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=26 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=27 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" + - CONFIG_RT_USING_SOFT_I2C3=y + - CONFIG_RT_SOFT_I2C3_SCL_PIN=8 + - CONFIG_RT_SOFT_I2C3_SDA_PIN=41 + - CONFIG_RT_SOFT_I2C3_BUS_NAME="swi2c3" diff --git a/bsp/at32/at32f456-start/board/Kconfig b/bsp/at32/at32f456-start/board/Kconfig index b474dba7710..1ebb3b260b3 100644 --- a/bsp/at32/at32f456-start/board/Kconfig +++ b/bsp/at32/at32f456-start/board/Kconfig @@ -273,51 +273,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C - bool "Enable I2C BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C - config BSP_USING_I2C1 - bool "Enable I2C1 BUS" - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 63 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 63 - default 23 - endif - config BSP_USING_I2C2 - bool "Enable I2C2 BUS" - if BSP_USING_I2C2 - config BSP_I2C2_SCL_PIN - int "i2c2 scl pin number" - range 0 63 - default 26 - config BSP_I2C2_SDA_PIN - int "I2C2 sda pin number" - range 0 63 - default 27 - endif - config BSP_USING_I2C3 - bool "Enable I2C3 BUS" - if BSP_USING_I2C3 - config BSP_I2C3_SCL_PIN - int "i2c3 scl pin number" - range 0 63 - default 8 - config BSP_I2C3_SDA_PIN - int "I2C3 sda pin number" - range 0 63 - default 41 - endif - endif - menuconfig BSP_USING_HARD_I2C bool "Enable I2C BUS (hardware driver)" default n diff --git a/bsp/at32/at32f457-start/.ci/attachconfig/ci.attachconfig.yml b/bsp/at32/at32f457-start/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..f726ac26135 --- /dev/null +++ b/bsp/at32/at32f457-start/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,16 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=26 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=27 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" + - CONFIG_RT_USING_SOFT_I2C3=y + - CONFIG_RT_SOFT_I2C3_SCL_PIN=8 + - CONFIG_RT_SOFT_I2C3_SDA_PIN=41 + - CONFIG_RT_SOFT_I2C3_BUS_NAME="swi2c3" diff --git a/bsp/at32/at32f457-start/board/Kconfig b/bsp/at32/at32f457-start/board/Kconfig index 2fce389a827..d554be797f7 100644 --- a/bsp/at32/at32f457-start/board/Kconfig +++ b/bsp/at32/at32f457-start/board/Kconfig @@ -273,51 +273,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C - bool "Enable I2C BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C - config BSP_USING_I2C1 - bool "Enable I2C1 BUS" - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 63 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 63 - default 23 - endif - config BSP_USING_I2C2 - bool "Enable I2C2 BUS" - if BSP_USING_I2C2 - config BSP_I2C2_SCL_PIN - int "i2c2 scl pin number" - range 0 63 - default 26 - config BSP_I2C2_SDA_PIN - int "I2C2 sda pin number" - range 0 63 - default 27 - endif - config BSP_USING_I2C3 - bool "Enable I2C3 BUS" - if BSP_USING_I2C3 - config BSP_I2C3_SCL_PIN - int "i2c3 scl pin number" - range 0 63 - default 8 - config BSP_I2C3_SDA_PIN - int "I2C3 sda pin number" - range 0 63 - default 41 - endif - endif - menuconfig BSP_USING_HARD_I2C bool "Enable I2C BUS (hardware driver)" default n diff --git a/bsp/at32/at32m412-start/.ci/attachconfig/ci.attachconfig.yml b/bsp/at32/at32m412-start/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..8b33403ed07 --- /dev/null +++ b/bsp/at32/at32m412-start/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,12 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=26 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=27 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" diff --git a/bsp/at32/at32m412-start/board/Kconfig b/bsp/at32/at32m412-start/board/Kconfig index dd541b01458..fa7772bd473 100644 --- a/bsp/at32/at32m412-start/board/Kconfig +++ b/bsp/at32/at32m412-start/board/Kconfig @@ -115,6 +115,7 @@ menu "On-chip Peripheral Drivers" depends on RT_USING_SERIAL_V2 && BSP_UART2_RX_USING_DMA default 64 endif + endif menuconfig BSP_USING_PWM bool "Enable PWM" @@ -181,39 +182,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C - bool "Enable I2C BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C - config BSP_USING_I2C1 - bool "Enable I2C1 BUS" - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 63 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 63 - default 23 - endif - config BSP_USING_I2C2 - bool "Enable I2C2 BUS" - if BSP_USING_I2C2 - config BSP_I2C2_SCL_PIN - int "i2c2 scl pin number" - range 0 63 - default 26 - config BSP_I2C2_SDA_PIN - int "I2C2 sda pin number" - range 0 63 - default 27 - endif - endif - menuconfig BSP_USING_HARD_I2C bool "Enable I2C BUS (hardware driver)" default n diff --git a/bsp/at32/at32m416-start/.ci/attachconfig/ci.attachconfig.yml b/bsp/at32/at32m416-start/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..8b33403ed07 --- /dev/null +++ b/bsp/at32/at32m416-start/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,12 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=26 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=27 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" diff --git a/bsp/at32/at32m416-start/board/Kconfig b/bsp/at32/at32m416-start/board/Kconfig index 8414740adf6..34fc0302d0c 100644 --- a/bsp/at32/at32m416-start/board/Kconfig +++ b/bsp/at32/at32m416-start/board/Kconfig @@ -115,6 +115,7 @@ menu "On-chip Peripheral Drivers" depends on RT_USING_SERIAL_V2 && BSP_UART2_RX_USING_DMA default 64 endif + endif menuconfig BSP_USING_PWM bool "Enable PWM" @@ -181,39 +182,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C - bool "Enable I2C BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C - config BSP_USING_I2C1 - bool "Enable I2C1 BUS" - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 63 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 63 - default 23 - endif - config BSP_USING_I2C2 - bool "Enable I2C2 BUS" - if BSP_USING_I2C2 - config BSP_I2C2_SCL_PIN - int "i2c2 scl pin number" - range 0 63 - default 26 - config BSP_I2C2_SDA_PIN - int "I2C2 sda pin number" - range 0 63 - default 27 - endif - endif - menuconfig BSP_USING_HARD_I2C bool "Enable I2C BUS (hardware driver)" default n diff --git a/bsp/at32/libraries/rt_drivers/SConscript b/bsp/at32/libraries/rt_drivers/SConscript index 090fde5febe..fa6fa3dec58 100644 --- a/bsp/at32/libraries/rt_drivers/SConscript +++ b/bsp/at32/libraries/rt_drivers/SConscript @@ -40,10 +40,6 @@ if GetDepend('BSP_USING_SDRAM'): if GetDepend(['BSP_USING_EMAC', 'RT_USING_LWIP']): src += ['drv_emac.c'] -if GetDepend(['RT_USING_I2C', 'RT_USING_I2C_BITOPS']): - if GetDepend('BSP_USING_I2C1') or GetDepend('BSP_USING_I2C2') or GetDepend('BSP_USING_I2C3') or GetDepend('BSP_USING_I2C4'): - src += ['drv_soft_i2c.c'] - if GetDepend(['BSP_USING_HARD_I2C']): src += Glob('drv_hard_i2c.c') diff --git a/bsp/at32/libraries/rt_drivers/drv_soft_i2c.c b/bsp/at32/libraries/rt_drivers/drv_soft_i2c.c deleted file mode 100644 index 711d1e66f52..00000000000 --- a/bsp/at32/libraries/rt_drivers/drv_soft_i2c.c +++ /dev/null @@ -1,231 +0,0 @@ -/* - * Copyright (c) 2006-2021, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2022-05-16 shelton first version - */ - -#include "drv_common.h" -#include "drv_soft_i2c.h" - -#ifdef RT_USING_I2C - -#define LOG_TAG "drv.i2c" -#include - -#if !defined(BSP_USING_I2C1) && !defined(BSP_USING_I2C2) && \ - !defined(BSP_USING_I2C3) -#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 at32_soft_i2c_config soft_i2c_config[] = -{ -#ifdef BSP_USING_I2C1 - I2C1_BUS_CONFIG, -#endif -#ifdef BSP_USING_I2C2 - I2C2_BUS_CONFIG, -#endif -#ifdef BSP_USING_I2C3 - I2C3_BUS_CONFIG, -#endif -}; - -static struct at32_i2c i2c_obj[sizeof(soft_i2c_config) / sizeof(soft_i2c_config[0])]; - -/** - * this function initializes the i2c pin. - * - * @param at32 i2c dirver class. - */ -static void at32_i2c_gpio_init(struct at32_i2c *i2c) -{ - struct at32_soft_i2c_config* cfg = (struct at32_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 at32_i2c_pin_init(void) -{ - rt_size_t obj_num = sizeof(i2c_obj) / sizeof(struct at32_i2c); - - for(rt_size_t i = 0; i < obj_num; i++) - { - at32_i2c_gpio_init(&i2c_obj[i]); - } -} - -/** - * this function sets the sda pin. - * - * @param at32 config class. - * @param the sda pin state. - */ -static void at32_set_sda(void *data, rt_int32_t state) -{ - struct at32_soft_i2c_config* cfg = (struct at32_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 at32 config class. - * @param the scl pin state. - */ -static void at32_set_scl(void *data, rt_int32_t state) -{ - struct at32_soft_i2c_config* cfg = (struct at32_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 at32_get_sda(void *data) -{ - struct at32_soft_i2c_config* cfg = (struct at32_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 at32_get_scl(void *data) -{ - struct at32_soft_i2c_config* cfg = (struct at32_soft_i2c_config*)data; - return rt_pin_read(cfg->scl); -} - -/** - * the time delay function. - * - * @param microseconds. - */ -static void at32_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 at32_bit_ops_default = -{ - .data = RT_NULL, - .pin_init = at32_i2c_pin_init, - .set_sda = at32_set_sda, - .set_scl = at32_set_scl, - .get_sda = at32_get_sda, - .get_scl = at32_get_scl, - .udelay = at32_udelay, - .delay_us = 1, - .timeout = 100, - .i2c_pin_init_flag = RT_FALSE -}; - -/** - * if i2c is locked, this function will unlock it - * - * @param at32 config class - * - * @return RT_EOK indicates successful unlock. - */ -static rt_err_t at32_i2c_bus_unlock(const struct at32_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); - at32_udelay(100); - rt_pin_write(cfg->scl, PIN_LOW); - at32_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 at32_i2c); - rt_err_t result; - - for (rt_size_t i = 0; i < obj_num; i++) - { - i2c_obj[i].ops = at32_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); - at32_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 /* RT_USING_I2C */ diff --git a/bsp/at32/libraries/rt_drivers/drv_soft_i2c.h b/bsp/at32/libraries/rt_drivers/drv_soft_i2c.h deleted file mode 100644 index fecab31b4df..00000000000 --- a/bsp/at32/libraries/rt_drivers/drv_soft_i2c.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright (c) 2006-2021, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2020-01-09 shelton first version - */ - -#ifndef __DRV_I2C__ -#define __DRV_I2C__ - -#include -#include -#include - -/* at32 config class */ -struct at32_soft_i2c_config -{ - rt_uint8_t scl; - rt_uint8_t sda; - const char *bus_name; -}; -/* at32 i2c dirver class */ -struct at32_i2c -{ - struct rt_i2c_bit_ops ops; - struct rt_i2c_bus_device i2c_bus; -}; - -#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 - -#ifdef BSP_USING_I2C3 -#define I2C3_BUS_CONFIG \ - { \ - .scl = BSP_I2C3_SCL_PIN, \ - .sda = BSP_I2C3_SDA_PIN, \ - .bus_name = "i2c3", \ - } -#endif - -int rt_hw_i2c_init(void); - -#endif diff --git a/bsp/at91/at91sam9260/drivers/SConscript b/bsp/at91/at91sam9260/drivers/SConscript index 13402ecb14b..c6e83b1deed 100644 --- a/bsp/at91/at91sam9260/drivers/SConscript +++ b/bsp/at91/at91sam9260/drivers/SConscript @@ -20,9 +20,6 @@ if GetDepend('RT_USING_SDIO'): if GetDepend('RT_USING_LWIP'): src += ['macb.c'] -if GetDepend('RT_USING_I2C') and GetDepend('RT_USING_I2C_BITOPS'): - src += ['at91_i2c_gpio.c'] - if GetDepend('RT_USING_MTD_NAND'): src += ['at91_nand.c'] diff --git a/bsp/at91/at91sam9260/drivers/at91_i2c_gpio.c b/bsp/at91/at91sam9260/drivers/at91_i2c_gpio.c deleted file mode 100644 index 09500e50079..00000000000 --- a/bsp/at91/at91sam9260/drivers/at91_i2c_gpio.c +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Copyright (c) 2006-2021, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2012-04-25 weety first version - */ - -#include -#include -#include - - -static void at91_i2c_gpio_init(void) -{ - at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9260_ID_PIOA); //enable PIOA clock - at91_sys_write(AT91_PIOA + PIO_PUER, (1 << 23)); - at91_sys_write(AT91_PIOA + PIO_PER, (1 << 23)); - at91_sys_write(AT91_PIOA + PIO_MDER, (1 << 23)); - at91_sys_write(AT91_PIOA + PIO_PUER, (1 << 24)); - at91_sys_write(AT91_PIOA + PIO_PER, (1 << 24)); - at91_sys_write(AT91_PIOA + PIO_MDER, (1 << 24)); - - at91_sys_write(AT91_PIOA + PIO_OER, (1 << 23)); - at91_sys_write(AT91_PIOA + PIO_OER, (1 << 24)); - - at91_sys_write(AT91_PIOA + PIO_SODR, (1 << 23)); - at91_sys_write(AT91_PIOA + PIO_SODR, (1 << 24)); -} - -static void at91_set_sda(void *data, rt_int32_t state) -{ - if (state) - { - at91_sys_write(AT91_PIOA + PIO_SODR, (1 << 23)); - } - else - { - at91_sys_write(AT91_PIOA + PIO_CODR, (1 << 23)); - } -} - -static void at91_set_scl(void *data, rt_int32_t state) -{ - if (state) - { - at91_sys_write(AT91_PIOA + PIO_SODR, (1 << 24)); - } - else - { - at91_sys_write(AT91_PIOA + PIO_CODR, (1 << 24)); - } -} - -static rt_int32_t at91_get_sda(void *data) -{ - return at91_sys_read(AT91_PIOA + PIO_PDSR) & (1 << 23); -} - -static rt_int32_t at91_get_scl(void *data) -{ - return at91_sys_read(AT91_PIOA + PIO_PDSR) & (1 << 24); -} - -static void at91_udelay (rt_uint32_t us) -{ - rt_int32_t i; - for (; us > 0; us--) - { - i = 50000; - while(i > 0) - { - i--; - } - } -} - -static const struct rt_i2c_bit_ops bit_ops = { - RT_NULL, - at91_set_sda, - at91_set_scl, - at91_get_sda, - at91_get_scl, - at91_udelay, - 5, - 100, - at91_i2c_gpio_init, - RT_FALSE -}; - -int at91_i2c_init(void) -{ - struct rt_i2c_bus_device *bus; - - bus = rt_malloc(sizeof(struct rt_i2c_bus_device)); - if (bus == RT_NULL) - { - rt_kprintf("rt_malloc failed\n"); - return -RT_ENOMEM; - } - - rt_memset((void *)bus, 0, sizeof(struct rt_i2c_bus_device)); - - bus->priv = (void *)&bit_ops; - - rt_i2c_bit_add_bus(bus, "i2c0"); - - return 0; -} - -INIT_DEVICE_EXPORT(at91_i2c_init); - diff --git a/bsp/at91/at91sam9g45/drivers/SConscript b/bsp/at91/at91sam9g45/drivers/SConscript index 6425c453f55..ad649d8785c 100644 --- a/bsp/at91/at91sam9g45/drivers/SConscript +++ b/bsp/at91/at91sam9g45/drivers/SConscript @@ -20,10 +20,6 @@ if GetDepend('RT_USING_SDIO'): if GetDepend('RT_USING_LWIP'): src += ['macb.c'] -if GetDepend('RT_USING_I2C') and GetDepend('RT_USING_I2C_BITOPS'): - src += ['at91_i2c_gpio.c'] - - CPPPATH = [cwd] group = DefineGroup('Drivers', src, depend = [''], CPPPATH = CPPPATH) diff --git a/bsp/at91/at91sam9g45/drivers/at91_i2c_gpio.c b/bsp/at91/at91sam9g45/drivers/at91_i2c_gpio.c deleted file mode 100644 index a25dc11bb2e..00000000000 --- a/bsp/at91/at91sam9g45/drivers/at91_i2c_gpio.c +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Copyright (c) 2006-2021, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2012-04-25 weety first version - */ - -#include -#include -#include - - -static void at91_i2c_gpio_init(void) -{ - AT91C_BASE_PMC->PMC_PCER = 1 << AT91C_ID_PIOA; //enable PIOA clock - AT91C_BASE_PIOA->PIO_PUER = (1 << 23); - AT91C_BASE_PIOA->PIO_PER = (1 << 23); - AT91C_BASE_PIOA->PIO_MDER = (1 << 23); - AT91C_BASE_PIOA->PIO_PUER = (1 << 24); - AT91C_BASE_PIOA->PIO_PER = (1 << 24); - AT91C_BASE_PIOA->PIO_MDER = (1 << 24); - - AT91C_BASE_PIOA->PIO_OER = (1 << 23); - AT91C_BASE_PIOA->PIO_OER = (1 << 24); - - AT91C_BASE_PIOA->PIO_SODR = (1 << 23); - AT91C_BASE_PIOA->PIO_SODR = (1 << 24); -} - -static void at91_set_sda(void *data, rt_int32_t state) -{ - if (state) - { - AT91C_BASE_PIOA->PIO_SODR = (1 << 23); - } - else - { - AT91C_BASE_PIOA->PIO_CODR = (1 << 23); - } -} - -static void at91_set_scl(void *data, rt_int32_t state) -{ - if (state) - { - AT91C_BASE_PIOA->PIO_SODR = (1 << 24); - } - else - { - AT91C_BASE_PIOA->PIO_CODR = (1 << 24); - } -} - -static rt_int32_t at91_get_sda(void *data) -{ - return AT91C_BASE_PIOA->PIO_PDSR & (1 << 23); -} - -static rt_int32_t at91_get_scl(void *data) -{ - return AT91C_BASE_PIOA->PIO_PDSR & (1 << 24); -} - -static void at91_udelay (rt_uint32_t us) -{ - rt_int32_t i; - for (; us > 0; us--) - { - i = 50000; - while(i > 0) - { - i--; - } - } -} - -static const struct rt_i2c_bit_ops bit_ops = { - RT_NULL, - at91_set_sda, - at91_set_scl, - at91_get_sda, - at91_get_scl, - at91_udelay, - 5, - 100, - at91_i2c_gpio_init, - RT_FALSE -}; - -int at91_i2c_init(void) -{ - struct rt_i2c_bus_device *bus; - - bus = rt_malloc(sizeof(struct rt_i2c_bus_device)); - if (bus == RT_NULL) - { - rt_kprintf("rt_malloc failed\n"); - return -RT_ENOMEM; - } - - rt_memset((void *)bus, 0, sizeof(struct rt_i2c_bus_device)); - - bus->priv = (void *)&bit_ops; - - rt_i2c_bit_add_bus(bus, "i2c0"); - - return 0; -} - -INIT_DEVICE_EXPORT(at91_i2c_init); - diff --git a/bsp/avr32/at32uc3a0256/.ci/attachconfig/ci.attachconfig.yml b/bsp/avr32/at32uc3a0256/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..331b736fa25 --- /dev/null +++ b/bsp/avr32/at32uc3a0256/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,8 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=30 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=29 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/avr32/at32uc3a0256/Kconfig b/bsp/avr32/at32uc3a0256/Kconfig index cb4d873dc41..d031587afdc 100644 --- a/bsp/avr32/at32uc3a0256/Kconfig +++ b/bsp/avr32/at32uc3a0256/Kconfig @@ -121,24 +121,5 @@ menu "On-chip Peripheral Drivers" endif endif - menuconfig BSP_USING_SOFT_I2C - bool "Enable I2C BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_SOFT_I2C - config BSP_USING_SOFT_I2C1 - bool "Enable I2C1 Bus (software simulation)" - default n - if BSP_USING_SOFT_I2C1 - config BSP_SOFT_I2C1_SCL_PIN - int "I2C1 SCL pin number (GP)" - default 30 - config BSP_SOFT_I2C1_SDA_PIN - int "I2C1 SDA pin number (GP)" - default 29 - endif - endif endmenu endmenu diff --git a/bsp/avr32/at32uc3a0256/board.c b/bsp/avr32/at32uc3a0256/board.c index 64281a3ec6e..9955c39becf 100644 --- a/bsp/avr32/at32uc3a0256/board.c +++ b/bsp/avr32/at32uc3a0256/board.c @@ -8,7 +8,6 @@ * 2010-03-30 Kyle First version * 2023-10-13 Raman Gopalan Move UART specific code sections into the drv_uart files * 2023-10-20 Raman Gopalan Initialize GPIO sub-system - * 2023-12-01 Raman Gopalan Initialize software I2C sub-system */ #include @@ -19,7 +18,6 @@ #include "intc.h" #include "drv_uart.h" #include "drv_gpio.h" -#include "drv_soft_i2c.h" /** * System tick interrupt handler. @@ -80,10 +78,6 @@ void rt_hw_board_init(void) rt_hw_gpio_init(); #endif -#ifdef BSP_USING_SOFT_I2C - rt_sw_i2c_init(); -#endif - #ifdef RT_USING_CONSOLE rt_console_set_device(RT_CONSOLE_DEVICE_NAME); #endif diff --git a/bsp/avr32/drivers/SConscript b/bsp/avr32/drivers/SConscript index 2ecd23b5d6c..46ba2b75429 100644 --- a/bsp/avr32/drivers/SConscript +++ b/bsp/avr32/drivers/SConscript @@ -13,9 +13,6 @@ if GetDepend(['BSP_USING_PIN']): if GetDepend(['BSP_USING_UART']): src += ['drv_uart.c'] -if GetDepend(['BSP_USING_SOFT_I2C']): - src += ['drv_soft_i2c.c'] - path = [cwd] group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path) diff --git a/bsp/avr32/drivers/drv_soft_i2c.c b/bsp/avr32/drivers/drv_soft_i2c.c deleted file mode 100644 index 2f7b15969d8..00000000000 --- a/bsp/avr32/drivers/drv_soft_i2c.c +++ /dev/null @@ -1,180 +0,0 @@ -/* - * Copyright (c) 2006-2023, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2023/12/01 Raman Gopalan First version - */ -#include "drv_soft_i2c.h" - -#ifdef BSP_USING_SOFT_I2C -#define DBG_LEVEL DBG_LOG -#include -#define LOG_TAG "DRV.I2C" - -static const struct avr32_soft_i2c_config soft_i2c_config[] = -{ -#ifdef BSP_USING_SOFT_I2C1 - I2C1_BUS_CONFIG, -#endif -}; - -static struct avr32_i2c i2c_obj[sizeof(soft_i2c_config) / sizeof(soft_i2c_config[0])]; - -/** - * This function initializes the I2C pin. - * - * @param AVR32 I2C driver class. - */ -static void avr32_i2c_gpio_init(struct avr32_i2c *i2c) -{ - struct avr32_soft_i2c_config* cfg = (struct avr32_soft_i2c_config*)i2c->ops.data; - - rt_pin_mode(cfg->scl, PIN_MODE_OUTPUT_OD); - gpio_set_gpio_open_drain_pin(cfg->scl); - - rt_pin_mode(cfg->sda, PIN_MODE_OUTPUT_OD); - gpio_set_gpio_open_drain_pin(cfg->sda); -} - -static void avr32_i2c_pin_init(void) -{ - rt_size_t obj_num = sizeof(i2c_obj) / sizeof(struct avr32_i2c); - - for(rt_size_t i = 0; i < obj_num; i++) - { - avr32_i2c_gpio_init(&i2c_obj[i]); - } -} - -/** - * This function sets the SDA pin. - * - * @param AVR32 config class. - * @param The SDA pin state. - */ -static void avr32_set_sda(void *data, rt_int32_t state) -{ - struct avr32_soft_i2c_config* cfg = (struct avr32_soft_i2c_config*)data; - if (state) - { - gpio_set_gpio_open_drain_pin(cfg->sda); - } - else - { - gpio_clr_gpio_open_drain_pin(cfg->sda); - } -} - -/** - * This function sets the SCL pin. - * - * @param AVR32 config class. - * @param The SCL pin state. - */ -static void avr32_set_scl(void *data, rt_int32_t state) -{ - struct avr32_soft_i2c_config* cfg = (struct avr32_soft_i2c_config*)data; - if (state) - { - gpio_set_gpio_open_drain_pin(cfg->scl); - } - else - { - gpio_clr_gpio_open_drain_pin(cfg->scl); - } -} - -/** - * This function gets the SDA pin state. - * - * @param The SDA pin state. - */ -static rt_int32_t avr32_get_sda(void *data) -{ - struct avr32_soft_i2c_config* cfg = (struct avr32_soft_i2c_config*)data; - return gpio_get_gpio_open_drain_pin_output_value(cfg->sda); -} - -/** - * This function gets the SCL pin state. - * - * @param The SCL pin state. - */ -static rt_int32_t avr32_get_scl(void *data) -{ - struct avr32_soft_i2c_config* cfg = (struct avr32_soft_i2c_config*)data; - return gpio_get_gpio_open_drain_pin_output_value(cfg->scl); -} - -static const struct rt_i2c_bit_ops avr32_bit_ops_default = -{ - .data = RT_NULL, - .pin_init = avr32_i2c_pin_init, - .set_sda = avr32_set_sda, - .set_scl = avr32_set_scl, - .get_sda = avr32_get_sda, - .get_scl = avr32_get_scl, - .udelay = rt_hw_us_delay, - .delay_us = 1, - .timeout = 100, - .i2c_pin_init_flag = RT_FALSE -}; - -/** - * If I2C is locked, this function will unlock it. - * - * @param AVR32 config class - * - * @return RT_EOK indicates successful unlock. - */ -static rt_err_t avr32_i2c_bus_unlock(const struct avr32_soft_i2c_config *cfg) -{ - rt_int32_t i = 0; - - if (PIN_LOW == gpio_get_gpio_open_drain_pin_output_value(cfg->sda)) - { - while (i++ < 9) - { - gpio_set_gpio_open_drain_pin(cfg->scl); - rt_hw_us_delay(100); - gpio_clr_gpio_open_drain_pin(cfg->scl); - rt_hw_us_delay(100); - } - } - if (PIN_LOW == gpio_get_gpio_open_drain_pin_output_value(cfg->sda)) - { - return -RT_ERROR; - } - - return RT_EOK; -} - -/* I2C initialization function */ -int rt_sw_i2c_init(void) -{ - rt_err_t result; - rt_size_t i; - - for (i = 0; i < sizeof(i2c_obj) / sizeof(struct avr32_i2c); i++) - { - i2c_obj[i].ops = avr32_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); - avr32_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; -} - -#endif /* BSP_USING_SOFT_I2C */ diff --git a/bsp/avr32/drivers/drv_soft_i2c.h b/bsp/avr32/drivers/drv_soft_i2c.h deleted file mode 100644 index 01d81d72891..00000000000 --- a/bsp/avr32/drivers/drv_soft_i2c.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (c) 2006-2023, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2023/12/01 Raman Gopalan First version - */ - -#ifndef __DRV_SOFT_I2C__ -#define __DRV_SOFT_I2C__ - -#include -#include "drv_gpio.h" -#include "gpio.h" - -#ifdef BSP_USING_SOFT_I2C -/* AVR32 software I2C driver class */ -struct avr32_i2c -{ - struct rt_i2c_bit_ops ops; - struct rt_i2c_bus_device i2c_bus; -}; - -/* AVR32 config class */ -struct avr32_soft_i2c_config -{ - rt_uint8_t scl; - rt_uint8_t sda; - const char *bus_name; -}; - -#ifdef BSP_USING_SOFT_I2C1 -#define I2C1_BUS_CONFIG \ - { \ - .scl = BSP_SOFT_I2C1_SCL_PIN, \ - .sda = BSP_SOFT_I2C1_SDA_PIN, \ - .bus_name = "i2c1", \ - } -#endif - -int rt_sw_i2c_init(void); - -#endif /* BSP_USING_SOFT_I2C */ -#endif /* #ifndef __DRV_SOFT_I2C__ */ diff --git a/bsp/bluetrum/ab32vg1-ab-prougen/.ci/attachconfig/ci.attachconfig.yml b/bsp/bluetrum/ab32vg1-ab-prougen/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..0b0d86ca46b --- /dev/null +++ b/bsp/bluetrum/ab32vg1-ab-prougen/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,8 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=16 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=15 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/bluetrum/ab32vg1-ab-prougen/board/Kconfig b/bsp/bluetrum/ab32vg1-ab-prougen/board/Kconfig index 670a59980cc..7742a4d31cd 100644 --- a/bsp/bluetrum/ab32vg1-ab-prougen/board/Kconfig +++ b/bsp/bluetrum/ab32vg1-ab-prougen/board/Kconfig @@ -86,24 +86,6 @@ menu "On-chip Peripheral Drivers" select RT_USING_DFS_ELMFAT default n - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - comment "Notice: PE3 --> 16; PE2 --> 15" - config BSP_I2C1_SCL_PIN - int "I2C1 scl pin number" - range 1 27 - default 16 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 1 27 - default 15 - endif - menuconfig BSP_USING_PWM bool "Enable PWM" default n diff --git a/bsp/bluetrum/libraries/hal_drivers/SConscript b/bsp/bluetrum/libraries/hal_drivers/SConscript index 0a6dd7e0cd2..258dc71d590 100644 --- a/bsp/bluetrum/libraries/hal_drivers/SConscript +++ b/bsp/bluetrum/libraries/hal_drivers/SConscript @@ -17,9 +17,6 @@ if GetDepend('RT_USING_SERIAL'): if GetDepend('RT_USING_SDIO'): src += ['drv_sdio.c'] -if GetDepend('RT_USING_I2C'): - src += ['drv_soft_i2c.c'] - if GetDepend('RT_USING_WDT'): src += ['drv_wdt.c'] diff --git a/bsp/bluetrum/libraries/hal_drivers/drv_soft_i2c.c b/bsp/bluetrum/libraries/hal_drivers/drv_soft_i2c.c deleted file mode 100644 index 9d0c383b5d6..00000000000 --- a/bsp/bluetrum/libraries/hal_drivers/drv_soft_i2c.c +++ /dev/null @@ -1,224 +0,0 @@ -/* - * Copyright (c) 2020-2021, Bluetrum Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2021-01-07 greedyhao first version - */ - -#include -#include "drv_soft_i2c.h" - -#ifdef RT_USING_I2C - -// #define DRV_DEBUG -#define LOG_TAG "drv.i2c" -#include - -#if !defined(BSP_USING_I2C1) && !defined(BSP_USING_I2C2) && !defined(BSP_USING_I2C3) && !defined(BSP_USING_I2C4) -#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 ab32_soft_i2c_config soft_i2c_config[] = -{ -#ifdef BSP_USING_I2C1 - I2C1_BUS_CONFIG, -#endif -#ifdef BSP_USING_I2C2 - I2C2_BUS_CONFIG, -#endif -#ifdef BSP_USING_I2C3 - I2C3_BUS_CONFIG, -#endif -#ifdef BSP_USING_I2C4 - I2C4_BUS_CONFIG, -#endif -}; - -static struct ab32_i2c i2c_obj[sizeof(soft_i2c_config) / sizeof(soft_i2c_config[0])] = {0}; - -/** - * This function initializes the i2c pin. - * - * @param ab32 i2c dirver class. - */ -static void ab32_i2c_gpio_init(struct ab32_i2c *i2c) -{ - struct ab32_soft_i2c_config* cfg = (struct ab32_soft_i2c_config*)i2c->ops.data; - - cfg->scl_mode = PIN_MODE_OUTPUT_OD; - cfg->sda_mode = PIN_MODE_OUTPUT_OD; - rt_pin_mode(cfg->scl, cfg->scl_mode); - rt_pin_mode(cfg->sda, cfg->sda_mode); - - rt_pin_write(cfg->scl, PIN_HIGH); - rt_pin_write(cfg->sda, PIN_HIGH); -} - -static void ab32_i2c_pin_init(void) -{ - rt_size_t obj_num = sizeof(i2c_obj) / sizeof(struct ab32_i2c); - - for(rt_size_t i = 0; i < obj_num; i++) - { - ab32_i2c_gpio_init(&i2c_obj[i]); - } -} - -/** - * This function sets the sda pin. - * - * @param data ab32 config class. - * @param state The sda pin state. - */ -static void ab32_set_sda(void *data, rt_int32_t state) -{ - struct ab32_soft_i2c_config* cfg = (struct ab32_soft_i2c_config*)data; - - if (cfg->sda_mode == PIN_MODE_INPUT_PULLUP) { - cfg->sda_mode = PIN_MODE_OUTPUT_OD; - rt_pin_mode(cfg->sda, cfg->sda_mode); - } - - if (state) - { - rt_pin_write(cfg->sda, PIN_HIGH); - } - else - { - rt_pin_write(cfg->sda, PIN_LOW); - } -} - -/** - * This function sets the scl pin. - * - * @param data ab32 config class. - * @param state The scl pin state. - */ -static void ab32_set_scl(void *data, rt_int32_t state) -{ - struct ab32_soft_i2c_config* cfg = (struct ab32_soft_i2c_config*)data; - - if (cfg->scl_mode == PIN_MODE_INPUT_PULLUP) { - cfg->scl_mode = PIN_MODE_OUTPUT_OD; - rt_pin_mode(cfg->scl, cfg->scl_mode); - } - - 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 data The sda pin state. - */ -static rt_int32_t ab32_get_sda(void *data) -{ - struct ab32_soft_i2c_config* cfg = (struct ab32_soft_i2c_config*)data; - - if (cfg->sda_mode != PIN_MODE_INPUT_PULLUP) { - cfg->sda_mode = PIN_MODE_INPUT_PULLUP; - rt_pin_mode(cfg->sda, cfg->sda_mode); - } - - return rt_pin_read(cfg->sda); -} - -/** - * This function gets the scl pin state. - * - * @param data The scl pin state. - */ -static rt_int32_t ab32_get_scl(void *data) -{ - struct ab32_soft_i2c_config* cfg = (struct ab32_soft_i2c_config*)data; - - if (cfg->scl_mode == PIN_MODE_INPUT_PULLUP) { - cfg->scl_mode = PIN_MODE_INPUT_PULLUP; - rt_pin_mode(cfg->scl, cfg->scl_mode); - } - - return rt_pin_read(cfg->scl); -} - -static const struct rt_i2c_bit_ops ab32_bit_ops_default = -{ - .data = RT_NULL, - .pin_init = ab32_i2c_pin_init, - .set_sda = ab32_set_sda, - .set_scl = ab32_set_scl, - .get_sda = ab32_get_sda, - .get_scl = ab32_get_scl, - .udelay = rt_hw_us_delay, - .delay_us = 1, - .timeout = 100, - .i2c_pin_init_flag = RT_FALSE -}; - -/** - * if i2c is locked, this function will unlock it - * - * @param cfg ab32 config class - * - * @return RT_EOK indicates successful unlock. - */ -static rt_err_t ab32_i2c_bus_unlock(const struct ab32_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); - rt_hw_us_delay(100); - rt_pin_write(cfg->scl, PIN_LOW); - rt_hw_us_delay(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 ab32_i2c); - rt_err_t result; - - for (rt_size_t i = 0; i < obj_num; i++) - { - i2c_obj[i].ops = ab32_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); - ab32_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 diff --git a/bsp/bluetrum/libraries/hal_drivers/drv_soft_i2c.h b/bsp/bluetrum/libraries/hal_drivers/drv_soft_i2c.h deleted file mode 100644 index 216c3c4c67f..00000000000 --- a/bsp/bluetrum/libraries/hal_drivers/drv_soft_i2c.h +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright (c) 2020-2021, Bluetrum Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2021-01-07 greedyhao first version - */ - -#ifndef __DRV_I2C__ -#define __DRV_I2C__ - -#include -#include -#include - -/* ab32 config class */ -struct ab32_soft_i2c_config -{ - rt_uint8_t scl; - rt_uint8_t sda; - rt_uint8_t sda_mode; - rt_uint8_t scl_mode; - const char *bus_name; -}; - -/* ab32 i2c dirver class */ -struct ab32_i2c -{ - struct rt_i2c_bit_ops ops; - struct rt_i2c_bus_device i2c_bus; -}; - -#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 - -#ifdef BSP_USING_I2C3 -#define I2C3_BUS_CONFIG \ - { \ - .scl = BSP_I2C3_SCL_PIN, \ - .sda = BSP_I2C3_SDA_PIN, \ - .bus_name = "i2c3", \ - } -#endif - -#ifdef BSP_USING_I2C4 -#define I2C4_BUS_CONFIG \ - { \ - .scl = BSP_I2C4_SCL_PIN, \ - .sda = BSP_I2C4_SDA_PIN, \ - .bus_name = "i2c4", \ - } -#endif -int rt_hw_i2c_init(void); - -#endif diff --git a/bsp/bouffalo_lab/bl60x/.ci/attachconfig/ci.attachconfig.yml b/bsp/bouffalo_lab/bl60x/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..6d57d803d9d --- /dev/null +++ b/bsp/bouffalo_lab/bl60x/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,8 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=0 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=1 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/bouffalo_lab/bl61x/.ci/attachconfig/ci.attachconfig.yml b/bsp/bouffalo_lab/bl61x/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..6d57d803d9d --- /dev/null +++ b/bsp/bouffalo_lab/bl61x/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,8 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=0 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=1 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/bouffalo_lab/bl70x/.ci/attachconfig/ci.attachconfig.yml b/bsp/bouffalo_lab/bl70x/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..6d57d803d9d --- /dev/null +++ b/bsp/bouffalo_lab/bl70x/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,8 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=0 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=1 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/bouffalo_lab/libraries/Kconfig b/bsp/bouffalo_lab/libraries/Kconfig index c12477ca803..f1dd396c6d8 100755 --- a/bsp/bouffalo_lab/libraries/Kconfig +++ b/bsp/bouffalo_lab/libraries/Kconfig @@ -1076,129 +1076,6 @@ menu "General Drivers Configuration" endif endif - if !BSP_USING_HW_I2C - menuconfig BSP_USING_SOFT_I2C1 - bool "Enable I2C1 BUS (software simulation)" - select RT_USING_I2C_BITOPS - select BSP_USING_GPIO - default n - if BSP_USING_SOFT_I2C1 - choice - prompt "I2C1 SCL" - default SOFT_I2C1_SCL_USING_GPIO0 - - config SOFT_I2C1_SCL_USING_GPIO0 - bool "GPIO_0" - config SOFT_I2C1_SCL_USING_GPIO2 - bool "GPIO_2" - config SOFT_I2C1_SCL_USING_GPIO4 - bool "GPIO_4" - config SOFT_I2C1_SCL_USING_GPIO6 - bool "GPIO_6" - config SOFT_I2C1_SCL_USING_GPIO8 - bool "GPIO_8" - config SOFT_I2C1_SCL_USING_GPIO10 - bool "GPIO_10" - config SOFT_I2C1_SCL_USING_GPIO12 - bool "GPIO_12" - config SOFT_I2C1_SCL_USING_GPIO14 - bool "GPIO_14" - config SOFT_I2C1_SCL_USING_GPIO16 - bool "GPIO_16" - config SOFT_I2C1_SCL_USING_GPIO18 - bool "GPIO_18" - config SOFT_I2C1_SCL_USING_GPIO20 - bool "GPIO_20" - config SOFT_I2C1_SCL_USING_GPIO22 - bool "GPIO_22" - config SOFT_I2C1_SCL_USING_GPIO24 - bool "GPIO_8" - config SOFT_I2C1_SCL_USING_GPIO26 - bool "GPIO_26" - config SOFT_I2C1_SCL_USING_GPIO28 - bool "GPIO_28" - config SOFT_I2C1_SCL_USING_GPIO30 - bool "GPIO_30" - config SOFT_I2C1_SCL_USING_GPIO32 - bool "GPIO_32" - config SOFT_I2C1_SCL_USING_GPIO34 - bool "GPIO_34" - config SOFT_I2C1_SDA_USING_GPIO36 - depends on BSP_USING_BL808 - bool "GPIO_36" - config SOFT_I2C1_SDA_USING_GPIO38 - depends on BSP_USING_BL808 - bool "GPIO_38" - config SOFT_I2C1_SDA_USING_GPIO40 - depends on BSP_USING_BL808 - bool "GPIO_40" - config SOFT_I2C1_SDA_USING_GPIO42 - depends on BSP_USING_BL808 - bool "GPIO_42" - config SOFT_I2C1_SDA_USING_GPIO44 - depends on BSP_USING_BL808 - bool "GPIO_44" - endchoice - - choice - prompt "I2C1 SDA" - default SOFT_I2C1_SDA_USING_GPIO1 - - config SOFT_I2C1_SDA_USING_GPIO1 - bool "GPIO_1" - config SOFT_I2C1_SDA_USING_GPIO3 - bool "GPIO_3" - config SOFT_I2C1_SDA_USING_GPIO5 - bool "GPIO_5" - config SOFT_I2C1_SDA_USING_GPIO7 - bool "GPIO_7" - config SOFT_I2C1_SDA_USING_GPIO9 - bool "GPIO_9" - config SOFT_I2C1_SDA_USING_GPIO11 - bool "GPIO_11" - config SOFT_I2C1_SDA_USING_GPIO13 - bool "GPIO_13" - config SOFT_I2C1_SDA_USING_GPIO15 - bool "GPIO_15" - config SOFT_I2C1_SDA_USING_GPIO17 - bool "GPIO_17" - config SOFT_I2C1_SDA_USING_GPIO19 - bool "GPIO_19" - config SOFT_I2C1_SDA_USING_GPIO21 - bool "GPIO_21" - config SOFT_I2C1_SDA_USING_GPIO23 - bool "GPIO_23" - config SOFT_I2C1_SDA_USING_GPIO25 - bool "GPIO_25" - config SOFT_I2C1_SDA_USING_GPIO27 - bool "GPIO_27" - config SOFT_I2C1_SDA_USING_GPIO29 - bool "GPIO_29" - config SOFT_I2C1_SDA_USING_GPIO31 - bool "GPIO_31" - config SOFT_I2C1_SDA_USING_GPIO33 - bool "GPIO_33" - config SOFT_I2C1_SDA_USING_GPIO35 - depends on BSP_USING_BL808 - bool "GPIO_35" - config SOFT_I2C1_SDA_USING_GPIO37 - depends on BSP_USING_BL808 - bool "GPIO_37" - config SOFT_I2C1_SDA_USING_GPIO39 - depends on BSP_USING_BL808 - bool "GPIO_39" - config SOFT_I2C1_SDA_USING_GPIO41 - depends on BSP_USING_BL808 - bool "GPIO_41" - config SOFT_I2C1_SDA_USING_GPIO43 - depends on BSP_USING_BL808 - bool "GPIO_43" - config SOFT_I2C1_SDA_USING_GPIO45 - depends on BSP_USING_BL808 - bool "GPIO_45" - endchoice - endif - endif endif menuconfig BSP_USING_SPI diff --git a/bsp/bouffalo_lab/libraries/rt_drivers/SConscript b/bsp/bouffalo_lab/libraries/rt_drivers/SConscript index 39396ad7a71..0e533f1eaeb 100755 --- a/bsp/bouffalo_lab/libraries/rt_drivers/SConscript +++ b/bsp/bouffalo_lab/libraries/rt_drivers/SConscript @@ -12,9 +12,6 @@ if GetDepend('BSP_USING_GPIO'): if GetDepend('BSP_USING_HW_I2C'): src += ['drv_i2c.c'] -if GetDepend('BSP_USING_SOFT_I2C1'): - src += ['drv_soft_i2c.c'] - if GetDepend('BSP_USING_ADC'): src += ['drv_adc.c'] diff --git a/bsp/bouffalo_lab/libraries/rt_drivers/drv_soft_i2c.c b/bsp/bouffalo_lab/libraries/rt_drivers/drv_soft_i2c.c deleted file mode 100644 index 5a4ad8bb50d..00000000000 --- a/bsp/bouffalo_lab/libraries/rt_drivers/drv_soft_i2c.c +++ /dev/null @@ -1,291 +0,0 @@ -/* - * Copyright (c) 2006-2023, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2023/04/15 chushicheng first version - */ - -#include "drv_soft_i2c.h" -#include "bflb_gpio.h" -#include "bflb_common.h" - -#ifdef BSP_USING_SOFT_I2C1 - -#define DBG_LEVEL DBG_LOG -#include -#define LOG_TAG "DRV.I2C" - -// i2c1 -#ifdef SOFT_I2C1_SCL_USING_GPIO0 -#define BSP_I2C1_SCL_PIN GPIO_PIN_0 -#elif defined(SOFT_I2C1_SCL_USING_GPIO2) -#define BSP_I2C1_SCL_PIN GPIO_PIN_2 -#elif defined(SOFT_I2C1_SCL_USING_GPIO4) -#define BSP_I2C1_SCL_PIN GPIO_PIN_4 -#elif defined(SOFT_I2C1_SCL_USING_GPIO6) -#define BSP_I2C1_SCL_PIN GPIO_PIN_6 -#elif defined(SOFT_I2C1_SCL_USING_GPIO8) -#define BSP_I2C1_SCL_PIN GPIO_PIN_8 -#elif defined(SOFT_I2C1_SCL_USING_GPIO10) -#define BSP_I2C1_SCL_PIN GPIO_PIN_10 -#elif defined(SOFT_I2C1_SCL_USING_GPIO12) -#define BSP_I2C1_SCL_PIN GPIO_PIN_12 -#elif defined(SOFT_I2C1_SCL_USING_GPIO14) -#define BSP_I2C1_SCL_PIN GPIO_PIN_14 -#elif defined(SOFT_I2C1_SCL_USING_GPIO16) -#define BSP_I2C1_SCL_PIN GPIO_PIN_16 -#elif defined(SOFT_I2C1_SCL_USING_GPIO18) -#define BSP_I2C1_SCL_PIN GPIO_PIN_18 -#elif defined(SOFT_I2C1_SCL_USING_GPIO20) -#define BSP_I2C1_SCL_PIN GPIO_PIN_20 -#elif defined(SOFT_I2C1_SCL_USING_GPIO22) -#define BSP_I2C1_SCL_PIN GPIO_PIN_22 -#elif defined(SOFT_I2C1_SCL_USING_GPIO24) -#define BSP_I2C1_SCL_PIN GPIO_PIN_24 -#elif defined(SOFT_I2C1_SCL_USING_GPIO26) -#define BSP_I2C1_SCL_PIN GPIO_PIN_26 -#elif defined(SOFT_I2C1_SCL_USING_GPIO28) -#define BSP_I2C1_SCL_PIN GPIO_PIN_28 -#elif defined(SOFT_I2C1_SCL_USING_GPIO30) -#define BSP_I2C1_SCL_PIN GPIO_PIN_30 -#elif defined(SOFT_I2C1_SCL_USING_GPIO32) -#define BSP_I2C1_SCL_PIN GPIO_PIN_32 -#elif defined(SOFT_I2C1_SCL_USING_GPIO34) -#define BSP_I2C1_SCL_PIN GPIO_PIN_34 -#elif defined(SOFT_I2C1_SCL_USING_GPIO36) -#define BSP_I2C1_SCL_PIN GPIO_PIN_36 -#elif defined(SOFT_I2C1_SCL_USING_GPIO38) -#define BSP_I2C1_SCL_PIN GPIO_PIN_38 -#elif defined(SOFT_I2C1_SCL_USING_GPIO40) -#define BSP_I2C1_SCL_PIN GPIO_PIN_40 -#elif defined(SOFT_I2C1_SCL_USING_GPIO42) -#define BSP_I2C1_SCL_PIN GPIO_PIN_42 -#elif defined(SOFT_I2C1_SCL_USING_GPIO44) -#define BSP_I2C1_SCL_PIN GPIO_PIN_44 -#endif - -#ifdef SOFT_I2C1_SDA_USING_GPIO1 -#define BSP_I2C1_SDA_PIN GPIO_PIN_1 -#elif defined(SOFT_I2C1_SDA_USING_GPIO3) -#define BSP_I2C1_SDA_PIN GPIO_PIN_3 -#elif defined(SOFT_I2C1_SDA_USING_GPIO5) -#define BSP_I2C1_SDA_PIN GPIO_PIN_5 -#elif defined(SOFT_I2C1_SDA_USING_GPIO7) -#define BSP_I2C1_SDA_PIN GPIO_PIN_7 -#elif defined(SOFT_I2C1_SDA_USING_GPIO9) -#define BSP_I2C1_SDA_PIN GPIO_PIN_9 -#elif defined(SOFT_I2C1_SDA_USING_GPIO11) -#define BSP_I2C1_SDA_PIN GPIO_PIN_11 -#elif defined(SOFT_I2C1_SDA_USING_GPIO13) -#define BSP_I2C1_SDA_PIN GPIO_PIN_13 -#elif defined(SOFT_I2C1_SDA_USING_GPIO15) -#define BSP_I2C1_SDA_PIN GPIO_PIN_15 -#elif defined(SOFT_I2C1_SDA_USING_GPIO17) -#define BSP_I2C1_SDA_PIN GPIO_PIN_17 -#elif defined(SOFT_I2C1_SDA_USING_GPIO19) -#define BSP_I2C1_SDA_PIN GPIO_PIN_19 -#elif defined(SOFT_I2C1_SDA_USING_GPIO21) -#define BSP_I2C1_SDA_PIN GPIO_PIN_21 -#elif defined(SOFT_I2C1_SDA_USING_GPIO23) -#define BSP_I2C1_SDA_PIN GPIO_PIN_23 -#elif defined(SOFT_I2C1_SDA_USING_GPIO25) -#define BSP_I2C1_SDA_PIN GPIO_PIN_25 -#elif defined(SOFT_I2C1_SDA_USING_GPIO27) -#define BSP_I2C1_SDA_PIN GPIO_PIN_27 -#elif defined(SOFT_I2C1_SDA_USING_GPIO29) -#define BSP_I2C1_SDA_PIN GPIO_PIN_29 -#elif defined(SOFT_I2C1_SDA_USING_GPIO31) -#define BSP_I2C1_SDA_PIN GPIO_PIN_31 -#elif defined(SOFT_I2C1_SDA_USING_GPIO33) -#define BSP_I2C1_SDA_PIN GPIO_PIN_33 -#elif defined(SOFT_I2C1_SDA_USING_GPIO35) -#define BSP_I2C1_SDA_PIN GPIO_PIN_35 -#elif defined(SOFT_I2C1_SDA_USING_GPIO37) -#define BSP_I2C1_SDA_PIN GPIO_PIN_37 -#elif defined(SOFT_I2C1_SDA_USING_GPIO39) -#define BSP_I2C1_SDA_PIN GPIO_PIN_39 -#elif defined(SOFT_I2C1_SDA_USING_GPIO41) -#define BSP_I2C1_SDA_PIN GPIO_PIN_41 -#elif defined(SOFT_I2C1_SDA_USING_GPIO43) -#define BSP_I2C1_SDA_PIN GPIO_PIN_43 -#elif defined(SOFT_I2C1_SDA_USING_GPIO45) -#define BSP_I2C1_SDA_PIN GPIO_PIN_45 -#endif - -static const struct bl_soft_i2c_config soft_i2c_config[] = -{ -#ifdef BSP_USING_SOFT_I2C1 - I2C1_BUS_CONFIG, -#endif -}; - -static struct bl_i2c i2c_obj[sizeof(soft_i2c_config) / sizeof(soft_i2c_config[0])]; - -/** - * This function initializes the i2c pin. - * - * @param bl i2c dirver class. - */ -static void bl_i2c_gpio_init(struct bl_i2c *i2c) -{ - struct bl_soft_i2c_config* cfg = (struct bl_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 bl_i2c_pin_init(void) -{ - rt_size_t obj_num = sizeof(i2c_obj) / sizeof(struct bl_i2c); - - for(rt_size_t i = 0; i < obj_num; i++) - { - bl_i2c_gpio_init(&i2c_obj[i]); - } -} - -/** - * This function sets the sda pin. - * - * @param bl config class. - * @param The sda pin state. - */ -static void bl_set_sda(void *data, rt_int32_t state) -{ - struct bl_soft_i2c_config* cfg = (struct bl_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 bl config class. - * @param The scl pin state. - */ -static void bl_set_scl(void *data, rt_int32_t state) -{ - struct bl_soft_i2c_config* cfg = (struct bl_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 bl_get_sda(void *data) -{ - struct bl_soft_i2c_config* cfg = (struct bl_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 bl_get_scl(void *data) -{ - struct bl_soft_i2c_config* cfg = (struct bl_soft_i2c_config*)data; - return rt_pin_read(cfg->scl); -} - -/** - * The time delay function. - * - * @param microseconds. - */ -static void bl_udelay(rt_uint32_t us) -{ - bflb_mtimer_delay_us(us); -} - -static const struct rt_i2c_bit_ops bl_bit_ops_default = -{ - .data = RT_NULL, - .pin_init = bl_i2c_pin_init, - .set_sda = bl_set_sda, - .set_scl = bl_set_scl, - .get_sda = bl_get_sda, - .get_scl = bl_get_scl, - .udelay = bl_udelay, - .delay_us = 1, - .timeout = 100, - .i2c_pin_init_flag = RT_FALSE -}; - -/** - * if i2c is locked, this function will unlock it - * - * @param bl config class - * - * @return RT_EOK indicates successful unlock. - */ -static rt_err_t bl_i2c_bus_unlock(const struct bl_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); - bl_udelay(100); - rt_pin_write(cfg->scl, PIN_LOW); - bl_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_err_t result; - - for (rt_size_t i = 0; i < sizeof(i2c_obj) / sizeof(struct bl_i2c); i++) - { - i2c_obj[i].ops = bl_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); - bl_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_I2C1 */ diff --git a/bsp/bouffalo_lab/libraries/rt_drivers/drv_soft_i2c.h b/bsp/bouffalo_lab/libraries/rt_drivers/drv_soft_i2c.h deleted file mode 100644 index 3275c2c4c67..00000000000 --- a/bsp/bouffalo_lab/libraries/rt_drivers/drv_soft_i2c.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 2006-2023, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2023/04/15 chushicheng first version - */ - -#ifndef __DRV_I2C__ -#define __DRV_I2C__ - -#include -#include -#include - -/* bl i2c dirver class */ -struct bl_i2c -{ - struct rt_i2c_bit_ops ops; - struct rt_i2c_bus_device i2c_bus; -}; - -/* bl config class */ -struct bl_soft_i2c_config -{ - rt_uint8_t scl; - rt_uint8_t sda; - const char *bus_name; -}; - -#ifdef BSP_USING_SOFT_I2C1 -#define I2C1_BUS_CONFIG \ - { \ - .scl = BSP_I2C1_SCL_PIN, \ - .sda = BSP_I2C1_SDA_PIN, \ - .bus_name = "i2c1", \ - } -#endif - -int rt_hw_i2c_init(void); - -#endif diff --git a/bsp/cvitek/c906_little/board/Kconfig b/bsp/cvitek/c906_little/board/Kconfig index 104648aa698..6d24570dc6f 100755 --- a/bsp/cvitek/c906_little/board/Kconfig +++ b/bsp/cvitek/c906_little/board/Kconfig @@ -79,7 +79,6 @@ menu "General Drivers Configuration" menuconfig BSP_USING_I2C bool "Using I2C" select RT_USING_I2C - select RT_USING_I2C_BITOPS select RT_USING_PIN default n diff --git a/bsp/cvitek/cv18xx_risc-v/board/Kconfig b/bsp/cvitek/cv18xx_risc-v/board/Kconfig index d0cb78020e9..9cef1897996 100755 --- a/bsp/cvitek/cv18xx_risc-v/board/Kconfig +++ b/bsp/cvitek/cv18xx_risc-v/board/Kconfig @@ -79,7 +79,6 @@ menu "General Drivers Configuration" menuconfig BSP_USING_I2C bool "Using I2C" select RT_USING_I2C - select RT_USING_I2C_BITOPS select RT_USING_PIN default n diff --git a/bsp/fm33lc026/libraries/HAL_Drivers/SConscript b/bsp/fm33lc026/libraries/HAL_Drivers/SConscript index 704e728356a..985ba83a56e 100644 --- a/bsp/fm33lc026/libraries/HAL_Drivers/SConscript +++ b/bsp/fm33lc026/libraries/HAL_Drivers/SConscript @@ -23,10 +23,6 @@ if GetDepend(['RT_USING_PWM']): if GetDepend(['RT_USING_SPI']): src += ['drv_spi.c'] -if GetDepend(['RT_USING_I2C', 'RT_USING_I2C_BITOPS']): - if GetDepend('BSP_USING_I2C1') or GetDepend('BSP_USING_I2C2') or GetDepend('BSP_USING_I2C3') or GetDepend('BSP_USING_I2C4'): - src += ['drv_soft_i2c.c'] - if GetDepend(['RT_USING_ADC']): src += Glob('drv_adc.c') diff --git a/bsp/gd32/risc-v/gd32vf103r-start/.ci/attachconfig/ci.attachconfig.yml b/bsp/gd32/risc-v/gd32vf103r-start/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..08f15d590b4 --- /dev/null +++ b/bsp/gd32/risc-v/gd32vf103r-start/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,8 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=24 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=25 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/gd32/risc-v/gd32vf103r-start/board/Kconfig b/bsp/gd32/risc-v/gd32vf103r-start/board/Kconfig index abd9f94bc6f..6fb9ad4758c 100644 --- a/bsp/gd32/risc-v/gd32vf103r-start/board/Kconfig +++ b/bsp/gd32/risc-v/gd32vf103r-start/board/Kconfig @@ -99,23 +99,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 1 216 - default 24 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 1 216 - default 25 - endif - menuconfig BSP_USING_ADC bool "Enable ADC" default n diff --git a/bsp/gd32/risc-v/gd32vf103v-eval/.ci/attachconfig/ci.attachconfig.yml b/bsp/gd32/risc-v/gd32vf103v-eval/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..08f15d590b4 --- /dev/null +++ b/bsp/gd32/risc-v/gd32vf103v-eval/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,8 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=24 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=25 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/gd32/risc-v/gd32vf103v-eval/board/Kconfig b/bsp/gd32/risc-v/gd32vf103v-eval/board/Kconfig index 421d2da24fa..f852fe3f26b 100644 --- a/bsp/gd32/risc-v/gd32vf103v-eval/board/Kconfig +++ b/bsp/gd32/risc-v/gd32vf103v-eval/board/Kconfig @@ -99,23 +99,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 1 216 - default 24 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 1 216 - default 25 - endif - menuconfig BSP_USING_ADC bool "Enable ADC" default n diff --git a/bsp/gd32/risc-v/libraries/gd32_drivers/SConscript b/bsp/gd32/risc-v/libraries/gd32_drivers/SConscript index 05e694d9e2a..4de168c8350 100644 --- a/bsp/gd32/risc-v/libraries/gd32_drivers/SConscript +++ b/bsp/gd32/risc-v/libraries/gd32_drivers/SConscript @@ -17,9 +17,6 @@ if GetDepend(['RT_USING_SERIAL']): src += ['drv_usart.c'] # add i2c drivers. -if GetDepend(['RT_USING_I2C', 'RT_USING_I2C_BITOPS']): - if GetDepend('BSP_USING_I2C0') or GetDepend('BSP_USING_I2C1') or GetDepend('BSP_USING_I2C2') or GetDepend('BSP_USING_I2C3'): - src += ['drv_soft_i2c.c'] if GetDepend(['RT_USING_I2C', 'BSP_USING_HW_I2C']): if GetDepend('BSP_USING_HW_I2C0') or GetDepend('BSP_USING_HW_I2C1'): src += ['drv_i2c.c'] diff --git a/bsp/gd32/risc-v/libraries/gd32_drivers/drv_soft_i2c.c b/bsp/gd32/risc-v/libraries/gd32_drivers/drv_soft_i2c.c deleted file mode 100644 index b149131c5c7..00000000000 --- a/bsp/gd32/risc-v/libraries/gd32_drivers/drv_soft_i2c.c +++ /dev/null @@ -1,212 +0,0 @@ -/* - * Copyright (c) 2006-2022, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2022-06-04 BruceOu the first version - */ -#include "drv_soft_i2c.h" - -#ifdef RT_USING_I2C - -#define LOG_TAG "drv.i2c" -#include - -#if !defined(BSP_USING_I2C0) && !defined(BSP_USING_I2C1) && !defined(BSP_USING_I2C2) && !defined(BSP_USING_I2C3) -#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 gd32_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 -#ifdef BSP_USING_I2C3 - I2C3_BUS_CONFIG, -#endif -}; - -static struct gd32_i2c i2c_obj[sizeof(soft_i2c_config) / sizeof(soft_i2c_config[0])]; - -/** - * @brief This function initializes the i2c pin. - * @param i2c - * @retval None - */ -static void gd32_i2c_gpio_init(struct gd32_i2c *i2c) -{ - struct gd32_soft_i2c_config* cfg = (struct gd32_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 gd32_i2c_pin_init(void) -{ - rt_size_t obj_num = sizeof(i2c_obj) / sizeof(struct gd32_i2c); - - for(rt_size_t i = 0; i < obj_num; i++) - { - gd32_i2c_gpio_init(&i2c_obj[i]); - } -} - -/** - * @brief This function sets the sda pin. - * @param data, state - * @retval None - */ -static void gd32_set_sda(void *data, rt_int32_t state) -{ - struct gd32_soft_i2c_config* cfg = (struct gd32_soft_i2c_config*)data; - if (state) - { - rt_pin_write(cfg->sda, PIN_HIGH); - } - else - { - rt_pin_write(cfg->sda, PIN_LOW); - } -} - -/** - * @brief This function sets the scl pin. - * @param data, state - * @retval None - */ -static void gd32_set_scl(void *data, rt_int32_t state) -{ - struct gd32_soft_i2c_config* cfg = (struct gd32_soft_i2c_config*)data; - if (state) - { - rt_pin_write(cfg->scl, PIN_HIGH); - } - else - { - rt_pin_write(cfg->scl, PIN_LOW); - } -} - -/** - * @brief This function gets the sda pin state. - * @param data - * @retval None - */ -static rt_int32_t gd32_get_sda(void *data) -{ - struct gd32_soft_i2c_config* cfg = (struct gd32_soft_i2c_config*)data; - return rt_pin_read(cfg->sda); -} - - -/** - * @brief This function gets the scl pin state. - * @param data - * @retval None - */ -static rt_int32_t gd32_get_scl(void *data) -{ - struct gd32_soft_i2c_config* cfg = (struct gd32_soft_i2c_config*)data; - return rt_pin_read(cfg->scl); -} - -/** - * @brief The time delay function. - * @param us - * @retval None - */ -static void gd32_udelay(rt_uint32_t us) -{ - int i = ( rcu_clock_freq_get(CK_SYS) / 4000000 * us); - while(i) - { - i--; - } -} - -static const struct rt_i2c_bit_ops gd32_bit_ops_default = -{ - .data = RT_NULL, - .pin_init = gd32_i2c_pin_init, - .set_sda = gd32_set_sda, - .set_scl = gd32_set_scl, - .get_sda = gd32_get_sda, - .get_scl = gd32_get_scl, - .udelay = gd32_udelay, - .delay_us = 1, - .timeout = 100, - .i2c_pin_init_flag = RT_FALSE -}; - -/** - * @brief if i2c is locked, this function will unlock it - * @param cfg - * @retval RT_EOK indicates successful unlock. - */ -static rt_err_t gd32_i2c_bus_unlock(const struct gd32_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); - gd32_udelay(100); - rt_pin_write(cfg->scl, PIN_LOW); - gd32_udelay(100); - } - } - if (PIN_LOW == rt_pin_read(cfg->sda)) - { - return -RT_ERROR; - } - - return RT_EOK; -} - -/** - * @brief I2C initialization function - * @param None - * @retval RT_EOK indicates successful initialization. - */ -int rt_hw_i2c_init(void) -{ - rt_size_t obj_num = sizeof(i2c_obj) / sizeof(struct gd32_i2c); - rt_err_t result; - - for (rt_size_t = 0; i < obj_num; i++) - { - i2c_obj[i].ops = gd32_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); - - gd32_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 /* RT_USING_I2C */ diff --git a/bsp/gd32/risc-v/libraries/gd32_drivers/drv_soft_i2c.h b/bsp/gd32/risc-v/libraries/gd32_drivers/drv_soft_i2c.h deleted file mode 100644 index af91af4c97b..00000000000 --- a/bsp/gd32/risc-v/libraries/gd32_drivers/drv_soft_i2c.h +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright (c) 2006-2022, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2022-06-04 BruceOu the first version - */ - -#ifndef __DRV_I2C__ -#define __DRV_I2C__ - -#include -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* gd32 config class */ -struct gd32_soft_i2c_config -{ - rt_uint8_t scl; - rt_uint8_t sda; - const char *bus_name; -}; - -/* gd32 i2c dirver class */ -struct gd32_i2c -{ - struct rt_i2c_bit_ops ops; - struct rt_i2c_bus_device i2c_bus; -}; - -#ifdef BSP_USING_I2C0 -#define I2C4_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 - -#ifdef BSP_USING_I2C3 -#define I2C3_BUS_CONFIG \ - { \ - .scl = BSP_I2C3_SCL_PIN, \ - .sda = BSP_I2C3_SDA_PIN, \ - .bus_name = "i2c3", \ - } -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* __DRV_I2C__ */ diff --git a/bsp/hc32/ev_hc32f334_lqfp64/.ci/attachconfig/ci.attachconfig.yml b/bsp/hc32/ev_hc32f334_lqfp64/.ci/attachconfig/ci.attachconfig.yml index 84e83f68114..c709c3d68c8 100644 --- a/bsp/hc32/ev_hc32f334_lqfp64/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/hc32/ev_hc32f334_lqfp64/.ci/attachconfig/ci.attachconfig.yml @@ -93,10 +93,6 @@ devices.rtc: kconfig: - CONFIG_BSP_USING_RTC=y - CONFIG_RT_USING_ALARM=y -devices.soft_i2c: - kconfig: - - CONFIG_BSP_USING_I2C=y - - CONFIG_BSP_USING_I2C1_SW=y devices.spi: kconfig: - CONFIG_BSP_USING_SPI=y @@ -135,3 +131,12 @@ peripheral.spi_flash: - CONFIG_BSP_USING_SPI_FLASH=y - CONFIG_BSP_USING_SPI=y - CONFIG_BSP_USING_SPI1=y + +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="i2c1_sw" diff --git a/bsp/hc32/ev_hc32f334_lqfp64/board/Kconfig b/bsp/hc32/ev_hc32f334_lqfp64/board/Kconfig index a0367487403..6d225065f43 100644 --- a/bsp/hc32/ev_hc32f334_lqfp64/board/Kconfig +++ b/bsp/hc32/ev_hc32f334_lqfp64/board/Kconfig @@ -183,24 +183,6 @@ menu "On-chip Peripheral Drivers" default n select RT_USING_I2C - if BSP_USING_I2C - menuconfig BSP_USING_I2C1_SW - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1_SW - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 1 68 - default 22 # PB6 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 1 68 - default 23 # PB7 - endif - endif - if BSP_USING_I2C config BSP_I2C_USING_DMA bool diff --git a/bsp/hc32/ev_hc32f448_lqfp80/.ci/attachconfig/ci.attachconfig.yml b/bsp/hc32/ev_hc32f448_lqfp80/.ci/attachconfig/ci.attachconfig.yml index 7eb2f098c02..aa10bfc45b0 100644 --- a/bsp/hc32/ev_hc32f448_lqfp80/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/hc32/ev_hc32f448_lqfp80/.ci/attachconfig/ci.attachconfig.yml @@ -89,10 +89,6 @@ devices.rtc: kconfig: - CONFIG_BSP_USING_RTC=y - CONFIG_RT_USING_ALARM=y -devices.soft_i2c: - kconfig: - - CONFIG_BSP_USING_I2C=y - - CONFIG_BSP_USING_I2C1_SW=y devices.spi: kconfig: - CONFIG_BSP_USING_SPI=y @@ -131,3 +127,12 @@ devices.watchdog_wdt: peripheral.spi_flash: kconfig: - CONFIG_BSP_USING_SPI_FLASH=y + +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=10 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=9 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="i2c1_sw" diff --git a/bsp/hc32/ev_hc32f448_lqfp80/board/Kconfig b/bsp/hc32/ev_hc32f448_lqfp80/board/Kconfig index 76940804952..fd21828c282 100644 --- a/bsp/hc32/ev_hc32f448_lqfp80/board/Kconfig +++ b/bsp/hc32/ev_hc32f448_lqfp80/board/Kconfig @@ -232,24 +232,6 @@ menu "On-chip Peripheral Drivers" default n select RT_USING_I2C - if BSP_USING_I2C - menuconfig BSP_USING_I2C1_SW - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1_SW - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 1 80 - default 10 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 1 80 - default 9 - endif - endif - if BSP_USING_I2C config BSP_I2C_USING_DMA bool diff --git a/bsp/hc32/ev_hc32f460_lqfp100_v2/.ci/attachconfig/ci.attachconfig.yml b/bsp/hc32/ev_hc32f460_lqfp100_v2/.ci/attachconfig/ci.attachconfig.yml index 047a4483ef7..838bdf9b9f1 100644 --- a/bsp/hc32/ev_hc32f460_lqfp100_v2/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/hc32/ev_hc32f460_lqfp100_v2/.ci/attachconfig/ci.attachconfig.yml @@ -90,10 +90,6 @@ devices.sdio: - CONFIG_BSP_USING_SDIO1=y - CONFIG_RT_USING_DFS=y - CONFIG_RT_USING_DFS_ELMFAT=y -devices.soft_i2c: - kconfig: - - CONFIG_BSP_USING_I2C=y - - CONFIG_BSP_USING_I2C1_SW=y devices.spi: kconfig: - CONFIG_BSP_USING_SPI=y @@ -164,3 +160,12 @@ devices.watchdog_wdt: peripheral.spi_flash: kconfig: - CONFIG_BSP_USING_SPI_FLASH=y + +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=36 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=7 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="i2c1_sw" diff --git a/bsp/hc32/ev_hc32f460_lqfp100_v2/board/Kconfig b/bsp/hc32/ev_hc32f460_lqfp100_v2/board/Kconfig index b2fab38d89e..b75691f84a4 100644 --- a/bsp/hc32/ev_hc32f460_lqfp100_v2/board/Kconfig +++ b/bsp/hc32/ev_hc32f460_lqfp100_v2/board/Kconfig @@ -176,24 +176,6 @@ menu "On-chip Peripheral Drivers" default n select RT_USING_I2C - if BSP_USING_I2C - menuconfig BSP_USING_I2C1_SW - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1_SW - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 1 100 - default 36 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 1 100 - default 7 - endif - endif - if BSP_USING_I2C config BSP_I2C_USING_DMA bool diff --git a/bsp/hc32/ev_hc32f472_lqfp100/.ci/attachconfig/ci.attachconfig.yml b/bsp/hc32/ev_hc32f472_lqfp100/.ci/attachconfig/ci.attachconfig.yml index 7ec37e6f4a7..c42b4278b5b 100644 --- a/bsp/hc32/ev_hc32f472_lqfp100/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/hc32/ev_hc32f472_lqfp100/.ci/attachconfig/ci.attachconfig.yml @@ -90,10 +90,6 @@ devices.rtc: kconfig: - CONFIG_BSP_USING_RTC=y - CONFIG_RT_USING_ALARM=y -devices.soft_i2c: - kconfig: - - CONFIG_BSP_USING_I2C=y - - CONFIG_BSP_USING_I2C1_SW=y devices.spi: kconfig: - CONFIG_BSP_USING_SPI=y @@ -164,3 +160,12 @@ devices.watchdog_wdt: peripheral.spi_flash: kconfig: - CONFIG_BSP_USING_SPI_FLASH=y + +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=10 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=9 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="i2c1_sw" diff --git a/bsp/hc32/ev_hc32f472_lqfp100/board/Kconfig b/bsp/hc32/ev_hc32f472_lqfp100/board/Kconfig index 0c31a20cd01..726a170c219 100644 --- a/bsp/hc32/ev_hc32f472_lqfp100/board/Kconfig +++ b/bsp/hc32/ev_hc32f472_lqfp100/board/Kconfig @@ -232,24 +232,6 @@ menu "On-chip Peripheral Drivers" default n select RT_USING_I2C - if BSP_USING_I2C - menuconfig BSP_USING_I2C1_SW - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1_SW - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 1 100 - default 10 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 1 100 - default 9 - endif - endif - if BSP_USING_I2C config BSP_I2C_USING_DMA bool diff --git a/bsp/hc32/ev_hc32f4a0_lqfp176/.ci/attachconfig/ci.attachconfig.yml b/bsp/hc32/ev_hc32f4a0_lqfp176/.ci/attachconfig/ci.attachconfig.yml index d4a7b92a9dc..9f835ee7239 100644 --- a/bsp/hc32/ev_hc32f4a0_lqfp176/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/hc32/ev_hc32f4a0_lqfp176/.ci/attachconfig/ci.attachconfig.yml @@ -96,10 +96,6 @@ devices.sdio: - CONFIG_BSP_USING_SDIO1=y - CONFIG_RT_USING_DFS=y - CONFIG_RT_USING_DFS_ELMFAT=y -devices.soft_i2c: - kconfig: - - CONFIG_BSP_USING_I2C=y - - CONFIG_BSP_USING_I2C1_SW=y devices.spi: kconfig: - CONFIG_BSP_USING_SPI=y @@ -193,3 +189,12 @@ peripheral.exmc_sdram: peripheral.spi_flash: kconfig: - CONFIG_BSP_USING_SPI_FLASH=y + +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=8 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="i2c1_sw" diff --git a/bsp/hc32/ev_hc32f4a0_lqfp176/board/Kconfig b/bsp/hc32/ev_hc32f4a0_lqfp176/board/Kconfig index 79cb785cbc0..a2c5543abbb 100644 --- a/bsp/hc32/ev_hc32f4a0_lqfp176/board/Kconfig +++ b/bsp/hc32/ev_hc32f4a0_lqfp176/board/Kconfig @@ -357,24 +357,6 @@ menu "On-chip Peripheral Drivers" default n select RT_USING_I2C - if BSP_USING_I2C - menuconfig BSP_USING_I2C1_SW - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1_SW - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 1 176 - default 8 # PA8 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 1 176 - default 23 # PB7 - endif - endif - if BSP_USING_I2C config BSP_I2C_USING_DMA bool diff --git a/bsp/hc32/ev_hc32f4a8_lqfp176/.ci/attachconfig/ci.attachconfig.yml b/bsp/hc32/ev_hc32f4a8_lqfp176/.ci/attachconfig/ci.attachconfig.yml index e5798b47293..b0872e04a98 100644 --- a/bsp/hc32/ev_hc32f4a8_lqfp176/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/hc32/ev_hc32f4a8_lqfp176/.ci/attachconfig/ci.attachconfig.yml @@ -103,10 +103,6 @@ devices.sdio: - CONFIG_BSP_USING_SDIO1=y - CONFIG_RT_USING_DFS=y - CONFIG_RT_USING_DFS_ELMFAT=y -devices.soft_i2c: - kconfig: - - CONFIG_BSP_USING_I2C=y - - CONFIG_BSP_USING_I2C1_SW=y devices.spi: kconfig: - CONFIG_BSP_USING_SPI=y @@ -200,3 +196,12 @@ peripheral.exmc_sdram: peripheral.spi_flash: kconfig: - CONFIG_BSP_USING_SPI_FLASH=y + +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=8 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="i2c1_sw" diff --git a/bsp/hc32/ev_hc32f4a8_lqfp176/board/Kconfig b/bsp/hc32/ev_hc32f4a8_lqfp176/board/Kconfig index 9d0e00a67cf..eea4988919a 100644 --- a/bsp/hc32/ev_hc32f4a8_lqfp176/board/Kconfig +++ b/bsp/hc32/ev_hc32f4a8_lqfp176/board/Kconfig @@ -346,24 +346,6 @@ menu "On-chip Peripheral Drivers" default n select RT_USING_I2C - if BSP_USING_I2C - menuconfig BSP_USING_I2C1_SW - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1_SW - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 1 176 - default 8 # PA8 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 1 176 - default 23 # PB7 - endif - endif - if BSP_USING_I2C config BSP_I2C_USING_DMA bool diff --git a/bsp/hc32/lckfb-hc32f4a0-lqfp100/.ci/attachconfig/ci.attachconfig.yml b/bsp/hc32/lckfb-hc32f4a0-lqfp100/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..dfc51117358 --- /dev/null +++ b/bsp/hc32/lckfb-hc32f4a0-lqfp100/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,8 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=51 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=90 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="i2c1_sw" diff --git a/bsp/hc32/lckfb-hc32f4a0-lqfp100/board/Kconfig b/bsp/hc32/lckfb-hc32f4a0-lqfp100/board/Kconfig index 6c91f7e6603..3760dca54c2 100644 --- a/bsp/hc32/lckfb-hc32f4a0-lqfp100/board/Kconfig +++ b/bsp/hc32/lckfb-hc32f4a0-lqfp100/board/Kconfig @@ -353,24 +353,6 @@ menu "On-chip Peripheral Drivers" default n select RT_USING_I2C - if BSP_USING_I2C - menuconfig BSP_USING_I2C1_SW - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1_SW - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 1 176 - default 51 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 1 176 - default 90 - endif - endif - if BSP_USING_I2C config BSP_I2C_USING_DMA bool diff --git a/bsp/hc32/libraries/hc32_drivers/SConscript b/bsp/hc32/libraries/hc32_drivers/SConscript index 3edb6bc1c80..9e0ed1a5029 100644 --- a/bsp/hc32/libraries/hc32_drivers/SConscript +++ b/bsp/hc32/libraries/hc32_drivers/SConscript @@ -26,9 +26,6 @@ if GetDepend(['RT_USING_QSPI']): if GetDepend(['RT_USING_I2C']): src += ['drv_i2c.c'] - if GetDepend(['RT_USING_I2C_BITOPS']): - src += ['drv_soft_i2c.c'] - if GetDepend(['BSP_USING_ETH', 'RT_USING_LWIP']): src += ['drv_eth.c'] diff --git a/bsp/hc32/libraries/hc32_drivers/drv_soft_i2c.c b/bsp/hc32/libraries/hc32_drivers/drv_soft_i2c.c deleted file mode 100644 index cbf6c76b9bb..00000000000 --- a/bsp/hc32/libraries/hc32_drivers/drv_soft_i2c.c +++ /dev/null @@ -1,264 +0,0 @@ -/* - * Copyright (C) 2022-2024, Xiaohua Semiconductor Co., Ltd. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2022-04-28 CDT first version - */ - -/******************************************************************************* - * Include files - ******************************************************************************/ -#include "drv_soft_i2c.h" -#include "board_config.h" - -#if defined(RT_USING_I2C) - -#if defined(BSP_USING_I2C1_SW) || defined(BSP_USING_I2C2_SW) || defined(BSP_USING_I2C3_SW) || \ - defined(BSP_USING_I2C4_SW) || defined(BSP_USING_I2C5_SW) || defined(BSP_USING_I2C6_SW) - -/******************************************************************************* - * Local type definitions ('typedef') - ******************************************************************************/ - -/******************************************************************************* - * Local pre-processor symbols/macros ('#define') - ******************************************************************************/ -//#define DRV_DEBUG -#define LOG_TAG "drv.i2c" -#include - -/******************************************************************************* - * Global variable definitions (declared in header file with 'extern') - ******************************************************************************/ - -/******************************************************************************* - * Local function prototypes ('static') - ******************************************************************************/ - -/******************************************************************************* - * Local variable definitions ('static') - ******************************************************************************/ - -static const struct hc32_soft_i2c_config soft_i2c_config[] = -{ -#ifdef BSP_USING_I2C1_SW - I2C1_BUS_CONFIG, -#endif -#ifdef BSP_USING_I2C2_SW - I2C2_BUS_CONFIG, -#endif -#ifdef BSP_USING_I2C3_SW - I2C3_BUS_CONFIG, -#endif -#ifdef BSP_USING_I2C4_SW - I2C4_BUS_CONFIG, -#endif -#ifdef BSP_USING_I2C5_SW - I2C5_BUS_CONFIG, -#endif -#ifdef BSP_USING_I2C6_SW - I2C6_BUS_CONFIG, -#endif -}; - -static struct hc32_soft_i2c i2c_obj[sizeof(soft_i2c_config) / sizeof(soft_i2c_config[0])]; - -/******************************************************************************* - * Function implementation - global ('extern') and local ('static') - ******************************************************************************/ -/** - * This function initializes the i2c pin. - * - * @param Hc32 i2c driver class. - */ -static void hc32_i2c_gpio_init(struct hc32_soft_i2c *i2c) -{ - struct hc32_soft_i2c_config *cfg = (struct hc32_soft_i2c_config *)i2c->ops.data; - - rt_pin_mode(cfg->scl_pin, PIN_MODE_OUTPUT_OD); - rt_pin_mode(cfg->sda_pin, PIN_MODE_OUTPUT_OD); - rt_pin_write(cfg->scl_pin, PIN_HIGH); - rt_pin_write(cfg->sda_pin, PIN_HIGH); -} - -static void hc32_i2c_pin_init(void) -{ - rt_size_t obj_num = sizeof(i2c_obj) / sizeof(struct hc32_soft_i2c); - - for (rt_size_t i = 0; i < obj_num; i++) - { - hc32_i2c_gpio_init(&i2c_obj[i]); - } -} - -/** - * This function sets the sda pin. - * - * @param Hc32 config class. - * @param The sda pin state. - */ -static void hc32_set_sda(void *data, rt_int32_t state) -{ - struct hc32_soft_i2c_config *cfg = (struct hc32_soft_i2c_config *)data; - - if (state) - { - rt_pin_write(cfg->sda_pin, PIN_HIGH); - } - else - { - rt_pin_write(cfg->sda_pin, PIN_LOW); - } -} - -/** - * This function sets the scl pin. - * - * @param Hc32 config class. - * @param The scl pin state. - */ -static void hc32_set_scl(void *data, rt_int32_t state) -{ - struct hc32_soft_i2c_config *cfg = (struct hc32_soft_i2c_config *)data; - - if (state) - { - rt_pin_write(cfg->scl_pin, PIN_HIGH); - } - else - { - rt_pin_write(cfg->scl_pin, PIN_LOW); - } -} - -/** - * This function gets the sda pin state. - * - * @param The sda pin state. - */ -static rt_int32_t hc32_get_sda(void *data) -{ - struct hc32_soft_i2c_config *cfg = (struct hc32_soft_i2c_config *)data; - return rt_pin_read(cfg->sda_pin); -} - -/** - * This function gets the scl pin state. - * - * @param The scl pin state. - */ -static rt_int32_t hc32_get_scl(void *data) -{ - struct hc32_soft_i2c_config *cfg = (struct hc32_soft_i2c_config *)data; - return rt_pin_read(cfg->scl_pin); -} - -/** - * The time delay function. - * - * @param microseconds. - */ -static void hc32_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 hc32_bit_ops_default = -{ - .data = RT_NULL, - .pin_init = hc32_i2c_pin_init, - .set_sda = hc32_set_sda, - .set_scl = hc32_set_scl, - .get_sda = hc32_get_sda, - .get_scl = hc32_get_scl, - .udelay = hc32_udelay, - .delay_us = 1, - .timeout = 100, - .i2c_pin_init_flag = RT_FALSE -}; - -/** - * if i2c is locked, this function will unlock it - * - * @param hc32 config class - * - * @return RT_EOK indicates successful unlock. - */ -static rt_err_t hc32_i2c_bus_unlock(const struct hc32_soft_i2c_config *cfg) -{ - rt_uint32_t i = 0; - - if (PIN_LOW == rt_pin_read(cfg->sda_pin)) - { - while (i++ < 9) - { - rt_pin_write(cfg->scl_pin, PIN_HIGH); - hc32_udelay(100); - rt_pin_write(cfg->scl_pin, PIN_LOW); - hc32_udelay(100); - } - } - if (PIN_LOW == rt_pin_read(cfg->sda_pin)) - { - return -RT_ERROR; - } - - return RT_EOK; -} - -/* I2C initialization function */ -int hc32_soft_i2c_init(void) -{ - rt_size_t obj_num = sizeof(i2c_obj) / sizeof(struct hc32_soft_i2c); - rt_err_t result; - - for (rt_size_t i = 0; i < obj_num; i++) - { - i2c_obj[i].ops = hc32_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); - hc32_i2c_bus_unlock(&soft_i2c_config[i]); - } - - return RT_EOK; -} -INIT_BOARD_EXPORT(hc32_soft_i2c_init); - -#endif - -#endif /* RT_USING_I2C */ - -/******************************************************************************* - * EOF (not truncated) - ******************************************************************************/ diff --git a/bsp/hc32/libraries/hc32_drivers/drv_soft_i2c.h b/bsp/hc32/libraries/hc32_drivers/drv_soft_i2c.h deleted file mode 100644 index a16b9d0d37f..00000000000 --- a/bsp/hc32/libraries/hc32_drivers/drv_soft_i2c.h +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Copyright (C) 2022-2024, Xiaohua Semiconductor Co., Ltd. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2022-04-28 CDT first version - */ - -#ifndef __DRV_I2C_SOFT_H__ -#define __DRV_I2C_SOFT_H__ - -/******************************************************************************* - * Include files - ******************************************************************************/ -#include - -/* C binding of definitions if building with C++ compiler */ -#ifdef __cplusplus -extern "C" -{ -#endif - -/******************************************************************************* - * Global type definitions ('typedef') - ******************************************************************************/ -struct hc32_soft_i2c_config -{ - rt_uint16_t scl_pin; - rt_uint16_t sda_pin; - const char *bus_name; -}; - -struct hc32_soft_i2c -{ - struct rt_i2c_bit_ops ops; - struct rt_i2c_bus_device i2c_bus; -}; - -#ifdef BSP_USING_I2C1_SW -#define I2C1_BUS_CONFIG \ - { \ - .scl_pin = BSP_I2C1_SCL_PIN, \ - .sda_pin = BSP_I2C1_SDA_PIN, \ - .bus_name = "i2c1_sw", \ - } -#endif - -#ifdef BSP_USING_I2C2_SW -#define I2C2_BUS_CONFIG \ - { \ - .scl_pin = BSP_I2C2_SCL_PIN, \ - .sda_pin = BSP_I2C2_SDA_PIN, \ - .bus_name = "i2c2_sw", \ - } -#endif - -#ifdef BSP_USING_I2C3_SW -#define I2C3_BUS_CONFIG \ - { \ - .scl_pin = BSP_I2C3_SCL_PIN, \ - .sda_pin = BSP_I2C3_SDA_PIN, \ - .bus_name = "i2c3_sw", \ - } -#endif - -#ifdef BSP_USING_I2C4_SW -#define I2C4_BUS_CONFIG \ - { \ - .scl_pin = BSP_I2C4_SCL_PIN, \ - .sda_pin = BSP_I2C4_SDA_PIN, \ - .bus_name = "i2c4_sw", \ - } -#endif - -#ifdef BSP_USING_I2C5_SW -#define I2C5_BUS_CONFIG \ - { \ - .scl_pin = BSP_I2C5_SCL_PIN, \ - .sda_pin = BSP_I2C5_SDA_PIN, \ - .bus_name = "i2c5_sw", \ - } -#endif - -#ifdef BSP_USING_I2C6_SW -#define I2C6_BUS_CONFIG \ - { \ - .scl_pin = BSP_I2C6_SCL_PIN, \ - .sda_pin = BSP_I2C6_SDA_PIN, \ - .bus_name = "i2c6_sw", \ - } -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* __DRV_SOFT_I2C_H__ */ - -/******************************************************************************* - * EOF (not truncated) - ******************************************************************************/ diff --git a/bsp/hc32/tests/SConscript b/bsp/hc32/tests/SConscript index 3733761301b..de2f334fd74 100644 --- a/bsp/hc32/tests/SConscript +++ b/bsp/hc32/tests/SConscript @@ -22,7 +22,7 @@ if GetDepend(['BSP_USING_QSPI']): if GetDepend(['BSP_USING_I2C']): src += ['test_i2c.c'] - if GetDepend(['RT_USING_I2C_BITOPS']): + if GetDepend(['RT_USING_SOFT_I2C1']): src += ['test_soft_i2c.c'] if GetDepend(['BSP_USING_ETH', 'RT_USING_LWIP']): diff --git a/bsp/hc32/tests/test_soft_i2c.c b/bsp/hc32/tests/test_soft_i2c.c index 4cce95dabde..72591571493 100644 --- a/bsp/hc32/tests/test_soft_i2c.c +++ b/bsp/hc32/tests/test_soft_i2c.c @@ -25,10 +25,10 @@ #if defined(RT_USING_I2C) -#if defined(BSP_USING_I2C1_SW) +#if defined(RT_USING_SOFT_I2C1) /* using i2c1 control oled12864 */ -#define SW_I2C_NAME "i2c1_sw" +#define SW_I2C_NAME RT_SOFT_I2C1_BUS_NAME #define SSD1306_ADDR (0x78U >> 1) #define SSD1306_MD_CMD (0x00U) #define SSD1306_MD_DATA (0x40U) @@ -304,7 +304,7 @@ rt_uint8_t logo_array[][SYM_BYTE_SIZE] = MSH_CMD_EXPORT(sw_i2c_sample, soft i2c sample); -#endif /* BSP_USING_I2C1_SW */ +#endif /* RT_USING_SOFT_I2C1 */ #endif/* RT_USING_I2C */ /* diff --git a/bsp/hc32l136/.ci/attachconfig/ci.attachconfig.yml b/bsp/hc32l136/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..bf1a5ff7584 --- /dev/null +++ b/bsp/hc32l136/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,8 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=51 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=90 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/hc32l136/board/Kconfig b/bsp/hc32l136/board/Kconfig index 641c61c83aa..ba69df8086d 100644 --- a/bsp/hc32l136/board/Kconfig +++ b/bsp/hc32l136/board/Kconfig @@ -31,23 +31,6 @@ menu "On-chip Peripheral Drivers" default y endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default y - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 1 176 - default 51 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 1 176 - default 90 - endif - endmenu menu "Board extended module Drivers" diff --git a/bsp/hc32l136/drivers/SConscript b/bsp/hc32l136/drivers/SConscript index 951195c3d74..0258ca131b8 100644 --- a/bsp/hc32l136/drivers/SConscript +++ b/bsp/hc32l136/drivers/SConscript @@ -13,9 +13,6 @@ if GetDepend(['RT_USING_PIN']): if GetDepend(['RT_USING_SERIAL']): src += ['drv_usart.c'] -if GetDepend(['RT_USING_I2C', 'RT_USING_I2C_BITOPS']): - src += ['drv_soft_i2c.c'] - CPPPATH = [cwd] group = DefineGroup('Drivers', src, depend = [''], CPPPATH = CPPPATH) diff --git a/bsp/hk32/hk32f030c8-mini/.ci/attachconfig/ci.attachconfig.yml b/bsp/hk32/hk32f030c8-mini/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..41fd8a8a94e --- /dev/null +++ b/bsp/hk32/hk32f030c8-mini/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,12 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=24 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=25 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=26 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=27 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" diff --git a/bsp/hk32/hk32f030c8-mini/board/Kconfig b/bsp/hk32/hk32f030c8-mini/board/Kconfig index e3e8e27c2fa..9080a92d2f1 100644 --- a/bsp/hk32/hk32f030c8-mini/board/Kconfig +++ b/bsp/hk32/hk32f030c8-mini/board/Kconfig @@ -102,42 +102,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C - bool "Enable I2C BUS" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C - config BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 63 - default 24 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 63 - default 25 - endif - - config BSP_USING_I2C2 - bool "Enable I2C2 BUS (software simulation)" - default n - if BSP_USING_I2C2 - config BSP_I2C2_SCL_PIN - int "i2c2 scl pin number" - range 0 63 - default 26 - config BSP_I2C2_SDA_PIN - int "I2C2 sda pin number" - range 0 63 - default 27 - endif - endif - menuconfig BSP_USING_ADC bool "Enable ADC" default n diff --git a/bsp/hk32/libraries/rt_drivers/SConscript b/bsp/hk32/libraries/rt_drivers/SConscript index c816e2c8fbd..6947366c4ed 100644 --- a/bsp/hk32/libraries/rt_drivers/SConscript +++ b/bsp/hk32/libraries/rt_drivers/SConscript @@ -27,10 +27,6 @@ if GetDepend(['BSP_USING_SPI']): if GetDepend(['BSP_USING_ETH', 'RT_USING_LWIP']): src += ['drv_eth.c'] -if GetDepend(['RT_USING_I2C', 'RT_USING_I2C_BITOPS']): - if GetDepend('BSP_USING_I2C1') or GetDepend('BSP_USING_I2C2') or GetDepend('BSP_USING_I2C3') or GetDepend('BSP_USING_I2C4'): - src += ['drv_soft_i2c.c'] - if GetDepend(['BSP_USING_ADC']): src += Glob('drv_adc.c') diff --git a/bsp/hk32/libraries/rt_drivers/drv_soft_i2c.c b/bsp/hk32/libraries/rt_drivers/drv_soft_i2c.c deleted file mode 100644 index 6daf5b30a38..00000000000 --- a/bsp/hk32/libraries/rt_drivers/drv_soft_i2c.c +++ /dev/null @@ -1,232 +0,0 @@ -/* - * Copyright (c) 2006-2021, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2021-08-15 Jonas first version - */ - -#include -#include "drv_soft_i2c.h" - -#ifdef RT_USING_I2C - -#define LOG_TAG "drv.i2c" -#include - -#if !defined(BSP_USING_I2C1) && !defined(BSP_USING_I2C2) && !defined(BSP_USING_I2C3) && !defined(BSP_USING_I2C4) - #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 hk32_soft_i2c_config soft_i2c_config[] = -{ -#ifdef BSP_USING_I2C1 - I2C1_BUS_CONFIG, -#endif -#ifdef BSP_USING_I2C2 - I2C2_BUS_CONFIG, -#endif -#ifdef BSP_USING_I2C3 - I2C3_BUS_CONFIG, -#endif -#ifdef BSP_USING_I2C4 - I2C4_BUS_CONFIG, -#endif -}; - -static struct hk32_i2c i2c_obj[sizeof(soft_i2c_config) / sizeof(soft_i2c_config[0])]; - -/** - * This function initializes the i2c pin. - * - * @param hk32 i2c dirver class. - */ -static void hk32_i2c_gpio_init(struct hk32_i2c *i2c) -{ - struct hk32_soft_i2c_config *cfg = (struct hk32_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 hk32_i2c_pin_init(void) -{ - rt_size_t obj_num = sizeof(i2c_obj) / sizeof(struct hk32_i2c); - - for(rt_size_t i = 0; i < obj_num; i++) - { - hk32_i2c_gpio_init(&i2c_obj[i]); - } -} - -/** - * This function sets the sda pin. - * - * @param hk32 config class. - * @param The sda pin state. - */ -static void hk32_set_sda(void *data, rt_int32_t state) -{ - struct hk32_soft_i2c_config *cfg = (struct hk32_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 hk32 config class. - * @param The scl pin state. - */ -static void hk32_set_scl(void *data, rt_int32_t state) -{ - struct hk32_soft_i2c_config *cfg = (struct hk32_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 hk32_get_sda(void *data) -{ - struct hk32_soft_i2c_config *cfg = (struct hk32_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 hk32_get_scl(void *data) -{ - struct hk32_soft_i2c_config *cfg = (struct hk32_soft_i2c_config *)data; - return rt_pin_read(cfg->scl); -} -/** - * The time delay function. - * - * @param microseconds. - */ -static void hk32_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 hk32_bit_ops_default = -{ - .data = RT_NULL, - .pin_init = hk32_i2c_pin_init, - .set_sda = hk32_set_sda, - .set_scl = hk32_set_scl, - .get_sda = hk32_get_sda, - .get_scl = hk32_get_scl, - .udelay = hk32_udelay, - .delay_us = 1, - .timeout = 100, - .i2c_pin_init_flag = RT_FALSE -}; - -/** - * if i2c is locked, this function will unlock it - * - * @param hk32 config class - * - * @return RT_EOK indicates successful unlock. - */ -static rt_err_t hk32_i2c_bus_unlock(const struct hk32_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); - hk32_udelay(100); - rt_pin_write(cfg->scl, PIN_LOW); - hk32_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 hk32_i2c); - rt_err_t result; - - for (int i = 0; i < obj_num; i++) - { - i2c_obj[i].ops = hk32_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); - hk32_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 /* RT_USING_I2C */ diff --git a/bsp/hk32/libraries/rt_drivers/drv_soft_i2c.h b/bsp/hk32/libraries/rt_drivers/drv_soft_i2c.h deleted file mode 100644 index 59864f14475..00000000000 --- a/bsp/hk32/libraries/rt_drivers/drv_soft_i2c.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright (c) 2006-2021, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2021-08-15 Jonas first version - */ - -#ifndef __DRV_I2C__ -#define __DRV_I2C__ - -#include -#include -#include - -/* hk32 config class */ -struct hk32_soft_i2c_config -{ - rt_uint8_t scl; - rt_uint8_t sda; - const char *bus_name; -}; -/* hk32 i2c dirver class */ -struct hk32_i2c -{ - struct rt_i2c_bit_ops ops; - struct rt_i2c_bus_device i2c_bus; -}; - -#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 - -#ifdef BSP_USING_I2C3 -#define I2C3_BUS_CONFIG \ - { \ - .scl = BSP_I2C3_SCL_PIN, \ - .sda = BSP_I2C3_SDA_PIN, \ - .bus_name = "i2c3", \ - } -#endif - -#ifdef BSP_USING_I2C4 -#define I2C4_BUS_CONFIG \ - { \ - .scl = BSP_I2C4_SCL_PIN, \ - .sda = BSP_I2C4_SDA_PIN, \ - .bus_name = "i2c4", \ - } -#endif -int rt_hw_i2c_init(void); - -#endif diff --git a/bsp/ht32/ht32f12366/.ci/attachconfig/ci.attachconfig.yml b/bsp/ht32/ht32f12366/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..c04be62df6b --- /dev/null +++ b/bsp/ht32/ht32f12366/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,16 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C0=y + - CONFIG_RT_SOFT_I2C0_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C0_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C0_BUS_NAME="sw_i2c0" + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=24 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=25 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="sw_i2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=26 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=27 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="sw_i2c2" diff --git a/bsp/ht32/ht32f12366/board/Kconfig b/bsp/ht32/ht32f12366/board/Kconfig index 78fde329271..1722a0c8d97 100644 --- a/bsp/ht32/ht32f12366/board/Kconfig +++ b/bsp/ht32/ht32f12366/board/Kconfig @@ -209,70 +209,6 @@ menu "On-chip Peripheral Drivers" default "hw_i2c1" endif - menuconfig BSP_USING_I2C_SW - bool "Enable I2C Bus(software)" - default n - select BSP_USING_GPIO if BSP_USING_I2C_SW - select RT_USING_I2C if BSP_USING_I2C_SW - - if BSP_USING_I2C_SW - config BSP_USING_I2C0_SW - bool "Enable Software I2C0 Bus" - default n - config BSP_USING_I2C0_SW_NAME - depends on BSP_USING_I2C0_SW - string "software i2c0 name" - default "sw_i2c0" - if BSP_USING_I2C0_SW - config BSP_I2C0_SLC_PIN - int "i2c0 slc pin number" - range 0 51 - default 22 - - config BSP_I2C0_SDA_PIN - int "i2c0 sda pin number" - range 0 51 - default 23 - endif - - config BSP_USING_I2C1_SW - bool "Enable Software I2C1 Bus" - default n - config BSP_USING_I2C1_SW_NAME - depends on BSP_USING_I2C1_SW - string "software i2c1 name" - default "sw_i2c1" - if BSP_USING_I2C1_SW - config BSP_I2C1_SLC_PIN - int "i2c1 slc pin number" - range 0 51 - default 24 - - config BSP_I2C1_SDA_PIN - int "i2c1 sda pin number" - range 0 51 - default 25 - endif - - config BSP_USING_I2C2_SW - bool "Enable Software I2C2 Bus" - default n - config BSP_USING_I2C2_SW_NAME - depends on BSP_USING_I2C2_SW - string "software i2c2 name" - default "sw_i2c2" - if BSP_USING_I2C2_SW - config BSP_I2C2_SLC_PIN - int "i2c2 slc pin number" - range 0 51 - default 26 - - config BSP_I2C2_SDA_PIN - int "i2c2 sda pin number" - range 0 51 - default 27 - endif - endif endif menuconfig BSP_USING_ADC diff --git a/bsp/ht32/ht32f52352/.ci/attachconfig/ci.attachconfig.yml b/bsp/ht32/ht32f52352/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..c04be62df6b --- /dev/null +++ b/bsp/ht32/ht32f52352/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,16 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C0=y + - CONFIG_RT_SOFT_I2C0_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C0_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C0_BUS_NAME="sw_i2c0" + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=24 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=25 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="sw_i2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=26 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=27 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="sw_i2c2" diff --git a/bsp/ht32/ht32f52352/board/Kconfig b/bsp/ht32/ht32f52352/board/Kconfig index 8ba20cd72d2..0c79cb8c22e 100644 --- a/bsp/ht32/ht32f52352/board/Kconfig +++ b/bsp/ht32/ht32f52352/board/Kconfig @@ -209,70 +209,6 @@ menu "On-chip Peripheral Drivers" default "hw_i2c1" endif - menuconfig BSP_USING_I2C_SW - bool "Enable I2C Bus(software)" - default n - select BSP_USING_GPIO if BSP_USING_I2C_SW - select RT_USING_I2C if BSP_USING_I2C_SW - - if BSP_USING_I2C_SW - config BSP_USING_I2C0_SW - bool "Enable Software I2C0 Bus" - default n - config BSP_USING_I2C0_SW_NAME - depends on BSP_USING_I2C0_SW - string "software i2c0 name" - default "sw_i2c0" - if BSP_USING_I2C0_SW - config BSP_I2C0_SLC_PIN - int "i2c0 slc pin number" - range 0 51 - default 22 - - config BSP_I2C0_SDA_PIN - int "i2c0 sda pin number" - range 0 51 - default 23 - endif - - config BSP_USING_I2C1_SW - bool "Enable Software I2C1 Bus" - default n - config BSP_USING_I2C1_SW_NAME - depends on BSP_USING_I2C1_SW - string "software i2c1 name" - default "sw_i2c1" - if BSP_USING_I2C1_SW - config BSP_I2C1_SLC_PIN - int "i2c1 slc pin number" - range 0 51 - default 24 - - config BSP_I2C1_SDA_PIN - int "i2c1 sda pin number" - range 0 51 - default 25 - endif - - config BSP_USING_I2C2_SW - bool "Enable Software I2C2 Bus" - default n - config BSP_USING_I2C2_SW_NAME - depends on BSP_USING_I2C2_SW - string "software i2c2 name" - default "sw_i2c2" - if BSP_USING_I2C2_SW - config BSP_I2C2_SLC_PIN - int "i2c2 slc pin number" - range 0 51 - default 26 - - config BSP_I2C2_SDA_PIN - int "i2c2 sda pin number" - range 0 51 - default 27 - endif - endif endif menuconfig BSP_USING_ADC diff --git a/bsp/ht32/ht32f53252/.ci/attachconfig/ci.attachconfig.yml b/bsp/ht32/ht32f53252/.ci/attachconfig/ci.attachconfig.yml index 817cf4e3d02..b16ef13cd34 100644 --- a/bsp/ht32/ht32f53252/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/ht32/ht32f53252/.ci/attachconfig/ci.attachconfig.yml @@ -10,9 +10,25 @@ devices.uart: kconfig: - CONFIG_BSP_USING_UART=y - CONFIG_BSP_USING_USART1=y -# ------ SEGGER CI ------ segger: kconfig: - CONFIG_BSP_USING_GPIO=y - CONFIG_BSP_USING_UART=y - - CONFIG_BSP_USING_USART1=y \ No newline at end of file + - CONFIG_BSP_USING_USART1=y + +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C0=y + - CONFIG_RT_SOFT_I2C0_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C0_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C0_BUS_NAME="sw_i2c0" + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=24 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=25 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="sw_i2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=26 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=27 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="sw_i2c2" diff --git a/bsp/ht32/ht32f53252/board/Kconfig b/bsp/ht32/ht32f53252/board/Kconfig index 8ba20cd72d2..0c79cb8c22e 100644 --- a/bsp/ht32/ht32f53252/board/Kconfig +++ b/bsp/ht32/ht32f53252/board/Kconfig @@ -209,70 +209,6 @@ menu "On-chip Peripheral Drivers" default "hw_i2c1" endif - menuconfig BSP_USING_I2C_SW - bool "Enable I2C Bus(software)" - default n - select BSP_USING_GPIO if BSP_USING_I2C_SW - select RT_USING_I2C if BSP_USING_I2C_SW - - if BSP_USING_I2C_SW - config BSP_USING_I2C0_SW - bool "Enable Software I2C0 Bus" - default n - config BSP_USING_I2C0_SW_NAME - depends on BSP_USING_I2C0_SW - string "software i2c0 name" - default "sw_i2c0" - if BSP_USING_I2C0_SW - config BSP_I2C0_SLC_PIN - int "i2c0 slc pin number" - range 0 51 - default 22 - - config BSP_I2C0_SDA_PIN - int "i2c0 sda pin number" - range 0 51 - default 23 - endif - - config BSP_USING_I2C1_SW - bool "Enable Software I2C1 Bus" - default n - config BSP_USING_I2C1_SW_NAME - depends on BSP_USING_I2C1_SW - string "software i2c1 name" - default "sw_i2c1" - if BSP_USING_I2C1_SW - config BSP_I2C1_SLC_PIN - int "i2c1 slc pin number" - range 0 51 - default 24 - - config BSP_I2C1_SDA_PIN - int "i2c1 sda pin number" - range 0 51 - default 25 - endif - - config BSP_USING_I2C2_SW - bool "Enable Software I2C2 Bus" - default n - config BSP_USING_I2C2_SW_NAME - depends on BSP_USING_I2C2_SW - string "software i2c2 name" - default "sw_i2c2" - if BSP_USING_I2C2_SW - config BSP_I2C2_SLC_PIN - int "i2c2 slc pin number" - range 0 51 - default 26 - - config BSP_I2C2_SDA_PIN - int "i2c2 sda pin number" - range 0 51 - default 27 - endif - endif endif menuconfig BSP_USING_ADC diff --git a/bsp/ht32/libraries/ht32_drivers/SConscript b/bsp/ht32/libraries/ht32_drivers/SConscript index 86ba719ad98..1bb5a2d96c6 100644 --- a/bsp/ht32/libraries/ht32_drivers/SConscript +++ b/bsp/ht32/libraries/ht32_drivers/SConscript @@ -26,9 +26,6 @@ if GetDepend(['BSP_USING_SPI']): if GetDepend(['BSP_USING_I2C_HW']): src += ['drv_i2c.c'] -if GetDepend(['BSP_USING_I2C_SW']): - src += ['drv_soft_i2c.c'] - if GetDepend(['BSP_USING_ADC']): src += ['drv_adc.c'] diff --git a/bsp/ht32/libraries/ht32_drivers/drv_soft_i2c.c b/bsp/ht32/libraries/ht32_drivers/drv_soft_i2c.c deleted file mode 100644 index 269eaf5eee0..00000000000 --- a/bsp/ht32/libraries/ht32_drivers/drv_soft_i2c.c +++ /dev/null @@ -1,228 +0,0 @@ -/* - * Copyright (c) 2006-2024, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2024-05-29 QT-one first version - */ -#include -#include "drv_soft_i2c.h" - -#ifdef RT_USING_I2C -#if !defined(BSP_USING_I2C0_SW) && !defined(BSP_USING_I2C1_SW) && !defined(BSP_USING_I2C2_SW) - #error "Please define at least one BSP_USING_I2Cx_SW" - /* this driver can be disabled at menuconfig RT-Thread Components Device Drivers */ -#endif - -/* ht32 software i2c config class */ -struct ht32_soft_i2c_config -{ - rt_uint8_t scl; - rt_uint8_t sda; - const char *bus_name; -}; -/* ht32 software i2c dirver class */ -struct ht32_soft_i2c -{ - struct rt_i2c_bit_ops ops; - struct rt_i2c_bus_device i2c_bus; -}; - -static rt_uint8_t scl_rw_flag = 0; -static rt_uint8_t sda_rw_flag = 0; - -static const struct ht32_soft_i2c_config soft_i2c_config[] = -{ -#ifdef BSP_USING_I2C0_SW - { - .scl = BSP_I2C0_SLC_PIN, - .sda = BSP_I2C0_SDA_PIN, - .bus_name = BSP_USING_I2C0_SW_NAME, - }, -#endif -#ifdef BSP_USING_I2C1_SW - { - .scl = BSP_I2C1_SLC_PIN, - .sda = BSP_I2C1_SDA_PIN, - .bus_name = BSP_USING_I2C1_SW_NAME, - }, -#endif -#ifdef BSP_USING_I2C2_SW - { - .scl = BSP_I2C2_SLC_PIN, - .sda = BSP_I2C2_SDA_PIN, - .bus_name = BSP_USING_I2C2_SW_NAME, - }, -#endif -}; - -static struct ht32_soft_i2c i2c_obj[sizeof(soft_i2c_config) / sizeof(soft_i2c_config[0])]; - -/* this function initializes the software i2c pin */ -static void ht32_soft_i2c_gpio_init(struct ht32_soft_i2c *i2c) -{ - struct ht32_soft_i2c_config* cfg = (struct ht32_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); -} -/* this function sets the sda pin */ -void ht32_set_sda(void *data, rt_int32_t state) -{ - struct ht32_soft_i2c_config* cfg = (struct ht32_soft_i2c_config*)data; - if(sda_rw_flag != 0) - { - sda_rw_flag = 0; - rt_pin_mode(cfg->sda, PIN_MODE_OUTPUT_OD); - } - if (state) - { - rt_pin_write(cfg->sda, PIN_HIGH); - } - else - { - rt_pin_write(cfg->sda, PIN_LOW); - } -} -/* this function sets the scl pin */ -void ht32_set_scl(void *data, rt_int32_t state) -{ - struct ht32_soft_i2c_config* cfg = (struct ht32_soft_i2c_config*)data; - if(scl_rw_flag != 0) - { - scl_rw_flag = 0; - rt_pin_mode(cfg->scl, PIN_MODE_OUTPUT_OD); - } - if (state) - { - rt_pin_write(cfg->scl, PIN_HIGH); - } - else - { - rt_pin_write(cfg->scl, PIN_LOW); - } -} -/* this function gets the sda pin state */ -rt_int32_t ht32_get_sda(void *data) -{ - struct ht32_soft_i2c_config* cfg = (struct ht32_soft_i2c_config*)data; - - if(sda_rw_flag == 0) - { - sda_rw_flag = 1; - rt_pin_mode(cfg->sda, PIN_MODE_INPUT); - } - return rt_pin_read(cfg->sda); -} -/* this function gets the scl pin state */ -rt_int32_t ht32_get_scl(void *data) -{ - struct ht32_soft_i2c_config* cfg = (struct ht32_soft_i2c_config*)data; - if(scl_rw_flag == 0) - { - scl_rw_flag = 1; - rt_pin_mode(cfg->scl, PIN_MODE_INPUT); - } - return rt_pin_read(cfg->scl); -} - -void ht32_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 ht32_bit_ops_default = -{ - .data = RT_NULL, - .set_sda = ht32_set_sda, - .set_scl = ht32_set_scl, - .get_sda = ht32_get_sda, - .get_scl = ht32_get_scl, - .udelay = ht32_udelay, - .delay_us = 1, - .timeout = 100 -}; - -/* if i2c is locked, this function will unlock it */ -static rt_err_t ht32_soft_i2c_bus_unlock(const struct ht32_soft_i2c_config *cfg) -{ - rt_int32_t i = 0; - rt_pin_mode(cfg->sda, PIN_MODE_INPUT_PULLUP); - if (PIN_LOW == rt_pin_read(cfg->sda)) - { - while (i++ < 9) - { - rt_pin_write(cfg->scl, PIN_HIGH); - ht32_udelay(100); - rt_pin_write(cfg->scl, PIN_LOW); - ht32_udelay(100); - } - } - if (PIN_LOW == rt_pin_read(cfg->sda)) - { - return -RT_ERROR; - } - rt_pin_mode(cfg->sda, PIN_MODE_OUTPUT_OD); - return RT_EOK; -} - -/* i2c initialization function */ -int rt_sw_i2c_init(void) -{ - rt_size_t obj_num = sizeof(i2c_obj) / sizeof(struct ht32_soft_i2c); - rt_err_t result; - - for (int i = 0; i < obj_num; i++) - { - i2c_obj[i].ops = ht32_bit_ops_default; - i2c_obj[i].ops.data = (void*)&soft_i2c_config[i]; - i2c_obj[i].i2c_bus.priv = &i2c_obj[i].ops; - ht32_soft_i2c_gpio_init(&i2c_obj[i]); - - result = rt_i2c_bit_add_bus(&i2c_obj[i].i2c_bus, soft_i2c_config[i].bus_name); - - RT_ASSERT(result == RT_EOK); - ht32_soft_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 result; -} - -INIT_BOARD_EXPORT(rt_sw_i2c_init); - - -#endif /* RT_USING_I2C */ diff --git a/bsp/ht32/libraries/ht32_drivers/drv_soft_i2c.h b/bsp/ht32/libraries/ht32_drivers/drv_soft_i2c.h deleted file mode 100644 index 3ce48ee6ef9..00000000000 --- a/bsp/ht32/libraries/ht32_drivers/drv_soft_i2c.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (c) 2006-2024, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2024-05-29 QT-one first version - */ - -#ifndef __DRV_I2C_H__ -#define __DRV_I2C_H__ - -#include -#include -#ifdef RT_USING_DEVICE - #include -#endif -#include "drv_common.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* __DRV_I2C_H__ */ - diff --git a/bsp/k210/drivers/drv_i2c.c b/bsp/k210/drivers/drv_i2c.c index eb707b757cb..74da3c3dc9f 100644 --- a/bsp/k210/drivers/drv_i2c.c +++ b/bsp/k210/drivers/drv_i2c.c @@ -15,31 +15,8 @@ #include "i2c.h" #include "board.h" #include "drivers/dev_i2c.h" -#include "gpiohs.h" -#include "utils.h" -#include "sleep.h" -#include "fpioa.h" #ifdef RT_USING_I2C -#ifndef BSP_I2C0_SCL_PIN -#define BSP_I2C0_SCL_PIN 0 -#endif -#ifndef BSP_I2C0_SDA_PIN -#define BSP_I2C0_SDA_PIN 1 -#endif -#ifndef BSP_I2C1_SCL_PIN -#define BSP_I2C1_SCL_PIN 30 -#endif -#ifndef BSP_I2C1_SDA_PIN -#define BSP_I2C1_SDA_PIN 31 -#endif -#ifndef BSP_I2C2_SCL_PIN -#define BSP_I2C2_SCL_PIN 4 -#endif -#ifndef BSP_I2C2_SDA_PIN -#define BSP_I2C2_SDA_PIN 5 -#endif - static rt_err_t ki2c_send( volatile i2c_t *i2c_adapter, rt_uint8_t *send_buf, @@ -196,89 +173,6 @@ static const struct rt_i2c_bus_device_ops i2c_ops = .i2c_bus_control = RT_NULL, }; -#ifdef RT_USING_I2C_BITOPS - -typedef struct pin_info_s { - uint32_t scl; - uint32_t sda; -} pin_info_t; - -static void set_sda(void *data, rt_int32_t state) -{ - pin_info_t *pin = (pin_info_t *)data; - /* state = 1: disable output. state = 0: enable output.*/ - set_gpio_bit(gpiohs->output_en.u32, pin->sda, !state); -} - -static void set_scl(void *data, rt_int32_t state) -{ - pin_info_t *pin = (pin_info_t *)data; - /* state = 1: disable output. state = 0: enable output.*/ - set_gpio_bit(gpiohs->output_en.u32, pin->scl, !state); -} - -static rt_int32_t get_sda(void *data) -{ - pin_info_t *pin = (pin_info_t *)data; - /* disable output.*/ - set_gpio_bit(gpiohs->output_en.u32, pin->sda, 0); - - return get_gpio_bit(gpiohs->input_val.u32, pin->sda); -} - -static rt_int32_t get_scl(void *data) -{ - pin_info_t *pin = (pin_info_t *)data; - /* disable output.*/ - set_gpio_bit(gpiohs->output_en.u32, pin->scl, 0); - - return get_gpio_bit(gpiohs->input_val.u32, pin->scl); -} - -static void udelay(rt_uint32_t us) -{ - usleep((uint64_t)us); -} - -static struct rt_i2c_bit_ops bit_ops_0 = -{ - RT_NULL, - set_sda, - set_scl, - get_sda, - get_scl, - udelay, - 5, - 5 -}; - -static struct rt_i2c_bit_ops bit_ops_1 = -{ - RT_NULL, - set_sda, - set_scl, - get_sda, - get_scl, - udelay, - 5, - 5 -}; - -static struct rt_i2c_bit_ops bit_ops_2 = -{ - RT_NULL, - set_sda, - set_scl, - get_sda, - get_scl, - udelay, - 5, - 5 -}; - -extern int get_pin_channel(rt_base_t pin_index); -#endif - int rt_hw_i2c_init(void) { struct rt_i2c_bus_device *busdev; @@ -287,90 +181,33 @@ int rt_hw_i2c_init(void) static struct rt_i2c_bus_device i2c_dev0; busdev = &i2c_dev0; - #ifdef RT_USING_I2C_BITOPS - fpioa_set_function(BSP_I2C0_SCL_PIN, FUNC_RESV0); - fpioa_set_function(BSP_I2C0_SDA_PIN, FUNC_RESV0); - - rt_pin_write(BSP_I2C0_SCL_PIN, PIN_LOW); - rt_pin_write(BSP_I2C0_SDA_PIN, PIN_LOW); - rt_pin_mode(BSP_I2C0_SCL_PIN, PIN_MODE_INPUT_PULLUP); - rt_pin_mode(BSP_I2C0_SDA_PIN, PIN_MODE_INPUT_PULLUP); - - static pin_info_t pin0; - pin0.scl = get_pin_channel(BSP_I2C0_SCL_PIN); - pin0.sda = get_pin_channel(BSP_I2C0_SDA_PIN); - bit_ops_0.data = (void *)&pin0; - - busdev->priv = (void *)&bit_ops_0; - rt_i2c_bit_add_bus(busdev, "i2c0"); - #else - busdev->ops = &i2c_ops; busdev->priv = (void *)I2C0_BASE_ADDR; i2c_init(I2C_DEVICE_0, 0, 7, 100000); rt_i2c_bus_device_register(busdev, "i2c0"); - #endif #endif #ifdef BSP_USING_I2C1 static struct rt_i2c_bus_device i2c_dev1; busdev = &i2c_dev1; - #ifdef RT_USING_I2C_BITOPS - fpioa_set_function(BSP_I2C1_SCL_PIN, FUNC_RESV0); - fpioa_set_function(BSP_I2C1_SDA_PIN, FUNC_RESV0); - - rt_pin_write(BSP_I2C1_SCL_PIN, PIN_LOW); - rt_pin_write(BSP_I2C1_SDA_PIN, PIN_LOW); - rt_pin_mode(BSP_I2C1_SCL_PIN, PIN_MODE_INPUT_PULLUP); - rt_pin_mode(BSP_I2C1_SDA_PIN, PIN_MODE_INPUT_PULLUP); - - static pin_info_t pin1; - pin1.scl = get_pin_channel(BSP_I2C1_SCL_PIN); - pin1.sda = get_pin_channel(BSP_I2C1_SDA_PIN); - bit_ops_1.data = (void *)&pin1; - - busdev->priv = (void *)&bit_ops_1; - rt_i2c_bit_add_bus(busdev, "i2c1"); - #else - busdev->ops = &i2c_ops; busdev->priv = (void *)I2C1_BASE_ADDR; i2c_init(I2C_DEVICE_1, 0, 7, 100000); rt_i2c_bus_device_register(busdev, "i2c1"); - #endif #endif #ifdef BSP_USING_I2C2 static struct rt_i2c_bus_device i2c_dev2; busdev = &i2c_dev2; - #ifdef RT_USING_I2C_BITOPS - fpioa_set_function(BSP_I2C2_SCL_PIN, FUNC_RESV0); - fpioa_set_function(BSP_I2C2_SDA_PIN, FUNC_RESV0); - - rt_pin_write(BSP_I2C2_SCL_PIN, PIN_LOW); - rt_pin_write(BSP_I2C2_SDA_PIN, PIN_LOW); - rt_pin_mode(BSP_I2C2_SCL_PIN, PIN_MODE_INPUT_PULLUP); - rt_pin_mode(BSP_I2C2_SDA_PIN, PIN_MODE_INPUT_PULLUP); - - static pin_info_t pin2; - pin2.scl = get_pin_channel(BSP_I2C2_SCL_PIN); - pin2.sda = get_pin_channel(BSP_I2C2_SDA_PIN); - bit_ops_2.data = (void *)&pin2; - - busdev->priv = (void *)&bit_ops_2; - rt_i2c_bit_add_bus(busdev, "i2c2"); - #else - busdev->ops = &i2c_ops; busdev->priv = (void *)I2C2_BASE_ADDR; i2c_init(I2C_DEVICE_2, 0, 7, 100000); rt_i2c_bus_device_register(busdev, "i2c2"); - #endif #endif return 0; } diff --git a/bsp/loongson/ls1cdev/drivers/drv_i2c.c b/bsp/loongson/ls1cdev/drivers/drv_i2c.c deleted file mode 100644 index 6904155eb5e..00000000000 --- a/bsp/loongson/ls1cdev/drivers/drv_i2c.c +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Copyright (c) 2006-2018, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2017-11-14 勤为本 first version - */ - -#include -#include -#include -#include "drv_i2c.h" -#include "../libraries/ls1c_gpio.h" -#include "../libraries/ls1c_delay.h" - - -#define LS1C_I2C_SCL (51) // gpio57 -#define LS1C_I2C_SDA (50) // gpio56 - -#define LS1C_SET_GPIO_MODE - -static void ls1c_i2c_gpio_init(void) -{ - gpio_init(LS1C_I2C_SCL, gpio_mode_output); - gpio_set(LS1C_I2C_SCL, gpio_level_high); - - gpio_init(LS1C_I2C_SDA, gpio_mode_output); - gpio_set(LS1C_I2C_SDA, gpio_level_high); - - return ; -} - - -static void ls1c_udelay(rt_uint32_t us) -{ - delay_us((int)us); -} - - -static void ls1c_set_sda(void *data, rt_int32_t state) -{ -#ifdef LS1C_SET_GPIO_MODE - gpio_init(LS1C_I2C_SDA, gpio_mode_output); - ls1c_udelay(5); -#endif - gpio_set(LS1C_I2C_SDA, state); - return ; -} - - -static void ls1c_set_scl(void *data, rt_int32_t state) -{ -#ifdef LS1C_SET_GPIO_MODE - gpio_init(LS1C_I2C_SCL, gpio_mode_output); - ls1c_udelay(5); -#endif - gpio_set(LS1C_I2C_SCL, state); - return ; -} - - -static rt_int32_t ls1c_get_sda(void *data) -{ -#ifdef LS1C_SET_GPIO_MODE - gpio_init(LS1C_I2C_SDA, gpio_mode_input); - ls1c_udelay(5); -#endif - return gpio_get(LS1C_I2C_SDA); -} - - -static rt_int32_t ls1c_get_scl(void *data) -{ -#ifdef LS1C_SET_GPIO_MODE - gpio_init(LS1C_I2C_SCL, gpio_mode_input); - ls1c_udelay(5); -#endif - return gpio_get(LS1C_I2C_SCL); -} - - -static const struct rt_i2c_bit_ops bit_ops = -{ - .data = RT_NULL, - .pin_init = ls1c_i2c_gpio_init, - .set_sda = ls1c_set_sda, - .set_scl = ls1c_set_scl, - .get_sda = ls1c_get_sda, - .get_scl = ls1c_get_scl, - .udelay = ls1c_udelay, - .delay_us = 20, // 此值为周期(us) - .timeout = 10, // 单位为tick - .i2c_pin_init_flag = RT_FALSE -}; - - - -int ls1c_i2c_init(void) -{ - static struct rt_i2c_bus_device bus = {0}; - - bus.priv = (void *)&bit_ops; - - rt_i2c_bit_add_bus(&bus, "i2c3"); - - return RT_EOK; -} - - - - - diff --git a/bsp/loongson/ls1cdev/drivers/drv_i2c.h b/bsp/loongson/ls1cdev/drivers/drv_i2c.h deleted file mode 100644 index cbacdbb0f53..00000000000 --- a/bsp/loongson/ls1cdev/drivers/drv_i2c.h +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright (c) 2006-2018, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2017-11-14 勤为本 first version - */ - -#ifndef LS1C_DRV_I2C_H -#define LS1C_DRV_I2C_H - -int ls1c_i2c_init(void); - -#endif - diff --git a/bsp/mm32f526x/.config b/bsp/mm32f526x/.config index e7d46e7b40a..217d4b0be6d 100644 --- a/bsp/mm32f526x/.config +++ b/bsp/mm32f526x/.config @@ -245,13 +245,13 @@ CONFIG_RT_USING_SOFT_I2C=y CONFIG_RT_USING_SOFT_I2C0=y CONFIG_RT_SOFT_I2C0_SCL_PIN=1 CONFIG_RT_SOFT_I2C0_SDA_PIN=2 -CONFIG_RT_SOFT_I2C0_BUS_NAME="i2c0" +CONFIG_RT_SOFT_I2C0_BUS_NAME="swi2c0" CONFIG_RT_SOFT_I2C0_TIMING_DELAY=10 CONFIG_RT_SOFT_I2C0_TIMING_TIMEOUT=10 CONFIG_RT_USING_SOFT_I2C1=y CONFIG_RT_SOFT_I2C1_SCL_PIN=38 CONFIG_RT_SOFT_I2C1_SDA_PIN=39 -CONFIG_RT_SOFT_I2C1_BUS_NAME="i2c1" +CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" CONFIG_RT_SOFT_I2C1_TIMING_DELAY=10 CONFIG_RT_SOFT_I2C1_TIMING_TIMEOUT=10 # CONFIG_RT_USING_SOFT_I2C2 is not set diff --git a/bsp/mm32f526x/rtconfig.h b/bsp/mm32f526x/rtconfig.h index 064f4793e3c..152fd3fdcde 100644 --- a/bsp/mm32f526x/rtconfig.h +++ b/bsp/mm32f526x/rtconfig.h @@ -149,13 +149,13 @@ #define RT_USING_SOFT_I2C0 #define RT_SOFT_I2C0_SCL_PIN 1 #define RT_SOFT_I2C0_SDA_PIN 2 -#define RT_SOFT_I2C0_BUS_NAME "i2c0" +#define RT_SOFT_I2C0_BUS_NAME "swi2c0" #define RT_SOFT_I2C0_TIMING_DELAY 10 #define RT_SOFT_I2C0_TIMING_TIMEOUT 10 #define RT_USING_SOFT_I2C1 #define RT_SOFT_I2C1_SCL_PIN 38 #define RT_SOFT_I2C1_SDA_PIN 39 -#define RT_SOFT_I2C1_BUS_NAME "i2c1" +#define RT_SOFT_I2C1_BUS_NAME "swi2c1" #define RT_SOFT_I2C1_TIMING_DELAY 10 #define RT_SOFT_I2C1_TIMING_TIMEOUT 10 #define RT_USING_ADC diff --git a/bsp/n32/n32gxx_lxx/libraries/n32_drivers/SConscript b/bsp/n32/n32gxx_lxx/libraries/n32_drivers/SConscript index c25aeacdc8d..3fa0923c9ef 100644 --- a/bsp/n32/n32gxx_lxx/libraries/n32_drivers/SConscript +++ b/bsp/n32/n32gxx_lxx/libraries/n32_drivers/SConscript @@ -26,10 +26,6 @@ if GetDepend(['RT_USING_PWM']): if GetDepend(['RT_USING_SPI']): src += ['drv_spi.c'] -if GetDepend(['RT_USING_I2C', 'RT_USING_I2C_BITOPS']): - if GetDepend('BSP_USING_I2C1') or GetDepend('BSP_USING_I2C2') or GetDepend('BSP_USING_I2C3') or GetDepend('BSP_USING_I2C4'): - src += ['drv_i2c.c'] - if GetDepend(['RT_USING_ADC']): src += Glob('drv_adc.c') diff --git a/bsp/n32/n32gxx_lxx/libraries/n32_drivers/drv_i2c.c b/bsp/n32/n32gxx_lxx/libraries/n32_drivers/drv_i2c.c index 6f22c63a934..d4dec283af4 100644 --- a/bsp/n32/n32gxx_lxx/libraries/n32_drivers/drv_i2c.c +++ b/bsp/n32/n32gxx_lxx/libraries/n32_drivers/drv_i2c.c @@ -20,204 +20,6 @@ #endif #include - -#ifdef RT_USING_I2C_BITOPS -static const struct n32_soft_i2c_config soft_i2c_config[] = -{ -#ifdef BSP_USING_I2C1 - I2C1_BUS_CONFIG, -#endif - -#ifdef BSP_USING_I2C2 - I2C2_BUS_CONFIG, -#endif - -#ifdef BSP_USING_I2C3 - I2C3_BUS_CONFIG, -#endif - -#ifdef BSP_USING_I2C4 - I2C4_BUS_CONFIG, -#endif -}; - -static struct n32_i2c i2c_obj[sizeof(soft_i2c_config) / sizeof(soft_i2c_config[0])]; - -/** -*\*\name n32_i2c_gpio_init -*\*\fun Initializes the i2c pin. -*\*\param i2c dirver class -*\*\return none -**/ -static void n32_i2c_gpio_init(struct n32_i2c *i2c) -{ - struct n32_soft_i2c_config* cfg = (struct n32_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 n32_i2c_pin_init(void) -{ - rt_size_t obj_num = sizeof(i2c_obj) / sizeof(struct n32_i2c); - - for(rt_size_t i = 0; i < obj_num; i++) - { - n32_i2c_gpio_init(&i2c_obj[i]); - } -} - -/** -*\*\name n32_set_sda -*\*\fun sets the sda pin. -*\*\param data config class -*\*\param state sda pin state -*\*\return none -**/ -static void n32_set_sda(void *data, rt_int32_t state) -{ - struct n32_soft_i2c_config* cfg = (struct n32_soft_i2c_config*)data; - if (state) - { - rt_pin_write(cfg->sda, PIN_HIGH); - } - else - { - rt_pin_write(cfg->sda, PIN_LOW); - } -} - -/** -*\*\name n32_set_scl -*\*\fun sets the scl pin. -*\*\param data config class -*\*\param state scl pin state -*\*\return none -**/ -static void n32_set_scl(void *data, rt_int32_t state) -{ - struct n32_soft_i2c_config* cfg = (struct n32_soft_i2c_config*)data; - if (state) - { - rt_pin_write(cfg->scl, PIN_HIGH); - } - else - { - rt_pin_write(cfg->scl, PIN_LOW); - } -} - -/** -*\*\name n32_get_sda -*\*\fun gets the sda pin state. -*\*\param data config class -*\*\return sda pin state -**/ -static rt_int32_t n32_get_sda(void *data) -{ - struct n32_soft_i2c_config* cfg = (struct n32_soft_i2c_config*)data; - return rt_pin_read(cfg->sda); -} - -/** -*\*\name n32_get_scl -*\*\fun gets the scl pin state. -*\*\param data config class -*\*\return scl pin state -**/ -static rt_int32_t n32_get_scl(void *data) -{ - struct n32_soft_i2c_config* cfg = (struct n32_soft_i2c_config*)data; - return rt_pin_read(cfg->scl); -} - - -/** -*\*\name n32_udelay -*\*\fun The time delay function. -*\*\param us -*\*\return none -**/ -static void n32_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 n32_bit_ops_default = -{ - .data = RT_NULL, - .pin_init = n32_i2c_pin_init, - .set_sda = n32_set_sda, - .set_scl = n32_set_scl, - .get_sda = n32_get_sda, - .get_scl = n32_get_scl, - .udelay = n32_udelay, - .delay_us = 1, - .timeout = 100, - .i2c_pin_init_flag = RT_FALSE -}; - - -/** -*\*\name n32_i2c_bus_unlock -*\*\fun If i2c is locked, this function will unlock it. -*\*\param cfg -*\*\return RT_EOK indicates successful unlock -**/ -static rt_err_t n32_i2c_bus_unlock(const struct n32_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); - n32_udelay(100); - rt_pin_write(cfg->scl, PIN_LOW); - n32_udelay(100); - } - } - - if (PIN_LOW == rt_pin_read(cfg->sda)) - { - return -RT_ERROR; - } - - return RT_EOK; -} -#endif /* RT_USING_I2C_BITOPS */ - #ifdef RT_USING_HARDWARE_I2C #define I2CT_FLAG_TIMEOUT ((uint32_t)0x1000) @@ -398,29 +200,6 @@ static const struct rt_i2c_bus_device_ops i2c_ops = int rt_hw_i2c_init(void) { -#ifdef RT_USING_I2C_BITOPS - - rt_size_t obj_num = sizeof(i2c_obj) / sizeof(struct n32_i2c); - rt_err_t result; - - for(rt_size_t i = 0; i < obj_num; i++) - { - i2c_obj[i].ops = n32_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); - n32_i2c_bus_unlock(&soft_i2c_config[i]); - - rt_kprintf("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); - } -#endif /* RT_USING_I2C_BITOPS */ - #ifdef RT_USING_HARDWARE_I2C GPIO_InitType GPIO_InitStructure; diff --git a/bsp/n32/n32gxx_lxx/libraries/n32_drivers/drv_i2c.h b/bsp/n32/n32gxx_lxx/libraries/n32_drivers/drv_i2c.h index 93b2f196583..549cfc75e73 100644 --- a/bsp/n32/n32gxx_lxx/libraries/n32_drivers/drv_i2c.h +++ b/bsp/n32/n32gxx_lxx/libraries/n32_drivers/drv_i2c.h @@ -20,57 +20,6 @@ extern "C" { #endif -/* n32 config class */ -struct n32_soft_i2c_config -{ - rt_uint8_t scl; - rt_uint8_t sda; - const char *bus_name; -}; - -/* n32 i2c dirver class */ -struct n32_i2c -{ - struct rt_i2c_bit_ops ops; - struct rt_i2c_bus_device i2c_bus; -}; - -#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 - -#ifdef BSP_USING_I2C3 -#define I2C3_BUS_CONFIG \ - { \ - .scl = BSP_I2C3_SCL_PIN, \ - .sda = BSP_I2C3_SDA_PIN, \ - .bus_name = "i2c3", \ - } -#endif - -#ifdef BSP_USING_I2C4 -#define I2C4_BUS_CONFIG \ - { \ - .scl = BSP_I2C4_SCL_PIN, \ - .sda = BSP_I2C4_SDA_PIN, \ - .bus_name = "i2c4", \ - } -#endif - struct rt_i2c_bus { struct rt_i2c_bus_device parent; diff --git a/bsp/n32/n32gxx_lxx/n32g43xcl-stb/.ci/attachconfig/ci.attachconfig.yml b/bsp/n32/n32gxx_lxx/n32g43xcl-stb/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..d626be14a57 --- /dev/null +++ b/bsp/n32/n32gxx_lxx/n32g43xcl-stb/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,8 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/n32/n32gxx_lxx/n32g43xcl-stb/board/Kconfig b/bsp/n32/n32gxx_lxx/n32g43xcl-stb/board/Kconfig index 2325be729d2..d081fa8e60d 100644 --- a/bsp/n32/n32gxx_lxx/n32g43xcl-stb/board/Kconfig +++ b/bsp/n32/n32gxx_lxx/n32g43xcl-stb/board/Kconfig @@ -64,24 +64,6 @@ menu "On-chip Peripheral Drivers" endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 64 - default 22 - - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 64 - default 23 - endif - menuconfig BSP_USING_RTC bool "Enable RTC" select RT_USING_RTC diff --git a/bsp/n32/n32gxx_lxx/n32g457qel-stb/.ci/attachconfig/ci.attachconfig.yml b/bsp/n32/n32gxx_lxx/n32g457qel-stb/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..d626be14a57 --- /dev/null +++ b/bsp/n32/n32gxx_lxx/n32g457qel-stb/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,8 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/n32/n32gxx_lxx/n32g457qel-stb/board/Kconfig b/bsp/n32/n32gxx_lxx/n32g457qel-stb/board/Kconfig index 870dfd62402..5a17d4a3c6d 100644 --- a/bsp/n32/n32gxx_lxx/n32g457qel-stb/board/Kconfig +++ b/bsp/n32/n32gxx_lxx/n32g457qel-stb/board/Kconfig @@ -75,23 +75,6 @@ menu "On-chip Peripheral Drivers" endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 111 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 111 - default 23 - endif - menuconfig BSP_USING_RTC bool "Enable RTC" select RT_USING_RTC diff --git a/bsp/n32/n32gxx_lxx/n32g45xcl-stb/.ci/attachconfig/ci.attachconfig.yml b/bsp/n32/n32gxx_lxx/n32g45xcl-stb/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..d626be14a57 --- /dev/null +++ b/bsp/n32/n32gxx_lxx/n32g45xcl-stb/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,8 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/n32/n32gxx_lxx/n32g45xcl-stb/board/Kconfig b/bsp/n32/n32gxx_lxx/n32g45xcl-stb/board/Kconfig index 86024542c08..780a079e753 100644 --- a/bsp/n32/n32gxx_lxx/n32g45xcl-stb/board/Kconfig +++ b/bsp/n32/n32gxx_lxx/n32g45xcl-stb/board/Kconfig @@ -72,23 +72,6 @@ menu "On-chip Peripheral Drivers" endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 111 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 111 - default 23 - endif - menuconfig BSP_USING_RTC bool "Enable RTC" select RT_USING_RTC diff --git a/bsp/n32/n32gxx_lxx/n32g45xml-stb/.ci/attachconfig/ci.attachconfig.yml b/bsp/n32/n32gxx_lxx/n32g45xml-stb/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..d626be14a57 --- /dev/null +++ b/bsp/n32/n32gxx_lxx/n32g45xml-stb/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,8 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/n32/n32gxx_lxx/n32g45xml-stb/board/Kconfig b/bsp/n32/n32gxx_lxx/n32g45xml-stb/board/Kconfig index f336f3042f9..275fb1346dc 100644 --- a/bsp/n32/n32gxx_lxx/n32g45xml-stb/board/Kconfig +++ b/bsp/n32/n32gxx_lxx/n32g45xml-stb/board/Kconfig @@ -75,23 +75,6 @@ menu "On-chip Peripheral Drivers" endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 111 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 111 - default 23 - endif - menuconfig BSP_USING_RTC bool "Enable RTC" select RT_USING_RTC diff --git a/bsp/n32/n32gxx_lxx/n32g45xrl-stb/.ci/attachconfig/ci.attachconfig.yml b/bsp/n32/n32gxx_lxx/n32g45xrl-stb/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..d626be14a57 --- /dev/null +++ b/bsp/n32/n32gxx_lxx/n32g45xrl-stb/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,8 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/n32/n32gxx_lxx/n32g45xrl-stb/board/Kconfig b/bsp/n32/n32gxx_lxx/n32g45xrl-stb/board/Kconfig index afc8ec9e5c0..5a86f64c9b7 100644 --- a/bsp/n32/n32gxx_lxx/n32g45xrl-stb/board/Kconfig +++ b/bsp/n32/n32gxx_lxx/n32g45xrl-stb/board/Kconfig @@ -75,23 +75,6 @@ menu "On-chip Peripheral Drivers" endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 111 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 111 - default 23 - endif - menuconfig BSP_USING_RTC bool "Enable RTC" select RT_USING_RTC diff --git a/bsp/n32/n32gxx_lxx/n32g45xvl-stb/.ci/attachconfig/ci.attachconfig.yml b/bsp/n32/n32gxx_lxx/n32g45xvl-stb/.ci/attachconfig/ci.attachconfig.yml index d63beb299e2..f0c2884397b 100644 --- a/bsp/n32/n32gxx_lxx/n32g45xvl-stb/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/n32/n32gxx_lxx/n32g45xvl-stb/.ci/attachconfig/ci.attachconfig.yml @@ -20,4 +20,12 @@ peripheral.uartv2: - CONFIG_BSP_UART2_RX_BUFSIZE=1024 - CONFIG_BSP_UART2_TX_BUFSIZE=1024 - +devices.soft_i2c: + <<: *scons + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/n32/n32gxx_lxx/n32g45xvl-stb/board/Kconfig b/bsp/n32/n32gxx_lxx/n32g45xvl-stb/board/Kconfig index f71c05030ae..cee72f500b4 100644 --- a/bsp/n32/n32gxx_lxx/n32g45xvl-stb/board/Kconfig +++ b/bsp/n32/n32gxx_lxx/n32g45xvl-stb/board/Kconfig @@ -405,23 +405,6 @@ menu "On-chip Peripheral Drivers" endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 111 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 111 - default 23 - endif - menuconfig BSP_USING_RTC bool "Enable RTC" select RT_USING_RTC diff --git a/bsp/n32/n32gxx_lxx/n32g4frml-stb/.ci/attachconfig/ci.attachconfig.yml b/bsp/n32/n32gxx_lxx/n32g4frml-stb/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..d626be14a57 --- /dev/null +++ b/bsp/n32/n32gxx_lxx/n32g4frml-stb/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,8 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/n32/n32gxx_lxx/n32g4frml-stb/board/Kconfig b/bsp/n32/n32gxx_lxx/n32g4frml-stb/board/Kconfig index 961f796db7d..21488d8700c 100644 --- a/bsp/n32/n32gxx_lxx/n32g4frml-stb/board/Kconfig +++ b/bsp/n32/n32gxx_lxx/n32g4frml-stb/board/Kconfig @@ -75,23 +75,6 @@ menu "On-chip Peripheral Drivers" endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 111 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 111 - default 23 - endif - menuconfig BSP_USING_RTC bool "Enable RTC" select RT_USING_RTC diff --git a/bsp/n32/n32gxx_lxx/n32l40xcl-stb/.ci/attachconfig/ci.attachconfig.yml b/bsp/n32/n32gxx_lxx/n32l40xcl-stb/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..d626be14a57 --- /dev/null +++ b/bsp/n32/n32gxx_lxx/n32l40xcl-stb/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,8 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/n32/n32gxx_lxx/n32l40xcl-stb/board/Kconfig b/bsp/n32/n32gxx_lxx/n32l40xcl-stb/board/Kconfig index 9c7600c3e14..9ad7fbaa874 100644 --- a/bsp/n32/n32gxx_lxx/n32l40xcl-stb/board/Kconfig +++ b/bsp/n32/n32gxx_lxx/n32l40xcl-stb/board/Kconfig @@ -64,24 +64,6 @@ menu "On-chip Peripheral Drivers" endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 64 - default 22 - - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 64 - default 23 - endif - menuconfig BSP_USING_RTC bool "Enable RTC" select RT_USING_RTC diff --git a/bsp/n32/n32gxx_lxx/n32l436-evb/.ci/attachconfig/ci.attachconfig.yml b/bsp/n32/n32gxx_lxx/n32l436-evb/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..d626be14a57 --- /dev/null +++ b/bsp/n32/n32gxx_lxx/n32l436-evb/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,8 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/n32/n32gxx_lxx/n32l436-evb/board/Kconfig b/bsp/n32/n32gxx_lxx/n32l436-evb/board/Kconfig index 6f85182039c..1996ee27f83 100644 --- a/bsp/n32/n32gxx_lxx/n32l436-evb/board/Kconfig +++ b/bsp/n32/n32gxx_lxx/n32l436-evb/board/Kconfig @@ -64,24 +64,6 @@ menu "On-chip Peripheral Drivers" endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 64 - default 22 - - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 64 - default 23 - endif - menuconfig BSP_USING_RTC bool "Enable RTC" select RT_USING_RTC diff --git a/bsp/n32/n32gxx_lxx/n32l43xml-stb/.ci/attachconfig/ci.attachconfig.yml b/bsp/n32/n32gxx_lxx/n32l43xml-stb/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..d626be14a57 --- /dev/null +++ b/bsp/n32/n32gxx_lxx/n32l43xml-stb/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,8 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/n32/n32gxx_lxx/n32l43xml-stb/board/Kconfig b/bsp/n32/n32gxx_lxx/n32l43xml-stb/board/Kconfig index d9a04c25090..b70d72e8370 100644 --- a/bsp/n32/n32gxx_lxx/n32l43xml-stb/board/Kconfig +++ b/bsp/n32/n32gxx_lxx/n32l43xml-stb/board/Kconfig @@ -64,24 +64,6 @@ menu "On-chip Peripheral Drivers" endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 64 - default 22 - - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 64 - default 23 - endif - menuconfig BSP_USING_RTC bool "Enable RTC" select RT_USING_RTC diff --git a/bsp/n32/n32gxx_lxx/n32l43xrl-stb/.ci/attachconfig/ci.attachconfig.yml b/bsp/n32/n32gxx_lxx/n32l43xrl-stb/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..d626be14a57 --- /dev/null +++ b/bsp/n32/n32gxx_lxx/n32l43xrl-stb/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,8 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/n32/n32gxx_lxx/n32l43xrl-stb/board/Kconfig b/bsp/n32/n32gxx_lxx/n32l43xrl-stb/board/Kconfig index b0e0d5efb48..74ee57652d7 100644 --- a/bsp/n32/n32gxx_lxx/n32l43xrl-stb/board/Kconfig +++ b/bsp/n32/n32gxx_lxx/n32l43xrl-stb/board/Kconfig @@ -64,24 +64,6 @@ menu "On-chip Peripheral Drivers" endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 64 - default 22 - - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 64 - default 23 - endif - menuconfig BSP_USING_RTC bool "Enable RTC" select RT_USING_RTC diff --git a/bsp/n32/n32gxx_lxx/n32wb45xl-evb/.ci/attachconfig/ci.attachconfig.yml b/bsp/n32/n32gxx_lxx/n32wb45xl-evb/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..08f15d590b4 --- /dev/null +++ b/bsp/n32/n32gxx_lxx/n32wb45xl-evb/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,8 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=24 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=25 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/n32/n32gxx_lxx/n32wb45xl-evb/board/Kconfig b/bsp/n32/n32gxx_lxx/n32wb45xl-evb/board/Kconfig index 0de27deaa4d..d38024e9ed0 100644 --- a/bsp/n32/n32gxx_lxx/n32wb45xl-evb/board/Kconfig +++ b/bsp/n32/n32gxx_lxx/n32wb45xl-evb/board/Kconfig @@ -75,23 +75,6 @@ menu "On-chip Peripheral Drivers" endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 79 - default 24 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 79 - default 25 - endif - menuconfig BSP_USING_RTC bool "Enable RTC" select RT_USING_RTC diff --git a/bsp/n32/n32hxxx/libraries/N32_Drivers/drivers/SConscript b/bsp/n32/n32hxxx/libraries/N32_Drivers/drivers/SConscript index 3dda86ed0cf..bb9d95e4e32 100644 --- a/bsp/n32/n32hxxx/libraries/N32_Drivers/drivers/SConscript +++ b/bsp/n32/n32hxxx/libraries/N32_Drivers/drivers/SConscript @@ -17,10 +17,6 @@ if GetDepend(['RT_USING_SERIAL']): if GetDepend(['RT_USING_SPI']): src += ['drv_spi.c'] -if GetDepend(['RT_USING_I2C', 'RT_USING_I2C_BITOPS']): - if GetDepend('BSP_USING_I2C1') or GetDepend('BSP_USING_I2C2') or GetDepend('BSP_USING_I2C3') or GetDepend('BSP_USING_I2C4'): - src += ['drv_soft_i2c.c'] - if GetDepend(['RT_USING_I2C']): if GetDepend('BSP_USING_HARD_I2C1') or GetDepend('BSP_USING_HARD_I2C2') or GetDepend('BSP_USING_HARD_I2C3') or GetDepend('BSP_USING_HARD_I2C4') or GetDepend('BSP_USING_HARD_I2C5') or GetDepend('BSP_USING_HARD_I2C6') or GetDepend('BSP_USING_HARD_I2C7') or GetDepend('BSP_USING_HARD_I2C8') or GetDepend('BSP_USING_HARD_I2C9') or GetDepend('BSP_USING_HARD_I2C10'): src += ['drv_hard_i2c.c'] diff --git a/bsp/n32/n32hxxx/libraries/N32_Drivers/drivers/drv_soft_i2c.c b/bsp/n32/n32hxxx/libraries/N32_Drivers/drivers/drv_soft_i2c.c deleted file mode 100644 index 5a0a7b911fe..00000000000 --- a/bsp/n32/n32hxxx/libraries/N32_Drivers/drivers/drv_soft_i2c.c +++ /dev/null @@ -1,187 +0,0 @@ -/* - * Copyright (c) 2006-2025, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2026-01-24 ox-horse first version - */ - -#include "drv_soft_i2c.h" -#include "drv_config.h" - -#if defined(BSP_USING_I2C1) || defined(BSP_USING_I2C2) || defined(BSP_USING_I2C3) || defined(BSP_USING_I2C4) || defined(BSP_USING_I2C5) - -//#define DRV_DEBUG -#define LOG_TAG "drv.i2c.sw" -#include - -static const struct n32_soft_i2c_config soft_i2c_config[] = -{ -#ifdef BSP_USING_I2C1 - I2C1_BUS_CONFIG, -#endif -#ifdef BSP_USING_I2C2 - I2C2_BUS_CONFIG, -#endif -#ifdef BSP_USING_I2C3 - I2C3_BUS_CONFIG, -#endif -#ifdef BSP_USING_I2C4 - I2C4_BUS_CONFIG, -#endif -#ifdef BSP_USING_I2C5 - I2C5_BUS_CONFIG, -#endif -}; - -static struct n32_i2c i2c_obj[sizeof(soft_i2c_config) / sizeof(soft_i2c_config[0])]; - -/** - * This function initializes the i2c pin. - * - * @param n32 i2c dirver class. - */ -static void n32_i2c_gpio_init(struct n32_i2c *i2c) -{ - struct n32_soft_i2c_config* cfg = (struct n32_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); -} - -/** - * This function sets the sda pin. - * - * @param n32 config class. - * @param The sda pin state. - */ -static void n32_set_sda(void *data, rt_int32_t state) -{ - struct n32_soft_i2c_config* cfg = (struct n32_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 n32 config class. - * @param The scl pin state. - */ -static void n32_set_scl(void *data, rt_int32_t state) -{ - struct n32_soft_i2c_config* cfg = (struct n32_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 n32_get_sda(void *data) -{ - struct n32_soft_i2c_config* cfg = (struct n32_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 n32_get_scl(void *data) -{ - struct n32_soft_i2c_config* cfg = (struct n32_soft_i2c_config*)data; - return rt_pin_read(cfg->scl); -} - - -static const struct rt_i2c_bit_ops n32_bit_ops_default = -{ - .data = RT_NULL, - .set_sda = n32_set_sda, - .set_scl = n32_set_scl, - .get_sda = n32_get_sda, - .get_scl = n32_get_scl, - .udelay = rt_hw_us_delay, - .delay_us = 1, - .timeout = 100 -}; - -/** - * if i2c is locked, this function will unlock it - * - * @param n32 config class - * - * @return RT_EOK indicates successful unlock. - */ -static rt_err_t n32_i2c_bus_unlock(const struct n32_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); - rt_hw_us_delay(100); - rt_pin_write(cfg->scl, PIN_LOW); - rt_hw_us_delay(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_err_t result; - - for (rt_size_t i = 0; i < sizeof(i2c_obj) / sizeof(struct n32_i2c); i++) - { - i2c_obj[i].ops = n32_bit_ops_default; - i2c_obj[i].ops.data = (void*)&soft_i2c_config[i]; - i2c_obj[i].i2c_bus.priv = &i2c_obj[i].ops; - - n32_i2c_gpio_init(&i2c_obj[i]); - - result = rt_i2c_bit_add_bus(&i2c_obj[i].i2c_bus, soft_i2c_config[i].bus_name); - RT_ASSERT(result == RT_EOK); - n32_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 /* defined(BSP_USING_I2C1) || defined(BSP_USING_I2C2) || defined(BSP_USING_I2C3) || defined(BSP_USING_I2C4) || defined(BSP_USING_I2C5) */ - diff --git a/bsp/n32/n32hxxx/libraries/N32_Drivers/drivers/drv_soft_i2c.h b/bsp/n32/n32hxxx/libraries/N32_Drivers/drivers/drv_soft_i2c.h deleted file mode 100644 index 2695e5896e1..00000000000 --- a/bsp/n32/n32hxxx/libraries/N32_Drivers/drivers/drv_soft_i2c.h +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright (c) 2006-2025, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2026-01-24 ox-horse first version - */ - -#ifndef __DRV_SOFT_I2C_H__ -#define __DRV_SOFT_I2C_H__ - -#include -#include -#include - -/* n32 config class */ -struct n32_soft_i2c_config -{ - rt_uint8_t scl; - rt_uint8_t sda; - const char *bus_name; -}; -/* n32 i2c dirver class */ -struct n32_i2c -{ - struct rt_i2c_bit_ops ops; - struct rt_i2c_bus_device i2c_bus; -}; - -#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 - -#ifdef BSP_USING_I2C3 -#define I2C3_BUS_CONFIG \ - { \ - .scl = BSP_I2C3_SCL_PIN, \ - .sda = BSP_I2C3_SDA_PIN, \ - .bus_name = "i2c3", \ - } -#endif - -#ifdef BSP_USING_I2C4 -#define I2C4_BUS_CONFIG \ - { \ - .scl = BSP_I2C4_SCL_PIN, \ - .sda = BSP_I2C4_SDA_PIN, \ - .bus_name = "i2c4", \ - } -#endif - -#ifdef BSP_USING_I2C5 -#define I2C5_BUS_CONFIG \ - { \ - .scl = BSP_I2C5_SCL_PIN, \ - .sda = BSP_I2C5_SDA_PIN, \ - .bus_name = "i2c5", \ - } -#endif - -#endif /* __DRV_SOFT_I2C_H__ */ diff --git a/bsp/n32/n32hxxx/n32h760zil7-stb/.ci/attachconfig/ci.attachconfig.yml b/bsp/n32/n32hxxx/n32h760zil7-stb/.ci/attachconfig/ci.attachconfig.yml index e4646070a99..bafb8dec3cd 100644 --- a/bsp/n32/n32hxxx/n32h760zil7-stb/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/n32/n32hxxx/n32h760zil7-stb/.ci/attachconfig/ci.attachconfig.yml @@ -8,3 +8,12 @@ nano: kconfig: - CONFIG_RT_USING_NANO=y +devices.soft_i2c: + <<: *scons + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/n32/n32hxxx/n32h760zil7-stb/board/Kconfig b/bsp/n32/n32hxxx/n32h760zil7-stb/board/Kconfig index 0ac364d0bf1..9f8bede7996 100644 --- a/bsp/n32/n32hxxx/n32h760zil7-stb/board/Kconfig +++ b/bsp/n32/n32hxxx/n32h760zil7-stb/board/Kconfig @@ -81,24 +81,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 64 - default 22 - - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 64 - default 23 - endif - menuconfig BSP_USING_HARD_I2C bool "Enable Hard I2C BUS" default n diff --git a/bsp/n32g452xx/Libraries/rt_drivers/SConscript b/bsp/n32g452xx/Libraries/rt_drivers/SConscript index cf9e595798d..80515ad981a 100755 --- a/bsp/n32g452xx/Libraries/rt_drivers/SConscript +++ b/bsp/n32g452xx/Libraries/rt_drivers/SConscript @@ -33,10 +33,6 @@ if GetDepend(['BSP_USING_SPI']): if GetDepend(['BSP_USING_ETH', 'BSP_USING_LWIP']): src += ['drv_eth.c'] -if GetDepend(['RT_USING_I2C', 'RT_USING_I2C_BITOPS']): - if GetDepend('BSP_USING_I2C1') or GetDepend('BSP_USING_I2C2') or GetDepend('BSP_USING_I2C3') or GetDepend('BSP_USING_I2C4'): - src += ['drv_soft_i2c.c'] - if GetDepend(['BSP_USING_ADC']): src += Glob('drv_adc.c') diff --git a/bsp/n32g452xx/Libraries/rt_drivers/drv_soft_i2c.c b/bsp/n32g452xx/Libraries/rt_drivers/drv_soft_i2c.c deleted file mode 100644 index 2a5bed30335..00000000000 --- a/bsp/n32g452xx/Libraries/rt_drivers/drv_soft_i2c.c +++ /dev/null @@ -1,231 +0,0 @@ -/* - * Copyright (c) 2006-2023, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2020-01-09 shelton first version - */ - -#include -#include "drv_soft_i2c.h" - -#ifdef RT_USING_I2C - -#define LOG_TAG "drv.i2c" -#include - -#if !defined(BSP_USING_I2C1) && !defined(BSP_USING_I2C2) && !defined(BSP_USING_I2C3) && !defined(BSP_USING_I2C4) - #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 n32_soft_i2c_config soft_i2c_config[] = -{ -#ifdef BSP_USING_I2C1 - I2C1_BUS_CONFIG, -#endif -#ifdef BSP_USING_I2C2 - I2C2_BUS_CONFIG, -#endif -#ifdef BSP_USING_I2C3 - I2C3_BUS_CONFIG, -#endif -#ifdef BSP_USING_I2C4 - I2C4_BUS_CONFIG, -#endif -}; - -static struct n32_i2c i2c_obj[sizeof(soft_i2c_config) / sizeof(soft_i2c_config[0])]; - -/** - * This function initializes the i2c pin. - * - * @param n32 i2c dirver class. - */ -static void n32_i2c_gpio_init(struct n32_i2c *i2c) -{ - struct n32_soft_i2c_config *cfg = (struct n32_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 n32_i2c_pin_init(void) -{ - rt_size_t obj_num = sizeof(i2c_obj) / sizeof(struct n32_i2c); - - for(rt_size_t i = 0; i < obj_num; i++) - { - n32_i2c_gpio_init(&i2c_obj[i]); - } -} - -/** - * This function sets the sda pin. - * - * @param n32 config class. - * @param The sda pin state. - */ -static void n32_set_sda(void *data, rt_int32_t state) -{ - struct n32_soft_i2c_config *cfg = (struct n32_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 n32 config class. - * @param The scl pin state. - */ -static void n32_set_scl(void *data, rt_int32_t state) -{ - struct n32_soft_i2c_config *cfg = (struct n32_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 n32_get_sda(void *data) -{ - struct n32_soft_i2c_config *cfg = (struct n32_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 n32_get_scl(void *data) -{ - struct n32_soft_i2c_config *cfg = (struct n32_soft_i2c_config *)data; - return rt_pin_read(cfg->scl); -} -/** - * The time delay function. - * - * @param microseconds. - */ -static void n32_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 n32_bit_ops_default = -{ - .data = RT_NULL, - .pin_init = n32_i2c_pin_init, - .set_sda = n32_set_sda, - .set_scl = n32_set_scl, - .get_sda = n32_get_sda, - .get_scl = n32_get_scl, - .udelay = n32_udelay, - .delay_us = 1, - .timeout = 100, - .i2c_pin_init_flag = RT_FALSE -}; - -/** - * if i2c is locked, this function will unlock it - * - * @param n32 config class - * - * @return RT_EOK indicates successful unlock. - */ -static rt_err_t n32_i2c_bus_unlock(const struct n32_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); - n32_udelay(100); - rt_pin_write(cfg->scl, PIN_LOW); - n32_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 n32_i2c); - rt_err_t result; - - for (rt_size_t i = 0; i < obj_num; i++) - { - i2c_obj[i].ops = n32_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); - n32_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 /* RT_USING_I2C */ diff --git a/bsp/n32g452xx/Libraries/rt_drivers/drv_soft_i2c.h b/bsp/n32g452xx/Libraries/rt_drivers/drv_soft_i2c.h deleted file mode 100644 index 12e84df0880..00000000000 --- a/bsp/n32g452xx/Libraries/rt_drivers/drv_soft_i2c.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright (c) 2006-2023, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2020-01-09 shelton first version - */ - -#ifndef __DRV_I2C__ -#define __DRV_I2C__ - -#include -#include -#include - -/* n32 config class */ -struct n32_soft_i2c_config -{ - rt_uint8_t scl; - rt_uint8_t sda; - const char *bus_name; -}; -/* n32 i2c dirver class */ -struct n32_i2c -{ - struct rt_i2c_bit_ops ops; - struct rt_i2c_bus_device i2c_bus; -}; - -#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 - -#ifdef BSP_USING_I2C3 -#define I2C3_BUS_CONFIG \ - { \ - .scl = BSP_I2C3_SCL_PIN, \ - .sda = BSP_I2C3_SDA_PIN, \ - .bus_name = "i2c3", \ - } -#endif - -#ifdef BSP_USING_I2C4 -#define I2C4_BUS_CONFIG \ - { \ - .scl = BSP_I2C4_SCL_PIN, \ - .sda = BSP_I2C4_SDA_PIN, \ - .bus_name = "i2c4", \ - } -#endif -int rt_hw_i2c_init(void); - -#endif diff --git a/bsp/n32g452xx/n32g452xx-mini-system/.ci/attachconfig/ci.attachconfig.yml b/bsp/n32g452xx/n32g452xx-mini-system/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..44e6ac9692d --- /dev/null +++ b/bsp/n32g452xx/n32g452xx-mini-system/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,8 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=29 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=30 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/n32g452xx/n32g452xx-mini-system/board/Kconfig b/bsp/n32g452xx/n32g452xx-mini-system/board/Kconfig index 373a7d69e29..5a35447a229 100755 --- a/bsp/n32g452xx/n32g452xx-mini-system/board/Kconfig +++ b/bsp/n32g452xx/n32g452xx-mini-system/board/Kconfig @@ -340,23 +340,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "I2C1 scl pin number" - range 1 N32G45X_PIN_NUMBERS - default 29 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 1 N32G45X_PIN_NUMBERS - default 30 - endif - menuconfig BSP_USING_ADC bool "Enable ADC" default n diff --git a/bsp/nuvoton/libraries/m031/rtt_port/Kconfig b/bsp/nuvoton/libraries/m031/rtt_port/Kconfig index 6a640a19788..c2f88d9e13b 100644 --- a/bsp/nuvoton/libraries/m031/rtt_port/Kconfig +++ b/bsp/nuvoton/libraries/m031/rtt_port/Kconfig @@ -579,47 +579,6 @@ config SOC_SERIES_M032 default y endif - menuconfig BSP_USING_SOFT_I2C - bool "Enable SOFT I2C" - - if BSP_USING_SOFT_I2C - config BSP_USING_SOFT_I2C0 - bool "Enable SOFT I2C0" - select RT_USING_I2C - select RT_USING_I2C_BITOPS - default n - - if BSP_USING_SOFT_I2C0 - config BSP_SOFT_I2C0_SCL_PIN - hex "Specify the pin index of SCL of SOFT I2C0" - range 0 0x7F - default 0x18 - - config BSP_SOFT_I2C0_SDA_PIN - hex "Specify the pin index of SDA of SOFT I2C0" - range 0 0x7F - default 0x17 - endif - - config BSP_USING_SOFT_I2C1 - bool "Enable SOFT I2C1" - select RT_USING_I2C - select RT_USING_I2C_BITOPS - default n - - if BSP_USING_SOFT_I2C1 - config BSP_SOFT_I2C1_SCL_PIN - hex "Specify the pin index of SCL of SOFT I2C1" - range 0 0x7F - default 0x0B - - config BSP_SOFT_I2C1_SDA_PIN - hex "Specify the pin index of SDA of SOFT I2C1" - range 0 0x7F - default 0x0A - endif - endif - config BSP_USING_WDT bool "Enable Watchdog Timer(WDT)" select RT_USING_WDT @@ -632,4 +591,3 @@ config SOC_SERIES_M032 config BSP_USING_USBD bool "Enable Full-Speed USB Device Controller(USBD)" select RT_USING_USB_DEVICE - diff --git a/bsp/nuvoton/libraries/m031/rtt_port/drv_softi2c.c b/bsp/nuvoton/libraries/m031/rtt_port/drv_softi2c.c deleted file mode 100644 index bd4f6af0fa7..00000000000 --- a/bsp/nuvoton/libraries/m031/rtt_port/drv_softi2c.c +++ /dev/null @@ -1,217 +0,0 @@ -/**************************************************************************//** -* -* @copyright (C) 2020 Nuvoton Technology Corp. All rights reserved. -* -* SPDX-License-Identifier: Apache-2.0 -* -* Change Logs: -* Date Author Notes -* 2021-01-15 klcheng First version -* -******************************************************************************/ - -#include - -#if (defined(BSP_USING_SOFT_I2C) && defined(BSP_USING_GPIO) && defined(RT_USING_I2C_BITOPS) && defined(RT_USING_I2C) && defined(RT_USING_PIN)) - -#include -#include -#include -#include "NuMicro.h" - -/* Private define ---------------------------------------------------------------*/ -#define LOG_TAG "drv.softi2c" -#define DBG_ENABLE -#define DBG_SECTION_NAME LOG_TAG -#define DBG_LEVEL DBG_INFO -#include - -#ifdef BSP_USING_SOFT_I2C0 -#define NU_SOFT_I2C0_BUS_CONFIG \ - { \ - .scl = BSP_SOFT_I2C0_SCL_PIN, \ - .sda = BSP_SOFT_I2C0_SDA_PIN, \ - .bus_name = "softi2c0", \ - } -#endif - -#ifdef BSP_USING_SOFT_I2C1 -#define NU_SOFT_I2C1_BUS_CONFIG \ - { \ - .scl = BSP_SOFT_I2C1_SCL_PIN, \ - .sda = BSP_SOFT_I2C1_SDA_PIN, \ - .bus_name = "softi2c1", \ - } -#endif - -#if (!defined(BSP_USING_SOFT_I2C0) && !defined(BSP_USING_SOFT_I2C1)) - #error "Please define at least one BSP_USING_SOFT_I2Cx" - /* this driver can be disabled at menuconfig ? RT-Thread Components ? Device Drivers */ -#endif - -/* Private typedef --------------------------------------------------------------*/ -/* soft i2c config class */ -struct nu_soft_i2c_config -{ - rt_uint8_t scl; - rt_uint8_t sda; - const char *bus_name; -}; -/* soft i2c driver class */ -struct nu_soft_i2c -{ - struct rt_i2c_bit_ops ops; - struct rt_i2c_bus_device soft_i2c_bus; -}; - -/* Private functions ------------------------------------------------------------*/ -static void nu_soft_i2c_set_sda(void *data, rt_int32_t state); -static void nu_soft_i2c_set_scl(void *data, rt_int32_t state); -static rt_int32_t nu_soft_i2c_get_sda(void *data); -static rt_int32_t nu_soft_i2c_get_scl(void *data); - -/* Private variables ------------------------------------------------------------*/ -static const struct nu_soft_i2c_config nu_soft_i2c_cfg[] = -{ -#ifdef BSP_USING_SOFT_I2C0 - NU_SOFT_I2C0_BUS_CONFIG, -#endif -#ifdef BSP_USING_SOFT_I2C1 - NU_SOFT_I2C1_BUS_CONFIG, -#endif -}; - -static struct nu_soft_i2c nu_soft_i2c_obj[sizeof(nu_soft_i2c_cfg) / sizeof(nu_soft_i2c_cfg[0])]; - -static const struct rt_i2c_bit_ops nu_soft_i2c_bit_ops = -{ - .data = RT_NULL, - .set_sda = nu_soft_i2c_set_sda, - .set_scl = nu_soft_i2c_set_scl, - .get_sda = nu_soft_i2c_get_sda, - .get_scl = nu_soft_i2c_get_scl, - .udelay = rt_hw_us_delay, - .delay_us = 1, - .timeout = 100 -}; - -/* Functions define ------------------------------------------------------------*/ - -/** - * This function initializes the soft i2c pin. - * - * @param soft i2c config class. - */ -static void nu_soft_i2c_gpio_init(const struct nu_soft_i2c_config *cfg) -{ - 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); -} - -/** - * if i2c is locked, this function will unlock it - * - * @param soft i2c config class - * - * @return RT_EOK indicates successful unlock. - */ -static rt_err_t nu_soft_i2c_bus_unlock(const struct nu_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); - rt_hw_us_delay(100); - rt_pin_write(cfg->scl, PIN_LOW); - rt_hw_us_delay(100); - } - } - if (PIN_LOW == rt_pin_read(cfg->sda)) - { - return -RT_ERROR; - } - - return RT_EOK; -} - -/** - * This function sets the sda pin. - * - * @param soft i2c config class. - * @param The sda pin state. - */ -static void nu_soft_i2c_set_sda(void *data, rt_int32_t state) -{ - struct nu_soft_i2c_config *cfg = (struct nu_soft_i2c_config *)data; - - rt_pin_write(cfg->sda, state ? PIN_HIGH : PIN_LOW); -} - -/** - * This function sets the scl pin. - * - * @param soft i2c config class. - * @param The scl pin state. - */ -static void nu_soft_i2c_set_scl(void *data, rt_int32_t state) -{ - struct nu_soft_i2c_config *cfg = (struct nu_soft_i2c_config *)data; - - rt_pin_write(cfg->scl, state ? PIN_HIGH : PIN_LOW); -} - -/** - * This function gets the sda pin state. - * - * @param The sda pin state. - */ -static rt_int32_t nu_soft_i2c_get_sda(void *data) -{ - struct nu_soft_i2c_config *cfg = (struct nu_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 nu_soft_i2c_get_scl(void *data) -{ - struct nu_soft_i2c_config *cfg = (struct nu_soft_i2c_config *)data; - return rt_pin_read(cfg->scl); -} - -/* Soft I2C initialization function */ -int rt_soft_i2c_init(void) -{ - rt_size_t obj_num = sizeof(nu_soft_i2c_obj) / sizeof(struct nu_soft_i2c); - rt_err_t result; - - for (int i = 0; i < obj_num; i++) - { - nu_soft_i2c_obj[i].ops = nu_soft_i2c_bit_ops; - nu_soft_i2c_obj[i].ops.data = (void *)&nu_soft_i2c_cfg[i]; - nu_soft_i2c_obj[i].soft_i2c_bus.priv = &nu_soft_i2c_obj[i].ops; - nu_soft_i2c_gpio_init(&nu_soft_i2c_cfg[i]); - result = rt_i2c_bit_add_bus(&nu_soft_i2c_obj[i].soft_i2c_bus, nu_soft_i2c_cfg[i].bus_name); - RT_ASSERT(result == RT_EOK); - nu_soft_i2c_bus_unlock(&nu_soft_i2c_cfg[i]); - - LOG_D("software simulation %s init done, pin scl: %d, pin sda %d", - nu_soft_i2c_cfg[i].bus_name, - nu_soft_i2c_cfg[i].scl, - nu_soft_i2c_cfg[i].sda); - } - - return 0; -} -INIT_DEVICE_EXPORT(rt_soft_i2c_init); - -#endif //#if (defined(BSP_USING_SOFT_I2C) && defined(BSP_USING_GPIO) && defined(RT_USING_I2C_BITOPS) && defined(RT_USING_I2C) && defined(RT_USING_PIN)) diff --git a/bsp/nuvoton/libraries/m2354/rtt_port/Kconfig b/bsp/nuvoton/libraries/m2354/rtt_port/Kconfig index 67632a47544..302d9ac35ad 100644 --- a/bsp/nuvoton/libraries/m2354/rtt_port/Kconfig +++ b/bsp/nuvoton/libraries/m2354/rtt_port/Kconfig @@ -875,47 +875,6 @@ config SOC_SERIES_M2354 endif - menuconfig BSP_USING_SOFT_I2C - bool "Enable SOFT I2C" - - if BSP_USING_SOFT_I2C - config BSP_USING_SOFT_I2C0 - bool "Enable SOFT I2C0" - select RT_USING_I2C - select RT_USING_I2C_BITOPS - default n - - if BSP_USING_SOFT_I2C0 - config BSP_SOFT_I2C0_SCL_PIN - hex "Specify the pin index of SCL of SOFT I2C0" - range 0 0x7F - default 0x18 - - config BSP_SOFT_I2C0_SDA_PIN - hex "Specify the pin index of SDA of SOFT I2C0" - range 0 0x7F - default 0x17 - endif - - config BSP_USING_SOFT_I2C1 - bool "Enable SOFT I2C1" - select RT_USING_I2C - select RT_USING_I2C_BITOPS - default n - - if BSP_USING_SOFT_I2C1 - config BSP_SOFT_I2C1_SCL_PIN - hex "Specify the pin index of SCL of SOFT I2C1" - range 0 0x7F - default 0x0B - - config BSP_SOFT_I2C1_SDA_PIN - hex "Specify the pin index of SDA of SOFT I2C1" - range 0 0x7F - default 0x0A - endif - endif - config BSP_USING_WDT bool "Enable Watchdog Timer(WDT)" select RT_USING_WDT diff --git a/bsp/nuvoton/libraries/m2354/rtt_port/drv_softi2c.c b/bsp/nuvoton/libraries/m2354/rtt_port/drv_softi2c.c deleted file mode 100644 index 0d2039a5635..00000000000 --- a/bsp/nuvoton/libraries/m2354/rtt_port/drv_softi2c.c +++ /dev/null @@ -1,217 +0,0 @@ -/**************************************************************************//** -* -* @copyright (C) 2020 Nuvoton Technology Corp. All rights reserved. -* -* SPDX-License-Identifier: Apache-2.0 -* -* Change Logs: -* Date Author Notes -* 2020-6-28 YCHuang12 First version -* -******************************************************************************/ - -#include - -#if (defined(BSP_USING_SOFT_I2C) && defined(BSP_USING_GPIO) && defined(RT_USING_I2C_BITOPS) && defined(RT_USING_I2C) && defined(RT_USING_PIN)) - -#include -#include -#include -#include "NuMicro.h" - -/* Private define ---------------------------------------------------------------*/ -#define LOG_TAG "drv.softi2c" -#define DBG_ENABLE -#define DBG_SECTION_NAME LOG_TAG -#define DBG_LEVEL DBG_INFO -#include - -#ifdef BSP_USING_SOFT_I2C0 -#define NU_SOFT_I2C0_BUS_CONFIG \ - { \ - .scl = BSP_SOFT_I2C0_SCL_PIN, \ - .sda = BSP_SOFT_I2C0_SDA_PIN, \ - .bus_name = "softi2c0", \ - } -#endif - -#ifdef BSP_USING_SOFT_I2C1 -#define NU_SOFT_I2C1_BUS_CONFIG \ - { \ - .scl = BSP_SOFT_I2C1_SCL_PIN, \ - .sda = BSP_SOFT_I2C1_SDA_PIN, \ - .bus_name = "softi2c1", \ - } -#endif - -#if (!defined(BSP_USING_SOFT_I2C0) && !defined(BSP_USING_SOFT_I2C1)) - #error "Please define at least one BSP_USING_SOFT_I2Cx" - /* this driver can be disabled at menuconfig ? RT-Thread Components ? Device Drivers */ -#endif - -/* Private typedef --------------------------------------------------------------*/ -/* soft i2c config class */ -struct nu_soft_i2c_config -{ - rt_uint8_t scl; - rt_uint8_t sda; - const char *bus_name; -}; -/* soft i2c driver class */ -struct nu_soft_i2c -{ - struct rt_i2c_bit_ops ops; - struct rt_i2c_bus_device soft_i2c_bus; -}; - -/* Private functions ------------------------------------------------------------*/ -static void nu_soft_i2c_set_sda(void *data, rt_int32_t state); -static void nu_soft_i2c_set_scl(void *data, rt_int32_t state); -static rt_int32_t nu_soft_i2c_get_sda(void *data); -static rt_int32_t nu_soft_i2c_get_scl(void *data); - -/* Private variables ------------------------------------------------------------*/ -static const struct nu_soft_i2c_config nu_soft_i2c_cfg[] = -{ -#ifdef BSP_USING_SOFT_I2C0 - NU_SOFT_I2C0_BUS_CONFIG, -#endif -#ifdef BSP_USING_SOFT_I2C1 - NU_SOFT_I2C1_BUS_CONFIG, -#endif -}; - -static struct nu_soft_i2c nu_soft_i2c_obj[sizeof(nu_soft_i2c_cfg) / sizeof(nu_soft_i2c_cfg[0])]; - -static const struct rt_i2c_bit_ops nu_soft_i2c_bit_ops = -{ - .data = RT_NULL, - .set_sda = nu_soft_i2c_set_sda, - .set_scl = nu_soft_i2c_set_scl, - .get_sda = nu_soft_i2c_get_sda, - .get_scl = nu_soft_i2c_get_scl, - .udelay = rt_hw_us_delay, - .delay_us = 1, - .timeout = 100 -}; - -/* Functions define ------------------------------------------------------------*/ - -/** - * This function initializes the soft i2c pin. - * - * @param soft i2c config class. - */ -static void nu_soft_i2c_gpio_init(const struct nu_soft_i2c_config *cfg) -{ - 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); -} - -/** - * if i2c is locked, this function will unlock it - * - * @param soft i2c config class - * - * @return RT_EOK indicates successful unlock. - */ -static rt_err_t nu_soft_i2c_bus_unlock(const struct nu_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); - rt_hw_us_delay(100); - rt_pin_write(cfg->scl, PIN_LOW); - rt_hw_us_delay(100); - } - } - if (PIN_LOW == rt_pin_read(cfg->sda)) - { - return -RT_ERROR; - } - - return RT_EOK; -} - -/** - * This function sets the sda pin. - * - * @param soft i2c config class. - * @param The sda pin state. - */ -static void nu_soft_i2c_set_sda(void *data, rt_int32_t state) -{ - struct nu_soft_i2c_config *cfg = (struct nu_soft_i2c_config *)data; - - rt_pin_write(cfg->sda, state ? PIN_HIGH : PIN_LOW); -} - -/** - * This function sets the scl pin. - * - * @param soft i2c config class. - * @param The scl pin state. - */ -static void nu_soft_i2c_set_scl(void *data, rt_int32_t state) -{ - struct nu_soft_i2c_config *cfg = (struct nu_soft_i2c_config *)data; - - rt_pin_write(cfg->scl, state ? PIN_HIGH : PIN_LOW); -} - -/** - * This function gets the sda pin state. - * - * @param The sda pin state. - */ -static rt_int32_t nu_soft_i2c_get_sda(void *data) -{ - struct nu_soft_i2c_config *cfg = (struct nu_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 nu_soft_i2c_get_scl(void *data) -{ - struct nu_soft_i2c_config *cfg = (struct nu_soft_i2c_config *)data; - return rt_pin_read(cfg->scl); -} - -/* Soft I2C initialization function */ -int rt_soft_i2c_init(void) -{ - rt_size_t obj_num = sizeof(nu_soft_i2c_obj) / sizeof(struct nu_soft_i2c); - rt_err_t result; - - for (int i = 0; i < obj_num; i++) - { - nu_soft_i2c_obj[i].ops = nu_soft_i2c_bit_ops; - nu_soft_i2c_obj[i].ops.data = (void *)&nu_soft_i2c_cfg[i]; - nu_soft_i2c_obj[i].soft_i2c_bus.priv = &nu_soft_i2c_obj[i].ops; - nu_soft_i2c_gpio_init(&nu_soft_i2c_cfg[i]); - result = rt_i2c_bit_add_bus(&nu_soft_i2c_obj[i].soft_i2c_bus, nu_soft_i2c_cfg[i].bus_name); - RT_ASSERT(result == RT_EOK); - nu_soft_i2c_bus_unlock(&nu_soft_i2c_cfg[i]); - - LOG_D("software simulation %s init done, pin scl: %d, pin sda %d", - nu_soft_i2c_cfg[i].bus_name, - nu_soft_i2c_cfg[i].scl, - nu_soft_i2c_cfg[i].sda); - } - - return 0; -} -INIT_DEVICE_EXPORT(rt_soft_i2c_init); - -#endif //#if (defined(BSP_USING_SOFT_I2C) && defined(BSP_USING_GPIO) && defined(RT_USING_I2C_BITOPS) && defined(RT_USING_I2C) && defined(RT_USING_PIN)) diff --git a/bsp/nuvoton/libraries/m460/rtt_port/Kconfig b/bsp/nuvoton/libraries/m460/rtt_port/Kconfig index e4a2ec8b7d0..99a2ee78322 100644 --- a/bsp/nuvoton/libraries/m460/rtt_port/Kconfig +++ b/bsp/nuvoton/libraries/m460/rtt_port/Kconfig @@ -1053,47 +1053,6 @@ config SOC_SERIES_M460 endif - menuconfig BSP_USING_SOFT_I2C - bool "Enable SOFT I2C" - - if BSP_USING_SOFT_I2C - config BSP_USING_SOFT_I2C0 - bool "Enable SOFT I2C0" - select RT_USING_I2C - select RT_USING_I2C_BITOPS - default n - - if BSP_USING_SOFT_I2C0 - config BSP_SOFT_I2C0_SCL_PIN - hex "Specify the pin index of SCL of SOFT I2C0" - range 0 0x7F - default 0x18 - - config BSP_SOFT_I2C0_SDA_PIN - hex "Specify the pin index of SDA of SOFT I2C0" - range 0 0x7F - default 0x17 - endif - - config BSP_USING_SOFT_I2C1 - bool "Enable SOFT I2C1" - select RT_USING_I2C - select RT_USING_I2C_BITOPS - default n - - if BSP_USING_SOFT_I2C1 - config BSP_SOFT_I2C1_SCL_PIN - hex "Specify the pin index of SCL of SOFT I2C1" - range 0 0x7F - default 0x0B - - config BSP_SOFT_I2C1_SDA_PIN - hex "Specify the pin index of SDA of SOFT I2C1" - range 0 0x7F - default 0x0A - endif - endif - config BSP_USING_WDT bool "Enable Watchdog Timer(WDT)" select RT_USING_WDT diff --git a/bsp/nuvoton/libraries/m460/rtt_port/drv_softi2c.c b/bsp/nuvoton/libraries/m460/rtt_port/drv_softi2c.c deleted file mode 100644 index 196737f7b46..00000000000 --- a/bsp/nuvoton/libraries/m460/rtt_port/drv_softi2c.c +++ /dev/null @@ -1,232 +0,0 @@ -/**************************************************************************//** -* -* @copyright (C) 2020 Nuvoton Technology Corp. All rights reserved. -* -* SPDX-License-Identifier: Apache-2.0 -* -* Change Logs: -* Date Author Notes -* 2022-3-15 Wayne First version -* -******************************************************************************/ - -#include - -#if (defined(BSP_USING_SOFT_I2C) && defined(RT_USING_I2C_BITOPS) && defined(RT_USING_I2C) && defined(RT_USING_PIN)) - -#include -#include -#include -#include "NuMicro.h" - -/* Private define ---------------------------------------------------------------*/ -#define LOG_TAG "drv.softi2c" -#define DBG_ENABLE -#define DBG_SECTION_NAME LOG_TAG -#define DBG_LEVEL DBG_INFO -#include - -#ifdef BSP_USING_SOFT_I2C0 -#define NU_SOFT_I2C0_BUS_CONFIG \ - { \ - .scl = BSP_SOFT_I2C0_SCL_PIN, \ - .sda = BSP_SOFT_I2C0_SDA_PIN, \ - .bus_name = "softi2c0", \ - } -#endif - -#ifdef BSP_USING_SOFT_I2C1 -#define NU_SOFT_I2C1_BUS_CONFIG \ - { \ - .scl = BSP_SOFT_I2C1_SCL_PIN, \ - .sda = BSP_SOFT_I2C1_SDA_PIN, \ - .bus_name = "softi2c1", \ - } -#endif - -#if (!defined(BSP_USING_SOFT_I2C0) && !defined(BSP_USING_SOFT_I2C1)) - #error "Please define at least one BSP_USING_SOFT_I2Cx" - /* this driver can be disabled at menuconfig ? RT-Thread Components ? Device Drivers */ -#endif - -/* Private typedef --------------------------------------------------------------*/ -/* soft i2c config class */ -struct nu_soft_i2c_config -{ - rt_uint8_t scl; - rt_uint8_t sda; - const char *bus_name; -}; -/* soft i2c driver class */ -struct nu_soft_i2c -{ - struct rt_i2c_bit_ops ops; - struct rt_i2c_bus_device soft_i2c_bus; -}; - -/* Private functions ------------------------------------------------------------*/ -static void nu_soft_i2c_udelay(rt_uint32_t us); -static void nu_soft_i2c_set_sda(void *data, rt_int32_t state); -static void nu_soft_i2c_set_scl(void *data, rt_int32_t state); -static rt_int32_t nu_soft_i2c_get_sda(void *data); -static rt_int32_t nu_soft_i2c_get_scl(void *data); - -/* Private variables ------------------------------------------------------------*/ -static const struct nu_soft_i2c_config nu_soft_i2c_cfg[] = -{ -#ifdef BSP_USING_SOFT_I2C0 - NU_SOFT_I2C0_BUS_CONFIG, -#endif -#ifdef BSP_USING_SOFT_I2C1 - NU_SOFT_I2C1_BUS_CONFIG, -#endif -}; - -static struct nu_soft_i2c nu_soft_i2c_obj[sizeof(nu_soft_i2c_cfg) / sizeof(nu_soft_i2c_cfg[0])]; - -static const struct rt_i2c_bit_ops nu_soft_i2c_bit_ops = -{ - .data = RT_NULL, - .set_sda = nu_soft_i2c_set_sda, - .set_scl = nu_soft_i2c_set_scl, - .get_sda = nu_soft_i2c_get_sda, - .get_scl = nu_soft_i2c_get_scl, - .udelay = nu_soft_i2c_udelay, - .delay_us = 1, - .timeout = 100 -}; - -/* Functions define ------------------------------------------------------------*/ - -/** - * The time delay function. - * - * @param microseconds. - */ -static void nu_soft_i2c_udelay(rt_uint32_t us) -{ - rt_hw_us_delay(us); -} - -/** - * This function initializes the soft i2c pin. - * - * @param soft i2c config class. - */ -static void nu_soft_i2c_gpio_init(const struct nu_soft_i2c_config *cfg) -{ - 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); -} - -/** - * if i2c is locked, this function will unlock it - * - * @param soft i2c config class - * - * @return RT_EOK indicates successful unlock. - */ -static rt_err_t nu_soft_i2c_bus_unlock(const struct nu_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); - nu_soft_i2c_udelay(100); - rt_pin_write(cfg->scl, PIN_LOW); - nu_soft_i2c_udelay(100); - } - } - if (PIN_LOW == rt_pin_read(cfg->sda)) - { - return -RT_ERROR; - } - - return RT_EOK; -} - -/** - * This function sets the sda pin. - * - * @param soft i2c config class. - * @param The sda pin state. - */ -static void nu_soft_i2c_set_sda(void *data, rt_int32_t state) -{ - struct nu_soft_i2c_config *cfg = (struct nu_soft_i2c_config *)data; - - rt_pin_write(cfg->sda, state ? PIN_HIGH : PIN_LOW); -} - -/** - * This function sets the scl pin. - * - * @param soft i2c config class. - * @param The scl pin state. - */ -static void nu_soft_i2c_set_scl(void *data, rt_int32_t state) -{ - struct nu_soft_i2c_config *cfg = (struct nu_soft_i2c_config *)data; - - rt_pin_write(cfg->scl, state ? PIN_HIGH : PIN_LOW); -} - -/** - * This function gets the sda pin state. - * - * @param The sda pin state. - */ -static rt_int32_t nu_soft_i2c_get_sda(void *data) -{ - struct nu_soft_i2c_config *cfg = (struct nu_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 nu_soft_i2c_get_scl(void *data) -{ - struct nu_soft_i2c_config *cfg = (struct nu_soft_i2c_config *)data; - - return rt_pin_read(cfg->scl); -} - -/* Soft I2C initialization function */ -int rt_soft_i2c_init(void) -{ - rt_size_t obj_num = sizeof(nu_soft_i2c_obj) / sizeof(struct nu_soft_i2c); - rt_err_t result; - - for (int i = 0; i < obj_num; i++) - { - nu_soft_i2c_obj[i].ops = nu_soft_i2c_bit_ops; - nu_soft_i2c_obj[i].ops.data = (void *)&nu_soft_i2c_cfg[i]; - nu_soft_i2c_obj[i].soft_i2c_bus.priv = &nu_soft_i2c_obj[i].ops; - nu_soft_i2c_gpio_init(&nu_soft_i2c_cfg[i]); - - result = rt_i2c_bit_add_bus(&nu_soft_i2c_obj[i].soft_i2c_bus, nu_soft_i2c_cfg[i].bus_name); - RT_ASSERT(result == RT_EOK); - - nu_soft_i2c_bus_unlock(&nu_soft_i2c_cfg[i]); - - LOG_D("software simulation %s init done, pin scl: %d, pin sda %d", - nu_soft_i2c_cfg[i].bus_name, - nu_soft_i2c_cfg[i].scl, - nu_soft_i2c_cfg[i].sda); - } - - return 0; -} -INIT_DEVICE_EXPORT(rt_soft_i2c_init); - -#endif //#if (defined(BSP_USING_SOFT_I2C) && defined(RT_USING_I2C_BITOPS) && defined(RT_USING_I2C) && defined(RT_USING_PIN)) diff --git a/bsp/nuvoton/libraries/m480/rtt_port/Kconfig b/bsp/nuvoton/libraries/m480/rtt_port/Kconfig index 87a82cf98b5..6d7d626b262 100644 --- a/bsp/nuvoton/libraries/m480/rtt_port/Kconfig +++ b/bsp/nuvoton/libraries/m480/rtt_port/Kconfig @@ -863,47 +863,6 @@ config SOC_SERIES_M480 endif - menuconfig BSP_USING_SOFT_I2C - bool "Enable SOFT I2C" - - if BSP_USING_SOFT_I2C - config BSP_USING_SOFT_I2C0 - bool "Enable SOFT I2C0" - select RT_USING_I2C - select RT_USING_I2C_BITOPS - default n - - if BSP_USING_SOFT_I2C0 - config BSP_SOFT_I2C0_SCL_PIN - hex "Specify the pin index of SCL of SOFT I2C0" - range 0 0x7F - default 0x18 - - config BSP_SOFT_I2C0_SDA_PIN - hex "Specify the pin index of SDA of SOFT I2C0" - range 0 0x7F - default 0x17 - endif - - config BSP_USING_SOFT_I2C1 - bool "Enable SOFT I2C1" - select RT_USING_I2C - select RT_USING_I2C_BITOPS - default n - - if BSP_USING_SOFT_I2C1 - config BSP_SOFT_I2C1_SCL_PIN - hex "Specify the pin index of SCL of SOFT I2C1" - range 0 0x7F - default 0x0B - - config BSP_SOFT_I2C1_SDA_PIN - hex "Specify the pin index of SDA of SOFT I2C1" - range 0 0x7F - default 0x0A - endif - endif - config BSP_USING_WDT bool "Enable Watchdog Timer(WDT)" select RT_USING_WDT diff --git a/bsp/nuvoton/libraries/m480/rtt_port/drv_softi2c.c b/bsp/nuvoton/libraries/m480/rtt_port/drv_softi2c.c deleted file mode 100644 index 54208fbd617..00000000000 --- a/bsp/nuvoton/libraries/m480/rtt_port/drv_softi2c.c +++ /dev/null @@ -1,217 +0,0 @@ -/**************************************************************************//** -* -* @copyright (C) 2020 Nuvoton Technology Corp. All rights reserved. -* -* SPDX-License-Identifier: Apache-2.0 -* -* Change Logs: -* Date Author Notes -* 2020-5-28 YCHuang12 First version -* -******************************************************************************/ - -#include - -#if (defined(BSP_USING_SOFT_I2C) && defined(BSP_USING_GPIO) && defined(RT_USING_I2C_BITOPS) && defined(RT_USING_I2C) && defined(RT_USING_PIN)) - -#include -#include -#include -#include "NuMicro.h" - -/* Private define ---------------------------------------------------------------*/ -#define LOG_TAG "drv.softi2c" -#define DBG_ENABLE -#define DBG_SECTION_NAME LOG_TAG -#define DBG_LEVEL DBG_INFO -#include - -#ifdef BSP_USING_SOFT_I2C0 -#define NU_SOFT_I2C0_BUS_CONFIG \ - { \ - .scl = BSP_SOFT_I2C0_SCL_PIN, \ - .sda = BSP_SOFT_I2C0_SDA_PIN, \ - .bus_name = "softi2c0", \ - } -#endif - -#ifdef BSP_USING_SOFT_I2C1 -#define NU_SOFT_I2C1_BUS_CONFIG \ - { \ - .scl = BSP_SOFT_I2C1_SCL_PIN, \ - .sda = BSP_SOFT_I2C1_SDA_PIN, \ - .bus_name = "softi2c1", \ - } -#endif - -#if (!defined(BSP_USING_SOFT_I2C0) && !defined(BSP_USING_SOFT_I2C1)) - #error "Please define at least one BSP_USING_SOFT_I2Cx" - /* this driver can be disabled at menuconfig ? RT-Thread Components ? Device Drivers */ -#endif - -/* Private typedef --------------------------------------------------------------*/ -/* soft i2c config class */ -struct nu_soft_i2c_config -{ - rt_uint8_t scl; - rt_uint8_t sda; - const char *bus_name; -}; -/* soft i2c driver class */ -struct nu_soft_i2c -{ - struct rt_i2c_bit_ops ops; - struct rt_i2c_bus_device soft_i2c_bus; -}; - -/* Private functions ------------------------------------------------------------*/ -static void nu_soft_i2c_set_sda(void *data, rt_int32_t state); -static void nu_soft_i2c_set_scl(void *data, rt_int32_t state); -static rt_int32_t nu_soft_i2c_get_sda(void *data); -static rt_int32_t nu_soft_i2c_get_scl(void *data); - -/* Private variables ------------------------------------------------------------*/ -static const struct nu_soft_i2c_config nu_soft_i2c_cfg[] = -{ -#ifdef BSP_USING_SOFT_I2C0 - NU_SOFT_I2C0_BUS_CONFIG, -#endif -#ifdef BSP_USING_SOFT_I2C1 - NU_SOFT_I2C1_BUS_CONFIG, -#endif -}; - -static struct nu_soft_i2c nu_soft_i2c_obj[sizeof(nu_soft_i2c_cfg) / sizeof(nu_soft_i2c_cfg[0])]; - -static const struct rt_i2c_bit_ops nu_soft_i2c_bit_ops = -{ - .data = RT_NULL, - .set_sda = nu_soft_i2c_set_sda, - .set_scl = nu_soft_i2c_set_scl, - .get_sda = nu_soft_i2c_get_sda, - .get_scl = nu_soft_i2c_get_scl, - .udelay = rt_hw_us_delay, - .delay_us = 1, - .timeout = 100 -}; - -/* Functions define ------------------------------------------------------------*/ - -/** - * This function initializes the soft i2c pin. - * - * @param soft i2c config class. - */ -static void nu_soft_i2c_gpio_init(const struct nu_soft_i2c_config *cfg) -{ - 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); -} - -/** - * if i2c is locked, this function will unlock it - * - * @param soft i2c config class - * - * @return RT_EOK indicates successful unlock. - */ -static rt_err_t nu_soft_i2c_bus_unlock(const struct nu_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); - rt_hw_us_delay(100); - rt_pin_write(cfg->scl, PIN_LOW); - rt_hw_us_delay(100); - } - } - if (PIN_LOW == rt_pin_read(cfg->sda)) - { - return -RT_ERROR; - } - - return RT_EOK; -} - -/** - * This function sets the sda pin. - * - * @param soft i2c config class. - * @param The sda pin state. - */ -static void nu_soft_i2c_set_sda(void *data, rt_int32_t state) -{ - struct nu_soft_i2c_config *cfg = (struct nu_soft_i2c_config *)data; - - rt_pin_write(cfg->sda, state ? PIN_HIGH : PIN_LOW); -} - -/** - * This function sets the scl pin. - * - * @param soft i2c config class. - * @param The scl pin state. - */ -static void nu_soft_i2c_set_scl(void *data, rt_int32_t state) -{ - struct nu_soft_i2c_config *cfg = (struct nu_soft_i2c_config *)data; - - rt_pin_write(cfg->scl, state ? PIN_HIGH : PIN_LOW); -} - -/** - * This function gets the sda pin state. - * - * @param The sda pin state. - */ -static rt_int32_t nu_soft_i2c_get_sda(void *data) -{ - struct nu_soft_i2c_config *cfg = (struct nu_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 nu_soft_i2c_get_scl(void *data) -{ - struct nu_soft_i2c_config *cfg = (struct nu_soft_i2c_config *)data; - return rt_pin_read(cfg->scl); -} - -/* Soft I2C initialization function */ -int rt_soft_i2c_init(void) -{ - rt_size_t obj_num = sizeof(nu_soft_i2c_obj) / sizeof(struct nu_soft_i2c); - rt_err_t result; - - for (int i = 0; i < obj_num; i++) - { - nu_soft_i2c_obj[i].ops = nu_soft_i2c_bit_ops; - nu_soft_i2c_obj[i].ops.data = (void *)&nu_soft_i2c_cfg[i]; - nu_soft_i2c_obj[i].soft_i2c_bus.priv = &nu_soft_i2c_obj[i].ops; - nu_soft_i2c_gpio_init(&nu_soft_i2c_cfg[i]); - result = rt_i2c_bit_add_bus(&nu_soft_i2c_obj[i].soft_i2c_bus, nu_soft_i2c_cfg[i].bus_name); - RT_ASSERT(result == RT_EOK); - nu_soft_i2c_bus_unlock(&nu_soft_i2c_cfg[i]); - - LOG_D("software simulation %s init done, pin scl: %d, pin sda %d", - nu_soft_i2c_cfg[i].bus_name, - nu_soft_i2c_cfg[i].scl, - nu_soft_i2c_cfg[i].sda); - } - - return 0; -} -INIT_DEVICE_EXPORT(rt_soft_i2c_init); - -#endif //#if (defined(BSP_USING_SOFT_I2C) && defined(BSP_USING_GPIO) && defined(RT_USING_I2C_BITOPS) && defined(RT_USING_I2C) && defined(RT_USING_PIN)) diff --git a/bsp/nuvoton/libraries/ma35/rtt_port/Kconfig b/bsp/nuvoton/libraries/ma35/rtt_port/Kconfig index ef43e5c16dc..a8c9d9919e1 100644 --- a/bsp/nuvoton/libraries/ma35/rtt_port/Kconfig +++ b/bsp/nuvoton/libraries/ma35/rtt_port/Kconfig @@ -1021,47 +1021,6 @@ endif - menuconfig BSP_USING_SOFT_I2C - bool "Enable SOFT I2C" - - if BSP_USING_SOFT_I2C - config BSP_USING_SOFT_I2C0 - bool "Enable SOFT I2C0" - select RT_USING_I2C - select RT_USING_I2C_BITOPS - default n - - if BSP_USING_SOFT_I2C0 - config BSP_SOFT_I2C0_SCL_PIN - hex "Specify the pin index of SCL of SOFT I2C0" - range 0 0xDF - default 0x19 - - config BSP_SOFT_I2C0_SDA_PIN - hex "Specify the pin index of SDA of SOFT I2C0" - range 0 0xDF - default 0x18 - endif - - config BSP_USING_SOFT_I2C1 - bool "Enable SOFT I2C1" - select RT_USING_I2C - select RT_USING_I2C_BITOPS - default n - - if BSP_USING_SOFT_I2C1 - config BSP_SOFT_I2C1_SCL_PIN - hex "Specify the pin index of SCL of SOFT I2C1" - range 0 0xDF - default 0x0B - - config BSP_SOFT_I2C1_SDA_PIN - hex "Specify the pin index of SDA of SOFT I2C1" - range 0 0xDF - default 0x0A - endif - endif - config BSP_USING_DISP bool "Enable Display" depends on !USE_MA35D1_SUBM diff --git a/bsp/nuvoton/libraries/ma35/rtt_port/drv_softi2c.c b/bsp/nuvoton/libraries/ma35/rtt_port/drv_softi2c.c deleted file mode 100644 index 69462bfa39f..00000000000 --- a/bsp/nuvoton/libraries/ma35/rtt_port/drv_softi2c.c +++ /dev/null @@ -1,232 +0,0 @@ -/**************************************************************************//** -* -* @copyright (C) 2020 Nuvoton Technology Corp. All rights reserved. -* -* SPDX-License-Identifier: Apache-2.0 -* -* Change Logs: -* Date Author Notes -* 2021-9-6 Wayne First version -* -******************************************************************************/ - -#include - -#if (defined(BSP_USING_SOFT_I2C) && defined(RT_USING_I2C_BITOPS) && defined(RT_USING_I2C) && defined(RT_USING_PIN)) - -#include -#include -#include -#include "NuMicro.h" - -/* Private define ---------------------------------------------------------------*/ -#define LOG_TAG "drv.softi2c" -#define DBG_ENABLE -#define DBG_SECTION_NAME LOG_TAG -#define DBG_LEVEL DBG_INFO -#include - -#ifdef BSP_USING_SOFT_I2C0 -#define NU_SOFT_I2C0_BUS_CONFIG \ - { \ - .scl = BSP_SOFT_I2C0_SCL_PIN, \ - .sda = BSP_SOFT_I2C0_SDA_PIN, \ - .bus_name = "softi2c0", \ - } -#endif - -#ifdef BSP_USING_SOFT_I2C1 -#define NU_SOFT_I2C1_BUS_CONFIG \ - { \ - .scl = BSP_SOFT_I2C1_SCL_PIN, \ - .sda = BSP_SOFT_I2C1_SDA_PIN, \ - .bus_name = "softi2c1", \ - } -#endif - -#if (!defined(BSP_USING_SOFT_I2C0) && !defined(BSP_USING_SOFT_I2C1)) - #error "Please define at least one BSP_USING_SOFT_I2Cx" - /* this driver can be disabled at menuconfig ? RT-Thread Components ? Device Drivers */ -#endif - -/* Private typedef --------------------------------------------------------------*/ -/* soft i2c config class */ -struct nu_soft_i2c_config -{ - rt_uint8_t scl; - rt_uint8_t sda; - const char *bus_name; -}; -/* soft i2c driver class */ -struct nu_soft_i2c -{ - struct rt_i2c_bit_ops ops; - struct rt_i2c_bus_device soft_i2c_bus; -}; - -/* Private functions ------------------------------------------------------------*/ -static void nu_soft_i2c_udelay(rt_uint32_t us); -static void nu_soft_i2c_set_sda(void *data, rt_int32_t state); -static void nu_soft_i2c_set_scl(void *data, rt_int32_t state); -static rt_int32_t nu_soft_i2c_get_sda(void *data); -static rt_int32_t nu_soft_i2c_get_scl(void *data); - -/* Private variables ------------------------------------------------------------*/ -static const struct nu_soft_i2c_config nu_soft_i2c_cfg[] = -{ -#ifdef BSP_USING_SOFT_I2C0 - NU_SOFT_I2C0_BUS_CONFIG, -#endif -#ifdef BSP_USING_SOFT_I2C1 - NU_SOFT_I2C1_BUS_CONFIG, -#endif -}; - -static struct nu_soft_i2c nu_soft_i2c_obj[sizeof(nu_soft_i2c_cfg) / sizeof(nu_soft_i2c_cfg[0])]; - -static const struct rt_i2c_bit_ops nu_soft_i2c_bit_ops = -{ - .data = RT_NULL, - .set_sda = nu_soft_i2c_set_sda, - .set_scl = nu_soft_i2c_set_scl, - .get_sda = nu_soft_i2c_get_sda, - .get_scl = nu_soft_i2c_get_scl, - .udelay = nu_soft_i2c_udelay, - .delay_us = 1, - .timeout = 100 -}; - -/* Functions define ------------------------------------------------------------*/ - -/** - * The time delay function. - * - * @param microseconds. - */ -static void nu_soft_i2c_udelay(rt_uint32_t us) -{ - rt_hw_us_delay(us); -} - -/** - * This function initializes the soft i2c pin. - * - * @param soft i2c config class. - */ -static void nu_soft_i2c_gpio_init(const struct nu_soft_i2c_config *cfg) -{ - 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); -} - -/** - * if i2c is locked, this function will unlock it - * - * @param soft i2c config class - * - * @return RT_EOK indicates successful unlock. - */ -static rt_err_t nu_soft_i2c_bus_unlock(const struct nu_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); - nu_soft_i2c_udelay(100); - rt_pin_write(cfg->scl, PIN_LOW); - nu_soft_i2c_udelay(100); - } - } - if (PIN_LOW == rt_pin_read(cfg->sda)) - { - return -RT_ERROR; - } - - return RT_EOK; -} - -/** - * This function sets the sda pin. - * - * @param soft i2c config class. - * @param The sda pin state. - */ -static void nu_soft_i2c_set_sda(void *data, rt_int32_t state) -{ - struct nu_soft_i2c_config *cfg = (struct nu_soft_i2c_config *)data; - - rt_pin_write(cfg->sda, state ? PIN_HIGH : PIN_LOW); -} - -/** - * This function sets the scl pin. - * - * @param soft i2c config class. - * @param The scl pin state. - */ -static void nu_soft_i2c_set_scl(void *data, rt_int32_t state) -{ - struct nu_soft_i2c_config *cfg = (struct nu_soft_i2c_config *)data; - - rt_pin_write(cfg->scl, state ? PIN_HIGH : PIN_LOW); -} - -/** - * This function gets the sda pin state. - * - * @param The sda pin state. - */ -static rt_int32_t nu_soft_i2c_get_sda(void *data) -{ - struct nu_soft_i2c_config *cfg = (struct nu_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 nu_soft_i2c_get_scl(void *data) -{ - struct nu_soft_i2c_config *cfg = (struct nu_soft_i2c_config *)data; - - return rt_pin_read(cfg->scl); -} - -/* Soft I2C initialization function */ -int rt_soft_i2c_init(void) -{ - rt_size_t obj_num = sizeof(nu_soft_i2c_obj) / sizeof(struct nu_soft_i2c); - rt_err_t result; - - for (int i = 0; i < obj_num; i++) - { - nu_soft_i2c_obj[i].ops = nu_soft_i2c_bit_ops; - nu_soft_i2c_obj[i].ops.data = (void *)&nu_soft_i2c_cfg[i]; - nu_soft_i2c_obj[i].soft_i2c_bus.priv = &nu_soft_i2c_obj[i].ops; - nu_soft_i2c_gpio_init(&nu_soft_i2c_cfg[i]); - - result = rt_i2c_bit_add_bus(&nu_soft_i2c_obj[i].soft_i2c_bus, nu_soft_i2c_cfg[i].bus_name); - RT_ASSERT(result == RT_EOK); - - nu_soft_i2c_bus_unlock(&nu_soft_i2c_cfg[i]); - - LOG_D("software simulation %s init done, pin scl: %d, pin sda %d", - nu_soft_i2c_cfg[i].bus_name, - nu_soft_i2c_cfg[i].scl, - nu_soft_i2c_cfg[i].sda); - } - - return 0; -} -INIT_DEVICE_EXPORT(rt_soft_i2c_init); - -#endif //#if (defined(BSP_USING_SOFT_I2C) && defined(RT_USING_I2C_BITOPS) && defined(RT_USING_I2C) && defined(RT_USING_PIN)) diff --git a/bsp/nuvoton/libraries/n9h30/rtt_port/Kconfig b/bsp/nuvoton/libraries/n9h30/rtt_port/Kconfig index 1f8df1448ae..f0cab0d300f 100644 --- a/bsp/nuvoton/libraries/n9h30/rtt_port/Kconfig +++ b/bsp/nuvoton/libraries/n9h30/rtt_port/Kconfig @@ -413,47 +413,6 @@ config SOC_SERIES_N9H30 endif endif - menuconfig BSP_USING_SOFT_I2C - bool "Enable SOFT I2C" - - if BSP_USING_SOFT_I2C - config BSP_USING_SOFT_I2C0 - bool "Enable SOFT I2C0" - select RT_USING_I2C - select RT_USING_I2C_BITOPS - default n - - if BSP_USING_SOFT_I2C0 - config BSP_SOFT_I2C0_SCL_PIN - hex "Specify the pin index of SCL of SOFT I2C0" - range 0 0x7F - default 0x18 - - config BSP_SOFT_I2C0_SDA_PIN - hex "Specify the pin index of SDA of SOFT I2C0" - range 0 0x7F - default 0x17 - endif - - config BSP_USING_SOFT_I2C1 - bool "Enable SOFT I2C1" - select RT_USING_I2C - select RT_USING_I2C_BITOPS - default n - - if BSP_USING_SOFT_I2C1 - config BSP_SOFT_I2C1_SCL_PIN - hex "Specify the pin index of SCL of SOFT I2C1" - range 0 0x7F - default 0x0B - - config BSP_SOFT_I2C1_SDA_PIN - hex "Specify the pin index of SDA of SOFT I2C1" - range 0 0x7F - default 0x0A - endif - endif - config BSP_USING_WDT bool "Enable Watchdog Timer(WDT)" select RT_USING_WDT diff --git a/bsp/nuvoton/libraries/n9h30/rtt_port/drv_softi2c.c b/bsp/nuvoton/libraries/n9h30/rtt_port/drv_softi2c.c deleted file mode 100644 index 8defbe38ebb..00000000000 --- a/bsp/nuvoton/libraries/n9h30/rtt_port/drv_softi2c.c +++ /dev/null @@ -1,238 +0,0 @@ -/**************************************************************************//** -* -* @copyright (C) 2020 Nuvoton Technology Corp. All rights reserved. -* -* SPDX-License-Identifier: Apache-2.0 -* -* Change Logs: -* Date Author Notes -* 2020-12-12 Wayne First version -* -******************************************************************************/ - -#include - -#if (defined(BSP_USING_SOFT_I2C) && defined(RT_USING_I2C_BITOPS) && defined(RT_USING_I2C) && defined(RT_USING_PIN)) - -#include -#include -#include -#include "NuMicro.h" -#include "drv_sys.h" - -/* Private define ---------------------------------------------------------------*/ -#define LOG_TAG "drv.softi2c" -#define DBG_ENABLE -#define DBG_SECTION_NAME LOG_TAG -#define DBG_LEVEL DBG_INFO -#include - -#ifdef BSP_USING_SOFT_I2C0 -#define NU_SOFT_I2C0_BUS_CONFIG \ - { \ - .scl = BSP_SOFT_I2C0_SCL_PIN, \ - .sda = BSP_SOFT_I2C0_SDA_PIN, \ - .bus_name = "softi2c0", \ - } -#endif - -#ifdef BSP_USING_SOFT_I2C1 -#define NU_SOFT_I2C1_BUS_CONFIG \ - { \ - .scl = BSP_SOFT_I2C1_SCL_PIN, \ - .sda = BSP_SOFT_I2C1_SDA_PIN, \ - .bus_name = "softi2c1", \ - } -#endif - -#if (!defined(BSP_USING_SOFT_I2C0) && !defined(BSP_USING_SOFT_I2C1)) - #error "Please define at least one BSP_USING_SOFT_I2Cx" - /* this driver can be disabled at menuconfig ? RT-Thread Components ? Device Drivers */ -#endif - -/* Private typedef --------------------------------------------------------------*/ -/* soft i2c config class */ -struct nu_soft_i2c_config -{ - rt_uint8_t scl; - rt_uint8_t sda; - const char *bus_name; -}; -/* soft i2c driver class */ -struct nu_soft_i2c -{ - struct rt_i2c_bit_ops ops; - struct rt_i2c_bus_device soft_i2c_bus; -}; - -/* Private functions ------------------------------------------------------------*/ -static void nu_soft_i2c_udelay(rt_uint32_t us); -static void nu_soft_i2c_set_sda(void *data, rt_int32_t state); -static void nu_soft_i2c_set_scl(void *data, rt_int32_t state); -static rt_int32_t nu_soft_i2c_get_sda(void *data); -static rt_int32_t nu_soft_i2c_get_scl(void *data); - -/* Private variables ------------------------------------------------------------*/ -static const struct nu_soft_i2c_config nu_soft_i2c_cfg[] = -{ -#ifdef BSP_USING_SOFT_I2C0 - NU_SOFT_I2C0_BUS_CONFIG, -#endif -#ifdef BSP_USING_SOFT_I2C1 - NU_SOFT_I2C1_BUS_CONFIG, -#endif -}; - -static struct nu_soft_i2c nu_soft_i2c_obj[sizeof(nu_soft_i2c_cfg) / sizeof(nu_soft_i2c_cfg[0])]; - -static const struct rt_i2c_bit_ops nu_soft_i2c_bit_ops = -{ - .data = RT_NULL, - .set_sda = nu_soft_i2c_set_sda, - .set_scl = nu_soft_i2c_set_scl, - .get_sda = nu_soft_i2c_get_sda, - .get_scl = nu_soft_i2c_get_scl, - .udelay = nu_soft_i2c_udelay, - .delay_us = 1, - .timeout = 100 -}; - -/* Functions define ------------------------------------------------------------*/ - -/** - * The time delay function. - * - * @param microseconds. - */ -static void nu_soft_i2c_udelay(rt_uint32_t us) -{ - rt_hw_us_delay(us); -} - -/** - * This function initializes the soft i2c pin. - * - * @param soft i2c config class. - */ -static void nu_soft_i2c_gpio_init(const struct nu_soft_i2c_config *cfg) -{ - rt_pin_mode(cfg->scl, PIN_MODE_OUTPUT); - rt_pin_mode(cfg->sda, PIN_MODE_OUTPUT); - - rt_pin_write(cfg->scl, PIN_HIGH); - rt_pin_write(cfg->sda, PIN_HIGH); -} - -/** - * if i2c is locked, this function will unlock it - * - * @param soft i2c config class - * - * @return RT_EOK indicates successful unlock. - */ -static rt_err_t nu_soft_i2c_bus_unlock(const struct nu_soft_i2c_config *cfg) -{ - rt_int32_t i = 0; - - rt_pin_mode(cfg->sda, PIN_MODE_INPUT); - rt_pin_mode(cfg->scl, PIN_MODE_OUTPUT); - - if (PIN_LOW == rt_pin_read(cfg->sda)) - { - while (i++ < 9) - { - rt_pin_write(cfg->scl, PIN_HIGH); - nu_soft_i2c_udelay(100); - rt_pin_write(cfg->scl, PIN_LOW); - nu_soft_i2c_udelay(100); - } - } - if (PIN_LOW == rt_pin_read(cfg->sda)) - { - return -RT_ERROR; - } - - return RT_EOK; -} - -/** - * This function sets the sda pin. - * - * @param soft i2c config class. - * @param The sda pin state. - */ -static void nu_soft_i2c_set_sda(void *data, rt_int32_t state) -{ - struct nu_soft_i2c_config *cfg = (struct nu_soft_i2c_config *)data; - - rt_pin_mode(cfg->sda, PIN_MODE_OUTPUT); - rt_pin_write(cfg->sda, state ? PIN_HIGH : PIN_LOW); -} - -/** - * This function sets the scl pin. - * - * @param soft i2c config class. - * @param The scl pin state. - */ -static void nu_soft_i2c_set_scl(void *data, rt_int32_t state) -{ - struct nu_soft_i2c_config *cfg = (struct nu_soft_i2c_config *)data; - - rt_pin_mode(cfg->scl, PIN_MODE_OUTPUT); - rt_pin_write(cfg->scl, state ? PIN_HIGH : PIN_LOW); -} - -/** - * This function gets the sda pin state. - * - * @param The sda pin state. - */ -static rt_int32_t nu_soft_i2c_get_sda(void *data) -{ - struct nu_soft_i2c_config *cfg = (struct nu_soft_i2c_config *)data; - - rt_pin_mode(cfg->sda, PIN_MODE_INPUT); - return rt_pin_read(cfg->sda); -} - -/** - * This function gets the scl pin state. - * - * @param The scl pin state. - */ -static rt_int32_t nu_soft_i2c_get_scl(void *data) -{ - struct nu_soft_i2c_config *cfg = (struct nu_soft_i2c_config *)data; - - rt_pin_mode(cfg->scl, PIN_MODE_INPUT); - return rt_pin_read(cfg->scl); -} - -/* Soft I2C initialization function */ -int rt_soft_i2c_init(void) -{ - rt_size_t obj_num = sizeof(nu_soft_i2c_obj) / sizeof(struct nu_soft_i2c); - rt_err_t result; - - for (int i = 0; i < obj_num; i++) - { - nu_soft_i2c_obj[i].ops = nu_soft_i2c_bit_ops; - nu_soft_i2c_obj[i].ops.data = (void *)&nu_soft_i2c_cfg[i]; - nu_soft_i2c_obj[i].soft_i2c_bus.priv = &nu_soft_i2c_obj[i].ops; - nu_soft_i2c_gpio_init(&nu_soft_i2c_cfg[i]); - result = rt_i2c_bit_add_bus(&nu_soft_i2c_obj[i].soft_i2c_bus, nu_soft_i2c_cfg[i].bus_name); - RT_ASSERT(result == RT_EOK); - nu_soft_i2c_bus_unlock(&nu_soft_i2c_cfg[i]); - - LOG_I("software simulation %s init done, pin scl: %d, pin sda %d", - nu_soft_i2c_cfg[i].bus_name, - nu_soft_i2c_cfg[i].scl, - nu_soft_i2c_cfg[i].sda); - } - - return 0; -} -INIT_DEVICE_EXPORT(rt_soft_i2c_init); - -#endif //#if (defined(BSP_USING_SOFT_I2C) && defined(RT_USING_I2C_BITOPS) && defined(RT_USING_I2C) && defined(RT_USING_PIN)) diff --git a/bsp/nuvoton/libraries/nuc980/rtt_port/Kconfig b/bsp/nuvoton/libraries/nuc980/rtt_port/Kconfig index af7e441fced..2e494bd0b7e 100644 --- a/bsp/nuvoton/libraries/nuc980/rtt_port/Kconfig +++ b/bsp/nuvoton/libraries/nuc980/rtt_port/Kconfig @@ -542,47 +542,6 @@ config SOC_SERIES_NUC980 endif endif - menuconfig BSP_USING_SOFT_I2C - bool "Enable SOFT I2C" - - if BSP_USING_SOFT_I2C - config BSP_USING_SOFT_I2C0 - bool "Enable SOFT I2C0" - select RT_USING_I2C - select RT_USING_I2C_BITOPS - default n - - if BSP_USING_SOFT_I2C0 - config BSP_SOFT_I2C0_SCL_PIN - hex "Specify the pin index of SCL of SOFT I2C0" - range 0 0x7F - default 0x18 - - config BSP_SOFT_I2C0_SDA_PIN - hex "Specify the pin index of SDA of SOFT I2C0" - range 0 0x7F - default 0x17 - endif - - config BSP_USING_SOFT_I2C1 - bool "Enable SOFT I2C1" - select RT_USING_I2C - select RT_USING_I2C_BITOPS - default n - - if BSP_USING_SOFT_I2C1 - config BSP_SOFT_I2C1_SCL_PIN - hex "Specify the pin index of SCL of SOFT I2C1" - range 0 0x7F - default 0x0B - - config BSP_SOFT_I2C1_SDA_PIN - hex "Specify the pin index of SDA of SOFT I2C1" - range 0 0x7F - default 0x0A - endif - endif - config BSP_USING_WDT bool "Enable Watchdog Timer(WDT)" select RT_USING_WDT diff --git a/bsp/nuvoton/libraries/nuc980/rtt_port/drv_softi2c.c b/bsp/nuvoton/libraries/nuc980/rtt_port/drv_softi2c.c deleted file mode 100644 index adc62cb4c18..00000000000 --- a/bsp/nuvoton/libraries/nuc980/rtt_port/drv_softi2c.c +++ /dev/null @@ -1,229 +0,0 @@ -/**************************************************************************//** -* -* @copyright (C) 2020 Nuvoton Technology Corp. All rights reserved. -* -* SPDX-License-Identifier: Apache-2.0 -* -* Change Logs: -* Date Author Notes -* 2020-12-12 Wayne First version -* -******************************************************************************/ - -#include - -#if (defined(BSP_USING_SOFT_I2C) && defined(RT_USING_I2C_BITOPS) && defined(RT_USING_I2C) && defined(RT_USING_PIN)) - -#include -#include -#include -#include "NuMicro.h" -#include "drv_sys.h" - -/* Private define ---------------------------------------------------------------*/ -#define LOG_TAG "drv.softi2c" -#define DBG_ENABLE -#define DBG_SECTION_NAME LOG_TAG -#define DBG_LEVEL DBG_INFO -#include - -#ifdef BSP_USING_SOFT_I2C0 -#define NU_SOFT_I2C0_BUS_CONFIG \ - { \ - .scl = BSP_SOFT_I2C0_SCL_PIN, \ - .sda = BSP_SOFT_I2C0_SDA_PIN, \ - .bus_name = "softi2c0", \ - } -#endif - -#ifdef BSP_USING_SOFT_I2C1 -#define NU_SOFT_I2C1_BUS_CONFIG \ - { \ - .scl = BSP_SOFT_I2C1_SCL_PIN, \ - .sda = BSP_SOFT_I2C1_SDA_PIN, \ - .bus_name = "softi2c1", \ - } -#endif - -#if (!defined(BSP_USING_SOFT_I2C0) && !defined(BSP_USING_SOFT_I2C1)) - #error "Please define at least one BSP_USING_SOFT_I2Cx" - /* this driver can be disabled at menuconfig ? RT-Thread Components ? Device Drivers */ -#endif - -/* Private typedef --------------------------------------------------------------*/ -/* soft i2c config class */ -struct nu_soft_i2c_config -{ - rt_uint8_t scl; - rt_uint8_t sda; - const char *bus_name; -}; -/* soft i2c driver class */ -struct nu_soft_i2c -{ - struct rt_i2c_bit_ops ops; - struct rt_i2c_bus_device soft_i2c_bus; -}; - -/* Private functions ------------------------------------------------------------*/ -static void nu_soft_i2c_udelay(rt_uint32_t us); -static void nu_soft_i2c_set_sda(void *data, rt_int32_t state); -static void nu_soft_i2c_set_scl(void *data, rt_int32_t state); -static rt_int32_t nu_soft_i2c_get_sda(void *data); -static rt_int32_t nu_soft_i2c_get_scl(void *data); - -/* Private variables ------------------------------------------------------------*/ -static const struct nu_soft_i2c_config nu_soft_i2c_cfg[] = -{ -#ifdef BSP_USING_SOFT_I2C0 - NU_SOFT_I2C0_BUS_CONFIG, -#endif -#ifdef BSP_USING_SOFT_I2C1 - NU_SOFT_I2C1_BUS_CONFIG, -#endif -}; - -static struct nu_soft_i2c nu_soft_i2c_obj[sizeof(nu_soft_i2c_cfg) / sizeof(nu_soft_i2c_cfg[0])]; - -static const struct rt_i2c_bit_ops nu_soft_i2c_bit_ops = -{ - .data = RT_NULL, - .set_sda = nu_soft_i2c_set_sda, - .set_scl = nu_soft_i2c_set_scl, - .get_sda = nu_soft_i2c_get_sda, - .get_scl = nu_soft_i2c_get_scl, - .udelay = nu_soft_i2c_udelay, - .delay_us = 1, - .timeout = 100 -}; - -/* Functions define ------------------------------------------------------------*/ - -/** - * The time delay function. - * - * @param microseconds. - */ -static void nu_soft_i2c_udelay(rt_uint32_t us) -{ - rt_hw_us_delay(us); -} - -/** - * This function initializes the soft i2c pin. - * - * @param soft i2c config class. - */ -static void nu_soft_i2c_gpio_init(const struct nu_soft_i2c_config *cfg) -{ - 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); -} - -/** - * if i2c is locked, this function will unlock it - * - * @param soft i2c config class - * - * @return RT_EOK indicates successful unlock. - */ -static rt_err_t nu_soft_i2c_bus_unlock(const struct nu_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); - nu_soft_i2c_udelay(100); - rt_pin_write(cfg->scl, PIN_LOW); - nu_soft_i2c_udelay(100); - } - } - if (PIN_LOW == rt_pin_read(cfg->sda)) - { - return -RT_ERROR; - } - - return RT_EOK; -} - -/** - * This function sets the sda pin. - * - * @param soft i2c config class. - * @param The sda pin state. - */ -static void nu_soft_i2c_set_sda(void *data, rt_int32_t state) -{ - struct nu_soft_i2c_config *cfg = (struct nu_soft_i2c_config *)data; - - rt_pin_write(cfg->sda, state ? PIN_HIGH : PIN_LOW); -} - -/** - * This function sets the scl pin. - * - * @param soft i2c config class. - * @param The scl pin state. - */ -static void nu_soft_i2c_set_scl(void *data, rt_int32_t state) -{ - struct nu_soft_i2c_config *cfg = (struct nu_soft_i2c_config *)data; - - rt_pin_write(cfg->scl, state ? PIN_HIGH : PIN_LOW); -} - -/** - * This function gets the sda pin state. - * - * @param The sda pin state. - */ -static rt_int32_t nu_soft_i2c_get_sda(void *data) -{ - struct nu_soft_i2c_config *cfg = (struct nu_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 nu_soft_i2c_get_scl(void *data) -{ - struct nu_soft_i2c_config *cfg = (struct nu_soft_i2c_config *)data; - return rt_pin_read(cfg->scl); -} - -/* Soft I2C initialization function */ -int rt_soft_i2c_init(void) -{ - rt_size_t obj_num = sizeof(nu_soft_i2c_obj) / sizeof(struct nu_soft_i2c); - rt_err_t result; - - for (int i = 0; i < obj_num; i++) - { - nu_soft_i2c_obj[i].ops = nu_soft_i2c_bit_ops; - nu_soft_i2c_obj[i].ops.data = (void *)&nu_soft_i2c_cfg[i]; - nu_soft_i2c_obj[i].soft_i2c_bus.priv = &nu_soft_i2c_obj[i].ops; - nu_soft_i2c_gpio_init(&nu_soft_i2c_cfg[i]); - result = rt_i2c_bit_add_bus(&nu_soft_i2c_obj[i].soft_i2c_bus, nu_soft_i2c_cfg[i].bus_name); - RT_ASSERT(result == RT_EOK); - nu_soft_i2c_bus_unlock(&nu_soft_i2c_cfg[i]); - - LOG_D("software simulation %s init done, pin scl: %d, pin sda %d", - nu_soft_i2c_cfg[i].bus_name, - nu_soft_i2c_cfg[i].scl, - nu_soft_i2c_cfg[i].sda); - } - - return 0; -} -INIT_DEVICE_EXPORT(rt_soft_i2c_init); - -#endif //#if (defined(BSP_USING_SOFT_I2C) && defined(RT_USING_I2C_BITOPS) && defined(RT_USING_I2C) && defined(RT_USING_PIN)) diff --git a/bsp/nuvoton/ma35-rtp/.ci/attachconfig/ci.attachconfig.yml b/bsp/nuvoton/ma35-rtp/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..e7a5f5cf9f9 --- /dev/null +++ b/bsp/nuvoton/ma35-rtp/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,12 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C0=y + - CONFIG_RT_SOFT_I2C0_SCL_PIN=0x19 + - CONFIG_RT_SOFT_I2C0_SDA_PIN=0x18 + - CONFIG_RT_SOFT_I2C0_BUS_NAME="softi2c0" + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=0x0B + - CONFIG_RT_SOFT_I2C1_SDA_PIN=0x0A + - CONFIG_RT_SOFT_I2C1_BUS_NAME="softi2c1" diff --git a/bsp/nuvoton/nk-980iot/.ci/attachconfig/ci.attachconfig.yml b/bsp/nuvoton/nk-980iot/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..bd8c8d9be20 --- /dev/null +++ b/bsp/nuvoton/nk-980iot/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,12 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C0=y + - CONFIG_RT_SOFT_I2C0_SCL_PIN=0x18 + - CONFIG_RT_SOFT_I2C0_SDA_PIN=0x17 + - CONFIG_RT_SOFT_I2C0_BUS_NAME="softi2c0" + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=0x0B + - CONFIG_RT_SOFT_I2C1_SDA_PIN=0x0A + - CONFIG_RT_SOFT_I2C1_BUS_NAME="softi2c1" diff --git a/bsp/nuvoton/nk-n9h30/.ci/attachconfig/ci.attachconfig.yml b/bsp/nuvoton/nk-n9h30/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..bd8c8d9be20 --- /dev/null +++ b/bsp/nuvoton/nk-n9h30/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,12 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C0=y + - CONFIG_RT_SOFT_I2C0_SCL_PIN=0x18 + - CONFIG_RT_SOFT_I2C0_SDA_PIN=0x17 + - CONFIG_RT_SOFT_I2C0_BUS_NAME="softi2c0" + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=0x0B + - CONFIG_RT_SOFT_I2C1_SDA_PIN=0x0A + - CONFIG_RT_SOFT_I2C1_BUS_NAME="softi2c1" diff --git a/bsp/nuvoton/nk-rtu980/.ci/attachconfig/ci.attachconfig.yml b/bsp/nuvoton/nk-rtu980/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..bd8c8d9be20 --- /dev/null +++ b/bsp/nuvoton/nk-rtu980/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,12 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C0=y + - CONFIG_RT_SOFT_I2C0_SCL_PIN=0x18 + - CONFIG_RT_SOFT_I2C0_SDA_PIN=0x17 + - CONFIG_RT_SOFT_I2C0_BUS_NAME="softi2c0" + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=0x0B + - CONFIG_RT_SOFT_I2C1_SDA_PIN=0x0A + - CONFIG_RT_SOFT_I2C1_BUS_NAME="softi2c1" diff --git a/bsp/nuvoton/numaker-hmi-ma35d1/.ci/attachconfig/ci.attachconfig.yml b/bsp/nuvoton/numaker-hmi-ma35d1/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..e7a5f5cf9f9 --- /dev/null +++ b/bsp/nuvoton/numaker-hmi-ma35d1/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,12 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C0=y + - CONFIG_RT_SOFT_I2C0_SCL_PIN=0x19 + - CONFIG_RT_SOFT_I2C0_SDA_PIN=0x18 + - CONFIG_RT_SOFT_I2C0_BUS_NAME="softi2c0" + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=0x0B + - CONFIG_RT_SOFT_I2C1_SDA_PIN=0x0A + - CONFIG_RT_SOFT_I2C1_BUS_NAME="softi2c1" diff --git a/bsp/nuvoton/numaker-iot-m467/.ci/attachconfig/ci.attachconfig.yml b/bsp/nuvoton/numaker-iot-m467/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..bd8c8d9be20 --- /dev/null +++ b/bsp/nuvoton/numaker-iot-m467/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,12 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C0=y + - CONFIG_RT_SOFT_I2C0_SCL_PIN=0x18 + - CONFIG_RT_SOFT_I2C0_SDA_PIN=0x17 + - CONFIG_RT_SOFT_I2C0_BUS_NAME="softi2c0" + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=0x0B + - CONFIG_RT_SOFT_I2C1_SDA_PIN=0x0A + - CONFIG_RT_SOFT_I2C1_BUS_NAME="softi2c1" diff --git a/bsp/nuvoton/numaker-iot-m487/.ci/attachconfig/ci.attachconfig.yml b/bsp/nuvoton/numaker-iot-m487/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..bd8c8d9be20 --- /dev/null +++ b/bsp/nuvoton/numaker-iot-m487/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,12 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C0=y + - CONFIG_RT_SOFT_I2C0_SCL_PIN=0x18 + - CONFIG_RT_SOFT_I2C0_SDA_PIN=0x17 + - CONFIG_RT_SOFT_I2C0_BUS_NAME="softi2c0" + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=0x0B + - CONFIG_RT_SOFT_I2C1_SDA_PIN=0x0A + - CONFIG_RT_SOFT_I2C1_BUS_NAME="softi2c1" diff --git a/bsp/nuvoton/numaker-iot-ma35d1/.ci/attachconfig/ci.attachconfig.yml b/bsp/nuvoton/numaker-iot-ma35d1/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..e7a5f5cf9f9 --- /dev/null +++ b/bsp/nuvoton/numaker-iot-ma35d1/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,12 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C0=y + - CONFIG_RT_SOFT_I2C0_SCL_PIN=0x19 + - CONFIG_RT_SOFT_I2C0_SDA_PIN=0x18 + - CONFIG_RT_SOFT_I2C0_BUS_NAME="softi2c0" + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=0x0B + - CONFIG_RT_SOFT_I2C1_SDA_PIN=0x0A + - CONFIG_RT_SOFT_I2C1_BUS_NAME="softi2c1" diff --git a/bsp/nuvoton/numaker-m032ki/.ci/attachconfig/ci.attachconfig.yml b/bsp/nuvoton/numaker-m032ki/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..bd8c8d9be20 --- /dev/null +++ b/bsp/nuvoton/numaker-m032ki/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,12 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C0=y + - CONFIG_RT_SOFT_I2C0_SCL_PIN=0x18 + - CONFIG_RT_SOFT_I2C0_SDA_PIN=0x17 + - CONFIG_RT_SOFT_I2C0_BUS_NAME="softi2c0" + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=0x0B + - CONFIG_RT_SOFT_I2C1_SDA_PIN=0x0A + - CONFIG_RT_SOFT_I2C1_BUS_NAME="softi2c1" diff --git a/bsp/nuvoton/numaker-m2354/.ci/attachconfig/ci.attachconfig.yml b/bsp/nuvoton/numaker-m2354/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..bd8c8d9be20 --- /dev/null +++ b/bsp/nuvoton/numaker-m2354/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,12 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C0=y + - CONFIG_RT_SOFT_I2C0_SCL_PIN=0x18 + - CONFIG_RT_SOFT_I2C0_SDA_PIN=0x17 + - CONFIG_RT_SOFT_I2C0_BUS_NAME="softi2c0" + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=0x0B + - CONFIG_RT_SOFT_I2C1_SDA_PIN=0x0A + - CONFIG_RT_SOFT_I2C1_BUS_NAME="softi2c1" diff --git a/bsp/nuvoton/numaker-m467hj/.ci/attachconfig/ci.attachconfig.yml b/bsp/nuvoton/numaker-m467hj/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..bd8c8d9be20 --- /dev/null +++ b/bsp/nuvoton/numaker-m467hj/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,12 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C0=y + - CONFIG_RT_SOFT_I2C0_SCL_PIN=0x18 + - CONFIG_RT_SOFT_I2C0_SDA_PIN=0x17 + - CONFIG_RT_SOFT_I2C0_BUS_NAME="softi2c0" + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=0x0B + - CONFIG_RT_SOFT_I2C1_SDA_PIN=0x0A + - CONFIG_RT_SOFT_I2C1_BUS_NAME="softi2c1" diff --git a/bsp/nuvoton/numaker-pfm-m487/.ci/attachconfig/ci.attachconfig.yml b/bsp/nuvoton/numaker-pfm-m487/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..bd8c8d9be20 --- /dev/null +++ b/bsp/nuvoton/numaker-pfm-m487/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,12 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C0=y + - CONFIG_RT_SOFT_I2C0_SCL_PIN=0x18 + - CONFIG_RT_SOFT_I2C0_SDA_PIN=0x17 + - CONFIG_RT_SOFT_I2C0_BUS_NAME="softi2c0" + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=0x0B + - CONFIG_RT_SOFT_I2C1_SDA_PIN=0x0A + - CONFIG_RT_SOFT_I2C1_BUS_NAME="softi2c1" diff --git a/bsp/nxp/lpc/lpc54608-LPCXpresso/drivers/drv_i2c.c b/bsp/nxp/lpc/lpc54608-LPCXpresso/drivers/drv_i2c.c index 9ac4704b462..e1d470b022f 100644 --- a/bsp/nxp/lpc/lpc54608-LPCXpresso/drivers/drv_i2c.c +++ b/bsp/nxp/lpc/lpc54608-LPCXpresso/drivers/drv_i2c.c @@ -12,80 +12,10 @@ #include #include "board.h" #include "fsl_iocon.h" -#include "fsl_gpio.h" #include "fsl_i2c.h" #ifdef RT_USING_I2C -#ifdef RT_USING_I2C_BITOPS - -struct lpc_i2c_bit_data -{ - struct - { - GPIO_Type *base; - uint32_t port; - uint32_t pin; - } scl, sda; -}; - -static void gpio_set_sda(void *data, rt_int32_t state) -{ - struct lpc_i2c_bit_data *bd = data; - - if (state) - { - //bd->sda.base->B[bd->sda.port][bd->sda.pin] = 1; - GPIO_WritePinOutput(bd->sda.base, bd->sda.port, bd->sda.pin, 1); - } - else - { - GPIO_WritePinOutput(bd->sda.base, bd->sda.port, bd->sda.pin, 0); - } -} - -static void gpio_set_scl(void *data, rt_int32_t state) -{ - struct lpc_i2c_bit_data *bd = data; - - if (state) - { - //bd->scl.base->B[bd->sda.port][bd->sda.pin] = 1; - GPIO_WritePinOutput(bd->scl.base, bd->scl.port, bd->scl.pin, 1); - } - else - { - //bd->scl.base->B[bd->sda.port][bd->sda.pin] = 0; - GPIO_WritePinOutput(bd->scl.base, bd->scl.port, bd->scl.pin, 0); - } -} - -static rt_int32_t gpio_get_sda(void *data) -{ - struct lpc_i2c_bit_data *bd = data; - - return GPIO_ReadPinInput(bd->sda.base, bd->sda.port, bd->sda.pin) & 0x01; -} - -static rt_int32_t gpio_get_scl(void *data) -{ - struct lpc_i2c_bit_data *bd = data; - - return GPIO_ReadPinInput(bd->scl.base, bd->scl.port, bd->scl.pin) & 0x01; -} - -static void gpio_udelay(rt_uint32_t us) -{ - volatile rt_int32_t i; - for (; us > 0; us--) - { - i = 10; - while (i--); - } -} - -#else /* RT_USING_I2C_BITOPS */ - #define IOCON_PIO_DIGITAL_EN 0x0100u /*!< Enables digital function */ #define IOCON_PIO_FUNC0 0x00u /*!< Selects pin function 0 */ #define IOCON_PIO_FUNC1 0x01u /*!< Selects pin function 1 */ @@ -205,53 +135,8 @@ static const struct rt_i2c_bus_device_ops i2c_ops = RT_NULL }; -#endif /* RT_USING_I2C_BITOPS */ - int rt_hw_i2c_init(void) { -#ifdef RT_USING_I2C_BITOPS - /* register I2C1: SCL/P0_20 SDA/P0_19 */ - { - static struct rt_i2c_bus_device i2c_device; - - static const struct lpc_i2c_bit_data _i2c_bdata = - { - /* SCL */ {GPIO, 3, 24}, - /* SDA */ {GPIO, 3, 23}, - }; - - static const struct rt_i2c_bit_ops _i2c_bit_ops = - { - (void*)&_i2c_bdata, - gpio_set_sda, - gpio_set_scl, - gpio_get_sda, - gpio_get_scl, - - gpio_udelay, - - 5, - 100 - }; - - gpio_pin_config_t pin_config = { - kGPIO_DigitalOutput, 0, - }; - - CLOCK_EnableClock(kCLOCK_Gpio3); - - /* Enable touch panel controller */ - GPIO_PinInit(GPIO, _i2c_bdata.sda.port, _i2c_bdata.sda.pin, &pin_config); - GPIO_PinInit(GPIO, _i2c_bdata.scl.port, _i2c_bdata.scl.pin, &pin_config); - - GPIO_WritePinOutput(GPIO, _i2c_bdata.sda.port, _i2c_bdata.sda.pin, 1); - GPIO_WritePinOutput(GPIO, _i2c_bdata.scl.port, _i2c_bdata.scl.pin, 1); - - i2c_device.priv = (void *)&_i2c_bit_ops; - rt_i2c_bit_add_bus(&i2c_device, "i2c2"); - } /* register I2C */ - -#else /* RT_USING_I2C_BITOPS */ static struct lpc_i2c_bus lpc_i2c2; /* attach 12 MHz clock to FLEXCOMM2 (I2C master for touch controller) */ @@ -295,8 +180,6 @@ int rt_hw_i2c_init(void) lpc_i2c2.I2C = I2C2; rt_i2c_bus_device_register(&lpc_i2c2.parent, "i2c2"); -#endif /* RT_USING_I2C_BITOPS */ - return 0; } INIT_DEVICE_EXPORT(rt_hw_i2c_init); diff --git a/bsp/nxp/lpc/lpc55sxx/Libraries/drivers/SConscript b/bsp/nxp/lpc/lpc55sxx/Libraries/drivers/SConscript index 772d3452bb4..a921d8d8498 100644 --- a/bsp/nxp/lpc/lpc55sxx/Libraries/drivers/SConscript +++ b/bsp/nxp/lpc/lpc55sxx/Libraries/drivers/SConscript @@ -43,9 +43,6 @@ if GetDepend('BSP_USING_I2S'): if GetDepend('BSP_USING_WM8904'): src += ['drv_sound_wm8904.c'] -if GetDepend('BSP_USING_SOFT_I2C'): - src += ['drv_soft_i2c.c'] - if GetDepend('BSP_USING_SOFT_SPI'): src += ['drv_soft_spi.c'] diff --git a/bsp/nxp/lpc/lpc55sxx/Libraries/drivers/drv_soft_i2c.c b/bsp/nxp/lpc/lpc55sxx/Libraries/drivers/drv_soft_i2c.c deleted file mode 100644 index 9de56d4ffbf..00000000000 --- a/bsp/nxp/lpc/lpc55sxx/Libraries/drivers/drv_soft_i2c.c +++ /dev/null @@ -1,213 +0,0 @@ -/* - * Copyright (c) 2006-2023, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2023-04-11 linshire the first version - */ - -#include "board.h" -#include "drv_soft_i2c.h" - -#ifdef BSP_USING_SOFT_I2C - -#define LOG_TAG "drv.soft_i2c" -#include - -#if !defined(BSP_USING_SOFT_I2C1) && !defined(BSP_USING_SOFT_I2C2) -#error "Please define at least one BSP_USING_SOFT_I2Cx" -/* this driver can be disabled at menuconfig -> RT-Thread Components -> Device Drivers */ -#endif - -static const struct lpc55s69_soft_i2c_config soft_i2c_config[] = -{ -#ifdef BSP_USING_SOFT_I2C1 - SOFT_I2C1_BUS_CONFIG, -#endif -#ifdef BSP_USING_SOFT_I2C2 - SOFT_I2C2_BUS_CONFIG, -#endif -}; - -static struct lpc55s69_i2c i2c_obj[sizeof(soft_i2c_config) / sizeof(soft_i2c_config[0])]; - -/** - * This function initializes the i2c pin. - * - * @param lpc55s69 i2c dirver class. - */ -static void lpc55s69_i2c_gpio_init(struct lpc55s69_i2c *i2c) -{ - struct lpc55s69_soft_i2c_config* cfg = (struct lpc55s69_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); -} - -/** - * This function sets the sda pin. - * - * @param lpc55s69 config class. - * @param The sda pin state. - */ -static void lpc55s69_set_sda(void *data, rt_int32_t state) -{ - struct lpc55s69_soft_i2c_config* cfg = (struct lpc55s69_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 lpc55s69 config class. - * @param The scl pin state. - */ -static void lpc55s69_set_scl(void *data, rt_int32_t state) -{ - struct lpc55s69_soft_i2c_config* cfg = (struct lpc55s69_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 lpc55s69_get_sda(void *data) -{ - struct lpc55s69_soft_i2c_config* cfg = (struct lpc55s69_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 lpc55s69_get_scl(void *data) -{ - struct lpc55s69_soft_i2c_config* cfg = (struct lpc55s69_soft_i2c_config*)data; - return rt_pin_read(cfg->scl); -} -/** - * The time delay function. - * - * @param microseconds. - */ -static void lpc55s69_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 lpc55s69_bit_ops_default = -{ - .data = RT_NULL, - .set_sda = lpc55s69_set_sda, - .set_scl = lpc55s69_set_scl, - .get_sda = lpc55s69_get_sda, - .get_scl = lpc55s69_get_scl, - .udelay = lpc55s69_udelay, - .delay_us = 1, - .timeout = 100 -}; - -/** - * if i2c is locked, this function will unlock it - * - * @param lpc55s69 config class - * - * @return RT_EOK indicates successful unlock. - */ -static rt_err_t lpc55s69_i2c_bus_unlock(const struct lpc55s69_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); - lpc55s69_udelay(100); - rt_pin_write(cfg->scl, PIN_LOW); - lpc55s69_udelay(100); - } - } - if (PIN_LOW == rt_pin_read(cfg->sda)) - { - return -RT_ERROR; - } - - return RT_EOK; -} - -/* I2C initialization function */ -int rt_soft_i2c_init(void) -{ - rt_err_t result; - - for (rt_size_t i = 0; i < sizeof(i2c_obj) / sizeof(struct lpc55s69_i2c); i++) - { - i2c_obj[i].ops = lpc55s69_bit_ops_default; - i2c_obj[i].ops.data = (void*)&soft_i2c_config[i]; - i2c_obj[i].i2c_bus.priv = &i2c_obj[i].ops; - lpc55s69_i2c_gpio_init(&i2c_obj[i]); - result = rt_i2c_bit_add_bus(&i2c_obj[i].i2c_bus, soft_i2c_config[i].bus_name); - RT_ASSERT(result == RT_EOK); - lpc55s69_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_soft_i2c_init); - -#endif /* BSP_USING_SOFT_I2C */ diff --git a/bsp/nxp/lpc/lpc55sxx/Libraries/drivers/drv_soft_i2c.h b/bsp/nxp/lpc/lpc55sxx/Libraries/drivers/drv_soft_i2c.h deleted file mode 100644 index 41fd652490e..00000000000 --- a/bsp/nxp/lpc/lpc55sxx/Libraries/drivers/drv_soft_i2c.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (c) 2006-2023, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2023-04-11 linshrie first version - */ - -#ifndef __DRV_I2C__ -#define __DRV_I2C__ - -#include - -/* lpc55s69 config class */ -struct lpc55s69_soft_i2c_config -{ - rt_uint8_t scl; - rt_uint8_t sda; - const char *bus_name; -}; -/* lpc55s69 i2c dirver class */ -struct lpc55s69_i2c -{ - struct rt_i2c_bit_ops ops; - struct rt_i2c_bus_device i2c_bus; -}; - -#ifdef BSP_USING_SOFT_I2C1 -#define SOFT_I2C1_BUS_CONFIG \ - { \ - .scl = BSP_SOFT_I2C1_SCL_PIN, \ - .sda = BSP_SOFT_I2C1_SDA_PIN, \ - .bus_name = "si2c1", \ - } -#endif /*BSP_USING_SOFT_I2C1*/ - -#ifdef BSP_USING_SOFT_I2C2 -#define SOFT_I2C2_BUS_CONFIG \ - { \ - .scl = BSP_SOFT_I2C2_SCL_PIN, \ - .sda = BSP_SOFT_I2C2_SDA_PIN, \ - .bus_name = "si2c2", \ - } -#endif /*BSP_USING_SOFT_I2C2*/ - -int rt_soft_i2c_init(void); - -#endif diff --git a/bsp/nxp/lpc/lpc55sxx/lpc55s69_nxp_evk/.ci/attachconfig/ci.attachconfig.yml b/bsp/nxp/lpc/lpc55sxx/lpc55s69_nxp_evk/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..82553a73b17 --- /dev/null +++ b/bsp/nxp/lpc/lpc55sxx/lpc55s69_nxp_evk/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,12 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=16 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=41 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="si2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=19 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=43 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="si2c2" diff --git a/bsp/nxp/lpc/lpc55sxx/lpc55s69_nxp_evk/board/Kconfig b/bsp/nxp/lpc/lpc55sxx/lpc55s69_nxp_evk/board/Kconfig index 10269eb496b..ea25d91e422 100644 --- a/bsp/nxp/lpc/lpc55sxx/lpc55s69_nxp_evk/board/Kconfig +++ b/bsp/nxp/lpc/lpc55sxx/lpc55s69_nxp_evk/board/Kconfig @@ -117,43 +117,6 @@ menu "On-chip Peripheral Drivers" 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_I2C1 - bool "Enable I2C1 Bus (software simulation)" - default n - if BSP_USING_SOFT_I2C1 - comment "Notice: num = 32 * PORTx + PINx + 1" - comment "0_15 --> 16; 1_8 --> 41" - config BSP_SOFT_I2C1_SCL_PIN - int "si2c1 SCL pin number" - default 16 - config BSP_SOFT_I2C1_SDA_PIN - int "si2c1 SDA pin number" - default 41 - endif - - config BSP_USING_SOFT_I2C2 - bool "Enable I2C2 Bus (software simulation)" - default n - if BSP_USING_SOFT_I2C2 - comment "Notice: num = 32 * PORTx + PINx + 1" - comment "0_18 --> 19; 1_10 --> 43" - config BSP_SOFT_I2C2_SCL_PIN - int "si2c2 SCL pin number" - default 19 - config BSP_SOFT_I2C2_SDA_PIN - int "si2c2 SDA pin number" - default 43 - endif - endif - menuconfig BSP_USING_SPI config BSP_USING_SPI bool "Enable SPI" diff --git a/bsp/nxp/mcx/mcxc/Libraries/drivers/SConscript b/bsp/nxp/mcx/mcxc/Libraries/drivers/SConscript index 56456e2fec7..34b64cb75dc 100644 --- a/bsp/nxp/mcx/mcxc/Libraries/drivers/SConscript +++ b/bsp/nxp/mcx/mcxc/Libraries/drivers/SConscript @@ -19,9 +19,6 @@ if GetDepend('BSP_USING_SPI'): if GetDepend('BSP_USING_I2C'): src += ['drv_i2c.c'] -if GetDepend('BSP_USING_SW_I2C'): - src += ['drv_soft_i2c.c'] - if GetDepend('BSP_USING_ADC'): src += ['drv_adc.c'] diff --git a/bsp/nxp/mcx/mcxn/Libraries/drivers/SConscript b/bsp/nxp/mcx/mcxn/Libraries/drivers/SConscript index 1dee3db3560..d5144b227d2 100644 --- a/bsp/nxp/mcx/mcxn/Libraries/drivers/SConscript +++ b/bsp/nxp/mcx/mcxn/Libraries/drivers/SConscript @@ -22,9 +22,6 @@ if GetDepend('BSP_USING_SDIO'): if GetDepend('BSP_USING_I2C'): src += ['drv_i2c.c'] -if GetDepend('BSP_USING_SW_I2C'): - src += ['drv_soft_i2c.c'] - if GetDepend('BSP_USING_ADC'): src += ['drv_adc.c'] diff --git a/bsp/nxp/mcx/mcxn/Libraries/drivers/drv_soft_i2c.c b/bsp/nxp/mcx/mcxn/Libraries/drivers/drv_soft_i2c.c deleted file mode 100644 index 5190ee4a594..00000000000 --- a/bsp/nxp/mcx/mcxn/Libraries/drivers/drv_soft_i2c.c +++ /dev/null @@ -1,228 +0,0 @@ -/* - * Copyright (c) 2006-2024 RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2024-06-25 Andeyqi the first version - */ -#include -#include -#include -#include - -#ifdef BSP_USING_SW_I2C - -#define LOG_TAG "drv.i2c" -#include - -/* MCXNXXX config class */ -struct mcxnxxx_soft_i2c_config -{ - rt_uint8_t scl; - rt_uint8_t sda; - const char *bus_name; -}; - -/* MCXNXXX i2c dirver class */ -struct mcxnxxx_i2c -{ - struct rt_i2c_bit_ops ops; - struct rt_i2c_bus_device i2c2_bus; -}; - -#if defined(BSP_USING_SW_I2C0) -#define SW_I2C0_BUS_CONFIG \ - { \ - .scl = BSP_SW_I2C0_SCL_PIN, \ - .sda = BSP_SW_I2C0_SDA_PIN, \ - .bus_name = "swi2c0", \ - } -#endif - -static const struct mcxnxxx_soft_i2c_config soft_i2c_config[] = -{ -#if defined(BSP_USING_SW_I2C0) - SW_I2C0_BUS_CONFIG, -#endif -}; - -static struct mcxnxxx_i2c i2c_obj[sizeof(soft_i2c_config) / sizeof(soft_i2c_config[0])]; - -/** - * @brief This function initializes the i2c pin. - * @param i2c - * @retval None - */ -static void mcxnxxx_i2c_gpio_init(struct mcxnxxx_i2c *i2c) -{ - struct mcxnxxx_soft_i2c_config* cfg = (struct mcxnxxx_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); -} - -/** - * @brief This function sets the sda pin. - * @param data, state - * @retval None - */ -static void mcxnxxx_set_sda(void *data, rt_int32_t state) -{ - struct mcxnxxx_soft_i2c_config* cfg = (struct mcxnxxx_soft_i2c_config*)data; - - rt_pin_mode(cfg->sda, PIN_MODE_OUTPUT_OD); - - if (state) - { - rt_pin_write(cfg->sda, PIN_HIGH); - } - else - { - rt_pin_write(cfg->sda, PIN_LOW); - } -} - -/** - * @brief This function sets the scl pin. - * @param data, state - * @retval None - */ -static void mcxnxxx_set_scl(void *data, rt_int32_t state) -{ - struct mcxnxxx_soft_i2c_config* cfg = (struct mcxnxxx_soft_i2c_config*)data; - - rt_pin_mode(cfg->scl, PIN_MODE_OUTPUT_OD); - - if (state) - { - rt_pin_write(cfg->scl, PIN_HIGH); - } - else - { - rt_pin_write(cfg->scl, PIN_LOW); - } -} - -/** - * @brief This function gets the sda pin state. - * @param data - * @retval None - */ -static rt_int32_t mcxnxxx_get_sda(void *data) -{ - struct mcxnxxx_soft_i2c_config* cfg = (struct mcxnxxx_soft_i2c_config*)data; - - rt_pin_mode(cfg->sda, PIN_MODE_INPUT); - - return rt_pin_read(cfg->sda); -} - - -/** - * @brief This function gets the scl pin state. - * @param data - * @retval None - */ -static rt_int32_t mcxnxxx_get_scl(void *data) -{ - struct mcxnxxx_soft_i2c_config* cfg = (struct mcxnxxx_soft_i2c_config*)data; - - rt_pin_mode(cfg->scl,PIN_MODE_INPUT); - - return rt_pin_read(cfg->scl); -} - -/** - * @brief The time delay function. - * @param us - * @retval None - */ -static void mcxnxxx_udelay(rt_uint32_t us) -{ - rt_uint32_t frequency = CLOCK_GetCoreSysClkFreq(); - - int i = (frequency/ 4000000 * us); - while(i) - { - i--; - } -} - -static const struct rt_i2c_bit_ops mcxnxxx_bit_ops_default = -{ - .data = RT_NULL, - .set_sda = mcxnxxx_set_sda, - .set_scl = mcxnxxx_set_scl, - .get_sda = mcxnxxx_get_sda, - .get_scl = mcxnxxx_get_scl, - .udelay = mcxnxxx_udelay, - .delay_us = 1, - .timeout = 100 -}; - -/** - * @brief if i2c is locked, this function will unlock it - * @param cfg - * @retval RT_EOK indicates successful unlock. - */ -static rt_err_t mcxnxxx_i2c_bus_unlock(const struct mcxnxxx_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); - mcxnxxx_udelay(100); - rt_pin_write(cfg->scl, PIN_LOW); - mcxnxxx_udelay(100); - } - } - if (PIN_LOW == rt_pin_read(cfg->sda)) - { - return -RT_ERROR; - } - - return RT_EOK; -} - -/** - * @brief I2C initialization function - * @param None - * @retval RT_EOK indicates successful initialization. - */ -int rt_hw_soft_i2c_init(void) -{ - rt_size_t obj_num = sizeof(i2c_obj) / sizeof(struct mcxnxxx_i2c); - rt_err_t result; - - for (int i = 0; i < obj_num; i++) - { - i2c_obj[i].ops = mcxnxxx_bit_ops_default; - i2c_obj[i].ops.data = (void*)&soft_i2c_config[i]; - i2c_obj[i].i2c2_bus.priv = &i2c_obj[i].ops; - mcxnxxx_i2c_gpio_init(&i2c_obj[i]); - - result = rt_i2c_bit_add_bus(&i2c_obj[i].i2c2_bus, soft_i2c_config[i].bus_name); - - RT_ASSERT(result == RT_EOK); - - mcxnxxx_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_APP_EXPORT(rt_hw_soft_i2c_init); - -#endif /* RT_USING_I2C */ diff --git a/bsp/nxp/mcx/mcxn/frdm-mcxn236/.ci/attachconfig/ci.attachconfig.yml b/bsp/nxp/mcx/mcxn/frdm-mcxn236/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..e74cbea5fda --- /dev/null +++ b/bsp/nxp/mcx/mcxn/frdm-mcxn236/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,8 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C0=y + - CONFIG_RT_SOFT_I2C0_SCL_PIN=129 + - CONFIG_RT_SOFT_I2C0_SDA_PIN=128 + - CONFIG_RT_SOFT_I2C0_BUS_NAME="swi2c0" diff --git a/bsp/nxp/mcx/mcxn/frdm-mcxn236/board/Kconfig b/bsp/nxp/mcx/mcxn/frdm-mcxn236/board/Kconfig index 95d456e6256..54fd1771353 100644 --- a/bsp/nxp/mcx/mcxn/frdm-mcxn236/board/Kconfig +++ b/bsp/nxp/mcx/mcxn/frdm-mcxn236/board/Kconfig @@ -66,28 +66,6 @@ menu "On-chip Peripheral Drivers" default y endif - menuconfig BSP_USING_SW_I2C - bool "Enable I2C BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_SW_I2C - config BSP_USING_SW_I2C0 - bool "Enable soft I2C0" - default y - if BSP_USING_SW_I2C0 - config BSP_SW_I2C0_SCL_PIN - int "SWI2C0 scl pin number" - range 0 159 - default 129 - config BSP_SW_I2C0_SDA_PIN - int "SWI2C0 sda pin number" - range 0 159 - default 128 - endif - endif - menuconfig BSP_USING_SPI config BSP_USING_SPI bool "Enable SPI" diff --git a/bsp/raspberry-pico/Drivers/SConscript b/bsp/raspberry-pico/Drivers/SConscript index 5afbe70b28d..20d95d2b149 100644 --- a/bsp/raspberry-pico/Drivers/SConscript +++ b/bsp/raspberry-pico/Drivers/SConscript @@ -10,9 +10,6 @@ if GetDepend('BSP_USING_PIN'): if GetDepend('BSP_USING_UART'): src += ['drv_uart.c'] -if GetDepend('BSP_USING_SOFT_I2C'): - src += ['drv_soft_i2c.c'] - if GetDepend('BSP_USING_SOFT_SPI'): src += ['drv_soft_spi.c'] diff --git a/bsp/raspberry-pico/Drivers/drv_soft_i2c.c b/bsp/raspberry-pico/Drivers/drv_soft_i2c.c deleted file mode 100644 index bbda17c61c5..00000000000 --- a/bsp/raspberry-pico/Drivers/drv_soft_i2c.c +++ /dev/null @@ -1,189 +0,0 @@ -/* - * Copyright (c) 2006-2023, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2023/06/01 chushicheng first version - */ -#include "drv_soft_i2c.h" - -#ifdef BSP_USING_SOFT_I2C -#define DBG_LEVEL DBG_LOG -#include -#define LOG_TAG "DRV.I2C" - -static const struct pico_soft_i2c_config soft_i2c_config[] = -{ -#ifdef BSP_USING_SOFT_I2C1 - I2C1_BUS_CONFIG, -#endif -}; - -static struct pico_i2c i2c_obj[sizeof(soft_i2c_config) / sizeof(soft_i2c_config[0])]; - -/** - * This function initializes the i2c pin. - * - * @param pico i2c dirver class. - */ -static void pico_i2c_gpio_init(struct pico_i2c *i2c) -{ - struct pico_soft_i2c_config* cfg = (struct pico_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 pico_i2c_pin_init(void) -{ - rt_size_t obj_num = sizeof(i2c_obj) / sizeof(struct pico_i2c); - - for(rt_size_t i = 0; i < obj_num; i++) - { - pico_i2c_gpio_init(&i2c_obj[i]); - } -} - -/** - * This function sets the sda pin. - * - * @param pico config class. - * @param The sda pin state. - */ -static void pico_set_sda(void *data, rt_int32_t state) -{ - struct pico_soft_i2c_config* cfg = (struct pico_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 pico config class. - * @param The scl pin state. - */ -static void pico_set_scl(void *data, rt_int32_t state) -{ - struct pico_soft_i2c_config* cfg = (struct pico_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 pico_get_sda(void *data) -{ - struct pico_soft_i2c_config* cfg = (struct pico_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 pico_get_scl(void *data) -{ - struct pico_soft_i2c_config* cfg = (struct pico_soft_i2c_config*)data; - return rt_pin_read(cfg->scl); -} - -/** - * The time delay function. - * - * @param microseconds. - */ -static void pico_udelay(rt_uint32_t us) -{ - busy_wait_us_32(us); -} - -static const struct rt_i2c_bit_ops pico_bit_ops_default = -{ - .data = RT_NULL, - .pin_init = pico_i2c_pin_init, - .set_sda = pico_set_sda, - .set_scl = pico_set_scl, - .get_sda = pico_get_sda, - .get_scl = pico_get_scl, - .udelay = pico_udelay, - .delay_us = 1, - .timeout = 100, - .i2c_pin_init_flag = RT_FALSE -}; - -/** - * if i2c is locked, this function will unlock it - * - * @param pico config class - * - * @return RT_EOK indicates successful unlock. - */ -static rt_err_t pico_i2c_bus_unlock(const struct pico_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); - pico_udelay(100); - rt_pin_write(cfg->scl, PIN_LOW); - pico_udelay(100); - } - } - if (PIN_LOW == rt_pin_read(cfg->sda)) - { - return -RT_ERROR; - } - - return RT_EOK; -} - -/* I2C initialization function */ -int rt_soft_i2c_init(void) -{ - rt_err_t result; - - for (rt_size_t i = 0; i < sizeof(i2c_obj) / sizeof(struct pico_i2c); i++) - { - i2c_obj[i].ops = pico_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); - pico_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_DEVICE_EXPORT(rt_soft_i2c_init); - -#endif /* BSP_USING_SOFT_I2C */ diff --git a/bsp/raspberry-pico/Drivers/drv_soft_i2c.h b/bsp/raspberry-pico/Drivers/drv_soft_i2c.h deleted file mode 100644 index b5e663b673e..00000000000 --- a/bsp/raspberry-pico/Drivers/drv_soft_i2c.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (c) 2006-2023, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2023/06/01 chushicheng first version - */ - -#ifndef __DRV_SOFT_I2C__ -#define __DRV_SOFT_I2C__ - -#include -#include "drv_gpio.h" -#include "board.h" - -#ifdef BSP_USING_SOFT_I2C -/* pico i2c dirver class */ -struct pico_i2c -{ - struct rt_i2c_bit_ops ops; - struct rt_i2c_bus_device i2c_bus; -}; - -/* pico config class */ -struct pico_soft_i2c_config -{ - rt_uint8_t scl; - rt_uint8_t sda; - const char *bus_name; -}; - -#ifdef BSP_USING_SOFT_I2C1 -#define I2C1_BUS_CONFIG \ - { \ - .scl = BSP_SOFT_I2C1_SCL_PIN, \ - .sda = BSP_SOFT_I2C1_SDA_PIN, \ - .bus_name = "i2c1", \ - } -#endif - -int rt_soft_i2c_init(void); - -#endif /* BSP_USING_SOFT_I2C */ -#endif diff --git a/bsp/raspberry-pico/RP2040/.ci/attachconfig/ci.attachconfig.yml b/bsp/raspberry-pico/RP2040/.ci/attachconfig/ci.attachconfig.yml index e1aa367595c..89aed8b0146 100644 --- a/bsp/raspberry-pico/RP2040/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/raspberry-pico/RP2040/.ci/attachconfig/ci.attachconfig.yml @@ -6,7 +6,6 @@ component.cplusplus: <<: *scons kconfig: - CONFIG_RT_USING_CPLUSPLUS=y -# ------ online-packages CI ------ online-packages.rtduino.core: <<: *scons kconfig: @@ -224,4 +223,14 @@ online-packages.multimedia.lvgl-demo: <<: *scons kconfig: - CONFIG_BSP_USING_LVGL=y - - CONFIG_BSP_USING_LVGL_DEMO=y \ No newline at end of file + - CONFIG_BSP_USING_LVGL_DEMO=y + +devices.soft_i2c: + <<: *scons + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=2 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=3 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/raspberry-pico/RP2040/board/Kconfig b/bsp/raspberry-pico/RP2040/board/Kconfig index b1b70a9a389..1929746e1f4 100644 --- a/bsp/raspberry-pico/RP2040/board/Kconfig +++ b/bsp/raspberry-pico/RP2040/board/Kconfig @@ -128,28 +128,6 @@ menu "On-chip Peripheral Drivers" endif endif - menuconfig BSP_USING_SOFT_I2C - bool "Enable I2C BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_SOFT_I2C - config BSP_USING_SOFT_I2C1 - bool "Enable I2C1 Bus (software simulation)" - default n - if BSP_USING_SOFT_I2C1 - config BSP_SOFT_I2C1_SCL_PIN - int "i2c1 scl pin number (GP)" - range 0 28 - default 2 - config BSP_SOFT_I2C1_SDA_PIN - int "I2C1 sda pin number (GP)" - range 0 28 - default 3 - endif - endif - menuconfig BSP_USING_SOFT_SPI bool "Enable soft SPI BUS" default n @@ -684,7 +662,6 @@ menu "On-chip Peripheral Drivers" menuconfig BSP_USING_I2C bool "Enable I2C" select RT_USING_I2C - select RT_USING_I2C_BITOPS select RT_USING_PIN default n diff --git a/bsp/raspberry-pico/RP2350/.ci/attachconfig/ci.attachconfig.yml b/bsp/raspberry-pico/RP2350/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..42988723320 --- /dev/null +++ b/bsp/raspberry-pico/RP2350/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,8 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=2 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=3 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/raspberry-pico/RP2350/board/Kconfig b/bsp/raspberry-pico/RP2350/board/Kconfig index b1b70a9a389..1929746e1f4 100644 --- a/bsp/raspberry-pico/RP2350/board/Kconfig +++ b/bsp/raspberry-pico/RP2350/board/Kconfig @@ -128,28 +128,6 @@ menu "On-chip Peripheral Drivers" endif endif - menuconfig BSP_USING_SOFT_I2C - bool "Enable I2C BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_SOFT_I2C - config BSP_USING_SOFT_I2C1 - bool "Enable I2C1 Bus (software simulation)" - default n - if BSP_USING_SOFT_I2C1 - config BSP_SOFT_I2C1_SCL_PIN - int "i2c1 scl pin number (GP)" - range 0 28 - default 2 - config BSP_SOFT_I2C1_SDA_PIN - int "I2C1 sda pin number (GP)" - range 0 28 - default 3 - endif - endif - menuconfig BSP_USING_SOFT_SPI bool "Enable soft SPI BUS" default n @@ -684,7 +662,6 @@ menu "On-chip Peripheral Drivers" menuconfig BSP_USING_I2C bool "Enable I2C" select RT_USING_I2C - select RT_USING_I2C_BITOPS select RT_USING_PIN default n diff --git a/bsp/renesas/ra6m3-hmi-board/.ci/attachconfig/attachconfig.yml b/bsp/renesas/ra6m3-hmi-board/.ci/attachconfig/attachconfig.yml index 6844a3c3e04..2e533fefb9c 100644 --- a/bsp/renesas/ra6m3-hmi-board/.ci/attachconfig/attachconfig.yml +++ b/bsp/renesas/ra6m3-hmi-board/.ci/attachconfig/attachconfig.yml @@ -14,8 +14,16 @@ devices.gpio: 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 + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C0=y + - CONFIG_RT_SOFT_I2C0_SCL_PIN=0x202 + - CONFIG_RT_SOFT_I2C0_SDA_PIN=0x203 + - CONFIG_RT_SOFT_I2C0_BUS_NAME="swi2c0" + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=0x202 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=0x203 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/renesas/ra6m3-hmi-board/board/Kconfig b/bsp/renesas/ra6m3-hmi-board/board/Kconfig index 49d678eac75..1c29fc4ffcf 100644 --- a/bsp/renesas/ra6m3-hmi-board/board/Kconfig +++ b/bsp/renesas/ra6m3-hmi-board/board/Kconfig @@ -218,68 +218,6 @@ menu "Hardware Drivers Config" 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" default n diff --git a/bsp/renesas/ra8p1-titan-board/.ci/attachconfig/attachconfig.yml b/bsp/renesas/ra8p1-titan-board/.ci/attachconfig/attachconfig.yml index 3e6cf30168e..8ae30fa3a2e 100644 --- a/bsp/renesas/ra8p1-titan-board/.ci/attachconfig/attachconfig.yml +++ b/bsp/renesas/ra8p1-titan-board/.ci/attachconfig/attachconfig.yml @@ -38,3 +38,12 @@ devices.ethernet: devices.rtc: kconfig: - CONFIG_BSP_USING_ONCHIP_RTC=y + +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=0x050C + - CONFIG_RT_SOFT_I2C1_SDA_PIN=0x050B + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/renesas/ra8p1-titan-board/board/Kconfig b/bsp/renesas/ra8p1-titan-board/board/Kconfig index 7d1e754f491..9eb7d48c45b 100644 --- a/bsp/renesas/ra8p1-titan-board/board/Kconfig +++ b/bsp/renesas/ra8p1-titan-board/board/Kconfig @@ -585,29 +585,6 @@ menu "Hardware Drivers Config" default n 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 - 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 0x050C - config BSP_I2C1_SDA_PIN - hex "i2c1 sda pin number (hex)" - range 0x0000 0xFFFF - default 0x050B - endif - endif - menuconfig BSP_USING_SDHI bool "Enable SDHI" default n @@ -750,8 +727,8 @@ menu "Hardware Drivers Config" bool "Enable ceu camera driver" default n select RT_USING_I2C - select BSP_USING_I2C - select BSP_USING_I2C1 + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C1 if BSP_USING_CEU_CAMERA menu "Camera Pins Configure" diff --git a/bsp/renesas/rzn2l_etherkit/.ci/attachconfig/ci.attachconfig.yml b/bsp/renesas/rzn2l_etherkit/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..8e4f07c856e --- /dev/null +++ b/bsp/renesas/rzn2l_etherkit/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,8 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=0x0B03 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=0x050E + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/renesas/rzn2l_etherkit/board/Kconfig b/bsp/renesas/rzn2l_etherkit/board/Kconfig index e4cff331160..dde8cdd7792 100644 --- a/bsp/renesas/rzn2l_etherkit/board/Kconfig +++ b/bsp/renesas/rzn2l_etherkit/board/Kconfig @@ -445,7 +445,6 @@ menu "Hardware Drivers Config" bool "Enable I2C BUS" default n select RT_USING_I2C - select RT_USING_I2C_BITOPS select RT_USING_PIN if BSP_USING_I2C config BSP_USING_HW_I2C @@ -461,23 +460,7 @@ menu "Hardware Drivers Config" bool "Enable Hardware I2C1 BUS" default n endif - if !BSP_USING_HW_I2C - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default y - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - hex "i2c1 scl pin number" - range 0x0000 0x0B0F - default 0x0B03 - config BSP_I2C1_SDA_PIN - hex "I2C1 sda pin number" - range 0x0000 0x0B0F - default 0x050E - endif - endif endif - menuconfig BSP_USING_SPI bool "Enable SPI BUS" default n diff --git a/bsp/renesas/rzn2l_rsk/.ci/attachconfig/ci.attachconfig.yml b/bsp/renesas/rzn2l_rsk/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..8e4f07c856e --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,8 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=0x0B03 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=0x050E + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/renesas/rzn2l_rsk/board/Kconfig b/bsp/renesas/rzn2l_rsk/board/Kconfig index 9060c7c18dc..93f5dd9d4c9 100644 --- a/bsp/renesas/rzn2l_rsk/board/Kconfig +++ b/bsp/renesas/rzn2l_rsk/board/Kconfig @@ -84,7 +84,6 @@ menu "Hardware Drivers Config" bool "Enable I2C BUS" default n select RT_USING_I2C - select RT_USING_I2C_BITOPS select RT_USING_PIN if BSP_USING_I2C config BSP_USING_HW_I2C @@ -100,23 +99,7 @@ menu "Hardware Drivers Config" bool "Enable Hardware I2C1 BUS" default n endif - if !BSP_USING_HW_I2C - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default y - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - hex "i2c1 scl pin number" - range 0x0000 0x0B0F - default 0x0B03 - config BSP_I2C1_SDA_PIN - hex "I2C1 sda pin number" - range 0x0000 0x0B0F - default 0x050E - endif - endif endif - menuconfig BSP_USING_SPI bool "Enable SPI BUS" default n diff --git a/bsp/stm32/libraries/HAL_Drivers/drivers/SConscript b/bsp/stm32/libraries/HAL_Drivers/drivers/SConscript index 9c5ab5c4aee..37f52c2c8b2 100644 --- a/bsp/stm32/libraries/HAL_Drivers/drivers/SConscript +++ b/bsp/stm32/libraries/HAL_Drivers/drivers/SConscript @@ -35,10 +35,6 @@ if GetDepend(['RT_USING_QSPI']): if GetDepend('RT_USING_SOFT_SPI'): src += ['drv_soft_spi.c'] -if GetDepend(['RT_USING_I2C', 'RT_USING_I2C_BITOPS']): - if GetDepend('BSP_USING_I2C1') or GetDepend('BSP_USING_I2C2') or GetDepend('BSP_USING_I2C3') or GetDepend('BSP_USING_I2C4'): - src += ['drv_soft_i2c.c'] - if GetDepend(['RT_USING_I2C']): if GetDepend('BSP_USING_HARD_I2C1') or GetDepend('BSP_USING_HARD_I2C2') or GetDepend('BSP_USING_HARD_I2C3') or GetDepend('BSP_USING_HARD_I2C4'): src += ['drv_hard_i2c.c'] diff --git a/bsp/stm32/libraries/HAL_Drivers/drivers/drv_soft_i2c.c b/bsp/stm32/libraries/HAL_Drivers/drivers/drv_soft_i2c.c deleted file mode 100644 index 37ffde2d40b..00000000000 --- a/bsp/stm32/libraries/HAL_Drivers/drivers/drv_soft_i2c.c +++ /dev/null @@ -1,196 +0,0 @@ -/* - * Copyright (c) 2006-2023, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2018-11-08 balanceTWK first version - * 2023-06-27 Meco Man replace stm32_udelay as rt_hw_us_delay - */ - -#include "drv_soft_i2c.h" -#include "drv_config.h" - -#if defined(BSP_USING_I2C1) || defined(BSP_USING_I2C2) || defined(BSP_USING_I2C3) || defined(BSP_USING_I2C4) || defined(BSP_USING_I2C5) - - -//#define DRV_DEBUG -#define LOG_TAG "drv.i2c.sw" -#include - -static const struct stm32_soft_i2c_config soft_i2c_config[] = -{ -#ifdef BSP_USING_I2C1 - I2C1_BUS_CONFIG, -#endif -#ifdef BSP_USING_I2C2 - I2C2_BUS_CONFIG, -#endif -#ifdef BSP_USING_I2C3 - I2C3_BUS_CONFIG, -#endif -#ifdef BSP_USING_I2C4 - I2C4_BUS_CONFIG, -#endif -#ifdef BSP_USING_I2C5 - I2C5_BUS_CONFIG, -#endif -}; - -static struct stm32_i2c i2c_obj[sizeof(soft_i2c_config) / sizeof(soft_i2c_config[0])]; - -/** - * This function initializes the i2c pin. - * - * @param Stm32 i2c dirver class. - */ -static void stm32_i2c_gpio_init(struct stm32_i2c *i2c) -{ - struct stm32_soft_i2c_config* cfg = (struct stm32_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 stm32_i2c_pin_init(void) -{ - rt_size_t obj_num = sizeof(i2c_obj) / sizeof(struct stm32_i2c); - - for(rt_size_t i = 0; i < obj_num; i++) - { - stm32_i2c_gpio_init(&i2c_obj[i]); - } -} - -/** - * This function sets the sda pin. - * - * @param Stm32 config class. - * @param The sda pin state. - */ -static void stm32_set_sda(void *data, rt_int32_t state) -{ - struct stm32_soft_i2c_config* cfg = (struct stm32_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 Stm32 config class. - * @param The scl pin state. - */ -static void stm32_set_scl(void *data, rt_int32_t state) -{ - struct stm32_soft_i2c_config* cfg = (struct stm32_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 stm32_get_sda(void *data) -{ - struct stm32_soft_i2c_config* cfg = (struct stm32_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 stm32_get_scl(void *data) -{ - struct stm32_soft_i2c_config* cfg = (struct stm32_soft_i2c_config*)data; - return rt_pin_read(cfg->scl); -} - -static const struct rt_i2c_bit_ops stm32_bit_ops_default = -{ - .data = RT_NULL, - .pin_init = stm32_i2c_pin_init, - .set_sda = stm32_set_sda, - .set_scl = stm32_set_scl, - .get_sda = stm32_get_sda, - .get_scl = stm32_get_scl, - .udelay = rt_hw_us_delay, - .delay_us = 1, - .timeout = 100, - .i2c_pin_init_flag = RT_FALSE -}; - -/** - * if i2c is locked, this function will unlock it - * - * @param stm32 config class - * - * @return RT_EOK indicates successful unlock. - */ -static rt_err_t stm32_i2c_bus_unlock(const struct stm32_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); - rt_hw_us_delay(100); - rt_pin_write(cfg->scl, PIN_LOW); - rt_hw_us_delay(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_err_t result; - - for (rt_size_t i = 0; i < sizeof(i2c_obj) / sizeof(struct stm32_i2c); i++) - { - i2c_obj[i].ops = stm32_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); - stm32_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 /* defined(BSP_USING_I2C1) || defined(BSP_USING_I2C2) || defined(BSP_USING_I2C3) || defined(BSP_USING_I2C4) */ diff --git a/bsp/stm32/libraries/HAL_Drivers/drivers/drv_soft_i2c.h b/bsp/stm32/libraries/HAL_Drivers/drivers/drv_soft_i2c.h deleted file mode 100644 index 40c77f566dd..00000000000 --- a/bsp/stm32/libraries/HAL_Drivers/drivers/drv_soft_i2c.h +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright (c) 2006-2023, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2018-11-08 balanceTWK first version - */ - -#ifndef __DRV_I2C__ -#define __DRV_I2C__ - -#include -#include -#include - -/* stm32 config class */ -struct stm32_soft_i2c_config -{ - rt_uint8_t scl; - rt_uint8_t sda; - const char *bus_name; -}; -/* stm32 i2c dirver class */ -struct stm32_i2c -{ - struct rt_i2c_bit_ops ops; - struct rt_i2c_bus_device i2c_bus; -}; - -#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 - -#ifdef BSP_USING_I2C3 -#define I2C3_BUS_CONFIG \ - { \ - .scl = BSP_I2C3_SCL_PIN, \ - .sda = BSP_I2C3_SDA_PIN, \ - .bus_name = "i2c3", \ - } -#endif - -#ifdef BSP_USING_I2C4 -#define I2C4_BUS_CONFIG \ - { \ - .scl = BSP_I2C4_SCL_PIN, \ - .sda = BSP_I2C4_SDA_PIN, \ - .bus_name = "i2c4", \ - } -#endif - -#ifdef BSP_USING_I2C5 -#define I2C5_BUS_CONFIG \ - { \ - .scl = BSP_I2C5_SCL_PIN, \ - .sda = BSP_I2C5_SDA_PIN, \ - .bus_name = "i2c5", \ - } -#endif -int rt_hw_i2c_init(void); - -#endif diff --git a/bsp/stm32/libraries/templates/stm32l1xx/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/libraries/templates/stm32l1xx/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..d626be14a57 --- /dev/null +++ b/bsp/stm32/libraries/templates/stm32l1xx/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,8 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/stm32/libraries/templates/stm32l1xx/board/Kconfig b/bsp/stm32/libraries/templates/stm32l1xx/board/Kconfig index d95f206f822..32c3fc10d76 100644 --- a/bsp/stm32/libraries/templates/stm32l1xx/board/Kconfig +++ b/bsp/stm32/libraries/templates/stm32l1xx/board/Kconfig @@ -21,7 +21,9 @@ menu "Onboard Peripheral Drivers" default n config BSP_USING_EEPROM bool "Enable I2C EEPROM (i2c1)" - select BSP_USING_I2C1 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C1 default n config BSP_USING_SPI_FLASH @@ -158,23 +160,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 63 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 63 - default 23 - endif - menuconfig BSP_USING_ADC bool "Enable ADC" default n diff --git a/bsp/stm32/libraries/templates/stm32wbxx/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/libraries/templates/stm32wbxx/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..7dc954e324f --- /dev/null +++ b/bsp/stm32/libraries/templates/stm32wbxx/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,12 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=24 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=25 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C3=y + - CONFIG_RT_SOFT_I2C3_SCL_PIN=29 + - CONFIG_RT_SOFT_I2C3_SDA_PIN=30 + - CONFIG_RT_SOFT_I2C3_BUS_NAME="swi2c3" diff --git a/bsp/stm32/libraries/templates/stm32wbxx/board/Kconfig b/bsp/stm32/libraries/templates/stm32wbxx/board/Kconfig index 1287e9a63fe..2f80cb02123 100644 --- a/bsp/stm32/libraries/templates/stm32wbxx/board/Kconfig +++ b/bsp/stm32/libraries/templates/stm32wbxx/board/Kconfig @@ -82,44 +82,6 @@ menu "On-chip Peripheral Drivers" - menuconfig BSP_USING_I2C - bool "Enable I2C BUS" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default y - if BSP_USING_I2C1 - comment "Notice: PB8 --> 24; PB9 --> 25" - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 1 143 - default 24 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 1 143 - default 25 - endif - - menuconfig BSP_USING_I2C3 - bool "Enable I2C3 BUS (software simulation)" - default y - if BSP_USING_I2C3 - comment "Notice: PB13 --> 29; PAB6 -->30" - config BSP_I2C3_SCL_PIN - int "i2c3 scl pin number" - range 1 143 - default 29 - config BSP_I2C3_SDA_PIN - int "I2C3 sda pin number" - range 1 143 - default 30 - endif - endif - menuconfig BSP_USING_TIM bool "Enable timer" default n diff --git a/bsp/stm32/stm32f072-st-nucleo/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32f072-st-nucleo/.ci/attachconfig/ci.attachconfig.yml index 2a7fcdfd275..a863524b070 100644 --- a/bsp/stm32/stm32f072-st-nucleo/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/stm32/stm32f072-st-nucleo/.ci/attachconfig/ci.attachconfig.yml @@ -11,4 +11,14 @@ nano: peripheral.arduino: <<: *scons kconfig: - - CONFIG_BSP_USING_ARDUINO=y + - CONFIG_BSP_USING_ARDUINO=y + +devices.soft_i2c: + <<: *scons + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=24 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=25 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/stm32/stm32f072-st-nucleo/board/Kconfig b/bsp/stm32/stm32f072-st-nucleo/board/Kconfig index 69900f4061c..c6813b06098 100644 --- a/bsp/stm32/stm32f072-st-nucleo/board/Kconfig +++ b/bsp/stm32/stm32f072-st-nucleo/board/Kconfig @@ -25,8 +25,9 @@ menu "Onboard Peripheral Drivers" select BSP_USING_PWM16_CH1 select BSP_USING_PWM17 select BSP_USING_PWM17_CH1 - select BSP_USING_I2C - select BSP_USING_I2C1 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C1 select BSP_USING_SPI select BSP_USING_SPI1 select BSP_SPI1_TX_USING_DMA @@ -193,30 +194,6 @@ menu "On-chip Peripheral Drivers" endif endif - menuconfig BSP_USING_I2C - bool "Enable I2C BUS" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - - if BSP_USING_I2C - config BSP_USING_I2C1 - bool "Enable I2C1 Bus (User I2C)" - default n - if BSP_USING_I2C1 - comment "Notice: PB9 --> 25; PB8 --> 24" - config BSP_I2C1_SCL_PIN - int "i2c1 SCL pin number" - range 1 176 - default 24 - config BSP_I2C1_SDA_PIN - int "i2c1 SDA pin number" - range 1 176 - default 25 - endif - endif - source "$(BSP_DIR)/../libraries/HAL_Drivers/drivers/Kconfig" endmenu diff --git a/bsp/stm32/stm32f091-st-nucleo/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32f091-st-nucleo/.ci/attachconfig/ci.attachconfig.yml index e4646070a99..5f0a7623e10 100644 --- a/bsp/stm32/stm32f091-st-nucleo/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/stm32/stm32f091-st-nucleo/.ci/attachconfig/ci.attachconfig.yml @@ -8,3 +8,12 @@ nano: kconfig: - CONFIG_RT_USING_NANO=y +devices.soft_i2c: + <<: *scons + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=34 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=35 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/stm32/stm32f091-st-nucleo/board/Kconfig b/bsp/stm32/stm32f091-st-nucleo/board/Kconfig index d5ea59755e9..5de3160b6a0 100644 --- a/bsp/stm32/stm32f091-st-nucleo/board/Kconfig +++ b/bsp/stm32/stm32f091-st-nucleo/board/Kconfig @@ -117,23 +117,6 @@ menu "On-chip Peripheral Drivers" endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 1 216 - default 34 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 1 216 - default 35 - endif - menuconfig BSP_USING_TIM bool "Enable timer" default n diff --git a/bsp/stm32/stm32f103-100ask-pro/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32f103-100ask-pro/.ci/attachconfig/ci.attachconfig.yml index e4646070a99..bafb8dec3cd 100644 --- a/bsp/stm32/stm32f103-100ask-pro/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/stm32/stm32f103-100ask-pro/.ci/attachconfig/ci.attachconfig.yml @@ -8,3 +8,12 @@ nano: kconfig: - CONFIG_RT_USING_NANO=y +devices.soft_i2c: + <<: *scons + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/stm32/stm32f103-100ask-pro/board/Kconfig b/bsp/stm32/stm32f103-100ask-pro/board/Kconfig index 65919379fc1..0ca86d5893e 100644 --- a/bsp/stm32/stm32f103-100ask-pro/board/Kconfig +++ b/bsp/stm32/stm32f103-100ask-pro/board/Kconfig @@ -34,7 +34,9 @@ menu "Onboard Peripheral Drivers" config BSP_USING_EEPROM bool "Enable I2C EEPROM (i2c1)" - select BSP_USING_I2C1 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C1 default n config BSP_USING_EXT_SRAM @@ -217,23 +219,6 @@ menu "On-chip Peripheral Drivers" endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 175 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 175 - default 23 - endif - menuconfig BSP_USING_TIM bool "Enable timer" default n diff --git a/bsp/stm32/stm32f103-atk-nano/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32f103-atk-nano/.ci/attachconfig/ci.attachconfig.yml index e4646070a99..bafb8dec3cd 100644 --- a/bsp/stm32/stm32f103-atk-nano/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/stm32/stm32f103-atk-nano/.ci/attachconfig/ci.attachconfig.yml @@ -8,3 +8,12 @@ nano: kconfig: - CONFIG_RT_USING_NANO=y +devices.soft_i2c: + <<: *scons + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/stm32/stm32f103-atk-nano/board/Kconfig b/bsp/stm32/stm32f103-atk-nano/board/Kconfig index 282086aecdc..57f54d2b477 100644 --- a/bsp/stm32/stm32f103-atk-nano/board/Kconfig +++ b/bsp/stm32/stm32f103-atk-nano/board/Kconfig @@ -10,7 +10,9 @@ menu "Onboard Peripheral Drivers" config BSP_USING_EEPROM bool "Enable I2C EEPROM (i2c1)" - select BSP_USING_I2C1 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C1 default n config BSP_USING_SPI_FLASH @@ -219,23 +221,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 63 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 63 - default 23 - endif - menuconfig BSP_USING_ADC bool "Enable ADC" default n diff --git a/bsp/stm32/stm32f103-atk-warshipv3/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32f103-atk-warshipv3/.ci/attachconfig/ci.attachconfig.yml index e4646070a99..bafb8dec3cd 100644 --- a/bsp/stm32/stm32f103-atk-warshipv3/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/stm32/stm32f103-atk-warshipv3/.ci/attachconfig/ci.attachconfig.yml @@ -8,3 +8,12 @@ nano: kconfig: - CONFIG_RT_USING_NANO=y +devices.soft_i2c: + <<: *scons + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/stm32/stm32f103-atk-warshipv3/board/Kconfig b/bsp/stm32/stm32f103-atk-warshipv3/board/Kconfig index 0d7330f082b..2b2006d79c1 100644 --- a/bsp/stm32/stm32f103-atk-warshipv3/board/Kconfig +++ b/bsp/stm32/stm32f103-atk-warshipv3/board/Kconfig @@ -10,7 +10,9 @@ menu "Onboard Peripheral Drivers" config BSP_USING_EEPROM bool "Enable I2C EEPROM (i2c1)" - select BSP_USING_I2C1 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C1 default n config BSP_USING_SPI_FLASH @@ -232,23 +234,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 63 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 63 - default 23 - endif - menuconfig BSP_USING_ADC bool "Enable ADC" default n diff --git a/bsp/stm32/stm32f103-blue-pill/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32f103-blue-pill/.ci/attachconfig/ci.attachconfig.yml index bec3d8400cb..597afb24a5a 100644 --- a/bsp/stm32/stm32f103-blue-pill/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/stm32/stm32f103-blue-pill/.ci/attachconfig/ci.attachconfig.yml @@ -25,7 +25,12 @@ devices.uart1: devices.i2c1: <<: *scons kconfig: - - CONFIG_BSP_USING_I2C1=y + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=24 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=25 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" devices.pwm2: <<: *scons kconfig: @@ -41,4 +46,4 @@ devices.adc: <<: *scons kconfig: - CONFIG_BSP_USING_ADC=y - - CONFIG_BSP_USING_ADC1=y \ No newline at end of file + - CONFIG_BSP_USING_ADC1=y diff --git a/bsp/stm32/stm32f103-blue-pill/board/Kconfig b/bsp/stm32/stm32f103-blue-pill/board/Kconfig index 0c359e8e791..6ebe4646422 100644 --- a/bsp/stm32/stm32f103-blue-pill/board/Kconfig +++ b/bsp/stm32/stm32f103-blue-pill/board/Kconfig @@ -26,8 +26,9 @@ menu "Onboard Peripheral Drivers" select BSP_USING_PWM3_CH2 select BSP_USING_PWM3_CH3 select BSP_USING_PWM3_CH4 - select BSP_USING_I2C - select BSP_USING_I2C1 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C1 select BSP_USING_SPI select BSP_USING_SPI2 # select BSP_SPI2_TX_USING_DMA @@ -156,23 +157,6 @@ menu "On-chip Peripheral Drivers" endif endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number (PB8)" - range 0 143 - default 24 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number (PB9)" - range 0 143 - default 25 - endif - menuconfig BSP_USING_PWM bool "Enable PWM" default n diff --git a/bsp/stm32/stm32f103-dofly-M3S/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32f103-dofly-M3S/.ci/attachconfig/ci.attachconfig.yml index e4646070a99..0041f2e9020 100644 --- a/bsp/stm32/stm32f103-dofly-M3S/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/stm32/stm32f103-dofly-M3S/.ci/attachconfig/ci.attachconfig.yml @@ -8,3 +8,12 @@ nano: kconfig: - CONFIG_RT_USING_NANO=y +devices.soft_i2c: + <<: *scons + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=26 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=27 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" diff --git a/bsp/stm32/stm32f103-dofly-M3S/board/Kconfig b/bsp/stm32/stm32f103-dofly-M3S/board/Kconfig index ecf31ff3024..a9a0dea2ef1 100644 --- a/bsp/stm32/stm32f103-dofly-M3S/board/Kconfig +++ b/bsp/stm32/stm32f103-dofly-M3S/board/Kconfig @@ -29,7 +29,9 @@ menu "Onboard Peripheral Drivers" config BSP_USING_EEPROM bool "Enable I2C EEPROM (i2c2)" - select BSP_USING_I2C2 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C2 default n endmenu @@ -136,24 +138,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C2 - bool "Enable I2C2 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C2 - comment "Notice: PB10 --> 26; PB11 --> 27" - config BSP_I2C2_SCL_PIN - int "i2c2 scl pin number" - range 0 175 - default 26 - config BSP_I2C2_SDA_PIN - int "i2c2 sda pin number" - range 0 175 - default 27 - endif - config BSP_USING_ON_CHIP_FLASH bool "Enable on-chip FLASH" default n diff --git a/bsp/stm32/stm32f103-fire-arbitrary/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32f103-fire-arbitrary/.ci/attachconfig/ci.attachconfig.yml index e4646070a99..bafb8dec3cd 100644 --- a/bsp/stm32/stm32f103-fire-arbitrary/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/stm32/stm32f103-fire-arbitrary/.ci/attachconfig/ci.attachconfig.yml @@ -8,3 +8,12 @@ nano: kconfig: - CONFIG_RT_USING_NANO=y +devices.soft_i2c: + <<: *scons + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/stm32/stm32f103-fire-arbitrary/board/Kconfig b/bsp/stm32/stm32f103-fire-arbitrary/board/Kconfig index 75787559a1f..cd63ca6fc3c 100644 --- a/bsp/stm32/stm32f103-fire-arbitrary/board/Kconfig +++ b/bsp/stm32/stm32f103-fire-arbitrary/board/Kconfig @@ -46,7 +46,9 @@ menu "Onboard Peripheral Drivers" config BSP_USING_EEPROM bool "Enable I2C EEPROM (i2c1)" - select BSP_USING_I2C1 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C1 default n config BSP_USING_ETH @@ -257,23 +259,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 175 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 175 - default 23 - endif - menuconfig BSP_USING_TIM bool "Enable timer" default n diff --git a/bsp/stm32/stm32f103-gizwits-gokitv21/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32f103-gizwits-gokitv21/.ci/attachconfig/ci.attachconfig.yml index e4646070a99..38f5930b0fd 100644 --- a/bsp/stm32/stm32f103-gizwits-gokitv21/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/stm32/stm32f103-gizwits-gokitv21/.ci/attachconfig/ci.attachconfig.yml @@ -8,3 +8,12 @@ nano: kconfig: - CONFIG_RT_USING_NANO=y +devices.soft_i2c: + <<: *scons + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=15 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=16 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/stm32/stm32f103-gizwits-gokitv21/board/Kconfig b/bsp/stm32/stm32f103-gizwits-gokitv21/board/Kconfig index 73b2de6d746..14b8af97685 100644 --- a/bsp/stm32/stm32f103-gizwits-gokitv21/board/Kconfig +++ b/bsp/stm32/stm32f103-gizwits-gokitv21/board/Kconfig @@ -109,22 +109,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 1 216 - default 15 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 1 216 - default 16 - endif source "$(BSP_DIR)/../libraries/HAL_Drivers/drivers/Kconfig" endmenu diff --git a/bsp/stm32/stm32f103-hw100k-ibox/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32f103-hw100k-ibox/.ci/attachconfig/ci.attachconfig.yml index e4646070a99..bafb8dec3cd 100644 --- a/bsp/stm32/stm32f103-hw100k-ibox/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/stm32/stm32f103-hw100k-ibox/.ci/attachconfig/ci.attachconfig.yml @@ -8,3 +8,12 @@ nano: kconfig: - CONFIG_RT_USING_NANO=y +devices.soft_i2c: + <<: *scons + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/stm32/stm32f103-hw100k-ibox/board/Kconfig b/bsp/stm32/stm32f103-hw100k-ibox/board/Kconfig index 401cbdfc31d..4ba5138228e 100644 --- a/bsp/stm32/stm32f103-hw100k-ibox/board/Kconfig +++ b/bsp/stm32/stm32f103-hw100k-ibox/board/Kconfig @@ -228,22 +228,6 @@ menu "On-chip Peripheral Drivers" config BSP_USING_ON_CHIP_FLASH bool "Enable on-chip FLASH" default n - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 144 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 144 - default 23 - endif menuconfig BSP_USING_SPI bool "Enable SPI BUS" default n diff --git a/bsp/stm32/stm32f103-keysking-learning/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32f103-keysking-learning/.ci/attachconfig/ci.attachconfig.yml index 5d0c8906b8d..fff98fe34e1 100644 --- a/bsp/stm32/stm32f103-keysking-learning/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/stm32/stm32f103-keysking-learning/.ci/attachconfig/ci.attachconfig.yml @@ -23,7 +23,12 @@ devices.adc: devices.i2c1: <<: *scons kconfig: - - CONFIG_BSP_USING_I2C1=y + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=24 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=25 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" devices.pwm2: <<: *scons kconfig: diff --git a/bsp/stm32/stm32f103-keysking-learning/board/Kconfig b/bsp/stm32/stm32f103-keysking-learning/board/Kconfig index ae9a9bd106b..0cfe44e8eb0 100644 --- a/bsp/stm32/stm32f103-keysking-learning/board/Kconfig +++ b/bsp/stm32/stm32f103-keysking-learning/board/Kconfig @@ -104,24 +104,6 @@ menu "On-chip Peripheral Drivers" endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number (PB8)" - range 0 143 - default 24 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number (PB9)" - range 0 143 - default 25 - endif - - menuconfig BSP_USING_PWM bool "Enable PWM" select RT_USING_PWM diff --git a/bsp/stm32/stm32f103-yf-ufun/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32f103-yf-ufun/.ci/attachconfig/ci.attachconfig.yml index e4646070a99..38f5930b0fd 100644 --- a/bsp/stm32/stm32f103-yf-ufun/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/stm32/stm32f103-yf-ufun/.ci/attachconfig/ci.attachconfig.yml @@ -8,3 +8,12 @@ nano: kconfig: - CONFIG_RT_USING_NANO=y +devices.soft_i2c: + <<: *scons + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=15 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=16 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/stm32/stm32f103-yf-ufun/board/Kconfig b/bsp/stm32/stm32f103-yf-ufun/board/Kconfig index 7c3b526bc2d..bcca30aac8f 100644 --- a/bsp/stm32/stm32f103-yf-ufun/board/Kconfig +++ b/bsp/stm32/stm32f103-yf-ufun/board/Kconfig @@ -76,23 +76,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 1 216 - default 15 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 1 216 - default 16 - endif - menuconfig BSP_USING_PWM bool "Enable PWM" default n diff --git a/bsp/stm32/stm32f401-st-nucleo/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32f401-st-nucleo/.ci/attachconfig/ci.attachconfig.yml index 2a7fcdfd275..a863524b070 100644 --- a/bsp/stm32/stm32f401-st-nucleo/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/stm32/stm32f401-st-nucleo/.ci/attachconfig/ci.attachconfig.yml @@ -11,4 +11,14 @@ nano: peripheral.arduino: <<: *scons kconfig: - - CONFIG_BSP_USING_ARDUINO=y + - CONFIG_BSP_USING_ARDUINO=y + +devices.soft_i2c: + <<: *scons + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=24 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=25 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/stm32/stm32f401-st-nucleo/board/Kconfig b/bsp/stm32/stm32f401-st-nucleo/board/Kconfig index a4ddfc0c2c0..82fa38aced3 100644 --- a/bsp/stm32/stm32f401-st-nucleo/board/Kconfig +++ b/bsp/stm32/stm32f401-st-nucleo/board/Kconfig @@ -27,8 +27,9 @@ menu "Onboard Peripheral Drivers" select BSP_USING_PWM3_CH2 select BSP_USING_PWM4 select BSP_USING_PWM4_CH1 - select BSP_USING_I2C - select BSP_USING_I2C1 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C1 select BSP_USING_SPI select BSP_USING_SPI1 select BSP_SPI1_TX_USING_DMA @@ -206,30 +207,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C - bool "Enable I2C BUS" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - - if BSP_USING_I2C - config BSP_USING_I2C1 - bool "Enable I2C1 Bus (User I2C)" - default n - if BSP_USING_I2C1 - comment "Notice: PB9 --> 25; PB8 --> 24" - config BSP_I2C1_SCL_PIN - int "i2c1 SCL pin number" - range 1 176 - default 24 - config BSP_I2C1_SDA_PIN - int "i2c1 SDA pin number" - range 1 176 - default 25 - endif - endif - source "$(BSP_DIR)/../libraries/HAL_Drivers/drivers/Kconfig" endmenu diff --git a/bsp/stm32/stm32f401-weact-blackpill/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32f401-weact-blackpill/.ci/attachconfig/ci.attachconfig.yml index 2a7fcdfd275..13f78252828 100644 --- a/bsp/stm32/stm32f401-weact-blackpill/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/stm32/stm32f401-weact-blackpill/.ci/attachconfig/ci.attachconfig.yml @@ -11,4 +11,14 @@ nano: peripheral.arduino: <<: *scons kconfig: - - CONFIG_BSP_USING_ARDUINO=y + - CONFIG_BSP_USING_ARDUINO=y + +devices.soft_i2c: + <<: *scons + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=47 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=46 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/stm32/stm32f401-weact-blackpill/board/Kconfig b/bsp/stm32/stm32f401-weact-blackpill/board/Kconfig index 492a539d266..628291222b6 100644 --- a/bsp/stm32/stm32f401-weact-blackpill/board/Kconfig +++ b/bsp/stm32/stm32f401-weact-blackpill/board/Kconfig @@ -20,8 +20,9 @@ menu "Onboard Peripheral Drivers" select BSP_USING_PWM4_CH2 select BSP_USING_PWM4_CH3 select BSP_USING_PWM4_CH4 - select BSP_USING_I2C - select BSP_USING_I2C1 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C1 select RTDUINO_USING_WIRE imply RTDUINO_USING_SERVO default n @@ -162,21 +163,6 @@ menu "On-chip Peripheral Drivers" endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number (PC15)" - default 47 - config BSP_I2C1_SDA_PIN - int "i2c1 sda pin number (PC14)" - default 46 - endif - source "$(BSP_DIR)/../libraries/HAL_Drivers/drivers/Kconfig" endmenu diff --git a/bsp/stm32/stm32f407-armfly-v5/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32f407-armfly-v5/.ci/attachconfig/ci.attachconfig.yml index e4646070a99..92ab2207084 100644 --- a/bsp/stm32/stm32f407-armfly-v5/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/stm32/stm32f407-armfly-v5/.ci/attachconfig/ci.attachconfig.yml @@ -8,3 +8,12 @@ nano: kconfig: - CONFIG_RT_USING_NANO=y +devices.soft_i2c: + <<: *scons + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=116 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=117 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" diff --git a/bsp/stm32/stm32f407-armfly-v5/board/Kconfig b/bsp/stm32/stm32f407-armfly-v5/board/Kconfig index 613d1cfb85a..d08e3dcf27d 100644 --- a/bsp/stm32/stm32f407-armfly-v5/board/Kconfig +++ b/bsp/stm32/stm32f407-armfly-v5/board/Kconfig @@ -25,7 +25,9 @@ menu "Onboard Peripheral Drivers" config BSP_USING_MPU6050 bool "Enable MPU6050(i2c2)" - select BSP_USING_I2C2 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C2 select PKG_USING_MPU6XXX select PKG_USING_MPU6XXX_SAMPLE select PKG_USING_MPU6XXX_LATEST_VERSION @@ -143,24 +145,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C2 - bool "Enable I2C2 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C2 - comment "Notice: PH4 --> 116; PH5 --> 117" - config BSP_I2C2_SCL_PIN - int "i2c2 scl pin number" - range 1 143 - default 116 - config BSP_I2C2_SDA_PIN - int "I2C2 sda pin number" - range 1 143 - default 117 - endif - menuconfig BSP_USING_TIM bool "Enable timer" default n diff --git a/bsp/stm32/stm32f407-atk-explorer/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32f407-atk-explorer/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..42956366977 --- /dev/null +++ b/bsp/stm32/stm32f407-atk-explorer/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,12 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=24 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=25 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=16 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=91 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" diff --git a/bsp/stm32/stm32f407-atk-explorer/board/Kconfig b/bsp/stm32/stm32f407-atk-explorer/board/Kconfig index 1cd3f3eb679..edb8615f5b1 100644 --- a/bsp/stm32/stm32f407-atk-explorer/board/Kconfig +++ b/bsp/stm32/stm32f407-atk-explorer/board/Kconfig @@ -43,7 +43,9 @@ menu "Onboard Peripheral Drivers" if BSP_USING_TOUCH config BSP_USING_TOUCH_CAP bool "Use LCD TOUCH Capacitance (i2c2)" - select BSP_USING_I2C2 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C2 default n if BSP_USING_TOUCH_CAP config BSP_TOUCH_INT_PIN @@ -101,7 +103,9 @@ menu "Onboard Peripheral Drivers" config BSP_USING_EEPROM bool "Enable I2C EEPROM (i2c1)" - select BSP_USING_I2C1 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C1 default n config BSP_ETH_LEGACY_MODULE_ENABLED @@ -125,7 +129,9 @@ menu "Onboard Peripheral Drivers" config BSP_USING_MPU6050 bool "Enable MPU6050 (i2c1)" default n - select BSP_USING_I2C1 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C1 select PKG_USING_MPU6XXX menuconfig BSP_USING_CAN @@ -508,40 +514,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 143 - default 24 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 143 - default 25 - endif - - menuconfig BSP_USING_I2C2 - bool "Enable LCD Touch BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C2 - config BSP_I2C2_SCL_PIN - int "i2c2 scl pin number, PB0" - range 0 143 - default 16 - config BSP_I2C2_SDA_PIN - int "I2C2 sda pin number, PF11" - range 0 143 - default 91 - endif - menuconfig BSP_USING_DAC bool "Enable DAC" default n diff --git a/bsp/stm32/stm32f407-fk407m2-zgt6/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32f407-fk407m2-zgt6/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..42956366977 --- /dev/null +++ b/bsp/stm32/stm32f407-fk407m2-zgt6/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,12 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=24 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=25 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=16 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=91 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" diff --git a/bsp/stm32/stm32f407-fk407m2-zgt6/board/Kconfig b/bsp/stm32/stm32f407-fk407m2-zgt6/board/Kconfig index 97bf737ac20..0793f9cdd22 100644 --- a/bsp/stm32/stm32f407-fk407m2-zgt6/board/Kconfig +++ b/bsp/stm32/stm32f407-fk407m2-zgt6/board/Kconfig @@ -366,42 +366,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C - bool "Enable soft I2C BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 143 - default 24 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 143 - default 25 - endif - - menuconfig BSP_USING_I2C2 - bool "Enable I2C2 BUS (software simulation)" - default n - if BSP_USING_I2C2 - config BSP_I2C2_SCL_PIN - int "i2c2 scl pin number" - range 0 143 - default 16 - config BSP_I2C2_SDA_PIN - int "I2C2 sda pin number" - range 0 143 - default 91 - endif - endif - menuconfig BSP_USING_DAC bool "Enable DAC" default n diff --git a/bsp/stm32/stm32f407-lckfb-skystar/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32f407-lckfb-skystar/.ci/attachconfig/ci.attachconfig.yml index e4646070a99..12d7fdc2c90 100644 --- a/bsp/stm32/stm32f407-lckfb-skystar/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/stm32/stm32f407-lckfb-skystar/.ci/attachconfig/ci.attachconfig.yml @@ -8,3 +8,12 @@ nano: kconfig: - CONFIG_RT_USING_NANO=y +devices.soft_i2c: + <<: *scons + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=24 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=25 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/stm32/stm32f407-lckfb-skystar/board/Kconfig b/bsp/stm32/stm32f407-lckfb-skystar/board/Kconfig index 606c7725517..e31d827870c 100644 --- a/bsp/stm32/stm32f407-lckfb-skystar/board/Kconfig +++ b/bsp/stm32/stm32f407-lckfb-skystar/board/Kconfig @@ -439,28 +439,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C - bool "Enable I2C" - default n - if BSP_USING_I2C - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 143 - default 24 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 143 - default 25 - endif - endif - config BSP_USING_ONBOARD_PM bool "Enable Power Management" select RT_USING_PM diff --git a/bsp/stm32/stm32f407-micu/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32f407-micu/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..8b33403ed07 --- /dev/null +++ b/bsp/stm32/stm32f407-micu/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,12 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=26 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=27 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" diff --git a/bsp/stm32/stm32f407-micu/board/Kconfig b/bsp/stm32/stm32f407-micu/board/Kconfig index 25202dfa2f1..0a8ee09afa3 100644 --- a/bsp/stm32/stm32f407-micu/board/Kconfig +++ b/bsp/stm32/stm32f407-micu/board/Kconfig @@ -26,16 +26,18 @@ menu "Onboard Peripheral Drivers" config BSP_USING_AHT20 bool "Enable AHT20(i2c1)" - select BSP_USING_I2C - select BSP_USING_I2C1 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C1 select PKG_USING_SENSORS_DRIVERS select PKG_USING_AHT10 default n config BSP_USING_ICM20608 bool "Enable ICM20608(i2c1)" - select BSP_USING_I2C - select BSP_USING_I2C1 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C1 select PKG_USING_SENSORS_DRIVERS select PKG_USING_ICM20608 default n @@ -135,45 +137,6 @@ menu "On-chip Peripheral Drivers" endchoice endif - menuconfig BSP_USING_I2C - bool "Enable I2C" - default n - if BSP_USING_I2C - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 143 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 143 - default 23 - endif - - menuconfig BSP_USING_I2C2 - bool "Enable I2C2 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C2 - config BSP_I2C2_SCL_PIN - int "i2c2 scl pin number" - range 0 143 - default 26 - config BSP_I2C2_SDA_PIN - int "I2C2 sda pin number" - range 0 143 - default 27 - endif - endif - menuconfig BSP_USING_TIM bool "Enable timer" default n @@ -245,8 +208,9 @@ menu "Board extended module Drivers" config BSP_USING_SSD1306 bool "Enable SSD1306 OLED" - select BSP_USING_I2C - select BSP_USING_I2C2 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C2 select PKG_USING_SSD1306 default n help @@ -255,4 +219,4 @@ menu "Board extended module Drivers" endmenu -endmenu \ No newline at end of file +endmenu diff --git a/bsp/stm32/stm32f407-robomaster-c/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32f407-robomaster-c/.ci/attachconfig/ci.attachconfig.yml index 2a7fcdfd275..51f84c2e745 100644 --- a/bsp/stm32/stm32f407-robomaster-c/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/stm32/stm32f407-robomaster-c/.ci/attachconfig/ci.attachconfig.yml @@ -11,4 +11,14 @@ nano: peripheral.arduino: <<: *scons kconfig: - - CONFIG_BSP_USING_ARDUINO=y + - CONFIG_BSP_USING_ARDUINO=y + +devices.soft_i2c: + <<: *scons + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=81 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=80 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/stm32/stm32f407-robomaster-c/board/Kconfig b/bsp/stm32/stm32f407-robomaster-c/board/Kconfig index bd123367be3..96d8ccb468b 100644 --- a/bsp/stm32/stm32f407-robomaster-c/board/Kconfig +++ b/bsp/stm32/stm32f407-robomaster-c/board/Kconfig @@ -19,8 +19,9 @@ menu "Onboard Peripheral Drivers" select BSP_USING_PWM8_CH1 select BSP_USING_PWM8_CH2 select BSP_USING_PWM8_CH3 - select BSP_USING_I2C - select BSP_USING_I2C1 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C1 select RTDUINO_USING_WIRE imply RTDUINO_USING_SERVO default n @@ -257,23 +258,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - comment "Notice: PF0 --> 80; PF1 --> 81" - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - default 81 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - default 80 - endif - - source "$(BSP_DIR)/../libraries/HAL_Drivers/drivers/Kconfig" endmenu diff --git a/bsp/stm32/stm32f407-rt-spark/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32f407-rt-spark/.ci/attachconfig/ci.attachconfig.yml index 206761fcc2c..3a1b61a05c9 100644 --- a/bsp/stm32/stm32f407-rt-spark/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/stm32/stm32f407-rt-spark/.ci/attachconfig/ci.attachconfig.yml @@ -203,3 +203,29 @@ component.cherryusb_cdc: - CONFIG_RT_CHERRYUSB_DEVICE_DWC2_ST=y - CONFIG_RT_CHERRYUSB_DEVICE_CDC_ACM=y - CONFIG_RT_CHERRYUSB_DEVICE_TEMPLATE_CDC_ACM=y + +devices.soft_i2c: + <<: *scons + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=24 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=25 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=81 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=80 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" + - CONFIG_RT_USING_SOFT_I2C3=y + - CONFIG_RT_SOFT_I2C3_SCL_PIN=64 + - CONFIG_RT_SOFT_I2C3_SDA_PIN=65 + - CONFIG_RT_SOFT_I2C3_BUS_NAME="swi2c3" + - CONFIG_RT_USING_SOFT_I2C4=y + - CONFIG_RT_SOFT_I2C4_SCL_PIN=103 + - CONFIG_RT_SOFT_I2C4_SDA_PIN=55 + - CONFIG_RT_SOFT_I2C4_BUS_NAME="swi2c4" + - CONFIG_RT_USING_SOFT_I2C5=y + - CONFIG_RT_SOFT_I2C5_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C5_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C5_BUS_NAME="swi2c5" diff --git a/bsp/stm32/stm32f407-rt-spark/board/Kconfig b/bsp/stm32/stm32f407-rt-spark/board/Kconfig index a003330564f..d16bca1cfaf 100644 --- a/bsp/stm32/stm32f407-rt-spark/board/Kconfig +++ b/bsp/stm32/stm32f407-rt-spark/board/Kconfig @@ -22,9 +22,10 @@ menu "Onboard Peripheral Drivers" select BSP_USING_PWM2_CH4 select BSP_USING_PWM4 select BSP_USING_PWM4_CH1 - select BSP_USING_I2C - select BSP_USING_I2C4 - select BSP_USING_I2C5 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C4 + select RT_USING_SOFT_I2C5 select BSP_USING_SOFT_SPI select BSP_USING_SOFT_SPI1 imply RTDUINO_USING_SERVO @@ -124,7 +125,9 @@ menu "Onboard Peripheral Drivers" config BSP_USING_EEPROM bool "Enable I2C EEPROM (i2c1)" - select BSP_USING_I2C1 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C1 default n config BSP_USING_ENC28j60 @@ -214,24 +217,27 @@ menu "Onboard Peripheral Drivers" config BSP_USING_AHT21 bool "Enable AHT21(i2c3)" - select BSP_USING_I2C - select BSP_USING_I2C3 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C3 select PKG_USING_SENSORS_DRIVERS select PKG_USING_AHT10 default n config BSP_USING_AP3216C bool "Enable AP3216C(i2c2)" - select BSP_USING_I2C - select BSP_USING_I2C2 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C2 select PKG_USING_SENSORS_DRIVERS select PKG_USING_AP3216C default n config BSP_USING_ICM20608 bool "Enable ICM20608(i2c2)" - select BSP_USING_I2C - select BSP_USING_I2C2 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C2 select PKG_USING_SENSORS_DRIVERS select PKG_USING_ICM20608 default n @@ -256,8 +262,9 @@ menu "Onboard Peripheral Drivers" menuconfig BSP_USING_AUDIO bool "Enable Audio Device" select RT_USING_AUDIO - select BSP_USING_I2C - select BSP_USING_I2C2 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C2 default n if BSP_USING_AUDIO @@ -660,96 +667,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C - bool "Enable I2C" - default n - if BSP_USING_I2C - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 143 - default 24 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 143 - default 25 - endif - - menuconfig BSP_USING_I2C2 - bool "Enable I2C2 BUS for AP3216C/ICM20608/ES8388/ Onboard(software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C2 - config BSP_I2C2_SCL_PIN - int "i2c2 scl pin number, PF1" - range 0 143 - default 81 - config BSP_I2C2_SDA_PIN - int "I2C2 sda pin number, PF0" - range 0 143 - default 80 - endif - - menuconfig BSP_USING_I2C3 - bool "Enable I2C3 BUS for AHT21 Onboard(software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C3 - config BSP_I2C3_SCL_PIN - int "i2c3 scl pin number, PE0" - range 0 143 - default 64 - config BSP_I2C3_SDA_PIN - int "I2C3 sda pin number, PE1" - range 0 143 - default 65 - endif - - menuconfig BSP_USING_I2C4 - bool "Enable I2C4 BUS for RTduino(software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C4 - config BSP_I2C4_SCL_PIN - int "i2c4 scl pin number, PG7" - range 0 143 - default 103 - config BSP_I2C4_SDA_PIN - int "I2C4 sda pin number, PD7" - range 0 143 - default 55 - endif - - menuconfig BSP_USING_I2C5 - bool "Enable I2C5 BUS for RTduino(software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C5 - config BSP_I2C5_SCL_PIN - int "i2c5 scl pin number, PB6" - range 0 143 - default 22 - config BSP_I2C5_SDA_PIN - int "I2C5 sda pin number, PB7" - range 0 143 - default 23 - endif - endif - config BSP_USING_ONBOARD_PM bool "Enable Power Management" select RT_USING_PM diff --git a/bsp/stm32/stm32f407-st-discovery/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32f407-st-discovery/.ci/attachconfig/ci.attachconfig.yml index e4646070a99..12d7fdc2c90 100644 --- a/bsp/stm32/stm32f407-st-discovery/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/stm32/stm32f407-st-discovery/.ci/attachconfig/ci.attachconfig.yml @@ -8,3 +8,12 @@ nano: kconfig: - CONFIG_RT_USING_NANO=y +devices.soft_i2c: + <<: *scons + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=24 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=25 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/stm32/stm32f407-st-discovery/board/Kconfig b/bsp/stm32/stm32f407-st-discovery/board/Kconfig index 21a2adf70a1..9a6630fd17a 100644 --- a/bsp/stm32/stm32f407-st-discovery/board/Kconfig +++ b/bsp/stm32/stm32f407-st-discovery/board/Kconfig @@ -76,22 +76,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 1 216 - default 24 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 1 216 - default 25 - endif source "$(BSP_DIR)/../libraries/HAL_Drivers/drivers/Kconfig" endmenu diff --git a/bsp/stm32/stm32f410-st-nucleo/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32f410-st-nucleo/.ci/attachconfig/ci.attachconfig.yml index 2a7fcdfd275..a863524b070 100644 --- a/bsp/stm32/stm32f410-st-nucleo/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/stm32/stm32f410-st-nucleo/.ci/attachconfig/ci.attachconfig.yml @@ -11,4 +11,14 @@ nano: peripheral.arduino: <<: *scons kconfig: - - CONFIG_BSP_USING_ARDUINO=y + - CONFIG_BSP_USING_ARDUINO=y + +devices.soft_i2c: + <<: *scons + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=24 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=25 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/stm32/stm32f410-st-nucleo/board/Kconfig b/bsp/stm32/stm32f410-st-nucleo/board/Kconfig index 990d6df3f61..eda45bd699e 100644 --- a/bsp/stm32/stm32f410-st-nucleo/board/Kconfig +++ b/bsp/stm32/stm32f410-st-nucleo/board/Kconfig @@ -19,8 +19,9 @@ menu "Onboard Peripheral Drivers" select BSP_USING_PWM1_CH3 select BSP_USING_PWM1_CH2 select BSP_USING_PWM1_CH1 - select BSP_USING_I2C - select BSP_USING_I2C1 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C1 select RTDUINO_USING_WIRE imply RTDUINO_USING_SERVO default n @@ -142,24 +143,6 @@ menu "On-chip Peripheral Drivers" endif endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - comment "Notice: PB8 --> 24; PB9 --> 25" - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 80 - default 24 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 80 - default 25 - endif - source "$(BSP_DIR)/../libraries/HAL_Drivers/drivers/Kconfig" endmenu diff --git a/bsp/stm32/stm32f411-atk-nano/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32f411-atk-nano/.ci/attachconfig/ci.attachconfig.yml index e4646070a99..bafb8dec3cd 100644 --- a/bsp/stm32/stm32f411-atk-nano/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/stm32/stm32f411-atk-nano/.ci/attachconfig/ci.attachconfig.yml @@ -8,3 +8,12 @@ nano: kconfig: - CONFIG_RT_USING_NANO=y +devices.soft_i2c: + <<: *scons + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/stm32/stm32f411-atk-nano/board/Kconfig b/bsp/stm32/stm32f411-atk-nano/board/Kconfig index fbb264b09df..2f6ca22fbea 100644 --- a/bsp/stm32/stm32f411-atk-nano/board/Kconfig +++ b/bsp/stm32/stm32f411-atk-nano/board/Kconfig @@ -10,7 +10,9 @@ menu "Onboard Peripheral Drivers" config BSP_USING_EEPROM bool "Enable I2C EEPROM (i2c1)" - select BSP_USING_I2C1 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C1 default n config BSP_USING_SPI_FLASH @@ -152,23 +154,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 63 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 63 - default 23 - endif - menuconfig BSP_USING_ADC bool "Enable ADC" default n diff --git a/bsp/stm32/stm32f411-st-nucleo/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32f411-st-nucleo/.ci/attachconfig/ci.attachconfig.yml index 2a7fcdfd275..a863524b070 100644 --- a/bsp/stm32/stm32f411-st-nucleo/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/stm32/stm32f411-st-nucleo/.ci/attachconfig/ci.attachconfig.yml @@ -11,4 +11,14 @@ nano: peripheral.arduino: <<: *scons kconfig: - - CONFIG_BSP_USING_ARDUINO=y + - CONFIG_BSP_USING_ARDUINO=y + +devices.soft_i2c: + <<: *scons + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=24 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=25 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/stm32/stm32f411-st-nucleo/board/Kconfig b/bsp/stm32/stm32f411-st-nucleo/board/Kconfig index 9c4c0c3466d..c4d905fc7f7 100644 --- a/bsp/stm32/stm32f411-st-nucleo/board/Kconfig +++ b/bsp/stm32/stm32f411-st-nucleo/board/Kconfig @@ -27,8 +27,9 @@ menu "Onboard Peripheral Drivers" select BSP_USING_PWM3_CH2 select BSP_USING_PWM4_CH1 select BSP_USING_PWM1_CH1 - select BSP_USING_I2C - select BSP_USING_I2C1 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C1 select BSP_USING_SPI select BSP_USING_SPI1 select BSP_SPI1_TX_USING_DMA @@ -134,24 +135,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - comment "Notice: PB8 --> 24; PB9 --> 25" - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 80 - default 24 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 80 - default 25 - endif - menuconfig BSP_USING_PWM bool "Enable PWM" default n diff --git a/bsp/stm32/stm32f411-weact-blackpill/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32f411-weact-blackpill/.ci/attachconfig/ci.attachconfig.yml index 2a7fcdfd275..265ebbf9742 100644 --- a/bsp/stm32/stm32f411-weact-blackpill/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/stm32/stm32f411-weact-blackpill/.ci/attachconfig/ci.attachconfig.yml @@ -11,4 +11,14 @@ nano: peripheral.arduino: <<: *scons kconfig: - - CONFIG_BSP_USING_ARDUINO=y + - CONFIG_BSP_USING_ARDUINO=y + +devices.soft_i2c: + <<: *scons + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=26 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=18 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/stm32/stm32f411-weact-blackpill/board/Kconfig b/bsp/stm32/stm32f411-weact-blackpill/board/Kconfig index 691cabbf34b..56c75eeec39 100644 --- a/bsp/stm32/stm32f411-weact-blackpill/board/Kconfig +++ b/bsp/stm32/stm32f411-weact-blackpill/board/Kconfig @@ -23,8 +23,9 @@ menu "Onboard Peripheral Drivers" select BSP_USING_SPI1 select BSP_SPI1_TX_USING_DMA select BSP_SPI1_RX_USING_DMA - select BSP_USING_I2C - select BSP_USING_I2C1 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C1 select RTDUINO_USING_SPI select RTDUINO_USING_WIRE imply RTDUINO_USING_SERVO @@ -125,68 +126,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - comment "Notice: PB2 --> 18; PB10 --> 26" - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 48 - default 26 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 48 - default 18 - endif - - menuconfig BSP_USING_PWM - bool "Enable PWM" - default n - select RT_USING_PWM - if BSP_USING_PWM - menuconfig BSP_USING_PWM1 - bool "Enable timer1 output PWM" - default n - if BSP_USING_PWM1 - config BSP_USING_PWM1_CH1 - bool "Enable PWM1 channel1" - default n - - config BSP_USING_PWM1_CH2 - bool "Enable PWM1 channel2" - default n - - config BSP_USING_PWM1_CH3 - bool "Enable PWM1 channel3" - default n - endif - - menuconfig BSP_USING_PWM4 - bool "Enable timer4 output PWM" - default n - if BSP_USING_PWM4 - config BSP_USING_PWM4_CH1 - bool "Enable PWM4 channel1" - default n - - config BSP_USING_PWM4_CH2 - bool "Enable PWM4 channel2" - default n - - config BSP_USING_PWM4_CH3 - bool "Enable PWM4 channel3" - default n - - config BSP_USING_PWM4_CH4 - bool "Enable PWM4 channel4" - default n - endif - endif - menuconfig BSP_USING_SPI bool "Enable SPI BUS" default n diff --git a/bsp/stm32/stm32f412-st-nucleo/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32f412-st-nucleo/.ci/attachconfig/ci.attachconfig.yml index e4646070a99..12d7fdc2c90 100644 --- a/bsp/stm32/stm32f412-st-nucleo/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/stm32/stm32f412-st-nucleo/.ci/attachconfig/ci.attachconfig.yml @@ -8,3 +8,12 @@ nano: kconfig: - CONFIG_RT_USING_NANO=y +devices.soft_i2c: + <<: *scons + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=24 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=25 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/stm32/stm32f412-st-nucleo/board/Kconfig b/bsp/stm32/stm32f412-st-nucleo/board/Kconfig index 28d5f0e1981..4d65971f266 100644 --- a/bsp/stm32/stm32f412-st-nucleo/board/Kconfig +++ b/bsp/stm32/stm32f412-st-nucleo/board/Kconfig @@ -27,8 +27,9 @@ menu "Onboard Peripheral Drivers" select BSP_USING_PWM4_CH4 select BSP_USING_PWM4_CH3 select BSP_USING_PWM14_CH1 - select BSP_USING_I2C - select BSP_USING_I2C1 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C1 select BSP_USING_SPI select BSP_USING_SPI1 select BSP_SPI1_TX_USING_DMA @@ -190,30 +191,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C - bool "Enable I2C BUS" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - - if BSP_USING_I2C - config BSP_USING_I2C1 - bool "Enable I2C1 Bus (User I2C)" - default n - if BSP_USING_I2C1 - comment "Notice: PB9 --> 25; PB8 --> 24" - config BSP_I2C1_SCL_PIN - int "i2c1 SCL pin number" - range 1 176 - default 24 - config BSP_I2C1_SDA_PIN - int "i2c1 SDA pin number" - range 1 176 - default 25 - endif - endif - menuconfig BSP_USING_SPI bool "Enable SPI BUS" default n diff --git a/bsp/stm32/stm32f413-st-nucleo/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32f413-st-nucleo/.ci/attachconfig/ci.attachconfig.yml index 69dfd8a229d..c18707048cf 100644 --- a/bsp/stm32/stm32f413-st-nucleo/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/stm32/stm32f413-st-nucleo/.ci/attachconfig/ci.attachconfig.yml @@ -7,4 +7,13 @@ nano: <<: *scons kconfig: - CONFIG_RT_USING_NANO=y - + +devices.soft_i2c: + <<: *scons + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=136 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=140 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/stm32/stm32f413-st-nucleo/board/Kconfig b/bsp/stm32/stm32f413-st-nucleo/board/Kconfig index cd009d2fe29..c96b9228ced 100644 --- a/bsp/stm32/stm32f413-st-nucleo/board/Kconfig +++ b/bsp/stm32/stm32f413-st-nucleo/board/Kconfig @@ -115,24 +115,6 @@ menu "On-chip Peripheral Drivers" endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - comment "Notice: PB6 --> 136; PB9 --> 140" - config BSP_I2C1_SCL_PIN - int "I2C1 scl pin number" - range 1 144 - default 136 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 1 144 - default 140 - endif - menuconfig BSP_USING_TIM bool "Enable timer" default n diff --git a/bsp/stm32/stm32f427-robomaster-a/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32f427-robomaster-a/.ci/attachconfig/ci.attachconfig.yml index 2a7fcdfd275..27ce57a8cf2 100644 --- a/bsp/stm32/stm32f427-robomaster-a/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/stm32/stm32f427-robomaster-a/.ci/attachconfig/ci.attachconfig.yml @@ -11,4 +11,14 @@ nano: peripheral.arduino: <<: *scons kconfig: - - CONFIG_BSP_USING_ARDUINO=y + - CONFIG_BSP_USING_ARDUINO=y + +devices.soft_i2c: + <<: *scons + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=68 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=69 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/stm32/stm32f427-robomaster-a/board/Kconfig b/bsp/stm32/stm32f427-robomaster-a/board/Kconfig index dbb3ea37b8b..9a4754fe6bd 100644 --- a/bsp/stm32/stm32f427-robomaster-a/board/Kconfig +++ b/bsp/stm32/stm32f427-robomaster-a/board/Kconfig @@ -38,8 +38,9 @@ menu "Onboard Peripheral Drivers" select BSP_USING_PWM8_CH4 select BSP_USING_PWM12 select BSP_USING_PWM12_CH1 - select BSP_USING_I2C - select BSP_USING_I2C1 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C1 select RTDUINO_USING_WIRE imply RTDUINO_USING_SERVO default n @@ -258,30 +259,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C - bool "Enable I2C BUS" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - - if BSP_USING_I2C - config BSP_USING_I2C1 - bool "Enable I2C1 Bus (User I2C)" - default n - if BSP_USING_I2C1 - comment "Notice: PE4 --> 68; PE5 --> 69" - config BSP_I2C1_SCL_PIN - int "i2c1 SCL pin number" - range 1 176 - default 68 - config BSP_I2C1_SDA_PIN - int "i2c1 SDA pin number" - range 1 176 - default 69 - endif - endif - menuconfig BSP_USING_PWM bool "Enable PWM" default n diff --git a/bsp/stm32/stm32f429-armfly-v6/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32f429-armfly-v6/.ci/attachconfig/ci.attachconfig.yml index 93697a09915..39288ba9ee1 100644 --- a/bsp/stm32/stm32f429-armfly-v6/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/stm32/stm32f429-armfly-v6/.ci/attachconfig/ci.attachconfig.yml @@ -6,4 +6,12 @@ nano: kconfig: - CONFIG_RT_USING_NANO=y - + +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=25 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/stm32/stm32f429-armfly-v6/board/Kconfig b/bsp/stm32/stm32f429-armfly-v6/board/Kconfig index 99b09d498de..ef270c8ebfd 100644 --- a/bsp/stm32/stm32f429-armfly-v6/board/Kconfig +++ b/bsp/stm32/stm32f429-armfly-v6/board/Kconfig @@ -63,7 +63,9 @@ menu "Onboard Peripheral Drivers" config BSP_USING_MPU6050 bool "Enable MPU6050(i2c1)" - select BSP_USING_I2C1 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C1 select PKG_USING_MPU6XXX select PKG_USING_MPU6XXX_SAMPLE select PKG_USING_MPU6XXX_LATEST_VERSION @@ -146,23 +148,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 1 216 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 1 216 - default 25 - endif - menuconfig BSP_USING_TIM bool "Enable timer" default n diff --git a/bsp/stm32/stm32f429-atk-apollo/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32f429-atk-apollo/.ci/attachconfig/ci.attachconfig.yml index 69dfd8a229d..5842675f068 100644 --- a/bsp/stm32/stm32f429-atk-apollo/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/stm32/stm32f429-atk-apollo/.ci/attachconfig/ci.attachconfig.yml @@ -7,4 +7,13 @@ nano: <<: *scons kconfig: - CONFIG_RT_USING_NANO=y - + +devices.soft_i2c: + <<: *scons + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=116 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=117 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/stm32/stm32f429-atk-apollo/board/Kconfig b/bsp/stm32/stm32f429-atk-apollo/board/Kconfig index 151792707e2..55179360141 100644 --- a/bsp/stm32/stm32f429-atk-apollo/board/Kconfig +++ b/bsp/stm32/stm32f429-atk-apollo/board/Kconfig @@ -35,7 +35,9 @@ menu "Onboard Peripheral Drivers" config BSP_USING_MPU9250 bool "Enable MPU 9250 (i2c1)" - select BSP_USING_I2C1 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C1 select PKG_USING_MPU6XXX default n @@ -44,7 +46,9 @@ menu "Onboard Peripheral Drivers" config BSP_USING_ETH bool "Enable Ethernet (Ethernet pin conflict with uart3)" - select BSP_USING_I2C1 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C1 select PKG_USING_PCF8574 select RT_USING_LWIP select PHY_USING_LAN8720A @@ -59,7 +63,9 @@ menu "Onboard Peripheral Drivers" config BSP_USING_AUDIO bool "Enable AUDIO (WM8978)" - select BSP_USING_I2C1 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C1 select RT_USING_AUDIO default n @@ -257,24 +263,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - comment "Notice: PH4 --> 116; PH5 --> 117" - config BSP_I2C1_SCL_PIN - int "I2C1 scl pin number" - range 1 176 - default 116 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 1 176 - default 117 - endif - menuconfig BSP_USING_TIM bool "Enable timer" default n diff --git a/bsp/stm32/stm32f429-fire-challenger/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32f429-fire-challenger/.ci/attachconfig/ci.attachconfig.yml index 69dfd8a229d..bafb8dec3cd 100644 --- a/bsp/stm32/stm32f429-fire-challenger/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/stm32/stm32f429-fire-challenger/.ci/attachconfig/ci.attachconfig.yml @@ -7,4 +7,13 @@ nano: <<: *scons kconfig: - CONFIG_RT_USING_NANO=y - + +devices.soft_i2c: + <<: *scons + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/stm32/stm32f429-fire-challenger/board/Kconfig b/bsp/stm32/stm32f429-fire-challenger/board/Kconfig index c56a1b6a85f..95c8a105f49 100644 --- a/bsp/stm32/stm32f429-fire-challenger/board/Kconfig +++ b/bsp/stm32/stm32f429-fire-challenger/board/Kconfig @@ -35,7 +35,9 @@ menu "Onboard Peripheral Drivers" config BSP_USING_MPU6050 bool "Enable MPU6050 (i2c1)" - select BSP_USING_I2C1 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C1 select PKG_USING_MPU6XXX default n @@ -234,24 +236,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - comment "Notice: PB6 --> 22; PB7 --> 23" - config BSP_I2C1_SCL_PIN - int "I2C1 scl pin number" - range 1 176 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 1 176 - default 23 - endif - menuconfig BSP_USING_ONCHIP_RTC bool "Enable RTC" select RT_USING_RTC diff --git a/bsp/stm32/stm32f429-st-disco/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32f429-st-disco/.ci/attachconfig/ci.attachconfig.yml index 69dfd8a229d..12d7fdc2c90 100644 --- a/bsp/stm32/stm32f429-st-disco/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/stm32/stm32f429-st-disco/.ci/attachconfig/ci.attachconfig.yml @@ -7,4 +7,13 @@ nano: <<: *scons kconfig: - CONFIG_RT_USING_NANO=y - + +devices.soft_i2c: + <<: *scons + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=24 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=25 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/stm32/stm32f429-st-disco/board/Kconfig b/bsp/stm32/stm32f429-st-disco/board/Kconfig index 16195e5a124..3bc09804c62 100644 --- a/bsp/stm32/stm32f429-st-disco/board/Kconfig +++ b/bsp/stm32/stm32f429-st-disco/board/Kconfig @@ -94,23 +94,6 @@ menu "On-chip Peripheral Drivers" endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "I2C1 scl pin number" - range 1 176 - default 24 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 1 176 - default 25 - endif - menuconfig BSP_USING_SPI bool "Enable SPI BUS" select RT_USING_SPI diff --git a/bsp/stm32/stm32f469-st-disco/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32f469-st-disco/.ci/attachconfig/ci.attachconfig.yml index 69787e1e617..08677bbd3cd 100644 --- a/bsp/stm32/stm32f469-st-disco/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/stm32/stm32f469-st-disco/.ci/attachconfig/ci.attachconfig.yml @@ -32,3 +32,13 @@ lvgl.v8.4latest: - CONFIG_BSP_USING_LVGL=y - CONFIG_BSP_USING_LVGL_DEMO=y - CONFIG_PKG_LVGL_USING_V8_4_LATEST=y + +devices.soft_i2c: + <<: *scons + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=24 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=25 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/stm32/stm32f469-st-disco/board/Kconfig b/bsp/stm32/stm32f469-st-disco/board/Kconfig index 93b561d4744..5753f537603 100644 --- a/bsp/stm32/stm32f469-st-disco/board/Kconfig +++ b/bsp/stm32/stm32f469-st-disco/board/Kconfig @@ -40,8 +40,9 @@ menu "Onboard Peripheral Drivers" select BSP_USING_PWM12 select BSP_USING_PWM12_CH1 select BSP_USING_PWM12_CH2 - select BSP_USING_I2C - select BSP_USING_I2C1 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C1 select BSP_USING_SPI select BSP_USING_SPI2 select BSP_SPI2_TX_USING_DMA @@ -90,7 +91,9 @@ menu "Onboard Peripheral Drivers" config BSP_USING_TOUCH bool "Enable touch screen" select RT_USING_TOUCH - select BSP_USING_I2C1 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C1 choice prompt "Touch IC type" @@ -234,24 +237,6 @@ menu "On-chip Peripheral Drivers" endif endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - default n - if BSP_USING_I2C1 - comment "Notice: PB8 --> 24; PB9 --> 25" - config BSP_I2C1_SCL_PIN - int "I2C1 scl pin number" - range 1 176 - default 24 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 1 176 - default 25 - endif - menuconfig BSP_USING_SPI bool "Enable SPI BUS" select RT_USING_SPI diff --git a/bsp/stm32/stm32f746-st-nucleo/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32f746-st-nucleo/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..d626be14a57 --- /dev/null +++ b/bsp/stm32/stm32f746-st-nucleo/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,8 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/stm32/stm32f746-st-nucleo/board/Kconfig b/bsp/stm32/stm32f746-st-nucleo/board/Kconfig index 224cd13c3c3..a72ff027868 100644 --- a/bsp/stm32/stm32f746-st-nucleo/board/Kconfig +++ b/bsp/stm32/stm32f746-st-nucleo/board/Kconfig @@ -163,23 +163,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 175 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 175 - default 23 - endif - menuconfig BSP_USING_TIM bool "Enable timer" default n diff --git a/bsp/stm32/stm32f767-atk-apollo/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32f767-atk-apollo/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..e4699eab7c8 --- /dev/null +++ b/bsp/stm32/stm32f767-atk-apollo/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,12 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=24 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=25 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=116 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=117 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" diff --git a/bsp/stm32/stm32f767-atk-apollo/board/Kconfig b/bsp/stm32/stm32f767-atk-apollo/board/Kconfig index 0bb7894b0ca..4d70d24cc61 100644 --- a/bsp/stm32/stm32f767-atk-apollo/board/Kconfig +++ b/bsp/stm32/stm32f767-atk-apollo/board/Kconfig @@ -27,7 +27,9 @@ menu "Onboard Peripheral Drivers" config BSP_USING_MPU9250 bool "Enable MPU 9250 (i2c2)" - select BSP_USING_I2C2 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C2 select PKG_USING_MPU6XXX default n @@ -36,7 +38,9 @@ menu "Onboard Peripheral Drivers" config BSP_USING_ETH bool "Enable Ethernet" - select BSP_USING_I2C2 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C2 select PKG_USING_PCF8574 select RT_USING_LWIP select PHY_USING_LAN8720A @@ -218,42 +222,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - comment "Notice: PB8 --> 24; PB9 --> 25" - config BSP_I2C1_SCL_PIN - int "I2C1 scl pin number" - range 1 176 - default 24 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 1 176 - default 25 - endif - - menuconfig BSP_USING_I2C2 - bool "Enable I2C2 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C2 - comment "Notice: PH4 --> 116; PH5 --> 117" - config BSP_I2C2_SCL_PIN - int "i2c2 scl pin number" - range 1 176 - default 116 - config BSP_I2C2_SDA_PIN - int "I2C2 sda pin number" - range 1 176 - default 117 - endif - menuconfig BSP_USING_ONCHIP_RTC bool "Enable RTC" select RT_USING_RTC diff --git a/bsp/stm32/stm32f767-fire-challenger-v1/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32f767-fire-challenger-v1/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..d626be14a57 --- /dev/null +++ b/bsp/stm32/stm32f767-fire-challenger-v1/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,8 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/stm32/stm32f767-fire-challenger-v1/board/Kconfig b/bsp/stm32/stm32f767-fire-challenger-v1/board/Kconfig index c55f45c72bd..f0599c7ec62 100644 --- a/bsp/stm32/stm32f767-fire-challenger-v1/board/Kconfig +++ b/bsp/stm32/stm32f767-fire-challenger-v1/board/Kconfig @@ -34,7 +34,9 @@ menu "Onboard Peripheral Drivers" config BSP_USING_MPU6050 bool "Enable MPU6050 (i2c4)" - select BSP_USING_I2C4 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C4 select PKG_USING_MPU6XXX default n @@ -191,24 +193,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - comment "Notice: PB6 --> 22; PB7 --> 23" - config BSP_I2C1_SCL_PIN - int "I2C1 scl pin number" - range 1 176 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 1 176 - default 23 - endif - menuconfig BSP_USING_ONCHIP_RTC bool "Enable RTC" select RT_USING_RTC diff --git a/bsp/stm32/stm32g070-st-nucleo/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32g070-st-nucleo/.ci/attachconfig/ci.attachconfig.yml index e4646070a99..bafb8dec3cd 100644 --- a/bsp/stm32/stm32g070-st-nucleo/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/stm32/stm32g070-st-nucleo/.ci/attachconfig/ci.attachconfig.yml @@ -8,3 +8,12 @@ nano: kconfig: - CONFIG_RT_USING_NANO=y +devices.soft_i2c: + <<: *scons + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/stm32/stm32g070-st-nucleo/board/Kconfig b/bsp/stm32/stm32g070-st-nucleo/board/Kconfig index bbf6869bc49..f7daf9ff34a 100644 --- a/bsp/stm32/stm32g070-st-nucleo/board/Kconfig +++ b/bsp/stm32/stm32g070-st-nucleo/board/Kconfig @@ -204,23 +204,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 63 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 63 - default 23 - endif - menuconfig BSP_USING_ADC bool "Enable ADC" default n diff --git a/bsp/stm32/stm32g071-st-nucleo/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32g071-st-nucleo/.ci/attachconfig/ci.attachconfig.yml index e4646070a99..bafb8dec3cd 100644 --- a/bsp/stm32/stm32g071-st-nucleo/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/stm32/stm32g071-st-nucleo/.ci/attachconfig/ci.attachconfig.yml @@ -8,3 +8,12 @@ nano: kconfig: - CONFIG_RT_USING_NANO=y +devices.soft_i2c: + <<: *scons + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/stm32/stm32g071-st-nucleo/board/Kconfig b/bsp/stm32/stm32g071-st-nucleo/board/Kconfig index 899c308fb49..710da6c25d0 100644 --- a/bsp/stm32/stm32g071-st-nucleo/board/Kconfig +++ b/bsp/stm32/stm32g071-st-nucleo/board/Kconfig @@ -196,23 +196,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 47 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 47 - default 23 - endif - menuconfig BSP_USING_ADC bool "Enable ADC" default n diff --git a/bsp/stm32/stm32g474-st-nucleo/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32g474-st-nucleo/.ci/attachconfig/ci.attachconfig.yml index 2a7fcdfd275..a863524b070 100644 --- a/bsp/stm32/stm32g474-st-nucleo/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/stm32/stm32g474-st-nucleo/.ci/attachconfig/ci.attachconfig.yml @@ -11,4 +11,14 @@ nano: peripheral.arduino: <<: *scons kconfig: - - CONFIG_BSP_USING_ARDUINO=y + - CONFIG_BSP_USING_ARDUINO=y + +devices.soft_i2c: + <<: *scons + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=24 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=25 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/stm32/stm32g474-st-nucleo/board/Kconfig b/bsp/stm32/stm32g474-st-nucleo/board/Kconfig index c43ecd91a8d..0d0096511fd 100644 --- a/bsp/stm32/stm32g474-st-nucleo/board/Kconfig +++ b/bsp/stm32/stm32g474-st-nucleo/board/Kconfig @@ -28,8 +28,9 @@ menu "Onboard Peripheral Drivers" select BSP_USING_PWM4_CH1 select BSP_USING_PWM8 select BSP_USING_PWM8_CH2 - select BSP_USING_I2C - select BSP_USING_I2C1 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C1 select BSP_USING_SPI select BSP_USING_SPI1 # select BSP_SPI1_TX_USING_DMA @@ -249,21 +250,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number (PB8)" - default 24 - config BSP_I2C1_SDA_PIN - int "i2c1 sda pin number (PB9)" - default 25 - endif - source "$(BSP_DIR)/../libraries/HAL_Drivers/drivers/Kconfig" endmenu diff --git a/bsp/stm32/stm32g491-st-nucleo/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32g491-st-nucleo/.ci/attachconfig/ci.attachconfig.yml index e4646070a99..e523d299c97 100644 --- a/bsp/stm32/stm32g491-st-nucleo/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/stm32/stm32g491-st-nucleo/.ci/attachconfig/ci.attachconfig.yml @@ -8,3 +8,20 @@ nano: kconfig: - CONFIG_RT_USING_NANO=y +devices.soft_i2c: + <<: *scons + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=38 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=39 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C3=y + - CONFIG_RT_SOFT_I2C3_SCL_PIN=32 + - CONFIG_RT_SOFT_I2C3_SDA_PIN=33 + - CONFIG_RT_SOFT_I2C3_BUS_NAME="swi2c3" + - CONFIG_RT_USING_SOFT_I2C4=y + - CONFIG_RT_SOFT_I2C4_SCL_PIN=54 + - CONFIG_RT_SOFT_I2C4_SDA_PIN=33 + - CONFIG_RT_SOFT_I2C4_BUS_NAME="swi2c4" diff --git a/bsp/stm32/stm32g491-st-nucleo/board/Kconfig b/bsp/stm32/stm32g491-st-nucleo/board/Kconfig index 9f0dcc53738..af6c4eeab2a 100644 --- a/bsp/stm32/stm32g491-st-nucleo/board/Kconfig +++ b/bsp/stm32/stm32g491-st-nucleo/board/Kconfig @@ -181,57 +181,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C - bool "Enable I2C Bus" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C - config BSP_USING_I2C1 - bool "Enable I2C1 Bus (User I2C)" - default n - if BSP_USING_I2C1 - comment "Notice: PC7 --> 39; PC6 --> 38" - config BSP_I2C1_SCL_PIN - int "i2c1 SCL pin number" - range 1 176 - default 38 - config BSP_I2C1_SDA_PIN - int "i2c1 SDA pin number" - range 1 176 - default 39 - endif - - config BSP_USING_I2C3 - bool "Enable I2C3 Bus (AP3216C/ICM20608/ES8388)" - default n - - if BSP_USING_I2C3 - # Notice: PC0 --> 32; PC1 --> 33 - config BSP_I2C3_SCL_PIN - int - default 32 - config BSP_I2C3_SDA_PIN - int - default 33 - endif - - config BSP_USING_I2C4 - bool "Enable I2C4 Bus (AHT10)" - default n - - if BSP_USING_I2C4 - # Notice: PC1 --> 33; PD6 --> 54 - config BSP_I2C4_SCL_PIN - int - default 54 - config BSP_I2C4_SDA_PIN - int - default 33 - endif - endif - menuconfig BSP_USING_TIM bool "Enable timer" default n diff --git a/bsp/stm32/stm32h503-st-nucleo/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32h503-st-nucleo/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..d626be14a57 --- /dev/null +++ b/bsp/stm32/stm32h503-st-nucleo/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,8 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/stm32/stm32h503-st-nucleo/board/Kconfig b/bsp/stm32/stm32h503-st-nucleo/board/Kconfig index dca564fbdb2..5600e43b6f9 100644 --- a/bsp/stm32/stm32h503-st-nucleo/board/Kconfig +++ b/bsp/stm32/stm32h503-st-nucleo/board/Kconfig @@ -19,8 +19,9 @@ menu "Onboard Peripheral Drivers" select BSP_USING_PWM3_CH1 select BSP_USING_PWM3_CH2 select BSP_USING_PWM3_CH4 - select BSP_USING_I2C - select BSP_USING_I2C2 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C2 select RTDUINO_USING_WIRE imply RTDUINO_USING_SERVO default n @@ -203,21 +204,6 @@ menu "On-chip Peripheral Drivers" endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number (PB.6)" - default 22 - config BSP_I2C1_SDA_PIN - int "i2c1 sda pin number (PB.7)" - default 23 - endif - source "$(BSP_DIR)/../libraries/HAL_Drivers/drivers/Kconfig" endmenu diff --git a/bsp/stm32/stm32h563-st-nucleo/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32h563-st-nucleo/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..08f15d590b4 --- /dev/null +++ b/bsp/stm32/stm32h563-st-nucleo/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,8 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=24 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=25 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/stm32/stm32h563-st-nucleo/board/Kconfig b/bsp/stm32/stm32h563-st-nucleo/board/Kconfig index e718390a9f5..8c537127490 100644 --- a/bsp/stm32/stm32h563-st-nucleo/board/Kconfig +++ b/bsp/stm32/stm32h563-st-nucleo/board/Kconfig @@ -21,8 +21,9 @@ menu "Onboard Peripheral Drivers" select BSP_USING_PWM4 select BSP_USING_PWM4_CH3 select BSP_USING_PWM4_CH4 - select BSP_USING_I2C - select BSP_USING_I2C1 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C1 select RTDUINO_USING_WIRE imply RTDUINO_USING_SERVO default n @@ -211,21 +212,6 @@ menu "On-chip Peripheral Drivers" endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number (PB.8)" - default 24 - config BSP_I2C1_SDA_PIN - int "i2c1 sda pin number (PB.9)" - default 25 - endif - source "$(BSP_DIR)/../libraries/HAL_Drivers/drivers/Kconfig" endmenu diff --git a/bsp/stm32/stm32h743-atk-apollo/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32h743-atk-apollo/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..d389a541c50 --- /dev/null +++ b/bsp/stm32/stm32h743-atk-apollo/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,12 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=116 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=117 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=127 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=125 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" diff --git a/bsp/stm32/stm32h743-atk-apollo/board/Kconfig b/bsp/stm32/stm32h743-atk-apollo/board/Kconfig index 05d4e3c37e0..043cc6fec65 100644 --- a/bsp/stm32/stm32h743-atk-apollo/board/Kconfig +++ b/bsp/stm32/stm32h743-atk-apollo/board/Kconfig @@ -6,7 +6,9 @@ menu "Onboard Peripheral Drivers" bool "Enable COM2(485)" select BSP_USING_UART select BSP_USING_UART2 - select BSP_USING_I2C1 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C1 select PKG_USING_PCF8574 default n @@ -37,8 +39,9 @@ menu "Onboard Peripheral Drivers" config BSP_USING_OV2640 bool "Enable camera (ov2640)" select BSP_USING_DCMI - select BSP_USING_I2C - select BSP_USING_I2C2 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C2 default n endmenu @@ -141,44 +144,6 @@ menu "On-chip Peripheral Drivers" select RT_USING_SPI default n - menuconfig BSP_USING_I2C - bool "Enable I2C BUS (software simulation)" - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - default n - if BSP_USING_I2C - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - if BSP_USING_I2C1 - comment "Notice: PH4 --> 116; PH5 --> 117" - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 1 176 - default 116 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 1 176 - default 117 - endif - - menuconfig BSP_USING_I2C2 - bool "Enable I2C2 BUS (software simulation)" - default n - if BSP_USING_I2C2 - comment "Notice: PH13 --> 125; PH15 --> 127" - config BSP_I2C2_SCL_PIN - int "i2c2 scl pin number" - range 1 176 - default 127 - config BSP_I2C2_SDA_PIN - int "I2C2 sda pin number" - range 1 176 - default 125 - endif - endif - config BSP_USING_ON_CHIP_FLASH bool "Enable on-chip FLASH" default n diff --git a/bsp/stm32/stm32h743-openmv-h7plus/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32h743-openmv-h7plus/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..41fd8a8a94e --- /dev/null +++ b/bsp/stm32/stm32h743-openmv-h7plus/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,12 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=24 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=25 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=26 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=27 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" diff --git a/bsp/stm32/stm32h743-openmv-h7plus/board/Kconfig b/bsp/stm32/stm32h743-openmv-h7plus/board/Kconfig index 8b97b556011..590949d5f55 100644 --- a/bsp/stm32/stm32h743-openmv-h7plus/board/Kconfig +++ b/bsp/stm32/stm32h743-openmv-h7plus/board/Kconfig @@ -137,8 +137,9 @@ menu "Hardware Drivers Config" config BSP_USING_OV5640 bool "Enable camera (ov5640)" select BSP_USING_DCMI - select BSP_USING_I2C - select BSP_USING_I2C1 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C1 select BSP_USING_PWM select BSP_USING_PWM1 select BSP_USING_PWM1_CH1 @@ -148,44 +149,6 @@ menu "Hardware Drivers Config" bool "Enable DCMI" default n - menuconfig BSP_USING_I2C - bool "Enable I2C BUS (software simulation)" - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - default n - if BSP_USING_I2C - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - if BSP_USING_I2C1 - comment "Notice: PB8 --> 24; PB9 --> 25" - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 1 176 - default 24 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 1 176 - default 25 - endif - - menuconfig BSP_USING_I2C2 - bool "Enable I2C2 BUS (software simulation)" - default n - if BSP_USING_I2C2 - comment "Notice: PB10 --> 26; PB11 --> 27" - config BSP_I2C2_SCL_PIN - int "i2c2 scl pin number" - range 1 176 - default 26 - config BSP_I2C2_SDA_PIN - int "I2C2 sda pin number" - range 1 176 - default 27 - endif - endif - menuconfig BSP_USING_PWM bool "Enable PWM" default n diff --git a/bsp/stm32/stm32h750-armfly-h7-tool/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32h750-armfly-h7-tool/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..f8eb7b46bc8 --- /dev/null +++ b/bsp/stm32/stm32h750-armfly-h7-tool/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,8 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=135 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=95 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/stm32/stm32h750-armfly-h7-tool/board/Kconfig b/bsp/stm32/stm32h750-armfly-h7-tool/board/Kconfig index 8a223ef349e..f0e7d63b76a 100644 --- a/bsp/stm32/stm32h750-armfly-h7-tool/board/Kconfig +++ b/bsp/stm32/stm32h750-armfly-h7-tool/board/Kconfig @@ -128,23 +128,6 @@ menu "On-chip Peripheral Drivers" bool "Enable QSPI DMA support" default n - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 1 216 - default 135 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 1 216 - default 95 - endif - menuconfig BSP_USING_PWM bool "Enable PWM" default n diff --git a/bsp/stm32/stm32h750-artpi/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32h750-artpi/.ci/attachconfig/ci.attachconfig.yml index 6df31cf648f..5e2d390d275 100644 --- a/bsp/stm32/stm32h750-artpi/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/stm32/stm32h750-artpi/.ci/attachconfig/ci.attachconfig.yml @@ -25,4 +25,22 @@ package.iot.btstack: - CONFIG_BSP_USING_SPI_FLASH=y - CONFIG_PKG_USING_BTSTACK=y - CONFIG_PKG_BTSTACK_SAMPLE_LE_COUNTER=y - - CONFIG_PKG_USING_BTSTACK_LATEST_VERSION=y \ No newline at end of file + - CONFIG_PKG_USING_BTSTACK_LATEST_VERSION=y + +devices.soft_i2c: + <<: *scons + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=127 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=125 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" + - CONFIG_RT_USING_SOFT_I2C3=y + - CONFIG_RT_SOFT_I2C3_SCL_PIN=123 + - CONFIG_RT_SOFT_I2C3_SDA_PIN=124 + - CONFIG_RT_SOFT_I2C3_BUS_NAME="swi2c3" diff --git a/bsp/stm32/stm32h750-artpi/board/Kconfig b/bsp/stm32/stm32h750-artpi/board/Kconfig index 68b2ed588d8..afccd772beb 100644 --- a/bsp/stm32/stm32h750-artpi/board/Kconfig +++ b/bsp/stm32/stm32h750-artpi/board/Kconfig @@ -34,9 +34,9 @@ menu "Board extended module" config MEDIA_IO_USING_TOUCH select RT_USING_I2C - select RT_USING_I2C_BITOPS - select BSP_USING_I2C - select BSP_USING_I2C2 + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C2 + select RT_USING_SOFT_I2C3 select PKG_USING_FT6236 bool "Enable Touch" default y @@ -44,9 +44,6 @@ menu "Board extended module" config MEDIA_IO_USING_AUDIO select RT_USING_AUDIO select RT_USING_I2C - select RT_USING_I2C_BITOPS - select BSP_USING_I2C - select BSP_USING_I2C3 bool "Enable Audio" default y if MEDIA_IO_USING_AUDIO @@ -285,60 +282,6 @@ menu "On-chip Peripheral Drivers" select RT_USING_RTC default n - menuconfig BSP_USING_I2C - bool "Enable I2C BUS (software simulation)" - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - default n - if BSP_USING_I2C - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - comment "Notice: PB6 --> 22; PB7 --> 23" - config BSP_I2C1_SCL_PIN - int "I2C1 scl pin number" - range 0 175 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 175 - default 23 - endif - menuconfig BSP_USING_I2C2 - bool "Enable I2C2 BUS (software simulation)" - default n - if BSP_USING_I2C2 - comment "Notice: PH13 --> 125; PH15 --> 127" - config BSP_I2C2_SCL_PIN - int "i2c2 scl pin number" - range 1 176 - default 127 - config BSP_I2C2_SDA_PIN - int "I2C2 sda pin number" - range 0 175 - default 125 - endif - menuconfig BSP_USING_I2C3 - bool "Enable I2C3 BUS (software simulation)" - default n - if BSP_USING_I2C3 - comment "Notice: PH12 --> 124; PH11 --> 123" - config BSP_I2C3_SCL_PIN - int "i2c3 scl pin number" - range 0 175 - default 123 - config BSP_I2C3_SDA_PIN - int "I2C3 sda pin number" - range 0 175 - default 124 - endif - endif - config BSP_USING_SDRAM bool "Enable SDRAM" select RT_USING_MEMHEAP diff --git a/bsp/stm32/stm32h750-fk750m1-vbt6/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32h750-fk750m1-vbt6/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..41fd8a8a94e --- /dev/null +++ b/bsp/stm32/stm32h750-fk750m1-vbt6/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,12 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=24 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=25 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=26 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=27 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" diff --git a/bsp/stm32/stm32h750-fk750m1-vbt6/board/Kconfig b/bsp/stm32/stm32h750-fk750m1-vbt6/board/Kconfig index bc0b917610b..2e2c1a98e64 100644 --- a/bsp/stm32/stm32h750-fk750m1-vbt6/board/Kconfig +++ b/bsp/stm32/stm32h750-fk750m1-vbt6/board/Kconfig @@ -13,8 +13,9 @@ menu "Onboard Peripheral Drivers" config BSP_USING_OV2640 bool "Enable camera (ov2640)" select BSP_USING_DCMI - select BSP_USING_I2C - select BSP_USING_I2C1 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C1 default n endmenu @@ -95,44 +96,6 @@ menu "On-chip Peripheral Drivers" bool "Enable DCMI" default n - menuconfig BSP_USING_I2C - bool "Enable I2C BUS (software simulation)" - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - default n - if BSP_USING_I2C - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - if BSP_USING_I2C1 - comment "Notice: PB8 --> 24; PB9 --> 25" - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 1 176 - default 24 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 1 176 - default 25 - endif - - menuconfig BSP_USING_I2C2 - bool "Enable I2C2 BUS (software simulation)" - default n - if BSP_USING_I2C2 - comment "Notice: PB10 --> 26; PB11 --> 27" - config BSP_I2C2_SCL_PIN - int "i2c2 scl pin number" - range 1 176 - default 26 - config BSP_I2C2_SDA_PIN - int "I2C2 sda pin number" - range 1 176 - default 27 - endif - endif - menuconfig BSP_USING_ONCHIP_RTC bool "Enable RTC" select RT_USING_RTC diff --git a/bsp/stm32/stm32h750-weact-ministm32h7xx/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32h750-weact-ministm32h7xx/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..f8eb7b46bc8 --- /dev/null +++ b/bsp/stm32/stm32h750-weact-ministm32h7xx/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,8 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=135 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=95 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/stm32/stm32h750-weact-ministm32h7xx/board/Kconfig b/bsp/stm32/stm32h750-weact-ministm32h7xx/board/Kconfig index cc302ec0971..cd7d45c12a8 100644 --- a/bsp/stm32/stm32h750-weact-ministm32h7xx/board/Kconfig +++ b/bsp/stm32/stm32h750-weact-ministm32h7xx/board/Kconfig @@ -118,23 +118,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 1 216 - default 135 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 1 216 - default 95 - endif - menuconfig BSP_USING_PWM bool "Enable pwm" default n diff --git a/bsp/stm32/stm32h7r7-artpi2/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32h7r7-artpi2/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..6f3d6478a10 --- /dev/null +++ b/bsp/stm32/stm32h7r7-artpi2/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,16 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=127 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=125 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" + - CONFIG_RT_USING_SOFT_I2C3=y + - CONFIG_RT_SOFT_I2C3_SCL_PIN=123 + - CONFIG_RT_SOFT_I2C3_SDA_PIN=124 + - CONFIG_RT_SOFT_I2C3_BUS_NAME="swi2c3" diff --git a/bsp/stm32/stm32h7r7-artpi2/board/Kconfig b/bsp/stm32/stm32h7r7-artpi2/board/Kconfig index 7152f927ec7..82e330e66e8 100644 --- a/bsp/stm32/stm32h7r7-artpi2/board/Kconfig +++ b/bsp/stm32/stm32h7r7-artpi2/board/Kconfig @@ -192,60 +192,6 @@ menu "On-chip Peripheral Drivers" select RT_USING_RTC default n - menuconfig BSP_USING_I2C - bool "Enable I2C BUS (software simulation)" - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - default n - if BSP_USING_I2C - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - comment "Notice: PB6 --> 22; PB7 --> 23" - config BSP_I2C1_SCL_PIN - int "I2C1 scl pin number" - range 0 175 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 175 - default 23 - endif - menuconfig BSP_USING_I2C2 - bool "Enable I2C2 BUS (software simulation)" - default n - if BSP_USING_I2C2 - comment "Notice: PH13 --> 125; PH15 --> 127" - config BSP_I2C2_SCL_PIN - int "i2c2 scl pin number" - range 1 176 - default 127 - config BSP_I2C2_SDA_PIN - int "I2C2 sda pin number" - range 0 175 - default 125 - endif - menuconfig BSP_USING_I2C3 - bool "Enable I2C3 BUS (software simulation)" - default n - if BSP_USING_I2C3 - comment "Notice: PH12 --> 124; PH11 --> 123" - config BSP_I2C3_SCL_PIN - int "i2c3 scl pin number" - range 0 175 - default 123 - config BSP_I2C3_SDA_PIN - int "I2C3 sda pin number" - range 0 175 - default 124 - endif - endif - config BSP_USING_USBD bool "Enable USB Device" select RT_USING_USB_DEVICE diff --git a/bsp/stm32/stm32h7s7-st-disco/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32h7s7-st-disco/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..6f3d6478a10 --- /dev/null +++ b/bsp/stm32/stm32h7s7-st-disco/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,16 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=127 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=125 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" + - CONFIG_RT_USING_SOFT_I2C3=y + - CONFIG_RT_SOFT_I2C3_SCL_PIN=123 + - CONFIG_RT_SOFT_I2C3_SDA_PIN=124 + - CONFIG_RT_SOFT_I2C3_BUS_NAME="swi2c3" diff --git a/bsp/stm32/stm32h7s7-st-disco/board/Kconfig b/bsp/stm32/stm32h7s7-st-disco/board/Kconfig index 43ee16e9560..7eee7163df7 100644 --- a/bsp/stm32/stm32h7s7-st-disco/board/Kconfig +++ b/bsp/stm32/stm32h7s7-st-disco/board/Kconfig @@ -179,60 +179,6 @@ menu "On-chip Peripheral Drivers" select RT_USING_RTC default n - menuconfig BSP_USING_I2C - bool "Enable I2C BUS (software simulation)" - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - default n - if BSP_USING_I2C - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - comment "Notice: PB6 --> 22; PB7 --> 23" - config BSP_I2C1_SCL_PIN - int "I2C1 scl pin number" - range 0 175 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 175 - default 23 - endif - menuconfig BSP_USING_I2C2 - bool "Enable I2C2 BUS (software simulation)" - default n - if BSP_USING_I2C2 - comment "Notice: PH13 --> 125; PH15 --> 127" - config BSP_I2C2_SCL_PIN - int "i2c2 scl pin number" - range 1 176 - default 127 - config BSP_I2C2_SDA_PIN - int "I2C2 sda pin number" - range 0 175 - default 125 - endif - menuconfig BSP_USING_I2C3 - bool "Enable I2C3 BUS (software simulation)" - default n - if BSP_USING_I2C3 - comment "Notice: PH12 --> 124; PH11 --> 123" - config BSP_I2C3_SCL_PIN - int "i2c3 scl pin number" - range 0 175 - default 123 - config BSP_I2C3_SDA_PIN - int "I2C3 sda pin number" - range 0 175 - default 124 - endif - endif - config BSP_USING_USBD bool "Enable USB Device" select RT_USING_USB_DEVICE diff --git a/bsp/stm32/stm32l431-BearPi/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32l431-BearPi/.ci/attachconfig/ci.attachconfig.yml index 2a7fcdfd275..4fec7a3cf35 100644 --- a/bsp/stm32/stm32l431-BearPi/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/stm32/stm32l431-BearPi/.ci/attachconfig/ci.attachconfig.yml @@ -11,4 +11,14 @@ nano: peripheral.arduino: <<: *scons kconfig: - - CONFIG_BSP_USING_ARDUINO=y + - CONFIG_BSP_USING_ARDUINO=y + +devices.soft_i2c: + <<: *scons + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/stm32/stm32l431-BearPi/board/Kconfig b/bsp/stm32/stm32l431-BearPi/board/Kconfig index e1589dc2aad..24605a204fc 100644 --- a/bsp/stm32/stm32l431-BearPi/board/Kconfig +++ b/bsp/stm32/stm32l431-BearPi/board/Kconfig @@ -108,23 +108,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 143 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 143 - default 23 - endif - menuconfig BSP_USING_PWM bool "Enable PWM" default n @@ -210,8 +193,9 @@ menu "Onboard Peripheral Drivers" select BSP_USING_PWM16 select BSP_USING_PWM16_CH1 select BSP_USING_PWM1_CH1 - select BSP_USING_I2C - select BSP_USING_I2C1 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C1 select BSP_USING_SPI select BSP_USING_SPI1 select BSP_SPI1_TX_USING_DMA @@ -223,8 +207,9 @@ menu "Onboard Peripheral Drivers" config BSP_USING_MPU6050 bool "Enable MPU6050 to read accel data" - select BSP_USING_I2C - select BSP_USING_I2C1 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C1 select PKG_USING_MPU6XXX default n if BSP_USING_MPU6050 diff --git a/bsp/stm32/stm32l431-tencentos-tiny-EVB_MX+/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32l431-tencentos-tiny-EVB_MX+/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..6304b7700be --- /dev/null +++ b/bsp/stm32/stm32l431-tencentos-tiny-EVB_MX+/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,8 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=25 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/stm32/stm32l431-tencentos-tiny-EVB_MX+/board/Kconfig b/bsp/stm32/stm32l431-tencentos-tiny-EVB_MX+/board/Kconfig index c5ef1f03832..eaf6f65297e 100644 --- a/bsp/stm32/stm32l431-tencentos-tiny-EVB_MX+/board/Kconfig +++ b/bsp/stm32/stm32l431-tencentos-tiny-EVB_MX+/board/Kconfig @@ -192,23 +192,6 @@ menu "On-chip Peripheral Drivers" select BSP_USING_SDIO default n - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 1 216 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 1 216 - default 25 - endif - source "$(BSP_DIR)/../libraries/HAL_Drivers/drivers/Kconfig" endmenu diff --git a/bsp/stm32/stm32l433-ali-startkit/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32l433-ali-startkit/.ci/attachconfig/ci.attachconfig.yml index e4646070a99..07fb2b45b57 100644 --- a/bsp/stm32/stm32l433-ali-startkit/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/stm32/stm32l433-ali-startkit/.ci/attachconfig/ci.attachconfig.yml @@ -8,3 +8,20 @@ nano: kconfig: - CONFIG_RT_USING_NANO=y +devices.soft_i2c: + <<: *scons + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=29 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=30 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" + - CONFIG_RT_USING_SOFT_I2C3=y + - CONFIG_RT_SOFT_I2C3_SCL_PIN=32 + - CONFIG_RT_SOFT_I2C3_SDA_PIN=33 + - CONFIG_RT_SOFT_I2C3_BUS_NAME="swi2c3" + - CONFIG_RT_USING_SOFT_I2C4=y + - CONFIG_RT_SOFT_I2C4_SCL_PIN=60 + - CONFIG_RT_SOFT_I2C4_SDA_PIN=61 + - CONFIG_RT_SOFT_I2C4_BUS_NAME="swi2c4" diff --git a/bsp/stm32/stm32l433-ali-startkit/board/Kconfig b/bsp/stm32/stm32l433-ali-startkit/board/Kconfig index d42f7465c51..54b7ca78ca3 100644 --- a/bsp/stm32/stm32l433-ali-startkit/board/Kconfig +++ b/bsp/stm32/stm32l433-ali-startkit/board/Kconfig @@ -145,56 +145,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C - bool "Enable I2C BUS" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C - menuconfig BSP_USING_I2C2 - bool "Enable I2C2 BUS (software simulation)" - default n - if BSP_USING_I2C2 - config BSP_I2C2_SCL_PIN - int "i2c2 scl pin number" - range 1 176 - default 29 - config BSP_I2C2_SDA_PIN - int "I2C2 sda pin number" - range 1 176 - default 30 - endif - - menuconfig BSP_USING_I2C3 - bool "Enable I2C3 BUS (software simulation)" - default n - if BSP_USING_I2C3 - config BSP_I2C3_SCL_PIN - int "i2c3 scl pin number" - range 1 176 - default 32 - config BSP_I2C3_SDA_PIN - int "I2C3 sda pin number" - range 1 176 - default 33 - endif - - menuconfig BSP_USING_I2C4 - bool "Enable I2C4 BUS (software simulation)" - default y - if BSP_USING_I2C4 - config BSP_I2C4_SCL_PIN - int "i2c4 scl pin number" - range 1 176 - default 60 - config BSP_I2C4_SDA_PIN - int "i2c4 sda pin number" - range 1 176 - default 61 - endif - endif - config BSP_USING_SDIO bool "Enable sdio" select RT_USING_SDIO diff --git a/bsp/stm32/stm32l452-st-nucleo/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32l452-st-nucleo/.ci/attachconfig/ci.attachconfig.yml index e4646070a99..38f5930b0fd 100644 --- a/bsp/stm32/stm32l452-st-nucleo/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/stm32/stm32l452-st-nucleo/.ci/attachconfig/ci.attachconfig.yml @@ -8,3 +8,12 @@ nano: kconfig: - CONFIG_RT_USING_NANO=y +devices.soft_i2c: + <<: *scons + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=15 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=16 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/stm32/stm32l452-st-nucleo/board/Kconfig b/bsp/stm32/stm32l452-st-nucleo/board/Kconfig index f320a25f50e..8038e3b264f 100644 --- a/bsp/stm32/stm32l452-st-nucleo/board/Kconfig +++ b/bsp/stm32/stm32l452-st-nucleo/board/Kconfig @@ -111,22 +111,6 @@ menu "On-chip Peripheral Drivers" config BSP_USING_ON_CHIP_FLASH bool "Enable on-chip FLASH" default n - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 1 176 - default 15 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 1 176 - default 16 - endif source "$(BSP_DIR)/../libraries/HAL_Drivers/drivers/Kconfig" endmenu diff --git a/bsp/stm32/stm32l475-atk-pandora/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32l475-atk-pandora/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..f1ffa2baad6 --- /dev/null +++ b/bsp/stm32/stm32l475-atk-pandora/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,16 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=38 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=39 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C3=y + - CONFIG_RT_SOFT_I2C3_SCL_PIN=32 + - CONFIG_RT_SOFT_I2C3_SDA_PIN=33 + - CONFIG_RT_SOFT_I2C3_BUS_NAME="swi2c3" + - CONFIG_RT_USING_SOFT_I2C4=y + - CONFIG_RT_SOFT_I2C4_SCL_PIN=54 + - CONFIG_RT_SOFT_I2C4_SDA_PIN=33 + - CONFIG_RT_SOFT_I2C4_BUS_NAME="swi2c4" diff --git a/bsp/stm32/stm32l475-atk-pandora/board/Kconfig b/bsp/stm32/stm32l475-atk-pandora/board/Kconfig index de2fc8ce25f..9e1601c7b58 100644 --- a/bsp/stm32/stm32l475-atk-pandora/board/Kconfig +++ b/bsp/stm32/stm32l475-atk-pandora/board/Kconfig @@ -27,8 +27,9 @@ menu "Onboard Peripheral Drivers" select BSP_USING_PWM4_CH4 select BSP_USING_ADC select BSP_USING_ADC1 - select BSP_USING_I2C - select BSP_USING_I2C1 # PC7-SDA PC6-SCL (User I2C) + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C1 # PC7-SDA PC6-SCL (User I2C) select BSP_USING_DAC select BSP_USING_DAC1 select BSP_USING_SPI @@ -75,7 +76,9 @@ menu "Onboard Peripheral Drivers" config BSP_USING_ARDUINO_AHT10 bool "Enable Arduino AHT10 sensor library" - select BSP_USING_I2C4 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C4 select PKG_USING_ARDUINO_ADAFRUIT_AHTX0 depends on !BSP_USING_AHT10 default n @@ -88,13 +91,17 @@ menu "Onboard Peripheral Drivers" config BSP_USING_ARDUINO_AP3216 bool - select BSP_USING_I2C3 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C3 depends on !BSP_USING_AP3216C default n config BSP_USING_ARDUINO_ICM20608 bool - select BSP_USING_I2C3 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C3 depends on !BSP_USING_ICM20608 default n endif @@ -176,24 +183,27 @@ menu "Onboard Peripheral Drivers" config BSP_USING_ICM20608 bool "Enable ICM20608 (i2c3)" - select BSP_USING_I2C - select BSP_USING_I2C3 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C3 select PKG_USING_MPU6XXX select PKG_USING_MPU6XXX_LATEST_VERSION default n config BSP_USING_AHT10 bool "Enable AHT10 (i2c4)" - select BSP_USING_I2C - select BSP_USING_I2C4 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C4 select PKG_USING_AHT10 select AHT10_USING_SENSOR_DEVICE default n config BSP_USING_AP3216C bool "Enable AP3216C (i2c3)" - select BSP_USING_I2C - select BSP_USING_I2C3 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C3 select PKG_USING_AP3216C select AP3216C_USING_SENSOR_DEVICE default n @@ -201,8 +211,9 @@ menu "Onboard Peripheral Drivers" menuconfig BSP_USING_AUDIO bool "Enable Audio Device" select RT_USING_AUDIO - select BSP_USING_I2C - select BSP_USING_I2C3 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C3 default n if BSP_USING_AUDIO @@ -424,57 +435,6 @@ menu "On-chip Peripheral Drivers" bool "Enable QSPI DMA support" default n - menuconfig BSP_USING_I2C - bool "Enable I2C Bus" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C - config BSP_USING_I2C1 - bool "Enable I2C1 Bus (User I2C)" - default n - if BSP_USING_I2C1 - comment "Notice: PC7 --> 39; PC6 --> 38" - config BSP_I2C1_SCL_PIN - int "i2c1 SCL pin number" - range 1 176 - default 38 - config BSP_I2C1_SDA_PIN - int "i2c1 SDA pin number" - range 1 176 - default 39 - endif - - config BSP_USING_I2C3 - bool "Enable I2C3 Bus (AP3216C/ICM20608/ES8388)" - default n - - if BSP_USING_I2C3 - # Notice: PC0 --> 32; PC1 --> 33 - config BSP_I2C3_SCL_PIN - int - default 32 - config BSP_I2C3_SDA_PIN - int - default 33 - endif - - config BSP_USING_I2C4 - bool "Enable I2C4 Bus (AHT10)" - default n - - if BSP_USING_I2C4 - # Notice: PC1 --> 33; PD6 --> 54 - config BSP_I2C4_SCL_PIN - int - default 54 - config BSP_I2C4_SDA_PIN - int - default 33 - endif - endif - menuconfig BSP_USING_TIM bool "Enable timer" default n diff --git a/bsp/stm32/stm32l476-st-nucleo/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32l476-st-nucleo/.ci/attachconfig/ci.attachconfig.yml index 2a7fcdfd275..3bceff88637 100644 --- a/bsp/stm32/stm32l476-st-nucleo/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/stm32/stm32l476-st-nucleo/.ci/attachconfig/ci.attachconfig.yml @@ -11,4 +11,22 @@ nano: peripheral.arduino: <<: *scons kconfig: - - CONFIG_BSP_USING_ARDUINO=y + - CONFIG_BSP_USING_ARDUINO=y + +devices.soft_i2c: + <<: *scons + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=24 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=25 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=26 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=27 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" + - CONFIG_RT_USING_SOFT_I2C3=y + - CONFIG_RT_SOFT_I2C3_SCL_PIN=32 + - CONFIG_RT_SOFT_I2C3_SDA_PIN=33 + - CONFIG_RT_SOFT_I2C3_BUS_NAME="swi2c3" diff --git a/bsp/stm32/stm32l476-st-nucleo/board/Kconfig b/bsp/stm32/stm32l476-st-nucleo/board/Kconfig index a8e9ee55f38..78acb3b9484 100644 --- a/bsp/stm32/stm32l476-st-nucleo/board/Kconfig +++ b/bsp/stm32/stm32l476-st-nucleo/board/Kconfig @@ -28,8 +28,9 @@ menu "Onboard Peripheral Drivers" select BSP_USING_PWM4_CH1 select BSP_USING_PWM17 select BSP_USING_PWM17_CH1 - select BSP_USING_I2C - select BSP_USING_I2C1 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C1 select BSP_USING_SPI select BSP_USING_SPI1 select BSP_SPI1_TX_USING_DMA @@ -92,63 +93,6 @@ menu "On-chip Peripheral Drivers" endif endif - menuconfig BSP_USING_I2C - bool "Enable I2C (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - - if BSP_USING_I2C - config BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number (PB8)" - range 1 176 - default 24 - - config BSP_I2C1_SDA_PIN - int "i2c1 sda pin number (PB9)" - range 1 176 - default 25 - endif - - config BSP_USING_I2C2 - bool "Enable I2C2 BUS (software simulation)" - default n - - if BSP_USING_I2C2 - config BSP_I2C2_SCL_PIN - int "i2c2 scl pin number" - range 1 176 - default 26 - - config BSP_I2C2_SDA_PIN - int "I2C2 sda pin number" - range 1 176 - default 27 - endif - - config BSP_USING_I2C3 - bool "Enable I2C3 BUS (software simulation)" - default n - - if BSP_USING_I2C3 - config BSP_I2C3_SCL_PIN - int "i2c3 scl pin number" - range 1 176 - default 32 - - config BSP_I2C3_SDA_PIN - int "I2C3 sda pin number" - range 1 176 - default 33 - endif - endif - menuconfig BSP_USING_SPI bool "Enable SPI BUS" default n diff --git a/bsp/stm32/stm32l496-ali-developer/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32l496-ali-developer/.ci/attachconfig/ci.attachconfig.yml index e4646070a99..07fb2b45b57 100644 --- a/bsp/stm32/stm32l496-ali-developer/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/stm32/stm32l496-ali-developer/.ci/attachconfig/ci.attachconfig.yml @@ -8,3 +8,20 @@ nano: kconfig: - CONFIG_RT_USING_NANO=y +devices.soft_i2c: + <<: *scons + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=29 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=30 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" + - CONFIG_RT_USING_SOFT_I2C3=y + - CONFIG_RT_SOFT_I2C3_SCL_PIN=32 + - CONFIG_RT_SOFT_I2C3_SDA_PIN=33 + - CONFIG_RT_SOFT_I2C3_BUS_NAME="swi2c3" + - CONFIG_RT_USING_SOFT_I2C4=y + - CONFIG_RT_SOFT_I2C4_SCL_PIN=60 + - CONFIG_RT_SOFT_I2C4_SDA_PIN=61 + - CONFIG_RT_SOFT_I2C4_BUS_NAME="swi2c4" diff --git a/bsp/stm32/stm32l496-ali-developer/board/Kconfig b/bsp/stm32/stm32l496-ali-developer/board/Kconfig index 56643f8cdd2..fe912307d9a 100644 --- a/bsp/stm32/stm32l496-ali-developer/board/Kconfig +++ b/bsp/stm32/stm32l496-ali-developer/board/Kconfig @@ -153,56 +153,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C - bool "Enable I2C BUS" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C - menuconfig BSP_USING_I2C2 - bool "Enable I2C2 BUS (software simulation)" - default n - if BSP_USING_I2C2 - config BSP_I2C2_SCL_PIN - int "i2c2 scl pin number" - range 1 176 - default 29 - config BSP_I2C2_SDA_PIN - int "I2C2 sda pin number" - range 1 176 - default 30 - endif - - menuconfig BSP_USING_I2C3 - bool "Enable I2C3 BUS (software simulation)" - default n - if BSP_USING_I2C3 - config BSP_I2C3_SCL_PIN - int "i2c3 scl pin number" - range 1 176 - default 32 - config BSP_I2C3_SDA_PIN - int "I2C3 sda pin number" - range 1 176 - default 33 - endif - - menuconfig BSP_USING_I2C4 - bool "Enable I2C4 BUS (software simulation)" - default y - if BSP_USING_I2C4 - config BSP_I2C4_SCL_PIN - int "i2c4 scl pin number" - range 1 176 - default 60 - config BSP_I2C4_SDA_PIN - int "i2c4 sda pin number" - range 1 176 - default 61 - endif - endif - config BSP_USING_SDIO bool "Enable sdio" select RT_USING_SDIO diff --git a/bsp/stm32/stm32l496-st-nucleo/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32l496-st-nucleo/.ci/attachconfig/ci.attachconfig.yml index 21dbe5769b5..1b4eaf569b9 100644 --- a/bsp/stm32/stm32l496-st-nucleo/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/stm32/stm32l496-st-nucleo/.ci/attachconfig/ci.attachconfig.yml @@ -110,3 +110,16 @@ component.cherryusb_cdc: - CONFIG_RT_CHERRYUSB_DEVICE_DWC2_ST=y - CONFIG_RT_CHERRYUSB_DEVICE_CDC_ACM=y - CONFIG_RT_CHERRYUSB_DEVICE_TEMPLATE_CDC_ACM=y + +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C3=y + - CONFIG_RT_SOFT_I2C3_SCL_PIN=32 + - CONFIG_RT_SOFT_I2C3_SDA_PIN=33 + - CONFIG_RT_SOFT_I2C3_BUS_NAME="swi2c3" + - CONFIG_RT_USING_SOFT_I2C4=y + - CONFIG_RT_SOFT_I2C4_SCL_PIN=54 + - CONFIG_RT_SOFT_I2C4_SDA_PIN=33 + - CONFIG_RT_SOFT_I2C4_BUS_NAME="swi2c4" diff --git a/bsp/stm32/stm32l496-st-nucleo/board/Kconfig b/bsp/stm32/stm32l496-st-nucleo/board/Kconfig index f0c35b330a8..f0e4aee4bfb 100644 --- a/bsp/stm32/stm32l496-st-nucleo/board/Kconfig +++ b/bsp/stm32/stm32l496-st-nucleo/board/Kconfig @@ -103,44 +103,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C - bool "Enable I2C BUS" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C - menuconfig BSP_USING_I2C3 - bool "Enable I2C3 BUS" - default y - if BSP_USING_I2C3 - comment "Notice: PC0 --> 32; PC1 --> 33" - config BSP_I2C3_SCL_PIN - int "i2c3 scl pin number" - range 1 176 - default 32 - config BSP_I2C3_SDA_PIN - int "I2C3 sda pin number" - range 1 176 - default 33 - endif - - menuconfig BSP_USING_I2C4 - bool "Enable I2C4 BUS" - default n - if BSP_USING_I2C4 - comment "Notice: PC1 --> 33; PD6 --> 54" - config BSP_I2C4_SCL_PIN - int "i2c4 scl pin number" - range 1 176 - default 54 - config BSP_I2C4_SDA_PIN - int "I2C4 sda pin number" - range 1 176 - default 33 - endif - endif - menuconfig BSP_USING_SPI bool "Enable SPI Bus" default n diff --git a/bsp/stm32/stm32l4r5-st-nucleo/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32l4r5-st-nucleo/.ci/attachconfig/ci.attachconfig.yml index e4646070a99..8e718423d0c 100644 --- a/bsp/stm32/stm32l4r5-st-nucleo/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/stm32/stm32l4r5-st-nucleo/.ci/attachconfig/ci.attachconfig.yml @@ -8,3 +8,16 @@ nano: kconfig: - CONFIG_RT_USING_NANO=y +devices.soft_i2c: + <<: *scons + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=100 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=101 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=10 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=11 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" diff --git a/bsp/stm32/stm32l4r5-st-nucleo/board/Kconfig b/bsp/stm32/stm32l4r5-st-nucleo/board/Kconfig index 24bbfa43516..abdbd44972c 100644 --- a/bsp/stm32/stm32l4r5-st-nucleo/board/Kconfig +++ b/bsp/stm32/stm32l4r5-st-nucleo/board/Kconfig @@ -285,41 +285,6 @@ menu "Hardware Drivers Config" default n endif - menuconfig BSP_USING_I2C - bool "Enable using I2C BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 1 144 - default 100 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 1 144 - default 101 - endif - menuconfig BSP_USING_I2C2 - bool "Enable I2C2 BUS (software simulation)" - default n - if BSP_USING_I2C2 - config BSP_I2C2_SCL_PIN - int "i2c2 scl pin number" - range 1 144 - default 10 - config BSP_I2C2_SDA_PIN - int "I2C2 sda pin number" - range 1 144 - default 11 - endif - endif - menuconfig BSP_USING_TIM bool "Enable timer" default n diff --git a/bsp/stm32/stm32l4r9-st-eval/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32l4r9-st-eval/.ci/attachconfig/ci.attachconfig.yml index e4646070a99..5842675f068 100644 --- a/bsp/stm32/stm32l4r9-st-eval/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/stm32/stm32l4r9-st-eval/.ci/attachconfig/ci.attachconfig.yml @@ -8,3 +8,12 @@ nano: kconfig: - CONFIG_RT_USING_NANO=y +devices.soft_i2c: + <<: *scons + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=116 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=117 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/stm32/stm32l4r9-st-eval/board/Kconfig b/bsp/stm32/stm32l4r9-st-eval/board/Kconfig index 6a34d32811c..63d1be88b74 100644 --- a/bsp/stm32/stm32l4r9-st-eval/board/Kconfig +++ b/bsp/stm32/stm32l4r9-st-eval/board/Kconfig @@ -18,7 +18,9 @@ menu "Onboard Peripheral Drivers" config BSP_USING_TOUCH bool "Enable Touch drivers" - select BSP_USING_I2C1 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C1 default n if BSP_USING_TOUCH config BSP_TOUCH_INT_PIN @@ -93,23 +95,6 @@ menu "On-chip Peripheral Drivers" select BSP_USING_FMC default n - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 1 216 - default 116 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 1 216 - default 117 - endif - config BSP_USING_GFXMMU bool default n diff --git a/bsp/stm32/stm32mp157a-st-discovery/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32mp157a-st-discovery/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..3b17a1f4834 --- /dev/null +++ b/bsp/stm32/stm32mp157a-st-discovery/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,20 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=55 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=111 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=116 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=117 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" + - CONFIG_RT_USING_SOFT_I2C3=y + - CONFIG_RT_SOFT_I2C3_SCL_PIN=180 + - CONFIG_RT_SOFT_I2C3_SDA_PIN=181 + - CONFIG_RT_SOFT_I2C3_BUS_NAME="swi2c3" + - CONFIG_RT_USING_SOFT_I2C4=y + - CONFIG_RT_SOFT_I2C4_SCL_PIN=60 + - CONFIG_RT_SOFT_I2C4_SDA_PIN=95 + - CONFIG_RT_SOFT_I2C4_BUS_NAME="swi2c4" diff --git a/bsp/stm32/stm32mp157a-st-discovery/board/Kconfig b/bsp/stm32/stm32mp157a-st-discovery/board/Kconfig index 05c61bf8b95..4acb51eab3b 100644 --- a/bsp/stm32/stm32mp157a-st-discovery/board/Kconfig +++ b/bsp/stm32/stm32mp157a-st-discovery/board/Kconfig @@ -14,8 +14,9 @@ menu "Onboard Peripheral Drivers" config BSP_USING_PMIC bool "Enable PMIC" - select BSP_USING_I2C - select BSP_USING_I2C3 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C3 default y config BSP_USING_PWR @@ -75,8 +76,9 @@ menu "Onboard Peripheral Drivers" select RT_USING_AUDIO select BSP_USING_PMIC select BSP_USING_SDMMC - select BSP_USING_I2C - select BSP_USING_I2C4 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C4 default n if BSP_USING_AUDIO @@ -244,72 +246,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C - bool "Enable I2C BUS (software simulation)" - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - default n - if BSP_USING_I2C - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - if BSP_USING_I2C1 - comment "Notice: PD7 --> 55; PG15 --> 111" - config BSP_I2C1_SCL_PIN - int "I2C1 scl pin number" - range 1 176 - default 55 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 1 176 - default 111 - endif - menuconfig BSP_USING_I2C2 - bool "Enable I2C2 BUS (software simulation)" - default n - if BSP_USING_I2C2 - comment "Notice: PH4 --> 116; PH5 --> 117" - config BSP_I2C2_SCL_PIN - int "i2c2 scl pin number" - range 1 176 - default 116 - config BSP_I2C2_SDA_PIN - int "I2C2 sda pin number" - range 1 176 - default 117 - endif - menuconfig BSP_USING_I2C3 - bool "Enable I2C3 BUS (software simulation)" - default n - if BSP_USING_I2C3 - comment "Notice: PZ4 --> 180; PZ5 --> 181" - config BSP_I2C3_SCL_PIN - int "i2c3 scl pin number" - range 1 191 - default 180 - config BSP_I2C3_SDA_PIN - int "I2C3 sda pin number" - range 1 191 - default 181 - endif - menuconfig BSP_USING_I2C4 - bool "Enable I2C4 BUS (software simulation)" - default n - if BSP_USING_I2C4 - comment "Notice: PD12 --> 60; PF15 --> 95" - config BSP_I2C4_SCL_PIN - int "i2c4 scl pin number" - range 1 191 - default 60 - config BSP_I2C4_SDA_PIN - int "I2C4 sda pin number" - range 1 191 - default 95 - endif - - endif - menuconfig BSP_USING_SPI bool "Enable SPI BUS" select RT_USING_SPI diff --git a/bsp/stm32/stm32mp157a-st-ev1/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32mp157a-st-ev1/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..183e197301d --- /dev/null +++ b/bsp/stm32/stm32mp157a-st-ev1/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,16 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=55 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=111 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=116 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=117 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" + - CONFIG_RT_USING_SOFT_I2C3=y + - CONFIG_RT_SOFT_I2C3_SCL_PIN=180 + - CONFIG_RT_SOFT_I2C3_SDA_PIN=181 + - CONFIG_RT_SOFT_I2C3_BUS_NAME="swi2c3" diff --git a/bsp/stm32/stm32mp157a-st-ev1/board/Kconfig b/bsp/stm32/stm32mp157a-st-ev1/board/Kconfig index fb4c2cea1e3..a1e23f63046 100644 --- a/bsp/stm32/stm32mp157a-st-ev1/board/Kconfig +++ b/bsp/stm32/stm32mp157a-st-ev1/board/Kconfig @@ -14,8 +14,9 @@ menu "Onboard Peripheral Drivers" config BSP_USING_PMIC bool "Enable PMIC" - select BSP_USING_I2C - select BSP_USING_I2C3 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C3 default y config BSP_USING_PWR @@ -81,8 +82,9 @@ menu "Onboard Peripheral Drivers" select BSP_USING_SDMMC select BSP_USING_SDCARD select SD_USING_DFS - select BSP_USING_I2C - select BSP_USING_I2C2 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C2 default n config BSP_USING_DCMI @@ -91,8 +93,9 @@ menu "Onboard Peripheral Drivers" select BSP_USING_PMIC select BSP_USING_SDMMC select BSP_USING_SDCARD - select BSP_USING_I2C - select BSP_USING_I2C2 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C2 default n config BSP_USING_MFX @@ -293,57 +296,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C - bool "Enable I2C BUS (software simulation)" - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - default n - if BSP_USING_I2C - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - if BSP_USING_I2C1 - comment "Notice: PD7 --> 55; PG15 --> 111" - config BSP_I2C1_SCL_PIN - int "I2C1 scl pin number" - range 1 176 - default 55 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 1 176 - default 111 - endif - menuconfig BSP_USING_I2C2 - bool "Enable I2C2 BUS (software simulation)" - default n - if BSP_USING_I2C2 - comment "Notice: PH4 --> 116; PH5 --> 117" - config BSP_I2C2_SCL_PIN - int "i2c2 scl pin number" - range 1 176 - default 116 - config BSP_I2C2_SDA_PIN - int "I2C2 sda pin number" - range 1 176 - default 117 - endif - menuconfig BSP_USING_I2C3 - bool "Enable I2C3 BUS (software simulation)" - default n - if BSP_USING_I2C3 - comment "Notice: PZ4 --> 180; PZ5 --> 181" - config BSP_I2C3_SCL_PIN - int "i2c3 scl pin number" - range 1 191 - default 180 - config BSP_I2C3_SDA_PIN - int "I2C3 sda pin number" - range 1 191 - default 181 - endif - endif - menuconfig BSP_USING_SPI bool "Enable SPI BUS" select RT_USING_SPI diff --git a/bsp/stm32/stm32u575-st-nucleo/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32u575-st-nucleo/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..08f15d590b4 --- /dev/null +++ b/bsp/stm32/stm32u575-st-nucleo/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,8 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=24 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=25 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/stm32/stm32u575-st-nucleo/board/Kconfig b/bsp/stm32/stm32u575-st-nucleo/board/Kconfig index 659dcfa073d..4dad0db73ae 100644 --- a/bsp/stm32/stm32u575-st-nucleo/board/Kconfig +++ b/bsp/stm32/stm32u575-st-nucleo/board/Kconfig @@ -15,8 +15,9 @@ menu "Onboard Peripheral Drivers" select BSP_USING_PWM1_CH3 select BSP_USING_PWM4 select BSP_USING_PWM4_CH4 - select BSP_USING_I2C - select BSP_USING_I2C1 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C1 select BSP_USING_SPI select BSP_USING_SPI1 select BSP_SPI1_TX_USING_DMA @@ -35,8 +36,9 @@ menu "Onboard Peripheral Drivers" config BSP_USING_MPU6XXX bool "Enable mpu6xxx (i2c2)" - select BSP_USING_I2C - select BSP_USING_I2C2 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C2 select PKG_USING_SENSORS_DRIVERS select PKG_USING_MPU6XXX select PKG_USING_MPU6XXX_LATEST_VERSION @@ -222,29 +224,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C - bool "Enable I2C BUS" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default y - if BSP_USING_I2C1 - comment "Notice: PB8 --> 24; PB9 --> 25" - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 1 176 - default 24 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 1 176 - default 25 - endif - endif - source "$(BSP_DIR)/../libraries/HAL_Drivers/drivers/Kconfig" endmenu diff --git a/bsp/stm32/stm32wb55-st-nucleo/.ci/attachconfig/ci.attachconfig.yml b/bsp/stm32/stm32wb55-st-nucleo/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..7dc954e324f --- /dev/null +++ b/bsp/stm32/stm32wb55-st-nucleo/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,12 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=24 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=25 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C3=y + - CONFIG_RT_SOFT_I2C3_SCL_PIN=29 + - CONFIG_RT_SOFT_I2C3_SDA_PIN=30 + - CONFIG_RT_SOFT_I2C3_BUS_NAME="swi2c3" diff --git a/bsp/stm32/stm32wb55-st-nucleo/board/Kconfig b/bsp/stm32/stm32wb55-st-nucleo/board/Kconfig index 1351db70619..80dec59d4f9 100644 --- a/bsp/stm32/stm32wb55-st-nucleo/board/Kconfig +++ b/bsp/stm32/stm32wb55-st-nucleo/board/Kconfig @@ -75,44 +75,6 @@ menu "On-chip Peripheral Drivers" - menuconfig BSP_USING_I2C - bool "Enable I2C BUS" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default y - if BSP_USING_I2C1 - comment "Notice: PB8 --> 24; PB9 --> 25" - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 1 143 - default 24 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 1 143 - default 25 - endif - - menuconfig BSP_USING_I2C3 - bool "Enable I2C3 BUS (software simulation)" - default y - if BSP_USING_I2C3 - comment "Notice: PB13 --> 29; PAB6 -->30" - config BSP_I2C3_SCL_PIN - int "i2c3 scl pin number" - range 1 143 - default 29 - config BSP_I2C3_SDA_PIN - int "I2C3 sda pin number" - range 1 143 - default 30 - endif - endif - menuconfig BSP_USING_TIM bool "Enable timer" default n diff --git a/bsp/synwit/libraries/SWM320_drivers/SConscript b/bsp/synwit/libraries/SWM320_drivers/SConscript index c4beaaac5b0..3cca80755d5 100644 --- a/bsp/synwit/libraries/SWM320_drivers/SConscript +++ b/bsp/synwit/libraries/SWM320_drivers/SConscript @@ -15,9 +15,6 @@ if GetDepend(['RT_USING_ADC']): if GetDepend(['RT_USING_CLOCK_TIME']): src += ['drv_timer.c'] -if GetDepend(['RT_USING_I2C']): - src += ['drv_soft_i2c.c'] - if GetDepend(['RT_USING_PWM']): src += ['drv_pwm.c'] diff --git a/bsp/synwit/libraries/SWM320_drivers/drv_soft_i2c.c b/bsp/synwit/libraries/SWM320_drivers/drv_soft_i2c.c deleted file mode 100644 index ed9ceb7142c..00000000000 --- a/bsp/synwit/libraries/SWM320_drivers/drv_soft_i2c.c +++ /dev/null @@ -1,241 +0,0 @@ -/* - * Copyright (c) 2006-2022, Synwit Technology Co.,Ltd. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2018-05-31 ZYH first version - * 2018-12-10 Zohar_Lee format file - * 2020-07-10 lik rewrite - */ - -#include "drv_soft_i2c.h" - -#ifdef RT_USING_I2C -#ifdef BSP_USING_I2C - -/*************************************************************** -*!!!!!!!!!!!!!!!!!!!!!!!!!!!!NOTICE!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -*In order to use swm drv_soft_i2c,you need to commented out -line 114 (SDA_H(ops);) and line 167 (SDA_H(ops);) in i2c-bit-ops.c -At the same time, add one line (SDA_L(ops);)after line 154 (SCL_L(ops);) -in i2c-bit-ops.c -***************************************************************/ - -//#define DRV_DEBUG -#define LOG_TAG "drv.i2c" -#include - -#if !defined(BSP_USING_I2C0) && !defined(BSP_USING_I2C1) -#error "Please define at least one BSP_USING_I2Cx" -/* this driver can be disabled at menuconfig ? RT-Thread Components ? Device Drivers */ -#endif - -#ifdef BSP_USING_I2C0 -#define I2C0_BUS_CFG \ - { \ - .scl = BSP_I2C0_SCL_PIN, \ - .sda = BSP_I2C0_SDA_PIN, \ - .name = "i2c0", \ - } -#endif - -#ifdef BSP_USING_I2C1 -#define I2C1_BUS_CFG \ - { \ - .scl = BSP_I2C1_SCL_PIN, \ - .sda = BSP_I2C1_SDA_PIN, \ - .name = "i2c1", \ - } -#endif - -/* swm config class */ -struct swm_soft_i2c_cfg -{ - rt_uint8_t scl; - rt_uint8_t sda; - const char *name; -}; -/* swm i2c dirver class */ -struct swm_soft_i2c_device -{ - struct rt_i2c_bit_ops ops; - struct rt_i2c_bus_device i2c_bus; -}; -static const struct swm_soft_i2c_cfg swm_soft_i2c_cfg[] = - { -#ifdef BSP_USING_I2C0 - I2C0_BUS_CFG, -#endif -#ifdef BSP_USING_I2C1 - I2C1_BUS_CFG, -#endif -}; - -static struct swm_soft_i2c_device i2c_obj[sizeof(swm_soft_i2c_cfg) / sizeof(swm_soft_i2c_cfg[0])]; - -/** - * This function initializes the i2c pin. - * - * @param swm i2c dirver class. - */ -static void swm_i2c_gpio_init(struct swm_soft_i2c_device *i2c) -{ - struct swm_soft_i2c_cfg *soft_i2c_cfg = (struct swm_soft_i2c_cfg *)i2c->ops.data; - - rt_pin_mode(soft_i2c_cfg->scl, PIN_MODE_OUTPUT_OD); - rt_pin_mode(soft_i2c_cfg->sda, PIN_MODE_OUTPUT_OD); - - rt_pin_write(soft_i2c_cfg->scl, PIN_HIGH); - rt_pin_write(soft_i2c_cfg->sda, PIN_HIGH); -} - -static void swm_i2c_pin_init(void) -{ - rt_size_t obj_num = sizeof(i2c_obj) / sizeof(struct swm_soft_i2c_device); - - for(rt_size_t i = 0; i < obj_num; i++) - { - swm_i2c_gpio_init(&i2c_obj[i]); - } -} - -/** - * This function sets the sda pin. - * - * @param swm config class. - * @param The sda pin state. - */ -static void swm_i2c_set_sda(void *data, rt_int32_t state) -{ - struct swm_soft_i2c_cfg *soft_i2c_cfg = (struct swm_soft_i2c_cfg *)data; - rt_pin_mode(soft_i2c_cfg->sda, PIN_MODE_OUTPUT_OD); - if (state) - { - rt_pin_write(soft_i2c_cfg->sda, PIN_HIGH); - } - else - { - rt_pin_write(soft_i2c_cfg->sda, PIN_LOW); - } -} - -/** - * This function sets the scl pin. - * - * @param swm config class. - * @param The scl pin state. - */ -static void swm_i2c_set_scl(void *data, rt_int32_t state) -{ - struct swm_soft_i2c_cfg *soft_i2c_cfg = (struct swm_soft_i2c_cfg *)data; - rt_pin_mode(soft_i2c_cfg->scl, PIN_MODE_OUTPUT_OD); - if (state) - { - rt_pin_write(soft_i2c_cfg->scl, PIN_HIGH); - } - else - { - rt_pin_write(soft_i2c_cfg->scl, PIN_LOW); - } -} - -/** - * This function gets the sda pin state. - * - * @param The sda pin state. - */ -static rt_int32_t swm_i2c_get_sda(void *data) -{ - struct swm_soft_i2c_cfg *soft_i2c_cfg = (struct swm_soft_i2c_cfg *)data; - rt_pin_mode(soft_i2c_cfg->sda, PIN_MODE_INPUT_PULLUP); - return rt_pin_read(soft_i2c_cfg->sda); -} - -/** - * This function gets the scl pin state. - * - * @param The scl pin state. - */ -static rt_int32_t swm_i2c_get_scl(void *data) -{ - struct swm_soft_i2c_cfg *soft_i2c_cfg = (struct swm_soft_i2c_cfg *)data; - rt_pin_mode(soft_i2c_cfg->scl, PIN_MODE_INPUT_PULLUP); - return rt_pin_read(soft_i2c_cfg->scl); -} - -/** - * The time delay function. - * - * @param microseconds. - */ -static void swm_i2c_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 swm_i2c_bit_ops = -{ - .data = RT_NULL, - .pin_init = swm_i2c_pin_init, - .set_sda = swm_i2c_set_sda, - .set_scl = swm_i2c_set_scl, - .get_sda = swm_i2c_get_sda, - .get_scl = swm_i2c_get_scl, - .udelay = swm_i2c_udelay, - .delay_us = 1, - .timeout = 100, - .i2c_pin_init_flag = RT_FALSE -}; - -/* I2C initialization function */ -int swm_i2c_init(void) -{ - rt_err_t result; - - for (rt_size_t i = 0; i < sizeof(i2c_obj) / sizeof(struct swm_soft_i2c_device); i++) - { - i2c_obj[i].ops = swm_i2c_bit_ops; - i2c_obj[i].ops.data = (void *)&swm_soft_i2c_cfg[i]; - i2c_obj[i].i2c_bus.priv = &i2c_obj[i].ops; - - result = rt_i2c_bit_add_bus(&i2c_obj[i].i2c_bus, swm_soft_i2c_cfg[i].name); - RT_ASSERT(result == RT_EOK); - - LOG_D("software simulation %s init done, pin scl: %d, pin sda %d", - swm_soft_i2c_cfg[i].name, - swm_soft_i2c_cfg[i].scl, - swm_soft_i2c_cfg[i].sda); - } - - return RT_EOK; -} -INIT_DEVICE_EXPORT(swm_i2c_init); -#endif /* BSP_USING_I2C */ -#endif /* RT_USING_I2C */ diff --git a/bsp/synwit/libraries/SWM320_drivers/drv_soft_i2c.h b/bsp/synwit/libraries/SWM320_drivers/drv_soft_i2c.h deleted file mode 100644 index 2dd38221249..00000000000 --- a/bsp/synwit/libraries/SWM320_drivers/drv_soft_i2c.h +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright (c) 2006-2022, Synwit Technology Co.,Ltd. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2018-12-10 Zohar_Lee first version - * 2020-07-10 lik rewrite - */ - -#ifndef __DRV_SOFT_I2C_H__ -#define __DRV_SOFT_I2C_H__ - -#include "board.h" - -int swm_i2c_init(void); - -#endif /* __DRV_SOFT_I2C_H__ */ diff --git a/bsp/synwit/libraries/SWM341_drivers/SConscript b/bsp/synwit/libraries/SWM341_drivers/SConscript index 26bef4ca2bc..bb7bb6d9270 100644 --- a/bsp/synwit/libraries/SWM341_drivers/SConscript +++ b/bsp/synwit/libraries/SWM341_drivers/SConscript @@ -21,9 +21,6 @@ if GetDepend(['RT_USING_CAN']): if GetDepend(['RT_USING_CLOCK_TIME']): src += ['drv_timer.c'] -if GetDepend(['RT_USING_I2C']): - src += ['drv_soft_i2c.c'] - if GetDepend(['RT_USING_PWM']): src += ['drv_pwm.c'] diff --git a/bsp/synwit/libraries/SWM341_drivers/drv_soft_i2c.c b/bsp/synwit/libraries/SWM341_drivers/drv_soft_i2c.c deleted file mode 100644 index f74715d03df..00000000000 --- a/bsp/synwit/libraries/SWM341_drivers/drv_soft_i2c.c +++ /dev/null @@ -1,219 +0,0 @@ -/* - * Copyright (c) 2006-2022, Synwit Technology Co.,Ltd. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2021-07-01 lik first version - */ - -#include "drv_soft_i2c.h" - -#ifdef RT_USING_I2C -#ifdef BSP_USING_I2C - -//#define DRV_DEBUG -#define LOG_TAG "drv.i2c" -#include - -#if !defined(BSP_USING_I2C0) && !defined(BSP_USING_I2C1) -#error "Please define at least one BSP_USING_I2Cx" -/* this driver can be disabled at menuconfig ? RT-Thread Components ? Device Drivers */ -#endif - -#ifdef BSP_USING_I2C0 -#define I2C0_BUS_CFG \ - { \ - .scl = BSP_I2C0_SCL_PIN, \ - .sda = BSP_I2C0_SDA_PIN, \ - .name = "i2c0", \ - } -#endif - -#ifdef BSP_USING_I2C1 -#define I2C1_BUS_CFG \ - { \ - .scl = BSP_I2C1_SCL_PIN, \ - .sda = BSP_I2C1_SDA_PIN, \ - .name = "i2c1", \ - } -#endif - -/* swm config class */ -struct swm_soft_i2c_cfg -{ - rt_uint8_t scl; - rt_uint8_t sda; - const char *name; -}; -/* swm i2c dirver class */ -struct swm_soft_i2c_device -{ - struct rt_i2c_bit_ops ops; - struct rt_i2c_bus_device i2c_bus; -}; - -static const struct swm_soft_i2c_cfg swm_soft_i2c_cfg[] = - { -#ifdef BSP_USING_I2C0 - I2C0_BUS_CFG, -#endif -#ifdef BSP_USING_I2C1 - I2C1_BUS_CFG, -#endif -}; - -static struct swm_soft_i2c_device i2c_obj[sizeof(swm_soft_i2c_cfg) / sizeof(swm_soft_i2c_cfg[0])]; - -/** - * This function initializes the i2c pin. - * - * @param swm i2c dirver class. - */ -static void swm_i2c_gpio_init(struct swm_soft_i2c_device *i2c) -{ - struct swm_soft_i2c_cfg *soft_i2c_cfg = (struct swm_soft_i2c_cfg *)i2c->ops.data; - - rt_pin_mode(soft_i2c_cfg->scl, PIN_MODE_OUTPUT_OD); - rt_pin_mode(soft_i2c_cfg->sda, PIN_MODE_OUTPUT_OD); - - rt_pin_write(soft_i2c_cfg->scl, PIN_HIGH); - rt_pin_write(soft_i2c_cfg->sda, PIN_HIGH); -} - -/** - * This function sets the sda pin. - * - * @param swm config class. - * @param The sda pin state. - */ -static void swm_i2c_set_sda(void *data, rt_int32_t state) -{ - struct swm_soft_i2c_cfg *soft_i2c_cfg = (struct swm_soft_i2c_cfg *)data; - rt_pin_mode(soft_i2c_cfg->sda, PIN_MODE_OUTPUT_OD); - if (state) - { - rt_pin_write(soft_i2c_cfg->sda, PIN_HIGH); - } - else - { - rt_pin_write(soft_i2c_cfg->sda, PIN_LOW); - } -} - -/** - * This function sets the scl pin. - * - * @param swm config class. - * @param The scl pin state. - */ -static void swm_i2c_set_scl(void *data, rt_int32_t state) -{ - struct swm_soft_i2c_cfg *soft_i2c_cfg = (struct swm_soft_i2c_cfg *)data; - rt_pin_mode(soft_i2c_cfg->scl, PIN_MODE_OUTPUT_OD); - if (state) - { - rt_pin_write(soft_i2c_cfg->scl, PIN_HIGH); - } - else - { - rt_pin_write(soft_i2c_cfg->scl, PIN_LOW); - } -} - -/** - * This function gets the sda pin state. - * - * @param The sda pin state. - */ -static rt_int32_t swm_i2c_get_sda(void *data) -{ - struct swm_soft_i2c_cfg *soft_i2c_cfg = (struct swm_soft_i2c_cfg *)data; - rt_pin_mode(soft_i2c_cfg->sda, PIN_MODE_INPUT_PULLDOWN); - return rt_pin_read(soft_i2c_cfg->sda); -} - -/** - * This function gets the scl pin state. - * - * @param The scl pin state. - */ -static rt_int32_t swm_i2c_get_scl(void *data) -{ - struct swm_soft_i2c_cfg *soft_i2c_cfg = (struct swm_soft_i2c_cfg *)data; - rt_pin_mode(soft_i2c_cfg->scl, PIN_MODE_INPUT_PULLDOWN); - return rt_pin_read(soft_i2c_cfg->scl); -} - -/** - * The time delay function. - * - * @param microseconds. - */ -static void swm_i2c_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 swm_i2c_bit_ops = - { - .data = RT_NULL, - .set_sda = swm_i2c_set_sda, - .set_scl = swm_i2c_set_scl, - .get_sda = swm_i2c_get_sda, - .get_scl = swm_i2c_get_scl, - .udelay = swm_i2c_udelay, - .delay_us = 1, - .timeout = 100}; - -/* I2C initialization function */ -int swm_i2c_init(void) -{ - rt_err_t result; - - for (int i = 0; i < sizeof(i2c_obj) / sizeof(struct swm_soft_i2c_device); i++) - { - i2c_obj[i].ops = swm_i2c_bit_ops; - i2c_obj[i].ops.data = (void *)&swm_soft_i2c_cfg[i]; - i2c_obj[i].i2c_bus.priv = &i2c_obj[i].ops; - swm_i2c_gpio_init(&i2c_obj[i]); - result = rt_i2c_bit_add_bus(&i2c_obj[i].i2c_bus, swm_soft_i2c_cfg[i].name); - RT_ASSERT(result == RT_EOK); - - LOG_D("software simulation %s init done, pin scl: %d, pin sda %d", - swm_soft_i2c_cfg[i].name, - swm_soft_i2c_cfg[i].scl, - swm_soft_i2c_cfg[i].sda); - } - - return RT_EOK; -} -INIT_DEVICE_EXPORT(swm_i2c_init); -#endif /* BSP_USING_I2C */ -#endif /* RT_USING_I2C */ diff --git a/bsp/synwit/libraries/SWM341_drivers/drv_soft_i2c.h b/bsp/synwit/libraries/SWM341_drivers/drv_soft_i2c.h deleted file mode 100644 index 60151d0e509..00000000000 --- a/bsp/synwit/libraries/SWM341_drivers/drv_soft_i2c.h +++ /dev/null @@ -1,18 +0,0 @@ -/* - * Copyright (c) 2006-2022, Synwit Technology Co.,Ltd. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2021-07-01 lik first version - */ - -#ifndef __DRV_SOFT_I2C_H__ -#define __DRV_SOFT_I2C_H__ - -#include "board.h" - -int swm_i2c_init(void); - -#endif /* __DRV_SOFT_I2C_H__ */ diff --git a/bsp/synwit/swm320-mini/.ci/attachconfig/ci.attachconfig.yml b/bsp/synwit/swm320-mini/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..090bc5b70e7 --- /dev/null +++ b/bsp/synwit/swm320-mini/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,12 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C0=y + - CONFIG_RT_SOFT_I2C0_SCL_PIN=28 + - CONFIG_RT_SOFT_I2C0_SDA_PIN=29 + - CONFIG_RT_SOFT_I2C0_BUS_NAME="swi2c0" + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=32 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=33 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/synwit/swm320-mini/board/Kconfig b/bsp/synwit/swm320-mini/board/Kconfig index 8a2c6875e16..0434b347619 100644 --- a/bsp/synwit/swm320-mini/board/Kconfig +++ b/bsp/synwit/swm320-mini/board/Kconfig @@ -124,43 +124,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C - bool "Enable I2C BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C - config BSP_USING_I2C0 - bool "Enable I2C0" - default n - if BSP_USING_I2C0 - comment "Notice: PC2 --> 28; PC3 --> 29" - config BSP_I2C0_SCL_PIN - int "I2C0 scl pin number" - range 0 99 - default 28 - config BSP_I2C0_SDA_PIN - int "I2C0 sda pin number" - range 0 99 - default 29 - endif - config BSP_USING_I2C1 - bool "Enable I2C1" - default n - if BSP_USING_I2C1 - comment "Notice: PC6 --> 32; PC7 --> 33" - config BSP_I2C1_SCL_PIN - int "I2C1 scl pin number" - range 0 99 - default 32 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 99 - default 33 - endif - endif - menuconfig BSP_USING_PWM bool "Enable PWM" default n diff --git a/bsp/synwit/swm341-mini/.ci/attachconfig/ci.attachconfig.yml b/bsp/synwit/swm341-mini/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..e3a04a5ec13 --- /dev/null +++ b/bsp/synwit/swm341-mini/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,12 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C0=y + - CONFIG_RT_SOFT_I2C0_SCL_PIN=1 + - CONFIG_RT_SOFT_I2C0_SDA_PIN=0 + - CONFIG_RT_SOFT_I2C0_BUS_NAME="swi2c0" + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=37 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=36 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/synwit/swm341-mini/board/Kconfig b/bsp/synwit/swm341-mini/board/Kconfig index 6e6564850d4..76152ec1961 100644 --- a/bsp/synwit/swm341-mini/board/Kconfig +++ b/bsp/synwit/swm341-mini/board/Kconfig @@ -184,41 +184,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C - bool "Enable I2C BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C - config BSP_USING_I2C0 - bool "Enable I2C0" - default n - if BSP_USING_I2C0 - config BSP_I2C0_SCL_PIN - int "I2C0 scl pin number" - range 0 111 - default 1 - config BSP_I2C0_SDA_PIN - int "I2C0 sda pin number" - range 0 111 - default 0 - endif - config BSP_USING_I2C1 - bool "Enable I2C1" - default n - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "I2C1 scl pin number" - range 0 111 - default 37 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 111 - default 36 - endif - endif - menuconfig BSP_USING_PWM bool "Enable PWM" default n @@ -369,8 +334,9 @@ menu "On-chip Peripheral Drivers" bool "Enable gt9147(use i2c0)" select RT_USING_TOUCH select RT_TOUCH_PIN_IRQ - select BSP_USING_I2C - select BSP_USING_I2C0 + select RT_USING_I2C + select RT_USING_SOFT_I2C + select RT_USING_SOFT_I2C0 select PKG_USING_GT9147 select PKG_USING_GT9147_LATEST_VERSION default n diff --git a/bsp/tae32f5300/.ci/attachconfig/ci.attachconfig.yml b/bsp/tae32f5300/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..bf1a5ff7584 --- /dev/null +++ b/bsp/tae32f5300/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,8 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=51 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=90 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/tae32f5300/drivers/Kconfig b/bsp/tae32f5300/drivers/Kconfig index 29451af6c7f..76229114588 100644 --- a/bsp/tae32f5300/drivers/Kconfig +++ b/bsp/tae32f5300/drivers/Kconfig @@ -51,23 +51,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default y - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 1 176 - default 51 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 1 176 - default 90 - endif - menuconfig BSP_USING_SPI bool "Enable SPI BUS" default n diff --git a/bsp/tkm32F499/.ci/attachconfig/ci.attachconfig.yml b/bsp/tkm32F499/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..d626be14a57 --- /dev/null +++ b/bsp/tkm32F499/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,8 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=22 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=23 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" diff --git a/bsp/tkm32F499/drivers/Kconfig b/bsp/tkm32F499/drivers/Kconfig index d856bc73ff4..78c410ae011 100644 --- a/bsp/tkm32F499/drivers/Kconfig +++ b/bsp/tkm32F499/drivers/Kconfig @@ -67,23 +67,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_I2C1 - bool "Enable I2C1 BUS (software simulation)" - default n - select RT_USING_I2C - select RT_USING_I2C_BITOPS - select RT_USING_PIN - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "i2c1 scl pin number" - range 0 175 - default 22 - config BSP_I2C1_SDA_PIN - int "I2C1 sda pin number" - range 0 175 - default 23 - endif - menuconfig BSP_USING_TIM bool "Enable timer" default n diff --git a/bsp/w60x/drivers/Kconfig b/bsp/w60x/drivers/Kconfig index 5c2b5c6d82a..377adfc13eb 100644 --- a/bsp/w60x/drivers/Kconfig +++ b/bsp/w60x/drivers/Kconfig @@ -185,24 +185,6 @@ menu "On-chip Peripheral Drivers" default 200000 endif - menuconfig BSP_USING_SOFT_I2C - bool "Enable SOFT I2C" - select RT_USING_I2C - select RT_USING_I2C_BITOPS - default n - - if BSP_USING_SOFT_I2C - config BSP_USING_SOFT_I2C1 - bool "Enabel SOFT I2C1" - default n - endif - - if BSP_USING_SOFT_I2C - config BSP_USING_SOFT_I2C2 - bool "Enabel SOFT I2C2" - default n - endif - menuconfig BSP_USING_SPI bool "Enable SPI" select RT_USING_SPI diff --git a/bsp/w60x/drivers/SConscript b/bsp/w60x/drivers/SConscript index 44dd0267b38..5d985d937fc 100644 --- a/bsp/w60x/drivers/SConscript +++ b/bsp/w60x/drivers/SConscript @@ -23,9 +23,6 @@ if GetDepend('BSP_USING_PIN'): if GetDepend('BSP_USING_CLOCK_TIMER'): src += ['drv_hw_timer.c'] -if GetDepend('BSP_USING_SOFT_I2C'): - src += ['drv_soft_i2c.c'] - if GetDepend('BSP_USING_I2C'): src += ['drv_i2c.c'] diff --git a/bsp/w60x/drivers/drv_soft_i2c.c b/bsp/w60x/drivers/drv_soft_i2c.c deleted file mode 100644 index 6cda890ec2e..00000000000 --- a/bsp/w60x/drivers/drv_soft_i2c.c +++ /dev/null @@ -1,222 +0,0 @@ -/* - * Copyright (c) 2006-2021, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2019-03-22 balanceTWK first version - */ - -#include -#include "drv_soft_i2c.h" - -#include "wm_regs.h" -#include "wm_gpio.h" -#include "pin_map.h" - -#define DBG_SECTION_NAME "soft_i2c" -#define DBG_COLOR -#define DBG_LEVEL DBG_LOG -#include - -#ifdef BSP_USING_SOFT_I2C - -#if !defined(BSP_USING_SOFT_I2C1) && !defined(BSP_USING_SOFT_I2C2) && !defined(BSP_USING_SOFT_I2C3) -#error "Please define at least one BSP_USING_SOFT_I2Cx" -#endif - -static const struct w60x_soft_i2c_config soft_i2c_config[] = -{ -#ifdef BSP_USING_SOFT_I2C1 - I2C1_BUS_CONFIG, -#endif -#ifdef BSP_USING_SOFT_I2C2 - I2C2_BUS_CONFIG, -#endif -#ifdef BSP_USING_SOFT_I2C3 - I2C3_BUS_CONFIG, -#endif -}; - -static struct w60x_i2c i2c_obj[sizeof(soft_i2c_config) / sizeof(soft_i2c_config[0])]; - -/** - * This function initializes the i2c pin. - * - * @param w60x i2c dirver class. - */ -static void w60x_i2c_gpio_init(struct w60x_i2c *i2c) -{ - struct w60x_soft_i2c_config* cfg = (struct w60x_soft_i2c_config*)i2c->ops.data; - rt_int16_t scl,sda; - - scl = wm_get_pin(cfg->scl); - sda = wm_get_pin(cfg->sda); - - tls_gpio_cfg((enum tls_io_name)scl, WM_GPIO_DIR_OUTPUT, WM_GPIO_ATTR_PULLHIGH); - tls_gpio_cfg((enum tls_io_name)sda, WM_GPIO_DIR_OUTPUT, WM_GPIO_ATTR_PULLHIGH); - - tls_gpio_write((enum tls_io_name)scl, 1); - tls_gpio_write((enum tls_io_name)sda, 1); -} - -static void w60x_i2c_pin_init(void) -{ - rt_size_t obj_num = sizeof(i2c_obj) / sizeof(struct w60x_i2c); - - for(rt_size_t i = 0; i < obj_num; i++) - { - w60x_i2c_gpio_init(&i2c_obj[i]); - } -} - -/** - * This function sets the sda pin. - * - * @param w60x config class. - * @param The sda pin state. - */ -static void w60x_set_sda(void *data, rt_int32_t state) -{ - struct w60x_soft_i2c_config* cfg = (struct w60x_soft_i2c_config*)data; - rt_int16_t sda; - - sda = wm_get_pin(cfg->sda); - - if (state) - { - tls_gpio_cfg((enum tls_io_name)sda, WM_GPIO_DIR_INPUT, WM_GPIO_ATTR_PULLHIGH); - } - else - { - tls_gpio_cfg((enum tls_io_name)sda, WM_GPIO_DIR_OUTPUT, WM_GPIO_ATTR_FLOATING); - tls_gpio_write((enum tls_io_name)sda, 0); - } -} - -/** - * This function sets the scl pin. - * - * @param w60x config class. - * @param The scl pin state. - */ -static void w60x_set_scl(void *data, rt_int32_t state) -{ - struct w60x_soft_i2c_config* cfg = (struct w60x_soft_i2c_config*)data; - rt_int16_t scl; - - scl = wm_get_pin(cfg->scl); - - if (state) - { - tls_gpio_cfg((enum tls_io_name)scl, WM_GPIO_DIR_INPUT, WM_GPIO_ATTR_PULLHIGH); - } - else - { - tls_gpio_cfg((enum tls_io_name)scl, WM_GPIO_DIR_OUTPUT, WM_GPIO_ATTR_FLOATING); - tls_gpio_write((enum tls_io_name)scl, 0); - } -} - -/** - * This function gets the sda pin state. - * - * @param The sda pin state. - */ -static rt_int32_t w60x_get_sda(void *data) -{ - struct w60x_soft_i2c_config* cfg = (struct w60x_soft_i2c_config*)data; - rt_int16_t sda; - - sda = wm_get_pin(cfg->sda); - - return tls_gpio_read((enum tls_io_name)sda); -} - -/** - * This function gets the scl pin state. - * - * @param The scl pin state. - */ -static rt_int32_t w60x_get_scl(void *data) -{ - struct w60x_soft_i2c_config* cfg = (struct w60x_soft_i2c_config*)data; - rt_int16_t scl; - - scl = wm_get_pin(cfg->scl); - - return tls_gpio_read((enum tls_io_name)scl); -} - - -static const struct rt_i2c_bit_ops w60x_bit_ops_default = -{ - .data = RT_NULL, - .pin_init = w60x_i2c_pin_init, - .set_sda = w60x_set_sda, - .set_scl = w60x_set_scl, - .get_sda = w60x_get_sda, - .get_scl = w60x_get_scl, - .udelay = rt_hw_us_delay, - .delay_us = 1, - .timeout = 100, - .i2c_pin_init_flag = RT_FALSE -}; - -/** - * if i2c is locked, this function will unlock it - * - * @param w60x config class - * - * @return RT_EOK indicates successful unlock. - */ -static rt_err_t w60x_i2c_bus_unlock(const struct w60x_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); - rt_hw_us_delay(100); - rt_pin_write(cfg->scl, PIN_LOW); - rt_hw_us_delay(100); - } - } - if (PIN_LOW == rt_pin_read(cfg->sda)) - { - return -RT_ERROR; - } - - return RT_EOK; -} - -/* I2C initialization function */ -int rt_soft_i2c_init(void) -{ - rt_size_t obj_num = sizeof(i2c_obj) / sizeof(struct w60x_i2c); - rt_err_t result; - - for (rt_size_t i = 0; i < obj_num; i++) - { - i2c_obj[i].ops = w60x_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); - w60x_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_DEVICE_EXPORT(rt_soft_i2c_init); - -#endif /* BSP_USING_SOFT_I2C */ diff --git a/bsp/w60x/drivers/drv_soft_i2c.h b/bsp/w60x/drivers/drv_soft_i2c.h deleted file mode 100644 index bd0cdc0431f..00000000000 --- a/bsp/w60x/drivers/drv_soft_i2c.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright (c) 2006-2021, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2019-03-22 balanceTWK first version - */ - -#ifndef __DRV_SOFT_I2C__ -#define __DRV_SOFT_I2C__ - -#include -#include -#include - -/* w60x config class */ -struct w60x_soft_i2c_config -{ - rt_uint8_t scl; - rt_uint8_t sda; - const char *bus_name; -}; -/* w60x i2c dirver class */ -struct w60x_i2c -{ - struct rt_i2c_bit_ops ops; - struct rt_i2c_bus_device i2c_bus; -}; - -#ifdef BSP_USING_SOFT_I2C1 -#define I2C1_BUS_CONFIG \ - { \ - .scl = SOFT_I2C1_SCL_PIN, \ - .sda = SOFT_I2C1_SDA_PIN, \ - .bus_name = "i2c1soft", \ - } -#endif - -#ifdef BSP_USING_SOFT_I2C2 -#define I2C2_BUS_CONFIG \ - { \ - .scl = SOFT_I2C2_SCL_PIN, \ - .sda = SOFT_I2C2_SDA_PIN, \ - .bus_name = "i2c2soft", \ - } -#endif - -#ifdef BSP_USING_SOFT_I2C3 -#define I2C3_BUS_CONFIG \ - { \ - .scl = SOFT_I2C3_SCL_PIN, \ - .sda = SOFT_I2C3_SDA_PIN, \ - .bus_name = "i2c3soft", \ - } -#endif - -int rt_hw_i2c_init(void); - -#endif diff --git a/bsp/wch/risc-v/Libraries/ch32_drivers/SConscript b/bsp/wch/risc-v/Libraries/ch32_drivers/SConscript index 537dd03f728..c14c16e4086 100644 --- a/bsp/wch/risc-v/Libraries/ch32_drivers/SConscript +++ b/bsp/wch/risc-v/Libraries/ch32_drivers/SConscript @@ -24,9 +24,6 @@ if GetDepend('SOC_RISCV_FAMILY_CH32'): if GetDepend('BSP_USING_I2C'): src += ['drv_i2c.c'] - if GetDepend('BSP_USING_SOFT_I2C'): - src += ['drv_soft_i2c.c'] - if GetDepend('BSP_USING_SPI'): src += ['drv_soft_spi.c','drv_spi.c'] diff --git a/bsp/wch/risc-v/Libraries/ch32_drivers/drv_soft_i2c.c b/bsp/wch/risc-v/Libraries/ch32_drivers/drv_soft_i2c.c deleted file mode 100644 index 149d2efb62d..00000000000 --- a/bsp/wch/risc-v/Libraries/ch32_drivers/drv_soft_i2c.c +++ /dev/null @@ -1,226 +0,0 @@ -/* - * Copyright (c) 2006-2023, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2022-09-19 hg0720 the first version which add from wch - */ - -#include -#include "drv_soft_i2c.h" - -#ifdef BSP_USING_SOFT_I2C - -//#define DRV_DEBUG -#define LOG_TAG "drv.i2c" -#include - -#if !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 ch32_soft_i2c_config soft_i2c_config[] = -{ -#ifdef BSP_USING_I2C1 - I2C1_BUS_CONFIG, -#endif -#ifdef BSP_USING_I2C2 - I2C2_BUS_CONFIG, -#endif -}; - -static struct ch32_i2c i2c_obj[sizeof(soft_i2c_config) / sizeof(soft_i2c_config[0])]; - -/* - * This function initializes the i2c pin. - * - * @param ch32 i2c dirver class. - */ -static void ch32_i2c_gpio_init(struct ch32_i2c *i2c) -{ - struct ch32_soft_i2c_config* cfg = (struct ch32_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 ch32_i2c_pin_init(void) -{ - rt_size_t obj_num = sizeof(i2c_obj) / sizeof(struct ch32_i2c); - - for(rt_size_t i = 0; i < obj_num; i++) - { - ch32_i2c_gpio_init(&i2c_obj[i]); - } -} - -/* - * This function sets the sda pin. - * - * @param Ch32 config class. - * @param The sda pin state. - */ -static void ch32_set_sda(void *data, rt_int32_t state) -{ - struct ch32_soft_i2c_config* cfg = (struct ch32_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 Ch32 config class. - * @param The scl pin state. - */ -static void ch32_set_scl(void *data, rt_int32_t state) -{ - struct ch32_soft_i2c_config* cfg = (struct ch32_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 ch32_get_sda(void *data) -{ - struct ch32_soft_i2c_config* cfg = (struct ch32_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 ch32_get_scl(void *data) -{ - struct ch32_soft_i2c_config* cfg = (struct ch32_soft_i2c_config*)data; - return rt_pin_read(cfg->scl); -} - -/* - * The time delay function. - * - * @param microseconds. - */ -static void ch32_udelay(rt_uint32_t us) -{ - rt_uint32_t ticks; - rt_uint32_t told, tnow, tcnt = 0; - rt_uint32_t reload = SysTick->CMP; - - ticks = us * reload / (1000000 / RT_TICK_PER_SECOND); - told = SysTick->CNT; - while (1) - { - tnow = SysTick->CNT; - if (tnow != told) - { - if (tnow > told) - { - tcnt += tnow - told; - } - else - { - tcnt += reload - told + tnow; - } - told = tnow; - if (tcnt >= ticks) - { - break; - } - } - } -} - -static const struct rt_i2c_bit_ops ch32_bit_ops_default = -{ - .data = RT_NULL, - .pin_init = ch32_i2c_pin_init, - .set_sda = ch32_set_sda, - .set_scl = ch32_set_scl, - .get_sda = ch32_get_sda, - .get_scl = ch32_get_scl, - .udelay = ch32_udelay, - .delay_us = 1, - .timeout = 100, - .i2c_pin_init_flag = RT_FALSE -}; - -/* - * if i2c is locked, this function will unlock it - * - * @param ch32 config class - * - * @return RT_EOK indicates successful unlock. - */ -static rt_err_t ch32_i2c_bus_unlock(const struct ch32_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); - ch32_udelay(100); - rt_pin_write(cfg->scl, PIN_LOW); - ch32_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 ch32_i2c); - rt_err_t result; - - for (rt_size_t i = 0; i < obj_num; i++) - { - i2c_obj[i].ops = ch32_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); - ch32_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 /* RT_USING_I2C */ diff --git a/bsp/wch/risc-v/Libraries/ch32_drivers/drv_soft_i2c.h b/bsp/wch/risc-v/Libraries/ch32_drivers/drv_soft_i2c.h deleted file mode 100644 index b0d9912fa45..00000000000 --- a/bsp/wch/risc-v/Libraries/ch32_drivers/drv_soft_i2c.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (c) 2006-2023, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2022-09-19 hg0720 the first version which add from wch - */ - -#ifndef __DRV_I2C__ -#define __DRV_I2C__ - -#include -#include -#include - -/* ch32 config class */ -struct ch32_soft_i2c_config -{ - rt_uint8_t scl; - rt_uint8_t sda; - const char *bus_name; -}; - -/* ch32 i2c dirver class */ -struct ch32_i2c -{ - struct rt_i2c_bit_ops ops; - struct rt_i2c_bus_device i2c_bus; -}; - -#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 diff --git a/bsp/wch/risc-v/ch32v208w-r0/.ci/attachconfig/ci.attachconfig.yml b/bsp/wch/risc-v/ch32v208w-r0/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..258515f455e --- /dev/null +++ b/bsp/wch/risc-v/ch32v208w-r0/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,12 @@ +devices.soft_i2c: + kconfig: + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=38 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=39 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=32 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=33 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" diff --git a/bsp/wch/risc-v/ch32v208w-r0/board/Kconfig b/bsp/wch/risc-v/ch32v208w-r0/board/Kconfig index 1ef09bd521c..7d02521cae4 100644 --- a/bsp/wch/risc-v/ch32v208w-r0/board/Kconfig +++ b/bsp/wch/risc-v/ch32v208w-r0/board/Kconfig @@ -31,8 +31,6 @@ menu "Onboard Peripheral Drivers" select BSP_USING_TIM4_PWM_CH2 select BSP_USING_TIM4_PWM_CH3 select BSP_USING_TIM4_PWM_CH4 - select BSP_USING_SOFT_I2C - select BSP_USING_I2C1 select RTDUINO_USING_WIRE imply RTDUINO_USING_SERVO default n @@ -121,48 +119,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_SOFT_I2C - bool "Enable 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_I2C1 - bool "Enable I2C1 Bus (software simulation)" - default n - - if BSP_USING_I2C1 - comment "Notice: PC7 --> 39; PC6 --> 38" - - config BSP_I2C1_SCL_PIN - int "i2c1 SCL pin number" - range 0 79 - default 38 - config BSP_I2C1_SDA_PIN - int "i2c1 SDA pin number" - range 0 79 - default 39 - endif - - config BSP_USING_I2C2 - bool "Enable I2C2 Bus (software simulation)" - default n - - if BSP_USING_I2C2 - comment "Notice: PC1 --> 33; PC0 --> 32" - config BSP_I2C2_SCL_PIN - int "i2c2 SCL pin number" - range 0 79 - default 32 - config BSP_I2C2_SDA_PIN - int "i2c2 SDA pin number" - range 0 79 - default 33 - endif - endif - menuconfig BSP_USING_SPI bool "Enable SPI" select RT_USING_SOFT_SPI diff --git a/bsp/wch/risc-v/ch32v307v-r1/.ci/attachconfig/ci.attachconfig.yml b/bsp/wch/risc-v/ch32v307v-r1/.ci/attachconfig/ci.attachconfig.yml index 8f92bf90466..9ca1fd6a376 100644 --- a/bsp/wch/risc-v/ch32v307v-r1/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/wch/risc-v/ch32v307v-r1/.ci/attachconfig/ci.attachconfig.yml @@ -13,9 +13,16 @@ devices.dac: - CONFIG_BSP_USING_DAC_CHANNEL2=n devices.i2c: kconfig: - - CONFIG_BSP_USING_SOFT_I2C=y - - CONFIG_BSP_USING_I2C1=y - - CONFIG_BSP_USING_I2C2=y + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=26 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=27 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=32 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=33 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" devices.spi: kconfig: - CONFIG_BSP_USING_SPI=y diff --git a/bsp/wch/risc-v/ch32v307v-r1/board/Kconfig b/bsp/wch/risc-v/ch32v307v-r1/board/Kconfig index ececb91344d..790a1c490fb 100644 --- a/bsp/wch/risc-v/ch32v307v-r1/board/Kconfig +++ b/bsp/wch/risc-v/ch32v307v-r1/board/Kconfig @@ -31,8 +31,6 @@ menu "Onboard Peripheral Drivers" select BSP_USING_TIM4_PWM_CH4 select BSP_USING_TIM6 select BSP_USING_TIM6_CLOCK_TIMER - select BSP_USING_SOFT_I2C - select BSP_USING_I2C1 select RTDUINO_USING_WIRE imply RTDUINO_USING_SERVO default n @@ -383,48 +381,6 @@ menu "On-chip Peripheral Drivers" endif - menuconfig BSP_USING_SOFT_I2C - bool "Enable 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_I2C1 - bool "Enable I2C1 Bus (software simulation)" - default n - - if BSP_USING_I2C1 - comment "Notice: PB10 --> 26; PB11 --> 27" - - config BSP_I2C1_SCL_PIN - int "i2c1 SCL pin number" - range 0 79 - default 26 - config BSP_I2C1_SDA_PIN - int "i2c1 SDA pin number" - range 0 79 - default 27 - endif - - config BSP_USING_I2C2 - bool "Enable I2C2 Bus (software simulation)" - default n - - if BSP_USING_I2C2 - comment "Notice: PC1 --> 33; PC0 --> 32" - config BSP_I2C2_SCL_PIN - int "i2c2 SCL pin number" - range 0 79 - default 32 - config BSP_I2C2_SDA_PIN - int "i2c2 SDA pin number" - range 0 79 - default 33 - endif - endif - menuconfig BSP_USING_SPI bool "Enable SPI" select RT_USING_SPI @@ -857,4 +813,3 @@ menu "Board extended module Drivers" endmenu endmenu - diff --git a/bsp/wch/risc-v/yd-ch32v307vct6/.ci/attachconfig/ci.attachconfig.yml b/bsp/wch/risc-v/yd-ch32v307vct6/.ci/attachconfig/ci.attachconfig.yml index 8f92bf90466..9ca1fd6a376 100644 --- a/bsp/wch/risc-v/yd-ch32v307vct6/.ci/attachconfig/ci.attachconfig.yml +++ b/bsp/wch/risc-v/yd-ch32v307vct6/.ci/attachconfig/ci.attachconfig.yml @@ -13,9 +13,16 @@ devices.dac: - CONFIG_BSP_USING_DAC_CHANNEL2=n devices.i2c: kconfig: - - CONFIG_BSP_USING_SOFT_I2C=y - - CONFIG_BSP_USING_I2C1=y - - CONFIG_BSP_USING_I2C2=y + - CONFIG_RT_USING_I2C=y + - CONFIG_RT_USING_SOFT_I2C=y + - CONFIG_RT_USING_SOFT_I2C1=y + - CONFIG_RT_SOFT_I2C1_SCL_PIN=26 + - CONFIG_RT_SOFT_I2C1_SDA_PIN=27 + - CONFIG_RT_SOFT_I2C1_BUS_NAME="swi2c1" + - CONFIG_RT_USING_SOFT_I2C2=y + - CONFIG_RT_SOFT_I2C2_SCL_PIN=32 + - CONFIG_RT_SOFT_I2C2_SDA_PIN=33 + - CONFIG_RT_SOFT_I2C2_BUS_NAME="swi2c2" devices.spi: kconfig: - CONFIG_BSP_USING_SPI=y diff --git a/bsp/wch/risc-v/yd-ch32v307vct6/board/Kconfig b/bsp/wch/risc-v/yd-ch32v307vct6/board/Kconfig index dccae0c2bb4..538a0e603df 100644 --- a/bsp/wch/risc-v/yd-ch32v307vct6/board/Kconfig +++ b/bsp/wch/risc-v/yd-ch32v307vct6/board/Kconfig @@ -92,48 +92,6 @@ menu "On-chip Peripheral Drivers" default n endif - menuconfig BSP_USING_SOFT_I2C - bool "Enable 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_I2C1 - bool "Enable I2C1 Bus (software simulation)" - default n - - if BSP_USING_I2C1 - comment "Notice: PB10 --> 26; PB11 --> 27" - - config BSP_I2C1_SCL_PIN - int "i2c1 SCL pin number" - range 0 79 - default 26 - config BSP_I2C1_SDA_PIN - int "i2c1 SDA pin number" - range 0 79 - default 27 - endif - - config BSP_USING_I2C2 - bool "Enable I2C2 Bus (software simulation)" - default n - - if BSP_USING_I2C2 - comment "Notice: PC1 --> 33; PC0 --> 32" - config BSP_I2C2_SCL_PIN - int "i2c2 SCL pin number" - range 0 79 - default 32 - config BSP_I2C2_SDA_PIN - int "i2c2 SDA pin number" - range 0 79 - default 33 - endif - endif - menuconfig BSP_USING_SPI bool "Enable SPI" select RT_USING_SPI @@ -575,4 +533,3 @@ menu "Board extended module Drivers" endmenu endmenu -