forked from Minki/linux
8c2c8c03cd
When the CONTINUE bit is set, the interrupt status we are polling to identify if a transaction has finished can be sporadic. Even though the transfer has finished, the interrupt status may erroneously indicate that there is still data in the FIFO. This behaviour causes random timeouts in large PIO transfers. Instead of using the CONTINUE bit to control the CS lines, use the SPI core's CS GPIO handling. Also, now that the CONTINUE bit is not being used, we can poll for the ALLDONE interrupt to indicate transfer completion. Signed-off-by: Sifan Naeem <sifan.naeem@imgtec.com> Signed-off-by: Ezequiel Garcia <ezequiel.garcia@imgtec.com> Signed-off-by: Andrew Bresticker <abrestic@chromium.org> Signed-off-by: Mark Brown <broonie@kernel.org>
39 lines
1.1 KiB
Plaintext
39 lines
1.1 KiB
Plaintext
IMG Synchronous Peripheral Flash Interface (SPFI) controller
|
|
|
|
Required properties:
|
|
- compatible: Must be "img,spfi".
|
|
- reg: Must contain the base address and length of the SPFI registers.
|
|
- interrupts: Must contain the SPFI interrupt.
|
|
- clocks: Must contain an entry for each entry in clock-names.
|
|
See ../clock/clock-bindings.txt for details.
|
|
- clock-names: Must include the following entries:
|
|
- spfi: SPI operating clock
|
|
- sys: SPI system interface clock
|
|
- dmas: Must contain an entry for each entry in dma-names.
|
|
See ../dma/dma.txt for details.
|
|
- dma-names: Must include the following entries:
|
|
- rx
|
|
- tx
|
|
- cs-gpios: Must specify the GPIOs used for chipselect lines.
|
|
- #address-cells: Must be 1.
|
|
- #size-cells: Must be 0.
|
|
|
|
Optional properties:
|
|
- img,supports-quad-mode: Should be set if the interface supports quad mode
|
|
SPI transfers.
|
|
|
|
Example:
|
|
|
|
spi@18100f00 {
|
|
compatible = "img,spfi";
|
|
reg = <0x18100f00 0x100>;
|
|
interrupts = <GIC_SHARED 22 IRQ_TYPE_LEVEL_HIGH>;
|
|
clocks = <&spi_clk>, <&system_clk>;
|
|
clock-names = "spfi", "sys";
|
|
dmas = <&mdc 9 0xffffffff 0>, <&mdc 10 0xffffffff 0>;
|
|
dma-names = "rx", "tx";
|
|
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
};
|