1c4a41429SDmitry Osipenko# SPDX-License-Identifier: (GPL-2.0+ OR BSD-2-Clause) 2c4a41429SDmitry Osipenko%YAML 1.2 3c4a41429SDmitry Osipenko--- 4c4a41429SDmitry Osipenko$id: http://devicetree.org/schemas/clock/nvidia,tegra124-car.yaml# 5c4a41429SDmitry Osipenko$schema: http://devicetree.org/meta-schemas/core.yaml# 6c4a41429SDmitry Osipenko 7c4a41429SDmitry Osipenkotitle: NVIDIA Tegra Clock and Reset Controller 8c4a41429SDmitry Osipenko 9c4a41429SDmitry Osipenkomaintainers: 10c4a41429SDmitry Osipenko - Jon Hunter <jonathanh@nvidia.com> 11c4a41429SDmitry Osipenko - Thierry Reding <thierry.reding@gmail.com> 12c4a41429SDmitry Osipenko 13c4a41429SDmitry Osipenkodescription: | 14c4a41429SDmitry Osipenko The Clock and Reset (CAR) is the HW module responsible for muxing and gating 15c4a41429SDmitry Osipenko Tegra's clocks, and setting their rates. It comprises CLKGEN and RSTGEN units. 16c4a41429SDmitry Osipenko 17c4a41429SDmitry Osipenko CLKGEN provides the registers to program the PLLs. It controls most of 18c4a41429SDmitry Osipenko the clock source programming and most of the clock dividers. 19c4a41429SDmitry Osipenko 20c4a41429SDmitry Osipenko CLKGEN input signals include the external clock for the reference frequency 21c4a41429SDmitry Osipenko (12 MHz, 26 MHz) and the external clock for the Real Time Clock (32.768 KHz). 22c4a41429SDmitry Osipenko 23c4a41429SDmitry Osipenko Outputs from CLKGEN are inputs clock of the h/w blocks in the Tegra system. 24c4a41429SDmitry Osipenko 25c4a41429SDmitry Osipenko RSTGEN provides the registers needed to control resetting of each block in 26c4a41429SDmitry Osipenko the Tegra system. 27c4a41429SDmitry Osipenko 28c4a41429SDmitry Osipenkoproperties: 29c4a41429SDmitry Osipenko compatible: 30*a640358dSThierry Reding enum: 31*a640358dSThierry Reding - nvidia,tegra124-car 32*a640358dSThierry Reding - nvidia,tegra132-car 33c4a41429SDmitry Osipenko 34c4a41429SDmitry Osipenko reg: 35c4a41429SDmitry Osipenko maxItems: 1 36c4a41429SDmitry Osipenko 37c4a41429SDmitry Osipenko '#clock-cells': 38c4a41429SDmitry Osipenko const: 1 39c4a41429SDmitry Osipenko 40c4a41429SDmitry Osipenko "#reset-cells": 41c4a41429SDmitry Osipenko const: 1 42c4a41429SDmitry Osipenko 43c4a41429SDmitry Osipenko nvidia,external-memory-controller: 44c4a41429SDmitry Osipenko $ref: /schemas/types.yaml#/definitions/phandle 45c4a41429SDmitry Osipenko description: 46c4a41429SDmitry Osipenko phandle of the external memory controller node 47c4a41429SDmitry Osipenko 48c4a41429SDmitry OsipenkopatternProperties: 49c4a41429SDmitry Osipenko "^emc-timings-[0-9]+$": 50c4a41429SDmitry Osipenko type: object 51c4a41429SDmitry Osipenko properties: 52c4a41429SDmitry Osipenko nvidia,ram-code: 53c4a41429SDmitry Osipenko $ref: /schemas/types.yaml#/definitions/uint32 54c4a41429SDmitry Osipenko description: 55c4a41429SDmitry Osipenko value of the RAM_CODE field in the PMC_STRAPPING_OPT_A register that 56c4a41429SDmitry Osipenko this timing set is used for 57c4a41429SDmitry Osipenko 58c4a41429SDmitry Osipenko patternProperties: 59c4a41429SDmitry Osipenko "^timing-[0-9]+$": 60c4a41429SDmitry Osipenko type: object 61c4a41429SDmitry Osipenko properties: 62c4a41429SDmitry Osipenko clock-frequency: 63c4a41429SDmitry Osipenko description: 64c4a41429SDmitry Osipenko external memory clock rate in Hz 65c4a41429SDmitry Osipenko minimum: 1000000 66c4a41429SDmitry Osipenko maximum: 1000000000 67c4a41429SDmitry Osipenko 68c4a41429SDmitry Osipenko nvidia,parent-clock-frequency: 69c4a41429SDmitry Osipenko $ref: /schemas/types.yaml#/definitions/uint32 70c4a41429SDmitry Osipenko description: 71c4a41429SDmitry Osipenko rate of parent clock in Hz 72c4a41429SDmitry Osipenko minimum: 1000000 73c4a41429SDmitry Osipenko maximum: 1000000000 74c4a41429SDmitry Osipenko 75c4a41429SDmitry Osipenko clocks: 76c4a41429SDmitry Osipenko items: 77c4a41429SDmitry Osipenko - description: parent clock of EMC 78c4a41429SDmitry Osipenko 79c4a41429SDmitry Osipenko clock-names: 80c4a41429SDmitry Osipenko items: 81c4a41429SDmitry Osipenko - const: emc-parent 82c4a41429SDmitry Osipenko 83c4a41429SDmitry Osipenko required: 84c4a41429SDmitry Osipenko - clock-frequency 85c4a41429SDmitry Osipenko - nvidia,parent-clock-frequency 86c4a41429SDmitry Osipenko - clocks 87c4a41429SDmitry Osipenko - clock-names 88c4a41429SDmitry Osipenko 89c4a41429SDmitry Osipenko additionalProperties: false 90c4a41429SDmitry Osipenko 91c4a41429SDmitry Osipenko additionalProperties: false 92c4a41429SDmitry Osipenko 93c4a41429SDmitry Osipenkorequired: 94c4a41429SDmitry Osipenko - compatible 95c4a41429SDmitry Osipenko - reg 96c4a41429SDmitry Osipenko - '#clock-cells' 97c4a41429SDmitry Osipenko - "#reset-cells" 98c4a41429SDmitry Osipenko 99c4a41429SDmitry OsipenkoadditionalProperties: false 100c4a41429SDmitry Osipenko 101c4a41429SDmitry Osipenkoexamples: 102c4a41429SDmitry Osipenko - | 103c4a41429SDmitry Osipenko #include <dt-bindings/clock/tegra124-car.h> 104c4a41429SDmitry Osipenko 105c4a41429SDmitry Osipenko car: clock-controller@60006000 { 106c4a41429SDmitry Osipenko compatible = "nvidia,tegra124-car"; 107c4a41429SDmitry Osipenko reg = <0x60006000 0x1000>; 108c4a41429SDmitry Osipenko #clock-cells = <1>; 109c4a41429SDmitry Osipenko #reset-cells = <1>; 110c4a41429SDmitry Osipenko }; 111