1 # SPDX-License-Identifier: (GPL-2.0-only OR BS 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 %YAML 1.2 2 %YAML 1.2 3 --- 3 --- 4 $id: http://devicetree.org/schemas/clock/samsu 4 $id: http://devicetree.org/schemas/clock/samsung,exynos850-clock.yaml# 5 $schema: http://devicetree.org/meta-schemas/co 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 6 6 7 title: Samsung Exynos850 SoC clock controller 7 title: Samsung Exynos850 SoC clock controller 8 8 9 maintainers: 9 maintainers: 10 - Sam Protsenko <semen.protsenko@linaro.org> 10 - Sam Protsenko <semen.protsenko@linaro.org> 11 - Chanwoo Choi <cw00.choi@samsung.com> 11 - Chanwoo Choi <cw00.choi@samsung.com> 12 - Krzysztof Kozlowski <krzk@kernel.org> 12 - Krzysztof Kozlowski <krzk@kernel.org> 13 - Sylwester Nawrocki <s.nawrocki@samsung.com> 13 - Sylwester Nawrocki <s.nawrocki@samsung.com> 14 - Tomasz Figa <tomasz.figa@gmail.com> 14 - Tomasz Figa <tomasz.figa@gmail.com> 15 15 16 description: | 16 description: | 17 Exynos850 clock controller is comprised of s 17 Exynos850 clock controller is comprised of several CMU units, generating 18 clocks for different domains. Those CMU unit 18 clocks for different domains. Those CMU units are modeled as separate device 19 tree nodes, and might depend on each other. 19 tree nodes, and might depend on each other. Root clocks in that clock tree are 20 two external clocks:: OSCCLK (26 MHz) and RT 20 two external clocks:: OSCCLK (26 MHz) and RTCCLK (32768 Hz). Those external 21 clocks must be defined as fixed-rate clocks 21 clocks must be defined as fixed-rate clocks in dts. 22 22 23 CMU_TOP is a top-level CMU, where all base c 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) 24 dividers; all other leaf clocks (other CMUs) are usually derived from CMU_TOP. 25 25 26 Each clock is assigned an identifier and cli 26 Each clock is assigned an identifier and client nodes can use this identifier 27 to specify the clock which they consume. All 27 to specify the clock which they consume. All clocks available for usage 28 in clock consumer nodes are defined as prepr 28 in clock consumer nodes are defined as preprocessor macros in 29 'dt-bindings/clock/exynos850.h' header. 29 'dt-bindings/clock/exynos850.h' header. 30 30 31 properties: 31 properties: 32 compatible: 32 compatible: 33 enum: 33 enum: 34 - samsung,exynos850-cmu-top 34 - samsung,exynos850-cmu-top 35 - samsung,exynos850-cmu-apm 35 - samsung,exynos850-cmu-apm 36 - samsung,exynos850-cmu-aud << 37 - samsung,exynos850-cmu-cmgp 36 - samsung,exynos850-cmu-cmgp 38 - samsung,exynos850-cmu-core 37 - samsung,exynos850-cmu-core 39 - samsung,exynos850-cmu-cpucl0 << 40 - samsung,exynos850-cmu-cpucl1 << 41 - samsung,exynos850-cmu-dpu 38 - samsung,exynos850-cmu-dpu 42 - samsung,exynos850-cmu-g3d << 43 - samsung,exynos850-cmu-hsi 39 - samsung,exynos850-cmu-hsi 44 - samsung,exynos850-cmu-is << 45 - samsung,exynos850-cmu-mfcmscl << 46 - samsung,exynos850-cmu-peri 40 - samsung,exynos850-cmu-peri 47 41 48 clocks: 42 clocks: 49 minItems: 1 43 minItems: 1 50 maxItems: 5 44 maxItems: 5 51 45 52 clock-names: 46 clock-names: 53 minItems: 1 47 minItems: 1 54 maxItems: 5 48 maxItems: 5 55 49 56 "#clock-cells": 50 "#clock-cells": 57 const: 1 51 const: 1 58 52 59 reg: 53 reg: 60 maxItems: 1 54 maxItems: 1 61 55 62 allOf: 56 allOf: 63 - if: 57 - if: 64 properties: 58 properties: 65 compatible: 59 compatible: 66 contains: 60 contains: 67 const: samsung,exynos850-cmu-top 61 const: samsung,exynos850-cmu-top 68 62 69 then: 63 then: 70 properties: 64 properties: 71 clocks: 65 clocks: 72 items: 66 items: 73 - description: External reference 67 - description: External reference clock (26 MHz) 74 68 75 clock-names: 69 clock-names: 76 items: 70 items: 77 - const: oscclk 71 - const: oscclk 78 72 79 - if: 73 - if: 80 properties: 74 properties: 81 compatible: 75 compatible: 82 contains: 76 contains: 83 const: samsung,exynos850-cmu-apm 77 const: samsung,exynos850-cmu-apm 84 78 85 then: 79 then: 86 properties: 80 properties: 87 clocks: 81 clocks: 88 items: 82 items: 89 - description: External reference 83 - description: External reference clock (26 MHz) 90 - description: CMU_APM bus clock ( 84 - description: CMU_APM bus clock (from CMU_TOP) 91 85 92 clock-names: 86 clock-names: 93 items: 87 items: 94 - const: oscclk 88 - const: oscclk 95 - const: dout_clkcmu_apm_bus 89 - const: dout_clkcmu_apm_bus 96 90 97 - if: 91 - if: 98 properties: 92 properties: 99 compatible: 93 compatible: 100 contains: 94 contains: 101 const: samsung,exynos850-cmu-aud << 102 << 103 then: << 104 properties: << 105 clocks: << 106 items: << 107 - description: External reference << 108 - description: AUD clock (from CMU << 109 << 110 clock-names: << 111 items: << 112 - const: oscclk << 113 - const: dout_aud << 114 << 115 - if: << 116 properties: << 117 compatible: << 118 contains: << 119 const: samsung,exynos850-cmu-cmgp 95 const: samsung,exynos850-cmu-cmgp 120 96 121 then: 97 then: 122 properties: 98 properties: 123 clocks: 99 clocks: 124 items: 100 items: 125 - description: External reference 101 - description: External reference clock (26 MHz) 126 - description: CMU_CMGP bus clock 102 - description: CMU_CMGP bus clock (from CMU_APM) 127 103 128 clock-names: 104 clock-names: 129 items: 105 items: 130 - const: oscclk 106 - const: oscclk 131 - const: gout_clkcmu_cmgp_bus 107 - const: gout_clkcmu_cmgp_bus 132 108 133 - if: 109 - if: 134 properties: 110 properties: 135 compatible: 111 compatible: 136 contains: 112 contains: 137 const: samsung,exynos850-cmu-core 113 const: samsung,exynos850-cmu-core 138 114 139 then: 115 then: 140 properties: 116 properties: 141 clocks: 117 clocks: 142 items: 118 items: 143 - description: External reference 119 - description: External reference clock (26 MHz) 144 - description: CMU_CORE bus clock 120 - description: CMU_CORE bus clock (from CMU_TOP) 145 - description: CCI clock (from CMU 121 - description: CCI clock (from CMU_TOP) 146 - description: eMMC clock (from CM 122 - description: eMMC clock (from CMU_TOP) 147 - description: SSS clock (from CMU 123 - description: SSS clock (from CMU_TOP) 148 124 149 clock-names: 125 clock-names: 150 items: 126 items: 151 - const: oscclk 127 - const: oscclk 152 - const: dout_core_bus 128 - const: dout_core_bus 153 - const: dout_core_cci 129 - const: dout_core_cci 154 - const: dout_core_mmc_embd 130 - const: dout_core_mmc_embd 155 - const: dout_core_sss 131 - const: dout_core_sss 156 132 157 - if: 133 - if: 158 properties: 134 properties: 159 compatible: 135 compatible: 160 contains: 136 contains: 161 const: samsung,exynos850-cmu-cpucl << 162 << 163 then: << 164 properties: << 165 clocks: << 166 items: << 167 - description: External reference << 168 - description: CPUCL0 switch clock << 169 - description: CPUCL0 debug clock << 170 << 171 clock-names: << 172 items: << 173 - const: oscclk << 174 - const: dout_cpucl0_switch << 175 - const: dout_cpucl0_dbg << 176 << 177 - if: << 178 properties: << 179 compatible: << 180 contains: << 181 const: samsung,exynos850-cmu-cpucl << 182 << 183 then: << 184 properties: << 185 clocks: << 186 items: << 187 - description: External reference << 188 - description: CPUCL1 switch clock << 189 - description: CPUCL1 debug clock << 190 << 191 clock-names: << 192 items: << 193 - const: oscclk << 194 - const: dout_cpucl1_switch << 195 - const: dout_cpucl1_dbg << 196 << 197 - if: << 198 properties: << 199 compatible: << 200 contains: << 201 const: samsung,exynos850-cmu-dpu 137 const: samsung,exynos850-cmu-dpu 202 138 203 then: 139 then: 204 properties: 140 properties: 205 clocks: 141 clocks: 206 items: 142 items: 207 - description: External reference 143 - description: External reference clock (26 MHz) 208 - description: DPU clock (from CMU 144 - description: DPU clock (from CMU_TOP) 209 145 210 clock-names: 146 clock-names: 211 items: 147 items: 212 - const: oscclk 148 - const: oscclk 213 - const: dout_dpu 149 - const: dout_dpu 214 150 215 - if: 151 - if: 216 properties: 152 properties: 217 compatible: 153 compatible: 218 contains: 154 contains: 219 const: samsung,exynos850-cmu-g3d << 220 << 221 then: << 222 properties: << 223 clocks: << 224 items: << 225 - description: External reference << 226 - description: G3D clock (from CMU << 227 << 228 clock-names: << 229 items: << 230 - const: oscclk << 231 - const: dout_g3d_switch << 232 << 233 - if: << 234 properties: << 235 compatible: << 236 contains: << 237 const: samsung,exynos850-cmu-hsi 155 const: samsung,exynos850-cmu-hsi 238 156 239 then: 157 then: 240 properties: 158 properties: 241 clocks: 159 clocks: 242 items: 160 items: 243 - description: External reference 161 - description: External reference clock (26 MHz) 244 - description: External RTC clock 162 - description: External RTC clock (32768 Hz) 245 - description: CMU_HSI bus clock ( 163 - description: CMU_HSI bus clock (from CMU_TOP) 246 - description: SD card clock (from 164 - description: SD card clock (from CMU_TOP) 247 - description: USB 2.0 DRD clock ( !! 165 - description: "USB 2.0 DRD clock (from CMU_TOP)" 248 166 249 clock-names: 167 clock-names: 250 items: 168 items: 251 - const: oscclk 169 - const: oscclk 252 - const: rtcclk 170 - const: rtcclk 253 - const: dout_hsi_bus 171 - const: dout_hsi_bus 254 - const: dout_hsi_mmc_card 172 - const: dout_hsi_mmc_card 255 - const: dout_hsi_usb20drd 173 - const: dout_hsi_usb20drd 256 << 257 - if: << 258 properties: << 259 compatible: << 260 contains: << 261 const: samsung,exynos850-cmu-is << 262 << 263 then: << 264 properties: << 265 clocks: << 266 items: << 267 - description: External reference << 268 - description: CMU_IS bus clock (f << 269 - description: Image Texture Proce << 270 - description: Visual Recognition << 271 - description: Geometric Distortio << 272 << 273 clock-names: << 274 items: << 275 - const: oscclk << 276 - const: dout_is_bus << 277 - const: dout_is_itp << 278 - const: dout_is_vra << 279 - const: dout_is_gdc << 280 << 281 - if: << 282 properties: << 283 compatible: << 284 contains: << 285 const: samsung,exynos850-cmu-mfcms << 286 << 287 then: << 288 properties: << 289 clocks: << 290 items: << 291 - description: External reference << 292 - description: Multi-Format Codec << 293 - description: Memory to Memory Sc << 294 - description: Multi-Channel Scale << 295 - description: JPEG codec clock (f << 296 << 297 clock-names: << 298 items: << 299 - const: oscclk << 300 - const: dout_mfcmscl_mfc << 301 - const: dout_mfcmscl_m2m << 302 - const: dout_mfcmscl_mcsc << 303 - const: dout_mfcmscl_jpeg << 304 174 305 - if: 175 - if: 306 properties: 176 properties: 307 compatible: 177 compatible: 308 contains: 178 contains: 309 const: samsung,exynos850-cmu-peri 179 const: samsung,exynos850-cmu-peri 310 180 311 then: 181 then: 312 properties: 182 properties: 313 clocks: 183 clocks: 314 items: 184 items: 315 - description: External reference 185 - description: External reference clock (26 MHz) 316 - description: CMU_PERI bus clock 186 - description: CMU_PERI bus clock (from CMU_TOP) 317 - description: UART clock (from CM 187 - description: UART clock (from CMU_TOP) 318 - description: Parent clock for HS 188 - description: Parent clock for HSI2C and SPI (from CMU_TOP) 319 189 320 clock-names: 190 clock-names: 321 items: 191 items: 322 - const: oscclk 192 - const: oscclk 323 - const: dout_peri_bus 193 - const: dout_peri_bus 324 - const: dout_peri_uart 194 - const: dout_peri_uart 325 - const: dout_peri_ip 195 - const: dout_peri_ip 326 196 327 required: 197 required: 328 - compatible 198 - compatible 329 - "#clock-cells" 199 - "#clock-cells" 330 - clocks 200 - clocks 331 - clock-names 201 - clock-names 332 - reg 202 - reg 333 203 334 additionalProperties: false 204 additionalProperties: false 335 205 336 examples: 206 examples: 337 # Clock controller node for CMU_PERI 207 # Clock controller node for CMU_PERI 338 - | 208 - | 339 #include <dt-bindings/clock/exynos850.h> 209 #include <dt-bindings/clock/exynos850.h> 340 210 341 cmu_peri: clock-controller@10030000 { 211 cmu_peri: clock-controller@10030000 { 342 compatible = "samsung,exynos850-cmu-pe 212 compatible = "samsung,exynos850-cmu-peri"; 343 reg = <0x10030000 0x8000>; 213 reg = <0x10030000 0x8000>; 344 #clock-cells = <1>; 214 #clock-cells = <1>; 345 215 346 clocks = <&oscclk>, <&cmu_top CLK_DOUT 216 clocks = <&oscclk>, <&cmu_top CLK_DOUT_PERI_BUS>, 347 <&cmu_top CLK_DOUT_PERI_UART> 217 <&cmu_top CLK_DOUT_PERI_UART>, 348 <&cmu_top CLK_DOUT_PERI_IP>; 218 <&cmu_top CLK_DOUT_PERI_IP>; 349 clock-names = "oscclk", "dout_peri_bus 219 clock-names = "oscclk", "dout_peri_bus", 350 "dout_peri_uart", "dout_ 220 "dout_peri_uart", "dout_peri_ip"; 351 }; 221 }; 352 222 353 ... 223 ...
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.