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
44 "^emc-timings-[0-9]+$":
48 $ref: /schemas/types.yaml#/definitions/uint32
50 Value of RAM_CODE this timing set is used for.
58 Memory clock rate in Hz.
62 nvidia,emem-configuration:
64 - $ref: /schemas/types.yaml#/definitions/uint32-array
66 Values to be written to the EMEM register block. See section
67 "15.6.1 MC Registers" in the TRM.
69 - description: MC_EMEM_ARB_CFG
70 - description: MC_EMEM_ARB_OUTSTANDING_REQ
71 - description: MC_EMEM_ARB_TIMING_RCD
72 - description: MC_EMEM_ARB_TIMING_RP
73 - description: MC_EMEM_ARB_TIMING_RC
74 - description: MC_EMEM_ARB_TIMING_RAS
75 - description: MC_EMEM_ARB_TIMING_FAW
76 - description: MC_EMEM_ARB_TIMING_RRD
77 - description: MC_EMEM_ARB_TIMING_RAP2PRE
78 - description: MC_EMEM_ARB_TIMING_WAP2PRE
79 - description: MC_EMEM_ARB_TIMING_R2R
80 - description: MC_EMEM_ARB_TIMING_W2W
81 - description: MC_EMEM_ARB_TIMING_R2W
82 - description: MC_EMEM_ARB_TIMING_W2R
83 - description: MC_EMEM_ARB_DA_TURNS
84 - description: MC_EMEM_ARB_DA_COVERS
85 - description: MC_EMEM_ARB_MISC0
86 - description: MC_EMEM_ARB_MISC1
87 - description: MC_EMEM_ARB_RING1_THROTTLE
91 - nvidia,emem-configuration
93 additionalProperties: false
98 additionalProperties: false
109 additionalProperties: false
113 memory-controller@70019000 {
114 compatible = "nvidia,tegra124-mc";
115 reg = <0x0 0x70019000 0x0 0x1000>;
116 clocks = <&tegra_car 32>;
119 interrupts = <0 77 4>;
125 nvidia,ram-code = <3>;
128 clock-frequency = <12750000>;
130 nvidia,emem-configuration = <
131 0x40040001 /* MC_EMEM_ARB_CFG */
132 0x8000000a /* MC_EMEM_ARB_OUTSTANDING_REQ */
133 0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
134 0x00000001 /* MC_EMEM_ARB_TIMING_RP */
135 0x00000002 /* MC_EMEM_ARB_TIMING_RC */
136 0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
137 0x00000002 /* MC_EMEM_ARB_TIMING_FAW */
138 0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
139 0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
140 0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
141 0x00000003 /* MC_EMEM_ARB_TIMING_R2R */
142 0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
143 0x00000003 /* MC_EMEM_ARB_TIMING_R2W */
144 0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
145 0x06030203 /* MC_EMEM_ARB_DA_TURNS */
146 0x000a0402 /* MC_EMEM_ARB_DA_COVERS */
147 0x77e30303 /* MC_EMEM_ARB_MISC0 */
148 0x70000f03 /* MC_EMEM_ARB_MISC1 */
149 0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */