drivers: i3c: Support I3C driver for STM32.
This commit introduces support for the I3C driver on STM32, enabling functionality APIs for I3C controllers. Signed-off-by: Mohammad Badawi <zephyr@exalt.ps> Signed-off-by: Sara Touqan <zephyr@exalt.ps>
This commit is contained in:
parent
3b33aa5450
commit
10ba888fda
4 changed files with 2213 additions and 0 deletions
|
|
@ -41,6 +41,11 @@ zephyr_library_sources_ifdef(
|
|||
i3c_npcx.c
|
||||
)
|
||||
|
||||
zephyr_library_sources_ifdef(
|
||||
CONFIG_I3C_STM32
|
||||
i3c_stm32.c
|
||||
)
|
||||
|
||||
zephyr_library_sources_ifdef(
|
||||
CONFIG_I3C_TEST
|
||||
i3c_test.c
|
||||
|
|
|
|||
|
|
@ -123,5 +123,6 @@ rsource "Kconfig.nxp"
|
|||
rsource "Kconfig.cdns"
|
||||
rsource "Kconfig.npcx"
|
||||
rsource "Kconfig.test"
|
||||
rsource "Kconfig.stm32"
|
||||
|
||||
endif # I3C
|
||||
|
|
|
|||
36
drivers/i3c/Kconfig.stm32
Normal file
36
drivers/i3c/Kconfig.stm32
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
# Copyright (c) 2024 EXALT Technologies.
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
module = I3C_STM32
|
||||
module-str = i3c_stm32
|
||||
|
||||
source "subsys/logging/Kconfig.template.log_config"
|
||||
config I3C_STM32
|
||||
bool "STM32 I3C driver support"
|
||||
depends on DT_HAS_ST_STM32_I3C_ENABLED
|
||||
select I3C_IBI_WORKQUEUE if I3C_USE_IBI
|
||||
default y
|
||||
help
|
||||
Enable support for I3C on STM32 microcontrollers.
|
||||
|
||||
if I3C_STM32
|
||||
|
||||
config I3C_STM32_DMA
|
||||
bool "STM32 I3C DMA driver support"
|
||||
select DMA
|
||||
help
|
||||
Enables support for I3C DMA mode on STM32 microcontrollers.
|
||||
|
||||
config I3C_STM32_DMA_FIFO_HEAP_SIZE
|
||||
int "Status FIFO and control FIFO heap"
|
||||
depends on I3C_STM32_DMA
|
||||
default 2048
|
||||
help
|
||||
Configures the heap size for dynamically allocating the regions for
|
||||
storing status FIFO and control FIFO words which will be used by the DMA.
|
||||
This value depends on the maximum number of messages that will be sent
|
||||
during a single transfer. 2KB guarantees enough heap size for sending 256
|
||||
messages on a single transfer.
|
||||
|
||||
endif # I3C_STM32
|
||||
2171
drivers/i3c/i3c_stm32.c
Normal file
2171
drivers/i3c/i3c_stm32.c
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue