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,exynosautov9-clock.yaml# 5 $schema: http://devicetree.org/meta-schemas/co 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 6 6 7 title: Samsung Exynos Auto v9 SoC clock contro 7 title: Samsung Exynos Auto v9 SoC clock controller 8 8 9 maintainers: 9 maintainers: 10 - Chanho Park <chanho61.park@samsung.com> 10 - Chanho Park <chanho61.park@samsung.com> 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 Exynos Auto v9 clock controller is comprised 17 Exynos Auto v9 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/XTCXO (26 MHz) 20 two external clocks:: OSCCLK/XTCXO (26 MHz) and RTCCLK/XrtcXTI (32768 Hz). 21 The external OSCCLK must be defined as fixed 21 The external OSCCLK must be defined as fixed-rate clock 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 clocks of function block 24 dividers; all other clocks of function blocks (other CMUs) are usually 25 derived from CMU_TOP. 25 derived from CMU_TOP. 26 26 27 Each clock is assigned an identifier and cli 27 Each clock is assigned an identifier and client nodes can use this identifier 28 to specify the clock which they consume. All 28 to specify the clock which they consume. All clocks available for usage 29 in clock consumer nodes are defined as prepr 29 in clock consumer nodes are defined as preprocessor macros in 30 'include/dt-bindings/clock/samsung,exynosaut 30 'include/dt-bindings/clock/samsung,exynosautov9.h' header. 31 31 32 properties: 32 properties: 33 compatible: 33 compatible: 34 enum: 34 enum: 35 - samsung,exynosautov9-cmu-top 35 - samsung,exynosautov9-cmu-top 36 - samsung,exynosautov9-cmu-busmc 36 - samsung,exynosautov9-cmu-busmc 37 - samsung,exynosautov9-cmu-core 37 - samsung,exynosautov9-cmu-core 38 - samsung,exynosautov9-cmu-dpum << 39 - samsung,exynosautov9-cmu-fsys0 38 - samsung,exynosautov9-cmu-fsys0 40 - samsung,exynosautov9-cmu-fsys1 39 - samsung,exynosautov9-cmu-fsys1 41 - samsung,exynosautov9-cmu-fsys2 40 - samsung,exynosautov9-cmu-fsys2 42 - samsung,exynosautov9-cmu-peric0 41 - samsung,exynosautov9-cmu-peric0 43 - samsung,exynosautov9-cmu-peric1 42 - samsung,exynosautov9-cmu-peric1 44 - samsung,exynosautov9-cmu-peris 43 - samsung,exynosautov9-cmu-peris 45 44 46 clocks: 45 clocks: 47 minItems: 1 46 minItems: 1 48 maxItems: 5 47 maxItems: 5 49 48 50 clock-names: 49 clock-names: 51 minItems: 1 50 minItems: 1 52 maxItems: 5 51 maxItems: 5 53 52 54 "#clock-cells": 53 "#clock-cells": 55 const: 1 54 const: 1 56 55 57 reg: 56 reg: 58 maxItems: 1 57 maxItems: 1 59 58 60 allOf: 59 allOf: 61 - if: 60 - if: 62 properties: 61 properties: 63 compatible: 62 compatible: 64 contains: 63 contains: 65 const: samsung,exynosautov9-cmu-to 64 const: samsung,exynosautov9-cmu-top 66 65 67 then: 66 then: 68 properties: 67 properties: 69 clocks: 68 clocks: 70 items: 69 items: 71 - description: External reference 70 - description: External reference clock (26 MHz) 72 71 73 clock-names: 72 clock-names: 74 items: 73 items: 75 - const: oscclk 74 - const: oscclk 76 75 77 - if: 76 - if: 78 properties: 77 properties: 79 compatible: 78 compatible: 80 contains: 79 contains: 81 const: samsung,exynosautov9-cmu-bu 80 const: samsung,exynosautov9-cmu-busmc 82 81 83 then: 82 then: 84 properties: 83 properties: 85 clocks: 84 clocks: 86 items: 85 items: 87 - description: External reference 86 - description: External reference clock (26 MHz) 88 - description: CMU_BUSMC bus clock 87 - description: CMU_BUSMC bus clock (from CMU_TOP) 89 88 90 clock-names: 89 clock-names: 91 items: 90 items: 92 - const: oscclk 91 - const: oscclk 93 - const: dout_clkcmu_busmc_bus 92 - const: dout_clkcmu_busmc_bus 94 93 95 - if: 94 - if: 96 properties: 95 properties: 97 compatible: 96 compatible: 98 contains: 97 contains: 99 const: samsung,exynosautov9-cmu-co 98 const: samsung,exynosautov9-cmu-core 100 99 101 then: 100 then: 102 properties: 101 properties: 103 clocks: 102 clocks: 104 items: 103 items: 105 - description: External reference 104 - description: External reference clock (26 MHz) 106 - description: CMU_CORE bus clock 105 - description: CMU_CORE bus clock (from CMU_TOP) 107 106 108 clock-names: 107 clock-names: 109 items: 108 items: 110 - const: oscclk 109 - const: oscclk 111 - const: dout_clkcmu_core_bus 110 - const: dout_clkcmu_core_bus 112 << 113 - if: << 114 properties: << 115 compatible: << 116 contains: << 117 const: samsung,exynosautov9-cmu-dp << 118 << 119 then: << 120 properties: << 121 clocks: << 122 items: << 123 - description: External reference << 124 - description: DPU Main bus clock << 125 << 126 clock-names: << 127 items: << 128 - const: oscclk << 129 - const: bus << 130 111 131 - if: 112 - if: 132 properties: 113 properties: 133 compatible: 114 compatible: 134 contains: 115 contains: 135 const: samsung,exynosautov9-cmu-fs 116 const: samsung,exynosautov9-cmu-fsys0 136 117 137 then: 118 then: 138 properties: 119 properties: 139 clocks: 120 clocks: 140 items: 121 items: 141 - description: External reference 122 - description: External reference clock (26 MHz) 142 - description: CMU_FSYS0 bus clock 123 - description: CMU_FSYS0 bus clock (from CMU_TOP) 143 - description: CMU_FSYS0 pcie cloc 124 - description: CMU_FSYS0 pcie clock (from CMU_TOP) 144 125 145 clock-names: 126 clock-names: 146 items: 127 items: 147 - const: oscclk 128 - const: oscclk 148 - const: dout_clkcmu_fsys0_bus 129 - const: dout_clkcmu_fsys0_bus 149 - const: dout_clkcmu_fsys0_pcie 130 - const: dout_clkcmu_fsys0_pcie 150 131 151 - if: 132 - if: 152 properties: 133 properties: 153 compatible: 134 compatible: 154 contains: 135 contains: 155 const: samsung,exynosautov9-cmu-fs 136 const: samsung,exynosautov9-cmu-fsys1 156 137 157 then: 138 then: 158 properties: 139 properties: 159 clocks: 140 clocks: 160 items: 141 items: 161 - description: External reference 142 - description: External reference clock (26 MHz) 162 - description: CMU_FSYS1 bus clock 143 - description: CMU_FSYS1 bus clock (from CMU_TOP) 163 - description: CMU_FSYS1 mmc card 144 - description: CMU_FSYS1 mmc card clock (from CMU_TOP) 164 - description: CMU_FSYS1 usb clock 145 - description: CMU_FSYS1 usb clock (from CMU_TOP) 165 146 166 clock-names: 147 clock-names: 167 items: 148 items: 168 - const: oscclk 149 - const: oscclk 169 - const: dout_clkcmu_fsys1_bus 150 - const: dout_clkcmu_fsys1_bus 170 - const: gout_clkcmu_fsys1_mmc_car 151 - const: gout_clkcmu_fsys1_mmc_card 171 - const: dout_clkcmu_fsys1_usbdrd 152 - const: dout_clkcmu_fsys1_usbdrd 172 153 173 - if: 154 - if: 174 properties: 155 properties: 175 compatible: 156 compatible: 176 contains: 157 contains: 177 const: samsung,exynosautov9-cmu-fs 158 const: samsung,exynosautov9-cmu-fsys2 178 159 179 then: 160 then: 180 properties: 161 properties: 181 clocks: 162 clocks: 182 items: 163 items: 183 - description: External reference 164 - description: External reference clock (26 MHz) 184 - description: CMU_FSYS2 bus clock 165 - description: CMU_FSYS2 bus clock (from CMU_TOP) 185 - description: UFS clock (from CMU 166 - description: UFS clock (from CMU_TOP) 186 - description: Ethernet clock (fro 167 - description: Ethernet clock (from CMU_TOP) 187 168 188 clock-names: 169 clock-names: 189 items: 170 items: 190 - const: oscclk 171 - const: oscclk 191 - const: dout_clkcmu_fsys2_bus 172 - const: dout_clkcmu_fsys2_bus 192 - const: dout_fsys2_clkcmu_ufs_emb 173 - const: dout_fsys2_clkcmu_ufs_embd 193 - const: dout_fsys2_clkcmu_etherne 174 - const: dout_fsys2_clkcmu_ethernet 194 175 195 - if: 176 - if: 196 properties: 177 properties: 197 compatible: 178 compatible: 198 contains: 179 contains: 199 const: samsung,exynosautov9-cmu-pe 180 const: samsung,exynosautov9-cmu-peric0 200 181 201 then: 182 then: 202 properties: 183 properties: 203 clocks: 184 clocks: 204 items: 185 items: 205 - description: External reference 186 - description: External reference clock (26 MHz) 206 - description: CMU_PERIC0 bus cloc 187 - description: CMU_PERIC0 bus clock (from CMU_TOP) 207 - description: PERIC0 IP clock (fr 188 - description: PERIC0 IP clock (from CMU_TOP) 208 189 209 clock-names: 190 clock-names: 210 items: 191 items: 211 - const: oscclk 192 - const: oscclk 212 - const: dout_clkcmu_peric0_bus 193 - const: dout_clkcmu_peric0_bus 213 - const: dout_clkcmu_peric0_ip 194 - const: dout_clkcmu_peric0_ip 214 195 215 - if: 196 - if: 216 properties: 197 properties: 217 compatible: 198 compatible: 218 contains: 199 contains: 219 const: samsung,exynosautov9-cmu-pe 200 const: samsung,exynosautov9-cmu-peric1 220 201 221 then: 202 then: 222 properties: 203 properties: 223 clocks: 204 clocks: 224 items: 205 items: 225 - description: External reference 206 - description: External reference clock (26 MHz) 226 - description: CMU_PERIC1 bus cloc 207 - description: CMU_PERIC1 bus clock (from CMU_TOP) 227 - description: PERIC1 IP clock (fr 208 - description: PERIC1 IP clock (from CMU_TOP) 228 209 229 clock-names: 210 clock-names: 230 items: 211 items: 231 - const: oscclk 212 - const: oscclk 232 - const: dout_clkcmu_peric1_bus 213 - const: dout_clkcmu_peric1_bus 233 - const: dout_clkcmu_peric1_ip 214 - const: dout_clkcmu_peric1_ip 234 215 235 - if: 216 - if: 236 properties: 217 properties: 237 compatible: 218 compatible: 238 contains: 219 contains: 239 const: samsung,exynosautov9-cmu-pe 220 const: samsung,exynosautov9-cmu-peris 240 221 241 then: 222 then: 242 properties: 223 properties: 243 clocks: 224 clocks: 244 items: 225 items: 245 - description: External reference 226 - description: External reference clock (26 MHz) 246 - description: CMU_PERIS bus clock 227 - description: CMU_PERIS bus clock (from CMU_TOP) 247 228 248 clock-names: 229 clock-names: 249 items: 230 items: 250 - const: oscclk 231 - const: oscclk 251 - const: dout_clkcmu_peris_bus 232 - const: dout_clkcmu_peris_bus 252 233 253 required: 234 required: 254 - compatible 235 - compatible 255 - "#clock-cells" 236 - "#clock-cells" 256 - clocks 237 - clocks 257 - clock-names 238 - clock-names 258 - reg 239 - reg 259 240 260 additionalProperties: false 241 additionalProperties: false 261 242 262 examples: 243 examples: 263 # Clock controller node for CMU_FSYS2 244 # Clock controller node for CMU_FSYS2 264 - | 245 - | 265 #include <dt-bindings/clock/samsung,exynos 246 #include <dt-bindings/clock/samsung,exynosautov9.h> 266 247 267 cmu_fsys2: clock-controller@17c00000 { 248 cmu_fsys2: clock-controller@17c00000 { 268 compatible = "samsung,exynosautov9-cmu 249 compatible = "samsung,exynosautov9-cmu-fsys2"; 269 reg = <0x17c00000 0x8000>; 250 reg = <0x17c00000 0x8000>; 270 #clock-cells = <1>; 251 #clock-cells = <1>; 271 252 272 clocks = <&xtcxo>, 253 clocks = <&xtcxo>, 273 <&cmu_top DOUT_CLKCMU_FSYS2_B 254 <&cmu_top DOUT_CLKCMU_FSYS2_BUS>, 274 <&cmu_top DOUT_CLKCMU_FSYS2_U 255 <&cmu_top DOUT_CLKCMU_FSYS2_UFS_EMBD>, 275 <&cmu_top DOUT_CLKCMU_FSYS2_E 256 <&cmu_top DOUT_CLKCMU_FSYS2_ETHERNET>; 276 clock-names = "oscclk", 257 clock-names = "oscclk", 277 "dout_clkcmu_fsys2_bus", 258 "dout_clkcmu_fsys2_bus", 278 "dout_fsys2_clkcmu_ufs_e 259 "dout_fsys2_clkcmu_ufs_embd", 279 "dout_fsys2_clkcmu_ether 260 "dout_fsys2_clkcmu_ethernet"; 280 }; 261 }; 281 262 282 ... 263 ...
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.