1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/clock/google,gs101-clock.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Google GS101 SoC clock controller 8 9maintainers: 10 - Peter Griffin <peter.griffin@linaro.org> 11 12description: | 13 Google GS101 clock controller is comprised of several CMU units, generating 14 clocks for different domains. Those CMU units are modeled as separate device 15 tree nodes, and might depend on each other. The root clock in that clock tree 16 is OSCCLK (24.576 MHz). That external clock must be defined as a fixed-rate 17 clock in dts. 18 19 CMU_TOP is a top-level CMU, where all base clocks are prepared using PLLs and 20 dividers; all other leaf clocks (other CMUs) are usually derived from CMU_TOP. 21 22 Each clock is assigned an identifier and client nodes can use this identifier 23 to specify the clock which they consume. All clocks available for usage 24 in clock consumer nodes are defined as preprocessor macros in 25 'dt-bindings/clock/gs101.h' header. 26 27properties: 28 compatible: 29 enum: 30 - google,gs101-cmu-top 31 - google,gs101-cmu-apm 32 - google,gs101-cmu-misc 33 - google,gs101-cmu-peric0 34 - google,gs101-cmu-peric1 35 36 clocks: 37 minItems: 1 38 maxItems: 3 39 40 clock-names: 41 minItems: 1 42 maxItems: 3 43 44 "#clock-cells": 45 const: 1 46 47 reg: 48 maxItems: 1 49 50required: 51 - compatible 52 - "#clock-cells" 53 - clocks 54 - clock-names 55 - reg 56 57allOf: 58 - if: 59 properties: 60 compatible: 61 contains: 62 enum: 63 - google,gs101-cmu-top 64 - google,gs101-cmu-apm 65 then: 66 properties: 67 clocks: 68 items: 69 - description: External reference clock (24.576 MHz) 70 71 clock-names: 72 items: 73 - const: oscclk 74 75 - if: 76 properties: 77 compatible: 78 contains: 79 const: google,gs101-cmu-misc 80 81 then: 82 properties: 83 clocks: 84 items: 85 - description: Misc bus clock (from CMU_TOP) 86 - description: Misc sss clock (from CMU_TOP) 87 88 clock-names: 89 items: 90 - const: bus 91 - const: sss 92 93 - if: 94 properties: 95 compatible: 96 contains: 97 enum: 98 - google,gs101-cmu-peric0 99 - google,gs101-cmu-peric1 100 101 then: 102 properties: 103 clocks: 104 items: 105 - description: External reference clock (24.576 MHz) 106 - description: Connectivity Peripheral 0/1 bus clock (from CMU_TOP) 107 - description: Connectivity Peripheral 0/1 IP clock (from CMU_TOP) 108 109 clock-names: 110 items: 111 - const: oscclk 112 - const: bus 113 - const: ip 114 115additionalProperties: false 116 117examples: 118 # Clock controller node for CMU_TOP 119 - | 120 #include <dt-bindings/clock/google,gs101.h> 121 122 cmu_top: clock-controller@1e080000 { 123 compatible = "google,gs101-cmu-top"; 124 reg = <0x1e080000 0x8000>; 125 #clock-cells = <1>; 126 clocks = <&ext_24_5m>; 127 clock-names = "oscclk"; 128 }; 129 130... 131