xref: /freebsd/sys/contrib/device-tree/Bindings/clock/nvidia,tegra20-car.yaml (revision 5956d97f4b3204318ceb6aa9c77bd0bc6ea87a41)
1*5956d97fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0+ OR BSD-2-Clause)
2*5956d97fSEmmanuel Vadot%YAML 1.2
3*5956d97fSEmmanuel Vadot---
4*5956d97fSEmmanuel Vadot$id: http://devicetree.org/schemas/clock/nvidia,tegra20-car.yaml#
5*5956d97fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*5956d97fSEmmanuel Vadot
7*5956d97fSEmmanuel Vadottitle: NVIDIA Tegra Clock and Reset Controller
8*5956d97fSEmmanuel Vadot
9*5956d97fSEmmanuel Vadotmaintainers:
10*5956d97fSEmmanuel Vadot  - Jon Hunter <jonathanh@nvidia.com>
11*5956d97fSEmmanuel Vadot  - Thierry Reding <thierry.reding@gmail.com>
12*5956d97fSEmmanuel Vadot
13*5956d97fSEmmanuel Vadotdescription: |
14*5956d97fSEmmanuel Vadot  The Clock and Reset (CAR) is the HW module responsible for muxing and gating
15*5956d97fSEmmanuel Vadot  Tegra's clocks, and setting their rates. It comprises CLKGEN and RSTGEN units.
16*5956d97fSEmmanuel Vadot
17*5956d97fSEmmanuel Vadot  CLKGEN provides the registers to program the PLLs. It controls most of
18*5956d97fSEmmanuel Vadot  the clock source programming and most of the clock dividers.
19*5956d97fSEmmanuel Vadot
20*5956d97fSEmmanuel Vadot  CLKGEN input signals include the external clock for the reference frequency
21*5956d97fSEmmanuel Vadot  (12 MHz, 26 MHz) and the external clock for the Real Time Clock (32.768 KHz).
22*5956d97fSEmmanuel Vadot
23*5956d97fSEmmanuel Vadot  Outputs from CLKGEN are inputs clock of the h/w blocks in the Tegra system.
24*5956d97fSEmmanuel Vadot
25*5956d97fSEmmanuel Vadot  RSTGEN provides the registers needed to control resetting of each block in
26*5956d97fSEmmanuel Vadot  the Tegra system.
27*5956d97fSEmmanuel Vadot
28*5956d97fSEmmanuel Vadotproperties:
29*5956d97fSEmmanuel Vadot  compatible:
30*5956d97fSEmmanuel Vadot    enum:
31*5956d97fSEmmanuel Vadot      - nvidia,tegra20-car
32*5956d97fSEmmanuel Vadot      - nvidia,tegra30-car
33*5956d97fSEmmanuel Vadot      - nvidia,tegra114-car
34*5956d97fSEmmanuel Vadot      - nvidia,tegra210-car
35*5956d97fSEmmanuel Vadot
36*5956d97fSEmmanuel Vadot  reg:
37*5956d97fSEmmanuel Vadot    maxItems: 1
38*5956d97fSEmmanuel Vadot
39*5956d97fSEmmanuel Vadot  '#clock-cells':
40*5956d97fSEmmanuel Vadot    const: 1
41*5956d97fSEmmanuel Vadot
42*5956d97fSEmmanuel Vadot  "#reset-cells":
43*5956d97fSEmmanuel Vadot    const: 1
44*5956d97fSEmmanuel Vadot
45*5956d97fSEmmanuel Vadotrequired:
46*5956d97fSEmmanuel Vadot  - compatible
47*5956d97fSEmmanuel Vadot  - reg
48*5956d97fSEmmanuel Vadot  - '#clock-cells'
49*5956d97fSEmmanuel Vadot  - "#reset-cells"
50*5956d97fSEmmanuel Vadot
51*5956d97fSEmmanuel VadotadditionalProperties: false
52*5956d97fSEmmanuel Vadot
53*5956d97fSEmmanuel Vadotexamples:
54*5956d97fSEmmanuel Vadot  - |
55*5956d97fSEmmanuel Vadot    #include <dt-bindings/clock/tegra20-car.h>
56*5956d97fSEmmanuel Vadot
57*5956d97fSEmmanuel Vadot    car: clock-controller@60006000 {
58*5956d97fSEmmanuel Vadot        compatible = "nvidia,tegra20-car";
59*5956d97fSEmmanuel Vadot        reg = <0x60006000 0x1000>;
60*5956d97fSEmmanuel Vadot        #clock-cells = <1>;
61*5956d97fSEmmanuel Vadot        #reset-cells = <1>;
62*5956d97fSEmmanuel Vadot    };
63*5956d97fSEmmanuel Vadot
64*5956d97fSEmmanuel Vadot    usb-controller@c5004000 {
65*5956d97fSEmmanuel Vadot        compatible = "nvidia,tegra20-ehci";
66*5956d97fSEmmanuel Vadot        reg = <0xc5004000 0x4000>;
67*5956d97fSEmmanuel Vadot        clocks = <&car TEGRA20_CLK_USB2>;
68*5956d97fSEmmanuel Vadot        resets = <&car TEGRA20_CLK_USB2>;
69*5956d97fSEmmanuel Vadot    };
70