1*9684752eSSowjanya Komatineni# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2*9684752eSSowjanya Komatineni%YAML 1.2
3*9684752eSSowjanya Komatineni---
4*9684752eSSowjanya Komatineni$id: http://devicetree.org/schemas/spi/nvidia,tegra210-quad.yaml#
5*9684752eSSowjanya Komatineni$schema: http://devicetree.org/meta-schemas/core.yaml#
6*9684752eSSowjanya Komatineni
7*9684752eSSowjanya Komatinenititle: Tegra Quad SPI Controller
8*9684752eSSowjanya Komatineni
9*9684752eSSowjanya Komatinenimaintainers:
10*9684752eSSowjanya Komatineni  - Thierry Reding <thierry.reding@gmail.com>
11*9684752eSSowjanya Komatineni  - Jonathan Hunter <jonathanh@nvidia.com>
12*9684752eSSowjanya Komatineni
13*9684752eSSowjanya KomatineniallOf:
14*9684752eSSowjanya Komatineni  - $ref: "spi-controller.yaml#"
15*9684752eSSowjanya Komatineni
16*9684752eSSowjanya Komatineniproperties:
17*9684752eSSowjanya Komatineni  compatible:
18*9684752eSSowjanya Komatineni    enum:
19*9684752eSSowjanya Komatineni      - nvidia,tegra210-qspi
20*9684752eSSowjanya Komatineni      - nvidia,tegra186-qspi
21*9684752eSSowjanya Komatineni      - nvidia,tegra194-qspi
22*9684752eSSowjanya Komatineni
23*9684752eSSowjanya Komatineni  reg:
24*9684752eSSowjanya Komatineni    maxItems: 1
25*9684752eSSowjanya Komatineni
26*9684752eSSowjanya Komatineni  interrupts:
27*9684752eSSowjanya Komatineni    maxItems: 1
28*9684752eSSowjanya Komatineni
29*9684752eSSowjanya Komatineni  clock-names:
30*9684752eSSowjanya Komatineni    items:
31*9684752eSSowjanya Komatineni      - const: qspi
32*9684752eSSowjanya Komatineni      - const: qspi_out
33*9684752eSSowjanya Komatineni
34*9684752eSSowjanya Komatineni  clocks:
35*9684752eSSowjanya Komatineni    maxItems: 2
36*9684752eSSowjanya Komatineni
37*9684752eSSowjanya Komatineni  resets:
38*9684752eSSowjanya Komatineni    maxItems: 1
39*9684752eSSowjanya Komatineni
40*9684752eSSowjanya Komatineni  dmas:
41*9684752eSSowjanya Komatineni    maxItems: 2
42*9684752eSSowjanya Komatineni
43*9684752eSSowjanya Komatineni  dma-names:
44*9684752eSSowjanya Komatineni    items:
45*9684752eSSowjanya Komatineni      - const: rx
46*9684752eSSowjanya Komatineni      - const: tx
47*9684752eSSowjanya Komatineni
48*9684752eSSowjanya KomatinenipatternProperties:
49*9684752eSSowjanya Komatineni  "@[0-9a-f]+":
50*9684752eSSowjanya Komatineni    type: object
51*9684752eSSowjanya Komatineni
52*9684752eSSowjanya Komatineni    properties:
53*9684752eSSowjanya Komatineni      spi-rx-bus-width:
54*9684752eSSowjanya Komatineni        enum: [1, 2, 4]
55*9684752eSSowjanya Komatineni
56*9684752eSSowjanya Komatineni      spi-tx-bus-width:
57*9684752eSSowjanya Komatineni        enum: [1, 2, 4]
58*9684752eSSowjanya Komatineni
59*9684752eSSowjanya Komatineni      nvidia,tx-clk-tap-delay:
60*9684752eSSowjanya Komatineni        description:
61*9684752eSSowjanya Komatineni          Delays the clock going out to device with this tap value.
62*9684752eSSowjanya Komatineni          Tap value varies based on platform design trace lengths from Tegra
63*9684752eSSowjanya Komatineni          QSPI to corresponding slave device.
64*9684752eSSowjanya Komatineni        $ref: /schemas/types.yaml#/definitions/uint32
65*9684752eSSowjanya Komatineni        minimum: 0
66*9684752eSSowjanya Komatineni        maximum: 31
67*9684752eSSowjanya Komatineni
68*9684752eSSowjanya Komatineni      nvidia,rx-clk-tap-delay:
69*9684752eSSowjanya Komatineni        description:
70*9684752eSSowjanya Komatineni          Delays the clock coming in from the device with this tap value.
71*9684752eSSowjanya Komatineni          Tap value varies based on platform design trace lengths from Tegra
72*9684752eSSowjanya Komatineni          QSPI to corresponding slave device.
73*9684752eSSowjanya Komatineni        $ref: /schemas/types.yaml#/definitions/uint32
74*9684752eSSowjanya Komatineni        minimum: 0
75*9684752eSSowjanya Komatineni        maximum: 255
76*9684752eSSowjanya Komatineni
77*9684752eSSowjanya Komatineni    required:
78*9684752eSSowjanya Komatineni      - reg
79*9684752eSSowjanya Komatineni
80*9684752eSSowjanya Komatinenirequired:
81*9684752eSSowjanya Komatineni  - compatible
82*9684752eSSowjanya Komatineni  - reg
83*9684752eSSowjanya Komatineni  - interrupts
84*9684752eSSowjanya Komatineni  - clock-names
85*9684752eSSowjanya Komatineni  - clocks
86*9684752eSSowjanya Komatineni  - resets
87*9684752eSSowjanya Komatineni
88*9684752eSSowjanya KomatineniunevaluatedProperties: false
89*9684752eSSowjanya Komatineni
90*9684752eSSowjanya Komatineniexamples:
91*9684752eSSowjanya Komatineni  - |
92*9684752eSSowjanya Komatineni    #include <dt-bindings/clock/tegra210-car.h>
93*9684752eSSowjanya Komatineni    #include <dt-bindings/reset/tegra210-car.h>
94*9684752eSSowjanya Komatineni    #include <dt-bindings/interrupt-controller/arm-gic.h>
95*9684752eSSowjanya Komatineni    spi@70410000 {
96*9684752eSSowjanya Komatineni            compatible = "nvidia,tegra210-qspi";
97*9684752eSSowjanya Komatineni            reg = <0x70410000 0x1000>;
98*9684752eSSowjanya Komatineni            interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
99*9684752eSSowjanya Komatineni            #address-cells = <1>;
100*9684752eSSowjanya Komatineni            #size-cells = <0>;
101*9684752eSSowjanya Komatineni            clocks = <&tegra_car TEGRA210_CLK_QSPI>,
102*9684752eSSowjanya Komatineni                     <&tegra_car TEGRA210_CLK_QSPI_PM>;
103*9684752eSSowjanya Komatineni            clock-names = "qspi", "qspi_out";
104*9684752eSSowjanya Komatineni            resets = <&tegra_car 211>;
105*9684752eSSowjanya Komatineni            dmas = <&apbdma 5>, <&apbdma 5>;
106*9684752eSSowjanya Komatineni            dma-names = "rx", "tx";
107*9684752eSSowjanya Komatineni
108*9684752eSSowjanya Komatineni            flash@0 {
109*9684752eSSowjanya Komatineni                    compatible = "spi-nor";
110*9684752eSSowjanya Komatineni                    reg = <0>;
111*9684752eSSowjanya Komatineni                    spi-max-frequency = <104000000>;
112*9684752eSSowjanya Komatineni                    spi-tx-bus-width = <2>;
113*9684752eSSowjanya Komatineni                    spi-rx-bus-width = <2>;
114*9684752eSSowjanya Komatineni                    nvidia,tx-clk-tap-delay = <0>;
115*9684752eSSowjanya Komatineni                    nvidia,rx-clk-tap-delay = <0>;
116*9684752eSSowjanya Komatineni            };
117*9684752eSSowjanya Komatineni    };
118