1 # SPDX-License-Identifier: (GPL-2.0)
4 $id: http://devicetree.org/schemas/memory-controllers/nvidia,tegra124-mc.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: NVIDIA Tegra124 SoC Memory Controller
10 - Jon Hunter <jonathanh@nvidia.com>
11 - Thierry Reding <thierry.reding@gmail.com>
14 Tegra124 SoC features a hybrid 2x32-bit / 1x64-bit memory controller.
15 These are interleaved to provide high performance with the load shared across
16 two memory channels. The Tegra124 Memory Controller handles memory requests
17 from internal clients and arbitrates among them to allocate memory bandwidth
18 for DDR3L and LPDDR3 SDRAMs.
22 const: nvidia,tegra124-mc
43 "#interconnect-cells":
47 "^emc-timings-[0-9]+$":
51 $ref: /schemas/types.yaml#/definitions/uint32
53 Value of RAM_CODE this timing set is used for.
61 Memory clock rate in Hz.
65 nvidia,emem-configuration:
66 $ref: /schemas/types.yaml#/definitions/uint32-array
68 Values to be written to the EMEM register block. See section
69 "15.6.1 MC Registers" in the TRM.
71 - description: MC_EMEM_ARB_CFG
72 - description: MC_EMEM_ARB_OUTSTANDING_REQ
73 - description: MC_EMEM_ARB_TIMING_RCD
74 - description: MC_EMEM_ARB_TIMING_RP
75 - description: MC_EMEM_ARB_TIMING_RC
76 - description: MC_EMEM_ARB_TIMING_RAS
77 - description: MC_EMEM_ARB_TIMING_FAW
78 - description: MC_EMEM_ARB_TIMING_RRD
79 - description: MC_EMEM_ARB_TIMING_RAP2PRE
80 - description: MC_EMEM_ARB_TIMING_WAP2PRE
81 - description: MC_EMEM_ARB_TIMING_R2R
82 - description: MC_EMEM_ARB_TIMING_W2W
83 - description: MC_EMEM_ARB_TIMING_R2W
84 - description: MC_EMEM_ARB_TIMING_W2R
85 - description: MC_EMEM_ARB_DA_TURNS
86 - description: MC_EMEM_ARB_DA_COVERS
87 - description: MC_EMEM_ARB_MISC0
88 - description: MC_EMEM_ARB_MISC1
89 - description: MC_EMEM_ARB_RING1_THROTTLE
93 - nvidia,emem-configuration
95 additionalProperties: false
100 additionalProperties: false
110 - "#interconnect-cells"
112 additionalProperties: false
116 memory-controller@70019000 {
117 compatible = "nvidia,tegra124-mc";
118 reg = <0x70019000 0x1000>;
119 clocks = <&tegra_car 32>;
122 interrupts = <0 77 4>;
126 #interconnect-cells = <1>;
129 nvidia,ram-code = <3>;
132 clock-frequency = <12750000>;
134 nvidia,emem-configuration = <
135 0x40040001 /* MC_EMEM_ARB_CFG */
136 0x8000000a /* MC_EMEM_ARB_OUTSTANDING_REQ */
137 0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
138 0x00000001 /* MC_EMEM_ARB_TIMING_RP */
139 0x00000002 /* MC_EMEM_ARB_TIMING_RC */
140 0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
141 0x00000002 /* MC_EMEM_ARB_TIMING_FAW */
142 0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
143 0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
144 0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
145 0x00000003 /* MC_EMEM_ARB_TIMING_R2R */
146 0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
147 0x00000003 /* MC_EMEM_ARB_TIMING_R2W */
148 0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
149 0x06030203 /* MC_EMEM_ARB_DA_TURNS */
150 0x000a0402 /* MC_EMEM_ARB_DA_COVERS */
151 0x77e30303 /* MC_EMEM_ARB_MISC0 */
152 0x70000f03 /* MC_EMEM_ARB_MISC1 */
153 0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */