xref: /openbmc/linux/Documentation/devicetree/bindings/memory-controllers/nvidia,tegra124-emc.yaml (revision 3044d9891bdb98ebae5c9e6fb1bd7f007bf7cad6)
166cb6e9dSThierry Reding# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
266cb6e9dSThierry Reding%YAML 1.2
366cb6e9dSThierry Reding---
466cb6e9dSThierry Reding$id: http://devicetree.org/schemas/memory-controllers/nvidia,tegra124-emc.yaml#
566cb6e9dSThierry Reding$schema: http://devicetree.org/meta-schemas/core.yaml#
666cb6e9dSThierry Reding
766cb6e9dSThierry Redingtitle: NVIDIA Tegra124 SoC External Memory Controller
866cb6e9dSThierry Reding
966cb6e9dSThierry Redingmaintainers:
1066cb6e9dSThierry Reding  - Thierry Reding <thierry.reding@gmail.com>
1166cb6e9dSThierry Reding  - Jon Hunter <jonathanh@nvidia.com>
1266cb6e9dSThierry Reding
1366cb6e9dSThierry Redingdescription: |
1466cb6e9dSThierry Reding  The EMC interfaces with the off-chip SDRAM to service the request stream
1566cb6e9dSThierry Reding  sent from the memory controller.
1666cb6e9dSThierry Reding
1766cb6e9dSThierry Redingproperties:
1866cb6e9dSThierry Reding  compatible:
1966cb6e9dSThierry Reding    const: nvidia,tegra124-emc
2066cb6e9dSThierry Reding
2166cb6e9dSThierry Reding  reg:
2266cb6e9dSThierry Reding    maxItems: 1
2366cb6e9dSThierry Reding
2466cb6e9dSThierry Reding  clocks:
2566cb6e9dSThierry Reding    items:
2666cb6e9dSThierry Reding      - description: external memory clock
2766cb6e9dSThierry Reding
2866cb6e9dSThierry Reding  clock-names:
2966cb6e9dSThierry Reding    items:
3066cb6e9dSThierry Reding      - const: emc
3166cb6e9dSThierry Reding
3266cb6e9dSThierry Reding  nvidia,memory-controller:
3366cb6e9dSThierry Reding    $ref: /schemas/types.yaml#/definitions/phandle
3466cb6e9dSThierry Reding    description:
3566cb6e9dSThierry Reding      phandle of the memory controller node
3666cb6e9dSThierry Reding
3766cb6e9dSThierry RedingpatternProperties:
3866cb6e9dSThierry Reding  "^emc-timings-[0-9]+$":
3966cb6e9dSThierry Reding    type: object
4066cb6e9dSThierry Reding    properties:
4166cb6e9dSThierry Reding      nvidia,ram-code:
4266cb6e9dSThierry Reding        $ref: /schemas/types.yaml#/definitions/uint32
4366cb6e9dSThierry Reding        description:
4466cb6e9dSThierry Reding          value of the RAM_CODE field in the PMC_STRAPPING_OPT_A register that
4566cb6e9dSThierry Reding          this timing set is used for
4666cb6e9dSThierry Reding
4766cb6e9dSThierry Reding    patternProperties:
4866cb6e9dSThierry Reding      "^timing-[0-9]+$":
4966cb6e9dSThierry Reding        type: object
5066cb6e9dSThierry Reding        properties:
5166cb6e9dSThierry Reding          clock-frequency:
5266cb6e9dSThierry Reding            description:
5366cb6e9dSThierry Reding              external memory clock rate in Hz
5466cb6e9dSThierry Reding            minimum: 1000000
5566cb6e9dSThierry Reding            maximum: 1000000000
5666cb6e9dSThierry Reding
5766cb6e9dSThierry Reding          nvidia,emc-auto-cal-config:
5866cb6e9dSThierry Reding            $ref: /schemas/types.yaml#/definitions/uint32
5966cb6e9dSThierry Reding            description:
6066cb6e9dSThierry Reding              value of the EMC_AUTO_CAL_CONFIG register for this set of
6166cb6e9dSThierry Reding              timings
6266cb6e9dSThierry Reding
6366cb6e9dSThierry Reding          nvidia,emc-auto-cal-config2:
6466cb6e9dSThierry Reding            $ref: /schemas/types.yaml#/definitions/uint32
6566cb6e9dSThierry Reding            description:
6666cb6e9dSThierry Reding              value of the EMC_AUTO_CAL_CONFIG2 register for this set of
6766cb6e9dSThierry Reding              timings
6866cb6e9dSThierry Reding
6966cb6e9dSThierry Reding          nvidia,emc-auto-cal-config3:
7066cb6e9dSThierry Reding            $ref: /schemas/types.yaml#/definitions/uint32
7166cb6e9dSThierry Reding            description:
7266cb6e9dSThierry Reding              value of the EMC_AUTO_CAL_CONFIG3 register for this set of
7366cb6e9dSThierry Reding              timings
7466cb6e9dSThierry Reding
7566cb6e9dSThierry Reding          nvidia,emc-auto-cal-interval:
7666cb6e9dSThierry Reding            allOf:
7766cb6e9dSThierry Reding              - $ref: /schemas/types.yaml#/definitions/uint32
7866cb6e9dSThierry Reding            description:
7966cb6e9dSThierry Reding              pad calibration interval in microseconds
8066cb6e9dSThierry Reding            minimum: 0
8166cb6e9dSThierry Reding            maximum: 2097151
8266cb6e9dSThierry Reding
8366cb6e9dSThierry Reding          nvidia,emc-bgbias-ctl0:
8466cb6e9dSThierry Reding            $ref: /schemas/types.yaml#/definitions/uint32
8566cb6e9dSThierry Reding            description:
8666cb6e9dSThierry Reding              value of the EMC_BGBIAS_CTL0 register for this set of timings
8766cb6e9dSThierry Reding
8866cb6e9dSThierry Reding          nvidia,emc-cfg:
8966cb6e9dSThierry Reding            $ref: /schemas/types.yaml#/definitions/uint32
9066cb6e9dSThierry Reding            description:
9166cb6e9dSThierry Reding              value of the EMC_CFG register for this set of timings
9266cb6e9dSThierry Reding
9366cb6e9dSThierry Reding          nvidia,emc-cfg-2:
9466cb6e9dSThierry Reding            $ref: /schemas/types.yaml#/definitions/uint32
9566cb6e9dSThierry Reding            description:
9666cb6e9dSThierry Reding              value of the EMC_CFG_2 register for this set of timings
9766cb6e9dSThierry Reding
9866cb6e9dSThierry Reding          nvidia,emc-ctt-term-ctrl:
9966cb6e9dSThierry Reding            $ref: /schemas/types.yaml#/definitions/uint32
10066cb6e9dSThierry Reding            description:
10166cb6e9dSThierry Reding              value of the EMC_CTT_TERM_CTRL register for this set of timings
10266cb6e9dSThierry Reding
10366cb6e9dSThierry Reding          nvidia,emc-mode-1:
10466cb6e9dSThierry Reding            $ref: /schemas/types.yaml#/definitions/uint32
10566cb6e9dSThierry Reding            description:
10666cb6e9dSThierry Reding              value of the EMC_MRW register for this set of timings
10766cb6e9dSThierry Reding
10866cb6e9dSThierry Reding          nvidia,emc-mode-2:
10966cb6e9dSThierry Reding            $ref: /schemas/types.yaml#/definitions/uint32
11066cb6e9dSThierry Reding            description:
11166cb6e9dSThierry Reding              value of the EMC_MRW2 register for this set of timings
11266cb6e9dSThierry Reding
11366cb6e9dSThierry Reding          nvidia,emc-mode-4:
11466cb6e9dSThierry Reding            $ref: /schemas/types.yaml#/definitions/uint32
11566cb6e9dSThierry Reding            description:
11666cb6e9dSThierry Reding              value of the EMC_MRW4 register for this set of timings
11766cb6e9dSThierry Reding
11866cb6e9dSThierry Reding          nvidia,emc-mode-reset:
11966cb6e9dSThierry Reding            $ref: /schemas/types.yaml#/definitions/uint32
12066cb6e9dSThierry Reding            description:
12166cb6e9dSThierry Reding              reset value of the EMC_MRS register for this set of timings
12266cb6e9dSThierry Reding
12366cb6e9dSThierry Reding          nvidia,emc-mrs-wait-cnt:
12466cb6e9dSThierry Reding            $ref: /schemas/types.yaml#/definitions/uint32
12566cb6e9dSThierry Reding            description:
12666cb6e9dSThierry Reding              value of the EMR_MRS_WAIT_CNT register for this set of timings
12766cb6e9dSThierry Reding
12866cb6e9dSThierry Reding          nvidia,emc-sel-dpd-ctrl:
12966cb6e9dSThierry Reding            $ref: /schemas/types.yaml#/definitions/uint32
13066cb6e9dSThierry Reding            description:
13166cb6e9dSThierry Reding              value of the EMC_SEL_DPD_CTRL register for this set of timings
13266cb6e9dSThierry Reding
13366cb6e9dSThierry Reding          nvidia,emc-xm2dqspadctrl2:
13466cb6e9dSThierry Reding            $ref: /schemas/types.yaml#/definitions/uint32
13566cb6e9dSThierry Reding            description:
13666cb6e9dSThierry Reding              value of the EMC_XM2DQSPADCTRL2 register for this set of timings
13766cb6e9dSThierry Reding
13866cb6e9dSThierry Reding          nvidia,emc-zcal-cnt-long:
13966cb6e9dSThierry Reding            allOf:
14066cb6e9dSThierry Reding              - $ref: /schemas/types.yaml#/definitions/uint32
14166cb6e9dSThierry Reding            description:
14266cb6e9dSThierry Reding              number of EMC clocks to wait before issuing any commands after
14366cb6e9dSThierry Reding              clock change
14466cb6e9dSThierry Reding            minimum: 0
14566cb6e9dSThierry Reding            maximum: 1023
14666cb6e9dSThierry Reding
14766cb6e9dSThierry Reding          nvidia,emc-zcal-interval:
14866cb6e9dSThierry Reding            $ref: /schemas/types.yaml#/definitions/uint32
14966cb6e9dSThierry Reding            description:
15066cb6e9dSThierry Reding              value of the EMC_ZCAL_INTERVAL register for this set of timings
15166cb6e9dSThierry Reding
15266cb6e9dSThierry Reding          nvidia,emc-configuration:
15366cb6e9dSThierry Reding            allOf:
15466cb6e9dSThierry Reding              - $ref: /schemas/types.yaml#/definitions/uint32-array
15566cb6e9dSThierry Reding            description:
15666cb6e9dSThierry Reding              EMC timing characterization data. These are the registers (see
15766cb6e9dSThierry Reding              section "15.6.2 EMC Registers" in the TRM) whose values need to
15866cb6e9dSThierry Reding              be specified, according to the board documentation.
15966cb6e9dSThierry Reding            items:
16066cb6e9dSThierry Reding              - description: EMC_RC
16166cb6e9dSThierry Reding              - description: EMC_RFC
16266cb6e9dSThierry Reding              - description: EMC_RFC_SLR
16366cb6e9dSThierry Reding              - description: EMC_RAS
16466cb6e9dSThierry Reding              - description: EMC_RP
16566cb6e9dSThierry Reding              - description: EMC_R2W
16666cb6e9dSThierry Reding              - description: EMC_W2R
16766cb6e9dSThierry Reding              - description: EMC_R2P
16866cb6e9dSThierry Reding              - description: EMC_W2P
16966cb6e9dSThierry Reding              - description: EMC_RD_RCD
17066cb6e9dSThierry Reding              - description: EMC_WR_RCD
17166cb6e9dSThierry Reding              - description: EMC_RRD
17266cb6e9dSThierry Reding              - description: EMC_REXT
17366cb6e9dSThierry Reding              - description: EMC_WEXT
17466cb6e9dSThierry Reding              - description: EMC_WDV
17566cb6e9dSThierry Reding              - description: EMC_WDV_MASK
17666cb6e9dSThierry Reding              - description: EMC_QUSE
17766cb6e9dSThierry Reding              - description: EMC_QUSE_WIDTH
17866cb6e9dSThierry Reding              - description: EMC_IBDLY
17966cb6e9dSThierry Reding              - description: EMC_EINPUT
18066cb6e9dSThierry Reding              - description: EMC_EINPUT_DURATION
18166cb6e9dSThierry Reding              - description: EMC_PUTERM_EXTRA
18266cb6e9dSThierry Reding              - description: EMC_PUTERM_WIDTH
18366cb6e9dSThierry Reding              - description: EMC_PUTERM_ADJ
18466cb6e9dSThierry Reding              - description: EMC_CDB_CNTL_1
18566cb6e9dSThierry Reding              - description: EMC_CDB_CNTL_2
18666cb6e9dSThierry Reding              - description: EMC_CDB_CNTL_3
18766cb6e9dSThierry Reding              - description: EMC_QRST
18866cb6e9dSThierry Reding              - description: EMC_QSAFE
18966cb6e9dSThierry Reding              - description: EMC_RDV
19066cb6e9dSThierry Reding              - description: EMC_RDV_MASK
19166cb6e9dSThierry Reding              - description: EMC_REFRESH
19266cb6e9dSThierry Reding              - description: EMC_BURST_REFRESH_NUM
19366cb6e9dSThierry Reding              - description: EMC_PRE_REFRESH_REQ_CNT
19466cb6e9dSThierry Reding              - description: EMC_PDEX2WR
19566cb6e9dSThierry Reding              - description: EMC_PDEX2RD
19666cb6e9dSThierry Reding              - description: EMC_PCHG2PDEN
19766cb6e9dSThierry Reding              - description: EMC_ACT2PDEN
19866cb6e9dSThierry Reding              - description: EMC_AR2PDEN
19966cb6e9dSThierry Reding              - description: EMC_RW2PDEN
20066cb6e9dSThierry Reding              - description: EMC_TXSR
20166cb6e9dSThierry Reding              - description: EMC_TXSRDLL
20266cb6e9dSThierry Reding              - description: EMC_TCKE
20366cb6e9dSThierry Reding              - description: EMC_TCKESR
20466cb6e9dSThierry Reding              - description: EMC_TPD
20566cb6e9dSThierry Reding              - description: EMC_TFAW
20666cb6e9dSThierry Reding              - description: EMC_TRPAB
20766cb6e9dSThierry Reding              - description: EMC_TCLKSTABLE
20866cb6e9dSThierry Reding              - description: EMC_TCLKSTOP
20966cb6e9dSThierry Reding              - description: EMC_TREFBW
21066cb6e9dSThierry Reding              - description: EMC_FBIO_CFG6
21166cb6e9dSThierry Reding              - description: EMC_ODT_WRITE
21266cb6e9dSThierry Reding              - description: EMC_ODT_READ
21366cb6e9dSThierry Reding              - description: EMC_FBIO_CFG5
21466cb6e9dSThierry Reding              - description: EMC_CFG_DIG_DLL
21566cb6e9dSThierry Reding              - description: EMC_CFG_DIG_DLL_PERIOD
21666cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_DQS0
21766cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_DQS1
21866cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_DQS2
21966cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_DQS3
22066cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_DQS4
22166cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_DQS5
22266cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_DQS6
22366cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_DQS7
22466cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_DQS8
22566cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_DQS9
22666cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_DQS10
22766cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_DQS11
22866cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_DQS12
22966cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_DQS13
23066cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_DQS14
23166cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_DQS15
23266cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_QUSE0
23366cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_QUSE1
23466cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_QUSE2
23566cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_QUSE3
23666cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_QUSE4
23766cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_QUSE5
23866cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_QUSE6
23966cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_QUSE7
24066cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_ADDR0
24166cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_ADDR1
24266cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_ADDR2
24366cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_ADDR3
24466cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_ADDR4
24566cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_ADDR5
24666cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_QUSE8
24766cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_QUSE9
24866cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_QUSE10
24966cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_QUSE11
25066cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_QUSE12
25166cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_QUSE13
25266cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_QUSE14
25366cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_QUSE15
25466cb6e9dSThierry Reding              - description: EMC_DLI_TRIM_TXDQS0
25566cb6e9dSThierry Reding              - description: EMC_DLI_TRIM_TXDQS1
25666cb6e9dSThierry Reding              - description: EMC_DLI_TRIM_TXDQS2
25766cb6e9dSThierry Reding              - description: EMC_DLI_TRIM_TXDQS3
25866cb6e9dSThierry Reding              - description: EMC_DLI_TRIM_TXDQS4
25966cb6e9dSThierry Reding              - description: EMC_DLI_TRIM_TXDQS5
26066cb6e9dSThierry Reding              - description: EMC_DLI_TRIM_TXDQS6
26166cb6e9dSThierry Reding              - description: EMC_DLI_TRIM_TXDQS7
26266cb6e9dSThierry Reding              - description: EMC_DLI_TRIM_TXDQS8
26366cb6e9dSThierry Reding              - description: EMC_DLI_TRIM_TXDQS9
26466cb6e9dSThierry Reding              - description: EMC_DLI_TRIM_TXDQS10
26566cb6e9dSThierry Reding              - description: EMC_DLI_TRIM_TXDQS11
26666cb6e9dSThierry Reding              - description: EMC_DLI_TRIM_TXDQS12
26766cb6e9dSThierry Reding              - description: EMC_DLI_TRIM_TXDQS13
26866cb6e9dSThierry Reding              - description: EMC_DLI_TRIM_TXDQS14
26966cb6e9dSThierry Reding              - description: EMC_DLI_TRIM_TXDQS15
27066cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_DQ0
27166cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_DQ1
27266cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_DQ2
27366cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_DQ3
27466cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_DQ4
27566cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_DQ5
27666cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_DQ6
27766cb6e9dSThierry Reding              - description: EMC_DLL_XFORM_DQ7
27866cb6e9dSThierry Reding              - description: EMC_XM2CMDPADCTRL
27966cb6e9dSThierry Reding              - description: EMC_XM2CMDPADCTRL4
28066cb6e9dSThierry Reding              - description: EMC_XM2CMDPADCTRL5
28166cb6e9dSThierry Reding              - description: EMC_XM2DQPADCTRL2
28266cb6e9dSThierry Reding              - description: EMC_XM2DQPADCTRL3
28366cb6e9dSThierry Reding              - description: EMC_XM2CLKPADCTRL
28466cb6e9dSThierry Reding              - description: EMC_XM2CLKPADCTRL2
28566cb6e9dSThierry Reding              - description: EMC_XM2COMPPADCTRL
28666cb6e9dSThierry Reding              - description: EMC_XM2VTTGENPADCTRL
28766cb6e9dSThierry Reding              - description: EMC_XM2VTTGENPADCTRL2
28866cb6e9dSThierry Reding              - description: EMC_XM2VTTGENPADCTRL3
28966cb6e9dSThierry Reding              - description: EMC_XM2DQSPADCTRL3
29066cb6e9dSThierry Reding              - description: EMC_XM2DQSPADCTRL4
29166cb6e9dSThierry Reding              - description: EMC_XM2DQSPADCTRL5
29266cb6e9dSThierry Reding              - description: EMC_XM2DQSPADCTRL6
29366cb6e9dSThierry Reding              - description: EMC_DSR_VTTGEN_DRV
29466cb6e9dSThierry Reding              - description: EMC_TXDSRVTTGEN
29566cb6e9dSThierry Reding              - description: EMC_FBIO_SPARE
29666cb6e9dSThierry Reding              - description: EMC_ZCAL_WAIT_CNT
29766cb6e9dSThierry Reding              - description: EMC_MRS_WAIT_CNT2
29866cb6e9dSThierry Reding              - description: EMC_CTT
29966cb6e9dSThierry Reding              - description: EMC_CTT_DURATION
30066cb6e9dSThierry Reding              - description: EMC_CFG_PIPE
30166cb6e9dSThierry Reding              - description: EMC_DYN_SELF_REF_CONTROL
30266cb6e9dSThierry Reding              - description: EMC_QPOP
30366cb6e9dSThierry Reding
30466cb6e9dSThierry Reding        required:
30566cb6e9dSThierry Reding          - clock-frequency
30666cb6e9dSThierry Reding          - nvidia,emc-auto-cal-config
30766cb6e9dSThierry Reding          - nvidia,emc-auto-cal-config2
30866cb6e9dSThierry Reding          - nvidia,emc-auto-cal-config3
30966cb6e9dSThierry Reding          - nvidia,emc-auto-cal-interval
31066cb6e9dSThierry Reding          - nvidia,emc-bgbias-ctl0
31166cb6e9dSThierry Reding          - nvidia,emc-cfg
31266cb6e9dSThierry Reding          - nvidia,emc-cfg-2
31366cb6e9dSThierry Reding          - nvidia,emc-ctt-term-ctrl
31466cb6e9dSThierry Reding          - nvidia,emc-mode-1
31566cb6e9dSThierry Reding          - nvidia,emc-mode-2
31666cb6e9dSThierry Reding          - nvidia,emc-mode-4
31766cb6e9dSThierry Reding          - nvidia,emc-mode-reset
31866cb6e9dSThierry Reding          - nvidia,emc-mrs-wait-cnt
31966cb6e9dSThierry Reding          - nvidia,emc-sel-dpd-ctrl
32066cb6e9dSThierry Reding          - nvidia,emc-xm2dqspadctrl2
32166cb6e9dSThierry Reding          - nvidia,emc-zcal-cnt-long
32266cb6e9dSThierry Reding          - nvidia,emc-zcal-interval
32366cb6e9dSThierry Reding          - nvidia,emc-configuration
32466cb6e9dSThierry Reding
32566cb6e9dSThierry Reding        additionalProperties: false
32666cb6e9dSThierry Reding
32766cb6e9dSThierry Redingrequired:
32866cb6e9dSThierry Reding  - compatible
32966cb6e9dSThierry Reding  - reg
33066cb6e9dSThierry Reding  - clocks
33166cb6e9dSThierry Reding  - clock-names
33266cb6e9dSThierry Reding  - nvidia,memory-controller
33366cb6e9dSThierry Reding
33466cb6e9dSThierry RedingadditionalProperties: false
33566cb6e9dSThierry Reding
33666cb6e9dSThierry Redingexamples:
33766cb6e9dSThierry Reding  - |
33866cb6e9dSThierry Reding    #include <dt-bindings/clock/tegra124-car.h>
33966cb6e9dSThierry Reding    #include <dt-bindings/interrupt-controller/arm-gic.h>
34066cb6e9dSThierry Reding
34166cb6e9dSThierry Reding    mc: memory-controller@70019000 {
34266cb6e9dSThierry Reding        compatible = "nvidia,tegra124-mc";
34366cb6e9dSThierry Reding        reg = <0x0 0x70019000 0x0 0x1000>;
34466cb6e9dSThierry Reding        clocks = <&tegra_car TEGRA124_CLK_MC>;
34566cb6e9dSThierry Reding        clock-names = "mc";
34666cb6e9dSThierry Reding
34766cb6e9dSThierry Reding        interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
34866cb6e9dSThierry Reding
34966cb6e9dSThierry Reding        #iommu-cells = <1>;
350*3044d989SThierry Reding        #reset-cells = <1>;
35166cb6e9dSThierry Reding    };
35266cb6e9dSThierry Reding
35366cb6e9dSThierry Reding    external-memory-controller@7001b000 {
35466cb6e9dSThierry Reding        compatible = "nvidia,tegra124-emc";
35566cb6e9dSThierry Reding        reg = <0x0 0x7001b000 0x0 0x1000>;
35666cb6e9dSThierry Reding        clocks = <&car TEGRA124_CLK_EMC>;
35766cb6e9dSThierry Reding        clock-names = "emc";
35866cb6e9dSThierry Reding
35966cb6e9dSThierry Reding        nvidia,memory-controller = <&mc>;
36066cb6e9dSThierry Reding
36166cb6e9dSThierry Reding        emc-timings-0 {
36266cb6e9dSThierry Reding            nvidia,ram-code = <3>;
36366cb6e9dSThierry Reding
36466cb6e9dSThierry Reding            timing-0 {
36566cb6e9dSThierry Reding                clock-frequency = <12750000>;
36666cb6e9dSThierry Reding
36766cb6e9dSThierry Reding                nvidia,emc-auto-cal-config = <0xa1430000>;
36866cb6e9dSThierry Reding                nvidia,emc-auto-cal-config2 = <0x00000000>;
36966cb6e9dSThierry Reding                nvidia,emc-auto-cal-config3 = <0x00000000>;
370*3044d989SThierry Reding                nvidia,emc-auto-cal-interval = <0x001fffff>;
371*3044d989SThierry Reding                nvidia,emc-bgbias-ctl0 = <0x00000008>;
372*3044d989SThierry Reding                nvidia,emc-cfg = <0x73240000>;
373*3044d989SThierry Reding                nvidia,emc-cfg-2 = <0x000008c5>;
374*3044d989SThierry Reding                nvidia,emc-ctt-term-ctrl = <0x00000802>;
37566cb6e9dSThierry Reding                nvidia,emc-mode-1 = <0x80100003>;
37666cb6e9dSThierry Reding                nvidia,emc-mode-2 = <0x80200008>;
37766cb6e9dSThierry Reding                nvidia,emc-mode-4 = <0x00000000>;
378*3044d989SThierry Reding                nvidia,emc-mode-reset = <0x80001221>;
379*3044d989SThierry Reding                nvidia,emc-mrs-wait-cnt = <0x000e000e>;
380*3044d989SThierry Reding                nvidia,emc-sel-dpd-ctrl = <0x00040128>;
381*3044d989SThierry Reding                nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
382*3044d989SThierry Reding                nvidia,emc-zcal-cnt-long = <0x00000042>;
383*3044d989SThierry Reding                nvidia,emc-zcal-interval = <0x00000000>;
38466cb6e9dSThierry Reding
38566cb6e9dSThierry Reding                nvidia,emc-configuration = <
38666cb6e9dSThierry Reding                    0x00000000 /* EMC_RC */
38766cb6e9dSThierry Reding                    0x00000003 /* EMC_RFC */
38866cb6e9dSThierry Reding                    0x00000000 /* EMC_RFC_SLR */
38966cb6e9dSThierry Reding                    0x00000000 /* EMC_RAS */
39066cb6e9dSThierry Reding                    0x00000000 /* EMC_RP */
39166cb6e9dSThierry Reding                    0x00000004 /* EMC_R2W */
39266cb6e9dSThierry Reding                    0x0000000a /* EMC_W2R */
39366cb6e9dSThierry Reding                    0x00000003 /* EMC_R2P */
39466cb6e9dSThierry Reding                    0x0000000b /* EMC_W2P */
39566cb6e9dSThierry Reding                    0x00000000 /* EMC_RD_RCD */
39666cb6e9dSThierry Reding                    0x00000000 /* EMC_WR_RCD */
39766cb6e9dSThierry Reding                    0x00000003 /* EMC_RRD */
39866cb6e9dSThierry Reding                    0x00000003 /* EMC_REXT */
39966cb6e9dSThierry Reding                    0x00000000 /* EMC_WEXT */
40066cb6e9dSThierry Reding                    0x00000006 /* EMC_WDV */
40166cb6e9dSThierry Reding                    0x00000006 /* EMC_WDV_MASK */
40266cb6e9dSThierry Reding                    0x00000006 /* EMC_QUSE */
40366cb6e9dSThierry Reding                    0x00000002 /* EMC_QUSE_WIDTH */
40466cb6e9dSThierry Reding                    0x00000000 /* EMC_IBDLY */
40566cb6e9dSThierry Reding                    0x00000005 /* EMC_EINPUT */
40666cb6e9dSThierry Reding                    0x00000005 /* EMC_EINPUT_DURATION */
40766cb6e9dSThierry Reding                    0x00010000 /* EMC_PUTERM_EXTRA */
40866cb6e9dSThierry Reding                    0x00000003 /* EMC_PUTERM_WIDTH */
40966cb6e9dSThierry Reding                    0x00000000 /* EMC_PUTERM_ADJ */
41066cb6e9dSThierry Reding                    0x00000000 /* EMC_CDB_CNTL_1 */
41166cb6e9dSThierry Reding                    0x00000000 /* EMC_CDB_CNTL_2 */
41266cb6e9dSThierry Reding                    0x00000000 /* EMC_CDB_CNTL_3 */
41366cb6e9dSThierry Reding                    0x00000004 /* EMC_QRST */
41466cb6e9dSThierry Reding                    0x0000000c /* EMC_QSAFE */
41566cb6e9dSThierry Reding                    0x0000000d /* EMC_RDV */
41666cb6e9dSThierry Reding                    0x0000000f /* EMC_RDV_MASK */
41766cb6e9dSThierry Reding                    0x00000060 /* EMC_REFRESH */
41866cb6e9dSThierry Reding                    0x00000000 /* EMC_BURST_REFRESH_NUM */
41966cb6e9dSThierry Reding                    0x00000018 /* EMC_PRE_REFRESH_REQ_CNT */
42066cb6e9dSThierry Reding                    0x00000002 /* EMC_PDEX2WR */
42166cb6e9dSThierry Reding                    0x00000002 /* EMC_PDEX2RD */
42266cb6e9dSThierry Reding                    0x00000001 /* EMC_PCHG2PDEN */
42366cb6e9dSThierry Reding                    0x00000000 /* EMC_ACT2PDEN */
42466cb6e9dSThierry Reding                    0x00000007 /* EMC_AR2PDEN */
42566cb6e9dSThierry Reding                    0x0000000f /* EMC_RW2PDEN */
42666cb6e9dSThierry Reding                    0x00000005 /* EMC_TXSR */
42766cb6e9dSThierry Reding                    0x00000005 /* EMC_TXSRDLL */
42866cb6e9dSThierry Reding                    0x00000004 /* EMC_TCKE */
42966cb6e9dSThierry Reding                    0x00000005 /* EMC_TCKESR */
43066cb6e9dSThierry Reding                    0x00000004 /* EMC_TPD */
43166cb6e9dSThierry Reding                    0x00000000 /* EMC_TFAW */
43266cb6e9dSThierry Reding                    0x00000000 /* EMC_TRPAB */
43366cb6e9dSThierry Reding                    0x00000005 /* EMC_TCLKSTABLE */
43466cb6e9dSThierry Reding                    0x00000005 /* EMC_TCLKSTOP */
43566cb6e9dSThierry Reding                    0x00000064 /* EMC_TREFBW */
43666cb6e9dSThierry Reding                    0x00000000 /* EMC_FBIO_CFG6 */
43766cb6e9dSThierry Reding                    0x00000000 /* EMC_ODT_WRITE */
43866cb6e9dSThierry Reding                    0x00000000 /* EMC_ODT_READ */
43966cb6e9dSThierry Reding                    0x106aa298 /* EMC_FBIO_CFG5 */
44066cb6e9dSThierry Reding                    0x002c00a0 /* EMC_CFG_DIG_DLL */
44166cb6e9dSThierry Reding                    0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
44266cb6e9dSThierry Reding                    0x00064000 /* EMC_DLL_XFORM_DQS0 */
44366cb6e9dSThierry Reding                    0x00064000 /* EMC_DLL_XFORM_DQS1 */
44466cb6e9dSThierry Reding                    0x00064000 /* EMC_DLL_XFORM_DQS2 */
44566cb6e9dSThierry Reding                    0x00064000 /* EMC_DLL_XFORM_DQS3 */
44666cb6e9dSThierry Reding                    0x00064000 /* EMC_DLL_XFORM_DQS4 */
44766cb6e9dSThierry Reding                    0x00064000 /* EMC_DLL_XFORM_DQS5 */
44866cb6e9dSThierry Reding                    0x00064000 /* EMC_DLL_XFORM_DQS6 */
44966cb6e9dSThierry Reding                    0x00064000 /* EMC_DLL_XFORM_DQS7 */
45066cb6e9dSThierry Reding                    0x00064000 /* EMC_DLL_XFORM_DQS8 */
45166cb6e9dSThierry Reding                    0x00064000 /* EMC_DLL_XFORM_DQS9 */
45266cb6e9dSThierry Reding                    0x00064000 /* EMC_DLL_XFORM_DQS10 */
45366cb6e9dSThierry Reding                    0x00064000 /* EMC_DLL_XFORM_DQS11 */
45466cb6e9dSThierry Reding                    0x00064000 /* EMC_DLL_XFORM_DQS12 */
45566cb6e9dSThierry Reding                    0x00064000 /* EMC_DLL_XFORM_DQS13 */
45666cb6e9dSThierry Reding                    0x00064000 /* EMC_DLL_XFORM_DQS14 */
45766cb6e9dSThierry Reding                    0x00064000 /* EMC_DLL_XFORM_DQS15 */
45866cb6e9dSThierry Reding                    0x00000000 /* EMC_DLL_XFORM_QUSE0 */
45966cb6e9dSThierry Reding                    0x00000000 /* EMC_DLL_XFORM_QUSE1 */
46066cb6e9dSThierry Reding                    0x00000000 /* EMC_DLL_XFORM_QUSE2 */
46166cb6e9dSThierry Reding                    0x00000000 /* EMC_DLL_XFORM_QUSE3 */
46266cb6e9dSThierry Reding                    0x00000000 /* EMC_DLL_XFORM_QUSE4 */
46366cb6e9dSThierry Reding                    0x00000000 /* EMC_DLL_XFORM_QUSE5 */
46466cb6e9dSThierry Reding                    0x00000000 /* EMC_DLL_XFORM_QUSE6 */
46566cb6e9dSThierry Reding                    0x00000000 /* EMC_DLL_XFORM_QUSE7 */
46666cb6e9dSThierry Reding                    0x00000000 /* EMC_DLL_XFORM_ADDR0 */
46766cb6e9dSThierry Reding                    0x00000000 /* EMC_DLL_XFORM_ADDR1 */
46866cb6e9dSThierry Reding                    0x00000000 /* EMC_DLL_XFORM_ADDR2 */
46966cb6e9dSThierry Reding                    0x00000000 /* EMC_DLL_XFORM_ADDR3 */
47066cb6e9dSThierry Reding                    0x00000000 /* EMC_DLL_XFORM_ADDR4 */
47166cb6e9dSThierry Reding                    0x00000000 /* EMC_DLL_XFORM_ADDR5 */
47266cb6e9dSThierry Reding                    0x00000000 /* EMC_DLL_XFORM_QUSE8 */
47366cb6e9dSThierry Reding                    0x00000000 /* EMC_DLL_XFORM_QUSE9 */
47466cb6e9dSThierry Reding                    0x00000000 /* EMC_DLL_XFORM_QUSE10 */
47566cb6e9dSThierry Reding                    0x00000000 /* EMC_DLL_XFORM_QUSE11 */
47666cb6e9dSThierry Reding                    0x00000000 /* EMC_DLL_XFORM_QUSE12 */
47766cb6e9dSThierry Reding                    0x00000000 /* EMC_DLL_XFORM_QUSE13 */
47866cb6e9dSThierry Reding                    0x00000000 /* EMC_DLL_XFORM_QUSE14 */
47966cb6e9dSThierry Reding                    0x00000000 /* EMC_DLL_XFORM_QUSE15 */
48066cb6e9dSThierry Reding                    0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
48166cb6e9dSThierry Reding                    0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
48266cb6e9dSThierry Reding                    0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
48366cb6e9dSThierry Reding                    0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
48466cb6e9dSThierry Reding                    0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
48566cb6e9dSThierry Reding                    0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
48666cb6e9dSThierry Reding                    0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
48766cb6e9dSThierry Reding                    0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
48866cb6e9dSThierry Reding                    0x00000000 /* EMC_DLI_TRIM_TXDQS8 */
48966cb6e9dSThierry Reding                    0x00000000 /* EMC_DLI_TRIM_TXDQS9 */
49066cb6e9dSThierry Reding                    0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
49166cb6e9dSThierry Reding                    0x00000000 /* EMC_DLI_TRIM_TXDQS11 */
49266cb6e9dSThierry Reding                    0x00000000 /* EMC_DLI_TRIM_TXDQS12 */
49366cb6e9dSThierry Reding                    0x00000000 /* EMC_DLI_TRIM_TXDQS13 */
49466cb6e9dSThierry Reding                    0x00000000 /* EMC_DLI_TRIM_TXDQS14 */
49566cb6e9dSThierry Reding                    0x00000000 /* EMC_DLI_TRIM_TXDQS15 */
49666cb6e9dSThierry Reding                    0x000fc000 /* EMC_DLL_XFORM_DQ0 */
49766cb6e9dSThierry Reding                    0x000fc000 /* EMC_DLL_XFORM_DQ1 */
49866cb6e9dSThierry Reding                    0x000fc000 /* EMC_DLL_XFORM_DQ2 */
49966cb6e9dSThierry Reding                    0x000fc000 /* EMC_DLL_XFORM_DQ3 */
50066cb6e9dSThierry Reding                    0x0000fc00 /* EMC_DLL_XFORM_DQ4 */
50166cb6e9dSThierry Reding                    0x0000fc00 /* EMC_DLL_XFORM_DQ5 */
50266cb6e9dSThierry Reding                    0x0000fc00 /* EMC_DLL_XFORM_DQ6 */
50366cb6e9dSThierry Reding                    0x0000fc00 /* EMC_DLL_XFORM_DQ7 */
50466cb6e9dSThierry Reding                    0x10000280 /* EMC_XM2CMDPADCTRL */
50566cb6e9dSThierry Reding                    0x00000000 /* EMC_XM2CMDPADCTRL4 */
50666cb6e9dSThierry Reding                    0x00111111 /* EMC_XM2CMDPADCTRL5 */
50766cb6e9dSThierry Reding                    0x00000000 /* EMC_XM2DQPADCTRL2 */
50866cb6e9dSThierry Reding                    0x00000000 /* EMC_XM2DQPADCTRL3 */
50966cb6e9dSThierry Reding                    0x77ffc081 /* EMC_XM2CLKPADCTRL */
51066cb6e9dSThierry Reding                    0x00000e0e /* EMC_XM2CLKPADCTRL2 */
51166cb6e9dSThierry Reding                    0x81f1f108 /* EMC_XM2COMPPADCTRL */
51266cb6e9dSThierry Reding                    0x07070004 /* EMC_XM2VTTGENPADCTRL */
51366cb6e9dSThierry Reding                    0x0000003f /* EMC_XM2VTTGENPADCTRL2 */
51466cb6e9dSThierry Reding                    0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
51566cb6e9dSThierry Reding                    0x51451400 /* EMC_XM2DQSPADCTRL3 */
51666cb6e9dSThierry Reding                    0x00514514 /* EMC_XM2DQSPADCTRL4 */
51766cb6e9dSThierry Reding                    0x00514514 /* EMC_XM2DQSPADCTRL5 */
51866cb6e9dSThierry Reding                    0x51451400 /* EMC_XM2DQSPADCTRL6 */
51966cb6e9dSThierry Reding                    0x0000003f /* EMC_DSR_VTTGEN_DRV */
52066cb6e9dSThierry Reding                    0x00000007 /* EMC_TXDSRVTTGEN */
52166cb6e9dSThierry Reding                    0x00000000 /* EMC_FBIO_SPARE */
52266cb6e9dSThierry Reding                    0x00000042 /* EMC_ZCAL_WAIT_CNT */
52366cb6e9dSThierry Reding                    0x000e000e /* EMC_MRS_WAIT_CNT2 */
52466cb6e9dSThierry Reding                    0x00000000 /* EMC_CTT */
52566cb6e9dSThierry Reding                    0x00000003 /* EMC_CTT_DURATION */
52666cb6e9dSThierry Reding                    0x0000f2f3 /* EMC_CFG_PIPE */
52766cb6e9dSThierry Reding                    0x800001c5 /* EMC_DYN_SELF_REF_CONTROL */
52866cb6e9dSThierry Reding                    0x0000000a /* EMC_QPOP */
52966cb6e9dSThierry Reding                >;
53066cb6e9dSThierry Reding            };
53166cb6e9dSThierry Reding        };
53266cb6e9dSThierry Reding    };
533