linux/Documentation/devicetree/bindings/clock/nvidia,tegra20-car.yaml
Dmitry Osipenko d0e70d1304 dt-bindings: clock: tegra-car: Document new clock sub-nodes
Document sub-nodes which describe Tegra SoC clocks that require a higher
voltage of the core power domain in order to operate properly on a higher
clock rates.  Each node contains a phandle to OPP table and power domain.

The root PLLs and system clocks don't have any specific device dedicated
to them, clock controller is in charge of managing power for them.

Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2021-12-17 14:58:05 +01:00

107 lines
2.5 KiB
YAML

# 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>;
};
};
usb-controller@c5004000 {
compatible = "nvidia,tegra20-ehci";
reg = <0xc5004000 0x4000>;
clocks = <&car TEGRA20_CLK_USB2>;
resets = <&car TEGRA20_CLK_USB2>;
};