xref: /freebsd/sys/contrib/device-tree/Bindings/clock/nvidia,tegra20-car.yaml (revision c9ccf3a32da427475985b85d7df023ccfb138c27)
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