forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
157 lines
4.6 KiB
157 lines
4.6 KiB
# SPDX-License-Identifier: (GPL-2.0) |
|
%YAML 1.2 |
|
--- |
|
$id: http://devicetree.org/schemas/memory-controllers/nvidia,tegra124-mc.yaml# |
|
$schema: http://devicetree.org/meta-schemas/core.yaml# |
|
|
|
title: NVIDIA Tegra124 SoC Memory Controller |
|
|
|
maintainers: |
|
- Jon Hunter <[email protected]> |
|
- Thierry Reding <[email protected]> |
|
|
|
description: | |
|
Tegra124 SoC features a hybrid 2x32-bit / 1x64-bit memory controller. |
|
These are interleaved to provide high performance with the load shared across |
|
two memory channels. The Tegra124 Memory Controller handles memory requests |
|
from internal clients and arbitrates among them to allocate memory bandwidth |
|
for DDR3L and LPDDR3 SDRAMs. |
|
|
|
properties: |
|
compatible: |
|
const: nvidia,tegra124-mc |
|
|
|
reg: |
|
maxItems: 1 |
|
|
|
clocks: |
|
maxItems: 1 |
|
|
|
clock-names: |
|
items: |
|
- const: mc |
|
|
|
interrupts: |
|
maxItems: 1 |
|
|
|
"#reset-cells": |
|
const: 1 |
|
|
|
"#iommu-cells": |
|
const: 1 |
|
|
|
"#interconnect-cells": |
|
const: 1 |
|
|
|
patternProperties: |
|
"^emc-timings-[0-9]+$": |
|
type: object |
|
properties: |
|
nvidia,ram-code: |
|
$ref: /schemas/types.yaml#/definitions/uint32 |
|
description: |
|
Value of RAM_CODE this timing set is used for. |
|
|
|
patternProperties: |
|
"^timing-[0-9]+$": |
|
type: object |
|
properties: |
|
clock-frequency: |
|
description: |
|
Memory clock rate in Hz. |
|
minimum: 1000000 |
|
maximum: 1066000000 |
|
|
|
nvidia,emem-configuration: |
|
$ref: /schemas/types.yaml#/definitions/uint32-array |
|
description: | |
|
Values to be written to the EMEM register block. See section |
|
"15.6.1 MC Registers" in the TRM. |
|
items: |
|
- description: MC_EMEM_ARB_CFG |
|
- description: MC_EMEM_ARB_OUTSTANDING_REQ |
|
- description: MC_EMEM_ARB_TIMING_RCD |
|
- description: MC_EMEM_ARB_TIMING_RP |
|
- description: MC_EMEM_ARB_TIMING_RC |
|
- description: MC_EMEM_ARB_TIMING_RAS |
|
- description: MC_EMEM_ARB_TIMING_FAW |
|
- description: MC_EMEM_ARB_TIMING_RRD |
|
- description: MC_EMEM_ARB_TIMING_RAP2PRE |
|
- description: MC_EMEM_ARB_TIMING_WAP2PRE |
|
- description: MC_EMEM_ARB_TIMING_R2R |
|
- description: MC_EMEM_ARB_TIMING_W2W |
|
- description: MC_EMEM_ARB_TIMING_R2W |
|
- description: MC_EMEM_ARB_TIMING_W2R |
|
- description: MC_EMEM_ARB_DA_TURNS |
|
- description: MC_EMEM_ARB_DA_COVERS |
|
- description: MC_EMEM_ARB_MISC0 |
|
- description: MC_EMEM_ARB_MISC1 |
|
- description: MC_EMEM_ARB_RING1_THROTTLE |
|
|
|
required: |
|
- clock-frequency |
|
- nvidia,emem-configuration |
|
|
|
additionalProperties: false |
|
|
|
required: |
|
- nvidia,ram-code |
|
|
|
additionalProperties: false |
|
|
|
required: |
|
- compatible |
|
- reg |
|
- interrupts |
|
- clocks |
|
- clock-names |
|
- "#reset-cells" |
|
- "#iommu-cells" |
|
- "#interconnect-cells" |
|
|
|
additionalProperties: false |
|
|
|
examples: |
|
- | |
|
memory-controller@70019000 { |
|
compatible = "nvidia,tegra124-mc"; |
|
reg = <0x70019000 0x1000>; |
|
clocks = <&tegra_car 32>; |
|
clock-names = "mc"; |
|
|
|
interrupts = <0 77 4>; |
|
|
|
#iommu-cells = <1>; |
|
#reset-cells = <1>; |
|
#interconnect-cells = <1>; |
|
|
|
emc-timings-3 { |
|
nvidia,ram-code = <3>; |
|
|
|
timing-12750000 { |
|
clock-frequency = <12750000>; |
|
|
|
nvidia,emem-configuration = < |
|
0x40040001 /* MC_EMEM_ARB_CFG */ |
|
0x8000000a /* MC_EMEM_ARB_OUTSTANDING_REQ */ |
|
0x00000001 /* MC_EMEM_ARB_TIMING_RCD */ |
|
0x00000001 /* MC_EMEM_ARB_TIMING_RP */ |
|
0x00000002 /* MC_EMEM_ARB_TIMING_RC */ |
|
0x00000000 /* MC_EMEM_ARB_TIMING_RAS */ |
|
0x00000002 /* MC_EMEM_ARB_TIMING_FAW */ |
|
0x00000001 /* MC_EMEM_ARB_TIMING_RRD */ |
|
0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */ |
|
0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */ |
|
0x00000003 /* MC_EMEM_ARB_TIMING_R2R */ |
|
0x00000002 /* MC_EMEM_ARB_TIMING_W2W */ |
|
0x00000003 /* MC_EMEM_ARB_TIMING_R2W */ |
|
0x00000006 /* MC_EMEM_ARB_TIMING_W2R */ |
|
0x06030203 /* MC_EMEM_ARB_DA_TURNS */ |
|
0x000a0402 /* MC_EMEM_ARB_DA_COVERS */ |
|
0x77e30303 /* MC_EMEM_ARB_MISC0 */ |
|
0x70000f03 /* MC_EMEM_ARB_MISC1 */ |
|
0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */ |
|
>; |
|
}; |
|
}; |
|
};
|
|
|