162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/clock/rockchip,rk3588-cru.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Rockchip rk3588 Family Clock and Reset Control Module
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Elaine Zhang <zhangqing@rock-chips.com>
1162306a36Sopenharmony_ci  - Heiko Stuebner <heiko@sntech.de>
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_cidescription: |
1462306a36Sopenharmony_ci  The RK3588 clock controller generates the clock and also implements a reset
1562306a36Sopenharmony_ci  controller for SoC peripherals. For example it provides SCLK_UART2 and
1662306a36Sopenharmony_ci  PCLK_UART2, as well as SRST_P_UART2 and SRST_S_UART2 for the second UART
1762306a36Sopenharmony_ci  module.
1862306a36Sopenharmony_ci  Each clock is assigned an identifier and client nodes can use this identifier
1962306a36Sopenharmony_ci  to specify the clock which they consume. All available clock and reset IDs
2062306a36Sopenharmony_ci  are defined as preprocessor macros in dt-binding headers.
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ciproperties:
2362306a36Sopenharmony_ci  compatible:
2462306a36Sopenharmony_ci    enum:
2562306a36Sopenharmony_ci      - rockchip,rk3588-cru
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci  reg:
2862306a36Sopenharmony_ci    maxItems: 1
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci  "#clock-cells":
3162306a36Sopenharmony_ci    const: 1
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci  "#reset-cells":
3462306a36Sopenharmony_ci    const: 1
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci  clocks:
3762306a36Sopenharmony_ci    minItems: 2
3862306a36Sopenharmony_ci    maxItems: 2
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci  clock-names:
4162306a36Sopenharmony_ci    items:
4262306a36Sopenharmony_ci      - const: xin24m
4362306a36Sopenharmony_ci      - const: xin32k
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ci  assigned-clocks: true
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ci  assigned-clock-rates: true
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci  rockchip,grf:
5062306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/phandle
5162306a36Sopenharmony_ci    description: >
5262306a36Sopenharmony_ci      phandle to the syscon managing the "general register files". It is used
5362306a36Sopenharmony_ci      for GRF muxes, if missing any muxes present in the GRF will not be
5462306a36Sopenharmony_ci      available.
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_cirequired:
5762306a36Sopenharmony_ci  - compatible
5862306a36Sopenharmony_ci  - reg
5962306a36Sopenharmony_ci  - "#clock-cells"
6062306a36Sopenharmony_ci  - "#reset-cells"
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_ciadditionalProperties: false
6362306a36Sopenharmony_ci
6462306a36Sopenharmony_ciexamples:
6562306a36Sopenharmony_ci  - |
6662306a36Sopenharmony_ci    cru: clock-controller@fd7c0000 {
6762306a36Sopenharmony_ci      compatible = "rockchip,rk3588-cru";
6862306a36Sopenharmony_ci      reg = <0xfd7c0000 0x5c000>;
6962306a36Sopenharmony_ci      #clock-cells = <1>;
7062306a36Sopenharmony_ci      #reset-cells = <1>;
7162306a36Sopenharmony_ci    };
72