Add an alternate STM32 I2C driver that works around errata in the F103 chip (and maybe others). From Patrizio Simona
This commit is contained in:
parent
59e254d1f6
commit
6018da5181
|
@ -3052,6 +3052,17 @@ endmenu
|
||||||
menu "I2C Configuration"
|
menu "I2C Configuration"
|
||||||
depends on STM32_I2C
|
depends on STM32_I2C
|
||||||
|
|
||||||
|
config STM32_I2C_ALT
|
||||||
|
bool "Alternate I2C implementation"
|
||||||
|
default n if !STM32_PERFORMANCELINE
|
||||||
|
default y if STM32_PERFORMANCELINE
|
||||||
|
---help---
|
||||||
|
This selection enables an alternative I2C driver. This alternate
|
||||||
|
driver implements some rather complex workarounds for errata against
|
||||||
|
the STM32 F103 "Performance Line". This selection is an option
|
||||||
|
because: (1) It has not yet been fully verified and (2) It is not
|
||||||
|
certain that he scope of this workaround is needed only for the F103.
|
||||||
|
|
||||||
config STM32_I2C_DYNTIMEO
|
config STM32_I2C_DYNTIMEO
|
||||||
bool "Use dynamic timeouts"
|
bool "Use dynamic timeouts"
|
||||||
default n
|
default n
|
||||||
|
|
|
@ -105,11 +105,15 @@ ifeq ($(CONFIG_NUTTX_KERNEL),y)
|
||||||
CHIP_CSRCS += stm32_userspace.c stm32_mpuinit.c
|
CHIP_CSRCS += stm32_userspace.c stm32_mpuinit.c
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_STM32_I2C_ALT),y)
|
||||||
|
CHIP_CSRCS += stm32_i2c_alt.c
|
||||||
|
else
|
||||||
ifeq ($(CONFIG_STM32_STM32F30XX),y)
|
ifeq ($(CONFIG_STM32_STM32F30XX),y)
|
||||||
CHIP_CSRCS += stm32f30xxx_i2c.c
|
CHIP_CSRCS += stm32f30xxx_i2c.c
|
||||||
else
|
else
|
||||||
CHIP_CSRCS += stm32_i2c.c
|
CHIP_CSRCS += stm32_i2c.c
|
||||||
endif
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(CONFIG_USBDEV),y)
|
ifeq ($(CONFIG_USBDEV),y)
|
||||||
ifeq ($(CONFIG_STM32_USB),y)
|
ifeq ($(CONFIG_STM32_USB),y)
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue