mirror of
https://github.com/zephyrproject-rtos/zephyr
synced 2025-09-18 05:11:56 +00:00
Add a shell to interact with I2C devices. Currently scanning for devices is supported. Example output: uart:~$ i2c scan I2C_1 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- 18 -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: 40 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- 2 devices found on I2C_1 uart:~$ i2c scan I2C_3 i2c - I2C commands Subcommands: I2C_1 :I2C_1 I2C_2 :I2C_2 uart:~$ i2c scan I2C_2 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- 1e -- 20: -- -- -- -- -- -- -- -- -- 29 -- -- -- 2d -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- 56 -- -- -- -- -- -- 5d -- 5f 60: -- -- -- -- -- -- -- -- -- -- 6a -- -- -- -- -- 70: -- -- -- -- -- -- -- -- 7 devices found on I2C_2 This shell is based on the a sample that did the same thing and was limited in support. The sample is now removed in favour of this generic shell module. Signed-off-by: Anas Nashif <anas.nashif@intel.com>
52 lines
1.9 KiB
CMake
52 lines
1.9 KiB
CMake
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
zephyr_library()
|
|
|
|
zephyr_library_sources_ifdef(CONFIG_I2C_SHELL i2c_shell.c)
|
|
zephyr_library_sources_ifdef(CONFIG_I2C_BITBANG i2c_bitbang.c)
|
|
zephyr_library_sources_ifdef(CONFIG_I2C_CC13XX_CC26XX i2c_cc13xx_cc26xx.c)
|
|
zephyr_library_sources_ifdef(CONFIG_I2C_CC32XX i2c_cc32xx.c)
|
|
zephyr_library_sources_ifdef(CONFIG_I2C_ESP32 i2c_esp32.c)
|
|
zephyr_library_sources_ifdef(CONFIG_I2C_GPIO i2c_gpio.c)
|
|
zephyr_library_sources_ifdef(CONFIG_I2C_IMX i2c_imx.c)
|
|
zephyr_library_sources_ifdef(CONFIG_I2C_XEC i2c_mchp_xec.c)
|
|
zephyr_library_sources_ifdef(CONFIG_I2C_MCUX i2c_mcux.c)
|
|
zephyr_library_sources_ifdef(CONFIG_I2C_MCUX_LPI2C i2c_mcux_lpi2c.c)
|
|
zephyr_library_sources_ifdef(CONFIG_NRFX_TWI i2c_nrfx_twi.c)
|
|
zephyr_library_sources_ifdef(CONFIG_NRFX_TWIM i2c_nrfx_twim.c)
|
|
zephyr_library_sources_ifdef(CONFIG_I2C_SAM_TWI i2c_sam_twi.c)
|
|
zephyr_library_sources_ifdef(CONFIG_I2C_SAM_TWIHS i2c_sam_twihs.c)
|
|
zephyr_library_sources_ifdef(CONFIG_I2C_SBCON i2c_sbcon.c)
|
|
zephyr_library_sources_ifdef(CONFIG_I2C_SIFIVE i2c_sifive.c)
|
|
zephyr_library_sources_ifdef(CONFIG_I2C_NIOS2 i2c_nios2.c)
|
|
zephyr_library_sources_ifdef(CONFIG_I2C_GECKO i2c_gecko.c)
|
|
zephyr_library_sources_ifdef(CONFIG_I2C_RV32M1_LPI2C i2c_rv32m1_lpi2c.c)
|
|
zephyr_library_sources_ifdef(CONFIG_I2C_SAM0 i2c_sam0.c)
|
|
zephyr_library_sources_ifdef(CONFIG_I2C_LITEX i2c_litex.c)
|
|
|
|
zephyr_library_sources_ifdef(CONFIG_I2C_STM32_V1
|
|
i2c_ll_stm32_v1.c
|
|
i2c_ll_stm32.c
|
|
)
|
|
zephyr_library_sources_ifdef(CONFIG_I2C_STM32_V2
|
|
i2c_ll_stm32_v2.c
|
|
i2c_ll_stm32.c
|
|
)
|
|
|
|
if(CONFIG_I2C_DW)
|
|
zephyr_library_sources(i2c_dw.c)
|
|
foreach(NUM RANGE 0 7)
|
|
if(CONFIG_I2C_${NUM})
|
|
configure_file(
|
|
i2c_dw_port_x.h
|
|
${PROJECT_BINARY_DIR}/include/generated/i2c_dw_port_${NUM}.h
|
|
@ONLY
|
|
)
|
|
endif()
|
|
endforeach(NUM)
|
|
endif()
|
|
|
|
zephyr_library_sources_ifdef(CONFIG_USERSPACE i2c_handlers.c)
|
|
|
|
add_subdirectory_ifdef(CONFIG_I2C_SLAVE slave)
|