xref: /linux/Documentation/devicetree/bindings/memory-controllers/nvidia,tegra210-mc.yaml (revision 31b43c079f9aa55754c20404a42bca9a49e01f60)
1*834e6bd4SThierry Reding# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*834e6bd4SThierry Reding%YAML 1.2
3*834e6bd4SThierry Reding---
4*834e6bd4SThierry Reding$id: http://devicetree.org/schemas/memory-controllers/nvidia,tegra210-mc.yaml#
5*834e6bd4SThierry Reding$schema: http://devicetree.org/meta-schemas/core.yaml#
6*834e6bd4SThierry Reding
7*834e6bd4SThierry Redingtitle: NVIDIA Tegra210 SoC Memory Controller
8*834e6bd4SThierry Reding
9*834e6bd4SThierry Redingmaintainers:
10*834e6bd4SThierry Reding  - Thierry Reding <thierry.reding@gmail.com>
11*834e6bd4SThierry Reding  - Jon Hunter <jonathanh@nvidia.com>
12*834e6bd4SThierry Reding
13*834e6bd4SThierry Redingdescription: |
14*834e6bd4SThierry Reding  The NVIDIA Tegra210 SoC features a 64 bit memory controller that is split
15*834e6bd4SThierry Reding  into two 32 bit channels to support LPDDR3 and LPDDR4 with x16 subpartitions.
16*834e6bd4SThierry Reding  The MC handles memory requests for 34-bit virtual addresses from internal
17*834e6bd4SThierry Reding  clients and arbitrates among them to allocate memory bandwidth.
18*834e6bd4SThierry Reding
19*834e6bd4SThierry Reding  Up to 8 GiB of physical memory can be supported. Security features such as
20*834e6bd4SThierry Reding  encryption of traffic to and from DRAM via general security apertures are
21*834e6bd4SThierry Reding  available for video and other secure applications.
22*834e6bd4SThierry Reding
23*834e6bd4SThierry Redingproperties:
24*834e6bd4SThierry Reding  $nodename:
25*834e6bd4SThierry Reding    pattern: "^memory-controller@[0-9a-f]+$"
26*834e6bd4SThierry Reding
27*834e6bd4SThierry Reding  compatible:
28*834e6bd4SThierry Reding    items:
29*834e6bd4SThierry Reding      - enum:
30*834e6bd4SThierry Reding          - nvidia,tegra210-mc
31*834e6bd4SThierry Reding
32*834e6bd4SThierry Reding  reg:
33*834e6bd4SThierry Reding    maxItems: 1
34*834e6bd4SThierry Reding
35*834e6bd4SThierry Reding  interrupts:
36*834e6bd4SThierry Reding    maxItems: 1
37*834e6bd4SThierry Reding
38*834e6bd4SThierry Reding  clocks:
39*834e6bd4SThierry Reding    items:
40*834e6bd4SThierry Reding      - description: module clock
41*834e6bd4SThierry Reding
42*834e6bd4SThierry Reding  clock-names:
43*834e6bd4SThierry Reding    items:
44*834e6bd4SThierry Reding      - const: mc
45*834e6bd4SThierry Reding
46*834e6bd4SThierry Reding  "#iommu-cells":
47*834e6bd4SThierry Reding    const: 1
48*834e6bd4SThierry Reding
49*834e6bd4SThierry Reding  "#reset-cells":
50*834e6bd4SThierry Reding    const: 1
51*834e6bd4SThierry Reding
52*834e6bd4SThierry Redingrequired:
53*834e6bd4SThierry Reding  - compatible
54*834e6bd4SThierry Reding  - reg
55*834e6bd4SThierry Reding  - interrupts
56*834e6bd4SThierry Reding  - clocks
57*834e6bd4SThierry Reding  - clock-names
58*834e6bd4SThierry Reding  - "#iommu-cells"
59*834e6bd4SThierry Reding  - "#reset-cells"
60*834e6bd4SThierry Reding
61*834e6bd4SThierry RedingadditionalProperties: false
62*834e6bd4SThierry Reding
63*834e6bd4SThierry Redingexamples:
64*834e6bd4SThierry Reding  - |
65*834e6bd4SThierry Reding    #include <dt-bindings/clock/tegra210-car.h>
66*834e6bd4SThierry Reding    #include <dt-bindings/interrupt-controller/arm-gic.h>
67*834e6bd4SThierry Reding
68*834e6bd4SThierry Reding    memory-controller@70019000 {
69*834e6bd4SThierry Reding        compatible = "nvidia,tegra210-mc";
70*834e6bd4SThierry Reding        reg = <0x70019000 0x1000>;
71*834e6bd4SThierry Reding        interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
72*834e6bd4SThierry Reding        clocks = <&tegra_car TEGRA210_CLK_MC>;
73*834e6bd4SThierry Reding        clock-names = "mc";
74*834e6bd4SThierry Reding
75*834e6bd4SThierry Reding        #iommu-cells = <1>;
76*834e6bd4SThierry Reding        #reset-cells = <1>;
77*834e6bd4SThierry Reding    };
78