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,rk3228-cru.yaml# 5*d5b0e70fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*d5b0e70fSEmmanuel Vadot 7*d5b0e70fSEmmanuel Vadottitle: Rockchip RK3228 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 RK3228 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/rk3228-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 - "ext_i2s" - external I2S clock - optional 27*d5b0e70fSEmmanuel Vadot - "ext_gmac" - external GMAC clock - optional 28*d5b0e70fSEmmanuel Vadot - "ext_hsadc" - external HSADC clock - optional 29*d5b0e70fSEmmanuel Vadot - "phy_50m_out" - output clock of the pll in the mac phy 30*d5b0e70fSEmmanuel Vadot 31*d5b0e70fSEmmanuel Vadotproperties: 32*d5b0e70fSEmmanuel Vadot compatible: 33*d5b0e70fSEmmanuel Vadot enum: 34*d5b0e70fSEmmanuel Vadot - rockchip,rk3228-cru 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 maxItems: 1 47*d5b0e70fSEmmanuel Vadot 48*d5b0e70fSEmmanuel Vadot clock-names: 49*d5b0e70fSEmmanuel Vadot const: xin24m 50*d5b0e70fSEmmanuel Vadot 51*d5b0e70fSEmmanuel Vadot rockchip,grf: 52*d5b0e70fSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle 53*d5b0e70fSEmmanuel Vadot description: 54*d5b0e70fSEmmanuel Vadot Phandle to the syscon managing the "general register files" (GRF), 55*d5b0e70fSEmmanuel Vadot if missing pll rates are not changeable, due to the missing pll 56*d5b0e70fSEmmanuel Vadot lock status. 57*d5b0e70fSEmmanuel Vadot 58*d5b0e70fSEmmanuel Vadotrequired: 59*d5b0e70fSEmmanuel Vadot - compatible 60*d5b0e70fSEmmanuel Vadot - reg 61*d5b0e70fSEmmanuel Vadot - "#clock-cells" 62*d5b0e70fSEmmanuel Vadot - "#reset-cells" 63*d5b0e70fSEmmanuel Vadot 64*d5b0e70fSEmmanuel VadotadditionalProperties: false 65*d5b0e70fSEmmanuel Vadot 66*d5b0e70fSEmmanuel Vadotexamples: 67*d5b0e70fSEmmanuel Vadot - | 68*d5b0e70fSEmmanuel Vadot cru: clock-controller@20000000 { 69*d5b0e70fSEmmanuel Vadot compatible = "rockchip,rk3228-cru"; 70*d5b0e70fSEmmanuel Vadot reg = <0x20000000 0x1000>; 71*d5b0e70fSEmmanuel Vadot rockchip,grf = <&grf>; 72*d5b0e70fSEmmanuel Vadot #clock-cells = <1>; 73*d5b0e70fSEmmanuel Vadot #reset-cells = <1>; 74*d5b0e70fSEmmanuel Vadot }; 75