forked from Minki/linux
76b17e6e49
We have found that we can sometimes see read failures on boards with high-capacitance SPI lines. It seems that the controller samples the Rx data line too early, and its register interface has an "Rx Sample Delay" setting to fine-tune against this issue. This patch adds a new optional device tree entry that can configure this delay in terms of nanoseconds. The kernel will calculate the best-fitting amount of parent clock ticks to program the controller with based on that. Signed-off-by: Julius Werner <jwerner@chromium.org> Signed-off-by: Mark Brown <broonie@kernel.org>
46 lines
1.6 KiB
Plaintext
46 lines
1.6 KiB
Plaintext
* Rockchip SPI Controller
|
|
|
|
The Rockchip SPI controller is used to interface with various devices such as flash
|
|
and display controllers using the SPI communication interface.
|
|
|
|
Required Properties:
|
|
|
|
- compatible: should be one of the following.
|
|
"rockchip,rk3066-spi" for rk3066.
|
|
"rockchip,rk3188-spi", "rockchip,rk3066-spi" for rk3188.
|
|
"rockchip,rk3288-spi", "rockchip,rk3066-spi" for rk3288.
|
|
- reg: physical base address of the controller and length of memory mapped
|
|
region.
|
|
- interrupts: The interrupt number to the cpu. The interrupt specifier format
|
|
depends on the interrupt controller.
|
|
- clocks: Must contain an entry for each entry in clock-names.
|
|
- clock-names: Shall be "spiclk" for the transfer-clock, and "apb_pclk" for
|
|
the peripheral clock.
|
|
- #address-cells: should be 1.
|
|
- #size-cells: should be 0.
|
|
|
|
Optional Properties:
|
|
|
|
- dmas: DMA specifiers for tx and rx dma. See the DMA client binding,
|
|
Documentation/devicetree/bindings/dma/dma.txt
|
|
- dma-names: DMA request names should include "tx" and "rx" if present.
|
|
- rx-sample-delay-ns: nanoseconds to delay after the SCLK edge before sampling
|
|
Rx data (may need to be fine tuned for high capacitance lines).
|
|
No delay (0) by default.
|
|
|
|
|
|
Example:
|
|
|
|
spi0: spi@ff110000 {
|
|
compatible = "rockchip,rk3066-spi";
|
|
reg = <0xff110000 0x1000>;
|
|
dmas = <&pdma1 11>, <&pdma1 12>;
|
|
dma-names = "tx", "rx";
|
|
rx-sample-delay-ns = <10>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
|
|
clocks = <&cru SCLK_SPI0>, <&cru PCLK_SPI0>;
|
|
clock-names = "spiclk", "apb_pclk";
|
|
};
|