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