1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/clock/samsung,exynos850-clock.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Samsung Exynos850 SoC clock controller 8 9maintainers: 10 - Sam Protsenko <semen.protsenko@linaro.org> 11 - Chanwoo Choi <cw00.choi@samsung.com> 12 - Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> 13 - Sylwester Nawrocki <s.nawrocki@samsung.com> 14 - Tomasz Figa <tomasz.figa@gmail.com> 15 16description: | 17 Exynos850 clock controller is comprised of several CMU units, generating 18 clocks for different domains. Those CMU units are modeled as separate device 19 tree nodes, and might depend on each other. Root clocks in that clock tree are 20 two external clocks:: OSCCLK (26 MHz) and RTCCLK (32768 Hz). Those external 21 clocks must be defined as fixed-rate clocks in dts. 22 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) are usually derived from CMU_TOP. 25 26 Each clock is assigned an identifier and client nodes can use this identifier 27 to specify the clock which they consume. All clocks available for usage 28 in clock consumer nodes are defined as preprocessor macros in 29 'dt-bindings/clock/exynos850.h' header. 30 31properties: 32 compatible: 33 enum: 34 - samsung,exynos850-cmu-top 35 - samsung,exynos850-cmu-core 36 - samsung,exynos850-cmu-dpu 37 - samsung,exynos850-cmu-hsi 38 - samsung,exynos850-cmu-peri 39 40 clocks: 41 minItems: 1 42 maxItems: 5 43 44 clock-names: 45 minItems: 1 46 maxItems: 5 47 48 "#clock-cells": 49 const: 1 50 51 reg: 52 maxItems: 1 53 54allOf: 55 - if: 56 properties: 57 compatible: 58 contains: 59 const: samsung,exynos850-cmu-top 60 61 then: 62 properties: 63 clocks: 64 items: 65 - description: External reference clock (26 MHz) 66 67 clock-names: 68 items: 69 - const: oscclk 70 71 - if: 72 properties: 73 compatible: 74 contains: 75 const: samsung,exynos850-cmu-core 76 77 then: 78 properties: 79 clocks: 80 items: 81 - description: External reference clock (26 MHz) 82 - description: CMU_CORE bus clock (from CMU_TOP) 83 - description: CCI clock (from CMU_TOP) 84 - description: eMMC clock (from CMU_TOP) 85 - description: SSS clock (from CMU_TOP) 86 87 clock-names: 88 items: 89 - const: oscclk 90 - const: dout_core_bus 91 - const: dout_core_cci 92 - const: dout_core_mmc_embd 93 - const: dout_core_sss 94 95 - if: 96 properties: 97 compatible: 98 contains: 99 const: samsung,exynos850-cmu-dpu 100 101 then: 102 properties: 103 clocks: 104 items: 105 - description: External reference clock (26 MHz) 106 - description: DPU clock (from CMU_TOP) 107 108 clock-names: 109 items: 110 - const: oscclk 111 - const: dout_dpu 112 113 - if: 114 properties: 115 compatible: 116 contains: 117 const: samsung,exynos850-cmu-hsi 118 119 then: 120 properties: 121 clocks: 122 items: 123 - description: External reference clock (26 MHz) 124 - description: External RTC clock (32768 Hz) 125 - description: CMU_HSI bus clock (from CMU_TOP) 126 - description: SD card clock (from CMU_TOP) 127 - description: "USB 2.0 DRD clock (from CMU_TOP)" 128 129 clock-names: 130 items: 131 - const: oscclk 132 - const: rtcclk 133 - const: dout_hsi_bus 134 - const: dout_hsi_mmc_card 135 - const: dout_hsi_usb20drd 136 137 - if: 138 properties: 139 compatible: 140 contains: 141 const: samsung,exynos850-cmu-peri 142 143 then: 144 properties: 145 clocks: 146 items: 147 - description: External reference clock (26 MHz) 148 - description: CMU_PERI bus clock (from CMU_TOP) 149 - description: UART clock (from CMU_TOP) 150 - description: Parent clock for HSI2C and SPI (from CMU_TOP) 151 152 clock-names: 153 items: 154 - const: oscclk 155 - const: dout_peri_bus 156 - const: dout_peri_uart 157 - const: dout_peri_ip 158 159required: 160 - compatible 161 - "#clock-cells" 162 - clocks 163 - clock-names 164 - reg 165 166additionalProperties: false 167 168examples: 169 # Clock controller node for CMU_PERI 170 - | 171 #include <dt-bindings/clock/exynos850.h> 172 173 cmu_peri: clock-controller@10030000 { 174 compatible = "samsung,exynos850-cmu-peri"; 175 reg = <0x10030000 0x8000>; 176 #clock-cells = <1>; 177 178 clocks = <&oscclk>, <&cmu_top CLK_DOUT_PERI_BUS>, 179 <&cmu_top CLK_DOUT_PERI_UART>, 180 <&cmu_top CLK_DOUT_PERI_IP>; 181 clock-names = "oscclk", "dout_peri_bus", 182 "dout_peri_uart", "dout_peri_ip"; 183 }; 184 185... 186