diff mbox series

[v2,1/4] dt-bindings: memory-controllers: Describe Tegra210 EMC Tables

Message ID 20250508-tegra210-emc-dt-v2-1-d33dc20a1123@gmail.com
State New
Headers show
Series memory: tegra210-emc: Support Device Tree EMC Tables | expand

Commit Message

Aaron Kling via B4 Relay May 8, 2025, 6:07 a.m. UTC
From: Aaron Kling <webgeek1234@gmail.com>

Add device tree bindings for Tegra210 EMC tables as used by the Nvidia
Android bootloader.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
---
 .../nvidia,tegra21-emc-table.yaml                  | 1692 ++++++++++++++++++++
 .../memory-controllers/nvidia,tegra210-emc.yaml    |   38 +
 2 files changed, 1730 insertions(+)

Comments

Rob Herring (Arm) May 8, 2025, 7:09 a.m. UTC | #1
On Thu, 08 May 2025 01:07:38 -0500, Aaron Kling wrote:
> Add device tree bindings for Tegra210 EMC tables as used by the Nvidia
> Android bootloader.
> 
> Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
> ---
>  .../nvidia,tegra21-emc-table.yaml                  | 1692 ++++++++++++++++++++
>  .../memory-controllers/nvidia,tegra210-emc.yaml    |   38 +
>  2 files changed, 1730 insertions(+)
> 

My bot found errors running 'make dt_binding_check' on your patch:

yamllint warnings/errors:

dtschema/dtc warnings/errors:


doc reference errors (make refcheckdocs):

See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20250508-tegra210-emc-dt-v2-1-d33dc20a1123@gmail.com

The base for the series is generally the latest rc1. A different dependency
should be noted in *this* patch.

If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:

pip3 install dtschema --upgrade

Please check and re-submit after running the above command yourself. Note
that DT_SCHEMA_FILES can be set to your schema file to speed up checking
your schema. However, it must be unset to test all examples with your schema.
Rob Herring (Arm) May 9, 2025, 1:42 p.m. UTC | #2
On Thu, May 08, 2025 at 01:07:38AM -0500, Aaron Kling wrote:
> Add device tree bindings for Tegra210 EMC tables as used by the Nvidia
> Android bootloader.
> 
> Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
> ---
>  .../nvidia,tegra21-emc-table.yaml                  | 1692 ++++++++++++++++++++
>  .../memory-controllers/nvidia,tegra210-emc.yaml    |   38 +
>  2 files changed, 1730 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/memory-controllers/nvidia,tegra21-emc-table.yaml b/Documentation/devicetree/bindings/memory-controllers/nvidia,tegra21-emc-table.yaml
> new file mode 100644
> index 0000000000000000000000000000000000000000..df371c835b95ad75deb74ad1d8711ed40a9b2361
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/memory-controllers/nvidia,tegra21-emc-table.yaml
> @@ -0,0 +1,1692 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/memory-controllers/nvidia,tegra21-emc-table.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: NVIDIA Tegra210 SoC EMC Table
> +
> +maintainers:
> +  - Thierry Reding <thierry.reding@gmail.com>
> +  - Jon Hunter <jonathanh@nvidia.com>
> +
> +description: |

Don't need '|' if no formatting to preserve.

> +  EMC training data used by the emc driver to do periodic training
> +
> +properties:
> +  compatible:
> +    items:
> +      - enum:
> +          - nvidia,tegra21-emc-table
> +          - nvidia,tegra21-emc-table-derated
> +
> +  reg:
> +    maxItems: 1
> +    description:
> +      Clock rate for this table

?? Drop

> +
> +  clock-frequency:
> +    $ref: /schemas/types.yaml#/definitions/uint32

Already has a type defined. Drop.

> +    description:
> +      external memory clock rate in KHz
> +    minimum: 40800
> +    maximum: 1600000
> +
> +  nvidia,revision:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      The revision of this table
> +
> +  nvidia,dvfs-version:
> +    $ref: /schemas/types.yaml#/definitions/string
> +    description:
> +      The dvfs version of this table

Constraints on the string?

> +
> +  nvidia,emc-min-mv:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      The minimum emc voltage allowed for this table

Use standard unit suffixes.

> +
> +  nvidia,gk20a-min-mv:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      The minimum gpu voltage allowed for this table
> +
> +  nvidia,source:
> +    $ref: /schemas/types.yaml#/definitions/string
> +    description:
> +      The clock source for this table
> +
> +  nvidia,src-sel-reg:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Value of the source selection register
> +
> +  nvidia,needs-training:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      If this table needs training

Sounds like a boolean?

> +
> +  nvidia,training_pattern:

Don't use '_' in names.

> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Which training pattern to use for this table
> +
> +  nvidia,trained:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      If this table has been trained

Isn't that just !nvidia,needs-training?

> +
> +  nvidia,periodic_training:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      If this table should be periodically trained
> +
> +  nvidia,trained_dram_clktree_c0d0u0:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Trained value of c0d0u0 in the dram clock tree
> +
> +  nvidia,trained_dram_clktree_c0d0u1:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Trained value of c0d0u1 in the dram clock tree
> +
> +  nvidia,trained_dram_clktree_c0d1u0:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Trained value of c0d1u0 in the dram clock tree
> +
> +  nvidia,trained_dram_clktree_c0d1u1:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Trained value of c0d1u1 in the dram clock tree
> +
> +  nvidia,trained_dram_clktree_c1d0u0:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Trained value of c1d0u0 in the dram clock tree
> +
> +  nvidia,trained_dram_clktree_c1d0u1:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Trained value of c1d0u1 in the dram clock tree
> +
> +  nvidia,trained_dram_clktree_c1d1u0:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Trained value of c1d1u0 in the dram clock tree
> +
> +  nvidia,trained_dram_clktree_c1d1u1:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Trained value of c1d1u1 in the dram clock tree
> +
> +  nvidia,current_dram_clktree_c0d0u0:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Current value of c0d0u0 in the dram clock tree
> +
> +  nvidia,current_dram_clktree_c0d0u1:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Current value of c0d0u1 in the dram clock tree
> +
> +  nvidia,current_dram_clktree_c0d1u0:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Current value of c0d1u0 in the dram clock tree
> +
> +  nvidia,current_dram_clktree_c0d1u1:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Current value of c0d1u1 in the dram clock tree
> +
> +  nvidia,current_dram_clktree_c1d0u0:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Current value of c1d0u0 in the dram clock tree
> +
> +  nvidia,current_dram_clktree_c1d0u1:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Current value of c1d0u1 in the dram clock tree
> +
> +  nvidia,current_dram_clktree_c1d1u0:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Current value of c1d1u0 in the dram clock tree
> +
> +  nvidia,current_dram_clktree_c1d1u1:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Current value of c1d1u1 in the dram clock tree

Could all of these just be an array?

> +
> +  nvidia,run_clocks:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Clocks to run
> +
> +  nvidia,tree_margin:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Tree margin
> +
> +  nvidia,burst-regs-num:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Number of burst registers
> +
> +  nvidia,burst-regs-per-ch-num:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Number of burst registers per channel
> +
> +  nvidia,trim-regs-num:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Number of trim registers
> +
> +  nvidia,trim-regs-per-ch-num:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Number of trim registers per channel
> +
> +  nvidia,burst-mc-regs-num:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Number of burst mc registers
> +
> +  nvidia,la-scale-regs-num:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Number of la scale registers
> +
> +  nvidia,vref-regs-num:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Number of voltage reference registers
> +
> +  nvidia,training-mod-regs-num:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Number of training mod registers
> +
> +  nvidia,dram-timing-regs-num:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Number of dram timing registers
> +
> +  nvidia,min-mrs-wait:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Value of the MIN_MRS_WAIT register
> +
> +  nvidia,emc-mrw:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Value of the EMC_MRW register
> +
> +  nvidia,emc-mrw2:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Value of the EMC_MRW2 register
> +
> +  nvidia,emc-mrw3:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Value of the EMC_MRW3 register
> +
> +  nvidia,emc-mrw4:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Value of the EMC_MRW4 register
> +
> +  nvidia,emc-mrw9:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Value of the EMC_MRW9 register
> +
> +  nvidia,emc-mrs:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Value of the EMC_MRS register
> +
> +  nvidia,emc-emrs:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Value of the EMC_EMRS register
> +
> +  nvidia,emc-emrs2:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Value of the EMC_EMRS2 register
> +
> +  nvidia,emc-auto-cal-config:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Value of the EMC_AUTO_CAL_CONFIG register
> +
> +  nvidia,emc-auto-cal-config2:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Value of the EMC_AUTO_CAL_CONFIG2 register
> +
> +  nvidia,emc-auto-cal-config3:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Value of the EMC_AUTO_CAL_CONFIG3 register
> +
> +  nvidia,emc-auto-cal-config4:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Value of the EMC_AUTO_CAL_CONFIG4 register
> +
> +  nvidia,emc-auto-cal-config5:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Value of the EMC_AUTO_CAL_CONFIG5 register
> +
> +  nvidia,emc-auto-cal-config6:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Value of the EMC_AUTO_CAL_CONFIG6 register
> +
> +  nvidia,emc-auto-cal-config7:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Value of the EMC_AUTO_CAL_CONFIG7 register
> +
> +  nvidia,emc-auto-cal-config8:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Value of the EMC_AUTO_CAL_CONFIG8 register
> +
> +  nvidia,emc-cfg-2:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Value of the EMC_CFG_2 register
> +
> +  nvidia,emc-sel-dpd-ctrl:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Value of the EMC_SEL_DPD_CTRL register
> +
> +  nvidia,emc-fdpd-ctrl-cmd-no-ramp:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Value of the EMC_FDPD_SEL_DPD_CTRL_NO_RAMP register
> +
> +  nvidia,dll-clk-src:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      VALUE of the DLL_CLK_SRC register
> +
> +  nvidia,clk-out-enb-x-0-clk-enb-emc-dll:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      If the dll clock should be enabled for this table
> +
> +  nvidia,emc-clock-latency-change:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Clock latency change
> +
> +  nvidia,ptfv:
> +    $ref: /schemas/types.yaml#/definitions/uint32-array
> +    description:
> +      Ptfv list values
> +
> +  nvidia,emc-registers:
> +    $ref: /schemas/types.yaml#/definitions/uint32-array
> +    description:
> +      Burst register values, size is determined by
> +      nvidia,burst-regs-num
> +
> +  nvidia,emc-burst-regs-per-ch:
> +    $ref: /schemas/types.yaml#/definitions/uint32-array
> +    description:
> +      Per channel EMC burst register values, size is determined by
> +      nvidia,burst-regs-per-ch-num
> +
> +  nvidia,emc-shadow-regs-ca-train:
> +    $ref: /schemas/types.yaml#/definitions/uint32-array
> +    description:
> +      Shadow registers ca train, size is determined by
> +      nvidia,burst-regs-num
> +
> +  nvidia,emc-shadow-regs-quse-train:
> +    $ref: /schemas/types.yaml#/definitions/uint32-array
> +    description:
> +      Shadow registers quse train, size is determined by
> +      nvidia,burst-regs-num
> +
> +  nvidia,emc-shadow-regs-rdwr-train:
> +    $ref: /schemas/types.yaml#/definitions/uint32-array
> +    description:
> +      Shadow registers rdwr train, size is determined by
> +      nvidia,burst-regs-num
> +
> +  nvidia,emc-trim-regs:
> +    $ref: /schemas/types.yaml#/definitions/uint32-array
> +    description:
> +      Trim register values, size is determined by
> +      nvidia,trim-regs-num
> +
> +  nvidia,emc-trim-regs-per-ch:
> +    $ref: /schemas/types.yaml#/definitions/uint32-array
> +    description:
> +      Per channel trim register values, size is determined by
> +      nvidia,trim-regs-per-channel-num
> +
> +  nvidia,emc-vref-regs:
> +    $ref: /schemas/types.yaml#/definitions/uint32-array
> +    description:
> +      Voltage reference register values, size is determined by
> +      nvidia,vref-regs-num
> +
> +  nvidia,emc-dram-timing-regs:
> +    $ref: /schemas/types.yaml#/definitions/uint32-array
> +    description:
> +      Dram timing register values, size is determined by
> +      nvidia,dram-timing-regs-num
> +
> +  nvidia,emc-training-mod-regs:
> +    $ref: /schemas/types.yaml#/definitions/uint32-array
> +    description:
> +      Training mod register values, size is determined by
> +      nvidia,training-mod-regs-num
> +
> +  nvidia,emc-save-restore-mod-regs:
> +    $ref: /schemas/types.yaml#/definitions/uint32-array
> +    description:
> +      Save restore mod register values
> +
> +  nvidia,emc-burst-mc-regs:
> +    $ref: /schemas/types.yaml#/definitions/uint32-array
> +    description:
> +      Burst mc register values, size is determined by
> +      nvidia,burst-mc-regs-num
> +
> +  nvidia,emc-la-scale-regs:
> +    $ref: /schemas/types.yaml#/definitions/uint32-array
> +    description:
> +      La scale register values, size is determined by
> +      nvidia,burst-mc-regs-num

That's a ton of properties... And somehow completely different than 
other Tegra stuff. 

> +
> +required:
> +  - compatible
> +  - clock-frequency

Seems like a few more should be required. Or there's some dependencies 
between properties? 


> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/clock/tegra210-car.h>
> +    #include <dt-bindings/interrupt-controller/arm-gic.h>
> +
> +    external-memory-controller@7001b000 {

This node needs a compatible.

> +        reg = <0x7001b000 0x1000>,
> +              <0x7001e000 0x1000>,
> +              <0x7001f000 0x1000>;
> +        clocks = <&tegra_car TEGRA210_CLK_EMC>;
> +        clock-names = "emc";
> +        interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
> +        nvidia,memory-controller = <&mc>;
> +        nvidia,use-ram-code;
> +
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +
> +        emc-table@0 {
> +            reg = <0>;
> +            nvidia,ram-code = <0x0>;
> +
> +            #address-cells = <1>;
> +            #size-cells = <0>;
> +
> +            emc-table@40800 {
> +                reg = <40800>;
> +                compatible = "nvidia,tegra21-emc-table";
> +                nvidia,revision = <0x07>;
> +                nvidia,dvfs-version = "04_40800_03_V9.8.7_V1.6";
> +                clock-frequency = <40800>;
> +                nvidia,emc-min-mv = <800>;
> +                nvidia,gk20a-min-mv = <1100>;
> +                nvidia,source = "pllp_out0";
> +                nvidia,src-sel-reg = <0x40188012>;
> +                nvidia,needs-training = <0x00000000>;
> +                nvidia,training_pattern = <0x00000000>;
> +                nvidia,trained = <0x00000000>;
> +                nvidia,periodic_training = <0x00000000>;
> +                nvidia,trained_dram_clktree_c0d0u0 = <0x00000000>;
> +                nvidia,trained_dram_clktree_c0d0u1 = <0x00000000>;
> +                nvidia,trained_dram_clktree_c0d1u0 = <0x00000000>;
> +                nvidia,trained_dram_clktree_c0d1u1 = <0x00000000>;
> +                nvidia,trained_dram_clktree_c1d0u0 = <0x00000000>;
> +                nvidia,trained_dram_clktree_c1d0u1 = <0x00000000>;
> +                nvidia,trained_dram_clktree_c1d1u0 = <0x00000000>;
> +                nvidia,trained_dram_clktree_c1d1u1 = <0x00000000>;
> +                nvidia,current_dram_clktree_c0d0u0 = <0x00000000>;
> +                nvidia,current_dram_clktree_c0d0u1 = <0x00000000>;
> +                nvidia,current_dram_clktree_c0d1u0 = <0x00000000>;
> +                nvidia,current_dram_clktree_c0d1u1 = <0x00000000>;
> +                nvidia,current_dram_clktree_c1d0u0 = <0x00000000>;
> +                nvidia,current_dram_clktree_c1d0u1 = <0x00000000>;
> +                nvidia,current_dram_clktree_c1d1u0 = <0x00000000>;
> +                nvidia,current_dram_clktree_c1d1u1 = <0x00000000>;
> +                nvidia,run_clocks = <0x00000003>;
> +                nvidia,tree_margin = <0x00000001>;
> +                nvidia,burst-regs-num = <221>;
> +                nvidia,burst-regs-per-ch-num = <8>;
> +                nvidia,trim-regs-num = <138>;
> +                nvidia,trim-regs-per-ch-num = <10>;
> +                nvidia,burst-mc-regs-num = <33>;
> +                nvidia,la-scale-regs-num = <24>;
> +                nvidia,vref-regs-num = <4>;
> +                nvidia,training-mod-regs-num = <20>;
> +                nvidia,dram-timing-regs-num = <5>;
> +                nvidia,min-mrs-wait = <0x00000015>;
> +                nvidia,emc-mrw = <0x08010004>;
> +                nvidia,emc-mrw2 = <0x08020000>;
> +                nvidia,emc-mrw3 = <0x080d0000>;
> +                nvidia,emc-mrw4 = <0xc0000000>;
> +                nvidia,emc-mrw9 = <0x0c0e7272>;
> +                nvidia,emc-mrs = <0x00000000>;
> +                nvidia,emc-emrs = <0x00000000>;
> +                nvidia,emc-emrs2 = <0x00000000>;
> +                nvidia,emc-auto-cal-config = <0xa01a51d8>;
> +                nvidia,emc-auto-cal-config2 = <0x05500000>;
> +                nvidia,emc-auto-cal-config3 = <0x00770000>;
> +                nvidia,emc-auto-cal-config4 = <0x00770000>;
> +                nvidia,emc-auto-cal-config5 = <0x00770000>;
> +                nvidia,emc-auto-cal-config6 = <0x00770000>;
> +                nvidia,emc-auto-cal-config7 = <0x00770000>;
> +                nvidia,emc-auto-cal-config8 = <0x00770000>;
> +                nvidia,emc-cfg-2 = <0x00110805>;
> +                nvidia,emc-sel-dpd-ctrl = <0x00040008>;
> +                nvidia,emc-fdpd-ctrl-cmd-no-ramp = <0x00000001>;
> +                nvidia,dll-clk-src = <0x40188012>;
> +                nvidia,clk-out-enb-x-0-clk-enb-emc-dll = <0x00000001>;
> +                nvidia,emc-clock-latency-change = <0x00005172>;
> +                nvidia,ptfv = <
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x0000000a
> +                    0x0000000a
> +                    0x0000000a
> +                    0x00000001
> +                >;
> +                nvidia,emc-registers = <
> +                    0x0000000c
> +                    0x00000008
> +                    0x00000004
> +                    0x00000000
> +                    0x00000000
> +                    0x00000008
> +                    0x00000004
> +                    0x0000000a
> +                    0x0000000d
> +                    0x00000008
> +                    0x0000000b
> +                    0x00000000
> +                    0x00000004
> +                    0x00000020
> +                    0x00000006
> +                    0x00000006
> +                    0x00000006
> +                    0x00000003
> +                    0x00000000
> +                    0x00000006
> +                    0x00000004
> +                    0x00000002
> +                    0x00000000
> +                    0x00000004
> +                    0x00000008
> +                    0x0000000d
> +                    0x00000005
> +                    0x00000005
> +                    0x00000000
> +                    0x00000000
> +                    0x00000004
> +                    0x08037171
> +                    0x0000000a
> +                    0x00000000
> +                    0x0000000a
> +                    0x00010001
> +                    0x00000011
> +                    0x00000013
> +                    0x00000015
> +                    0x00000011
> +                    0x00000013
> +                    0x0000009a
> +                    0x00000000
> +                    0x00000026
> +                    0x00000008
> +                    0x00000008
> +                    0x00000003
> +                    0x00000003
> +                    0x00000003
> +                    0x00000014
> +                    0x00000005
> +                    0x00000002
> +                    0x0000000d
> +                    0x00000008
> +                    0x00000008
> +                    0x00000005
> +                    0x00000005
> +                    0x00000004
> +                    0x00000008
> +                    0x00000004
> +                    0x00000004
> +                    0x00000009
> +                    0x48037171
> +                    0x000000a0
> +                    0x00000000
> +                    0x9160a00d
> +                    0x00003bbf
> +                    0x002c00a0
> +                    0x00008000
> +                    0x000000be
> +                    0x0fff0fff
> +                    0x0fff0fff
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x080b0000
> +                    0x00120010
> +                    0x00120011
> +                    0x00280027
> +                    0x0025002a
> +                    0x002a002a
> +                    0x00260026
> +                    0x00000000
> +                    0x00000000
> +                    0x00280027
> +                    0x0025002a
> +                    0x002a002a
> +                    0x00260026
> +                    0x00000000
> +                    0x00000000
> +                    0x00100010
> +                    0x00120012
> +                    0x00110011
> +                    0x00120012
> +                    0x00000010
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x8020221f
> +                    0x0220f40f
> +                    0x00000012
> +                    0x00064000
> +                    0x00090029
> +                    0x00290015
> +                    0x000b000a
> +                    0xc1e00302
> +                    0x1f13412f
> +                    0x00010014
> +                    0x00000804
> +                    0x00000550
> +                    0xf3200000
> +                    0x0fff0fff
> +                    0x0000023a
> +                    0x00000009
> +                    0x00000000
> +                    0x00000000
> +                    0x00000012
> +                    0x00000012
> +                    0x00020000
> +                    0x00050037
> +                    0x00000000
> +                    0x00000010
> +                    0x00003000
> +                    0x0a000000
> +                    0x02000111
> +                    0x00000008
> +                    0x00030808
> +                    0x00015c00
> +                    0x00100404
> +                    0x00001600
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000034
> +                    0x00000040
> +                    0x10000000
> +                    0x08000000
> +                    0x10000000
> +                    0x08000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000020
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0xefffefff
> +                    0xc0c0c0c0
> +                    0xc0c0c0c0
> +                    0xdcdcdcdc
> +                    0x0a0a0a0a
> +                    0x0a0a0a0a
> +                    0x0a0a0a0a
> +                    0x0118600b
> +                    0x00000000
> +                    0x00000000
> +                    0x00000013
> +                    0x00000009
> +                    0x00000015
> +                    0x08161414
> +                    0x00000011
> +                    0x00010001
> +                    0x00009080
> +                    0x07070404
> +                    0x00040014
> +                    0x0513801f
> +                    0x1f101100
> +                    0x00000014
> +                    0x00107240
> +                    0x01124000
> +                    0x01125b6a
> +                    0x0f081000
> +                    0x00105800
> +                    0x1110fc00
> +                    0x0f081300
> +                    0x00105800
> +                    0x1114fc00
> +                    0x07000300
> +                    0x00107240
> +                    0x55553c5a
> +                    0x48161414
> +                >;
> +                nvidia,emc-burst-regs-per-ch = <
> +                    0x880c7272
> +                    0x880c7272
> +                    0x480c7272
> +                    0x480c7272
> +                    0x8c0e7272
> +                    0x8c0e7272
> +                    0x4c0e7272
> +                    0x4c0e7272
> +                >;
> +                nvidia,emc-shadow-regs-ca-train = <
> +                    0x0000000c
> +                    0x00000008
> +                    0x00000004
> +                    0x00000000
> +                    0x00000000
> +                    0x00000008
> +                    0x00000004
> +                    0x0000000a
> +                    0x0000000d
> +                    0x00000008
> +                    0x0000000b
> +                    0x00000000
> +                    0x00000004
> +                    0x00000020
> +                    0x00000006
> +                    0x00000006
> +                    0x00000006
> +                    0x00000003
> +                    0x00000000
> +                    0x00000006
> +                    0x00000004
> +                    0x00000002
> +                    0x00000000
> +                    0x00000004
> +                    0x00000008
> +                    0x0000000d
> +                    0x00000005
> +                    0x00000005
> +                    0x00000000
> +                    0x00000000
> +                    0x00000004
> +                    0x08037171
> +                    0x0000000a
> +                    0x00000000
> +                    0x0000000a
> +                    0x00010001
> +                    0x00000011
> +                    0x00000013
> +                    0x00000015
> +                    0x00000011
> +                    0x00000013
> +                    0x0000009a
> +                    0x00000000
> +                    0x00000026
> +                    0x00000008
> +                    0x00000008
> +                    0x00000003
> +                    0x00000003
> +                    0x00000003
> +                    0x00000014
> +                    0x00000005
> +                    0x00000002
> +                    0x0000000d
> +                    0x00000008
> +                    0x00000008
> +                    0x00000005
> +                    0x00000005
> +                    0x00000004
> +                    0x00000008
> +                    0x00000004
> +                    0x00000004
> +                    0x00000009
> +                    0x48037171
> +                    0x000000a0
> +                    0x00000000
> +                    0x9960a00d
> +                    0x00003bbf
> +                    0x002c00a0
> +                    0x00008000
> +                    0x00000055
> +                    0x0fff0fff
> +                    0x0fff0fff
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x080b0000
> +                    0x00120010
> +                    0x00120011
> +                    0x00280027
> +                    0x0025002a
> +                    0x002a002a
> +                    0x00260026
> +                    0x00000000
> +                    0x00000000
> +                    0x00280027
> +                    0x0025002a
> +                    0x002a002a
> +                    0x00260026
> +                    0x00000000
> +                    0x00000000
> +                    0x00100010
> +                    0x00120012
> +                    0x00110011
> +                    0x00120012
> +                    0x00000010
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x8020221f
> +                    0x0220f40f
> +                    0x00000012
> +                    0x00064000
> +                    0x00090029
> +                    0x00290015
> +                    0x000b000a
> +                    0xc1e00302
> +                    0x1f13412f
> +                    0x00010014
> +                    0x00000804
> +                    0x00000550
> +                    0xf3200000
> +                    0x0fff0fff
> +                    0x0000023a
> +                    0x00000009
> +                    0x00000000
> +                    0x00000000
> +                    0x00000012
> +                    0x00000012
> +                    0x00020000
> +                    0x05058033
> +                    0x05050000
> +                    0x00000000
> +                    0x00003000
> +                    0x0a000000
> +                    0x02000111
> +                    0x00000008
> +                    0x00030808
> +                    0x00015c00
> +                    0x00100404
> +                    0x00001600
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000034
> +                    0x00000040
> +                    0x10000000
> +                    0x08000000
> +                    0x10000000
> +                    0x08000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000020
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0xefffefff
> +                    0xc0c0c0c0
> +                    0xc0c0c0c0
> +                    0xdcdcdcdc
> +                    0x0a0a0a0a
> +                    0x0a0a0a0a
> +                    0x0a0a0a0a
> +                    0x0118600b
> +                    0x00000001
> +                    0x0000001f
> +                    0x00000013
> +                    0x00000003
> +                    0x00000015
> +                    0x08161414
> +                    0x0000000b
> +                    0x00010001
> +                    0x00019080
> +                    0x07070404
> +                    0x00040014
> +                    0x0513801f
> +                    0x1f101100
> +                    0x00000014
> +                    0x00107240
> +                    0x01124000
> +                    0x01125b6a
> +                    0x0f081000
> +                    0x00105800
> +                    0x1110fc00
> +                    0x0f081300
> +                    0x00105800
> +                    0x1114fc00
> +                    0x07000300
> +                    0x00107240
> +                    0x55553c5a
> +                    0x48161414
> +                >;
> +                nvidia,emc-shadow-regs-quse-train = <
> +                    0x0000000c
> +                    0x00000008
> +                    0x00000004
> +                    0x00000000
> +                    0x00000000
> +                    0x00000008
> +                    0x00000004
> +                    0x00000009
> +                    0x0000000d
> +                    0x00000008
> +                    0x0000000b
> +                    0x00000000
> +                    0x00000004
> +                    0x00000020
> +                    0x00000006
> +                    0x00000006
> +                    0x00000006
> +                    0x00000003
> +                    0x00000000
> +                    0x00000006
> +                    0x00000004
> +                    0x00000002
> +                    0x00000000
> +                    0x00000004
> +                    0x00000008
> +                    0x0000000d
> +                    0x00000002
> +                    0x00000002
> +                    0x00000000
> +                    0x00000000
> +                    0x00000005
> +                    0x08037171
> +                    0x00000008
> +                    0x00000001
> +                    0x80000000
> +                    0x00010002
> +                    0x00000011
> +                    0x00000013
> +                    0x00000015
> +                    0x00000011
> +                    0x00000013
> +                    0x0000009a
> +                    0x00000000
> +                    0x00000026
> +                    0x00000008
> +                    0x00000008
> +                    0x00000003
> +                    0x00000003
> +                    0x00000003
> +                    0x00000014
> +                    0x00000005
> +                    0x00000002
> +                    0x0000000d
> +                    0x00000008
> +                    0x00000008
> +                    0x00000005
> +                    0x00000005
> +                    0x00000004
> +                    0x00000008
> +                    0x00000004
> +                    0x00000004
> +                    0x00000009
> +                    0x48037171
> +                    0x000000a0
> +                    0x00000000
> +                    0x9160400d
> +                    0x00003bbf
> +                    0x002c00a0
> +                    0x00008000
> +                    0x000000be
> +                    0x0fff0fff
> +                    0x0fff0fff
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x080b0000
> +                    0x00120010
> +                    0x00120011
> +                    0x00280027
> +                    0x0025002a
> +                    0x002a002a
> +                    0x00260026
> +                    0x00000000
> +                    0x00000000
> +                    0x00280027
> +                    0x0025002a
> +                    0x002a002a
> +                    0x00260026
> +                    0x00000000
> +                    0x00000000
> +                    0x00100010
> +                    0x00120012
> +                    0x00110011
> +                    0x00120012
> +                    0x00000010
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x8020221f
> +                    0x0220f40f
> +                    0x00000012
> +                    0x00064000
> +                    0x00090029
> +                    0x00290015
> +                    0x000b000a
> +                    0xc1e00302
> +                    0x1f13412f
> +                    0x00010014
> +                    0x00000804
> +                    0x00000550
> +                    0xf3200000
> +                    0x0fff0fff
> +                    0x0000023a
> +                    0x00000009
> +                    0x00000000
> +                    0x00000000
> +                    0x00000012
> +                    0x00000012
> +                    0x30020000
> +                    0x00058037
> +                    0x00000000
> +                    0x00000010
> +                    0x00003000
> +                    0x0a000000
> +                    0x02000111
> +                    0x00000008
> +                    0x00030808
> +                    0x00015c00
> +                    0x00100404
> +                    0x00001600
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000034
> +                    0x00000040
> +                    0x10000000
> +                    0x08000000
> +                    0x10000000
> +                    0x08000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000020
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0xefffefff
> +                    0xc0c0c0c0
> +                    0xc0c0c0c0
> +                    0xdcdcdcdc
> +                    0x0a0a0a0a
> +                    0x0a0a0a0a
> +                    0x0a0a0a0a
> +                    0x0118600b
> +                    0x00000001
> +                    0x0000001f
> +                    0x0000001d
> +                    0x00000013
> +                    0x0000001f
> +                    0x08161414
> +                    0x0000001b
> +                    0x00010002
> +                    0x00009080
> +                    0x07070404
> +                    0x00040014
> +                    0x0513801f
> +                    0x1f101100
> +                    0x00000014
> +                    0x00107240
> +                    0x01124000
> +                    0x01125b6a
> +                    0x0f081000
> +                    0x00105800
> +                    0x1110fc00
> +                    0x0f081300
> +                    0x00105800
> +                    0x1114fc00
> +                    0x07000300
> +                    0x00107240
> +                    0x55553c5a
> +                    0x48161414
> +                >;
> +                nvidia,emc-shadow-regs-rdwr-train = <
> +                    0x0000000c
> +                    0x00000008
> +                    0x00000004
> +                    0x00000000
> +                    0x00000000
> +                    0x00000008
> +                    0x00000004
> +                    0x0000000d
> +                    0x0000000d
> +                    0x00000008
> +                    0x0000000b
> +                    0x00000000
> +                    0x00000004
> +                    0x00000020
> +                    0x00000006
> +                    0x00000006
> +                    0x00000006
> +                    0x00000003
> +                    0x00000013
> +                    0x00000006
> +                    0x00000004
> +                    0x00000002
> +                    0x00000000
> +                    0x00000004
> +                    0x00000008
> +                    0x0000000d
> +                    0x00000005
> +                    0x00000005
> +                    0x00000000
> +                    0x30000002
> +                    0x00000004
> +                    0x08037171
> +                    0x0000000a
> +                    0x00000000
> +                    0x0000000a
> +                    0x00010001
> +                    0x00000011
> +                    0x00000013
> +                    0x00000015
> +                    0x00000011
> +                    0x00000013
> +                    0x0000009a
> +                    0x00000000
> +                    0x00000026
> +                    0x00000008
> +                    0x00000008
> +                    0x00000003
> +                    0x00000003
> +                    0x00000003
> +                    0x00000014
> +                    0x00000005
> +                    0x00000002
> +                    0x0000000d
> +                    0x00000008
> +                    0x00000008
> +                    0x00000005
> +                    0x00000005
> +                    0x00000004
> +                    0x00000008
> +                    0x00000004
> +                    0x00000004
> +                    0x00000009
> +                    0x48037171
> +                    0x000000a0
> +                    0x00000000
> +                    0x9160a00d
> +                    0x00003bbf
> +                    0x002c00a0
> +                    0x00008000
> +                    0x000000be
> +                    0x0fff0fff
> +                    0x0fff0fff
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x080b0000
> +                    0x00120010
> +                    0x00120011
> +                    0x00280027
> +                    0x0025002a
> +                    0x002a002a
> +                    0x00260026
> +                    0x00000000
> +                    0x00000000
> +                    0x00280027
> +                    0x0025002a
> +                    0x002a002a
> +                    0x00260026
> +                    0x00000000
> +                    0x00000000
> +                    0x00100010
> +                    0x00120012
> +                    0x00110011
> +                    0x00120012
> +                    0x00000010
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x8020221f
> +                    0x0220f40f
> +                    0x00000012
> +                    0x00064000
> +                    0x00090029
> +                    0x00290015
> +                    0x000b000a
> +                    0xc1e00302
> +                    0x1f13412f
> +                    0x00010014
> +                    0x00000804
> +                    0x00000550
> +                    0xf3200000
> +                    0x0fff0fff
> +                    0x0000023a
> +                    0x00000009
> +                    0x00000000
> +                    0x00000000
> +                    0x00000012
> +                    0x00000012
> +                    0x00020000
> +                    0x00050037
> +                    0x00000000
> +                    0x00000010
> +                    0x00003000
> +                    0x0a000000
> +                    0x02000111
> +                    0x00000008
> +                    0x00030808
> +                    0x00015c00
> +                    0x00100404
> +                    0x00001600
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000034
> +                    0x00000040
> +                    0x10000000
> +                    0x08000000
> +                    0x10000000
> +                    0x08000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000020
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0xefffefff
> +                    0xc0c0c0c0
> +                    0xc0c0c0c0
> +                    0xdcdcdcdc
> +                    0x0a0a0a0a
> +                    0x0a0a0a0a
> +                    0x0a0a0a0a
> +                    0x0118600b
> +                    0x00000001
> +                    0x00000000
> +                    0x00000013
> +                    0x00000009
> +                    0x00000015
> +                    0x08161414
> +                    0x00000011
> +                    0x00010001
> +                    0x0000b080
> +                    0x07070404
> +                    0x00040014
> +                    0x0513801f
> +                    0x1f101100
> +                    0x00000014
> +                    0x00107240
> +                    0x01124000
> +                    0x01125b6a
> +                    0x0f081000
> +                    0x00105800
> +                    0x1110fc00
> +                    0x0f081300
> +                    0x00105800
> +                    0x1114fc00
> +                    0x07000300
> +                    0x00107240
> +                    0x55553c5a
> +                    0x48161414
> +                >;
> +                nvidia,emc-trim-regs = <
> +                    0x00280028
> +                    0x00280028
> +                    0x00280028
> +                    0x00280028
> +                    0x00280028
> +                    0x00280028
> +                    0x00280028
> +                    0x00280028
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x11111111
> +                    0x11111111
> +                    0x28282828
> +                    0x28282828
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00120010
> +                    0x00120011
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                >;
> +                nvidia,emc-trim-regs-per-ch = <
> +                    0x00000000
> +                    0x00000000
> +                    0x00249249
> +                    0x00249249
> +                    0x00249249
> +                    0x00249249
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                >;
> +                nvidia,emc-vref-regs = <
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                >;
> +                nvidia,emc-dram-timing-regs = <
> +                    0x00000049
> +                    0x00000104
> +                    0x000000b4
> +                    0x0000007a
> +                    0x00000006
> +                >;
> +                nvidia,emc-training-mod-regs = <
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                >;
> +                nvidia,emc-save-restore-mod-regs = <
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                    0x00000000
> +                >;
> +                nvidia,emc-burst-mc-regs = <
> +                    0x40020001
> +                    0x80000013
> +                    0x000a1020
> +                    0x80001028
> +                    0x00000001
> +                    0x00000000
> +                    0x00000002
> +                    0x00000000
> +                    0x00000001
> +                    0x00000001
> +                    0x00000002
> +                    0x00000005
> +                    0x00000002
> +                    0x00000001
> +                    0x00000004
> +                    0x00000008
> +                    0x00000005
> +                    0x00000000
> +                    0x02020001
> +                    0x00030201
> +                    0x72c30303
> +                    0x70000f0f
> +                    0x00000000
> +                    0x001f0000
> +                    0x0080001a
> +                    0x0080001a
> +                    0x0080001a
> +                    0x0080001a
> +                    0x0080001a
> +                    0x0080001a
> +                    0x0080001a
> +                    0x0080001a
> +                    0x0080001a
> +                >;
> +                nvidia,emc-la-scale-regs = <
> +                    0x00000006
> +                    0x0080001a
> +                    0x00000076
> +                    0x00ff00ff
> +                    0x00ff00ff
> +                    0x00ff00ff
> +                    0x00ff00ff
> +                    0x00ff003d
> +                    0x00ff00ff
> +                    0x00ff003d
> +                    0x00ff0049
> +                    0x00ff0080
> +                    0x00ff0004
> +                    0x000800ff
> +                    0x000000ff
> +                    0x00ff0004
> +                    0x00ff00ff
> +                    0x00ff00ff
> +                    0x00ff00ff
> +                    0x00ff00ff
> +                    0x00ff00ff
> +                    0x000000ff
> +                    0x000000ff
> +                    0x00ff00ff
> +                    >;
> +            };
> +        };
> +    };
> diff --git a/Documentation/devicetree/bindings/memory-controllers/nvidia,tegra210-emc.yaml b/Documentation/devicetree/bindings/memory-controllers/nvidia,tegra210-emc.yaml
> index bc8477e7ab193b7880bb681037985f3fccebf02f..78e3417d273a329b77bf2f61de41b29017be56d3 100644
> --- a/Documentation/devicetree/bindings/memory-controllers/nvidia,tegra210-emc.yaml
> +++ b/Documentation/devicetree/bindings/memory-controllers/nvidia,tegra210-emc.yaml
> @@ -44,6 +44,44 @@ properties:
>      description:
>        phandle of the memory controller node
>  
> +  nvidia,use-ram-code:
> +    description:
> +      If set, timings are split per ram code and expected to be in
> +      subnodes per ram-code
> +
> +  "#address-cells":
> +    const: 1
> +
> +  "#size-cells":
> +    const: 0
> +
> +patternProperties:
> +  "^emc-table@[0-9]+$":
> +    type: object
> +    additionalProperties: true
> +    properties:
> +      reg:
> +        maxItems: 1
> +        description:
> +          Ram code for this timing set
> +
> +      nvidia,ram-code:
> +        $ref: /schemas/types.yaml#/definitions/uint32
> +        description:
> +          value of the RAM_CODE field in the PMC_STRAPPING_OPT_A register that
> +          this timing set is used for
> +
> +      "#address-cells":
> +        const: 1
> +
> +      "#size-cells":
> +        const: 0
> +
> +    required:
> +      - reg
> +      - nvidia,ram-code
> +
> +
>  required:
>    - compatible
>    - reg
> 
> -- 
> 2.48.1
>
Aaron Kling May 9, 2025, 5:07 p.m. UTC | #3
On Fri, May 9, 2025 at 8:42 AM Rob Herring <robh@kernel.org> wrote:
>
> On Thu, May 08, 2025 at 01:07:38AM -0500, Aaron Kling wrote:
> > Add device tree bindings for Tegra210 EMC tables as used by the Nvidia
> > Android bootloader.
> >
> > Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
> > ---
> >  .../nvidia,tegra21-emc-table.yaml                  | 1692 ++++++++++++++++++++
> >  .../memory-controllers/nvidia,tegra210-emc.yaml    |   38 +
> >  2 files changed, 1730 insertions(+)
> >
> > diff --git a/Documentation/devicetree/bindings/memory-controllers/nvidia,tegra21-emc-table.yaml b/Documentation/devicetree/bindings/memory-controllers/nvidia,tegra21-emc-table.yaml
> > new file mode 100644
> > index 0000000000000000000000000000000000000000..df371c835b95ad75deb74ad1d8711ed40a9b2361
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/memory-controllers/nvidia,tegra21-emc-table.yaml
> > @@ -0,0 +1,1692 @@
> > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/memory-controllers/nvidia,tegra21-emc-table.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: NVIDIA Tegra210 SoC EMC Table
> > +
> > +maintainers:
> > +  - Thierry Reding <thierry.reding@gmail.com>
> > +  - Jon Hunter <jonathanh@nvidia.com>
> > +
> > +description: |
>
> Don't need '|' if no formatting to preserve.
>
> > +  EMC training data used by the emc driver to do periodic training
> > +
> > +properties:
> > +  compatible:
> > +    items:
> > +      - enum:
> > +          - nvidia,tegra21-emc-table
> > +          - nvidia,tegra21-emc-table-derated
> > +
> > +  reg:
> > +    maxItems: 1
> > +    description:
> > +      Clock rate for this table
>
> ?? Drop
>
> > +
> > +  clock-frequency:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
>
> Already has a type defined. Drop.
>
> > +    description:
> > +      external memory clock rate in KHz
> > +    minimum: 40800
> > +    maximum: 1600000
> > +
> > +  nvidia,revision:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      The revision of this table
> > +
> > +  nvidia,dvfs-version:
> > +    $ref: /schemas/types.yaml#/definitions/string
> > +    description:
> > +      The dvfs version of this table
>
> Constraints on the string?
>
> > +
> > +  nvidia,emc-min-mv:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      The minimum emc voltage allowed for this table
>
> Use standard unit suffixes.
>
> > +
> > +  nvidia,gk20a-min-mv:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      The minimum gpu voltage allowed for this table
> > +
> > +  nvidia,source:
> > +    $ref: /schemas/types.yaml#/definitions/string
> > +    description:
> > +      The clock source for this table
> > +
> > +  nvidia,src-sel-reg:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Value of the source selection register
> > +
> > +  nvidia,needs-training:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      If this table needs training
>
> Sounds like a boolean?
>
> > +
> > +  nvidia,training_pattern:
>
> Don't use '_' in names.
>
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Which training pattern to use for this table
> > +
> > +  nvidia,trained:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      If this table has been trained
>
> Isn't that just !nvidia,needs-training?
>
> > +
> > +  nvidia,periodic_training:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      If this table should be periodically trained
> > +
> > +  nvidia,trained_dram_clktree_c0d0u0:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Trained value of c0d0u0 in the dram clock tree
> > +
> > +  nvidia,trained_dram_clktree_c0d0u1:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Trained value of c0d0u1 in the dram clock tree
> > +
> > +  nvidia,trained_dram_clktree_c0d1u0:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Trained value of c0d1u0 in the dram clock tree
> > +
> > +  nvidia,trained_dram_clktree_c0d1u1:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Trained value of c0d1u1 in the dram clock tree
> > +
> > +  nvidia,trained_dram_clktree_c1d0u0:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Trained value of c1d0u0 in the dram clock tree
> > +
> > +  nvidia,trained_dram_clktree_c1d0u1:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Trained value of c1d0u1 in the dram clock tree
> > +
> > +  nvidia,trained_dram_clktree_c1d1u0:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Trained value of c1d1u0 in the dram clock tree
> > +
> > +  nvidia,trained_dram_clktree_c1d1u1:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Trained value of c1d1u1 in the dram clock tree
> > +
> > +  nvidia,current_dram_clktree_c0d0u0:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Current value of c0d0u0 in the dram clock tree
> > +
> > +  nvidia,current_dram_clktree_c0d0u1:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Current value of c0d0u1 in the dram clock tree
> > +
> > +  nvidia,current_dram_clktree_c0d1u0:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Current value of c0d1u0 in the dram clock tree
> > +
> > +  nvidia,current_dram_clktree_c0d1u1:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Current value of c0d1u1 in the dram clock tree
> > +
> > +  nvidia,current_dram_clktree_c1d0u0:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Current value of c1d0u0 in the dram clock tree
> > +
> > +  nvidia,current_dram_clktree_c1d0u1:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Current value of c1d0u1 in the dram clock tree
> > +
> > +  nvidia,current_dram_clktree_c1d1u0:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Current value of c1d1u0 in the dram clock tree
> > +
> > +  nvidia,current_dram_clktree_c1d1u1:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Current value of c1d1u1 in the dram clock tree
>
> Could all of these just be an array?
>
> > +
> > +  nvidia,run_clocks:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Clocks to run
> > +
> > +  nvidia,tree_margin:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Tree margin
> > +
> > +  nvidia,burst-regs-num:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Number of burst registers
> > +
> > +  nvidia,burst-regs-per-ch-num:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Number of burst registers per channel
> > +
> > +  nvidia,trim-regs-num:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Number of trim registers
> > +
> > +  nvidia,trim-regs-per-ch-num:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Number of trim registers per channel
> > +
> > +  nvidia,burst-mc-regs-num:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Number of burst mc registers
> > +
> > +  nvidia,la-scale-regs-num:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Number of la scale registers
> > +
> > +  nvidia,vref-regs-num:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Number of voltage reference registers
> > +
> > +  nvidia,training-mod-regs-num:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Number of training mod registers
> > +
> > +  nvidia,dram-timing-regs-num:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Number of dram timing registers
> > +
> > +  nvidia,min-mrs-wait:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Value of the MIN_MRS_WAIT register
> > +
> > +  nvidia,emc-mrw:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Value of the EMC_MRW register
> > +
> > +  nvidia,emc-mrw2:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Value of the EMC_MRW2 register
> > +
> > +  nvidia,emc-mrw3:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Value of the EMC_MRW3 register
> > +
> > +  nvidia,emc-mrw4:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Value of the EMC_MRW4 register
> > +
> > +  nvidia,emc-mrw9:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Value of the EMC_MRW9 register
> > +
> > +  nvidia,emc-mrs:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Value of the EMC_MRS register
> > +
> > +  nvidia,emc-emrs:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Value of the EMC_EMRS register
> > +
> > +  nvidia,emc-emrs2:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Value of the EMC_EMRS2 register
> > +
> > +  nvidia,emc-auto-cal-config:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Value of the EMC_AUTO_CAL_CONFIG register
> > +
> > +  nvidia,emc-auto-cal-config2:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Value of the EMC_AUTO_CAL_CONFIG2 register
> > +
> > +  nvidia,emc-auto-cal-config3:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Value of the EMC_AUTO_CAL_CONFIG3 register
> > +
> > +  nvidia,emc-auto-cal-config4:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Value of the EMC_AUTO_CAL_CONFIG4 register
> > +
> > +  nvidia,emc-auto-cal-config5:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Value of the EMC_AUTO_CAL_CONFIG5 register
> > +
> > +  nvidia,emc-auto-cal-config6:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Value of the EMC_AUTO_CAL_CONFIG6 register
> > +
> > +  nvidia,emc-auto-cal-config7:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Value of the EMC_AUTO_CAL_CONFIG7 register
> > +
> > +  nvidia,emc-auto-cal-config8:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Value of the EMC_AUTO_CAL_CONFIG8 register
> > +
> > +  nvidia,emc-cfg-2:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Value of the EMC_CFG_2 register
> > +
> > +  nvidia,emc-sel-dpd-ctrl:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Value of the EMC_SEL_DPD_CTRL register
> > +
> > +  nvidia,emc-fdpd-ctrl-cmd-no-ramp:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Value of the EMC_FDPD_SEL_DPD_CTRL_NO_RAMP register
> > +
> > +  nvidia,dll-clk-src:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      VALUE of the DLL_CLK_SRC register
> > +
> > +  nvidia,clk-out-enb-x-0-clk-enb-emc-dll:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      If the dll clock should be enabled for this table
> > +
> > +  nvidia,emc-clock-latency-change:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Clock latency change
> > +
> > +  nvidia,ptfv:
> > +    $ref: /schemas/types.yaml#/definitions/uint32-array
> > +    description:
> > +      Ptfv list values
> > +
> > +  nvidia,emc-registers:
> > +    $ref: /schemas/types.yaml#/definitions/uint32-array
> > +    description:
> > +      Burst register values, size is determined by
> > +      nvidia,burst-regs-num
> > +
> > +  nvidia,emc-burst-regs-per-ch:
> > +    $ref: /schemas/types.yaml#/definitions/uint32-array
> > +    description:
> > +      Per channel EMC burst register values, size is determined by
> > +      nvidia,burst-regs-per-ch-num
> > +
> > +  nvidia,emc-shadow-regs-ca-train:
> > +    $ref: /schemas/types.yaml#/definitions/uint32-array
> > +    description:
> > +      Shadow registers ca train, size is determined by
> > +      nvidia,burst-regs-num
> > +
> > +  nvidia,emc-shadow-regs-quse-train:
> > +    $ref: /schemas/types.yaml#/definitions/uint32-array
> > +    description:
> > +      Shadow registers quse train, size is determined by
> > +      nvidia,burst-regs-num
> > +
> > +  nvidia,emc-shadow-regs-rdwr-train:
> > +    $ref: /schemas/types.yaml#/definitions/uint32-array
> > +    description:
> > +      Shadow registers rdwr train, size is determined by
> > +      nvidia,burst-regs-num
> > +
> > +  nvidia,emc-trim-regs:
> > +    $ref: /schemas/types.yaml#/definitions/uint32-array
> > +    description:
> > +      Trim register values, size is determined by
> > +      nvidia,trim-regs-num
> > +
> > +  nvidia,emc-trim-regs-per-ch:
> > +    $ref: /schemas/types.yaml#/definitions/uint32-array
> > +    description:
> > +      Per channel trim register values, size is determined by
> > +      nvidia,trim-regs-per-channel-num
> > +
> > +  nvidia,emc-vref-regs:
> > +    $ref: /schemas/types.yaml#/definitions/uint32-array
> > +    description:
> > +      Voltage reference register values, size is determined by
> > +      nvidia,vref-regs-num
> > +
> > +  nvidia,emc-dram-timing-regs:
> > +    $ref: /schemas/types.yaml#/definitions/uint32-array
> > +    description:
> > +      Dram timing register values, size is determined by
> > +      nvidia,dram-timing-regs-num
> > +
> > +  nvidia,emc-training-mod-regs:
> > +    $ref: /schemas/types.yaml#/definitions/uint32-array
> > +    description:
> > +      Training mod register values, size is determined by
> > +      nvidia,training-mod-regs-num
> > +
> > +  nvidia,emc-save-restore-mod-regs:
> > +    $ref: /schemas/types.yaml#/definitions/uint32-array
> > +    description:
> > +      Save restore mod register values
> > +
> > +  nvidia,emc-burst-mc-regs:
> > +    $ref: /schemas/types.yaml#/definitions/uint32-array
> > +    description:
> > +      Burst mc register values, size is determined by
> > +      nvidia,burst-mc-regs-num
> > +
> > +  nvidia,emc-la-scale-regs:
> > +    $ref: /schemas/types.yaml#/definitions/uint32-array
> > +    description:
> > +      La scale register values, size is determined by
> > +      nvidia,burst-mc-regs-num
>
> That's a ton of properties... And somehow completely different than
> other Tegra stuff.
>
> > +
> > +required:
> > +  - compatible
> > +  - clock-frequency
>
> Seems like a few more should be required. Or there's some dependencies
> between properties?
>
>
> > +
> > +additionalProperties: false
> > +
> > +examples:
> > +  - |
> > +    #include <dt-bindings/clock/tegra210-car.h>
> > +    #include <dt-bindings/interrupt-controller/arm-gic.h>
> > +
> > +    external-memory-controller@7001b000 {
>
> This node needs a compatible.
>
> > +        reg = <0x7001b000 0x1000>,
> > +              <0x7001e000 0x1000>,
> > +              <0x7001f000 0x1000>;
> > +        clocks = <&tegra_car TEGRA210_CLK_EMC>;
> > +        clock-names = "emc";
> > +        interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
> > +        nvidia,memory-controller = <&mc>;
> > +        nvidia,use-ram-code;
> > +
> > +        #address-cells = <1>;
> > +        #size-cells = <0>;
> > +
> > +        emc-table@0 {
> > +            reg = <0>;
> > +            nvidia,ram-code = <0x0>;
> > +
> > +            #address-cells = <1>;
> > +            #size-cells = <0>;
> > +
> > +            emc-table@40800 {
> > +                reg = <40800>;
> > +                compatible = "nvidia,tegra21-emc-table";
> > +                nvidia,revision = <0x07>;
> > +                nvidia,dvfs-version = "04_40800_03_V9.8.7_V1.6";
> > +                clock-frequency = <40800>;
> > +                nvidia,emc-min-mv = <800>;
> > +                nvidia,gk20a-min-mv = <1100>;
> > +                nvidia,source = "pllp_out0";
> > +                nvidia,src-sel-reg = <0x40188012>;
> > +                nvidia,needs-training = <0x00000000>;
> > +                nvidia,training_pattern = <0x00000000>;
> > +                nvidia,trained = <0x00000000>;
> > +                nvidia,periodic_training = <0x00000000>;
> > +                nvidia,trained_dram_clktree_c0d0u0 = <0x00000000>;
> > +                nvidia,trained_dram_clktree_c0d0u1 = <0x00000000>;
> > +                nvidia,trained_dram_clktree_c0d1u0 = <0x00000000>;
> > +                nvidia,trained_dram_clktree_c0d1u1 = <0x00000000>;
> > +                nvidia,trained_dram_clktree_c1d0u0 = <0x00000000>;
> > +                nvidia,trained_dram_clktree_c1d0u1 = <0x00000000>;
> > +                nvidia,trained_dram_clktree_c1d1u0 = <0x00000000>;
> > +                nvidia,trained_dram_clktree_c1d1u1 = <0x00000000>;
> > +                nvidia,current_dram_clktree_c0d0u0 = <0x00000000>;
> > +                nvidia,current_dram_clktree_c0d0u1 = <0x00000000>;
> > +                nvidia,current_dram_clktree_c0d1u0 = <0x00000000>;
> > +                nvidia,current_dram_clktree_c0d1u1 = <0x00000000>;
> > +                nvidia,current_dram_clktree_c1d0u0 = <0x00000000>;
> > +                nvidia,current_dram_clktree_c1d0u1 = <0x00000000>;
> > +                nvidia,current_dram_clktree_c1d1u0 = <0x00000000>;
> > +                nvidia,current_dram_clktree_c1d1u1 = <0x00000000>;
> > +                nvidia,run_clocks = <0x00000003>;
> > +                nvidia,tree_margin = <0x00000001>;
> > +                nvidia,burst-regs-num = <221>;
> > +                nvidia,burst-regs-per-ch-num = <8>;
> > +                nvidia,trim-regs-num = <138>;
> > +                nvidia,trim-regs-per-ch-num = <10>;
> > +                nvidia,burst-mc-regs-num = <33>;
> > +                nvidia,la-scale-regs-num = <24>;
> > +                nvidia,vref-regs-num = <4>;
> > +                nvidia,training-mod-regs-num = <20>;
> > +                nvidia,dram-timing-regs-num = <5>;
> > +                nvidia,min-mrs-wait = <0x00000015>;
> > +                nvidia,emc-mrw = <0x08010004>;
> > +                nvidia,emc-mrw2 = <0x08020000>;
> > +                nvidia,emc-mrw3 = <0x080d0000>;
> > +                nvidia,emc-mrw4 = <0xc0000000>;
> > +                nvidia,emc-mrw9 = <0x0c0e7272>;
> > +                nvidia,emc-mrs = <0x00000000>;
> > +                nvidia,emc-emrs = <0x00000000>;
> > +                nvidia,emc-emrs2 = <0x00000000>;
> > +                nvidia,emc-auto-cal-config = <0xa01a51d8>;
> > +                nvidia,emc-auto-cal-config2 = <0x05500000>;
> > +                nvidia,emc-auto-cal-config3 = <0x00770000>;
> > +                nvidia,emc-auto-cal-config4 = <0x00770000>;
> > +                nvidia,emc-auto-cal-config5 = <0x00770000>;
> > +                nvidia,emc-auto-cal-config6 = <0x00770000>;
> > +                nvidia,emc-auto-cal-config7 = <0x00770000>;
> > +                nvidia,emc-auto-cal-config8 = <0x00770000>;
> > +                nvidia,emc-cfg-2 = <0x00110805>;
> > +                nvidia,emc-sel-dpd-ctrl = <0x00040008>;
> > +                nvidia,emc-fdpd-ctrl-cmd-no-ramp = <0x00000001>;
> > +                nvidia,dll-clk-src = <0x40188012>;
> > +                nvidia,clk-out-enb-x-0-clk-enb-emc-dll = <0x00000001>;
> > +                nvidia,emc-clock-latency-change = <0x00005172>;
> > +                nvidia,ptfv = <
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x0000000a
> > +                    0x0000000a
> > +                    0x0000000a
> > +                    0x00000001
> > +                >;
> > +                nvidia,emc-registers = <
> > +                    0x0000000c
> > +                    0x00000008
> > +                    0x00000004
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000008
> > +                    0x00000004
> > +                    0x0000000a
> > +                    0x0000000d
> > +                    0x00000008
> > +                    0x0000000b
> > +                    0x00000000
> > +                    0x00000004
> > +                    0x00000020
> > +                    0x00000006
> > +                    0x00000006
> > +                    0x00000006
> > +                    0x00000003
> > +                    0x00000000
> > +                    0x00000006
> > +                    0x00000004
> > +                    0x00000002
> > +                    0x00000000
> > +                    0x00000004
> > +                    0x00000008
> > +                    0x0000000d
> > +                    0x00000005
> > +                    0x00000005
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000004
> > +                    0x08037171
> > +                    0x0000000a
> > +                    0x00000000
> > +                    0x0000000a
> > +                    0x00010001
> > +                    0x00000011
> > +                    0x00000013
> > +                    0x00000015
> > +                    0x00000011
> > +                    0x00000013
> > +                    0x0000009a
> > +                    0x00000000
> > +                    0x00000026
> > +                    0x00000008
> > +                    0x00000008
> > +                    0x00000003
> > +                    0x00000003
> > +                    0x00000003
> > +                    0x00000014
> > +                    0x00000005
> > +                    0x00000002
> > +                    0x0000000d
> > +                    0x00000008
> > +                    0x00000008
> > +                    0x00000005
> > +                    0x00000005
> > +                    0x00000004
> > +                    0x00000008
> > +                    0x00000004
> > +                    0x00000004
> > +                    0x00000009
> > +                    0x48037171
> > +                    0x000000a0
> > +                    0x00000000
> > +                    0x9160a00d
> > +                    0x00003bbf
> > +                    0x002c00a0
> > +                    0x00008000
> > +                    0x000000be
> > +                    0x0fff0fff
> > +                    0x0fff0fff
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x080b0000
> > +                    0x00120010
> > +                    0x00120011
> > +                    0x00280027
> > +                    0x0025002a
> > +                    0x002a002a
> > +                    0x00260026
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00280027
> > +                    0x0025002a
> > +                    0x002a002a
> > +                    0x00260026
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00100010
> > +                    0x00120012
> > +                    0x00110011
> > +                    0x00120012
> > +                    0x00000010
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x8020221f
> > +                    0x0220f40f
> > +                    0x00000012
> > +                    0x00064000
> > +                    0x00090029
> > +                    0x00290015
> > +                    0x000b000a
> > +                    0xc1e00302
> > +                    0x1f13412f
> > +                    0x00010014
> > +                    0x00000804
> > +                    0x00000550
> > +                    0xf3200000
> > +                    0x0fff0fff
> > +                    0x0000023a
> > +                    0x00000009
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000012
> > +                    0x00000012
> > +                    0x00020000
> > +                    0x00050037
> > +                    0x00000000
> > +                    0x00000010
> > +                    0x00003000
> > +                    0x0a000000
> > +                    0x02000111
> > +                    0x00000008
> > +                    0x00030808
> > +                    0x00015c00
> > +                    0x00100404
> > +                    0x00001600
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000034
> > +                    0x00000040
> > +                    0x10000000
> > +                    0x08000000
> > +                    0x10000000
> > +                    0x08000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000020
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0xefffefff
> > +                    0xc0c0c0c0
> > +                    0xc0c0c0c0
> > +                    0xdcdcdcdc
> > +                    0x0a0a0a0a
> > +                    0x0a0a0a0a
> > +                    0x0a0a0a0a
> > +                    0x0118600b
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000013
> > +                    0x00000009
> > +                    0x00000015
> > +                    0x08161414
> > +                    0x00000011
> > +                    0x00010001
> > +                    0x00009080
> > +                    0x07070404
> > +                    0x00040014
> > +                    0x0513801f
> > +                    0x1f101100
> > +                    0x00000014
> > +                    0x00107240
> > +                    0x01124000
> > +                    0x01125b6a
> > +                    0x0f081000
> > +                    0x00105800
> > +                    0x1110fc00
> > +                    0x0f081300
> > +                    0x00105800
> > +                    0x1114fc00
> > +                    0x07000300
> > +                    0x00107240
> > +                    0x55553c5a
> > +                    0x48161414
> > +                >;
> > +                nvidia,emc-burst-regs-per-ch = <
> > +                    0x880c7272
> > +                    0x880c7272
> > +                    0x480c7272
> > +                    0x480c7272
> > +                    0x8c0e7272
> > +                    0x8c0e7272
> > +                    0x4c0e7272
> > +                    0x4c0e7272
> > +                >;
> > +                nvidia,emc-shadow-regs-ca-train = <
> > +                    0x0000000c
> > +                    0x00000008
> > +                    0x00000004
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000008
> > +                    0x00000004
> > +                    0x0000000a
> > +                    0x0000000d
> > +                    0x00000008
> > +                    0x0000000b
> > +                    0x00000000
> > +                    0x00000004
> > +                    0x00000020
> > +                    0x00000006
> > +                    0x00000006
> > +                    0x00000006
> > +                    0x00000003
> > +                    0x00000000
> > +                    0x00000006
> > +                    0x00000004
> > +                    0x00000002
> > +                    0x00000000
> > +                    0x00000004
> > +                    0x00000008
> > +                    0x0000000d
> > +                    0x00000005
> > +                    0x00000005
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000004
> > +                    0x08037171
> > +                    0x0000000a
> > +                    0x00000000
> > +                    0x0000000a
> > +                    0x00010001
> > +                    0x00000011
> > +                    0x00000013
> > +                    0x00000015
> > +                    0x00000011
> > +                    0x00000013
> > +                    0x0000009a
> > +                    0x00000000
> > +                    0x00000026
> > +                    0x00000008
> > +                    0x00000008
> > +                    0x00000003
> > +                    0x00000003
> > +                    0x00000003
> > +                    0x00000014
> > +                    0x00000005
> > +                    0x00000002
> > +                    0x0000000d
> > +                    0x00000008
> > +                    0x00000008
> > +                    0x00000005
> > +                    0x00000005
> > +                    0x00000004
> > +                    0x00000008
> > +                    0x00000004
> > +                    0x00000004
> > +                    0x00000009
> > +                    0x48037171
> > +                    0x000000a0
> > +                    0x00000000
> > +                    0x9960a00d
> > +                    0x00003bbf
> > +                    0x002c00a0
> > +                    0x00008000
> > +                    0x00000055
> > +                    0x0fff0fff
> > +                    0x0fff0fff
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x080b0000
> > +                    0x00120010
> > +                    0x00120011
> > +                    0x00280027
> > +                    0x0025002a
> > +                    0x002a002a
> > +                    0x00260026
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00280027
> > +                    0x0025002a
> > +                    0x002a002a
> > +                    0x00260026
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00100010
> > +                    0x00120012
> > +                    0x00110011
> > +                    0x00120012
> > +                    0x00000010
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x8020221f
> > +                    0x0220f40f
> > +                    0x00000012
> > +                    0x00064000
> > +                    0x00090029
> > +                    0x00290015
> > +                    0x000b000a
> > +                    0xc1e00302
> > +                    0x1f13412f
> > +                    0x00010014
> > +                    0x00000804
> > +                    0x00000550
> > +                    0xf3200000
> > +                    0x0fff0fff
> > +                    0x0000023a
> > +                    0x00000009
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000012
> > +                    0x00000012
> > +                    0x00020000
> > +                    0x05058033
> > +                    0x05050000
> > +                    0x00000000
> > +                    0x00003000
> > +                    0x0a000000
> > +                    0x02000111
> > +                    0x00000008
> > +                    0x00030808
> > +                    0x00015c00
> > +                    0x00100404
> > +                    0x00001600
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000034
> > +                    0x00000040
> > +                    0x10000000
> > +                    0x08000000
> > +                    0x10000000
> > +                    0x08000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000020
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0xefffefff
> > +                    0xc0c0c0c0
> > +                    0xc0c0c0c0
> > +                    0xdcdcdcdc
> > +                    0x0a0a0a0a
> > +                    0x0a0a0a0a
> > +                    0x0a0a0a0a
> > +                    0x0118600b
> > +                    0x00000001
> > +                    0x0000001f
> > +                    0x00000013
> > +                    0x00000003
> > +                    0x00000015
> > +                    0x08161414
> > +                    0x0000000b
> > +                    0x00010001
> > +                    0x00019080
> > +                    0x07070404
> > +                    0x00040014
> > +                    0x0513801f
> > +                    0x1f101100
> > +                    0x00000014
> > +                    0x00107240
> > +                    0x01124000
> > +                    0x01125b6a
> > +                    0x0f081000
> > +                    0x00105800
> > +                    0x1110fc00
> > +                    0x0f081300
> > +                    0x00105800
> > +                    0x1114fc00
> > +                    0x07000300
> > +                    0x00107240
> > +                    0x55553c5a
> > +                    0x48161414
> > +                >;
> > +                nvidia,emc-shadow-regs-quse-train = <
> > +                    0x0000000c
> > +                    0x00000008
> > +                    0x00000004
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000008
> > +                    0x00000004
> > +                    0x00000009
> > +                    0x0000000d
> > +                    0x00000008
> > +                    0x0000000b
> > +                    0x00000000
> > +                    0x00000004
> > +                    0x00000020
> > +                    0x00000006
> > +                    0x00000006
> > +                    0x00000006
> > +                    0x00000003
> > +                    0x00000000
> > +                    0x00000006
> > +                    0x00000004
> > +                    0x00000002
> > +                    0x00000000
> > +                    0x00000004
> > +                    0x00000008
> > +                    0x0000000d
> > +                    0x00000002
> > +                    0x00000002
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000005
> > +                    0x08037171
> > +                    0x00000008
> > +                    0x00000001
> > +                    0x80000000
> > +                    0x00010002
> > +                    0x00000011
> > +                    0x00000013
> > +                    0x00000015
> > +                    0x00000011
> > +                    0x00000013
> > +                    0x0000009a
> > +                    0x00000000
> > +                    0x00000026
> > +                    0x00000008
> > +                    0x00000008
> > +                    0x00000003
> > +                    0x00000003
> > +                    0x00000003
> > +                    0x00000014
> > +                    0x00000005
> > +                    0x00000002
> > +                    0x0000000d
> > +                    0x00000008
> > +                    0x00000008
> > +                    0x00000005
> > +                    0x00000005
> > +                    0x00000004
> > +                    0x00000008
> > +                    0x00000004
> > +                    0x00000004
> > +                    0x00000009
> > +                    0x48037171
> > +                    0x000000a0
> > +                    0x00000000
> > +                    0x9160400d
> > +                    0x00003bbf
> > +                    0x002c00a0
> > +                    0x00008000
> > +                    0x000000be
> > +                    0x0fff0fff
> > +                    0x0fff0fff
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x080b0000
> > +                    0x00120010
> > +                    0x00120011
> > +                    0x00280027
> > +                    0x0025002a
> > +                    0x002a002a
> > +                    0x00260026
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00280027
> > +                    0x0025002a
> > +                    0x002a002a
> > +                    0x00260026
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00100010
> > +                    0x00120012
> > +                    0x00110011
> > +                    0x00120012
> > +                    0x00000010
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x8020221f
> > +                    0x0220f40f
> > +                    0x00000012
> > +                    0x00064000
> > +                    0x00090029
> > +                    0x00290015
> > +                    0x000b000a
> > +                    0xc1e00302
> > +                    0x1f13412f
> > +                    0x00010014
> > +                    0x00000804
> > +                    0x00000550
> > +                    0xf3200000
> > +                    0x0fff0fff
> > +                    0x0000023a
> > +                    0x00000009
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000012
> > +                    0x00000012
> > +                    0x30020000
> > +                    0x00058037
> > +                    0x00000000
> > +                    0x00000010
> > +                    0x00003000
> > +                    0x0a000000
> > +                    0x02000111
> > +                    0x00000008
> > +                    0x00030808
> > +                    0x00015c00
> > +                    0x00100404
> > +                    0x00001600
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000034
> > +                    0x00000040
> > +                    0x10000000
> > +                    0x08000000
> > +                    0x10000000
> > +                    0x08000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000020
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0xefffefff
> > +                    0xc0c0c0c0
> > +                    0xc0c0c0c0
> > +                    0xdcdcdcdc
> > +                    0x0a0a0a0a
> > +                    0x0a0a0a0a
> > +                    0x0a0a0a0a
> > +                    0x0118600b
> > +                    0x00000001
> > +                    0x0000001f
> > +                    0x0000001d
> > +                    0x00000013
> > +                    0x0000001f
> > +                    0x08161414
> > +                    0x0000001b
> > +                    0x00010002
> > +                    0x00009080
> > +                    0x07070404
> > +                    0x00040014
> > +                    0x0513801f
> > +                    0x1f101100
> > +                    0x00000014
> > +                    0x00107240
> > +                    0x01124000
> > +                    0x01125b6a
> > +                    0x0f081000
> > +                    0x00105800
> > +                    0x1110fc00
> > +                    0x0f081300
> > +                    0x00105800
> > +                    0x1114fc00
> > +                    0x07000300
> > +                    0x00107240
> > +                    0x55553c5a
> > +                    0x48161414
> > +                >;
> > +                nvidia,emc-shadow-regs-rdwr-train = <
> > +                    0x0000000c
> > +                    0x00000008
> > +                    0x00000004
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000008
> > +                    0x00000004
> > +                    0x0000000d
> > +                    0x0000000d
> > +                    0x00000008
> > +                    0x0000000b
> > +                    0x00000000
> > +                    0x00000004
> > +                    0x00000020
> > +                    0x00000006
> > +                    0x00000006
> > +                    0x00000006
> > +                    0x00000003
> > +                    0x00000013
> > +                    0x00000006
> > +                    0x00000004
> > +                    0x00000002
> > +                    0x00000000
> > +                    0x00000004
> > +                    0x00000008
> > +                    0x0000000d
> > +                    0x00000005
> > +                    0x00000005
> > +                    0x00000000
> > +                    0x30000002
> > +                    0x00000004
> > +                    0x08037171
> > +                    0x0000000a
> > +                    0x00000000
> > +                    0x0000000a
> > +                    0x00010001
> > +                    0x00000011
> > +                    0x00000013
> > +                    0x00000015
> > +                    0x00000011
> > +                    0x00000013
> > +                    0x0000009a
> > +                    0x00000000
> > +                    0x00000026
> > +                    0x00000008
> > +                    0x00000008
> > +                    0x00000003
> > +                    0x00000003
> > +                    0x00000003
> > +                    0x00000014
> > +                    0x00000005
> > +                    0x00000002
> > +                    0x0000000d
> > +                    0x00000008
> > +                    0x00000008
> > +                    0x00000005
> > +                    0x00000005
> > +                    0x00000004
> > +                    0x00000008
> > +                    0x00000004
> > +                    0x00000004
> > +                    0x00000009
> > +                    0x48037171
> > +                    0x000000a0
> > +                    0x00000000
> > +                    0x9160a00d
> > +                    0x00003bbf
> > +                    0x002c00a0
> > +                    0x00008000
> > +                    0x000000be
> > +                    0x0fff0fff
> > +                    0x0fff0fff
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x080b0000
> > +                    0x00120010
> > +                    0x00120011
> > +                    0x00280027
> > +                    0x0025002a
> > +                    0x002a002a
> > +                    0x00260026
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00280027
> > +                    0x0025002a
> > +                    0x002a002a
> > +                    0x00260026
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00100010
> > +                    0x00120012
> > +                    0x00110011
> > +                    0x00120012
> > +                    0x00000010
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x8020221f
> > +                    0x0220f40f
> > +                    0x00000012
> > +                    0x00064000
> > +                    0x00090029
> > +                    0x00290015
> > +                    0x000b000a
> > +                    0xc1e00302
> > +                    0x1f13412f
> > +                    0x00010014
> > +                    0x00000804
> > +                    0x00000550
> > +                    0xf3200000
> > +                    0x0fff0fff
> > +                    0x0000023a
> > +                    0x00000009
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000012
> > +                    0x00000012
> > +                    0x00020000
> > +                    0x00050037
> > +                    0x00000000
> > +                    0x00000010
> > +                    0x00003000
> > +                    0x0a000000
> > +                    0x02000111
> > +                    0x00000008
> > +                    0x00030808
> > +                    0x00015c00
> > +                    0x00100404
> > +                    0x00001600
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000034
> > +                    0x00000040
> > +                    0x10000000
> > +                    0x08000000
> > +                    0x10000000
> > +                    0x08000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000020
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0xefffefff
> > +                    0xc0c0c0c0
> > +                    0xc0c0c0c0
> > +                    0xdcdcdcdc
> > +                    0x0a0a0a0a
> > +                    0x0a0a0a0a
> > +                    0x0a0a0a0a
> > +                    0x0118600b
> > +                    0x00000001
> > +                    0x00000000
> > +                    0x00000013
> > +                    0x00000009
> > +                    0x00000015
> > +                    0x08161414
> > +                    0x00000011
> > +                    0x00010001
> > +                    0x0000b080
> > +                    0x07070404
> > +                    0x00040014
> > +                    0x0513801f
> > +                    0x1f101100
> > +                    0x00000014
> > +                    0x00107240
> > +                    0x01124000
> > +                    0x01125b6a
> > +                    0x0f081000
> > +                    0x00105800
> > +                    0x1110fc00
> > +                    0x0f081300
> > +                    0x00105800
> > +                    0x1114fc00
> > +                    0x07000300
> > +                    0x00107240
> > +                    0x55553c5a
> > +                    0x48161414
> > +                >;
> > +                nvidia,emc-trim-regs = <
> > +                    0x00280028
> > +                    0x00280028
> > +                    0x00280028
> > +                    0x00280028
> > +                    0x00280028
> > +                    0x00280028
> > +                    0x00280028
> > +                    0x00280028
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x11111111
> > +                    0x11111111
> > +                    0x28282828
> > +                    0x28282828
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00120010
> > +                    0x00120011
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                >;
> > +                nvidia,emc-trim-regs-per-ch = <
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00249249
> > +                    0x00249249
> > +                    0x00249249
> > +                    0x00249249
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                >;
> > +                nvidia,emc-vref-regs = <
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                >;
> > +                nvidia,emc-dram-timing-regs = <
> > +                    0x00000049
> > +                    0x00000104
> > +                    0x000000b4
> > +                    0x0000007a
> > +                    0x00000006
> > +                >;
> > +                nvidia,emc-training-mod-regs = <
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                >;
> > +                nvidia,emc-save-restore-mod-regs = <
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                    0x00000000
> > +                >;
> > +                nvidia,emc-burst-mc-regs = <
> > +                    0x40020001
> > +                    0x80000013
> > +                    0x000a1020
> > +                    0x80001028
> > +                    0x00000001
> > +                    0x00000000
> > +                    0x00000002
> > +                    0x00000000
> > +                    0x00000001
> > +                    0x00000001
> > +                    0x00000002
> > +                    0x00000005
> > +                    0x00000002
> > +                    0x00000001
> > +                    0x00000004
> > +                    0x00000008
> > +                    0x00000005
> > +                    0x00000000
> > +                    0x02020001
> > +                    0x00030201
> > +                    0x72c30303
> > +                    0x70000f0f
> > +                    0x00000000
> > +                    0x001f0000
> > +                    0x0080001a
> > +                    0x0080001a
> > +                    0x0080001a
> > +                    0x0080001a
> > +                    0x0080001a
> > +                    0x0080001a
> > +                    0x0080001a
> > +                    0x0080001a
> > +                    0x0080001a
> > +                >;
> > +                nvidia,emc-la-scale-regs = <
> > +                    0x00000006
> > +                    0x0080001a
> > +                    0x00000076
> > +                    0x00ff00ff
> > +                    0x00ff00ff
> > +                    0x00ff00ff
> > +                    0x00ff00ff
> > +                    0x00ff003d
> > +                    0x00ff00ff
> > +                    0x00ff003d
> > +                    0x00ff0049
> > +                    0x00ff0080
> > +                    0x00ff0004
> > +                    0x000800ff
> > +                    0x000000ff
> > +                    0x00ff0004
> > +                    0x00ff00ff
> > +                    0x00ff00ff
> > +                    0x00ff00ff
> > +                    0x00ff00ff
> > +                    0x00ff00ff
> > +                    0x000000ff
> > +                    0x000000ff
> > +                    0x00ff00ff
> > +                    >;
> > +            };
> > +        };
> > +    };
> > diff --git a/Documentation/devicetree/bindings/memory-controllers/nvidia,tegra210-emc.yaml b/Documentation/devicetree/bindings/memory-controllers/nvidia,tegra210-emc.yaml
> > index bc8477e7ab193b7880bb681037985f3fccebf02f..78e3417d273a329b77bf2f61de41b29017be56d3 100644
> > --- a/Documentation/devicetree/bindings/memory-controllers/nvidia,tegra210-emc.yaml
> > +++ b/Documentation/devicetree/bindings/memory-controllers/nvidia,tegra210-emc.yaml
> > @@ -44,6 +44,44 @@ properties:
> >      description:
> >        phandle of the memory controller node
> >
> > +  nvidia,use-ram-code:
> > +    description:
> > +      If set, timings are split per ram code and expected to be in
> > +      subnodes per ram-code
> > +
> > +  "#address-cells":
> > +    const: 1
> > +
> > +  "#size-cells":
> > +    const: 0
> > +
> > +patternProperties:
> > +  "^emc-table@[0-9]+$":
> > +    type: object
> > +    additionalProperties: true
> > +    properties:
> > +      reg:
> > +        maxItems: 1
> > +        description:
> > +          Ram code for this timing set
> > +
> > +      nvidia,ram-code:
> > +        $ref: /schemas/types.yaml#/definitions/uint32
> > +        description:
> > +          value of the RAM_CODE field in the PMC_STRAPPING_OPT_A register that
> > +          this timing set is used for
> > +
> > +      "#address-cells":
> > +        const: 1
> > +
> > +      "#size-cells":
> > +        const: 0
> > +
> > +    required:
> > +      - reg
> > +      - nvidia,ram-code
> > +
> > +
> >  required:
> >    - compatible
> >    - reg
> >
> > --
> > 2.48.1
> >

Thierry mentioned on the cover [0] that he is trying to get the
bootloader I'm targetting updated to use the reserved memory tables
already supported by mainline. If that gets done, this series becomes
unnecesary. So I'd like to put it on hold for a little while to give a
chance for that discussion to happen internally. If the response is
negative or there's no response after a while, I'll pick it back up.

To give a bit of context that answers several of the review comments
though, these dt node names and types are hardcoded in the bootloader
and thus cannot be changed. Like the sub-nodes are named
emc-table@$ramcode and emc-table@$freq, which then triggers errors on
the schema example if reg is not defined. And if I have a reg in the
example, then I have to put it in the schema. Etc, etc.

Sincerely,
Aaron
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/memory-controllers/nvidia,tegra21-emc-table.yaml b/Documentation/devicetree/bindings/memory-controllers/nvidia,tegra21-emc-table.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..df371c835b95ad75deb74ad1d8711ed40a9b2361
--- /dev/null
+++ b/Documentation/devicetree/bindings/memory-controllers/nvidia,tegra21-emc-table.yaml
@@ -0,0 +1,1692 @@ 
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/memory-controllers/nvidia,tegra21-emc-table.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NVIDIA Tegra210 SoC EMC Table
+
+maintainers:
+  - Thierry Reding <thierry.reding@gmail.com>
+  - Jon Hunter <jonathanh@nvidia.com>
+
+description: |
+  EMC training data used by the emc driver to do periodic training
+
+properties:
+  compatible:
+    items:
+      - enum:
+          - nvidia,tegra21-emc-table
+          - nvidia,tegra21-emc-table-derated
+
+  reg:
+    maxItems: 1
+    description:
+      Clock rate for this table
+
+  clock-frequency:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      external memory clock rate in KHz
+    minimum: 40800
+    maximum: 1600000
+
+  nvidia,revision:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      The revision of this table
+
+  nvidia,dvfs-version:
+    $ref: /schemas/types.yaml#/definitions/string
+    description:
+      The dvfs version of this table
+
+  nvidia,emc-min-mv:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      The minimum emc voltage allowed for this table
+
+  nvidia,gk20a-min-mv:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      The minimum gpu voltage allowed for this table
+
+  nvidia,source:
+    $ref: /schemas/types.yaml#/definitions/string
+    description:
+      The clock source for this table
+
+  nvidia,src-sel-reg:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Value of the source selection register
+
+  nvidia,needs-training:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      If this table needs training
+
+  nvidia,training_pattern:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Which training pattern to use for this table
+
+  nvidia,trained:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      If this table has been trained
+
+  nvidia,periodic_training:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      If this table should be periodically trained
+
+  nvidia,trained_dram_clktree_c0d0u0:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Trained value of c0d0u0 in the dram clock tree
+
+  nvidia,trained_dram_clktree_c0d0u1:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Trained value of c0d0u1 in the dram clock tree
+
+  nvidia,trained_dram_clktree_c0d1u0:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Trained value of c0d1u0 in the dram clock tree
+
+  nvidia,trained_dram_clktree_c0d1u1:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Trained value of c0d1u1 in the dram clock tree
+
+  nvidia,trained_dram_clktree_c1d0u0:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Trained value of c1d0u0 in the dram clock tree
+
+  nvidia,trained_dram_clktree_c1d0u1:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Trained value of c1d0u1 in the dram clock tree
+
+  nvidia,trained_dram_clktree_c1d1u0:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Trained value of c1d1u0 in the dram clock tree
+
+  nvidia,trained_dram_clktree_c1d1u1:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Trained value of c1d1u1 in the dram clock tree
+
+  nvidia,current_dram_clktree_c0d0u0:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Current value of c0d0u0 in the dram clock tree
+
+  nvidia,current_dram_clktree_c0d0u1:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Current value of c0d0u1 in the dram clock tree
+
+  nvidia,current_dram_clktree_c0d1u0:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Current value of c0d1u0 in the dram clock tree
+
+  nvidia,current_dram_clktree_c0d1u1:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Current value of c0d1u1 in the dram clock tree
+
+  nvidia,current_dram_clktree_c1d0u0:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Current value of c1d0u0 in the dram clock tree
+
+  nvidia,current_dram_clktree_c1d0u1:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Current value of c1d0u1 in the dram clock tree
+
+  nvidia,current_dram_clktree_c1d1u0:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Current value of c1d1u0 in the dram clock tree
+
+  nvidia,current_dram_clktree_c1d1u1:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Current value of c1d1u1 in the dram clock tree
+
+  nvidia,run_clocks:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Clocks to run
+
+  nvidia,tree_margin:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Tree margin
+
+  nvidia,burst-regs-num:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Number of burst registers
+
+  nvidia,burst-regs-per-ch-num:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Number of burst registers per channel
+
+  nvidia,trim-regs-num:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Number of trim registers
+
+  nvidia,trim-regs-per-ch-num:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Number of trim registers per channel
+
+  nvidia,burst-mc-regs-num:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Number of burst mc registers
+
+  nvidia,la-scale-regs-num:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Number of la scale registers
+
+  nvidia,vref-regs-num:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Number of voltage reference registers
+
+  nvidia,training-mod-regs-num:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Number of training mod registers
+
+  nvidia,dram-timing-regs-num:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Number of dram timing registers
+
+  nvidia,min-mrs-wait:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Value of the MIN_MRS_WAIT register
+
+  nvidia,emc-mrw:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Value of the EMC_MRW register
+
+  nvidia,emc-mrw2:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Value of the EMC_MRW2 register
+
+  nvidia,emc-mrw3:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Value of the EMC_MRW3 register
+
+  nvidia,emc-mrw4:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Value of the EMC_MRW4 register
+
+  nvidia,emc-mrw9:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Value of the EMC_MRW9 register
+
+  nvidia,emc-mrs:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Value of the EMC_MRS register
+
+  nvidia,emc-emrs:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Value of the EMC_EMRS register
+
+  nvidia,emc-emrs2:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Value of the EMC_EMRS2 register
+
+  nvidia,emc-auto-cal-config:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Value of the EMC_AUTO_CAL_CONFIG register
+
+  nvidia,emc-auto-cal-config2:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Value of the EMC_AUTO_CAL_CONFIG2 register
+
+  nvidia,emc-auto-cal-config3:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Value of the EMC_AUTO_CAL_CONFIG3 register
+
+  nvidia,emc-auto-cal-config4:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Value of the EMC_AUTO_CAL_CONFIG4 register
+
+  nvidia,emc-auto-cal-config5:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Value of the EMC_AUTO_CAL_CONFIG5 register
+
+  nvidia,emc-auto-cal-config6:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Value of the EMC_AUTO_CAL_CONFIG6 register
+
+  nvidia,emc-auto-cal-config7:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Value of the EMC_AUTO_CAL_CONFIG7 register
+
+  nvidia,emc-auto-cal-config8:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Value of the EMC_AUTO_CAL_CONFIG8 register
+
+  nvidia,emc-cfg-2:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Value of the EMC_CFG_2 register
+
+  nvidia,emc-sel-dpd-ctrl:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Value of the EMC_SEL_DPD_CTRL register
+
+  nvidia,emc-fdpd-ctrl-cmd-no-ramp:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Value of the EMC_FDPD_SEL_DPD_CTRL_NO_RAMP register
+
+  nvidia,dll-clk-src:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      VALUE of the DLL_CLK_SRC register
+
+  nvidia,clk-out-enb-x-0-clk-enb-emc-dll:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      If the dll clock should be enabled for this table
+
+  nvidia,emc-clock-latency-change:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Clock latency change
+
+  nvidia,ptfv:
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    description:
+      Ptfv list values
+
+  nvidia,emc-registers:
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    description:
+      Burst register values, size is determined by
+      nvidia,burst-regs-num
+
+  nvidia,emc-burst-regs-per-ch:
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    description:
+      Per channel EMC burst register values, size is determined by
+      nvidia,burst-regs-per-ch-num
+
+  nvidia,emc-shadow-regs-ca-train:
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    description:
+      Shadow registers ca train, size is determined by
+      nvidia,burst-regs-num
+
+  nvidia,emc-shadow-regs-quse-train:
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    description:
+      Shadow registers quse train, size is determined by
+      nvidia,burst-regs-num
+
+  nvidia,emc-shadow-regs-rdwr-train:
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    description:
+      Shadow registers rdwr train, size is determined by
+      nvidia,burst-regs-num
+
+  nvidia,emc-trim-regs:
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    description:
+      Trim register values, size is determined by
+      nvidia,trim-regs-num
+
+  nvidia,emc-trim-regs-per-ch:
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    description:
+      Per channel trim register values, size is determined by
+      nvidia,trim-regs-per-channel-num
+
+  nvidia,emc-vref-regs:
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    description:
+      Voltage reference register values, size is determined by
+      nvidia,vref-regs-num
+
+  nvidia,emc-dram-timing-regs:
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    description:
+      Dram timing register values, size is determined by
+      nvidia,dram-timing-regs-num
+
+  nvidia,emc-training-mod-regs:
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    description:
+      Training mod register values, size is determined by
+      nvidia,training-mod-regs-num
+
+  nvidia,emc-save-restore-mod-regs:
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    description:
+      Save restore mod register values
+
+  nvidia,emc-burst-mc-regs:
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    description:
+      Burst mc register values, size is determined by
+      nvidia,burst-mc-regs-num
+
+  nvidia,emc-la-scale-regs:
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    description:
+      La scale register values, size is determined by
+      nvidia,burst-mc-regs-num
+
+required:
+  - compatible
+  - clock-frequency
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/tegra210-car.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    external-memory-controller@7001b000 {
+        reg = <0x7001b000 0x1000>,
+              <0x7001e000 0x1000>,
+              <0x7001f000 0x1000>;
+        clocks = <&tegra_car TEGRA210_CLK_EMC>;
+        clock-names = "emc";
+        interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
+        nvidia,memory-controller = <&mc>;
+        nvidia,use-ram-code;
+
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        emc-table@0 {
+            reg = <0>;
+            nvidia,ram-code = <0x0>;
+
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            emc-table@40800 {
+                reg = <40800>;
+                compatible = "nvidia,tegra21-emc-table";
+                nvidia,revision = <0x07>;
+                nvidia,dvfs-version = "04_40800_03_V9.8.7_V1.6";
+                clock-frequency = <40800>;
+                nvidia,emc-min-mv = <800>;
+                nvidia,gk20a-min-mv = <1100>;
+                nvidia,source = "pllp_out0";
+                nvidia,src-sel-reg = <0x40188012>;
+                nvidia,needs-training = <0x00000000>;
+                nvidia,training_pattern = <0x00000000>;
+                nvidia,trained = <0x00000000>;
+                nvidia,periodic_training = <0x00000000>;
+                nvidia,trained_dram_clktree_c0d0u0 = <0x00000000>;
+                nvidia,trained_dram_clktree_c0d0u1 = <0x00000000>;
+                nvidia,trained_dram_clktree_c0d1u0 = <0x00000000>;
+                nvidia,trained_dram_clktree_c0d1u1 = <0x00000000>;
+                nvidia,trained_dram_clktree_c1d0u0 = <0x00000000>;
+                nvidia,trained_dram_clktree_c1d0u1 = <0x00000000>;
+                nvidia,trained_dram_clktree_c1d1u0 = <0x00000000>;
+                nvidia,trained_dram_clktree_c1d1u1 = <0x00000000>;
+                nvidia,current_dram_clktree_c0d0u0 = <0x00000000>;
+                nvidia,current_dram_clktree_c0d0u1 = <0x00000000>;
+                nvidia,current_dram_clktree_c0d1u0 = <0x00000000>;
+                nvidia,current_dram_clktree_c0d1u1 = <0x00000000>;
+                nvidia,current_dram_clktree_c1d0u0 = <0x00000000>;
+                nvidia,current_dram_clktree_c1d0u1 = <0x00000000>;
+                nvidia,current_dram_clktree_c1d1u0 = <0x00000000>;
+                nvidia,current_dram_clktree_c1d1u1 = <0x00000000>;
+                nvidia,run_clocks = <0x00000003>;
+                nvidia,tree_margin = <0x00000001>;
+                nvidia,burst-regs-num = <221>;
+                nvidia,burst-regs-per-ch-num = <8>;
+                nvidia,trim-regs-num = <138>;
+                nvidia,trim-regs-per-ch-num = <10>;
+                nvidia,burst-mc-regs-num = <33>;
+                nvidia,la-scale-regs-num = <24>;
+                nvidia,vref-regs-num = <4>;
+                nvidia,training-mod-regs-num = <20>;
+                nvidia,dram-timing-regs-num = <5>;
+                nvidia,min-mrs-wait = <0x00000015>;
+                nvidia,emc-mrw = <0x08010004>;
+                nvidia,emc-mrw2 = <0x08020000>;
+                nvidia,emc-mrw3 = <0x080d0000>;
+                nvidia,emc-mrw4 = <0xc0000000>;
+                nvidia,emc-mrw9 = <0x0c0e7272>;
+                nvidia,emc-mrs = <0x00000000>;
+                nvidia,emc-emrs = <0x00000000>;
+                nvidia,emc-emrs2 = <0x00000000>;
+                nvidia,emc-auto-cal-config = <0xa01a51d8>;
+                nvidia,emc-auto-cal-config2 = <0x05500000>;
+                nvidia,emc-auto-cal-config3 = <0x00770000>;
+                nvidia,emc-auto-cal-config4 = <0x00770000>;
+                nvidia,emc-auto-cal-config5 = <0x00770000>;
+                nvidia,emc-auto-cal-config6 = <0x00770000>;
+                nvidia,emc-auto-cal-config7 = <0x00770000>;
+                nvidia,emc-auto-cal-config8 = <0x00770000>;
+                nvidia,emc-cfg-2 = <0x00110805>;
+                nvidia,emc-sel-dpd-ctrl = <0x00040008>;
+                nvidia,emc-fdpd-ctrl-cmd-no-ramp = <0x00000001>;
+                nvidia,dll-clk-src = <0x40188012>;
+                nvidia,clk-out-enb-x-0-clk-enb-emc-dll = <0x00000001>;
+                nvidia,emc-clock-latency-change = <0x00005172>;
+                nvidia,ptfv = <
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x0000000a
+                    0x0000000a
+                    0x0000000a
+                    0x00000001
+                >;
+                nvidia,emc-registers = <
+                    0x0000000c
+                    0x00000008
+                    0x00000004
+                    0x00000000
+                    0x00000000
+                    0x00000008
+                    0x00000004
+                    0x0000000a
+                    0x0000000d
+                    0x00000008
+                    0x0000000b
+                    0x00000000
+                    0x00000004
+                    0x00000020
+                    0x00000006
+                    0x00000006
+                    0x00000006
+                    0x00000003
+                    0x00000000
+                    0x00000006
+                    0x00000004
+                    0x00000002
+                    0x00000000
+                    0x00000004
+                    0x00000008
+                    0x0000000d
+                    0x00000005
+                    0x00000005
+                    0x00000000
+                    0x00000000
+                    0x00000004
+                    0x08037171
+                    0x0000000a
+                    0x00000000
+                    0x0000000a
+                    0x00010001
+                    0x00000011
+                    0x00000013
+                    0x00000015
+                    0x00000011
+                    0x00000013
+                    0x0000009a
+                    0x00000000
+                    0x00000026
+                    0x00000008
+                    0x00000008
+                    0x00000003
+                    0x00000003
+                    0x00000003
+                    0x00000014
+                    0x00000005
+                    0x00000002
+                    0x0000000d
+                    0x00000008
+                    0x00000008
+                    0x00000005
+                    0x00000005
+                    0x00000004
+                    0x00000008
+                    0x00000004
+                    0x00000004
+                    0x00000009
+                    0x48037171
+                    0x000000a0
+                    0x00000000
+                    0x9160a00d
+                    0x00003bbf
+                    0x002c00a0
+                    0x00008000
+                    0x000000be
+                    0x0fff0fff
+                    0x0fff0fff
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x080b0000
+                    0x00120010
+                    0x00120011
+                    0x00280027
+                    0x0025002a
+                    0x002a002a
+                    0x00260026
+                    0x00000000
+                    0x00000000
+                    0x00280027
+                    0x0025002a
+                    0x002a002a
+                    0x00260026
+                    0x00000000
+                    0x00000000
+                    0x00100010
+                    0x00120012
+                    0x00110011
+                    0x00120012
+                    0x00000010
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x8020221f
+                    0x0220f40f
+                    0x00000012
+                    0x00064000
+                    0x00090029
+                    0x00290015
+                    0x000b000a
+                    0xc1e00302
+                    0x1f13412f
+                    0x00010014
+                    0x00000804
+                    0x00000550
+                    0xf3200000
+                    0x0fff0fff
+                    0x0000023a
+                    0x00000009
+                    0x00000000
+                    0x00000000
+                    0x00000012
+                    0x00000012
+                    0x00020000
+                    0x00050037
+                    0x00000000
+                    0x00000010
+                    0x00003000
+                    0x0a000000
+                    0x02000111
+                    0x00000008
+                    0x00030808
+                    0x00015c00
+                    0x00100404
+                    0x00001600
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000034
+                    0x00000040
+                    0x10000000
+                    0x08000000
+                    0x10000000
+                    0x08000000
+                    0x00000000
+                    0x00000000
+                    0x00000020
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0xefffefff
+                    0xc0c0c0c0
+                    0xc0c0c0c0
+                    0xdcdcdcdc
+                    0x0a0a0a0a
+                    0x0a0a0a0a
+                    0x0a0a0a0a
+                    0x0118600b
+                    0x00000000
+                    0x00000000
+                    0x00000013
+                    0x00000009
+                    0x00000015
+                    0x08161414
+                    0x00000011
+                    0x00010001
+                    0x00009080
+                    0x07070404
+                    0x00040014
+                    0x0513801f
+                    0x1f101100
+                    0x00000014
+                    0x00107240
+                    0x01124000
+                    0x01125b6a
+                    0x0f081000
+                    0x00105800
+                    0x1110fc00
+                    0x0f081300
+                    0x00105800
+                    0x1114fc00
+                    0x07000300
+                    0x00107240
+                    0x55553c5a
+                    0x48161414
+                >;
+                nvidia,emc-burst-regs-per-ch = <
+                    0x880c7272
+                    0x880c7272
+                    0x480c7272
+                    0x480c7272
+                    0x8c0e7272
+                    0x8c0e7272
+                    0x4c0e7272
+                    0x4c0e7272
+                >;
+                nvidia,emc-shadow-regs-ca-train = <
+                    0x0000000c
+                    0x00000008
+                    0x00000004
+                    0x00000000
+                    0x00000000
+                    0x00000008
+                    0x00000004
+                    0x0000000a
+                    0x0000000d
+                    0x00000008
+                    0x0000000b
+                    0x00000000
+                    0x00000004
+                    0x00000020
+                    0x00000006
+                    0x00000006
+                    0x00000006
+                    0x00000003
+                    0x00000000
+                    0x00000006
+                    0x00000004
+                    0x00000002
+                    0x00000000
+                    0x00000004
+                    0x00000008
+                    0x0000000d
+                    0x00000005
+                    0x00000005
+                    0x00000000
+                    0x00000000
+                    0x00000004
+                    0x08037171
+                    0x0000000a
+                    0x00000000
+                    0x0000000a
+                    0x00010001
+                    0x00000011
+                    0x00000013
+                    0x00000015
+                    0x00000011
+                    0x00000013
+                    0x0000009a
+                    0x00000000
+                    0x00000026
+                    0x00000008
+                    0x00000008
+                    0x00000003
+                    0x00000003
+                    0x00000003
+                    0x00000014
+                    0x00000005
+                    0x00000002
+                    0x0000000d
+                    0x00000008
+                    0x00000008
+                    0x00000005
+                    0x00000005
+                    0x00000004
+                    0x00000008
+                    0x00000004
+                    0x00000004
+                    0x00000009
+                    0x48037171
+                    0x000000a0
+                    0x00000000
+                    0x9960a00d
+                    0x00003bbf
+                    0x002c00a0
+                    0x00008000
+                    0x00000055
+                    0x0fff0fff
+                    0x0fff0fff
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x080b0000
+                    0x00120010
+                    0x00120011
+                    0x00280027
+                    0x0025002a
+                    0x002a002a
+                    0x00260026
+                    0x00000000
+                    0x00000000
+                    0x00280027
+                    0x0025002a
+                    0x002a002a
+                    0x00260026
+                    0x00000000
+                    0x00000000
+                    0x00100010
+                    0x00120012
+                    0x00110011
+                    0x00120012
+                    0x00000010
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x8020221f
+                    0x0220f40f
+                    0x00000012
+                    0x00064000
+                    0x00090029
+                    0x00290015
+                    0x000b000a
+                    0xc1e00302
+                    0x1f13412f
+                    0x00010014
+                    0x00000804
+                    0x00000550
+                    0xf3200000
+                    0x0fff0fff
+                    0x0000023a
+                    0x00000009
+                    0x00000000
+                    0x00000000
+                    0x00000012
+                    0x00000012
+                    0x00020000
+                    0x05058033
+                    0x05050000
+                    0x00000000
+                    0x00003000
+                    0x0a000000
+                    0x02000111
+                    0x00000008
+                    0x00030808
+                    0x00015c00
+                    0x00100404
+                    0x00001600
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000034
+                    0x00000040
+                    0x10000000
+                    0x08000000
+                    0x10000000
+                    0x08000000
+                    0x00000000
+                    0x00000000
+                    0x00000020
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0xefffefff
+                    0xc0c0c0c0
+                    0xc0c0c0c0
+                    0xdcdcdcdc
+                    0x0a0a0a0a
+                    0x0a0a0a0a
+                    0x0a0a0a0a
+                    0x0118600b
+                    0x00000001
+                    0x0000001f
+                    0x00000013
+                    0x00000003
+                    0x00000015
+                    0x08161414
+                    0x0000000b
+                    0x00010001
+                    0x00019080
+                    0x07070404
+                    0x00040014
+                    0x0513801f
+                    0x1f101100
+                    0x00000014
+                    0x00107240
+                    0x01124000
+                    0x01125b6a
+                    0x0f081000
+                    0x00105800
+                    0x1110fc00
+                    0x0f081300
+                    0x00105800
+                    0x1114fc00
+                    0x07000300
+                    0x00107240
+                    0x55553c5a
+                    0x48161414
+                >;
+                nvidia,emc-shadow-regs-quse-train = <
+                    0x0000000c
+                    0x00000008
+                    0x00000004
+                    0x00000000
+                    0x00000000
+                    0x00000008
+                    0x00000004
+                    0x00000009
+                    0x0000000d
+                    0x00000008
+                    0x0000000b
+                    0x00000000
+                    0x00000004
+                    0x00000020
+                    0x00000006
+                    0x00000006
+                    0x00000006
+                    0x00000003
+                    0x00000000
+                    0x00000006
+                    0x00000004
+                    0x00000002
+                    0x00000000
+                    0x00000004
+                    0x00000008
+                    0x0000000d
+                    0x00000002
+                    0x00000002
+                    0x00000000
+                    0x00000000
+                    0x00000005
+                    0x08037171
+                    0x00000008
+                    0x00000001
+                    0x80000000
+                    0x00010002
+                    0x00000011
+                    0x00000013
+                    0x00000015
+                    0x00000011
+                    0x00000013
+                    0x0000009a
+                    0x00000000
+                    0x00000026
+                    0x00000008
+                    0x00000008
+                    0x00000003
+                    0x00000003
+                    0x00000003
+                    0x00000014
+                    0x00000005
+                    0x00000002
+                    0x0000000d
+                    0x00000008
+                    0x00000008
+                    0x00000005
+                    0x00000005
+                    0x00000004
+                    0x00000008
+                    0x00000004
+                    0x00000004
+                    0x00000009
+                    0x48037171
+                    0x000000a0
+                    0x00000000
+                    0x9160400d
+                    0x00003bbf
+                    0x002c00a0
+                    0x00008000
+                    0x000000be
+                    0x0fff0fff
+                    0x0fff0fff
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x080b0000
+                    0x00120010
+                    0x00120011
+                    0x00280027
+                    0x0025002a
+                    0x002a002a
+                    0x00260026
+                    0x00000000
+                    0x00000000
+                    0x00280027
+                    0x0025002a
+                    0x002a002a
+                    0x00260026
+                    0x00000000
+                    0x00000000
+                    0x00100010
+                    0x00120012
+                    0x00110011
+                    0x00120012
+                    0x00000010
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x8020221f
+                    0x0220f40f
+                    0x00000012
+                    0x00064000
+                    0x00090029
+                    0x00290015
+                    0x000b000a
+                    0xc1e00302
+                    0x1f13412f
+                    0x00010014
+                    0x00000804
+                    0x00000550
+                    0xf3200000
+                    0x0fff0fff
+                    0x0000023a
+                    0x00000009
+                    0x00000000
+                    0x00000000
+                    0x00000012
+                    0x00000012
+                    0x30020000
+                    0x00058037
+                    0x00000000
+                    0x00000010
+                    0x00003000
+                    0x0a000000
+                    0x02000111
+                    0x00000008
+                    0x00030808
+                    0x00015c00
+                    0x00100404
+                    0x00001600
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000034
+                    0x00000040
+                    0x10000000
+                    0x08000000
+                    0x10000000
+                    0x08000000
+                    0x00000000
+                    0x00000000
+                    0x00000020
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0xefffefff
+                    0xc0c0c0c0
+                    0xc0c0c0c0
+                    0xdcdcdcdc
+                    0x0a0a0a0a
+                    0x0a0a0a0a
+                    0x0a0a0a0a
+                    0x0118600b
+                    0x00000001
+                    0x0000001f
+                    0x0000001d
+                    0x00000013
+                    0x0000001f
+                    0x08161414
+                    0x0000001b
+                    0x00010002
+                    0x00009080
+                    0x07070404
+                    0x00040014
+                    0x0513801f
+                    0x1f101100
+                    0x00000014
+                    0x00107240
+                    0x01124000
+                    0x01125b6a
+                    0x0f081000
+                    0x00105800
+                    0x1110fc00
+                    0x0f081300
+                    0x00105800
+                    0x1114fc00
+                    0x07000300
+                    0x00107240
+                    0x55553c5a
+                    0x48161414
+                >;
+                nvidia,emc-shadow-regs-rdwr-train = <
+                    0x0000000c
+                    0x00000008
+                    0x00000004
+                    0x00000000
+                    0x00000000
+                    0x00000008
+                    0x00000004
+                    0x0000000d
+                    0x0000000d
+                    0x00000008
+                    0x0000000b
+                    0x00000000
+                    0x00000004
+                    0x00000020
+                    0x00000006
+                    0x00000006
+                    0x00000006
+                    0x00000003
+                    0x00000013
+                    0x00000006
+                    0x00000004
+                    0x00000002
+                    0x00000000
+                    0x00000004
+                    0x00000008
+                    0x0000000d
+                    0x00000005
+                    0x00000005
+                    0x00000000
+                    0x30000002
+                    0x00000004
+                    0x08037171
+                    0x0000000a
+                    0x00000000
+                    0x0000000a
+                    0x00010001
+                    0x00000011
+                    0x00000013
+                    0x00000015
+                    0x00000011
+                    0x00000013
+                    0x0000009a
+                    0x00000000
+                    0x00000026
+                    0x00000008
+                    0x00000008
+                    0x00000003
+                    0x00000003
+                    0x00000003
+                    0x00000014
+                    0x00000005
+                    0x00000002
+                    0x0000000d
+                    0x00000008
+                    0x00000008
+                    0x00000005
+                    0x00000005
+                    0x00000004
+                    0x00000008
+                    0x00000004
+                    0x00000004
+                    0x00000009
+                    0x48037171
+                    0x000000a0
+                    0x00000000
+                    0x9160a00d
+                    0x00003bbf
+                    0x002c00a0
+                    0x00008000
+                    0x000000be
+                    0x0fff0fff
+                    0x0fff0fff
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x080b0000
+                    0x00120010
+                    0x00120011
+                    0x00280027
+                    0x0025002a
+                    0x002a002a
+                    0x00260026
+                    0x00000000
+                    0x00000000
+                    0x00280027
+                    0x0025002a
+                    0x002a002a
+                    0x00260026
+                    0x00000000
+                    0x00000000
+                    0x00100010
+                    0x00120012
+                    0x00110011
+                    0x00120012
+                    0x00000010
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x8020221f
+                    0x0220f40f
+                    0x00000012
+                    0x00064000
+                    0x00090029
+                    0x00290015
+                    0x000b000a
+                    0xc1e00302
+                    0x1f13412f
+                    0x00010014
+                    0x00000804
+                    0x00000550
+                    0xf3200000
+                    0x0fff0fff
+                    0x0000023a
+                    0x00000009
+                    0x00000000
+                    0x00000000
+                    0x00000012
+                    0x00000012
+                    0x00020000
+                    0x00050037
+                    0x00000000
+                    0x00000010
+                    0x00003000
+                    0x0a000000
+                    0x02000111
+                    0x00000008
+                    0x00030808
+                    0x00015c00
+                    0x00100404
+                    0x00001600
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000034
+                    0x00000040
+                    0x10000000
+                    0x08000000
+                    0x10000000
+                    0x08000000
+                    0x00000000
+                    0x00000000
+                    0x00000020
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0xefffefff
+                    0xc0c0c0c0
+                    0xc0c0c0c0
+                    0xdcdcdcdc
+                    0x0a0a0a0a
+                    0x0a0a0a0a
+                    0x0a0a0a0a
+                    0x0118600b
+                    0x00000001
+                    0x00000000
+                    0x00000013
+                    0x00000009
+                    0x00000015
+                    0x08161414
+                    0x00000011
+                    0x00010001
+                    0x0000b080
+                    0x07070404
+                    0x00040014
+                    0x0513801f
+                    0x1f101100
+                    0x00000014
+                    0x00107240
+                    0x01124000
+                    0x01125b6a
+                    0x0f081000
+                    0x00105800
+                    0x1110fc00
+                    0x0f081300
+                    0x00105800
+                    0x1114fc00
+                    0x07000300
+                    0x00107240
+                    0x55553c5a
+                    0x48161414
+                >;
+                nvidia,emc-trim-regs = <
+                    0x00280028
+                    0x00280028
+                    0x00280028
+                    0x00280028
+                    0x00280028
+                    0x00280028
+                    0x00280028
+                    0x00280028
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x11111111
+                    0x11111111
+                    0x28282828
+                    0x28282828
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00120010
+                    0x00120011
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                >;
+                nvidia,emc-trim-regs-per-ch = <
+                    0x00000000
+                    0x00000000
+                    0x00249249
+                    0x00249249
+                    0x00249249
+                    0x00249249
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                >;
+                nvidia,emc-vref-regs = <
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                >;
+                nvidia,emc-dram-timing-regs = <
+                    0x00000049
+                    0x00000104
+                    0x000000b4
+                    0x0000007a
+                    0x00000006
+                >;
+                nvidia,emc-training-mod-regs = <
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                >;
+                nvidia,emc-save-restore-mod-regs = <
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                    0x00000000
+                >;
+                nvidia,emc-burst-mc-regs = <
+                    0x40020001
+                    0x80000013
+                    0x000a1020
+                    0x80001028
+                    0x00000001
+                    0x00000000
+                    0x00000002
+                    0x00000000
+                    0x00000001
+                    0x00000001
+                    0x00000002
+                    0x00000005
+                    0x00000002
+                    0x00000001
+                    0x00000004
+                    0x00000008
+                    0x00000005
+                    0x00000000
+                    0x02020001
+                    0x00030201
+                    0x72c30303
+                    0x70000f0f
+                    0x00000000
+                    0x001f0000
+                    0x0080001a
+                    0x0080001a
+                    0x0080001a
+                    0x0080001a
+                    0x0080001a
+                    0x0080001a
+                    0x0080001a
+                    0x0080001a
+                    0x0080001a
+                >;
+                nvidia,emc-la-scale-regs = <
+                    0x00000006
+                    0x0080001a
+                    0x00000076
+                    0x00ff00ff
+                    0x00ff00ff
+                    0x00ff00ff
+                    0x00ff00ff
+                    0x00ff003d
+                    0x00ff00ff
+                    0x00ff003d
+                    0x00ff0049
+                    0x00ff0080
+                    0x00ff0004
+                    0x000800ff
+                    0x000000ff
+                    0x00ff0004
+                    0x00ff00ff
+                    0x00ff00ff
+                    0x00ff00ff
+                    0x00ff00ff
+                    0x00ff00ff
+                    0x000000ff
+                    0x000000ff
+                    0x00ff00ff
+                    >;
+            };
+        };
+    };
diff --git a/Documentation/devicetree/bindings/memory-controllers/nvidia,tegra210-emc.yaml b/Documentation/devicetree/bindings/memory-controllers/nvidia,tegra210-emc.yaml
index bc8477e7ab193b7880bb681037985f3fccebf02f..78e3417d273a329b77bf2f61de41b29017be56d3 100644
--- a/Documentation/devicetree/bindings/memory-controllers/nvidia,tegra210-emc.yaml
+++ b/Documentation/devicetree/bindings/memory-controllers/nvidia,tegra210-emc.yaml
@@ -44,6 +44,44 @@  properties:
     description:
       phandle of the memory controller node
 
+  nvidia,use-ram-code:
+    description:
+      If set, timings are split per ram code and expected to be in
+      subnodes per ram-code
+
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 0
+
+patternProperties:
+  "^emc-table@[0-9]+$":
+    type: object
+    additionalProperties: true
+    properties:
+      reg:
+        maxItems: 1
+        description:
+          Ram code for this timing set
+
+      nvidia,ram-code:
+        $ref: /schemas/types.yaml#/definitions/uint32
+        description:
+          value of the RAM_CODE field in the PMC_STRAPPING_OPT_A register that
+          this timing set is used for
+
+      "#address-cells":
+        const: 1
+
+      "#size-cells":
+        const: 0
+
+    required:
+      - reg
+      - nvidia,ram-code
+
+
 required:
   - compatible
   - reg