15d6298f2SSam Protsenko# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 25d6298f2SSam Protsenko%YAML 1.2 35d6298f2SSam Protsenko--- 45d6298f2SSam Protsenko$id: http://devicetree.org/schemas/clock/samsung,exynos850-clock.yaml# 55d6298f2SSam Protsenko$schema: http://devicetree.org/meta-schemas/core.yaml# 65d6298f2SSam Protsenko 75d6298f2SSam Protsenkotitle: Samsung Exynos850 SoC clock controller 85d6298f2SSam Protsenko 95d6298f2SSam Protsenkomaintainers: 105d6298f2SSam Protsenko - Sam Protsenko <semen.protsenko@linaro.org> 115d6298f2SSam Protsenko - Chanwoo Choi <cw00.choi@samsung.com> 125d6298f2SSam Protsenko - Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> 135d6298f2SSam Protsenko - Sylwester Nawrocki <s.nawrocki@samsung.com> 145d6298f2SSam Protsenko - Tomasz Figa <tomasz.figa@gmail.com> 155d6298f2SSam Protsenko 165d6298f2SSam Protsenkodescription: | 175d6298f2SSam Protsenko Exynos850 clock controller is comprised of several CMU units, generating 185d6298f2SSam Protsenko clocks for different domains. Those CMU units are modeled as separate device 195d6298f2SSam Protsenko tree nodes, and might depend on each other. Root clocks in that clock tree are 205d6298f2SSam Protsenko two external clocks:: OSCCLK (26 MHz) and RTCCLK (32768 Hz). Those external 215d6298f2SSam Protsenko clocks must be defined as fixed-rate clocks in dts. 225d6298f2SSam Protsenko 235d6298f2SSam Protsenko CMU_TOP is a top-level CMU, where all base clocks are prepared using PLLs and 245d6298f2SSam Protsenko dividers; all other leaf clocks (other CMUs) are usually derived from CMU_TOP. 255d6298f2SSam Protsenko 265d6298f2SSam Protsenko Each clock is assigned an identifier and client nodes can use this identifier 275d6298f2SSam Protsenko to specify the clock which they consume. All clocks available for usage 285d6298f2SSam Protsenko in clock consumer nodes are defined as preprocessor macros in 295d6298f2SSam Protsenko 'dt-bindings/clock/exynos850.h' header. 305d6298f2SSam Protsenko 315d6298f2SSam Protsenkoproperties: 325d6298f2SSam Protsenko compatible: 335d6298f2SSam Protsenko enum: 345d6298f2SSam Protsenko - samsung,exynos850-cmu-top 3516e0c247SSam Protsenko - samsung,exynos850-cmu-apm 36*c2afeb79SSam Protsenko - samsung,exynos850-cmu-cmgp 375d6298f2SSam Protsenko - samsung,exynos850-cmu-core 385d6298f2SSam Protsenko - samsung,exynos850-cmu-dpu 395d6298f2SSam Protsenko - samsung,exynos850-cmu-hsi 405d6298f2SSam Protsenko - samsung,exynos850-cmu-peri 415d6298f2SSam Protsenko 425d6298f2SSam Protsenko clocks: 435d6298f2SSam Protsenko minItems: 1 445d6298f2SSam Protsenko maxItems: 5 455d6298f2SSam Protsenko 465d6298f2SSam Protsenko clock-names: 475d6298f2SSam Protsenko minItems: 1 485d6298f2SSam Protsenko maxItems: 5 495d6298f2SSam Protsenko 505d6298f2SSam Protsenko "#clock-cells": 515d6298f2SSam Protsenko const: 1 525d6298f2SSam Protsenko 535d6298f2SSam Protsenko reg: 545d6298f2SSam Protsenko maxItems: 1 555d6298f2SSam Protsenko 565d6298f2SSam ProtsenkoallOf: 575d6298f2SSam Protsenko - if: 585d6298f2SSam Protsenko properties: 595d6298f2SSam Protsenko compatible: 605d6298f2SSam Protsenko contains: 615d6298f2SSam Protsenko const: samsung,exynos850-cmu-top 625d6298f2SSam Protsenko 635d6298f2SSam Protsenko then: 645d6298f2SSam Protsenko properties: 655d6298f2SSam Protsenko clocks: 665d6298f2SSam Protsenko items: 675d6298f2SSam Protsenko - description: External reference clock (26 MHz) 685d6298f2SSam Protsenko 695d6298f2SSam Protsenko clock-names: 705d6298f2SSam Protsenko items: 715d6298f2SSam Protsenko - const: oscclk 725d6298f2SSam Protsenko 735d6298f2SSam Protsenko - if: 745d6298f2SSam Protsenko properties: 755d6298f2SSam Protsenko compatible: 765d6298f2SSam Protsenko contains: 7716e0c247SSam Protsenko const: samsung,exynos850-cmu-apm 7816e0c247SSam Protsenko 7916e0c247SSam Protsenko then: 8016e0c247SSam Protsenko properties: 8116e0c247SSam Protsenko clocks: 8216e0c247SSam Protsenko items: 8316e0c247SSam Protsenko - description: External reference clock (26 MHz) 8416e0c247SSam Protsenko - description: CMU_APM bus clock (from CMU_TOP) 8516e0c247SSam Protsenko 8616e0c247SSam Protsenko clock-names: 8716e0c247SSam Protsenko items: 8816e0c247SSam Protsenko - const: oscclk 8916e0c247SSam Protsenko - const: dout_clkcmu_apm_bus 9016e0c247SSam Protsenko 9116e0c247SSam Protsenko - if: 9216e0c247SSam Protsenko properties: 9316e0c247SSam Protsenko compatible: 9416e0c247SSam Protsenko contains: 95*c2afeb79SSam Protsenko const: samsung,exynos850-cmu-cmgp 96*c2afeb79SSam Protsenko 97*c2afeb79SSam Protsenko then: 98*c2afeb79SSam Protsenko properties: 99*c2afeb79SSam Protsenko clocks: 100*c2afeb79SSam Protsenko items: 101*c2afeb79SSam Protsenko - description: External reference clock (26 MHz) 102*c2afeb79SSam Protsenko - description: CMU_CMGP bus clock (from CMU_APM) 103*c2afeb79SSam Protsenko 104*c2afeb79SSam Protsenko clock-names: 105*c2afeb79SSam Protsenko items: 106*c2afeb79SSam Protsenko - const: oscclk 107*c2afeb79SSam Protsenko - const: gout_clkcmu_cmgp_bus 108*c2afeb79SSam Protsenko 109*c2afeb79SSam Protsenko - if: 110*c2afeb79SSam Protsenko properties: 111*c2afeb79SSam Protsenko compatible: 112*c2afeb79SSam Protsenko contains: 1135d6298f2SSam Protsenko const: samsung,exynos850-cmu-core 1145d6298f2SSam Protsenko 1155d6298f2SSam Protsenko then: 1165d6298f2SSam Protsenko properties: 1175d6298f2SSam Protsenko clocks: 1185d6298f2SSam Protsenko items: 1195d6298f2SSam Protsenko - description: External reference clock (26 MHz) 1205d6298f2SSam Protsenko - description: CMU_CORE bus clock (from CMU_TOP) 1215d6298f2SSam Protsenko - description: CCI clock (from CMU_TOP) 1225d6298f2SSam Protsenko - description: eMMC clock (from CMU_TOP) 1235d6298f2SSam Protsenko - description: SSS clock (from CMU_TOP) 1245d6298f2SSam Protsenko 1255d6298f2SSam Protsenko clock-names: 1265d6298f2SSam Protsenko items: 1275d6298f2SSam Protsenko - const: oscclk 1285d6298f2SSam Protsenko - const: dout_core_bus 1295d6298f2SSam Protsenko - const: dout_core_cci 1305d6298f2SSam Protsenko - const: dout_core_mmc_embd 1315d6298f2SSam Protsenko - const: dout_core_sss 1325d6298f2SSam Protsenko 1335d6298f2SSam Protsenko - if: 1345d6298f2SSam Protsenko properties: 1355d6298f2SSam Protsenko compatible: 1365d6298f2SSam Protsenko contains: 1375d6298f2SSam Protsenko const: samsung,exynos850-cmu-dpu 1385d6298f2SSam Protsenko 1395d6298f2SSam Protsenko then: 1405d6298f2SSam Protsenko properties: 1415d6298f2SSam Protsenko clocks: 1425d6298f2SSam Protsenko items: 1435d6298f2SSam Protsenko - description: External reference clock (26 MHz) 1445d6298f2SSam Protsenko - description: DPU clock (from CMU_TOP) 1455d6298f2SSam Protsenko 1465d6298f2SSam Protsenko clock-names: 1475d6298f2SSam Protsenko items: 1485d6298f2SSam Protsenko - const: oscclk 1495d6298f2SSam Protsenko - const: dout_dpu 1505d6298f2SSam Protsenko 1515d6298f2SSam Protsenko - if: 1525d6298f2SSam Protsenko properties: 1535d6298f2SSam Protsenko compatible: 1545d6298f2SSam Protsenko contains: 1555d6298f2SSam Protsenko const: samsung,exynos850-cmu-hsi 1565d6298f2SSam Protsenko 1575d6298f2SSam Protsenko then: 1585d6298f2SSam Protsenko properties: 1595d6298f2SSam Protsenko clocks: 1605d6298f2SSam Protsenko items: 1615d6298f2SSam Protsenko - description: External reference clock (26 MHz) 1625d6298f2SSam Protsenko - description: External RTC clock (32768 Hz) 1635d6298f2SSam Protsenko - description: CMU_HSI bus clock (from CMU_TOP) 1645d6298f2SSam Protsenko - description: SD card clock (from CMU_TOP) 1655d6298f2SSam Protsenko - description: "USB 2.0 DRD clock (from CMU_TOP)" 1665d6298f2SSam Protsenko 1675d6298f2SSam Protsenko clock-names: 1685d6298f2SSam Protsenko items: 1695d6298f2SSam Protsenko - const: oscclk 1705d6298f2SSam Protsenko - const: rtcclk 1715d6298f2SSam Protsenko - const: dout_hsi_bus 1725d6298f2SSam Protsenko - const: dout_hsi_mmc_card 1735d6298f2SSam Protsenko - const: dout_hsi_usb20drd 1745d6298f2SSam Protsenko 1755d6298f2SSam Protsenko - if: 1765d6298f2SSam Protsenko properties: 1775d6298f2SSam Protsenko compatible: 1785d6298f2SSam Protsenko contains: 1795d6298f2SSam Protsenko const: samsung,exynos850-cmu-peri 1805d6298f2SSam Protsenko 1815d6298f2SSam Protsenko then: 1825d6298f2SSam Protsenko properties: 1835d6298f2SSam Protsenko clocks: 1845d6298f2SSam Protsenko items: 1855d6298f2SSam Protsenko - description: External reference clock (26 MHz) 1865d6298f2SSam Protsenko - description: CMU_PERI bus clock (from CMU_TOP) 1875d6298f2SSam Protsenko - description: UART clock (from CMU_TOP) 1885d6298f2SSam Protsenko - description: Parent clock for HSI2C and SPI (from CMU_TOP) 1895d6298f2SSam Protsenko 1905d6298f2SSam Protsenko clock-names: 1915d6298f2SSam Protsenko items: 1925d6298f2SSam Protsenko - const: oscclk 1935d6298f2SSam Protsenko - const: dout_peri_bus 1945d6298f2SSam Protsenko - const: dout_peri_uart 1955d6298f2SSam Protsenko - const: dout_peri_ip 1965d6298f2SSam Protsenko 1975d6298f2SSam Protsenkorequired: 1985d6298f2SSam Protsenko - compatible 1995d6298f2SSam Protsenko - "#clock-cells" 2005d6298f2SSam Protsenko - clocks 2015d6298f2SSam Protsenko - clock-names 2025d6298f2SSam Protsenko - reg 2035d6298f2SSam Protsenko 2045d6298f2SSam ProtsenkoadditionalProperties: false 2055d6298f2SSam Protsenko 2065d6298f2SSam Protsenkoexamples: 2075d6298f2SSam Protsenko # Clock controller node for CMU_PERI 2085d6298f2SSam Protsenko - | 2095d6298f2SSam Protsenko #include <dt-bindings/clock/exynos850.h> 2105d6298f2SSam Protsenko 2115d6298f2SSam Protsenko cmu_peri: clock-controller@10030000 { 2125d6298f2SSam Protsenko compatible = "samsung,exynos850-cmu-peri"; 2135d6298f2SSam Protsenko reg = <0x10030000 0x8000>; 2145d6298f2SSam Protsenko #clock-cells = <1>; 2155d6298f2SSam Protsenko 2165d6298f2SSam Protsenko clocks = <&oscclk>, <&cmu_top CLK_DOUT_PERI_BUS>, 2175d6298f2SSam Protsenko <&cmu_top CLK_DOUT_PERI_UART>, 2185d6298f2SSam Protsenko <&cmu_top CLK_DOUT_PERI_IP>; 2195d6298f2SSam Protsenko clock-names = "oscclk", "dout_peri_bus", 2205d6298f2SSam Protsenko "dout_peri_uart", "dout_peri_ip"; 2215d6298f2SSam Protsenko }; 2225d6298f2SSam Protsenko 2235d6298f2SSam Protsenko... 224