1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2c66ec88fSEmmanuel Vadot%YAML 1.2 3c66ec88fSEmmanuel Vadot--- 4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/memory-controllers/nvidia,tegra210-emc.yaml# 5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6c66ec88fSEmmanuel Vadot 7c66ec88fSEmmanuel Vadottitle: NVIDIA Tegra210 SoC External Memory Controller 8c66ec88fSEmmanuel Vadot 9c66ec88fSEmmanuel Vadotmaintainers: 10c66ec88fSEmmanuel Vadot - Thierry Reding <thierry.reding@gmail.com> 11c66ec88fSEmmanuel Vadot - Jon Hunter <jonathanh@nvidia.com> 12c66ec88fSEmmanuel Vadot 13c66ec88fSEmmanuel Vadotdescription: | 14c66ec88fSEmmanuel Vadot The EMC interfaces with the off-chip SDRAM to service the request stream 15c66ec88fSEmmanuel Vadot sent from the memory controller. 16c66ec88fSEmmanuel Vadot 17c66ec88fSEmmanuel Vadotproperties: 18c66ec88fSEmmanuel Vadot compatible: 19c66ec88fSEmmanuel Vadot const: nvidia,tegra210-emc 20c66ec88fSEmmanuel Vadot 21c66ec88fSEmmanuel Vadot reg: 22c66ec88fSEmmanuel Vadot maxItems: 3 23c66ec88fSEmmanuel Vadot 24c66ec88fSEmmanuel Vadot clocks: 25c66ec88fSEmmanuel Vadot items: 26c66ec88fSEmmanuel Vadot - description: external memory clock 27c66ec88fSEmmanuel Vadot 28c66ec88fSEmmanuel Vadot clock-names: 29c66ec88fSEmmanuel Vadot items: 30c66ec88fSEmmanuel Vadot - const: emc 31c66ec88fSEmmanuel Vadot 32c66ec88fSEmmanuel Vadot interrupts: 33c66ec88fSEmmanuel Vadot items: 34c66ec88fSEmmanuel Vadot - description: EMC general interrupt 35c66ec88fSEmmanuel Vadot 36c66ec88fSEmmanuel Vadot memory-region: 37*2eb4d8dcSEmmanuel Vadot maxItems: 1 38c66ec88fSEmmanuel Vadot description: 39c66ec88fSEmmanuel Vadot phandle to a reserved memory region describing the table of EMC 40c66ec88fSEmmanuel Vadot frequencies trained by the firmware 41c66ec88fSEmmanuel Vadot 42c66ec88fSEmmanuel Vadot nvidia,memory-controller: 43c66ec88fSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle 44c66ec88fSEmmanuel Vadot description: 45c66ec88fSEmmanuel Vadot phandle of the memory controller node 46c66ec88fSEmmanuel Vadot 47c66ec88fSEmmanuel Vadotrequired: 48c66ec88fSEmmanuel Vadot - compatible 49c66ec88fSEmmanuel Vadot - reg 50c66ec88fSEmmanuel Vadot - clocks 51c66ec88fSEmmanuel Vadot - clock-names 52c66ec88fSEmmanuel Vadot - nvidia,memory-controller 53c66ec88fSEmmanuel Vadot 54c66ec88fSEmmanuel VadotadditionalProperties: false 55c66ec88fSEmmanuel Vadot 56c66ec88fSEmmanuel Vadotexamples: 57c66ec88fSEmmanuel Vadot - | 58c66ec88fSEmmanuel Vadot #include <dt-bindings/clock/tegra210-car.h> 59c66ec88fSEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 60c66ec88fSEmmanuel Vadot 61c66ec88fSEmmanuel Vadot reserved-memory { 62c66ec88fSEmmanuel Vadot #address-cells = <1>; 63c66ec88fSEmmanuel Vadot #size-cells = <1>; 64c66ec88fSEmmanuel Vadot ranges; 65c66ec88fSEmmanuel Vadot 66c66ec88fSEmmanuel Vadot emc_table: emc-table@83400000 { 67c66ec88fSEmmanuel Vadot compatible = "nvidia,tegra210-emc-table"; 68c66ec88fSEmmanuel Vadot reg = <0x83400000 0x10000>; 69c66ec88fSEmmanuel Vadot }; 70c66ec88fSEmmanuel Vadot }; 71c66ec88fSEmmanuel Vadot 72c66ec88fSEmmanuel Vadot external-memory-controller@7001b000 { 73c66ec88fSEmmanuel Vadot compatible = "nvidia,tegra210-emc"; 74c66ec88fSEmmanuel Vadot reg = <0x7001b000 0x1000>, 75c66ec88fSEmmanuel Vadot <0x7001e000 0x1000>, 76c66ec88fSEmmanuel Vadot <0x7001f000 0x1000>; 77c66ec88fSEmmanuel Vadot clocks = <&tegra_car TEGRA210_CLK_EMC>; 78c66ec88fSEmmanuel Vadot clock-names = "emc"; 79c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>; 80c66ec88fSEmmanuel Vadot memory-region = <&emc_table>; 81c66ec88fSEmmanuel Vadot nvidia,memory-controller = <&mc>; 82c66ec88fSEmmanuel Vadot }; 83