xref: /freebsd/sys/contrib/device-tree/Bindings/clock/rockchip,px30-cru.yaml (revision d5b0e70f7e04d971691517ce1304d86a1e367e2e)
1*d5b0e70fSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0
2*d5b0e70fSEmmanuel Vadot%YAML 1.2
3*d5b0e70fSEmmanuel Vadot---
4*d5b0e70fSEmmanuel Vadot$id: http://devicetree.org/schemas/clock/rockchip,px30-cru.yaml#
5*d5b0e70fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*d5b0e70fSEmmanuel Vadot
7*d5b0e70fSEmmanuel Vadottitle: Rockchip PX30 Clock and Reset Unit (CRU)
8*d5b0e70fSEmmanuel Vadot
9*d5b0e70fSEmmanuel Vadotmaintainers:
10*d5b0e70fSEmmanuel Vadot  - Elaine Zhang <zhangqing@rock-chips.com>
11*d5b0e70fSEmmanuel Vadot  - Heiko Stuebner <heiko@sntech.de>
12*d5b0e70fSEmmanuel Vadot
13*d5b0e70fSEmmanuel Vadotdescription: |
14*d5b0e70fSEmmanuel Vadot  The PX30 clock controller generates and supplies clocks to various
15*d5b0e70fSEmmanuel Vadot  controllers within the SoC and also implements a reset controller for SoC
16*d5b0e70fSEmmanuel Vadot  peripherals.
17*d5b0e70fSEmmanuel Vadot  Each clock is assigned an identifier and client nodes can use this identifier
18*d5b0e70fSEmmanuel Vadot  to specify the clock which they consume. All available clocks are defined as
19*d5b0e70fSEmmanuel Vadot  preprocessor macros in the dt-bindings/clock/px30-cru.h headers and can be
20*d5b0e70fSEmmanuel Vadot  used in device tree sources. Similar macros exist for the reset sources in
21*d5b0e70fSEmmanuel Vadot  these files.
22*d5b0e70fSEmmanuel Vadot  There are several clocks that are generated outside the SoC. It is expected
23*d5b0e70fSEmmanuel Vadot  that they are defined using standard clock bindings with following
24*d5b0e70fSEmmanuel Vadot  clock-output-names:
25*d5b0e70fSEmmanuel Vadot    - "xin24m"     - crystal input       - required
26*d5b0e70fSEmmanuel Vadot    - "xin32k"     - rtc clock           - optional
27*d5b0e70fSEmmanuel Vadot    - "i2sx_clkin" - external I2S clock  - optional
28*d5b0e70fSEmmanuel Vadot    - "gmac_clkin" - external GMAC clock - optional
29*d5b0e70fSEmmanuel Vadot
30*d5b0e70fSEmmanuel Vadotproperties:
31*d5b0e70fSEmmanuel Vadot  compatible:
32*d5b0e70fSEmmanuel Vadot    enum:
33*d5b0e70fSEmmanuel Vadot      - rockchip,px30-cru
34*d5b0e70fSEmmanuel Vadot      - rockchip,px30-pmucru
35*d5b0e70fSEmmanuel Vadot
36*d5b0e70fSEmmanuel Vadot  reg:
37*d5b0e70fSEmmanuel Vadot    maxItems: 1
38*d5b0e70fSEmmanuel Vadot
39*d5b0e70fSEmmanuel Vadot  "#clock-cells":
40*d5b0e70fSEmmanuel Vadot    const: 1
41*d5b0e70fSEmmanuel Vadot
42*d5b0e70fSEmmanuel Vadot  "#reset-cells":
43*d5b0e70fSEmmanuel Vadot    const: 1
44*d5b0e70fSEmmanuel Vadot
45*d5b0e70fSEmmanuel Vadot  clocks:
46*d5b0e70fSEmmanuel Vadot    minItems: 1
47*d5b0e70fSEmmanuel Vadot    items:
48*d5b0e70fSEmmanuel Vadot      - description: Clock for both PMUCRU and CRU
49*d5b0e70fSEmmanuel Vadot      - description: Clock for CRU (sourced from PMUCRU)
50*d5b0e70fSEmmanuel Vadot
51*d5b0e70fSEmmanuel Vadot  clock-names:
52*d5b0e70fSEmmanuel Vadot    minItems: 1
53*d5b0e70fSEmmanuel Vadot    items:
54*d5b0e70fSEmmanuel Vadot      - const: xin24m
55*d5b0e70fSEmmanuel Vadot      - const: gpll
56*d5b0e70fSEmmanuel Vadot
57*d5b0e70fSEmmanuel Vadot  rockchip,grf:
58*d5b0e70fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
59*d5b0e70fSEmmanuel Vadot    description:
60*d5b0e70fSEmmanuel Vadot      Phandle to the syscon managing the "general register files" (GRF),
61*d5b0e70fSEmmanuel Vadot      if missing pll rates are not changeable, due to the missing pll
62*d5b0e70fSEmmanuel Vadot      lock status.
63*d5b0e70fSEmmanuel Vadot
64*d5b0e70fSEmmanuel Vadotrequired:
65*d5b0e70fSEmmanuel Vadot  - compatible
66*d5b0e70fSEmmanuel Vadot  - reg
67*d5b0e70fSEmmanuel Vadot  - clocks
68*d5b0e70fSEmmanuel Vadot  - clock-names
69*d5b0e70fSEmmanuel Vadot  - "#clock-cells"
70*d5b0e70fSEmmanuel Vadot  - "#reset-cells"
71*d5b0e70fSEmmanuel Vadot
72*d5b0e70fSEmmanuel VadotallOf:
73*d5b0e70fSEmmanuel Vadot  - if:
74*d5b0e70fSEmmanuel Vadot      properties:
75*d5b0e70fSEmmanuel Vadot        compatible:
76*d5b0e70fSEmmanuel Vadot          contains:
77*d5b0e70fSEmmanuel Vadot            const: rockchip,px30-cru
78*d5b0e70fSEmmanuel Vadot
79*d5b0e70fSEmmanuel Vadot    then:
80*d5b0e70fSEmmanuel Vadot      properties:
81*d5b0e70fSEmmanuel Vadot        clocks:
82*d5b0e70fSEmmanuel Vadot          minItems: 2
83*d5b0e70fSEmmanuel Vadot
84*d5b0e70fSEmmanuel Vadot        clock-names:
85*d5b0e70fSEmmanuel Vadot          minItems: 2
86*d5b0e70fSEmmanuel Vadot
87*d5b0e70fSEmmanuel Vadot    else:
88*d5b0e70fSEmmanuel Vadot      properties:
89*d5b0e70fSEmmanuel Vadot        clocks:
90*d5b0e70fSEmmanuel Vadot          maxItems: 1
91*d5b0e70fSEmmanuel Vadot
92*d5b0e70fSEmmanuel Vadot        clock-names:
93*d5b0e70fSEmmanuel Vadot          maxItems: 1
94*d5b0e70fSEmmanuel Vadot
95*d5b0e70fSEmmanuel VadotadditionalProperties: false
96*d5b0e70fSEmmanuel Vadot
97*d5b0e70fSEmmanuel Vadotexamples:
98*d5b0e70fSEmmanuel Vadot  - |
99*d5b0e70fSEmmanuel Vadot    #include <dt-bindings/clock/px30-cru.h>
100*d5b0e70fSEmmanuel Vadot
101*d5b0e70fSEmmanuel Vadot    pmucru: clock-controller@ff2bc000 {
102*d5b0e70fSEmmanuel Vadot      compatible = "rockchip,px30-pmucru";
103*d5b0e70fSEmmanuel Vadot      reg = <0xff2bc000 0x1000>;
104*d5b0e70fSEmmanuel Vadot      clocks = <&xin24m>;
105*d5b0e70fSEmmanuel Vadot      clock-names = "xin24m";
106*d5b0e70fSEmmanuel Vadot      rockchip,grf = <&grf>;
107*d5b0e70fSEmmanuel Vadot      #clock-cells = <1>;
108*d5b0e70fSEmmanuel Vadot      #reset-cells = <1>;
109*d5b0e70fSEmmanuel Vadot    };
110*d5b0e70fSEmmanuel Vadot
111*d5b0e70fSEmmanuel Vadot    cru: clock-controller@ff2b0000 {
112*d5b0e70fSEmmanuel Vadot      compatible = "rockchip,px30-cru";
113*d5b0e70fSEmmanuel Vadot      reg = <0xff2b0000 0x1000>;
114*d5b0e70fSEmmanuel Vadot      clocks = <&xin24m>, <&pmucru PLL_GPLL>;
115*d5b0e70fSEmmanuel Vadot      clock-names = "xin24m", "gpll";
116*d5b0e70fSEmmanuel Vadot      rockchip,grf = <&grf>;
117*d5b0e70fSEmmanuel Vadot      #clock-cells = <1>;
118*d5b0e70fSEmmanuel Vadot      #reset-cells = <1>;
119*d5b0e70fSEmmanuel Vadot    };
120