xref: /freebsd/sys/contrib/device-tree/Bindings/clock/rockchip,rk3588-cru.yaml (revision 8bab661a3316d8bd9b9fbd11a3b4371b91507bd2)
1*8bab661aSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2*8bab661aSEmmanuel Vadot%YAML 1.2
3*8bab661aSEmmanuel Vadot---
4*8bab661aSEmmanuel Vadot$id: http://devicetree.org/schemas/clock/rockchip,rk3588-cru.yaml#
5*8bab661aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*8bab661aSEmmanuel Vadot
7*8bab661aSEmmanuel Vadottitle: Rockchip rk3588 Family Clock and Reset Control Module
8*8bab661aSEmmanuel Vadot
9*8bab661aSEmmanuel Vadotmaintainers:
10*8bab661aSEmmanuel Vadot  - Elaine Zhang <zhangqing@rock-chips.com>
11*8bab661aSEmmanuel Vadot  - Heiko Stuebner <heiko@sntech.de>
12*8bab661aSEmmanuel Vadot
13*8bab661aSEmmanuel Vadotdescription: |
14*8bab661aSEmmanuel Vadot  The RK3588 clock controller generates the clock and also implements a reset
15*8bab661aSEmmanuel Vadot  controller for SoC peripherals. For example it provides SCLK_UART2 and
16*8bab661aSEmmanuel Vadot  PCLK_UART2, as well as SRST_P_UART2 and SRST_S_UART2 for the second UART
17*8bab661aSEmmanuel Vadot  module.
18*8bab661aSEmmanuel Vadot  Each clock is assigned an identifier and client nodes can use this identifier
19*8bab661aSEmmanuel Vadot  to specify the clock which they consume. All available clock and reset IDs
20*8bab661aSEmmanuel Vadot  are defined as preprocessor macros in dt-binding headers.
21*8bab661aSEmmanuel Vadot
22*8bab661aSEmmanuel Vadotproperties:
23*8bab661aSEmmanuel Vadot  compatible:
24*8bab661aSEmmanuel Vadot    enum:
25*8bab661aSEmmanuel Vadot      - rockchip,rk3588-cru
26*8bab661aSEmmanuel Vadot
27*8bab661aSEmmanuel Vadot  reg:
28*8bab661aSEmmanuel Vadot    maxItems: 1
29*8bab661aSEmmanuel Vadot
30*8bab661aSEmmanuel Vadot  "#clock-cells":
31*8bab661aSEmmanuel Vadot    const: 1
32*8bab661aSEmmanuel Vadot
33*8bab661aSEmmanuel Vadot  "#reset-cells":
34*8bab661aSEmmanuel Vadot    const: 1
35*8bab661aSEmmanuel Vadot
36*8bab661aSEmmanuel Vadot  clocks:
37*8bab661aSEmmanuel Vadot    minItems: 2
38*8bab661aSEmmanuel Vadot    maxItems: 2
39*8bab661aSEmmanuel Vadot
40*8bab661aSEmmanuel Vadot  clock-names:
41*8bab661aSEmmanuel Vadot    items:
42*8bab661aSEmmanuel Vadot      - const: xin24m
43*8bab661aSEmmanuel Vadot      - const: xin32k
44*8bab661aSEmmanuel Vadot
45*8bab661aSEmmanuel Vadot  assigned-clocks: true
46*8bab661aSEmmanuel Vadot
47*8bab661aSEmmanuel Vadot  assigned-clock-rates: true
48*8bab661aSEmmanuel Vadot
49*8bab661aSEmmanuel Vadot  rockchip,grf:
50*8bab661aSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
51*8bab661aSEmmanuel Vadot    description: >
52*8bab661aSEmmanuel Vadot      phandle to the syscon managing the "general register files". It is used
53*8bab661aSEmmanuel Vadot      for GRF muxes, if missing any muxes present in the GRF will not be
54*8bab661aSEmmanuel Vadot      available.
55*8bab661aSEmmanuel Vadot
56*8bab661aSEmmanuel Vadotrequired:
57*8bab661aSEmmanuel Vadot  - compatible
58*8bab661aSEmmanuel Vadot  - reg
59*8bab661aSEmmanuel Vadot  - "#clock-cells"
60*8bab661aSEmmanuel Vadot  - "#reset-cells"
61*8bab661aSEmmanuel Vadot
62*8bab661aSEmmanuel VadotadditionalProperties: false
63*8bab661aSEmmanuel Vadot
64*8bab661aSEmmanuel Vadotexamples:
65*8bab661aSEmmanuel Vadot  - |
66*8bab661aSEmmanuel Vadot    cru: clock-controller@fd7c0000 {
67*8bab661aSEmmanuel Vadot      compatible = "rockchip,rk3588-cru";
68*8bab661aSEmmanuel Vadot      reg = <0xfd7c0000 0x5c000>;
69*8bab661aSEmmanuel Vadot      #clock-cells = <1>;
70*8bab661aSEmmanuel Vadot      #reset-cells = <1>;
71*8bab661aSEmmanuel Vadot    };
72