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,tegra20-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: 305956d97fSEmmanuel Vadot enum: 315956d97fSEmmanuel Vadot - nvidia,tegra20-car 325956d97fSEmmanuel Vadot - nvidia,tegra30-car 335956d97fSEmmanuel Vadot - nvidia,tegra114-car 345956d97fSEmmanuel Vadot - nvidia,tegra210-car 355956d97fSEmmanuel Vadot 365956d97fSEmmanuel Vadot reg: 375956d97fSEmmanuel Vadot maxItems: 1 385956d97fSEmmanuel Vadot 395956d97fSEmmanuel Vadot '#clock-cells': 405956d97fSEmmanuel Vadot const: 1 415956d97fSEmmanuel Vadot 425956d97fSEmmanuel Vadot "#reset-cells": 435956d97fSEmmanuel Vadot const: 1 445956d97fSEmmanuel Vadot 45*e67e8565SEmmanuel VadotpatternProperties: 46*e67e8565SEmmanuel Vadot "^(sclk)|(pll-[cem])$": 47*e67e8565SEmmanuel Vadot type: object 48*e67e8565SEmmanuel Vadot properties: 49*e67e8565SEmmanuel Vadot compatible: 50*e67e8565SEmmanuel Vadot enum: 51*e67e8565SEmmanuel Vadot - nvidia,tegra20-sclk 52*e67e8565SEmmanuel Vadot - nvidia,tegra30-sclk 53*e67e8565SEmmanuel Vadot - nvidia,tegra30-pllc 54*e67e8565SEmmanuel Vadot - nvidia,tegra30-plle 55*e67e8565SEmmanuel Vadot - nvidia,tegra30-pllm 56*e67e8565SEmmanuel Vadot 57*e67e8565SEmmanuel Vadot operating-points-v2: true 58*e67e8565SEmmanuel Vadot 59*e67e8565SEmmanuel Vadot clocks: 60*e67e8565SEmmanuel Vadot items: 61*e67e8565SEmmanuel Vadot - description: node's clock 62*e67e8565SEmmanuel Vadot 63*e67e8565SEmmanuel Vadot power-domains: 64*e67e8565SEmmanuel Vadot maxItems: 1 65*e67e8565SEmmanuel Vadot description: phandle to the core SoC power domain 66*e67e8565SEmmanuel Vadot 67*e67e8565SEmmanuel Vadot required: 68*e67e8565SEmmanuel Vadot - compatible 69*e67e8565SEmmanuel Vadot - operating-points-v2 70*e67e8565SEmmanuel Vadot - clocks 71*e67e8565SEmmanuel Vadot - power-domains 72*e67e8565SEmmanuel Vadot 73*e67e8565SEmmanuel Vadot additionalProperties: false 74*e67e8565SEmmanuel Vadot 755956d97fSEmmanuel Vadotrequired: 765956d97fSEmmanuel Vadot - compatible 775956d97fSEmmanuel Vadot - reg 785956d97fSEmmanuel Vadot - '#clock-cells' 795956d97fSEmmanuel Vadot - "#reset-cells" 805956d97fSEmmanuel Vadot 815956d97fSEmmanuel VadotadditionalProperties: false 825956d97fSEmmanuel Vadot 835956d97fSEmmanuel Vadotexamples: 845956d97fSEmmanuel Vadot - | 855956d97fSEmmanuel Vadot #include <dt-bindings/clock/tegra20-car.h> 865956d97fSEmmanuel Vadot 875956d97fSEmmanuel Vadot car: clock-controller@60006000 { 885956d97fSEmmanuel Vadot compatible = "nvidia,tegra20-car"; 895956d97fSEmmanuel Vadot reg = <0x60006000 0x1000>; 905956d97fSEmmanuel Vadot #clock-cells = <1>; 915956d97fSEmmanuel Vadot #reset-cells = <1>; 92*e67e8565SEmmanuel Vadot 93*e67e8565SEmmanuel Vadot sclk { 94*e67e8565SEmmanuel Vadot compatible = "nvidia,tegra20-sclk"; 95*e67e8565SEmmanuel Vadot operating-points-v2 = <&opp_table>; 96*e67e8565SEmmanuel Vadot clocks = <&tegra_car TEGRA20_CLK_SCLK>; 97*e67e8565SEmmanuel Vadot power-domains = <&domain>; 98*e67e8565SEmmanuel Vadot }; 995956d97fSEmmanuel Vadot }; 100