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