1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
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.
Recommended properties:
- spi-max-frequency: Definition as per
Documentation/devicetree/bindings/spi/spi-bus.txt
Optional properties:
- nvidia,clock-always-on: Enable clock of spi always.
- nvidia,polling-mode: Use polling method instead of interrupts
- nvidia,boost-reg-access: In T210 and earlier chips SPI register access
is dependant on SPI clock frequency. Setting this option would
allow SPI clock frequency to be boosted. Benefitial when running
SPI at low frequencies with cpu based transfers. Default false.
spi-client device controller properties:
- nvidia,enable-hw-based-cs: (Boolean) Use the HW based CS if enabled.
- nvidia,tx-clk-tap-delay: Delays the clock going out to the external device
with this tap value.
- nvidia,rx-clk-tap-delay: Delays the clock coming in from the external device
with this tap value.
- nvidia,cs-setup-clk-count: CS setup timing parameter.
- nvidia,cs-hold-clk-count: CS hold timing parameter.
Example:
spi@7000d600 {
compatible = "nvidia,tegra114-spi";
reg = <0x7000d600 0x200>;
interrupts = <0 82 0x04>;
nvidia,dma-request-selector = <&apbdma 16>;
spi-max-frequency = <25000000>;
nvidia,clock-always-on;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
<spi-client>@<bus_num> {
...
...
nvidia,enable-hw-based-cs;
nvidia,cs-setup-clk-count = <10>;
nvidia,cs-hold-clk-count = <10>;
nvidia,rx-clk-tap-delay = <0>;
nvidia,tx-clk-tap-delay = <16>;
...
};
};
|