Message ID | 1632037121-21019-1-git-send-email-pthombar@cadence.com (mailing list archive) |
---|---|
Headers | show |
Series | add support for Cadence's XSPI controller | expand |
Please ignore this patch series. Regards, Parshuram Thombare >-----Original Message----- >From: Parshuram Thombare <pthombar@cadence.com> >Sent: Sunday, September 19, 2021 1:09 PM >To: broonie@kernel.org; lukas@wunner.de; p.yadav@ti.com; >robh+dt@kernel.org >Cc: linux-spi@vger.kernel.org; devicetree@vger.kernel.org; linux- >kernel@vger.kernel.org; Jayshri Dajiram Pawar <jpawar@cadence.com>; Milind >Parab <mparab@cadence.com>; Parshuram Raju Thombare ><pthombar@cadence.com> >Subject: [PATCH v6 0/2] add support for Cadence's XSPI controller > >This patch series adds support for Cadence's XSPI controller. >It supports 3 work modes. >1. ACMD (auto command) work mode > ACMD name is because it uses auto command engine in the controller. > It further has 2 modes PIO and CDMA (command DMA). > The CDMA work mode is dedicated for high-performance application > where very low software overhead is required. In this mode the > Command Engine is programmed by the series of linked descriptors > stored in system memory. These descriptors provide commands to execute > and store status information for finished commands. > The PIO mode work mode is dedicated for single operation where > constructing a linked list of descriptors would require too > much effort. >2. STIG (Software Triggered Instruction Generator) work mode > In STIG mode, controller sends low-level instructions to memory. > Each instruction is 128-bit width. There is special instruction > DataSequence which carries information about data phase. > Driver uses Slave DMA interface to transfer data as only this > interface can be used in STIG work mode. >3. Direct work mode > This work mode allows sending data without invoking any command through > the slave interface. >Currently only STIG work mode is enabled, remaining work modes will >be added later. > >Changes since v5: >1. Added adjust_op_size to adjust op size according to sdma size. > >Changes since v4: >1. Changed reg region names and lengths as suggested by Rob. > >Changes since v3: >1. Removed ACMD PIO mode. >2. Return IRQ_HANDLED only for handled interrupts. >3. DT binding changes. > >Changes since v2: >1. Removed extra lock around exec_op. >2. Removed PHY parameters setting from the driver, those will be > handled by bootstrap pins available in the controller. > >Changes since v1: >1. Use ACMD PIO work mode for NOR read, program and erase operations, > for everything else use STIG(Software Triggered Instruction > Generator) work mode. >2. Changes suggested by Lukas. > >Parshuram Thombare (2): > spi: cadence: add dt-bindings documentation for Cadence XSPI > controller > spi: cadence: add support for Cadence XSPI controller > > .../devicetree/bindings/spi/cdns,xspi.yaml | 77 +++ > drivers/spi/Kconfig | 12 + > drivers/spi/Makefile | 1 + > drivers/spi/spi-cadence-xspi.c | 639 +++++++++++++++++++++ > 4 files changed, 729 insertions(+) > create mode 100644 Documentation/devicetree/bindings/spi/cdns,xspi.yaml > create mode 100644 drivers/spi/spi-cadence-xspi.c > >-- >2.7.4