| # SPDX-License-Identifier: (GPL-2.0+ OR BSD-2-Clause) |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/clock/nvidia,tegra20-car.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: NVIDIA Tegra Clock and Reset Controller |
| |
| maintainers: |
| - Jon Hunter <jonathanh@nvidia.com> |
| - Thierry Reding <thierry.reding@gmail.com> |
| |
| description: | |
| The Clock and Reset (CAR) is the HW module responsible for muxing and gating |
| Tegra's clocks, and setting their rates. It comprises CLKGEN and RSTGEN units. |
| |
| CLKGEN provides the registers to program the PLLs. It controls most of |
| the clock source programming and most of the clock dividers. |
| |
| CLKGEN input signals include the external clock for the reference frequency |
| (12 MHz, 26 MHz) and the external clock for the Real Time Clock (32.768 KHz). |
| |
| Outputs from CLKGEN are inputs clock of the h/w blocks in the Tegra system. |
| |
| RSTGEN provides the registers needed to control resetting of each block in |
| the Tegra system. |
| |
| properties: |
| compatible: |
| enum: |
| - nvidia,tegra20-car |
| - nvidia,tegra30-car |
| - nvidia,tegra114-car |
| - nvidia,tegra210-car |
| |
| reg: |
| maxItems: 1 |
| |
| '#clock-cells': |
| const: 1 |
| |
| "#reset-cells": |
| const: 1 |
| |
| patternProperties: |
| "^(sclk)|(pll-[cem])$": |
| type: object |
| properties: |
| compatible: |
| enum: |
| - nvidia,tegra20-sclk |
| - nvidia,tegra30-sclk |
| - nvidia,tegra30-pllc |
| - nvidia,tegra30-plle |
| - nvidia,tegra30-pllm |
| |
| operating-points-v2: true |
| |
| clocks: |
| items: |
| - description: node's clock |
| |
| power-domains: |
| maxItems: 1 |
| description: phandle to the core SoC power domain |
| |
| required: |
| - compatible |
| - operating-points-v2 |
| - clocks |
| - power-domains |
| |
| additionalProperties: false |
| |
| required: |
| - compatible |
| - reg |
| - '#clock-cells' |
| - "#reset-cells" |
| |
| additionalProperties: false |
| |
| examples: |
| - | |
| #include <dt-bindings/clock/tegra20-car.h> |
| |
| car: clock-controller@60006000 { |
| compatible = "nvidia,tegra20-car"; |
| reg = <0x60006000 0x1000>; |
| #clock-cells = <1>; |
| #reset-cells = <1>; |
| |
| sclk { |
| compatible = "nvidia,tegra20-sclk"; |
| operating-points-v2 = <&opp_table>; |
| clocks = <&tegra_car TEGRA20_CLK_SCLK>; |
| power-domains = <&domain>; |
| }; |
| }; |