Skip to content

Intergration of QSPI support into SPI bus  #51402

@firebladed

Description

@firebladed

Is your enhancement proposal related to a problem? Please describe.
currently devices that support QSPI seem to require separate "bus" drivers from SPI devices

e.g
the ft813 supports single, dual and quad SPI configurations but requires setting of a register to switch between to dual or quad spi
and therefore requires a write in single mode to switch to dual/quad mode

currently this appears it would require both the standard SPI bus implementation and an one or more of the apparent variants of existing QSPI drivers as there appears to be no qspi bus.

Describe the solution you'd like

The SPI bus can support Quad SPI, and Dual, bus configurations and can switch modes at request of the device driver.

  • device drivers can request switching to Dual or Quad spi modes and get either a successful or a mode not supported response

  • existing controller drivers that don't implement mode switching get any automatic not supported, from a default api function

  • an api function to return a bus controllers supported mode list/bitmap with a default api response if single where not implemented

  • target modes that require additional pins return "not configured" if appropriate pins are not configured

  • spi controller drivers implement the specifics of (de)composing data to/from the separate lines

Describe alternatives you've considered

an alternate QSPI bus that be substituted for a standard SPI bus in device drivers, like can be done with I2C

e.g

COND_CODE_1(DT_INST_ON_BUS(inst, spi),			
(DEVICE_CONFIG_SPI(inst)),			
(DEVICE_CONFIG_I2C(inst)));	

Additional context

related #51344

Metadata

Metadata

Assignees

Labels

EnhancementChanges/Updates/Additions to existing featuresarea: QSPIQuad SPIarea: SPISPI bus

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions