1e67e8565SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2e67e8565SEmmanuel Vadot%YAML 1.2 3e67e8565SEmmanuel Vadot--- 4e67e8565SEmmanuel Vadot$id: http://devicetree.org/schemas/clock/samsung,exynos7885-clock.yaml# 5e67e8565SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6e67e8565SEmmanuel Vadot 7e67e8565SEmmanuel Vadottitle: Samsung Exynos7885 SoC clock controller 8e67e8565SEmmanuel Vadot 9e67e8565SEmmanuel Vadotmaintainers: 10e67e8565SEmmanuel Vadot - Dávid Virág <virag.david003@gmail.com> 11e67e8565SEmmanuel Vadot - Chanwoo Choi <cw00.choi@samsung.com> 12c9ccf3a3SEmmanuel Vadot - Krzysztof Kozlowski <krzk@kernel.org> 13e67e8565SEmmanuel Vadot - Sylwester Nawrocki <s.nawrocki@samsung.com> 14e67e8565SEmmanuel Vadot - Tomasz Figa <tomasz.figa@gmail.com> 15e67e8565SEmmanuel Vadot 16e67e8565SEmmanuel Vadotdescription: | 17e67e8565SEmmanuel Vadot Exynos7885 clock controller is comprised of several CMU units, generating 18e67e8565SEmmanuel Vadot clocks for different domains. Those CMU units are modeled as separate device 19e67e8565SEmmanuel Vadot tree nodes, and might depend on each other. The root clock in that root tree 20e67e8565SEmmanuel Vadot is an external clock: OSCCLK (26 MHz). This external clock must be defined 21e67e8565SEmmanuel Vadot as a fixed-rate clock in dts. 22e67e8565SEmmanuel Vadot 23e67e8565SEmmanuel Vadot CMU_TOP is a top-level CMU, where all base clocks are prepared using PLLs and 24e67e8565SEmmanuel Vadot dividers; all other leaf clocks (other CMUs) are usually derived from CMU_TOP. 25e67e8565SEmmanuel Vadot 26e67e8565SEmmanuel Vadot Each clock is assigned an identifier and client nodes can use this identifier 27e67e8565SEmmanuel Vadot to specify the clock which they consume. All clocks available for usage 28e67e8565SEmmanuel Vadot in clock consumer nodes are defined as preprocessor macros in 29e67e8565SEmmanuel Vadot 'dt-bindings/clock/exynos7885.h' header. 30e67e8565SEmmanuel Vadot 31e67e8565SEmmanuel Vadotproperties: 32e67e8565SEmmanuel Vadot compatible: 33e67e8565SEmmanuel Vadot enum: 34e67e8565SEmmanuel Vadot - samsung,exynos7885-cmu-top 35e67e8565SEmmanuel Vadot - samsung,exynos7885-cmu-core 36*b97ee269SEmmanuel Vadot - samsung,exynos7885-cmu-fsys 37e67e8565SEmmanuel Vadot - samsung,exynos7885-cmu-peri 38e67e8565SEmmanuel Vadot 39e67e8565SEmmanuel Vadot clocks: 40e67e8565SEmmanuel Vadot minItems: 1 41e67e8565SEmmanuel Vadot maxItems: 10 42e67e8565SEmmanuel Vadot 43e67e8565SEmmanuel Vadot clock-names: 44e67e8565SEmmanuel Vadot minItems: 1 45e67e8565SEmmanuel Vadot maxItems: 10 46e67e8565SEmmanuel Vadot 47e67e8565SEmmanuel Vadot "#clock-cells": 48e67e8565SEmmanuel Vadot const: 1 49e67e8565SEmmanuel Vadot 50e67e8565SEmmanuel Vadot reg: 51e67e8565SEmmanuel Vadot maxItems: 1 52e67e8565SEmmanuel Vadot 53e67e8565SEmmanuel VadotallOf: 54e67e8565SEmmanuel Vadot - if: 55e67e8565SEmmanuel Vadot properties: 56e67e8565SEmmanuel Vadot compatible: 57e67e8565SEmmanuel Vadot contains: 58e67e8565SEmmanuel Vadot const: samsung,exynos7885-cmu-top 59e67e8565SEmmanuel Vadot 60e67e8565SEmmanuel Vadot then: 61e67e8565SEmmanuel Vadot properties: 62e67e8565SEmmanuel Vadot clocks: 63e67e8565SEmmanuel Vadot items: 64e67e8565SEmmanuel Vadot - description: External reference clock (26 MHz) 65e67e8565SEmmanuel Vadot 66e67e8565SEmmanuel Vadot clock-names: 67e67e8565SEmmanuel Vadot items: 68e67e8565SEmmanuel Vadot - const: oscclk 69e67e8565SEmmanuel Vadot 70e67e8565SEmmanuel Vadot - if: 71e67e8565SEmmanuel Vadot properties: 72e67e8565SEmmanuel Vadot compatible: 73e67e8565SEmmanuel Vadot contains: 74e67e8565SEmmanuel Vadot const: samsung,exynos7885-cmu-core 75e67e8565SEmmanuel Vadot 76e67e8565SEmmanuel Vadot then: 77e67e8565SEmmanuel Vadot properties: 78e67e8565SEmmanuel Vadot clocks: 79e67e8565SEmmanuel Vadot items: 80e67e8565SEmmanuel Vadot - description: External reference clock (26 MHz) 81e67e8565SEmmanuel Vadot - description: CMU_CORE bus clock (from CMU_TOP) 82e67e8565SEmmanuel Vadot - description: CCI clock (from CMU_TOP) 83e67e8565SEmmanuel Vadot - description: G3D clock (from CMU_TOP) 84e67e8565SEmmanuel Vadot 85e67e8565SEmmanuel Vadot clock-names: 86e67e8565SEmmanuel Vadot items: 87e67e8565SEmmanuel Vadot - const: oscclk 88e67e8565SEmmanuel Vadot - const: dout_core_bus 89e67e8565SEmmanuel Vadot - const: dout_core_cci 90e67e8565SEmmanuel Vadot - const: dout_core_g3d 91e67e8565SEmmanuel Vadot 92e67e8565SEmmanuel Vadot - if: 93e67e8565SEmmanuel Vadot properties: 94e67e8565SEmmanuel Vadot compatible: 95e67e8565SEmmanuel Vadot contains: 96*b97ee269SEmmanuel Vadot const: samsung,exynos7885-cmu-fsys 97*b97ee269SEmmanuel Vadot 98*b97ee269SEmmanuel Vadot then: 99*b97ee269SEmmanuel Vadot properties: 100*b97ee269SEmmanuel Vadot clocks: 101*b97ee269SEmmanuel Vadot items: 102*b97ee269SEmmanuel Vadot - description: External reference clock (26 MHz) 103*b97ee269SEmmanuel Vadot - description: CMU_FSYS bus clock (from CMU_TOP) 104*b97ee269SEmmanuel Vadot - description: MMC_CARD clock (from CMU_TOP) 105*b97ee269SEmmanuel Vadot - description: MMC_EMBD clock (from CMU_TOP) 106*b97ee269SEmmanuel Vadot - description: MMC_SDIO clock (from CMU_TOP) 107*b97ee269SEmmanuel Vadot - description: USB30DRD clock (from CMU_TOP) 108*b97ee269SEmmanuel Vadot 109*b97ee269SEmmanuel Vadot clock-names: 110*b97ee269SEmmanuel Vadot items: 111*b97ee269SEmmanuel Vadot - const: oscclk 112*b97ee269SEmmanuel Vadot - const: dout_fsys_bus 113*b97ee269SEmmanuel Vadot - const: dout_fsys_mmc_card 114*b97ee269SEmmanuel Vadot - const: dout_fsys_mmc_embd 115*b97ee269SEmmanuel Vadot - const: dout_fsys_mmc_sdio 116*b97ee269SEmmanuel Vadot - const: dout_fsys_usb30drd 117*b97ee269SEmmanuel Vadot 118*b97ee269SEmmanuel Vadot - if: 119*b97ee269SEmmanuel Vadot properties: 120*b97ee269SEmmanuel Vadot compatible: 121*b97ee269SEmmanuel Vadot contains: 122e67e8565SEmmanuel Vadot const: samsung,exynos7885-cmu-peri 123e67e8565SEmmanuel Vadot 124e67e8565SEmmanuel Vadot then: 125e67e8565SEmmanuel Vadot properties: 126e67e8565SEmmanuel Vadot clocks: 127e67e8565SEmmanuel Vadot items: 128e67e8565SEmmanuel Vadot - description: External reference clock (26 MHz) 129e67e8565SEmmanuel Vadot - description: CMU_PERI bus clock (from CMU_TOP) 130e67e8565SEmmanuel Vadot - description: SPI0 clock (from CMU_TOP) 131e67e8565SEmmanuel Vadot - description: SPI1 clock (from CMU_TOP) 132e67e8565SEmmanuel Vadot - description: UART0 clock (from CMU_TOP) 133e67e8565SEmmanuel Vadot - description: UART1 clock (from CMU_TOP) 134e67e8565SEmmanuel Vadot - description: UART2 clock (from CMU_TOP) 135e67e8565SEmmanuel Vadot - description: USI0 clock (from CMU_TOP) 136e67e8565SEmmanuel Vadot - description: USI1 clock (from CMU_TOP) 137e67e8565SEmmanuel Vadot - description: USI2 clock (from CMU_TOP) 138e67e8565SEmmanuel Vadot 139e67e8565SEmmanuel Vadot clock-names: 140e67e8565SEmmanuel Vadot items: 141e67e8565SEmmanuel Vadot - const: oscclk 142e67e8565SEmmanuel Vadot - const: dout_peri_bus 143e67e8565SEmmanuel Vadot - const: dout_peri_spi0 144e67e8565SEmmanuel Vadot - const: dout_peri_spi1 145e67e8565SEmmanuel Vadot - const: dout_peri_uart0 146e67e8565SEmmanuel Vadot - const: dout_peri_uart1 147e67e8565SEmmanuel Vadot - const: dout_peri_uart2 148e67e8565SEmmanuel Vadot - const: dout_peri_usi0 149e67e8565SEmmanuel Vadot - const: dout_peri_usi1 150e67e8565SEmmanuel Vadot - const: dout_peri_usi2 151e67e8565SEmmanuel Vadot 152e67e8565SEmmanuel Vadotrequired: 153e67e8565SEmmanuel Vadot - compatible 154e67e8565SEmmanuel Vadot - "#clock-cells" 155e67e8565SEmmanuel Vadot - clocks 156e67e8565SEmmanuel Vadot - clock-names 157e67e8565SEmmanuel Vadot - reg 158e67e8565SEmmanuel Vadot 159e67e8565SEmmanuel VadotadditionalProperties: false 160e67e8565SEmmanuel Vadot 161e67e8565SEmmanuel Vadotexamples: 162e67e8565SEmmanuel Vadot # Clock controller node for CMU_PERI 163e67e8565SEmmanuel Vadot - | 164e67e8565SEmmanuel Vadot #include <dt-bindings/clock/exynos7885.h> 165e67e8565SEmmanuel Vadot 166e67e8565SEmmanuel Vadot cmu_peri: clock-controller@10010000 { 167e67e8565SEmmanuel Vadot compatible = "samsung,exynos7885-cmu-peri"; 168e67e8565SEmmanuel Vadot reg = <0x10010000 0x8000>; 169e67e8565SEmmanuel Vadot #clock-cells = <1>; 170e67e8565SEmmanuel Vadot 171e67e8565SEmmanuel Vadot clocks = <&oscclk>, 172e67e8565SEmmanuel Vadot <&cmu_top CLK_DOUT_PERI_BUS>, 173e67e8565SEmmanuel Vadot <&cmu_top CLK_DOUT_PERI_SPI0>, 174e67e8565SEmmanuel Vadot <&cmu_top CLK_DOUT_PERI_SPI1>, 175e67e8565SEmmanuel Vadot <&cmu_top CLK_DOUT_PERI_UART0>, 176e67e8565SEmmanuel Vadot <&cmu_top CLK_DOUT_PERI_UART1>, 177e67e8565SEmmanuel Vadot <&cmu_top CLK_DOUT_PERI_UART2>, 178e67e8565SEmmanuel Vadot <&cmu_top CLK_DOUT_PERI_USI0>, 179e67e8565SEmmanuel Vadot <&cmu_top CLK_DOUT_PERI_USI1>, 180e67e8565SEmmanuel Vadot <&cmu_top CLK_DOUT_PERI_USI2>; 181e67e8565SEmmanuel Vadot clock-names = "oscclk", 182e67e8565SEmmanuel Vadot "dout_peri_bus", 183e67e8565SEmmanuel Vadot "dout_peri_spi0", 184e67e8565SEmmanuel Vadot "dout_peri_spi1", 185e67e8565SEmmanuel Vadot "dout_peri_uart0", 186e67e8565SEmmanuel Vadot "dout_peri_uart1", 187e67e8565SEmmanuel Vadot "dout_peri_uart2", 188e67e8565SEmmanuel Vadot "dout_peri_usi0", 189e67e8565SEmmanuel Vadot "dout_peri_usi1", 190e67e8565SEmmanuel Vadot "dout_peri_usi2"; 191e67e8565SEmmanuel Vadot }; 192e67e8565SEmmanuel Vadot 193e67e8565SEmmanuel Vadot... 194