xref: /linux/Documentation/devicetree/bindings/memory-controllers/nvidia,tegra210-emc.yaml (revision 8be98d2f2a0a262f8bf8a0bc1fdf522b3c7aab17)
17a8327f5SJoseph Lo# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
27a8327f5SJoseph Lo%YAML 1.2
37a8327f5SJoseph Lo---
47a8327f5SJoseph Lo$id: http://devicetree.org/schemas/memory-controllers/nvidia,tegra210-emc.yaml#
57a8327f5SJoseph Lo$schema: http://devicetree.org/meta-schemas/core.yaml#
67a8327f5SJoseph Lo
77a8327f5SJoseph Lotitle: NVIDIA Tegra210 SoC External Memory Controller
87a8327f5SJoseph Lo
97a8327f5SJoseph Lomaintainers:
107a8327f5SJoseph Lo  - Thierry Reding <thierry.reding@gmail.com>
117a8327f5SJoseph Lo  - Jon Hunter <jonathanh@nvidia.com>
127a8327f5SJoseph Lo
137a8327f5SJoseph Lodescription: |
147a8327f5SJoseph Lo  The EMC interfaces with the off-chip SDRAM to service the request stream
157a8327f5SJoseph Lo  sent from the memory controller.
167a8327f5SJoseph Lo
177a8327f5SJoseph Loproperties:
187a8327f5SJoseph Lo  compatible:
197a8327f5SJoseph Lo    const: nvidia,tegra210-emc
207a8327f5SJoseph Lo
217a8327f5SJoseph Lo  reg:
227a8327f5SJoseph Lo    maxItems: 3
237a8327f5SJoseph Lo
247a8327f5SJoseph Lo  clocks:
257a8327f5SJoseph Lo    items:
267a8327f5SJoseph Lo      - description: external memory clock
277a8327f5SJoseph Lo
287a8327f5SJoseph Lo  clock-names:
297a8327f5SJoseph Lo    items:
307a8327f5SJoseph Lo      - const: emc
317a8327f5SJoseph Lo
327a8327f5SJoseph Lo  interrupts:
337a8327f5SJoseph Lo    items:
347a8327f5SJoseph Lo      - description: EMC general interrupt
357a8327f5SJoseph Lo
367a8327f5SJoseph Lo  memory-region:
37*c2156348SRob Herring    maxItems: 1
387a8327f5SJoseph Lo    description:
397a8327f5SJoseph Lo      phandle to a reserved memory region describing the table of EMC
407a8327f5SJoseph Lo      frequencies trained by the firmware
417a8327f5SJoseph Lo
427a8327f5SJoseph Lo  nvidia,memory-controller:
437a8327f5SJoseph Lo    $ref: /schemas/types.yaml#/definitions/phandle
447a8327f5SJoseph Lo    description:
457a8327f5SJoseph Lo      phandle of the memory controller node
467a8327f5SJoseph Lo
477a8327f5SJoseph Lorequired:
487a8327f5SJoseph Lo  - compatible
497a8327f5SJoseph Lo  - reg
507a8327f5SJoseph Lo  - clocks
517a8327f5SJoseph Lo  - clock-names
527a8327f5SJoseph Lo  - nvidia,memory-controller
537a8327f5SJoseph Lo
547a8327f5SJoseph LoadditionalProperties: false
557a8327f5SJoseph Lo
567a8327f5SJoseph Loexamples:
577a8327f5SJoseph Lo  - |
587a8327f5SJoseph Lo    #include <dt-bindings/clock/tegra210-car.h>
597a8327f5SJoseph Lo    #include <dt-bindings/interrupt-controller/arm-gic.h>
607a8327f5SJoseph Lo
617a8327f5SJoseph Lo    reserved-memory {
627a8327f5SJoseph Lo        #address-cells = <1>;
637a8327f5SJoseph Lo        #size-cells = <1>;
647a8327f5SJoseph Lo        ranges;
657a8327f5SJoseph Lo
667a8327f5SJoseph Lo        emc_table: emc-table@83400000 {
677a8327f5SJoseph Lo            compatible = "nvidia,tegra210-emc-table";
687a8327f5SJoseph Lo            reg = <0x83400000 0x10000>;
697a8327f5SJoseph Lo        };
707a8327f5SJoseph Lo    };
717a8327f5SJoseph Lo
727a8327f5SJoseph Lo    external-memory-controller@7001b000 {
737a8327f5SJoseph Lo        compatible = "nvidia,tegra210-emc";
747a8327f5SJoseph Lo        reg = <0x7001b000 0x1000>,
757a8327f5SJoseph Lo              <0x7001e000 0x1000>,
767a8327f5SJoseph Lo              <0x7001f000 0x1000>;
777a8327f5SJoseph Lo        clocks = <&tegra_car TEGRA210_CLK_EMC>;
787a8327f5SJoseph Lo        clock-names = "emc";
797a8327f5SJoseph Lo        interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
807a8327f5SJoseph Lo        memory-region = <&emc_table>;
817a8327f5SJoseph Lo        nvidia,memory-controller = <&mc>;
827a8327f5SJoseph Lo    };
83