~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/pci/nvidia,tegra194-pcie-ep.yaml

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2 %YAML 1.2
  3 ---
  4 $id: http://devicetree.org/schemas/pci/nvidia,tegra194-pcie-ep.yaml#
  5 $schema: http://devicetree.org/meta-schemas/core.yaml#
  6 
  7 title: NVIDIA Tegra194 (and later) PCIe Endpoint controller (Synopsys DesignWare Core based)
  8 
  9 maintainers:
 10   - Thierry Reding <thierry.reding@gmail.com>
 11   - Jon Hunter <jonathanh@nvidia.com>
 12   - Vidya Sagar <vidyas@nvidia.com>
 13 
 14 description: |
 15   This PCIe controller is based on the Synopsys DesignWare PCIe IP and thus
 16   inherits all the common properties defined in snps,dw-pcie-ep.yaml.  Some
 17   of the controller instances are dual mode; they can work either in Root
 18   Port mode or Endpoint mode but one at a time.
 19 
 20   On Tegra194, controllers C0, C4 and C5 support Endpoint mode.
 21   On Tegra234, controllers C5, C6, C7 and C10 support Endpoint mode.
 22 
 23   Note: On Tegra194's P2972-0000 platform, only C5 controller can be enabled to
 24   operate in the Endpoint mode because of the way the platform is designed.
 25 
 26 properties:
 27   compatible:
 28     enum:
 29       - nvidia,tegra194-pcie-ep
 30       - nvidia,tegra234-pcie-ep
 31 
 32   reg:
 33     items:
 34       - description: controller's application logic registers
 35       - description: iATU and DMA registers. This is where the iATU (internal
 36           Address Translation Unit) registers of the PCIe core are made
 37           available for software access.
 38       - description: aperture where the Root Port's own configuration
 39           registers are available.
 40       - description: aperture used to map the remote Root Complex address space
 41 
 42   reg-names:
 43     items:
 44       - const: appl
 45       - const: atu_dma
 46       - const: dbi
 47       - const: addr_space
 48 
 49   interrupts:
 50     items:
 51       - description: controller interrupt
 52 
 53   interrupt-names:
 54     items:
 55       - const: intr
 56 
 57   clocks:
 58     items:
 59       - description: module clock
 60 
 61   clock-names:
 62     items:
 63       - const: core
 64 
 65   resets:
 66     items:
 67       - description: APB bus interface reset
 68       - description: module reset
 69 
 70   reset-names:
 71     items:
 72       - const: apb
 73       - const: core
 74 
 75   reset-gpios:
 76     description: Must contain a phandle to a GPIO controller followed by GPIO
 77       that is being used as PERST input signal. Please refer to pci.txt.
 78 
 79   phys:
 80     minItems: 1
 81     maxItems: 8
 82 
 83   phy-names:
 84     minItems: 1
 85     items:
 86       - const: p2u-0
 87       - const: p2u-1
 88       - const: p2u-2
 89       - const: p2u-3
 90       - const: p2u-4
 91       - const: p2u-5
 92       - const: p2u-6
 93       - const: p2u-7
 94 
 95   power-domains:
 96     maxItems: 1
 97     description: |
 98       A phandle to the node that controls power to the respective PCIe
 99       controller and a specifier name for the PCIe controller.
100 
101       Tegra194 specifiers are defined in "include/dt-bindings/power/tegra194-powergate.h"
102       Tegra234 specifiers are defined in "include/dt-bindings/power/tegra234-powergate.h"
103 
104   interconnects:
105     items:
106       - description: memory read client
107       - description: memory write client
108 
109   interconnect-names:
110     items:
111       - const: dma-mem # read
112       - const: write
113 
114   dma-coherent: true
115 
116   nvidia,bpmp:
117     $ref: /schemas/types.yaml#/definitions/phandle-array
118     description: |
119       Must contain a pair of phandles to BPMP controller node followed by
120       controller ID. Following are the controller IDs for each controller:
121 
122       Tegra194
123 
124         0: C0
125         1: C1
126         2: C2
127         3: C3
128         4: C4
129         5: C5
130 
131       Tegra234
132 
133         0 : C0
134         1 : C1
135         2 : C2
136         3 : C3
137         4 : C4
138         5 : C5
139         6 : C6
140         7 : C7
141         8 : C8
142         9 : C9
143         10: C10
144 
145     items:
146       - items:
147           - description: phandle to BPMP controller node
148           - description: PCIe controller ID
149             maximum: 10
150 
151   nvidia,aspm-cmrt-us:
152     description: Common Mode Restore Time for proper operation of ASPM to be
153       specified in microseconds
154 
155   nvidia,aspm-pwr-on-t-us:
156     description: Power On time for proper operation of ASPM to be specified in
157       microseconds
158 
159   nvidia,aspm-l0s-entrance-latency-us:
160     description: ASPM L0s entrance latency to be specified in microseconds
161 
162   vddio-pex-ctl-supply:
163     description: A phandle to the regulator supply for PCIe side band signals
164 
165   nvidia,refclk-select-gpios:
166     maxItems: 1
167     description: GPIO used to enable REFCLK to controller from the host
168 
169   nvidia,enable-ext-refclk:
170     description: |
171       This boolean property needs to be present if the controller is configured
172       to receive Reference Clock from the host.
173       NOTE: This is applicable only for Tegra234.
174 
175     $ref: /schemas/types.yaml#/definitions/flag
176 
177   nvidia,enable-srns:
178     description: |
179       This boolean property needs to be present if the controller is
180       configured to operate in SRNS (Separate Reference Clocks with No
181       Spread-Spectrum Clocking).  NOTE: This is applicable only for
182       Tegra234.
183 
184     $ref: /schemas/types.yaml#/definitions/flag
185 
186 allOf:
187   - $ref: /schemas/pci/snps,dw-pcie-ep.yaml#
188 
189 unevaluatedProperties: false
190 
191 required:
192   - interrupts
193   - interrupt-names
194   - clocks
195   - clock-names
196   - resets
197   - reset-names
198   - power-domains
199   - reset-gpios
200   - vddio-pex-ctl-supply
201   - num-lanes
202   - phys
203   - phy-names
204   - nvidia,bpmp
205 
206 examples:
207   - |
208     #include <dt-bindings/clock/tegra194-clock.h>
209     #include <dt-bindings/gpio/tegra194-gpio.h>
210     #include <dt-bindings/interrupt-controller/arm-gic.h>
211     #include <dt-bindings/power/tegra194-powergate.h>
212     #include <dt-bindings/reset/tegra194-reset.h>
213 
214     bus@0 {
215         #address-cells = <2>;
216         #size-cells = <2>;
217         ranges = <0x0 0x0 0x0 0x8 0x0>;
218 
219         pcie-ep@141a0000 {
220             compatible = "nvidia,tegra194-pcie-ep";
221             reg = <0x00 0x141a0000 0x0 0x00020000>, /* appl registers (128K) */
222                   <0x00 0x3a040000 0x0 0x00040000>, /* iATU_DMA reg space (256K)  */
223                   <0x00 0x3a080000 0x0 0x00040000>, /* DBI reg space (256K) */
224                   <0x1c 0x00000000 0x4 0x00000000>; /* Address Space (16G) */
225             reg-names = "appl", "atu_dma", "dbi", "addr_space";
226             interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>; /* controller interrupt */
227             interrupt-names = "intr";
228 
229             clocks = <&bpmp TEGRA194_CLK_PEX1_CORE_5>;
230             clock-names = "core";
231 
232             resets = <&bpmp TEGRA194_RESET_PEX1_CORE_5_APB>,
233                      <&bpmp TEGRA194_RESET_PEX1_CORE_5>;
234             reset-names = "apb", "core";
235 
236             power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX8A>;
237             pinctrl-names = "default";
238             pinctrl-0 = <&clkreq_c5_bi_dir_state>;
239 
240             nvidia,bpmp = <&bpmp 5>;
241 
242             nvidia,aspm-cmrt-us = <60>;
243             nvidia,aspm-pwr-on-t-us = <20>;
244             nvidia,aspm-l0s-entrance-latency-us = <3>;
245 
246             vddio-pex-ctl-supply = <&vdd_1v8ao>;
247 
248             reset-gpios = <&gpio TEGRA194_MAIN_GPIO(GG, 1) GPIO_ACTIVE_LOW>;
249 
250             nvidia,refclk-select-gpios = <&gpio_aon TEGRA194_AON_GPIO(AA, 5)
251                                           GPIO_ACTIVE_HIGH>;
252 
253             num-lanes = <8>;
254 
255             phys = <&p2u_nvhs_0>, <&p2u_nvhs_1>, <&p2u_nvhs_2>,
256                    <&p2u_nvhs_3>, <&p2u_nvhs_4>, <&p2u_nvhs_5>,
257                    <&p2u_nvhs_6>, <&p2u_nvhs_7>;
258 
259             phy-names = "p2u-0", "p2u-1", "p2u-2", "p2u-3", "p2u-4",
260                         "p2u-5", "p2u-6", "p2u-7";
261         };
262     };
263 
264   - |
265     #include <dt-bindings/clock/tegra234-clock.h>
266     #include <dt-bindings/gpio/tegra234-gpio.h>
267     #include <dt-bindings/interrupt-controller/arm-gic.h>
268     #include <dt-bindings/power/tegra234-powergate.h>
269     #include <dt-bindings/reset/tegra234-reset.h>
270 
271     bus@0 {
272         #address-cells = <2>;
273         #size-cells = <2>;
274         ranges = <0x0 0x0 0x0 0x8 0x0>;
275 
276         pcie-ep@141a0000 {
277             compatible = "nvidia,tegra234-pcie-ep";
278             power-domains = <&bpmp TEGRA234_POWER_DOMAIN_PCIEX8A>;
279             reg = <0x00 0x141a0000 0x0 0x00020000>, /* appl registers (128K)      */
280                   <0x00 0x3a040000 0x0 0x00040000>, /* iATU_DMA reg space (256K)  */
281                   <0x00 0x3a080000 0x0 0x00040000>, /* DBI reg space (256K)       */
282                   <0x27 0x40000000 0x4 0x00000000>; /* Address Space (16G)        */
283             reg-names = "appl", "atu_dma", "dbi", "addr_space";
284 
285             interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>; /* controller interrupt */
286             interrupt-names = "intr";
287 
288             clocks = <&bpmp TEGRA234_CLK_PEX1_C5_CORE>;
289             clock-names = "core";
290 
291             resets = <&bpmp TEGRA234_RESET_PEX1_CORE_5_APB>,
292                      <&bpmp TEGRA234_RESET_PEX1_CORE_5>;
293             reset-names = "apb", "core";
294 
295             nvidia,bpmp = <&bpmp 5>;
296 
297             nvidia,enable-ext-refclk;
298             nvidia,aspm-cmrt-us = <60>;
299             nvidia,aspm-pwr-on-t-us = <20>;
300             nvidia,aspm-l0s-entrance-latency-us = <3>;
301 
302             vddio-pex-ctl-supply = <&p3701_vdd_1v8_ls>;
303 
304             reset-gpios = <&gpio TEGRA234_MAIN_GPIO(AF, 1) GPIO_ACTIVE_LOW>;
305 
306             nvidia,refclk-select-gpios = <&gpio_aon
307                                           TEGRA234_AON_GPIO(AA, 4)
308                                           GPIO_ACTIVE_HIGH>;
309 
310             num-lanes = <8>;
311 
312             phys = <&p2u_nvhs_0>, <&p2u_nvhs_1>, <&p2u_nvhs_2>,
313                    <&p2u_nvhs_3>, <&p2u_nvhs_4>, <&p2u_nvhs_5>,
314                    <&p2u_nvhs_6>, <&p2u_nvhs_7>;
315 
316             phy-names = "p2u-0", "p2u-1", "p2u-2", "p2u-3", "p2u-4",
317                         "p2u-5", "p2u-6", "p2u-7";
318         };
319     };

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php