15956d97fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0+ OR BSD-2-Clause) 25956d97fSEmmanuel Vadot%YAML 1.2 35956d97fSEmmanuel Vadot--- 45956d97fSEmmanuel Vadot$id: http://devicetree.org/schemas/clock/nvidia,tegra124-car.yaml# 55956d97fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 65956d97fSEmmanuel Vadot 75956d97fSEmmanuel Vadottitle: NVIDIA Tegra Clock and Reset Controller 85956d97fSEmmanuel Vadot 95956d97fSEmmanuel Vadotmaintainers: 105956d97fSEmmanuel Vadot - Jon Hunter <jonathanh@nvidia.com> 115956d97fSEmmanuel Vadot - Thierry Reding <thierry.reding@gmail.com> 125956d97fSEmmanuel Vadot 135956d97fSEmmanuel Vadotdescription: | 145956d97fSEmmanuel Vadot The Clock and Reset (CAR) is the HW module responsible for muxing and gating 155956d97fSEmmanuel Vadot Tegra's clocks, and setting their rates. It comprises CLKGEN and RSTGEN units. 165956d97fSEmmanuel Vadot 175956d97fSEmmanuel Vadot CLKGEN provides the registers to program the PLLs. It controls most of 185956d97fSEmmanuel Vadot the clock source programming and most of the clock dividers. 195956d97fSEmmanuel Vadot 205956d97fSEmmanuel Vadot CLKGEN input signals include the external clock for the reference frequency 215956d97fSEmmanuel Vadot (12 MHz, 26 MHz) and the external clock for the Real Time Clock (32.768 KHz). 225956d97fSEmmanuel Vadot 235956d97fSEmmanuel Vadot Outputs from CLKGEN are inputs clock of the h/w blocks in the Tegra system. 245956d97fSEmmanuel Vadot 255956d97fSEmmanuel Vadot RSTGEN provides the registers needed to control resetting of each block in 265956d97fSEmmanuel Vadot the Tegra system. 275956d97fSEmmanuel Vadot 285956d97fSEmmanuel Vadotproperties: 295956d97fSEmmanuel Vadot compatible: 30*aa1a8ff2SEmmanuel Vadot enum: 31*aa1a8ff2SEmmanuel Vadot - nvidia,tegra124-car 32*aa1a8ff2SEmmanuel Vadot - nvidia,tegra132-car 335956d97fSEmmanuel Vadot 345956d97fSEmmanuel Vadot reg: 355956d97fSEmmanuel Vadot maxItems: 1 365956d97fSEmmanuel Vadot 375956d97fSEmmanuel Vadot '#clock-cells': 385956d97fSEmmanuel Vadot const: 1 395956d97fSEmmanuel Vadot 405956d97fSEmmanuel Vadot "#reset-cells": 415956d97fSEmmanuel Vadot const: 1 425956d97fSEmmanuel Vadot 435956d97fSEmmanuel Vadot nvidia,external-memory-controller: 445956d97fSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle 455956d97fSEmmanuel Vadot description: 465956d97fSEmmanuel Vadot phandle of the external memory controller node 475956d97fSEmmanuel Vadot 485956d97fSEmmanuel VadotpatternProperties: 495956d97fSEmmanuel Vadot "^emc-timings-[0-9]+$": 505956d97fSEmmanuel Vadot type: object 515956d97fSEmmanuel Vadot properties: 525956d97fSEmmanuel Vadot nvidia,ram-code: 535956d97fSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 545956d97fSEmmanuel Vadot description: 555956d97fSEmmanuel Vadot value of the RAM_CODE field in the PMC_STRAPPING_OPT_A register that 565956d97fSEmmanuel Vadot this timing set is used for 575956d97fSEmmanuel Vadot 585956d97fSEmmanuel Vadot patternProperties: 595956d97fSEmmanuel Vadot "^timing-[0-9]+$": 605956d97fSEmmanuel Vadot type: object 615956d97fSEmmanuel Vadot properties: 625956d97fSEmmanuel Vadot clock-frequency: 635956d97fSEmmanuel Vadot description: 645956d97fSEmmanuel Vadot external memory clock rate in Hz 655956d97fSEmmanuel Vadot minimum: 1000000 665956d97fSEmmanuel Vadot maximum: 1000000000 675956d97fSEmmanuel Vadot 685956d97fSEmmanuel Vadot nvidia,parent-clock-frequency: 695956d97fSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 705956d97fSEmmanuel Vadot description: 715956d97fSEmmanuel Vadot rate of parent clock in Hz 725956d97fSEmmanuel Vadot minimum: 1000000 735956d97fSEmmanuel Vadot maximum: 1000000000 745956d97fSEmmanuel Vadot 755956d97fSEmmanuel Vadot clocks: 765956d97fSEmmanuel Vadot items: 775956d97fSEmmanuel Vadot - description: parent clock of EMC 785956d97fSEmmanuel Vadot 795956d97fSEmmanuel Vadot clock-names: 805956d97fSEmmanuel Vadot items: 815956d97fSEmmanuel Vadot - const: emc-parent 825956d97fSEmmanuel Vadot 835956d97fSEmmanuel Vadot required: 845956d97fSEmmanuel Vadot - clock-frequency 855956d97fSEmmanuel Vadot - nvidia,parent-clock-frequency 865956d97fSEmmanuel Vadot - clocks 875956d97fSEmmanuel Vadot - clock-names 885956d97fSEmmanuel Vadot 895956d97fSEmmanuel Vadot additionalProperties: false 905956d97fSEmmanuel Vadot 915956d97fSEmmanuel Vadot additionalProperties: false 925956d97fSEmmanuel Vadot 935956d97fSEmmanuel Vadotrequired: 945956d97fSEmmanuel Vadot - compatible 955956d97fSEmmanuel Vadot - reg 965956d97fSEmmanuel Vadot - '#clock-cells' 975956d97fSEmmanuel Vadot - "#reset-cells" 985956d97fSEmmanuel Vadot 995956d97fSEmmanuel VadotadditionalProperties: false 1005956d97fSEmmanuel Vadot 1015956d97fSEmmanuel Vadotexamples: 1025956d97fSEmmanuel Vadot - | 1035956d97fSEmmanuel Vadot #include <dt-bindings/clock/tegra124-car.h> 1045956d97fSEmmanuel Vadot 1055956d97fSEmmanuel Vadot car: clock-controller@60006000 { 1065956d97fSEmmanuel Vadot compatible = "nvidia,tegra124-car"; 1075956d97fSEmmanuel Vadot reg = <0x60006000 0x1000>; 1085956d97fSEmmanuel Vadot #clock-cells = <1>; 1095956d97fSEmmanuel Vadot #reset-cells = <1>; 1105956d97fSEmmanuel Vadot }; 111