Merge tag 'spi-v5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi
Pull spi updates from Mark Brown: "The big theme for this release has been performance, we've had a series of unrelated overhauls of a few drivers all with a big peformance component. Otherwise it's been relatively quiet, highlights include: - A big overhaul of the spi-fsl-dspi driver improving the code quality, performance and stability from Vladimir Oltean. - A big performance enhancement for the bc2835 (Raspberry Pi) driver for unidirectional transfers from Lukas Wunner. - Improved performance on small transfers for the uniphier driver from Keiji Hayashibara. - Lots of coccinelle generated cleanups from Yue Haibing. - New device support for Freescale ls2080a and Nuvoton NPCM FIU" * tag 'spi-v5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (102 commits) spi: mediatek: support large PA spi: mediatek: add spi support for mt6765 IC dt-bindings: spi: update bindings for MT6765 SoC spi: bcm2835: Speed up RX-only DMA transfers by zero-filling TX FIFO spi: bcm2835: Speed up TX-only DMA transfers by clearing RX FIFO dmaengine: bcm2835: Avoid accessing memory when copying zeroes spi: bcm2835: Cache CS register value for ->prepare_message() dmaengine: bcm2835: Document struct bcm2835_dmadev spi: Guarantee cacheline alignment of driver-private data dmaengine: bcm2835: Allow reusable descriptors dmaengine: bcm2835: Allow cyclic transactions without interrupt spi: bcm2835: Drop dma_pending flag spi: bcm2835: Work around DONE bit erratum spi-gpio: Use PTR_ERR_OR_ZERO() in spi_gpio_request() spi: Use an abbreviated pointer to ctlr->cur_msg in __spi_pump_messages spi: npcm-fiu: remove set but not used variable 'retlen' spi: fsl-spi: use devm_platform_ioremap_resource() to simplify code spi: zynq-qspi: use devm_platform_ioremap_resource() to simplify code spi: zynqmp: use devm_platform_ioremap_resource() to simplify code spi: xlp: use devm_platform_ioremap_resource() to simplify code ...
This commit is contained in:
47
Documentation/devicetree/bindings/spi/nuvoton,npcm-fiu.txt
Normal file
47
Documentation/devicetree/bindings/spi/nuvoton,npcm-fiu.txt
Normal file
@@ -0,0 +1,47 @@
|
||||
* Nuvoton FLASH Interface Unit (FIU) SPI Controller
|
||||
|
||||
NPCM FIU supports single, dual and quad communication interface.
|
||||
|
||||
The NPCM7XX supports three FIU modules,
|
||||
FIU0 and FIUx supports two chip selects,
|
||||
FIU3 support four chip select.
|
||||
|
||||
Required properties:
|
||||
- compatible : "nuvoton,npcm750-fiu" for the NPCM7XX BMC
|
||||
- #address-cells : should be 1.
|
||||
- #size-cells : should be 0.
|
||||
- reg : the first contains the register location and length,
|
||||
the second contains the memory mapping address and length
|
||||
- reg-names: Should contain the reg names "control" and "memory"
|
||||
- clocks : phandle of FIU reference clock.
|
||||
|
||||
Required properties in case the pins can be muxed:
|
||||
- pinctrl-names : a pinctrl state named "default" must be defined.
|
||||
- pinctrl-0 : phandle referencing pin configuration of the device.
|
||||
|
||||
Optional property:
|
||||
- nuvoton,spix-mode: enable spix-mode for an expansion bus to an ASIC or CPLD.
|
||||
|
||||
Aliases:
|
||||
- All the FIU controller nodes should be represented in the aliases node using
|
||||
the following format 'fiu{n}' where n is a unique number for the alias.
|
||||
In the NPCM7XX BMC:
|
||||
fiu0 represent fiu 0 controller
|
||||
fiu1 represent fiu 3 controller
|
||||
fiu2 represent fiu x controller
|
||||
|
||||
Example:
|
||||
fiu3: spi@c00000000 {
|
||||
compatible = "nuvoton,npcm750-fiu";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0xfb000000 0x1000>, <0x80000000 0x10000000>;
|
||||
reg-names = "control", "memory";
|
||||
clocks = <&clk NPCM7XX_CLK_AHB>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&spi3_pins>;
|
||||
spi-nor@0 {
|
||||
...
|
||||
};
|
||||
};
|
||||
|
@@ -31,7 +31,7 @@ properties:
|
||||
If that property is used, the number of chip selects will be
|
||||
increased automatically with max(cs-gpios, hardware chip selects).
|
||||
|
||||
So if, for example, the controller has 2 CS lines, and the
|
||||
So if, for example, the controller has 4 CS lines, and the
|
||||
cs-gpios looks like this
|
||||
cs-gpios = <&gpio1 0 0>, <0>, <&gpio1 1 0>, <&gpio1 2 0>;
|
||||
|
||||
|
@@ -3,9 +3,8 @@
|
||||
Required properties:
|
||||
- compatible : Should be "fsl,vf610-qspi", "fsl,imx6sx-qspi",
|
||||
"fsl,imx7d-qspi", "fsl,imx6ul-qspi",
|
||||
"fsl,ls1021a-qspi"
|
||||
"fsl,ls1021a-qspi", "fsl,ls2080a-qspi"
|
||||
or
|
||||
"fsl,ls2080a-qspi" followed by "fsl,ls1021a-qspi",
|
||||
"fsl,ls1043a-qspi" followed by "fsl,ls1021a-qspi"
|
||||
- reg : the first contains the register location and length,
|
||||
the second contains the memory mapping address and length
|
||||
@@ -34,7 +33,11 @@ qspi0: quadspi@40044000 {
|
||||
clock-names = "qspi_en", "qspi";
|
||||
|
||||
flash0: s25fl128s@0 {
|
||||
....
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "spansion,s25fl128s", "jedec,spi-nor";
|
||||
spi-max-frequency = <50000000>;
|
||||
reg = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
|
@@ -5,6 +5,7 @@ Required properties:
|
||||
- mediatek,mt2701-spi: for mt2701 platforms
|
||||
- mediatek,mt2712-spi: for mt2712 platforms
|
||||
- mediatek,mt6589-spi: for mt6589 platforms
|
||||
- mediatek,mt6765-spi: for mt6765 platforms
|
||||
- mediatek,mt7622-spi: for mt7622 platforms
|
||||
- "mediatek,mt7629-spi", "mediatek,mt7622-spi": for mt7629 platforms
|
||||
- mediatek,mt8135-spi: for mt8135 platforms
|
||||
|
@@ -25,18 +25,23 @@ data by ADI software channels at the same time, or two parallel routine of setti
|
||||
ADI registers will make ADI controller registers chaos to lead incorrect results.
|
||||
Then we need one hardware spinlock to synchronize between the multiple subsystems.
|
||||
|
||||
The new version ADI controller supplies multiple master channels for different
|
||||
subsystem accessing, that means no need to add hardware spinlock to synchronize,
|
||||
thus change the hardware spinlock support to be optional to keep backward
|
||||
compatibility.
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be "sprd,sc9860-adi".
|
||||
- reg: Offset and length of ADI-SPI controller register space.
|
||||
- hwlocks: Reference to a phandle of a hwlock provider node.
|
||||
- hwlock-names: Reference to hwlock name strings defined in the same order
|
||||
as the hwlocks, should be "adi".
|
||||
- #address-cells: Number of cells required to define a chip select address
|
||||
on the ADI-SPI bus. Should be set to 1.
|
||||
- #size-cells: Size of cells required to define a chip select address size
|
||||
on the ADI-SPI bus. Should be set to 0.
|
||||
|
||||
Optional properties:
|
||||
- hwlocks: Reference to a phandle of a hwlock provider node.
|
||||
- hwlock-names: Reference to hwlock name strings defined in the same order
|
||||
as the hwlocks, should be "adi".
|
||||
- sprd,hw-channels: This is an array of channel values up to 49 channels.
|
||||
The first value specifies the hardware channel id which is used to
|
||||
transfer data triggered by hardware automatically, and the second
|
||||
|
Reference in New Issue
Block a user