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