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