18d13bc63SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 28d13bc63SEmmanuel Vadot%YAML 1.2 38d13bc63SEmmanuel Vadot--- 48d13bc63SEmmanuel Vadot$id: http://devicetree.org/schemas/clock/google,gs101-clock.yaml# 58d13bc63SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 68d13bc63SEmmanuel Vadot 78d13bc63SEmmanuel Vadottitle: Google GS101 SoC clock controller 88d13bc63SEmmanuel Vadot 98d13bc63SEmmanuel Vadotmaintainers: 108d13bc63SEmmanuel Vadot - Peter Griffin <peter.griffin@linaro.org> 118d13bc63SEmmanuel Vadot 128d13bc63SEmmanuel Vadotdescription: | 138d13bc63SEmmanuel Vadot Google GS101 clock controller is comprised of several CMU units, generating 148d13bc63SEmmanuel Vadot clocks for different domains. Those CMU units are modeled as separate device 158d13bc63SEmmanuel Vadot tree nodes, and might depend on each other. The root clock in that clock tree 168d13bc63SEmmanuel Vadot is OSCCLK (24.576 MHz). That external clock must be defined as a fixed-rate 178d13bc63SEmmanuel Vadot clock in dts. 188d13bc63SEmmanuel Vadot 198d13bc63SEmmanuel Vadot CMU_TOP is a top-level CMU, where all base clocks are prepared using PLLs and 208d13bc63SEmmanuel Vadot dividers; all other leaf clocks (other CMUs) are usually derived from CMU_TOP. 218d13bc63SEmmanuel Vadot 228d13bc63SEmmanuel Vadot Each clock is assigned an identifier and client nodes can use this identifier 238d13bc63SEmmanuel Vadot to specify the clock which they consume. All clocks available for usage 248d13bc63SEmmanuel Vadot in clock consumer nodes are defined as preprocessor macros in 258d13bc63SEmmanuel Vadot 'dt-bindings/clock/gs101.h' header. 268d13bc63SEmmanuel Vadot 278d13bc63SEmmanuel Vadotproperties: 288d13bc63SEmmanuel Vadot compatible: 298d13bc63SEmmanuel Vadot enum: 308d13bc63SEmmanuel Vadot - google,gs101-cmu-top 318d13bc63SEmmanuel Vadot - google,gs101-cmu-apm 328d13bc63SEmmanuel Vadot - google,gs101-cmu-misc 33*7d0873ebSEmmanuel Vadot - google,gs101-cmu-hsi0 34*7d0873ebSEmmanuel Vadot - google,gs101-cmu-hsi2 3501950c46SEmmanuel Vadot - google,gs101-cmu-peric0 3601950c46SEmmanuel Vadot - google,gs101-cmu-peric1 378d13bc63SEmmanuel Vadot 388d13bc63SEmmanuel Vadot clocks: 398d13bc63SEmmanuel Vadot minItems: 1 40*7d0873ebSEmmanuel Vadot maxItems: 5 418d13bc63SEmmanuel Vadot 428d13bc63SEmmanuel Vadot clock-names: 438d13bc63SEmmanuel Vadot minItems: 1 44*7d0873ebSEmmanuel Vadot maxItems: 5 458d13bc63SEmmanuel Vadot 468d13bc63SEmmanuel Vadot "#clock-cells": 478d13bc63SEmmanuel Vadot const: 1 488d13bc63SEmmanuel Vadot 498d13bc63SEmmanuel Vadot reg: 508d13bc63SEmmanuel Vadot maxItems: 1 518d13bc63SEmmanuel Vadot 528d13bc63SEmmanuel Vadotrequired: 538d13bc63SEmmanuel Vadot - compatible 548d13bc63SEmmanuel Vadot - "#clock-cells" 558d13bc63SEmmanuel Vadot - clocks 568d13bc63SEmmanuel Vadot - clock-names 578d13bc63SEmmanuel Vadot - reg 588d13bc63SEmmanuel Vadot 598d13bc63SEmmanuel VadotallOf: 608d13bc63SEmmanuel Vadot - if: 618d13bc63SEmmanuel Vadot properties: 628d13bc63SEmmanuel Vadot compatible: 638d13bc63SEmmanuel Vadot contains: 648d13bc63SEmmanuel Vadot enum: 658d13bc63SEmmanuel Vadot - google,gs101-cmu-top 668d13bc63SEmmanuel Vadot - google,gs101-cmu-apm 678d13bc63SEmmanuel Vadot then: 688d13bc63SEmmanuel Vadot properties: 698d13bc63SEmmanuel Vadot clocks: 708d13bc63SEmmanuel Vadot items: 718d13bc63SEmmanuel Vadot - description: External reference clock (24.576 MHz) 728d13bc63SEmmanuel Vadot 738d13bc63SEmmanuel Vadot clock-names: 748d13bc63SEmmanuel Vadot items: 758d13bc63SEmmanuel Vadot - const: oscclk 768d13bc63SEmmanuel Vadot 778d13bc63SEmmanuel Vadot - if: 788d13bc63SEmmanuel Vadot properties: 798d13bc63SEmmanuel Vadot compatible: 808d13bc63SEmmanuel Vadot contains: 81*7d0873ebSEmmanuel Vadot const: google,gs101-cmu-hsi0 82*7d0873ebSEmmanuel Vadot 83*7d0873ebSEmmanuel Vadot then: 84*7d0873ebSEmmanuel Vadot properties: 85*7d0873ebSEmmanuel Vadot clocks: 86*7d0873ebSEmmanuel Vadot items: 87*7d0873ebSEmmanuel Vadot - description: External reference clock (24.576 MHz) 88*7d0873ebSEmmanuel Vadot - description: HSI0 bus clock (from CMU_TOP) 89*7d0873ebSEmmanuel Vadot - description: DPGTC (from CMU_TOP) 90*7d0873ebSEmmanuel Vadot - description: USB DRD controller clock (from CMU_TOP) 91*7d0873ebSEmmanuel Vadot - description: USB Display Port debug clock (from CMU_TOP) 92*7d0873ebSEmmanuel Vadot 93*7d0873ebSEmmanuel Vadot clock-names: 94*7d0873ebSEmmanuel Vadot items: 95*7d0873ebSEmmanuel Vadot - const: oscclk 96*7d0873ebSEmmanuel Vadot - const: bus 97*7d0873ebSEmmanuel Vadot - const: dpgtc 98*7d0873ebSEmmanuel Vadot - const: usb31drd 99*7d0873ebSEmmanuel Vadot - const: usbdpdbg 100*7d0873ebSEmmanuel Vadot 101*7d0873ebSEmmanuel Vadot - if: 102*7d0873ebSEmmanuel Vadot properties: 103*7d0873ebSEmmanuel Vadot compatible: 104*7d0873ebSEmmanuel Vadot contains: 105*7d0873ebSEmmanuel Vadot enum: 106*7d0873ebSEmmanuel Vadot - google,gs101-cmu-hsi2 107*7d0873ebSEmmanuel Vadot 108*7d0873ebSEmmanuel Vadot then: 109*7d0873ebSEmmanuel Vadot properties: 110*7d0873ebSEmmanuel Vadot clocks: 111*7d0873ebSEmmanuel Vadot items: 112*7d0873ebSEmmanuel Vadot - description: External reference clock (24.576 MHz) 113*7d0873ebSEmmanuel Vadot - description: High Speed Interface bus clock (from CMU_TOP) 114*7d0873ebSEmmanuel Vadot - description: High Speed Interface pcie clock (from CMU_TOP) 115*7d0873ebSEmmanuel Vadot - description: High Speed Interface ufs clock (from CMU_TOP) 116*7d0873ebSEmmanuel Vadot - description: High Speed Interface mmc clock (from CMU_TOP) 117*7d0873ebSEmmanuel Vadot 118*7d0873ebSEmmanuel Vadot clock-names: 119*7d0873ebSEmmanuel Vadot items: 120*7d0873ebSEmmanuel Vadot - const: oscclk 121*7d0873ebSEmmanuel Vadot - const: bus 122*7d0873ebSEmmanuel Vadot - const: pcie 123*7d0873ebSEmmanuel Vadot - const: ufs 124*7d0873ebSEmmanuel Vadot - const: mmc 125*7d0873ebSEmmanuel Vadot 126*7d0873ebSEmmanuel Vadot - if: 127*7d0873ebSEmmanuel Vadot properties: 128*7d0873ebSEmmanuel Vadot compatible: 129*7d0873ebSEmmanuel Vadot contains: 1308d13bc63SEmmanuel Vadot const: google,gs101-cmu-misc 1318d13bc63SEmmanuel Vadot 1328d13bc63SEmmanuel Vadot then: 1338d13bc63SEmmanuel Vadot properties: 1348d13bc63SEmmanuel Vadot clocks: 1358d13bc63SEmmanuel Vadot items: 1368d13bc63SEmmanuel Vadot - description: Misc bus clock (from CMU_TOP) 1378d13bc63SEmmanuel Vadot - description: Misc sss clock (from CMU_TOP) 1388d13bc63SEmmanuel Vadot 1398d13bc63SEmmanuel Vadot clock-names: 1408d13bc63SEmmanuel Vadot items: 1418d13bc63SEmmanuel Vadot - const: bus 1428d13bc63SEmmanuel Vadot - const: sss 1438d13bc63SEmmanuel Vadot 14401950c46SEmmanuel Vadot - if: 14501950c46SEmmanuel Vadot properties: 14601950c46SEmmanuel Vadot compatible: 14701950c46SEmmanuel Vadot contains: 14801950c46SEmmanuel Vadot enum: 14901950c46SEmmanuel Vadot - google,gs101-cmu-peric0 15001950c46SEmmanuel Vadot - google,gs101-cmu-peric1 15101950c46SEmmanuel Vadot 15201950c46SEmmanuel Vadot then: 15301950c46SEmmanuel Vadot properties: 15401950c46SEmmanuel Vadot clocks: 15501950c46SEmmanuel Vadot items: 15601950c46SEmmanuel Vadot - description: External reference clock (24.576 MHz) 15701950c46SEmmanuel Vadot - description: Connectivity Peripheral 0/1 bus clock (from CMU_TOP) 15801950c46SEmmanuel Vadot - description: Connectivity Peripheral 0/1 IP clock (from CMU_TOP) 15901950c46SEmmanuel Vadot 16001950c46SEmmanuel Vadot clock-names: 16101950c46SEmmanuel Vadot items: 16201950c46SEmmanuel Vadot - const: oscclk 16301950c46SEmmanuel Vadot - const: bus 16401950c46SEmmanuel Vadot - const: ip 16501950c46SEmmanuel Vadot 1668d13bc63SEmmanuel VadotadditionalProperties: false 1678d13bc63SEmmanuel Vadot 1688d13bc63SEmmanuel Vadotexamples: 1698d13bc63SEmmanuel Vadot # Clock controller node for CMU_TOP 1708d13bc63SEmmanuel Vadot - | 1718d13bc63SEmmanuel Vadot #include <dt-bindings/clock/google,gs101.h> 1728d13bc63SEmmanuel Vadot 1738d13bc63SEmmanuel Vadot cmu_top: clock-controller@1e080000 { 1748d13bc63SEmmanuel Vadot compatible = "google,gs101-cmu-top"; 1758d13bc63SEmmanuel Vadot reg = <0x1e080000 0x8000>; 1768d13bc63SEmmanuel Vadot #clock-cells = <1>; 1778d13bc63SEmmanuel Vadot clocks = <&ext_24_5m>; 1788d13bc63SEmmanuel Vadot clock-names = "oscclk"; 1798d13bc63SEmmanuel Vadot }; 1808d13bc63SEmmanuel Vadot 1818d13bc63SEmmanuel Vadot... 182