Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f333a331 authored by Laxman Dewangan's avatar Laxman Dewangan Committed by Grant Likely
Browse files

spi/tegra114: add spi driver



Add SPI driver for NVIDIA's Tegra114 SPI controller. This controller
is different than the older SoCs SPI controller in internal design as
well as register interface.

This driver supports the:
- non DMA based transfer for smaller transfer i.e. less than FIFO depth.
- APB DMA based transfer for larger transfer i.e. more than FIFO depth.
- Clock gating through runtime PM callbacks.
- registration through DT only.

Signed-off-by: default avatarLaxman Dewangan <ldewangan@nvidia.com>
Reviewed-by: default avatarStephen Warren <swarren@nvidia.com>
Signed-off-by: default avatarGrant Likely <grant.likely@secretlab.ca>
parent 5e49035e
Loading
Loading
Loading
Loading
+26 −0
Original line number Diff line number Diff line
NVIDIA Tegra114 SPI controller.

Required properties:
- compatible : should be "nvidia,tegra114-spi".
- reg: Should contain SPI registers location and length.
- interrupts: Should contain SPI interrupts.
- nvidia,dma-request-selector : The Tegra DMA controller's phandle and
  request selector for this SPI controller.
- This is also require clock named "spi" as per binding document
  Documentation/devicetree/bindings/clock/clock-bindings.txt

Recommended properties:
- spi-max-frequency: Definition as per
                     Documentation/devicetree/bindings/spi/spi-bus.txt
Example:

spi@7000d600 {
	compatible = "nvidia,tegra114-spi";
	reg = <0x7000d600 0x200>;
	interrupts = <0 82 0x04>;
	nvidia,dma-request-selector = <&apbdma 16>;
	spi-max-frequency = <25000000>;
	#address-cells = <1>;
	#size-cells = <0>;
	status = "disabled";
};
+8 −0
Original line number Diff line number Diff line
@@ -415,6 +415,14 @@ config SPI_MXS
	help
	  SPI driver for Freescale MXS devices.

config SPI_TEGRA114
	tristate "NVIDIA Tegra114 SPI Controller"
	depends on ARCH_TEGRA && TEGRA20_APB_DMA
	help
	  SPI driver for NVIDIA Tegra114 SPI Controller interface. This controller
	  is different than the older SoCs SPI controller and also register interface
	  get changed with this controller.

config SPI_TEGRA20_SFLASH
	tristate "Nvidia Tegra20 Serial flash Controller"
	depends on ARCH_TEGRA
+1 −0
Original line number Diff line number Diff line
@@ -65,6 +65,7 @@ obj-$(CONFIG_SPI_SH_HSPI) += spi-sh-hspi.o
obj-$(CONFIG_SPI_SH_MSIOF)		+= spi-sh-msiof.o
obj-$(CONFIG_SPI_SH_SCI)		+= spi-sh-sci.o
obj-$(CONFIG_SPI_SIRF)		+= spi-sirf.o
obj-$(CONFIG_SPI_TEGRA114)		+= spi-tegra114.o
obj-$(CONFIG_SPI_TEGRA20_SFLASH)	+= spi-tegra20-sflash.o
obj-$(CONFIG_SPI_TEGRA20_SLINK)		+= spi-tegra20-slink.o
obj-$(CONFIG_SPI_TI_SSP)		+= spi-ti-ssp.o
+1246 −0

File added.

Preview size limit exceeded, changes collapsed.