| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- # 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 <jonathanh@nvidia.com>
- - Thierry Reding <thierry.reding@gmail.com>
- 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 */
- >;
- };
- };
- };
|