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