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 36 - samsung,exynos850-cmu-aud 37 - samsung,exynos850-cmu-cmgp 37 - samsung,exynos850-cmu-cmgp 38 - samsung,exynos850-cmu-core 38 - samsung,exynos850-cmu-core 39 - samsung,exynos850-cmu-cpucl0 << 40 - samsung,exynos850-cmu-cpucl1 << 41 - samsung,exynos850-cmu-dpu 39 - samsung,exynos850-cmu-dpu 42 - samsung,exynos850-cmu-g3d << 43 - samsung,exynos850-cmu-hsi 40 - samsung,exynos850-cmu-hsi 44 - samsung,exynos850-cmu-is 41 - samsung,exynos850-cmu-is 45 - samsung,exynos850-cmu-mfcmscl 42 - samsung,exynos850-cmu-mfcmscl 46 - samsung,exynos850-cmu-peri 43 - samsung,exynos850-cmu-peri 47 44 48 clocks: 45 clocks: 49 minItems: 1 46 minItems: 1 50 maxItems: 5 47 maxItems: 5 51 48 52 clock-names: 49 clock-names: 53 minItems: 1 50 minItems: 1 54 maxItems: 5 51 maxItems: 5 55 52 56 "#clock-cells": 53 "#clock-cells": 57 const: 1 54 const: 1 58 55 59 reg: 56 reg: 60 maxItems: 1 57 maxItems: 1 61 58 62 allOf: 59 allOf: 63 - if: 60 - if: 64 properties: 61 properties: 65 compatible: 62 compatible: 66 contains: 63 contains: 67 const: samsung,exynos850-cmu-top 64 const: samsung,exynos850-cmu-top 68 65 69 then: 66 then: 70 properties: 67 properties: 71 clocks: 68 clocks: 72 items: 69 items: 73 - description: External reference 70 - description: External reference clock (26 MHz) 74 71 75 clock-names: 72 clock-names: 76 items: 73 items: 77 - const: oscclk 74 - const: oscclk 78 75 79 - if: 76 - if: 80 properties: 77 properties: 81 compatible: 78 compatible: 82 contains: 79 contains: 83 const: samsung,exynos850-cmu-apm 80 const: samsung,exynos850-cmu-apm 84 81 85 then: 82 then: 86 properties: 83 properties: 87 clocks: 84 clocks: 88 items: 85 items: 89 - description: External reference 86 - description: External reference clock (26 MHz) 90 - description: CMU_APM bus clock ( 87 - description: CMU_APM bus clock (from CMU_TOP) 91 88 92 clock-names: 89 clock-names: 93 items: 90 items: 94 - const: oscclk 91 - const: oscclk 95 - const: dout_clkcmu_apm_bus 92 - const: dout_clkcmu_apm_bus 96 93 97 - if: 94 - if: 98 properties: 95 properties: 99 compatible: 96 compatible: 100 contains: 97 contains: 101 const: samsung,exynos850-cmu-aud 98 const: samsung,exynos850-cmu-aud 102 99 103 then: 100 then: 104 properties: 101 properties: 105 clocks: 102 clocks: 106 items: 103 items: 107 - description: External reference 104 - description: External reference clock (26 MHz) 108 - description: AUD clock (from CMU 105 - description: AUD clock (from CMU_TOP) 109 106 110 clock-names: 107 clock-names: 111 items: 108 items: 112 - const: oscclk 109 - const: oscclk 113 - const: dout_aud 110 - const: dout_aud 114 111 115 - if: 112 - if: 116 properties: 113 properties: 117 compatible: 114 compatible: 118 contains: 115 contains: 119 const: samsung,exynos850-cmu-cmgp 116 const: samsung,exynos850-cmu-cmgp 120 117 121 then: 118 then: 122 properties: 119 properties: 123 clocks: 120 clocks: 124 items: 121 items: 125 - description: External reference 122 - description: External reference clock (26 MHz) 126 - description: CMU_CMGP bus clock 123 - description: CMU_CMGP bus clock (from CMU_APM) 127 124 128 clock-names: 125 clock-names: 129 items: 126 items: 130 - const: oscclk 127 - const: oscclk 131 - const: gout_clkcmu_cmgp_bus 128 - const: gout_clkcmu_cmgp_bus 132 129 133 - if: 130 - if: 134 properties: 131 properties: 135 compatible: 132 compatible: 136 contains: 133 contains: 137 const: samsung,exynos850-cmu-core 134 const: samsung,exynos850-cmu-core 138 135 139 then: 136 then: 140 properties: 137 properties: 141 clocks: 138 clocks: 142 items: 139 items: 143 - description: External reference 140 - description: External reference clock (26 MHz) 144 - description: CMU_CORE bus clock 141 - description: CMU_CORE bus clock (from CMU_TOP) 145 - description: CCI clock (from CMU 142 - description: CCI clock (from CMU_TOP) 146 - description: eMMC clock (from CM 143 - description: eMMC clock (from CMU_TOP) 147 - description: SSS clock (from CMU 144 - description: SSS clock (from CMU_TOP) 148 145 149 clock-names: 146 clock-names: 150 items: 147 items: 151 - const: oscclk 148 - const: oscclk 152 - const: dout_core_bus 149 - const: dout_core_bus 153 - const: dout_core_cci 150 - const: dout_core_cci 154 - const: dout_core_mmc_embd 151 - const: dout_core_mmc_embd 155 - const: dout_core_sss 152 - const: dout_core_sss 156 153 157 - if: 154 - if: 158 properties: 155 properties: 159 compatible: 156 compatible: 160 contains: 157 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 158 const: samsung,exynos850-cmu-dpu 202 159 203 then: 160 then: 204 properties: 161 properties: 205 clocks: 162 clocks: 206 items: 163 items: 207 - description: External reference 164 - description: External reference clock (26 MHz) 208 - description: DPU clock (from CMU 165 - description: DPU clock (from CMU_TOP) 209 166 210 clock-names: 167 clock-names: 211 items: 168 items: 212 - const: oscclk 169 - const: oscclk 213 - const: dout_dpu 170 - const: dout_dpu 214 171 215 - if: 172 - if: 216 properties: 173 properties: 217 compatible: 174 compatible: 218 contains: 175 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 176 const: samsung,exynos850-cmu-hsi 238 177 239 then: 178 then: 240 properties: 179 properties: 241 clocks: 180 clocks: 242 items: 181 items: 243 - description: External reference 182 - description: External reference clock (26 MHz) 244 - description: External RTC clock 183 - description: External RTC clock (32768 Hz) 245 - description: CMU_HSI bus clock ( 184 - description: CMU_HSI bus clock (from CMU_TOP) 246 - description: SD card clock (from 185 - description: SD card clock (from CMU_TOP) 247 - description: USB 2.0 DRD clock ( !! 186 - description: "USB 2.0 DRD clock (from CMU_TOP)" 248 187 249 clock-names: 188 clock-names: 250 items: 189 items: 251 - const: oscclk 190 - const: oscclk 252 - const: rtcclk 191 - const: rtcclk 253 - const: dout_hsi_bus 192 - const: dout_hsi_bus 254 - const: dout_hsi_mmc_card 193 - const: dout_hsi_mmc_card 255 - const: dout_hsi_usb20drd 194 - const: dout_hsi_usb20drd 256 195 257 - if: 196 - if: 258 properties: 197 properties: 259 compatible: 198 compatible: 260 contains: 199 contains: 261 const: samsung,exynos850-cmu-is 200 const: samsung,exynos850-cmu-is 262 201 263 then: 202 then: 264 properties: 203 properties: 265 clocks: 204 clocks: 266 items: 205 items: 267 - description: External reference 206 - description: External reference clock (26 MHz) 268 - description: CMU_IS bus clock (f 207 - description: CMU_IS bus clock (from CMU_TOP) 269 - description: Image Texture Proce 208 - description: Image Texture Processing core clock (from CMU_TOP) 270 - description: Visual Recognition 209 - description: Visual Recognition Accelerator clock (from CMU_TOP) 271 - description: Geometric Distortio 210 - description: Geometric Distortion Correction clock (from CMU_TOP) 272 211 273 clock-names: 212 clock-names: 274 items: 213 items: 275 - const: oscclk 214 - const: oscclk 276 - const: dout_is_bus 215 - const: dout_is_bus 277 - const: dout_is_itp 216 - const: dout_is_itp 278 - const: dout_is_vra 217 - const: dout_is_vra 279 - const: dout_is_gdc 218 - const: dout_is_gdc 280 219 281 - if: 220 - if: 282 properties: 221 properties: 283 compatible: 222 compatible: 284 contains: 223 contains: 285 const: samsung,exynos850-cmu-mfcms 224 const: samsung,exynos850-cmu-mfcmscl 286 225 287 then: 226 then: 288 properties: 227 properties: 289 clocks: 228 clocks: 290 items: 229 items: 291 - description: External reference 230 - description: External reference clock (26 MHz) 292 - description: Multi-Format Codec 231 - description: Multi-Format Codec clock (from CMU_TOP) 293 - description: Memory to Memory Sc 232 - description: Memory to Memory Scaler clock (from CMU_TOP) 294 - description: Multi-Channel Scale 233 - description: Multi-Channel Scaler clock (from CMU_TOP) 295 - description: JPEG codec clock (f 234 - description: JPEG codec clock (from CMU_TOP) 296 235 297 clock-names: 236 clock-names: 298 items: 237 items: 299 - const: oscclk 238 - const: oscclk 300 - const: dout_mfcmscl_mfc 239 - const: dout_mfcmscl_mfc 301 - const: dout_mfcmscl_m2m 240 - const: dout_mfcmscl_m2m 302 - const: dout_mfcmscl_mcsc 241 - const: dout_mfcmscl_mcsc 303 - const: dout_mfcmscl_jpeg 242 - const: dout_mfcmscl_jpeg 304 243 305 - if: 244 - if: 306 properties: 245 properties: 307 compatible: 246 compatible: 308 contains: 247 contains: 309 const: samsung,exynos850-cmu-peri 248 const: samsung,exynos850-cmu-peri 310 249 311 then: 250 then: 312 properties: 251 properties: 313 clocks: 252 clocks: 314 items: 253 items: 315 - description: External reference 254 - description: External reference clock (26 MHz) 316 - description: CMU_PERI bus clock 255 - description: CMU_PERI bus clock (from CMU_TOP) 317 - description: UART clock (from CM 256 - description: UART clock (from CMU_TOP) 318 - description: Parent clock for HS 257 - description: Parent clock for HSI2C and SPI (from CMU_TOP) 319 258 320 clock-names: 259 clock-names: 321 items: 260 items: 322 - const: oscclk 261 - const: oscclk 323 - const: dout_peri_bus 262 - const: dout_peri_bus 324 - const: dout_peri_uart 263 - const: dout_peri_uart 325 - const: dout_peri_ip 264 - const: dout_peri_ip 326 265 327 required: 266 required: 328 - compatible 267 - compatible 329 - "#clock-cells" 268 - "#clock-cells" 330 - clocks 269 - clocks 331 - clock-names 270 - clock-names 332 - reg 271 - reg 333 272 334 additionalProperties: false 273 additionalProperties: false 335 274 336 examples: 275 examples: 337 # Clock controller node for CMU_PERI 276 # Clock controller node for CMU_PERI 338 - | 277 - | 339 #include <dt-bindings/clock/exynos850.h> 278 #include <dt-bindings/clock/exynos850.h> 340 279 341 cmu_peri: clock-controller@10030000 { 280 cmu_peri: clock-controller@10030000 { 342 compatible = "samsung,exynos850-cmu-pe 281 compatible = "samsung,exynos850-cmu-peri"; 343 reg = <0x10030000 0x8000>; 282 reg = <0x10030000 0x8000>; 344 #clock-cells = <1>; 283 #clock-cells = <1>; 345 284 346 clocks = <&oscclk>, <&cmu_top CLK_DOUT 285 clocks = <&oscclk>, <&cmu_top CLK_DOUT_PERI_BUS>, 347 <&cmu_top CLK_DOUT_PERI_UART> 286 <&cmu_top CLK_DOUT_PERI_UART>, 348 <&cmu_top CLK_DOUT_PERI_IP>; 287 <&cmu_top CLK_DOUT_PERI_IP>; 349 clock-names = "oscclk", "dout_peri_bus 288 clock-names = "oscclk", "dout_peri_bus", 350 "dout_peri_uart", "dout_ 289 "dout_peri_uart", "dout_peri_ip"; 351 }; 290 }; 352 291 353 ... 292 ...
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.