summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/memory-controllers/nvidia,tegra210-mc.yaml
blob: 268d5ff958f946331c87e2929291979a513d3fc0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/memory-controllers/nvidia,tegra210-mc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: NVIDIA Tegra210 SoC Memory Controller

maintainers:
  - Thierry Reding <thierry.reding@gmail.com>
  - Jon Hunter <jonathanh@nvidia.com>

description: |
  The NVIDIA Tegra210 SoC features a 64 bit memory controller that is split
  into two 32 bit channels to support LPDDR3 and LPDDR4 with x16 subpartitions.
  The MC handles memory requests for 34-bit virtual addresses from internal
  clients and arbitrates among them to allocate memory bandwidth.

  Up to 8 GiB of physical memory can be supported. Security features such as
  encryption of traffic to and from DRAM via general security apertures are
  available for video and other secure applications.

properties:
  $nodename:
    pattern: "^memory-controller@[0-9a-f]+$"

  compatible:
    items:
      - enum:
          - nvidia,tegra210-mc

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    items:
      - description: module clock

  clock-names:
    items:
      - const: mc

  "#iommu-cells":
    const: 1

  "#reset-cells":
    const: 1

required:
  - compatible
  - reg
  - interrupts
  - clocks
  - clock-names
  - "#iommu-cells"
  - "#reset-cells"

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/tegra210-car.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>

    memory-controller@70019000 {
        compatible = "nvidia,tegra210-mc";
        reg = <0x70019000 0x1000>;
        interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
        clocks = <&tegra_car TEGRA210_CLK_MC>;
        clock-names = "mc";

        #iommu-cells = <1>;
        #reset-cells = <1>;
    };