xref: /openbmc/linux/Documentation/devicetree/bindings/memory-controllers/nvidia,tegra124-emc.yaml (revision 66cb6e9d79695f831efe96227a5b5d1064872e6a)
1*66cb6e9dSThierry Reding# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*66cb6e9dSThierry Reding%YAML 1.2
3*66cb6e9dSThierry Reding---
4*66cb6e9dSThierry Reding$id: http://devicetree.org/schemas/memory-controllers/nvidia,tegra124-emc.yaml#
5*66cb6e9dSThierry Reding$schema: http://devicetree.org/meta-schemas/core.yaml#
6*66cb6e9dSThierry Reding
7*66cb6e9dSThierry Redingtitle: NVIDIA Tegra124 SoC External Memory Controller
8*66cb6e9dSThierry Reding
9*66cb6e9dSThierry Redingmaintainers:
10*66cb6e9dSThierry Reding  - Thierry Reding <thierry.reding@gmail.com>
11*66cb6e9dSThierry Reding  - Jon Hunter <jonathanh@nvidia.com>
12*66cb6e9dSThierry Reding
13*66cb6e9dSThierry Redingdescription: |
14*66cb6e9dSThierry Reding  The EMC interfaces with the off-chip SDRAM to service the request stream
15*66cb6e9dSThierry Reding  sent from the memory controller.
16*66cb6e9dSThierry Reding
17*66cb6e9dSThierry Redingproperties:
18*66cb6e9dSThierry Reding  compatible:
19*66cb6e9dSThierry Reding    const: nvidia,tegra124-emc
20*66cb6e9dSThierry Reding
21*66cb6e9dSThierry Reding  reg:
22*66cb6e9dSThierry Reding    maxItems: 1
23*66cb6e9dSThierry Reding
24*66cb6e9dSThierry Reding  clocks:
25*66cb6e9dSThierry Reding    items:
26*66cb6e9dSThierry Reding      - description: external memory clock
27*66cb6e9dSThierry Reding
28*66cb6e9dSThierry Reding  clock-names:
29*66cb6e9dSThierry Reding    items:
30*66cb6e9dSThierry Reding      - const: emc
31*66cb6e9dSThierry Reding
32*66cb6e9dSThierry Reding  nvidia,memory-controller:
33*66cb6e9dSThierry Reding    $ref: /schemas/types.yaml#/definitions/phandle
34*66cb6e9dSThierry Reding    description:
35*66cb6e9dSThierry Reding      phandle of the memory controller node
36*66cb6e9dSThierry Reding
37*66cb6e9dSThierry RedingpatternProperties:
38*66cb6e9dSThierry Reding  "^emc-timings-[0-9]+$":
39*66cb6e9dSThierry Reding    type: object
40*66cb6e9dSThierry Reding    properties:
41*66cb6e9dSThierry Reding      nvidia,ram-code:
42*66cb6e9dSThierry Reding        $ref: /schemas/types.yaml#/definitions/uint32
43*66cb6e9dSThierry Reding        description:
44*66cb6e9dSThierry Reding          value of the RAM_CODE field in the PMC_STRAPPING_OPT_A register that
45*66cb6e9dSThierry Reding          this timing set is used for
46*66cb6e9dSThierry Reding
47*66cb6e9dSThierry Reding    patternProperties:
48*66cb6e9dSThierry Reding      "^timing-[0-9]+$":
49*66cb6e9dSThierry Reding        type: object
50*66cb6e9dSThierry Reding        properties:
51*66cb6e9dSThierry Reding          clock-frequency:
52*66cb6e9dSThierry Reding            description:
53*66cb6e9dSThierry Reding              external memory clock rate in Hz
54*66cb6e9dSThierry Reding            minimum: 1000000
55*66cb6e9dSThierry Reding            maximum: 1000000000
56*66cb6e9dSThierry Reding
57*66cb6e9dSThierry Reding          nvidia,emc-auto-cal-config:
58*66cb6e9dSThierry Reding            $ref: /schemas/types.yaml#/definitions/uint32
59*66cb6e9dSThierry Reding            description:
60*66cb6e9dSThierry Reding              value of the EMC_AUTO_CAL_CONFIG register for this set of
61*66cb6e9dSThierry Reding              timings
62*66cb6e9dSThierry Reding
63*66cb6e9dSThierry Reding          nvidia,emc-auto-cal-config2:
64*66cb6e9dSThierry Reding            $ref: /schemas/types.yaml#/definitions/uint32
65*66cb6e9dSThierry Reding            description:
66*66cb6e9dSThierry Reding              value of the EMC_AUTO_CAL_CONFIG2 register for this set of
67*66cb6e9dSThierry Reding              timings
68*66cb6e9dSThierry Reding
69*66cb6e9dSThierry Reding          nvidia,emc-auto-cal-config3:
70*66cb6e9dSThierry Reding            $ref: /schemas/types.yaml#/definitions/uint32
71*66cb6e9dSThierry Reding            description:
72*66cb6e9dSThierry Reding              value of the EMC_AUTO_CAL_CONFIG3 register for this set of
73*66cb6e9dSThierry Reding              timings
74*66cb6e9dSThierry Reding
75*66cb6e9dSThierry Reding          nvidia,emc-auto-cal-interval:
76*66cb6e9dSThierry Reding            allOf:
77*66cb6e9dSThierry Reding              - $ref: /schemas/types.yaml#/definitions/uint32
78*66cb6e9dSThierry Reding            description:
79*66cb6e9dSThierry Reding              pad calibration interval in microseconds
80*66cb6e9dSThierry Reding            minimum: 0
81*66cb6e9dSThierry Reding            maximum: 2097151
82*66cb6e9dSThierry Reding
83*66cb6e9dSThierry Reding          nvidia,emc-bgbias-ctl0:
84*66cb6e9dSThierry Reding            $ref: /schemas/types.yaml#/definitions/uint32
85*66cb6e9dSThierry Reding            description:
86*66cb6e9dSThierry Reding              value of the EMC_BGBIAS_CTL0 register for this set of timings
87*66cb6e9dSThierry Reding
88*66cb6e9dSThierry Reding          nvidia,emc-cfg:
89*66cb6e9dSThierry Reding            $ref: /schemas/types.yaml#/definitions/uint32
90*66cb6e9dSThierry Reding            description:
91*66cb6e9dSThierry Reding              value of the EMC_CFG register for this set of timings
92*66cb6e9dSThierry Reding
93*66cb6e9dSThierry Reding          nvidia,emc-cfg-2:
94*66cb6e9dSThierry Reding            $ref: /schemas/types.yaml#/definitions/uint32
95*66cb6e9dSThierry Reding            description:
96*66cb6e9dSThierry Reding              value of the EMC_CFG_2 register for this set of timings
97*66cb6e9dSThierry Reding
98*66cb6e9dSThierry Reding          nvidia,emc-ctt-term-ctrl:
99*66cb6e9dSThierry Reding            $ref: /schemas/types.yaml#/definitions/uint32
100*66cb6e9dSThierry Reding            description:
101*66cb6e9dSThierry Reding              value of the EMC_CTT_TERM_CTRL register for this set of timings
102*66cb6e9dSThierry Reding
103*66cb6e9dSThierry Reding          nvidia,emc-mode-1:
104*66cb6e9dSThierry Reding            $ref: /schemas/types.yaml#/definitions/uint32
105*66cb6e9dSThierry Reding            description:
106*66cb6e9dSThierry Reding              value of the EMC_MRW register for this set of timings
107*66cb6e9dSThierry Reding
108*66cb6e9dSThierry Reding          nvidia,emc-mode-2:
109*66cb6e9dSThierry Reding            $ref: /schemas/types.yaml#/definitions/uint32
110*66cb6e9dSThierry Reding            description:
111*66cb6e9dSThierry Reding              value of the EMC_MRW2 register for this set of timings
112*66cb6e9dSThierry Reding
113*66cb6e9dSThierry Reding          nvidia,emc-mode-4:
114*66cb6e9dSThierry Reding            $ref: /schemas/types.yaml#/definitions/uint32
115*66cb6e9dSThierry Reding            description:
116*66cb6e9dSThierry Reding              value of the EMC_MRW4 register for this set of timings
117*66cb6e9dSThierry Reding
118*66cb6e9dSThierry Reding          nvidia,emc-mode-reset:
119*66cb6e9dSThierry Reding            $ref: /schemas/types.yaml#/definitions/uint32
120*66cb6e9dSThierry Reding            description:
121*66cb6e9dSThierry Reding              reset value of the EMC_MRS register for this set of timings
122*66cb6e9dSThierry Reding
123*66cb6e9dSThierry Reding          nvidia,emc-mrs-wait-cnt:
124*66cb6e9dSThierry Reding            $ref: /schemas/types.yaml#/definitions/uint32
125*66cb6e9dSThierry Reding            description:
126*66cb6e9dSThierry Reding              value of the EMR_MRS_WAIT_CNT register for this set of timings
127*66cb6e9dSThierry Reding
128*66cb6e9dSThierry Reding          nvidia,emc-sel-dpd-ctrl:
129*66cb6e9dSThierry Reding            $ref: /schemas/types.yaml#/definitions/uint32
130*66cb6e9dSThierry Reding            description:
131*66cb6e9dSThierry Reding              value of the EMC_SEL_DPD_CTRL register for this set of timings
132*66cb6e9dSThierry Reding
133*66cb6e9dSThierry Reding          nvidia,emc-xm2dqspadctrl2:
134*66cb6e9dSThierry Reding            $ref: /schemas/types.yaml#/definitions/uint32
135*66cb6e9dSThierry Reding            description:
136*66cb6e9dSThierry Reding              value of the EMC_XM2DQSPADCTRL2 register for this set of timings
137*66cb6e9dSThierry Reding
138*66cb6e9dSThierry Reding          nvidia,emc-zcal-cnt-long:
139*66cb6e9dSThierry Reding            allOf:
140*66cb6e9dSThierry Reding              - $ref: /schemas/types.yaml#/definitions/uint32
141*66cb6e9dSThierry Reding            description:
142*66cb6e9dSThierry Reding              number of EMC clocks to wait before issuing any commands after
143*66cb6e9dSThierry Reding              clock change
144*66cb6e9dSThierry Reding            minimum: 0
145*66cb6e9dSThierry Reding            maximum: 1023
146*66cb6e9dSThierry Reding
147*66cb6e9dSThierry Reding          nvidia,emc-zcal-interval:
148*66cb6e9dSThierry Reding            $ref: /schemas/types.yaml#/definitions/uint32
149*66cb6e9dSThierry Reding            description:
150*66cb6e9dSThierry Reding              value of the EMC_ZCAL_INTERVAL register for this set of timings
151*66cb6e9dSThierry Reding
152*66cb6e9dSThierry Reding          nvidia,emc-configuration:
153*66cb6e9dSThierry Reding            allOf:
154*66cb6e9dSThierry Reding              - $ref: /schemas/types.yaml#/definitions/uint32-array
155*66cb6e9dSThierry Reding            description:
156*66cb6e9dSThierry Reding              EMC timing characterization data. These are the registers (see
157*66cb6e9dSThierry Reding              section "15.6.2 EMC Registers" in the TRM) whose values need to
158*66cb6e9dSThierry Reding              be specified, according to the board documentation.
159*66cb6e9dSThierry Reding            items:
160*66cb6e9dSThierry Reding              - description: EMC_RC
161*66cb6e9dSThierry Reding              - description: EMC_RFC
162*66cb6e9dSThierry Reding              - description: EMC_RFC_SLR
163*66cb6e9dSThierry Reding              - description: EMC_RAS
164*66cb6e9dSThierry Reding              - description: EMC_RP
165*66cb6e9dSThierry Reding              - description: EMC_R2W
166*66cb6e9dSThierry Reding              - description: EMC_W2R
167*66cb6e9dSThierry Reding              - description: EMC_R2P
168*66cb6e9dSThierry Reding              - description: EMC_W2P
169*66cb6e9dSThierry Reding              - description: EMC_RD_RCD
170*66cb6e9dSThierry Reding              - description: EMC_WR_RCD
171*66cb6e9dSThierry Reding              - description: EMC_RRD
172*66cb6e9dSThierry Reding              - description: EMC_REXT
173*66cb6e9dSThierry Reding              - description: EMC_WEXT
174*66cb6e9dSThierry Reding              - description: EMC_WDV
175*66cb6e9dSThierry Reding              - description: EMC_WDV_MASK
176*66cb6e9dSThierry Reding              - description: EMC_QUSE
177*66cb6e9dSThierry Reding              - description: EMC_QUSE_WIDTH
178*66cb6e9dSThierry Reding              - description: EMC_IBDLY
179*66cb6e9dSThierry Reding              - description: EMC_EINPUT
180*66cb6e9dSThierry Reding              - description: EMC_EINPUT_DURATION
181*66cb6e9dSThierry Reding              - description: EMC_PUTERM_EXTRA
182*66cb6e9dSThierry Reding              - description: EMC_PUTERM_WIDTH
183*66cb6e9dSThierry Reding              - description: EMC_PUTERM_ADJ
184*66cb6e9dSThierry Reding              - description: EMC_CDB_CNTL_1
185*66cb6e9dSThierry Reding              - description: EMC_CDB_CNTL_2
186*66cb6e9dSThierry Reding              - description: EMC_CDB_CNTL_3
187*66cb6e9dSThierry Reding              - description: EMC_QRST
188*66cb6e9dSThierry Reding              - description: EMC_QSAFE
189*66cb6e9dSThierry Reding              - description: EMC_RDV
190*66cb6e9dSThierry Reding              - description: EMC_RDV_MASK
191*66cb6e9dSThierry Reding              - description: EMC_REFRESH
192*66cb6e9dSThierry Reding              - description: EMC_BURST_REFRESH_NUM
193*66cb6e9dSThierry Reding              - description: EMC_PRE_REFRESH_REQ_CNT
194*66cb6e9dSThierry Reding              - description: EMC_PDEX2WR
195*66cb6e9dSThierry Reding              - description: EMC_PDEX2RD
196*66cb6e9dSThierry Reding              - description: EMC_PCHG2PDEN
197*66cb6e9dSThierry Reding              - description: EMC_ACT2PDEN
198*66cb6e9dSThierry Reding              - description: EMC_AR2PDEN
199*66cb6e9dSThierry Reding              - description: EMC_RW2PDEN
200*66cb6e9dSThierry Reding              - description: EMC_TXSR
201*66cb6e9dSThierry Reding              - description: EMC_TXSRDLL
202*66cb6e9dSThierry Reding              - description: EMC_TCKE
203*66cb6e9dSThierry Reding              - description: EMC_TCKESR
204*66cb6e9dSThierry Reding              - description: EMC_TPD
205*66cb6e9dSThierry Reding              - description: EMC_TFAW
206*66cb6e9dSThierry Reding              - description: EMC_TRPAB
207*66cb6e9dSThierry Reding              - description: EMC_TCLKSTABLE
208*66cb6e9dSThierry Reding              - description: EMC_TCLKSTOP
209*66cb6e9dSThierry Reding              - description: EMC_TREFBW
210*66cb6e9dSThierry Reding              - description: EMC_FBIO_CFG6
211*66cb6e9dSThierry Reding              - description: EMC_ODT_WRITE
212*66cb6e9dSThierry Reding              - description: EMC_ODT_READ
213*66cb6e9dSThierry Reding              - description: EMC_FBIO_CFG5
214*66cb6e9dSThierry Reding              - description: EMC_CFG_DIG_DLL
215*66cb6e9dSThierry Reding              - description: EMC_CFG_DIG_DLL_PERIOD
216*66cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_DQS0
217*66cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_DQS1
218*66cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_DQS2
219*66cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_DQS3
220*66cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_DQS4
221*66cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_DQS5
222*66cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_DQS6
223*66cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_DQS7
224*66cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_DQS8
225*66cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_DQS9
226*66cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_DQS10
227*66cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_DQS11
228*66cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_DQS12
229*66cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_DQS13
230*66cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_DQS14
231*66cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_DQS15
232*66cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_QUSE0
233*66cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_QUSE1
234*66cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_QUSE2
235*66cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_QUSE3
236*66cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_QUSE4
237*66cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_QUSE5
238*66cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_QUSE6
239*66cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_QUSE7
240*66cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_ADDR0
241*66cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_ADDR1
242*66cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_ADDR2
243*66cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_ADDR3
244*66cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_ADDR4
245*66cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_ADDR5
246*66cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_QUSE8
247*66cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_QUSE9
248*66cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_QUSE10
249*66cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_QUSE11
250*66cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_QUSE12
251*66cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_QUSE13
252*66cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_QUSE14
253*66cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_QUSE15
254*66cb6e9dSThierry Reding              - description: EMC_DLI_TRIM_TXDQS0
255*66cb6e9dSThierry Reding              - description: EMC_DLI_TRIM_TXDQS1
256*66cb6e9dSThierry Reding              - description: EMC_DLI_TRIM_TXDQS2
257*66cb6e9dSThierry Reding              - description: EMC_DLI_TRIM_TXDQS3
258*66cb6e9dSThierry Reding              - description: EMC_DLI_TRIM_TXDQS4
259*66cb6e9dSThierry Reding              - description: EMC_DLI_TRIM_TXDQS5
260*66cb6e9dSThierry Reding              - description: EMC_DLI_TRIM_TXDQS6
261*66cb6e9dSThierry Reding              - description: EMC_DLI_TRIM_TXDQS7
262*66cb6e9dSThierry Reding              - description: EMC_DLI_TRIM_TXDQS8
263*66cb6e9dSThierry Reding              - description: EMC_DLI_TRIM_TXDQS9
264*66cb6e9dSThierry Reding              - description: EMC_DLI_TRIM_TXDQS10
265*66cb6e9dSThierry Reding              - description: EMC_DLI_TRIM_TXDQS11
266*66cb6e9dSThierry Reding              - description: EMC_DLI_TRIM_TXDQS12
267*66cb6e9dSThierry Reding              - description: EMC_DLI_TRIM_TXDQS13
268*66cb6e9dSThierry Reding              - description: EMC_DLI_TRIM_TXDQS14
269*66cb6e9dSThierry Reding              - description: EMC_DLI_TRIM_TXDQS15
270*66cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_DQ0
271*66cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_DQ1
272*66cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_DQ2
273*66cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_DQ3
274*66cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_DQ4
275*66cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_DQ5
276*66cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_DQ6
277*66cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_DQ7
278*66cb6e9dSThierry Reding              - description: EMC_XM2CMDPADCTRL
279*66cb6e9dSThierry Reding              - description: EMC_XM2CMDPADCTRL4
280*66cb6e9dSThierry Reding              - description: EMC_XM2CMDPADCTRL5
281*66cb6e9dSThierry Reding              - description: EMC_XM2DQPADCTRL2
282*66cb6e9dSThierry Reding              - description: EMC_XM2DQPADCTRL3
283*66cb6e9dSThierry Reding              - description: EMC_XM2CLKPADCTRL
284*66cb6e9dSThierry Reding              - description: EMC_XM2CLKPADCTRL2
285*66cb6e9dSThierry Reding              - description: EMC_XM2COMPPADCTRL
286*66cb6e9dSThierry Reding              - description: EMC_XM2VTTGENPADCTRL
287*66cb6e9dSThierry Reding              - description: EMC_XM2VTTGENPADCTRL2
288*66cb6e9dSThierry Reding              - description: EMC_XM2VTTGENPADCTRL3
289*66cb6e9dSThierry Reding              - description: EMC_XM2DQSPADCTRL3
290*66cb6e9dSThierry Reding              - description: EMC_XM2DQSPADCTRL4
291*66cb6e9dSThierry Reding              - description: EMC_XM2DQSPADCTRL5
292*66cb6e9dSThierry Reding              - description: EMC_XM2DQSPADCTRL6
293*66cb6e9dSThierry Reding              - description: EMC_DSR_VTTGEN_DRV
294*66cb6e9dSThierry Reding              - description: EMC_TXDSRVTTGEN
295*66cb6e9dSThierry Reding              - description: EMC_FBIO_SPARE
296*66cb6e9dSThierry Reding              - description: EMC_ZCAL_WAIT_CNT
297*66cb6e9dSThierry Reding              - description: EMC_MRS_WAIT_CNT2
298*66cb6e9dSThierry Reding              - description: EMC_CTT
299*66cb6e9dSThierry Reding              - description: EMC_CTT_DURATION
300*66cb6e9dSThierry Reding              - description: EMC_CFG_PIPE
301*66cb6e9dSThierry Reding              - description: EMC_DYN_SELF_REF_CONTROL
302*66cb6e9dSThierry Reding              - description: EMC_QPOP
303*66cb6e9dSThierry Reding
304*66cb6e9dSThierry Reding        required:
305*66cb6e9dSThierry Reding          - clock-frequency
306*66cb6e9dSThierry Reding          - nvidia,emc-auto-cal-config
307*66cb6e9dSThierry Reding          - nvidia,emc-auto-cal-config2
308*66cb6e9dSThierry Reding          - nvidia,emc-auto-cal-config3
309*66cb6e9dSThierry Reding          - nvidia,emc-auto-cal-interval
310*66cb6e9dSThierry Reding          - nvidia,emc-bgbias-ctl0
311*66cb6e9dSThierry Reding          - nvidia,emc-cfg
312*66cb6e9dSThierry Reding          - nvidia,emc-cfg-2
313*66cb6e9dSThierry Reding          - nvidia,emc-ctt-term-ctrl
314*66cb6e9dSThierry Reding          - nvidia,emc-mode-1
315*66cb6e9dSThierry Reding          - nvidia,emc-mode-2
316*66cb6e9dSThierry Reding          - nvidia,emc-mode-4
317*66cb6e9dSThierry Reding          - nvidia,emc-mode-reset
318*66cb6e9dSThierry Reding          - nvidia,emc-mrs-wait-cnt
319*66cb6e9dSThierry Reding          - nvidia,emc-sel-dpd-ctrl
320*66cb6e9dSThierry Reding          - nvidia,emc-xm2dqspadctrl2
321*66cb6e9dSThierry Reding          - nvidia,emc-zcal-cnt-long
322*66cb6e9dSThierry Reding          - nvidia,emc-zcal-interval
323*66cb6e9dSThierry Reding          - nvidia,emc-configuration
324*66cb6e9dSThierry Reding
325*66cb6e9dSThierry Reding        additionalProperties: false
326*66cb6e9dSThierry Reding
327*66cb6e9dSThierry Redingrequired:
328*66cb6e9dSThierry Reding  - compatible
329*66cb6e9dSThierry Reding  - reg
330*66cb6e9dSThierry Reding  - clocks
331*66cb6e9dSThierry Reding  - clock-names
332*66cb6e9dSThierry Reding  - nvidia,memory-controller
333*66cb6e9dSThierry Reding
334*66cb6e9dSThierry RedingadditionalProperties: false
335*66cb6e9dSThierry Reding
336*66cb6e9dSThierry Redingexamples:
337*66cb6e9dSThierry Reding  - |
338*66cb6e9dSThierry Reding    #include <dt-bindings/clock/tegra124-car.h>
339*66cb6e9dSThierry Reding    #include <dt-bindings/interrupt-controller/arm-gic.h>
340*66cb6e9dSThierry Reding
341*66cb6e9dSThierry Reding    mc: memory-controller@70019000 {
342*66cb6e9dSThierry Reding        compatible = "nvidia,tegra124-mc";
343*66cb6e9dSThierry Reding        reg = <0x0 0x70019000 0x0 0x1000>;
344*66cb6e9dSThierry Reding        clocks = <&tegra_car TEGRA124_CLK_MC>;
345*66cb6e9dSThierry Reding        clock-names = "mc";
346*66cb6e9dSThierry Reding
347*66cb6e9dSThierry Reding        interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
348*66cb6e9dSThierry Reding
349*66cb6e9dSThierry Reding        #iommu-cells = <1>;
350*66cb6e9dSThierry Reding    };
351*66cb6e9dSThierry Reding
352*66cb6e9dSThierry Reding    external-memory-controller@7001b000 {
353*66cb6e9dSThierry Reding        compatible = "nvidia,tegra124-emc";
354*66cb6e9dSThierry Reding        reg = <0x0 0x7001b000 0x0 0x1000>;
355*66cb6e9dSThierry Reding        clocks = <&car TEGRA124_CLK_EMC>;
356*66cb6e9dSThierry Reding        clock-names = "emc";
357*66cb6e9dSThierry Reding
358*66cb6e9dSThierry Reding        nvidia,memory-controller = <&mc>;
359*66cb6e9dSThierry Reding
360*66cb6e9dSThierry Reding        emc-timings-0 {
361*66cb6e9dSThierry Reding            nvidia,ram-code = <3>;
362*66cb6e9dSThierry Reding
363*66cb6e9dSThierry Reding            timing-0 {
364*66cb6e9dSThierry Reding                clock-frequency = <12750000>;
365*66cb6e9dSThierry Reding
366*66cb6e9dSThierry Reding                nvidia,emc-zcal-cnt-long = <0x00000042>;
367*66cb6e9dSThierry Reding                nvidia,emc-auto-cal-interval = <0x001fffff>;
368*66cb6e9dSThierry Reding                nvidia,emc-ctt-term-ctrl = <0x00000802>;
369*66cb6e9dSThierry Reding                nvidia,emc-cfg = <0x73240000>;
370*66cb6e9dSThierry Reding                nvidia,emc-cfg-2 = <0x000008c5>;
371*66cb6e9dSThierry Reding                nvidia,emc-sel-dpd-ctrl = <0x00040128>;
372*66cb6e9dSThierry Reding                nvidia,emc-bgbias-ctl0 = <0x00000008>;
373*66cb6e9dSThierry Reding                nvidia,emc-auto-cal-config = <0xa1430000>;
374*66cb6e9dSThierry Reding                nvidia,emc-auto-cal-config2 = <0x00000000>;
375*66cb6e9dSThierry Reding                nvidia,emc-auto-cal-config3 = <0x00000000>;
376*66cb6e9dSThierry Reding                nvidia,emc-mode-reset = <0x80001221>;
377*66cb6e9dSThierry Reding                nvidia,emc-mode-1 = <0x80100003>;
378*66cb6e9dSThierry Reding                nvidia,emc-mode-2 = <0x80200008>;
379*66cb6e9dSThierry Reding                nvidia,emc-mode-4 = <0x00000000>;
380*66cb6e9dSThierry Reding
381*66cb6e9dSThierry Reding                nvidia,emc-configuration = <
382*66cb6e9dSThierry Reding                    0x00000000 /* EMC_RC */
383*66cb6e9dSThierry Reding                    0x00000003 /* EMC_RFC */
384*66cb6e9dSThierry Reding                    0x00000000 /* EMC_RFC_SLR */
385*66cb6e9dSThierry Reding                    0x00000000 /* EMC_RAS */
386*66cb6e9dSThierry Reding                    0x00000000 /* EMC_RP */
387*66cb6e9dSThierry Reding                    0x00000004 /* EMC_R2W */
388*66cb6e9dSThierry Reding                    0x0000000a /* EMC_W2R */
389*66cb6e9dSThierry Reding                    0x00000003 /* EMC_R2P */
390*66cb6e9dSThierry Reding                    0x0000000b /* EMC_W2P */
391*66cb6e9dSThierry Reding                    0x00000000 /* EMC_RD_RCD */
392*66cb6e9dSThierry Reding                    0x00000000 /* EMC_WR_RCD */
393*66cb6e9dSThierry Reding                    0x00000003 /* EMC_RRD */
394*66cb6e9dSThierry Reding                    0x00000003 /* EMC_REXT */
395*66cb6e9dSThierry Reding                    0x00000000 /* EMC_WEXT */
396*66cb6e9dSThierry Reding                    0x00000006 /* EMC_WDV */
397*66cb6e9dSThierry Reding                    0x00000006 /* EMC_WDV_MASK */
398*66cb6e9dSThierry Reding                    0x00000006 /* EMC_QUSE */
399*66cb6e9dSThierry Reding                    0x00000002 /* EMC_QUSE_WIDTH */
400*66cb6e9dSThierry Reding                    0x00000000 /* EMC_IBDLY */
401*66cb6e9dSThierry Reding                    0x00000005 /* EMC_EINPUT */
402*66cb6e9dSThierry Reding                    0x00000005 /* EMC_EINPUT_DURATION */
403*66cb6e9dSThierry Reding                    0x00010000 /* EMC_PUTERM_EXTRA */
404*66cb6e9dSThierry Reding                    0x00000003 /* EMC_PUTERM_WIDTH */
405*66cb6e9dSThierry Reding                    0x00000000 /* EMC_PUTERM_ADJ */
406*66cb6e9dSThierry Reding                    0x00000000 /* EMC_CDB_CNTL_1 */
407*66cb6e9dSThierry Reding                    0x00000000 /* EMC_CDB_CNTL_2 */
408*66cb6e9dSThierry Reding                    0x00000000 /* EMC_CDB_CNTL_3 */
409*66cb6e9dSThierry Reding                    0x00000004 /* EMC_QRST */
410*66cb6e9dSThierry Reding                    0x0000000c /* EMC_QSAFE */
411*66cb6e9dSThierry Reding                    0x0000000d /* EMC_RDV */
412*66cb6e9dSThierry Reding                    0x0000000f /* EMC_RDV_MASK */
413*66cb6e9dSThierry Reding                    0x00000060 /* EMC_REFRESH */
414*66cb6e9dSThierry Reding                    0x00000000 /* EMC_BURST_REFRESH_NUM */
415*66cb6e9dSThierry Reding                    0x00000018 /* EMC_PRE_REFRESH_REQ_CNT */
416*66cb6e9dSThierry Reding                    0x00000002 /* EMC_PDEX2WR */
417*66cb6e9dSThierry Reding                    0x00000002 /* EMC_PDEX2RD */
418*66cb6e9dSThierry Reding                    0x00000001 /* EMC_PCHG2PDEN */
419*66cb6e9dSThierry Reding                    0x00000000 /* EMC_ACT2PDEN */
420*66cb6e9dSThierry Reding                    0x00000007 /* EMC_AR2PDEN */
421*66cb6e9dSThierry Reding                    0x0000000f /* EMC_RW2PDEN */
422*66cb6e9dSThierry Reding                    0x00000005 /* EMC_TXSR */
423*66cb6e9dSThierry Reding                    0x00000005 /* EMC_TXSRDLL */
424*66cb6e9dSThierry Reding                    0x00000004 /* EMC_TCKE */
425*66cb6e9dSThierry Reding                    0x00000005 /* EMC_TCKESR */
426*66cb6e9dSThierry Reding                    0x00000004 /* EMC_TPD */
427*66cb6e9dSThierry Reding                    0x00000000 /* EMC_TFAW */
428*66cb6e9dSThierry Reding                    0x00000000 /* EMC_TRPAB */
429*66cb6e9dSThierry Reding                    0x00000005 /* EMC_TCLKSTABLE */
430*66cb6e9dSThierry Reding                    0x00000005 /* EMC_TCLKSTOP */
431*66cb6e9dSThierry Reding                    0x00000064 /* EMC_TREFBW */
432*66cb6e9dSThierry Reding                    0x00000000 /* EMC_FBIO_CFG6 */
433*66cb6e9dSThierry Reding                    0x00000000 /* EMC_ODT_WRITE */
434*66cb6e9dSThierry Reding                    0x00000000 /* EMC_ODT_READ */
435*66cb6e9dSThierry Reding                    0x106aa298 /* EMC_FBIO_CFG5 */
436*66cb6e9dSThierry Reding                    0x002c00a0 /* EMC_CFG_DIG_DLL */
437*66cb6e9dSThierry Reding                    0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
438*66cb6e9dSThierry Reding                    0x00064000 /* EMC_DLL_XFORM_DQS0 */
439*66cb6e9dSThierry Reding                    0x00064000 /* EMC_DLL_XFORM_DQS1 */
440*66cb6e9dSThierry Reding                    0x00064000 /* EMC_DLL_XFORM_DQS2 */
441*66cb6e9dSThierry Reding                    0x00064000 /* EMC_DLL_XFORM_DQS3 */
442*66cb6e9dSThierry Reding                    0x00064000 /* EMC_DLL_XFORM_DQS4 */
443*66cb6e9dSThierry Reding                    0x00064000 /* EMC_DLL_XFORM_DQS5 */
444*66cb6e9dSThierry Reding                    0x00064000 /* EMC_DLL_XFORM_DQS6 */
445*66cb6e9dSThierry Reding                    0x00064000 /* EMC_DLL_XFORM_DQS7 */
446*66cb6e9dSThierry Reding                    0x00064000 /* EMC_DLL_XFORM_DQS8 */
447*66cb6e9dSThierry Reding                    0x00064000 /* EMC_DLL_XFORM_DQS9 */
448*66cb6e9dSThierry Reding                    0x00064000 /* EMC_DLL_XFORM_DQS10 */
449*66cb6e9dSThierry Reding                    0x00064000 /* EMC_DLL_XFORM_DQS11 */
450*66cb6e9dSThierry Reding                    0x00064000 /* EMC_DLL_XFORM_DQS12 */
451*66cb6e9dSThierry Reding                    0x00064000 /* EMC_DLL_XFORM_DQS13 */
452*66cb6e9dSThierry Reding                    0x00064000 /* EMC_DLL_XFORM_DQS14 */
453*66cb6e9dSThierry Reding                    0x00064000 /* EMC_DLL_XFORM_DQS15 */
454*66cb6e9dSThierry Reding                    0x00000000 /* EMC_DLL_XFORM_QUSE0 */
455*66cb6e9dSThierry Reding                    0x00000000 /* EMC_DLL_XFORM_QUSE1 */
456*66cb6e9dSThierry Reding                    0x00000000 /* EMC_DLL_XFORM_QUSE2 */
457*66cb6e9dSThierry Reding                    0x00000000 /* EMC_DLL_XFORM_QUSE3 */
458*66cb6e9dSThierry Reding                    0x00000000 /* EMC_DLL_XFORM_QUSE4 */
459*66cb6e9dSThierry Reding                    0x00000000 /* EMC_DLL_XFORM_QUSE5 */
460*66cb6e9dSThierry Reding                    0x00000000 /* EMC_DLL_XFORM_QUSE6 */
461*66cb6e9dSThierry Reding                    0x00000000 /* EMC_DLL_XFORM_QUSE7 */
462*66cb6e9dSThierry Reding                    0x00000000 /* EMC_DLL_XFORM_ADDR0 */
463*66cb6e9dSThierry Reding                    0x00000000 /* EMC_DLL_XFORM_ADDR1 */
464*66cb6e9dSThierry Reding                    0x00000000 /* EMC_DLL_XFORM_ADDR2 */
465*66cb6e9dSThierry Reding                    0x00000000 /* EMC_DLL_XFORM_ADDR3 */
466*66cb6e9dSThierry Reding                    0x00000000 /* EMC_DLL_XFORM_ADDR4 */
467*66cb6e9dSThierry Reding                    0x00000000 /* EMC_DLL_XFORM_ADDR5 */
468*66cb6e9dSThierry Reding                    0x00000000 /* EMC_DLL_XFORM_QUSE8 */
469*66cb6e9dSThierry Reding                    0x00000000 /* EMC_DLL_XFORM_QUSE9 */
470*66cb6e9dSThierry Reding                    0x00000000 /* EMC_DLL_XFORM_QUSE10 */
471*66cb6e9dSThierry Reding                    0x00000000 /* EMC_DLL_XFORM_QUSE11 */
472*66cb6e9dSThierry Reding                    0x00000000 /* EMC_DLL_XFORM_QUSE12 */
473*66cb6e9dSThierry Reding                    0x00000000 /* EMC_DLL_XFORM_QUSE13 */
474*66cb6e9dSThierry Reding                    0x00000000 /* EMC_DLL_XFORM_QUSE14 */
475*66cb6e9dSThierry Reding                    0x00000000 /* EMC_DLL_XFORM_QUSE15 */
476*66cb6e9dSThierry Reding                    0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
477*66cb6e9dSThierry Reding                    0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
478*66cb6e9dSThierry Reding                    0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
479*66cb6e9dSThierry Reding                    0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
480*66cb6e9dSThierry Reding                    0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
481*66cb6e9dSThierry Reding                    0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
482*66cb6e9dSThierry Reding                    0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
483*66cb6e9dSThierry Reding                    0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
484*66cb6e9dSThierry Reding                    0x00000000 /* EMC_DLI_TRIM_TXDQS8 */
485*66cb6e9dSThierry Reding                    0x00000000 /* EMC_DLI_TRIM_TXDQS9 */
486*66cb6e9dSThierry Reding                    0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
487*66cb6e9dSThierry Reding                    0x00000000 /* EMC_DLI_TRIM_TXDQS11 */
488*66cb6e9dSThierry Reding                    0x00000000 /* EMC_DLI_TRIM_TXDQS12 */
489*66cb6e9dSThierry Reding                    0x00000000 /* EMC_DLI_TRIM_TXDQS13 */
490*66cb6e9dSThierry Reding                    0x00000000 /* EMC_DLI_TRIM_TXDQS14 */
491*66cb6e9dSThierry Reding                    0x00000000 /* EMC_DLI_TRIM_TXDQS15 */
492*66cb6e9dSThierry Reding                    0x000fc000 /* EMC_DLL_XFORM_DQ0 */
493*66cb6e9dSThierry Reding                    0x000fc000 /* EMC_DLL_XFORM_DQ1 */
494*66cb6e9dSThierry Reding                    0x000fc000 /* EMC_DLL_XFORM_DQ2 */
495*66cb6e9dSThierry Reding                    0x000fc000 /* EMC_DLL_XFORM_DQ3 */
496*66cb6e9dSThierry Reding                    0x0000fc00 /* EMC_DLL_XFORM_DQ4 */
497*66cb6e9dSThierry Reding                    0x0000fc00 /* EMC_DLL_XFORM_DQ5 */
498*66cb6e9dSThierry Reding                    0x0000fc00 /* EMC_DLL_XFORM_DQ6 */
499*66cb6e9dSThierry Reding                    0x0000fc00 /* EMC_DLL_XFORM_DQ7 */
500*66cb6e9dSThierry Reding                    0x10000280 /* EMC_XM2CMDPADCTRL */
501*66cb6e9dSThierry Reding                    0x00000000 /* EMC_XM2CMDPADCTRL4 */
502*66cb6e9dSThierry Reding                    0x00111111 /* EMC_XM2CMDPADCTRL5 */
503*66cb6e9dSThierry Reding                    0x00000000 /* EMC_XM2DQPADCTRL2 */
504*66cb6e9dSThierry Reding                    0x00000000 /* EMC_XM2DQPADCTRL3 */
505*66cb6e9dSThierry Reding                    0x77ffc081 /* EMC_XM2CLKPADCTRL */
506*66cb6e9dSThierry Reding                    0x00000e0e /* EMC_XM2CLKPADCTRL2 */
507*66cb6e9dSThierry Reding                    0x81f1f108 /* EMC_XM2COMPPADCTRL */
508*66cb6e9dSThierry Reding                    0x07070004 /* EMC_XM2VTTGENPADCTRL */
509*66cb6e9dSThierry Reding                    0x0000003f /* EMC_XM2VTTGENPADCTRL2 */
510*66cb6e9dSThierry Reding                    0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
511*66cb6e9dSThierry Reding                    0x51451400 /* EMC_XM2DQSPADCTRL3 */
512*66cb6e9dSThierry Reding                    0x00514514 /* EMC_XM2DQSPADCTRL4 */
513*66cb6e9dSThierry Reding                    0x00514514 /* EMC_XM2DQSPADCTRL5 */
514*66cb6e9dSThierry Reding                    0x51451400 /* EMC_XM2DQSPADCTRL6 */
515*66cb6e9dSThierry Reding                    0x0000003f /* EMC_DSR_VTTGEN_DRV */
516*66cb6e9dSThierry Reding                    0x00000007 /* EMC_TXDSRVTTGEN */
517*66cb6e9dSThierry Reding                    0x00000000 /* EMC_FBIO_SPARE */
518*66cb6e9dSThierry Reding                    0x00000042 /* EMC_ZCAL_WAIT_CNT */
519*66cb6e9dSThierry Reding                    0x000e000e /* EMC_MRS_WAIT_CNT2 */
520*66cb6e9dSThierry Reding                    0x00000000 /* EMC_CTT */
521*66cb6e9dSThierry Reding                    0x00000003 /* EMC_CTT_DURATION */
522*66cb6e9dSThierry Reding                    0x0000f2f3 /* EMC_CFG_PIPE */
523*66cb6e9dSThierry Reding                    0x800001c5 /* EMC_DYN_SELF_REF_CONTROL */
524*66cb6e9dSThierry Reding                    0x0000000a /* EMC_QPOP */
525*66cb6e9dSThierry Reding                >;
526*66cb6e9dSThierry Reding            };
527*66cb6e9dSThierry Reding        };
528*66cb6e9dSThierry Reding    };
529