120 lines · yaml
1# SPDX-License-Identifier: (GPL-2.0+ OR MIT)2%YAML 1.23---4$id: http://devicetree.org/schemas/clock/rockchip,px30-cru.yaml#5$schema: http://devicetree.org/meta-schemas/core.yaml#6 7title: Rockchip PX30 Clock and Reset Unit (CRU)8 9maintainers:10 - Elaine Zhang <zhangqing@rock-chips.com>11 - Heiko Stuebner <heiko@sntech.de>12 13description: |14 The PX30 clock controller generates and supplies clocks to various15 controllers within the SoC and also implements a reset controller for SoC16 peripherals.17 Each clock is assigned an identifier and client nodes can use this identifier18 to specify the clock which they consume. All available clocks are defined as19 preprocessor macros in the dt-bindings/clock/px30-cru.h headers and can be20 used in device tree sources. Similar macros exist for the reset sources in21 these files.22 There are several clocks that are generated outside the SoC. It is expected23 that they are defined using standard clock bindings with following24 clock-output-names:25 - "xin24m" - crystal input - required26 - "xin32k" - rtc clock - optional27 - "i2sx_clkin" - external I2S clock - optional28 - "gmac_clkin" - external GMAC clock - optional29 30properties:31 compatible:32 enum:33 - rockchip,px30-cru34 - rockchip,px30-pmucru35 36 reg:37 maxItems: 138 39 "#clock-cells":40 const: 141 42 "#reset-cells":43 const: 144 45 clocks:46 minItems: 147 items:48 - description: Clock for both PMUCRU and CRU49 - description: Clock for CRU (sourced from PMUCRU)50 51 clock-names:52 minItems: 153 items:54 - const: xin24m55 - const: gpll56 57 rockchip,grf:58 $ref: /schemas/types.yaml#/definitions/phandle59 description:60 Phandle to the syscon managing the "general register files" (GRF),61 if missing pll rates are not changeable, due to the missing pll62 lock status.63 64required:65 - compatible66 - reg67 - clocks68 - clock-names69 - "#clock-cells"70 - "#reset-cells"71 72allOf:73 - if:74 properties:75 compatible:76 contains:77 const: rockchip,px30-cru78 79 then:80 properties:81 clocks:82 minItems: 283 84 clock-names:85 minItems: 286 87 else:88 properties:89 clocks:90 maxItems: 191 92 clock-names:93 maxItems: 194 95additionalProperties: false96 97examples:98 - |99 #include <dt-bindings/clock/px30-cru.h>100 101 pmucru: clock-controller@ff2bc000 {102 compatible = "rockchip,px30-pmucru";103 reg = <0xff2bc000 0x1000>;104 clocks = <&xin24m>;105 clock-names = "xin24m";106 rockchip,grf = <&grf>;107 #clock-cells = <1>;108 #reset-cells = <1>;109 };110 111 cru: clock-controller@ff2b0000 {112 compatible = "rockchip,px30-cru";113 reg = <0xff2b0000 0x1000>;114 clocks = <&xin24m>, <&pmucru PLL_GPLL>;115 clock-names = "xin24m", "gpll";116 rockchip,grf = <&grf>;117 #clock-cells = <1>;118 #reset-cells = <1>;119 };120