Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 7 additions & 4 deletions doc/hardware/peripherals/mspi.rst
Original file line number Diff line number Diff line change
Expand Up @@ -100,10 +100,12 @@ whether to support scatter IO and callback management. The controller can determ
which user callback to trigger based on :c:enum:`mspi_bus_event_cb_mask` upon completion
of each async/sync transfer if the callback had been registered using
:c:func:`mspi_register_callback`. Or not to trigger any callback at all with
:c:enum:`MSPI_BUS_NO_CB` even if the callbacks are already registered.
In which case that a controller supports hardware command queue, user could take full
advantage of the hardware performance if scatter IO and callback management are supported
by the driver implementation.
:c:enum:`MSPI_BUS_NO_CB` even if the callbacks are already registered. If the implemented
driver support it, the API supports :c:enum:`MSPI_BUS_XFER_COMPLETE_CB` to signal when a
transfer finishes and :c:enum:`MSPI_BUS_TIMEOUT_CB` to signal when a transfer or request
has timed-out. In which case that a controller supports hardware command queue, user could
take full advantage of the hardware performance if scatter IO and callback management are
supported by the driver implementation.

Device Tree
===========
Expand Down Expand Up @@ -192,6 +194,7 @@ Related configuration options:
* :kconfig:option:`CONFIG_MSPI_TIMING`
* :kconfig:option:`CONFIG_MSPI_INIT_PRIORITY`
* :kconfig:option:`CONFIG_MSPI_COMPLETION_TIMEOUT_TOLERANCE`
* :kconfig:option:`CONFIG_MSPI_DMA`

API Reference
*************
Expand Down
6 changes: 6 additions & 0 deletions drivers/mspi/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,12 @@ config MSPI_TIMING
Enables mspi_timing_config calls in device drivers for those
controllers that need this to proper function at high frequencies.

config MSPI_DMA
bool "DMA support"
help
Enables DMA capabilities, depending on the driver and hardware it
runs on.

module = MSPI
module-str = mspi
source "subsys/logging/Kconfig.template.log_config"
Expand Down
11 changes: 10 additions & 1 deletion drivers/mspi/Kconfig.dw
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,20 @@ config MSPI_DW
default y
depends on DT_HAS_SNPS_DESIGNWARE_SSI_ENABLED
select PINCTRL if $(dt_compat_any_has_prop,$(DT_COMPAT_SNPS_DESIGNWARE_SSI),pinctrl-0)
imply MSPI_XIP
imply MSPI_TIMING

if MSPI_DW

config MSPI_DW_DDR
bool "Dual Data-Rate (DDR) capabilities"
default y
help
Dual data rate is supported by some devices and requires specific
registers to be enabled in the IP.

config MSPI_DW_HANDLE_FIFOS_IN_SYSTEM_WORKQUEUE
bool "Handle FIFO in system workqueue"
depends on MULTITHREADING
help
When the driver does not use DMA for transferring data to/from the
SSI FIFOs, handling of those may take a significant amount of time.
Expand All @@ -23,6 +30,7 @@ config MSPI_DW_HANDLE_FIFOS_IN_SYSTEM_WORKQUEUE

config MSPI_DW_TXD_DIV
int "Designware SSI TX Drive edge divisor"
depends on MSPI_DW_DDR
default 4
help
Division factor to apply to calculated BAUDR value when writing it
Expand All @@ -31,6 +39,7 @@ config MSPI_DW_TXD_DIV

config MSPI_DW_TXD_MUL
int "Designware SSI TX Drive edge multiplier"
depends on MSPI_DW_DDR
default 1
help
Multiplication factor to apply to calculated BAUDR value when writing
Expand Down
Loading
Loading