blob: a17297cbefcb891af58501e70da67643022c012c [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/ata/nvidia,tegra-ahci.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Tegra AHCI SATA Controller
8
9maintainers:
10 - Thierry Reding <thierry.reding@gmail.com>
11 - Jonathan Hunter <jonathanh@nvidia.com>
12
13properties:
14 compatible:
15 enum:
16 - nvidia,tegra124-ahci
17 - nvidia,tegra132-ahci
18 - nvidia,tegra210-ahci
19 - nvidia,tegra186-ahci
20
21 reg:
22 minItems: 2
23 items:
24 - description: AHCI registers
25 - description: SATA configuration and IPFS registers
26 - description: SATA AUX registers
27
28 interrupts:
29 maxItems: 1
30
31 clock-names:
32 items:
33 - const: sata
34 - const: sata-oob
35
36 clocks:
37 maxItems: 2
38
39 reset-names:
40 minItems: 2
41 items:
42 - const: sata
43 - const: sata-cold
44 - const: sata-oob
45
46 resets:
47 minItems: 2
48 maxItems: 3
49
50 iommus:
51 maxItems: 1
52
53 interconnect-names:
54 items:
55 - const: dma-mem
56 - const: write
57
58 interconnects:
59 maxItems: 2
60
61 power-domains:
62 items:
63 - description: SAX power-domain
64
65 phy-names:
66 items:
67 - const: sata-0
68
69 phys:
70 maxItems: 1
71
72 hvdd-supply:
73 description: SATA HVDD regulator supply.
74
75 vddio-supply:
76 description: SATA VDDIO regulator supply.
77
78 avdd-supply:
79 description: SATA AVDD regulator supply.
80
81 target-5v-supply:
82 description: SATA 5V power regulator supply.
83
84 target-12v-supply:
85 description: SATA 12V power regulator supply.
86
87required:
88 - compatible
89 - reg
90 - interrupts
91 - clock-names
92 - clocks
93 - reset-names
94 - resets
95
96allOf:
97 - if:
98 properties:
99 compatible:
100 contains:
101 enum:
102 - nvidia,tegra124-ahci
103 - nvidia,tegra132-ahci
104 then:
105 properties:
106 reg:
107 maxItems: 2
108 reset-names:
109 minItems: 3
110 resets:
111 minItems: 3
112 required:
113 - phys
114 - phy-names
115 - hvdd-supply
116 - vddio-supply
117 - avdd-supply
118
119 - if:
120 properties:
121 compatible:
122 contains:
123 enum:
124 - nvidia,tegra210-ahci
125 then:
126 properties:
127 reg:
128 minItems: 3
129 reset-names:
130 minItems: 3
131 resets:
132 minItems: 3
133
134 - if:
135 properties:
136 compatible:
137 contains:
138 enum:
139 - nvidia,tegra186-ahci
140 then:
141 properties:
142 reg:
143 minItems: 3
144 reset-names:
145 maxItems: 2
146 resets:
147 maxItems: 2
148 required:
149 - iommus
150 - interconnect-names
151 - interconnects
152 - power-domains
153
154additionalProperties: false
155
156examples:
157 - |
158 #include <dt-bindings/clock/tegra210-car.h>
159 #include <dt-bindings/reset/tegra210-car.h>
160 #include <dt-bindings/interrupt-controller/arm-gic.h>
161
162 sata@70020000 {
163 compatible = "nvidia,tegra210-ahci";
164 reg = <0x70027000 0x00002000>, /* AHCI */
165 <0x70020000 0x00007000>, /* SATA */
166 <0x70001100 0x00010000>; /* SATA AUX */
167 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
168 clocks = <&tegra_car TEGRA210_CLK_SATA>,
169 <&tegra_car TEGRA210_CLK_SATA_OOB>;
170 clock-names = "sata", "sata-oob";
171 resets = <&tegra_car 124>,
172 <&tegra_car 129>,
173 <&tegra_car 123>;
174 reset-names = "sata", "sata-cold", "sata-oob";
175 };