Add an interrupt driven i2c driver for gd32 i2c peripheral. The transmit and reception method refer from GD32 SoCs user manual. Particularly, reception method choose the solution B. There have some wait for state ready logic in the driver. It cause by i2c device internal state change slower than i2c driver. Signed-off-by: HaiLong Yang <cameledyang@pm.me>
138 lines
3 KiB
Text
138 lines
3 KiB
Text
# I2C configuration options
|
|
|
|
# Copyright (c) 2015 Intel Corporation
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
#
|
|
# I2C options
|
|
#
|
|
menuconfig I2C
|
|
bool "I2C Drivers"
|
|
help
|
|
Enable I2C Driver Configuration
|
|
|
|
if I2C
|
|
|
|
config I2C_SHELL
|
|
bool "Enable I2C Shell"
|
|
default y
|
|
depends on SHELL
|
|
help
|
|
Enable I2C Shell.
|
|
|
|
The I2C shell currently support scanning and bus recovery.
|
|
|
|
config I2C_STATS
|
|
bool "Enable I2C device Stats"
|
|
depends on STATS
|
|
help
|
|
Enable I2C Stats.
|
|
|
|
# Include these first so that any properties (e.g. defaults) below can be
|
|
# overridden (by defining symbols in multiple locations)
|
|
source "drivers/i2c/Kconfig.b91"
|
|
source "drivers/i2c/Kconfig.cc13xx_cc26xx"
|
|
source "drivers/i2c/Kconfig.dw"
|
|
source "drivers/i2c/Kconfig.esp32"
|
|
source "drivers/i2c/slave/Kconfig"
|
|
source "drivers/i2c/Kconfig.gpio"
|
|
source "drivers/i2c/Kconfig.xec"
|
|
source "drivers/i2c/Kconfig.nrfx"
|
|
source "drivers/i2c/Kconfig.i2c_emul"
|
|
source "drivers/i2c/Kconfig.it8xxx2"
|
|
source "drivers/i2c/Kconfig.sbcon"
|
|
source "drivers/i2c/Kconfig.sifive"
|
|
source "drivers/i2c/Kconfig.stm32"
|
|
source "drivers/i2c/Kconfig.sam0"
|
|
source "drivers/i2c/Kconfig.litex"
|
|
source "drivers/i2c/Kconfig.lpc11u6x"
|
|
source "drivers/i2c/Kconfig.npcx"
|
|
source "drivers/i2c/Kconfig.test"
|
|
source "drivers/i2c/Kconfig.rcar"
|
|
source "drivers/i2c/Kconfig.tca954x"
|
|
source "drivers/i2c/Kconfig.gd32"
|
|
|
|
config I2C_INIT_PRIORITY
|
|
int "Init priority"
|
|
default 60
|
|
help
|
|
I2C device driver initialization priority.
|
|
|
|
|
|
module = I2C
|
|
module-str = i2c
|
|
source "subsys/logging/Kconfig.template.log_config"
|
|
|
|
config I2C_GECKO
|
|
bool "Gecko I2C driver"
|
|
depends on HAS_SILABS_GECKO
|
|
select SOC_GECKO_I2C
|
|
help
|
|
Enable the SiLabs Gecko I2C bus driver.
|
|
|
|
config I2C_SAM_TWIHS
|
|
bool "Atmel SAM (TWIHS) I2C driver"
|
|
depends on SOC_FAMILY_SAM
|
|
help
|
|
Enable Atmel SAM MCU Family (TWIHS) I2C bus driver.
|
|
|
|
config I2C_SAM_TWIM
|
|
bool "Atmel SAM (TWIM) I2C driver"
|
|
depends on SOC_SERIES_SAM4L
|
|
help
|
|
Enable Atmel SAM MCU Family (TWIM) I2C bus driver.
|
|
|
|
config I2C_SAM_TWI
|
|
bool "Atmel SAM (TWI) I2C driver"
|
|
depends on SOC_FAMILY_SAM
|
|
help
|
|
Enable Atmel SAM MCU Family (TWI) I2C bus driver.
|
|
|
|
config I2C_MCUX
|
|
bool "MCUX I2C driver"
|
|
depends on HAS_MCUX
|
|
help
|
|
Enable the mcux I2C driver.
|
|
|
|
config I2C_MCUX_FLEXCOMM
|
|
bool "MCUX FLEXCOMM I2C driver"
|
|
depends on HAS_MCUX_FLEXCOMM
|
|
help
|
|
Enable the mcux flexcomm i2c driver.
|
|
|
|
config I2C_MCUX_LPI2C
|
|
bool "MCUX LPI2C driver"
|
|
depends on HAS_MCUX_LPI2C && CLOCK_CONTROL
|
|
help
|
|
Enable the mcux LPI2C driver.
|
|
|
|
config I2C_IMX
|
|
bool "i.MX I2C driver"
|
|
depends on HAS_IMX_I2C
|
|
help
|
|
Enable the i.MX I2C driver.
|
|
|
|
config I2C_CC32XX
|
|
bool "CC32XX I2C driver"
|
|
depends on SOC_SERIES_CC32XX
|
|
help
|
|
Enable the CC32XX I2C driver.
|
|
|
|
config I2C_BITBANG
|
|
bool
|
|
help
|
|
Enable library used for software driven (bit banging) I2C support
|
|
|
|
config I2C_NIOS2
|
|
bool "Nios-II I2C driver"
|
|
depends on HAS_ALTERA_HAL
|
|
help
|
|
Enable the Nios-II I2C driver.
|
|
|
|
config I2C_RV32M1_LPI2C
|
|
bool "RV32M1 LPI2C driver"
|
|
depends on HAS_RV32M1_LPI2C && CLOCK_CONTROL
|
|
help
|
|
Enable the RV32M1 LPI2C driver.
|
|
|
|
endif # I2C
|