1*2eb4d8dcSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*2eb4d8dcSEmmanuel Vadot%YAML 1.2 3*2eb4d8dcSEmmanuel Vadot--- 4*2eb4d8dcSEmmanuel Vadot$id: http://devicetree.org/schemas/memory-controllers/nvidia,tegra20-mc.yaml# 5*2eb4d8dcSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*2eb4d8dcSEmmanuel Vadot 7*2eb4d8dcSEmmanuel Vadottitle: NVIDIA Tegra20 SoC Memory Controller 8*2eb4d8dcSEmmanuel Vadot 9*2eb4d8dcSEmmanuel Vadotmaintainers: 10*2eb4d8dcSEmmanuel Vadot - Dmitry Osipenko <digetx@gmail.com> 11*2eb4d8dcSEmmanuel Vadot - Jon Hunter <jonathanh@nvidia.com> 12*2eb4d8dcSEmmanuel Vadot - Thierry Reding <thierry.reding@gmail.com> 13*2eb4d8dcSEmmanuel Vadot 14*2eb4d8dcSEmmanuel Vadotdescription: | 15*2eb4d8dcSEmmanuel Vadot The Tegra20 Memory Controller merges request streams from various client 16*2eb4d8dcSEmmanuel Vadot interfaces into request stream(s) for the various memory target devices, 17*2eb4d8dcSEmmanuel Vadot and returns response data to the various clients. The Memory Controller 18*2eb4d8dcSEmmanuel Vadot has a configurable arbitration algorithm to allow the user to fine-tune 19*2eb4d8dcSEmmanuel Vadot performance among the various clients. 20*2eb4d8dcSEmmanuel Vadot 21*2eb4d8dcSEmmanuel Vadot Tegra20 Memory Controller includes the GART (Graphics Address Relocation 22*2eb4d8dcSEmmanuel Vadot Table) which allows Memory Controller to provide a linear view of a 23*2eb4d8dcSEmmanuel Vadot fragmented memory pages. 24*2eb4d8dcSEmmanuel Vadot 25*2eb4d8dcSEmmanuel Vadotproperties: 26*2eb4d8dcSEmmanuel Vadot compatible: 27*2eb4d8dcSEmmanuel Vadot const: nvidia,tegra20-mc-gart 28*2eb4d8dcSEmmanuel Vadot 29*2eb4d8dcSEmmanuel Vadot reg: 30*2eb4d8dcSEmmanuel Vadot items: 31*2eb4d8dcSEmmanuel Vadot - description: controller registers 32*2eb4d8dcSEmmanuel Vadot - description: GART registers 33*2eb4d8dcSEmmanuel Vadot 34*2eb4d8dcSEmmanuel Vadot clocks: 35*2eb4d8dcSEmmanuel Vadot maxItems: 1 36*2eb4d8dcSEmmanuel Vadot 37*2eb4d8dcSEmmanuel Vadot clock-names: 38*2eb4d8dcSEmmanuel Vadot items: 39*2eb4d8dcSEmmanuel Vadot - const: mc 40*2eb4d8dcSEmmanuel Vadot 41*2eb4d8dcSEmmanuel Vadot interrupts: 42*2eb4d8dcSEmmanuel Vadot maxItems: 1 43*2eb4d8dcSEmmanuel Vadot 44*2eb4d8dcSEmmanuel Vadot "#reset-cells": 45*2eb4d8dcSEmmanuel Vadot const: 1 46*2eb4d8dcSEmmanuel Vadot 47*2eb4d8dcSEmmanuel Vadot "#iommu-cells": 48*2eb4d8dcSEmmanuel Vadot const: 0 49*2eb4d8dcSEmmanuel Vadot 50*2eb4d8dcSEmmanuel Vadot "#interconnect-cells": 51*2eb4d8dcSEmmanuel Vadot const: 1 52*2eb4d8dcSEmmanuel Vadot 53*2eb4d8dcSEmmanuel Vadotrequired: 54*2eb4d8dcSEmmanuel Vadot - compatible 55*2eb4d8dcSEmmanuel Vadot - reg 56*2eb4d8dcSEmmanuel Vadot - interrupts 57*2eb4d8dcSEmmanuel Vadot - clocks 58*2eb4d8dcSEmmanuel Vadot - clock-names 59*2eb4d8dcSEmmanuel Vadot - "#reset-cells" 60*2eb4d8dcSEmmanuel Vadot - "#iommu-cells" 61*2eb4d8dcSEmmanuel Vadot - "#interconnect-cells" 62*2eb4d8dcSEmmanuel Vadot 63*2eb4d8dcSEmmanuel VadotadditionalProperties: false 64*2eb4d8dcSEmmanuel Vadot 65*2eb4d8dcSEmmanuel Vadotexamples: 66*2eb4d8dcSEmmanuel Vadot - | 67*2eb4d8dcSEmmanuel Vadot memory-controller@7000f000 { 68*2eb4d8dcSEmmanuel Vadot compatible = "nvidia,tegra20-mc-gart"; 69*2eb4d8dcSEmmanuel Vadot reg = <0x7000f000 0x400>, /* Controller registers */ 70*2eb4d8dcSEmmanuel Vadot <0x58000000 0x02000000>; /* GART aperture */ 71*2eb4d8dcSEmmanuel Vadot clocks = <&clock_controller 32>; 72*2eb4d8dcSEmmanuel Vadot clock-names = "mc"; 73*2eb4d8dcSEmmanuel Vadot 74*2eb4d8dcSEmmanuel Vadot interrupts = <0 77 4>; 75*2eb4d8dcSEmmanuel Vadot 76*2eb4d8dcSEmmanuel Vadot #iommu-cells = <0>; 77*2eb4d8dcSEmmanuel Vadot #reset-cells = <1>; 78*2eb4d8dcSEmmanuel Vadot #interconnect-cells = <1>; 79*2eb4d8dcSEmmanuel Vadot }; 80