linux/drivers/spi
Mark Brown ee14a6ef56
Merge series "Add Tegra Quad SPI driver" from Sowjanya Komatineni <skomatineni@nvidia.com>:
This series adds Tegra210, Tegra186, and Tegra194 Quad SPI driver and
enables Quad SPI on Jetson Nano and Jetson Xavier NX.

QSPI controller is available on Tegra210, Tegra186 and Tegra194.

Tegra186 and Tegra194 has additional feature of combined sequence mode
where command, address and data can all be transferred in a single transfer.
Combined sequence mode is useful only when using DMA mode transfer.

This series does not have combined sequence mode feature as Tegra186/Tegra194
GPCDMA driver is not upstreamed yet.

This series includes
- dt-binding document
- QSPI driver for Tegra210/Tegra186/Tegra194
- Enables QSPI on Jetson Nano and Jetson Xavier NX.

Delta between patch versions:
[v5]:	Simplified implementation in Patch-0006

[v4]:	Updated dummy cycles implementation based on v3 feedback
	- Added dummy_data bit field int spi_transfer to indicate corresponding
	  transfer is dummy bytes transfer.
	- Updated Tegra QSPI transfer_one_message to identify dummy transfer and
	  to use HW supported dummy bytes transfer when dummy cycles are with in
	  Tegra QSPI supported max HW dummy cycles otherwise fallsback to transfer
	  dummy bytes from software.
	- Updated dt-bindings based on v3 feedback.

[v3]:	v2 has some mixed patches sent out accidentally.
	v3 sends proper patches with fixes mentioned in v2.

[v2]:	below v1 feedback
	- Added SPI_MASTER_USES_HW_DUMMY_CYCLES flag for controllers supporting
	  hardware dummy cycles and skips dummy bytes transfer from software for
	  these controllers.
	- Updated dt-binding doc with tx/rx tap delay properties.
	- Added qspi_out clock to dt-binding doc which will be used later with
	  ddr mode support.
	- All other v1 feedback on some cleanup.

Sowjanya Komatineni (9):
  dt-bindings: clock: tegra: Add clock ID TEGRA210_CLK_QSPI_PM
  dt-bindings: spi: Add Tegra Quad SPI device tree binding
  MAINTAINERS: Add Tegra Quad SPI driver section
  spi: tegra210-quad: Add support for Tegra210 QSPI controller
  spi: spi-mem: Mark dummy transfers by setting dummy_data bit
  spi: tegra210-quad: Add support for hardware dummy cycles transfer
  arm64: tegra: Enable QSPI on Jetson Nano
  arm64: tegra: Add QSPI nodes on Tegra194
  arm64: tegra: Enable QSPI on Jetson Xavier NX

 .../bindings/spi/nvidia,tegra210-quad.yaml         |  117 ++
 MAINTAINERS                                        |    8 +
 .../dts/nvidia/tegra194-p3509-0000+p3668-0000.dts  |   12 +
 arch/arm64/boot/dts/nvidia/tegra194.dtsi           |   28 +
 arch/arm64/boot/dts/nvidia/tegra210-p3450-0000.dts |   12 +
 arch/arm64/boot/dts/nvidia/tegra210.dtsi           |    5 +-
 drivers/spi/Kconfig                                |    9 +
 drivers/spi/Makefile                               |    1 +
 drivers/spi/spi-mem.c                              |    1 +
 drivers/spi/spi-tegra210-quad.c                    | 1410 ++++++++++++++++++++
 include/dt-bindings/clock/tegra210-car.h           |    2 +-
 include/linux/spi/spi.h                            |    2 +
 12 files changed, 1604 insertions(+), 3 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/spi/nvidia,tegra210-quad.yaml
 create mode 100644 drivers/spi/spi-tegra210-quad.c

--
2.7.4
2021-01-06 14:56:43 +00:00
..
atmel-quadspi.c Merge series "spi: atmel-quadspi: Fix AHB memory accesses" from Tudor Ambarus <tudor.ambarus@microchip.com>: 2020-12-07 17:18:27 +00:00
internals.h
Kconfig spi: tegra210-quad: Add support for Tegra210 QSPI controller 2021-01-06 13:09:30 +00:00
Makefile spi: tegra210-quad: Add support for Tegra210 QSPI controller 2021-01-06 13:09:30 +00:00
spi-altera.c spi: altera: fix module autoload 2020-06-24 16:37:47 +01:00
spi-amd.c spi: amd: Use devm_platform_ioremap_resource() in amd_spi_probe 2020-11-23 20:42:05 +00:00
spi-ar934x.c spi: ar934x: Don't leak SPI master in probe error path 2020-12-07 14:18:59 +00:00
spi-armada-3700.c spi: a3700: Remove a useless memset 2020-08-18 17:52:37 +01:00
spi-at91-usart.c spi: spi-at91-usart: Remove unused OF table 'struct of_device_id' 2020-07-17 16:38:54 +01:00
spi-ath79.c
spi-atmel.c spi: atmel: Downgrade to dev_dbg when dma_request_chan() fails 2020-10-30 12:56:14 +00:00
spi-au1550.c
spi-axi-spi-engine.c spi: spi-axi-spi-engine: Access register after clock initialization 2020-04-09 18:46:53 +01:00
spi-bcm63xx-hsspi.c spi: bcm63xx-hsspi: fix missing clk_disable_unprepare() on error in bcm63xx_hsspi_resume 2020-11-09 19:44:30 +00:00
spi-bcm63xx.c spi: bcm63xx-spi: add reset support 2020-06-17 14:29:58 +01:00
spi-bcm2835.c spi: bcm2835: Fix use-after-free on unbind 2020-11-12 15:05:35 +00:00
spi-bcm2835aux.c spi: bcm2835aux: Restore err assignment in bcm2835aux_spi_probe 2020-11-13 18:22:24 +00:00
spi-bcm-qspi.c spi: bcm-qspi: Fix use-after-free on unbind 2020-11-12 15:05:37 +00:00
spi-bcm-qspi.h
spi-bitbang-txrx.h
spi-bitbang.c spi: spi-bitbang: Demote obvious misuse of kerneldoc to standard comment blocks 2020-07-17 16:38:45 +01:00
spi-brcmstb-qspi.c
spi-butterfly.c
spi-cadence-quadspi.c spi: cadence-quadspi: Add DTR support 2021-01-06 13:08:47 +00:00
spi-cadence.c spi: cadence: Add SPI transfer delays 2020-10-09 16:00:47 +01:00
spi-cavium-octeon.c
spi-cavium-thunderx.c spi: spi-cavium-thunderx: flag controller as half duplex 2020-06-16 00:38:39 +01:00
spi-cavium.c spi: use new spi_transfer_delay_exec helper where straightforward 2019-10-15 11:51:57 +01:00
spi-cavium.h
spi-clps711x.c
spi-coldfire-qspi.c spi: coldfire-qspi: Use clk_prepare_enable and clk_disable_unprepare 2020-07-17 00:55:26 +01:00
spi-davinci.c spi: davinci: Fix use-after-free on unbind 2020-12-07 14:18:47 +00:00
spi-dln2.c
spi-dw-bt1.c Merge remote-tracking branch 'spi/for-5.10' into spi-5.11 2020-12-17 17:09:51 +00:00
spi-dw-core.c spi: dw: Add support for 32-bits max xfer size 2020-12-09 12:14:22 +00:00
spi-dw-dma.c spi: dw: Add generic DW SSI status-check method 2020-10-08 23:00:18 +01:00
spi-dw-mmio.c spi: dw: Add support for the Canaan K210 SoC SPI 2020-12-09 12:14:23 +00:00
spi-dw-pci.c spi: dw: Add DWC SSI capability 2020-10-08 23:00:06 +01:00
spi-dw.h spi: dw: Add support for 32-bits max xfer size 2020-12-09 12:14:22 +00:00
spi-efm32.c spi: efm32: Convert to use GPIO descriptors 2020-03-27 15:52:23 +00:00
spi-ep93xx.c spi: spi-ep93xx: Fix API slippage 2020-07-17 16:38:47 +01:00
spi-falcon.c spi: spi-falcon: extend warning to delay as well 2019-10-15 11:46:57 +01:00
spi-fsi.c spi: fsi: Fix transfer returning without finalizing message 2020-11-11 12:34:29 +00:00
spi-fsl-cpm.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
spi-fsl-cpm.h
spi-fsl-dspi.c spi: spi-fsl-dspi: Use max_native_cs instead of num_chipselect to set SPI_MCR 2020-12-01 12:17:13 +00:00
spi-fsl-espi.c Merge remote-tracking branch 'spi/for-5.10' into spi-next 2020-10-09 16:01:22 +01:00
spi-fsl-lib.c
spi-fsl-lib.h
spi-fsl-lpspi.c spi: lpspi: Fix use-after-free on unbind 2020-11-12 18:45:56 +00:00
spi-fsl-qspi.c spi: Fix SPI NOR and SPI NAND acronyms 2020-07-17 00:55:25 +01:00
spi-fsl-spi.c spi: fsl: fix use of spisel_boot signal on MPC8309 2020-11-30 12:52:49 +00:00
spi-fsl-spi.h
spi-geni-qcom.c spi: spi-geni-qcom: Print an error when we timeout setting the CS 2020-12-18 17:42:17 +00:00
spi-gpio.c spi: gpio: Don't leak SPI master in probe error path 2020-12-07 14:18:54 +00:00
spi-hisi-sfc-v3xx.c spi: hisi-sfc-v3xx: fix spelling mistake "occured" -> "occurred" 2020-09-28 20:33:56 +01:00
spi-img-spfi.c spi: img-spfi: fix reference leak in img_spfi_resume 2020-11-02 15:53:25 +00:00
spi-imx.c Merge branch 'for-5.10' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi into spi-5.11 2020-11-27 16:18:32 +00:00
spi-iproc-qspi.c
spi-jcore.c remove ioremap_nocache and devm_ioremap_nocache 2020-01-06 09:45:59 +01:00
spi-lantiq-ssc.c spi: lantiq: remove redundant irqsave and irqrestore in hardIRQ 2020-09-17 19:56:02 +01:00
spi-lm70llp.c
spi-loopback-test.c spi: spi-loopback-test: Fix out-of-bounds read 2020-09-02 19:38:24 +01:00
spi-lp8841-rtc.c
spi-mem.c spi: spi-mem: Mark dummy transfers by setting dummy_data bit 2021-01-06 13:09:31 +00:00
spi-meson-spicc.c spi: spi-meson-spicc: Remove set but never used variable 'data' from meson_spicc_reset_fifo() 2020-07-17 16:38:48 +01:00
spi-meson-spifc.c spi: spi-meson-spifc: Fix misdocumenting of 'dev' in 'struct meson_spifc' 2020-07-17 16:38:48 +01:00
spi-mpc52xx-psc.c spi: use new spi_transfer_delay_exec helper where straightforward 2019-10-15 11:51:57 +01:00
spi-mpc52xx.c
spi-mpc512x-psc.c spi: use new spi_transfer_delay_exec helper where straightforward 2019-10-15 11:51:57 +01:00
spi-mt65xx.c spi: mediatek: add spi support for mt8192 IC 2020-07-22 01:56:00 +01:00
spi-mt7621.c spi: mt7621: Don't leak SPI master in probe error path 2020-12-07 14:18:59 +00:00
spi-mtk-nor.c spi: spi-mtk-nor: Don't leak SPI master in probe error path 2020-12-07 14:18:53 +00:00
spi-mux.c spi: spi-mux: Simplify with dev_err_probe() 2020-09-08 18:19:27 +01:00
spi-mxic.c spi: mxic: Don't leak SPI master in probe error path 2020-12-07 14:18:52 +00:00
spi-mxs.c spi: mxs: fix reference leak in mxs_spi_probe 2020-11-18 18:00:26 +00:00
spi-npcm-fiu.c spi: npcm-fiu: Disable clock in probe error path 2020-12-07 14:19:00 +00:00
spi-npcm-pspi.c spi: npcm-pspi: Convert to use GPIO descriptors 2020-07-01 23:21:28 +01:00
spi-nxp-fspi.c spi: spi-nxp-fspi: fix fspi panic by unexpected interrupts 2020-11-23 14:10:02 +00:00
spi-oc-tiny.c SPI SUBSYSTEM: Replace HTTP links with HTTPS ones 2020-07-09 22:41:11 +01:00
spi-omap2-mcspi.c spi: omap2-mcspi: Improve performance waiting for CHSTAT 2020-09-22 01:04:20 +01:00
spi-omap-100k.c spi: omap-100k: Drop include 2020-07-14 17:38:46 +01:00
spi-omap-uwire.c spi: omap-uwire: Use clk_prepare_enable and clk_disable_unprepare 2020-07-15 15:58:33 +01:00
spi-orion.c spi: orion: enable support for switching CS every transferred byte 2020-12-28 12:25:31 +00:00
spi-pic32-sqi.c
spi-pic32.c spi: pic32: Don't leak DMA channels in probe error path 2020-11-12 15:16:34 +00:00
spi-pl022.c spi: spi-pl022: Provide missing struct attribute/function param docs 2020-07-17 16:38:50 +01:00
spi-ppc4xx.c spi: ppc4xx: Convert to use GPIO descriptors 2020-07-22 01:55:52 +01:00
spi-pxa2xx-dma.c
spi-pxa2xx-pci.c
spi-pxa2xx.c spi: pxa2xx: Fix use-after-free on unbind 2020-12-07 14:18:50 +00:00
spi-pxa2xx.h
spi-qcom-qspi.c spi: spi-qcom-qspi: Fix use-after-free on unbind 2020-12-07 14:18:49 +00:00
spi-qup.c spi: qup: remove redundant assignment to variable ret 2020-09-14 15:50:04 +01:00
spi-rb4xx.c spi: rb4xx: Don't leak SPI master in probe error path 2020-12-07 14:18:55 +00:00
spi-rockchip.c spi: rockchip: enable autosuspend feature 2020-10-26 23:29:04 +00:00
spi-rpc-if.c spi: rpc-if: Remove CONFIG_PM_SLEEP ifdefery 2020-12-31 12:46:31 +00:00
spi-rspi.c spi: rspi: Fill in controller speed limits 2020-08-20 22:38:17 +01:00
spi-s3c24xx-regs.h ARM: s3c24xx: move regs-spi.h into spi driver 2020-08-19 21:40:14 +02:00
spi-s3c24xx.c ARM: SoC platform updates 2020-10-24 10:33:08 -07:00
spi-s3c64xx.c spi: spi-s3c64xx: Turn on interrupts upon resume 2020-10-02 21:54:24 +01:00
spi-sc18is602.c spi: sc18is602: Don't leak SPI master in probe error path 2020-12-07 14:18:56 +00:00
spi-sh-hspi.c spi: use new spi_transfer_delay_exec helper where straightforward 2019-10-15 11:51:57 +01:00
spi-sh-msiof.c spi: spi-sh-msiof: Fix checkpatch error Complex macros should use () 2020-04-14 18:36:34 +01:00
spi-sh-sci.c
spi-sh.c spi: spi-sh: Fix use-after-free on unbind 2020-12-07 14:18:50 +00:00
spi-sifive.c spi: sifive: disable clk when probe fails and remove 2019-11-04 13:26:11 +00:00
spi-sirf.c spi: sirf: Use dma_request_chan() instead dma_request_slave_channel() 2019-12-16 11:57:36 +00:00
spi-slave-mt27xx.c
spi-slave-system-control.c
spi-slave-time.c
spi-sprd-adi.c spi: sprd: Simplify with dev_err_probe() 2020-09-14 15:50:17 +01:00
spi-sprd.c spi: sprd: fix reference leak in sprd_spi_remove 2020-11-11 12:39:32 +00:00
spi-st-ssc4.c spi: st-ssc4: Fix unbalanced pm_runtime_disable() in probe error path 2020-11-12 15:16:35 +00:00
spi-stm32-qspi.c spi: stm32-qspi: fix reference leak in stm32 qspi operations 2020-11-09 19:44:25 +00:00
spi-stm32.c spi: stm32: update dev_dbg() print format for SPI params 2021-01-05 14:35:28 +00:00
spi-sun4i.c spi: sun4i: update max transfer size reported 2020-07-27 14:55:21 +01:00
spi-sun6i.c spi: spi-sun6i: enable autosuspend feature 2020-10-26 23:29:05 +00:00
spi-synquacer.c spi: synquacer: Disable clock in probe error path 2020-11-12 15:16:33 +00:00
spi-tegra20-sflash.c spi: tegra20-sflash: fix reference leak in tegra_sflash_resume 2020-11-09 19:44:28 +00:00
spi-tegra20-slink.c spi: tegra20-slink: fix reference leak in slink ops of tegra20 2020-11-09 19:44:27 +00:00
spi-tegra114.c spi: tegra114: fix reference leak in tegra spi ops 2020-11-09 19:44:29 +00:00
spi-tegra210-quad.c spi: tegra210-quad: Add support for hardware dummy cycles transfer 2021-01-06 13:09:32 +00:00
spi-test.h
spi-ti-qspi.c spi: spi-ti-qspi: fix reference leak in ti_qspi_setup 2020-11-09 19:44:26 +00:00
spi-tle62x0.c
spi-topcliff-pch.c spi/topcliff-pch: drop double zeroing 2020-09-21 17:56:38 +01:00
spi-uniphier.c spi: uniphier: Use devm_platform_get_and_ioremap_resource() to simplify code 2020-05-11 18:17:52 +01:00
spi-xcomm.c spi: use new spi_transfer_delay_exec helper where straightforward 2019-10-15 11:51:57 +01:00
spi-xilinx.c spi: xilinx: Fix info message during probe 2020-09-17 19:56:01 +01:00
spi-xlp.c
spi-xtensa-xtfpga.c
spi-zynq-qspi.c spi: spi-zynq-qspi: Add description for 2 missing attributes/parameters 2020-07-17 16:38:51 +01:00
spi-zynqmp-gqspi.c spi: spi-zynqmp-gqspi: Fix incorrect indentation 2020-09-24 12:59:29 +01:00
spi.c spi: Add SPI_NO_TX/RX support 2020-12-28 14:21:31 +00:00
spidev.c spi: spidev: Remove redundant initialization of variable status 2020-09-09 16:27:46 +01:00