1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/clock/samsung,exynos850-clock.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Samsung Exynos850 SoC clock controller 8 9maintainers: 10 - Sam Protsenko <semen.protsenko@linaro.org> 11 - Chanwoo Choi <cw00.choi@samsung.com> 12 - Krzysztof Kozlowski <krzk@kernel.org> 13 - Sylwester Nawrocki <s.nawrocki@samsung.com> 14 - Tomasz Figa <tomasz.figa@gmail.com> 15 16description: | 17 Exynos850 clock controller is comprised of several CMU units, generating 18 clocks for different domains. Those CMU units are modeled as separate device 19 tree nodes, and might depend on each other. Root clocks in that clock tree are 20 two external clocks:: OSCCLK (26 MHz) and RTCCLK (32768 Hz). Those external 21 clocks must be defined as fixed-rate clocks in dts. 22 23 CMU_TOP is a top-level CMU, where all base clocks are prepared using PLLs and 24 dividers; all other leaf clocks (other CMUs) are usually derived from CMU_TOP. 25 26 Each clock is assigned an identifier and client nodes can use this identifier 27 to specify the clock which they consume. All clocks available for usage 28 in clock consumer nodes are defined as preprocessor macros in 29 'dt-bindings/clock/exynos850.h' header. 30 31properties: 32 compatible: 33 enum: 34 - samsung,exynos850-cmu-top 35 - samsung,exynos850-cmu-apm 36 - samsung,exynos850-cmu-cmgp 37 - samsung,exynos850-cmu-core 38 - samsung,exynos850-cmu-dpu 39 - samsung,exynos850-cmu-hsi 40 - samsung,exynos850-cmu-peri 41 42 clocks: 43 minItems: 1 44 maxItems: 5 45 46 clock-names: 47 minItems: 1 48 maxItems: 5 49 50 "#clock-cells": 51 const: 1 52 53 reg: 54 maxItems: 1 55 56allOf: 57 - if: 58 properties: 59 compatible: 60 contains: 61 const: samsung,exynos850-cmu-top 62 63 then: 64 properties: 65 clocks: 66 items: 67 - description: External reference clock (26 MHz) 68 69 clock-names: 70 items: 71 - const: oscclk 72 73 - if: 74 properties: 75 compatible: 76 contains: 77 const: samsung,exynos850-cmu-apm 78 79 then: 80 properties: 81 clocks: 82 items: 83 - description: External reference clock (26 MHz) 84 - description: CMU_APM bus clock (from CMU_TOP) 85 86 clock-names: 87 items: 88 - const: oscclk 89 - const: dout_clkcmu_apm_bus 90 91 - if: 92 properties: 93 compatible: 94 contains: 95 const: samsung,exynos850-cmu-cmgp 96 97 then: 98 properties: 99 clocks: 100 items: 101 - description: External reference clock (26 MHz) 102 - description: CMU_CMGP bus clock (from CMU_APM) 103 104 clock-names: 105 items: 106 - const: oscclk 107 - const: gout_clkcmu_cmgp_bus 108 109 - if: 110 properties: 111 compatible: 112 contains: 113 const: samsung,exynos850-cmu-core 114 115 then: 116 properties: 117 clocks: 118 items: 119 - description: External reference clock (26 MHz) 120 - description: CMU_CORE bus clock (from CMU_TOP) 121 - description: CCI clock (from CMU_TOP) 122 - description: eMMC clock (from CMU_TOP) 123 - description: SSS clock (from CMU_TOP) 124 125 clock-names: 126 items: 127 - const: oscclk 128 - const: dout_core_bus 129 - const: dout_core_cci 130 - const: dout_core_mmc_embd 131 - const: dout_core_sss 132 133 - if: 134 properties: 135 compatible: 136 contains: 137 const: samsung,exynos850-cmu-dpu 138 139 then: 140 properties: 141 clocks: 142 items: 143 - description: External reference clock (26 MHz) 144 - description: DPU clock (from CMU_TOP) 145 146 clock-names: 147 items: 148 - const: oscclk 149 - const: dout_dpu 150 151 - if: 152 properties: 153 compatible: 154 contains: 155 const: samsung,exynos850-cmu-hsi 156 157 then: 158 properties: 159 clocks: 160 items: 161 - description: External reference clock (26 MHz) 162 - description: External RTC clock (32768 Hz) 163 - description: CMU_HSI bus clock (from CMU_TOP) 164 - description: SD card clock (from CMU_TOP) 165 - description: "USB 2.0 DRD clock (from CMU_TOP)" 166 167 clock-names: 168 items: 169 - const: oscclk 170 - const: rtcclk 171 - const: dout_hsi_bus 172 - const: dout_hsi_mmc_card 173 - const: dout_hsi_usb20drd 174 175 - if: 176 properties: 177 compatible: 178 contains: 179 const: samsung,exynos850-cmu-peri 180 181 then: 182 properties: 183 clocks: 184 items: 185 - description: External reference clock (26 MHz) 186 - description: CMU_PERI bus clock (from CMU_TOP) 187 - description: UART clock (from CMU_TOP) 188 - description: Parent clock for HSI2C and SPI (from CMU_TOP) 189 190 clock-names: 191 items: 192 - const: oscclk 193 - const: dout_peri_bus 194 - const: dout_peri_uart 195 - const: dout_peri_ip 196 197required: 198 - compatible 199 - "#clock-cells" 200 - clocks 201 - clock-names 202 - reg 203 204additionalProperties: false 205 206examples: 207 # Clock controller node for CMU_PERI 208 - | 209 #include <dt-bindings/clock/exynos850.h> 210 211 cmu_peri: clock-controller@10030000 { 212 compatible = "samsung,exynos850-cmu-peri"; 213 reg = <0x10030000 0x8000>; 214 #clock-cells = <1>; 215 216 clocks = <&oscclk>, <&cmu_top CLK_DOUT_PERI_BUS>, 217 <&cmu_top CLK_DOUT_PERI_UART>, 218 <&cmu_top CLK_DOUT_PERI_IP>; 219 clock-names = "oscclk", "dout_peri_bus", 220 "dout_peri_uart", "dout_peri_ip"; 221 }; 222 223... 224