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